[med-svn] r44 - in trunk/packages/probcons/trunk: . debian debian/patches

Charles Plessy charles-guest at costa.debian.org
Sun May 7 15:00:44 UTC 2006


Author: charles-guest
Date: 2006-05-07 15:00:41 +0000 (Sun, 07 May 2006)
New Revision: 44

Added:
   trunk/packages/probcons/trunk/debian/
   trunk/packages/probcons/trunk/debian/Defaults-RNA.h
   trunk/packages/probcons/trunk/debian/Main-RNA.cc
   trunk/packages/probcons/trunk/debian/README.Debian
   trunk/packages/probcons/trunk/debian/changelog
   trunk/packages/probcons/trunk/debian/compat
   trunk/packages/probcons/trunk/debian/control
   trunk/packages/probcons/trunk/debian/copyright
   trunk/packages/probcons/trunk/debian/dirs
   trunk/packages/probcons/trunk/debian/docs
   trunk/packages/probcons/trunk/debian/install
   trunk/packages/probcons/trunk/debian/makegnuplot.1.xml
   trunk/packages/probcons/trunk/debian/manpages
   trunk/packages/probcons/trunk/debian/manual.pdf.ascii
   trunk/packages/probcons/trunk/debian/patches/
   trunk/packages/probcons/trunk/debian/patches/00list
   trunk/packages/probcons/trunk/debian/patches/10_add-RNA-in-Makefile.dpatch
   trunk/packages/probcons/trunk/debian/patches/11-Renames-compare-in-Makefile.dpatch
   trunk/packages/probcons/trunk/debian/pc-compare.1.xml
   trunk/packages/probcons/trunk/debian/probcons-RNA.1
   trunk/packages/probcons/trunk/debian/probcons-RNA.1.xml
   trunk/packages/probcons/trunk/debian/probcons.1.xml
   trunk/packages/probcons/trunk/debian/probcons.doc-base
   trunk/packages/probcons/trunk/debian/project.1.xml
   trunk/packages/probcons/trunk/debian/rules
   trunk/packages/probcons/trunk/debian/watch
Log:
Load probcons-1.10 into trunk/packages/probcons/trunk.


Added: trunk/packages/probcons/trunk/debian/Defaults-RNA.h
===================================================================
--- trunk/packages/probcons/trunk/debian/Defaults-RNA.h	2006-05-07 14:56:01 UTC (rev 43)
+++ trunk/packages/probcons/trunk/debian/Defaults-RNA.h	2006-05-07 15:00:41 UTC (rev 44)
@@ -0,0 +1,40 @@
+/////////////////////////////////////////////////////////////////
+// Defaults.h
+//
+// Default constants for use in PROBCONS.  The emission
+// probabilities were computed using the program used to build
+// the BLOSUM62 matrix from the BLOCKS 5.0 dataset.  Transition
+// parameters were obtained via unsupervised EM training on the
+// BALIBASE 2.0 benchmark alignment database.
+/////////////////////////////////////////////////////////////////
+
+#ifndef DEFAULTS_H
+#define DEFAULTS_H
+
+#include <string>
+
+using namespace std;
+
+float initDistrib1Default[] = { 0.9588437676f, 0.0205782652f, 0.0205782652f };
+float gapOpen1Default[] = { 0.0190259293f, 0.0190259293f };
+float gapExtend1Default[] = { 0.3269913495f, 0.3269913495f };
+
+float initDistrib2Default[] = { 0.9615409374f, 0.0000004538f, 0.0000004538f, 0.0192291681f, 0.0192291681f };
+float gapOpen2Default[] = { 0.0082473317f, 0.0082473317f, 0.0107844425f, 0.0107844425f };
+float gapExtend2Default[] = { 0.3210460842f, 0.3210460842f, 0.3298229277f, 0.3298229277f };
+
+string alphabetDefault = "ACGUTN";
+float emitSingleDefault[6] = {
+  0.2270790040f, 0.2422080040f, 0.2839320004f, 0.2464679927f, 0.2464679927f, 0.0003124650f 
+};
+
+float emitPairsDefault[6][6] = {
+  { 0.1487240046f, 0.0184142999f, 0.0361397006f, 0.0238473993f, 0.0238473993f, 0.0000375308f },
+  { 0.0184142999f, 0.1583919972f, 0.0275536999f, 0.0389291011f, 0.0389291011f, 0.0000815823f },
+  { 0.0361397006f, 0.0275536999f, 0.1979320049f, 0.0244289003f, 0.0244289003f, 0.0000824765f },
+  { 0.0238473993f, 0.0389291011f, 0.0244289003f, 0.1557479948f, 0.1557479948f, 0.0000743985f },
+  { 0.0238473993f, 0.0389291011f, 0.0244289003f, 0.1557479948f, 0.1557479948f, 0.0000743985f },
+  { 0.0000375308f, 0.0000815823f, 0.0000824765f, 0.0000743985f, 0.0000743985f, 0.0000263252f }
+};
+
+#endif

Added: trunk/packages/probcons/trunk/debian/Main-RNA.cc
===================================================================
--- trunk/packages/probcons/trunk/debian/Main-RNA.cc	2006-05-07 14:56:01 UTC (rev 43)
+++ trunk/packages/probcons/trunk/debian/Main-RNA.cc	2006-05-07 15:00:41 UTC (rev 44)
@@ -0,0 +1,1445 @@
+/////////////////////////////////////////////////////////////////
+// Main.cc
+//
+// Main routines for PROBCONS program.
+/////////////////////////////////////////////////////////////////
+
+#include "SafeVector.h"
+#include "MultiSequence.h"
+#include "Defaults-RNA.h"
+#include "ScoreType.h"
+#include "ProbabilisticModel.h"
+#include "EvolutionaryTree.h"
+#include "SparseMatrix.h"
+#include <string>
+#include <sstream>
+#include <iomanip>
+#include <iostream>
+#include <list>
+#include <set>
+#include <algorithm>
+#include <cstdio>
+#include <cstdlib>
+#include <cerrno>
+#include <iomanip>
+
+string parametersInputFilename = "";
+string parametersOutputFilename = "no training";
+string annotationFilename = "";
+
+bool enableTraining = false;
+bool enableVerbose = false;
+bool enableAllPairs = false;
+bool enableAnnotation = false;
+bool enableViterbi = false;
+bool enableClustalWOutput = false;
+bool enableTrainEmissions = false;
+bool enableAlignOrder = false;
+int numConsistencyReps = 2;
+int numPreTrainingReps = 0;
+int numIterativeRefinementReps = 100;
+
+float cutoff = 0;
+float gapOpenPenalty = 0;
+float gapContinuePenalty = 0;
+
+VF initDistrib (NumMatrixTypes);
+VF gapOpen (2*NumInsertStates);
+VF gapExtend (2*NumInsertStates);
+VVF emitPairs (256, VF (256, 1e-10));
+VF emitSingle (256, 1e-5);
+
+string alphabet = alphabetDefault;
+
+const int MIN_PRETRAINING_REPS = 0;
+const int MAX_PRETRAINING_REPS = 20;
+const int MIN_CONSISTENCY_REPS = 0;
+const int MAX_CONSISTENCY_REPS = 5;
+const int MIN_ITERATIVE_REFINEMENT_REPS = 0;
+const int MAX_ITERATIVE_REFINEMENT_REPS = 1000;
+
+/////////////////////////////////////////////////////////////////
+// Function prototypes
+/////////////////////////////////////////////////////////////////
+
+void PrintHeading();
+void PrintParameters (const char *message, const VF &initDistrib, const VF &gapOpen,
+                      const VF &gapExtend, const VVF &emitPairs, const VF &emitSingle, const char *filename);
+MultiSequence *DoAlign (MultiSequence *sequence, const ProbabilisticModel &model, VF &initDistrib, VF &gapOpen, VF &gapExtend,
+			VVF &emitPairs, VF &emitSingle);
+SafeVector<string> ParseParams (int argc, char **argv);
+void ReadParameters ();
+MultiSequence *ComputeFinalAlignment (const TreeNode *tree, MultiSequence *sequences,
+                                      const SafeVector<SafeVector<SparseMatrix *> > &sparseMatrices,
+                                      const ProbabilisticModel &model);
+MultiSequence *AlignAlignments (MultiSequence *align1, MultiSequence *align2,
+                                const SafeVector<SafeVector<SparseMatrix *> > &sparseMatrices,
+                                const ProbabilisticModel &model);
+SafeVector<SafeVector<SparseMatrix *> > DoRelaxation (MultiSequence *sequences, 
+						      SafeVector<SafeVector<SparseMatrix *> > &sparseMatrices);
+void Relax (SparseMatrix *matXZ, SparseMatrix *matZY, VF &posterior);
+void Relax1 (SparseMatrix *matXZ, SparseMatrix *matZY, VF &posterior);
+
+set<int> GetSubtree (const TreeNode *tree);
+void TreeBasedBiPartitioning (const SafeVector<SafeVector<SparseMatrix *> > &sparseMatrices,
+                              const ProbabilisticModel &model, MultiSequence* &alignment,
+                              const TreeNode *tree);
+void DoIterativeRefinement (const SafeVector<SafeVector<SparseMatrix *> > &sparseMatrices,
+                            const ProbabilisticModel &model, MultiSequence* &alignment);
+void WriteAnnotation (MultiSequence *alignment,
+		      const SafeVector<SafeVector<SparseMatrix *> > &sparseMatrices);
+int ComputeScore (const SafeVector<pair<int, int> > &active, 
+		  const SafeVector<SafeVector<SparseMatrix *> > &sparseMatrices);
+
+
+/////////////////////////////////////////////////////////////////
+// main()
+//
+// Calls all initialization routines and runs the PROBCONS
+// aligner.
+/////////////////////////////////////////////////////////////////
+
+int main (int argc, char **argv){
+
+  // print PROBCONS heading
+  PrintHeading();
+  
+  // parse program parameters
+  SafeVector<string> sequenceNames = ParseParams (argc, argv);
+  ReadParameters();
+  PrintParameters ("Using parameter set:", initDistrib, gapOpen, gapExtend, emitPairs, emitSingle, NULL);
+
+  // now, we'll process all the files given as input.  If we are given
+  // several filenames as input, then we'll load all of those sequences
+  // simultaneously, as long as we're not training.  On the other hand,
+  // if we are training, then we'll treat each file as a separate
+  // training instance
+  
+  // if we are training
+  if (enableTraining){
+
+    // build new model for aligning
+    ProbabilisticModel model (initDistrib, gapOpen, gapExtend, emitPairs, emitSingle);
+
+    // prepare to average parameters
+    for (int i = 0; i < (int) initDistrib.size(); i++) initDistrib[i] = 0;
+    for (int i = 0; i < (int) gapOpen.size(); i++) gapOpen[i] = 0;
+    for (int i = 0; i < (int) gapExtend.size(); i++) gapExtend[i] = 0;
+    if (enableTrainEmissions){
+      for (int i = 0; i < (int) emitPairs.size(); i++)
+	for (int j = 0; j < (int) emitPairs[i].size(); j++) emitPairs[i][j] = 0;
+      for (int i = 0; i < (int) emitSingle.size(); i++) emitSingle[i] = 0;
+    }
+   
+    // align each file individually
+    for (int i = 0; i < (int) sequenceNames.size(); i++){
+
+      VF thisInitDistrib (NumMatrixTypes);
+      VF thisGapOpen (2*NumInsertStates);
+      VF thisGapExtend (2*NumInsertStates);
+      VVF thisEmitPairs (256, VF (256, 1e-10));
+      VF thisEmitSingle (256, 1e-5);
+      
+      // load sequence file
+      MultiSequence *sequences = new MultiSequence(); assert (sequences);
+      cerr << "Loading sequence file: " << sequenceNames[i] << endl;
+      sequences->LoadMFA (sequenceNames[i], true);
+
+      // align sequences
+      DoAlign (sequences, model, thisInitDistrib, thisGapOpen, thisGapExtend, thisEmitPairs, thisEmitSingle);
+
+      // add in contribution of the derived parameters
+      for (int i = 0; i < (int) initDistrib.size(); i++) initDistrib[i] += thisInitDistrib[i];
+      for (int i = 0; i < (int) gapOpen.size(); i++) gapOpen[i] += thisGapOpen[i];
+      for (int i = 0; i < (int) gapExtend.size(); i++) gapExtend[i] += thisGapExtend[i];
+      if (enableTrainEmissions){
+	for (int i = 0; i < (int) emitPairs.size(); i++) 
+	  for (int j = 0; j < (int) emitPairs[i].size(); j++) emitPairs[i][j] += thisEmitPairs[i][j];
+	for (int i = 0; i < (int) emitSingle.size(); i++) emitSingle[i] += thisEmitSingle[i];
+      }
+
+      delete sequences;
+    }
+
+    // compute new parameters and print them out
+    for (int i = 0; i < (int) initDistrib.size(); i++) initDistrib[i] /= (int) sequenceNames.size();
+    for (int i = 0; i < (int) gapOpen.size(); i++) gapOpen[i] /= (int) sequenceNames.size();
+    for (int i = 0; i < (int) gapExtend.size(); i++) gapExtend[i] /= (int) sequenceNames.size();
+    if (enableTrainEmissions){
+      for (int i = 0; i < (int) emitPairs.size(); i++) 
+	for (int j = 0; j < (int) emitPairs[i].size(); j++) emitPairs[i][j] /= (int) sequenceNames.size();
+      for (int i = 0; i < (int) emitSingle.size(); i++) emitSingle[i] /= sequenceNames.size();
+    }
+    
+    PrintParameters ("Trained parameter set:",
+                     initDistrib, gapOpen, gapExtend, emitPairs, emitSingle,
+                     parametersOutputFilename.c_str());
+  }
+
+  // if we are not training, we must simply want to align some sequences
+  else {
+
+    // load all files together
+    MultiSequence *sequences = new MultiSequence(); assert (sequences);
+    for (int i = 0; i < (int) sequenceNames.size(); i++){
+      cerr << "Loading sequence file: " << sequenceNames[i] << endl;
+      sequences->LoadMFA (sequenceNames[i], true);
+    }
+
+    // do all "pre-training" repetitions first
+    for (int ct = 0; ct < numPreTrainingReps; ct++){
+      enableTraining = true;
+
+      // build new model for aligning
+      ProbabilisticModel model (initDistrib, gapOpen, gapExtend, 
+                                emitPairs, emitSingle);
+
+      // do initial alignments
+      DoAlign (sequences, model, initDistrib, gapOpen, gapExtend, emitPairs, emitSingle);
+
+      // print new parameters
+      PrintParameters ("Recomputed parameter set:", initDistrib, gapOpen, gapExtend, emitPairs, emitSingle, NULL);
+
+      enableTraining = false;
+    }
+
+    // now, we can perform the alignments and write them out
+    MultiSequence *alignment = DoAlign (sequences,
+                                        ProbabilisticModel (initDistrib, gapOpen, gapExtend,  emitPairs, emitSingle),
+                                        initDistrib, gapOpen, gapExtend, emitPairs, emitSingle);
+    
+    if (!enableAllPairs){
+      if (enableClustalWOutput)
+	alignment->WriteALN (cout);
+      else
+	alignment->WriteMFA (cout);
+    }
+    delete alignment;
+    delete sequences;
+   
+  }
+}
+
+/////////////////////////////////////////////////////////////////
+// PrintHeading()
+//
+// Prints heading for PROBCONS program.
+/////////////////////////////////////////////////////////////////
+
+void PrintHeading (){
+  cerr << endl
+       << "PROBCONS version " << VERSION << " - align multiple protein sequences and print to standard output" << endl
+       << "Written by Chuong Do" << endl
+       << endl;
+}
+
+/////////////////////////////////////////////////////////////////
+// PrintParameters()
+//
+// Prints PROBCONS parameters to STDERR.  If a filename is
+// specified, then the parameters are also written to the file.
+/////////////////////////////////////////////////////////////////
+
+void PrintParameters (const char *message, const VF &initDistrib, const VF &gapOpen,
+                      const VF &gapExtend, const VVF &emitPairs, const VF &emitSingle, const char *filename){
+
+  // print parameters to the screen
+  cerr << message << endl
+       << "    initDistrib[] = { ";
+  for (int i = 0; i < NumMatrixTypes; i++) cerr << setprecision (10) << initDistrib[i] << " ";
+  cerr << "}" << endl
+       << "        gapOpen[] = { ";
+  for (int i = 0; i < NumInsertStates*2; i++) cerr << setprecision (10) << gapOpen[i] << " ";
+  cerr << "}" << endl
+       << "      gapExtend[] = { ";
+  for (int i = 0; i < NumInsertStates*2; i++) cerr << setprecision (10) << gapExtend[i] << " ";
+  cerr << "}" << endl
+       << endl;
+
+  /*
+  for (int i = 0; i < 5; i++){
+    for (int j = 0; j <= i; j++){
+      cerr << emitPairs[(unsigned char) alphabet[i]][(unsigned char) alphabet[j]] << " ";
+    }
+    cerr << endl;
+    }*/
+
+  // if a file name is specified
+  if (filename){
+
+    // attempt to open the file for writing
+    FILE *file = fopen (filename, "w");
+    if (!file){
+      cerr << "ERROR: Unable to write parameter file: " << filename << endl;
+      exit (1);
+    }
+
+    // if successful, then write the parameters to the file
+    for (int i = 0; i < NumMatrixTypes; i++) fprintf (file, "%.10f ", initDistrib[i]); fprintf (file, "\n");
+    for (int i = 0; i < 2*NumInsertStates; i++) fprintf (file, "%.10f ", gapOpen[i]); fprintf (file, "\n");
+    for (int i = 0; i < 2*NumInsertStates; i++) fprintf (file, "%.10f ", gapExtend[i]); fprintf (file, "\n");
+    fprintf (file, "%s\n", alphabet.c_str());
+    for (int i = 0; i < (int) alphabet.size(); i++){
+      for (int j = 0; j <= i; j++)
+	fprintf (file, "%.10f ", emitPairs[(unsigned char) alphabet[i]][(unsigned char) alphabet[j]]);
+      fprintf (file, "\n");
+    }
+    for (int i = 0; i < (int) alphabet.size(); i++)
+      fprintf (file, "%.10f ", emitSingle[(unsigned char) alphabet[i]]);
+    fprintf (file, "\n");
+    fclose (file);
+  }
+}
+
+/////////////////////////////////////////////////////////////////
+// DoAlign()
+//
+// First computes all pairwise posterior probability matrices.
+// Then, computes new parameters if training, or a final
+// alignment, otherwise.
+/////////////////////////////////////////////////////////////////
+
+MultiSequence *DoAlign (MultiSequence *sequences, const ProbabilisticModel &model, VF &initDistrib, VF &gapOpen, 
+			VF &gapExtend, VVF &emitPairs, VF &emitSingle){
+
+  assert (sequences);
+
+  const int numSeqs = sequences->GetNumSequences();
+  VVF distances (numSeqs, VF (numSeqs, 0));
+  SafeVector<SafeVector<SparseMatrix *> > sparseMatrices (numSeqs, SafeVector<SparseMatrix *>(numSeqs, NULL));
+
+
+
+  if (enableTraining){
+    // prepare to average parameters
+    for (int i = 0; i < (int) initDistrib.size(); i++) initDistrib[i] = 0;
+    for (int i = 0; i < (int) gapOpen.size(); i++) gapOpen[i] = 0;
+    for (int i = 0; i < (int) gapExtend.size(); i++) gapExtend[i] = 0;
+    if (enableTrainEmissions){
+      for (int i = 0; i < (int) emitPairs.size(); i++)
+	for (int j = 0; j < (int) emitPairs[i].size(); j++) emitPairs[i][j] = 0;
+      for (int i = 0; i < (int) emitSingle.size(); i++) emitSingle[i] = 0;
+    }
+  }
+
+  // skip posterior calculations if we just want to do Viterbi alignments
+  if (!enableViterbi){
+
+    // do all pairwise alignments for posterior probability matrices
+    for (int a = 0; a < numSeqs-1; a++){
+      for (int b = a+1; b < numSeqs; b++){
+	Sequence *seq1 = sequences->GetSequence (a);
+	Sequence *seq2 = sequences->GetSequence (b);
+	
+	// verbose output
+	if (enableVerbose)
+	  cerr << "Computing posterior matrix: (" << a+1 << ") " << seq1->GetHeader() << " vs. "
+	       << "(" << b+1 << ") " << seq2->GetHeader() << " -- ";
+	
+	// compute forward and backward probabilities
+	VF *forward = model.ComputeForwardMatrix (seq1, seq2); assert (forward);
+	VF *backward = model.ComputeBackwardMatrix (seq1, seq2); assert (backward);
+	
+	// if we are training, then we'll simply want to compute the
+	// expected counts for each region within the matrix separately;
+	// otherwise, we'll need to put all of the regions together and
+	// assemble a posterior probability match matrix
+	
+	// so, if we're training
+	if (enableTraining){
+	  
+	  // compute new parameters
+	  VF thisInitDistrib (NumMatrixTypes);
+	  VF thisGapOpen (2*NumInsertStates);
+	  VF thisGapExtend (2*NumInsertStates);
+	  VVF thisEmitPairs (256, VF (256, 1e-10));
+	  VF thisEmitSingle (256, 1e-5);
+	  
+	  model.ComputeNewParameters (seq1, seq2, *forward, *backward, thisInitDistrib, thisGapOpen, thisGapExtend, thisEmitPairs, thisEmitSingle, enableTrainEmissions);
+
+	  // add in contribution of the derived parameters
+	  for (int i = 0; i < (int) initDistrib.size(); i++) initDistrib[i] += thisInitDistrib[i];
+	  for (int i = 0; i < (int) gapOpen.size(); i++) gapOpen[i] += thisGapOpen[i];
+	  for (int i = 0; i < (int) gapExtend.size(); i++) gapExtend[i] += thisGapExtend[i];
+	  if (enableTrainEmissions){
+	    for (int i = 0; i < (int) emitPairs.size(); i++) 
+	      for (int j = 0; j < (int) emitPairs[i].size(); j++) emitPairs[i][j] += thisEmitPairs[i][j];
+	    for (int i = 0; i < (int) emitSingle.size(); i++) emitSingle[i] += thisEmitSingle[i];
+	  }
+
+	  // let us know that we're done.
+	  if (enableVerbose) cerr << "done." << endl;
+	}
+	else {
+
+	  // compute posterior probability matrix
+	  VF *posterior = model.ComputePosteriorMatrix (seq1, seq2, *forward, *backward); assert (posterior);
+
+	  // compute sparse representations
+	  sparseMatrices[a][b] = new SparseMatrix (seq1->GetLength(), seq2->GetLength(), *posterior);
+	  sparseMatrices[b][a] = NULL; 
+	  
+	  if (!enableAllPairs){
+	    // perform the pairwise sequence alignment
+	    pair<SafeVector<char> *, float> alignment = model.ComputeAlignment (seq1->GetLength(),
+										seq2->GetLength(),
+										*posterior);
+	    
+	    // compute "expected accuracy" distance for evolutionary tree computation
+	    float distance = alignment.second / min (seq1->GetLength(), seq2->GetLength());
+	    distances[a][b] = distances[b][a] = distance;
+	    
+	    if (enableVerbose)
+	      cerr << setprecision (10) << distance << endl;
+	    
+	      delete alignment.first;
+	  }
+	  else {
+	    // let us know that we're done.
+	    if (enableVerbose) cerr << "done." << endl;
+	  }
+	  
+	  delete posterior;
+	}
+	
+	delete forward;
+	delete backward;
+      }
+    }
+  }
+
+  // now average out parameters derived
+  if (enableTraining){
+
+    // compute new parameters
+    for (int i = 0; i < (int) initDistrib.size(); i++) initDistrib[i] /= numSeqs * (numSeqs - 1) / 2;
+    for (int i = 0; i < (int) gapOpen.size(); i++) gapOpen[i] /= numSeqs * (numSeqs - 1) / 2;
+    for (int i = 0; i < (int) gapExtend.size(); i++) gapExtend[i] /= numSeqs * (numSeqs - 1) / 2;
+
+    if (enableTrainEmissions){
+      for (int i = 0; i < (int) emitPairs.size(); i++)
+	for (int j = 0; j < (int) emitPairs[i].size(); j++) emitPairs[i][j] /= numSeqs * (numSeqs - 1) / 2;
+      for (int i = 0; i < (int) emitSingle.size(); i++) emitSingle[i] /= numSeqs * (numSeqs - 1) / 2;
+    }
+  }
+
+  // see if we still want to do some alignments
+  else {
+
+    if (!enableViterbi){
+      
+      // perform the consistency transformation the desired number of times
+      for (int r = 0; r < numConsistencyReps; r++){
+	SafeVector<SafeVector<SparseMatrix *> > newSparseMatrices = DoRelaxation (sequences, sparseMatrices);
+
+	// now replace the old posterior matrices
+	for (int i = 0; i < numSeqs; i++){
+	  for (int j = 0; j < numSeqs; j++){
+	    delete sparseMatrices[i][j];
+	    sparseMatrices[i][j] = newSparseMatrices[i][j];
+	  }
+	}
+      }
+    }
+
+    MultiSequence *finalAlignment = NULL;
+
+    if (enableAllPairs){
+      for (int a = 0; a < numSeqs-1; a++){
+	for (int b = a+1; b < numSeqs; b++){
+	  Sequence *seq1 = sequences->GetSequence (a);
+	  Sequence *seq2 = sequences->GetSequence (b);
+	  
+	  if (enableVerbose)
+	    cerr << "Performing pairwise alignment: (" << a+1 << ") " << seq1->GetHeader() << " vs. "
+		 << "(" << b+1 << ") " << seq2->GetHeader() << " -- ";
+
+	  
+	  // perform the pairwise sequence alignment
+	  pair<SafeVector<char> *, float> alignment;
+	  if (enableViterbi)
+	    alignment = model.ComputeViterbiAlignment (seq1, seq2);
+	  else {
+
+	    // build posterior matrix
+	    VF *posterior = sparseMatrices[a][b]->GetPosterior(); assert (posterior);
+	    int length = (seq1->GetLength() + 1) * (seq2->GetLength() + 1);
+	    for (int i = 0; i < length; i++) (*posterior)[i] -= cutoff;
+
+	    alignment = model.ComputeAlignment (seq1->GetLength(), seq2->GetLength(), *posterior);
+	    delete posterior;
+	  }
+
+	  // write pairwise alignments 
+	  string name = seq1->GetHeader() + "-" + seq2->GetHeader() + (enableClustalWOutput ? ".aln" : ".fasta");
+	  ofstream outfile (name.c_str());
+	  
+	  MultiSequence *result = new MultiSequence();
+	  result->AddSequence (seq1->AddGaps(alignment.first, 'X'));
+	  result->AddSequence (seq2->AddGaps(alignment.first, 'Y'));
+	  if (enableClustalWOutput)
+	    result->WriteALN (outfile);
+	  else
+	    result->WriteMFA (outfile);
+	  
+	  outfile.close();
+	  
+	  delete alignment.first;
+	}
+      }
+    }
+    
+    // now if we still need to do a final multiple alignment
+    else {
+      
+      if (enableVerbose)
+	cerr << endl;
+      
+      // compute the evolutionary tree
+      TreeNode *tree = TreeNode::ComputeTree (distances);
+      
+      tree->Print (cerr, sequences);
+      cerr << endl;
+      
+      // make the final alignment
+      finalAlignment = ComputeFinalAlignment (tree, sequences, sparseMatrices, model);
+      
+      // build annotation
+      if (enableAnnotation){
+	WriteAnnotation (finalAlignment, sparseMatrices);
+      }
+
+      delete tree;
+    }
+
+    if (!enableViterbi){
+      // delete sparse matrices
+      for (int a = 0; a < numSeqs-1; a++){
+	for (int b = a+1; b < numSeqs; b++){
+	  delete sparseMatrices[a][b];
+	  delete sparseMatrices[b][a];
+	}
+      }
+    }
+
+    return finalAlignment;
+  }
+
+  return NULL;
+}
+
+/////////////////////////////////////////////////////////////////
+// GetInteger()
+//
+// Attempts to parse an integer from the character string given.
+// Returns true only if no parsing error occurs.
+/////////////////////////////////////////////////////////////////
+
+bool GetInteger (char *data, int *val){
+  char *endPtr;
+  long int retVal;
+
+  assert (val);
+
+  errno = 0;
+  retVal = strtol (data, &endPtr, 0);
+  if (retVal == 0 && (errno != 0 || data == endPtr)) return false;
+  if (errno != 0 && (retVal == LONG_MAX || retVal == LONG_MIN)) return false;
+  if (retVal < (long) INT_MIN || retVal > (long) INT_MAX) return false;
+  *val = (int) retVal;
+  return true;
+}
+
+/////////////////////////////////////////////////////////////////
+// GetFloat()
+//
+// Attempts to parse a float from the character string given.
+// Returns true only if no parsing error occurs.
+/////////////////////////////////////////////////////////////////
+
+bool GetFloat (char *data, float *val){
+  char *endPtr;
+  double retVal;
+
+  assert (val);
+
+  errno = 0;
+  retVal = strtod (data, &endPtr);
+  if (retVal == 0 && (errno != 0 || data == endPtr)) return false;
+  if (errno != 0 && (retVal >= 1000000.0 || retVal <= -1000000.0)) return false;
+  *val = (float) retVal;
+  return true;
+}
+
+/////////////////////////////////////////////////////////////////
+// ParseParams()
+//
+// Parse all command-line options.
+/////////////////////////////////////////////////////////////////
+
+SafeVector<string> ParseParams (int argc, char **argv){
+
+  if (argc < 2){
+
+    cerr << "PROBCONS comes with ABSOLUTELY NO WARRANTY.  This is free software, and" << endl
+         << "you are welcome to redistribute it under certain conditions.  See the" << endl
+         << "file COPYING.txt for details." << endl
+         << endl
+         << "Usage:" << endl
+         << "       probcons [OPTION]... [MFAFILE]..." << endl
+         << endl
+         << "Description:" << endl
+         << "       Align sequences in MFAFILE(s) and print result to standard output" << endl
+         << endl
+         << "       -clustalw" << endl
+         << "              use CLUSTALW output format instead of MFA" << endl
+         << endl
+         << "       -c, --consistency REPS" << endl
+         << "              use " << MIN_CONSISTENCY_REPS << " <= REPS <= " << MAX_CONSISTENCY_REPS
+         << " (default: " << numConsistencyReps << ") passes of consistency transformation" << endl
+         << endl
+         << "       -ir, --iterative-refinement REPS" << endl
+         << "              use " << MIN_ITERATIVE_REFINEMENT_REPS << " <= REPS <= " << MAX_ITERATIVE_REFINEMENT_REPS
+         << " (default: " << numIterativeRefinementReps << ") passes of iterative-refinement" << endl
+         << endl
+	 << "       -pre, --pre-training REPS" << endl
+	 << "              use " << MIN_PRETRAINING_REPS << " <= REPS <= " << MAX_PRETRAINING_REPS
+	 << " (default: " << numPreTrainingReps << ") rounds of pretraining" << endl
+	 << endl
+	 << "       -pairs" << endl
+         << "              generate all-pairs pairwise alignments" << endl
+         << endl
+	 << "       -viterbi" << endl
+	 << "              use Viterbi algorithm to generate all pairs (automatically enables -pairs)" << endl
+	 << endl
+         << "       -v, --verbose" << endl
+         << "              report progress while aligning (default: " << (enableVerbose ? "on" : "off") << ")" << endl
+         << endl
+         << "       -annot FILENAME" << endl
+         << "              write annotation for multiple alignment to FILENAME" << endl
+         << endl
+         << "       -t, --train FILENAME" << endl
+         << "              compute EM transition probabilities, store in FILENAME (default: "
+         << parametersOutputFilename << ")" << endl
+         << endl
+         << "       -e, --emissions" << endl
+         << "              also reestimate emission probabilities (default: "
+         << (enableTrainEmissions ? "on" : "off") << ")" << endl
+         << endl
+	 << "       -p, --paramfile FILENAME" << endl
+	 << "              read parameters from FILENAME (default: "
+	 << parametersInputFilename << ")" << endl
+	 << endl
+	 << "       -a, --alignment-order" << endl
+	 << "              print sequences in alignment order rather than input order (default: "
+	 << (enableAlignOrder ? "on" : "off") << ")" << endl
+	 << endl;
+    //     	 << "       -go, --gap-open VALUE" << endl
+    //     	 << "              gap opening penalty of VALUE <= 0 (default: " << gapOpenPenalty << ")" << endl
+    //	 << endl
+    //	 << "       -ge, --gap-extension VALUE" << endl
+    //	 << "              gap extension penalty of VALUE <= 0 (default: " << gapContinuePenalty << ")" << endl
+    //	 << endl
+    //         << "       -co, --cutoff CUTOFF" << endl
+    //         << "              subtract 0 <= CUTOFF <= 1 (default: " << cutoff << ") from all posterior values before final alignment" << endl
+    //         << endl
+    
+    exit (1);
+  }
+
+  SafeVector<string> sequenceNames;
+  int tempInt;
+  float tempFloat;
+
+  for (int i = 1; i < argc; i++){
+    if (argv[i][0] == '-'){
+
+      // training
+      if (!strcmp (argv[i], "-t") || !strcmp (argv[i], "--train")){
+        enableTraining = true;
+        if (i < argc - 1)
+          parametersOutputFilename = string (argv[++i]);
+        else {
+          cerr << "ERROR: Filename expected for option " << argv[i] << endl;
+          exit (1);
+        }
+      }
+      
+      // emission training
+      else if (!strcmp (argv[i], "-e") || !strcmp (argv[i], "--emissions")){
+        enableTrainEmissions = true;
+      }
+
+      // parameter file
+      else if (!strcmp (argv[i], "-p") || !strcmp (argv[i], "--paramfile")){
+        if (i < argc - 1)
+          parametersInputFilename = string (argv[++i]);
+        else {
+          cerr << "ERROR: Filename expected for option " << argv[i] << endl;
+          exit (1);
+        }
+      }
+
+      // number of consistency transformations
+      else if (!strcmp (argv[i], "-c") || !strcmp (argv[i], "--consistency")){
+        if (i < argc - 1){
+          if (!GetInteger (argv[++i], &tempInt)){
+            cerr << "ERROR: Invalid integer following option " << argv[i-1] << ": " << argv[i] << endl;
+            exit (1);
+          }
+          else {
+            if (tempInt < MIN_CONSISTENCY_REPS || tempInt > MAX_CONSISTENCY_REPS){
+              cerr << "ERROR: For option " << argv[i-1] << ", integer must be between "
+                   << MIN_CONSISTENCY_REPS << " and " << MAX_CONSISTENCY_REPS << "." << endl;
+              exit (1);
+            }
+            else
+              numConsistencyReps = tempInt;
+          }
+        }
+        else {
+          cerr << "ERROR: Integer expected for option " << argv[i] << endl;
+          exit (1);
+        }
+      }
+
+      // number of randomized partitioning iterative refinement passes
+      else if (!strcmp (argv[i], "-ir") || !strcmp (argv[i], "--iterative-refinement")){
+        if (i < argc - 1){
+          if (!GetInteger (argv[++i], &tempInt)){
+            cerr << "ERROR: Invalid integer following option " << argv[i-1] << ": " << argv[i] << endl;
+            exit (1);
+          }
+          else {
+            if (tempInt < MIN_ITERATIVE_REFINEMENT_REPS || tempInt > MAX_ITERATIVE_REFINEMENT_REPS){
+              cerr << "ERROR: For option " << argv[i-1] << ", integer must be between "
+                   << MIN_ITERATIVE_REFINEMENT_REPS << " and " << MAX_ITERATIVE_REFINEMENT_REPS << "." << endl;
+              exit (1);
+            }
+            else
+              numIterativeRefinementReps = tempInt;
+          }
+        }
+        else {
+          cerr << "ERROR: Integer expected for option " << argv[i] << endl;
+          exit (1);
+        }
+      }
+
+      // number of EM pre-training rounds
+      else if (!strcmp (argv[i], "-pre") || !strcmp (argv[i], "--pre-training")){
+        if (i < argc - 1){
+          if (!GetInteger (argv[++i], &tempInt)){
+            cerr << "ERROR: Invalid integer following option " << argv[i-1] << ": " << argv[i] << endl;
+            exit (1);
+          }
+          else {
+            if (tempInt < MIN_PRETRAINING_REPS || tempInt > MAX_PRETRAINING_REPS){
+              cerr << "ERROR: For option " << argv[i-1] << ", integer must be between "
+                   << MIN_PRETRAINING_REPS << " and " << MAX_PRETRAINING_REPS << "." << endl;
+              exit (1);
+            }
+            else
+              numPreTrainingReps = tempInt;
+          }
+        }
+        else {
+          cerr << "ERROR: Integer expected for option " << argv[i] << endl;
+          exit (1);
+        }
+      }
+
+      // gap open penalty
+      else if (!strcmp (argv[i], "-go") || !strcmp (argv[i], "--gap-open")){
+        if (i < argc - 1){
+          if (!GetFloat (argv[++i], &tempFloat)){
+            cerr << "ERROR: Invalid floating-point value following option " << argv[i-1] << ": " << argv[i] << endl;
+            exit (1);
+          }
+          else {
+            if (tempFloat > 0){
+              cerr << "ERROR: For option " << argv[i-1] << ", floating-point value must not be positive." << endl;
+              exit (1);
+            }
+            else
+              gapOpenPenalty = tempFloat;
+          }
+        }
+        else {
+          cerr << "ERROR: Floating-point value expected for option " << argv[i] << endl;
+          exit (1);
+        }
+      }
+
+      // gap extension penalty
+      else if (!strcmp (argv[i], "-ge") || !strcmp (argv[i], "--gap-extension")){
+        if (i < argc - 1){
+          if (!GetFloat (argv[++i], &tempFloat)){
+            cerr << "ERROR: Invalid floating-point value following option " << argv[i-1] << ": " << argv[i] << endl;
+            exit (1);
+          }
+          else {
+            if (tempFloat > 0){
+              cerr << "ERROR: For option " << argv[i-1] << ", floating-point value must not be positive." << endl;
+              exit (1);
+            }
+            else
+              gapContinuePenalty = tempFloat;
+          }
+        }
+        else {
+          cerr << "ERROR: Floating-point value expected for option " << argv[i] << endl;
+          exit (1);
+        }
+      }
+
+      // all-pairs pairwise alignments
+      else if (!strcmp (argv[i], "-pairs")){
+        enableAllPairs = true;
+      }
+
+      // all-pairs pairwise Viterbi alignments
+      else if (!strcmp (argv[i], "-viterbi")){
+        enableAllPairs = true;
+	enableViterbi = true;
+      }
+
+      // annotation files
+      else if (!strcmp (argv[i], "-annot")){
+        enableAnnotation = true;
+        if (i < argc - 1)
+	  annotationFilename = argv[++i];
+        else {
+          cerr << "ERROR: FILENAME expected for option " << argv[i] << endl;
+          exit (1);
+        }
+      }
+
+      // clustalw output format
+      else if (!strcmp (argv[i], "-clustalw")){
+	enableClustalWOutput = true;
+      }
+
+      // cutoff
+      else if (!strcmp (argv[i], "-co") || !strcmp (argv[i], "--cutoff")){
+        if (i < argc - 1){
+          if (!GetFloat (argv[++i], &tempFloat)){
+            cerr << "ERROR: Invalid floating-point value following option " << argv[i-1] << ": " << argv[i] << endl;
+            exit (1);
+          }
+          else {
+            if (tempFloat < 0 || tempFloat > 1){
+              cerr << "ERROR: For option " << argv[i-1] << ", floating-point value must be between 0 and 1." << endl;
+              exit (1);
+            }
+            else
+              cutoff = tempFloat;
+          }
+        }
+        else {
+          cerr << "ERROR: Floating-point value expected for option " << argv[i] << endl;
+          exit (1);
+        }
+      }
+
+      // verbose reporting
+      else if (!strcmp (argv[i], "-v") || !strcmp (argv[i], "--verbose")){
+        enableVerbose = true;
+      }
+
+      // alignment order
+      else if (!strcmp (argv[i], "-a") || !strcmp (argv[i], "--alignment-order")){
+	enableAlignOrder = true;
+      }
+
+      // bad arguments
+      else {
+        cerr << "ERROR: Unrecognized option: " << argv[i] << endl;
+        exit (1);
+      }
+    }
+    else {
+      sequenceNames.push_back (string (argv[i]));
+    }
+  }
+
+  if (enableTrainEmissions && !enableTraining){
+    cerr << "ERROR: Training emissions (-e) requires training (-t)" << endl;
+    exit (1);
+  }
+
+  return sequenceNames;
+}
+
+/////////////////////////////////////////////////////////////////
+// ReadParameters()
+//
+// Read initial distribution, transition, and emission
+// parameters from a file.
+/////////////////////////////////////////////////////////////////
+
+void ReadParameters (){
+
+  ifstream data;
+
+  emitPairs = VVF (256, VF (256, 1e-10));
+  emitSingle = VF (256, 1e-5);
+
+  // read initial state distribution and transition parameters
+  if (parametersInputFilename == string ("")){
+    if (NumInsertStates == 1){
+      for (int i = 0; i < NumMatrixTypes; i++) initDistrib[i] = initDistrib1Default[i];
+      for (int i = 0; i < 2*NumInsertStates; i++) gapOpen[i] = gapOpen1Default[i];
+      for (int i = 0; i < 2*NumInsertStates; i++) gapExtend[i] = gapExtend1Default[i];
+    }
+    else if (NumInsertStates == 2){
+      for (int i = 0; i < NumMatrixTypes; i++) initDistrib[i] = initDistrib2Default[i];
+      for (int i = 0; i < 2*NumInsertStates; i++) gapOpen[i] = gapOpen2Default[i];
+      for (int i = 0; i < 2*NumInsertStates; i++) gapExtend[i] = gapExtend2Default[i];
+    }
+    else {
+      cerr << "ERROR: No default initial distribution/parameter settings exist" << endl
+           << "       for " << NumInsertStates << " pairs of insert states.  Use --paramfile." << endl;
+      exit (1);
+    }
+
+    alphabet = alphabetDefault;
+
+    for (int i = 0; i < (int) alphabet.length(); i++){
+      emitSingle[(unsigned char) tolower(alphabet[i])] = emitSingleDefault[i];
+      emitSingle[(unsigned char) toupper(alphabet[i])] = emitSingleDefault[i];
+      for (int j = 0; j <= i; j++){
+	emitPairs[(unsigned char) tolower(alphabet[i])][(unsigned char) tolower(alphabet[j])] = emitPairsDefault[i][j];
+	emitPairs[(unsigned char) tolower(alphabet[i])][(unsigned char) toupper(alphabet[j])] = emitPairsDefault[i][j];
+	emitPairs[(unsigned char) toupper(alphabet[i])][(unsigned char) tolower(alphabet[j])] = emitPairsDefault[i][j];
+	emitPairs[(unsigned char) toupper(alphabet[i])][(unsigned char) toupper(alphabet[j])] = emitPairsDefault[i][j];
+	emitPairs[(unsigned char) tolower(alphabet[j])][(unsigned char) tolower(alphabet[i])] = emitPairsDefault[i][j];
+	emitPairs[(unsigned char) tolower(alphabet[j])][(unsigned char) toupper(alphabet[i])] = emitPairsDefault[i][j];
+	emitPairs[(unsigned char) toupper(alphabet[j])][(unsigned char) tolower(alphabet[i])] = emitPairsDefault[i][j];
+	emitPairs[(unsigned char) toupper(alphabet[j])][(unsigned char) toupper(alphabet[i])] = emitPairsDefault[i][j];
+      }
+    }
+  }
+  else {
+    data.open (parametersInputFilename.c_str());
+    if (data.fail()){
+      cerr << "ERROR: Unable to read parameter file: " << parametersInputFilename << endl;
+      exit (1);
+    }
+    
+    string line[3];
+    for (int i = 0; i < 3; i++){
+      if (!getline (data, line[i])){
+	cerr << "ERROR: Unable to read transition parameters from parameter file: " << parametersInputFilename << endl;
+	exit (1);
+      }
+    }
+    istringstream data2;
+    data2.clear(); data2.str (line[0]); for (int i = 0; i < NumMatrixTypes; i++) data2 >> initDistrib[i];
+    data2.clear(); data2.str (line[1]); for (int i = 0; i < 2*NumInsertStates; i++) data2 >> gapOpen[i];
+    data2.clear(); data2.str (line[2]); for (int i = 0; i < 2*NumInsertStates; i++) data2 >> gapExtend[i];
+
+    if (!getline (data, line[0])){
+      cerr << "ERROR: Unable to read alphabet from scoring matrix file: " << parametersInputFilename << endl;
+      exit (1);
+    }
+    
+    // read alphabet as concatenation of all characters on alphabet line
+    alphabet = "";
+    string token;
+    data2.clear(); data2.str (line[0]); while (data2 >> token) alphabet += token;
+
+    for (int i = 0; i < (int) alphabet.size(); i++){
+      for (int j = 0; j <= i; j++){
+	float val;
+        data >> val;
+	emitPairs[(unsigned char) tolower(alphabet[i])][(unsigned char) tolower(alphabet[j])] = val;
+	emitPairs[(unsigned char) tolower(alphabet[i])][(unsigned char) toupper(alphabet[j])] = val;
+	emitPairs[(unsigned char) toupper(alphabet[i])][(unsigned char) tolower(alphabet[j])] = val;
+	emitPairs[(unsigned char) toupper(alphabet[i])][(unsigned char) toupper(alphabet[j])] = val;
+	emitPairs[(unsigned char) tolower(alphabet[j])][(unsigned char) tolower(alphabet[i])] = val;
+	emitPairs[(unsigned char) tolower(alphabet[j])][(unsigned char) toupper(alphabet[i])] = val;
+	emitPairs[(unsigned char) toupper(alphabet[j])][(unsigned char) tolower(alphabet[i])] = val;
+	emitPairs[(unsigned char) toupper(alphabet[j])][(unsigned char) toupper(alphabet[i])] = val;
+      }
+    }
+
+    for (int i = 0; i < (int) alphabet.size(); i++){
+      float val;
+      data >> val;
+      emitSingle[(unsigned char) tolower(alphabet[i])] = val;
+      emitSingle[(unsigned char) toupper(alphabet[i])] = val;
+    }
+    data.close();
+  }
+}
+
+/////////////////////////////////////////////////////////////////
+// ProcessTree()
+//
+// Process the tree recursively.  Returns the aligned sequences
+// corresponding to a node or leaf of the tree.
+/////////////////////////////////////////////////////////////////
+
+MultiSequence *ProcessTree (const TreeNode *tree, MultiSequence *sequences,
+                            const SafeVector<SafeVector<SparseMatrix *> > &sparseMatrices,
+                            const ProbabilisticModel &model){
+  MultiSequence *result;
+
+  // check if this is a node of the alignment tree
+  if (tree->GetSequenceLabel() == -1){
+    MultiSequence *alignLeft = ProcessTree (tree->GetLeftChild(), sequences, sparseMatrices, model);
+    MultiSequence *alignRight = ProcessTree (tree->GetRightChild(), sequences, sparseMatrices, model);
+
+    assert (alignLeft);
+    assert (alignRight);
+
+    result = AlignAlignments (alignLeft, alignRight, sparseMatrices, model);
+    assert (result);
+
+    delete alignLeft;
+    delete alignRight;
+  }
+
+  // otherwise, this is a leaf of the alignment tree
+  else {
+    result = new MultiSequence(); assert (result);
+    result->AddSequence (sequences->GetSequence(tree->GetSequenceLabel())->Clone());
+  }
+
+  return result;
+}
+
+/////////////////////////////////////////////////////////////////
+// ComputeFinalAlignment()
+//
+// Compute the final alignment by calling ProcessTree(), then
+// performing iterative refinement as needed.
+/////////////////////////////////////////////////////////////////
+
+MultiSequence *ComputeFinalAlignment (const TreeNode *tree, MultiSequence *sequences,
+                                      const SafeVector<SafeVector<SparseMatrix *> > &sparseMatrices,
+                                      const ProbabilisticModel &model){
+
+  MultiSequence *alignment = ProcessTree (tree, sequences, sparseMatrices, model);
+
+  if (enableAlignOrder){
+    alignment->SaveOrdering();
+    enableAlignOrder = false;
+  }
+
+  // tree-based refinement
+  // TreeBasedBiPartitioning (sparseMatrices, model, alignment, tree);
+
+  // iterative refinement
+  for (int i = 0; i < numIterativeRefinementReps; i++)
+    DoIterativeRefinement (sparseMatrices, model, alignment);
+
+  cerr << endl;
+
+  // return final alignment
+  return alignment;
+}
+
+/////////////////////////////////////////////////////////////////
+// AlignAlignments()
+//
+// Returns the alignment of two MultiSequence objects.
+/////////////////////////////////////////////////////////////////
+
+MultiSequence *AlignAlignments (MultiSequence *align1, MultiSequence *align2,
+                                const SafeVector<SafeVector<SparseMatrix *> > &sparseMatrices,
+                                const ProbabilisticModel &model){
+
+  // print some info about the alignment
+  if (enableVerbose){
+    for (int i = 0; i < align1->GetNumSequences(); i++)
+      cerr << ((i==0) ? "[" : ",") << align1->GetSequence(i)->GetLabel();
+    cerr << "] vs. ";
+    for (int i = 0; i < align2->GetNumSequences(); i++)
+      cerr << ((i==0) ? "[" : ",") << align2->GetSequence(i)->GetLabel();
+    cerr << "]: ";
+  }
+
+  VF *posterior = model.BuildPosterior (align1, align2, sparseMatrices, cutoff);
+  pair<SafeVector<char> *, float> alignment;
+
+  // choose the alignment routine depending on the "cosmetic" gap penalties used
+  if (gapOpenPenalty == 0 && gapContinuePenalty == 0)
+    alignment = model.ComputeAlignment (align1->GetSequence(0)->GetLength(), align2->GetSequence(0)->GetLength(), *posterior);
+  else
+    alignment = model.ComputeAlignmentWithGapPenalties (align1, align2,
+                                                        *posterior, align1->GetNumSequences(), align2->GetNumSequences(),
+                                                        gapOpenPenalty, gapContinuePenalty);
+
+  delete posterior;
+
+  if (enableVerbose){
+
+    // compute total length of sequences
+    int totLength = 0;
+    for (int i = 0; i < align1->GetNumSequences(); i++)
+      for (int j = 0; j < align2->GetNumSequences(); j++)
+        totLength += min (align1->GetSequence(i)->GetLength(), align2->GetSequence(j)->GetLength());
+
+    // give an "accuracy" measure for the alignment
+    cerr << alignment.second / totLength << endl;
+  }
+
+  // now build final alignment
+  MultiSequence *result = new MultiSequence();
+  for (int i = 0; i < align1->GetNumSequences(); i++)
+    result->AddSequence (align1->GetSequence(i)->AddGaps(alignment.first, 'X'));
+  for (int i = 0; i < align2->GetNumSequences(); i++)
+    result->AddSequence (align2->GetSequence(i)->AddGaps(alignment.first, 'Y'));
+  if (!enableAlignOrder)
+    result->SortByLabel();
+
+  // free temporary alignment
+  delete alignment.first;
+
+  return result;
+}
+
+/////////////////////////////////////////////////////////////////
+// DoRelaxation()
+//
+// Performs one round of the consistency transformation.  The
+// formula used is:
+//                     1
+//    P'(x[i]-y[j]) = ---  sum   sum P(x[i]-z[k]) P(z[k]-y[j])
+//                    |S| z in S  k
+//
+// where S = {x, y, all other sequences...}
+//
+/////////////////////////////////////////////////////////////////
+
+SafeVector<SafeVector<SparseMatrix *> > DoRelaxation (MultiSequence *sequences, 
+						      SafeVector<SafeVector<SparseMatrix *> > &sparseMatrices){
+  const int numSeqs = sequences->GetNumSequences();
+
+  SafeVector<SafeVector<SparseMatrix *> > newSparseMatrices (numSeqs, SafeVector<SparseMatrix *>(numSeqs, NULL));
+
+  // for every pair of sequences
+  for (int i = 0; i < numSeqs; i++){
+    for (int j = i+1; j < numSeqs; j++){
+      Sequence *seq1 = sequences->GetSequence (i);
+      Sequence *seq2 = sequences->GetSequence (j);
+
+      if (enableVerbose)
+        cerr << "Relaxing (" << i+1 << ") " << seq1->GetHeader() << " vs. "
+             << "(" << j+1 << ") " << seq2->GetHeader() << ": ";
+
+      // get the original posterior matrix
+      VF *posteriorPtr = sparseMatrices[i][j]->GetPosterior(); assert (posteriorPtr);
+      VF &posterior = *posteriorPtr;
+
+      const int seq1Length = seq1->GetLength();
+      const int seq2Length = seq2->GetLength();
+
+      // contribution from the summation where z = x and z = y
+      for (int k = 0; k < (seq1Length+1) * (seq2Length+1); k++) posterior[k] += posterior[k];
+
+      if (enableVerbose)
+        cerr << sparseMatrices[i][j]->GetNumCells() << " --> ";
+
+      // contribution from all other sequences
+      for (int k = 0; k < numSeqs; k++) if (k != i && k != j){
+	if (k < i)
+	  Relax1 (sparseMatrices[k][i], sparseMatrices[k][j], posterior);
+	else if (k > i && k < j)
+	  Relax (sparseMatrices[i][k], sparseMatrices[k][j], posterior);
+	else {
+	  SparseMatrix *temp = sparseMatrices[j][k]->ComputeTranspose();
+	  Relax (sparseMatrices[i][k], temp, posterior);
+	  delete temp;
+	}
+      }
+
+      // now renormalization
+      for (int k = 0; k < (seq1Length+1) * (seq2Length+1); k++) posterior[k] /= numSeqs;
+
+      // mask out positions not originally in the posterior matrix
+      SparseMatrix *matXY = sparseMatrices[i][j];
+      for (int y = 0; y <= seq2Length; y++) posterior[y] = 0;
+      for (int x = 1; x <= seq1Length; x++){
+	SafeVector<PIF>::iterator XYptr = matXY->GetRowPtr(x);
+	SafeVector<PIF>::iterator XYend = XYptr + matXY->GetRowSize(x);
+	VF::iterator base = posterior.begin() + x * (seq2Length + 1);
+	int curr = 0;
+	while (XYptr != XYend){
+
+	  // zero out all cells until the first filled column
+	  while (curr < XYptr->first){
+	    base[curr] = 0;
+	    curr++;
+	  }
+
+	  // now, skip over this column
+	  curr++;
+	  ++XYptr;
+	}
+	
+	// zero out cells after last column
+	while (curr <= seq2Length){
+	  base[curr] = 0;
+	  curr++;
+	}
+      }
+
+      // save the new posterior matrix
+      newSparseMatrices[i][j] = new SparseMatrix (seq1->GetLength(), seq2->GetLength(), posterior);
+      newSparseMatrices[j][i] = NULL;
+
+      if (enableVerbose)
+        cerr << newSparseMatrices[i][j]->GetNumCells() << " -- ";
+
+      delete posteriorPtr;
+
+      if (enableVerbose)
+        cerr << "done." << endl;
+    }
+  }
+  
+  return newSparseMatrices;
+}
+
+/////////////////////////////////////////////////////////////////
+// Relax()
+//
+// Computes the consistency transformation for a single sequence
+// z, and adds the transformed matrix to "posterior".
+/////////////////////////////////////////////////////////////////
+
+void Relax (SparseMatrix *matXZ, SparseMatrix *matZY, VF &posterior){
+
+  assert (matXZ);
+  assert (matZY);
+
+  int lengthX = matXZ->GetSeq1Length();
+  int lengthY = matZY->GetSeq2Length();
+  assert (matXZ->GetSeq2Length() == matZY->GetSeq1Length());
+
+  // for every x[i]
+  for (int i = 1; i <= lengthX; i++){
+    SafeVector<PIF>::iterator XZptr = matXZ->GetRowPtr(i);
+    SafeVector<PIF>::iterator XZend = XZptr + matXZ->GetRowSize(i);
+
+    VF::iterator base = posterior.begin() + i * (lengthY + 1);
+
+    // iterate through all x[i]-z[k]
+    while (XZptr != XZend){
+      SafeVector<PIF>::iterator ZYptr = matZY->GetRowPtr(XZptr->first);
+      SafeVector<PIF>::iterator ZYend = ZYptr + matZY->GetRowSize(XZptr->first);
+      const float XZval = XZptr->second;
+
+      // iterate through all z[k]-y[j]
+      while (ZYptr != ZYend){
+        base[ZYptr->first] += XZval * ZYptr->second;
+        ZYptr++;
+      }
+      XZptr++;
+    }
+  }
+}
+
+/////////////////////////////////////////////////////////////////
+// Relax1()
+//
+// Computes the consistency transformation for a single sequence
+// z, and adds the transformed matrix to "posterior".
+/////////////////////////////////////////////////////////////////
+
+void Relax1 (SparseMatrix *matZX, SparseMatrix *matZY, VF &posterior){
+
+  assert (matZX);
+  assert (matZY);
+
+  int lengthZ = matZX->GetSeq1Length();
+  int lengthY = matZY->GetSeq2Length();
+
+  // for every z[k]
+  for (int k = 1; k <= lengthZ; k++){
+    SafeVector<PIF>::iterator ZXptr = matZX->GetRowPtr(k);
+    SafeVector<PIF>::iterator ZXend = ZXptr + matZX->GetRowSize(k);
+
+    // iterate through all z[k]-x[i]
+    while (ZXptr != ZXend){
+      SafeVector<PIF>::iterator ZYptr = matZY->GetRowPtr(k);
+      SafeVector<PIF>::iterator ZYend = ZYptr + matZY->GetRowSize(k);
+      const float ZXval = ZXptr->second;
+      VF::iterator base = posterior.begin() + ZXptr->first * (lengthY + 1);
+
+      // iterate through all z[k]-y[j]
+      while (ZYptr != ZYend){
+        base[ZYptr->first] += ZXval * ZYptr->second;
+        ZYptr++;
+      }
+      ZXptr++;
+    }
+  }
+}
+
+/////////////////////////////////////////////////////////////////
+// GetSubtree
+//
+// Returns set containing all leaf labels of the current subtree.
+/////////////////////////////////////////////////////////////////
+
+set<int> GetSubtree (const TreeNode *tree){
+  set<int> s;
+
+  if (tree->GetSequenceLabel() == -1){
+    s = GetSubtree (tree->GetLeftChild());
+    set<int> t = GetSubtree (tree->GetRightChild());
+
+    for (set<int>::iterator iter = t.begin(); iter != t.end(); ++iter)
+      s.insert (*iter);
+  }
+  else {
+    s.insert (tree->GetSequenceLabel());
+  }
+
+  return s;
+}
+
+/////////////////////////////////////////////////////////////////
+// TreeBasedBiPartitioning
+//
+// Uses the iterative refinement scheme from MUSCLE.
+/////////////////////////////////////////////////////////////////
+
+void TreeBasedBiPartitioning (const SafeVector<SafeVector<SparseMatrix *> > &sparseMatrices,
+                              const ProbabilisticModel &model, MultiSequence* &alignment,
+                              const TreeNode *tree){
+  // check if this is a node of the alignment tree
+  if (tree->GetSequenceLabel() == -1){
+    TreeBasedBiPartitioning (sparseMatrices, model, alignment, tree->GetLeftChild());
+    TreeBasedBiPartitioning (sparseMatrices, model, alignment, tree->GetRightChild());
+
+    set<int> leftSubtree = GetSubtree (tree->GetLeftChild());
+    set<int> rightSubtree = GetSubtree (tree->GetRightChild());
+    set<int> leftSubtreeComplement, rightSubtreeComplement;
+
+    // calculate complement of each subtree
+    for (int i = 0; i < alignment->GetNumSequences(); i++){
+      if (leftSubtree.find(i) == leftSubtree.end()) leftSubtreeComplement.insert (i);
+      if (rightSubtree.find(i) == rightSubtree.end()) rightSubtreeComplement.insert (i);
+    }
+
+    // perform realignments for edge to left child
+    if (!leftSubtree.empty() && !leftSubtreeComplement.empty()){
+      MultiSequence *groupOneSeqs = alignment->Project (leftSubtree); assert (groupOneSeqs);
+      MultiSequence *groupTwoSeqs = alignment->Project (leftSubtreeComplement); assert (groupTwoSeqs);
+      delete alignment;
+      alignment = AlignAlignments (groupOneSeqs, groupTwoSeqs, sparseMatrices, model);
+    }
+
+    // perform realignments for edge to right child
+    if (!rightSubtree.empty() && !rightSubtreeComplement.empty()){
+      MultiSequence *groupOneSeqs = alignment->Project (rightSubtree); assert (groupOneSeqs);
+      MultiSequence *groupTwoSeqs = alignment->Project (rightSubtreeComplement); assert (groupTwoSeqs);
+      delete alignment;
+      alignment = AlignAlignments (groupOneSeqs, groupTwoSeqs, sparseMatrices, model);
+    }
+  }
+}
+
+/////////////////////////////////////////////////////////////////
+// DoIterativeRefinement()
+//
+// Performs a single round of randomized partionining iterative
+// refinement.
+/////////////////////////////////////////////////////////////////
+
+void DoIterativeRefinement (const SafeVector<SafeVector<SparseMatrix *> > &sparseMatrices,
+                            const ProbabilisticModel &model, MultiSequence* &alignment){
+  set<int> groupOne, groupTwo;
+
+  // create two separate groups
+  for (int i = 0; i < alignment->GetNumSequences(); i++){
+    if (rand() % 2)
+      groupOne.insert (i);
+    else
+      groupTwo.insert (i);
+  }
+
+  if (groupOne.empty() || groupTwo.empty()) return;
+
+  // project into the two groups
+  MultiSequence *groupOneSeqs = alignment->Project (groupOne); assert (groupOneSeqs);
+  MultiSequence *groupTwoSeqs = alignment->Project (groupTwo); assert (groupTwoSeqs);
+  delete alignment;
+
+  // realign
+  alignment = AlignAlignments (groupOneSeqs, groupTwoSeqs, sparseMatrices, model);
+
+  delete groupOneSeqs;
+  delete groupTwoSeqs;
+}
+
+/////////////////////////////////////////////////////////////////
+// WriteAnnotation()
+//
+// Computes annotation for multiple alignment and write values
+// to a file.
+/////////////////////////////////////////////////////////////////
+
+void WriteAnnotation (MultiSequence *alignment, 
+		      const SafeVector<SafeVector<SparseMatrix *> > &sparseMatrices){
+  ofstream outfile (annotationFilename.c_str());
+  
+  if (outfile.fail()){
+    cerr << "ERROR: Unable to write annotation file." << endl;
+    exit (1);
+  }
+
+  const int alignLength = alignment->GetSequence(0)->GetLength();
+  const int numSeqs = alignment->GetNumSequences();
+  
+  SafeVector<int> position (numSeqs, 0);
+  SafeVector<SafeVector<char>::iterator> seqs (numSeqs);
+  for (int i = 0; i < numSeqs; i++) seqs[i] = alignment->GetSequence(i)->GetDataPtr();
+  SafeVector<pair<int,int> > active;
+  active.reserve (numSeqs);
+  
+  // for every column
+  for (int i = 1; i <= alignLength; i++){
+    
+    // find all aligned residues in this particular column
+    active.clear();
+    for (int j = 0; j < numSeqs; j++){
+      if (seqs[j][i] != '-'){
+	active.push_back (make_pair(j, ++position[j]));
+      }
+    }
+    
+    outfile << setw(4) << ComputeScore (active, sparseMatrices) << endl;
+  }
+  
+  outfile.close();
+}
+
+/////////////////////////////////////////////////////////////////
+// ComputeScore()
+//
+// Computes the annotation score for a particular column.
+/////////////////////////////////////////////////////////////////
+
+int ComputeScore (const SafeVector<pair<int, int> > &active, 
+		  const SafeVector<SafeVector<SparseMatrix *> > &sparseMatrices){
+
+  if (active.size() <= 1) return 0;
+  
+  // ALTERNATIVE #1: Compute the average alignment score.
+
+  float val = 0;
+  for (int i = 0; i < (int) active.size(); i++){
+    for (int j = i+1; j < (int) active.size(); j++){
+      val += sparseMatrices[active[i].first][active[j].first]->GetValue(active[i].second, active[j].second);
+    }
+  }
+
+  return (int) (200 * val / ((int) active.size() * ((int) active.size() - 1)));
+  
+}

Added: trunk/packages/probcons/trunk/debian/README.Debian
===================================================================
--- trunk/packages/probcons/trunk/debian/README.Debian	2006-05-07 14:56:01 UTC (rev 43)
+++ trunk/packages/probcons/trunk/debian/README.Debian	2006-05-07 15:00:41 UTC (rev 44)
@@ -0,0 +1,13 @@
+probcons for Debian
+-------------------
+
+* The "compare" program has been renamed "pc-compare" because there is already
+  a "compare" program in another Debian package.
+
+* This package contains an additionnal binary which is not in the original
+  distribution of ProbCons: probcons-RNA. It is an experimental version of
+  ProbCons compiled with parameters estimated via unsupervised training on
+  BRAliBASE. The parameters were downloaded from a separate archive:
+  http://probcons.stanford.edu/probconsRNA.tar.gz
+
+ -- Charles Plessy <charles-debian-nospam at plessy.org>, Wed,  3 May 2006 09:20:57 +0900

Added: trunk/packages/probcons/trunk/debian/changelog
===================================================================
--- trunk/packages/probcons/trunk/debian/changelog	2006-05-07 14:56:01 UTC (rev 43)
+++ trunk/packages/probcons/trunk/debian/changelog	2006-05-07 15:00:41 UTC (rev 44)
@@ -0,0 +1,6 @@
+probcons (1.10-1) unstable; urgency=low
+
+  * Initial release Closes: #365499
+
+ -- Charles Plessy <charles-debian-nospam at plessy.org>  Wed,  3 May 2006 09:20:57 +0900
+

Added: trunk/packages/probcons/trunk/debian/compat
===================================================================
--- trunk/packages/probcons/trunk/debian/compat	2006-05-07 14:56:01 UTC (rev 43)
+++ trunk/packages/probcons/trunk/debian/compat	2006-05-07 15:00:41 UTC (rev 44)
@@ -0,0 +1 @@
+4

Added: trunk/packages/probcons/trunk/debian/control
===================================================================
--- trunk/packages/probcons/trunk/debian/control	2006-05-07 14:56:01 UTC (rev 43)
+++ trunk/packages/probcons/trunk/debian/control	2006-05-07 15:00:41 UTC (rev 44)
@@ -0,0 +1,25 @@
+Source: probcons
+Section: science
+Priority: optional
+Maintainer: Charles Plessy <charles-debian-nospam at plessy.org>
+Build-Depends: debhelper (>= 4.0.0), xsltproc, docbook-xml, docbook-xsl, sharutils
+Standards-Version: 3.7.2
+
+Package: probcons
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Suggests: gnuplot-nox | gnuplot-x11
+Description: PROBabilistic CONSistency-based multiple sequence alignment
+ PROBCONS is a tool for generating multiple alignments of protein
+ sequences. Using a combination of probabilistic modeling and
+ consistency-based alignment techniques, PROBCONS has achieved the
+ highest accuracies of all alignment methods to date. On the BAliBASE
+ benchmark alignment database, alignments produced by PROBCONS show
+ statistically significant improvement over current programs, containing
+ an average of 7% more correctly aligned columns than those of T-Coffee,
+ 11% more correctly aligned columns than those of CLUSTAL W, and 14%
+ more correctly aligned columns than those of DIALIGN. Probcons is
+ published in  Do, C.B., Mahabhashyam, M.S.P., Brudno, M., and
+ Batzoglou, S. 2005.  Genome Research 15: 330-340.
+ .
+ Homepage: http://probcons.stanford.edu/

Added: trunk/packages/probcons/trunk/debian/copyright
===================================================================
--- trunk/packages/probcons/trunk/debian/copyright	2006-05-07 14:56:01 UTC (rev 43)
+++ trunk/packages/probcons/trunk/debian/copyright	2006-05-07 15:00:41 UTC (rev 44)
@@ -0,0 +1,13 @@
+This package was debianized by Charles Plessy
+<charles-debian-nospam at plessy.org> on Wed,  3 May 2006. The packaging and the
+manpages work are in the public domain unless stated otherwise.
+
+ProbCons was downloaded from http://probcons.stanford.edu/probcons_v1_10.tar.gz
+The modified files for RNA alignment were downloaded from http://probcons.stanford.edu/probconsRNA.tar.gz
+The ProbCons manual was downloaded from http://probcons.stanford.edu/manual.pdf
+
+This software is in the public domain.
+
+ProbCons was written by by Chuong Do <chuongdo at cs.stanford.edu> in
+collaboration with Michael Brudno in the research group of Serafim Batzoglou,
+Department of Computer Science, Stanford University.

Added: trunk/packages/probcons/trunk/debian/dirs
===================================================================
--- trunk/packages/probcons/trunk/debian/dirs	2006-05-07 14:56:01 UTC (rev 43)
+++ trunk/packages/probcons/trunk/debian/dirs	2006-05-07 15:00:41 UTC (rev 44)
@@ -0,0 +1 @@
+usr/bin

Added: trunk/packages/probcons/trunk/debian/docs
===================================================================
--- trunk/packages/probcons/trunk/debian/docs	2006-05-07 14:56:01 UTC (rev 43)
+++ trunk/packages/probcons/trunk/debian/docs	2006-05-07 15:00:41 UTC (rev 44)
@@ -0,0 +1,2 @@
+README
+manual.pdf

Added: trunk/packages/probcons/trunk/debian/install
===================================================================
--- trunk/packages/probcons/trunk/debian/install	2006-05-07 14:56:01 UTC (rev 43)
+++ trunk/packages/probcons/trunk/debian/install	2006-05-07 15:00:41 UTC (rev 44)
@@ -0,0 +1,6 @@
+probcons 	usr/bin/
+probcons-RNA	usr/bin/
+project		usr/bin/
+makegnuplot	usr/bin/
+pc-compare	usr/bin/
+

Added: trunk/packages/probcons/trunk/debian/makegnuplot.1.xml
===================================================================
--- trunk/packages/probcons/trunk/debian/makegnuplot.1.xml	2006-05-07 14:56:01 UTC (rev 43)
+++ trunk/packages/probcons/trunk/debian/makegnuplot.1.xml	2006-05-07 15:00:41 UTC (rev 44)
@@ -0,0 +1,75 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+"/usr/share/xml/docbook/schema/dtd/4.4/docbookx.dtd" [
+
+  <!ENTITY dhfirstname "<firstname>Plessy</firstname>">
+  <!ENTITY dhsurname   "<surname>Plessy</surname>">
+  <!ENTITY dhdate      "<date>mai 3, 2006</date>">
+  <!ENTITY dhsection   "<manvolnum>1</manvolnum>">
+  <!ENTITY dhemail     "<email>charles-debian-nospam at plessy.org</email>">
+  <!ENTITY dhusername  "Charles Plessy">
+  <!ENTITY dhucpackage "<refentrytitle>PROBCONS</refentrytitle>">
+  <!ENTITY dhpackage   "makegnuplot">
+  <!ENTITY debian      "<productname>Debian</productname>">
+  <!ENTITY gnu         "<acronym>GNU</acronym>">
+  <!ENTITY gpl         "&gnu; <acronym>GPL</acronym>">
+]>
+
+<refentry>
+  <refentryinfo>
+    <address>
+      &dhemail;
+    </address>
+<!--     <author>
+      &dhfirstname;
+      &dhsurname;
+    </author>  -->
+    <copyright>
+      <year>2006</year>
+      <holder>&dhusername;</holder>
+    </copyright>
+    &dhdate;
+  </refentryinfo>
+  <refmeta>
+    &dhucpackage;
+
+    &dhsection;
+  </refmeta>
+  <refnamediv>
+    <refname>&dhpackage;</refname>
+
+    <refpurpose>Utility to plot annotation scores.</refpurpose>
+  </refnamediv>
+  <refsynopsisdiv>
+    <cmdsynopsis>
+      <command>&dhpackage;</command>
+      <arg><replaceable>annotscores</replaceable></arg>
+      <arg choice="opt">-refscores</arg>
+    </cmdsynopsis>
+  </refsynopsisdiv>
+  <refsect1>
+    <title>SEE ALSO</title>
+    <para>pc-compare (1), project (1) and probcons (1), which are distributed together with probcons.</para>
+  </refsect1>
+
+  <refsect1>
+    <title>REFERENCE</title>
+    <para>Please cite  Do, C.B., Mahabhashyam, M.S.P., Brudno, M., and Batzoglou, S. 2005. PROBCONS: Probabilistic Consistency-based Multiple Sequence Alignment. Genome Research 15: 330-340.</para>
+  </refsect1>
+
+  <refsect1>
+    <title>AUTHORS</title>
+
+    <para>&dhpackage; was written by Chuong Do <email>chuongdo at cs.stanford.edu</email>in collaboration with Michael Brudno in the research group of Serafim Batzoglou, Department of Computer Science, Stanford University.</para>
+    
+    <para>This manual page was written by &dhusername; &dhemail; for the &debian; system (but may be used by others).
+    </para>
+
+  </refsect1>
+  
+  <refsect1>
+    <title>LICENCE</title>
+    <para>This program and its manpage are in the public domain.</para>
+  </refsect1>
+
+</refentry>

Added: trunk/packages/probcons/trunk/debian/manpages
===================================================================
--- trunk/packages/probcons/trunk/debian/manpages	2006-05-07 14:56:01 UTC (rev 43)
+++ trunk/packages/probcons/trunk/debian/manpages	2006-05-07 15:00:41 UTC (rev 44)
@@ -0,0 +1,5 @@
+debian/makegnuplot.1
+debian/pc-compare.1
+debian/probcons.1
+debian/probcons-RNA.1
+debian/project.1

Added: trunk/packages/probcons/trunk/debian/manual.pdf.ascii
===================================================================
--- trunk/packages/probcons/trunk/debian/manual.pdf.ascii	2006-05-07 14:56:01 UTC (rev 43)
+++ trunk/packages/probcons/trunk/debian/manual.pdf.ascii	2006-05-07 15:00:41 UTC (rev 44)
@@ -0,0 +1,1636 @@
+begin 644 manual.pdf
+M)5!$1BTQ+C0-)>+CS],-"C8Q(#`@;V)J/#PO2%LV-38@,S<T72],:6YE87)I
+M>F5D(#$O12`Q-SDX,"],(#<S-#0T+TX@,3(O3R`V-"]4(#<R,3<W/CX-96YD
+M;V)J#2`@("`@("`@("`@("`@("`@("`@#0IX<F5F#0HV,2`Q.`T*,#`P,#`P
+M,#`Q-B`P,#`P,"!N#0HP,#`P,#`Q,#,P(#`P,#`P(&X-"C`P,#`P,#`V-38@
+M,#`P,#`@;@T*,#`P,#`P,3$Q,"`P,#`P,"!N#0HP,#`P,#`Q,C,Y(#`P,#`P
+M(&X-"C`P,#`P,#$T,3(@,#`P,#`@;@T*,#`P,#`P,3 at V-B`P,#`P,"!N#0HP
+M,#`P,#`Q.3`P(#`P,#`P(&X-"C`P,#`P,#(Q,S8@,#`P,#`@;@T*,#`P,#`P
+M,C(Q,B`P,#`P,"!N#0HP,#`P,#`R.3<V(#`P,#`P(&X-"C`P,#`P,#,U,#,@
+M,#`P,#`@;@T*,#`P,#`P,S<R-"`P,#`P,"!N#0HP,#`P,#`T,30P(#`P,#`P
+M(&X-"C`P,#`P,#0S-C<@,#`P,#`@;@T*,#`P,#`P-#<S,2`P,#`P,"!N#0HP
+M,#`P,#`T.3<S(#`P,#`P(&X-"C`P,#`P,#<V-#(@,#`P,#`@;@T*=')A:6QE
+M<@T*/#PO4VEZ92`W.2]0<F5V(#<R,38V+U)O;W0 at -C(@,"!2+TEN9F\@-C`@
+M,"!2+TE$6SPV-V1B9&$S,#`U.35D,F%A8V(X93$U.6(S.&$U9#%F.3X\-V9A
+M-C`S-30Y93<U.34T.3DX.#,Q-V(W-3$S,V1A,34^73X^#0IS=&%R='AR968-
+M"C`-"B4E14]&#0H@("`@("`@("`@("`@#0HV,R`P(&]B:CP\+TQE;F=T:"`R
+M.3,O1FEL=&5R+T9L871E1&5C;V1E+TP@,S0V+U,@,C8W/CYS=')E86T-"GC:
+M8F!@8&9 at 8'K`P,+`P,K+P,>``'P,K$#(PL!Q at -D`R/V<TOG`^/X[41$&!@'G
+MNSPGS`I%F.?'B'U7+6BZ]@"JQ8B3/2ABT\'/DY.,.%983=;<DB+$MV3JARDO
+M;O0T!7DUGRI?.PLH8;/LX at 37H%03V<4*$TI5-LW[<J=866'*W!R@!)@U:<&G
+MV6Z."J\\4\W`VO8)S4YB8!!4"FT`V<$:EM'`P"@H;`'B*+E$``49!4730&(2
+M0%6"2B!5C$(:'4 at T6`JH&J(VH@&K7X`*-!@8]LX&TOQ`+`OVD1(#'V,-QX9,
+M8#!I,"W8UOB6Z8WX`P-'+V:');L$&)XQ_C-W,&A\QYC`?T#I8'W^%LX$>X8$
+M9AYH<)@Q,'*":"8 at M@8(,`"_B5Y5#0IE;F1S=')E86T-96YD;V)J#38R(#`@
+M;V)J/#PO4&%G97, at -38@,"!2+U1Y<&4O0V%T86QO9R]086=E3&%B96QS(#4T
+M(#`@4B]-971A9&%T82`U.2`P(%(^/@UE;F1O8FH--C0@,"!O8FH\/"]#;VYT
+M96YT<R`W,"`P(%(O5'EP92]086=E+U!A<F5N="`U-R`P(%(O4F]T871E(#`O
+M365D:6%";WA;,"`P(#8Q,B`W.3)=+T-R;W!";WA;,"`P(#8Q,B`W.3)=+U)E
+M<V]U<F-E<R`V-2`P(%(^/@UE;F1O8FH--C4@,"!O8FH\/"]#;VQO<E-P86-E
+M/#PO0W,V(#8W(#`@4CX^+T9O;G0\/"]45#(@-C8@,"!2+U14-"`W,2`P(%(O
+M5%0V(#<S(#`@4B]45#@@-S4@,"!2/CXO6$]B:F5C=#P\+TEM,2`W."`P(%(^
+M/B]0<F]C4V5T6R]01$8O5&5X="]);6%G94-=+T5X=$=3=&%T93P\+T=3,2`V
+M.2`P(%(^/CX^#65N9&]B:@TV-B`P(&]B:CP\+U1Y<&4O1F]N="]%;F-O9&EN
+M9R]7:6Y!;G-I16YC;V1I;F<O0F%S949O;G0O07)I86PM271A;&EC350O1FER
+M<W1#:&%R(#,R+TQA<W1#:&%R(#$R,2]3=6)T>7!E+U1R=654>7!E+T9O;G1$
+M97-C<FEP=&]R(#8X(#`@4B]7:61T:'-;,C<X(#`@,"`P(#`@,"`P(#`@,S,S
+M(#,S,R`P(#`@,C<X(#,S,R`R-S@@,C<X(#4U-B`U-38 at -34V(#4U-B`U-38@
+M-34V(#4U-B`U-38 at -34V(#4U-B`R-S@@,"`P(#`@,"`P(#`@-C8W(#8V-R`W
+M,C(@-S(R(#8V-R`V,3$@-S<X(#`@,C<X(#`@,"`U-38 at .#,S(#<R,B`W-S@@
+M-C8W(#`@-S(R(#8V-R`V,3$@-S(R(#8V-R`Y-#0@,"`P(#`@,"`P(#`@,"`P
+M(#`@-34V(#4U-B`U,#`@-34V(#4U-B`R-S@@-34V(#4U-B`R,C(@,C(R(#`@
+M,C(R(#@S,R`U-38 at -34V(#4U-B`U-38@,S,S(#4P,"`R-S@@-34V(#4P,"`W
+M,C(@-3`P(#4P,%T^/@UE;F1O8FH--C<@,"!O8FI;+TE#0T)A<V5D(#<W(#`@
+M4ET-96YD;V)J#38X(#`@;V)J/#PO5'EP92]&;VYT1&5S8W)I<'1O<B]&;VYT
+M0D)O>%LM-3$W("TS,C4@,3`X,B`Y.3A=+T9O;G1.86UE+T%R:6%L+4ET86QI
+M8TU4+T9L86=S(#DV+U-T96U6(#@U+C at V,S`P-R]#87!(96EG:'0 at -S$X+UA(
+M96EG:'0 at -3$U+T%S8V5N="`Y,#4O1&5S8V5N="`M,C$Q+TET86QI8T%N9VQE
+M("TQ-2]&;VYT1F%M:6QY*$%R:6%L*2]&;VYT4W1R971C:"].;W)M86PO1F]N
+M=%=E:6=H="`T,#`^/@UE;F1O8FH--CD@,"!O8FH\/"]4>7!E+T5X=$=3=&%T
+M92]302!F86QS92]/4"!F86QS92]332`P+C`R+V]P(&9A;'-E+T]032`Q/CX-
+M96YD;V)J#3<P(#`@;V)J/#PO3&5N9W1H(#8Y-2]&:6QT97(O1FQA=&5$96-O
+M9&4^/G-T<F5A;0T*2(F,5-MNTT`0??=7[.,:R9.]>2]OJ"E"($H+=>&AXL%U
+MG`MJ'(A3H?X]L[N.[;@!55'LL7?FS,XY9SU[?\O)JDTNBF16%()P4BP3`\X2
+MAK\0*&:`$Z,LY)KA^C:9S5M-JM:G@,"_=)I9TE9-PDA1^<N?A-ZDQ<]$@XI(
+M(5!<@%(G4/3K]85/G+04(?\D<7X&3PH0IW at 9`\9\6"7W]/ISFCE0]#;]47R<
+MME`:Y&EM*-6^-*((/\<])=_J?;M),XZ#TEU#.."P:68 at I]M4X[5LGORCH.4C
+M"9WP at 5N6D\PZ8"9'G,L(+@,]W0X]]DVYJI'SW9)P03Z5+7;A]$#N?BW*0[T@
+M=N:!-95\)F)'QE3L at 6JIJ!96^JGPYG`V9L&%8<AJK`;Q[#&2<>"YWTY\4;R9
+M!EP#Z_!"A)!:.;`Z:!!2I`[K>/.+**D>+?9`[XKD=R(Y[ID[9UTH\5Q+YYPD
+M7"%?&)J<Y#P'[KDQI$)K?=AR<KE+OG2.U''&H:?2"HR.54/;@0TAC@/$2**B
+MRBE0HTUF`BR3-K"A#/=\9(/X(3*!M:!\+SE6C at N="[I..![VC%V<&:=F$X,%
+M?]&[MMZ3*_10^7A.`&DX*#PYWJ91UQ?]NE.+_NP,'B-41S$)6 at R#=P:0_W-`
+M'X1D(T5O7RZ'LZ'"#K[O-X=#W9"'YU&%T/8<,8@;*NWT#%R5Z_*PWB`':9:#
+MH^OR85VVZ^<R]0=,XKGJ'6_CI*/O#[[PWYTCN.N;WM/M-@*_K5IH#V6SW'E\
+M0_>I`$X74"^>`BXZ%:D21@'"*P4H'TI&]G6R//TL3 at D6TB<+8[P[QD>N<QF7
+MP+538QKI&9X\LR*4E<VBIVK`.<YF>N*B<>;KIUVSPL-R],$_V7FAY`E/5<!9
+M[%['$S?X-?!$Y9ZNUQ(5DBWBZ3-$(?!?`08`=\1J_`H-"F5N9'-T<F5A;0UE
+M;F1O8FH--S$@,"!O8FH\/"]4>7!E+T9O;G0O16YC;V1I;F<O5VEN06YS:45N
+M8V]D:6YG+T)A<V5&;VYT+T%R:6%L350O1FER<W1#:&%R(#,R+TQA<W1#:&%R
+M(#$U,"]3=6)T>7!E+U1R=654>7!E+T9O;G1$97-C<FEP=&]R(#<R(#`@4B]7
+M:61T:'-;,C<X(#(W."`S-34@,"`P(#`@,"`P(#,S,R`S,S,@,"`P(#(W."`S
+M,S,@,C<X(#(W."`U-38 at -34V(#4U-B`U-38 at -34V(#4U-B`U-38@,"`U-38@
+M,"`R-S@@,C<X(#`@,"`U.#0@,"`P(#8V-R`V-C<@-S(R(#<R,B`V-C<@-C$Q
+M(#<W."`W,C(@,C<X(#`@,"`U-38 at .#,S(#<R,B`W-S@@-C8W(#`@-S(R(#8V
+M-R`V,3$@-S(R(#8V-R`Y-#0 at -C8W(#8V-R`P(#`@,"`P(#`@,"`P(#4U-B`U
+M-38 at -3`P(#4U-B`U-38@,C<X(#4U-B`U-38@,C(R(#(R,B`U,#`@,C(R(#@S
+M,R`U-38 at -34V(#4U-B`U-38@,S,S(#4P,"`R-S@@-34V(#4P,"`W,C(@-3`P
+M(#4P,"`U,#`@,"`R-C`@,"`U.#0@,"`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@
+M,"`P(#`@,"`P(#`@,"`R,C(@,"`P(#`@-34V73X^#65N9&]B:@TW,B`P(&]B
+M:CP\+U1Y<&4O1F]N=$1E<V-R:7!T;W(O1F]N=$)";WA;+38V-2`M,S(U(#(P
+M,#`@,3`P-ETO1F]N=$YA;64O07)I86Q-5"]&;&%G<R`S,B]3=&5M5B`X."]#
+M87!(96EG:'0 at -S$X+UA(96EG:'0 at -3$U+T%S8V5N="`Y,#4O1&5S8V5N="`M
+M,C$Q+TET86QI8T%N9VQE(#`O1F]N=$9A;6EL>2A!<FEA;"DO1F]N=%-T<F5T
+M8V at O3F]R;6%L+T9O;G1796EG:'0 at -#`P/CX-96YD;V)J#3<S(#`@;V)J/#PO
+M5'EP92]&;VYT+T5N8V]D:6YG+U=I;D%N<VE%;F-O9&EN9R]"87-E1F]N="]!
+M<FEA;"U";VQD350O1FER<W1#:&%R(#,R+TQA<W1#:&%R(#$R,2]3=6)T>7!E
+M+U1R=654>7!E+T9O;G1$97-C<FEP=&]R(#<T(#`@4B]7:61T:'-;,C<X(#`@
+M,"`P(#`@,"`P(#`@,S,S(#,S,R`P(#`@,C<X(#,S,R`P(#(W."`P(#`@,"`P
+M(#`@,"`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@-S(R(#`@-S(R(#`@-C8W(#8Q
+M,2`W-S@@,"`R-S@@,"`P(#8Q,2`X,S, at -S(R(#<W."`V-C<@,"`W,C(@-C8W
+M(#`@-S(R(#`@.30T(#`@,"`P(#`@,"`P(#`@,"`P(#4U-B`V,3$@-34V(#8Q
+M,2`U-38@,S,S(#8Q,2`V,3$@,C<X(#`@,"`R-S@@.#@Y(#8Q,2`V,3$@-C$Q
+M(#`@,S at Y(#4U-B`S,S, at -C$Q(#4U-B`W-S@@-34V(#4U-ET^/@UE;F1O8FH-
+M-S0@,"!O8FH\/"]4>7!E+T9O;G1$97-C<FEP=&]R+T9O;G1"0F]X6RTV,C@@
+M+3,W-B`R,#`P(#$P,3!=+T9O;G1.86UE+T%R:6%L+4)O;&1-5"]&;&%G<R`S
+M,B]3=&5M5B`Q,S at O0V%P2&5I9VAT(#<Q."]82&5I9VAT(#4Q-2]!<V-E;G0@
+M.3`U+T1E<V-E;G0 at +3(Q,2])=&%L:6-!;F=L92`P+T9O;G1&86UI;'DH07)I
+M86PI+T9O;G13=')E=&-H+TYO<FUA;"]&;VYT5V5I9VAT(#<P,#X^#65N9&]B
+M:@TW-2`P(&]B:CP\+U1Y<&4O1F]N="]%;F-O9&EN9R]7:6Y!;G-I16YC;V1I
+M;F<O0F%S949O;G0O07)I86PM0F]L9$ET86QI8TU4+T9I<G-T0VAA<B`S,B],
+M87-T0VAA<B`Q,3<O4W5B='EP92]4<G5E5'EP92]&;VYT1&5S8W)I<'1O<B`W
+M-B`P(%(O5VED=&AS6S(W."`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@,"`P(#(W
+M."`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@.3<U(#`@,"`P
+M(#`@,"`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@
+M,"`P(#`@,"`P(#`@,"`U-38@,"`U-38 at -C$Q(#4U-B`S,S, at -C$Q(#8Q,2`R
+M-S@@,"`P(#`@.#@Y(#8Q,2`V,3$@,"`P(#,X.2`U-38@,S,S(#8Q,5T^/@UE
+M;F1O8FH--S8@,"!O8FH\/"]4>7!E+T9O;G1$97-C<FEP=&]R+T9O;G1"0F]X
+M6RTU-C`@+3,W-B`Q,34W(#$P,#!=+T9O;G1.86UE+T%R:6%L+4)O;&1)=&%L
+M:6--5"]&;&%G<R`Y-B]3=&5M5B`Q,S4N.#,Y.3DV+T-A<$AE:6=H="`W,3 at O
+M6$AE:6=H="`U,34O07-C96YT(#DP-2]$97-C96YT("TR,3$O271A;&EC06YG
+M;&4 at +3$U+T9O;G1&86UI;'DH07)I86PI+T9O;G13=')E=&-H+TYO<FUA;"]&
+M;VYT5V5I9VAT(#<P,#X^#65N9&]B:@TW-R`P(&]B:CP\+TQE;F=T:"`R-3<U
+M+T9I;'1E<B]&;&%T941E8V]D92].(#,O06QT97)N871E+T1E=FEC95)'0CX^
+M<W1R96%M#0I(B9R6>513=Q;'?V_)GI"5L,-C#5N`L`:0-6QAD1T$40A)"`$2
+M0DC8!4%$!11%1(2JE3+6;71&3T6=+JYCK0[6?>K2`_4PZN at XM!;7CIT7.$>=
+M3F>FT^\?[_<Y]W?O[]W?O?>=\P"@)Z6JM=4P"P"-UJ#/2HS%%A448J0)``,*
+M(`(1`#)YK2XM.R$'X)+&2[!:W`G\BYY>!Y!IO2),RL`P\/^)+=?I#0!`&3@'
+M*)2U<IP[<:ZJ-^A,]AF<>:65)H91$^OQ!'&V-+%JGKWG?.8YVL0*C5:!LREG
+MG4*C,/%IG%?7&94X(ZDX=]6IE?4X7\79I<JH4>/\W!2K4<IJ`4#I)KM!*2_'
+MV0]GNCXG2X+S`@#(=-4[7/H.&Y0-!M.E)-6Z1KU:56[`W.4>F"@T5(PE*>NK
+ME`:#,$,FKY3I%9BD6J.3:1L!F+_SG#BFVF)XD8-%H<'!0G\?T3N%^J^;OU"F
+MWL[3D\RYGD'\"V]M/^=7/0J`>!:OS?JWMM(M`(RO!,#RYEN;R_L`,/&^';[X
+MSGWXIGDI-QAT8;Z^]?7U/FJEW,=4T#?ZGPZ_0.^\S\=TW)OR8''*,IFQRH"9
+MZB:OKJHVZK%:G4RNQ(0_'>)?'?CS>7AG*<N4>J46C\C#ITRM5>'MUBK4!G6U
+M%E-K_U,3?V783S0_U[BX8Z\!K]@'L"[R`/*W"P#ET@!2M`W?@=[T+962!S+P
+M-=_AWOS<SPGZ]U/A/M.C5JV:BY-DY6!RH[YN?L_T60("H`(FX`$K8`^<@3L0
+M`G\0`L)!-(@'R2`=Y(`"L!3(03G0`#VH!RV@'72!'K`>;`+#8#L8`[O!?G`0
+MC(./P0GP1W`>?`FN at 5M@$DR#AV`&/`6O(`@B00R("UE!#I`KY`7Y0V(H$HJ'
+M4J$LJ``J at 520%C)"+=`*J`?JAX:A'=!NZ/?04>@$=`ZZ!'T%34$/H.^@ES`"
+MTV$>;`>[P;ZP&(Z!4^`<>`FL at FO@)K at 37@</P:/P/O at P?`(^#U^#)^&'\"P"
+M$!K"1QP1(2)&)$@Z4HB4(7JD%>E&!I%19#]R##F+7$$FD4?("Y2(<E$,%:+A
+M:!*:B\K1&K05[46'T5WH8?0T>@6=0F?0UP0&P9;@10 at C2`F+""I"/:&+,$C8
+M2?B(<(9PC3!->$HD$OE$`3&$F$0L(%80FXF]Q*W$`\3CQ$O$N\19$HED1?(B
+M19#223*2@=1%VD+:1_J,=)DT37I.II$=R/[D!'(A64ON(`^2]Y`_)5\FWR._
+MHK`HKI0P2CI%06FD]%'&*,<H%RG3E%=4-E5`C:#F4"NH[=0AZG[J&>IMZA,:
+MC>9$"Z5ETM2TY;0AVN]HG].F:"_H'+HG74(OHAOIZ^@?TH_3OZ(_83`8;HQH
+M1B'#P%C'V,TXQ?B:\=R,:^9C)C53F+69C9@=-KML]IA)8;HR8YA+F4W,0>8A
+MYD7F(Q:%Y<:2L&2L5M8(ZRCK!FN6S66+V.EL#;N7O8=]CGV?0^*X<>(Y"DXG
+MYP/.*<Y=+L)UYDJX<NX*[ACW#'>:1^0)>%)>!:^']UO>!&_&G&,>:)YGWF`^
+M8OZ)^20?X;OQI?PJ?A__(/\Z_Z6%G46,A=)BC<5^B\L6SRQM+*,ME9;=E@<L
+MKUF^M,*LXJTJK398C5O=L4:M/:TSK>NMMUF?L7YDP[,)MY';=-L<M+EI"]MZ
+MVF;9-MM^8'O!=M;.WB[13F>WQ>Z4W2-[OGVT?87]@/VG]@\<N`Z1#FJ'`8?/
+M'/Z*F6,Q6!4VA)W&9AQM'9,<C8X['"<<7SD)G'*=.IP..-UQICJ+G<N<!YQ/
+M.L^X.+BDN;2X['6YZ4IQ%;N6NVYV/>OZS$W at EN^VRFW<[;[`4B`5-`GV"FZ[
+M,]RCW&O<1]VO>A`]Q!Z5'EL]OO2$/8,\RSU'/"]ZP5[!7FJOK5Z7O`G>H=Y:
+M[U'O&T*Z,$98)]PKG/+A^Z3Z=/B,^SSV=?$M]-W@>];WM5^07Y7?F-\M$4>4
+M+.H0'1-]Y^_I+_<?\;\:P`A("&@+.!+P;:!7H#)P6^"?@[A!:4&K at DX&_2,X
+M)%@?O#_X08A+2$G(>R$WQ#QQAKA7_'DH(30VM"WTX]`78<%AAK"#87\/%X97
+MAN\)O[]`L$"Y8&S!W0BG"%G$CHC)2"RR)/+]R,DHQRA9U&C4-]'.T8KHG='W
+M8CQB*F+VQ3R.]8O5QWX4^TP2)EDF.1Z'Q"7&=<=-Q'/B<^.'X[].<$I0)>Q-
+MF$D,2FQ./)Y$2$I)VI!T0VHGE4MW2V>20Y*7)9].H:=DIPRG?)/JF:I//98&
+MIR6G;4R[O=!UH7;A>#I(EZ9O3+^3(<BHR?A#)C$S(W,D\R]9HJR6K+/9W.SB
+M[#W93W-B<_IR;N6ZYQIS3^8Q\XKR=N<]RX_+[\^?7.2[:-FB\P76!>J"(X6D
+MPKS"G86SB^,7;UH\7114U%5T?8E at 2<.2<TNMEU8M_:2862PK/E1"*,DOV5/R
+M at RQ=-BJ;+966OE<Z(Y?(-\L?*J(5`XH'R at AEO_)>6419?]E]581JH^I!>53Y
+M8/DCM40]K/ZV(JEB>\6SRO3*#RM_K,JO.J`A:THT1[4<;:7V=+5]=4/U)9V7
+MKDLW61-6LZEF1I^BWUD+U2ZI/6+ at X3]3%XSNQI7&J;K(NI&ZY_5Y]8<:V`W:
+MA at N-GHUK&N\U)33]IAEMEC>?;'%L:6^96A:S;$<KU%K:>K+-N:VS;7IYXO)=
+M[=3VRO8_=?AU]'=\OR)_Q;%.N\[EG7=7)J[<VV76I>^ZL2I\U?;5Z&KUZHDU
+M`6NVK'G=K>C^HL>O9[#GAUYY[Q=K16N'UOZXKFS=1%]PW[;UQ/7:]=<W1&W8
+MU<_N;^J_NS%MX^$!;*![X/M-Q9O.#08.;M],W6S</#F4^D\`I`%;_IBXF229
+MD)G\FFB:U9M"FZ^<')R)G/>=9)W2GD">KI\=GXN?^J!IH-BA1Z&VHB:BEJ,&
+MHW:CYJ16I,>E.*6IIAJFBZ;]IVZGX*A2J,2I-ZFIJARJCZL"JW6KZ:Q<K-"M
+M1*VXKBVNH:\6KXNP`+!UL.JQ8+'6LDNRPK,XLZZT);2<M1.UBK8!MGFV\+=H
+MM^"X6;C1N4JYPKH[NK6[+KNGO"&\F[T5O8^^"KZ$OO^_>K_UP'#`[,%GP>/"
+M7\+;PUC#U,11Q,[%2\7(QD;&P\=!Q[_(/<B\R3K)N<HXRK?+-LNVS#7,M<TU
+MS;7.-LZVSS?/N-`YT+K1/-&^TC_2P=-$T\;42=3+U4[5T=95UMC77-?@V&38
+MZ-ELV?':=MK[VX#<!=R*W1#=EMX<WJ+?*=^OX#;@O>%$X<SB4^+;XV/CZ^1S
+MY/SEA.8-YI;G'^>IZ#+HO.E&Z=#J6^KEZW#K^^R&[1'MG.XH[K3O0._,\%CP
+MY?%R\?_RC/,9\Z?T-/3"]5#UWO9M]OOWBO at 9^*CY./G'^E?ZY_MW_`?\F/TI
+M_;K^2_[<_VW__P(,`/>$\_L*#0IE;F1S=')E86T-96YD;V)J#3<X(#`@;V)J
+M/#PO3&5N9W1H(#$P,3 at U+T9I;'1E<B]$0U1$96-O9&4O5VED=&@@-#`P+TAE
+M:6=H="`V,2]":71S4&5R0V]M<&]N96YT(#@O0V]L;W)3<&%C92`V-R`P(%(O
+M5'EP92]83V)J96-T+U-U8G1Y<&4O26UA9V4^/G-T<F5A;0T*_]C_X``02D9)
+M1@`!`@$`2`!(``#_[0HR4&AO=&]S:&]P(#,N,``X0DE-`^T``````!``2```
+M``$``0!(`````0`!.$))300-```````$````>#A"24T$&0``````!````!XX
+M0DE-`_,```````D```````````$`.$))300*```````!```X0DE-)Q``````
+M``H``0`````````".$))30/U``````!(`"]F9@`!`&QF9@`&```````!`"]F
+M9@`!`*&9F@`&```````!`#(````!`%H````&```````!`#4````!`"T````&
+M```````!.$))30/X``````!P``#_____________________________`^@`
+M````_____________________________P/H`````/__________________
+M__________\#Z`````#_____________________________`^@``#A"24T$
+M`````````@``.$))300"```````"```X0DE-!`@``````!`````!```"0```
+M`D``````.$))300>```````$`````#A"24T$&@``````=0````8`````````
+M`````#T```&0````"@!5`&X`=`!I`'0`;`!E`&0`+0`Q`````0``````````
+M```````````````!``````````````&0````/0``````````````````````
+M```````````````````````X0DE-!!$```````$!`#A"24T$%```````!```
+M``,X0DE-!`P`````!TD````!````<````!$```%0```64```!RT`&``!_]C_
+MX``02D9)1@`!`@$`2`!(``#_[@`.061O8F4`9(`````!_]L`A``,"`@("0@,
+M"0D,$0L*"Q$5#PP,#Q48$Q,5$Q,8$0P,#`P,#!$,#`P,#`P,#`P,#`P,#`P,
+M#`P,#`P,#`P,#`P,`0T+"PT.#1`.#A`4#@X.%!0.#@X.%!$,#`P,#!$1#`P,
+M#`P,$0P,#`P,#`P,#`P,#`P,#`P,#`P,#`P,#`P,#`S_P``1"``1`'`#`2(`
+M`A$!`Q$!_]T`!``'_\0!/P```04!`0$!`0$``````````P`!`@0%!@<("0H+
+M`0`!!0$!`0$!`0`````````!``(#!`4&!P@)"@L0``$$`0,"!`(%!P8(!0,,
+M,P$``A$#!"$2,05!46$3(G&!, at 84D:&Q0B,D%5+!8C,T<H+10P<EDE/PX?%C
+M<S46HK*#)D235&1%PJ-T-A?25>)E\K.$P]-UX_-&)Y2DA;25Q-3D]*6UQ=7E
+M]59F=H:6IK;&UN;V-T=79W>'EZ>WQ]?G]Q$``@(!`@0$`P0%!@<'!@4U`0`"
+M$0,A,1($05%A<2(3!3*!D12AL4(CP5+1\#,D8N%R at I)#4Q5C<S3Q)086HK*#
+M!R8UPM)$DU2C%V1%539T9>+RLX3#TW7C\T:4I(6TE<34Y/2EM<75Y?569G:&
+MEJ:VQM;F]B<W1U=G=X>7I[?'_]H`#`,!``(1`Q$`/P#HG8--_P!><CI[[;QB
+M.Q1>:&9%S&AYAILK]&VOT_["?H^5U;#R^M=-HS3G58#'68]^7-I:YNUWH6O:
+M]ECO\+CO_2?SF+ZW^D3WX6-F?7ZZO(&ZO[(T#:YS#O'N^G4YCV^QRZ&["P\#
+MI&33B5-HJ%-AVM$:[7>YW[SOY3DP"SY2_D$N7C]>ZP[I&+UE]>._&O+1=2`]
+MCZ]S_08]MKGW-N_2[&O_`$5/I[_5]_IK3ZAUAF*S%94SU<G/(;C5..WG;NLL
+M=[MK*][-RY;TLC"Z1TOJEDY?3*/Z;B.(V5ZFMN2QGLW-;N_3>L_97_/?HZ/M
+M*TNNFD]3Z1UX/#NGLFNRX?187OJ?2Y_[E;]EM;]_^']"M,$I<-W^C$_]]-3H
+M=4SNJ]*K;FV>CE8;7M;D5L8ZJQC7D5BVI[K;F6[;',W5.;7^_P"L@=2ZQU)G
+M4^F8^`_'.+U1CRRRVM[G,-8K?N]E]/J,L9;]#]%Z7\O_``=_K46].=17#WY)
+M976!WES7.<W^I5OL6?U#`:_JG2,:7-%5.02YCBUS1.*V6V,^C[G(RE1(&U#\
+M9?\`=*95]8ZIB=>IZ1U-E-M>8POQ<O'#J_<T397=C6/R-FW_`$C;_P#T9Z=+
+M"LO^LW6LW[3;97TCISO1IQ*W%C;WR]C[LMS"U]M?Z+]'C_S/Z2O>IV5.Z=]9
+M<2O%O=F69+"+Z[_TUE58(]S;_P"<JJ=OL?[_`/"5H?U=NJZ/U?/Z5G.]&V^T
+MV8[GZ-L876.K>QWYV^IS/_0BN^K_`$?J+B-T=N*O^;W4W,_ZN"B_"R.C-=2R
+MK*J=E83+"RA]6YOJ7?9W.]%E^/\`SVZK^>_FW^J_T/2+B]8RNJ]1SL3INRG&
+MZ<_T+LNUKGE]_P#A::*0ZG:S'C;9;8_WO_FZ_P#"K2R<ZJBZG':UUU][@&U5
+MP7!D_I,BS<6^G12WZ;_^LU>I?;54N;^IMHZ?U/K'0<LBO+;E/RZ&N@&W'M/Z
+M.^K_`$C=K&^KL_FK'^E_.)_73KNAU\7J6<[+OZ5E^E7G,:+,>]C7&JQCMWIV
+M&@V>I6[=7:U]'VC_``7\\A]&Z^_+RK>G9S:ZLZDD%M9=L=M+V$U^H`[_``-C
+MV?V_SZ+4%L9OUO-V.=]73Z!5D6#Z(M<;?U?=_I6,M98YGYB at _I1ZETXWX=@K
+MS\7*S'8MNXAI)R+MU%SF;G>C8YK/?M_0VLJR/\$F7*S70FOZP[)2V=>RL,=9
+MNRPRVGI+@&-I8X/L#ZJLBK<YUEK:]CKO2L?MV?X?]%_-HMN?UBJK%RVG'R<:
+M^VJJ]M3'AU0L>VE]C'^J_P!?T7N].QCJZ/3_`)__``/V=9O3>ILKPNO=5S*=
+MY86G+Q3M+@::*\?(HM;_`#>[=4_V?I*]GT/4K>GR\<]%9C9W1LO?B7W5U#%<
+M_P!0/]0[*V8K_<Z_:[_!6;[*L?U+*;F?9_0L1D:OIK8VDI__T-"C_E&G_P`.
+M#_SXNO\`K1_R/9_7J_ZMB^:TE&-I>27W_P"KO]`ZM\/_`$6Y/]4?^1^H?UW?
+M^>FKY_21C^C]4/O7U$_._P"*/_5(OU at _IV1_5K_(Y>`)**/\U_A%/5^B?J=_
+M1LC^N/R%5_\`&)_R(S_CF_Q7S\DI1_-_0HZOT!_B]_Y)M_XS^"S_`/&I_1.F
+M_P#'N_ZA>'I(1_FOHGJ_1G1O_$;5_P"%'_D>JWU(_FLK_K7_`%+E\^)(C>/D
+MI^B\KZ/U@^-?_GBI<W]5/_%MF_UK_P`H7C"24_T?[RG_V0`X0DE-!"$`````
+M`'T````!`0```!@`00!D`&\`8@!E`"``4`!H`&\`=`!O`',`:`!O`'``(`!%
+M`&P`90!M`&4`;@!T`',````>`$$`9`!O`&(`90`@`%``:`!O`'0`;P!S`&@`
+M;P!P`"``10!L`&4`;0!E`&X`=`!S`"``,0`N`#``+@`Q`````0`X0DE-!`8`
+M``````<``0````$!`/_N``Y!9&]B90!D@`````'_VP"$``P("`@)"`P)"0P1
+M"PH+$14/#`P/%1 at 3$Q43$Q at 1#`P,#`P,$0P,#`P,#`P,#`P,#`P,#`P,#`P,
+M#`P,#`P,#`P!#0L+#0X-$`X.$!0.#@X4%`X.#@X4$0P,#`P,$1$,#`P,#`P1
+M#`P,#`P,#`P,#`P,#`P,#`P,#`P,#`P,#`P,#/_``!$(`#T!D`,!(@`"$0$#
+M$0'_W0`$`!G_Q`$_```!!0$!`0$!`0`````````#``$"!`4&!P@)"@L!``$%
+M`0$!`0$!``````````$``@,$!08'"`D*"Q```00!`P($`@4'!@@%`PPS`0`"
+M$0,$(1(Q!4%181,B<8$R!A21H;%"(R054L%B,S1R at M%#!R624_#A\6-S-1:B
+MLH,F1)-49$7"HW0V%])5XF7RLX3#TW7C\T8GE*2%M)7$U.3TI;7%U>7U5F9V
+MAI:FML;6YO8W1U=G=X>7I[?'U^?W$0`"`@$"!`0#!`4&!P<&!34!``(1`R$Q
+M$@1!46%Q(A,%,H&1%*&Q0B/!4M'P,R1BX7*"DD-3%6-S-/$E!A:BLH,')C7"
+MTD235*,79$55-G1EXO*SA,/3=>/S1I2DA;25Q-3D]*6UQ=7E]59F=H:6IK;&
+MUN;V)S='5V=WAY>GM\?_V@`,`P$``A$#$0`_`.KZMT/ZWD7Y.!UGU+)<ZK%=
+M6:@1^;4+:['-W_F;_17$XGULZ]E8[,AF=>`\?1+M01HYO^<O8%XC0S])E@#0
+M9>0!_P!NO4>706.Z0]#AW?7KJ%)OP7Y614"6[Q96P2.WZ>RI!O\`K'];^DVM
+M9U-^3AN>88[(8QU3C,;6WL]6C^SZB['ZBM+>A`'_`$K_`/OJV\W#QL_$MP\N
+ML6X][2RVMW!:4HQN(-G7Q4\;TSZ_9;7LKZE2VQA,.MK]K@/WO3^B_P#Z"[3&
+MR:,JEM^.\65/$M<%X^>G7]*S\OI%[S8[`MV56'EU+P+<5[OY7I.VO77_`%&Z
+MA;7E/P'&:;@7L'@]OTH_KL38S(EPRU53VR2Y/ZR9?UTZ51D]4Q[,;)P,?=99
+M16PLN;2W\]OJ^LRU];/?;[Z_H>S]Q9M'UOZQ=6RQES7,L`<T[&Z at B1V3Y9!'
+M<%5/?)+D']5^N=;/4'3K[6?R6X\Z_P#!^NVW_HH>%]=,JZQ]+FM;DU1ZV+?6
+MZJ]DZ_I*7%KV_P!9`Y0-2)`>2J>S25#IG5JL]NTCT[P)<P]_Y3"KZ?&0D+!L
+M(4DDJ'4>L8G3X8\^I>X2VEI&Z/WW_P"CK_EI$@"SHIOI+`;G=<ZBTG#8REG9
+MY.T?]N.;9_X'4JF1T_Z[5M]3'NQKW"2:C==6?ZK+/3>S_.KK3!D)UC$D=_E3
+M3U22XK&^M_4\;*.#U''?CY;=?L^2![VCZ5F)DU_H\FO^4Q=5T[J>+U&KU*##
+MA].L_2:48Y`36HEV**;:2%DC(=CV-QG-9>6D5/>"YH='L<]C7,<YN[^4N%ZY
+MUSZZ_5_)QF=0NHNQ<QWITY5%8`%L;O1NKL;[=_N])V].)H72GOTEY]C?6;ZV
+M9=[<?%<+KGSM8&5MF!N/NLV,5RS*_P`958W#$;:!^:UV//W.<W_JDT3!U`)5
+M3VJ2\['U\^L.'D-QNHXPQ[W?1JR:G5.<!_H7L=Z5W_6O473=!^MF)U1PQ[F_
+M9\L\,)EKO^+?^]_(1$Q=;'Q53O))+-^L'6&=%Z5;G%GJV"&44S&^UYV5,_J[
+MO?;^Y3ZCTY2NM]?Z?T7'];+?+W?S=#8-CS_):3]']YZXNSZV_6CZP9/V/HU(
+MQP=3Z9EP;^]9D6;6,;_5:Q<_DV9O4\]UMY]?,RWC=M$`N/L976WW;:V?0K:O
+M5>@]&HZ/TZO$J`]2`Z^P<OL/TG?^048D9G32*7E6?4'K>4-_4.IM]0ZF0^[7
+MS<^RA"O^I_UKZ6#=TG*9E%I_FFO?C/(_DESK:=W\A[UZ`DG<$>R+>!Z?]?>H
+MUBW#S*)S:!M?5>#5:QW8VM;[;:_Y=?\`.?Z1:'U$MNLLSC?:Z^YWINLL>9)<
+M39)_'VL_,5OZZ?5@]:P1DX45]7P at 7XENGO\`W\.[]ZF__H6^]9'^+;*^T/R7
+MQM+ZF%S#H6N:YS;*W#]ZM_L3*D)QUN*7NDDED=;^LW3NCC9:?5RG"6X[(W1^
+M]8?\$S_6M2DUJ4.NDN1Q.I?6SKC#9ALKP\?@/,M#OA8YMSW?];K37]+^O-`]
+M6C)HRB!+JC=;6XD?F5N<RRIW]OTDSC)VB3^"GKTEQW3?K;G-R'874*'X^8S5
+MV+D at -L+1_A<>RO\`1Y-/_#5^HNJP\VC,J]2DS^\T\@_RDHY`36TOW2FDZ2SN
+MKLZ\YK#T>S&8X!V]F2U_N/\`@]EM1=Z?\O\`06KFV_6KK5.:[IO5&#!SVC<R
+ML[7LM9_IL2X-;ZK?WF?SM?YZ,Y\(L at D>"*>U26'T?KKLB[[-E$;W?S;QI)_<
+M*W$H3$Q84I),9 at QH>Q7']?ZK]<. at TCJ&6_%R.G![67V4-+'U>H[TJ[/1O]7?
+M3O=7O_3>I[T2:&U^2GL4ES&!F_63J3+#BWTL-<`OL9+9/@U@]RZ+&9>RAC<B
+MP6W`>]X&T$_R6_NH0GQ"P#7BI*DN;ROK4^W(=C],K%C6N-8N<"=[P=KO08/I
+M5M=_A?\`"?X/]'^D0<C$^NCV^K2:G'GTWY#JW?U=M5%E3?\`MQ`Y-2(@RK>D
+MT]4DN(K^M?6>FY+<3K&.[$M?I5]HVNJL/AC9E)].Q_\`P3_TO_!K6^KW4<W-
+MZAE.R;B]A&ZJJ`&UMEH%;=H]_P#QEGO0&06(D$2/0JI__]#U5>*XQ`MS/_#F
+M3_Y]>O:EX?5N^T9GA]KR?_/KU'F^7ZI#ZC]23/1!_P`:_P#[ZM]<;]4?K#TG
+M"Z7]FR[_`$KA8YT%KB(,1[FM<U:?4?K?TVK%<<"P9.2X16V'!H/[]N[9[&_N
+ML]Z,91$19&@4\E]:MEWULSK*S(JJQZ7Q_I&M?<YO_;>14K_U.J<_J['`:5,<
+MYQ^(V?\`?EE8F%DY=[VTA^3DWO=;:X_2<]YW/L?PUG_GMB[SZN]$'2L4^H0[
+M)N at VN'`CZ-;?ZJBB#/)Q=`5;!M]68RSI696\!S'T6M<TZ@@L<""O*>@D_LS"
+MG_0U_D"]8ZG_`,FY?_$V?]2Y>6]"J(Z1 at NC0TUG\`G<QL/-0?6AP%R7^,'`Q
+MJ<2CZQ,8&YO3K:JS8.7T76,QKL>W]]GZ?U:_]'9_UQ=:.`N8^NF7C96,WH at E
+M[[;*K,K;Q774]N4UKW?Z2]]5;&U_Z/\`2J29`B;VI#4QKG8U[+6'W,<#\0NS
+M7'=*Q+,_+:T#]$P[K7=@/W?[2[%0\J"(DG8G1,G,^L/6F=&Z<[)V^KD6.%.)
+M2=/4N<#Z;"?S:V[7VVO_`-#6]<ITS&MS,L5O>;+\E^_(N[EQ_G'Z_FM;_-,_
+MP=?Z-%^N^<ZSKV'TT?0QL9V8[P+[7?9:3_8K9D_]NJQ]30'Y]KCJ65&/F6A+
+M+ZIQATZJ&SUU5;*JVU,$,8`UH\@II)*PAQ/K9]7:>O=,-0/IYN,?6P,@:%ES
+M1[?^M6_0N9_W_8N0Z!UE[Z<;JF/[7/;^D9VD>VZEW]L+TI>:XF!]GZOUW`'T
+M*,XVUCP;DL;E-:/ZN]0\P*B)=8E(?1<;(KR:&7U&66"1_<N7_P`9=;']"QBX
+M269^*YA\"7[/^H>Y:?U8<X8EE),MK?+?@X?[%G_XQA/0\<>.?B#_`,%"?&7%
+M#B[A75R_JHR.MTGR?_U#EWRXCZMU!G6:3Y/_`.I<NW3.7^0^:BY?UDZ%C=>Z
+M3=@7@"P at OQKB-:K@/T-["/<W8_\`SZ_T:\MZ-E6W8>/FSMNY+AI#V';N;_::
+MO4^O=7;T[`N-+FG.<QPQ:C)!L(_1NMV_0I:[^<>O/ND]$L+:.FX at -A:`TN/W
+MOM?^[^\EF(T`^:U!]*Z9E',Z?CY3A#K:VN=\8]W_`$EP7UYZB_.^L(P&D_9^
+MDU at O;K!R,@;M?^)Q-FS_`,,6+T'#QF8F+5C5ZMI8&`^,#E>8]5_2_6+J[SR[
+M++?E7534W_J$[(2(?@H;MGZF80N^L--CA(I:^SY@;&_])Z]+7%?46L#J&2^-
+M15`^;F_^17:I8?E45)))*1"E@=!^JS>C=6ZGGLO-E?4+GW,JB-GJEMMC9_XW
+M?L_D+?224XWUI^L#.@],.0&BS*N<*L2D\.L(G<^/\%4QKK;5YWT/`NZSU>NF
+MU[K'WO-F3<=7$?2ML<?^BU:?^,?-?D?6#'P`?T>%C>J?^,O>YFO]6K&]O_&*
+M]_BXQ6_:LO(Y-=;6`_UR7'_STHIZS$4O=5ULJK;76T,8P!K6C0`#@!2224J'
+MG_KET!O5NF?:*!MZGT[=D8%K?I;VC<<=Q^EZ.3M].QBQ/J_UGU*<?J..?9<P
+M.<SR/TZS_4<N[7E_2J_L&7U3IH:&58>?>RE at X%3R+Z1_F6J#F!H)C>)2'TVJ
+MQEM;;&&6/$@_%<[]>J*GX6!:Y at -M6=3Z;R/<W?N99M=_+;]):/U=M-G3X)G8
+M\@?#1W_?E2^NW_)^'_X>Q_RN3^+BQF7>)5U>6;ETNR+L:M_ZQC[2]G#@'`.8
+M\?R?Y2[/H'61G4BB]P^U5C7^6W]\?ROWU@]3^K+NH=)HZMTU at _;>$UXHU#6W
+MU[R7X>1/TFN;O]#W?HK5G=(ZAZK&9^+NIMK<6V5/$/KM;[;L>YCOSF?1<H(W
+MBX9;QD!:=WT9<_\`7]C7_4WJP>`X#'+@#XM+7M/]ES5J=,ZA7GXXL$"P:6L'
+M8_\`D7+-^OG_`(CNK_\`A9RM`@@$=5K#ZES^S[2>2\?]0U$^O/4+^G?53J&5
+MCG;=L;4QX,%OKO9B^JTC\ZKUO48A_4LSTZW^N/\`J&K0^L'1ZNM]%R^E6NV-
+MRJRUKXG:\>^FS;^=Z=K6/3<7R!)W>:^J[,?$SZ*WPUC&>G43P"!L9_T5VR\Q
+MZ;E/L#\#*!JZIA17FT.T<'-]OJL_?IN_G:K&_OKJ^F]>NJ#:LS])6!`L'TA_
+M6_?4.+(($PGIKNDAUNL='P>M=/MZ=GU^I1:/[37#Z%M3OS+:_P`Q<I_B[R+K
+M+LO'R3.5A%^+D'B7TO\`3WQ_PC?>NSQ\FC)9OH>+&]X[?$*KA=%P<'-S,ZAK
+MA?GO]2XDR)VL9[&_F_S6Y3D"7"1T-K7_T?55XG0V;,S_`,-Y/_GUZ]L7BN("
+M;LSP^V9/_GUZCS?+]4A[+ZL_53H/5^DC)S\7?D"QS?68^RM\#;M:YU#Z]VU:
+M]?U$^KE9!%5Q`['(O(_\^J7U*`'1!'^E?_WU;Z,`#$:=$-?#P,/!J]+#I92S
+MDAHB3^\]WTGN_K*PDDGJ:W4_^3<O_B;/^I<O-.@$GHN#Y8]<?YH7I?4_^3<O
+M_B;/^I<O-_J\S_(N`?\`@*_^I"K\S\H\TQ=7J_5OK?TPT'J8;3AY!]/[518'
+MM98?YNJ[]#0^OU?S+/H(72&X^5U)M6?:]K;"?<"/<\\"Q[@YWN7;=3Z9A=6Z
+M?=T[.K]7&R&[;&\<'<US7#Z+V/;O8O,?1R^E=0MZ'GO+\O&&^BX_X?')_0Y#
+M?Y;?YN__`(5B.6%5(>H#<'U*!?5,;&HQ:A30P,8WL/RD_G(JP_JSUIN?CC&N
+M=.72/=/YS>S_`/R:W%-$@@$;(?.?K8'#Z[6AQD/Z=2Y@\`+;VD?YZU_J6W;F
+MY'G5_P!^"K_7VBO%ZMTKJSX;5=OZ=>\\S9^L8?\`9]2J]O\`UU6/JY8,?J39
+MT;:TU_,^YO\`TFJ"9K,">M)Z/7I))*PA2X9C-WUL^L?AZN)_[:UKN5Q703]L
+MOZIU4P6=1S;'4.&H=30&X6,\?R7MHWM4'-&L1\2$QW>@Z%5Z;+O,M_BLW_&"
+M)Z/B#QZCAC_P5JWL&GTJ->7G<?X+"^OPGI6$/'J6%_Y^:G8P1A`/[I_%1W<R
+MKIEV9DC'HM;18Z2VQ[#8!`W?S;7T[O\`MQ7+/JE]8-OZ/JU),:-=CO`)_K-S
+M'*STNLMZI4?ZW_4N72*/EXQE`DB]4E\XZAA==Z0'W=4Q6V8;!+\_$<;&,$_2
+MR,>S;DU_O/?7Z]=:T>C]='3VMVULMQK8<;&`;R#J'ML_/7:/8RQCJ[&A['@M
+M>UPD$'1S7-*\R9 at MZ9F=0Z37_,8621C`F8JM97EUU2?]%Z_IHY(<'KAH@&WT
+MK&R:<JAE]#M];Q+2O,>HM+?K'UJD_29E!\>5M5-K5VOU0>\X-M1,MKL]OS$N
+M7.?73IKNG_62GK#0!A]58W%RG?NY-<_9'O\`^.J_0?\`6T^1X\5_575N?4NQ
+MK.I6UGFRHQ\6EI7:KSOI&6W`ZG3DN^@T[7_U7#:[_-7H;7-<T.:9:X2".X*&
+M`W&NQ45TDDE,A222S*^OX5W5W])QP^Z^F?M#VCV5F-\/>?ZS?H)*?._KP=OU
+MRRY[XV.1\/TH70_XMK&N&>WO^B/_`)\69_C1PO0ZKT[J@$5Y5;L*UW8/8?M&
+M-_G[\A1_Q>YS<;K)Q[#`RJRP?UV^]G_?U$=,@*>CZ6DDDI4*7FEH'_./KI_[
+MN-_\\T+THD`2=`%Y;T[(&7;F]1DN;U#+NR*G'0FHN]/%_P#`*ZU#S!]'F4C=
+M[GZK`_8K'=C9I\FM5?Z[?\G8?_A['_ZHK3Z)BOQ>G5LL$/=+W#PW=O\`-6;]
+M=O\`D_#_`/#V/^5R(%8J/[I5U='H?_)E7Q=_U17-_7#HE^#DO^LO36N>P@#J
+M^(T$FRMHV,S*6_Z?%9_.?Z6G_P`$Z7H>G3*OB[_JBKQ$Z'A&$1+'$'8Q"NKP
+MO2>J>DZK/Q'BVFQLR.'L*U_KEDU97U'ZI?298_&='EXM*Y[K_2+/JQG.R\<!
+MOU<RG#=6T0W$N>=OM;^;B9-G_6Z;?]&AYUN7;T3J'3\<[QF4.8VLF!O,;7[E
+M%$G%+AE\AV*=WJ/J6(Z=9_7'_4-70K!^J`VX%@[AX!_S6J_UWJG[(Z/E]3]/
+MUOLE3K?2G;NV_F[X?M_S5-B^2*#NU^N?5GI_62RZPOQLZD11FT$-M:#KL=N#
+MF74N_P!#<Q[%R>6WK/1&O_;E(LQ*_H]5Q at 75$3[3E8[=UV&_;]-_]%_X9=MT
+MCJ`ZCT^K+T!>#N`[$'S5P@$0=04)8X9!9'D>JKIX''ZDZK;DXEVCA+7L(+7#
+M_J7M73]$Z^S//V>\!F0!(CAX_D_RE at _6?ZG_`&.A_5/JU4VBVHFW*Z>W2F]@
+M$O\`1J^ACY+?S/1]/U%G]/RF.&-FXSO:_9;6[O!ARAJ6&0UN)3N__]+U1SFM
+M:7.(#6B23H``O'NGU%]%E\%HR+[KV!P@[++'V53_`%F%=1U"KKI^U&_*ZBS%
+M+K-S;<:ES17)T<^G-KI=5Z?_``?\W_.K(=37WS+_`/V%I_\`>]191(BM`+W)
+M2'L/J38T]*?5/NKM=(\G!I"Z%>;X%.7ZGZAF9?JQKZ6+5,>>S/7=](%@PFBT
+MWNL'TW9(VO+H;N+6[G[6?VT['?"`?M!46ZDDDGH:/7,BO&Z+GY%OT*L:U[HY
+M@,<=%P/1JWX_1\*FP0]E%8<T\@[6[@M?JU762, at YN5E,PC:8;=C8[F!N_P#0
+M`OJS:ZG-W>GZ>^MC_P#2_I5FNIMG7,M_]A:?_>]09P94-(@'](I#Z+6]KZVO
+M:9:X`@^16%];_JZ[K6`+,/:SJV'+\&YW$F/5H?\`\%DUM]-W_;BI?5^OJ3<B
+MHVY&7;A_F-]!E5<SRY[,K(_1_P#6UUBFZ>H5W0^7='ZG<Q[<RD''RJ'NKOI=
+MRRQAV78]K?ZR]$Z9U3&ZC0+*G`6`?I*N[3_Y'^4N'^LS.BO^M.1]BNR:<X5,
+M_:/HU5VXQ?\`X'U/6OQG-S?2_<_P2#BTW^J/LN9E>M^;Z>+5N^6S/W**$91)
+MX2)0\TO?=8Z3A=9Z==T[.9OHO$&-'-<-66UN_-LK?[V+@\>W.Z7FMZ/U8%F=
+M5_1LJ(KRF,C;?0[_`$^W;Z]'^#7>])%@P*A:;G6`>]V0-MA=^<=H<_:W]WWJ
+MI]9O^;G[._[(O1^R;OT?JSN]2#M^R^G^L?:=N[T_LWZ='+&,@!(B)Z*#9Z7U
+M.K-J`F+V@;VGO_*;_)5Y><8#,_UB[I5V3]EW'TJNJ5-]2/S?1R,;(^V;/_#>
+M-ZJZ"MWUI+0'UM;_`"A9:?\`H^BUW_32$L@%&/%XQ/\`WRM'2ZSG7BMV#@.`
+MR[1M==H10UW-K at 9WW;?YBG_MS]$FZ9TNFFFJJI at KQ:&AE3!^ZT0UJ'TYM`L(
+MR7E[_':&5S^=[?4NLW_\:Y;(B-.$R4.*0EE(C$?+"_\`I*\EUS7UY._&Z7BL
+M&ZV_J>-L`\*B[*M<?Y+:J'K<ZB, at X%XQ2]MYK=Z3J at QSPZ/:6,R',I<[_C'K
+MG,FGK/VJO[1F-^T[7^CNQ:=VWV^MZ6[/^C_-^KL4N3BX3PB[!W-(#I836MSJ
+MWN@#W:GX%;((/"Y)]/6(US/_`&5J_P#>]5;:>I1KF6>>W%J_][U#RXG&-`1D
+M+W$EQIZOJ75<;IV.ZVP[[`/92TC<X]A_);_+7GU`S,K*L>_]-FYMKK7AG&YV
+MC:V?\'14UE+/Y%:M%F,VS];NSK&S[O1JQ:__`#Y?>]=9T']@^F/V;'JQ[O4G
+MUO/=ZOZ3_,_1I\XRE\Y$(^:&ST7I[NGX#*+(-I)?:1QN/_D6J76>DXG6>FW]
+M-S`33>V"6F'-<#NKMK=_I*K&M>Q74E+&@!6R'RQ]6;T?,;TCK,G(U^RYL15D
+ML'T7,=^9DM;_`#V.[_IKH^B_6?[(T8N:"ZAHBMX$N;_)(_.8M_K_`.POV:_]
+MO>A]@D;OM$;=WYGI[O=ZW^C]+]+_`*->;6LQ'7./1K\ZO$!]C.H4L?66]OL]
+MCLBGJ+6?^&:E#P>KBQR'C%/F^IXV;B9;`_&M;:#K[3K_`&F_2:C.<UHW.(`'
+M). at 7E-9S0X;6L<[Q:YP_#8Y:%37&#U%]K*Q^;6W>X_U;+[*JV?\`;=B>)9.L
+M/Q5H]-UGZP7//[/Z'^FS;3M-S1N;6/SG5S[;+&_]L5_G_P"B5KZN=`JZ/BF?
+M?EW^[(MF9).[;/\`6=[G_P"$>I]#_8OI?Y-V[]H]2?YW_KD^[Z7_`%M:B<`;
+MN1%]`AS^O=$PNN],NZ;FC]':)8\?2K>/YN^L_OUN7D-U?5.A=2;B9[31GX[@
+M^FP?0M#3[,G'?^>UVWW-_P`&O;EA_6S_`)J?8!_SE]'T=?1]3^>W:;OL?I_K
+M/J_1_HZ4@#N:[*2_5WZQX?7,4/J/IY+`/7H/(/[S/WZOY2UUXKC,J^TM=T._
+M._X*K,I9Z\_R+\+(W_Y^.M]H^NY;%QS65_G.`L<8_J[JW?\`32N0Z7Y*>C^N
+M/UA;C8UG2\-TYF0W9;8.*JW^VS_T(<S^99_UVS_A*?U3^K[[!5EWL]/$JCT*
+MB(W;?H:?Z)J%]7F_5AMQ&8]]F7NT=EL%;)G\QC;+V[MW^GL7<"(TX[)AC9!F
+M0.T4^2ZYKZ]7-9A=/J_/MSZ0P?U&VWO/^94MOJ8R3T_(&(Y[, at UN])U36.>'
+M1[36S(=70]W_`!EC%PO4J<_UZOVCF9/K;7>AZN+3.WV^KZ6[/_J>IL3YWPD#
+MJ"@/9?5YX?TJL]P7`_YQ6DN%Z/3U(6-.-EY;J`X>LVO&K:"/SAO9FV;';?Y#
+MUV]/\TSZ7T1]/Z7'Y_\`+0QWP@'H-P5%AF8>+G8MN)EUMNQ[FEEM;Q(<"O.<
+MG#O^K?4AT?(W/P;Y/2<HF9:!N=A7N_T]'^"_TM2],6#]=_V+_P`W,G]LEXQ_
+M;Z)I$W^O/ZM]C$M_6?4^A_X+^A]1+)&)C4B!V)2%?5%V[#O\K?\`OK4_UZ_\
+M1_5__"K_`,B#]1FM;T<`OMLNEOK.N8UCB_:W\RNRYO\`6_2*Q]=16?JEU86N
+M<VO[-9N<T!Q&G9CG5_\`5I8Q4`$%Q?JMUJK`K;1DN+<>QK2'1.UT`2?Y+EV;
+M'LL8'UN#F.$M<#((7FN</JQ]AQA2[JASMHW/PVQV]INKS'_L[;_Q-B%@M^LK
+M)_9]MUU<]JW5/`_X7[+=E4.?_438"<8C:0\"DOHG5^JXO2L)^7D28]M=3=7V
+M//T*JV_O._Z'\X_V+A/JETJZ\8V$W6O%:PWO[`#5P']9WT$Y;DFYA^L+\IK1
+M]%FTN<1^?LLR+*VL;_5J>NYZ1^R?LO\`DO9Z.F[9S,?X7\_?_72F.(CCJ,0>
+MIW4__]D*#0IE;F1S=')E86T-96YD;V)J#3$@,"!O8FH\/"]#;VYT96YT<R`S
+M(#`@4B]4>7!E+U!A9V4O4&%R96YT(#4W(#`@4B]2;W1A=&4@,"]-961I84)O
+M>%LP(#`@-C$R(#<Y,ETO0W)O<$)O>%LP(#`@-C$R(#<Y,ETO4F5S;W5R8V5S
+M(#(@,"!2/CX-96YD;V)J#3(@,"!O8FH\/"]#;VQO<E-P86-E/#PO0W,V(#8W
+M(#`@4CX^+T9O;G0\/"]45#(@-C8@,"!2+U14-"`W,2`P(%(O5%0V(#<S(#`@
+M4B]45#@@-S4@,"!2+U14,3`@-#$@,"!2+U14,3(@-#0@,"!2/CXO4')O8U-E
+M=%LO4$1&+U1E>'1=+T5X=$=3=&%T93P\+T=3,2`V.2`P(%(^/CX^#65N9&]B
+M:@TS(#`@;V)J/#PO3&5N9W1H(#,Q,S at O1FEL=&5R+T9L871E1&5C;V1E/CYS
+M=')E86T-"DB)Q%?!DN.V$;W/5^!(ID98`@1!TC?ONN*J5&)/><>YK'/@4)!$
+MET3*HC2SXTKE+_*_>=T`)8J29G=/J:T=BB#0`+I?]WO][L>/2BS[N_>/=^\>
+M'[50XG%QE\NR$`G^\0^3Y%*)W!0RLPF^;^[>?>BMJ'N:(C7^IZ5-"M'7[5TB
+M'FOZ\W(7/<2/O]]9:;PE_F&4EL:<F8I^^?D]39QLJ7G^V<0/5^RE6NIS>[-$
+M)@G]K.\^13__%,]*::*/\;\>_S;=PEB9GJ_EI9:6>BN:[O$I$O]TN[Z)9PH7
+MC;I6*(G+QK-<9M$FMOA;M0=ZU5&U%KP37E219&)6E#+),]CYP1M/V3WAA&3[
+MH5HZH46W$$J+OU<]=E'17ORZG5=[-Q?%.S)LHU2]TW[')#%^#T3+^FCA7#@J
+M7<S_TD4J+9R'MYRO)99^S_P8'+CF.59*EI';Q;,,+GJ.;=3$J521\Q]>AET*
+MOXM!Y$J%3>@N9"@2%!!,,'["3*<RSPLC9DKF2EN:Z.<D/*2-'WJX#'=II;7"
+MYE;2LA!$5?(N`1_32RJ5RM*,UO at S?;@TKK0"2*\;__FGCU>-IP7!:V1\%#R=
+MV#(`H^E%)=HX0X2Z&';A1K<6^ZY;`Q=E)!;=3L"O2^?GN%VU;_A+NQ2;.(\.
+M?M%ZWVS7CF96/&_=+-N-:_=Q(?.H!SCX!WW?[KJ]:[PU>N_='P=ONJU=+VE(
+M_-J'"4M1A8F,22.+M$A]=`I[A&3F;Z4,0,VWJKO-4Q,#P5&+XP+O,`I\8NLG
+MLE=$3\VZZ?=^2BTVW=RMPWR_8Q&U<U%W_E?O/P'8&NC=LR>*J/:OK[- at LG?\
+MF(L*=_<+R0%B[^H57O.H]6;^./B)_;UXN);3!:X$(&5(.S.)M2]*-]!DRIR*
+MP6GA331EB9&85E[?Y!:@,F"P+,]6C7)H9I!WP-PX349UC'_JU$=G5?7L9$T^
+MI'1=-5R#W+.;\[#8KYQ8-<N5X]=^+ZJZ/NS"FB:,^K54=ZKUFKT.A_.GEC!9
+MH`9MW'[5>9L],"VH(DF/I>0,12?O7F8[WZ+P$$N5"17U$4=\PK$5`)\0.BBZ
+M!MLL.A[=\26N11A[2 at 08C'21S&\&6">I+(K1PIL!UHKK^]4M;H57ZT*FXV.=
+M at L?7'NI%M5YVNV9/D#;@#O(SU9`PP!6`\P8?MX?]./N&8AP(6EF9I%GIJ_'L
+MQ%O8+2FMWVU;-;N7AHH$!1LE0FR[?N]V#8H2)S/E\?XU5`==RL*8L_+`=HT=
+MD<:F(K)(HSU(@\H82-$0#HFBG/_4#R<-K!`XX710\#5Y\GY at CT!BB;2ZR,?T
+M\G!.+YB0#1.BWZ+P40\?TS1+P\?/ET(!(9#*BJP`V7/VX>AGUB\8($MH9E8F
+M0[K2T0.0DUSG(:+_N8B,Q#7,Z!X>EJ]7SF299$9G^OT+9[*E+/7H3,?"X`^5
+MAP(N_CT]5")+:]3%H3Y//9PEZ1N1TJ=(Z6(<J=>W[2 at UG-`&:/X6WQ.N7U"[
+M,M0N(,A0)1/+YMEQZH_QN>?+0#F66:'&B#]&PQYKXUYTK1/]JCNLYV)3[>N5
+M6+L]0-]?Q`GUKP0DKOIDHC(M]OX6\!@+L33!3A!?.*T9PE3!!6#*R<$T*LD`
+MY;<!9$K<P7P#@$QI9%9,`40RET]FRP'5+RO7#JH!J97G>EK3U:`:!M\SA33M
+M$O4[!0>]=$&>\/L!M$_/VO'C,A at HN8CNEP$*G at Z31B[%(>S at TFO^S%1VW9U?
+M at CZ9'GPBQ54^TIDAX9#E6N;?1DBY0AZ-%MXFI+P at ZKJZQ4U"@J*F>G>^YA0U
+M5"COL$-_+ at A(@XJ^H;X&:M-+`4C3+4_:D6HS4<<O/C]9>T`,D@[DX3D)8$I$
+MZ`H:4=%+[W6PIQEX.@<?3FEFH"^EP\G<8M%`K4`#0H^R*#@R(N at 0C,E%`5:,
+MSL9%00]VTH`)UX_+"92TCAJ2RN)'%)MVJ"XPE%@[-F2.AD*^KMC2D4)1779T
+M_2#$0-^W1*DQLA19EH4L_6I-BK*CBM'"FP at Q(`9CKF_QB2'"]=6'X+(HH*69
+MKO7A0%9OB=S3:+N&ST((4["0`92NB]6(RO<Y8>@1.8\;*6N#'!Q:"QL%2)4>
+M4JR%+/<0/$;PR]%#^-$:TF5FH47\TM;W4OW"+]K%I+!R"$P>)N!,E(DJ1N`9
+M8\=:\(Q/#\C>IN5C9-%N&YYT#"A7/D?&*>.>FSEW-N`R)Q8[/Y$$'IK`I at 5B
+M-GP#-Z>;%+QV9GFQSPKEZ7O2FPWIFIB0%+?JJ8P)@(*.\M>F1>:]XO;W?O"J
+MBD;,J9>A?;\)DSJ!T-6CA6_(Z(RYYMH67\0DDI?+UVF;<8E(!@;=NAU'NXQV
+MFYYK5$G1 at 1.C;NG?'#]Z;C!T]!Q[(>S[G9B0C0H3EU0'FY:GHH5EYCKPFY\S
+M"S87,[\'A/4%A6G<ILS'%23+)LJ9:L5GDLQD^`";&@,;/+D/",D%4$*'A^3*
+M!B1X/O*"/%S>?=[B<#ET-YVMWL<&5AP/S7D(?1^W$O[O@<>0*S2A?A639"BD
+M34PQKG_IJ?4,V0!71T\X;O0[O(H=2:PM#FU-N14:PUFP\T9[.)+\/"U-LHFD
+M\T@)Y?O[T#)MQ$<</<,]\#F/-ILJ]""O,9HA$WU%8WJZ[>-?1AV:OV/FM_.D
+M``ITD)+LN$6L*5&1>@?'`VV-4DA$DL$C6&PC\10 at Y=NX^7?\,4!;YM#>E\>2
+MMAC*GY+B0[<A:"&S]VZ*+*2"SL:RYX0%/20"'36/CMT=OW$FE%'WQ&]$?RB'
+M3:PB:&K"M?*UD;JYIG;]%!$0R*<6D_<MC_NF0?0MXA+K.]0YB`/A*D^'*X'6
+MDX.U at P]I:(&\2P<?T@#Y4/+B@!M%_9G*SW`_]9.>^LE"^5I/..<N`\;+Q)R.
+M_G]('WT*4C@^9(NK6!'5*WZ$,H0*-&0/D)R6F;Y41\7 at BZ!&4RF^WV[7KV_X
+M`&X&[8Z$[U'8!LIE/QY5G!THM^5QTH-1TS/'I<RUX-GP"6J.Z"QP:\[<>H&>
+M7-K2C,NARH^'2,(MP*[04U00B=4'5<6F`5X3-;7_YL*<P4TZE:4NU+0G&?@2
+MB`D5RQP18\:(J2Y]=>HM;Z38DK/HX#,&;`]_.#>Y-+H^DZJIH/!FA@[EP-*`
+MI4P1-5XS++GG!2)='43%'.BK#[NJ]GJ!DH4./L!$20BP*S`9$7 at F)RHL%**W
+M#O>PZY8[U_=^TV>WYN<KDE<'L%[`GGO#D\WL9+,<)!2NQDU&$?W!?P^LE`H2
+M+_3HB7NY'+&"T^SIPJ];'H*G><CY[_+DA3(/.O3;N.84XD_1+V[A=BRGD.J7
+M53`0BCZ9]Y:3,?BBATO]@P8,_83.RTM)?DM<*93<THS6W!17"L)(WS!^HR-4
+M4!:9F:X9,V"HZ:+IQ;SIZ\.X+^S='#J68[+HT-B]^,:O78;.L((4Z[\[.D\E
+MWGM8FYB<N[VB(,"=A>B_YZ2,Q"I*/:ZA61!\*A_`1&))Z>B'[EY\D._EO7B_
+M.\Q;O/T#OZMV+MY7^S^[Y;H[W).*^X at V3R/4>%R3P6F&*B6T11%C3WR]#DYS
+MT$5QMO1FL-("[8*YM<VM>*7E_SBOFAT%83!X]REZ=`\::$7`&^MZ\&"RB;Y`
+M1=R0*!#!;/;M]_NAI:BX<4^$EO[0F<[,!S5==#_*"\VAF")E(3Y!+='H6<L#
+M4SXM2S`U+I\"+I\4"6U!S2F__DQ:385\'*O9?57G2"&OM]?(ALWUU.35B=P\
+MPZ0!?I88/Q.X<HS1"1K/>5&*),T/8HO^7U`77'Y\U(#,KA2ZJOA=7Y!F at -QZ
+MNWF?WO.I2U,1Q8+_\2E0D>439';8^A"A*!585KWAIT`M4"LH&9!<M$$)^5U)
+MY5 at MK='>)\._"P4Q.5ZZ#KN@=LU6#.`!;N3%"!Z7O7/^L,EX%*)F,8/0!`6L
+M/Q`7>C&Z#UJKICZF5`>THP6+HRNHOQ?-7`_OYFUSA$45`YW%TL*8),G:NK;7
+MN99Q[1N]9E4-./\-JZH?2G#:UU2U&_.'JCZ>_+FJ.I,_+BM05*OKGI)6B"!*
+M9-"A/&MN*41='IMO34GE at MUXJXC]RWHNTIK6]*:!!_NLTV*$$2#V7<JYI_@%
+M^Y!PCB[Y;SDQAA at G#EFC\Q,BM\TR8YF^3='2BWL13CG"N$H^-JO^C5/3`'+9
+MDX at Q%NZB-/CQ[\WX?@_^WD3!"<4QRU4('$6^4.]J-_H58`#MY`#^"@T*96YD
+M<W1R96%M#65N9&]B:@TT(#`@;V)J/#PO0V]N=&5N=', at -B`P(%(O5'EP92]0
+M86=E+U!A<F5N="`U-R`P(%(O4F]T871E(#`O365D:6%";WA;,"`P(#8Q,B`W
+M.3)=+T-R;W!";WA;,"`P(#8Q,B`W.3)=+U)E<V]U<F-E<R`U(#`@4CX^#65N
+M9&]B:@TU(#`@;V)J/#PO0V]L;W)3<&%C93P\+T-S-B`V-R`P(%(^/B]&;VYT
+M/#PO5%0R(#8V(#`@4B]45#0 at -S$@,"!2+U14-B`W,R`P(%(O5%0Q,B`T-"`P
+M(%(^/B]0<F]C4V5T6R]01$8O5&5X=%TO17AT1U-T871E/#PO1U,Q(#8Y(#`@
+M4CX^/CX-96YD;V)J#38@,"!O8FH\/"],96YG=&@@,3$V,B]&:6QT97(O1FQA
+M=&5$96-O9&4^/G-T<F5A;0T*2(F<5MMNVT80?==73-^60+3B7KCD]J%`XQ0!
+MBJ(Q8K8P$!0!3:XDMA*I\F+'^8Q^<6=W*9&2*!0I#$M+<^=VYLP9K]X_,-BT
+MB[?I8I6F'!BDZT5,=0(A_KB##&/*()8)C52([_>+U5VK(&_M%<KQ5V at 5)M#F
+MU2*$-+<?+PMR'Z1_+A25WI,[2,:IE&>NR,</;^W%BY#<W3^[>#?C3W#*S_TM
+M0QJ&]I at O/I$/OP9+325Y"/Y(?[X,(145Y[;.5%E3[X7;.CX1^-TT;1DL&19*
+MZ at H8Q6*#94PCL@\4?F95;Q\YR7;@(N$#2\((EHFF81RAGW?>N7#P#!E:W_?9
+MQH"`>@V,PR]9BU$8Z>"W0Y%UIH!D91TK(MB*^XAA*'T,[);RW<*\,%5;F#]Q
+MI6F"X.%3[,J"S5"0.-7&A_CO3=>5U08>NJP)(HQDHQ[]2^]_R1"P""V6C,:,
+M*U?-V&>P?0G=2R[5J50^QE(^5EI#6;5=MMM!5F&PB!3N$_K6P/U,BU@<TT2"
+MBA6U/H;F,CW&'LASB0#3$44\1T.7KF?0>0@><BJ2^1!(GX<Y[YQIJM2E#?+0
+MVKQQ<&`7*9,B]I`E(V2GJQ801I%&*DD0]G<U0B'(2[7SAZR`;FO<$79(A;:#
+M9\M"_[:RA,'WLZCQ1%F"J at BY)[\%-1$**OG$\"9J`@W4C1"W4!,<3=74NS49
+M&8E@^6EKZQZI2'(#@2)Y7>"(*6("C$A@'0@:DP:GA-3[@:>C%B%=K08M&0ZE
+MXGI*2<__:,1 at VW6'[U>K0U,_Y7754N1EM;9YV_1BC<Y.5MJ+2=T4U!3]JJAM
+ME[*"!G8>M]U^Y_+X*5TPA>@);<MD&F,KE,:8V[%KS&)M)?8*E$C8:TJZV\.L
+M>M@]C[BD$<[S&8_FIXM/R&3<7.7U_N`.C7]N6\>9=;DS+3T-.1LT'WF5:&X#
+MJ2B)3]7[#GG,-GWUM3S`$;//SX^?'Q\I*@?=?!U50&D/.<$7\.5Y/7/?79X(
+MS!@[UDJ.R+.Q2N&K%&.5Z;9LX:5$-;$\:4S6!0G.AH$,VOZI*!N3^[_4`;I(
+M2/,*.6K/1-^.I;.$LI`EDYY/JSZFOSI/>L at Y/+5DDFPT4!GEKD3ZQJ0PQXG-
+M>^R%)$UCJ at YLDNXQ[^KFE6*VJ(9^@W"<1>TD-PF3"223Q at _K28Z0W&TS=,=(
+MA4NEJS&>>S)7!2,J$DO\W_7Z5.28RE"O![T.)-5V2#E6_OH&Q;Z`??:7N:E8
+M0G&[BJ-(TH1_DV+%J,1\8GA;L5`4<2?.AKBE6#*4E/-+FYD.@/EB\K[+GG;8
+M;$G,]7#9.6;Q<1]P-0M\7IQ&96::'(+_.3>7:WX0U6CDR(^[<E.Y5K3F;[?R
+M>U.Y[]RXKQ9I.RP?J[BH%M<#@X&YOD6 at LCKTW7FFG&HMI]RYGFS(,$,<4R1+
+M:V-S>[)I-J;M=YWGL[F1CZ`BCOF-?.J^NTI(T$CSZ<0/ZYL>(1X[AWH>2@]R
+MJ"X[1^AIA8"K&WX`'^^R5_9?PD at Y-\HNHJ.;$0DV()%NL^X?_$\0*8,2TGT'
+MQ_WR[P#4#K#0"@T*96YD<W1R96%M#65N9&]B:@TW(#`@;V)J/#PO0V]N=&5N
+M=', at .2`P(%(O5'EP92]086=E+U!A<F5N="`U-R`P(%(O4F]T871E(#`O365D
+M:6%";WA;,"`P(#8Q,B`W.3)=+T-R;W!";WA;,"`P(#8Q,B`W.3)=+U)E<V]U
+M<F-E<R`X(#`@4CX^#65N9&]B:@TX(#`@;V)J/#PO0V]L;W)3<&%C93P\+T-S
+M-B`V-R`P(%(^/B]&;VYT/#PO5%0R(#8V(#`@4B]45#0 at -S$@,"!2+U14-B`W
+M,R`P(%(O5%0Q,"`T,2`P(%(O5%0Q,B`T-"`P(%(O5%0Q,R`T-2`P(%(^/B]0
+M<F]C4V5T6R]01$8O5&5X=%TO17AT1U-T871E/#PO1U,Q(#8Y(#`@4CX^/CX-
+M96YD;V)J#3D@,"!O8FH\/"],96YG=&@@,C`X-"]&:6QT97(O1FQA=&5$96-O
+M9&4^/G-T<F5A;0T*2(FD5]F2W+85?>^O0.D)=*DY!`B"H))RE:Q8*:<LR^7I
+MQ`^:/'#8["5BDV,NFLR')-_KNX!L]C(:IU(J37,!<;=SS[FX^>NM$MMN\=UJ
+M<;-:::'$:K-(P\R)"/[1A8G24(G4N#"Q$;P_+&[>=584'2X)-?R/,QLYT17U
+M(A*K`O\\+N3/P>I?"QL:WHDNC-*A,2=;R5\^?H<+STQJ6G^R\-V5_6(=ZM/]
+MEE$817A9+#[)CS\%RRPT\C;XY^IOYR:,#>/3;^E3BY_R+AKC^"3%/\JVVP=+
+M!8'*IA8JA&"#91HF\A!8^)O7`]YJF5>"+,&-<E$BEBX+HS2!??["F\>4'N\A
+M[OUSOBV%$<U&*"U^S#NPHF0O_OZPSOMR+=P-;FQEK&XT6XPBPS:@6I:K!7Z!
+MJQ at 87^D$/H'(X"ZEL,36!Q1/L6EO_X?Z8>AO/@Y!$CK9!TL-QN")>-^TA[SW
+MT2@;IC&&H\)4.4O1'.LLL"[@C6%O5M]X8ZF/-=$^CV_K)['95Z48`@-F(-8X
+M3&6YICN1=V)?TR7:WS1TV8K``I`NJZ>5"C,M;&I#;:>ZJ^SHEL?517)T%LZ_
+MHT`86V<68H"8O6X!@'5[=?,$(C+SW3$1;DP$IH0`U>V:H5H#=I04]R7_YOQS
+M5ML$HM1HXAQ!)O%9[4NHG97_[BFWX^>^&'&8&)/QY^S_5)2$/P^%6,$&2NX"
+M+*_<=YCR0YG7G>AW`(%^5XJ'MMFV^0'?/.ZK2M1-'Z305QX?&L`3.7."CYFO
+M<8S)0&./3?M9 at +4,MNEW(ER3ZTW!KN-U)S9M<PA2*3[<"EB^%@T];P&:4C3@
+M#-\"0%I<EO?8)H]^T9HW!W?IOD`\`\)X9VAA"R_K+5BCJZKL(/H/O+;KV1Q%
+M%%$HVM at I;U=:AZR at C1AH`6PPH&/9-6TG\@I,Q+)J'BF!P_%UV8H^<)#P!A(.
+M4,B_E"(7?8D%)./*`6>DCHOV24)F7HO[)]&555GTZ+G&&%[=TH?=*RS*OB8K
+MU%R'LA["<Q at MQTTYKN1:"T/C4J3F&*GC2#^\?XL-B53'K&`EI!_:%;FC&>"%
+M`>XP$!.V[BR#?X0L6"=.>R^SH;4B2:%Z%ZWW3%\K%8>9F7WS;&,KK8`!KF_^
+M3%^KV*'<G'W#4H$+1H:#)@:2CAD4 at +_RH>^H*L!MD#2D-T`VELJG%.\II7F]
+MYI>`*KX:BI)^.]X+D]X,/2:8MX+\QO*XCZ5]H"L=M32:($)Y'X"OB3RUQFUK
+M0A>[>%XH3 at 55'8F@>RB+_68/#79?`I+?4/%.>N-*957D52E,,TN<X%Q$"BC_
+M<UI\8`:7Z1DY at 91S&E$%8_A0KJ94D=]%4T.SQI03<!#[R/`-I6<C#D/5[Q^@
+M"[J2%OXVE/Q%@?=:=L?.&/U<>C?(4:M]5(]?]7:<#JCZ+M5'MR.CY?=YL4-_
+MR(=D]`&HHD2%PZNQ;,G84?>\=.O?=TA<3C+?`E'F[#4`-U/1Z,-DWF>MV]=;
+M9!TKRV6UKTNQYAQT1;M_(.*`%-6OP6X%Q2P]5P*SX.*.$T@)'5D=<!/%<\:8
+MZ*\XDB)9#I:H("5[C?$6)T\$##,YH/(B]9<8F0'JI?P;3H`V.IWR#Q6$B!$U
+M$`[%GT[QISB[591AT`2!#SH>>&@QP`D2.-#C':]9"TR(0_&!S,OF,)5!V32=
+MN>)55<?>DWY'F?<P-/(W^LLX,(@#3`B2>K"T,A?;EBN58Z]:4/1V"=++BVG)
+MG7Q%G?WMJ[M at G,DRH"(_D\V%2AV%2JFI/`9V?PI0WP_W324FO6C].V at MOFA0
+M9ZOA4/M&`>Y),OU5W3BJS#3ZZ:.$^-YX5PU=GU>_BCOY]L>?,`K2D$-.LP<-
+MGM`6J"I$<CR.L at NH2\\*"+.1<4=\*E\,Y0S!4_ZPH6!'>O)'',"EU?%\,HHG
+M(Y_D?POP%S,//C^*LZ$*:!5@>\D$ROE^:`!NC>]TIE'N?^X&8M37`"Q+4E!#
+M=T-V?-_'0%*4)\_U).FP!X\TB5PSG0]^0UP.,-W77<\V<AB8-M/>$`'ZP)6$
+MHX@!F<-\I?I8R1/F;<OMP!R2MTA2;V:$$)V!X/_F_)/A6!DW(W\0<R;_=Q4-
+MF at 0>NOH55(R1PH)`(E?#;)>R%&A,8(<'JESXITB+^%MR'-`Y5D7NLGTCE?BA
+M>%?F:^H^&-:(2 at FM1)OT>,T#&3`=W=:^H[EAH;GNJZ;XW(V=ZD(=Q?9RI)P-
+M6AXW&Y%$,#KNM_4!Q3]CF<<#X4/3[0E4^)1&`B.O:-F\`/9_)=19U]IS(29-
+M@[!FN/N,<DQ#M1L%BQ,_>:7'0\@4_^5`V)P[E63NHC;L5#(Y!6<B<*"!PE!U
+MP.::DP^LBAQ2HK<-]SV4Z8Q]Z:<;29#238\.000QE'7_)WSWD+<DFJDLAHIW
+M;U\?8XM'&LDR<WTB^C.`._[V+#J3).JEZ%1D49G1N3H_E,=`6$N.H/,"<>;2
+MTENYFN\7G%J>>Q6?>P4`+78T2^5M3K\T["H^AVK9=J._'L=U?P$(4)K(I$Q%
+MJ&%_&!'+.=UJEQP'+QO#-$N(H*DFK^&(FE/]C)?]DI0&*KOFIT6.>B\V0U4]
+M(8\DQ".\JF4]^C(.27?R/`0-1SF at T?DH1LY_\P*<X]%WXT>%NP"E``;_KO>G
+M5J"KIV7AK_ELZL^Q[1<^RC[K%9Q63*8NG'KS at E.I=RIU9G)*0!OY"0"XV/(Y
+MP46XXEFZ>"QSXH?/S`84AA]H69U:S&C15,09`TO9P:\05\+1/'R<QQ-^/1Y-
+M298X9,"ZI0+*=.Y"]UB\OE\M?A\`QE+YE`H-"F5N9'-T<F5A;0UE;F1O8FH-
+M,3`@,"!O8FH\/"],96YG=&@@-C4P-2]&:6QT97(O1FQA=&5$96-O9&4O3&5N
+M9W1H,2`Q,3(V.#X^<W1R96%M#0I(B=Q7"U035QJ^>0*)O`S1K4OQ`D5YA##A
+MI8"H(00<"P23$*EMU20,9#0O, at -(08%H$;1:VBH^J:BMBF)]%!_;LW7IL4>4
+M*L571=:J*W6K]5&U^`;=.U`5;=T]9\_9/7MVYMPS\__W^__[W?O_?_X)8`$`
+M!H%RP`'CDS5XZL3<GNM(<Q@`'R^5)B)2=N"'!>C]#-+IC(4T_"RBH0$`<30`
+MO/A<>Y[EZ^Z$[0`,LP/`G99G+LYUOT5.!R"H'>%+380^Y]#\7"T`8<@?B#4A
+MQ6"18#$`?LS\:R8+/0M/6E"-Y&X`.%5FFU$O3A%+`1B1!@#K@$4_R\[1\4.1
+M?2/"0ZO>0M3<2?<$(-@'X9?9'81=U3)R&@`!I4A&ZP!6W\T\@>@^>B(<<XEN
+M8D[1-;Y;:.6$RKON+!=VO5-T%JDZV2R6S`,;Q'?MGV'S>`";SA>$\5E<EG,4
+MF\6M5V.9F&2`QG>=7[DO&--WJX`!4,`&S(``-!ICF1N#S_OC>CE?V7SD9DCE
+M.(G$?5EPVNO&>J?G.,S);D8CA.TCJFXZNN#2QJ^_C&E9M:BJ=7BK1O<!YOZ4
+M*XN+*%5\+!N.O<KG9'$%HB$ZPD%JR#PKU#H**!IF$'21S3%3-A03,P"AR.,)
+M0`)QJU$JDV"A_1.!SRQ)"P$UM-YB)ZUY4$,X"DDC`=4V&RV+QB+[T6$9*IB&
+MRY/P-%S[!I0K%,I,K3)9`H.-(7&CX/-K8'Y#W>-&83&R2&P4AJXI2(R314;)
+M?A7_]S=0L6;@F;-X@%.Q")U[-;NB`AR7PANF4DFXM,)W!W_G1N$>;_?)G9J.
+M at JY#4:$[3]QQ>S/ZE\LUC]P&M?_UCU/^=.3'.U4[ZIKG!UV9G>U%S9CU3;ZX
+M]T#VG9`MV5-KN;WA!N_L"M_6_"4G`[(C3A[VX<V+_6+)YJ;TB9>O)P1LU:V8
+MX[_:7-D\,779C*8-L2=[W,*/-\6M8G-04K^0$AS$*]Y[];N\L<<NES\L.=G0
+MW5C<P^M9FI@?V!`6?.X]$5']2#*?]?Z4E896[XWEW7OV^>PYJELQT]6@/+#N
+MT\Z8,E[`64<XMY*WL=1MR$<^BAMWAZ1_Y[)XE9<Y^Y$@9EEK]9IS7/OJT-GZ
+MQ5]=$N:OW-22:TA*7+HD(')Y0/6"!SFNK]T^]@#E[Q$T8MEB\*7WRD[%-?^'
+M*=GSJEM3JFJ"KOM,__]+XD;92"RHW['?/Z?Q9*?"E^[TWZ+XY'P$OSD?;\R3
+MF7`1N>)6FG!8"1JKJ/M-2B]$49C/I/06_;6FK8MJ4FO.-'E/)<\(R at PU?-F1
+MML=5'Z2<PN.77#[!'U>W==VL*5?O]QB5JKU"*_;SNM at MX6[G;MI&;G&?-)T7
+MHRIKTZK:]TB2.H3MB_9.?;R[O+VKMJDL`$_R,A]?OIVE6[__6^F:^.ZR3=D;
+M3 at 40%]_;,FOUGT^G)IG>#)_=NXO-XOQ.0ENF/UPQ[1/R\^,E]C!#H%\RG+0M
+M4-Q"L^_CMT8.>ZNQ,C_&->S.^V?/[ZJ]M'#CZUW4P0EN==L[%W:*/VSE7'0+
+MTO%_S/@D]=.CDU-.C-;=]C^R?T1">%!DVZH+?QF?^E.');7P8C.VWK.\K:PC
+M84[]_:6ALC#Q at X,^U[[??CE+;D\)E\S!G&X;T/"LY[!9;+97<6ZM=>[V]MVL
+MP=:ZYB8B?R!C-DIH_>^<^LLC%(7)^@,>^C0C%#:+A7`82;T9:FRY=)'>0<#,
+M`H.9I$R$@X(*>5]*CL:B9;$8]C0E&3$R*B8N)FX*YF2]_1\G(4O!DON-$HN*
+MBJ2%R)!"AE*CS1*!.K"-(FF;HSA"D:EAUK`Y[%)H*(9J(E<J8?):FJ9-9G(Y
+M5C86&]/O)R:9S"-IM"">#!5F/47!*!@.TTFCPT8A"L]XZ/1F,D=/DS8K+(R4
+M"3$WQIXO8F=I9"+,FQ%<18+)>LJ$2H^V665>F$?_4;BHB1R+S9HC\\-\&0W'
+M1_S,O0)QM#GZW#Z9%[YD'ATP?+&*G"QW@/2N;">+!9IJCHW8E//W*^+]CRTE
+M<I7 at OBTTOTWZ!\V&R-CS)TQ_B^G%!W?4]A#?:GS@/NZA=VX?LEN67#W\^;90
+M;&5D=NGNAIE!>2N:+Q3]Q+OX<U?MW:W"5S9\-F:>_<(]VUNJV39/M7*!^!1Q
+M)@'RNA+7FI?%>PB#1-?\OX&+X]XQS.4="AS6HZYKK$NK/34F(SO167+=+4:W
+MR]2<I%R7(%O_L&/IPZP6R:;U^T-4;=T?W>`,+[DICF^XMSES+L]BN+%05#7Z
+M=)>O!_45?_P7P?NO'/DPOV5?[LZUVH#OA'FE]^875S?F"C9/>M#K\.^I?/M`
+M]T2/J]GZP/3V'?$YYT4?3SWXKB5MR+9$%U3(ZYV\[S$G[W1?=%X5<=D8P(3,
+MJR>7RV'SZK&**D9B<2O*L3GE7B6U/QQ5])J6_S+ZL#7AEM"YUOA?*"0GC]V$
+MO at HQ?X8)E\5ZS!V*^6#,E]^S+[LA'+9+.4#11A`!EX\A\OSQF),;.P`C8$R=
+MW$"D'EX?4C[21--V*CXBXE\4QEHG9V^%D].D-9$4-!(.FLPEC7J:@&1?P3#)
+M1E!,U3B(7,)!6(V$!.JM.9"D*5A`(1@%*=I!&FESL8`J,,P at C#2D;1)(FPCX
+M[!">^F7J)=.A-]),0T2MB28LA)6&P8A)B`#1I!B`3(JA10KUI%EO,#-,GO?V
+M;`-03\<+7K;1!(:U,MR"W"`<1"N$.XC\`H*BJ?'/XVP.`8(^`3X?4PF,C(F+
+M0F'4HPXI+R20(MU68*7UB)6.)(HD*(0P+AJ+CA)D:>0(9R]VD'DFFFF2LKBX
+MV!?<02 at WFZ&:05#HAXA"/9G(D4*%4JV5XQF"R7*U6IZAQ94:F(QK%&ER/%V9
+M#.49R0/Z<!J>CJ,V+!4PZ`P\(S4>:B<H899&"54IZ!77]+G#4W"%7*N$2-1H
+MU;A"F_8&U&0E350JM%"K8DP$.J4:1W^L,@;@<54&S%3+%5I<H41VR$&Z,D.+
+M:#-+X)I_,%_M85$=5WQF[@L6"(B`B$8O$!`5UET%T:@(91?!+,\%`0VZ+.^`
+MK"[()V+I@@01!!715FH$333XBFM1@]0T%0MB-%%J,.(KU=I/:X5JHZ)50\^]
+M*P])_;[^U79_>_?.G#ESYIPSY\R<5<?`>GQ`3'1P>!3H(NE74MUO`1\2&J$*
+M>:6S,BXB2JE6\X-6 at 1/"`E4Q"D'*(%4">H<JHP*#H=MO97 at 4'Q02'29,#X)V
+M`!\1`#H&QJ@"HOB(F*B(<+724UPD-D2EXL/"HR4_4XI.4BG%"8'A86IE9`PH
+M'Q*@\H0I82'1(0M>S>E7-ARLBN(5`:$!\Y1J*:]6*B6"G<)](<A0*(%+I09/
+M!^H@][-ARW2IPV,Q+2,'CH649#Y;ERV$56I&2K+:E`@!N9`9VA600)*4E3!?
+M#.Z\Q*P5*7Q.>B+$0;8NE]>F\$DZ&$H6A23F\(E)22OTI at Q,U>F7BCDCR3-=
+M-\`!D2IH$!(@E7P\W>#]GZ1Y/SU+EZ:3IF6DRHH."2<)3Q=]*C/(#*R%IC08
+MESY58 at YC('BP9G"J,`R<H`YCWR@?G"33#G`2V0*9O<.P\U`&Q0IVFM-/G)`C
+M>C9C\"8>.%/XK(Q$K93/RH5<>+VZ1.)'YC#DI!M#F\E8..W at .ZSN$2JU+:I=
+M^3%7<M^O<&O9PS_(:FHL""K84;>J>3D;;&^;<BYAXM/(6>N6'WYD-V/EE0V?
+M61BF;TP(_F4KFB%1?^GOVU<^<L)2-,^[-U at EU?^C[6+A2X7.94-'==V?:[KO
+M]*$S+3WZL5W;J>QC)Y,*IJY4S-KQ8?GSDE)?#^F=/3-\_9I?_%#L*B^FQ\$9
+M[`2FRU;\%^Z/?U,,6K)F)J<0AD'U10VRT0->,J?D0R\6&FJ,P9Z%?-BU(QL_
+M.)&6V](V*9,="K]=O"1LXZFO"BNM+QR3J8:P6PIE5+VMP0;%H at R4C=)0LNF]
+MT]WPCA!'K\)H:7\Y(\91;OXR79H^<5EZ_O!RAB[&R,)_?LA-RU;#^AMFTA'Z
+M/,WQJ%\H[IWWJ%E[=-[$VMEIV=VVU4^>=QF:7"=,K<_4CMZIT]:.7M!R^M.)
+MWL%5AT?MV;1L0\?:UD/*J^][:K?V.?IMI^H6?]":4\7^/>G^2UNFV45;FMN8
+M=\LJN*I3VYG6=NKFN#\TO%AUU]JQ?4[?)*^J/+SEF7?/NBT;-_EF_FJ*N^;\
+MXNHU15^>]7#2%\8[-Y1M^VY4H]O%,P=\S_HM6?3BXOY+FKH;XW/_."K_;.'>
+M].+F']_B]C9]_ML"J&:NCU[RIY+9H0OOG]X047WT^WEF6ZVRXSK[KM-E[[G7
+M7/:U?;?'<]F9Z7%6E64GJSIKMU3F=T=K+]L%GM;O+,87H*([-[@/K+P8?P&D
+MXT*`%37]W_]W)?;HBQ&U5P*[G9\'Q96L^RJH;*-;CYUF6)#&RQR'QJC%0(?#
+M$*(#(XS<6OS;X2N7R7U\IOK,6/B3$*U.?2FU,93WSHSJ:+MYRV/Q\*`J,C@?
+M+(U\9CYYVPMNPB'==Y)O;[E5MO^SW89]?NFOL<<B0KHH*[>>'\]8/7346'Z]
+MPF[.)E518X"LW>M2[X5E$D75S)DIG;UIS\H+1TA=WKZV>1\S:UX^:>HBRW>;
+M'7GT\&,_;:/]8S>M2Y/-O?G-;0F.)=.#PA0:]^?5N_R;:MTM=]@_880##7/C
+M\$8$3?H;^AN$*(?^-TJF>$O$H#=]X*KED?\#_D$?.QE_ at N2<'!L-;^3^GW\Z
+MWC at B!R3A.%)$%D+KUT at +O[7P),.S#=6@&M)HXD'3X#%":SZZP[2CJ4 at OTJ>A
+MU?"K0$]Q`RH5*;.1%L:UP-T*;S\82X(W%F74X/7B^^>H!&0_)(VDA;2(HW-!
+M[GR!PP32R+0#79"W!GV&;N#?`T\!V at QCQU&',`LDUZ"#J!=[`"KP7W`WB0`J
+M%M8'.9G`70/Z_ at YUH1^P'?;#Y?@$\-B2(E$7TVH&X&D%=(A2!(3B+*S#>KP.
+M9-XF%/$!J3I21NJ)D;10\;0?T\[:LKY<%DC!B"`*C0`+!6EA2`TK:]'R`:DF
+M7,`$1^)HG(ZWXGK0H15W`QX1+S(7O"Y@"Z6A+>F[3":S"]#.QG`?F;$@FT$L
+M<D(\<D/>8)42UH@$G9/1!VB5B`+`:O!E,:I#]6 at GVHL.HV9T4E@3744W4"]X
+MQQH at V.6+9^)80#Q`CPMQ"?BC8@@J\7;<B)M!O[.XDXP'JTW(`NM-6JXAM>0(
+M.4O.D>_);7*//*0094XMH;14#K6;VD>=I\[3P70]O9.^1E]C,&,4/67+VK$)
+M;`5@/6?.97(EW";N(^Z81(I&@5V>8-=\N*>24#Y8LAJ5H7)QUPX#CJ"C@'9T
+M3[`#T/?*$@$SL0('X1A`/%Z(-7 at ISL$K!RSZ!._!#?@(V-()N(ROXIOX;[A'
+M1"]AB0.9/&!?!%&36)))MI)M9#O9#Q'92$Z0R^0&V'B;/`8;+2A;RIX:1RFI
+M($`TM8A:2:VA#E(MU%6J&_;-DIY#^]$Q=`+8WD;?IN_"3A*&8MP8'^9=0#J3
+MS10R%<P.B.ANIINU%+UBRXYD9[%KV3JVD>UB7W+VG`/G`I!R<D[-97%YW#[N
+M-G?'[(!Y@'F&N5[BB?8A&?I\6/8>A>@^11+8*<@)7X5H6$Y9`Q<OY!ZQY++,
+M,TBCH!VGQAZP4]=1+V6.WJ/;4"RU"&4Q6LJ"NX\:<`Y=A/=30>@`VLWEX1.4
+MANJF=C-N["R3/TDMM8_+YS3<'=#T$;692>>D.("IP`UD+F2T'D>B)_ at Q6@PK
+MYY))J`VM0V4X#YFA&K,#V`IRK96,QQ7,+NHW=#VE9`KQ1-C!,4P[]2'R0?;(
+M$GD@%XAU!MD)!ZZ_[PQ?[VE3Y;(I4B_/R9,F>DQP=WO'U<69'S_N[;%CG$8[
+MCG*PMQMI.\+&^BTK2PN)N1G',C14N,A3Z1JDX8WN&B/M[AH<["7T71.!D#B$
+MH#'R0`IZG<?(:T0V_G5.?^!,'<;I;^+T'^#$-OQL--O+DU>Z\L:O%:Y\$UX8
+M&0?M2H5K/&_L%MNA8IMV%SM6T'%VAAF\TC%=P1NQAE<:@_+^Q7[YQ[9QEG'\
+M.=OQ79PT<=HDL^K!SCL2H3K.KU*:=%OFQ'%^V)M(D\#L42EV;"?QEL61G;;*
+M-DU&HVJYI&!887]M[32VM:-FYV8,9RI:)"A4&@)5*D,PI$VC^V]%XH\B`6K"
+M][WW["6A=$Q"2$C<Y7/?YWV>Y_U]ESO/J/Y(/]HK5-E\BB]A\[10P58%LPJ6
+M-J#,%X2!'D$W3`/^`P4323LP*BV@]/NU8:6?#4$S-_FC<6WD8,C?[W2YPIX6
+M3?#%E$F-E#ZMUJVGD$_O1K/Z-%'O1DZRZ="27&A94Y>+=IJ,N*OC2CQZ**29
+MHV'61YU;&U3ZM<''KSD\+47AY?&05NDK"C0>6J7`1K8PG.WO#[/>=OI"Q_7T
+M.Y!^Q^/7G&;5[TC*K*BJQV7MS,'0YJB+7<-A-.II"8Z&7!BUXE^6V31&0_H,
+MT*C@:,, at F8]-DT\XH?B9)_*(K%4J?<J,^D@$F[5;U6ATT75A=\"[NO$^!?RR
+M.AY27-K]3B4<[;^S4$_JZ.+*L%<>WAKQM!3L=7RE"S6UAE&]8[.1*,=T2T]G
+M%D9=6FJ!C4 at 9QBVBR3$9(PDIFJFIBUT27:3&NI"&(RQ at 19-8OXAJ/\`VHJ+)
+MKLCJ#<*-H%S_:*LG:GBL3?8;Q$QVNY1O.<1+MN9V:WOVL#M%]&%K,;(>O;S/
+MTW)$"RKS=ED+8LEH)(1*X0-M6'*7B^WR4M%+DRAHV8,A7I9ITGF!O&WNL&:*
+ML,A:*=+P91;)EB+EZA$%M_/K>!T2-6A2<_FOUMZXRS]S0!,:;Q-.\#@>'[]<
+ML%0TJ2.AYJBZY&R.J,MA;,T`'D55'5#D`36B1HL;V4E%MBMJ(1A4Y_V1TI2*
+M&VM+3LV[')X1L*C:7KX:VBY?R.PTA;EE<IK#'F+C$#O61XBJEHDV?FU[3Q_9
+MYN,#"^$=CL,*)$8/!2H_3Z=L2;!&`;&93E5>I+SY5;HDG:>\>#?E*VL-)CA5
+MQ\$RY:5+E+>]1?F*9SDLUY("5Q##%XSX70I(9]#FUV&[>%R'V8/P`\L*Y:TA
+MU$]PQ&]P+'$.R[>^15\I(?T1>4/PO8T^WD#<":K@^P)\7X,VT"GK,)TJ]57Q
+M5X/+`&.V?A7^!F,<>_A8*KUH"^,6T9ZT"L7\Q*/@VRCOA<[QN4K'4/\^Z!2M
+MV-QTPH*U8Y3ZPGH&MM&UA2>0\\2VM?@/@V_`O/D<G[/>SW9.<SXIS\+RKFW.
+M$>Q&[`KLVENVK2-,;O,=_]>Y_Q[2Y#;P;2_Q^[?C=MBLN#^M?,_U?=_:[F_+
+M]CL&1MFZ;RN2RBG'_[Z5LO])NL1@>ZS;O=!-F-^EF+F!8M(@Q;W5-#"`.>RL
+MD[Q#<M'TQ0M#G9"G=1'.<_D!EW-<SG)YA<N+7%[@<IK+,)<A+H-<^KAXN?1P
+MN9=+-Q<K%PL7,Q?!^R7H'\"[X/?@'?!3\`;X$7 at -Y,%Y<!:\`DZ#Y\%S8!D\
+M#6)@0F_S-=YTGLNK7%[F\A*7[W-YGDL_EUXN]W'IXB)RJ>!BXD)>+_1WX#?@
+M,O@%^#FX!'X,7@<KX(?@#/@.6`3QH<[ZROK*_;FB<,0[+.9>$'//B+F38BXE
+MYF;%W)282XBY0V+N83$7%G,A\7/2W9(L?5:Z4]HM.:1&J5[:*=FE&JE:LDF2
+M9)4LDDG"/:KM,@=-P;$^(:BMQ2 at X*6M_&5.*@NW at PUJ%TB=H.X,4'.]S:%UN
+MS71"__(H"AL%0?CF,2?[Z%@E0=@X=M)I:#A,C>Y_/AQ;2L&1Q8MTE["?1%SW
+MKHAW_4QDWC%X<[HWQ[PYW>L0+HQ09S"Z%/D,W:+ACP_AMM$MF?XDF^Y(J"!1
+M7]AWB.N*J<J&^42<KG!?HWV^1Y_</2['4\XW+22<I2J\>ZOQ,;<#L)"GU]/+
+M0GACL5`-^\XS0HZG[G$YWQ3.&B$[W'582ORNQ+O-G,7_>C,FJ7AKQ:N"Y:KP
+M(I%E at RHVS*O"AT1MZ]?MU^G^/^':T;ZWSE77Y*IS9<UT,VNB=:JX_+>NK.4R
+M>Y?FA8NFFY9JM%7_$Q),^_&TFH48&KB.OX[V7:B:-XT@:>2FQEZIS?\_<?;\
+M3Y_LJ*;OE;^;YHD,VTP.E+AM at 7W"L*VPSQBV2-U41"99*E%ZG_YLV`+)PA7#
+M-E&-4/*;J5W8,&P+M9O:#-L*>\*P14J;ON5+S2^FD],S"_(YN:.[N].#RS[Y
+MP60LG<JDIA9D7RH]WRKWSL[*HRPK(X\F,HGTD42\E5=H9Q4ZY/'%^80\EIH]
+MO)!,S65:Y.&YV*UK!?H"_@=ZW0\EYZ;C(.,934P?GHVF/ZU_?"8APQE/'<W(
+MLZGIE)S,X$?J0CH:3SP633\JIZ:V32*5CK*QM9*/4ECN14I3DJ9IAA9(IG.@
+M`TO<39WD,:Q]\#V(G!@R4Y0!4WHNJY]&"ZVP>VD6ITRCY;8R>BD!32#K"*YQ
+M/?/C'MK+/73`-XZ1S"-+IC&T.TN'T482UAQ::(%W&%;L4_45H#[@IP=0PTT/
+M(7L.^7%#,WJ-:?0S2U'4^J1LSW\Y?QPS8ZO!,^-8B:/Z/&=A30,9?E:.@@7D
+M1Y&3H,?TNH_"QW;I]ON6TFN55KF5/X4?"-741B>I!D^1'58WW!]9)A`3]+ at I
+M2[_\U8=/3M3>>T-R2OHC^5+^F76FA;?%JT3K([;WQ`[]&3>>\'\,`!!:!@H*
+M#0IE;F1S=')E86T-96YD;V)J#3$Q(#`@;V)J/#PO5'EP92]&;VYT1&5S8W)I
+M<'1O<B]&;VYT1FEL93(@,3`@,"!2+T9O;G1"0F]X6S`@+3(Q,2`Q,S4Y(#@Y
+M.5TO1F]N=$YA;64O2D)*14Q!*U=I;F=D:6YG<RU296=U;&%R+T9L86=S(#0O
+M4W1E;58@,"]#87!(96EG:'0@,"]!<V-E;G0 at .#DX+T1E<V-E;G0 at +3(Q,"])
+M=&%L:6-!;F=L92`P+T9O;G1&86UI;'DH5VEN9V1I;F=S*2]&;VYT4W1R971C
+M:"].;W)M86PO1F]N=%=E:6=H="`T,#`^/@UE;F1O8FH-,3(@,"!O8FH\/"]7
+M6S$S,5LT-3==72]4>7!E+T9O;G0O0F%S949O;G0O2D)*14Q!*U=I;F=D:6YG
+M<RU296=U;&%R+U-U8G1Y<&4O0TE$1F]N=%1Y<&4R+T-)1%-Y<W1E;4EN9F\\
+M/"]/<F1E<FEN9RA)9&5N=&ET>2DO4F5G:7-T<GDH061O8F4I+U-U<'!L96UE
+M;G0@,#X^+T9O;G1$97-C<FEP=&]R(#$Q(#`@4B]$5R`Q,#`P/CX-96YD;V)J
+M#3$S(#`@;V)J/#PO0V]N=&5N=',@,34@,"!2+U1Y<&4O4&%G92]087)E;G0@
+M-3<@,"!2+U)O=&%T92`P+TUE9&EA0F]X6S`@,"`V,3(@-SDR72]#<F]P0F]X
+M6S`@,"`V,3(@-SDR72]297-O=7)C97,@,30@,"!2/CX-96YD;V)J#3$T(#`@
+M;V)J/#PO0V]L;W)3<&%C93P\+T-S-B`V-R`P(%(^/B]&;VYT/#PO5%0R(#8V
+M(#`@4B]45#0 at -S$@,"!2+U14-B`W,R`P(%(O5%0Q,B`T-"`P(%(O5%0Q-2`T
+M."`P(%(O5%0Q-R`T-B`P(%(O5%0Q.2`T-R`P(%(^/B]0<F]C4V5T6R]01$8O
+M5&5X=%TO17AT1U-T871E/#PO1U,Q(#8Y(#`@4CX^/CX-96YD;V)J#3$U(#`@
+M;V)J/#PO3&5N9W1H(#$U,C0O1FEL=&5R+T9L871E1&5C;V1E/CYS=')E86T-
+M"DB)O%=;<YM&%'[7K]A'Z)@URQT_=`:;BU40P88PHTDZ&:(@2PU&JBYQVU_?
+M<Y:;A)5DW(?:8PS2V7.^<_EV/ZZ#E)&G_>0VFUQGF4(8R983D]H6D>&7WVBR
+M21DQ-8OJA at S?/T^N[_8&6>S1A"KPI]J&;)']HI[()%O at Y64B)&+VQ\2 at 6N.)
+MWVA,H9IVYDIX?'>+AJ.0"K<_,[R[X$]5J'+N3Y*I+./M8O)!>!>+DDTU(15_
+MSWX;A]`,JIZOY4L-7-IX43"/#P+)R]U^+4H,$A4V-6$4DA4ED^K"LVC`M:B/
+M^*@(145X)'A at EJP3R;*I;.K at QVV<J[P\+4+TG11/)=')9DF80J)B#U&8<"#O
+MMU^*0_F%6-?HV!!4=JTT$659:V)`MXRF6X`+H&)BS9UB6)B@"4\F3XL\38:J
+M\-04O0GO_54\;ZN2O-^+.M0)P7#G*C5LS2`2HR:S#`Y_:"S!1D!XK0DO*8SJ
+MNF&?66,XJP^GMI5\/-90,";4H at S7=?U$D at N=8:I!38T8ID$5H^\ILP<$[<R,
+M$V>ZAO^&A1QT,SBC$`:CBG4Y!(Y-*DH:(&R*\2J,!85]M1BGI:MNFR[,RF%5
+MDN6FJC8OF.VZWD*=F0#C(E,;^KQ<5^4-#W(^V(JM4F80PV(XWUTF3?+L4NJ*
+M#34S3C#U76(MIVUN;1,;0A at R/3&2>>>P;2?D$7[=5L7^TVJS^W;D5MDO$\'-
+MHRAPXB#(H]SWDMCUTSQT`B^;9GX8QTXP3^[C//==SW7R)`UR-T_#:?K@>?.H
+M=Y(Y":R`E5F4Y4F0S0-_?N<E]T[@!+,\"/,L[VT;$(M5M2O[S_(0,+AIX$2>
+MGR<A>)F&*7C,8S]'##Y at F#88IH at A=N`F?73=>13W3CB&.:"/,@<2F`=SCN&A
+MQ3"=CC$4=?&M&,IEV*J*%>-H4C<,(EX1)T0T2>!FN>='<1SF25L1QXEB^#IU
+MW`BN47H?/D2CZ at O1+$V"AS1+L\Q/`'6"R+*F.H\=LE?5V>XVJ\U0G8=I.`LR
+M-YP[233WDM")TFGJ-(CR&2`*$-'4=P$;^$\A2I3&61@]3D^KD_IS[%"088?@
+MX2[K,61G&(I_CMM/Q6*U^'O`<#^+XC`(W<"9\:JD49@[O"J9/TT`7``08&K"
+M8#9-P,IS_!`&)?;B>>\$YL#'4<GG01YB]'DPP^AY[O71&WZ/]J,Q-6#@51OV
+MX1.J:@-5&Z:^K*N*/)5UN8-MEXB&<,[;S?&P/1YN^HWW`J=42\7CY)RJ'<Z?
+M\4IZ([$D::!6[P0X=D8M29)^P*[S*1[S[&0H)>EMA$-L'>6&C0.X=THYP/9&
+MUO$R2?^=;;V3A^A_IAF at 3B#A at 6K#B`/G3JG6=NP[;!MU;,2[DX[]G'[2&?\`
+M&S!0XC]#K7M&-D3DV+[+Q1^RCZFH'_OCN#^8]'9%:][8,J11J_C(&W_0L9=-
+MN!N=@A)A(#;AJ./<VY63):K<(9P"?#V/]UIAHB]9H[K%#2X>O7!4PQG-9!EE
+M8;?%*)W04UNE1;*5*.G">H^[R[[\\XA/98W714GPX]'>8E+9UA%)=RXS]40#
+M;*O%IUVY9*-:ZE2U;.5T48>C4WQDN=N`N`'E"N at U`00*/I7DUJG6MT[JD07_
+MNJK*Q4$TP6+-GVN\W(@,EW2BJ!54S9VJV2C:AC(,$K"3U1@^6VV>10LDT':_
+M04'+/3/00E?D-^K2*Y)4Y4N]+KY>$1^>BOI+JZ at 5D*2Z;N*4,U.S>Y%I\IE*
+M-HO5%7E'"6&V;1?PO\OGAA3D<UDO5L_%[BLI>`,M*NN@;N7>B=W#;*M4K9]J
+MQ*E`BP[0(TP;%'GQN=CCN;#CNJ[\5E3'XK`&F0?ZO3$_8C:64!W6**L;Z%T\
+MA*ZK75#6MP;?"C!HP:-"0`)[C:B"FR?T9 at B[`IUKPEY4X`T$DNMGQ6S:;H$>
+M->PV(3X at M^O-N@:@SX!OL7\U);9NJ+WY*2?MQ@)>ZW2F#152FC(S?<Q=^$[7
+M![MQ4L)'@7T4;XAE2I9%+[%'A5="$]_TJ*[([-+Y"8S^=P"8<XXQ"@T*96YD
+M<W1R96%M#65N9&]B:@TQ-B`P(&]B:CP\+U1Y<&4O1F]N=$1E<V-R:7!T;W(O
+M1F]N=$)";WA;+34V."`M,S`W(#(P,#`@,3`P-UTO1F]N=$YA;64O5&EM97-.
+M97=2;VUA;E!3350O1FQA9W,@,S0O4W1E;58 at .#(O0V%P2&5I9VAT(#8U-B]8
+M2&5I9VAT(#`O07-C96YT(#@Y,2]$97-C96YT("TR,38O271A;&EC06YG;&4@
+M,"]&;VYT1F%M:6QY*%1I;65S($YE=R!2;VUA;BDO1F]N=%-T<F5T8V at O3F]R
+M;6%L+T9O;G1796EG:'0 at -#`P/CX-96YD;V)J#3$W(#`@;V)J/#PO5'EP92]&
+M;VYT1&5S8W)I<'1O<B]&;VYT0D)O>%LM-#DX("TS,#<@,3$R,"`Q,#(S72]&
+M;VYT3F%M92]4:6UE<TYE=U)O;6%N4%,M271A;&EC350O1FQA9W, at .3@O4W1E
+M;58 at -S$N-S0R,#`T+T-A<$AE:6=H="`V-38O6$AE:6=H="`P+T%S8V5N="`X
+M.3$O1&5S8V5N="`M,C$V+TET86QI8T%N9VQE("TQ-2]&;VYT1F%M:6QY*%1I
+M;65S($YE=R!2;VUA;BDO1F]N=%-T<F5T8V at O3F]R;6%L+T9O;G1796EG:'0@
+M-#`P/CX-96YD;V)J#3$X(#`@;V)J/#PO5'EP92]&;VYT1&5S8W)I<'1O<B]&
+M;VYT0D)O>%LM-34X("TS,#<@,C`P,"`Q,#(V72]&;VYT3F%M92]4:6UE<TYE
+M=U)O;6%N4%,M0F]L9$U4+T9L86=S(#,T+U-T96U6(#$S-B]#87!(96EG:'0@
+M-C4V+UA(96EG:'0@,"]!<V-E;G0 at .#DQ+T1E<V-E;G0 at +3(Q-B])=&%L:6-!
+M;F=L92`P+T9O;G1&86UI;'DH5&EM97, at 3F5W(%)O;6%N*2]&;VYT4W1R971C
+M:"].;W)M86PO1F]N=%=E:6=H="`W,#`^/@UE;F1O8FH-,3D@,"!O8FH\/"]#
+M;VYT96YT<R`R,2`P(%(O5'EP92]086=E+U!A<F5N="`U-R`P(%(O4F]T871E
+M(#`O365D:6%";WA;,"`P(#8Q,B`W.3)=+T-R;W!";WA;,"`P(#8Q,B`W.3)=
+M+U)E<V]U<F-E<R`R,"`P(%(^/@UE;F1O8FH-,C`@,"!O8FH\/"]#;VQO<E-P
+M86-E/#PO0W,V(#8W(#`@4CX^+T9O;G0\/"]45#(@-C8@,"!2+U14-"`W,2`P
+M(%(O5%0Q,B`T-"`P(%(^/B]0<F]C4V5T6R]01$8O5&5X=%TO17AT1U-T871E
+M/#PO1U,Q(#8Y(#`@4CX^/CX-96YD;V)J#3(Q(#`@;V)J/#PO3&5N9W1H(#DV
+M,B]&:6QT97(O1FQA=&5$96-O9&4^/G-T<F5A;0T*2(ETDFUSJC at 4Q]_[*?(2
+MG"7R)(KON`(I&Z2QR<T,T[ESAT&T[EAU"[:S^^GW)*BM[KVTAB2<\SL/_S,B
+MW$&;=O!-#$9"N,A!8CV8X'"*;/C3&]^>8`=-_"D>!S9\?QV,YFV`ZE:98!=^
+M7AC84]36^X&-1*V6CX'!3/'7(,!^3](;WW&Q[]^@C*?';\KP+J2K[6\,Y[_@
+M>2YV;WF6C6U;;>O!L_%8F%:(?8.;/\2?]R'\`'NWOMHU4*X]Q55U/!M(-F_M
+MUK0<*-0X[)&#H5C3FN"Q\6H&L%;[DSJZ1K5#.A(<G*D]1M8TQ/9D#)RXAWNZ
+M/><,%9M5FP8%Z+!&CHORJH4HCM&A[\=5U34K-!TI<&!XSLCM(]JVW\<`M?Q>
+M+<@+4E6%];L0*H2=KTM"F[X8Q[G6Y7A:GVR-NI<&J:X"RSE+#P*%#J`@XZOQ
+M6=%GPZIWI[8SK0`J_;C+8 at Q3,':_>$*BEXB71AZ.W18:N&V1&1CML3%]'!JU
+M:7F at T7:];59_J)3T[1XZ at 1U#I[@^Z%@.F$W"KQ$^:W*]/L1N=_C8[LTQB+$Q
+MX<L4 at IZZXZE308]OA]5)?ZNAMV>SMFOTNUK-SN*Y#O:"L8<@@<G$'6OQ/L?Z
+MOF&A[GRHNAY,`ARZ=U-H,)CP^6/!T;L:H\O\O)YVW?:X:U#;_'UJ]G6#JMUV
+MLW]M]IV.8.OPU]C&YV40>MY="XSCKFI_OAS>WD\('BN6>4ZB at A"9RS1A19QR
+M22.2B$RDM"@B4K*'0LHT3N)(,FY91,:2TXPOD[O@/;E^V;TUFFQ)"N28DRA/
+M4LFHR$5&.9!ED4I%3H&<]>2L)Q<1;/E3K,EB>$96^^J]^D3RF))<)QM1A60D
+M%C))\Z*@DIV3C:*\@,\\BG-8<_Y`;Y$@[\M!(>4RHPLB8EI&+"\31J.<9SSJ
+MD7(!2**061I3B,XBR#+A$0.K0ER1U;^GX\^J?JG_T<B'15Y00F,2+726/*<R
+MTEF*-&,0RR*`A`Y3LLA8#, at H`;!ZKDAT\PSQ3+VP/LS0$!:XP</94!_T_7`X
+MNUCWIO`_&\)R1GZ9#3C]?B*2,A>0;2)@$$`R"5DQ(DJ2EO.$/40D(@M)J!3R
+MMJ-7W>,R+[1_"8,$*/"'<2I)J?V79_\LD_\?TSNYEWF^X(PLN>!"I`QF at RF2
+MZ#-YNI"$_.4 at 7B6F^5,&"?&T5`41<2X(SG-QQ8CL2T&W>EHIA7DODJ*$JE-=
+M$".R))(J_Y(LE+^4B?R->+UJ6"F"E6KJ,-0BP3K4"[R4D,H_$8/_!!@`15[/
+MIPH-"F5N9'-T<F5A;0UE;F1O8FH-,C(@,"!O8FH\/"]#;VYT96YT<R`R-"`P
+M(%(O5'EP92]086=E+U!A<F5N="`U-R`P(%(O4F]T871E(#`O365D:6%";WA;
+M,"`P(#8Q,B`W.3)=+T-R;W!";WA;,"`P(#8Q,B`W.3)=+U)E<V]U<F-E<R`R
+M,R`P(%(^/@UE;F1O8FH-,C,@,"!O8FH\/"]#;VQO<E-P86-E/#PO0W,V(#8W
+M(#`@4CX^+T9O;G0\/"]45#(@-C8@,"!2+U14-"`W,2`P(%(O5%0V(#<S(#`@
+M4B]45#$R(#0T(#`@4CX^+U!R;V-3971;+U!$1B]497AT72]%>'1'4W1A=&4\
+M/"]'4S$@-CD@,"!2/CX^/@UE;F1O8FH-,C0@,"!O8FH\/"],96YG=&@@,3`Q
+M-2]&:6QT97(O1FQA=&5$96-O9&4^/G-T<F5A;0T*2(F<5<URVS80OO,I=G("
+M.R9$@"!`=L:'QG'2=%+;8['IP=,#(T$R6HG4D%0<OWUW`4JB5)\Z'DM+<+&+
+M_7Z at V:>Y@'4?O:^B655)$%"M(L/+`E+\\X%*#1=@5,%SG>+[;32[Z34L>DKA
+M$O^S4J<%](LF2J%:T,=+Q![BZN](<Q4J^4`)R94Z*\4>[]]3XD5+Z?//$F_>
+MJ)=)+L_K)2E/4PH7T1.[OXN3DBLVC_^J?KMLH33/SO?ZK9JVABJ2YGAB\-5V
+MO8L3 at 8.RM@'!<=@X,3QGVUCC9]WLZ5&R>@.^$SZ((LTA*4J>FASK?`C%,P_/
+M>$*J_5"O+1AH5R`D?*E[["+8`'_LEO5 at EU#,J+!FF9C)T#%-5>B!;.G`%IX+
+MCTJ#A4B4)9<:##X9/Q:LHQ,J?C29A_8WSW6#(PBV=LT:AF>,);/0[+??;$>G
+MBC5S36^[P>'@?9PCF$.<2)IU^F!A5[NN/QQ,C#J2 at LNR5'@R`N`D#2`J3P,D
+M1&.::4@$-Z+0E'W,42&G^FE"#T:Y+L,(']L.[&KE%BXF"FR#YRK9XA4Z6_NP
+MIR,J)"X\7>&8UH=A3!]V`5.!L4*8TB-AXM#.J-`.,7&-'SV at XD.$9D"^""V/
+M`^Q#!G4N&?+H&GKW\(8,LS+G*!!M-'%V$+`H3V"-!KEDF;Q43/9Y>(-)+KV$
+M^?KM#NB0^9O%,T/FN-ASE&]NBM$:KB>'90Q6[@?.60^P:,D4BNU0RLQM$%\V
+MFB)37&MEIBPG4Y"S+`M5![>U'*!J88'Z7".6I#"D#1H?H]M27K!`GF1=(!@.
+MU, at 3-?)`C8_A1(XD<C(4OEU>Q04-8)=N\#U6[6;C;=V^C.76L'&-!>=7F]!\
+M5)%D<"GZU`^HT?Z'`45V8O/W^A^[(EC.U*VX*=/1)\&@RM/SLW=!,KZFND;F
+M1S,=/7)HG?&\E`7EZ;PP%_W9??7K[>/'+[]\FL,U)!_N]MO/WMIS`JB_%KCV
+M]?9Q_OG^[OH=W7'O+BR8G,H?QIL<(XR=JWST#OG>LUDW2[I9<@39FQ.Q[JS_
+M1JGLO$)HC:`G_W3MNJO]TC;&"XS1XHL;GO^#LS`HZ[R<@#;!^8FN9H98'W:-
+M,TB>%:6<[$E-$)\X7LFHO#^?\5C4N&Y>8=?&*%S6N\%])Q'0?8$B$'3[V35>
+MD]OZ-4CHFT^TX1WT.^N?%R0TP]S*V:5?()7Z;Y*0#RY'2P3^:N6Y($B+M%#_
+M4TGIZ;X?N;B"I5W5^\V`5CA#.9`PQ&0D'.E[O=G;'NP/TKSV7L%?I;;9O,++
+M<\CU/C"!-[I(`\%AD7XZ$!)%HY+"",IP0^Y\6AW2R(R3!C@`WN62AYT>D]LJ
+M^E>``0"91`=/"@T*96YD<W1R96%M#65N9&]B:@TR-2`P(&]B:CP\+T-O;G1E
+M;G1S(#(W(#`@4B]4>7!E+U!A9V4O4&%R96YT(#4W(#`@4B]2;W1A=&4@,"]-
+M961I84)O>%LP(#`@-C$R(#<Y,ETO0W)O<$)O>%LP(#`@-C$R(#<Y,ETO4F5S
+M;W5R8V5S(#(V(#`@4CX^#65N9&]B:@TR-B`P(&]B:CP\+T-O;&]R4W!A8V4\
+M/"]#<S8 at -C<@,"!2/CXO1F]N=#P\+U14,B`V-B`P(%(O5%0T(#<Q(#`@4B]4
+M5#8 at -S,@,"!2+U14,3(@-#0@,"!2+U14,C`@-3(@,"!2/CXO4')O8U-E=%LO
+M4$1&+U1E>'1=+T5X=$=3=&%T93P\+T=3,2`V.2`P(%(^/CX^#65N9&]B:@TR
+M-R`P(&]B:CP\+TQE;F=T:"`Q.3(W+T9I;'1E<B]&;&%T941E8V]D93X^<W1R
+M96%M#0I(B>176X_;-A9^]Z_@(U5$&E$72 at J*`FF:%EED,T''V7V8]D$CTQX5
+MLN25Y,[.O]_O'%*6['&W-RRP0!%D3%+DN7[G?.3-=W=*[(;5U^O5S7H="276
+MVU46%+D(\8\'29@%2F1)'J0ZQ/?]ZN;MH$4UT)8 at PO^XT&$NAJI=A6)=T9^G
+ME?SDK7]:Z2"QDGB0J"A(DC-1\OO;KVGCA<J(]Y]M?'M%7AP%T;D\/PS"D(;5
+MZE[>?O3\(DCDG??C^F^7*A(=Q.=G^:BFHU9*1'[<2_$/TP^UYRLX*KM6J`#.
+M>GX6I'+O:?PMVR--(UDV at C5AHO(P%7Y>!&&60LXW5GC,X7$6DNQ/Y<Z(7'1;
+MH2+QH1R at 1<E1?#YLRM%L1'Y#@K6,U4UD-89A8G4 at 6]IF"W;!5'+,C at IXB%'&
+M+HG=[(SS*W)^O>WV^[+=>&E02+^I6R-N#V/=M5C(Y3`I24Y*BIRTD"MSD at 4E
+M93;%=]M\%60JU[3YM,4)6G_AH'&>CD('6 at N=Z2#2ISRJ at C1-$+GT4ZDX*)+%
+M&;;+XN1<N(H4<'I=^.W'NZO"8^#B3/@)5S:(J0-'M]T"'L+3<C`_FQX0J#BN
+MB&(B-QXV:XXNSXWHIA`G"+$?(?2OQ--C#1QELO+B0,E'4?9&;,Q8U at TO&RMD
+MPX?$@VFZI\#A+`GR)(F7X?[EW(2\+08LL<V_=">V[GQG6M,S`$K2FLM&'(<2
+M"Y'<>2'LGV"A7*N(@[2(<A*M$YV=1*MXMB.X.?3=0]6U@[B__;1^?_OQQR`(
+MQ-^_??/M^P_OQ+T;\.(Y5OQ9>J9U>O+ONFM1DIX7VKWTJ^8XP'HM1P0;]>E%
+M%,HG3!(4\\F;Z(1-&YCT%!A""07F\V#$VP\>`BX_WZW?>!D&'_XINN-XX$5T
+M`&`,I;OM>NH*4#:*NAU&4VZHO.%D("YJRIJM(GW1'ZS&;PP;/E1]S9AY;8\O
+M0K),N<UB,F<1AV/9HXOP8!!E0R#3<M?N33MZ.0$0!HKQ$8XU1[O+\V,YE at W\
+MXOF1,)#)\7"T?I7C!+R%%5&B9T2]#-R[?Y?[0V,81A2HG7G]`D0<")U&5_&#
+M&D.ZBB)9`HD3"TN?X`*L"_;;4GS%V<"D;-KKH?[-&++.%+,SKMK]ZI7P?;*@
+M1F;;RG;G9T]I0M/W[S[=74**Q>:<&9?C9$Y7SO5!T`HG:Z+0GHN"/-<O^NV7
+MX*?D*[?3*0C2%):&L]GY;+9V`81E'K''G:?P=[8QG(HXTG'Z.Y7- at +7.9$Y7
+M*GZ0&[,MCPVA+).OO0A_1?2#)P[E,#A4HR;X*[IE:U>H&V:2XLKSMGH68U^Z
+MCUQ5F6U*B70M-)4O2HIH.$6V*)=)/F7[]Y43^94YHH[SW,&XK!YA/[5Y-'M?
+M2QH>#DUM:(E78)-&A^P[_!Q;KGI:I@*K:`V at 01)BZRGJS-#^BJU`5RK22"VS
+MF#@+DM05$H<#)53(EGJ-LD$I.1:TBII=?.2Z9E(:Z0>V#.9?1V.W5&8(O!PX
+M2#(Z:$MZLF%1TZ&SH8A=8UFS+^W<+%RZXF6ZXH5EHAY`9781D7_@$2XVD]=1
+M/.'N7J(9@?6X,X'ZIMZT=_))&@X>>%8>7'\;`B'>M\(@.[PP^\*2+].:6X>4
+MTJXR^NZ(+"!>FU>LC;ID!@-VH$&*&R4.7_=H*UZ!IFZ&*;#NBTTJD7F,YL8]
+M at 2Q01:"C*%\F5$VZLW21T):Y%0'CWYZ at D4@7NVE1&/YUC`P<$O3*NC]++.V@
+MQ+H(3`9<$N,$J[AP-]#CP'>33.[@?",ZN,?37 at QV8(5G%C6D4JQMH'9V>=J.
+M at ZTX\H1OKSQBK.,(I367.'?H[/IH>@1.=N03\L at NH;GSQ_*A;NKQ6:#B$>'2
+M;AG[NC)SI]#2=I#<I3Q<YMJ_[$W.5TH=!>ZI'JP'+:&+2T:.P_\/M^'D%5JC
+MR>RK+JQMUT4L..KY5Z3]29)<T)GCR+HGDJR18<#X9T\1:(WM2GYOMGAHT`V$
+M,O[7(LQ?0B5>'&%H21.`!N#!G*]ID1D3^&32Y'Y+'0X5/\469&/CB5:$QT4[
+M_B8^_.,7S=,[DCBAB"9.J.WSAWMR"D9#>>:RWM9V;CMF>^3)_L$N]FB7Q=(7
+M0JUM9[9_HK)/[TW_0K%+TC(*$*KD"5IC)QYXA9].T',P/353V>_MSHU=/R,/
+M-9''I/M%`[!!"^(B=IG##71G_FM"+*L,3&N*_9V8+U31XAX53:(CY]S4U%/;
+MU!T9EO0B1&SM)5[8P(-$-MV^>6:"F at F0%%PF;^*@(G4>',I^K)E:[7M5N(<J
+M(C@^=6('?N3Y8?EB1=C>;.&Q0+_YR51CW>Y.Y$D/UM,3 at Y/?T3=4+&2QD*-]
+MSIY)M&$BC8MF/EU"EK05Q at YUSC)P#9XVEH&HQ132H0$L0OW=#D'NO1F.#0AG
+M]!B<L!@A+=L%C^TGXE99G"U2D]JG),7[B7"2RXZ9$<S3/;#[2/M0=;S$1J#=
+M46IVO'(LD9_1'L#]A:!I9HYF72^8ZR73X#'9F'(`M!\Q!(PH7EU?[^JV;`@$
+M$YL1#;7N+7J5T%)+&O\CZL*EA+O9GZ6O4T$M&>-7);];K_XS``$T(%,*#0IE
+M;F1S=')E86T-96YD;V)J#3(X(#`@;V)J/#PO0V]N=&5N=',@,S`@,"!2+U1Y
+M<&4O4&%G92]087)E;G0 at -3<@,"!2+U)O=&%T92`P+TUE9&EA0F]X6S`@,"`V
+M,3(@-SDR72]#<F]P0F]X6S`@,"`V,3(@-SDR72]297-O=7)C97,@,CD@,"!2
+M/CX-96YD;V)J#3(Y(#`@;V)J/#PO0V]L;W)3<&%C93P\+T-S-B`V-R`P(%(^
+M/B]&;VYT/#PO5%0R(#8V(#`@4B]45#0 at -S$@,"!2+U14-B`W,R`P(%(O5%0Q
+M,B`T-"`P(%(O5%0R,"`U,B`P(%(^/B]0<F]C4V5T6R]01$8O5&5X=%TO17AT
+M1U-T871E/#PO1U,Q(#8Y(#`@4CX^/CX-96YD;V)J#3,P(#`@;V)J/#PO3&5N
+M9W1H(#$W-38O1FEL=&5R+T9L871E1&5C;V1E/CYS=')E86T-"DB)K%?9CMLV
+M%'WW5_"1*D8<D=K3(D`S"0(4;3+(..U#T@>-+-LJ;$G5 at IG\2+^W=Z$6+TU3
+MH!B,3%+D7<\]E[I]^Z#%KEN]6J]NUVLCM%AO5[%*$^'!'PT"+U9:Q$&BPLB#
+M]\?5[5T7B;S#+<K`OY]&7B*ZO%IY8IWCXVDE[YWU'ZM(!2R)!H$V*@A.1,D/
+M[U_AQC.5AO:?;+R[(L\WRIS*<SWE>3C,5Y_D^W>.FZI`/CB_KW\Z5Q%$RC\]
+M2T<C/,I2#/KQ28I?B[8K'5>#H[*NA%;@K./&*I1')X)G5 at TX-3(["-($$YUX
+MH7"35'EQ"')>LW"?PF,M1-GWV:X0J:BW0AOQ<]:!%BU[\;'99'VQ$<DM"HZD
+MKV\-:_2\@'5`MB+.%M@%IJ)C/$K!0QC%Y)+866>2R2\=47[<IBUNA(L_;M]F
+M9556._'AS?V#P$#/8/"$JU6<1L'D13"), at F)^M at 5H'T\YO$YHY(D0KOPV`2+
+M'R#"P<M3!2H,O90W7K<5<@"&.>C_ at Z/A.85 at 5.8K$_GA?U0VIX2=B:TN$/I9
+M;HIMYH00^X&>!\=3J>Q?".^S(]IZJ#:TW(F:?K>.4;$4)[%T(OE8;.NV$-FA
+M!*"D<@?KM'WG@,9`BGY?B*[XD_44_"XO6+*:G`S8=(18J$-*1QB$UE6T^+4]
+MDK=ETY=U]8*/^BI,(4.X7R>1]3 at .+?36^[)#&[L&3\<R=UP#0LIM671D6#4<
+M'_E5BP!%IVFVZ7`*)]_\(OI:/()_#;UH#B5@%BH$3Z/DHL>=[&`, at 72Q@EAD
+MQ9.<9QU(*1U8W=&4S6?@F2":<J6Y?+07^NP#!'97H8A`;I00Y%)-(1`P&NA%
+MAWZE$BPK*Y%G`%4R#S7H1,6^%YZC at 338*"$,AD,O&@9#FQV+GJ/==L*N at 0+)
+M:Z*J>XA&T]8-O^*\0RT+`,*LV!TUG^;&]RWE-%G;E_EPL`H at A#2X#A2,W0 at K
+M,H*CLOD>'>:EHBK:['`#!I0C8AN&X!@K-+QE at 7E]/$(N"@MQ"!S\@A.=*'MQ
+MS!P7N%=^N9:CN90"]N-09!O$""''EUV?T>\CZH[A+9N*+(KZ>B?!H@#G,[O4
+M`_/:.G`OT<QD$<YDD;+6-\_9L0'A0Y<Y at 4KDKG@QU9)>LEH4)O$D2/L3;P`'
+M0$[3-)#J%G+YF-=5)Y`HX6Q9-4.OCMM,O!3UT(^3.1I1RM&X+N24;K\N;J9X
+M#G,4A5.8)=&M=P8 at ZEDY<GM6`CZO$;D)PNNY>EM0)?F`\1X3<\`21CE/96<3
+M1:^G;#$-4!V%"JC>7]21F<5'8ZD>1%-W7?D(F<'J at +Z),`@E6LHT,=`RP3MD
+M>(?7>'!41[Z;Z*QXOY42;2`X][8O!X at F//[;OJALM4QTTA6'(H>N?"/NK]PG
+M3!2`3!%$B8JBZ2:"D!PO1/:F<]ZN3;(\Q<F]N[P2&;A+@*^+G6K,]OMWW+//
+M)?M>BM>CTR/<O9%L4DMQ.TY\3(FW=`S9<K"?$8S@"1/``3P[QX<:+8`'GLOC
+M<!1\X)E6&PK/S'`FB8/K``7J]\=VF^7YT&;Y%]LEH5RK(W,!<MO0\2(4"[)G
+M4S,H@!A*'K9 at 2M_R)FIAB;3`X8EX*OL];QT8;[W8\0XDQ;YDM.U$)K8#8/0(
+M;%\">]#J%9)SEUYH'4>+3G3$4YI[&UP6L",1=6(SI3<9O['[$/;@II%8:>C=
+MMCQ`[\U:ZIZ/<!NDXDK5V?5(3\HM6C'HD:3&"X*Y&8'4?9'18%.T`D@=0A1!
+M]7K4#Z!ZL2/!,;LIWY.,[;))L>;E?0/5Q^,EUEB^Q0;/;8F:$J:MQ#&)JB$W
+M,=#&SO%D664'FC#MD;^H%5-TP=`:-B:I63B^8&BIMAETDY'A+#,$2J>0D)F&
+MPM%4WV(=>C,!%IH;(Q>O#5#L,$XX;X;-_HM6"%"A/`PT`X5HOI9/S`I\2)2T
+MAH4Q`L8U<$E-(N*91`?3S5G/M.A'8^P`:O at 1D?<@`+OM#?T*GNX=1"SOJ&A\
+M$2?HQE#)_Q"E[%"=ALC`QUJX#.J2JL</'KP[=8S1#2-60/?/1#=LM^4S)`_J
+M+^/78W?&+[N8L1*;\'_JSN:_=&>BJG_MSM.'S-Q$Y^#8[C#A1]OOR*<]9B#`
+MFY[&\KJPU[^(_R=)I@"XT8"S#@9M-/'-0L_\$>*/'R'@%14L?A("3LNN=U*D
+M9IXB<_C337EA"7P_*JR!16]<6`47X=2V>_$2RE9?O[?\N'Y[QV_6WXU;S7+A
+MV at 9_&67X\+J0-?MOKS->>%JH[I)4(,>^#QP0C/TI&?L3%"*6*(TL97XK?I;^
+MH_LN.C92R37KQTW^Q:9%N%#(Q::O7=ZX.`E\;]:KOP<`V=-#6`H-"F5N9'-T
+M<F5A;0UE;F1O8FH-,S$@,"!O8FH\/"]#;VYT96YT<R`S,R`P(%(O5'EP92]0
+M86=E+U!A<F5N="`U-R`P(%(O4F]T871E(#`O365D:6%";WA;,"`P(#8Q,B`W
+M.3)=+T-R;W!";WA;,"`P(#8Q,B`W.3)=+U)E<V]U<F-E<R`S,B`P(%(^/@UE
+M;F1O8FH-,S(@,"!O8FH\/"]#;VQO<E-P86-E/#PO0W,V(#8W(#`@4CX^+T9O
+M;G0\/"]45#(@-C8@,"!2+U14-"`W,2`P(%(O5%0V(#<S(#`@4B]45#$R(#0T
+M(#`@4CX^+U!R;V-3971;+U!$1B]497AT72]%>'1'4W1A=&4\/"]'4S$@-CD@
+M,"!2/CX^/@UE;F1O8FH-,S,@,"!O8FH\/"],96YG=&@@,3 at R,2]&:6QT97(O
+M1FQA=&5$96-O9&4^/G-T<F5A;0T*2(G,5\N2X\02W?LK:BD1+;5*3VL6-P*&
+MAH"`&0(,=S&PJ);+M at A;,GITS_P(WWM/9I9DV?0`"VX$T=%6/?.=)[/NO_Q!
+MJWV_^FRSNM]L8J759K<JPG*M(OSQ((V*4*LB78=9'F'_M+I_W>>JZNE(&.,_
+M*?-HK?JJ645J4]'/\\K[SM_\NLK#5"CQ(-5QF*97I+SOWWY&!V]8QGS^ZN#K
+M%^@E<1A?TPNB,(IH6*W>>6_?^$$9IMX/_B^;KV]9I'F87-_EJSE=%2HQZ?'.
+M4S_9KJ_]0$-1KVV4#J&L'Q1AYIW\'+^F&6D:>^:HF!,F19*O5;`NPZC(0.=S
+M(9ZP>9R$1/L[L[=*1ZK=*1VK;X2JD4_O!PD^@_KQO#6#W:KU?:+O:2_WXBA*
+MA1>\EHO7(!]$)@5E5$)3C`I63>W%+>^\X,G7&B3JP7:/]4S$N3Y2 at 0X+O<Y9
+MYMD6L#)?_K&WZB=W<^MG,(CU<:#PJI9GV[K9J\X,!\O3S@]B?-1P,(TB8Q6D
+M')U_7\MTE*E,E'U_MM4@=[?*5-78F>J#,L=ZSVN-G+/-$,Z"IR+XYI.EB47:
+MSXE2[O555Y^'NFU>R258M8S75XJ&49HY=W]I&[D&-=Q]Y>?P[3$XFQK\2Z_K
+MU3Q\EF_O)V2,2=0<HD)*?PUI^?K8UPVO[Y48)_<F0_)]7-RWPK8>#B>_\$(_
+M)I.H-ZT3 at ZPX**%Y(+.E7LVT6U(.1S)/6(B6XLD\RN;HBZ?H2YPW#Z8G:8B&
+MW>U@>=#&=02C&8?VQ(*9H:Z@^P<UC%W#.F3086('*3)O=H5V0:378:RS')$(
+MUAP_^N(6C\S8]93-%^\YET0?ES54:@.!8E$]6ZK>*++AFA(FQH?61<Y6C at ZJ
+MLSROVI,H965_BZ3"X<=QN*7`61SK<!VM4[9C$6>S,@(ODA>)2&>>3'TTCT>K
+M=FU'-,'J#![`A*YFD.!LUE[+BVPX\!E:MO_)(!U&WCE-.8#PYX5*[E$FR%S2
+M at 1302)L(#D.@]2X?@D5LQVE^$3F;1=:EB/SPWIS.$'CLC9]"F+U]]0='<@SE
+M65R\Y$@@(\Q5EJD7WI^[]K%JFUX%3PX=ZN8\#N%I9]1_5#L.T^0&LUR0YMD,
+M-R"*R(B6&C#?BP))>0$R2I$[%4Q#<&Z!4'^&:1_SX/=6_-6*:[I!0:=]9_M>
+M/1_J(_MP3F]XD(#N9V_+$[LSXW%XA<39_>S_X\CD:A*J3Q8Y83>4BSZ5'$B!
+M^!_\4O)"4UY0C)7>6>:2'PTO]4,W\J`:YL3G8+*\VE$\=C(^M[``'3G+ED\R
+M>4)Y+Y3=R5X2L8%MCBP282- at L?=+BDT^LT2DJ[#4HIF.R\PE$HESLLLL@:QB
+MYM&YADQ/HM5-/4AR&=DYJI>NJWZPYSL1(4;#$I4.F:*9>3HQ/RI7R)J^QK6&
+MQY2"'@"P,TV_`T2F$B2%UYV,("_.*Z`D9$'F^XDW'FE#;E/B>W<3I#C^?R,@
+M3;,EDRK*)^/T?$)-`'K!2;NZL2_I^2\"@C^%`"%8BF0O$PB>7#K_!92D5U`2
+MW4+)+=@DBXJ87*Q>.%`Q3=/"UBGL^<57WSQP17SSZ;</?P-4T at LU(?9?U')@
+M!JQ:>B`[&!18C_*1B at 15HH1B6B.7CD--+I#PY0V`.J7CKL8R"4(R_!^@Q25@
+M'&F]A!;JLI!EDMC4%F2"+_E5W06CU$/@\W?L+7^YAI;4K?!4$"255C!F!$D%
+M0:C#.G'9)45!]!GF8E96_3;R.=AC^("'1;LD87NV7]4>Y=`)P>(D%K*NPTIO
+M8">[\11&.A>E$71;]M)824O`.,]N.XDC>$*.X,&#K_$K+E&;`Z]9.?+;*$+[
+MY`+!'`@=%]FBN=$3^\RA7MLY at 5WW8,6DU4%:B:-KE45;ZL]FXX(9;^YY+M+*
+M"ORPGJ$WF(2X]?_49R6E at YU]_60;JBE&]=(UG0UUPNKHFC_+C0F:OZU"+!@J
+M+H,<W,N^-%V=,$8K6$9IO%`^D;?9HQV>+3A%TK(2VNDH4JY+KH[<IZ%K?K)W
+M at +NSM,8(`,^%M_3;S3`5`U%S8O<'V',O+UT4SN7S4P,/C3-]N at K4H!KPCRQ<
+MM5V'`Z[13ZC1[ZE3&YQ3\0I,LO)6+^;@FFN6TTJCWD^*L:P4NM3B-[*)&'I-
+M*\WEM0$$'$S=3&^&15L?3)S_&G[:!FU[VUC52/@VP=Z<576`/TGSE$L^=_H`
+M)G96OE`JN,2'$'54Y3F`/$7>'LR3G2,>:=I9%4T%2*/\Q^OBGZI`%_SZ6!E:
+M%H_?"<:'1;4(C0!P3;L?*RA73Q*!C3)/KW-%;.&":"]OQ6QZ*Z+-=^"#5Q%#
+M]ZT:10 at M],LO(WA,A/&#W+N1^0;X-=X$1;E\8;W00=PI#B-N$FJ?DI*[UEN1
+M**)T5+C:$.<OVE8I<)L[\ZEPTW+*RZA$F*R7DS`,>?:P6?UO`*3(E_$*#0IE
+M;F1S=')E86T-96YD;V)J#3,T(#`@;V)J/#PO0V]N=&5N=',@,S8@,"!2+U1Y
+M<&4O4&%G92]087)E;G0 at -3@@,"!2+U)O=&%T92`P+TUE9&EA0F]X6S`@,"`V
+M,3(@-SDR72]#<F]P0F]X6S`@,"`V,3(@-SDR72]297-O=7)C97,@,S4@,"!2
+M/CX-96YD;V)J#3,U(#`@;V)J/#PO0V]L;W)3<&%C93P\+T-S-B`V-R`P(%(^
+M/B]&;VYT/#PO5%0R(#8V(#`@4B]45#0 at -S$@,"!2+U14-B`W,R`P(%(O5%0Q
+M,B`T-"`P(%(^/B]0<F]C4V5T6R]01$8O5&5X=%TO17AT1U-T871E/#PO1U,Q
+M(#8Y(#`@4CX^/CX-96YD;V)J#3,V(#`@;V)J/#PO3&5N9W1H(#(P-30O1FEL
+M=&5R+T9L871E1&5C;V1E/CYS=')E86T-"DB)Q%?9CMO(%7W75]1C,3#99'%W
+M@`!>VHD';MNP-8,9N/-`452+B41J2"KV_'W.O55%D53W($XPB!L6:[W[<NKF
+MKY\#\="O7JY7-^NU$H%8[U:IEV?"QQ\/(C_U`I%&F1<G/O:/JYM7?2+*GHYX
+M"O_#//$ST9?-RA?KDGZ^KN1'9_V/5>)%FA(/HD!Y430C)3]]>$D'%RP5GY\=
+M?/4(O5!Y:D[/]3W?IV&Y^B(_O'?<W(OD9^?OZQ^6+*+$"^=W^6I"5S4517I\
+MD>*GJNMKQPV at J&P;$7A0UG%3+Y9')\%OT9QIJF1Q$,P)DS1,,N%FN>>G,>B\
+MUL1#-H^1D&A_+!XJ$02BW8E`B7>::J$_O>.&^`SBQ].V&*JMR&["X(;V$JE\
+M/]*\X+5$>PWR06124(]R:(I1RJJ)A]7%,JR>BK4([O!,N*X3>ID<NJ)NQ)NW
+M[Z!6(&\=>$N^?W%W.W(R\>$+-_#2($M(,7=AMB#3=%^U1R9S.@^5N+T3(-[T
+M]5##@J>N98I!X&5)%D+BD4Y\H9-S&&V*37W`M:I_)OJA[2JA1;Q]_X("`B2B
+M--<4)"2]E]MJ5YP/PW/1M((5JIN'>\<3=!HJ1%H%5X5P?QI.-9FX2*OPNG)B
+M&+LON_I$@C_7AH!7<I5=V\!Z5VG1O\CUONZ%D\B6;SNQ%)B?>[AR,++1VK"O
+M1'&H'S!NJDZ<'>/Z4$)RS3'(-2M6TQ_9))I-03SZ:J`HXM&O$#N4YZKA;UGQ
+MI_<$[:[!;3`K@\#9,X^KIJQZ471ZQX2Q94N:JNA:4Z5B$T1=56Q)EUW'7H](
+M*\PKL:L/H-N?JK+>.1G"H8;V\"`DN7OSXLU;7D/<(]SN9<]^(M8*21;&QJ_,
+M2$W\(A":2F>*"GU\2\Q1"N3>S,6.#R2RQC=&9!_,M\(WH at -VH[$+=[@:>+E\
+MPQNA?&%8V/E;0_&=N6!%N)?,.X?/E,H at P[UC%H@'2&:\0]*)P="P8O_3;%BI
+M&BN^/3#>M`O&,=8\5R$8&,<DJ2E>?76"1Q75%!^B=`7['A0=-^%\YPK6<*2Y
+M9"^>ZL/]4/!9,RTKC\_PSQH[.>S-.Q3E6#MITMVN[2@($AW&@135MZ(<#K^)
+MMJE$UYX;/K:E<-5U at 7,4NQPTN&!%)%W]:?1Q73`Z^F$661U_Y9BC@*<O`IX^
+M_9\=JI_BB&K`H_ITJ$19'`X.ZK/LA5YM'9_B]>,C/4+%.?6K!`U0);9#I--(
+M_/3!08E-Y$N=IHL*K-+$2[/I?;JJ.]F"4Q9Y_I336`)Q_L/[SUSJ%M1#/_#"
+M;"&=+J!D'5.#**=%4Y%),]1&)!^T#[1/8>.VV^JMCFI2NQFH`Y1M\R^SBLS$
+MY\'1R:,SAF]2-`@4$UZS]0()X8?74;DLZE_DZ/23$^%^06P0.07/CM6`CLN"
+MHTQ\[>IAJ!HNF=K*")$\2*9=0UVZFHG[O2X]IE.@,4"M`B[?<X5#B(D#55\:
+M]<_'_A:8!N=:'M/8NT";12\Q_6`B3WI1..4;4':X*X9R_[%K-X)F;YN^ZH:?
+M%_-?>$[DW:>Z#(<_ND,0&PR!MEATN,])<R'JA"'\$<GYKLY0R^<JP2;EG5F$
+MAD7U#2[8:AFY9,]YZ&T4_)D6'!-/J7$=$[??BB-EZ+G78?!073N&A4WB+!T)
+M!=.&C3*D\CR2W at T@Q at 9AW`MWT!6FVGJGHBN./:P-2.(==X4>J<LPY.'%*DFN
+MK?(X85?#I?^&^B5VM/7S)!H!R"26DU$K8^>'JB$/QK:.QU3%]GJDXWUI,."C
+M6`63V)S9R\A.Q=O(OQ`O0X7)U?2Z!<5?ZV$O2L>-$$]M`_</O9X\DDQ*QQ=I
+MZB<VF9`5OI?C7Q!F*:1BY?TH]*,\F4\X'[2A&&B^IIM^``2O4C_EPY?)Y;#U
+M'@XGH8\RB5<%O58FDP4F1&',8BUG0@%JDG[,]V3J,Q7%O^,S]T2H^H1&A-X+
+MPSK4".$A)$^"0NIR,[?%"8NQ7(+L]9],IN2FI^<V43X!;''-J(O#S:YN\.PH
+MFNT(L'61#/'R2+.K(LETC`];AF$4T"/&M@".A.,.#]@##4P-M>67+3N)"4O8
+MT)U@<`XJ$$JEKNF$$S4/6K-H)O/2%,^1*12?H7`F!B-%C"BDMQ]QXL5Y,->E
+M=GT'=#=H6 at 6AFH!VG4NX?]*`N"2^]8XLQ!@%@'GA`7K3T/J&?XN-MA7E3Z at L
+MC)T at YT`99UK#%RPOW. at P+M-/);TF3OQ%+T:J\7!TF%92`''Q/72]O]W=.:-E
+M+?]YO":YZ1S'=EL=Z#2]2;1'-OSY#>$:35\F6./*D\J.V[YV*?%D?@3R,![I
+ME:U%\7$:95?O.XQ2+0'4Y$<B@"X]=<D,5/H%]TIVP(!*]XSB6V]0@^%1-XB?
+M)P=&7,P,'W_407/K9,J7HA%C0X/,OX at ++WJG;2L*'DB7RTW%;D&Q/^(!:E53
+M81Y//*M&'K9I;BN at J0,H0&YJ%+#F$742T0AZIX*K-L=7)+O>X\K`D(JC#S5Y
+MAO>9VQ*.Z))C8##![F(@VU,$:LL2!@_)KL#:A'TL[$'\]L_&HP.#,1X_4&E*
+MY1.==Y(T_P<8-,,H?PP,FD&4/P@&S=3XGV"0^@X8='H:J/Q%M.?!3OYC],-D
+MN$Y^!^$%\,DX>!\+Y at OF^;K7)9C*']?=P68(K5Z9)M=$'P4\<B[I/'QGI7HA
+MCQ1[/!Y*@W-LW%\`3C#%-E=<OQOF3)#+[\(<]+RGP<U<NR#R\M0/)NKI]+U=
+MK_X]`#1=984*#0IE;F1S=')E86T-96YD;V)J#3,W(#`@;V)J/#PO0V]N=&5N
+M=',@,SD@,"!2+U1Y<&4O4&%G92]087)E;G0 at -3@@,"!2+U)O=&%T92`P+TUE
+M9&EA0F]X6S`@,"`V,3(@-SDR72]#<F]P0F]X6S`@,"`V,3(@-SDR72]297-O
+M=7)C97,@,S@@,"!2/CX-96YD;V)J#3,X(#`@;V)J/#PO0V]L;W)3<&%C93P\
+M+T-S-B`V-R`P(%(^/B]&;VYT/#PO5%0R(#8V(#`@4B]45#0 at -S$@,"!2+U14
+M-B`W,R`P(%(O5%0Q,"`T,2`P(%(O5%0Q,B`T-"`P(%(^/B]0<F]C4V5T6R]0
+M1$8O5&5X=%TO17AT1U-T871E/#PO1U,Q(#8Y(#`@4CX^/CX-96YD;V)J#3,Y
+M(#`@;V)J/#PO3&5N9W1H(#$X-C4O1FEL=&5R+T9L871E1&5C;V1E/CYS=')E
+M86T-"DB)U%?)DMM&$KWS*_)8F##0J`4%0(>)L-1MC\?:+-&><4AS0)-@$PX2
+M9!!HM_M#_+_.!1L72ZV)\,%6N%DH5&7FRWRYX.K;]QKNFMGS^>QJ/C>@8;Z:
+MI5&>08S_>.'B--*0NBQ*?(SOM[.K%XV'14-'(H/_V]S'&32+>A;#?$%_'F;J
+M;3#_9>8C)Y)XX;2)G#L2I=Z]>4X'3U0:/G]T\,4%>=9$YEA>&$=Q3,O%[(-Z
+M\SH(\\BI]\'_YO\^5>%\9(_O\E5/5T6*(1P?%/Q4'IHJ"#4"5;L:=(1@@S"-
+M$K4-//XMZGMZ-*K8`&O"A]3Z#,(LC^(T03G7(MRR>SH+2?;;XJX$;6"WHK\O
+M16HA/TT06OQIX<?]LFC+)6175E_1.Z],'#O1A5'S$C6T#TTF at ++*$2FN4H8&
+M=P+*I*(XW`86+?X*PFY5M(?JMR!!V:L at -*H*LBA5F\#@WQ*^^>[ES>NO7P6I
+MNAFT=ER)(=11JC-/(#^H=V7!0I8!JG,*2;$[5.BE7-6R<\>O88NR"MDAQ;`O
+M#@7ME2TZ&U:''3WT>F]8IT$]+DL0'[ES"!,20,+T42W+%9KM5'&_:9\!!:=3
+MDHJ20XG*K2J6HH!>0[LNX;I<T94F6G\,H@&@$X!AKW>"<Q),47Y=,JQF<:CV
+M;;6KGXD4C%]NLK.;6FB at M;9R?;ZN&J04^K[:E-#L49A3Y:):5:7LDY7EMFH:
+ME`W[P^ZVN*TV%2-H^0P["(6G.A<'A5/":9UV<6_710L8(G7`**/%);3H,JUV
+MR&\%MR4$7MTW2+;5C at Y1_`*'T>N.5S7&3T&QJ>BWWI8U>HT%0*!U'F6JRX#>
+M%H)NG!\MZK#'B?9BT?-'6(K_OR+#D(K,%)2$@#F_&F1AK@@ZOQ[Q(W3>:<CJ
+M6[F,MLLI/JW5X)K<.CUUC1L,R7O7E`P5GK]\\_['5ZC:*F](]);7R"2-`IE)
+MQ:'W%%]9RJL(8+[&C0S=2I$4<8-#V(()%]@.G8P%IS-DM3ML,4J+('2(?H?I
+MF:FZD:>J:;L5UHQG`U=UW-6`*,V](R59YLV0*%*1?Z<*.A(;RUF6FRZ=R`])
+META4ZE(LDECL2MA4-4-]J-HUM`\8\$?8E"VG:;.7A$)+K:I6C\@.SJ?=82DO
+M#E38R*\<D6);U3LH%A35KD)@`A9\<A/$N+=?%[?\6+;0[IB.!%!'V(/,.9=&
+MUTD,A;E5C82B3+SM[2'<.1;]["PUI()TQ7A?5!SHPX54HRP[J7P:S3HJ1^)E
+MZ+S<AR0T6%Y]GDA08@[*IT(Q])[>.C.&15N4H?HH8&2:`2I:[A3B%1!N`,$/
+MITC at 85TB@]DWQZ`,YK++TS-4]:G!2>*GE88"L!C#@C>0+F3AL^YB+W^2AY]R
+MFL7)PMIDRN3/\)?39X%<T2;KF;S8U2WZ@[IIW9Q"38157XK4YGT3'Q(&PX'U
+MT4?4-K%G(WTI1;$=G&CLB/!9\'GDC;2-IV"?U%4"G_=678BNC3"SLS,#MJ?"
+M,^/MQ+%]S;;6]:62,3]VZ0VU!)M\0"WEKOH5.48O?ME)`F/^&RSX%\JOM9*Z
+M5=U../J(_8<9W+:4Q$/E6,(QG4*=CLW9N.3IP":S at P(N;G^J),6AU8Z<?0)'
+M+A07'$_((5O.1VHETDBP[Q=-<R_;6+RDZC6/LK$-:$`J\>3B8W!:?K!"I_'3
+M4HG)\L3Z\W=K!2-#Q=^=Z=2::8IBV3AP<E?@G:/6T, at 05=]M^'<Z9?'A`W??
+MHWG#G>6UP<\:;<]+R7DK<)&)<_\%H;@$;>P$0U26,C$*U@$@QJJI/@$-1SJ#
+M\P4]?!Z at 39_`-9R58Y/G?TWILOJ\+WTNP\<Q+\U/:M=8I9@$ADA0=D.GX:'3
+M\]!);OQ499*[?>4XL1IY[>/SDG_!;+243XE30^L$\"G3C>`QMI\6D=A%C?3&
+MP.&H7/+/`;]!>%%#T^*W(^!#KCZJ0 at YAO9%2P]NWW6OVA)S8ECS_DR24/`B%
+M_Z(J7B]Y&W=^QN$_Z6;<^&RXC?T(F0UIL(P=U58[<<U`I_[+"R>L/#/3VGYY
+M[ON@;GXKMGN,WCT"H/G[KIS,Q at .#^H\QGYATG%S&[S at 575&@<6IH(-S"[6:'
+MGO(FPFF<:W6]OV^C[:J`?\+NONT?R&B!SGBOC\6$<ID_[+Y`X(0;+)JF^HN?
+MO0_KKKY2-ELE0QU_?-#NF1.\%*#X(OP3^X[MR#@6\3$1Q10_&;>0#UX5R([S
+M`(0X!NA<>_&5]Q=M^!K>P6NXAA?P`]S`M_`O^`Y>PO?P"KZ!M_`>YO`?^!E^
+M`OQO<+S/)4$4"C,VM=0A^.W\'[R'SG()&HQ+G::)UAE<B)ITZY at F+UYBX\OD
+MCLF0U.Y/%.(%F[B<[VBO?9+RTB:X&_/U7&N=9L<6:9=0EY42Y;B/\]*X5$3%
+MUJ<Y6Z+1/WABO!]%T;#^?]PU19QF5E-"487$,D.TPB7..]8(D$3;V`H\HS.<
+M.!ST^B>9.N86E[OCC+Z9S_X8`,(XY\,*#0IE;F1S=')E86T-96YD;V)J#30P
+M(#`@;V)J/#PO5'EP92]&;VYT1&5S8W)I<'1O<B]&;VYT1FEL93(@-#(@,"!2
+M+T9O;G1"0F]X6RTY,R`M,S$R(#$Q.#<@,3$P,ETO1F]N=$YA;64O2D)*14)'
+M*T-O;6EC4V%N<TU3+T9L86=S(#,R+U-T96U6(#DV+C$U.#`P-2]#87!(96EG
+M:'0 at -S,T+UA(96EG:'0 at -38R+T%S8V5N="`Q,3`R+T1E<V-E;G0 at +3(Y,2])
+M=&%L:6-!;F=L92`P+T9O;G1&86UI;'DH0V]M:6, at 4V%N<R!-4RDO1F]N=%-T
+M<F5T8V at O3F]R;6%L+T9O;G1796EG:'0 at -#`P/CX-96YD;V)J#30Q(#`@;V)J
+M/#PO5'EP92]&;VYT+T5N8V]D:6YG+U=I;D%N<VE%;F-O9&EN9R]"87-E1F]N
+M="]*0DI%0D<K0V]M:6-386YS35,O1FER<W1#:&%R(#$T.2],87-T0VAA<B`Q
+M-#DO4W5B='EP92]4<G5E5'EP92]&;VYT1&5S8W)I<'1O<B`T,"`P(%(O5VED
+M=&AS6S,X-UT^/@UE;F1O8FH--#(@,"!O8FH\/"],96YG=&@@.3`R-B]&:6QT
+M97(O1FQA=&5$96-O9&4O3&5N9W1H,2`Q-3 at V-#X^<W1R96%M#0I(B=16=UA4
+M5Q:_4VDB72D#/EJD<]](D8X at 38%!&(J at AF$<8(!A)C.#U$5F%K`%*0(&HX*(
+M4L**"I:("AH,HN`""DG`&!6E*`K*!LE*V3>BB;J[R7];[OW>]]X][9YSS^^<
+M=P$.`+`49`$"B%P;Y.,U3/<RQ2CC`&ALH at 594KWB"]L`T/3&:"%,#H/WX(K;
+M`@!V&0#@UC*W"9%-,ZL?8OP*`/!6T;P8SI@,`^-1[@`@;1B3D!K-V7`F'``K
+M18G-6!9C:Y=/X#(`G%JQM4TL1E`JEFX'P&`66QO$<H0IW99#G@`8(IC^3`*7
+MR1#L%JS#]#$^,9/#2.&16#(\3!_;#R")#`Y+O\\^!0#[^]C^EWA<@1"+`QOV
+M$OL(C\_B.:,G<@"P4`>`]`JCX=Y,R1MH2&)2!6^&ABL4:SB294QRO7-?R>.D
+M\!5B#7.,9(S'X="E<`E9>I&#)Y$`C"3+FI)Q1)S8%H\C5 at 3"`&CV'H52J9-%
+M`8YO)@U$`0'@@@3``D+L<99,B'QHCZAHK3=P;-?9T);OKNJ7;?1Q'Z at 0JZZ&
+M8OQ%[#'$*Z[3Z%W]N7 at CY=AFP:=JF^\>A?*_^HDC8NZ(#J,KH#:9$$R455D6
+MPN*S@]@QB0B=GR00(OXL83*7'X\NAVH2`3F5I>\$S!"?1*8%:@9-%AGZOVFR
+M.2PD2,C@\-B),4 at 0B[^-S60A at 5RN$+6"U$5I4W\:XNNSQLW'UX>^$5GC[NX1
+M0/=8:X88,8WM;)$/]X`ZR^7M;*$U2H5O1OAR>6@%46A+765M9VT7_K\?@*C\
+M_3/'D0!!E(>=^RZ\2`1N6R"3L1EFYA8BRBGRZ6JY<TKRH0-!WR<-=:PR.7UG
+M6B;":FJL8%YF2?>@5OC772/3.T\=:MUA^/1/88J"N)2;GZG-?1LV;?Q5V)92
+MXIQYE%*8B'+CL^(^O3#+ODY54K;-A>*Z)K]U8\\=]/X24I:I>S`AMW6=U_ZX
+MIN,V?;,RYK>;[+[$$S!`?P0)`N87(WBI<WI[D7*FDN)>O<X[C2JF$:-K'\FE
+M'*[*G*J6XNL\W#C1F3VTJ]AWT)\QT5CUVM,IP$JNG!<RO==D^_);CYDMJ6PI
+M@<7)$J/=/S^KJ^W=W"5[0U$F_U9C at U%I6ZIQ=M'=A0LQ;M['"Q0?M3!F#@8]
+MWM<C<)F9.T3+K at _NF5-B,J&8B(=B0GP%`8_#XQ6ETSB;N%'[:!?:YMP?J*H?
+M^G\$,899*G7UAR"V^17$%>_\D_TG_]Y&)O=O(W.`=HL"5#J+SQ$@W&@D2<!"
+M&$(D5BCD">PM+9.3DRVV8<H"3-F"R>58\GD,B:,015="0XDR047G]Z.'8IS>
+MQS at 6XQ0`1I?%BW$XT)K&V/'T=#6!J66JR;B7=4Y-NV)/@5/SRJ)L5;NG.;>,
+MB\C1WE4$6MXHK7JR84N/I49[X8LSA],+=6^-+0SY3\XVE(2=9YH/[YTV5N_B
+M[0WXYEEIL^O at 9<-1M^#^Z9R7Y)$]911TBJ!PQ_>@@<E=+:U\\=3)B6J_(=7J
+M^_G][;%7&6&U_#LST)OV at R67B?RPZX8X_>KZBT;71+$CPV+7>D_[BE]<;+I\
+MF^ENX6FL]/GL1^U>]/JOG<:SVC5?M:T2B3I,2EYOWV*_HT!UL-,BZ>5$_+!3
+M;>1E-UP=K2ZBQD4/+5=6^T5P1$>\AVCZQ!/OR\E?$6!1LMXDA9PM="K,-_-"
+MWY324=%Y*#H#7<G26$<GD:0P>&*`@?#=&N)R#21)P7+"90IX'R9%0K$4"!G"
+M)`&4P9*BK8(5`8!K)9\(T0E*\BP7F>N-RYWQP&&FH0DT>F<8CUM&^;UL0Q6)
+M%4/B$BC[3H4@#>4D1`4BD8`GM_Z++F`^16-&FJD/_&R@$-BXY&GCQ9B<J_K/
+M\CWE_ZKI=WDJ(PV!5/78/47-U++)?><=U, at KTYWQ9%"E6Y2M(GOMB\>NH==(
+MAJ,-#4IQM8\=;H[I3Q<;;W8-GCH6=.BZC;T=2UH at J*+V-M2WM),<%SS&OQD=
+M,.BYQ3PA4_WZH=;0W!K9N%*L"RAC?[&_+W8!!7`%['%TW*G4XSS-'/_)]>,F
+MP$--H?%B(>BY<WFI?'9,K%""<@2UPRK2C\WD<P7<:"'BSN7S+%`=2%D45ON0
+MP^4SA&QN(JH+5RP6AOIO?$D'0-8D"6.Y?+8P]>VO"44AM'U;U52(4E>A;Y?_
+M!8_^J$AK\9>N\(8=7OIK&97O3]D"GU36YAE^.C-?XGOTW/RA2L0Y8T/EEY7Y
+MD=3X'K>MJ<_KMW70!UX^/9A+R2_/CFZ\%I\6I=^O[7A/`5<T6MK68AY]X$#L
+M)V7=]F8M2\Z$?7+%<T36>76I6:V17<VXSY_=AK(5F@\D!#/JQ1E'(LV3?<?*
+MFK8Z'`B at H-(&JN6U(X6FZL-.7S!5(\-(K')MV\`=KZHGBO'?:MUN"?9HW)75
+M8C].+_8_,5>=QA'Z-ZAWELH8Z8+0 at DBV;?-Z92G'D(6(UU71LM+'>T4AH1-G
+M';8L$R43!Z8OG\@JF3_9M;V_6I._R?'&Q4GIHWJPD9S3T8 at DJ^3\]+9(:Z#H
+M&!152M"/(XH.0-'^+,6(;MX$FW]8?T.FZFF_O0LWC_#_\_D3_P'&"9(<EHS*
+MM>9-[5>W?G8>9_!]LM+4IDAJ^6&YF\ZDPIWY'?;#NB\G0_>9G:GPNAXU,?M=
+MIX-#>*T-G3UOP''IZ*R[1\KX$<US*E?DQ37/*]/4V:VSW>Y#2N$([4E4>D.=
+MQG536T/SRZPCRKL-%9A'7]$IO^AV]*M-!=8GNE.EYL3+9Q['),AOF+[T(K#]
+MTD@;G$50F9W:)<::?GW:^&,OLNX3FB+^=NK'ZZ'/63[M@?2S300CY86"_DGI
+M_,SS^Z]]96OV*.U13?+0M at K0'>=RI==F]_TURC76<5IQ@]8/[E"(CVH\B-?#
+M5ZU.]*/(1YV3K?S\=A_=Q;.+$GR<-ZALOV-?4GEU;P76%?9@=P/!8E>099!-
+M\M[<PN7>/RS)35MT')7[!_75'@]5MX;7WC.&$`F12R84(?8,<HO<&?<R2/H*
+M,VYI$(-08DI7C#Z7GRYD?+H at 75QR*9<<24J.2A&B.]7IE'0<(=^:H?*5SI_G
+MG/;^K;WW>M_U[MFSWF<][[-X1(HGB*-NKB1Q3(S;$1`7]/")"(2UC0F3L@`3
+MX1KYQ?G7^=$9H2'T+VD4_%D:?X8)KD#]`1-*V-+IG,O,]M!A?87DS"VO+A9F
+M,^I`FVQ`)I'UR*NXZH",Z7*[VMPNELCY;_\1TL_`C?O)R_ZCRDU=%/I0ZNY3
+MJ\S2LW>?MY.,Y9OV77:RY1L[Y%ZHOH_68OD0NR%QY?5VF9JF5T_"@8.U_[%'
+MOM8AN:.6-8,U[8V='XVR;*K6;NJ(#E",<U5;^4J1O<-I"JV0U<Y[E?E:NB9J
+MS.<.$,KPUC&B[-4HZTY-UUP9//G4K:BJ*&0@;"3?FZ`UO>I9"-RF(:MYTR0O
+MBB!3,W5OCLJ(XTDN>1'\(KS$/]-,'SD/R)99=?'CXHZ,12[VUY7!$@NY?B5\
+M(@=JSP2)%1NK92^U:;^]G.NY<_1YJV;3?!U5#K/@?\$@"[8('7%N`(^*Q.YU
+MF1X]4_<"L^-^J at +>`C/#UN09YQGM-9A1(+3PK9J,+^_A"86PX""N52LL/)0>
+M26-&:'&ARD4J1*DF='RWPGATA`^XU=ZWS=&F,75WT,+ at _,U9R_D'V5UW<S?T
+MJ`3)RX^L=E-U[1-35OG]G*>[Z5"38\Z;GN+XC&/&1`W=816GAA:#2C]:AZ[_
+M0]=:LWA/NX)UE1\G6VHY<82J[*[LMQU".I'^\WO-V'^[\/L>CZOFL4G-A\5[
+MJ"6/XLUZB>>'9&\TDDG74H9N?MIM?W5].KGIP=.VV.+^G0+'FY.,!LT2]2]N
+M7WQ%?[0MN/%VD4.:_.[F%\B!P**7[$%^%S5RWX/VVENQW8:B4Z66!SU:9/3H
+M_%([X\+MK0D<52\ECR5;)@\K:IMV1-HO1$((2_>L"CVC)KS+Y)RN^K\J=PH)
+MB#_W^&!?PB;65T$ZN@'IZ.+,5N6'Z?]_4"EP09.A2M'_LO?0)9%(Y)GNKT.3
+M+(3XH[B9SQ4W`CQQD[]'TK5+"!/1R9PRE&W\H!7'T%-R_'`G^?GD^<EKJ(Z"
+M\O7GG%[JFWB4:5/<0UZ_2&+M"OWW\:7ER88V%09.(=1&DK`A8[RM[:;+<=ES
+MI[NZ[9:OJ;AVDYWUA#+,Z!K*,GG$U_[NE)M>B99W6X*/.8="M1.5KK3O3C^"
+M;;")I)??O=QWJ5 at XQ[DJPDC:L*A\7_*%_1<<G16<Q"JT$_KG&])#+:_KU-JE
+M'[MR2GZ,3\G)>P7[EMKPGJ-'2L[T"(;%W=<Q2SM9Z7]]HZS\']HBQZ at XF379
+M:56W7AKCF19R[%&#%V5G;6.#U41\$1^#J)!)DVQ^>XGWB/6D)!BP>>C\C.]9
+MPC(4P4&24X7SH3PWJ?T2BF<!81[\8#S"TI-$($$C8!87S\6SV.*O`1(H7GB)
+M('`%D<`76`"S6?L;Q!H3Y6VIN+S/A^'@;2YM9;7^R5&S71,Y];;1T>>2NU\L
+MON91+E-;7KT9Y5AM,?`<JU8YOM(Q=R+_F?Y!?;JB>7^UEEI[Y7U"ZVNU^@&9
+MI!T]:P6,1Q3OWFM@[$^4M-Q,WTUO*LS0.-B3IF<G6CEXSX<=%?6X>]F4\I[,
+M%+P[-8,C9VC"NO+VY+YDN63[F,T5E$^;R$&&"M222,=^^DML=0^=8CD^WB1G
+MONU%GK'5VV!PXJQY;8U8F?NS\<Y\M<0N!:=\MSH5=MBI_*VR4]2#K"N)]J<X
+M%_UC"Z5.WR0TV+P^539$DG0U5L/73T78]AY2L9B@#;Y5WN=5MZICD/21W+VI
+M/R:V!CL;M-=N/%FL7C:%ZDEBX9F0T,)0N+N$^]A?A1K^H@*%"0+3:45AB<I+
+M;.0"9";/\W`D88+@#%I0!`^_\UM/B"2"S?9*0O!^#<23%N(7V$9?#MJ3[U8X
+M4NT2X2`W$(_YSQHN3%J/N>=I)*A!Y(4"!@@"-$"$6/0!(2`"/CG"9R)8!_Q`
+M`,3G5F@/YRQ/4)ZIQ='1T=_58F9,6&A`N$]88,SWK(=/3-`'?7?L/3\52YG,
+M<_1S%8G>/4Z7?"?C9.F6Y!+?N.6V!"THX^],]'+.5(3D;]9.17PRLJUG'K"M
+MMZ0:W?+RLS?67*NRX_J$[_61*NLX,_RR1A6#I.:*@E>CM9<B,W=VI)HHIZWU
+M>JHE6&"B;KK<?30F43<"UW>8*F<M>'ROT1]2%D4W."S4`6.AMM\FB$!BH0;0
+MI,N#3AF4120%WLJ%,%CD[A<>Q$T7D1H>&<$D.ODQHT/#@TE2F.0T#D2^#-`@
+M4D)HFB0-3&W:H?0M,H@!4\[T881Q<^[J%QX51//CD0E)!R-/CU9W<B8Z4,S,
+M*0X4JB?1S,+"RH5J9:G!Q18DK[_^!KI`():Q,=0WW;FF:=+BL81TSG?`\<2D
+M9^-&Z&N''X&P^>KA(XGRY#J9I$\F:QOH0KG^/6S6E+[?)2V7[)LCF*"XQF"'
+MU_?I9"$`]'MN&Z)=5CB5<L+=0Z!@I&<X&ZM_<'QR6^6]K$#/FX5+3P_T;'A"
+M+O\L;[BT6KD\MJ>!XMA)7[+V0-B(@TP,Z?&J$4KA)3=::?GM;-;5@/@)&5?6
+MT0GD_O(\J=RH)599)W7&-D5\7*/0<H_#P'42424/]DBPQH&/+I\O[M"/]UZ-
+M[$Q_4U;0QAP9#!AI'MS0WHJ&,1K*15OV7D2:6QU8C:^\3>I\2@?CC+=GGJAE
+M3\BEQ"N$\SL?5#]PJ#[M7:UTR at D/+^'LW'S5_6\\>H]95*E/!:<\'6ZI]K]?
+MTM&R(KUSD\:0X=F-M:G%]W=ER]-$&,Q_VS,I([^=B5'>_*$UWM?Q'X$`P=4C
+M:8`/`+ZC?-H`(,NF[[@\<!Z-$A3`B?*C.!R*HG@`T'U at UN'H2B0"4T`<1PG^
+MD\4`"'2@;D0`3DQ["?ZPB4PWO"18,A.D^B6:ZY_K^:>'XDR;^VB!IPL(!):P
+MN8!R4`?/&*#/L^N#7G at M@KX"D`$40"6\:D"O!APG!FV#(`E\!G=`)B(`K\.P
+M%<'QG4"<%WT'$8<Q=4`$CN):>N&9"6/R0"4BAUC]26S5QS9U7?'S_.ZS\T&*
+M(9"&FI3GO=DC'V[H2$8((9C8#F$F-`FAV-`5.XDA5%K)@++2CBY=VS%>PK:6
+M32K;U&I=1[5*8]=0C;`_6E2T#$U"%6Q%TS8DU+7:AUHZ34.J-H3W.]?/7LR7
+M]M^>?'SNO>?<>\_'[YSW,'L#XX/8]Q<MK75H=5H=]E^'A'78DCJM&B?_`^<?
+MT/9#7JWNN$!U=$)[5ENG=="[6@/`W0*M@]J8UH);WL2)!^G'E-2V:S&6X<06
+MR)P3H'D=IU>BP]W\K-(>_A_B^?]\%@!G![177:M<G[AL5]7U`7H=\?I.>-.F
+M!S<.;ACH[WM@?>^Z^-J>-=VQ:*1K=7A5Y\J.%>W+VY9]KK5E*;ZGF^\+-34V
+MU"_^3##P:>M3?G/1O74+??<LJ+V[9OZ\ZKESO+/OJII565%>YG$;ZD.F*69U
+MITP93$D1M'IZ0CRWTEA(SUA(21-+W:4ZTDPI-;-4,PS-;3=HAO.:X:*FYC4[
+MJ"/49,8L4YZ+6N:4MKD_@?&AJ)4TY4=JW*O&(J at F59CX_=AAQFI'HZ;44F9,
+M=N\=M6.I*,[+5E9$K$BF(M1$V8I*#"LQDHNML:RVN%-3`]?B6'O61655L$HV
+M6=&8;+2B;(+4`['TB.SK3\2B/K\_&6J26F38&I)D=<G9C4J%(NH:Z8Y(C[K&
+MW,'NT(29;3IM3TYY:2C5.&O$&DD_E)!Z.LEWS&F4]594UC_Q?FVH:4H[.IB0
+MY9$IC083IZ at I-YYM'(]&D]"T]9AM'RA5#S7%!Q)^V&/%)DTV<""A;(.Z5MN,
+MTS,S7,AZY^0]SMXUVQG,JIHYR!1E:J34>80["BYK?(NU%JF2YK`I:2!A25>@
+MC?\R;60/MT$-3U+#W3O at 1\KVMG-`C(#7,NVKA(18'WU8NI)V5MP![U7B(:>M
+MF'K("V/9V"@;&CACG at A"#,LZU;PUU+17AJPQKRE#,1C5E\"F9'LS`N3W<[0G
+MIL(TA(D<[T_DYR8-^8Y3N+DQ*5TIEIPN2.9O9,EX05+<GK(`JS<([SN:+\N"
+MQ=]L;TUU;+1=:C5W$&?R<L`X9F:%$;#[$L&T/>$+INS))%+3C9*P[6[+[+93
+M=GHJ-SYDF5[+SH9"]E at L57!I*G=ZPB?#D\E1#4&52_/1B%FQE//;.UHKQX=,
+MR$10_0+X08ZD!5-#PZ/,TQG;BN8!#8C)<!2#<-I);RR[I!GZZ10RL`-*\?Z$
+M;+;&Y#RK*Z^`!86S'1OR0'.VR7D12:EA9Y=LCD7SSMJI:-Y`/LOJ!Z*7YBYG
+M6TS?B:740DFV0]9$4`K!F)T8V287I7PC:!C;S(3/+\-)3J.5R"09\997UE]V
+MT.7L at F\W:!>4V7-/H,Q,N'QZDJ&&!;,;?U97!P1>8$U-&8Y='69"\U%!#;<X
+M&CPJ.0<3/1#I89'.6R,]/G_2GW_N8)+/L<D(R+(99WFQ4+0I?\]M3<MKLT'U
+M9BP3G6%@R:&&8Z!SVJWM='$LG(NQHXS3V5,0Z0&T4JRY<(Q:XBS6,@#-A)6Q
+MDA8P%.Y+L&\<:Y7?^`8KWK\YH;+MH&2P9):7MQ5ESDA61Q*ZS^6,V`&6RKF1
+MAXK*/$G,RN/8K?KFB-3[$_D%#4YX4SWY_V2%WW_;/5.>LAF;IG)_YUV*_7>;
+M8Z5L;RR=KRB9EU at WR]9AKPBZXH.;;;NB1':;BC[E>LWU6FE-_P(UW3V9A!.J
+MK,FTUTJ"N6&TQ[:Y+7<\+AN/W_$P[5:'\?>#QE^;_,U9?B77=?WC\J=4YYKQ
+MN#KQN3K.(_T=S$:PY<_TN)ZA/>XWR30F:<3];3IL=%!<]VD+75=H%Y-82<WZ
+M[VB):QE-ZQMIIW:=OB5J:5"\1ROU[]%+X*^"7@`M`3T%V at GJ!NT%C>&>DZ!^
+MO8JJ\<T[#-XN[J<6SVYZU/@]/6-4TEOB`FTVINFDR-&D^`/]U!BC!]P!>E%L
+MI;@Q0`^+/]%%,4H9CY?&W"EZTCU,>T0#C7ATZC4\]!AL?PY[]A@?T/?QG?Y\
+M63]-&+^FJ#&?ZB"+ZCI)L8VRBA^E:4/D+HG=]%WXL52\14?$0MHA3M!V,42;
+MQ!R*BU6P\65ZWM5))_3VW!4Q0#]RW4_'W,MHGUA"7Q&MU"O6T)=%/74 at -A/Z
+M!U2O_Y)68_Y%_7WJ-/;1.G&*5HJ&W#6QGIY`'-WZ5BW-7)RE$>4WB/UFGPL^
+ML?VPJ>N6Q#:R?3,(]J5`"UR=N5V at KSNV;;B)8%<)3=-2O9NBXAKM=R<I8,RC
+MQ_0%=-(X1&OT2;K/_07:`MJ,>/<B3N^"+G'NRHY#-DP;W,?I,&."<PJRC!IZ
+M#N?6B+ETRO at 7A3Q1VF&X<>X1ZA/+**._2(L]QVBU)TX1V-/*^5?8PQGBC_19
+M_9'<$7$5,=A"0XA[-9.QG8XS1 at NQXOB4'Z*O>4+4JW^#FF!;1`_"WB"-:E^B
+M7M!R/L_X%7*R.W>-<^_>3_>(]W*_ at 8V/,!DQX&D5L#E-[8QCA<LX]9=?`>XY
+M'\A%@2L"_F82VU`@Y.J5`C%.$*.W0:^+W5I-/F9:!\@#>A3S"^`-H(5B-/=5
+M[7SN)\#EJ-Y.C8Q/QHC>H:TQIG._53&$[8QO8&Q,^=2JO0#:#WK):,6=#C&^
+M((]P77K^EJ\;A5VN&]0$XU)AC+'#_(+BVQD#G`^.-^_E>N!X*-]1$T6.FG2_
+M0MN573DZJW#'<6&.>N2:8*Z?='@]:@189AP6.==J:[Y.N5:*W+&/ZY9K1]5O
+M'3C7`.PK<B<^!2ZNT,]5_'VT1410OSA;_YA^H#C7X(>TB_W1C]#CP-Z9\F=H
+MI%Q'_CA'G]!RQHGK*"U'KUNO_Y7F(2?G"_Z6Q(IYP=<;>"'.-W+5L]`WW`'T
+MEY=S_^0\H"Z[''[,X4_G.?**WH;^<E;U-_08T/Y"7&\7QQOBN6)&'!M4'/-Q
+MVWQ3'!VN>B/Z4QYCP(]/NQNTB4G,T=J=6'05:IWKE;%1V'<C+YR#.MN&7C(H
+M,K1R)D853G?3/E7#??1-SR4ZXZY"_>JTU7T.O>)M6HV8'"Z^"[@&D>M"_^?8
+M&,^2M]#[C3/T(,>`>PS7"/K-DPH[W.NYYX^@OAG_;!?PH;#!?;&>/B^RM)/[
+ML\HMK^$=IFIW@)[D]:*,^WLK+5)CWG>*3/$S"KOG4YOJL[S&.N"\IGKX.6I@
+M;*IW&7)2Z!F<XS*B!9[SM,0]30W&'/JALO4B[.987\0[B_UF7`><]\%ENE>\
+M0UW&O^EI1?]AO^J#HKJN^+G[EL<#C2Q(E&C0!9),$#\P;[6^];[#LK`:)0OH
+MKA:J(KNPJQL^EBP?B1+C at B36I@&F?M9"768Z3:H""]+)IA7\2*NV-M58TRJ[
+ML#O3::?]IY-)VLST#T+O>]+43J>M[;29_.&]<^[]W7//N>>^<\^]]UU%Y_=L
+M#,4'S"_W?[]J[Z_?S_:$X@,^E\7,A^")-T%5_%M0Q:?"4\))MOZ*+0IE";-@
+M$XN?!6K,KV)WE0`'N'?A->T89*CQW0)FKH.=EVE0I1#W(9O#,E at 4%X.EVKWL
+MNWX(%M:^K=Z!S$?JOF,QP+?"%O7>^QB&M.RLY9=!#5\&-6S?)?,V\+.U\&L7
+M0FW\&A8GLR!3W5.MTZ.J[850HL2QLAZ*CY5[-WX1+.)70CG;2Z/*'-0X^Q at .
+M*;Y2=)0[(,',_!@CM7%/D'9&+S!ZB9%;^QM8H]PW;+S!44 at B:;"?S(<N,M_T
+M"+<_T!4X%1@,7`C$P0^(#G1$9TK8W][5?JI]L#T0(KKA"^U!I2-A^J)INE"7
+MNBXE63`-'SYLP+U[13QRQ("MK2(>/RZBSR?BB1,B5E:*6%,CHM4JHMTN8G&Q
+MB%NWBIB?+Z+1**(LB[AA at XAFLX@E)2*ZW2(Z'"(>;37@=T\8\%BE`7?6&/`%
+MJP$WV at U85&Q`SU8#EN8;D!H-*,D&7+O!@!:S`3>5&/`YMP&?=QCPRCQRYDP8
+MSYX-8T]/&/W^,/;VAK&_/XP#`V$<'`QC,!C&SLXPMK6%L:XNC-W=X^ATCF-'
+MQS at V-X]C1448AX;&L;X^C'U]X_BU,U%\_6P43_=$L=$?-4WCF[TQ_&9O%+_7
+M&\&7^V/X]?XH[NN/X&L#,7QC((JN at 0@>'(SAR<$H?F4P at F\%8[@_&,4O!R/X
+MU<X8OM09Q>V=$?2VQ7!/6Q2WM$6PMBZ&37517%<7P>KN&&[KCF)7]R26=4=P
+M1W<8JYPQ_)(SBM]V3N)Z9P37.,.XJR.&>1U1/-4QB::."!9TA!&;HWB@>1(W
+M-T>PL#F,SU9$\96*"#8,1;%E*(+M0V$LKX_BH?H(?JLOBH&^27RQ+X*Q"3DZ
+M(4].R)&[<OBN/'Y7GK at CW[TC_^JV_,O;\@>WY5_<E&_=E-^_*9M>O'U#OGE#
+M_OEU^;WK\L^NRS^]*O_DJGSMJGS]BGSUBOSCR_*/+LOO7I8OC<D7Q^0+8_+E
+M47EL5+YS7KYQ7KYR7AX]+V?-L63.MF0D6O2"93%O6:2UI&LLCX-E at 9`FS!-2
+MA11!)\P19 at N)@B#P at E;0""``*0I>K((BIS[XB2TK1!+96R4NRTR"*4509#<7
+MA>*G-Q<%A=)M94.$=):GO0.$3+_ZQKR<OTMI_P#^51IR.BT>]O:PL_=%97GA
+M\!FZ+T0.CKBDLW1OB.P;UDD](<X_8C7VT)80:1 at NEA3VB$[RT]TA8F']O2&-
+M:62ML9=6A8AAF$H*F_7WTVTADLX&&J!E(3)W)$,:I/80$4RB2PK239_JI$YJ
+M_<@EM=&-OTN3ZNBZB$OJI at 6W1,E)3=<TTA`5`]NE>II[5"?UA8C?--]F[*-+
+M#]DEA=-\,</83(TCF5(%,V]*KC96,$X%77W:)2G<CI#&;YI3;>R@\IA+4L;+
+MO=;P(/[XOZ8T,TDO"NIL94%'>GE1T,4`I`_-`W/Y]Y/RGH'#]!VRFG2<2Y?V
+M,K2`.,XE2D<82B3/C>1)K70J1.C(H])Q^H<063+RK.2COPZ1QX>UTHD0"8RL
+M,)Z at MT(D?CA74MBF!JU424]_4"S5T,"U3,E*O_&V3K+3`]_)DXIIRQ%!VDJ?
+M?]4NY5/'GE3)2&V[ET at R-95JI!*:M319<M/'%F=+CDJ;T4&3YMHEI:7PS979
+M1C-=MF:)M"%F,VZ at JPOMDJ*56_K8?^'@M`?4(1:/S4R*2LN&!.:M at NWWZG.:
+M68DI!665"S/*S3F-C8WLD:N\=SD_[P8.XJ'0E,G'!S0$XK0!#A(3LK.7:OBX
+M/H[30+RVCT".L-63EE.L^R.U3E'=!-5-T6*=Q57X6\A3.'ETBJ[,%9,SDI_,
+M2,[P<S#EU\"GP+O_?-(?YP;"WKG+->NY"S`+["9,XA9S*[@\;B?GY?9S75R4
+M2^`2'F$FD_C%_`H^C]_)>_G]?!<?Y1/X)%@,*R`/2B`.<F9;CZFSV&&=V%&L
+MFE]A?6_'RMRYAM7B,_,>3>6S,I]ZN]EF:U9(\XFMI47!`+#Z8;XOMSS,#_/#
+M_#EE)6G8&:BD5';:,D06,.+ABYD.?HZVM/`T*WE6$^:CH_K,Z6G65NOICV*N
+M&:\IB?NW8\V&8Y_)(R,RHY?"6F3&6 at J4SF">8><,C@<1FI25T2:PULOPY at PF
+M\`3)FL$:F$/6SV".\;?,8"W#>V8PSW#O#(X'-[E4X&W8X_/LVMVD?[HJ6[]2
+MDE;IK9XJG[?1ZV[2%WA]#5Z?H\GCK5^NSZ^MU:N2C7J?J]'E:W%5+]]HWF at Q
+MK\\I\-9YJFR.^D:K[4$X*M0K6.]IU#OT33Y'M:O.X:O1>]W_Q#H4@!<:8`_X
+MP`.[8#=SAIXM3!5DLWHE2"RO8LC*>JN8C!<:&;E5*473QW25TL$X'H;J83GK
+MR8=:EO7WC=FHMERL=K&ZA9753'(CF!E96+D><M3QZE0[-C9>/9.U,K29R>Z"
+M9C:>@VD^B,;_2N9O7/UG?#UK*Z6#49/ZW=5L?G7JW&H83_'-?^:M>]&J0>AA
+M<5/+_G0TH`,3E#'>H/"D>F:0>S+'EGO6[DRB?X(T00W=LU<L:Y4Z=.S2Z]/F
+MJ;:$5X3W65.)5S7]90#ILYSF"@T*96YD<W1R96%M#65N9&]B:@TT,R`P(&]B
+M:CP\+U1Y<&4O1F]N=$1E<V-R:7!T;W(O1F]N=$)";WA;+3(Q("TV.#`@-C,X
+M(#$P,C%=+T9O;G1.86UE+T-O=7)I97).97<O1FQA9W,@,S0O4W1E;58 at -#(O
+M0V%P2&5I9VAT(#4W."]82&5I9VAT(#0R,2]!<V-E;G0 at .#,R+T1E<V-E;G0@
+M+3,P,"])=&%L:6-!;F=L92`P+T9O;G1&86UI;'DH0V]U<FEE<B!.97<I+T9O
+M;G13=')E=&-H+TYO<FUA;"]&;VYT5V5I9VAT(#0P,#X^#65N9&]B:@TT-"`P
+M(&]B:CP\+U1Y<&4O1F]N="]%;F-O9&EN9R]7:6Y!;G-I16YC;V1I;F<O0F%S
+M949O;G0O0V]U<FEE<DYE=R]&:7)S=$-H87(@,S(O3&%S=$-H87(@,34P+U-U
+M8G1Y<&4O5')U951Y<&4O1F]N=$1E<V-R:7!T;W(@-#,@,"!2+U=I9'1H<ULV
+M,#`@,"`V,#`@,"`P(#`@,"`P(#`@,"`V,#`@,"`P(#8P,"`V,#`@-C`P(#8P
+M,"`V,#`@-C`P(#8P,"`V,#`@-C`P(#8P,"`V,#`@-C`P(#8P,"`V,#`@,"`P
+M(#8P,"`V,#`@,"`P(#8P,"`V,#`@-C`P(#8P,"`V,#`@-C`P(#8P,"`V,#`@
+M-C`P(#`@-C`P(#8P,"`V,#`@-C`P(#8P,"`V,#`@-C`P(#8P,"`V,#`@-C`P
+M(#`@-C`P(#8P,"`V,#`@-C`P(#`@-C`P(#`@-C`P(#`@-C`P(#`@-C`P(#8P
+M,"`V,#`@-C`P(#8P,"`V,#`@-C`P(#8P,"`V,#`@,"`V,#`@-C`P(#8P,"`V
+M,#`@-C`P(#8P,"`V,#`@-C`P(#8P,"`V,#`@-C`P(#8P,"`V,#`@-C`P(#8P
+M,"`V,#`@,"`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@,"`P
+M(#`@,"`P(#`@,"`P(#`@-C`P73X^#65N9&]B:@TT-2`P(&]B:CP\+U1Y<&4O
+M1F]N="]%;F-O9&EN9R])9&5N=&ET>2U(+T)A<V5&;VYT+TI"2D5,02M7:6YG
+M9&EN9W,M4F5G=6QA<B]3=6)T>7!E+U1Y<&4P+T1E<V-E;F1A;G1&;VYT<ULQ
+M,B`P(%)=/CX-96YD;V)J#30V(#`@;V)J/#PO5'EP92]&;VYT+T5N8V]D:6YG
+M+U=I;D%N<VE%;F-O9&EN9R]"87-E1F]N="]4:6UE<TYE=U)O;6%N4%,M271A
+M;&EC350O1FER<W1#:&%R(#8V+TQA<W1#:&%R(#$Q-B]3=6)T>7!E+U1R=654
+M>7!E+T9O;G1$97-C<FEP=&]R(#$W(#`@4B]7:61T:'-;-C$Q(#`@,"`P(#`@
+M,"`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@,"`P
+M(#`@,"`P(#4P,"`P(#0T-"`P(#`@,C<X(#`@,"`R-S@@,"`P(#`@-S(R(#4P
+M,"`U,#`@,"`P(#,X.2`S.#D@,C<X73X^#65N9&]B:@TT-R`P(&]B:CP\+U1Y
+M<&4O1F]N="]%;F-O9&EN9R]7:6Y!;G-I16YC;V1I;F<O0F%S949O;G0O5&EM
+M97-.97=2;VUA;E!3+4)O;&1-5"]&:7)S=$-H87(@-#DO3&%S=$-H87(@-3,O
+M4W5B='EP92]4<G5E5'EP92]&;VYT1&5S8W)I<'1O<B`Q."`P(%(O5VED=&AS
+M6S4P,"`P(#`@,"`U,#!=/CX-96YD;V)J#30X(#`@;V)J/#PO5'EP92]&;VYT
+M+T5N8V]D:6YG+U=I;D%N<VE%;F-O9&EN9R]"87-E1F]N="]4:6UE<TYE=U)O
+M;6%N4%--5"]&:7)S=$-H87(@,S(O3&%S=$-H87(@,3$Y+U-U8G1Y<&4O5')U
+M951Y<&4O1F]N=$1E<V-R:7!T;W(@,38@,"!2+U=I9'1H<ULR-3`@,"`P(#`@
+M,"`P(#`@,"`S,S,@,S,S(#`@,"`R-3`@,S,S(#(U,"`P(#`@-3`P(#`@,"`P
+M(#`@,"`U,#`@-3`P(#4P,"`R-S@@,"`P(#`@,"`P(#`@-S(R(#8V-R`P(#<R
+M,B`V,3$@-34V(#`@,"`P(#,X.2`P(#`@,"`P(#<R,B`U-38@,"`P(#4U-B`V
+M,3$@,"`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@-#0T(#4P,"`T-#0 at -3`P(#0T
+M-"`S,S, at -3`P(#4P,"`R-S@@,"`U,#`@,C<X(#<W."`U,#`@-3`P(#4P,"`U
+M,#`@,S,S(#,X.2`R-S@@-3`P(#4P,"`W,C)=/CX-96YD;V)J#30Y(#`@;V)J
+M/#PO3&5N9W1H(#<P.3DO1FEL=&5R+T9L871E1&5C;V1E+TQE;F=T:#$@,3$Q
+M.3(^/G-T<F5A;0T*2(G<5PE44V<6?EF!1+8FZ(Q#]0>*""3A!0S*9 at TAX',@
+MP23$:*UC$AXDFHWW'B!%!:(B:+6XX4I%;45%ZU)<IF?JX-%QH4)QJ^BXC8Q3
+MK4NU[@(Z_X-1T-:9<^:<F3-GWCO_>>_>_[OW__[_WIO[@C`0!.F'E"(L9%2*
+M%DN[6-0\'FJ.(XA0J-9&1<^^?YV`[U>@3F\NH$#$H8XY"!(P`D$X[!Q7KOTA
+M>B@/008F0MDWUU:4TZ]KB!%!0B&>,<:"&[/_M&TBCB"1I=`^U@(5OF)6&8(,
+M3H?R>Q8[-:TP$QL)91>",#MM3K,Q;$K8%`0)$T%[M]TXS<5D<>J at _62(!PZC
+M'6<O,H0AR-`=$/^%B\!=,WT/0/_!- at 1A01X(H_NFGXB@"SZ%2/<E>(BZ!?>X
+M7A'EH\L?>S,\F+5NP56HNL1D,*0^:#^N9\\,D\-!T,E<7B27P6:XAS,9[%H-
+MFHF*^F@"UP\J#402NV\U8D)(Q(G8$!RAX!A)WRAXW1_;;W']W&O-O,XEB>?2
+MZI\GR at _5NGW?1]W,1CC"F4)!9<.)>=?K#GTM.[)Z0473X":M?A'J_8HK at PTI
+ME7TJ'8R^RV5EL7F"_GJ<L&JMN0Z@(_))"JAPJM!)3)4.0`-H`%_@\Q(@`IC#
+M+)&*T(B>B9!>2ZL=!UK*:'=9';E`BQ,%5C,.-$XG)1V&1O>@(U5JD([)D[%T
+M3#<>R!4*9:9.F2("0\WA<</!ZVN@@P9XQPU'9=)H=#@*KPE0C)-&QTC_(?[O
+M;Z!L;=\S9W`05MD">.Z5S+(RY)0$W+5,%XDE98$[N;OJ^'O]O<>=U[;EMQ^+
+MB=AU^I'7!\/NWZAZ[M6O]<^_F?#[YN\?5>RL:9P;>G.&P8^<,NV;O("NPX9'
+MX?6&2=7L+K')WU`6V)2W]$RP(>K,<2%G=NQ72[<T9(RY<2<A>)M^Y<R at -;;R
+MQC%IRZ<T;(P]T^DE/M40MYK)@DG]1DJP(*]X_S5S."-/WBCM*#ZS^<'6HDY.
+MY[*DO)#-D4,O?RS`*Y^+YC(^F;#*U.1?5_I@[W[AWA/ZE5,]3<K#ZS\_+ROA
+M!%\BQ.QR3MUTK_Y+A(J[C_MG?.>Q<+6?S?"<)UO>5+GV,MNU)F*&<>&!Z_R\
+M59N.Y)B2DY8M#8Y>$5PY[UFVYWL/3SZ#^=L,1RPS`/G:?]5YQ>V at CE3#[,JF
+MU(JJT#O"R?]_2;Q5&H:&]C@>],]IO-PI_ZT[_;<HOCP?WL_.QQ_UI2<\!)Z8
+M@\()!TZA934_2^GY,`ISZ92N-]YNV+:@*JWJ0H/_).L%7HFIBBMM;GE1L2CU
+M+!:_],9I[OLUV]9/FW#K::=9J=['=Z`_KH^M%WM=ON<,J_<>.YDC4Y>TZ-2M
+M>T7);?S6!?LFO=A3VMI>W5`2C"7[V4ZMV,'0;SCXK61M_(.238:-9X/Q:Q_7
+M3UOSAW-IR98/Q#.Z=C,9K%](:/ODCI6_^\SZY:EB5Z0I9%`*&+L]).`(Q7R*
+M_10V<.+6\CR99^2C3RY=V5U]?7[=;]O)HZ.]:G:<GW\^8'$3ZYI7J)[[O>JS
+MM,]/C$L]/4+_,*CYX)`$<6ATR^JK?QR5]D.;/:W at 6B.ZP;>TI:0M86;MTV41
+MTLB`9T>%MR_NN)$E=Z6*13-1M]=&.'QK64P&D^E7E%/MF+6C=0_C'4=-8P.>
+MUY<Q$R:T\1=._>T1BD&E/0&/>)41"J?=CA-FJ]$&M,X<JM!(X"`SWV2SDA:<
+M((%"WIV2(]!ATE at 4?962M!@=(XN3Q4U`W8P/_^,DI*EH2H]14F%AH:0`&I+0
+M4&)VVJ-@!W:25LI)%$4I,K7T&D[")0&F(J#!<R0B.J\EZ;H4.I=CI2/1Q!X_
+MLA1KKI6""V(I0&$SDB2(`6*083433A)2Z.6A-]JLV4;*ZG2`@F at I'_6B[;D"
+M9I96*D#]:<%3P!MG)"VP]"BG0^J'^O0<A8<&S[8['=G206@@K6$)`WK=*R!'
+M)]'M]N4\_RWS\(#!FU7D9G at C4._)=#,82$/5R2&;LO]V,^#@"WNQ7,U[ZHS(
+M:Y'\2KLQ.O;*:<M?9%W8.VW5G?BW6B'8SS[VT<-C+OO26\>_W!Z!KHHV3-^S
+M>6IH[LK&JX4_<*[]V%[]>!O_UQN_2)SMNOK$.5$]P^FK4<X+.(M?2`"<]J1U
+MMN7Q/OQ0P>V@;\#"N(],LSC'0 at 9V:FJVUJ17GTU4&9+<Q7>\9/K=EL9DY?H$
+MZ8:.MF4=64=$FS8<#%>W/%ARES6X^%Y`_.8G6S)G<>RFN_,%%2/.M0?ZD`>X
+MH[X:>O!F\^*\(_MS=JW3!7_'SYW^9&Y1Y=8<WI:QS[J(H,[R#P\_&.-SRV`,
+MR6C=&9]]1?#II*-S[.G]MR=YP$+>X.9<1-V<<]W1>5?`9J((RJ=??=EL%I-3
+MBY95T!*#75:*SBSU*Z[^ZPE%EV7%_1'''0D_\=WKS/^%0G)SF`WPJQ`-HIFP
+M&8P7[`&H$*6__'J_[/JSF!ZE"(PVA/#87!22YXY"W>S8/A@>;>IFAT#UX-KP
+MTC`+1;G(^*BH?U$8Z]RL?65N5H/.8B6!&2<H:X[5;*1P8.TN&#K9<)*N&@+/
+MP0G<8<9%P.C(!E:*!/DDA)&`I`BKF;(5\<A\TQ3<3`'**0*4!0>]A_#*+UTO
+MF8313-$-$;8F"K?C#@H,A4S">9`F20.D$A0N4F"TVHPF&\WD=6^]&P!&*I[W
+MMHTFT*R58CMT`W$`KB`F\+Q\G*3(4:_CG`0/0E\"7X^I"$3+XF)@&(VP0\H+
+M<*C(<.8[*"-DI;?BA2(80A`W#!T6P\O2RB'.5418<RT4W22E<7&Q;[@#0&ZS
+M`0V-(.$/$0E[,IXM`0JE1B?'5+QQ<HU&KM)A2BU(P;2*=#F6H4P!<E5*GSZ<
+MCF5 at L`U+>#1:A:G2XH%NM!)D:95`G0I?,6VW.RP54\AU2@!%K4Z#*73IXX$V
+M*WF,4J$#.C5MPM,K-1C\8Z7J@\?4*I"ID2MTF$()[:"##*5*!VG32V!:;=;?
+MF:_RL"B.+/ZJJGL&!Q4%\0"CK8B`&G;PP`,E<@R'G#*"(NHRG*+`*%=`P(PC
+MNH#*X9D at BG@NP2 at D0=%$$;*BKKBZ8EQ#U$14<%GU(XFW83IO4,!E=[]O_]IO
+M^TW/3%77JWJ_WSNJ&M<3G`+G>?@%H"VR+B.570@$3Q]_;\^W-BL6^`<HE$JA
+M!Q62X.OB'>BJGZ6G5X9V^R@"7#RPV872+T!P\YSGJU=WP_]. at K\3VN at 2Z.T4
+M(/@'!OC[*143.A>9[^GM+?CZS9,Y*SI)\E9T*KCX^2H5<P/1>$\G[PFHXNLY
+MSS/HK4Z7L7Z(*D!P=?)Q<E<H;06E0B'3X]3O%_HY7!4XREN)3+NH,??CT67J
+MJ-ZQ&!V3B&4A,D*(5\?KPRHJ)C)"^281G)(P,\*2,8%DD:FHWQG<*:K8Y$@A
+M<:D*XR!>G22$10KA:GP4T3F)*E%0A8<G)[S)P"AU0EQGSLA2WFPW.`(C56^!
+MIY.M;)^]9O)_D^9=_;'J:+5M=$R4?,U1?241N#6'Y!JY1F(8NMZ#K'^A(%)"
+ML,-:8H!5A>>Q@@X>_A_G1Y+D8=TCJ3Q(;CJX5SV4XV&%F,WJZK1*[&0VIF<G
+M[JXI0FR,*LQ6B$W"7/CGTR5T7O+![U0Z<\Y`+L%JAY]>YQ[]26V;]]ZTP*:D
+M11LLZPX*[;'57Z2[I>\N675RI<3#U#BR8;'-B[D..2LKGPR:EMJ4?\108U^P
+MV&/'69 at F4];,GBKFFEC%@?ODYQ[>M at D_US>N[G!5C\[_Z^:2NUL?M8IPH>YQ
+MPO#OBEG\L=KP](FIK at Z[U^6^SEH_U=JV]>"TJ8XG?_U%:V&GY49C#1Z!T.7)
+M_X/]X]\<!OM*#-Z00GD>]JPY+!_6S5(?9O?NQL+A&:.G96C7:]N1C^Q1Y.R,
+MN0'\'Q(G-OA45%]L>W8X_ER_8W+_=X;WM7.6S]XS5#,8E)`&<1`&:H@%`:+P
+M-QZ22L=H1NNCZ6TPQ74=:CJC*2DA.3(I;47D[WH=:3 at M@87G3,XM:]V5H_KQ
+MY(A'!16RJF)SQX>E3D/<HB+K\\ZO/:Y=[)R?^[#@TJP?YZS[?-6PHS\5'V:O
+M at D\7Q]U-NM+<Y/)3A'5-ZDN_95N&'/?I=^E>;MBFY9\-V#5ZJ?2'0</2<L8$
+M/[+*"K,8EII,N6DE7K/-:OZF"'*T]ATJ?2_<*G[AN&U_7_0J?=>7"2,RRPX]
+M4P[<^;1EH[8QIZ1VU"JCYK;;,0M")Q5YT=,>GWZ\/WO]`X?;.K^=5UN;SC7'
+MCKMV*O2K^J77BJQ4UN<S&U7W"H,NF\8:>X;>(W&>B2:?[`HUN7/`HG%5?;I0
+M;;+JX%`14G(:6 at KO7`S.:];.O)!_*%MW\63Z_4DWQEN7:LD5/-4U]/A"8J<E
+MI[#KA#[(UE3_W[^_4E,X-;"HR>71J-=N"[)R_NR676#Y>%!HKT`-E@]]-TX-
+MNQM2 at F':_82W,]*_>MC)\5U#;C=ETN2%_Q*F;84%_:[ME56NWB(^-]EFY-4[
+MJ-9H%.FKXT+BICBGIWQW_\:*EZ8#O0J#KS=DUHK1?HZ)3S-N1DV1+H]4#.IO
+M#A^)KTX5E=D4I[14I8E'9F9^OVC;D\>:Q)*!97W,,C=<&)4U<<V at VLOWA:RF
+MMHG9(6EW;HCF95L+';6Y(9:;;^U[*C=V+ET]VB^KC\>O)^UW.GS]::-OR\;R
+M1'U1(]PE4@`\`%_$3\*FY9M?M@>BJ'%?QO.$$JF$\E+H=?FHX]4PNUUH%_F-
+M.C<RR<"0U&FZG_*+P8[WAI%X#V=;P1Q`O//VOJ<+%A_QR\%"MTR\:66$@[]\
+M>[^Y5&`)2\`&YD`=M,-I,@[\X8QX!<)A`?T0WL?^?#@.9^`VN$($4#`C&2"(
+MQ;`1QL):V`/3.3.Q"KSA at 8$1#(8Q,(.H00*F$`V[R4WP!"^<PP'<(0<2\'LN
+M]C\GT_`)`1DLQM6WPDXX#7^!'V`8SF at +U]'US\6OP`4K2CBDPPFXS3OS&\`$
+M"N$0E$$MW">V9#]I8X_%*K%!_`=JV8`=V$,(5I\PV`RE..X07*06;)]H)J:+
+M?Q3/PW"TOAQ1U\)97.L9$4 at 0":<'69KNE1 at OEB,/?=%FM![%"='X0A(<P)'7
+MX37I at Z*E`OV`ANL&BD-`"B.QPHU'^P*QXJV&;-B$*(J@!(["`_(!64HND<>T
+M']70&MY?ZBOU[5/3\:WH+C[#-?K"*+1V/BR'5-3<#%M at .VJ6XEI_0FF'#F)/
+M'(@C\20!))^L)P?("SJ>?D]?L_[,B$U at P2R49;!F]M*`[_#3[=!=$?W%5.22
+M(.<R]*0+XIP'BV`%),*'D`$:M"X/I0#9*T>I0#YK4+Z!6W`7I04>P$.,.1XQ
+MRL at X%#F*`YE-YI!`\GL231+)#G*,5)/3Y"QI(T_H9&I/IU,_&D"CZ0J:1`MH
+M!:VD-?0>_06MG,$4+)%]Q,I9'3O/KK(F#K at YG(J+X9*YK5P%]RW7SCWA=#SP
+M%BBVO(K?T[%7YZ4+$<>*#F*8N$DL0'F`'(]`-&/!"O'XHU?#<4>)1E0K8"5*
+M&G*W#A%MA]W(G9Z]8U`-7V.4UJ%_Z^$*-"&^6]`,S^$EDJ/'9TI&D?>)'?([
+MB[BC+$0_I9`,HB%YI`AYKB15*&?(342I0X1!-)@NH2DT at VZB.^A.>H*>H=?1
+M$R*3H">&,G?FQ>:S$+:$);'M[&/V"=O-2E at U.\/J.<K-X/RY!&XM5\#MY8YR
+MY[A&[B8OYQWX7)0*OHH_Q;=(C"7FDLD2I:1:*C%(,V at UT,$7<`XJH:IW[I-L
+M,H!4PF>DE7%,0QOH`FI(KQ,M=YE8H0=F$N#S<+?]&2U\CURE4\E\%DX6(G]:
+M$D5"8!<;SO:R.=#`QQ,E\R<1H.1VP*_\-Z#B<^GGC/*YK(.\I.6P%/+H\HXR
+M,9CT!R793P]BQ&3"3+#AS.`ZG<Z=();4AM9(CY!J<)1*V'0VP\`(6_O97313
+M:6!$VD#U&^-%&]/6=3WWON?W'@82V^'#X%`_]\40>!@":0H&#YZQ35*<4+Z2
+MV?GH;#XRB+8F4ANF+*/*%J7IG`:YJI1)VZ154]1E=-JN(:E,U67\J+1?_15I
+MF[;]2)JFVX\EK:J4;!W at G?LP!+IHVK///=_WG'ONO>_>)WR$^^<.[JT!^C:^
+M$SXA?Y6?Q^R6A=^@S11TD*LK=OBE)4X39#N]2O8OGU_^D_"3W,](!?T(8-F^
+M'*0A7'$'<S/T)GP*/UKYEW@;;M*_P$%\:XR8.^=SW'O?P3?-(5BBQ;B?!O$]
+M<LKH[.SX6J"]S=_:LN>9W<U-NQH;?/5Z7>W.FFKO#NUIC^I^JFJ[J[+"65Y6
+M6K+-8;=MW5)<5&@M4&3)(N*M%>HC6G="9=4))E9K^_;Y.*\E49#<($@P%47=
+MFVV8FC#-U,V6!EH>_XJEL6IIK%L2FQJ`@*]>C6 at J^S"LJ5ERN#^&].6P%E?9
+M?9,^8-)BM<D4(^/QH(<:<8Z'5482:H1U3XZG(HDP]I<IM(:TT)C55P\9:R&2
+MA4BQ<NU4AI1W$). at Y9&V#`6E&+-BE5HXPBJT,$^!"=Y(<I3U]<<B89?'$_?5
+M,Q(:T889:%ULJVZ:0,@,PZ00D\TPZ at 0?#EQ2,_4+J=>S-AA.Z$6CVFCR:(P)
+MR3B/8=<Q;IB5?_=CYV,6.W>$8A<W:EU"*N*<4#F;2EU4V5O]L8U:#V_C<>P#
+M?:FW.Y'JQM"O8Q6C at RI&HQ?B,48N8$B5CX2/:G5\8UJ$2Q(G5%:@=6GCJ1,)
+MG)O*%(.!,Y[9RDIC/G<;*B-J:BBF>5BG2XLGP]LS)9`:.#-78:@5FS6^^HS-
+MOEK8S):M>:*H>",QMJXS*=.<4]&!]<H2GI'V'*X(IHZHF$E,PS&U\F:L%5(C
+MK6B&3YR@%QO%&9E@!:%$RM;&Y=R?6;PV34U]`;@"M/O_V"Q)YB62U_8%<)*O
+MD_6UAOHUFNDZJZOC2T0.X9QBCATFO\=7/YFE0>V4346$Y8,^K&TRWM:(Y?=X
+M^`1?RAHPC`P[UQ];Y548=LV"T:C'&4UPS<*:IO0 at UYQ;TZR[)S1<R=?Q_`(H
+M94KU^G^KK6Q;9+R-D;+_H1Y;U4<'M6C_X9@:227RM8T.;>)6]:WKNCS%MH5B
+M at HOF*>H23"TNRJ/KQIR)%3'1BW_)7-2C65G!56E*B-K-;(E]JVW<ZO'\GT[9
+MW&?<RT2/W?)ILC9],]^^B=^47E%*P(3%:AH=.IQ*63?J@!=-*5SIP/;0RCM+
+M#<K+9ADW/C?%#_%4Y<^7@%<[A!GXV'(=DB*`5QR%?FD&]DI^V"><AS;4#2'X
+M4/<&ZKQH_V(>OT']N1S*>Q`^0ZA'&$10$881X at C[$;Z'T$_]\"N$2^@;X/X<
+M"Y<AQFG+[Z'$<@B>1NP0[T&E>!=J)!?L$V^!AK)JC+_;4 at 2]2'LM4U`B5W&?
+MW-^1WR]YT>8!YO`25(OO0ROZMELN0!GFOA=UK99:Z)*.8KR[4(;]_$+Z&SF!
+MN,<21AGD/A5!^#/V/81YG$'H%AY"!'V?$W78*_3@^&Z!C_X<0H at CJ"]%:!)_
+MBF/282?2//\6I..()]"F%WUUU._%>@8QUS[A<SB"N!'[/2+\$6Z1'\-5Q']`
+M^V?$1=A&OC3C!@C.%OH\B[4"28)Y22*[$#]"6%0.0:U\#Z+8_[$U+.R&X[QV
+M>,)/Y&MZ!OV/8YR@\&LXD:\QAQT\E at +PB7B+^A7(7<:QJ](5G/,I\&%M7I#O
+MD1]@K7I-N`))Q`<X8'^M""T([7EHLUPG5H1"U`\BWR,-P`@'V0W-Z-N`L8;X
+MVD#=+LS3A'S^^_/YFQCS;,2Z!M?\I1ZH0Q]=<,#@!H!U>(CWC8?XG6-B<A5]
+M3J-_!VW"[Z`I^O8J0$APY-X4'/38*@8-Z>^;&'W)5=@>+`4'K<%?-:V&DZ0,
+M=\<WS/9YL^TTVT;>TL;91K<[2QMFW^*H?K:J%M$.H_!.I;NIQN$.U'"^W&C_
+M5JW[]DR%^P[".S7-[M<"S>[S"(T(D\ASNYJ96O?)FI/?/OGJR8MB"Y25X2P[
+M[(J1)7??/5A24%+0DLZ2WQE^.?U;.3TGI[\IIT?E]-?E=+><?E9.-\AI74Y[
+MY?0.N41Q*#9EBU*D6!5%D111H0HH)=G<;4/GF[]$LG$DB;P53=I&><LW.KX)
+M*%$H?MVQ;4*41@>[6*L>S<JY`=:B1YG<=R26(60ZCE)&7\L2&(IE28Z++KCX
+MJ3T/A.0N7';E<3Q.HFQA!*+#*EL<U++$BB\JB]9%F",*T:$N)Y1-=CH['1UV
+M?W?X"4TBW^J/'Z>^\8GVG7D?W.0T__ at B+\_)[C=E+AU$:=J4IKDT;4J=5>Q*
+M=##&9JKBK)D3N:HXF0O>,,[R>T!"BXPA)-BER7$G.S>LJAGC1OZ"4)T8'AGG
+M.#G&;FAC869H8343//L$]5FN#FKA#)R-#,4R9XVQ\&S0"$:T9#@^#[UD.%,W
+MO2G<#]?"S4,=&?[O'K-DF'=9QR/V3C\AXC17]_*(TSSB-(_8:_2:$2,3 at UTD
+MVA?+*-`5Q\/'Q'.TT(I3E7!YXEUEME,=YKRU>YRON-X3 at 5R#0CR+B_!>5XS`
+M5;Z at +\A5N&"X:@N_\N55SE?:/:[WR+6\RH9BN]8%^FG]*\]+_`%G9"+,`3.9
+MSRW0<[,.=[,>Y^<,Y4<0?OWA-L9):S>>DN01E%G$$0&LDF5$$&AE at 2R.$*A0
+M:EN=>J_M8>#`<J#7MA at X8%L.0&=@.<"A:9?'[K%[L<&U#4NJL+!D6.#?>.(L
+MF.L;A`?B(Y#`"AFCW&MID;JE2;@F_5.2*!'POH^;FF;I.:-0PGU"!0F$5=YA
+M$4LL^+DHT@)!M!`)JDB6ML\*56*63AH5LE)E+<!/!D44!8$0`I5%5EFV6*0L
+M]<\5>G8Z=4S4AC^>L$GP'V:-8UA<7KQO]]L=?N+P7U0:=''*]@%BIR[:IC[`
+M=X"?ZYIVP3'\5,7_'KNGU",\6'I7Z%ER(':(CUY<2:Z\\)]NJYTG at 2`(#PCD
+ME$2,I8ED>\+3BFB,/!*$>,UQK=$#CH=9.')WD-"HO\#$'V!E+#!6UA:6_@!C
+M;V5E8[`4_&XY*:6 at TMO,SC??S.S,)9/;._%\;'T='HM;._5/ULT?7<ZS0J>S
+M_ZJSZ9?5&3\*P9IB'_"%BP/`5_"2;QG6F.Y<[*&PY];%7EKU/+EX"?R+BWW`
+M(Q<'*.Q=5P==O:Y5=39D:E-GLM$Q;%`L9YA=P]3LEM%A75Z-L;QF:W."XLYA
+MK&SPGL-8K-A!7C*=3D2QI6(LPSE36HVF;3%%MW2SK]=*V5)!+D7*@W;%X++Z
+MNTDJ#:A+.M5)HRHTHR%$I:;`,AG4@=AN%*,<+!/8V37P+1'!P'#DQX#R at M<6
+M/"D^ZXQ1&1Y.O5F,!:X(/:V7I#16 at J(N2 at DV@PP.K2"G at 1YLD:7@/`MB4A][
+M#?=L%E)`=R6*H,Z`VE01U634=Z(;J,O1GSDG=A'O=#H?4<LOIM%+:WC_/:!W
+M?T at PCM][3J/+W,91:.=3VI0$?;W_L.WH^X/GU\EDO"N]24&8P9_)_P;SN6:;
+M"@T*96YD<W1R96%M#65N9&]B:@TU,"`P(&]B:CP\+U=;,3`P6S4T.%U=+U1Y
+M<&4O1F]N="]"87-E1F]N="]*0DI'34HK4WEM8F]L350O4W5B='EP92]#241&
+M;VYT5'EP93(O0TE$4WES=&5M26YF;SP\+T]R9&5R:6YG*$ED96YT:71Y*2]2
+M96=I<W1R>2A!9&]B92DO4W5P<&QE;65N="`P/CXO1F]N=$1E<V-R:7!T;W(@
+M-3,@,"!2+T17(#$P,#`^/@UE;F1O8FH--3$@,"!O8FH\/"],96YG=&@@,C$W
+M+T9I;'1E<B]&;&%T941E8V]D93X^<W1R96%M#0I(B510NV[#,`S<]14<4W20
+M(@29#"_)XJ$/U&YW1:)=`34ET/+ at OX_DVBDZD`2//-R1\M)<&_()Y#L'VV*"
+MWI-CG,+,%N&&@R<X:G#>IJU;LQU-!)G)[3(E'!OJ`U25D!]Y."5>X-!U6CVK
+M)Y!O[)`]#1DZZ<^OC+1SC#\X(B504-?@L!?R\F+BJQD1Y"_S#^V6B*#7_KBI
+M!X=3-!;9T(!0*74^U7M!<O_G.^O6VV_#8M_6.A>1MS>\\,I5#R-V9LX>U]-7
+M(\6")WQ\)X98U$J(NP`#`'OR:N,*#0IE;F1S=')E86T-96YD;V)J#34R(#`@
+M;V)J/#PO5'EP92]&;VYT+T5N8V]D:6YG+TED96YT:71Y+4 at O0F%S949O;G0O
+M2D)*1TU**U-Y;6)O;$U4+U-U8G1Y<&4O5'EP93`O1&5S8V5N9&%N=$9O;G1S
+M6S4P(#`@4ETO5&]5;FEC;V1E(#4Q(#`@4CX^#65N9&]B:@TU,R`P(&]B:CP\
+M+U1Y<&4O1F]N=$1E<V-R:7!T;W(O1F]N=$9I;&4R(#0Y(#`@4B]&;VYT0D)O
+M>%LP("TR,C`@,3$Q,R`Q,#`U72]&;VYT3F%M92]*0DI'34HK4WEM8F]L350O
+M1FQA9W, at -"]3=&5M5B`P+T-A<$AE:6=H="`P+T%S8V5N="`Q,#`U+T1E<V-E
+M;G0 at +3(Q.2])=&%L:6-!;F=L92`P+T9O;G1&86UI;'DH4WEM8F]L*2]&;VYT
+M4W1R971C:"].;W)M86PO1F]N=%=E:6=H="`T,#`^/@UE;F1O8FH--30@,"!O
+M8FH\/"].=6US6S`@-34@,"!273X^#65N9&]B:@TU-2`P(&]B:CP\+U,O1#X^
+M#65N9&]B:@TU-B`P(&]B:CP\+T-O=6YT(#$R+TMI9'-;-3<@,"!2(#4X(#`@
+M4ETO5'EP92]086=E<SX^#65N9&]B:@TU-R`P(&]B:CP\+T-O=6YT(#$P+TMI
+M9'-;-C0@,"!2(#$@,"!2(#0@,"!2(#<@,"!2(#$S(#`@4B`Q.2`P(%(@,C(@
+M,"!2(#(U(#`@4B`R."`P(%(@,S$@,"!272]4>7!E+U!A9V5S+U!A<F5N="`U
+M-B`P(%(^/@UE;F1O8FH--3@@,"!O8FH\/"]#;W5N="`R+TMI9'-;,S0@,"!2
+M(#,W(#`@4ETO5'EP92]086=E<R]087)E;G0 at -38@,"!2/CX-96YD;V)J#34Y
+M(#`@;V)J/#PO3&5N9W1H(#,S,S(O5'EP92]-971A9&%T82]3=6)T>7!E+UA-
+M3#X^<W1R96%M#0H\/WAP86-K970 at 8F5G:6X])^^[OR<@:60])U<U33!-<$-E
+M:&E(>G)E4WI.5&-Z:V,Y9"<_/@H\/V%D;V)E+7AA<"UF:6QT97)S(&5S8STB
+M0U),1B(_/@T*/'@Z>&UP;65T82!X;6QN<SIX/2=A9&]B93IN<SIM971A+R<@
+M>#IX;7!T:STG6$U0('1O;VQK:70@,BXY+C$M,3,L(&9R86UE=V]R:R`Q+C8G
+M/@T*/')D9CI21$8@>&UL;G,Z<F1F/2=H='1P.B\O=W=W+G<S+F]R9R\Q.3DY
+M+S`R+S(R+7)D9BUS>6YT87 at M;G,C)R!X;6QN<SII6#TG:'1T<#HO+VYS+F%D
+M;V)E+F-O;2]I6"\Q+C`O)SX-"CQR9&8Z1&5S8W)I<'1I;VX@<F1F.F%B;W5T
+M/2=U=6ED.F9C.35D9#-C+3,V9#<M-#9A,"UA.35A+3-B8S0W,#<U-3<X.2<@
+M>&UL;G,Z<&1F/2=H='1P.B\O;G,N861O8F4N8V]M+W!D9B\Q+C,O)R!P9&8Z
+M4')O9'5C97(])T%C<F]B870 at 1&ES=&EL;&5R(#8N,"`H5VEN9&]W<RDG/CPO
+M<F1F.D1E<V-R:7!T:6]N/@T*/')D9CI$97-C<FEP=&EO;B!R9&8Z86)O=70]
+M)W5U:60Z9F,Y-61D,V,M,S9D-RTT-F$P+6$Y-6$M,V)C-#<P-S4U-S at Y)R!X
+M;6QN<SIX87`])VAT='`Z+R]N<RYA9&]B92YC;VTO>&%P+S$N,"\G('AA<#I#
+M<F5A=&]R5&]O;#TG4%-C<FEP=#4N9&QL(%9E<G-I;VX at -2XR+C(G('AA<#I-
+M;V1I9GE$871E/2<R,#`T+3`X+3,Q5#$T.C,U.C,Y+3`U.C`P)R!X87`Z0W)E
+M871E1&%T93TG,C`P-"TP."TS,50Q-#HS-3HS.2TP-3HP,"<^/"]R9&8Z1&5S
+M8W)I<'1I;VX^#0H\<F1F.D1E<V-R:7!T:6]N(')D9CIA8F]U=#TG=75I9#IF
+M8SDU9&0S8RTS-F0W+30V83`M83DU82TS8F,T-S`W-34W.#DG('AM;&YS.GAA
+M<$U-/2=H='1P.B\O;G,N861O8F4N8V]M+WAA<"\Q+C`O;6TO)R!X87!-33I$
+M;V-U;65N=$E$/2=U=6ED.F5C,C,S9C%B+6)D93,M-#,R-BTX9&1C+3 at Q,V1B
+M,S4S9#`Q92<O/@T*/')D9CI$97-C<FEP=&EO;B!R9&8Z86)O=70])W5U:60Z
+M9F,Y-61D,V,M,S9D-RTT-F$P+6$Y-6$M,V)C-#<P-S4U-S at Y)R!X;6QN<SID
+M8STG:'1T<#HO+W!U<FPN;W)G+V1C+V5L96UE;G1S+S$N,2\G(&1C.F9O<FUA
+M=#TG87!P;&EC871I;VXO<&1F)SX\9&,Z=&ET;&4^/')D9CI!;'0^/')D9CIL
+M:2!X;6PZ;&%N9STG>"UD969A=6QT)SY-:6-R;W-O9G0 at 5V]R9"`M(&UA;G5A
+M;"YD;V,\+W)D9CIL:3X\+W)D9CI!;'0^/"]D8SIT:71L93X\9&,Z8W)E871O
+M<CX\<F1F.E-E<3X\<F1F.FQI/D-H=6]N9R!$;SPO<F1F.FQI/CPO<F1F.E-E
+M<3X\+V1C.F-R96%T;W(^/"]R9&8Z1&5S8W)I<'1I;VX^#0H\+W)D9CI21$8^
+M#0H\+W at Z>&UP;65T83X-"B`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
+M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
+M("`@("`@("`@("`@("`@("`@("`@("`@("`*("`@("`@("`@("`@("`@("`@
+M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
+M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@(`H@("`@("`@
+M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
+M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
+M("`@"B`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
+M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
+M("`@("`@("`@("`@("`*("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
+M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
+M("`@("`@("`@("`@("`@("`@("`@("`@(`H@("`@("`@("`@("`@("`@("`@
+M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
+M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@"B`@("`@("`@
+M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
+M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
+M("`*("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
+M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
+M("`@("`@("`@("`@(`H@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
+M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
+M("`@("`@("`@("`@("`@("`@("`@("`@"B`@("`@("`@("`@("`@("`@("`@
+M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
+M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`*("`@("`@("`@
+M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
+M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
+M(`H@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
+M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
+M("`@("`@("`@("`@"B`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
+M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
+M("`@("`@("`@("`@("`@("`@("`@("`*("`@("`@("`@("`@("`@("`@("`@
+M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
+M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@(`H@("`@("`@("`@
+M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
+M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
+M"B`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
+M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
+M("`@("`@("`@("`*("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
+M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
+M("`@("`@("`@("`@("`@("`@("`@(`H@("`@("`@("`@("`@("`@("`@("`@
+M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
+M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@"B`@("`@("`@("`@
+M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
+M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`*
+M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
+M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
+M("`@("`@("`@(`H@("`@("`@("`@("`@("`@("`@("`@("`@("`*/#]X<&%C
+M:V5T(&5N9#TG=R<_/@T*96YD<W1R96%M#65N9&]B:@TV,"`P(&]B:CP\+TUO
+M9$1A=&4H1#HR,#`T,#@S,3$T,S4S.2TP-2<P,"<I+T-R96%T:6]N1&%T92A$
+M.C(P,#0P.#,Q,30S-3,Y+3`U)S`P)RDO5&ET;&4H36EC<F]S;V9T(%=O<F0@
+M+2!M86YU86PN9&]C*2]#<F5A=&]R*%!38W)I<'0U+F1L;"!697)S:6]N(#4N
+M,BXR*2]0<F]D=6-E<BA!8W)O8F%T($1I<W1I;&QE<B`V+C`@7"A7:6YD;W=S
+M7"DI+T%U=&AO<BA#:'5O;F<@1&\I/CX-96YD;V)J#7AR968-"C`@-C$-"C`P
+M,#`P,#`P,#`@-C4U,S4 at 9@T*,#`P,#`Q-SDX,"`P,#`P,"!N#0HP,#`P,#$X
+M,3`V(#`P,#`P(&X-"C`P,#`P,3 at R-S(@,#`P,#`@;@T*,#`P,#`R,30W.2`P
+M,#`P,"!N#0HP,#`P,#(Q-C`U(#`P,#`P(&X-"C`P,#`P,C$W-#@@,#`P,#`@
+M;@T*,#`P,#`R,CDW.2`P,#`P,"!N#0HP,#`P,#(S,3`U(#`P,#`P(&X-"C`P
+M,#`P,C,R-S(@,#`P,#`@;@T*,#`P,#`R-30R-2`P,#`P,"!N#0HP,#`P,#,R
+M,#$T(#`P,#`P(&X-"C`P,#`P,S(R-3,@,#`P,#`@;@T*,#`P,#`S,C0T-B`P
+M,#`P,"!N#0HP,#`P,#,R-3<U(#`P,#`P(&X-"C`P,#`P,S(W-34@,#`P,#`@
+M;@T*,#`P,#`S-#,T.2`P,#`P,"!N#0HP,#`P,#,T-3 at X(#`P,#`P(&X-"C`P
+M,#`P,S0X-#,@,#`P,#`@;@T*,#`P,#`S-3`X."`P,#`P,"!N#0HP,#`P,#,U
+M,C$W(#`P,#`P(&X-"C`P,#`P,S4S-3`@,#`P,#`@;@T*,#`P,#`S-C,X,2`P
+M,#`P,"!N#0HP,#`P,#,V-3$P(#`P,#`P(&X-"C`P,#`P,S8V-30@,#`P,#`@
+M;@T*,#`P,#`S-S<S.2`P,#`P,"!N#0HP,#`P,#,W.#8X(#`P,#`P(&X-"C`P
+M,#`P,S at P,C0@,#`P,#`@;@T*,#`P,#`T,#`R,2`P,#`P,"!N#0HP,#`P,#0P
+M,34P(#`P,#`P(&X-"C`P,#`P-#`S,#8@,#`P,#`@;@T*,#`P,#`T,C$S,B`P
+M,#`P,"!N#0HP,#`P,#0R,C8Q(#`P,#`P(&X-"C`P,#`P-#(T,#4@,#`P,#`@
+M;@T*,#`P,#`T-#(Y-B`P,#`P,"!N#0HP,#`P,#0T-#(U(#`P,#`P(&X-"C`P
+M,#`P-#0U-CD@,#`P,#`@;@T*,#`P,#`T-C8Y,R`P,#`P,"!N#0HP,#`P,#0V
+M.#(R(#`P,#`P(&X-"C`P,#`P-#8Y-S@@,#`P,#`@;@T*,#`P,#`T.#DQ,R`P
+M,#`P,"!N#0HP,#`P,#0Y,3<W(#`P,#`P(&X-"C`P,#`P-#DS,S@@,#`P,#`@
+M;@T*,#`P,#`U.#0T."`P,#`P,"!N#0HP,#`P,#4X-C<V(#`P,#`P(&X-"C`P
+M,#`P-3DR,#0@,#`P,#`@;@T*,#`P,#`U.3,R-B`P,#`P,"!N#0HP,#`P,#4Y
+M-C$R(#`P,#`P(&X-"C`P,#`P-3DW.#4@,#`P,#`@;@T*,#`P,#`V,#(P,B`P
+M,#`P,"!N#0HP,#`P,#8W,S at U(#`P,#`P(&X-"C`P,#`P-C<U-CD@,#`P,#`@
+M;@T*,#`P,#`V-S at U-2`P,#`P,"!N#0HP,#`P,#8W.3 at U(#`P,#`P(&X-"C`P
+M,#`P-C at R,30@,#`P,#`@;@T*,#`P,#`V.#(T.2`P,#`P,"!N#0HP,#`P,#8X
+M,C<S(#`P,#`P(&X-"C`P,#`P-C at S,S,@,#`P,#`@;@T*,#`P,#`V.#0V,"`P
+M,#`P,"!N#0HP,#`P,#8X-3,S(#`P,#`P(&X-"C`P,#`P-S$Y-#(@,#`P,#`@
+M;@T*=')A:6QE<@T*/#PO4VEZ92`V,3X^#0IS=&%R='AR968-"C$Q- at T*)25%
+$3T8-"@``
+`
+end

Added: trunk/packages/probcons/trunk/debian/patches/00list
===================================================================
--- trunk/packages/probcons/trunk/debian/patches/00list	2006-05-07 14:56:01 UTC (rev 43)
+++ trunk/packages/probcons/trunk/debian/patches/00list	2006-05-07 15:00:41 UTC (rev 44)
@@ -0,0 +1,2 @@
+10_add-RNA-in-Makefile.dpatch
+11-Renames-compare-in-Makefile.dpatch

Added: trunk/packages/probcons/trunk/debian/patches/10_add-RNA-in-Makefile.dpatch
===================================================================
--- trunk/packages/probcons/trunk/debian/patches/10_add-RNA-in-Makefile.dpatch	2006-05-07 14:56:01 UTC (rev 43)
+++ trunk/packages/probcons/trunk/debian/patches/10_add-RNA-in-Makefile.dpatch	2006-05-07 15:00:41 UTC (rev 44)
@@ -0,0 +1,47 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 10_add-RNA-in-Makefile.dpatch by Charles Plessy <charles-debian-nospam at plessy.org>
+## This patch is hereby released in the public domain.
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Adds probcons-RNA
+
+ at DPATCH@
+
+--- probcons-1.10/Makefile	2006-05-07 13:45:26.000000000 +0900
++++ probcons-1.10.modified/Makefile	2006-05-07 13:51:20.000000000 +0900
+@@ -16,6 +16,7 @@
+ ################################################################################
+ 
+ OTHERFLAGS = -DNumInsertStates=2 -DVERSION="1.10"
++OTHERFLAGS-RNA = -DNumInsertStates=1 -DVERSION="1.10"
+ 
+ # debug mode    
+ #CXXFLAGS = -g -W -Wall -pedantic -DENABLE_CHECKS -fno-inline $(OTHERFLAGS)
+@@ -25,13 +26,16 @@
+ 
+ # release mode
+ #CXXFLAGS = -O3 -W -Wall -pedantic -DNDEBUG $(OTHERFLAGS) -mmmx -msse -msse2 -mfpmath=sse -march=pentium4 -mcpu=pentium4 -funroll-loops -fomit-frame-pointer 
++
+ CXXFLAGS = -O3 -W -Wall -pedantic -DNDEBUG $(OTHERFLAGS) -funroll-loops
++CXXFLAGS-RNA = -O3 -W -Wall -pedantic -DNDEBUG $(OTHERFLAGS-RNA) -funroll-loops
++
+ 
+ ################################################################################
+ # 3) Dependencies
+ ################################################################################
+ 
+-TARGETS = probcons compare project makegnuplot
++TARGETS = probcons probcons-RNA compare project makegnuplot
+ 
+ .PHONY : all
+ all : $(TARGETS)
+@@ -42,6 +46,9 @@
+ compare : MultiSequence.h Sequence.h FileBuffer.h SafeVector.h CompareToRef.cc
+ 	$(CXX) $(CXXFLAGS) -o compare CompareToRef.cc
+ 
++probcons-RNA : MultiSequence.h ProbabilisticModel.h ScoreType.h Sequence.h FileBuffer.h SparseMatrix.h EvolutionaryTree.h Defaults-RNA.h SafeVector.h Main-RNA.cc
++	$(CXX) $(CXXFLAGS-RNA) -lm -o probcons-RNA Main-RNA.cc 
++
+ fixref : MultiSequence.h ProbabilisticModel.h ScoreType.h Sequence.h FileBuffer.h SparseMatrix.h EvolutionaryTree.h Defaults.h SafeVector.h FixRef.cc
+ 	$(CXX) $(CXXFLAGS) -o fixref FixRef.cc
+ 


Property changes on: trunk/packages/probcons/trunk/debian/patches/10_add-RNA-in-Makefile.dpatch
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/packages/probcons/trunk/debian/patches/11-Renames-compare-in-Makefile.dpatch
===================================================================
--- trunk/packages/probcons/trunk/debian/patches/11-Renames-compare-in-Makefile.dpatch	2006-05-07 14:56:01 UTC (rev 43)
+++ trunk/packages/probcons/trunk/debian/patches/11-Renames-compare-in-Makefile.dpatch	2006-05-07 15:00:41 UTC (rev 44)
@@ -0,0 +1,31 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 11-Renames-compare-in-Makefile.dpatch by Charles Plessy <charles-debian-nospam at plessy.org>
+## This patch is hereby released in the public domain.
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Renames compare to pc-compare
+
+ at DPATCH@
+
+--- probcons-1.10/Makefile	2006-05-07 13:52:26.000000000 +0900
++++ probcons-1.10.modified/Makefile	2006-05-07 13:53:04.000000000 +0900
+@@ -35,7 +35,7 @@
+ # 3) Dependencies
+ ################################################################################
+ 
+-TARGETS = probcons probcons-RNA compare project makegnuplot
++TARGETS = probcons probcons-RNA pc-compare project makegnuplot
+ 
+ .PHONY : all
+ all : $(TARGETS)
+@@ -43,8 +43,8 @@
+ probcons : MultiSequence.h ProbabilisticModel.h ScoreType.h Sequence.h FileBuffer.h SparseMatrix.h EvolutionaryTree.h Defaults.h SafeVector.h Main.cc
+ 	$(CXX) $(CXXFLAGS) -lm -o probcons Main.cc 
+ 
+-compare : MultiSequence.h Sequence.h FileBuffer.h SafeVector.h CompareToRef.cc
+-	$(CXX) $(CXXFLAGS) -o compare CompareToRef.cc
++pc-compare : MultiSequence.h Sequence.h FileBuffer.h SafeVector.h CompareToRef.cc
++	$(CXX) $(CXXFLAGS) -o pc-compare CompareToRef.cc
+ 
+ probcons-RNA : MultiSequence.h ProbabilisticModel.h ScoreType.h Sequence.h FileBuffer.h SparseMatrix.h EvolutionaryTree.h Defaults-RNA.h SafeVector.h Main-RNA.cc
+ 	$(CXX) $(CXXFLAGS-RNA) -lm -o probcons-RNA Main-RNA.cc 


Property changes on: trunk/packages/probcons/trunk/debian/patches/11-Renames-compare-in-Makefile.dpatch
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/packages/probcons/trunk/debian/pc-compare.1.xml
===================================================================
--- trunk/packages/probcons/trunk/debian/pc-compare.1.xml	2006-05-07 14:56:01 UTC (rev 43)
+++ trunk/packages/probcons/trunk/debian/pc-compare.1.xml	2006-05-07 15:00:41 UTC (rev 44)
@@ -0,0 +1,84 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+"/usr/share/xml/docbook/schema/dtd/4.4/docbookx.dtd" [
+
+  <!ENTITY dhfirstname "<firstname>Plessy</firstname>">
+  <!ENTITY dhsurname   "<surname>Plessy</surname>">
+  <!ENTITY dhdate      "<date>mai 3, 2006</date>">
+  <!ENTITY dhsection   "<manvolnum>1</manvolnum>">
+  <!ENTITY dhemail     "<email>charles-debian-nospam at plessy.org</email>">
+  <!ENTITY dhusername  "Charles Plessy">
+  <!ENTITY dhucpackage "<refentrytitle>PROBCONS</refentrytitle>">
+  <!ENTITY dhpackage   "pc-compare">
+  <!ENTITY debian      "<productname>Debian</productname>">
+  <!ENTITY gnu         "<acronym>GNU</acronym>">
+  <!ENTITY gpl         "&gnu; <acronym>GPL</acronym>">
+]>
+
+<refentry>
+  <refentryinfo>
+    <address>
+      &dhemail;
+    </address>
+<!--     <author>
+      &dhfirstname;
+      &dhsurname;
+    </author>  -->
+    <copyright>
+      <year>2006</year>
+      <holder>&dhusername;</holder>
+    </copyright>
+    &dhdate;
+  </refentryinfo>
+  <refmeta>
+    &dhucpackage;
+
+    &dhsection;
+  </refmeta>
+  <refnamediv>
+    <refname>&dhpackage;</refname>
+
+    <refpurpose>Program for scoring alignments
+         according to a reference alignment with respect to
+         sum-of-pairs and column scores.</refpurpose>
+  </refnamediv>
+  <refsynopsisdiv>
+    <cmdsynopsis>
+      <command>&dhpackage;</command>
+      <arg><replaceable>TEST_ALIGNMENT</replaceable></arg>
+      <arg><replaceable>REFERENCE_ALIGNMENT</replaceable></arg>
+      <arg choice="opt"><replaceable>BALIBASE_ANNOT_FILE</replaceable></arg>
+      <arg choice="opt"><option>-col</option></arg>
+      <arg choice="opt"><option>-core</option></arg>
+      <arg choice="opt"><option>-caps</option></arg>
+      <arg choice="opt">
+        <option>-annot <replaceable>FILENAME</replaceable></option>
+      </arg>
+    </cmdsynopsis>
+  </refsynopsisdiv>
+  <refsect1>
+    <title>SEE ALSO</title>
+    <para>makegnufile (1), project (1), probcons (1), which are distributed together with probcons.</para>
+  </refsect1>
+
+  <refsect1>
+    <title>REFERENCE</title>
+    <para>Please cite  Do, C.B., Mahabhashyam, M.S.P., Brudno, M., and Batzoglou, S. 2005. PROBCONS: Probabilistic Consistency-based Multiple Sequence Alignment. Genome Research 15: 330-340.</para>
+  </refsect1>
+
+  <refsect1>
+    <title>AUTHORS</title>
+
+    <para>&dhpackage; was written by Chuong Do <email>chuongdo at cs.stanford.edu</email>in collaboration with Michael Brudno in the research group of Serafim Batzoglou, Department of Computer Science, Stanford University.</para>
+    
+    <para>This manual page was written by &dhusername; &dhemail; for the &debian; system (but may be used by others).
+    </para>
+
+  </refsect1>
+  
+  <refsect1>
+    <title>LICENCE</title>
+    <para>This program and its manpage are in the public domain.</para>
+  </refsect1>
+
+</refentry>

Added: trunk/packages/probcons/trunk/debian/probcons-RNA.1
===================================================================
--- trunk/packages/probcons/trunk/debian/probcons-RNA.1	2006-05-07 14:56:01 UTC (rev 43)
+++ trunk/packages/probcons/trunk/debian/probcons-RNA.1	2006-05-07 15:00:41 UTC (rev 44)
@@ -0,0 +1,40 @@
+.\"Generated by db2man.xsl. Don't modify this, modify the source.
+.de Sh \" Subsection
+.br
+.if t .Sp
+.ne 5
+.PP
+\fB\\$1\fR
+.PP
+..
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Ip \" List item
+.br
+.ie \\n(.$>=3 .ne \\$3
+.el .ne 3
+.IP "\\$1" \\$2
+..
+.TH "PROBCONS" 1 "mai 3, 2006" "" ""
+.SH NAME
+probcons-RNA \- An experimental version of ProbCons compiled with parameters estimated via unsupervised training on BRAliBASE.
+.SH "DESCRIPTION"
+
+.PP
+See the manpage of probcons (1) for the command\-line arguments, and \fI/usr/share/doc/README\&.Debian\fR for more informations about how probcons\-RNA has been built\&.
+
+.SH "AUTHORS"
+
+.PP
+probcons\-RNA was written by Chuong Do <chuongdo at cs\&.stanford\&.edu>in collaboration with Michael Brudno in the research group of Serafim Batzoglou, Department of Computer Science, Stanford University\&.
+
+.PP
+This manual page was written by Charles Plessy <charles\-debian\-nospam at plessy\&.org> for the Debian&#8482; system (but may be used by others)\&.
+
+.SH "LICENCE"
+
+.PP
+This program and its manpage are in the public domain\&.
+

Added: trunk/packages/probcons/trunk/debian/probcons-RNA.1.xml
===================================================================
--- trunk/packages/probcons/trunk/debian/probcons-RNA.1.xml	2006-05-07 14:56:01 UTC (rev 43)
+++ trunk/packages/probcons/trunk/debian/probcons-RNA.1.xml	2006-05-07 15:00:41 UTC (rev 44)
@@ -0,0 +1,63 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+"/usr/share/xml/docbook/schema/dtd/4.4/docbookx.dtd" [
+
+  <!ENTITY dhfirstname "<firstname>Plessy</firstname>">
+  <!ENTITY dhsurname   "<surname>Plessy</surname>">
+  <!ENTITY dhdate      "<date>mai 3, 2006</date>">
+  <!ENTITY dhsection   "<manvolnum>1</manvolnum>">
+  <!ENTITY dhemail     "<email>charles-debian-nospam at plessy.org</email>">
+  <!ENTITY dhusername  "Charles Plessy">
+  <!ENTITY dhucpackage "<refentrytitle>PROBCONS</refentrytitle>">
+  <!ENTITY dhpackage   "probcons-RNA">
+  <!ENTITY debian      "<productname>Debian</productname>">
+  <!ENTITY gnu         "<acronym>GNU</acronym>">
+  <!ENTITY gpl         "&gnu; <acronym>GPL</acronym>">
+]>
+
+<refentry>
+  <refentryinfo>
+    <address>
+      &dhemail;
+    </address>
+<!--     <author>
+      &dhfirstname;
+      &dhsurname;
+    </author>  -->
+    <copyright>
+      <year>2006</year>
+      <holder>&dhusername;</holder>
+    </copyright>
+    &dhdate;
+  </refentryinfo>
+  <refmeta>
+    &dhucpackage;
+
+    &dhsection;
+  </refmeta>
+  <refnamediv>
+    <refname>&dhpackage;</refname>
+
+    <refpurpose>An experimental version of ProbCons compiled with parameters estimated via unsupervised training on BRAliBASE.</refpurpose>
+  </refnamediv>
+  <refsect1>
+    <title>DESCRIPTION</title>
+    <para>See the manpage of probcons (1) for the command-line arguments, and <filename>/usr/share/doc/README.Debian</filename> for more informations about how probcons-RNA has been built.</para>
+  </refsect1>
+
+  <refsect1>
+    <title>AUTHORS</title>
+
+    <para>&dhpackage; was written by Chuong Do <email>chuongdo at cs.stanford.edu</email>in collaboration with Michael Brudno in the research group of Serafim Batzoglou, Department of Computer Science, Stanford University.</para>
+    
+    <para>This manual page was written by &dhusername; &dhemail; for the &debian; system (but may be used by others).
+    </para>
+
+  </refsect1>
+  
+  <refsect1>
+    <title>LICENCE</title>
+    <para>This program and its manpage are in the public domain.</para>
+  </refsect1>
+
+</refentry>

Added: trunk/packages/probcons/trunk/debian/probcons.1.xml
===================================================================
--- trunk/packages/probcons/trunk/debian/probcons.1.xml	2006-05-07 14:56:01 UTC (rev 43)
+++ trunk/packages/probcons/trunk/debian/probcons.1.xml	2006-05-07 15:00:41 UTC (rev 44)
@@ -0,0 +1,204 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+"/usr/share/xml/docbook/schema/dtd/4.4/docbookx.dtd" [
+
+  <!ENTITY dhfirstname "<firstname>Plessy</firstname>">
+  <!ENTITY dhsurname   "<surname>Plessy</surname>">
+  <!ENTITY dhdate      "<date>mai 3, 2006</date>">
+  <!ENTITY dhsection   "<manvolnum>1</manvolnum>">
+  <!ENTITY dhemail     "<email>charles-debian-nospam at plessy.org</email>">
+  <!ENTITY dhusername  "Charles Plessy">
+  <!ENTITY dhucpackage "<refentrytitle>PROBCONS</refentrytitle>">
+  <!ENTITY dhpackage   "probcons">
+  <!ENTITY debian      "<productname>Debian</productname>">
+  <!ENTITY gnu         "<acronym>GNU</acronym>">
+  <!ENTITY gpl         "&gnu; <acronym>GPL</acronym>">
+]>
+
+<refentry>
+  <refentryinfo>
+    <address>
+      &dhemail;
+    </address>
+<!--     <author>
+      &dhfirstname;
+      &dhsurname;
+    </author>  -->
+    <copyright>
+      <year>2006</year>
+      <holder>&dhusername;</holder>
+    </copyright>
+    &dhdate;
+  </refentryinfo>
+  <refmeta>
+    &dhucpackage;
+
+    &dhsection;
+  </refmeta>
+  <refnamediv>
+    <refname>&dhpackage;</refname>
+
+    <refpurpose>align multiple protein sequences and print to standard output</refpurpose>
+  </refnamediv>
+  <refsynopsisdiv>
+    <cmdsynopsis>
+      <command>&dhpackage;</command>
+
+      <arg choice="opt"><option><replaceable>OPTION</replaceable></option></arg>
+
+      <arg><replaceable>MFAFILE</replaceable></arg>
+      <arg choice="opt"><replaceable>MFAFILE</replaceable></arg>
+    </cmdsynopsis>
+  </refsynopsisdiv>
+  <refsect1>
+    <title>DESCRIPTION</title>
+
+    <para><command>&dhpackage;</command> is a tool for generating multiple alignments of protein sequences. Using a combination of probabilistic modeling and consistency-based alignment techniques, PROBCONS has achieved the highest accuracies of all alignment methods to date. On the BAliBASE benchmark alignment database, alignments produced by PROBCONS show statistically significant improvement over current programs, containing an average of 7% more correctly aligned columns than those of T-Coffee, 11% more correctly aligned columns than those of CLUSTAL W, and 14% more correctly aligned columns than those of DIALIGN.</para>
+    
+    <para><command>&dhpackage;</command> aligns sequences provided in MFA format. This format consists of multiple sequences. Each sequence in MFA format begins with a single-line description, followed by lines of sequence data. The description line is distinguished from the sequence data by a greater-than (<quote>&gt;</quote>) symbol in the first column.</para>
+
+  </refsect1>
+  <refsect1>
+    <title>OPTIONS</title>
+
+    <variablelist>
+      <varlistentry>
+        <term><option>-clustalw</option>
+        </term>
+        <listitem>
+          <para>use CLUSTALW output format instead of MFA</para>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term><option>-c</option>
+          <option>--consistency</option> <varname>REPS</varname>
+        </term>
+        <listitem>
+          <para>use 0 &lt;= <varname>REPS</varname> &lt;= 5 (default: 2) passes of consistency transformation</para>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term><option>-ir</option>
+          <option>--iterative-refinement</option> <varname>REPS</varname>
+        </term>
+        <listitem>
+          <para>use 0 &lt;= <varname>REPS</varname> &lt;=1000 (default: 100) passes of iterative-refinement</para>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term><option>-pre</option>
+          <option>--pre-training</option> <varname>REPS</varname>
+        </term>
+        <listitem>
+          <para>use 0 &lt;= <varname>REPS</varname> &lt;= 20 (default: 0) rounds of pretraining</para>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>
+          <option>-pairs</option>
+        </term>
+        <listitem>
+          <para>generate all-pairs pairwise alignments</para>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>
+          <option>-viterbi</option>
+        </term>
+        <listitem>
+          <para>use Viterbi algorithm to generate all pairs (automatically enables <option>-pairs</option>)</para>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>
+          <option>-v</option>
+          <option>--verbose</option>
+        </term>
+        <listitem>
+          <para>Report progress while aligning (default: off)</para>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term><option>-annot</option> <filename>FILENAME</filename>        </term>
+        <listitem>
+          <para>write annotation for multiple alignment to <filename>FILENAME</filename></para>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term><option>-t</option>
+          <option>--train</option> <filename>FILENAME</filename>
+        </term>
+        <listitem>
+          <para>compute EM transition probabilities, store in <filename>FILENAME</filename> (default: no training)</para>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term><option>-e</option>
+          <option>--emissions</option>
+        </term>
+        <listitem>
+          <para>also reestimate emission probabilities (default: off)</para>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term><option>-p</option>
+          <option>--paramfile</option> <filename>FILENAME</filename>
+        </term>
+        <listitem>
+          <para>read parameters from <filename>FILENAME</filename> (default: )</para>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term><option>-a</option>
+          <option>--alignment-order</option>
+        </term>
+        <listitem>
+          <para>print sequences in alignment order rather than input order (default: off)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refsect1>
+  <refsect1>
+    <title>SEE ALSO</title>
+    <itemizedlist>
+      <listitem><para>You can find more information in the manual of ProbCons, which is located in  <filename>/usr/share/doc/probcons/manual.pdf</filename> in Debian systems.</para></listitem>
+
+      <listitem><para>An experimental version of ProbCons compiled with parameters estimated via unsupervised training on BRAliBASE, probcons-RNA (1), is also distributed in the ProbCons Debian package.</para></listitem>
+
+      <listitem><para>makegnufile (1), pc-compare (1), project (1), which are distributed together with probcons.</para></listitem>
+    </itemizedlist>
+  </refsect1>
+
+  <refsect1>
+    <title>REFERENCE</title>
+    <para>Please cite  Do, C.B., Mahabhashyam, M.S.P., Brudno, M., and Batzoglou, S. 2005. PROBCONS: Probabilistic Consistency-based Multiple Sequence Alignment. Genome Research 15: 330-340.</para>
+  </refsect1>
+
+  <refsect1>
+    <title>AUTHORS</title>
+
+    <para>&dhpackage; was written by Chuong Do <email>chuongdo at cs.stanford.edu</email>in collaboration with Michael Brudno in the research group of Serafim Batzoglou, Department of Computer Science, Stanford University.</para>
+    
+    <para>This manual page was written by &dhusername; &dhemail; for the &debian; system (but may be used by others).
+    </para>
+
+  </refsect1>
+  
+  <refsect1>
+    <title>LICENCE</title>
+    <para>This program and its manpage are in the public domain.</para>
+  </refsect1>
+    
+  
+</refentry>

Added: trunk/packages/probcons/trunk/debian/probcons.doc-base
===================================================================
--- trunk/packages/probcons/trunk/debian/probcons.doc-base	2006-05-07 14:56:01 UTC (rev 43)
+++ trunk/packages/probcons/trunk/debian/probcons.doc-base	2006-05-07 15:00:41 UTC (rev 44)
@@ -0,0 +1,8 @@
+Document: probcons
+Title: ProbCons Manual
+Author: Mahathi Mahabhashyam and Chuong Do
+Abstract: This manual describes the usage of ProbCons
+Section: Apps/Science
+
+Format: PDF
+Files: /usr/share/doc/probcons/manual.pdf.gz

Added: trunk/packages/probcons/trunk/debian/project.1.xml
===================================================================
--- trunk/packages/probcons/trunk/debian/project.1.xml	2006-05-07 14:56:01 UTC (rev 43)
+++ trunk/packages/probcons/trunk/debian/project.1.xml	2006-05-07 15:00:41 UTC (rev 44)
@@ -0,0 +1,76 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+"/usr/share/xml/docbook/schema/dtd/4.4/docbookx.dtd" [
+
+  <!ENTITY dhfirstname "<firstname>Plessy</firstname>">
+  <!ENTITY dhsurname   "<surname>Plessy</surname>">
+  <!ENTITY dhdate      "<date>mai 3, 2006</date>">
+  <!ENTITY dhsection   "<manvolnum>1</manvolnum>">
+  <!ENTITY dhemail     "<email>charles-debian-nospam at plessy.org</email>">
+  <!ENTITY dhusername  "Charles Plessy">
+  <!ENTITY dhucpackage "<refentrytitle>PROBCONS</refentrytitle>">
+  <!ENTITY dhpackage   "project">
+  <!ENTITY debian      "<productname>Debian</productname>">
+  <!ENTITY gnu         "<acronym>GNU</acronym>">
+  <!ENTITY gpl         "&gnu; <acronym>GPL</acronym>">
+]>
+
+<refentry>
+  <refentryinfo>
+    <address>
+      &dhemail;
+    </address>
+<!--     <author>
+      &dhfirstname;
+      &dhsurname;
+    </author>  -->
+    <copyright>
+      <year>2006</year>
+      <holder>&dhusername;</holder>
+    </copyright>
+    &dhdate;
+  </refentryinfo>
+  <refmeta>
+    &dhucpackage;
+
+    &dhsection;
+  </refmeta>
+  <refnamediv>
+    <refname>&dhpackage;</refname>
+
+    <refpurpose>Program to project multiple alignment to
+      pairwise alignments.</refpurpose>
+  </refnamediv>
+  <refsynopsisdiv>
+    <cmdsynopsis>
+      <command>&dhpackage;</command>
+      <arg><replaceable>ALIGNMENT</replaceable></arg>
+      <arg choice="opt">-nocompressgaps</arg>
+    </cmdsynopsis>
+  </refsynopsisdiv>
+  <refsect1>
+    <title>SEE ALSO</title>
+    <para>makegnufile (1), pc-compare (1), probcons (1), which are distributed together with probcons.</para>
+  </refsect1>
+
+  <refsect1>
+    <title>REFERENCE</title>
+    <para>Please cite  Do, C.B., Mahabhashyam, M.S.P., Brudno, M., and Batzoglou, S. 2005. PROBCONS: Probabilistic Consistency-based Multiple Sequence Alignment. Genome Research 15: 330-340.</para>
+  </refsect1>
+
+  <refsect1>
+    <title>AUTHORS</title>
+
+    <para>&dhpackage; was written by Chuong Do <email>chuongdo at cs.stanford.edu</email>in collaboration with Michael Brudno in the research group of Serafim Batzoglou, Department of Computer Science, Stanford University.</para>
+    
+    <para>This manual page was written by &dhusername; &dhemail; for the &debian; system (but may be used by others).
+    </para>
+
+  </refsect1>
+  
+  <refsect1>
+    <title>LICENCE</title>
+    <para>This program and its manpage are in the public domain.</para>
+  </refsect1>
+
+</refentry>

Added: trunk/packages/probcons/trunk/debian/rules
===================================================================
--- trunk/packages/probcons/trunk/debian/rules	2006-05-07 14:56:01 UTC (rev 43)
+++ trunk/packages/probcons/trunk/debian/rules	2006-05-07 15:00:41 UTC (rev 44)
@@ -0,0 +1,78 @@
+#!/usr/bin/make -f
+# -*- makefile -*-
+# Build rules for the Debian package probcons
+# This file was originally written by Joey Hess and Craig Small.
+# As a special exception, when this file is copied by dh-make into a
+# dh-make output file, you may use that output file without restriction.
+# This special exception was added by Craig Small in version 0.37 of dh-make.
+# Modifications by Charles Plessy during the year 2006 can also
+# be used without restriction.
+
+CFLAGS   = -Wall -g
+
+BINARIES = probcons probcons-RNA project pc-compare makegnuplot
+
+MANPAGES = debian/probcons.1 debian/pc-compare.1 debian/project.1 debian/makegnuplot.1
+DB2MAN   = "/usr/share/xml/docbook/stylesheet/nwalsh/manpages/docbook.xsl"
+XP       = xsltproc -o debian/ -''-nonet
+
+ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
+	CFLAGS += -O0
+else
+	CFLAGS += -O2
+endif
+
+build: patch manpages
+	dh_testdir
+	cp debian/Main-RNA.cc Main-RNA.cc
+	cp debian/Defaults-RNA.h Defaults-RNA.h
+	uudecode debian/manual.pdf.ascii
+	$(MAKE)
+	touch build-stamp
+
+patch:
+	dpatch apply-all
+	dpatch cat-all --desc-only > patch-stamp	
+
+unpatch:
+	dpatch deapply-all
+	rm -rf patch-stamp debian/patched
+
+manpages: debian/probcons.1.xml debian/probcons-RNA.1.xml debian/project.1.xml debian/pc-compare.1.xml debian/makegnuplot.1.xml
+	$(XP) $(DB2MAN) debian/probcons.1.xml
+	$(XP) $(DB2MAN) debian/probcons-RNA.1.xml
+	$(XP) $(DB2MAN) debian/project.1.xml
+	$(XP) $(DB2MAN) debian/pc-compare.1.xml
+	$(XP) $(DB2MAN) debian/makegnuplot.1.xml
+
+clean: unpatch
+	dh_testdir
+	dh_testroot
+	rm -f build-stamp configure-stamp
+	dh_clean $(BINARIES) $(MANPAGES) Main-RNA.cc Defaults-RNA.h manual.pdf
+
+install: build
+	dh_testdir
+	dh_testroot
+	dh_clean -k 
+	dh_installdirs
+
+binary: build install
+	dh_testdir
+	dh_testroot
+	dh_installchangelogs 
+	dh_installdocs
+	dh_installexamples
+	dh_install
+	dh_installman
+	dh_link
+	dh_strip
+	dh_compress
+	dh_fixperms
+	dh_installdeb
+	dh_shlibdeps
+	dh_gencontrol
+	dh_md5sums
+	dh_builddeb
+
+.PHONY: build clean binary install


Property changes on: trunk/packages/probcons/trunk/debian/rules
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/packages/probcons/trunk/debian/watch
===================================================================
--- trunk/packages/probcons/trunk/debian/watch	2006-05-07 14:56:01 UTC (rev 43)
+++ trunk/packages/probcons/trunk/debian/watch	2006-05-07 15:00:41 UTC (rev 44)
@@ -0,0 +1,2 @@
+version=3
+http://probcons.stanford.edu/pub/probcons(.*)\.tar\.gz




More information about the debian-med-commit mailing list