You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@joshua.apache.org by mj...@apache.org on 2016/04/26 23:55:37 UTC

[1/9] incubator-joshua git commit: Moved files to correct path, fixed build errors

Repository: incubator-joshua
Updated Branches:
  refs/heads/master 91efb9a7e -> e77321b1e


Moved files to correct path, fixed build errors


Project: http://git-wip-us.apache.org/repos/asf/incubator-joshua/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-joshua/commit/eba164ab
Tree: http://git-wip-us.apache.org/repos/asf/incubator-joshua/tree/eba164ab
Diff: http://git-wip-us.apache.org/repos/asf/incubator-joshua/diff/eba164ab

Branch: refs/heads/master
Commit: eba164ab43c62e243560d4db0dc2e7b434e300c6
Parents: 91efb9a
Author: Kellen Sunderland <ke...@amazon.com>
Authored: Mon Apr 25 19:30:25 2016 -0700
Committer: Kellen Sunderland <ke...@amazon.com>
Committed: Mon Apr 25 19:30:25 2016 -0700

----------------------------------------------------------------------
 .../joshua/decoder/StructuredTranslation.java   | 143 -------------------
 .../ViterbiFeatureVectorWalkerFunction.java     |  44 ------
 .../ViterbiOutputStringWalkerFunction.java      |  96 -------------
 src/joshua/decoder/StructuredTranslation.java   | 143 +++++++++++++++++++
 .../ViterbiFeatureVectorWalkerFunction.java     |  44 ++++++
 .../ViterbiOutputStringWalkerFunction.java      |  96 +++++++++++++
 .../hypergraph/WordAlignmentExtractor.java      | 116 +++++++++++----
 7 files changed, 371 insertions(+), 311 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/eba164ab/joshua-6/src/joshua/decoder/StructuredTranslation.java
----------------------------------------------------------------------
diff --git a/joshua-6/src/joshua/decoder/StructuredTranslation.java b/joshua-6/src/joshua/decoder/StructuredTranslation.java
deleted file mode 100644
index 1939ea0..0000000
--- a/joshua-6/src/joshua/decoder/StructuredTranslation.java
+++ /dev/null
@@ -1,143 +0,0 @@
-package joshua.decoder;
-
-import static java.util.Arrays.asList;
-import static java.util.Collections.emptyList;
-import static java.util.Collections.emptyMap;
-import static joshua.decoder.hypergraph.ViterbiExtractor.walk;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import joshua.decoder.ff.FeatureFunction;
-import joshua.decoder.hypergraph.HyperGraph;
-import joshua.decoder.hypergraph.ViterbiFeatureVectorWalkerFunction;
-import joshua.decoder.hypergraph.ViterbiOutputStringWalkerFunction;
-import joshua.decoder.hypergraph.WalkerFunction;
-import joshua.decoder.hypergraph.WordAlignmentExtractor;
-import joshua.decoder.segment_file.Sentence;
-
-/**
- * structuredTranslation provides a more structured access to translation
- * results than the Translation class.
- * Members of instances of this class can be used upstream.
- * <br/>
- * TODO:
- * Enable K-Best extraction.
- * 
- * @author fhieber
- */
-public class StructuredTranslation {
-  
-  private final Sentence sourceSentence;
-  private final List<FeatureFunction> featureFunctions;
-  
-  private final String translationString;
-  private final List<String> translationTokens;
-  private final float translationScore;
-  private List<List<Integer>> translationWordAlignments;
-  private Map<String,Float> translationFeatures;
-  private final float extractionTime;
-  
-  public StructuredTranslation(final Sentence sourceSentence,
-      final HyperGraph hypergraph,
-      final List<FeatureFunction> featureFunctions) {
-    
-      final long startTime = System.currentTimeMillis();
-      
-      this.sourceSentence = sourceSentence;
-      this.featureFunctions = featureFunctions;
-      this.translationString = extractViterbiString(hypergraph);
-      this.translationTokens = extractTranslationTokens();
-      this.translationScore = extractTranslationScore(hypergraph);
-      this.translationFeatures = extractViterbiFeatures(hypergraph);
-      this.translationWordAlignments = extractViterbiWordAlignment(hypergraph);
-      this.extractionTime = (System.currentTimeMillis() - startTime) / 1000.0f;
-  }
-  
-  private Map<String,Float> extractViterbiFeatures(final HyperGraph hypergraph) {
-    if (hypergraph == null) {
-      return emptyMap(); 
-    } else {
-      ViterbiFeatureVectorWalkerFunction viterbiFeatureVectorWalker = new ViterbiFeatureVectorWalkerFunction(featureFunctions, sourceSentence);
-      walk(hypergraph.goalNode, viterbiFeatureVectorWalker);
-      return new HashMap<String,Float>(viterbiFeatureVectorWalker.getFeaturesMap());
-    }
-  }
-
-  private List<List<Integer>> extractViterbiWordAlignment(final HyperGraph hypergraph) {
-    if (hypergraph == null) {
-      return emptyList();
-    } else {
-      final WordAlignmentExtractor wordAlignmentWalker = new WordAlignmentExtractor();
-      walk(hypergraph.goalNode, wordAlignmentWalker);
-      return wordAlignmentWalker.getFinalWordAlignments();
-    }
-  }
-  
-  private float extractTranslationScore(final HyperGraph hypergraph) {
-    if (hypergraph == null) {
-      return 0;
-    } else {
-      return hypergraph.goalNode.getScore();
-    }
-  }
-  
-  private String extractViterbiString(final HyperGraph hypergraph) {
-    if (hypergraph == null) {
-      return sourceSentence.source();
-    } else {
-      final WalkerFunction viterbiOutputStringWalker = new ViterbiOutputStringWalkerFunction();
-      walk(hypergraph.goalNode, viterbiOutputStringWalker);
-      return viterbiOutputStringWalker.toString();
-    }
-  }
-  
-  private List<String> extractTranslationTokens() {
-    if (translationString.isEmpty()) {
-      return emptyList();
-    } else {
-      return asList(translationString.split("\\s+"));
-    }
-  }
-  
-  // Getters to use upstream
-  
-  public Sentence getSourceSentence() {
-    return sourceSentence;
-  }
-
-  public int getSentenceId() {
-    return sourceSentence.id();
-  }
-
-  public String getTranslationString() {
-    return translationString;
-  }
-
-  public List<String> getTranslationTokens() {
-    return translationTokens;
-  }
-
-  public float getTranslationScore() {
-    return translationScore;
-  }
-
-  /**
-   * Returns a list of target to source alignments.
-   */
-  public List<List<Integer>> getTranslationWordAlignments() {
-    return translationWordAlignments;
-  }
-  
-  public Map<String,Float> getTranslationFeatures() {
-    return translationFeatures;
-  }
-  
-  /**
-   * Time taken to build output information from the hypergraph.
-   */
-  public Float getExtractionTime() {
-    return extractionTime;
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/eba164ab/joshua-6/src/joshua/decoder/hypergraph/ViterbiFeatureVectorWalkerFunction.java
----------------------------------------------------------------------
diff --git a/joshua-6/src/joshua/decoder/hypergraph/ViterbiFeatureVectorWalkerFunction.java b/joshua-6/src/joshua/decoder/hypergraph/ViterbiFeatureVectorWalkerFunction.java
deleted file mode 100644
index 5af6c4d..0000000
--- a/joshua-6/src/joshua/decoder/hypergraph/ViterbiFeatureVectorWalkerFunction.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package joshua.decoder.hypergraph;
-
-import static joshua.decoder.chart_parser.ComputeNodeResult.computeTransitionFeatures;
-
-import java.util.List;
-import java.util.Map;
-
-import joshua.decoder.ff.FeatureFunction;
-import joshua.decoder.ff.FeatureVector;
-import joshua.decoder.segment_file.Sentence;
-
-public class ViterbiFeatureVectorWalkerFunction implements WalkerFunction {
-  
-  private final FeatureVector features;
-  private final List<FeatureFunction> featureFunctions;
-  private final Sentence sourceSentence;
-  
-  public ViterbiFeatureVectorWalkerFunction(
-      final List<FeatureFunction> featureFunctions,
-      final Sentence sourceSentence) {
-    this.features = new FeatureVector();
-    this.featureFunctions = featureFunctions;
-    this.sourceSentence = sourceSentence;
-  }
-
-  /**
-   * Recompute feature values for each Viterbi edge and add to features.
-   */
-  @Override
-  public void apply(HGNode node) {
-    final FeatureVector edgeFeatures = computeTransitionFeatures(
-        featureFunctions, node.bestHyperedge, node.i, node.j, sourceSentence);
-    features.add(edgeFeatures);
-  }
-  
-  public FeatureVector getFeatures() {
-    return features;
-  }
-  
-  public Map<String,Float> getFeaturesMap() {
-    return features.getMap();
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/eba164ab/joshua-6/src/joshua/decoder/hypergraph/ViterbiOutputStringWalkerFunction.java
----------------------------------------------------------------------
diff --git a/joshua-6/src/joshua/decoder/hypergraph/ViterbiOutputStringWalkerFunction.java b/joshua-6/src/joshua/decoder/hypergraph/ViterbiOutputStringWalkerFunction.java
deleted file mode 100644
index 0c84375..0000000
--- a/joshua-6/src/joshua/decoder/hypergraph/ViterbiOutputStringWalkerFunction.java
+++ /dev/null
@@ -1,96 +0,0 @@
-package joshua.decoder.hypergraph;
-
-import static java.lang.Integer.MAX_VALUE;
-import static joshua.corpus.Vocabulary.getWords;
-import static joshua.corpus.Vocabulary.nt;
-
-import java.util.Stack;
-
-import joshua.decoder.ff.tm.Rule;
-
-public class ViterbiOutputStringWalkerFunction implements WalkerFunction {
-  
-  private Stack<int[]> viterbiWords = new Stack<int[]>();
-
-  @Override
-  public void apply(HGNode node) {
-    final Rule rule = node.bestHyperedge.getRule();
-    if (rule != null) {
-      merge(rule.getEnglish());
-    }
-  }
-  
-  private boolean containsNonTerminals(final int[] ids) {
-    boolean hasNonTerminals = false;
-    for (int i = 0; i < ids.length; i++) {
-      if (nt(ids[i])) {
-        hasNonTerminals = true;
-        break;
-      }
-    }
-    return hasNonTerminals;
-  }
-  
-  /**
-   * Returns the index of the next non-terminal slot to fill.
-   * Since non-terminals in right hand sides of rules are indexed by
-   * their order on the source side, this function looks for the largest
-   * negative id in ids and returns its index. 
-   */
-  private int getNextNonTerminalIndexToFill(final int[] ids) {
-    int nextIndex = 0;
-    int nextNonTerminal = -MAX_VALUE;
-    for (int i = 0; i < ids.length; i++) {
-      if (nt(ids[i]) && ids[i] > nextNonTerminal) {
-        nextIndex = i;
-        nextNonTerminal = ids[i];
-      }
-    }
-    return nextIndex;
-  }
-  
-  private int[] substituteNonTerminal(final int[] parentWords, final int[] childWords) {
-    final int ntIndex = getNextNonTerminalIndexToFill(parentWords);
-    final int[] result = new int[parentWords.length + childWords.length - 1];
-    int resultIndex = 0;
-    for (int i = 0; i < ntIndex; i++) {
-      result[resultIndex++] = parentWords[i];
-    }
-    for (int i = 0; i < childWords.length; i++) {
-      result[resultIndex++] = childWords[i];
-    }
-    for (int i = ntIndex + 1; i < parentWords.length; i++) {
-      result[resultIndex++] = parentWords[i];
-    }
-    return result;
-  }
-
-  private void merge(final int[] words) {
-    if (!containsNonTerminals(words)
-        && !viterbiWords.isEmpty()
-        && containsNonTerminals(viterbiWords.peek())) {
-      merge(substituteNonTerminal(viterbiWords.pop(), words));
-    } else {
-      viterbiWords.add(words);
-    }
-  }
-  
-  @Override
-  public String toString() {
-    if (viterbiWords.isEmpty()) {
-      return "";
-    }
-    
-    if (viterbiWords.size() != 1) {
-      throw new RuntimeException(
-          String.format(
-              "Stack of ViterbiOutputStringWalker should contain only a single (last) element, but was size %d", viterbiWords.size()));
-    }
-    
-    String result = getWords(viterbiWords.peek());
-    // strip of sentence markers (<s>,</s>)
-    result = result.substring(result.indexOf(' ') + 1, result.lastIndexOf(' '));
-    return result.trim();
-  }
-  
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/eba164ab/src/joshua/decoder/StructuredTranslation.java
----------------------------------------------------------------------
diff --git a/src/joshua/decoder/StructuredTranslation.java b/src/joshua/decoder/StructuredTranslation.java
new file mode 100644
index 0000000..1939ea0
--- /dev/null
+++ b/src/joshua/decoder/StructuredTranslation.java
@@ -0,0 +1,143 @@
+package joshua.decoder;
+
+import static java.util.Arrays.asList;
+import static java.util.Collections.emptyList;
+import static java.util.Collections.emptyMap;
+import static joshua.decoder.hypergraph.ViterbiExtractor.walk;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import joshua.decoder.ff.FeatureFunction;
+import joshua.decoder.hypergraph.HyperGraph;
+import joshua.decoder.hypergraph.ViterbiFeatureVectorWalkerFunction;
+import joshua.decoder.hypergraph.ViterbiOutputStringWalkerFunction;
+import joshua.decoder.hypergraph.WalkerFunction;
+import joshua.decoder.hypergraph.WordAlignmentExtractor;
+import joshua.decoder.segment_file.Sentence;
+
+/**
+ * structuredTranslation provides a more structured access to translation
+ * results than the Translation class.
+ * Members of instances of this class can be used upstream.
+ * <br/>
+ * TODO:
+ * Enable K-Best extraction.
+ * 
+ * @author fhieber
+ */
+public class StructuredTranslation {
+  
+  private final Sentence sourceSentence;
+  private final List<FeatureFunction> featureFunctions;
+  
+  private final String translationString;
+  private final List<String> translationTokens;
+  private final float translationScore;
+  private List<List<Integer>> translationWordAlignments;
+  private Map<String,Float> translationFeatures;
+  private final float extractionTime;
+  
+  public StructuredTranslation(final Sentence sourceSentence,
+      final HyperGraph hypergraph,
+      final List<FeatureFunction> featureFunctions) {
+    
+      final long startTime = System.currentTimeMillis();
+      
+      this.sourceSentence = sourceSentence;
+      this.featureFunctions = featureFunctions;
+      this.translationString = extractViterbiString(hypergraph);
+      this.translationTokens = extractTranslationTokens();
+      this.translationScore = extractTranslationScore(hypergraph);
+      this.translationFeatures = extractViterbiFeatures(hypergraph);
+      this.translationWordAlignments = extractViterbiWordAlignment(hypergraph);
+      this.extractionTime = (System.currentTimeMillis() - startTime) / 1000.0f;
+  }
+  
+  private Map<String,Float> extractViterbiFeatures(final HyperGraph hypergraph) {
+    if (hypergraph == null) {
+      return emptyMap(); 
+    } else {
+      ViterbiFeatureVectorWalkerFunction viterbiFeatureVectorWalker = new ViterbiFeatureVectorWalkerFunction(featureFunctions, sourceSentence);
+      walk(hypergraph.goalNode, viterbiFeatureVectorWalker);
+      return new HashMap<String,Float>(viterbiFeatureVectorWalker.getFeaturesMap());
+    }
+  }
+
+  private List<List<Integer>> extractViterbiWordAlignment(final HyperGraph hypergraph) {
+    if (hypergraph == null) {
+      return emptyList();
+    } else {
+      final WordAlignmentExtractor wordAlignmentWalker = new WordAlignmentExtractor();
+      walk(hypergraph.goalNode, wordAlignmentWalker);
+      return wordAlignmentWalker.getFinalWordAlignments();
+    }
+  }
+  
+  private float extractTranslationScore(final HyperGraph hypergraph) {
+    if (hypergraph == null) {
+      return 0;
+    } else {
+      return hypergraph.goalNode.getScore();
+    }
+  }
+  
+  private String extractViterbiString(final HyperGraph hypergraph) {
+    if (hypergraph == null) {
+      return sourceSentence.source();
+    } else {
+      final WalkerFunction viterbiOutputStringWalker = new ViterbiOutputStringWalkerFunction();
+      walk(hypergraph.goalNode, viterbiOutputStringWalker);
+      return viterbiOutputStringWalker.toString();
+    }
+  }
+  
+  private List<String> extractTranslationTokens() {
+    if (translationString.isEmpty()) {
+      return emptyList();
+    } else {
+      return asList(translationString.split("\\s+"));
+    }
+  }
+  
+  // Getters to use upstream
+  
+  public Sentence getSourceSentence() {
+    return sourceSentence;
+  }
+
+  public int getSentenceId() {
+    return sourceSentence.id();
+  }
+
+  public String getTranslationString() {
+    return translationString;
+  }
+
+  public List<String> getTranslationTokens() {
+    return translationTokens;
+  }
+
+  public float getTranslationScore() {
+    return translationScore;
+  }
+
+  /**
+   * Returns a list of target to source alignments.
+   */
+  public List<List<Integer>> getTranslationWordAlignments() {
+    return translationWordAlignments;
+  }
+  
+  public Map<String,Float> getTranslationFeatures() {
+    return translationFeatures;
+  }
+  
+  /**
+   * Time taken to build output information from the hypergraph.
+   */
+  public Float getExtractionTime() {
+    return extractionTime;
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/eba164ab/src/joshua/decoder/hypergraph/ViterbiFeatureVectorWalkerFunction.java
----------------------------------------------------------------------
diff --git a/src/joshua/decoder/hypergraph/ViterbiFeatureVectorWalkerFunction.java b/src/joshua/decoder/hypergraph/ViterbiFeatureVectorWalkerFunction.java
new file mode 100644
index 0000000..5af6c4d
--- /dev/null
+++ b/src/joshua/decoder/hypergraph/ViterbiFeatureVectorWalkerFunction.java
@@ -0,0 +1,44 @@
+package joshua.decoder.hypergraph;
+
+import static joshua.decoder.chart_parser.ComputeNodeResult.computeTransitionFeatures;
+
+import java.util.List;
+import java.util.Map;
+
+import joshua.decoder.ff.FeatureFunction;
+import joshua.decoder.ff.FeatureVector;
+import joshua.decoder.segment_file.Sentence;
+
+public class ViterbiFeatureVectorWalkerFunction implements WalkerFunction {
+  
+  private final FeatureVector features;
+  private final List<FeatureFunction> featureFunctions;
+  private final Sentence sourceSentence;
+  
+  public ViterbiFeatureVectorWalkerFunction(
+      final List<FeatureFunction> featureFunctions,
+      final Sentence sourceSentence) {
+    this.features = new FeatureVector();
+    this.featureFunctions = featureFunctions;
+    this.sourceSentence = sourceSentence;
+  }
+
+  /**
+   * Recompute feature values for each Viterbi edge and add to features.
+   */
+  @Override
+  public void apply(HGNode node) {
+    final FeatureVector edgeFeatures = computeTransitionFeatures(
+        featureFunctions, node.bestHyperedge, node.i, node.j, sourceSentence);
+    features.add(edgeFeatures);
+  }
+  
+  public FeatureVector getFeatures() {
+    return features;
+  }
+  
+  public Map<String,Float> getFeaturesMap() {
+    return features.getMap();
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/eba164ab/src/joshua/decoder/hypergraph/ViterbiOutputStringWalkerFunction.java
----------------------------------------------------------------------
diff --git a/src/joshua/decoder/hypergraph/ViterbiOutputStringWalkerFunction.java b/src/joshua/decoder/hypergraph/ViterbiOutputStringWalkerFunction.java
new file mode 100644
index 0000000..0c84375
--- /dev/null
+++ b/src/joshua/decoder/hypergraph/ViterbiOutputStringWalkerFunction.java
@@ -0,0 +1,96 @@
+package joshua.decoder.hypergraph;
+
+import static java.lang.Integer.MAX_VALUE;
+import static joshua.corpus.Vocabulary.getWords;
+import static joshua.corpus.Vocabulary.nt;
+
+import java.util.Stack;
+
+import joshua.decoder.ff.tm.Rule;
+
+public class ViterbiOutputStringWalkerFunction implements WalkerFunction {
+  
+  private Stack<int[]> viterbiWords = new Stack<int[]>();
+
+  @Override
+  public void apply(HGNode node) {
+    final Rule rule = node.bestHyperedge.getRule();
+    if (rule != null) {
+      merge(rule.getEnglish());
+    }
+  }
+  
+  private boolean containsNonTerminals(final int[] ids) {
+    boolean hasNonTerminals = false;
+    for (int i = 0; i < ids.length; i++) {
+      if (nt(ids[i])) {
+        hasNonTerminals = true;
+        break;
+      }
+    }
+    return hasNonTerminals;
+  }
+  
+  /**
+   * Returns the index of the next non-terminal slot to fill.
+   * Since non-terminals in right hand sides of rules are indexed by
+   * their order on the source side, this function looks for the largest
+   * negative id in ids and returns its index. 
+   */
+  private int getNextNonTerminalIndexToFill(final int[] ids) {
+    int nextIndex = 0;
+    int nextNonTerminal = -MAX_VALUE;
+    for (int i = 0; i < ids.length; i++) {
+      if (nt(ids[i]) && ids[i] > nextNonTerminal) {
+        nextIndex = i;
+        nextNonTerminal = ids[i];
+      }
+    }
+    return nextIndex;
+  }
+  
+  private int[] substituteNonTerminal(final int[] parentWords, final int[] childWords) {
+    final int ntIndex = getNextNonTerminalIndexToFill(parentWords);
+    final int[] result = new int[parentWords.length + childWords.length - 1];
+    int resultIndex = 0;
+    for (int i = 0; i < ntIndex; i++) {
+      result[resultIndex++] = parentWords[i];
+    }
+    for (int i = 0; i < childWords.length; i++) {
+      result[resultIndex++] = childWords[i];
+    }
+    for (int i = ntIndex + 1; i < parentWords.length; i++) {
+      result[resultIndex++] = parentWords[i];
+    }
+    return result;
+  }
+
+  private void merge(final int[] words) {
+    if (!containsNonTerminals(words)
+        && !viterbiWords.isEmpty()
+        && containsNonTerminals(viterbiWords.peek())) {
+      merge(substituteNonTerminal(viterbiWords.pop(), words));
+    } else {
+      viterbiWords.add(words);
+    }
+  }
+  
+  @Override
+  public String toString() {
+    if (viterbiWords.isEmpty()) {
+      return "";
+    }
+    
+    if (viterbiWords.size() != 1) {
+      throw new RuntimeException(
+          String.format(
+              "Stack of ViterbiOutputStringWalker should contain only a single (last) element, but was size %d", viterbiWords.size()));
+    }
+    
+    String result = getWords(viterbiWords.peek());
+    // strip of sentence markers (<s>,</s>)
+    result = result.substring(result.indexOf(' ') + 1, result.lastIndexOf(' '));
+    return result.trim();
+  }
+  
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/eba164ab/src/joshua/decoder/hypergraph/WordAlignmentExtractor.java
----------------------------------------------------------------------
diff --git a/src/joshua/decoder/hypergraph/WordAlignmentExtractor.java b/src/joshua/decoder/hypergraph/WordAlignmentExtractor.java
index 8e0c2a6..2dfbcb2 100644
--- a/src/joshua/decoder/hypergraph/WordAlignmentExtractor.java
+++ b/src/joshua/decoder/hypergraph/WordAlignmentExtractor.java
@@ -1,5 +1,8 @@
 package joshua.decoder.hypergraph;
 
+import static java.util.Collections.emptyList;
+
+import java.util.List;
 import java.util.Stack;
 
 import joshua.decoder.ff.tm.Rule;
@@ -7,47 +10,104 @@ import joshua.decoder.hypergraph.KBestExtractor.DerivationState;
 import joshua.decoder.hypergraph.KBestExtractor.DerivationVisitor;
 
 /**
- * this class implements Joshua's Derivation Visitor interface.
- * before() and after() methods are called at each visit of a rule in 
- * the hypergraph.
- * We place WordAlignmentStates on a stack and merge/substitute them into each
- * other if possible. At the end, the remaining last state on the stack 
- * should be complete (no NonTerminals to substitute anymore).
+ * This class enables extraction of word-level alignments from hypotheses.
+ * It implements two interfaces, WalkerFunction and DerivationVisitor.
+ * The former is for using the Viterbi walk function, the latter is for
+ * k-best extraction.
+ * Intermediate WordAlignmentStates are placed on a stack and/or merged down
+ * if possible.
+ * @author fhieber
  */
-public class WordAlignmentExtractor implements DerivationVisitor {
-
-  private Stack<WordAlignmentState> stack;
-
-  public WordAlignmentExtractor() {
-    stack = new Stack<WordAlignmentState>();
-  }
+public class WordAlignmentExtractor implements WalkerFunction, DerivationVisitor {
+  
+  private final Stack<WordAlignmentState> stack = new Stack<WordAlignmentState>();
 
-  void merge(WordAlignmentState astate) {
+  /**
+   * Merges a state with the top of the stack if applicable or places it on top of the stack.
+   */
+  private void merge(final WordAlignmentState state) {
     // if alignment state has no NTs left AND stack is not empty
-    // AND parent object on stack still needs something to substitute
-    if (astate.isComplete() && stack.size() > 0 && !stack.peek().isComplete()) {
-      WordAlignmentState parentState = stack.pop();
-      parentState.substituteIn(astate);
+    // and parent state on stack still needs something to substitute
+    if (!stack.isEmpty()
+        && state.isComplete()
+        && !stack.peek().isComplete()) {
+      final WordAlignmentState parentState = stack.pop();
+      parentState.substituteIn(state);
       merge(parentState);
     } else {
-      stack.add(astate);
+      stack.add(state);
     }
   }
-
-  @Override
-  public void before(DerivationState state, int level) {
-    Rule rule = state.edge.getRule();
+  
+  /**
+   * Common entry point for WalkerFunction and DerivationVisitor.
+   */
+  private void extract(final Rule rule, final int spanStart) {
     if (rule != null) {
-      merge(new WordAlignmentState(rule, state.parentNode.i));
+      merge (new WordAlignmentState(rule, spanStart));
     }
   }
-
+  
+  /**
+   * entry for Viterbi walker. Calls word alignment extraction
+   * for best hyperedge from given node.
+   */
+  @Override
+  public void apply(HGNode node) {
+    extract(node.bestHyperedge.getRule(), node.i);
+  }
+  
+  /**
+   * Visiting a node during k-best extraction is the same as
+   * apply() for Viterbi extraction but using the edge from
+   * the Derivation state.
+   */
   @Override
-  public void after(DerivationState state, int level) {
+  public void before(final DerivationState state, final int level) {
+    extract(state.edge.getRule(), state.parentNode.i);
   }
 
+  /**
+   * Nothing to do after visiting a node.
+   */
+  @Override
+  public void after(final DerivationState state, final int level) {}
+  
+  /**
+   * Final word alignment without sentence markers
+   * or empty list if stack is empty.
+   */
+  public List<List<Integer>> getFinalWordAlignments() {
+    if (stack.isEmpty()) {
+      return emptyList();
+    }
+    
+    if (stack.size() != 1) {
+      throw new RuntimeException(
+          String.format(
+              "Stack of WordAlignmentExtractor should contain only a single (last) element, but was size %d", stack.size()));
+    }
+    
+    return stack.peek().toFinalList();
+  }
+  
+  /**
+   * Returns a String representation of the (final) word alignment
+   * state on top of the stack.
+   * Empty string for empty stack.
+   */
+  @Override
   public String toString() {
-    WordAlignmentState finalState = stack.pop();
-    return finalState.toFinalString();
+    if (stack.isEmpty()) {
+      return "";
+    }
+    
+    if (stack.size() != 1) {
+      throw new RuntimeException(
+          String.format(
+              "Stack of WordAlignmentExtractor should contain only a single (last) element, but was size %d", stack.size()));
+    }
+    
+    return stack.peek().toFinalString();
   }
 }


[2/9] incubator-joshua git commit: Remove redundant feature and alignment lookups

Posted by mj...@apache.org.
Remove redundant feature and alignment lookups


Project: http://git-wip-us.apache.org/repos/asf/incubator-joshua/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-joshua/commit/b9b512e9
Tree: http://git-wip-us.apache.org/repos/asf/incubator-joshua/tree/b9b512e9
Diff: http://git-wip-us.apache.org/repos/asf/incubator-joshua/diff/b9b512e9

Branch: refs/heads/master
Commit: b9b512e9f88e16b4d99c24b7da7fd78cc7581636
Parents: eba164a
Author: Kellen Sunderland <ke...@amazon.com>
Authored: Tue Dec 1 16:20:26 2015 +0100
Committer: Kellen Sunderland <ke...@amazon.com>
Committed: Mon Apr 25 19:44:40 2016 -0700

----------------------------------------------------------------------
 .../decoder/ff/tm/packed/PackedGrammar.java     | 33 +++++---------------
 1 file changed, 7 insertions(+), 26 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/b9b512e9/src/joshua/decoder/ff/tm/packed/PackedGrammar.java
----------------------------------------------------------------------
diff --git a/src/joshua/decoder/ff/tm/packed/PackedGrammar.java b/src/joshua/decoder/ff/tm/packed/PackedGrammar.java
index 3190a97..fb38cf0 100644
--- a/src/joshua/decoder/ff/tm/packed/PackedGrammar.java
+++ b/src/joshua/decoder/ff/tm/packed/PackedGrammar.java
@@ -343,10 +343,10 @@ public class PackedGrammar extends AbstractGrammar {
 
     private final int[] targetLookup;
     private int featureSize;
-    private int[] featureLookup;
     private float[] estimated;
     private float[] precomputable;
-    private int[] alignmentLookup;
+
+    private final static int BUFFER_HEADER_POSITION = 8;
 
     /**
      * Provides a cache of packedTrie nodes to be used in getTrie.
@@ -372,7 +372,6 @@ public class PackedGrammar extends AbstractGrammar {
 
       if (alignment_file.exists()) {
         alignments = associateMemoryMappedFile(alignment_file);
-        alignmentLookup = parseLookups(alignments);
       } else {
         alignments = null;
       }
@@ -384,35 +383,17 @@ public class PackedGrammar extends AbstractGrammar {
      * Helper function to help create all the structures which describe features
      * in the Slice. Only called during object construction.
      */
-    private void initializeFeatureStructures(){
+    private void initializeFeatureStructures() {
       int num_blocks = features.getInt(0);
       estimated = new float[num_blocks];
       precomputable = new float[num_blocks];
       Arrays.fill(estimated, Float.NEGATIVE_INFINITY);
       Arrays.fill(precomputable, Float.NEGATIVE_INFINITY);
-      featureLookup = parseLookups(features);
       featureSize = features.getInt(4);
     }
 
-    // TOOD: (kellens) see if we can remove these lookups as they're addressed
-    // predictably into already present data structures. Are they redundant?
-    /**
-     * Build lookup arrays for various buffers (features / alignments) Typically
-     * this is copying out some relevant information from a larger byte array
-     *
-     * @param buffer
-     *          the buffer parsed to find sub-elements
-     * @return an int array which can easily be accessed to find lookup values.
-     */
-    private int[] parseLookups(ByteBuffer buffer) {
-      int numBlocks = buffer.getInt(0);
-      int[] result = new int[numBlocks];
-      int headerPosition = 8;
-      for (int i = 0; i < numBlocks; i++) {
-        result[i] = buffer.getInt(headerPosition);
-        headerPosition += 4;
-      }
-      return result;
+    private int getIntFromByteBuffer(int position, ByteBuffer buffer) {
+      return buffer.getInt(BUFFER_HEADER_POSITION + (4 * position));
     }
 
     private int[] fullyLoadFileToArray(File file) throws IOException {
@@ -494,7 +475,7 @@ public class PackedGrammar extends AbstractGrammar {
      */
 
     private final FeatureVector loadFeatureVector(int block_id) {
-      int featurePosition = featureLookup[block_id];
+      int featurePosition = getIntFromByteBuffer(block_id, features);
       final int numFeatures = encoding.readId(features, featurePosition);
 
       featurePosition += EncoderConfiguration.ID_SIZE;
@@ -530,7 +511,7 @@ public class PackedGrammar extends AbstractGrammar {
     private synchronized final byte[] getAlignmentArray(int block_id) {
       if (alignments == null)
         throw new RuntimeException("No alignments available.");
-      int alignment_position = alignmentLookup[block_id];
+      int alignment_position = getIntFromByteBuffer(block_id, alignments);
       int num_points = (int) alignments.get(alignment_position);
       byte[] alignment = new byte[num_points * 2];
 


[3/9] incubator-joshua git commit: Properly clean static decoder variables on cleanUp(). Allows multiple unit tests with joshua instances. Also some cleanup and proper testing of FormatUtils functions.

Posted by mj...@apache.org.
Properly clean static decoder variables on cleanUp(). Allows multiple unit tests with joshua instances. Also some cleanup and proper testing of FormatUtils functions.


Project: http://git-wip-us.apache.org/repos/asf/incubator-joshua/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-joshua/commit/b2ec94fb
Tree: http://git-wip-us.apache.org/repos/asf/incubator-joshua/tree/b2ec94fb
Diff: http://git-wip-us.apache.org/repos/asf/incubator-joshua/diff/b2ec94fb

Branch: refs/heads/master
Commit: b2ec94fbcc6c0207f9830f32e4d8747c5be02c30
Parents: b9b512e
Author: Felix Hieber <fh...@amazon.com>
Authored: Thu Nov 19 19:32:59 2015 +0530
Committer: Kellen Sunderland <ke...@amazon.com>
Committed: Mon Apr 25 19:46:32 2016 -0700

----------------------------------------------------------------------
 src/joshua/corpus/Vocabulary.java               | 10 +++-
 src/joshua/decoder/Decoder.java                 | 15 ++++-
 src/joshua/decoder/DecoderThread.java           |  2 +-
 src/joshua/decoder/ff/lm/LanguageModelFF.java   | 22 ++++---
 .../ff/lm/StateMinimizingLanguageModel.java     |  2 -
 src/joshua/decoder/segment_file/Sentence.java   | 19 ++++++-
 src/joshua/util/FormatUtils.java                | 32 +++++++++++
 tst/joshua/util/FormatUtilsTest.java            | 60 ++++++++++++++++++++
 8 files changed, 145 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/b2ec94fb/src/joshua/corpus/Vocabulary.java
----------------------------------------------------------------------
diff --git a/src/joshua/corpus/Vocabulary.java b/src/joshua/corpus/Vocabulary.java
index e598203..1792219 100644
--- a/src/joshua/corpus/Vocabulary.java
+++ b/src/joshua/corpus/Vocabulary.java
@@ -46,7 +46,7 @@ import joshua.util.FormatUtils;
 
 public class Vocabulary {
 
-  private final static ArrayList<NGramLanguageModel> lms = new ArrayList<NGramLanguageModel>();
+  private final static ArrayList<NGramLanguageModel> LMs = new ArrayList<NGramLanguageModel>();
 
   private static List<String> idToString;
   private static Map<String, Integer> stringToId;
@@ -68,7 +68,7 @@ public class Vocabulary {
   public static boolean registerLanguageModel(NGramLanguageModel lm) {
     synchronized (lock) {
       // Store the language model.
-      lms.add(lm);
+      LMs.add(lm);
       // Notify it of all the existing words.
       boolean collision = false;
       for (int i = idToString.size() - 1; i > 0; i--)
@@ -141,7 +141,7 @@ public class Vocabulary {
         // register this (token,id) mapping with each language
         // model, so that they can map it to their own private
         // vocabularies
-        for (NGramLanguageModel lm : lms)
+        for (NGramLanguageModel lm : LMs)
           lm.registerWord(token, Math.abs(id));
 
         idToString.add(token);
@@ -269,4 +269,8 @@ public class Vocabulary {
     }
   }
   
+  public static void unregisterLanguageModels() {
+    LMs.clear();
+  }
+  
 }

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/b2ec94fb/src/joshua/decoder/Decoder.java
----------------------------------------------------------------------
diff --git a/src/joshua/decoder/Decoder.java b/src/joshua/decoder/Decoder.java
index 739ee41..1b12dda 100644
--- a/src/joshua/decoder/Decoder.java
+++ b/src/joshua/decoder/Decoder.java
@@ -41,6 +41,8 @@ import joshua.decoder.JoshuaConfiguration.INPUT_TYPE;
 import joshua.decoder.JoshuaConfiguration.SERVER_TYPE;
 import joshua.decoder.ff.FeatureFunction;
 import joshua.decoder.ff.PhraseModel;
+import joshua.decoder.ff.StatefulFF;
+import joshua.decoder.ff.lm.LanguageModelFF;
 import joshua.decoder.ff.tm.Grammar;
 import joshua.decoder.ff.tm.Rule;
 import joshua.decoder.ff.tm.Trie;
@@ -514,15 +516,26 @@ public class Decoder {
     return null;
   }
 
+  /**
+   * Clean shutdown of Decoder, resetting all
+   * static variables, such that any other instance of Decoder
+   * afterwards gets a fresh start.
+   */
   public void cleanUp() {
+    // shut down DecoderThreads
     for (DecoderThread thread : threadPool) {
       try {
         thread.join();
       } catch (InterruptedException e) {
-        // TODO Auto-generated catch block
         e.printStackTrace();
       }
     }
+    // clear/reset static variables
+    DENSE_FEATURE_NAMES.clear();
+    Vocabulary.clear();
+    Vocabulary.unregisterLanguageModels();
+    LanguageModelFF.resetLmIndex();
+    StatefulFF.resetGlobalStateIndex();
   }
 
   public static void writeConfigFile(double[] newWeights, String template, String outputFile,

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/b2ec94fb/src/joshua/decoder/DecoderThread.java
----------------------------------------------------------------------
diff --git a/src/joshua/decoder/DecoderThread.java b/src/joshua/decoder/DecoderThread.java
index 6bc507f..4e2a15c 100644
--- a/src/joshua/decoder/DecoderThread.java
+++ b/src/joshua/decoder/DecoderThread.java
@@ -146,7 +146,7 @@ public class DecoderThread extends Thread {
 
     float seconds = (System.currentTimeMillis() - startTime) / 1000.0f;
     Decoder.LOG(1, String.format("Input %d: Translation took %.3f seconds", sentence.id(), seconds));
-    Decoder.LOG(1, String.format("Memory used after sentence %d is %.1f MB", sentence.id(), (Runtime
+    Decoder.LOG(1, String.format("Input %d: Memory used is %.1f MB", sentence.id(), (Runtime
         .getRuntime().totalMemory() - Runtime.getRuntime().freeMemory()) / 1000000.0));
 
     /* Return the translation unless we're doing synchronous parsing. */

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/b2ec94fb/src/joshua/decoder/ff/lm/LanguageModelFF.java
----------------------------------------------------------------------
diff --git a/src/joshua/decoder/ff/lm/LanguageModelFF.java b/src/joshua/decoder/ff/lm/LanguageModelFF.java
index 18c149d..38f1a74 100644
--- a/src/joshua/decoder/ff/lm/LanguageModelFF.java
+++ b/src/joshua/decoder/ff/lm/LanguageModelFF.java
@@ -54,9 +54,8 @@ import joshua.decoder.segment_file.Sentence;
  */
 public class LanguageModelFF extends StatefulFF {
 
-  private static int LM_INDEX = 0;
-  public static int START_SYM_ID;
-  public static int STOP_SYM_ID;
+  public static int LM_INDEX = 0;
+  private int startSymbolId;
 
   /**
    * N-gram language model. We assume the language model is in ARPA format for equivalent state:
@@ -164,7 +163,7 @@ public class LanguageModelFF extends StatefulFF {
    * @param type
    * @param path
    */
-  public void initializeLM() {
+  protected void initializeLM() {
     if (type.equals("kenlm")) {
       this.languageModel = new KenLM(ngramOrder, path);
     
@@ -180,8 +179,7 @@ public class LanguageModelFF extends StatefulFF {
     Vocabulary.registerLanguageModel(this.languageModel);
     Vocabulary.id(config.default_non_terminal);
     
-    LanguageModelFF.START_SYM_ID = Vocabulary.id(Vocabulary.START_SYM);
-    LanguageModelFF.STOP_SYM_ID = Vocabulary.id(Vocabulary.STOP_SYM);
+    startSymbolId = Vocabulary.id(Vocabulary.START_SYM);
   }
 
   public NGramLanguageModel getLM() {
@@ -310,7 +308,7 @@ public class LanguageModelFF extends StatefulFF {
     int[] enWords = rule.getEnglish();
 
     List<Integer> words = new ArrayList<Integer>();
-    boolean skipStart = (enWords[0] == START_SYM_ID);
+    boolean skipStart = (enWords[0] == startSymbolId);
 
     /*
      * Move through the words, accumulating language model costs each time we have an n-gram (n >=
@@ -349,7 +347,7 @@ public class LanguageModelFF extends StatefulFF {
 
       boolean considerIncompleteNgrams = true;
       boolean skipStart = true;
-      if (words.get(0) != START_SYM_ID) {
+      if (words.get(0) != startSymbolId) {
         skipStart = false;
       }
       estimate += scoreChunkLogP(words, considerIncompleteNgrams, skipStart);
@@ -507,4 +505,12 @@ public class LanguageModelFF extends StatefulFF {
 
     return score;
   }
+  
+  /**
+   * Public method to set LM_INDEX back to 0.
+   * Required if multiple instances of the JoshuaDecoder live in the same JVM.
+   */
+  public static void resetLmIndex() {
+    LM_INDEX = 0;
+  }
 }

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/b2ec94fb/src/joshua/decoder/ff/lm/StateMinimizingLanguageModel.java
----------------------------------------------------------------------
diff --git a/src/joshua/decoder/ff/lm/StateMinimizingLanguageModel.java b/src/joshua/decoder/ff/lm/StateMinimizingLanguageModel.java
index 8f2b8a3..5e406de 100644
--- a/src/joshua/decoder/ff/lm/StateMinimizingLanguageModel.java
+++ b/src/joshua/decoder/ff/lm/StateMinimizingLanguageModel.java
@@ -80,8 +80,6 @@ public class StateMinimizingLanguageModel extends LanguageModelFF {
     Vocabulary.registerLanguageModel(this.languageModel);
     Vocabulary.id(config.default_non_terminal);
     
-    LanguageModelFF.START_SYM_ID = Vocabulary.id(Vocabulary.START_SYM);
-    LanguageModelFF.STOP_SYM_ID = Vocabulary.id(Vocabulary.STOP_SYM);
   }
   
   /**

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/b2ec94fb/src/joshua/decoder/segment_file/Sentence.java
----------------------------------------------------------------------
diff --git a/src/joshua/decoder/segment_file/Sentence.java b/src/joshua/decoder/segment_file/Sentence.java
index b51d509..970b387 100644
--- a/src/joshua/decoder/segment_file/Sentence.java
+++ b/src/joshua/decoder/segment_file/Sentence.java
@@ -18,6 +18,9 @@
  */
 package joshua.decoder.segment_file;
 
+import static joshua.util.FormatUtils.addSentenceMarkers;
+import static joshua.util.FormatUtils.escapeSpecialSymbols;
+
 import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.Iterator;
@@ -56,7 +59,10 @@ public class Sentence {
    * alignment or forced decoding.
    */
   protected String source = null;
+  protected String fullSource = null;
+  
   protected String target = null;
+  protected String fullTarget = null;
   protected String[] references = null;
 
   /* Lattice representation of the source sentence. */
@@ -106,6 +112,9 @@ public class Sentence {
       }
       this.id = id;
     }
+    
+    // Mask strings that cause problems for the decoder
+    source = escapeSpecialSymbols(source);
   
     // Only trim strings
     if (joshuaConfiguration.lattice_decoding && ! source.startsWith("((("))
@@ -311,7 +320,10 @@ public class Sentence {
    * @return String The input sentence with start and stop symbols
    */
   public String fullSource() {
-    return String.format("%s %s %s", Vocabulary.START_SYM , source(), Vocabulary.STOP_SYM); 
+    if (fullSource == null) {
+      fullSource = addSentenceMarkers(source());
+    }
+    return fullSource;  
   }
 
   /**
@@ -329,7 +341,10 @@ public class Sentence {
   }
 
   public String fullTarget() {
-    return String.format("<s> %s </s>", target());
+    if (fullTarget == null) {
+      fullTarget = addSentenceMarkers(target());
+    }
+    return fullTarget; 
   }
 
   public String source(int i, int j) {

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/b2ec94fb/src/joshua/util/FormatUtils.java
----------------------------------------------------------------------
diff --git a/src/joshua/util/FormatUtils.java b/src/joshua/util/FormatUtils.java
index c196328..67b2bf3 100644
--- a/src/joshua/util/FormatUtils.java
+++ b/src/joshua/util/FormatUtils.java
@@ -22,6 +22,8 @@ import java.io.PrintStream;
 import java.io.UnsupportedEncodingException;
 import java.util.regex.Pattern;
 
+import joshua.corpus.Vocabulary;
+
 /**
  * Utility class for format issues.
  * 
@@ -94,8 +96,38 @@ public class FormatUtils {
   }
 
   public static String markup(String nt, int index) {
+    if (isNonterminal(nt)) {
+      return markup(cleanNonTerminal(nt), index);
+    }
     return "[" + nt + INDEX_SEPARATOR + index + "]";
   }
+  
+  public static String escapeSpecialSymbols(String s) {
+    return s.replaceAll("\\[",  "-lsb-")
+            .replaceAll("\\]",  "-rsb-")
+            .replaceAll("\\|",  "-pipe-");
+  }
+  
+  public static String unescapeSpecialSymbols(String s) {
+    return s.replaceAll("-lsb-", "[")
+            .replaceAll("-rsb-", "]")
+            .replaceAll("-pipe-", "|");
+  }
+  
+  /**
+   * wrap sentence with sentence start/stop markers 
+   * as defined by Vocabulary; separated by a single whitespace.
+   */
+  public static String addSentenceMarkers(String s) {
+    return Vocabulary.START_SYM + " " + s + " " + Vocabulary.STOP_SYM;
+  }
+  
+  /**
+   * strip sentence markers (and whitespaces) from string
+   */
+  public static String removeSentenceMarkers(String s) {
+    return s.replaceAll("<s> ", "").replace(" </s>", "");
+  }
 
   /**
    * Returns true if the String parameter represents a valid number.

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/b2ec94fb/tst/joshua/util/FormatUtilsTest.java
----------------------------------------------------------------------
diff --git a/tst/joshua/util/FormatUtilsTest.java b/tst/joshua/util/FormatUtilsTest.java
new file mode 100644
index 0000000..da406cb
--- /dev/null
+++ b/tst/joshua/util/FormatUtilsTest.java
@@ -0,0 +1,60 @@
+package joshua.util;
+
+import static joshua.util.FormatUtils.cleanNonTerminal;
+import static joshua.util.FormatUtils.escapeSpecialSymbols;
+import static joshua.util.FormatUtils.isNonterminal;
+import static joshua.util.FormatUtils.markup;
+import static joshua.util.FormatUtils.stripNonTerminalIndex;
+import static joshua.util.FormatUtils.unescapeSpecialSymbols;
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+
+public class FormatUtilsTest {
+  
+  @Test
+  public void givenTokens_whenIsNonTerminal_thenTokensCorrectlyClassified() {
+    assertTrue(isNonterminal("[X]"));
+    assertTrue(isNonterminal("[X,1]"));
+    assertFalse(isNonterminal("[]"));
+    assertFalse(isNonterminal("[X)"));
+  }
+  
+  @Test
+  public void givenTokens_whenCleanNonTerminal_thenCorrectlyCleaned() {
+    assertEquals(cleanNonTerminal("[GOAL]"), "GOAL");
+    assertEquals(cleanNonTerminal("[X]"), "X");
+    assertEquals(cleanNonTerminal("[X,1]"), "X");
+    assertEquals(cleanNonTerminal("bla"), "bla");
+    assertEquals(cleanNonTerminal("[bla"), "[bla");
+  }
+  
+  @Test
+  public void givenTokens_whenStripNonTerminalIndex_thenCorrectlyStripped() {
+    assertEquals(stripNonTerminalIndex("[X,1]"), "[X]");
+    assertEquals(stripNonTerminalIndex("[X,114]"), "[X]");
+    assertEquals(stripNonTerminalIndex("[X,]"), "[X]");
+    assertEquals(stripNonTerminalIndex("[X]"), "[X]");
+    assertEquals(stripNonTerminalIndex("[X"), "[[X]");
+  }
+  
+  @Test
+  public void givenTokens_whenMarkup_thenCorrectMarkup() {
+    assertEquals(markup("X"), "[X]");
+    assertEquals(markup("X", 1), "[X,1]");
+    assertEquals(markup("X", 15), "[X,15]");
+    assertEquals(markup("[X]", 1), "[X,1]");
+    assertEquals(markup("[X,1]", 4), "[X,4]");
+  }
+  
+  @Test
+  public void givenSpecialSymbols_whenEscapeSpecialSymbols_thenCorrectlyEscaped() {
+    assertEquals(escapeSpecialSymbols("[ ] | ["), "-lsb- -rsb- -pipe- -lsb-");
+  }
+  
+  @Test
+  public void givenEscapedSpecialSymbols_whenUnEscapeSpecialSymbols_thenCorrectlyUnEscaped() {
+    assertEquals(unescapeSpecialSymbols("-lsb- -rsb- -pipe- -lsb-"), "[ ] | [");
+  }
+
+}


[6/9] incubator-joshua git commit: Update existing unit tests to proper decoder/vocab cleanup. Also added two core tests to UnitTests to test phrase-based decoding and kbest extraction.

Posted by mj...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/7fdc4cd7/resources/kbest_extraction/output.gold
----------------------------------------------------------------------
diff --git a/resources/kbest_extraction/output.gold b/resources/kbest_extraction/output.gold
new file mode 100644
index 0000000..e75bb9e
--- /dev/null
+++ b/resources/kbest_extraction/output.gold
@@ -0,0 +1,3126 @@
+0 ||| A A A A A ||| lm_0=-28.045 tm_pt_0=-172.000 tm_glue_0=5.000 ||| -195.045
+0 ||| B A A A A ||| lm_0=-28.045 tm_pt_0=-173.000 tm_glue_0=5.000 ||| -196.045
+0 ||| C A A A A ||| lm_0=-28.045 tm_pt_0=-175.000 tm_glue_0=5.000 ||| -198.045
+0 ||| A B A A A ||| lm_0=-28.045 tm_pt_0=-176.000 tm_glue_0=5.000 ||| -199.045
+0 ||| B B A A A ||| lm_0=-28.045 tm_pt_0=-177.000 tm_glue_0=5.000 ||| -200.045
+0 ||| D A A A A ||| lm_0=-28.045 tm_pt_0=-177.000 tm_glue_0=5.000 ||| -200.045
+0 ||| A A A A B ||| lm_0=-28.045 tm_pt_0=-178.000 tm_glue_0=5.000 ||| -201.045
+0 ||| A A A B A ||| lm_0=-28.045 tm_pt_0=-178.000 tm_glue_0=5.000 ||| -201.045
+0 ||| A A B A A ||| lm_0=-28.045 tm_pt_0=-178.000 tm_glue_0=5.000 ||| -201.045
+0 ||| A C A A A ||| lm_0=-28.045 tm_pt_0=-178.000 tm_glue_0=5.000 ||| -201.045
+0 ||| B A A A B ||| lm_0=-28.045 tm_pt_0=-179.000 tm_glue_0=5.000 ||| -202.045
+0 ||| B A A B A ||| lm_0=-28.045 tm_pt_0=-179.000 tm_glue_0=5.000 ||| -202.045
+0 ||| B A B A A ||| lm_0=-28.045 tm_pt_0=-179.000 tm_glue_0=5.000 ||| -202.045
+0 ||| B C A A A ||| lm_0=-28.045 tm_pt_0=-179.000 tm_glue_0=5.000 ||| -202.045
+0 ||| C B A A A ||| lm_0=-28.045 tm_pt_0=-179.000 tm_glue_0=5.000 ||| -202.045
+0 ||| A A A C A ||| lm_0=-28.045 tm_pt_0=-180.000 tm_glue_0=5.000 ||| -203.045
+0 ||| C A A A B ||| lm_0=-28.045 tm_pt_0=-181.000 tm_glue_0=5.000 ||| -204.045
+0 ||| C A A B A ||| lm_0=-28.045 tm_pt_0=-181.000 tm_glue_0=5.000 ||| -204.045
+0 ||| B A A C A ||| lm_0=-28.045 tm_pt_0=-181.000 tm_glue_0=5.000 ||| -204.045
+0 ||| C A B A A ||| lm_0=-28.045 tm_pt_0=-181.000 tm_glue_0=5.000 ||| -204.045
+0 ||| E A A A A ||| lm_0=-28.045 tm_pt_0=-181.000 tm_glue_0=5.000 ||| -204.045
+0 ||| C C A A A ||| lm_0=-28.045 tm_pt_0=-181.000 tm_glue_0=5.000 ||| -204.045
+0 ||| D B A A A ||| lm_0=-28.045 tm_pt_0=-181.000 tm_glue_0=5.000 ||| -204.045
+0 ||| A A A A C ||| lm_0=-28.045 tm_pt_0=-182.000 tm_glue_0=5.000 ||| -205.045
+0 ||| A B A B A ||| lm_0=-28.045 tm_pt_0=-182.000 tm_glue_0=5.000 ||| -205.045
+0 ||| A B A A B ||| lm_0=-28.045 tm_pt_0=-182.000 tm_glue_0=5.000 ||| -205.045
+0 ||| A A C A A ||| lm_0=-28.045 tm_pt_0=-182.000 tm_glue_0=5.000 ||| -205.045
+0 ||| A B B A A ||| lm_0=-28.045 tm_pt_0=-182.000 tm_glue_0=5.000 ||| -205.045
+0 ||| A D A A A ||| lm_0=-28.045 tm_pt_0=-182.000 tm_glue_0=5.000 ||| -205.045
+0 ||| B A A A C ||| lm_0=-28.045 tm_pt_0=-183.000 tm_glue_0=5.000 ||| -206.045
+0 ||| B B A A B ||| lm_0=-28.045 tm_pt_0=-183.000 tm_glue_0=5.000 ||| -206.045
+0 ||| B B A B A ||| lm_0=-28.045 tm_pt_0=-183.000 tm_glue_0=5.000 ||| -206.045
+0 ||| D A A A B ||| lm_0=-28.045 tm_pt_0=-183.000 tm_glue_0=5.000 ||| -206.045
+0 ||| B A C A A ||| lm_0=-28.045 tm_pt_0=-183.000 tm_glue_0=5.000 ||| -206.045
+0 ||| D A A B A ||| lm_0=-28.045 tm_pt_0=-183.000 tm_glue_0=5.000 ||| -206.045
+0 ||| B B B A A ||| lm_0=-28.045 tm_pt_0=-183.000 tm_glue_0=5.000 ||| -206.045
+0 ||| C A A C A ||| lm_0=-28.045 tm_pt_0=-183.000 tm_glue_0=5.000 ||| -206.045
+0 ||| D A B A A ||| lm_0=-28.045 tm_pt_0=-183.000 tm_glue_0=5.000 ||| -206.045
+0 ||| B D A A A ||| lm_0=-28.045 tm_pt_0=-183.000 tm_glue_0=5.000 ||| -206.045
+0 ||| D C A A A ||| lm_0=-28.045 tm_pt_0=-183.000 tm_glue_0=5.000 ||| -206.045
+0 ||| A A B A B ||| lm_0=-28.045 tm_pt_0=-184.000 tm_glue_0=5.000 ||| -207.045
+0 ||| A A B B A ||| lm_0=-28.045 tm_pt_0=-184.000 tm_glue_0=5.000 ||| -207.045
+0 ||| A A A B B ||| lm_0=-28.045 tm_pt_0=-184.000 tm_glue_0=5.000 ||| -207.045
+0 ||| A B A C A ||| lm_0=-28.045 tm_pt_0=-184.000 tm_glue_0=5.000 ||| -207.045
+0 ||| A C A A B ||| lm_0=-28.045 tm_pt_0=-184.000 tm_glue_0=5.000 ||| -207.045
+0 ||| A C A B A ||| lm_0=-28.045 tm_pt_0=-184.000 tm_glue_0=5.000 ||| -207.045
+0 ||| A C B A A ||| lm_0=-28.045 tm_pt_0=-184.000 tm_glue_0=5.000 ||| -207.045
+0 ||| A A D A A ||| lm_0=-28.045 tm_pt_0=-184.000 tm_glue_0=5.000 ||| -207.045
+0 ||| C A A A C ||| lm_0=-28.045 tm_pt_0=-185.000 tm_glue_0=5.000 ||| -208.045
+0 ||| B A A B B ||| lm_0=-28.045 tm_pt_0=-185.000 tm_glue_0=5.000 ||| -208.045
+0 ||| C B A B A ||| lm_0=-28.045 tm_pt_0=-185.000 tm_glue_0=5.000 ||| -208.045
+0 ||| B A B A B ||| lm_0=-28.045 tm_pt_0=-185.000 tm_glue_0=5.000 ||| -208.045
+0 ||| B C A B A ||| lm_0=-28.045 tm_pt_0=-185.000 tm_glue_0=5.000 ||| -208.045
+0 ||| B C A A B ||| lm_0=-28.045 tm_pt_0=-185.000 tm_glue_0=5.000 ||| -208.045
+0 ||| B A B B A ||| lm_0=-28.045 tm_pt_0=-185.000 tm_glue_0=5.000 ||| -208.045
+0 ||| C B A A B ||| lm_0=-28.045 tm_pt_0=-185.000 tm_glue_0=5.000 ||| -208.045
+0 ||| D A A C A ||| lm_0=-28.045 tm_pt_0=-185.000 tm_glue_0=5.000 ||| -208.045
+0 ||| C A C A A ||| lm_0=-28.045 tm_pt_0=-185.000 tm_glue_0=5.000 ||| -208.045
+0 ||| B B A C A ||| lm_0=-28.045 tm_pt_0=-185.000 tm_glue_0=5.000 ||| -208.045
+0 ||| E B A A A ||| lm_0=-28.045 tm_pt_0=-185.000 tm_glue_0=5.000 ||| -208.045
+0 ||| B C B A A ||| lm_0=-28.045 tm_pt_0=-185.000 tm_glue_0=5.000 ||| -208.045
+0 ||| C B B A A ||| lm_0=-28.045 tm_pt_0=-185.000 tm_glue_0=5.000 ||| -208.045
+0 ||| C D A A A ||| lm_0=-28.045 tm_pt_0=-185.000 tm_glue_0=5.000 ||| -208.045
+0 ||| B A D A A ||| lm_0=-28.045 tm_pt_0=-185.000 tm_glue_0=5.000 ||| -208.045
+0 ||| A B A A C ||| lm_0=-28.045 tm_pt_0=-186.000 tm_glue_0=5.000 ||| -209.045
+0 ||| A A A C B ||| lm_0=-28.045 tm_pt_0=-186.000 tm_glue_0=5.000 ||| -209.045
+0 ||| A A B C A ||| lm_0=-28.045 tm_pt_0=-186.000 tm_glue_0=5.000 ||| -209.045
+0 ||| A B C A A ||| lm_0=-28.045 tm_pt_0=-186.000 tm_glue_0=5.000 ||| -209.045
+0 ||| A C A C A ||| lm_0=-28.045 tm_pt_0=-186.000 tm_glue_0=5.000 ||| -209.045
+0 ||| A A A D A ||| lm_0=-28.045 tm_pt_0=-186.000 tm_glue_0=5.000 ||| -209.045
+0 ||| C A A B B ||| lm_0=-28.045 tm_pt_0=-187.000 tm_glue_0=5.000 ||| -210.045
+0 ||| D A A A C ||| lm_0=-28.045 tm_pt_0=-187.000 tm_glue_0=5.000 ||| -210.045
+0 ||| C A B A B ||| lm_0=-28.045 tm_pt_0=-187.000 tm_glue_0=5.000 ||| -210.045
+0 ||| B A A C B ||| lm_0=-28.045 tm_pt_0=-187.000 tm_glue_0=5.000 ||| -210.045
+0 ||| C C A A B ||| lm_0=-28.045 tm_pt_0=-187.000 tm_glue_0=5.000 ||| -210.045
+0 ||| D B A A B ||| lm_0=-28.045 tm_pt_0=-187.000 tm_glue_0=5.000 ||| -210.045
+0 ||| B B A A C ||| lm_0=-28.045 tm_pt_0=-187.000 tm_glue_0=5.000 ||| -210.045
+0 ||| E A A A B ||| lm_0=-28.045 tm_pt_0=-187.000 tm_glue_0=5.000 ||| -210.045
+0 ||| D B A B A ||| lm_0=-28.045 tm_pt_0=-187.000 tm_glue_0=5.000 ||| -210.045
+0 ||| D A C A A ||| lm_0=-28.045 tm_pt_0=-187.000 tm_glue_0=5.000 ||| -210.045
+0 ||| E A A B A ||| lm_0=-28.045 tm_pt_0=-187.000 tm_glue_0=5.000 ||| -210.045
+0 ||| B A A D A ||| lm_0=-28.045 tm_pt_0=-187.000 tm_glue_0=5.000 ||| -210.045
+0 ||| D D A A A ||| lm_0=-28.045 tm_pt_0=-187.000 tm_glue_0=5.000 ||| -210.045
+0 ||| B C A C A ||| lm_0=-28.045 tm_pt_0=-187.000 tm_glue_0=5.000 ||| -210.045
+0 ||| C A D A A ||| lm_0=-28.045 tm_pt_0=-187.000 tm_glue_0=5.000 ||| -210.045
+0 ||| C A B B A ||| lm_0=-28.045 tm_pt_0=-187.000 tm_glue_0=5.000 ||| -210.045
+0 ||| E A B A A ||| lm_0=-28.045 tm_pt_0=-187.000 tm_glue_0=5.000 ||| -210.045
+0 ||| C B A C A ||| lm_0=-28.045 tm_pt_0=-187.000 tm_glue_0=5.000 ||| -210.045
+0 ||| E C A A A ||| lm_0=-28.045 tm_pt_0=-187.000 tm_glue_0=5.000 ||| -210.045
+0 ||| C C A B A ||| lm_0=-28.045 tm_pt_0=-187.000 tm_glue_0=5.000 ||| -210.045
+0 ||| B B C A A ||| lm_0=-28.045 tm_pt_0=-187.000 tm_glue_0=5.000 ||| -210.045
+0 ||| B A B C A ||| lm_0=-28.045 tm_pt_0=-187.000 tm_glue_0=5.000 ||| -210.045
+0 ||| C C B A A ||| lm_0=-28.045 tm_pt_0=-187.000 tm_glue_0=5.000 ||| -210.045
+0 ||| D B B A A ||| lm_0=-28.045 tm_pt_0=-187.000 tm_glue_0=5.000 ||| -210.045
+0 ||| A B A B B ||| lm_0=-28.045 tm_pt_0=-188.000 tm_glue_0=5.000 ||| -211.045
+0 ||| A B B B A ||| lm_0=-28.045 tm_pt_0=-188.000 tm_glue_0=5.000 ||| -211.045
+0 ||| A A A B C ||| lm_0=-28.045 tm_pt_0=-188.000 tm_glue_0=5.000 ||| -211.045
+0 ||| A D A B A ||| lm_0=-28.045 tm_pt_0=-188.000 tm_glue_0=5.000 ||| -211.045
+0 ||| A C A A C ||| lm_0=-28.045 tm_pt_0=-188.000 tm_glue_0=5.000 ||| -211.045
+0 ||| A A C B A ||| lm_0=-28.045 tm_pt_0=-188.000 tm_glue_0=5.000 ||| -211.045
+0 ||| A A C A B ||| lm_0=-28.045 tm_pt_0=-188.000 tm_glue_0=5.000 ||| -211.045
+0 ||| A C C A A ||| lm_0=-28.045 tm_pt_0=-188.000 tm_glue_0=5.000 ||| -211.045
+0 ||| A A B A C ||| lm_0=-28.045 tm_pt_0=-188.000 tm_glue_0=5.000 ||| -211.045
+0 ||| A B D A A ||| lm_0=-28.045 tm_pt_0=-188.000 tm_glue_0=5.000 ||| -211.045
+0 ||| A A A A D ||| lm_0=-28.045 tm_pt_0=-188.000 tm_glue_0=5.000 ||| -211.045
+0 ||| A A E A A ||| lm_0=-28.045 tm_pt_0=-188.000 tm_glue_0=5.000 ||| -211.045
+0 ||| A B B A B ||| lm_0=-28.045 tm_pt_0=-188.000 tm_glue_0=5.000 ||| -211.045
+0 ||| A E A A A ||| lm_0=-28.045 tm_pt_0=-188.000 tm_glue_0=5.000 ||| -211.045
+0 ||| A D A A B ||| lm_0=-28.045 tm_pt_0=-188.000 tm_glue_0=5.000 ||| -211.045
+0 ||| A D B A A ||| lm_0=-28.045 tm_pt_0=-188.000 tm_glue_0=5.000 ||| -211.045
+0 ||| B D A A B ||| lm_0=-28.045 tm_pt_0=-189.000 tm_glue_0=5.000 ||| -212.045
+0 ||| C B A A C ||| lm_0=-28.045 tm_pt_0=-189.000 tm_glue_0=5.000 ||| -212.045
+0 ||| B B B B A ||| lm_0=-28.045 tm_pt_0=-189.000 tm_glue_0=5.000 ||| -212.045
+0 ||| B A C A B ||| lm_0=-28.045 tm_pt_0=-189.000 tm_glue_0=5.000 ||| -212.045
+0 ||| D A A B B ||| lm_0=-28.045 tm_pt_0=-189.000 tm_glue_0=5.000 ||| -212.045
+0 ||| E A A C A ||| lm_0=-28.045 tm_pt_0=-189.000 tm_glue_0=5.000 ||| -212.045
+0 ||| B B A B B ||| lm_0=-28.045 tm_pt_0=-189.000 tm_glue_0=5.000 ||| -212.045
+0 ||| C A A D A ||| lm_0=-28.045 tm_pt_0=-189.000 tm_glue_0=5.000 ||| -212.045
+0 ||| B A A B C ||| lm_0=-28.045 tm_pt_0=-189.000 tm_glue_0=5.000 ||| -212.045
+0 ||| D C A B A ||| lm_0=-28.045 tm_pt_0=-189.000 tm_glue_0=5.000 ||| -212.045
+0 ||| B C A A C ||| lm_0=-28.045 tm_pt_0=-189.000 tm_glue_0=5.000 ||| -212.045
+0 ||| D B A C A ||| lm_0=-28.045 tm_pt_0=-189.000 tm_glue_0=5.000 ||| -212.045
+0 ||| B A A A D ||| lm_0=-28.045 tm_pt_0=-189.000 tm_glue_0=5.000 ||| -212.045
+0 ||| B A C B A ||| lm_0=-28.045 tm_pt_0=-189.000 tm_glue_0=5.000 ||| -212.045
+0 ||| D C A A B ||| lm_0=-28.045 tm_pt_0=-189.000 tm_glue_0=5.000 ||| -212.045
+0 ||| D A B B A ||| lm_0=-28.045 tm_pt_0=-189.000 tm_glue_0=5.000 ||| -212.045
+0 ||| B B B A B ||| lm_0=-28.045 tm_pt_0=-189.000 tm_glue_0=5.000 ||| -212.045
+0 ||| B D A B A ||| lm_0=-28.045 tm_pt_0=-189.000 tm_glue_0=5.000 ||| -212.045
+0 ||| C A A C B ||| lm_0=-28.045 tm_pt_0=-189.000 tm_glue_0=5.000 ||| -212.045
+0 ||| B A E A A ||| lm_0=-28.045 tm_pt_0=-189.000 tm_glue_0=5.000 ||| -212.045
+0 ||| B A B A C ||| lm_0=-28.045 tm_pt_0=-189.000 tm_glue_0=5.000 ||| -212.045
+0 ||| C C A C A ||| lm_0=-28.045 tm_pt_0=-189.000 tm_glue_0=5.000 ||| -212.045
+0 ||| D A B A B ||| lm_0=-28.045 tm_pt_0=-189.000 tm_glue_0=5.000 ||| -212.045
+0 ||| B C C A A ||| lm_0=-28.045 tm_pt_0=-189.000 tm_glue_0=5.000 ||| -212.045
+0 ||| C A B C A ||| lm_0=-28.045 tm_pt_0=-189.000 tm_glue_0=5.000 ||| -212.045
+0 ||| B E A A A ||| lm_0=-28.045 tm_pt_0=-189.000 tm_glue_0=5.000 ||| -212.045
+0 ||| D A D A A ||| lm_0=-28.045 tm_pt_0=-189.000 tm_glue_0=5.000 ||| -212.045
+0 ||| C B C A A ||| lm_0=-28.045 tm_pt_0=-189.000 tm_glue_0=5.000 ||| -212.045
+0 ||| B B D A A ||| lm_0=-28.045 tm_pt_0=-189.000 tm_glue_0=5.000 ||| -212.045
+0 ||| D C B A A ||| lm_0=-28.045 tm_pt_0=-189.000 tm_glue_0=5.000 ||| -212.045
+0 ||| B D B A A ||| lm_0=-28.045 tm_pt_0=-189.000 tm_glue_0=5.000 ||| -212.045
+0 ||| A C B A B ||| lm_0=-28.045 tm_pt_0=-190.000 tm_glue_0=5.000 ||| -213.045
+0 ||| A A D A B ||| lm_0=-28.045 tm_pt_0=-190.000 tm_glue_0=5.000 ||| -213.045
+0 ||| A A B B B ||| lm_0=-28.045 tm_pt_0=-190.000 tm_glue_0=5.000 ||| -213.045
+0 ||| A A A C C ||| lm_0=-28.045 tm_pt_0=-190.000 tm_glue_0=5.000 ||| -213.045
+0 ||| A B A C B ||| lm_0=-28.045 tm_pt_0=-190.000 tm_glue_0=5.000 ||| -213.045
+0 ||| A C A B B ||| lm_0=-28.045 tm_pt_0=-190.000 tm_glue_0=5.000 ||| -213.045
+0 ||| A B B C A ||| lm_0=-28.045 tm_pt_0=-190.000 tm_glue_0=5.000 ||| -213.045
+0 ||| A A A E A ||| lm_0=-28.045 tm_pt_0=-190.000 tm_glue_0=5.000 ||| -213.045
+0 ||| A C B B A ||| lm_0=-28.045 tm_pt_0=-190.000 tm_glue_0=5.000 ||| -213.045
+0 ||| A A D B A ||| lm_0=-28.045 tm_pt_0=-190.000 tm_glue_0=5.000 ||| -213.045
+0 ||| A B A D A ||| lm_0=-28.045 tm_pt_0=-190.000 tm_glue_0=5.000 ||| -213.045
+0 ||| A D A C A ||| lm_0=-28.045 tm_pt_0=-190.000 tm_glue_0=5.000 ||| -213.045
+0 ||| A A C C A ||| lm_0=-28.045 tm_pt_0=-190.000 tm_glue_0=5.000 ||| -213.045
+0 ||| A C D A A ||| lm_0=-28.045 tm_pt_0=-190.000 tm_glue_0=5.000 ||| -213.045
+0 ||| B C A B B ||| lm_0=-28.045 tm_pt_0=-191.000 tm_glue_0=5.000 ||| -214.045
+0 ||| B A B B B ||| lm_0=-28.045 tm_pt_0=-191.000 tm_glue_0=5.000 ||| -214.045
+0 ||| B C B A B ||| lm_0=-28.045 tm_pt_0=-191.000 tm_glue_0=5.000 ||| -214.045
+0 ||| C B B A B ||| lm_0=-28.045 tm_pt_0=-191.000 tm_glue_0=5.000 ||| -214.045
+0 ||| E B A A B ||| lm_0=-28.045 tm_pt_0=-191.000 tm_glue_0=5.000 ||| -214.045
+0 ||| C A A B C ||| lm_0=-28.045 tm_pt_0=-191.000 tm_glue_0=5.000 ||| -214.045
+0 ||| D A A C B ||| lm_0=-28.045 tm_pt_0=-191.000 tm_glue_0=5.000 ||| -214.045
+0 ||| C A C A B ||| lm_0=-28.045 tm_pt_0=-191.000 tm_glue_0=5.000 ||| -214.045
+0 ||| B B A C B ||| lm_0=-28.045 tm_pt_0=-191.000 tm_glue_0=5.000 ||| -214.045
+0 ||| C A B A C ||| lm_0=-28.045 tm_pt_0=-191.000 tm_glue_0=5.000 ||| -214.045
+0 ||| C D A A B ||| lm_0=-28.045 tm_pt_0=-191.000 tm_glue_0=5.000 ||| -214.045
+0 ||| B A D A B ||| lm_0=-28.045 tm_pt_0=-191.000 tm_glue_0=5.000 ||| -214.045
+0 ||| C B A B B ||| lm_0=-28.045 tm_pt_0=-191.000 tm_glue_0=5.000 ||| -214.045
+0 ||| E A A A C ||| lm_0=-28.045 tm_pt_0=-191.000 tm_glue_0=5.000 ||| -214.045
+0 ||| D B A A C ||| lm_0=-28.045 tm_pt_0=-191.000 tm_glue_0=5.000 ||| -214.045
+0 ||| C A A A D ||| lm_0=-28.045 tm_pt_0=-191.000 tm_glue_0=5.000 ||| -214.045
+0 ||| D A B C A ||| lm_0=-28.045 tm_pt_0=-191.000 tm_glue_0=5.000 ||| -214.045
+0 ||| C C A A C ||| lm_0=-28.045 tm_pt_0=-191.000 tm_glue_0=5.000 ||| -214.045
+0 ||| B A A C C ||| lm_0=-28.045 tm_pt_0=-191.000 tm_glue_0=5.000 ||| -214.045
+0 ||| B A D B A ||| lm_0=-28.045 tm_pt_0=-191.000 tm_glue_0=5.000 ||| -214.045
+0 ||| B A C C A ||| lm_0=-28.045 tm_pt_0=-191.000 tm_glue_0=5.000 ||| -214.045
+0 ||| B B B C A ||| lm_0=-28.045 tm_pt_0=-191.000 tm_glue_0=5.000 ||| -214.045
+0 ||| D C A C A ||| lm_0=-28.045 tm_pt_0=-191.000 tm_glue_0=5.000 ||| -214.045
+0 ||| D A A D A ||| lm_0=-28.045 tm_pt_0=-191.000 tm_glue_0=5.000 ||| -214.045
+0 ||| B B A D A ||| lm_0=-28.045 tm_pt_0=-191.000 tm_glue_0=5.000 ||| -214.045
+0 ||| C A C B A ||| lm_0=-28.045 tm_pt_0=-191.000 tm_glue_0=5.000 ||| -214.045
+0 ||| B A A E A ||| lm_0=-28.045 tm_pt_0=-191.000 tm_glue_0=5.000 ||| -214.045
+0 ||| C C C A A ||| lm_0=-28.045 tm_pt_0=-191.000 tm_glue_0=5.000 ||| -214.045
+0 ||| B D A C A ||| lm_0=-28.045 tm_pt_0=-191.000 tm_glue_0=5.000 ||| -214.045
+0 ||| E B A B A ||| lm_0=-28.045 tm_pt_0=-191.000 tm_glue_0=5.000 ||| -214.045
+0 ||| E B B A A ||| lm_0=-28.045 tm_pt_0=-191.000 tm_glue_0=5.000 ||| -214.045
+0 ||| B C B B A ||| lm_0=-28.045 tm_pt_0=-191.000 tm_glue_0=5.000 ||| -214.045
+0 ||| C B B B A ||| lm_0=-28.045 tm_pt_0=-191.000 tm_glue_0=5.000 ||| -214.045
+0 ||| C A E A A ||| lm_0=-28.045 tm_pt_0=-191.000 tm_glue_0=5.000 ||| -214.045
+0 ||| C D A B A ||| lm_0=-28.045 tm_pt_0=-191.000 tm_glue_0=5.000 ||| -214.045
+0 ||| C D B A A ||| lm_0=-28.045 tm_pt_0=-191.000 tm_glue_0=5.000 ||| -214.045
+0 ||| B C D A A ||| lm_0=-28.045 tm_pt_0=-191.000 tm_glue_0=5.000 ||| -214.045
+0 ||| E D A A A ||| lm_0=-28.045 tm_pt_0=-191.000 tm_glue_0=5.000 ||| -214.045
+0 ||| D B C A A ||| lm_0=-28.045 tm_pt_0=-191.000 tm_glue_0=5.000 ||| -214.045
+0 ||| C E A A A ||| lm_0=-28.045 tm_pt_0=-191.000 tm_glue_0=5.000 ||| -214.045
+0 ||| E A C A A ||| lm_0=-28.045 tm_pt_0=-191.000 tm_glue_0=5.000 ||| -214.045
+0 ||| C B D A A ||| lm_0=-28.045 tm_pt_0=-191.000 tm_glue_0=5.000 ||| -214.045
+0 ||| A B C A B ||| lm_0=-28.045 tm_pt_0=-192.000 tm_glue_0=5.000 ||| -215.045
+0 ||| A B B A C ||| lm_0=-28.045 tm_pt_0=-192.000 tm_glue_0=5.000 ||| -215.045
+0 ||| A D A A C ||| lm_0=-28.045 tm_pt_0=-192.000 tm_glue_0=5.000 ||| -215.045
+0 ||| A A C A C ||| lm_0=-28.045 tm_pt_0=-192.000 tm_glue_0=5.000 ||| -215.045
+0 ||| A B A B C ||| lm_0=-28.045 tm_pt_0=-192.000 tm_glue_0=5.000 ||| -215.045
+0 ||| A A B C B ||| lm_0=-28.045 tm_pt_0=-192.000 tm_glue_0=5.000 ||| -215.045
+0 ||| A C A C B ||| lm_0=-28.045 tm_pt_0=-192.000 tm_glue_0=5.000 ||| -215.045
+0 ||| A B A A D ||| lm_0=-28.045 tm_pt_0=-192.000 tm_glue_0=5.000 ||| -215.045
+0 ||| A A A D B ||| lm_0=-28.045 tm_pt_0=-192.000 tm_glue_0=5.000 ||| -215.045
+0 ||| A B C B A ||| lm_0=-28.045 tm_pt_0=-192.000 tm_glue_0=5.000 ||| -215.045
+0 ||| A C A D A ||| lm_0=-28.045 tm_pt_0=-192.000 tm_glue_0=5.000 ||| -215.045
+0 ||| A A D C A ||| lm_0=-28.045 tm_pt_0=-192.000 tm_glue_0=5.000 ||| -215.045
+0 ||| A C B C A ||| lm_0=-28.045 tm_pt_0=-192.000 tm_glue_0=5.000 ||| -215.045
+0 ||| A A B D A ||| lm_0=-28.045 tm_pt_0=-192.000 tm_glue_0=5.000 ||| -215.045
+0 ||| A B E A A ||| lm_0=-28.045 tm_pt_0=-192.000 tm_glue_0=5.000 ||| -215.045
+0 ||| A D C A A ||| lm_0=-28.045 tm_pt_0=-192.000 tm_glue_0=5.000 ||| -215.045
+0 ||| B B C A B ||| lm_0=-28.045 tm_pt_0=-193.000 tm_glue_0=5.000 ||| -216.045
+0 ||| E C A A B ||| lm_0=-28.045 tm_pt_0=-193.000 tm_glue_0=5.000 ||| -216.045
+0 ||| C C A B B ||| lm_0=-28.045 tm_pt_0=-193.000 tm_glue_0=5.000 ||| -216.045
+0 ||| B A B C B ||| lm_0=-28.045 tm_pt_0=-193.000 tm_glue_0=5.000 ||| -216.045
+0 ||| C C B B A ||| lm_0=-28.045 tm_pt_0=-193.000 tm_glue_0=5.000 ||| -216.045
+0 ||| C C B A B ||| lm_0=-28.045 tm_pt_0=-193.000 tm_glue_0=5.000 ||| -216.045
+0 ||| D B B A B ||| lm_0=-28.045 tm_pt_0=-193.000 tm_glue_0=5.000 ||| -216.045
+0 ||| E A A B B ||| lm_0=-28.045 tm_pt_0=-193.000 tm_glue_0=5.000 ||| -216.045
+0 ||| D A C B A ||| lm_0=-28.045 tm_pt_0=-193.000 tm_glue_0=5.000 ||| -216.045
+0 ||| B A C A C ||| lm_0=-28.045 tm_pt_0=-193.000 tm_glue_0=5.000 ||| -216.045
+0 ||| D A C A B ||| lm_0=-28.045 tm_pt_0=-193.000 tm_glue_0=5.000 ||| -216.045
+0 ||| D D A B A ||| lm_0=-28.045 tm_pt_0=-193.000 tm_glue_0=5.000 ||| -216.045
+0 ||| D A B A C ||| lm_0=-28.045 tm_pt_0=-193.000 tm_glue_0=5.000 ||| -216.045
+0 ||| B D A A C ||| lm_0=-28.045 tm_pt_0=-193.000 tm_glue_0=5.000 ||| -216.045
+0 ||| C C D A A ||| lm_0=-28.045 tm_pt_0=-193.000 tm_glue_0=5.000 ||| -216.045
+0 ||| D B A B B ||| lm_0=-28.045 tm_pt_0=-193.000 tm_glue_0=5.000 ||| -216.045
+0 ||| B A B D A ||| lm_0=-28.045 tm_pt_0=-193.000 tm_glue_0=5.000 ||| -216.045
+0 ||| B A A D B ||| lm_0=-28.045 tm_pt_0=-193.000 tm_glue_0=5.000 ||| -216.045
+0 ||| C A D B A ||| lm_0=-28.045 tm_pt_0=-193.000 tm_glue_0=5.000 ||| -216.045
+0 ||| B B A A D ||| lm_0=-28.045 tm_pt_0=-193.000 tm_glue_0=5.000 ||| -216.045
+0 ||| E A B B A ||| lm_0=-28.045 tm_pt_0=-193.000 tm_glue_0=5.000 ||| -216.045
+0 ||| D A A A D ||| lm_0=-28.045 tm_pt_0=-193.000 tm_glue_0=5.000 ||| -216.045
+0 ||| D C C A A ||| lm_0=-28.045 tm_pt_0=-193.000 tm_glue_0=5.000 ||| -216.045
+0 ||| D A A B C ||| lm_0=-28.045 tm_pt_0=-193.000 tm_glue_0=5.000 ||| -216.045
+0 ||| E C A B A ||| lm_0=-28.045 tm_pt_0=-193.000 tm_glue_0=5.000 ||| -216.045
+0 ||| C A D A B ||| lm_0=-28.045 tm_pt_0=-193.000 tm_glue_0=5.000 ||| -216.045
+0 ||| B B C B A ||| lm_0=-28.045 tm_pt_0=-193.000 tm_glue_0=5.000 ||| -216.045
+0 ||| B C A C B ||| lm_0=-28.045 tm_pt_0=-193.000 tm_glue_0=5.000 ||| -216.045
+0 ||| B D C A A ||| lm_0=-28.045 tm_pt_0=-193.000 tm_glue_0=5.000 ||| -216.045
+0 ||| C A B B B ||| lm_0=-28.045 tm_pt_0=-193.000 tm_glue_0=5.000 ||| -216.045
+0 ||| C D A C A ||| lm_0=-28.045 tm_pt_0=-193.000 tm_glue_0=5.000 ||| -216.045
+0 ||| D D A A B ||| lm_0=-28.045 tm_pt_0=-193.000 tm_glue_0=5.000 ||| -216.045
+0 ||| D B B B A ||| lm_0=-28.045 tm_pt_0=-193.000 tm_glue_0=5.000 ||| -216.045
+0 ||| C A A C C ||| lm_0=-28.045 tm_pt_0=-193.000 tm_glue_0=5.000 ||| -216.045
+0 ||| D D B A A ||| lm_0=-28.045 tm_pt_0=-193.000 tm_glue_0=5.000 ||| -216.045
+0 ||| B B A B C ||| lm_0=-28.045 tm_pt_0=-193.000 tm_glue_0=5.000 ||| -216.045
+0 ||| B A D C A ||| lm_0=-28.045 tm_pt_0=-193.000 tm_glue_0=5.000 ||| -216.045
+0 ||| C B A C B ||| lm_0=-28.045 tm_pt_0=-193.000 tm_glue_0=5.000 ||| -216.045
+0 ||| C A A E A ||| lm_0=-28.045 tm_pt_0=-193.000 tm_glue_0=5.000 ||| -216.045
+0 ||| E A B A B ||| lm_0=-28.045 tm_pt_0=-193.000 tm_glue_0=5.000 ||| -216.045
+0 ||| D B D A A ||| lm_0=-28.045 tm_pt_0=-193.000 tm_glue_0=5.000 ||| -216.045
+0 ||| D C A A C ||| lm_0=-28.045 tm_pt_0=-193.000 tm_glue_0=5.000 ||| -216.045
+0 ||| B C A D A ||| lm_0=-28.045 tm_pt_0=-193.000 tm_glue_0=5.000 ||| -216.045
+0 ||| B B B A C ||| lm_0=-28.045 tm_pt_0=-193.000 tm_glue_0=5.000 ||| -216.045
+0 ||| D E A A A ||| lm_0=-28.045 tm_pt_0=-193.000 tm_glue_0=5.000 ||| -216.045
+0 ||| C A C C A ||| lm_0=-28.045 tm_pt_0=-193.000 tm_glue_0=5.000 ||| -216.045
+0 ||| E A D A A ||| lm_0=-28.045 tm_pt_0=-193.000 tm_glue_0=5.000 ||| -216.045
+0 ||| C B B C A ||| lm_0=-28.045 tm_pt_0=-193.000 tm_glue_0=5.000 ||| -216.045
+0 ||| E C B A A ||| lm_0=-28.045 tm_pt_0=-193.000 tm_glue_0=5.000 ||| -216.045
+0 ||| B C B C A ||| lm_0=-28.045 tm_pt_0=-193.000 tm_glue_0=5.000 ||| -216.045
+0 ||| B B E A A ||| lm_0=-28.045 tm_pt_0=-193.000 tm_glue_0=5.000 ||| -216.045
+0 ||| C B A D A ||| lm_0=-28.045 tm_pt_0=-193.000 tm_glue_0=5.000 ||| -216.045
+0 ||| D A E A A ||| lm_0=-28.045 tm_pt_0=-193.000 tm_glue_0=5.000 ||| -216.045
+0 ||| E B A C A ||| lm_0=-28.045 tm_pt_0=-193.000 tm_glue_0=5.000 ||| -216.045
+0 ||| A D B A B ||| lm_0=-28.045 tm_pt_0=-194.000 tm_glue_0=5.000 ||| -217.045
+0 ||| A A C B B ||| lm_0=-28.045 tm_pt_0=-194.000 tm_glue_0=5.000 ||| -217.045
+0 ||| A C A B C ||| lm_0=-28.045 tm_pt_0=-194.000 tm_glue_0=5.000 ||| -217.045
+0 ||| A B B B B ||| lm_0=-28.045 tm_pt_0=-194.000 tm_glue_0=5.000 ||| -217.045
+0 ||| A B A C C ||| lm_0=-28.045 tm_pt_0=-194.000 tm_glue_0=5.000 ||| -217.045
+0 ||| A B D A B ||| lm_0=-28.045 tm_pt_0=-194.000 tm_glue_0=5.000 ||| -217.045
+0 ||| A A E A B ||| lm_0=-28.045 tm_pt_0=-194.000 tm_glue_0=5.000 ||| -217.045
+0 ||| A C C A B ||| lm_0=-28.045 tm_pt_0=-194.000 tm_glue_0=5.000 ||| -217.045
+0 ||| A E A A B ||| lm_0=-28.045 tm_pt_0=-194.000 tm_glue_0=5.000 ||| -217.045
+0 ||| A D A B B ||| lm_0=-28.045 tm_pt_0=-194.000 tm_glue_0=5.000 ||| -217.045
+0 ||| A A B B C ||| lm_0=-28.045 tm_pt_0=-194.000 tm_glue_0=5.000 ||| -217.045
+0 ||| A B D B A ||| lm_0=-28.045 tm_pt_0=-194.000 tm_glue_0=5.000 ||| -217.045
+0 ||| A A D A C ||| lm_0=-28.045 tm_pt_0=-194.000 tm_glue_0=5.000 ||| -217.045
+0 ||| A C B A C ||| lm_0=-28.045 tm_pt_0=-194.000 tm_glue_0=5.000 ||| -217.045
+0 ||| A B C C A ||| lm_0=-28.045 tm_pt_0=-194.000 tm_glue_0=5.000 ||| -217.045
+0 ||| A A A B D ||| lm_0=-28.045 tm_pt_0=-194.000 tm_glue_0=5.000 ||| -217.045
+0 ||| A C C B A ||| lm_0=-28.045 tm_pt_0=-194.000 tm_glue_0=5.000 ||| -217.045
+0 ||| A A B A D ||| lm_0=-28.045 tm_pt_0=-194.000 tm_glue_0=5.000 ||| -217.045
+0 ||| A D D A A ||| lm_0=-28.045 tm_pt_0=-194.000 tm_glue_0=5.000 ||| -217.045
+0 ||| A C A A D ||| lm_0=-28.045 tm_pt_0=-194.000 tm_glue_0=5.000 ||| -217.045
+0 ||| A D B B A ||| lm_0=-28.045 tm_pt_0=-194.000 tm_glue_0=5.000 ||| -217.045
+0 ||| A E A B A ||| lm_0=-28.045 tm_pt_0=-194.000 tm_glue_0=5.000 ||| -217.045
+0 ||| A C E A A ||| lm_0=-28.045 tm_pt_0=-194.000 tm_glue_0=5.000 ||| -217.045
+0 ||| A A E B A ||| lm_0=-28.045 tm_pt_0=-194.000 tm_glue_0=5.000 ||| -217.045
+0 ||| A E B A A ||| lm_0=-28.045 tm_pt_0=-194.000 tm_glue_0=5.000 ||| -217.045
+0 ||| A B A E A ||| lm_0=-28.045 tm_pt_0=-194.000 tm_glue_0=5.000 ||| -217.045
+0 ||| B B B B B ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| E A A C B ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| D C A B B ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| B C A B C ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| B D A B B ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| B E A A B ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| D A B B B ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| B A E A B ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| B A C B B ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| B C B A C ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| C C A C B ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| C A B C B ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| C A A D B ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| D B A C B ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| B C C A B ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| B B C C A ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| B A B B C ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| B B D A B ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| C B C A B ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| C B E A A ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| C B A A D ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| D A D A B ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| D C B A B ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| E A B C A ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| B D B A B ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| E C A C A ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| C B A B C ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| B A E B A ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| D A A C C ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| D A C C A ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| C B B A C ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| C C B C A ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| E B A A C ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| C A B D A ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| B A D A C ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| C A D C A ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| B B A C C ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| C D C A A ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| C A C A C ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| D D A C A ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| C D A A C ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| B B D B A ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| B A B A D ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| E B C A A ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| B C A A D ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| D A D B A ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| B A A B D ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| B E A B A ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| D C D A A ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| D B B C A ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| D B A D A ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| E A A D A ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| B D D A A ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| C B C B A ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| B C E A A ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| B C C B A ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| B E B A A ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| C C A D A ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| B D B B A ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| D A A E A ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| D C B B A ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| B B A E A ||| lm_0=-28.045 tm_pt_0=-195.000 tm_glue_0=5.000 ||| -218.045
+0 ||| A B B C B ||| lm_0=-28.045 tm_pt_0=-196.000 tm_glue_0=5.000 ||| -219.045
+0 ||| A A A C D ||| lm_0=-28.045 tm_pt_0=-196.000 tm_glue_0=5.000 ||| -219.045
+0 ||| A B A D B ||| lm_0=-28.045 tm_pt_0=-196.000 tm_glue_0=5.000 ||| -219.045
+0 ||| A A A D C ||| lm_0=-28.045 tm_pt_0=-196.000 tm_glue_0=5.000 ||| -219.045
+0 ||| A C D A B ||| lm_0=-28.045 tm_pt_0=-196.000 tm_glue_0=5.000 ||| -219.045
+0 ||| A C A C C ||| lm_0=-28.045 tm_pt_0=-196.000 tm_glue_0=5.000 ||| -219.045
+0 ||| A A A E B ||| lm_0=-28.045 tm_pt_0=-196.000 tm_glue_0=5.000 ||| -219.045
+0 ||| A C B B B ||| lm_0=-28.045 tm_pt_0=-196.000 tm_glue_0=5.000 ||| -219.045
+0 ||| A A D B B ||| lm_0=-28.045 tm_pt_0=-196.000 tm_glue_0=5.000 ||| -219.045
+0 ||| A A C C B ||| lm_0=-28.045 tm_pt_0=-196.000 tm_glue_0=5.000 ||| -219.045
+0 ||| A D A C B ||| lm_0=-28.045 tm_pt_0=-196.000 tm_glue_0=5.000 ||| -219.045
+0 ||| A A B E A ||| lm_0=-28.045 tm_pt_0=-196.000 tm_glue_0=5.000 ||| -219.045
+0 ||| A A A A E ||| lm_0=-28.045 tm_pt_0=-196.000 tm_glue_0=5.000 ||| -219.045
+0 ||| A B C A C ||| lm_0=-28.045 tm_pt_0=-196.000 tm_glue_0=5.000 ||| -219.045
+0 ||| A D B C A ||| lm_0=-28.045 tm_pt_0=-196.000 tm_glue_0=5.000 ||| -219.045
+0 ||| A A B C C ||| lm_0=-28.045 tm_pt_0=-196.000 tm_glue_0=5.000 ||| -219.045
+0 ||| A E A C A ||| lm_0=-28.045 tm_pt_0=-196.000 tm_glue_0=5.000 ||| -219.045
+0 ||| A B D C A ||| lm_0=-28.045 tm_pt_0=-196.000 tm_glue_0=5.000 ||| -219.045
+0 ||| A C C C A ||| lm_0=-28.045 tm_pt_0=-196.000 tm_glue_0=5.000 ||| -219.045
+0 ||| A C D B A ||| lm_0=-28.045 tm_pt_0=-196.000 tm_glue_0=5.000 ||| -219.045
+0 ||| A A C D A ||| lm_0=-28.045 tm_pt_0=-196.000 tm_glue_0=5.000 ||| -219.045
+0 ||| A D A D A ||| lm_0=-28.045 tm_pt_0=-196.000 tm_glue_0=5.000 ||| -219.045
+0 ||| A B B D A ||| lm_0=-28.045 tm_pt_0=-196.000 tm_glue_0=5.000 ||| -219.045
+0 ||| A A E C A ||| lm_0=-28.045 tm_pt_0=-196.000 tm_glue_0=5.000 ||| -219.045
+0 ||| A C A E A ||| lm_0=-28.045 tm_pt_0=-196.000 tm_glue_0=5.000 ||| -219.045
+0 ||| E A A B C ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| D C A C B ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| D A C A C ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| B B B C B ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| B A C C B ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| B A D B B ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| B A B C C ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| C C B A C ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| B A A C D ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| D A A D B ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| E B B A B ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| C C A B C ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| B C A C C ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| C A B A D ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| C A A B D ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| C C A A D ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| D B B A C ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| E C A A C ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| B B C A C ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| B A A D C ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| E A A A D ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| B B A D B ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| C A D A C ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| D A B C B ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| D C B C A ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| D B A B C ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| D B A A D ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| E B A B B ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| C A C B B ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| B A C D A ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| B D A C B ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| C C C A B ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| B A A E B ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| B A E C A ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| D B C A B ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| C A E A B ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| B A B E A ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| C B B B B ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| B C B B B ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| C D B B A ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| D D A A C ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| E D A A B ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| B B D C A ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| C D A B B ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| C A B B C ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| B D B C A ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| B C D A B ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| C D B A B ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| D A D C A ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| E A B A C ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| B A A A E ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| D A B D A ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| C E A A B ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| C B A C C ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| B E A C A ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| C B D A B ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| E A C A B ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| C B C C A ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| E B D A A ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| C A E B A ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| E D B A A ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| C B A E A ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| E E A A A ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| B C C C A ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| D B E A A ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| B B B D A ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| C D D A A ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| D C A D A ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| D D C A A ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| C C C B A ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| C C E A A ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| E B B B A ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| C E B A A ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| B C D B A ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| E C C A A ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| C E A B A ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| E A E A A ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| B C A E A ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| D B C B A ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| E D A B A ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| E A C B A ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| C B D B A ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| B D A D A ||| lm_0=-28.045 tm_pt_0=-197.000 tm_glue_0=5.000 ||| -220.045
+0 ||| A E A A C ||| lm_0=-28.045 tm_pt_0=-198.000 tm_glue_0=5.000 ||| -221.045
+0 ||| A B B A D ||| lm_0=-28.045 tm_pt_0=-198.000 tm_glue_0=5.000 ||| -221.045
+0 ||| A A B D B ||| lm_0=-28.045 tm_pt_0=-198.000 tm_glue_0=5.000 ||| -221.045
+0 ||| A B B B C ||| lm_0=-28.045 tm_pt_0=-198.000 tm_glue_0=5.000 ||| -221.045
+0 ||| A A E A C ||| lm_0=-28.045 tm_pt_0=-198.000 tm_glue_0=5.000 ||| -221.045
+0 ||| A D B A C ||| lm_0=-28.045 tm_pt_0=-198.000 tm_glue_0=5.000 ||| -221.045
+0 ||| A A C B C ||| lm_0=-28.045 tm_pt_0=-198.000 tm_glue_0=5.000 ||| -221.045
+0 ||| A C B C B ||| lm_0=-28.045 tm_pt_0=-198.000 tm_glue_0=5.000 ||| -221.045
+0 ||| A B D A C ||| lm_0=-28.045 tm_pt_0=-198.000 tm_glue_0=5.000 ||| -221.045
+0 ||| A D A B C ||| lm_0=-28.045 tm_pt_0=-198.000 tm_glue_0=5.000 ||| -221.045
+0 ||| A C C A C ||| lm_0=-28.045 tm_pt_0=-198.000 tm_glue_0=5.000 ||| -221.045
+0 ||| A B E A B ||| lm_0=-28.045 tm_pt_0=-198.000 tm_glue_0=5.000 ||| -221.045
+0 ||| A A D C B ||| lm_0=-28.045 tm_pt_0=-198.000 tm_glue_0=5.000 ||| -221.045
+0 ||| A C A D B ||| lm_0=-28.045 tm_pt_0=-198.000 tm_glue_0=5.000 ||| -221.045
+0 ||| A B C B B ||| lm_0=-28.045 tm_pt_0=-198.000 tm_glue_0=5.000 ||| -221.045
+0 ||| A A C A D ||| lm_0=-28.045 tm_pt_0=-198.000 tm_glue_0=5.000 ||| -221.045
+0 ||| A D C A B ||| lm_0=-28.045 tm_pt_0=-198.000 tm_glue_0=5.000 ||| -221.045
+0 ||| A B A B D ||| lm_0=-28.045 tm_pt_0=-198.000 tm_glue_0=5.000 ||| -221.045
+0 ||| A D C B A ||| lm_0=-28.045 tm_pt_0=-198.000 tm_glue_0=5.000 ||| -221.045
+0 ||| A D A A D ||| lm_0=-28.045 tm_pt_0=-198.000 tm_glue_0=5.000 ||| -221.045
+0 ||| A B E B A ||| lm_0=-28.045 tm_pt_0=-198.000 tm_glue_0=5.000 ||| -221.045
+0 ||| A C D C A ||| lm_0=-28.045 tm_pt_0=-198.000 tm_glue_0=5.000 ||| -221.045
+0 ||| A E C A A ||| lm_0=-28.045 tm_pt_0=-198.000 tm_glue_0=5.000 ||| -221.045
+0 ||| A C B D A ||| lm_0=-28.045 tm_pt_0=-198.000 tm_glue_0=5.000 ||| -221.045
+0 ||| A D E A A ||| lm_0=-28.045 tm_pt_0=-198.000 tm_glue_0=5.000 ||| -221.045
+0 ||| A A D D A ||| lm_0=-28.045 tm_pt_0=-198.000 tm_glue_0=5.000 ||| -221.045
+0 ||| D C B A C ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| C C D A B ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| B A B D B ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| B B C B B ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| C A D B B ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| E A B B B ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| E C A B B ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| B D A A D ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| D C C A B ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| D B D A B ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| D D B A B ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| D B B B B ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| E C B A B ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| C A A E B ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| B A D C B ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| C B B C B ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| B B B A D ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| B C A D B ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| E A D A B ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| D E A A B ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| C A C C B ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| C B A D B ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| B B E A B ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| B C B C B ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| D A E A B ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| E B A C B ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| D C A B C ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| C A B C C ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| E A A C C ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| B B B B C ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| B A E A C ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| B D A B C ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| C C A C C ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| D A B B C ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| B E A A C ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| B A C B C ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| D A D A C ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| B D B A C ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| C A A D C ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| B C C A C ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| D B A C C ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| C B C A C ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| B A C A D ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| B B D A C ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| D A B A D ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| D D A B B ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| D A C B B ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| B D C A B ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| D C A A D ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| C C B B B ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| D A A B D ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| B B A B D ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| C A A A E ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| C A A C D ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| C D A C B ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| B A D D A ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| C C D B A ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| D C C B A ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| E A D B A ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| B D C B A ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| D E A B A ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| E C B B A ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| B B E B A ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| E B A D A ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| D A E B A ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| C A B E A ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| E A A E A ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| D B D B A ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| C A E C A ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| C C A E A ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| C B D C A ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| B C D C A ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| E B B C A ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| C D A D A ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| D D D A A ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| C D B C A ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| E C D A A ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| E A C C A ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| B E C A A ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| D B A E A ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| D E B A A ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| D D B B A ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| B D E A A ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| E D A C A ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| D C E A A ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| C E A C A ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| B C B D A ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| D B C C A ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| C B B D A ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| C A C D A ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| C C C C A ||| lm_0=-28.045 tm_pt_0=-199.000 tm_glue_0=5.000 ||| -222.045
+0 ||| A C A B D ||| lm_0=-28.045 tm_pt_0=-200.000 tm_glue_0=5.000 ||| -223.045
+0 ||| A D B B B ||| lm_0=-28.045 tm_pt_0=-200.000 tm_glue_0=5.000 ||| -223.045
+0 ||| A D D A B ||| lm_0=-28.045 tm_pt_0=-200.000 tm_glue_0=5.000 ||| -223.045
+0 ||| A B C C B ||| lm_0=-28.045 tm_pt_0=-200.000 tm_glue_0=5.000 ||| -223.045
+0 ||| A E B B A ||| lm_0=-28.045 tm_pt_0=-200.000 tm_glue_0=5.000 ||| -223.045
+0 ||| A C C B B ||| lm_0=-28.045 tm_pt_0=-200.000 tm_glue_0=5.000 ||| -223.045
+0 ||| A A B B D ||| lm_0=-28.045 tm_pt_0=-200.000 tm_glue_0=5.000 ||| -223.045
+0 ||| A D C C A ||| lm_0=-28.045 tm_pt_0=-200.000 tm_glue_0=5.000 ||| -223.045
+0 ||| A B D B B ||| lm_0=-28.045 tm_pt_0=-200.000 tm_glue_0=5.000 ||| -223.045
+0 ||| A A E B B ||| lm_0=-28.045 tm_pt_0=-200.000 tm_glue_0=5.000 ||| -223.045
+0 ||| A C E B A ||| lm_0=-28.045 tm_pt_0=-200.000 tm_glue_0=5.000 ||| -223.045
+0 ||| A C E A B ||| lm_0=-28.045 tm_pt_0=-200.000 tm_glue_0=5.000 ||| -223.045
+0 ||| A E B A B ||| lm_0=-28.045 tm_pt_0=-200.000 tm_glue_0=5.000 ||| -223.045
+0 ||| A D D B A ||| lm_0=-28.045 tm_pt_0=-200.000 tm_glue_0=5.000 ||| -223.045
+0 ||| A B A E B ||| lm_0=-28.045 tm_pt_0=-200.000 tm_glue_0=5.000 ||| -223.045
+0 ||| A B E C A ||| lm_0=-28.045 tm_pt_0=-200.000 tm_glue_0=5.000 ||| -223.045
+0 ||| A A D A D ||| lm_0=-28.045 tm_pt_0=-200.000 tm_glue_0=5.000 ||| -223.045
+0 ||| A E D A A ||| lm_0=-28.045 tm_pt_0=-200.000 tm_glue_0=5.000 ||| -223.045
+0 ||| A B A A E ||| lm_0=-28.045 tm_pt_0=-200.000 tm_glue_0=5.000 ||| -223.045
+0 ||| A A C E A ||| lm_0=-28.045 tm_pt_0=-200.000 tm_glue_0=5.000 ||| -223.045
+0 ||| A C B B C ||| lm_0=-28.045 tm_pt_0=-200.000 tm_glue_0=5.000 ||| -223.045
+0 ||| A B B E A ||| lm_0=-28.045 tm_pt_0=-200.000 tm_glue_0=5.000 ||| -223.045
+0 ||| A C D A C ||| lm_0=-28.045 tm_pt_0=-200.000 tm_glue_0=5.000 ||| -223.045
+0 ||| A D A E A ||| lm_0=-28.045 tm_pt_0=-200.000 tm_glue_0=5.000 ||| -223.045
+0 ||| A B A D C ||| lm_0=-28.045 tm_pt_0=-200.000 tm_glue_0=5.000 ||| -223.045
+0 ||| A B C D A ||| lm_0=-28.045 tm_pt_0=-200.000 tm_glue_0=5.000 ||| -223.045
+0 ||| A A A E C ||| lm_0=-28.045 tm_pt_0=-200.000 tm_glue_0=5.000 ||| -223.045
+0 ||| A B A C D ||| lm_0=-28.045 tm_pt_0=-200.000 tm_glue_0=5.000 ||| -223.045
+0 ||| A E A B B ||| lm_0=-28.045 tm_pt_0=-200.000 tm_glue_0=5.000 ||| -223.045
+0 ||| A C B A D ||| lm_0=-28.045 tm_pt_0=-200.000 tm_glue_0=5.000 ||| -223.045
+0 ||| A A D B C ||| lm_0=-28.045 tm_pt_0=-200.000 tm_glue_0=5.000 ||| -223.045
+0 ||| A B B C C ||| lm_0=-28.045 tm_pt_0=-200.000 tm_glue_0=5.000 ||| -223.045
+0 ||| A D A C C ||| lm_0=-28.045 tm_pt_0=-200.000 tm_glue_0=5.000 ||| -223.045
+0 ||| A A C C C ||| lm_0=-28.045 tm_pt_0=-200.000 tm_glue_0=5.000 ||| -223.045
+0 ||| B B B C C ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| D A C C B ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| D C B B B ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| B A E B B ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| E A C A C ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| D C D B A ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| E C A C B ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| D D A C B ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| C C D C A ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| B B C C B ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| D A A E B ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| E B C B A ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| C D C A B ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| B C A B D ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| C C B D A ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| C A D C B ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| B C B A D ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| C D C B A ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| C B E A B ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| C A B D B ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| B B E C A ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| C C B C B ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| D C A C C ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| C B E B A ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| B D B B B ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| E B C A B ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| E A D C A ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| D B B C B ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| B A B B D ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| B B C D A ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| B B D B B ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| D A D B B ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| D C C C A ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| D C D A B ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| B E A B B ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| E C B C A ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| C C A D B ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| B D D A B ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| D A C D A ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| E A A D B ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| D B A D B ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| E C A D A ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| B E B A B ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| C B C B B ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| E A B D A ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| B C E A B ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| D E A C A ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| E A B C B ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| B D D B A ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| B B A E B ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| B D C C A ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| B B A C D ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| B B B E A ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| B C C B B ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| B D A E A ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| C B A B D ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| D A E C A ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| C A C A D ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| D B D C A ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| E B B A C ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| B C E B A ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| D A A C D ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| C D E A A ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| B A D A D ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| D B B D A ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| B A C C C ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| E D C A A ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| D A A D C ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| D D A D A ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| C B B A D ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| C E C A A ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| B A D B C ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| D A B E A ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| E B A A D ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| E B E A A ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| B B A D C ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| D C A E A ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| E B A B C ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| B E D A A ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| B D A C C ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| B E B B A ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| D A B C C ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| B A C E A ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| C D A B C ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| D D B C A ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| C A C B C ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| C A D D A ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| C E A A C ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| D A A A E ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| C B B B C ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| B A A E C ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| C D A A D ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| C C C A C ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| E D A A C ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| C A E A C ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| D B C A C ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| B C B B C ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| B B A A E ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| B C D A C ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| C D B A C ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| C B D A C ||| lm_0=-28.045 tm_pt_0=-201.000 tm_glue_0=5.000 ||| -224.045
+0 ||| A C D B B ||| lm_0=-28.045 tm_pt_0=-202.000 tm_glue_0=5.000 ||| -225.045
+0 ||| A A B C D ||| lm_0=-28.045 tm_pt_0=-202.000 tm_glue_0=5.000 ||| -225.045
+0 ||| A C C C B ||| lm_0=-28.045 tm_pt_0=-202.000 tm_glue_0=5.000 ||| -225.045
+0 ||| A A C D B ||| lm_0=-28.045 tm_pt_0=-202.000 tm_glue_0=5.000 ||| -225.045
+0 ||| A D A D B ||| lm_0=-28.045 tm_pt_0=-202.000 tm_glue_0=5.000 ||| -225.045
+0 ||| A E A C B ||| lm_0=-28.045 tm_pt_0=-202.000 tm_glue_0=5.000 ||| -225.045
+0 ||| A B D C B ||| lm_0=-28.045 tm_pt_0=-202.000 tm_glue_0=5.000 ||| -225.045
+0 ||| A B B D B ||| lm_0=-28.045 tm_pt_0=-202.000 tm_glue_0=5.000 ||| -225.045
+0 ||| A A E D A ||| lm_0=-28.045 tm_pt_0=-202.000 tm_glue_0=5.000 ||| -225.045
+0 ||| A A E C B ||| lm_0=-28.045 tm_pt_0=-202.000 tm_glue_0=5.000 ||| -225.045
+0 ||| A C A E B ||| lm_0=-28.045 tm_pt_0=-202.000 tm_glue_0=5.000 ||| -225.045
+0 ||| A A B A E ||| lm_0=-28.045 tm_pt_0=-202.000 tm_glue_0=5.000 ||| -225.045
+0 ||| A C E C A ||| lm_0=-28.045 tm_pt_0=-202.000 tm_glue_0=5.000 ||| -225.045
+0 ||| A A A D D ||| lm_0=-28.045 tm_pt_0=-202.000 tm_glue_0=5.000 ||| -225.045
+0 ||| A D D C A ||| lm_0=-28.045 tm_pt_0=-202.000 tm_glue_0=5.000 ||| -225.045
+0 ||| A A B E B ||| lm_0=-28.045 tm_pt_0=-202.000 tm_glue_0=5.000 ||| -225.045
+0 ||| A A D E A ||| lm_0=-28.045 tm_pt_0=-202.000 tm_glue_0=5.000 ||| -225.045
+0 ||| A C A C D ||| lm_0=-28.045 tm_pt_0=-202.000 tm_glue_0=5.000 ||| -225.045
+0 ||| A C C D A ||| lm_0=-28.045 tm_pt_0=-202.000 tm_glue_0=5.000 ||| -225.045
+0 ||| A B C A D ||| lm_0=-28.045 tm_pt_0=-202.000 tm_glue_0=5.000 ||| -225.045
+0 ||| A D B D A ||| lm_0=-28.045 tm_pt_0=-202.000 tm_glue_0=5.000 ||| -225.045
+0 ||| A D B C B ||| lm_0=-28.045 tm_pt_0=-202.000 tm_glue_0=5.000 ||| -225.045
+0 ||| A E A D A ||| lm_0=-28.045 tm_pt_0=-202.000 tm_glue_0=5.000 ||| -225.045
+0 ||| A C A A E ||| lm_0=-28.045 tm_pt_0=-202.000 tm_glue_0=5.000 ||| -225.045
+0 ||| A C B E A ||| lm_0=-28.045 tm_pt_0=-202.000 tm_glue_0=5.000 ||| -225.045
+0 ||| A D C A C ||| lm_0=-28.045 tm_pt_0=-202.000 tm_glue_0=5.000 ||| -225.045
+0 ||| A B D D A ||| lm_0=-28.045 tm_pt_0=-202.000 tm_glue_0=5.000 ||| -225.045
+0 ||| A A A B E ||| lm_0=-28.045 tm_pt_0=-202.000 tm_glue_0=5.000 ||| -225.045
+0 ||| A E B C A ||| lm_0=-28.045 tm_pt_0=-202.000 tm_glue_0=5.000 ||| -225.045
+0 ||| A A B D C ||| lm_0=-28.045 tm_pt_0=-202.000 tm_glue_0=5.000 ||| -225.045
+0 ||| A C A D C ||| lm_0=-28.045 tm_pt_0=-202.000 tm_glue_0=5.000 ||| -225.045
+0 ||| A C B C C ||| lm_0=-28.045 tm_pt_0=-202.000 tm_glue_0=5.000 ||| -225.045
+0 ||| A A D C C ||| lm_0=-28.045 tm_pt_0=-202.000 tm_glue_0=5.000 ||| -225.045
+0 ||| A B E A C ||| lm_0=-28.045 tm_pt_0=-202.000 tm_glue_0=5.000 ||| -225.045
+0 ||| A B C B C ||| lm_0=-28.045 tm_pt_0=-202.000 tm_glue_0=5.000 ||| -225.045
+0 ||| C C E A B ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| B B C B C ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| B A B D C ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| C C D A C ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| D C C A C ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| C B B C C ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| E A B B C ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| E C A B C ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| B C C C B ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| B A D C C ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| C B A D C ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| D B D A C ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| D D B A C ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| D B B B C ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| C A A E C ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| E C B A C ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| C D A C C ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| C A C C C ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| B C A D C ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| E E A A B ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| C B A E B ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| D E A A C ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| E A D A C ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| C B C C B ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| E B D A B ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| B B E A C ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| D B E A B ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| C D D A B ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| B C B C C ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| C A E B B ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| B B B D B ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| C C C B B ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| D A C A D ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| D A E A C ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| C B A A E ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| C A D B C ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| E D B A B ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| E B A C C ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| D C D C A ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| D D C A B ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| B A A B E ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| E A A B D ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| E B A E A ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| D C A D B ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| D A D D A ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| C C A B D ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| E D B B A ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| B A C D B ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| B C E C A ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| B A B C D ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| C D A E A ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| C C B A D ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| B A D E A ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| B B C A D ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| C E B B A ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| B C A C D ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| C A C E A ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| E C A A D ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| C D C C A ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| D B B A D ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| E B D B A ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| B A E C B ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| E B C C A ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| C A D A D ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| C B E C A ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| B A B E B ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| E E A B A ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| B C D B B ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| D B E B A ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| B D B C B ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| D D C B A ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| C D B B B ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| C D D B A ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| B B D C B ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| C C E B A ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| B E A C B ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| E C C B A ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| D A B D B ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| B E B C A ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| C E B A B ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| B D D C A ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| D B A B D ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| D E C A A ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| E B B B B ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| B E A D A ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| B C A A E ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| D D E A A ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| E A C B B ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| C B B E A ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| C E A B B ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| E C E A A ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| B A B A E ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| B B D D A ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| E C C A B ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| C E D A A ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| E D A B B ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| C B C D A ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| B A A D D ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| E E B A A ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| E A E A B ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| B A E D A ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| D B C B B ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| E D D A A ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| B C A E B ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| B C C D A ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| B D A D B ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| D C B D A ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| C B D B B ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| B D B D A ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| D C B C B ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| B C B E A ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| D D A A D ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| E A E B A ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| C A B B D ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| E A B A D ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| B D C A C ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| D A D C B ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| D A C B C ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| D D A B C ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| C C B B C ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| C B A C D ||| lm_0=-28.045 tm_pt_0=-203.000 tm_glue_0=5.000 ||| -226.045
+0 ||| A C E A C ||| lm_0=-28.045 tm_pt_0=-204.000 tm_glue_0=5.000 ||| -227.045
+0 ||| A B D B C ||| lm_0=-28.045 tm_pt_0=-204.000 tm_glue_0=5.000 ||| -227.045
+0 ||| A E B A C ||| lm_0=-28.045 tm_pt_0=-204.000 tm_glue_0=5.000 ||| -227.045
+0 ||| A A E B C ||| lm_0=-28.045 tm_pt_0=-204.000 tm_glue_0=5.000 ||| -227.045
+0 ||| A D D A C ||| lm_0=-28.045 tm_pt_0=-204.000 tm_glue_0=5.000 ||| -227.045
+0 ||| A B C C C ||| lm_0=-28.045 tm_pt_0=-204.000 tm_glue_0=5.000 ||| -227.045
+0 ||| A E C A B ||| lm_0=-28.045 tm_pt_0=-204.000 tm_glue_0=5.000 ||| -227.045
+0 ||| A A D D B ||| lm_0=-28.045 tm_pt_0=-204.000 tm_glue_0=5.000 ||| -227.045
+0 ||| A D E A B ||| lm_0=-28.045 tm_pt_0=-204.000 tm_glue_0=5.000 ||| -227.045
+0 ||| A D B B C ||| lm_0=-28.045 tm_pt_0=-204.000 tm_glue_0=5.000 ||| -227.045
+0 ||| A C D C B ||| lm_0=-28.045 tm_pt_0=-204.000 tm_glue_0=5.000 ||| -227.045
+0 ||| A B E B B ||| lm_0=-28.045 tm_pt_0=-204.000 tm_glue_0=5.000 ||| -227.045
+0 ||| A D E B A ||| lm_0=-28.045 tm_pt_0=-204.000 tm_glue_0=5.000 ||| -227.045
+0 ||| A D C B B ||| lm_0=-28.045 tm_pt_0=-204.000 tm_glue_0=5.000 ||| -227.045
+0 ||| A B C E A ||| lm_0=-28.045 tm_pt_0=-204.000 tm_glue_0=5.000 ||| -227.045
+0 ||| A B A E C ||| lm_0=-28.045 tm_pt_0=-204.000 tm_glue_0=5.000 ||| -227.045
+0 ||| A E C B A ||| lm_0=-28.045 tm_pt_0=-204.000 tm_glue_0=5.000 ||| -227.045
+0 ||| A A A C E ||| lm_0=-28.045 tm_pt_0=-204.000 tm_glue_0=5.000 ||| -227.045
+0 ||| A E E A A ||| lm_0=-28.045 tm_pt_0=-204.000 tm_glue_0=5.000 ||| -227.045
+0 ||| A A C B D ||| lm_0=-28.045 tm_pt_0=-204.000 tm_glue_0=5.000 ||| -227.045
+0 ||| A C D D A ||| lm_0=-28.045 tm_pt_0=-204.000 tm_glue_0=5.000 ||| -227.045
+0 ||| A D B A D ||| lm_0=-28.045 tm_pt_0=-204.000 tm_glue_0=5.000 ||| -227.045
+0 ||| A E A A D ||| lm_0=-28.045 tm_pt_0=-204.000 tm_glue_0=5.000 ||| -227.045
+0 ||| A C C B C ||| lm_0=-28.045 tm_pt_0=-204.000 tm_glue_0=5.000 ||| -227.045
+0 ||| A A E A D ||| lm_0=-28.045 tm_pt_0=-204.000 tm_glue_0=5.000 ||| -227.045
+0 ||| A B B B D ||| lm_0=-28.045 tm_pt_0=-204.000 tm_glue_0=5.000 ||| -227.045
+0 ||| A D A B D ||| lm_0=-28.045 tm_pt_0=-204.000 tm_glue_0=5.000 ||| -227.045
+0 ||| A B D A D ||| lm_0=-28.045 tm_pt_0=-204.000 tm_glue_0=5.000 ||| -227.045
+0 ||| A C C A D ||| lm_0=-28.045 tm_pt_0=-204.000 tm_glue_0=5.000 ||| -227.045
+0 ||| A E A B C ||| lm_0=-28.045 tm_pt_0=-204.000 tm_glue_0=5.000 ||| -227.045
+0 ||| A C B D B ||| lm_0=-28.045 tm_pt_0=-204.000 tm_glue_0=5.000 ||| -227.045
+0 ||| E C B B B ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| E C D A B ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| B B E B B ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| C A B E B ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| E B A D B ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| D A E B B ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| C B D C B ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| E A A E B ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| D B D B B ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| C D B C B ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| C A E C B ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| C C A E B ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| B C D C B ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| D D D A B ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| E B B C B ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| C D A D B ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| B E C A B ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| B D E A B ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| E A C C B ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| D B A E B ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| D E B A B ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| D D B B B ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| B C B D B ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| C E A C B ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| E D A C B ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| D C E A B ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| D B C C B ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| C A C D B ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| D C B A D ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| C B B D B ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| C C C C B ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| D C B B C ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| D A C C C ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| D C D A C ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| C B C B C ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| E A A D C ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| B A D D B ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| D C C B B ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| C C D B B ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| B D C B B ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| B E B A C ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| C B C A D ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| B D A B D ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| E A A C D ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| C A B C D ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| E C A C C ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| D C A B D ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| B B C C C ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| B A E A D ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| D D A C C ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| B B B B D ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| C D C A C ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| D A A E C ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| E A D B B ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| D B A C D ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| B A C B D ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| C B E A C ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| B D B B C ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| D B B C C ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| B E A A D ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| D A B B D ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| D B A D C ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| E B C A C ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| D E A B B ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| B A E B C ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| B C C A D ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| C C A C D ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| C C B C C ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| D A D A D ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| B B D B C ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| E D B C A ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| B D D A C ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| B E A B C ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| C A A D D ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| C C A D C ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| B D B A D ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| B E C B A ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| E A B C C ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| D D D B A ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| B C E A C ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| C C E C A ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| B B A E C ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| D E B B A ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| B C C B C ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| E A B E A ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| B A A C E ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| E B B D A ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| C A A B E ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| D E D A A ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| C A B A E ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| E C A E A ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| C C A A E ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| E C D B A ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| E A A A E ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| B E E A A ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| D B A A E ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| C C B E A ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| C A B D C ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| C E B C A ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| D A D B C ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| D A C E A ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| B B D A D ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| B B C E A ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| C A D C C ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| E A E C A ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| D B E C A ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| B D E B A ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| E B D C A ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| C A E D A ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| C D D C A ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| E E A C A ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| D D C C A ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| D B B E A ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| C A D E A ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| C B D D A ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| E C C C A ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| C C C D A ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| E A C D A ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| C D B D A ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| D D A E A ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| B C D D A ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| D B C D A ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| D C E B A ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| E D A D A ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| C E A D A ||| lm_0=-28.045 tm_pt_0=-205.000 tm_glue_0=5.000 ||| -228.045
+0 ||| A B E C B ||| lm_0=-28.045 tm_pt_0=-206.000 tm_glue_0=5.000 ||| -229.045
+0 ||| A A C E B ||| lm_0=-28.045 tm_pt_0=-206.000 tm_glue_0=5.000 ||| -229.045
+0 ||| A D A E B ||| lm_0=-28.045 tm_pt_0=-206.000 tm_glue_0=5.000 ||| -229.045
+0 ||| A C B B D ||| lm_0=-28.045 tm_pt_0=-206.000 tm_glue_0=5.000 ||| -229.045
+0 ||| A C D B C ||| lm_0=-28.045 tm_pt_0=-206.000 tm_glue_0=5.000 ||| -229.045
+0 ||| A D C C B ||| lm_0=-28.045 tm_pt_0=-206.000 tm_glue_0=5.000 ||| -229.045
+0 ||| A C C C C ||| lm_0=-28.045 tm_pt_0=-206.000 tm_glue_0=5.000 ||| -229.045
+0 ||| A A C C D ||| lm_0=-28.045 tm_pt_0=-206.000 tm_glue_0=5.000 ||| -229.045
+0 ||| A D D B B ||| lm_0=-28.045 tm_pt_0=-206.000 tm_glue_0=5.000 ||| -229.045
+0 ||| A D A C D ||| lm_0=-28.045 tm_pt_0=-206.000 tm_glue_0=5.000 ||| -229.045
+0 ||| A B B C D ||| lm_0=-28.045 tm_pt_0=-206.000 tm_glue_0=5.000 ||| -229.045
+0 ||| A C E B B ||| lm_0=-28.045 tm_pt_0=-206.000 tm_glue_0=5.000 ||| -229.045
+0 ||| A A C D C ||| lm_0=-28.045 tm_pt_0=-206.000 tm_glue_0=5.000 ||| -229.045
+0 ||| A B B E B ||| lm_0=-28.045 tm_pt_0=-206.000 tm_glue_0=5.000 ||| -229.045
+0 ||| A D A D C ||| lm_0=-28.045 tm_pt_0=-206.000 tm_glue_0=5.000 ||| -229.045
+0 ||| A E A C C ||| lm_0=-28.045 tm_pt_0=-206.000 tm_glue_0=5.000 ||| -229.045
+0 ||| A B D C C ||| lm_0=-28.045 tm_pt_0=-206.000 tm_glue_0=5.000 ||| -229.045
+0 ||| A A B E C ||| lm_0=-28.045 tm_pt_0=-206.000 tm_glue_0=5.000 ||| -229.045
+0 ||| A C D A D ||| lm_0=-28.045 tm_pt_0=-206.000 tm_glue_0=5.000 ||| -229.045
+0 ||| A A E C C ||| lm_0=-28.045 tm_pt_0=-206.000 tm_glue_0=5.000 ||| -229.045
+0 ||| A E B B B ||| lm_0=-28.045 tm_pt_0=-206.000 tm_glue_0=5.000 ||| -229.045
+0 ||| A E D A B ||| lm_0=-28.045 tm_pt_0=-206.000 tm_glue_0=5.000 ||| -229.045
+0 ||| A B D E A ||| lm_0=-28.045 tm_pt_0=-206.000 tm_glue_0=5.000 ||| -229.045
+0 ||| A C A E C ||| lm_0=-28.045 tm_pt_0=-206.000 tm_glue_0=5.000 ||| -229.045
+0 ||| A B A B E ||| lm_0=-28.045 tm_pt_0=-206.000 tm_glue_0=5.000 ||| -229.045
+0 ||| A D E C A ||| lm_0=-28.045 tm_pt_0=-206.000 tm_glue_0=5.000 ||| -229.045
+0 ||| A A C A E ||| lm_0=-28.045 tm_pt_0=-206.000 tm_glue_0=5.000 ||| -229.045
+0 ||| A D B C C ||| lm_0=-28.045 tm_pt_0=-206.000 tm_glue_0=5.000 ||| -229.045
+0 ||| A C C E A ||| lm_0=-28.045 tm_pt_0=-206.000 tm_glue_0=5.000 ||| -229.045
+0 ||| A A D B D ||| lm_0=-28.045 tm_pt_0=-206.000 tm_glue_0=5.000 ||| -229.045
+0 ||| A B B D C ||| lm_0=-28.045 tm_pt_0=-206.000 tm_glue_0=5.000 ||| -229.045
+0 ||| A A E E A ||| lm_0=-28.045 tm_pt_0=-206.000 tm_glue_0=5.000 ||| -229.045
+0 ||| A B B A E ||| lm_0=-28.045 tm_pt_0=-206.000 tm_glue_0=5.000 ||| -229.045
+0 ||| A D A A E ||| lm_0=-28.045 tm_pt_0=-206.000 tm_glue_0=5.000 ||| -229.045
+0 ||| A D B E A ||| lm_0=-28.045 tm_pt_0=-206.000 tm_glue_0=5.000 ||| -229.045
+0 ||| A B A D D ||| lm_0=-28.045 tm_pt_0=-206.000 tm_glue_0=5.000 ||| -229.045
+0 ||| A A A E D ||| lm_0=-28.045 tm_pt_0=-206.000 tm_glue_0=5.000 ||| -229.045
+0 ||| A B E D A ||| lm_0=-28.045 tm_pt_0=-206.000 tm_glue_0=5.000 ||| -229.045
+0 ||| A B C D B ||| lm_0=-28.045 tm_pt_0=-206.000 tm_glue_0=5.000 ||| -229.045
+0 ||| A E C C A ||| lm_0=-28.045 tm_pt_0=-206.000 tm_glue_0=5.000 ||| -229.045
+0 ||| A E A E A ||| lm_0=-28.045 tm_pt_0=-206.000 tm_glue_0=5.000 ||| -229.045
+0 ||| A D C D A ||| lm_0=-28.045 tm_pt_0=-206.000 tm_glue_0=5.000 ||| -229.045
+0 ||| A E D B A ||| lm_0=-28.045 tm_pt_0=-206.000 tm_glue_0=5.000 ||| -229.045
+0 ||| B A C A E ||| lm_0=-28.045 tm_pt_0=-207.000 tm_glue_0=5.000 ||| -230.045
+0 ||| E E A A C ||| lm_0=-28.045 tm_pt_0=-207.000 tm_glue_0=5.000 ||| -230.045
+0 ||| D C D B B ||| lm_0=-28.045 tm_pt_0=-207.000 tm_glue_0=5.000 ||| -230.045
+0 ||| E B C B B ||| lm_0=-28.045 tm_pt_0=-207.000 tm_glue_0=5.000 ||| -230.045
+0 ||| C C D C B ||| lm_0=-28.045 tm_pt_0=-207.000 tm_glue_0=5.000 ||| -230.045
+0 ||| D C C C B ||| lm_0=-28.045 tm_pt_0=-207.000 tm_glue_0=5.000 ||| -230.045
+0 ||| B B B C D ||| lm_0=-28.045 tm_pt_0=-207.000 tm_glue_0=5.000 ||| -230.045
+0 ||| C C E A C ||| lm_0=-28.045 tm_pt_0=-207.000 tm_glue_0=5.000 ||| -230.045
+0 ||| B B C D B ||| lm_0=-28.045 tm_pt_0=-207.000 tm_glue_0=5.000 ||| -230.045
+0 ||| B C C C C ||| lm_0=-28.045 tm_pt_0=-207.000 tm_glue_0=5.000 ||| -230.045
+0 ||| C D C B B ||| lm_0=-28.045 tm_pt_0=-207.000 tm_glue_0=5.000 ||| -230.045
+0 ||| E A D C B ||| lm_0=-28.045 tm_pt_0=-207.000 tm_glue_0=5.000 ||| -230.045
+0 ||| C B E B B ||| lm_0=-28.045 tm_pt_0=-207.000 tm_glue_0=5.000 ||| -230.045
+0 ||| B B E C B ||| lm_0=-28.045 tm_pt_0=-207.000 tm_glue_0=5.000 ||| -230.045
+0 ||| B D C C B ||| lm_0=-28.045 tm_pt_0=-207.000 tm_glue_0=5.000 ||| -230.045
+0 ||| E C A D B ||| lm_0=-28.045 tm_pt_0=-207.000 tm_glue_0=5.000 ||| -230.045
+0 ||| C E C A B ||| lm_0=-28.045 tm_pt_0=-207.000 tm_glue_0=5.000 ||| -230.045
+0 ||| E C B C B ||| lm_0=-28.045 tm_pt_0=-207.000 tm_glue_0=5.000 ||| -230.045
+0 ||| B D D B B ||| lm_0=-28.045 tm_pt_0=-207.000 tm_glue_0=5.000 ||| -230.045
+0 ||| D E A C B ||| lm_0=-28.045 tm_pt_0=-207.000 tm_glue_0=5.000 ||| -230.045
+0 ||| E A B D B ||| lm_0=-28.045 tm_pt_0=-207.000 tm_glue_0=5.000 ||| -230.045
+0 ||| D B D C B ||| lm_0=-28.045 tm_pt_0=-207.000 tm_glue_0=5.000 ||| -230.045
+0 ||| B B B E B ||| lm_0=-28.045 tm_pt_0=-207.000 tm_glue_0=5.000 ||| -230.045
+0 ||| D D A D B ||| lm_0=-28.045 tm_pt_0=-207.000 tm_glue_0=5.000 ||| -230.045
+0 ||| D A E C B ||| lm_0=-28.045 tm_pt_0=-207.000 tm_glue_0=5.000 ||| -230.045
+0 ||| B D A E B ||| lm_0=-28.045 tm_pt_0=-207.000 tm_glue_0=5.000 ||| -230.045
+0 ||| E D C A B ||| lm_0=-28.045 tm_pt_0=-207.000 tm_glue_0=5.000 ||| -230.045
+0 ||| B C E B B ||| lm_0=-28.045 tm_pt_0=-207.000 tm_glue_0=5.000 ||| -230.045
+0 ||| D B B D B ||| lm_0=-28.045 tm_pt_0=-207.000 tm_glue_0=5.000 ||| -230.045
+0 ||| C D E A B ||| lm_0=-28.045 tm_pt_0=-207.000 tm_glue_0=5.000 ||| -230.045
+0 ||| C A E B C ||| lm_0=-28.045 tm_pt_0=-207.000 tm_glue_0=5.000 ||| -230.045
+0 ||| D C A E B ||| lm_0=-28.045 tm_pt_0=-207.000 tm_glue_0=5.000 ||| -230.045
+0 ||| C D B A D ||| lm_0=-28.045 tm_pt_0=-207.000 tm_glue_0=5.000 ||| -230.045
+0 ||| B B B D C ||| lm_0=-28.045 tm_pt_0=-207.000 tm_glue_0=5.000 ||| -230.045
+0 ||| D D B C B ||| lm_0=-28.045 tm_pt_0=-207.000 tm_glue_0=5.000 ||| -230.045
+0 ||| B E D A B ||| lm_0=-28.045 tm_pt_0=-207.000 tm_glue_0=5.000 ||| -230.045
+0 ||| B A C E B ||| lm_0=-28.045 tm_pt_0=-207.000 tm_glue_0=5.000 ||| -230.045
+0 ||| D A B E B ||| lm_0=-28.045 tm_pt_0=-207.000 tm_glue_0=5.000 ||| -230.045
+0 ||| C B D A D ||| lm_0=-28.045 tm_pt_0=-207.000 tm_glue_0=5.000 ||| -230.045
+0 ||| B E B B B ||| lm_0=-28.045 tm_pt_0=-207.000 tm_glue_0=5.000 ||| -230.045
+0 ||| C B A E C ||| lm_0=-28.045 tm_pt_0=-207.000 tm_glue_0=5.000 ||| -230.045
+0 ||| C D D A C ||| lm_0=-28.045 tm_pt_0=-207.000 tm_glue_0=5.000 ||| -230.045
+0 ||| C B C C C ||| lm_0=-28.045 tm_pt_0=-207.000 tm_glue_0=5.000 ||| -230.045
+0 ||| D B E A C ||| lm_0=-28.045 tm_pt_0=-207.000 tm

<TRUNCATED>


[7/9] incubator-joshua git commit: Update existing unit tests to proper decoder/vocab cleanup. Also added two core tests to UnitTests to test phrase-based decoding and kbest extraction.

Posted by mj...@apache.org.
Update existing unit tests to proper decoder/vocab cleanup. Also added two core tests to UnitTests to test phrase-based decoding and kbest extraction.


Project: http://git-wip-us.apache.org/repos/asf/incubator-joshua/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-joshua/commit/7fdc4cd7
Tree: http://git-wip-us.apache.org/repos/asf/incubator-joshua/tree/7fdc4cd7
Diff: http://git-wip-us.apache.org/repos/asf/incubator-joshua/diff/7fdc4cd7

Branch: refs/heads/master
Commit: 7fdc4cd72df2f4b94712c222202a458b5dc3361a
Parents: b2ec94f
Author: Felix Hieber <fh...@amazon.com>
Authored: Fri Nov 20 16:24:04 2015 +0530
Committer: Kellen Sunderland <ke...@amazon.com>
Committed: Mon Apr 25 19:47:45 2016 -0700

----------------------------------------------------------------------
 resources/kbest_extraction/glue-grammar         |    3 +
 resources/kbest_extraction/grammar              |   25 +
 resources/kbest_extraction/joshua.config        |   27 +
 resources/kbest_extraction/lm.gz                |  Bin 0 -> 2466496 bytes
 resources/kbest_extraction/output.gold          | 3126 ++++++++++++++++++
 resources/kbest_extraction/output.scores.gold   | 3126 ++++++++++++++++++
 resources/phrase_decoder/config                 |   29 +
 resources/phrase_decoder/constrained.config     |   28 +
 .../phrase_decoder/constrained.output.gold      |    5 +
 resources/phrase_decoder/lm.1.gz                |  Bin 0 -> 2235 bytes
 resources/phrase_decoder/output.gold            |    1 +
 resources/phrase_decoder/rules.1.gz             |  Bin 0 -> 2998042 bytes
 .../kbest_extraction/KBestExtractionTest.java   |   62 +
 .../ConstrainedPhraseDecodingTest.java          |   59 +
 .../phrase/decode/PhraseDecodingTest.java       |   59 +
 tst/joshua/system/AlignmentMapTest.java         |    1 +
 tst/joshua/system/KenLmTest.java                |   48 +
 .../system/MultithreadedTranslationTests.java   |    2 -
 18 files changed, 6599 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/7fdc4cd7/resources/kbest_extraction/glue-grammar
----------------------------------------------------------------------
diff --git a/resources/kbest_extraction/glue-grammar b/resources/kbest_extraction/glue-grammar
new file mode 100644
index 0000000..6a1162f
--- /dev/null
+++ b/resources/kbest_extraction/glue-grammar
@@ -0,0 +1,3 @@
+[GOAL] ||| <s> ||| <s> ||| 0
+[GOAL] ||| [GOAL,1] [X,2] ||| [GOAL,1] [X,2] ||| -1
+[GOAL] ||| [GOAL,1] </s> ||| [GOAL,1] </s> ||| 0

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/7fdc4cd7/resources/kbest_extraction/grammar
----------------------------------------------------------------------
diff --git a/resources/kbest_extraction/grammar b/resources/kbest_extraction/grammar
new file mode 100644
index 0000000..a03b2d9
--- /dev/null
+++ b/resources/kbest_extraction/grammar
@@ -0,0 +1,25 @@
+[X] ||| a ||| A ||| 2 
+[X] ||| a ||| B ||| 3
+[X] ||| a ||| C ||| 5
+[X] ||| a ||| D ||| 7
+[X] ||| a ||| E ||| 11
+[X] ||| b ||| A ||| 13
+[X] ||| b ||| B ||| 17
+[X] ||| b ||| C ||| 19
+[X] ||| b ||| D ||| 23
+[X] ||| b ||| E ||| 29
+[X] ||| c ||| A ||| 31
+[X] ||| c ||| B ||| 37
+[X] ||| c ||| C ||| 41
+[X] ||| c ||| D ||| 43
+[X] ||| c ||| E ||| 47
+[X] ||| d ||| A ||| 53
+[X] ||| d ||| B ||| 59
+[X] ||| d ||| C ||| 61
+[X] ||| d ||| D ||| 67
+[X] ||| d ||| E ||| 71
+[X] ||| e ||| A ||| 73
+[X] ||| e ||| B ||| 79
+[X] ||| e ||| C ||| 83
+[X] ||| e ||| D ||| 89
+[X] ||| e ||| E ||| 97

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/7fdc4cd7/resources/kbest_extraction/joshua.config
----------------------------------------------------------------------
diff --git a/resources/kbest_extraction/joshua.config b/resources/kbest_extraction/joshua.config
new file mode 100644
index 0000000..cdab98e
--- /dev/null
+++ b/resources/kbest_extraction/joshua.config
@@ -0,0 +1,27 @@
+feature-function = StateMinimizingLanguageModel -lm_type kenlm -lm_order 5 -lm_file resources/kbest_extraction/lm.gz
+
+tm = thrax -owner pt -maxspan 12 -path resources/kbest_extraction/grammar
+tm = thrax -owner glue -maxspan -1 -path resources/kbest_extraction/glue-grammar
+
+mark_oovs=false
+
+#tm config
+default_non_terminal=X
+goalSymbol=GOAL
+
+#pruning config
+pop-limit=100
+
+#nbest config
+use_unique_nbest=true
+top-n = 3126
+
+#feature_function = WordPenalty
+feature_function = OOVPenalty
+
+# Model Weights ####
+
+lm_0 1
+tm_pt_0 1
+tm_glue_0 1
+OOVPenalty 10000

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/7fdc4cd7/resources/kbest_extraction/lm.gz
----------------------------------------------------------------------
diff --git a/resources/kbest_extraction/lm.gz b/resources/kbest_extraction/lm.gz
new file mode 100644
index 0000000..a26335e
Binary files /dev/null and b/resources/kbest_extraction/lm.gz differ


[4/9] incubator-joshua git commit: Update existing unit tests to proper decoder/vocab cleanup. Also added two core tests to UnitTests to test phrase-based decoding and kbest extraction.

Posted by mj...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/7fdc4cd7/resources/phrase_decoder/config
----------------------------------------------------------------------
diff --git a/resources/phrase_decoder/config b/resources/phrase_decoder/config
new file mode 100644
index 0000000..de781e3
--- /dev/null
+++ b/resources/phrase_decoder/config
@@ -0,0 +1,29 @@
+tm = moses -owner pt -maxspan 0 -path resources/phrase_decoder/rules.1.gz -max-source-len 5
+feature-function = StateMinimizingLanguageModel -lm_order 5 -lm_file resources/phrase_decoder/lm.1.gz
+
+search = stack
+
+mark-oovs = false
+pop-limit = 10
+top-n = 1
+
+output-format = %i ||| %s ||| %f ||| %c
+
+include-align-index = true
+reordering-limit = 6
+
+# And these are the feature functions to activate.
+feature-function = OOVPenalty
+feature-function = WordPenalty
+feature-function = Distortion
+feature-function = PhrasePenalty -owner pt
+
+OOVPenalty 1.0
+Distortion 0.114849
+WordPenalty -0.201544
+PhrasePenalty -0.236965
+tm_pt_0 0.0370068
+tm_pt_1 0.0495759
+tm_pt_2 0.196742
+tm_pt_3 0.0745423
+lm_0 0.204412452147565

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/7fdc4cd7/resources/phrase_decoder/constrained.config
----------------------------------------------------------------------
diff --git a/resources/phrase_decoder/constrained.config b/resources/phrase_decoder/constrained.config
new file mode 100644
index 0000000..4642650
--- /dev/null
+++ b/resources/phrase_decoder/constrained.config
@@ -0,0 +1,28 @@
+tm = moses pt 0 resources/phrase_decoder/rules.1.gz
+
+lm = kenlm 5 true false 100 resources/phrase_decoder/lm.1.gz
+
+mark-oovs = false
+pop-limit = 10
+top-n = 5
+
+output-format = %i ||| %s ||| %f ||| %c
+
+include-align-index = true
+reordering-limit = 10
+
+# And these are the feature functions to activate.
+feature-function = OOVPenalty
+feature-function = WordPenalty
+feature-function = Distortion
+feature-function = PhrasePenalty -owner pt
+
+OOVPenalty 1.0
+Distortion 0.114849
+WordPenalty -0.201544
+PhrasePenalty -0.236965
+tm_pt_0 0.0370068
+tm_pt_1 0.0495759
+tm_pt_2 0.196742
+tm_pt_3 0.0745423
+lm_0 0.204412452147565

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/7fdc4cd7/resources/phrase_decoder/constrained.output.gold
----------------------------------------------------------------------
diff --git a/resources/phrase_decoder/constrained.output.gold b/resources/phrase_decoder/constrained.output.gold
new file mode 100644
index 0000000..238387c
--- /dev/null
+++ b/resources/phrase_decoder/constrained.output.gold
@@ -0,0 +1,5 @@
+0 ||| President Obama |8-8| to |7-7| hinder |4-4| a strategy |0-1| for |3-3| Republican |2-2| re @-@ election |5-6| ||| tm_pt_0=-15.792 tm_pt_1=-17.550 tm_pt_2=-14.599 tm_pt_3=-18.298 lm_0=-29.452 OOVPenalty=0.000 WordPenalty=-4.777 Distortion=-24.000 PhrasePenalty=7.000 ||| -15.163
+0 ||| President Obama |8-8| to |7-7| hinder |4-4| a |0-0| strategy |1-1| for |3-3| Republican |2-2| re @-@ election |5-6| ||| tm_pt_0=-16.919 tm_pt_1=-17.550 tm_pt_2=-14.917 tm_pt_3=-18.298 lm_0=-29.452 OOVPenalty=0.000 WordPenalty=-4.777 Distortion=-24.000 PhrasePenalty=8.000 ||| -15.505
+0 ||| President Obama |8-8| to hinder |3-4| a strategy |0-1| for |7-7| Republican |2-2| re @-@ election |5-6| ||| tm_pt_0=-14.986 tm_pt_1=-17.951 tm_pt_2=-14.075 tm_pt_3=-18.699 lm_0=-29.452 OOVPenalty=0.000 WordPenalty=-4.777 Distortion=-32.000 PhrasePenalty=6.000 ||| -15.762
+0 ||| President Obama |8-8| to hinder |3-4| a |0-0| strategy |1-1| for |7-7| Republican |2-2| re @-@ election |5-6| ||| tm_pt_0=-16.112 tm_pt_1=-17.951 tm_pt_2=-14.393 tm_pt_3=-18.699 lm_0=-29.452 OOVPenalty=0.000 WordPenalty=-4.777 Distortion=-32.000 PhrasePenalty=7.000 ||| -16.103
+0 ||| President Obama |8-8| to |3-3| hinder |4-4| a strategy |0-1| for |7-7| Republican |2-2| re @-@ election |5-6| ||| tm_pt_0=-16.329 tm_pt_1=-17.951 tm_pt_2=-15.136 tm_pt_3=-18.699 lm_0=-29.452 OOVPenalty=0.000 WordPenalty=-4.777 Distortion=-32.000 PhrasePenalty=7.000 ||| -16.257

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/7fdc4cd7/resources/phrase_decoder/lm.1.gz
----------------------------------------------------------------------
diff --git a/resources/phrase_decoder/lm.1.gz b/resources/phrase_decoder/lm.1.gz
new file mode 100644
index 0000000..3f4c453
Binary files /dev/null and b/resources/phrase_decoder/lm.1.gz differ

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/7fdc4cd7/resources/phrase_decoder/output.gold
----------------------------------------------------------------------
diff --git a/resources/phrase_decoder/output.gold b/resources/phrase_decoder/output.gold
new file mode 100644
index 0000000..509a3de
--- /dev/null
+++ b/resources/phrase_decoder/output.gold
@@ -0,0 +1 @@
+0 ||| a strategy |0-1| republican |2-2| to hinder |3-4| reelection |5-6| Obama |7-8| ||| tm_pt_0=-9.702 tm_pt_1=-10.800 tm_pt_2=-7.543 tm_pt_3=-8.555 lm_0=-19.117 OOVPenalty=0.000 WordPenalty=-3.040 Distortion=0.000 PhrasePenalty=5.000 ||| -7.496

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/7fdc4cd7/resources/phrase_decoder/rules.1.gz
----------------------------------------------------------------------
diff --git a/resources/phrase_decoder/rules.1.gz b/resources/phrase_decoder/rules.1.gz
new file mode 100644
index 0000000..14466e9
Binary files /dev/null and b/resources/phrase_decoder/rules.1.gz differ

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/7fdc4cd7/tst/joshua/decoder/kbest_extraction/KBestExtractionTest.java
----------------------------------------------------------------------
diff --git a/tst/joshua/decoder/kbest_extraction/KBestExtractionTest.java b/tst/joshua/decoder/kbest_extraction/KBestExtractionTest.java
new file mode 100644
index 0000000..af6d670
--- /dev/null
+++ b/tst/joshua/decoder/kbest_extraction/KBestExtractionTest.java
@@ -0,0 +1,62 @@
+package joshua.decoder.kbest_extraction;
+
+import java.io.IOException;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+
+import joshua.corpus.Vocabulary;
+import joshua.decoder.Decoder;
+import joshua.decoder.JoshuaConfiguration;
+import joshua.decoder.Translation;
+import joshua.decoder.segment_file.Sentence;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import static com.google.common.base.Charsets.UTF_8;
+import static java.nio.file.Files.readAllBytes;
+import static joshua.decoder.ff.FeatureVector.DENSE_FEATURE_NAMES;
+import static org.junit.Assert.assertEquals;
+
+/**
+ * Reimplements the kbest extraction regression test
+ * TODO (fhieber): this test strangely only works with StateMinimizing KenLM.
+ * This is to be investigated
+ */
+public class KBestExtractionTest {
+  
+  private static final String CONFIG = "resources/kbest_extraction/joshua.config";
+  private static final String INPUT = "a b c d e";
+  private static final Path GOLD_PATH = Paths.get("resources/kbest_extraction/output.scores.gold");
+  
+  private JoshuaConfiguration joshuaConfig = null;
+  private Decoder decoder = null;
+  
+  @Before
+  public void setUp() throws Exception {
+    joshuaConfig = new JoshuaConfiguration();
+    joshuaConfig.readConfigFile(CONFIG);
+    joshuaConfig.outputFormat = "%i ||| %s ||| %c";
+    decoder = new Decoder(joshuaConfig, "");
+  }
+  
+  @After
+  public void tearDown() throws Exception {
+    decoder.cleanUp();
+    decoder = null;
+  }
+  
+  @Test
+  public void givenInput_whenKbestExtraction_thenOutputIsAsExpected() throws IOException {
+    final String translation = decode(INPUT).toString();
+    final String gold = new String(readAllBytes(GOLD_PATH), UTF_8);
+    assertEquals(gold, translation);
+  }
+  
+  private Translation decode(String input) {
+    final Sentence sentence = new Sentence(input, 0, joshuaConfig);
+    return decoder.decode(sentence);
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/7fdc4cd7/tst/joshua/decoder/phrase/constrained/ConstrainedPhraseDecodingTest.java
----------------------------------------------------------------------
diff --git a/tst/joshua/decoder/phrase/constrained/ConstrainedPhraseDecodingTest.java b/tst/joshua/decoder/phrase/constrained/ConstrainedPhraseDecodingTest.java
new file mode 100644
index 0000000..6508a63
--- /dev/null
+++ b/tst/joshua/decoder/phrase/constrained/ConstrainedPhraseDecodingTest.java
@@ -0,0 +1,59 @@
+package joshua.decoder.phrase.constrained;
+
+import java.io.IOException;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+
+import joshua.corpus.Vocabulary;
+import joshua.decoder.Decoder;
+import joshua.decoder.JoshuaConfiguration;
+import joshua.decoder.Translation;
+import joshua.decoder.segment_file.Sentence;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import static com.google.common.base.Charsets.UTF_8;
+import static java.nio.file.Files.readAllBytes;
+import static joshua.decoder.ff.FeatureVector.DENSE_FEATURE_NAMES;
+import static org.junit.Assert.assertEquals;
+
+/**
+ * Reimplements the constrained phrase decoding test
+ */
+public class ConstrainedPhraseDecodingTest {
+  
+  private static final String CONFIG = "resources/phrase_decoder/constrained.config";
+  private static final String INPUT = "una estrategia republicana para obstaculizar la reelección de Obama ||| President Obama to hinder a strategy for Republican re @-@ election";
+  private static final Path GOLD_PATH = Paths.get("resources/phrase_decoder/constrained.output.gold");
+  
+  private JoshuaConfiguration joshuaConfig = null;
+  private Decoder decoder = null;
+  
+  @Before
+  public void setUp() throws Exception {
+    joshuaConfig = new JoshuaConfiguration();
+    joshuaConfig.readConfigFile(CONFIG);
+    decoder = new Decoder(joshuaConfig, "");
+  }
+  
+  @After
+  public void tearDown() throws Exception {
+    decoder.cleanUp();
+    decoder = null;
+  }
+  
+  @Test
+  public void givenInput_whenConstrainedPhraseDecoding_thenOutputIsAsExpected() throws IOException {
+    final String translation = decode(INPUT).toString();
+    final String gold = new String(readAllBytes(GOLD_PATH), UTF_8);
+    assertEquals(gold, translation);
+  }
+  
+  private Translation decode(String input) {
+    final Sentence sentence = new Sentence(input, 0, joshuaConfig);
+    return decoder.decode(sentence);
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/7fdc4cd7/tst/joshua/decoder/phrase/decode/PhraseDecodingTest.java
----------------------------------------------------------------------
diff --git a/tst/joshua/decoder/phrase/decode/PhraseDecodingTest.java b/tst/joshua/decoder/phrase/decode/PhraseDecodingTest.java
new file mode 100644
index 0000000..707fa1b
--- /dev/null
+++ b/tst/joshua/decoder/phrase/decode/PhraseDecodingTest.java
@@ -0,0 +1,59 @@
+package joshua.decoder.phrase.decode;
+
+import java.io.IOException;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+
+import joshua.corpus.Vocabulary;
+import joshua.decoder.Decoder;
+import joshua.decoder.JoshuaConfiguration;
+import joshua.decoder.Translation;
+import joshua.decoder.segment_file.Sentence;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import static com.google.common.base.Charsets.UTF_8;
+import static java.nio.file.Files.readAllBytes;
+import static joshua.decoder.ff.FeatureVector.DENSE_FEATURE_NAMES;
+import static org.junit.Assert.assertEquals;
+
+/**
+ * Reimplements the constrained phrase decoding test
+ */
+public class PhraseDecodingTest {
+  
+  private static final String CONFIG = "resources/phrase_decoder/config";
+  private static final String INPUT = "una estrategia republicana para obstaculizar la reelección de Obama";
+  private static final Path GOLD_PATH = Paths.get("resources/phrase_decoder/output.gold");
+  
+  private JoshuaConfiguration joshuaConfig = null;
+  private Decoder decoder = null;
+  
+  @Before
+  public void setUp() throws Exception {
+    joshuaConfig = new JoshuaConfiguration();
+    joshuaConfig.readConfigFile(CONFIG);
+    decoder = new Decoder(joshuaConfig, "");
+  }
+  
+  @After
+  public void tearDown() throws Exception {
+    decoder.cleanUp();
+    decoder = null;
+  }
+  
+  @Test
+  public void givenInput_whenPhraseDecoding_thenOutputIsAsExpected() throws IOException {
+    final String translation = decode(INPUT).toString();
+    final String gold = new String(readAllBytes(GOLD_PATH), UTF_8);
+    assertEquals(gold, translation);
+  }
+  
+  private Translation decode(String input) {
+    final Sentence sentence = new Sentence(input, 0, joshuaConfig);
+    return decoder.decode(sentence);
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/7fdc4cd7/tst/joshua/system/AlignmentMapTest.java
----------------------------------------------------------------------
diff --git a/tst/joshua/system/AlignmentMapTest.java b/tst/joshua/system/AlignmentMapTest.java
index 0eee8c8..7d383a8 100644
--- a/tst/joshua/system/AlignmentMapTest.java
+++ b/tst/joshua/system/AlignmentMapTest.java
@@ -22,6 +22,7 @@ public class AlignmentMapTest {
 
   @Before
   public void setUp() throws Exception {
+    Vocabulary.clear();
     int[] sourceRhs = {Vocabulary.id("A1"),Vocabulary.id("A2"),-1,Vocabulary.id("B"),Vocabulary.id("C"),-2};
     int[] targetRhs = {Vocabulary.id("c"),Vocabulary.id("b1"),-1,Vocabulary.id("b2"),-4,Vocabulary.id("a")};
     int arity = 2; // 2 non terminals

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/7fdc4cd7/tst/joshua/system/KenLmTest.java
----------------------------------------------------------------------
diff --git a/tst/joshua/system/KenLmTest.java b/tst/joshua/system/KenLmTest.java
new file mode 100644
index 0000000..8445410
--- /dev/null
+++ b/tst/joshua/system/KenLmTest.java
@@ -0,0 +1,48 @@
+package joshua.system;
+
+import static org.junit.Assert.assertEquals;
+import joshua.corpus.Vocabulary;
+import joshua.decoder.Decoder;
+import joshua.decoder.JoshuaConfiguration;
+import joshua.decoder.ff.lm.KenLM;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Integration test for KenLM integration into Joshua This test will setup a
+ * Joshua instance that loads libkenlm.so
+ *
+ * @author kellens
+ */
+public class KenLmTest {
+
+  @Test
+  public void givenKenLmUsed_whenTranslationsCalled_thenVerifyJniWithSampleCall() {
+    // GIVEN
+    String languageModelPath = "resources/kenlm/oilers.kenlm";
+
+    // WHEN
+    KenLM kenLm = new KenLM(3, languageModelPath);
+    Vocabulary.registerLanguageModel(kenLm);
+    int[] words = Vocabulary.addAll("Wayne Gretzky");
+    float probability = kenLm.prob(words);
+
+    // THEN
+    assertEquals("Found the wrong probability for 2-gram \"Wayne Gretzky\"", -0.99f, probability,
+        Float.MIN_VALUE);
+  }
+  
+  @Before
+  public void setUp() throws Exception {
+    Vocabulary.clear();
+    Vocabulary.unregisterLanguageModels();
+  }
+  
+  @After
+  public void tearDown() throws Exception {
+    Vocabulary.clear();
+    Vocabulary.unregisterLanguageModels();
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/7fdc4cd7/tst/joshua/system/MultithreadedTranslationTests.java
----------------------------------------------------------------------
diff --git a/tst/joshua/system/MultithreadedTranslationTests.java b/tst/joshua/system/MultithreadedTranslationTests.java
index b8d8af0..679b254 100644
--- a/tst/joshua/system/MultithreadedTranslationTests.java
+++ b/tst/joshua/system/MultithreadedTranslationTests.java
@@ -33,7 +33,6 @@ public class MultithreadedTranslationTests {
 
   @Before
   public void setUp() throws Exception {
-    Vocabulary.clear();
     joshuaConfig = new JoshuaConfiguration();
     joshuaConfig.search_algorithm = "cky";
     joshuaConfig.mark_oovs = false;
@@ -71,7 +70,6 @@ public class MultithreadedTranslationTests {
 
   @After
   public void tearDown() throws Exception {
-    Vocabulary.clear();
     this.decoder.cleanUp();
     this.decoder = null;
     Decoder.VERBOSE = previousLogLevel;


[5/9] incubator-joshua git commit: Update existing unit tests to proper decoder/vocab cleanup. Also added two core tests to UnitTests to test phrase-based decoding and kbest extraction.

Posted by mj...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/7fdc4cd7/resources/kbest_extraction/output.scores.gold
----------------------------------------------------------------------
diff --git a/resources/kbest_extraction/output.scores.gold b/resources/kbest_extraction/output.scores.gold
new file mode 100644
index 0000000..2f8b814
--- /dev/null
+++ b/resources/kbest_extraction/output.scores.gold
@@ -0,0 +1,3126 @@
+0 ||| A A A A A ||| -195.045
+0 ||| B A A A A ||| -196.045
+0 ||| C A A A A ||| -198.045
+0 ||| A B A A A ||| -199.045
+0 ||| B B A A A ||| -200.045
+0 ||| D A A A A ||| -200.045
+0 ||| A A A A B ||| -201.045
+0 ||| A A A B A ||| -201.045
+0 ||| A A B A A ||| -201.045
+0 ||| A C A A A ||| -201.045
+0 ||| B A A A B ||| -202.045
+0 ||| B A A B A ||| -202.045
+0 ||| B A B A A ||| -202.045
+0 ||| B C A A A ||| -202.045
+0 ||| C B A A A ||| -202.045
+0 ||| A A A C A ||| -203.045
+0 ||| C A A A B ||| -204.045
+0 ||| C A A B A ||| -204.045
+0 ||| B A A C A ||| -204.045
+0 ||| C A B A A ||| -204.045
+0 ||| E A A A A ||| -204.045
+0 ||| C C A A A ||| -204.045
+0 ||| D B A A A ||| -204.045
+0 ||| A A A A C ||| -205.045
+0 ||| A B A B A ||| -205.045
+0 ||| A B A A B ||| -205.045
+0 ||| A A C A A ||| -205.045
+0 ||| A B B A A ||| -205.045
+0 ||| A D A A A ||| -205.045
+0 ||| B A A A C ||| -206.045
+0 ||| B B A A B ||| -206.045
+0 ||| B B A B A ||| -206.045
+0 ||| D A A A B ||| -206.045
+0 ||| B A C A A ||| -206.045
+0 ||| D A A B A ||| -206.045
+0 ||| B B B A A ||| -206.045
+0 ||| C A A C A ||| -206.045
+0 ||| D A B A A ||| -206.045
+0 ||| B D A A A ||| -206.045
+0 ||| D C A A A ||| -206.045
+0 ||| A A B A B ||| -207.045
+0 ||| A A B B A ||| -207.045
+0 ||| A A A B B ||| -207.045
+0 ||| A B A C A ||| -207.045
+0 ||| A C A A B ||| -207.045
+0 ||| A C A B A ||| -207.045
+0 ||| A C B A A ||| -207.045
+0 ||| A A D A A ||| -207.045
+0 ||| C A A A C ||| -208.045
+0 ||| B A A B B ||| -208.045
+0 ||| C B A B A ||| -208.045
+0 ||| B A B A B ||| -208.045
+0 ||| B C A B A ||| -208.045
+0 ||| B C A A B ||| -208.045
+0 ||| B A B B A ||| -208.045
+0 ||| C B A A B ||| -208.045
+0 ||| D A A C A ||| -208.045
+0 ||| C A C A A ||| -208.045
+0 ||| B B A C A ||| -208.045
+0 ||| E B A A A ||| -208.045
+0 ||| B C B A A ||| -208.045
+0 ||| C B B A A ||| -208.045
+0 ||| C D A A A ||| -208.045
+0 ||| B A D A A ||| -208.045
+0 ||| A B A A C ||| -209.045
+0 ||| A A A C B ||| -209.045
+0 ||| A A B C A ||| -209.045
+0 ||| A B C A A ||| -209.045
+0 ||| A C A C A ||| -209.045
+0 ||| A A A D A ||| -209.045
+0 ||| C A A B B ||| -210.045
+0 ||| D A A A C ||| -210.045
+0 ||| C A B A B ||| -210.045
+0 ||| B A A C B ||| -210.045
+0 ||| C C A A B ||| -210.045
+0 ||| D B A A B ||| -210.045
+0 ||| B B A A C ||| -210.045
+0 ||| E A A A B ||| -210.045
+0 ||| D B A B A ||| -210.045
+0 ||| D A C A A ||| -210.045
+0 ||| E A A B A ||| -210.045
+0 ||| B A A D A ||| -210.045
+0 ||| D D A A A ||| -210.045
+0 ||| B C A C A ||| -210.045
+0 ||| C A D A A ||| -210.045
+0 ||| C A B B A ||| -210.045
+0 ||| E A B A A ||| -210.045
+0 ||| C B A C A ||| -210.045
+0 ||| E C A A A ||| -210.045
+0 ||| C C A B A ||| -210.045
+0 ||| B B C A A ||| -210.045
+0 ||| B A B C A ||| -210.045
+0 ||| C C B A A ||| -210.045
+0 ||| D B B A A ||| -210.045
+0 ||| A B A B B ||| -211.045
+0 ||| A B B B A ||| -211.045
+0 ||| A A A B C ||| -211.045
+0 ||| A D A B A ||| -211.045
+0 ||| A C A A C ||| -211.045
+0 ||| A A C B A ||| -211.045
+0 ||| A A C A B ||| -211.045
+0 ||| A C C A A ||| -211.045
+0 ||| A A B A C ||| -211.045
+0 ||| A B D A A ||| -211.045
+0 ||| A A A A D ||| -211.045
+0 ||| A A E A A ||| -211.045
+0 ||| A B B A B ||| -211.045
+0 ||| A E A A A ||| -211.045
+0 ||| A D A A B ||| -211.045
+0 ||| A D B A A ||| -211.045
+0 ||| B D A A B ||| -212.045
+0 ||| C B A A C ||| -212.045
+0 ||| B B B B A ||| -212.045
+0 ||| B A C A B ||| -212.045
+0 ||| D A A B B ||| -212.045
+0 ||| E A A C A ||| -212.045
+0 ||| B B A B B ||| -212.045
+0 ||| C A A D A ||| -212.045
+0 ||| B A A B C ||| -212.045
+0 ||| D C A B A ||| -212.045
+0 ||| B C A A C ||| -212.045
+0 ||| D B A C A ||| -212.045
+0 ||| B A A A D ||| -212.045
+0 ||| B A C B A ||| -212.045
+0 ||| D C A A B ||| -212.045
+0 ||| D A B B A ||| -212.045
+0 ||| B B B A B ||| -212.045
+0 ||| B D A B A ||| -212.045
+0 ||| C A A C B ||| -212.045
+0 ||| B A E A A ||| -212.045
+0 ||| B A B A C ||| -212.045
+0 ||| C C A C A ||| -212.045
+0 ||| D A B A B ||| -212.045
+0 ||| B C C A A ||| -212.045
+0 ||| C A B C A ||| -212.045
+0 ||| B E A A A ||| -212.045
+0 ||| D A D A A ||| -212.045
+0 ||| C B C A A ||| -212.045
+0 ||| B B D A A ||| -212.045
+0 ||| D C B A A ||| -212.045
+0 ||| B D B A A ||| -212.045
+0 ||| A C B A B ||| -213.045
+0 ||| A A D A B ||| -213.045
+0 ||| A A B B B ||| -213.045
+0 ||| A A A C C ||| -213.045
+0 ||| A B A C B ||| -213.045
+0 ||| A C A B B ||| -213.045
+0 ||| A B B C A ||| -213.045
+0 ||| A A A E A ||| -213.045
+0 ||| A C B B A ||| -213.045
+0 ||| A A D B A ||| -213.045
+0 ||| A B A D A ||| -213.045
+0 ||| A D A C A ||| -213.045
+0 ||| A A C C A ||| -213.045
+0 ||| A C D A A ||| -213.045
+0 ||| B C A B B ||| -214.045
+0 ||| B A B B B ||| -214.045
+0 ||| B C B A B ||| -214.045
+0 ||| C B B A B ||| -214.045
+0 ||| E B A A B ||| -214.045
+0 ||| C A A B C ||| -214.045
+0 ||| D A A C B ||| -214.045
+0 ||| C A C A B ||| -214.045
+0 ||| B B A C B ||| -214.045
+0 ||| C A B A C ||| -214.045
+0 ||| C D A A B ||| -214.045
+0 ||| B A D A B ||| -214.045
+0 ||| C B A B B ||| -214.045
+0 ||| E A A A C ||| -214.045
+0 ||| D B A A C ||| -214.045
+0 ||| C A A A D ||| -214.045
+0 ||| D A B C A ||| -214.045
+0 ||| C C A A C ||| -214.045
+0 ||| B A A C C ||| -214.045
+0 ||| B A D B A ||| -214.045
+0 ||| B A C C A ||| -214.045
+0 ||| B B B C A ||| -214.045
+0 ||| D C A C A ||| -214.045
+0 ||| D A A D A ||| -214.045
+0 ||| B B A D A ||| -214.045
+0 ||| C A C B A ||| -214.045
+0 ||| B A A E A ||| -214.045
+0 ||| C C C A A ||| -214.045
+0 ||| B D A C A ||| -214.045
+0 ||| E B A B A ||| -214.045
+0 ||| E B B A A ||| -214.045
+0 ||| B C B B A ||| -214.045
+0 ||| C B B B A ||| -214.045
+0 ||| C A E A A ||| -214.045
+0 ||| C D A B A ||| -214.045
+0 ||| C D B A A ||| -214.045
+0 ||| B C D A A ||| -214.045
+0 ||| E D A A A ||| -214.045
+0 ||| D B C A A ||| -214.045
+0 ||| C E A A A ||| -214.045
+0 ||| E A C A A ||| -214.045
+0 ||| C B D A A ||| -214.045
+0 ||| A B C A B ||| -215.045
+0 ||| A B B A C ||| -215.045
+0 ||| A D A A C ||| -215.045
+0 ||| A A C A C ||| -215.045
+0 ||| A B A B C ||| -215.045
+0 ||| A A B C B ||| -215.045
+0 ||| A C A C B ||| -215.045
+0 ||| A B A A D ||| -215.045
+0 ||| A A A D B ||| -215.045
+0 ||| A B C B A ||| -215.045
+0 ||| A C A D A ||| -215.045
+0 ||| A A D C A ||| -215.045
+0 ||| A C B C A ||| -215.045
+0 ||| A A B D A ||| -215.045
+0 ||| A B E A A ||| -215.045
+0 ||| A D C A A ||| -215.045
+0 ||| B B C A B ||| -216.045
+0 ||| E C A A B ||| -216.045
+0 ||| C C A B B ||| -216.045
+0 ||| B A B C B ||| -216.045
+0 ||| C C B B A ||| -216.045
+0 ||| C C B A B ||| -216.045
+0 ||| D B B A B ||| -216.045
+0 ||| E A A B B ||| -216.045
+0 ||| D A C B A ||| -216.045
+0 ||| B A C A C ||| -216.045
+0 ||| D A C A B ||| -216.045
+0 ||| D D A B A ||| -216.045
+0 ||| D A B A C ||| -216.045
+0 ||| B D A A C ||| -216.045
+0 ||| C C D A A ||| -216.045
+0 ||| D B A B B ||| -216.045
+0 ||| B A B D A ||| -216.045
+0 ||| B A A D B ||| -216.045
+0 ||| C A D B A ||| -216.045
+0 ||| B B A A D ||| -216.045
+0 ||| E A B B A ||| -216.045
+0 ||| D A A A D ||| -216.045
+0 ||| D C C A A ||| -216.045
+0 ||| D A A B C ||| -216.045
+0 ||| E C A B A ||| -216.045
+0 ||| C A D A B ||| -216.045
+0 ||| B B C B A ||| -216.045
+0 ||| B C A C B ||| -216.045
+0 ||| B D C A A ||| -216.045
+0 ||| C A B B B ||| -216.045
+0 ||| C D A C A ||| -216.045
+0 ||| D D A A B ||| -216.045
+0 ||| D B B B A ||| -216.045
+0 ||| C A A C C ||| -216.045
+0 ||| D D B A A ||| -216.045
+0 ||| B B A B C ||| -216.045
+0 ||| B A D C A ||| -216.045
+0 ||| C B A C B ||| -216.045
+0 ||| C A A E A ||| -216.045
+0 ||| E A B A B ||| -216.045
+0 ||| D B D A A ||| -216.045
+0 ||| D C A A C ||| -216.045
+0 ||| B C A D A ||| -216.045
+0 ||| B B B A C ||| -216.045
+0 ||| D E A A A ||| -216.045
+0 ||| C A C C A ||| -216.045
+0 ||| E A D A A ||| -216.045
+0 ||| C B B C A ||| -216.045
+0 ||| E C B A A ||| -216.045
+0 ||| B C B C A ||| -216.045
+0 ||| B B E A A ||| -216.045
+0 ||| C B A D A ||| -216.045
+0 ||| D A E A A ||| -216.045
+0 ||| E B A C A ||| -216.045
+0 ||| A D B A B ||| -217.045
+0 ||| A A C B B ||| -217.045
+0 ||| A C A B C ||| -217.045
+0 ||| A B B B B ||| -217.045
+0 ||| A B A C C ||| -217.045
+0 ||| A B D A B ||| -217.045
+0 ||| A A E A B ||| -217.045
+0 ||| A C C A B ||| -217.045
+0 ||| A E A A B ||| -217.045
+0 ||| A D A B B ||| -217.045
+0 ||| A A B B C ||| -217.045
+0 ||| A B D B A ||| -217.045
+0 ||| A A D A C ||| -217.045
+0 ||| A C B A C ||| -217.045
+0 ||| A B C C A ||| -217.045
+0 ||| A A A B D ||| -217.045
+0 ||| A C C B A ||| -217.045
+0 ||| A A B A D ||| -217.045
+0 ||| A D D A A ||| -217.045
+0 ||| A C A A D ||| -217.045
+0 ||| A D B B A ||| -217.045
+0 ||| A E A B A ||| -217.045
+0 ||| A C E A A ||| -217.045
+0 ||| A A E B A ||| -217.045
+0 ||| A E B A A ||| -217.045
+0 ||| A B A E A ||| -217.045
+0 ||| B B B B B ||| -218.045
+0 ||| E A A C B ||| -218.045
+0 ||| D C A B B ||| -218.045
+0 ||| B C A B C ||| -218.045
+0 ||| B D A B B ||| -218.045
+0 ||| B E A A B ||| -218.045
+0 ||| D A B B B ||| -218.045
+0 ||| B A E A B ||| -218.045
+0 ||| B A C B B ||| -218.045
+0 ||| B C B A C ||| -218.045
+0 ||| C C A C B ||| -218.045
+0 ||| C A B C B ||| -218.045
+0 ||| C A A D B ||| -218.045
+0 ||| D B A C B ||| -218.045
+0 ||| B C C A B ||| -218.045
+0 ||| B B C C A ||| -218.045
+0 ||| B A B B C ||| -218.045
+0 ||| B B D A B ||| -218.045
+0 ||| C B C A B ||| -218.045
+0 ||| C B E A A ||| -218.045
+0 ||| C B A A D ||| -218.045
+0 ||| D A D A B ||| -218.045
+0 ||| D C B A B ||| -218.045
+0 ||| E A B C A ||| -218.045
+0 ||| B D B A B ||| -218.045
+0 ||| E C A C A ||| -218.045
+0 ||| C B A B C ||| -218.045
+0 ||| B A E B A ||| -218.045
+0 ||| D A A C C ||| -218.045
+0 ||| D A C C A ||| -218.045
+0 ||| C B B A C ||| -218.045
+0 ||| C C B C A ||| -218.045
+0 ||| E B A A C ||| -218.045
+0 ||| C A B D A ||| -218.045
+0 ||| B A D A C ||| -218.045
+0 ||| C A D C A ||| -218.045
+0 ||| B B A C C ||| -218.045
+0 ||| C D C A A ||| -218.045
+0 ||| C A C A C ||| -218.045
+0 ||| D D A C A ||| -218.045
+0 ||| C D A A C ||| -218.045
+0 ||| B B D B A ||| -218.045
+0 ||| B A B A D ||| -218.045
+0 ||| E B C A A ||| -218.045
+0 ||| B C A A D ||| -218.045
+0 ||| D A D B A ||| -218.045
+0 ||| B A A B D ||| -218.045
+0 ||| B E A B A ||| -218.045
+0 ||| D C D A A ||| -218.045
+0 ||| D B B C A ||| -218.045
+0 ||| D B A D A ||| -218.045
+0 ||| E A A D A ||| -218.045
+0 ||| B D D A A ||| -218.045
+0 ||| C B C B A ||| -218.045
+0 ||| B C E A A ||| -218.045
+0 ||| B C C B A ||| -218.045
+0 ||| B E B A A ||| -218.045
+0 ||| C C A D A ||| -218.045
+0 ||| B D B B A ||| -218.045
+0 ||| D A A E A ||| -218.045
+0 ||| D C B B A ||| -218.045
+0 ||| B B A E A ||| -218.045
+0 ||| A B B C B ||| -219.045
+0 ||| A A A C D ||| -219.045
+0 ||| A B A D B ||| -219.045
+0 ||| A A A D C ||| -219.045
+0 ||| A C D A B ||| -219.045
+0 ||| A C A C C ||| -219.045
+0 ||| A A A E B ||| -219.045
+0 ||| A C B B B ||| -219.045
+0 ||| A A D B B ||| -219.045
+0 ||| A A C C B ||| -219.045
+0 ||| A D A C B ||| -219.045
+0 ||| A A B E A ||| -219.045
+0 ||| A A A A E ||| -219.045
+0 ||| A B C A C ||| -219.045
+0 ||| A D B C A ||| -219.045
+0 ||| A A B C C ||| -219.045
+0 ||| A E A C A ||| -219.045
+0 ||| A B D C A ||| -219.045
+0 ||| A C C C A ||| -219.045
+0 ||| A C D B A ||| -219.045
+0 ||| A A C D A ||| -219.045
+0 ||| A D A D A ||| -219.045
+0 ||| A B B D A ||| -219.045
+0 ||| A A E C A ||| -219.045
+0 ||| A C A E A ||| -219.045
+0 ||| E A A B C ||| -220.045
+0 ||| D C A C B ||| -220.045
+0 ||| D A C A C ||| -220.045
+0 ||| B B B C B ||| -220.045
+0 ||| B A C C B ||| -220.045
+0 ||| B A D B B ||| -220.045
+0 ||| B A B C C ||| -220.045
+0 ||| C C B A C ||| -220.045
+0 ||| B A A C D ||| -220.045
+0 ||| D A A D B ||| -220.045
+0 ||| E B B A B ||| -220.045
+0 ||| C C A B C ||| -220.045
+0 ||| B C A C C ||| -220.045
+0 ||| C A B A D ||| -220.045
+0 ||| C A A B D ||| -220.045
+0 ||| C C A A D ||| -220.045
+0 ||| D B B A C ||| -220.045
+0 ||| E C A A C ||| -220.045
+0 ||| B B C A C ||| -220.045
+0 ||| B A A D C ||| -220.045
+0 ||| E A A A D ||| -220.045
+0 ||| B B A D B ||| -220.045
+0 ||| C A D A C ||| -220.045
+0 ||| D A B C B ||| -220.045
+0 ||| D C B C A ||| -220.045
+0 ||| D B A B C ||| -220.045
+0 ||| D B A A D ||| -220.045
+0 ||| E B A B B ||| -220.045
+0 ||| C A C B B ||| -220.045
+0 ||| B A C D A ||| -220.045
+0 ||| B D A C B ||| -220.045
+0 ||| C C C A B ||| -220.045
+0 ||| B A A E B ||| -220.045
+0 ||| B A E C A ||| -220.045
+0 ||| D B C A B ||| -220.045
+0 ||| C A E A B ||| -220.045
+0 ||| B A B E A ||| -220.045
+0 ||| C B B B B ||| -220.045
+0 ||| B C B B B ||| -220.045
+0 ||| C D B B A ||| -220.045
+0 ||| D D A A C ||| -220.045
+0 ||| E D A A B ||| -220.045
+0 ||| B B D C A ||| -220.045
+0 ||| C D A B B ||| -220.045
+0 ||| C A B B C ||| -220.045
+0 ||| B D B C A ||| -220.045
+0 ||| B C D A B ||| -220.045
+0 ||| C D B A B ||| -220.045
+0 ||| D A D C A ||| -220.045
+0 ||| E A B A C ||| -220.045
+0 ||| B A A A E ||| -220.045
+0 ||| D A B D A ||| -220.045
+0 ||| C E A A B ||| -220.045
+0 ||| C B A C C ||| -220.045
+0 ||| B E A C A ||| -220.045
+0 ||| C B D A B ||| -220.045
+0 ||| E A C A B ||| -220.045
+0 ||| C B C C A ||| -220.045
+0 ||| E B D A A ||| -220.045
+0 ||| C A E B A ||| -220.045
+0 ||| E D B A A ||| -220.045
+0 ||| C B A E A ||| -220.045
+0 ||| E E A A A ||| -220.045
+0 ||| B C C C A ||| -220.045
+0 ||| D B E A A ||| -220.045
+0 ||| B B B D A ||| -220.045
+0 ||| C D D A A ||| -220.045
+0 ||| D C A D A ||| -220.045
+0 ||| D D C A A ||| -220.045
+0 ||| C C C B A ||| -220.045
+0 ||| C C E A A ||| -220.045
+0 ||| E B B B A ||| -220.045
+0 ||| C E B A A ||| -220.045
+0 ||| B C D B A ||| -220.045
+0 ||| E C C A A ||| -220.045
+0 ||| C E A B A ||| -220.045
+0 ||| E A E A A ||| -220.045
+0 ||| B C A E A ||| -220.045
+0 ||| D B C B A ||| -220.045
+0 ||| E D A B A ||| -220.045
+0 ||| E A C B A ||| -220.045
+0 ||| C B D B A ||| -220.045
+0 ||| B D A D A ||| -220.045
+0 ||| A E A A C ||| -221.045
+0 ||| A B B A D ||| -221.045
+0 ||| A A B D B ||| -221.045
+0 ||| A B B B C ||| -221.045
+0 ||| A A E A C ||| -221.045
+0 ||| A D B A C ||| -221.045
+0 ||| A A C B C ||| -221.045
+0 ||| A C B C B ||| -221.045
+0 ||| A B D A C ||| -221.045
+0 ||| A D A B C ||| -221.045
+0 ||| A C C A C ||| -221.045
+0 ||| A B E A B ||| -221.045
+0 ||| A A D C B ||| -221.045
+0 ||| A C A D B ||| -221.045
+0 ||| A B C B B ||| -221.045
+0 ||| A A C A D ||| -221.045
+0 ||| A D C A B ||| -221.045
+0 ||| A B A B D ||| -221.045
+0 ||| A D C B A ||| -221.045
+0 ||| A D A A D ||| -221.045
+0 ||| A B E B A ||| -221.045
+0 ||| A C D C A ||| -221.045
+0 ||| A E C A A ||| -221.045
+0 ||| A C B D A ||| -221.045
+0 ||| A D E A A ||| -221.045
+0 ||| A A D D A ||| -221.045
+0 ||| D C B A C ||| -222.045
+0 ||| C C D A B ||| -222.045
+0 ||| B A B D B ||| -222.045
+0 ||| B B C B B ||| -222.045
+0 ||| C A D B B ||| -222.045
+0 ||| E A B B B ||| -222.045
+0 ||| E C A B B ||| -222.045
+0 ||| B D A A D ||| -222.045
+0 ||| D C C A B ||| -222.045
+0 ||| D B D A B ||| -222.045
+0 ||| D D B A B ||| -222.045
+0 ||| D B B B B ||| -222.045
+0 ||| E C B A B ||| -222.045
+0 ||| C A A E B ||| -222.045
+0 ||| B A D C B ||| -222.045
+0 ||| C B B C B ||| -222.045
+0 ||| B B B A D ||| -222.045
+0 ||| B C A D B ||| -222.045
+0 ||| E A D A B ||| -222.045
+0 ||| D E A A B ||| -222.045
+0 ||| C A C C B ||| -222.045
+0 ||| C B A D B ||| -222.045
+0 ||| B B E A B ||| -222.045
+0 ||| B C B C B ||| -222.045
+0 ||| D A E A B ||| -222.045
+0 ||| E B A C B ||| -222.045
+0 ||| D C A B C ||| -222.045
+0 ||| C A B C C ||| -222.045
+0 ||| E A A C C ||| -222.045
+0 ||| B B B B C ||| -222.045
+0 ||| B A E A C ||| -222.045
+0 ||| B D A B C ||| -222.045
+0 ||| C C A C C ||| -222.045
+0 ||| D A B B C ||| -222.045
+0 ||| B E A A C ||| -222.045
+0 ||| B A C B C ||| -222.045
+0 ||| D A D A C ||| -222.045
+0 ||| B D B A C ||| -222.045
+0 ||| C A A D C ||| -222.045
+0 ||| B C C A C ||| -222.045
+0 ||| D B A C C ||| -222.045
+0 ||| C B C A C ||| -222.045
+0 ||| B A C A D ||| -222.045
+0 ||| B B D A C ||| -222.045
+0 ||| D A B A D ||| -222.045
+0 ||| D D A B B ||| -222.045
+0 ||| D A C B B ||| -222.045
+0 ||| B D C A B ||| -222.045
+0 ||| D C A A D ||| -222.045
+0 ||| C C B B B ||| -222.045
+0 ||| D A A B D ||| -222.045
+0 ||| B B A B D ||| -222.045
+0 ||| C A A A E ||| -222.045
+0 ||| C A A C D ||| -222.045
+0 ||| C D A C B ||| -222.045
+0 ||| B A D D A ||| -222.045
+0 ||| C C D B A ||| -222.045
+0 ||| D C C B A ||| -222.045
+0 ||| E A D B A ||| -222.045
+0 ||| B D C B A ||| -222.045
+0 ||| D E A B A ||| -222.045
+0 ||| E C B B A ||| -222.045
+0 ||| B B E B A ||| -222.045
+0 ||| E B A D A ||| -222.045
+0 ||| D A E B A ||| -222.045
+0 ||| C A B E A ||| -222.045
+0 ||| E A A E A ||| -222.045
+0 ||| D B D B A ||| -222.045
+0 ||| C A E C A ||| -222.045
+0 ||| C C A E A ||| -222.045
+0 ||| C B D C A ||| -222.045
+0 ||| B C D C A ||| -222.045
+0 ||| E B B C A ||| -222.045
+0 ||| C D A D A ||| -222.045
+0 ||| D D D A A ||| -222.045
+0 ||| C D B C A ||| -222.045
+0 ||| E C D A A ||| -222.045
+0 ||| E A C C A ||| -222.045
+0 ||| B E C A A ||| -222.045
+0 ||| D B A E A ||| -222.045
+0 ||| D E B A A ||| -222.045
+0 ||| D D B B A ||| -222.045
+0 ||| B D E A A ||| -222.045
+0 ||| E D A C A ||| -222.045
+0 ||| D C E A A ||| -222.045
+0 ||| C E A C A ||| -222.045
+0 ||| B C B D A ||| -222.045
+0 ||| D B C C A ||| -222.045
+0 ||| C B B D A ||| -222.045
+0 ||| C A C D A ||| -222.045
+0 ||| C C C C A ||| -222.045
+0 ||| A C A B D ||| -223.045
+0 ||| A D B B B ||| -223.045
+0 ||| A D D A B ||| -223.045
+0 ||| A B C C B ||| -223.045
+0 ||| A E B B A ||| -223.045
+0 ||| A C C B B ||| -223.045
+0 ||| A A B B D ||| -223.045
+0 ||| A D C C A ||| -223.045
+0 ||| A B D B B ||| -223.045
+0 ||| A A E B B ||| -223.045
+0 ||| A C E B A ||| -223.045
+0 ||| A C E A B ||| -223.045
+0 ||| A E B A B ||| -223.045
+0 ||| A D D B A ||| -223.045
+0 ||| A B A E B ||| -223.045
+0 ||| A B E C A ||| -223.045
+0 ||| A A D A D ||| -223.045
+0 ||| A E D A A ||| -223.045
+0 ||| A B A A E ||| -223.045
+0 ||| A A C E A ||| -223.045
+0 ||| A C B B C ||| -223.045
+0 ||| A B B E A ||| -223.045
+0 ||| A C D A C ||| -223.045
+0 ||| A D A E A ||| -223.045
+0 ||| A B A D C ||| -223.045
+0 ||| A B C D A ||| -223.045
+0 ||| A A A E C ||| -223.045
+0 ||| A B A C D ||| -223.045
+0 ||| A E A B B ||| -223.045
+0 ||| A C B A D ||| -223.045
+0 ||| A A D B C ||| -223.045
+0 ||| A B B C C ||| -223.045
+0 ||| A D A C C ||| -223.045
+0 ||| A A C C C ||| -223.045
+0 ||| B B B C C ||| -224.045
+0 ||| D A C C B ||| -224.045
+0 ||| D C B B B ||| -224.045
+0 ||| B A E B B ||| -224.045
+0 ||| E A C A C ||| -224.045
+0 ||| D C D B A ||| -224.045
+0 ||| E C A C B ||| -224.045
+0 ||| D D A C B ||| -224.045
+0 ||| C C D C A ||| -224.045
+0 ||| B B C C B ||| -224.045
+0 ||| D A A E B ||| -224.045
+0 ||| E B C B A ||| -224.045
+0 ||| C D C A B ||| -224.045
+0 ||| B C A B D ||| -224.045
+0 ||| C C B D A ||| -224.045
+0 ||| C A D C B ||| -224.045
+0 ||| B C B A D ||| -224.045
+0 ||| C D C B A ||| -224.045
+0 ||| C B E A B ||| -224.045
+0 ||| C A B D B ||| -224.045
+0 ||| B B E C A ||| -224.045
+0 ||| C C B C B ||| -224.045
+0 ||| D C A C C ||| -224.045
+0 ||| C B E B A ||| -224.045
+0 ||| B D B B B ||| -224.045
+0 ||| E B C A B ||| -224.045
+0 ||| E A D C A ||| -224.045
+0 ||| D B B C B ||| -224.045
+0 ||| B A B B D ||| -224.045
+0 ||| B B C D A ||| -224.045
+0 ||| B B D B B ||| -224.045
+0 ||| D A D B B ||| -224.045
+0 ||| D C C C A ||| -224.045
+0 ||| D C D A B ||| -224.045
+0 ||| B E A B B ||| -224.045
+0 ||| E C B C A ||| -224.045
+0 ||| C C A D B ||| -224.045
+0 ||| B D D A B ||| -224.045
+0 ||| D A C D A ||| -224.045
+0 ||| E A A D B ||| -224.045
+0 ||| D B A D B ||| -224.045
+0 ||| E C A D A ||| -224.045
+0 ||| B E B A B ||| -224.045
+0 ||| C B C B B ||| -224.045
+0 ||| E A B D A ||| -224.045
+0 ||| B C E A B ||| -224.045
+0 ||| D E A C A ||| -224.045
+0 ||| E A B C B ||| -224.045
+0 ||| B D D B A ||| -224.045
+0 ||| B B A E B ||| -224.045
+0 ||| B D C C A ||| -224.045
+0 ||| B B A C D ||| -224.045
+0 ||| B B B E A ||| -224.045
+0 ||| B C C B B ||| -224.045
+0 ||| B D A E A ||| -224.045
+0 ||| C B A B D ||| -224.045
+0 ||| D A E C A ||| -224.045
+0 ||| C A C A D ||| -224.045
+0 ||| D B D C A ||| -224.045
+0 ||| E B B A C ||| -224.045
+0 ||| B C E B A ||| -224.045
+0 ||| D A A C D ||| -224.045
+0 ||| C D E A A ||| -224.045
+0 ||| B A D A D ||| -224.045
+0 ||| D B B D A ||| -224.045
+0 ||| B A C C C ||| -224.045
+0 ||| E D C A A ||| -224.045
+0 ||| D A A D C ||| -224.045
+0 ||| D D A D A ||| -224.045
+0 ||| C B B A D ||| -224.045
+0 ||| C E C A A ||| -224.045
+0 ||| B A D B C ||| -224.045
+0 ||| D A B E A ||| -224.045
+0 ||| E B A A D ||| -224.045
+0 ||| E B E A A ||| -224.045
+0 ||| B B A D C ||| -224.045
+0 ||| D C A E A ||| -224.045
+0 ||| E B A B C ||| -224.045
+0 ||| B E D A A ||| -224.045
+0 ||| B D A C C ||| -224.045
+0 ||| B E B B A ||| -224.045
+0 ||| D A B C C ||| -224.045
+0 ||| B A C E A ||| -224.045
+0 ||| C D A B C ||| -224.045
+0 ||| D D B C A ||| -224.045
+0 ||| C A C B C ||| -224.045
+0 ||| C A D D A ||| -224.045
+0 ||| C E A A C ||| -224.045
+0 ||| D A A A E ||| -224.045
+0 ||| C B B B C ||| -224.045
+0 ||| B A A E C ||| -224.045
+0 ||| C D A A D ||| -224.045
+0 ||| C C C A C ||| -224.045
+0 ||| E D A A C ||| -224.045
+0 ||| C A E A C ||| -224.045
+0 ||| D B C A C ||| -224.045
+0 ||| B C B B C ||| -224.045
+0 ||| B B A A E ||| -224.045
+0 ||| B C D A C ||| -224.045
+0 ||| C D B A C ||| -224.045
+0 ||| C B D A C ||| -224.045
+0 ||| A C D B B ||| -225.045
+0 ||| A A B C D ||| -225.045
+0 ||| A C C C B ||| -225.045
+0 ||| A A C D B ||| -225.045
+0 ||| A D A D B ||| -225.045
+0 ||| A E A C B ||| -225.045
+0 ||| A B D C B ||| -225.045
+0 ||| A B B D B ||| -225.045
+0 ||| A A E D A ||| -225.045
+0 ||| A A E C B ||| -225.045
+0 ||| A C A E B ||| -225.045
+0 ||| A A B A E ||| -225.045
+0 ||| A C E C A ||| -225.045
+0 ||| A A A D D ||| -225.045
+0 ||| A D D C A ||| -225.045
+0 ||| A A B E B ||| -225.045
+0 ||| A A D E A ||| -225.045
+0 ||| A C A C D ||| -225.045
+0 ||| A C C D A ||| -225.045
+0 ||| A B C A D ||| -225.045
+0 ||| A D B D A ||| -225.045
+0 ||| A D B C B ||| -225.045
+0 ||| A E A D A ||| -225.045
+0 ||| A C A A E ||| -225.045
+0 ||| A C B E A ||| -225.045
+0 ||| A D C A C ||| -225.045
+0 ||| A B D D A ||| -225.045
+0 ||| A A A B E ||| -225.045
+0 ||| A E B C A ||| -225.045
+0 ||| A A B D C ||| -225.045
+0 ||| A C A D C ||| -225.045
+0 ||| A C B C C ||| -225.045
+0 ||| A A D C C ||| -225.045
+0 ||| A B E A C ||| -225.045
+0 ||| A B C B C ||| -225.045
+0 ||| C C E A B ||| -226.045
+0 ||| B B C B C ||| -226.045
+0 ||| B A B D C ||| -226.045
+0 ||| C C D A C ||| -226.045
+0 ||| D C C A C ||| -226.045
+0 ||| C B B C C ||| -226.045
+0 ||| E A B B C ||| -226.045
+0 ||| E C A B C ||| -226.045
+0 ||| B C C C B ||| -226.045
+0 ||| B A D C C ||| -226.045
+0 ||| C B A D C ||| -226.045
+0 ||| D B D A C ||| -226.045
+0 ||| D D B A C ||| -226.045
+0 ||| D B B B C ||| -226.045
+0 ||| C A A E C ||| -226.045
+0 ||| E C B A C ||| -226.045
+0 ||| C D A C C ||| -226.045
+0 ||| C A C C C ||| -226.045
+0 ||| B C A D C ||| -226.045
+0 ||| E E A A B ||| -226.045
+0 ||| C B A E B ||| -226.045
+0 ||| D E A A C ||| -226.045
+0 ||| E A D A C ||| -226.045
+0 ||| C B C C B ||| -226.045
+0 ||| E B D A B ||| -226.045
+0 ||| B B E A C ||| -226.045
+0 ||| D B E A B ||| -226.045
+0 ||| C D D A B ||| -226.045
+0 ||| B C B C C ||| -226.045
+0 ||| C A E B B ||| -226.045
+0 ||| B B B D B ||| -226.045
+0 ||| C C C B B ||| -226.045
+0 ||| D A C A D ||| -226.045
+0 ||| D A E A C ||| -226.045
+0 ||| C B A A E ||| -226.045
+0 ||| C A D B C ||| -226.045
+0 ||| E D B A B ||| -226.045
+0 ||| E B A C C ||| -226.045
+0 ||| D C D C A ||| -226.045
+0 ||| D D C A B ||| -226.045
+0 ||| B A A B E ||| -226.045
+0 ||| E A A B D ||| -226.045
+0 ||| E B A E A ||| -226.045
+0 ||| D C A D B ||| -226.045
+0 ||| D A D D A ||| -226.045
+0 ||| C C A B D ||| -226.045
+0 ||| E D B B A ||| -226.045
+0 ||| B A C D B ||| -226.045
+0 ||| B C E C A ||| -226.045
+0 ||| B A B C D ||| -226.045
+0 ||| C D A E A ||| -226.045
+0 ||| C C B A D ||| -226.045
+0 ||| B A D E A ||| -226.045
+0 ||| B B C A D ||| -226.045
+0 ||| C E B B A ||| -226.045
+0 ||| B C A C D ||| -226.045
+0 ||| C A C E A ||| -226.045
+0 ||| E C A A D ||| -226.045
+0 ||| C D C C A ||| -226.045
+0 ||| D B B A D ||| -226.045
+0 ||| E B D B A ||| -226.045
+0 ||| B A E C B ||| -226.045
+0 ||| E B C C A ||| -226.045
+0 ||| C A D A D ||| -226.045
+0 ||| C B E C A ||| -226.045
+0 ||| B A B E B ||| -226.045
+0 ||| E E A B A ||| -226.045
+0 ||| B C D B B ||| -226.045
+0 ||| D B E B A ||| -226.045
+0 ||| B D B C B ||| -226.045
+0 ||| D D C B A ||| -226.045
+0 ||| C D B B B ||| -226.045
+0 ||| C D D B A ||| -226.045
+0 ||| B B D C B ||| -226.045
+0 ||| C C E B A ||| -226.045
+0 ||| B E A C B ||| -226.045
+0 ||| E C C B A ||| -226.045
+0 ||| D A B D B ||| -226.045
+0 ||| B E B C A ||| -226.045
+0 ||| C E B A B ||| -226.045
+0 ||| B D D C A ||| -226.045
+0 ||| D B A B D ||| -226.045
+0 ||| D E C A A ||| -226.045
+0 ||| E B B B B ||| -226.045
+0 ||| B E A D A ||| -226.045
+0 ||| B C A A E ||| -226.045
+0 ||| D D E A A ||| -226.045
+0 ||| E A C B B ||| -226.045
+0 ||| C B B E A ||| -226.045
+0 ||| C E A B B ||| -226.045
+0 ||| E C E A A ||| -226.045
+0 ||| B A B A E ||| -226.045
+0 ||| B B D D A ||| -226.045
+0 ||| E C C A B ||| -226.045
+0 ||| C E D A A ||| -226.045
+0 ||| E D A B B ||| -226.045
+0 ||| C B C D A ||| -226.045
+0 ||| B A A D D ||| -226.045
+0 ||| E E B A A ||| -226.045
+0 ||| E A E A B ||| -226.045
+0 ||| B A E D A ||| -226.045
+0 ||| D B C B B ||| -226.045
+0 ||| E D D A A ||| -226.045
+0 ||| B C A E B ||| -226.045
+0 ||| B C C D A ||| -226.045
+0 ||| B D A D B ||| -226.045
+0 ||| D C B D A ||| -226.045
+0 ||| C B D B B ||| -226.045
+0 ||| B D B D A ||| -226.045
+0 ||| D C B C B ||| -226.045
+0 ||| B C B E A ||| -226.045
+0 ||| D D A A D ||| -226.045
+0 ||| E A E B A ||| -226.045
+0 ||| C A B B D ||| -226.045
+0 ||| E A B A D ||| -226.045
+0 ||| B D C A C ||| -226.045
+0 ||| D A D C B ||| -226.045
+0 ||| D A C B C ||| -226.045
+0 ||| D D A B C ||| -226.045
+0 ||| C C B B C ||| -226.045
+0 ||| C B A C D ||| -226.045
+0 ||| A C E A C ||| -227.045
+0 ||| A B D B C ||| -227.045
+0 ||| A E B A C ||| -227.045
+0 ||| A A E B C ||| -227.045
+0 ||| A D D A C ||| -227.045
+0 ||| A B C C C ||| -227.045
+0 ||| A E C A B ||| -227.045
+0 ||| A A D D B ||| -227.045
+0 ||| A D E A B ||| -227.045
+0 ||| A D B B C ||| -227.045
+0 ||| A C D C B ||| -227.045
+0 ||| A B E B B ||| -227.045
+0 ||| A D E B A ||| -227.045
+0 ||| A D C B B ||| -227.045
+0 ||| A B C E A ||| -227.045
+0 ||| A B A E C ||| -227.045
+0 ||| A E C B A ||| -227.045
+0 ||| A A A C E ||| -227.045
+0 ||| A E E A A ||| -227.045
+0 ||| A A C B D ||| -227.045
+0 ||| A C D D A ||| -227.045
+0 ||| A D B A D ||| -227.045
+0 ||| A E A A D ||| -227.045
+0 ||| A C C B C ||| -227.045
+0 ||| A A E A D ||| -227.045
+0 ||| A B B B D ||| -227.045
+0 ||| A D A B D ||| -227.045
+0 ||| A B D A D ||| -227.045
+0 ||| A C C A D ||| -227.045
+0 ||| A E A B C ||| -227.045
+0 ||| A C B D B ||| -227.045
+0 ||| E C B B B ||| -228.045
+0 ||| E C D A B ||| -228.045
+0 ||| B B E B B ||| -228.045
+0 ||| C A B E B ||| -228.045
+0 ||| E B A D B ||| -228.045
+0 ||| D A E B B ||| -228.045
+0 ||| C B D C B ||| -228.045
+0 ||| E A A E B ||| -228.045
+0 ||| D B D B B ||| -228.045
+0 ||| C D B C B ||| -228.045
+0 ||| C A E C B ||| -228.045
+0 ||| C C A E B ||| -228.045
+0 ||| B C D C B ||| -228.045
+0 ||| D D D A B ||| -228.045
+0 ||| E B B C B ||| -228.045
+0 ||| C D A D B ||| -228.045
+0 ||| B E C A B ||| -228.045
+0 ||| B D E A B ||| -228.045
+0 ||| E A C C B ||| -228.045
+0 ||| D B A E B ||| -228.045
+0 ||| D E B A B ||| -228.045
+0 ||| D D B B B ||| -228.045
+0 ||| B C B D B ||| -228.045
+0 ||| C E A C B ||| -228.045
+0 ||| E D A C B ||| -228.045
+0 ||| D C E A B ||| -228.045
+0 ||| D B C C B ||| -228.045
+0 ||| C A C D B ||| -228.045
+0 ||| D C B A D ||| -228.045
+0 ||| C B B D B ||| -228.045
+0 ||| C C C C B ||| -228.045
+0 ||| D C B B C ||| -228.045
+0 ||| D A C C C ||| -228.045
+0 ||| D C D A C ||| -228.045
+0 ||| C B C B C ||| -228.045
+0 ||| E A A D C ||| -228.045
+0 ||| B A D D B ||| -228.045
+0 ||| D C C B B ||| -228.045
+0 ||| C C D B B ||| -228.045
+0 ||| B D C B B ||| -228.045
+0 ||| B E B A C ||| -228.045
+0 ||| C B C A D ||| -228.045
+0 ||| B D A B D ||| -228.045
+0 ||| E A A C D ||| -228.045
+0 ||| C A B C D ||| -228.045
+0 ||| E C A C C ||| -228.045
+0 ||| D C A B D ||| -228.045
+0 ||| B B C C C ||| -228.045
+0 ||| B A E A D ||| -228.045
+0 ||| D D A C C ||| -228.045
+0 ||| B B B B D ||| -228.045
+0 ||| C D C A C ||| -228.045
+0 ||| D A A E C ||| -228.045
+0 ||| E A D B B ||| -228.045
+0 ||| D B A C D ||| -228.045
+0 ||| B A C B D ||| -228.045
+0 ||| C B E A C ||| -228.045
+0 ||| B D B B C ||| -228.045
+0 ||| D B B C C ||| -228.045
+0 ||| B E A A D ||| -228.045
+0 ||| D A B B D ||| -228.045
+0 ||| D B A D C ||| -228.045
+0 ||| E B C A C ||| -228.045
+0 ||| D E A B B ||| -228.045
+0 ||| B A E B C ||| -228.045
+0 ||| B C C A D ||| -228.045
+0 ||| C C A C D ||| -228.045
+0 ||| C C B C C ||| -228.045
+0 ||| D A D A D ||| -228.045
+0 ||| B B D B C ||| -228.045
+0 ||| E D B C A ||| -228.045
+0 ||| B D D A C ||| -228.045
+0 ||| B E A B C ||| -228.045
+0 ||| C A A D D ||| -228.045
+0 ||| C C A D C ||| -228.045
+0 ||| B D B A D ||| -228.045
+0 ||| B E C B A ||| -228.045
+0 ||| E A B C C ||| -228.045
+0 ||| D D D B A ||| -228.045
+0 ||| B C E A C ||| -228.045
+0 ||| C C E C A ||| -228.045
+0 ||| B B A E C ||| -228.045
+0 ||| D E B B A ||| -228.045
+0 ||| B C C B C ||| -228.045
+0 ||| E A B E A ||| -228.045
+0 ||| B A A C E ||| -228.045
+0 ||| E B B D A ||| -228.045
+0 ||| C A A B E ||| -228.045
+0 ||| D E D A A ||| -228.045
+0 ||| C A B A E ||| -228.045
+0 ||| E C A E A ||| -228.045
+0 ||| C C A A E ||| -228.045
+0 ||| E C D B A ||| -228.045
+0 ||| E A A A E ||| -228.045
+0 ||| B E E A A ||| -228.045
+0 ||| D B A A E ||| -228.045
+0 ||| C C B E A ||| -228.045
+0 ||| C A B D C ||| -228.045
+0 ||| C E B C A ||| -228.045
+0 ||| D A D B C ||| -228.045
+0 ||| D A C E A ||| -228.045
+0 ||| B B D A D ||| -228.045
+0 ||| B B C E A ||| -228.045
+0 ||| C A D C C ||| -228.045
+0 ||| E A E C A ||| -228.045
+0 ||| D B E C A ||| -228.045
+0 ||| B D E B A ||| -228.045
+0 ||| E B D C A ||| -228.045
+0 ||| C A E D A ||| -228.045
+0 ||| C D D C A ||| -228.045
+0 ||| E E A C A ||| -228.045
+0 ||| D D C C A ||| -228.045
+0 ||| D B B E A ||| -228.045
+0 ||| C A D E A ||| -228.045
+0 ||| C B D D A ||| -228.045
+0 ||| E C C C A ||| -228.045
+0 ||| C C C D A ||| -228.045
+0 ||| E A C D A ||| -228.045
+0 ||| C D B D A ||| -228.045
+0 ||| D D A E A ||| -228.045
+0 ||| B C D D A ||| -228.045
+0 ||| D B C D A ||| -228.045
+0 ||| D C E B A ||| -228.045
+0 ||| E D A D A ||| -228.045
+0 ||| C E A D A ||| -228.045
+0 ||| A B E C B ||| -229.045
+0 ||| A A C E B ||| -229.045
+0 ||| A D A E B ||| -229.045
+0 ||| A C B B D ||| -229.045
+0 ||| A C D B C ||| -229.045
+0 ||| A D C C B ||| -229.045
+0 ||| A C C C C ||| -229.045
+0 ||| A A C C D ||| -229.045
+0 ||| A D D B B ||| -229.045
+0 ||| A D A C D ||| -229.045
+0 ||| A B B C D ||| -229.045
+0 ||| A C E B B ||| -229.045
+0 ||| A A C D C ||| -229.045
+0 ||| A B B E B ||| -229.045
+0 ||| A D A D C ||| -229.045
+0 ||| A E A C C ||| -229.045
+0 ||| A B D C C ||| -229.045
+0 ||| A A B E C ||| -229.045
+0 ||| A C D A D ||| -229.045
+0 ||| A A E C C ||| -229.045
+0 ||| A E B B B ||| -229.045
+0 ||| A E D A B ||| -229.045
+0 ||| A B D E A ||| -229.045
+0 ||| A C A E C ||| -229.045
+0 ||| A B A B E ||| -229.045
+0 ||| A D E C A ||| -229.045
+0 ||| A A C A E ||| -229.045
+0 ||| A D B C C ||| -229.045
+0 ||| A C C E A ||| -229.045
+0 ||| A A D B D ||| -229.045
+0 ||| A B B D C ||| -229.045
+0 ||| A A E E A ||| -229.045
+0 ||| A B B A E ||| -229.045
+0 ||| A D A A E ||| -229.045
+0 ||| A D B E A ||| -229.045
+0 ||| A B A D D ||| -229.045
+0 ||| A A A E D ||| -229.045
+0 ||| A B E D A ||| -229.045
+0 ||| A B C D B ||| -229.045
+0 ||| A E C C A ||| -229.045
+0 ||| A E A E A ||| -229.045
+0 ||| A D C D A ||| -229.045
+0 ||| A E D B A ||| -229.045
+0 ||| B A C A E ||| -230.045
+0 ||| E E A A C ||| -230.045
+0 ||| D C D B B ||| -230.045
+0 ||| E B C B B ||| -230.045
+0 ||| C C D C B ||| -230.045
+0 ||| D C C C B ||| -230.045
+0 ||| B B B C D ||| -230.045
+0 ||| C C E A C ||| -230.045
+0 ||| B B C D B ||| -230.045
+0 ||| B C C C C ||| -230.045
+0 ||| C D C B B ||| -230.045
+0 ||| E A D C B ||| -230.045
+0 ||| C B E B B ||| -230.045
+0 ||| B B E C B ||| -230.045
+0 ||| B D C C B ||| -230.045
+0 ||| E C A D B ||| -230.045
+0 ||| C E C A B ||| -230.045
+0 ||| E C B C B ||| -230.045
+0 ||| B D D B B ||| -230.045
+0 ||| D E A C B ||| -230.045
+0 ||| E A B D B ||| -230.045
+0 ||| D B D C B ||| -230.045
+0 ||| B B B E B ||| -230.045
+0 ||| D D A D B ||| -230.045
+0 ||| D A E C B ||| -230.045
+0 ||| B D A E B ||| -230.045
+0 ||| E D C A B ||| -230.045
+0 ||| B C E B B ||| -230.045
+0 ||| D B B D B ||| -230.045
+0 ||| C D E A B ||| -230.045
+0 ||| C A E B C ||| -230.045
+0 ||| D C A E B ||| -230.045
+0 ||| C D B A D ||| -230.045
+0 ||| B B B D C ||| -230.045
+0 ||| D D B C B ||| -230.045
+0 ||| B E D A B ||| -230.045
+0 ||| B A C E B ||| -230.045
+0 ||| D A B E B ||| -230.045
+0 ||| C B D A D ||| -230.045
+0 ||| B E B B B ||| -230.045
+0 ||| C B A E C ||| -230.045
+0 ||| C D D A C ||| -230.045
+0 ||| C B C C C ||| -230.045
+0 ||| D B E A C ||| -230.045
+0 ||| E B D A C ||| -230.045
+0 ||| C C C B C ||| -230.045
+0 ||| D D C A C ||| -230.045
+0 ||| C D B B C ||| -230.045
+0 ||| D C A C D ||| -230.045
+0 ||| B E A C C ||| -230.045
+0 ||| C E B A C ||| -230.045
+0 ||| B B B A E ||| -230.045
+0 ||| C B D B C ||| -230.045
+0 ||| E D B A C ||| -230.045
+0 ||| D A C D B ||| -230.045
+0 ||| C C B D B ||| -230.045
+0 ||| B D A A E ||| -230.045
+0 ||| E B E A B ||| -230.045
+0 ||| C A A C E ||| -230.045
+0 ||| D C A D C ||| -230.045
+0 ||| B A C C D ||| -230.045
+0 ||| B C D A D ||| -230.045
+0 ||| D A A D D ||| -230.045
+0 ||| C A D D B ||| -230.045
+0 ||| E B B A D ||| -230.045
+0 ||| E D E A A ||| -230.045
+0 ||| D A B D C ||| -230.045
+0 ||| B A C D C ||| -230.045
+0 ||| C A C B D ||| -230.045
+0 ||| B E C C A ||| -230.045
+0 ||| B A D B D ||| -230.045
+0 ||| B A E C C ||| -230.045
+0 ||| C D A B D ||| -230.045
+0 ||| C B C E A ||| -230.045
+0 ||| B C D B C ||| -230.045
+0 ||| B A B E C ||| -230.045
+0 ||| B B D C C ||| -230.045
+0 ||| C D E B A ||| -230.045
+0 ||| D A B C D ||| -230.045
+0 ||| E B A B D ||| -230.045
+0 ||| B B A D D ||| -230.045
+0 ||| C E E A A ||| -230.045
+0 ||| B D A C D ||| -230.045
+0 ||| B D B C C ||| -230.045
+0 ||| C E C B A ||| -230.045
+0 ||| E B B B C ||| -230.045
+0 ||| C C C A D ||| -230.045
+0 ||| D A D E A ||| -230.045
+0 ||| C E A A D ||| -230.045
+0 ||| E D A B C ||| -230.045
+0 ||| D E B C A ||| -230.045
+0 ||| B D A D C ||| -230.045
+0 ||| E C C A C ||| -230.045
+0 ||| E E C A A ||| -230.045
+0 ||| E A C B C ||| -230.045
+0 ||| D C A A E ||| -230.045
+0 ||| D D D C A ||| -230.045
+0 ||| C E A B C ||| -230.045
+0 ||| B C A E C ||| -230.045
+0 ||| E D C B A ||| -230.045
+0 ||| C B B B D ||| -230.045
+0 ||| E A C A D ||| -230.045
+0 ||| B D C D A ||| -230.045
+0 ||| D B C B C ||| -230.045
+0 ||| B A A E D ||| -230.045
+0 ||| C C D D A ||| -230.045
+0 ||| E A E A C ||| -230.045
+0 ||| B C B B D ||| -230.045
+0 ||| E C D C A ||| -230.045
+0 ||| D A D C C ||| -230.045
+0 ||| C A E A D ||| -230.045
+0 ||| B B E D A ||| -230.045
+0 ||| E D A A D ||| -230.045
+0 ||| B B A B E ||| -230.045
+0 ||| E C B D A ||| -230.045
+0 ||| D B C A D ||| -230.045
+0 ||| D A B A E ||| -230.045
+0 ||| E B E B A ||| -230.045
+0 ||| D A A B E ||| -230.045
+0 ||| D C B C C ||| -230.045
+0 ||| D B D D A ||| -230.045
+0 ||| D C E C A ||| -230.045
+0 ||| B D E C A ||| -230.045
+0 ||| D E A D A ||| -230.045
+0 ||| D C C D A ||| -230.045
+0 ||| D D B D A ||| -230.045
+0 ||| D A E D A ||| -230.045
+0 ||| B B D E A ||| -230.045
+0 ||| B E A E A ||| -230.045
+0 ||| E A D D A ||| -230.045
+0 ||| B D B E A ||| -230.045
+0 ||| B A E E A ||| -230.045
+0 ||| D C B E A ||| -230.045
+0 ||| B E D B A ||| -230.045
+0 ||| B C C E A ||| -230.045
+0 ||| A D E A C ||| -231.045
+0 ||| A A D D C ||| -231.045
+0 ||| A E C A C ||| -231.045
+0 ||| A A B B E ||| -231.045
+0 ||| A C A B E ||| -231.045
+0 ||| A C B E B ||| -231.045
+0 ||| A B C B D ||| -231.045
+0 ||| A A D A E ||| -231.045
+0 ||| A D C B C ||| -231.045
+0 ||| A A D C D ||| -231.045
+0 ||| A B E B C ||| -231.045
+0 ||| A E A D B ||| -231.045
+0 ||| A C B D C ||| -231.045
+0 ||| A D B D B ||| -231.045
+0 ||| A C D C C ||| -231.045
+0 ||| A D D C B ||| -231.045
+0 ||| A C C D B ||| -231.045
+0 ||| A A D E B ||| -231.045
+0 ||| A C E C B ||| -231.045
+0 ||| A B D D B ||| -231.045
+0 ||| A B E A D ||| -231.045
+0 ||| A E D C A ||| -231.045
+0 ||| A A E D B ||| -231.045
+0 ||| A C B C D ||| -231.045
+0 ||| A C E D A ||| -231.045
+0 ||| A E B C B ||| -231.045
+0 ||| A C A D D ||| -231.045
+0 ||| A E B D A ||| -231.045
+0 ||| A C B A E ||| -231.045
+0 ||| A D C A D ||| -231.045
+0 ||| A C D E A ||| -231.045
+0 ||| A A B D D ||| -231.045
+0 ||| A B A C E ||| -231.045
+0 ||| A D D D A ||| -231.045
+0 ||| B A B B E ||| -232.045
+0 ||| C A C A E ||| -232.045
+0 ||| D E C B A ||| -232.045
+0 ||| D C E A C ||| -232.045
+0 ||| C A C E B ||| -232.045
+0 ||| B C E C B ||| -232.045
+0 ||| C A E C C ||| -232.045
+0 ||| C D B C C ||| -232.045
+0 ||| E C B B C ||| -232.045
+0 ||| E B A D C ||| -232.045
+0 ||| C A B E C ||| -232.045
+0 ||| E C D A C ||| -232.045
+0 ||| B B E B C ||| -232.045
+0 ||| D A E B C ||| -232.045
+0 ||| D B D B C ||| -232.045
+0 ||| E A A E C ||| -232.045
+0 ||| C B D C C ||| -232.045
+0 ||| E D A C C ||| -232.045
+0 ||| C D A D C ||| -232.045
+0 ||| E B B C C ||| -232.045
+0 ||| C C A E C ||| -232.045
+0 ||| E D B B B ||| -232.045
+0 ||| D D D A C ||| -232.045
+0 ||| B C D C C ||| -232.045
+0 ||| C E A C C ||| -232.045
+0 ||| E A C C C ||| -232.045
+0 ||| B D E A C ||| -232.045
+0 ||| D A D D B ||| -232.045
+0 ||| B E C A C ||| -232.045
+0 ||| B C B D C ||| -232.045
+0 ||| E B A E B ||| -232.045
+0 ||| D D B B C ||| -232.045
+0 ||| D B A E C ||| -232.045
+0 ||| D E B A C ||| -232.045
+0 ||| C E B B B ||| -232.045
+0 ||| B A D E B ||| -232.045
+0 ||| C B A D D ||| -232.045
+0 ||| B B C B D ||| -232.045
+0 ||| C D A E B ||| -232.045
+0 ||| D B C C C ||| -232.045
+0 ||| B C A D D ||| -232.045
+0 ||| B C B A E ||| -232.045
+0 ||| B A D C D ||| -232.045
+0 ||| C B B C D ||| -232.045
+0 ||| D C C A D ||| -232.045
+0 ||| B A B D D ||| -232.045
+0 ||| C C D A D ||| -232.045
+0 ||| E A B B D ||| -232.045
+0 ||| E C A B D ||| -232.045
+0 ||| C B B D C ||| -232.045
+0 ||| D B D A D ||| -232.045
+0 ||| D B B B D ||| -232.045
+0 ||| C A C C D ||| -232.045
+0 ||| D D B A D ||| -232.045
+0 ||| C A C D C ||| -232.045
+0 ||| C A A E D ||| -232.045
+0 ||| C D A C D ||| -232.045
+0 ||| E C B A D ||| -232.045
+0 ||| C C C C C ||| -232.045
+0 ||| B A D A E ||| -232.045
+0 ||| E C E A B ||| -232.045
+0 ||| B A D D C ||| -232.045
+0 ||| B C B C D ||| -232.045
+0 ||| D E A A D ||| -232.045
+0 ||| D C D C B ||| -232.045
+0 ||| E A D A D ||| -232.045
+0 ||| B B E A D ||| -232.045
+0 ||| C B B E B ||| -232.045
+0 ||| E B D B B ||| -232.045
+0 ||| D D C B B ||| -232.045
+0 ||| C D C C B ||| -232.045
+0 ||| B D C B C ||| -232.045
+0 ||| D C C B C ||| -232.045
+0 ||| E B C C B ||| -232.045
+0 ||| D B E B B ||| -232.045
+0 ||| C C D B C ||| -232.045
+0 ||| E E A B B ||| -232.045
+0 ||| C B E C B ||| -232.045
+0 ||| D D E A B ||| -232.045
+0 ||| B C A B E ||| -232.045
+0 ||| E C C B B ||| -232.045
+0 ||| C C E B B ||| -232.045
+0 ||| C D D B B ||| -232.045
+0 ||| B E B C B ||| -232.045
+0 ||| B E A D B ||| -232.045
+0 ||| D E C A B ||| -232.045
+0 ||| B D D C B ||| -232.045
+0 ||| B B D D B ||| -232.045
+0 ||| B C C D B ||| -232.045
+0 ||| E D D A B ||| -232.045
+0 ||| C E D A B ||| -232.045
+0 ||| B A E D B ||| -232.045
+0 ||| C B C D B ||| -232.045
+0 ||| E E B A B ||| -232.045
+0 ||| D C B D B ||| -232.045
+0 ||| C C B B D ||| -232.045
+0 ||| B C B E B ||| -232.045
+0 ||| B D B D B ||| -232.045
+0 ||| E A D B C ||| -232.045
+0 ||| D E A B C ||| -232.045
+0 ||| D A A C E ||| -232.045
+0 ||| B B A C E ||| -232.045
+0 ||| E B A A E ||| -232.045
+0 ||| C B A B E ||| -232.045
+0 ||| D D A B D ||| -232.045
+0 ||| D A E A D ||| -232.045
+0 ||| D D E B A ||| -232.045
+0 ||| C B B A E ||| -232.045
+0 ||| C A D B D ||| -232.045
+0 ||| C D C D A ||| -232.045
+0 ||| D A C B D ||| -232.045
+0 ||| C D A A E ||| -232.045
+0 ||| D C D D A ||| -232.045
+0 ||| E B A C D ||| -232.045
+0 ||| E A E B B ||| -232.045
+0 ||| C D E C A ||| -232.045
+0 ||| B D C A D ||| -232.045
+0 ||| C E C C A ||| -232.045
+0 ||| B E D C A ||| -232.045
+0 ||| B C E D A ||| -232.045
+0 ||| E D C C A ||| -232.045
+0 ||| D E E A A ||| -232.045
+0 ||| E E B B A ||| -232.045
+0 ||| E B E C A ||| -232.045
+0 ||| E E D A A ||| -232.045
+0 ||| C A E E A ||| -232.045
+0 ||| C E A E A ||| -232.045
+0 ||| E D A E A ||| -232.045
+0 ||| C B D E A ||| -232.045
+0 ||| B E B D A ||| -232.045
+0 ||| C B E D A ||| -232.045
+0 ||| E C E B A ||| -232.045
+0 ||| C E D B A ||| -232.045
+0 ||| C C C E A ||| -232.045
+0 ||| E B B E A ||| -232.045
+0 ||| B D D D A ||| -232.045
+0 ||| E B C D A ||| -232.045
+0 ||| D B C E A ||| -232.045
+0 ||| E A C E A ||| -232.045
+0 ||| C D B E A ||| -232.045
+0 ||| B C D E A ||| -232.045
+0 ||| E D D B A ||| -232.045
+0 ||| A B C C D ||| -233.045
+0 ||| A A C E C ||| -233.045
+0 ||| A C E B C ||| -233.045
+0 ||| A C A C E ||| -233.045
+0 ||| A B E C C ||| -233.045
+0 ||| A D B B D ||| -233.045
+0 ||| A E A B D ||| -233.045
+0 ||| A D E B B ||| -233.045
+0 ||| A A B C E ||| -233.045
+0 ||| A E E A B ||| -233.045
+0 ||| A E C B B ||| -233.045
+0 ||| A B C E B ||| -233.045
+0 ||| A B C D C ||| -233.045
+0 ||| A E B A D ||| -233.045
+0 ||| A A E B D ||| -233.045
+0 ||| A D D A D ||| -233.045
+0 ||| A B B E C ||| -233.045
+0 ||| A B D B D ||| -233.045
+0 ||| A D D B C ||| -233.045
+0 ||| A D A E C ||| -233.045
+0 ||| A E D A C ||| -233.045
+0 ||| A E B B C ||| -233.045
+0 ||| A D C C C ||| -233.045
+0 ||| A A A D E ||| -233.045
+0 ||| A B A E D ||| -233.045
+0 ||| A B C A E ||| -233.045
+0 ||| A C E A D ||| -233.045
+0 ||| A D C E A ||| -233.045
+0 ||| A C D D B ||| -233.045
+0 ||| A C C B D ||| -233.045
+0 ||| A E E B A ||| -233.045
+0 ||| A B E E A ||| -233.045
+0 ||| C D B D B ||| -234.045
+0 ||| C C E C B ||| -234.045
+0 ||| C C B E B ||| -234.045
+0 ||| E A A D D ||| -234.045
+0 ||| C C A D D ||| -234.045
+0 ||| B E C B B ||| -234.045
+0 ||| E A A B E ||| -234.045
+0 ||| B B C D C ||| -234.045
+0 ||| E C D B B ||| -234.045
+0 ||| E B B D B ||| -234.045
+0 ||| E A B E B ||| -234.045
+0 ||| B E E A B ||| -234.045
+0 ||| C B C B D ||| -234.045
+0 ||| D E D A B ||| -234.045
+0 ||| E C A E B ||| -234.045
+0 ||| B E A B D ||| -234.045
+0 ||| E B C B C ||| -234.045
+0 ||| D C D B C ||| -234.045
+0 ||| D C C C C ||| -234.045
+0 ||| C C D C C ||| -234.045
+0 ||| B D A E C ||| -234.045
+0 ||| B D C C C ||| -234.045
+0 ||| D A E C C ||| -234.045
+0 ||| C D C B C ||| -234.045
+0 ||| D C D A D ||| -234.045
+0 ||| B B E C C ||| -234.045
+0 ||| C B E B C ||| -234.045
+0 ||| E A D C C ||| -234.045
+0 ||| D D A D C ||| -234.045
+0 ||| D A C C D ||| -234.045
+0 ||| B D D B C ||| -234.045
+0 ||| E C B C C ||| -234.045
+0 ||| E C A D C ||| -234.045
+0 ||| C E C A C ||| -234.045
+0 ||| B B B E C ||| -234.045
+0 ||| D E A C C ||| -234.045
+0 ||| D C B B D ||| -234.045
+0 ||| D B D C C ||| -234.045
+0 ||| E A B D C ||| -234.045
+0 ||| E A E C B ||| -234.045
+0 ||| B E B B C ||| -234.045
+0 ||| C A D C D ||| -234.045
+0 ||| D C A E C ||| -234.045
+0 ||| B C E B C ||| -234.045
+0 ||| E A C D B ||| -234.045
+0 ||| D B B D C ||| -234.045
+0 ||| C D E A C ||| -234.045
+0 ||| C E B C B ||| -234.045
+0 ||| D A B E C ||| -234.045
+0 ||| D A C E B ||| -234.045
+0 ||| D D B C C ||| -234.045
+0 ||| B A C E C ||| -234.045
+0 ||| B E D A C ||| -234.045
+0 ||| D A C A E ||| -234.045
+0 ||| B B C C D ||| -234.045
+0 ||| B E B A D ||| -234.045
+0 ||| E C A C D ||| -234.045
+0 ||| C C C D B ||| -234.045
+0 ||| B D B B D ||| -234.045
+0 ||| D D A C D ||| -234.045
+0 ||| C B E A D ||| -234.045
+0 ||| D A A E D ||| -234.045
+0 ||| C D C A D ||| -234.045
+0 ||| C B A C E ||| -234.045
+0 ||| D B B C D ||| -234.045
+0 ||| E C C C B ||| -234.045
+0 ||| B D D A D ||| -234.045
+0 ||| E B C A D ||| -234.045
+0 ||| D B A D D ||| -234.045
+0 ||| B A E B D ||| -234.045
+0 ||| C B D D B ||| -234.045
+0 ||| E B D C B ||| -234.045
+0 ||| E D B C B ||| -234.045
+0 ||| B B D B D ||| -234.045
+0 ||| B D E B B ||| -234.045
+0 ||| D D D B B ||| -234.045
+0 ||| D B E C B ||| -234.045
+0 ||| C A D E B ||| -234.045
+0 ||| E E A C B ||| -234.045
+0 ||| C A E D B ||| -234.045
+0 ||| D B B E B ||| -234.045
+0 ||| C C B C D ||| -234.045
+0 ||| D D C C B ||| -234.045
+0 ||| E D C A C ||| -234.045
+0 ||| D B C D B ||| -234.045
+0 ||| B C D D B ||| -234.045
+0 ||| D D A E B ||| -234.045
+0 ||| B C E A D ||| -234.045
+0 ||| D C E B B ||| -234.045
+0 ||| C E A D B ||| -234.045
+0 ||| C D D C B ||| -234.045
+0 ||| E D A D B ||| -234.045
+0 ||| C C A B E ||| -234.045
+0 ||| E A B C D ||| -234.045
+0 ||| C C B D C ||| -234.045
+0 ||| D A C D C ||| -234.045
+0 ||| E B E A C ||| -234.045
+0 ||| E C A A E ||| -234.045
+0 ||| B A B C E ||| -234.045
+0 ||| B B A E D ||| -234.045
+0 ||| D B B A E ||| -234.045
+0 ||| D E B B B ||| -234.045
+0 ||| C A D D C ||| -234.045
+0 ||| B C C B D ||| -234.045
+0 ||| B B C A E ||| -234.045
+0 ||| C A D A E ||| -234.045
+0 ||| B B C E B ||| -234.045
+0 ||| D B A B E ||| -234.045
+0 ||| D A D B D ||| -234.045
+0 ||| E D D C A ||| -234.045
+0 ||| B A A D E ||| -234.045
+0 ||| C C B A E ||| -234.045
+0 ||| C C D E A ||| -234.045
+0 ||| B C A C E ||| -234.045
+0 ||| C A B D D ||| -234.045
+0 ||| C E B D A ||| -234.045
+0 ||| D D A A E ||| -234.045
+0 ||| E A B A E ||| -234.045
+0 ||| E D B D A ||| -234.045
+0 ||| C A B B E ||| -234.045
+0 ||| E C E C A ||| -234.045
+0 ||| B E E B A ||| -234.045
+0 ||| D D E C A ||| -234.045
+0 ||| E C B E A ||| -234.045
+0 ||| D D C D A ||| -234.045
+0 ||| D B D E A ||| -234.045
+0 ||| B B E E A ||| -234.045
+0 ||| E A E D A ||| -234.045
+0 ||| E E A D A ||| -234.045
+0 ||| E B D D A ||| -234.045
+0 ||| E E B C A ||| -234.045
+0 ||| C D D D A ||| -234.045
+0 ||| D E D B A ||| -234.045
+0 ||| D D B E A ||| -234.045
+0 ||| D E C C A ||| -234.045
+0 ||| C E D C A ||| -234.045
+0 ||| D C C E A ||| -234.045
+0 ||| E C C D A ||| -234.045
+0 ||| D E A E A ||| -234.045
+0 ||| D A E E A ||| -234.045
+0 ||| B D C E A ||| -234.045
+0 ||| E A D E A ||| -234.045
+0 ||| C C E D A ||| -234.045
+0 ||| D B E D A ||| -234.045
+0 ||| A C C A E ||| -235.045
+0 ||| A C B E C ||| -235.045
+0 ||| A B D E B ||| -235.045
+0 ||| A C C D C ||| -235.045
+0 ||| A D A D D ||| -235.045
+0 ||| A B E D B ||| -235.045
+0 ||| A C C C D ||| -235.045
+0 ||| A C D B D ||| -235.045
+0 ||| A A D E C ||| -235.045
+0 ||| A C E C C ||| -235.045
+0 ||| A A E E B ||| -235.045
+0 ||| A D B C D ||| -235.045
+0 ||| A D B A E ||| -235.045
+0 ||| A C A E D ||| -235.045
+0 ||| A E D B B ||| -235.045
+0 ||| A E A C D ||| -235.045
+0 ||| A D D C C ||| -235.045
+0 ||| A D B E B ||| -235.045
+0 ||| A A C D D ||| -235.045
+0 ||| A B D C D ||| -235.045
+0 ||| A D B D C ||| -235.045
+0 ||| A D C D B ||| -235.045
+0 ||| A E C C B ||| -235.045
+0 ||| A E A E B ||| -235.045
+0 ||| A A E C D ||| -235.045
+0 ||| A E A D C ||| -235.045
+0 ||| A D E C B ||| -235.045
+0 ||| A B D D C ||| -235.045
+0 ||| A D E D A ||| -235.045
+0 ||| A B D A E ||| -235.045
+0 ||| A A C B E ||| -235.045
+0 ||| A E B C C ||| -235.045
+0 ||| A E E C A ||| -235.045
+0 ||| A C C E B ||| -235.045
+0 ||| A A E D C ||| -235.045
+0 ||| A E A A E ||| -235.045
+0 ||| A E B E A ||| -235.045
+0 ||| A D A B E ||| -235.045
+0 ||| A A B E D ||| -235.045
+0 ||| A B B D D ||| -235.045
+0 ||| A C E E A ||| -235.045
+0 ||| A B B B E ||| -235.045
+0 ||| A A E A E ||| -235.045
+0 ||| A E C D A ||| -235.045
+0 ||| A D D E A ||| -235.045
+0 ||| B E A E B ||| -236.045
+0 ||| B D E C B ||| -236.045
+0 ||| B D B D C ||| -236.045
+0 ||| B C E C C ||| -236.045
+0 ||| D C E C B ||| -236.045
+0 ||| C A C E C ||| -236.045
+0 ||| C B D B D ||| -236.045
+0 ||| D B D D B ||| -236.045
+0 ||| D C B C D ||| -236.045
+0 ||| B D B A E ||| -236.045
+0 ||| B B D E B ||| -236.045
+0 ||| B C C A E ||| -236.045
+0 ||| D C C D B ||| -236.045
+0 ||| D A D D C ||| -236.045
+0 ||| D A E D B ||| -236.045
+0 ||| E D B B C ||| -236.045
+0 ||| D D B D B ||| -236.045
+0 ||| B A D E C ||| -236.045
+0 ||| E E A A D ||| -236.045
+0 ||| E B A E C ||| -236.045
+0 ||| E A D D B ||| -236.045
+0 ||| C E B B C ||| -236.045
+0 ||| D A D A E ||| -236.045
+0 ||| C C E A D ||| -236.045
+0 ||| C D A E C ||| -236.045
+0 ||| B C C C D ||| -236.045
+0 ||| D C B A E ||| -236.045
+0 ||| C A A D E ||| -236.045
+0 ||| B A E A E ||| -236.045
+0 ||| B C B E C ||| -236.045
+0 ||| C B C C D ||| -236.045
+0 ||| B C C E B ||| -236.045
+0 ||| C A E B D ||| -236.045
+0 ||| C D D B C ||| -236.045
+0 ||| E C E A C ||| -236.045
+0 ||| B B B D D ||| -236.045
+0 ||| B B D A E ||| -236.045
+0 ||| C B A E D ||| -236.045
+0 ||| C C E B C ||| -236.045
+0 ||| C D D A D ||| -236.045
+0 ||| C D C C C ||| -236.045
+0 ||| D C D C C ||| -236.045
+0 ||| D D C B C ||| -236.045
+0 ||| C B B E C ||| -236.045
+0 ||| E B D B C ||| -236.045
+0 ||| B D A B E ||| -236.045
+0 ||| D C A B E ||| -236.045
+0 ||| D B E B C ||| -236.045
+0 ||| C B C A E ||| -236.045
+0 ||| E B C C C ||| -236.045
+0 ||| E C C B C ||| -236.045
+0 ||| E A A C E ||| -236.045
+0 ||| E E A B C ||| -236.045
+0 ||| D D E A C ||| -236.045
+0 ||| C A B C E ||| -236.045
+0 ||| C B E C C ||| -236.045
+0 ||| B B D D C ||| -236.045
+0 ||| E B D A D ||| -236.045
+0 ||| B B B B E ||| -236.045
+0 ||| E E B A C ||| -236.045
+0 ||| C C C B D ||| -236.045
+0 ||| C E B A D ||| -236.045
+0 ||| B D D C C ||| -236.045
+0 ||| D B E A D ||| -236.045
+0 ||| D E C A C ||| -236.045
+0 ||| B E B C C ||| -236.045
+0 ||| B E A D C ||| -236.045
+0 ||| C E D A C ||| -236.045
+0 ||| C B C D C ||| -236.045
+0 ||| E D D A C ||| -236.045
+0 ||| B C C D C ||| -236.045
+0 ||| B A E D C ||| -236.045
+0 ||| B A C B E ||| -236.045
+0 ||| D B A C E ||| -236.045
+0 ||| D C B E B ||| -236.045
+0 ||| D D C A D ||| -236.045
+0 ||| B E A C D ||| -236.045
+0 ||| C D B B D ||| -236.045
+0 ||| D C B D C ||| -236.045
+0 ||| D A B B E ||| -236.045
+0 ||| B E A A E ||| -236.045
+0 ||| C C A C E ||| -236.045
+0 ||| B D B E B ||| -236.045
+0 ||| C C D D B ||| -236.045
+0 ||| E A E B C ||| -236.045
+0 ||| B E C C B ||| -236.045
+0 ||| C B C E B ||| -236.045
+0 ||| B D C D B ||| -236.045
+0 ||| E D C B B ||| -236.045
+0 ||| E D B A D ||| -236.045
+0 ||| C D E B B ||| -236.045
+0 ||| D A D E B ||| -236.045
+0 ||| C E E A B ||| -236.045
+0 ||| C E C B B ||| -236.045
+0 ||| D D D C B ||| -236.045
+0 ||| D C A D D ||| -236.045
+0 ||| E E C A B ||| -236.045
+0 ||| E C B D B ||| -236.045
+0 ||| E B E B B ||| -236.045
+0 ||| B E D B B ||| -236.045
+0 ||| D E A D B ||| -236.045
+0 ||| B A E E B ||| -236.045
+0 ||| D A B D D ||| -236.045
+0 ||| B D A D D ||| -236.045
+0 ||| B A C D D ||| -236.045
+0 ||| B B D C D ||| -236.045
+0 ||| B A B E D ||| -236.045
+0 ||| B C D B D ||| -236.045
+0 ||| E D E A B ||| -236.045
+0 ||| B B E D B ||| -236.045
+0 ||| B A E C D ||| -236.045
+0 ||| B D B C D ||| -236.045
+0 ||| E B B B D ||| -236.045
+0 ||| E D A B D ||| -236.045
+0 ||| E B C E A ||| -236.045
+0 ||| E C C A D ||| -236.045
+0 ||| E A C B D ||| -236.045
+0 ||| D C E D A ||| -236.045
+0 ||| B C A E D ||| -236.045
+0 ||| C E A B D ||| -236.045
+0 ||| B D D E A ||| -236.045
+0 ||| D E B C B ||| -236.045
+0 ||| D B C B D ||| -236.045
+0 ||| C D C E A ||| -236.045
+0 ||| E A E A D ||| -236.045
+0 ||| E C D C B ||| -236.045
+0 ||| D A D C D ||| -236.045
+0 ||| D C D E A ||| -236.045
+0 ||| D D D D A ||| -236.045
+0 ||| C E E B A ||| -236.045
+0 ||| E C D D A ||| -236.045
+0 ||| B E E C A ||| -236.045
+0 ||| B C E E A ||| -236.045
+0 ||| E E C B A ||| -236.045
+0 ||| B E C D A ||| -236.045
+0 ||| D E B D A ||| -236.045
+0 ||| B E B E A ||| -236.045
+0 ||| E E E A A ||| -236.045
+0 ||| D E D C A ||| -236.045
+0 ||| C B E E A ||| -236.045
+0 ||| E D E B A ||| -236.045
+0 ||| B D E D A ||| -236.045
+0 ||| A C D D C ||| -237.045
+0 ||| A B C E C ||| -237.045
+0 ||| A C D A E ||| -237.045
+0 ||| A E C A D ||| -237.045
+0 ||| A E D D A ||| -237.045
+0 ||| A B E B D ||| -237.045
+0 ||| A C D E B ||| -237.045
+0 ||| A C B D D ||| -237.045
+0 ||| A E C B C ||| -237.045
+0 ||| A D A C E ||| -237.045
+0 ||| A E E A C ||| -237.045
+0 ||| A D D D B ||| -237.045
+0 ||| A B A D E ||| -237.045
+0 ||| A D E A D ||| -237.045
+0 ||| A C B B E ||| -237.045
+0 ||| A A D D D ||| -237.045
+0 ||| A A A E E ||| -237.045
+0 ||| A E D C B ||| -237.045
+0 ||| A A C C E ||| -237.045
+0 ||| A B B C E ||| -237.045
+0 ||| A E B D B ||| -237.045
+0 ||| A C E D B ||| -237.045
+0 ||| A A D B E ||| -237.045
+0 ||| A D C B D ||| -237.045
+0 ||| A C D C D ||| -237.045
+0 ||| A D E B C ||| -237.045
+0 ||| C B D E B ||| -238.045
+0 ||| C E C C B ||| -238.045
+0 ||| B C E D B ||| -238.045
+0 ||| B E D C B ||| -238.045
+0 ||| E C D A D ||| -238.045
+0 ||| B C B D D ||| -238.045
+0 ||| C A B E D ||| -238.045
+0 ||| C C B E C ||| -238.045
+0 ||| D E C B B ||| -238.045
+0 ||| D C E A D ||| -238.045
+0 ||| C A E C D ||| -238.045
+0 ||| E B A D D ||| -238.045
+0 ||| E C B B D ||| -238.045
+0 ||| C D B C D ||| -238.045
+0 ||| C E A A E ||| -238.045
+0 ||| D B B E C ||| -238.045
+0 ||| E D A C D ||| -238.045
+0 ||| B E C A D ||| -238.045
+0 ||| C C E C C ||| -238.045
+0 ||| D A E B D ||| -238.045
+0 ||| E B A B E ||| -238.045
+0 ||| B B E B D ||| -238.045
+0 ||| C B D C D ||| -238.045
+0 ||| E A A E D ||| -238.045
+0 ||| D B D B D ||| -238.045
+0 ||| C D B D C ||| -238.045
+0 ||| B A D B E ||| -238.045
+0 ||| C C A E D ||| -238.045
+0 ||| C D A D D ||| -238.045
+0 ||| E B B C D ||| -238.045
+0 ||| B D E A D ||| -238.045
+0 ||| D D D A D ||| -238.045
+0 ||| E A C C D ||| -238.045
+0 ||| B C D C D ||| -238.045
+0 ||| C E A C D ||| -238.045
+0 ||| D D B B D ||| -238.045
+0 ||| C A C D D ||| -238.045
+0 ||| E C A E C ||| -238.045
+0 ||| B E C B C ||| -238.045
+0 ||| D B A E D ||| -238.045
+0 ||| D E B A D ||| -238.045
+0 ||| D B C C D ||| -238.045
+0 ||| D E D A C ||| -238.045
+0 ||| E B B D C ||| -238.045
+0 ||| B B B C E ||| -238.045
+0 ||| E C D B C ||| -238.045
+0 ||| B E E A C ||| -238.045
+0 ||| E A B E C ||| -238.045
+0 ||| C B B D D ||| -238.045
+0 ||| E D C C B ||| -238.045
+0 ||| C A E D C ||| -238.045
+0 ||| B A D D D ||| -238.045
+0 ||| E A E C C ||| -238.045
+0 ||| E D A E B ||| -238.045
+0 ||| C B D A E ||| -238.045
+0 ||| C E B C C ||| -238.045
+0 ||| C D B A E ||| -238.045
+0 ||| E A C D C ||| -238.045
+0 ||| C C C C D ||| -238.045
+0 ||| B D C B D ||| -238.045
+0 ||| D A C E C ||| -238.045
+0 ||| D C C B D ||| -238.045
+0 ||| C C D B D ||| -238.045
+0 ||| E E D A B ||| -238.045
+0 ||| D A B C E ||| -238.045
+0 ||| C E A E B ||| -238.045
+0 ||| C C C D C ||| -238.045
+0 ||| E B E C B ||| -238.045
+0 ||| E E B B B ||| -238.045
+0 ||| D E E A B ||| -238.045
+0 ||| E E A C C ||| -238.045
+0 ||| C A E E B ||| -238.045
+0 ||| C A C B E ||| -238.045
+0 ||| C A D E C ||| -238.045
+0 ||| E C C C C ||| -238.045
+0 ||| D C A C E ||| -238.045
+0 ||| D B E C C ||| -238.045
+0 ||| D D D B C ||| -238.045
+0 ||| C B D D C ||| -238.045
+0 ||| E B D C C ||| -238.045
+0 ||| B D E B C ||| -238.045
+0 ||| E D B C C ||| -238.045
+0 ||| D D E B B ||| -238.045
+0 ||| B C D D C ||| -238.045
+0 ||| C C C E B ||| -238.045
+0 ||| B E B D B ||| -238.045
+0 ||| D B C D C ||| -238.045
+0 ||| D D C C C ||| -238.045
+0 ||| C D C D B ||| -238.045
+0 ||| D D A E C ||| -238.045
+0 ||| D C D D B ||| -238.045
+0 ||| C D E C B ||| -238.045
+0 ||| B C D A E ||| -238.045
+0 ||| C E A D C ||| -238.045
+0 ||| C E D B B ||| -238.045
+0 ||| E D A D C ||| -238.045
+0 ||| C B E D B ||| -238.045
+0 ||| D C E B C ||| -238.045
+0 ||| E A C A E ||| -238.045
+0 ||| C D D C C ||| -238.045
+0 ||| B B A D E ||| -238.045
+0 ||| E C E B B ||| -238.045
+0 ||| B A C C E ||| -238.045
+0 ||| D A A D E ||| -238.045
+0 ||| B C D E B ||| -238.045
+0 ||| E B B A E ||| -238.045
+0 ||| D E B B C ||| -238.045
+0 ||| C D B E B ||| -238.045
+0 ||| E B B E B ||| -238.045
+0 ||| B D D D B ||| -238.045
+0 ||| E A C E B ||| -238.045
+0 ||| D B C E B ||| -238.045
+0 ||| E B C D B ||| -238.045
+0 ||| E A D B D ||| -238.045
+0 ||| D E A B D ||| -238.045
+0 ||| E D D B B ||| -238.045
+0 ||| B D A C E ||| -238.045
+0 ||| D B E E A ||| -238.045
+0 ||| B B C E C ||| -238.045
+0 ||| C B B B E ||| -238.045
+0 ||| E B D E A ||| -238.045
+0 ||| B C B B E ||| -238.045
+0 ||| C C C A E ||| -238.045
+0 ||| E D B E A ||| -238.045
+0 ||| B A A E E ||| -238.045
+0 ||| D B C A E ||| -238.045
+0 ||| E D C D A ||| -238.045
+0 ||| E D A A E ||| -238.045
+0 ||| C A E A E ||| -238.045
+0 ||| E B E D A ||| -238.045
+0 ||| C D A B E ||| -238.045
+0 ||| C C E E A ||| -238.045
+0 ||| C E C D A ||| -238.045
+0 ||| C E B E A ||| -238.045
+0 ||| C D E D A ||| -238.045
+0 ||| E E D B A ||| -238.045
+0 ||| E E A E A ||| -238.045
+0 ||| D D C E A ||| -238.045
+0 ||| C E E C A ||| -238.045
+0 ||| E A E E A ||| -238.045
+0 ||| E E C C A ||| -238.045
+0 ||| E D E C A ||| -238.045
+0 ||| E C C E A ||| -238.045
+0 ||| D E E B A ||| -238.045
+0 ||| B E D D A ||| -238.045
+0 ||| C D D E A ||| -238.045
+0 ||| A A D C E ||| -239.045
+0 ||| A E B B D ||| -239.045
+0 ||| A B E C D ||| -239.045
+0 ||| A A B D E ||| -239.045
+0 ||| A D C E B ||| -239.045
+0 ||| A A E E C ||| -239.045
+0 ||| A B C B E ||| -239.045
+0 ||| A D C C D ||| -239.045
+0 ||| A B D E C ||| -239.045
+0 ||| A C E B D ||| -239.045
+0 ||| A B B E D ||| -239.045
+0 ||| A A C E D ||| -239.045
+0 ||| A E E B B ||| -239.045
+0 ||| A B E E B ||| -239.045
+0 ||| A D A E D ||| -239.045
+0 ||| A B E D C ||| -239.045
+0 ||| A E D A D ||| -239.045
+0 ||| A B C D D ||| -239.045
+0 ||| A D E E A ||| -239.045
+0 ||| A D E C C ||| -239.045
+0 ||| A E D B C ||| -239.045
+0 ||| A D C D C ||| -239.045
+0 ||| A E C C C ||| -239.045
+0 ||| A E C E A ||| -239.045
+0 ||| A E A E C ||| -239.045
+0 ||| A C B C E ||| -239.045
+0 ||| A D D B D ||| -239.045
+0 ||| A D B E C ||| -239.045
+0 ||| A B E A E ||| -239.045
+0 ||| A D C A E ||| -239.045
+0 ||| A C A D E ||| -239.045
+0 ||| A C C E C ||| -239.045
+0 ||| B E E B B ||| -240.045
+0 ||| B D C A E ||| -240.045
+0 ||| D E A C D ||| -240.045
+0 ||| E A D E B ||| -240.045
+0 ||| D D E C B ||| -240.045
+0 ||| D B D E B ||| -240.045
+0 ||| C A A E E ||| -240.045
+0 ||| D C C D C ||| -240.045
+0 ||| B D E C C ||| -240.045
+0 ||| B E A E C ||| -240.045
+0 ||| D C E C C ||| -240.045
+0 ||| E C E C B ||| -240.045
+0 ||| B B D E C ||| -240.045
+0 ||| D B D D C ||| -240.045
+0 ||| D D B D C ||| -240.045
+0 ||| C B B C E ||| -240.045
+0 ||| B B B E D ||| -240.045
+0 ||| D A E D C ||| -240.045
+0 ||| B A D C E ||| -240.045
+0 ||| B B C D D ||| -240.045
+0 ||| C B A D E ||| -240.045
+0 ||| B B C B E ||| -240.045
+0 ||| B C A D E ||| -240.045
+0 ||| E A D D C ||| -240.045
+0 ||| B D C C D ||| -240.045
+0 ||| D D B A E ||| -240.045
+0 ||| D C C A E ||| -240.045
+0 ||| E C A B E ||| -240.045
+0 ||| D C D B D ||| -240.045
+0 ||| E B C B D ||| -240.045
+0 ||| C E C A D ||| -240.045
+0 ||| B D A E D ||| -240.045
+0 ||| E A B B E ||| -240.045
+0 ||| B A B D E ||| -240.045
+0 ||| C C D C D ||| -240.045
+0 ||| C C D A E ||| -240.045
+0 ||| D C C C D ||| -240.045
+0 ||| E C A D D ||| -240.045
+0 ||| C B E B D ||| -240.045
+0 ||| D A E C D ||| -240.045
+0 ||| C A C C E ||| -240.045
+0 ||| B B E C D ||| -240.045
+0 ||| C D C B D ||| -240.045
+0 ||| E C B C D ||| -240.045
+0 ||| D D A D D ||| -240.045
+0 ||| D B B B E ||| -240.045
+0 ||| E A D C D ||| -240.045
+0 ||| B D D B D ||| -240.045
+0 ||| D B D A E ||| -240.045
+0 ||| D D C D B ||| -240.045
+0 ||| C D A C E ||| -240.045
+0 ||| B E B B D ||| -240.045
+0 ||| E C C D B ||| -240.045
+0 ||| B C C E C ||| -240.045
+0 ||| B E D A D ||| -240.045
+0 ||| E A B D D ||| -240.045
+0 ||| D B D C D ||| -240.045
+0 ||| E C B A E ||| -240.045
+0 ||| D B B D D ||| -240.045
+0 ||| D C A E D ||| -240.045
+0 ||| C D E A D ||| -240.045
+0 ||| B C E B D ||| -240.045
+0 ||| D A B E D ||| -240.045
+0 ||| D E A A E ||| -240.045
+0 ||| B C B C E ||| -240.045
+0 ||| B A C E D ||| -240.045
+0 ||| B B E A E ||| -240.045
+0 ||| E A D A E ||| -240.045
+0 ||| D D B C D ||| -240.045
+0 ||| E C B E B ||| -240.045
+0 ||| E E A D B ||| -240.045
+0 ||| C C B B E ||| -240.045
+0 ||| D C B E C ||| -240.045
+0 ||| D A D E C ||| -240.045
+0 ||| E C D C C ||| -240.045
+0 ||| C C E D B ||| -240.045
+0 ||| D A E A E ||| -240.045
+0 ||| E D C A D ||| -240.045
+0 ||| E D D C B ||| -240.045
+0 ||| C C D E B ||| -240.045
+0 ||| C A D D D ||| -240.045
+0 ||| E E B C B ||| -240.045
+0 ||| E A E D B ||| -240.045
+0 ||| D B E D B ||| -240.045
+0 ||| C E B D B ||| -240.045
+0 ||| E D B D B ||| -240.045
+0 ||| C D E B C ||| -240.045
+0 ||| E B D D B ||| -240.045
+0 ||| C C D D C ||| -240.045
+0 ||| B D B E C ||| -240.045
+0 ||| E D C B C ||| -240.045
+0 ||| B E C C C ||| -240.045
+0 ||| B D C D C ||| -240.045
+0 ||| C B C E C ||| -240.045
+0 ||| B B E D C ||| -240.045
+0 ||| D E A D C ||| -240.045
+0 ||| D E D B B ||| -240.045
+0 ||| D D A B E ||| -240.045
+0 ||| C D D D B ||| -240.045
+0 ||| E E C A C ||| -240.045
+0 ||| C E C B C ||| -240.045
+0 ||| C E E A C ||| -240.045
+0 ||| D D D C C ||| -240.045
+0 ||| C C B D D ||| -240.045
+0 ||| D C C E B ||| -240.045
+0 ||| D A C D D ||| -240.045
+0 ||| E B E A D ||| -240.045
+0 ||| E B E B C ||| -240.045
+0 ||| E C B D C ||| -240.045
+0 ||| D E A E B ||| -240.045
+0 ||| B D C E B ||| -240.045
+0 ||| B A E E C ||| -240.045
+0 ||| B E D B C ||| -240.045
+0 ||| D E B C C ||| -240.045
+0 ||| B B E E B ||| -240.045
+0 ||| D D B E B ||| -240.045
+0 ||| B D E E A ||| -240.045
+0 ||| D E C C B ||| -240.045
+0 ||| E D E A C ||| -240.045
+0 ||| E E B D A ||| -240.045
+0 ||| E B A C E ||| -240.045
+0 ||| C E D C B ||| -240.045
+0 ||| D E E C A ||| -240.045
+0 ||| D A C B E ||| -240.045
+0 ||| D A E E B ||| -240.045
+0 ||| D D E D A ||| -240.045
+0 ||| C A D B E ||| -240.045
+0 ||| D C E E A ||| -240.045
+0 ||| E C D E A ||| -240.045
+0 ||| E D D D A ||| -240.045
+0 ||| E E D C A ||| -240.045
+0 ||| D D D E A ||| -240.045
+0 ||| E C E D A ||| -240.045
+0 ||| B E C E A ||| -240.045
+0 ||| D E B E A ||| -240.045
+0 ||| C E D D A ||| -240.045
+0 ||| D E C D A ||| -240.045
+0 ||| A C E A E ||| -241.045
+0 ||| A C E C D ||| -241.045
+0 ||| A E E D A ||| -241.045
+0 ||| A A D E D ||| -241.045
+0 ||| A D E D B ||| -241.045
+0 ||| A C E E B ||| -241.045
+0 ||| A D D E B ||| -241.045
+0 ||| A C C D D ||| -241.045
+0 ||| A D D A E ||| -241.045
+0 ||| A D D C D ||| -241.045
+0 ||| A E D E A ||| -241.045
+0 ||| A E A B E ||| -241.045
+0 ||| A E C D B ||| -241.045
+0 ||| A C C B E ||| -241.045
+0 ||| A D B D D ||| -241.045
+0 ||| A A E B E ||| -241.045
+0 ||| A D B B E ||| -241.045
+0 ||| A B C C E ||| -241.045
+0 ||| A E D C C ||| -241.045
+0 ||| A C D E C ||| -241.045
+0 ||| A B D B E ||| -241.045
+0 ||| A E A D D ||| -241.045
+0 ||| A C B E D ||| -241.045
+0 ||| A E B C D ||| -241.045
+0 ||| A B D D D ||| -241.045
+0 ||| A B A E E ||| -241.045
+0 ||| A C E D C ||| -241.045
+0 ||| A E B E B ||| -241.045
+0 ||| A E B D C ||| -241.045
+0 ||| A E E C B ||| -241.045
+0 ||| A D D D C ||| -241.045
+0 ||| A E B A E ||| -241.045
+0 ||| A A E D D ||| -241.045
+0 ||| B C E C D ||| -242.045
+0 ||| D E C B C ||| -242.045
+0 ||| D D D D B ||| -242.045
+0 ||| B C E D C ||| -242.045
+0 ||| B D B D D ||| -242.045
+0 ||| C E C C C ||| -242.045
+0 ||| C B D E C ||| -242.045
+0 ||| B E D C C ||| -242.045
+0 ||| E D C C C ||| -242.045
+0 ||| C A C E D ||| -242.045
+0 ||| C B E E B ||| -242.045
+0 ||| B D E D B ||| -242.045
+0 ||| D A D D D ||| -242.045
+0 ||| E B A E D ||| -242.045
+0 ||| E D B B D ||| -242.045
+0 ||| E A A D E ||| -242.045
+0 ||| C C A D E ||| -242.045
+0 ||| B A D E D ||| -242.045
+0 ||| C B C B E ||| -242.045
+0 ||| B E A B E ||| -242.045
+0 ||| C E B B D ||| -242.045
+0 ||| D C D A E ||| -242.045
+0 ||| D A C C E ||| -242.045
+0 ||| E D A E C ||| -242.045
+0 ||| E B B E C ||| -242.045
+0 ||| D C D E B ||| -242.045
+0 ||| D C B B E ||| -242.045
+0 ||| C D A E D ||| -242.045
+0 ||| B C B E D ||| -242.045
+0 ||| C A D C E ||| -242.045
+0 ||| E C C B D ||| -242.045
+0 ||| B C D E C ||| -242.045
+0 ||| C C E B D ||| -242.045
+0 ||| C D D B D ||| -242.045
+0 ||| E C E A D ||| -242.045
+0 ||| E B C C D ||| -242.045
+0 ||| D D C B D ||| -242.045
+0 ||| D C D C D ||| -242.045
+0 ||| C D C C D ||| -242.045
+0 ||| E D E B B ||| -242.045
+0 ||| E B D B D ||| -242.045
+0 ||| C B B E D ||| -242.045
+0 ||| D B E B D ||| -242.045
+0 ||| B E C D B ||| -242.045
+0 ||| B D B B E ||| -242.045
+0 ||| C B C D D ||| -242.045
+0 ||| D D E A D ||| -242.045
+0 ||| E E A B D ||| -242.045
+0 ||| C B E C D ||| -242.045
+0 ||| E E B A D ||| -242.045
+0 ||| D C B D D ||| -242.045
+0 ||| B B D D D ||| -242.045
+0 ||| C E D A D ||| -242.045
+0 ||| B E B A E ||| -242.045
+0 ||| B D D C D ||| -242.045
+0 ||| B B C C E ||| -242.045
+0 ||| E E D A C ||| -242.045
+0 ||| B E A D D ||| -242.045
+0 ||| D E C A D ||| -242.045
+0 ||| E C A C E ||| -242.045
+0 ||| B E B C D ||| -242.045
+0 ||| D E B D B ||| -242.045
+0 ||| D D A C E ||| -242.045
+0 ||| B A E D D ||| -242.045
+0 ||| B C C D D ||| -242.045
+0 ||| E D D A D ||| -242.045
+0 ||| C E A E C ||| -242.045
+0 ||| C D C A E ||| -242.045
+0 ||| D A A E E ||| -242.045
+0 ||| C B E A E ||| -242.045
+0 ||| C D C E B ||| -242.045
+0 ||| E E B B C ||| -242.045
+0 ||| E B E C C ||| -242.045
+0 ||| B A E B E ||| -242.045
+0 ||| D B B C E ||| -242.045
+0 ||| D B A D E ||| -242.045
+0 ||| B D D A E ||| -242.045
+0 ||| E B C A E ||| -242.045
+0 ||| C A E E C ||| -242.045
+0 ||| C E E B B ||| -242.045
+0 ||| D E E A C ||| -242.045
+0 ||| B B D B E ||| -242.045
+0 ||| B C E A E ||| -242.045
+0 ||| E B C D C ||| -242.045
+0 ||| E E C B B ||| -242.045
+0 ||| C C B C E ||| -242.045
+0 ||| D D E B C ||| -242.045
+0 ||| D C E D B ||| -242.045
+0 ||| B E B D C ||| -242.045
+0 ||| E B C E B ||| -242.045
+0 ||| C C C E C ||| -242.045
+0 ||| D E D C B ||| -242.045
+0 ||| E C D D B ||| -242.045
+0 ||| C D C D C ||| -242.045
+0 ||| B C E E B ||| -242.045
+0 ||| C D E C C ||| -242.045
+0 ||| D C D D C ||| -242.045
+0 ||| B C C B E ||| -242.045
+0 ||| B E E C B ||| -242.045
+0 ||| C E D B C ||| -242.045
+0 ||| C B E D C ||| -242.045
+0 ||| E A E B D ||| -242.045
+0 ||| E A C E C ||| -242.045
+0 ||| E A B C E ||| -242.045
+0 ||| C D B E C ||| -242.045
+0 ||| B B A E E ||| -242.045
+0 ||| D B C E C ||| -242.045
+0 ||| E C E B C ||| -242.045
+0 ||| B E B E B ||| -242.045
+0 ||| D E D D A ||| -242.045
+0 ||| B D D D C ||| -242.045
+0 ||| E D D B C ||| -242.045
+0 ||| B E D E A ||| -242.045
+0 ||| E E E A B ||| -242.045
+0 ||| C A B D E ||| -242.045
+0 ||| B E E D A ||| -242.045
+0 ||| D A D B E ||| -242.045
+0 ||| B D D E B ||| -242.045
+0 ||| E D C E A ||| -242.045
+0 ||| C E C E A ||| -242.045
+0 ||| C D E E A ||| -242.045
+0 ||| E E E B A ||| -242.045
+0 ||| E B E E A ||| -242.045
+0 ||| A E A C E ||| -243.045
+0 ||| A B D C E ||| -243.045
+0 ||| A C D B E ||| -243.045
+0 ||| A D A D E ||| -243.045
+0 ||| A E C B D ||| -243.045
+0 ||| A C C C E ||| -243.045
+0 ||| A D B C E ||| -243.045
+0 ||| A E D D B ||| -243.045
+0 ||| A C A E E ||| -243.045
+0 ||| A A C D E ||| -243.045
+0 ||| A D E B D ||| -243.045
+0 ||| A B C E D ||| -243.045
+0 ||| A B B D E ||| -243.045
+0 ||| A C D D D ||| -243.045
+0 ||| A D C E C ||| -243.045
+0 ||| A E E B C ||| -243.045
+0 ||| A B E E C ||| -243.045
+0 ||| A A E C E ||| -243.045
+0 ||| A A B E E ||| -243.045
+0 ||| A E E A D ||| -243.045
+0 ||| D E C C C ||| -244.045
+0 ||| C C E A E ||| -244.045
+0 ||| D D E C C ||| -244.045
+0 ||| E B D C D ||| -244.045
+0 ||| C E B E B ||| -244.045
+0 ||| C C E E B ||| -244.045
+0 ||| D A D C E ||| -244.045
+0 ||| E E A D C ||| -244.045
+0 ||| C C B E D ||| -244.045
+0 ||| D E D B C ||| -244.045
+0 ||| E A D E C ||| -244.045
+0 ||| C E E C B ||| -244.045
+0 ||| D B D E C ||| -244.045
+0 ||| E C D B D ||| -244.045
+0 ||| C B D B E ||| -244.045
+0 ||| C C E C D ||| -244.045
+0 ||| D B B E D ||| -244.045
+0 ||| D C B C E ||| -244.045
+0 ||| C D B D D ||| -244.045
+0 ||| E B E D B ||| -244.045
+0 ||| E C E C C ||| -244.045
+0 ||| D E D A D ||| -244.045
+0 ||| E E A A E ||| -244.045
+0 ||| E C A E D ||| -244.045
+0 ||| B E C B D ||| -244.045
+0 ||| E B B D D ||| -244.045
+0 ||| C D D E B ||| -244.045
+0 ||| E E C C B ||| -244.045
+0 ||| E C C E B ||| -244.045
+0 ||| D E E B B ||| -244.045
+0 ||| E A E E B ||| -244.045
+0 ||| E E D B B ||| -244.045
+0 ||| C D E D B ||| -244.045
+0 ||| B B D C E ||| -244.045
+0 ||| D A B D E ||| -244.045
+0 ||| B A E C E ||| -244.045
+0 ||| D D C D C ||| -244.045
+0 ||| E A B E D ||| -244.045
+0 ||| C B D D D ||| -244.045
+0 ||| C E C D B ||| -244.045
+0 ||| E C B E C ||| -244.045
+0 ||| B C C C E ||| -244.045
+0 ||| B E E A D ||| -244.045
+0 ||| C B C C E ||| -244.045
+0 ||| E A E C D ||| -244.045
+0 ||| E D B E B ||| -244.045
+0 ||| C A E D D ||| -244.045
+0 ||| E C C D C ||| -244.045
+0 ||| C A E B E ||| -244.045
+0 ||| C B A E E ||| -244.045
+0 ||| C A D E D ||| -244.045
+0 ||| B B B D E ||| -244.045
+0 ||| C E B C D ||| -244.045
+0 ||| E E A C D ||| -244.045
+0 ||| E A C D D ||| -244.045
+0 ||| C D D A E ||| -244.045
+0 ||| C C C B E ||| -244.045
+0 ||| D D D B D ||| -244.045
+0 ||| C E A D D ||| -244.045
+0 ||| C E B D C ||| -244.045
+0 ||| C D B B E ||| -244.045
+0 ||| E B D A E ||| -244.045
+0 ||| D B E A E ||| -244.045
+0 ||| D A C E D ||| -244.045
+0 ||| C E B A E ||| -244.045
+0 ||| D D A E D ||| -244.045
+0 ||| B E A C E ||| -244.045
+0 ||| D B E C D ||| -244.045
+0 ||| D D C A E ||| -244.045
+0 ||| E D D C C ||| -244.045
+0 ||| E D B A E ||| -244.045
+0 ||| C C C D D ||| -244.045
+0 ||| E D A D D ||| -244.045
+0 ||| D C E B D ||| -244.045
+0 ||| D B E D C ||| -244.045
+0 ||| E A E D C ||| -244.045
+0 ||| E C C C D ||| -244.045
+0 ||| B C D B E ||| -244.045
+0 ||| D B C D D ||| -244.045
+0 ||| E D B C D ||| -244.045
+0 ||| D E B B D ||| -244.045
+0 ||| D D C C D ||| -244.045
+0 ||| E B D E B ||| -244.045
+0 ||| B D E B D ||| -244.045
+0 ||| C D D C D ||| -244.045
+0 ||| B A B E E ||| -244.045
+0 ||| E A C B E ||| -244.045
+0 ||| B A C D E ||| -244.045
+0 ||| D C A D E ||| -244.045
+0 ||| B C D D D ||| -244.045
+0 ||| C C E D C ||| -244.045
+0 ||| D E A E C ||| -244.045
+0 ||| C C D E C ||| -244.045
+0 ||| D B E E B ||| -244.045
+0 ||| D E C E A ||| -244.045
+0 ||| E B D D C ||| -244.045
+0 ||| E D E D A ||| -244.045
+0 ||| E D B D C ||| -244.045
+0 ||| D D E E A ||| -244.045
+0 ||| D A E E C ||| -244.045
+0 ||| E E B E A ||| -244.045
+0 ||| B D A D E ||| -244.045
+0 ||| E D D E A ||| -244.045
+0 ||| E D C D B ||| -244.045
+0 ||| E E C D A ||| -244.045
+0 ||| C D D D C ||| -244.045
+0 ||| C E E D A ||| -244.045
+0 ||| D D C E B ||| -244.045
+0 ||| C E D E A ||| -244.045
+0 ||| E E A E B ||| -244.045
+0 ||| E E E C A ||| -244.045
+0 ||| E E B C C ||| -244.045
+0 ||| E C E E A ||| -244.045
+0 ||| E D E C B ||| -244.045
+0 ||| B E D D B ||| -244.045
+0 ||| D C C E C ||| -244.045
+0 ||| D D B E C ||| -244.045
+0 ||| B E E B C ||| -244.045
+0 ||| B D C E C ||| -244.045
+0 ||| B B E E C ||| -244.045
+0 ||| E A E A E ||| -244.045
+0 ||| E D A B E ||| -244.045
+0 ||| E C C A E ||| -244.045
+0 ||| E B B B E ||| -244.045
+0 ||| B D B C E ||| -244.045
+0 ||| C E D C C ||| -244.045
+0 ||| D B C B E ||| -244.045
+0 ||| B C A E E ||| -244.045
+0 ||| B B C E D ||| -244.045
+0 ||| C E A B E ||| -244.045
+0 ||| A A E E D ||| -245.045
+0 ||| A E C A E ||| -245.045
+0 ||| A D D E C ||| -245.045
+0 ||| A C B D E ||| -245.045
+0 ||| A B D E D ||| -245.045
+0 ||| A A D D E ||| -245.045
+0 ||| A C D C E ||| -245.045
+0 ||| A C C E D ||| -245.045
+0 ||| A B E B E ||| -245.045
+0 ||| A D C B E ||| -245.045
+0 ||| A C E E C ||| -245.045
+0 ||| A D E D C ||| -245.045
+0 ||| A E C D C ||| -245.045
+0 ||| A E E E A ||| -245.045
+0 ||| A E E C C ||| -245.045
+0 ||| A B E D D ||| -245.045
+0 ||| A E C E B ||| -245.045
+0 ||| A E D B D ||| -245.045
+0 ||| A D E A E ||| -245.045
+0 ||| A D E C D ||| -245.045
+0 ||| A D B E D ||| -245.045
+0 ||| A E C C D ||| -245.045
+0 ||| A D C D D ||| -245.045
+0 ||| A E B E C ||| -245.045
+0 ||| A E A E D ||| -245.045
+0 ||| A D E E B ||| -245.045
+0 ||| E D D D B ||| -246.045
+0 ||| B D D E C ||| -246.045
+0 ||| E C D E B ||| -246.045
+0 ||| E E C B C ||| -246.045
+0 ||| D C B E D ||| -246.045
+0 ||| D D D D C ||| -246.045
+0 ||| B E A E D ||| -246.045
+0 ||| C E D D B ||| -246.045
+0 ||| C A B E E ||| -246.045
+0 ||| B C B D E ||| -246.045
+0 ||| E C D A E ||| -246.045
+0 ||| C A E C E ||| -246.045
+0 ||| D C E A E ||| -246.045
+0 ||| E B B C E ||| -246.045
+0 ||| C D B C E ||| -246.045
+0 ||| E B A D E ||| -246.045
+0 ||| E C B B E ||| -246.045
+0 ||| D C E E B ||| -246.045
+0 ||| E D A C E ||| -246.045
+0 ||| B E C A E ||| -246.045
+0 ||| C B D C E ||| -246.045
+0 ||| B D E A E ||| -246.045
+0 ||| D A E B E ||| -246.045
+0 ||| B B E B E ||| -246.045
+0 ||| C D A D E ||| -246.045
+0 ||| E A A E E ||| -246.045
+0 ||| C C A E E ||| -246.045
+0 ||| B D E C D ||| -246.045
+0 ||| D B D B E ||| -246.045
+0 ||| D C C D D ||| -246.045
+0 ||| C B E E C ||| -246.045
+0 ||| D A E D D ||| -246.045
+0 ||| C E A C E ||| -246.045
+0 ||| C E E B C ||| -246.045
+0 ||| D D D A E ||| -246.045
+0 ||| D C E C D ||| -246.045
+0 ||| B C D C E ||| -246.045
+0 ||| E A C C E ||| -246.045
+0 ||| D D B D D ||| -246.045
+0 ||| D B C C E ||| -246.045
+0 ||| D D B B E ||| -246.045
+0 ||| D B D D D ||| -246.045
+0 ||| B B D E D ||| -246.045
+0 ||| B D E D C ||| -246.045
+0 ||| C A C D E ||| -246.045
+0 ||| D B A E E ||| -246.045
+0 ||| D E B A E ||| -246.045
+0 ||| B B E D D ||| -246.045
+0 ||| E A D D D ||| -246.045
+0 ||| C C D D D ||| -246.045
+0 ||| D E A D D ||| -246.045
+0 ||| E C E D B ||| -246.045
+0 ||| D E B E B ||| -246.045
+0 ||| C B B D E ||| -246.045
+0 ||| B A D D E ||| -246.045
+0 ||| B C C E D ||| -246.045
+0 ||| D C D E C ||| -246.045
+0 ||| D D D E B ||| -246.045
+0 ||| C C C C E ||| -246.045
+0 ||| E D C B D ||| -246.045
+0 ||| E E D C B ||| -246.045
+0 ||| D D E D B ||| -246.045
+0 ||| B D C B E ||| -246.045
+0 ||| B E C E B ||| -246.045
+0 ||| D C E D C ||| -246.045
+0 ||| C E E A D ||| -246.045
+0 ||| B E C D C ||| -246.045
+0 ||| E D E B C ||| -246.045
+0 ||| D E D E A ||| -246.045
+0 ||| B E C C D ||| -246.045
+0 ||| C C D B E ||| -246.045
+0 ||| C D E B D ||| -246.045
+0 ||| D E E D A ||| -246.045
+0 ||| C D C E C ||| -246.045
+0 ||| D C C B E ||| -246.045
+0 ||| B E E E A ||| -246.045
+0 ||| D A D E D ||| -246.045
+0 ||| E E D D A ||| -246.045
+0 ||| B D E E B ||| -246.045
+0 ||| B D B E D ||| -246.045
+0 ||| E C D C D ||| -246.045
+0 ||| B E E C C ||| -246.045
+0 ||| E B C E C ||| -246.045
+0 ||| E C D D C ||| -246.045
+0 ||| D E D C C ||| -246.045
+0 ||| B C E E C ||| -246.045
+0 ||| E C B D D ||| -246.045
+0 ||| C B C E D ||| -246.045
+0 ||| E B E B D ||| -246.045
+0 ||| D D D C D ||| -246.045
+0 ||| B A E E D ||| -246.045
+0 ||| B E B E C ||| -246.045
+0 ||| B E D B D ||| -246.045
+0 ||| D E B C D ||| -246.045
+0 ||| E A D B E ||| -246.045
+0 ||| D E A B E ||| -246.045
+0 ||| D E E C B ||| -246.045
+0 ||| E E C A D ||| -246.045
+0 ||| E E E A C ||| -246.045
+0 ||| D E B D C ||| -246.045
+0 ||| B D C D D ||| -246.045
+0 ||| E E B D B ||| -246.045
+0 ||| C E C B D ||| -246.045
+0 ||| E D E A D ||| -246.045
+0 ||| D E C D B ||| -246.045
+0 ||| A C E B E ||| -247.045
+0 ||| A E B B E ||| -247.045
+0 ||| A B E C E ||| -247.045
+0 ||| A D C C E ||| -247.045
+0 ||| A B B E E ||| -247.045
+0 ||| A D D D D ||| -247.045
+0 ||| A E D D C ||| -247.045
+0 ||| A E D E B ||| -247.045
+0 ||| A E E D B ||| -247.045
+0 ||| A D A E E ||| -247.045
+0 ||| A E D A E ||| -247.045
+0 ||| A B C D E ||| -247.045
+0 ||| A A C E E ||| -247.045
+0 ||| A E B D D ||| -247.045
+0 ||| A C D E D ||| -247.045
+0 ||| A E D C D ||| -247.045
+0 ||| A D D B E ||| -247.045
+0 ||| A C E D D ||| -247.045
+0 ||| B C D E D ||| -248.045
+0 ||| B C E D D ||| -248.045
+0 ||| C D E D C ||| -248.045
+0 ||| B E D C D ||| -248.045
+0 ||| C C E E C ||| -248.045
+0 ||| D D E B D ||| -248.045
+0 ||| C E B E C ||| -248.045
+0 ||| D E C B D ||| -248.045
+0 ||| D E A C E ||| -248.045
+0 ||| C B D E D ||| -248.045
+0 ||| B B E C E ||| -248.045
+0 ||| C E C C D ||| -248.045
+0 ||| C E E C C ||| -248.045
+0 ||| E E D B C ||| -248.045
+0 ||| E B E D C ||| -248.045
+0 ||| D D A D E ||| -248.045
+0 ||| E D C C D ||| -248.045
+0 ||| E C A D E ||| -248.045
+0 ||| C D E E B ||| -248.045
+0 ||| D C C C E ||| -248.045
+0 ||| C D E A E ||| -248.045
+0 ||| C C D C E ||| -248.045
+0 ||| C D C B E ||| -248.045
+0 ||| B B B E E ||| -248.045
+0 ||| E B E C D ||| -248.045
+0 ||| E C B C E ||| -248.045
+0 ||| B B C D E ||| -248.045
+0 ||| C E C A E ||| -248.045
+0 ||| C D D E C ||| -248.045
+0 ||| E B C B E ||| -248.045
+0 ||| B D C C E ||| -248.045
+0 ||| D C D B E ||| -248.045
+0 ||| E A E E C ||| -248.045
+0 ||| E E C C C ||| -248.045
+0 ||| B D A E E ||| -248.045
+0 ||| D E E B C ||| -248.045
+0 ||| E C C E C ||| -248.045
+0 ||| C B E B E ||| -248.045
+0 ||| D A E C E ||| -248.045
+0 ||| D E D D B ||| -248.045
+0 ||| E A D C E ||| -248.045
+0 ||| D B D C E ||| -248.045
+0 ||| E D C E B ||| -248.045
+0 ||| B E E D B ||| -248.045
+0 ||| B D D B E ||| -248.045
+0 ||| E E E B B ||| -248.045
+0 ||| E B B E D ||| -248.045
+0 ||| C E C D C ||| -248.045
+0 ||| B E D A E ||| -248.045
+0 ||| B E B B E ||| -248.045
+0 ||| D B B D E ||| -248.045
+0 ||| B C E B E ||| -248.045
+0 ||| D C A E E ||| -248.045
+0 ||| E C E B D ||| -248.045
+0 ||| C E C E B ||| -248.045
+0 ||| E D B E C ||| -248.045
+0 ||| D A B E E ||| -248.045
+0 ||| E D A E D ||| -248.045
+0 ||| E B E E B ||| -248.045
+0 ||| C A D D E ||| -248.045
+0 ||| B A C E E ||| -248.045
+0 ||| D D B C E ||| -248.045
+0 ||| C E A E D ||| -248.045
+0 ||| E D E C C ||| -248.045
+0 ||| B E D D C ||| -248.045
+0 ||| E A B D E ||| -248.045
+0 ||| E B D E C ||| -248.045
+0 ||| D C D D D ||| -248.045
+0 ||| C D E C D ||| -248.045
+0 ||| C D C D D ||| -248.045
+0 ||| D B C E D ||| -248.045
+0 ||| E D C A E ||| -248.045
+0 ||| C C C E D ||| -248.045
+0 ||| C E D B D ||| -248.045
+0 ||| E A C E D ||| -248.045
+0 ||| C B E D D ||| -248.045
+0 ||| D B E E C ||| -248.045
+0 ||| B E B D D ||| -248.045
+0 ||| D E E A D ||| -248.045
+0 ||| C D B E D ||| -248.045
+0 ||| D D C E C ||| -248.045
+0 ||| E D C D C ||| -248.045
+0 ||| E B E A E ||| -248.045
+0 ||| E E D A D ||| -248.045
+0 ||| C C B D E ||| -248.045
+0 ||| D A C D E ||| -248.045
+0 ||| B E D E B ||| -248.045
+0 ||| E B C D D ||| -248.045
+0 ||| C A E E D ||| -248.045
+0 ||| E E A E C ||| -248.045
+0 ||| B D D D D ||| -248.045
+0 ||| E D E E A ||| -248.045
+0 ||| E E B B D ||| -248.045
+0 ||| E E C E A ||| -248.045
+0 ||| E D D B D ||| -248.045
+0 ||| C E E E A ||| -248.045
+0 ||| A D D C E ||| -249.045
+0 ||| A A E D E ||| -249.045
+0 ||| A D E E C ||| -249.045
+0 ||| A C E C E ||| -249.045
+0 ||| A C C D E ||| -249.045
+0 ||| A D B D E ||| -249.045
+0 ||| A B E E D ||| -249.045
+0 ||| A A D E E ||| -249.045
+0 ||| A E E B D ||| -249.045
+0 ||| A E A D E ||| -249.045
+0 ||| A E C E C ||| -249.045
+0 ||| A D C E D ||| -249.045
+0 ||| A C B E E ||| -249.045
+0 ||| A E B C E ||| -249.045
+0 ||| A B D D E ||| -249.045
+0 ||| D C E E C ||| -250.045
+0 ||| C C E B E ||| -250.045
+0 ||| C E E D B ||| -250.045
+0 ||| C E D D C ||| -250.045
+0 ||| E A E D D ||| -250.045
+0 ||| D E C C D ||| -250.045
+0 ||| E E B A E ||| -250.045
+0 ||| E E C D B ||| -250.045
+0 ||| E D E D B ||| -250.045
+0 ||| E D D D C ||| -250.045
+0 ||| D D E C D ||| -250.045
+0 ||| E C D E C ||| -250.045
+0 ||| B C E C E ||| -250.045
+0 ||| E E A D D ||| -250.045
+0 ||| E A D E D ||| -250.045
+0 ||| C B E C E ||| -250.045
+0 ||| D E D B D ||| -250.045
+0 ||| D B E B E ||| -250.045
+0 ||| D E C E B ||| -250.045
+0 ||| E B D B E ||| -250.045
+0 ||| D B D E D ||| -250.045
+0 ||| C E B D D ||| -250.045
+0 ||| B D B D E ||| -250.045
+0 ||| C D D B E ||| -250.045
+0 ||| E C C B E ||| -250.045
+0 ||| E E E D A ||| -250.045
+0 ||| E D D E B ||| -250.045
+0 ||| E B A E E ||| -250.045
+0 ||| C A C E E ||| -250.045
+0 ||| E E D E A ||| -250.045
+0 ||| D E C D C ||| -250.045
+0 ||| D A D D E ||| -250.045
+0 ||| D C D C E ||| -250.045
+0 ||| D E E E A ||| -250.045
+0 ||| B C B E E ||| -250.045
+0 ||| E E B E B ||| -250.045
+0 ||| B A D E E ||| -250.045
+0 ||| E C E C D ||| -250.045
+0 ||| E D B B E ||| -250.045
+0 ||| D D E E B ||| -250.045
+0 ||| D D D E C ||| -250.045
+0 ||| D D C D D ||| -250.045
+0 ||| D B E D D ||| -250.045
+0 ||| C D C C E ||| -250.045
+0 ||| E C E D C ||| -250.045
+0 ||| C D A E E ||| -250.045
+0 ||| D E B E C ||| -250.045
+0 ||| E C B E D ||| -250.045
+0 ||| E B C C E ||| -250.045
+0 ||| E C C D D ||| -250.045
+0 ||| C B C D E ||| -250.045
+0 ||| E E D C C ||| -250.045
+0 ||| C B B E E ||| -250.045
+0 ||| B D D C E ||| -250.045
+0 ||| D D E D C ||| -250.045
+0 ||| B E C E C ||| -250.045
+0 ||| B B D D E ||| -250.045
+0 ||| C E D A E ||| -250.045
+0 ||| B C C D E ||| -250.045
+0 ||| E D D C D ||| -250.045
+0 ||| D D C B E ||| -250.045
+0 ||| C E B B E ||| -250.045
+0 ||| D D E A E ||| -250.045
+0 ||| B E A D E ||| -250.045
+0 ||| C C D E D ||| -250.045
+0 ||| E D D A E ||| -250.045
+0 ||| D E C A E ||| -250.045
+0 ||| D E A E D ||| -250.045
+0 ||| C C E D D ||| -250.045
+0 ||| B D E E C ||| -250.045
+0 ||| E E A B E ||| -250.045
+0 ||| E E B C D ||| -250.045
+0 ||| E A E B E ||| -250.045
+0 ||| E D B D D ||| -250.045
+0 ||| E B D D D ||| -250.045
+0 ||| D A E E D ||| -250.045
+0 ||| C E D E B ||| -250.045
+0 ||| C D D D D ||| -250.045
+0 ||| E E B D C ||| -250.045
+0 ||| E C E E B ||| -250.045
+0 ||| E E E C B ||| -250.045
+0 ||| B A E D E ||| -250.045
+0 ||| B D C E D ||| -250.045
+0 ||| B B E E D ||| -250.045
+0 ||| B E E B D ||| -250.045
+0 ||| D C C E D ||| -250.045
+0 ||| D D B E D ||| -250.045
+0 ||| B E B C E ||| -250.045
+0 ||| D C B D E ||| -250.045
+0 ||| E C E A E ||| -250.045
+0 ||| C E D C D ||| -250.045
+0 ||| D E E C C ||| -250.045
+0 ||| A E C B E ||| -251.045
+0 ||| A E E A E ||| -251.045
+0 ||| A B C E E ||| -251.045
+0 ||| A D D E D ||| -251.045
+0 ||| A E B E D ||| -251.045
+0 ||| A D E B E ||| -251.045
+0 ||| A E D E C ||| -251.045
+0 ||| A D E D D ||| -251.045
+0 ||| A C D D E ||| -251.045
+0 ||| A C E E D ||| -251.045
+0 ||| A E C D D ||| -251.045
+0 ||| A E E E B ||| -251.045
+0 ||| A E E D C ||| -251.045
+0 ||| A E E C D ||| -251.045
+0 ||| E A E C E ||| -252.045
+0 ||| B E E E B ||| -252.045
+0 ||| D D D D D ||| -252.045
+0 ||| D D D B E ||| -252.045
+0 ||| E B D C E ||| -252.045
+0 ||| E E C B D ||| -252.045
+0 ||| B D D E D ||| -252.045
+0 ||| E E A C E ||| -252.045
+0 ||| C C B E E ||| -252.045
+0 ||| C D C E D ||| -252.045
+0 ||| C C E C E ||| -252.045
+0 ||| C D E E C ||| -252.045
+0 ||| C B E E D ||| -252.045
+0 ||| C D B D E ||| -252.045
+0 ||| B D E D D ||| -252.045
+0 ||| D B B E E ||| -252.045
+0 ||| E C A E E ||| -252.045
+0 ||| E B B D E ||| -252.045
+0 ||| B E C B E ||| -252.045
+0 ||| D E D A E ||| -252.045
+0 ||| C E B C E ||| -252.045
+0 ||| C E E B D ||| -252.045
+0 ||| D E E D B ||| -252.045
+0 ||| B E E D C ||| -252.045
+0 ||| D E D D C ||| -252.045
+0 ||| E D C E C ||| -252.045
+0 ||| D C D E D ||| -252.045
+0 ||| E E E B C ||| -252.045
+0 ||| E A B E E ||| -252.045
+0 ||| D C E D D ||| -252.045
+0 ||| C E C E C ||| -252.045
+0 ||| C B D D E ||| -252.045
+0 ||| E D E B D ||| -252.045
+0 ||| B E C D D ||| -252.045
+0 ||| B B C E E ||| -252.045
+0 ||| C C C D E ||| -252.045
+0 ||| D A C E E ||| -252.045
+0 ||| E B E E C ||| -252.045
+0 ||| E C D B E ||| -252.045
+0 ||| D B E C E ||| -252.045
+0 ||| C A E D E ||| -252.045
+0 ||| E C C C E ||| -252.045
+0 ||| D B C D E ||| -252.045
+0 ||| D D C C E ||| -252.045
+0 ||| E D B C E ||| -252.045
+0 ||| D E B B E ||| -252.045
+0 ||| B D E B E ||| -252.045
+0 ||| C D D C E ||| -252.045
+0 ||| E E E A D ||| -252.045
+0 ||| B E E C D ||| -252.045
+0 ||| C E A D E ||| -252.045
+0 ||| D D A E E ||| -252.045
+0 ||| E E D D B ||| -252.045
+0 ||| B C D D E ||| -252.045
+0 ||| E C D D D ||| -252.045
+0 ||| E B C E D ||| -252.045
+0 ||| D E D C D ||| -252.045
+0 ||| B C E E D ||| -252.045
+0 ||| B E B E D ||| -252.045
+0 ||| E A C D E ||| -252.045
+0 ||| B E D E C ||| -252.045
+0 ||| D C E B E ||| -252.045
+0 ||| E D A D E ||| -252.045
+0 ||| B E E A E ||| -252.045
+0 ||| D E B D D ||| -252.045
+0 ||| D E D E B ||| -252.045
+0 ||| C A D E E ||| -252.045
+0 ||| A B D E E ||| -253.045
+0 ||| A E A E E ||| -253.045
+0 ||| A A E E E ||| -253.045
+0 ||| A D B E E ||| -253.045
+0 ||| A C C E E ||| -253.045
+0 ||| A D C D E ||| -253.045
+0 ||| A B E D E ||| -253.045
+0 ||| A E D D D ||| -253.045
+0 ||| A E D B E ||| -253.045
+0 ||| A E C C E ||| -253.045
+0 ||| A D E C E ||| -253.045
+0 ||| D C B E E ||| -254.045
+0 ||| D E A D E ||| -254.045
+0 ||| E E C D C ||| -254.045
+0 ||| C C D D E ||| -254.045
+0 ||| D E E B D ||| -254.045
+0 ||| E E C E B ||| -254.045
+0 ||| E D E D C ||| -254.045
+0 ||| D E C E C ||| -254.045
+0 ||| C E B E D ||| -254.045
+0 ||| B E A E E ||| -254.045
+0 ||| E D E E B ||| -254.045
+0 ||| C E E E B ||| -254.045
+0 ||| B E D B E ||| -254.045
+0 ||| E B E D D ||| -254.045
+0 ||| E D D E C ||| -254.045
+0 ||| E E B E C ||| -254.045
+0 ||| E E C C D ||| -254.045
+0 ||| E E E E A ||| -254.045
+0 ||| C D E D D ||| -254.045
+0 ||| E A E E D ||| -254.045
+0 ||| C D D E D ||| -254.045
+0 ||| B B D E E ||| -254.045
+0 ||| D D E E C ||| -254.045
+0 ||| D C C D E ||| -254.045
+0 ||| E D E A E ||| -254.045
+0 ||| D B D D E ||| -254.045
+0 ||| D D B D E ||| -254.045
+0 ||| E C C E D ||| -254.045
+0 ||| C B C E E ||| -254.045
+0 ||| E E D B D ||| -254.045
+0 ||| B B E D E ||| -254.045
+0 ||| E A D D E ||| -254.045
+0 ||| C E C D D ||| -254.045
+0 ||| D C E C E ||| -254.045
+0 ||| B C C E E ||| -254.045
+0 ||| C E E C D ||| -254.045
+0 ||| E D B E D ||| -254.045
+0 ||| C E E A E ||| -254.045
+0 ||| E D C B E ||| -254.045
+0 ||| B D E C E ||| -254.045
+0 ||| B E C C E ||| -254.045
+0 ||| C E E D C ||| -254.045
+0 ||| D D C E D ||| -254.045
+0 ||| E E A E D ||| -254.045
+0 ||| E E C A E ||| -254.045
+0 ||| E C B D E ||| -254.045
+0 ||| D A D E E ||| -254.045
+0 ||| B E D D D ||| -254.045
+0 ||| E C D C E ||| -254.045
+0 ||| C E C B E ||| -254.045
+0 ||| E D E C D ||| -254.045
+0 ||| E D C D D ||| -254.045
+0 ||| D A E D E ||| -254.045
+0 ||| E B D E D ||| -254.045
+0 ||| D B E E D ||| -254.045
+0 ||| C C E E D ||| -254.045
+0 ||| D E B C E ||| -254.045
+0 ||| E B E B E ||| -254.045
+0 ||| B A E E E ||| -254.045
+0 ||| D D D C E ||| -254.045
+0 ||| E E E C C ||| -254.045
+0 ||| C E D E C ||| -254.045
+0 ||| E C E E C ||| -254.045
+0 ||| B D C D E ||| -254.045
+0 ||| C D E B E ||| -254.045
+0 ||| B D B E E ||| -254.045
+0 ||| A C E D E ||| -255.045
+0 ||| A D D D E ||| -255.045
+0 ||| A E B D E ||| -255.045
+0 ||| A D E E D ||| -255.045
+0 ||| A E E E C ||| -255.045
+0 ||| A E D C E ||| -255.045
+0 ||| A C D E E ||| -255.045
+0 ||| A E C E D ||| -255.045
+0 ||| D E E A E ||| -256.045
+0 ||| C E A E E ||| -256.045
+0 ||| D E E C D ||| -256.045
+0 ||| B E E E C ||| -256.045
+0 ||| E E B D D ||| -256.045
+0 ||| E C D E D ||| -256.045
+0 ||| E D D D D ||| -256.045
+0 ||| E D A E E ||| -256.045
+0 ||| B C D E E ||| -256.045
+0 ||| B C E D E ||| -256.045
+0 ||| E E E D B ||| -256.045
+0 ||| B D D D E ||| -256.045
+0 ||| C B D E E ||| -256.045
+0 ||| D E C D D ||| -256.045
+0 ||| D E E E B ||| -256.045
+0 ||| E E D E B ||| -256.045
+0 ||| E B E C E ||| -256.045
+0 ||| D E C B E ||| -256.045
+0 ||| D D E D D ||| -256.045
+0 ||| D E E D C ||| -256.045
+0 ||| D D D E D ||| -256.045
+0 ||| E B B E E ||| -256.045
+0 ||| C E C C E ||| -256.045
+0 ||| C E D D D ||| -256.045
+0 ||| D E B E D ||| -256.045
+0 ||| E E D C D ||| -256.045
+0 ||| E C E B E ||| -256.045
+0 ||| D E D E C ||| -256.045
+0 ||| D C E E D ||| -256.045
+0 ||| E D C C E ||| -256.045
+0 ||| B E B D E ||| -256.045
+0 ||| B E C E D ||| -256.045
+0 ||| E D D B E ||| -256.045
+0 ||| B E D C E ||| -256.045
+0 ||| C B E D E ||| -256.045
+0 ||| C E D B E ||| -256.045
+0 ||| C C C E E ||| -256.045
+0 ||| D B C E E ||| -256.045
+0 ||| E C E D D ||| -256.045
+0 ||| D C D D E ||| -256.045
+0 ||| C D E C E ||| -256.045
+0 ||| C D C D E ||| -256.045
+0 ||| E E D D C ||| -256.045
+0 ||| B D E E D ||| -256.045
+0 ||| C A E E E ||| -256.045
+0 ||| E A C E E ||| -256.045
+0 ||| C D B E E ||| -256.045
+0 ||| E B C D E ||| -256.045
+0 ||| E E D A E ||| -256.045
+0 ||| E E B B E ||| -256.045
+0 ||| D D E B E ||| -256.045
+0 ||| A E E D D ||| -257.045
+0 ||| A D C E E ||| -257.045
+0 ||| A B E E E ||| -257.045
+0 ||| A E D E D ||| -257.045
+0 ||| A E E B E ||| -257.045
+0 ||| C C E D E ||| -258.045
+0 ||| D E D B E ||| -258.045
+0 ||| D C C E E ||| -258.045
+0 ||| E B D D E ||| -258

<TRUNCATED>


[8/9] incubator-joshua git commit: fixed "source annotations" test case by moving character rewriting

Posted by mj...@apache.org.
fixed "source annotations" test case by moving character rewriting

Source-side annotations can be added by appending ;-delimited "key=value" annotations after input tokens, in square brackets, e.g.,

    i[POS=PRO] want[POS=VB;TENSE=pr;person=sg] to go...

so the replacement of square brackets has to happen *after* this is parsed (in Token.java)


Project: http://git-wip-us.apache.org/repos/asf/incubator-joshua/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-joshua/commit/b82027d0
Tree: http://git-wip-us.apache.org/repos/asf/incubator-joshua/tree/b82027d0
Diff: http://git-wip-us.apache.org/repos/asf/incubator-joshua/diff/b82027d0

Branch: refs/heads/master
Commit: b82027d09cc950a366b032c2d61ac6ade85bff0a
Parents: 7fdc4cd
Author: Matt Post <po...@cs.jhu.edu>
Authored: Tue Apr 26 17:54:16 2016 -0400
Committer: Matt Post <po...@cs.jhu.edu>
Committed: Tue Apr 26 17:54:16 2016 -0400

----------------------------------------------------------------------
 src/joshua/decoder/segment_file/Sentence.java | 3 ---
 src/joshua/decoder/segment_file/Token.java    | 9 +++++----
 2 files changed, 5 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/b82027d0/src/joshua/decoder/segment_file/Sentence.java
----------------------------------------------------------------------
diff --git a/src/joshua/decoder/segment_file/Sentence.java b/src/joshua/decoder/segment_file/Sentence.java
index 970b387..08ecf89 100644
--- a/src/joshua/decoder/segment_file/Sentence.java
+++ b/src/joshua/decoder/segment_file/Sentence.java
@@ -113,9 +113,6 @@ public class Sentence {
       this.id = id;
     }
     
-    // Mask strings that cause problems for the decoder
-    source = escapeSpecialSymbols(source);
-  
     // Only trim strings
     if (joshuaConfiguration.lattice_decoding && ! source.startsWith("((("))
       adjustForLength(joshuaConfiguration.maxlen);

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/b82027d0/src/joshua/decoder/segment_file/Token.java
----------------------------------------------------------------------
diff --git a/src/joshua/decoder/segment_file/Token.java b/src/joshua/decoder/segment_file/Token.java
index ebe9a43..bddfd68 100644
--- a/src/joshua/decoder/segment_file/Token.java
+++ b/src/joshua/decoder/segment_file/Token.java
@@ -18,6 +18,8 @@
  */
 package joshua.decoder.segment_file;
 
+import static joshua.util.FormatUtils.escapeSpecialSymbols;
+
 import java.util.HashMap;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
@@ -90,10 +92,9 @@ public class Token {
       token = rawWord;
     }
 
-    // Mask strings that cause problems for the decoder
-    token = token.replaceAll("\\[",  "-lsb-")
-        .replaceAll("\\]",  "-rsb-")
-        .replaceAll("\\|",  "-pipe-");
+    // Mask strings that cause problems for the decoder. This has to be done *after* parsing for
+    // annotations.
+    token = escapeSpecialSymbols(token);
 
     if (joshuaConfiguration != null && joshuaConfiguration.lowercase) {
       if (FormatUtils.ISALLUPPERCASE(token))


[9/9] incubator-joshua git commit: Merge branch 'kellen'

Posted by mj...@apache.org.
Merge branch 'kellen'


Project: http://git-wip-us.apache.org/repos/asf/incubator-joshua/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-joshua/commit/e77321b1
Tree: http://git-wip-us.apache.org/repos/asf/incubator-joshua/tree/e77321b1
Diff: http://git-wip-us.apache.org/repos/asf/incubator-joshua/diff/e77321b1

Branch: refs/heads/master
Commit: e77321b1e6bce3adea939c7b0958a96d0bc2859f
Parents: 91efb9a b82027d
Author: Matt Post <po...@cs.jhu.edu>
Authored: Tue Apr 26 17:54:32 2016 -0400
Committer: Matt Post <po...@cs.jhu.edu>
Committed: Tue Apr 26 17:54:32 2016 -0400

----------------------------------------------------------------------
 .../joshua/decoder/StructuredTranslation.java   |  143 -
 .../ViterbiFeatureVectorWalkerFunction.java     |   44 -
 .../ViterbiOutputStringWalkerFunction.java      |   96 -
 resources/kbest_extraction/glue-grammar         |    3 +
 resources/kbest_extraction/grammar              |   25 +
 resources/kbest_extraction/joshua.config        |   27 +
 resources/kbest_extraction/lm.gz                |  Bin 0 -> 2466496 bytes
 resources/kbest_extraction/output.gold          | 3126 ++++++++++++++++++
 resources/kbest_extraction/output.scores.gold   | 3126 ++++++++++++++++++
 resources/phrase_decoder/config                 |   29 +
 resources/phrase_decoder/constrained.config     |   28 +
 .../phrase_decoder/constrained.output.gold      |    5 +
 resources/phrase_decoder/lm.1.gz                |  Bin 0 -> 2235 bytes
 resources/phrase_decoder/output.gold            |    1 +
 resources/phrase_decoder/rules.1.gz             |  Bin 0 -> 2998042 bytes
 src/joshua/corpus/Vocabulary.java               |   10 +-
 src/joshua/decoder/Decoder.java                 |   15 +-
 src/joshua/decoder/DecoderThread.java           |    2 +-
 src/joshua/decoder/StructuredTranslation.java   |  143 +
 src/joshua/decoder/ff/lm/LanguageModelFF.java   |   22 +-
 .../ff/lm/StateMinimizingLanguageModel.java     |    2 -
 .../decoder/ff/tm/packed/PackedGrammar.java     |   33 +-
 .../ViterbiFeatureVectorWalkerFunction.java     |   44 +
 .../ViterbiOutputStringWalkerFunction.java      |   96 +
 .../hypergraph/WordAlignmentExtractor.java      |  116 +-
 src/joshua/decoder/segment_file/Sentence.java   |   18 +-
 src/joshua/decoder/segment_file/Token.java      |    9 +-
 src/joshua/util/FormatUtils.java                |   32 +
 .../kbest_extraction/KBestExtractionTest.java   |   62 +
 .../ConstrainedPhraseDecodingTest.java          |   59 +
 .../phrase/decode/PhraseDecodingTest.java       |   59 +
 tst/joshua/system/AlignmentMapTest.java         |    1 +
 tst/joshua/system/KenLmTest.java                |   48 +
 .../system/MultithreadedTranslationTests.java   |    2 -
 tst/joshua/util/FormatUtilsTest.java            |   60 +
 35 files changed, 7125 insertions(+), 361 deletions(-)
----------------------------------------------------------------------