Overhaul text layout (#2162)

This PR completely rewrites the text layout algorithm. It should be more accurate in most cases now. Center and right justifications as well as alignment of paragraph text and text wrapping should all be much more accurate.

Note that there may be an outstanding issue with the y position of paragraph text which affects #1758 but I have been unable to reproduce it with an AEP file for debugging.

Fixes #1479
Fixes #1758 
Fixes #397 
Likely fixes #2135
diff --git a/After Effects Samples/Multiline.aep b/After Effects Samples/Multiline.aep
new file mode 100644
index 0000000..41a7372
--- /dev/null
+++ b/After Effects Samples/Multiline.aep
Binary files differ
diff --git a/issue-repro/src/main/res/raw/intro.json b/issue-repro/src/main/res/raw/intro.json
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/issue-repro/src/main/res/raw/intro.json
diff --git a/lottie/src/main/java/com/airbnb/lottie/LottieDrawable.java b/lottie/src/main/java/com/airbnb/lottie/LottieDrawable.java
index 646dde8..54b96a0 100644
--- a/lottie/src/main/java/com/airbnb/lottie/LottieDrawable.java
+++ b/lottie/src/main/java/com/airbnb/lottie/LottieDrawable.java
@@ -1017,7 +1017,7 @@
    * Be wary if you are using many images, however. Lottie is designed to work with vector shapes
    * from After Effects. If your images look like they could be represented with vector shapes,
    * see if it is possible to convert them to shape layers and re-export your animation. Check
-   * the documentation at http://airbnb.io/lottie for more information about importing shapes from
+   * the documentation at <a href="http://airbnb.io/lottie">http://airbnb.io/lottie</a> for more information about importing shapes from
    * Sketch or Illustrator to avoid this.
    */
   public void setImageAssetDelegate(ImageAssetDelegate assetDelegate) {
diff --git a/lottie/src/main/java/com/airbnb/lottie/animation/keyframe/TextKeyframeAnimation.java b/lottie/src/main/java/com/airbnb/lottie/animation/keyframe/TextKeyframeAnimation.java
index cb73ebb..e271585 100644
--- a/lottie/src/main/java/com/airbnb/lottie/animation/keyframe/TextKeyframeAnimation.java
+++ b/lottie/src/main/java/com/airbnb/lottie/animation/keyframe/TextKeyframeAnimation.java
@@ -37,7 +37,7 @@
         DocumentData baseDocumentData = frameInfo.getInterpolatedKeyframeProgress() == 1f ? frameInfo.getEndValue() : frameInfo.getStartValue();
         documentData.set(text, baseDocumentData.fontName, baseDocumentData.size, baseDocumentData.justification, baseDocumentData.tracking,
             baseDocumentData.lineHeight, baseDocumentData.baselineShift, baseDocumentData.color, baseDocumentData.strokeColor,
-            baseDocumentData.strokeWidth, baseDocumentData.strokeOverFill, baseDocumentData.boxPosition);
+            baseDocumentData.strokeWidth, baseDocumentData.strokeOverFill, baseDocumentData.boxPosition, baseDocumentData.boxSize);
         return documentData;
       }
     });
diff --git a/lottie/src/main/java/com/airbnb/lottie/model/DocumentData.java b/lottie/src/main/java/com/airbnb/lottie/model/DocumentData.java
index 718f851..3b6cda1 100644
--- a/lottie/src/main/java/com/airbnb/lottie/model/DocumentData.java
+++ b/lottie/src/main/java/com/airbnb/lottie/model/DocumentData.java
@@ -18,23 +18,25 @@
   }
 
   public String text;
-  @SuppressWarnings("WeakerAccess") public String fontName;
+  public String fontName;
   public float size;
-  @SuppressWarnings("WeakerAccess") public Justification justification;
+  public Justification justification;
   public int tracking;
-  @SuppressWarnings("WeakerAccess") public float lineHeight;
+  /** Extra space in between lines. */
+  public float lineHeight;
   public float baselineShift;
   @ColorInt public int color;
   @ColorInt public int strokeColor;
   public float strokeWidth;
   public boolean strokeOverFill;
   @Nullable public PointF boxPosition;
+  @Nullable public PointF boxSize;
 
 
   public DocumentData(String text, String fontName, float size, Justification justification, int tracking,
       float lineHeight, float baselineShift, @ColorInt int color, @ColorInt int strokeColor,
-      float strokeWidth, boolean strokeOverFill, PointF boxPosition) {
-    set(text, fontName, size, justification, tracking, lineHeight, baselineShift, color, strokeColor, strokeWidth, strokeOverFill, boxPosition);
+      float strokeWidth, boolean strokeOverFill, PointF boxPosition, PointF boxSize) {
+    set(text, fontName, size, justification, tracking, lineHeight, baselineShift, color, strokeColor, strokeWidth, strokeOverFill, boxPosition, boxSize);
   }
 
   public DocumentData() {
@@ -42,7 +44,7 @@
 
   public void set(String text, String fontName, float size, Justification justification, int tracking,
       float lineHeight, float baselineShift, @ColorInt int color, @ColorInt int strokeColor,
-      float strokeWidth, boolean strokeOverFill, PointF positionOffset) {
+      float strokeWidth, boolean strokeOverFill, PointF boxPosition, PointF boxSize) {
     this.text = text;
     this.fontName = fontName;
     this.size = size;
@@ -54,7 +56,8 @@
     this.strokeColor = strokeColor;
     this.strokeWidth = strokeWidth;
     this.strokeOverFill = strokeOverFill;
-    this.boxPosition = positionOffset;
+    this.boxPosition = boxPosition;
+    this.boxSize = boxSize;
   }
 
   @Override public int hashCode() {
diff --git a/lottie/src/main/java/com/airbnb/lottie/model/FontCharacter.java b/lottie/src/main/java/com/airbnb/lottie/model/FontCharacter.java
index d394d7f..12c60eb 100644
--- a/lottie/src/main/java/com/airbnb/lottie/model/FontCharacter.java
+++ b/lottie/src/main/java/com/airbnb/lottie/model/FontCharacter.java
@@ -12,8 +12,7 @@
 public class FontCharacter {
 
   public static int hashFor(char character, String fontFamily, String style) {
-    int result = 0;
-    result = 31 * result + (int) character;
+    int result = (int) character;
     result = 31 * result + fontFamily.hashCode();
     result = 31 * result + style.hashCode();
     return result;
diff --git a/lottie/src/main/java/com/airbnb/lottie/model/layer/TextLayer.java b/lottie/src/main/java/com/airbnb/lottie/model/layer/TextLayer.java
index 9f737ec..4d7e4f2 100644
--- a/lottie/src/main/java/com/airbnb/lottie/model/layer/TextLayer.java
+++ b/lottie/src/main/java/com/airbnb/lottie/model/layer/TextLayer.java
@@ -5,6 +5,7 @@
 import android.graphics.Matrix;
 import android.graphics.Paint;
 import android.graphics.Path;
+import android.graphics.PointF;
 import android.graphics.RectF;
 import android.graphics.Typeface;
 
@@ -47,6 +48,10 @@
   }};
   private final Map<FontCharacter, List<ContentGroup>> contentsForCharacter = new HashMap<>();
   private final LongSparseArray<String> codePointCache = new LongSparseArray<>();
+  /**
+   * If this is paragraph text, one line may wrap depending on the size of the document data box.
+   */
+  private final List<TextSubLine> textSubLines = new ArrayList<>();
   private final TextKeyframeAnimation textAnimation;
   private final LottieDrawable lottieDrawable;
   private final LottieComposition composition;
@@ -115,18 +120,26 @@
 
   @Override
   void drawLayer(Canvas canvas, Matrix parentMatrix, int parentAlpha) {
-    canvas.save();
-    if (!lottieDrawable.useTextGlyphs()) {
-      canvas.concat(parentMatrix);
-    }
     DocumentData documentData = textAnimation.getValue();
     Font font = composition.getFonts().get(documentData.fontName);
     if (font == null) {
-      // Something is wrong.
-      canvas.restore();
       return;
     }
+    canvas.save();
+    canvas.concat(parentMatrix);
 
+    configurePaint(documentData, parentMatrix);
+
+    if (lottieDrawable.useTextGlyphs()) {
+      drawTextWithGlyphs(documentData, parentMatrix, font, canvas);
+    } else {
+      drawTextWithFont(documentData, font, canvas);
+    }
+
+    canvas.restore();
+  }
+
+  private void configurePaint(DocumentData documentData, Matrix parentMatrix) {
     if (colorCallbackAnimation != null) {
       fillPaint.setColor(colorCallbackAnimation.getValue());
     } else if (colorAnimation != null) {
@@ -152,20 +165,11 @@
     } else if (strokeWidthAnimation != null) {
       strokePaint.setStrokeWidth(strokeWidthAnimation.getValue());
     } else {
-      float parentScale = Utils.getScale(parentMatrix);
-      strokePaint.setStrokeWidth(documentData.strokeWidth * Utils.dpScale() * parentScale);
+      strokePaint.setStrokeWidth(documentData.strokeWidth * Utils.dpScale());
     }
-
-    if (lottieDrawable.useTextGlyphs()) {
-      drawTextGlyphs(documentData, parentMatrix, font, canvas);
-    } else {
-      drawTextWithFont(documentData, font, canvas);
-    }
-
-    canvas.restore();
   }
 
-  private void drawTextGlyphs(
+  private void drawTextWithGlyphs(
       DocumentData documentData, Matrix parentMatrix, Font font, Canvas canvas) {
     float textSize;
     if (textSizeCallbackAnimation != null) {
@@ -178,40 +182,37 @@
 
     String text = documentData.text;
 
-    // Line height
-    float lineHeight = documentData.lineHeight * Utils.dpScale();
-
     // Split full text in multiple lines
     List<String> textLines = getTextLines(text);
     int textLineCount = textLines.size();
-    for (int l = 0; l < textLineCount; l++) {
+    // Add tracking
+    float tracking = documentData.tracking / 10f;
+    if (trackingCallbackAnimation != null) {
+      tracking += trackingCallbackAnimation.getValue();
+    } else if (trackingAnimation != null) {
+      tracking += trackingAnimation.getValue();
+    }
+    int lineIndex = -1;
+    for (int i = 0; i < textLineCount; i++) {
+      String textLine = textLines.get(i);
+      float boxWidth = documentData.boxSize == null ? 0f : documentData.boxSize.x;
+      List<TextSubLine> lines = splitGlyphTextIntoLines(textLine, boxWidth, font, fontScale, tracking, true);
+      for (int j = 0; j < lines.size(); j++) {
+        TextSubLine line = lines.get(j);
+        lineIndex++;
 
-      String textLine = textLines.get(l);
-      float textLineWidth = getTextLineWidthForGlyphs(textLine, font, fontScale, parentScale);
+        canvas.save();
 
-      canvas.save();
+        offsetCanvas(canvas, documentData, lineIndex, line.width);
+        drawGlyphTextLine(line.text, documentData, font, canvas, parentScale, fontScale, tracking);
 
-      // Apply horizontal justification
-      applyJustification(documentData, canvas, textLineWidth);
-
-      // Center text vertically
-      float multilineTranslateY = (textLineCount - 1) * lineHeight / 2;
-      float translateY = l * lineHeight - multilineTranslateY;
-      canvas.translate(0, translateY);
-      if (documentData.boxPosition != null) {
-        canvas.translate(documentData.boxPosition.x, documentData.boxPosition.y);
+        canvas.restore();
       }
-
-      // Draw each line
-      drawGlyphTextLine(textLine, documentData, parentMatrix, font, canvas, parentScale, fontScale);
-
-      // Reset canvas
-      canvas.restore();
     }
   }
 
-  private void drawGlyphTextLine(String text, DocumentData documentData, Matrix parentMatrix,
-      Font font, Canvas canvas, float parentScale, float fontScale) {
+  private void drawGlyphTextLine(String text, DocumentData documentData,
+      Font font, Canvas canvas, float parentScale, float fontScale, float tracking) {
     for (int i = 0; i < text.length(); i++) {
       char c = text.charAt(i);
       int characterHash = FontCharacter.hashFor(c, font.getFamily(), font.getStyle());
@@ -220,16 +221,8 @@
         // Something is wrong. Potentially, they didn't export the text as a glyph.
         continue;
       }
-      drawCharacterAsGlyph(character, parentMatrix, fontScale, documentData, canvas);
-      float tx = (float) character.getWidth() * fontScale * Utils.dpScale() * parentScale;
-      // Add tracking
-      float tracking = documentData.tracking / 10f;
-      if (trackingCallbackAnimation != null) {
-        tracking += trackingCallbackAnimation.getValue();
-      } else if (trackingAnimation != null) {
-        tracking += trackingAnimation.getValue();
-      }
-      tx += tracking * parentScale;
+      drawCharacterAsGlyph(character, fontScale, documentData, canvas);
+      float tx = (float) character.getWidth() * fontScale * Utils.dpScale() + tracking;
       canvas.translate(tx, 0);
     }
   }
@@ -255,9 +248,6 @@
     strokePaint.setTypeface(fillPaint.getTypeface());
     strokePaint.setTextSize(fillPaint.getTextSize());
 
-    // Line height
-    float lineHeight = documentData.lineHeight * Utils.dpScale();
-
     // Calculate tracking
     float tracking = documentData.tracking / 10f;
     if (trackingCallbackAnimation != null) {
@@ -270,27 +260,41 @@
     // Split full text in multiple lines
     List<String> textLines = getTextLines(text);
     int textLineCount = textLines.size();
-    for (int l = 0; l < textLineCount; l++) {
+    int lineIndex = -1;
+    for (int i = 0; i < textLineCount; i++) {
+      String textLine = textLines.get(i);
+      float boxWidth = documentData.boxSize == null ? 0f : documentData.boxSize.x;
+      List<TextSubLine> lines = splitGlyphTextIntoLines(textLine, boxWidth, font, 0f, tracking, false);
+      for (int j = 0; j < lines.size(); j++) {
+        TextSubLine line = lines.get(j);
+        lineIndex++;
 
-      String textLine = textLines.get(l);
-      // We have to manually add the tracking between characters as the strokePaint ignores it
-      float textLineWidth = strokePaint.measureText(textLine) + (textLine.length() - 1) * tracking;
+        canvas.save();
 
-      canvas.save();
+        offsetCanvas(canvas, documentData, lineIndex, line.width);
+        drawFontTextLine(line.text, documentData, canvas, tracking);
 
-      // Apply horizontal justification
-      applyJustification(documentData, canvas, textLineWidth);
+        canvas.restore();
+      }
+    }
+  }
 
-      // Center text vertically
-      float multilineTranslateY = (textLineCount - 1) * lineHeight / 2;
-      float translateY = l * lineHeight - multilineTranslateY;
-      canvas.translate(0, translateY);
-
-      // Draw each line
-      drawFontTextLine(textLine, documentData, canvas, tracking);
-
-      // Reset canvas
-      canvas.restore();
+  private void offsetCanvas(Canvas canvas, DocumentData documentData, int lineIndex, float lineWidth) {
+    PointF position = documentData.boxPosition;
+    PointF size = documentData.boxSize;
+    float lineOffset = lineIndex * documentData.lineHeight * Utils.dpScale();
+    float lineStart = position == null ? 0f : position.x;
+    float boxWidth = size == null ? 0f : size.x;
+    switch (documentData.justification) {
+      case LEFT_ALIGN:
+        canvas.translate(lineStart, lineOffset);
+        break;
+      case RIGHT_ALIGN:
+        canvas.translate(lineStart + boxWidth - lineWidth, lineOffset);
+        break;
+      case CENTER:
+        canvas.translate(lineStart + boxWidth / 2f - lineWidth / 2f, lineOffset);
+        break;
     }
   }
 
@@ -312,6 +316,7 @@
   private List<String> getTextLines(String text) {
     // Split full text by carriage return character
     String formattedText = text.replaceAll("\r\n", "\r")
+        .replaceAll("\u0003", "\r")
         .replaceAll("\n", "\r");
     String[] textLinesArray = formattedText.split("\r");
     return Arrays.asList(textLinesArray);
@@ -328,44 +333,91 @@
     }
   }
 
-  private float getTextLineWidthForGlyphs(
-      String textLine, Font font, float fontScale, float parentScale) {
-    float textLineWidth = 0;
+  private List<TextSubLine> splitGlyphTextIntoLines(String textLine, float boxWidth, Font font, float fontScale, float tracking, boolean usingGlyphs) {
+    int lineCount = 0;
+
+    float currentLineWidth = 0;
+    int currentLineStartIndex = 0;
+
+    int currentWordStartIndex = 0;
+    float currentWordWidth = 0f;
+    boolean nextCharacterStartsWord = false;
+
+    // The measured size of a space.
+    float spaceWidth = 0f;
+
     for (int i = 0; i < textLine.length(); i++) {
       char c = textLine.charAt(i);
-      int characterHash = FontCharacter.hashFor(c, font.getFamily(), font.getStyle());
-      FontCharacter character = composition.getCharacters().get(characterHash);
-      if (character == null) {
-        continue;
+      float currentCharWidth;
+      if (usingGlyphs) {
+        int characterHash = FontCharacter.hashFor(c, font.getFamily(), font.getStyle());
+        FontCharacter character = composition.getCharacters().get(characterHash);
+        if (character == null) {
+          continue;
+        }
+        currentCharWidth = (float) character.getWidth() * fontScale * Utils.dpScale() + tracking;
+      } else {
+        currentCharWidth = fillPaint.measureText(textLine.substring(i, i + 1)) + tracking;
       }
-      textLineWidth += character.getWidth() * fontScale * Utils.dpScale() * parentScale;
+
+      if (c == ' ') {
+        spaceWidth = currentCharWidth;
+        nextCharacterStartsWord = true;
+      } else if (nextCharacterStartsWord) {
+        nextCharacterStartsWord = false;
+        currentWordStartIndex = i;
+        currentWordWidth = currentCharWidth;
+      } else {
+        currentWordWidth += currentCharWidth;
+      }
+      currentLineWidth += currentCharWidth;
+
+      if (boxWidth > 0f && currentLineWidth >= boxWidth) {
+        if (c == ' ') {
+          // Spaces at the end of a line don't do anything. Ignore it.
+          // The next non-space character will hit the conditions below.
+          continue;
+        }
+        TextSubLine subLine = ensureEnoughSubLines(++lineCount);
+        if (currentWordStartIndex == currentLineStartIndex) {
+          // Only word on line is wider than box, start wrapping mid-word.
+          String substr = textLine.substring(currentLineStartIndex, i);
+          String trimmed = substr.trim();
+          float trimmedSpace = (trimmed.length() - substr.length()) * spaceWidth;
+          subLine.set(trimmed, currentLineWidth - currentCharWidth - trimmedSpace);
+          currentLineStartIndex = i;
+          currentLineWidth = currentCharWidth;
+          currentWordStartIndex = currentLineStartIndex;
+          currentWordWidth = currentCharWidth;
+        } else {
+          String substr = textLine.substring(currentLineStartIndex, currentWordStartIndex - 1);
+          String trimmed = substr.trim();
+          float trimmedSpace = (substr.length() - trimmed.length()) * spaceWidth;
+          subLine.set(trimmed, currentLineWidth - currentWordWidth - trimmedSpace - spaceWidth);
+          currentLineStartIndex = currentWordStartIndex;
+          currentLineWidth = currentWordWidth;
+        }
+      }
     }
-    return textLineWidth;
+    if (currentLineWidth > 0f) {
+      TextSubLine line = ensureEnoughSubLines(++lineCount);
+      line.set(textLine.substring(currentLineStartIndex), currentLineWidth);
+    }
+    return textSubLines.subList(0, lineCount);
   }
 
-  private void applyJustification(DocumentData documentData, Canvas canvas, float textLineWidth) {
-    float lineStart = 0f;
-    float lineTop = 0f;
-    if (documentData.boxPosition != null) {
-      lineStart = documentData.boxPosition.x;
-      lineTop = documentData.boxPosition.y;
+  /**
+   * Elements are reused and not deleted to save allocations.
+   */
+  private TextSubLine ensureEnoughSubLines(int numLines) {
+    for (int i = textSubLines.size(); i < numLines; i++) {
+      textSubLines.add(new TextSubLine());
     }
-    switch (documentData.justification) {
-      case LEFT_ALIGN:
-        canvas.translate(-lineStart, -lineTop);
-        break;
-      case RIGHT_ALIGN:
-        canvas.translate(-lineStart - textLineWidth, -lineTop);
-        break;
-      case CENTER:
-        canvas.translate(-lineStart - textLineWidth / 2, -lineTop);
-        break;
-    }
+    return textSubLines.get(numLines - 1);
   }
 
   private void drawCharacterAsGlyph(
       FontCharacter character,
-      Matrix parentMatrix,
       float fontScale,
       DocumentData documentData,
       Canvas canvas) {
@@ -373,7 +425,7 @@
     for (int j = 0; j < contentGroups.size(); j++) {
       Path path = contentGroups.get(j).getPath();
       path.computeBounds(rectF, false);
-      matrix.set(parentMatrix);
+      matrix.reset();
       matrix.preTranslate(0, -documentData.baselineShift * Utils.dpScale());
       matrix.preScale(fontScale, fontScale);
       path.transform(matrix);
@@ -551,4 +603,14 @@
       textAnimation.setStringValueCallback((LottieValueCallback<String>) callback);
     }
   }
+
+  private static class TextSubLine {
+    private String text = "";
+    private float width = 0f;
+
+    void set(String text, float width) {
+      this.text = text;
+      this.width = width;
+    }
+  }
 }
diff --git a/lottie/src/main/java/com/airbnb/lottie/parser/DocumentDataParser.java b/lottie/src/main/java/com/airbnb/lottie/parser/DocumentDataParser.java
index bce4aef..c659d11 100644
--- a/lottie/src/main/java/com/airbnb/lottie/parser/DocumentDataParser.java
+++ b/lottie/src/main/java/com/airbnb/lottie/parser/DocumentDataParser.java
@@ -23,7 +23,8 @@
       "sc", // 8
       "sw", // 9
       "of", // 10
-      "ps" // 11
+      "ps", // 11
+      "sz" // 12
   );
 
   private DocumentDataParser() {
@@ -43,6 +44,7 @@
     float strokeWidth = 0f;
     boolean strokeOverFill = true;
     PointF boxPosition = null;
+    PointF boxSize = null;
 
     reader.beginObject();
     while (reader.hasNext()) {
@@ -90,6 +92,11 @@
           boxPosition = new PointF((float) reader.nextDouble() * scale, (float) reader.nextDouble() * scale);
           reader.endArray();
           break;
+        case 12:
+          reader.beginArray();
+          boxSize = new PointF((float) reader.nextDouble() * scale, (float) reader.nextDouble() * scale);
+          reader.endArray();
+          break;
         default:
           reader.skipName();
           reader.skipValue();
@@ -98,6 +105,6 @@
     reader.endObject();
 
     return new DocumentData(text, fontName, size, justification, tracking, lineHeight,
-        baselineShift, fillColor, strokeColor, strokeWidth, strokeOverFill, boxPosition);
+        baselineShift, fillColor, strokeColor, strokeWidth, strokeOverFill, boxPosition, boxSize);
   }
 }
diff --git a/snapshot-tests/src/main/assets/Tests/Multiline.json b/snapshot-tests/src/main/assets/Tests/Multiline.json
new file mode 100644
index 0000000..29c79e5
--- /dev/null
+++ b/snapshot-tests/src/main/assets/Tests/Multiline.json
@@ -0,0 +1 @@
+{"v":"5.9.6","fr":29.9700012207031,"ip":0,"op":180.00000733155,"w":1920,"h":1080,"nm":"Multiline 2","ddd":0,"assets":[],"fonts":{"list":[{"fName":"Helvetica","fFamily":"Helvetica","fStyle":"Regular","ascent":71.8994140625}]},"layers":[{"ddd":0,"ind":1,"ty":5,"nm":"Point","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[44,724,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"t":{"d":{"k":[{"s":{"s":60,"f":"Helvetica","t":"Point","ca":0,"j":0,"tr":0,"lh":89,"ls":0,"fc":[0,0,0]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":180.00000733155,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":2,"ty":5,"nm":"Paragraph","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[44,208,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"t":{"d":{"k":[{"s":{"s":60,"f":"Helvetica","t":"Paragraph","ca":0,"j":0,"tr":0,"lh":89,"ls":0,"fc":[0,0,0]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":180.00000733155,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":5,"nm":"ABC & DEF 6","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[424,663,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"t":{"d":{"k":[{"s":{"s":119,"f":"Helvetica","t":"ABC\u0003D\rE","ca":0,"j":0,"tr":0,"lh":89,"ls":0,"fc":[0,0,0]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":180.00000733155,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Shape Layer 6","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[544,580,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[32.289,84.371,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[885.37,241.53],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[13.837,159.727],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,144.052],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":180.00000733155,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":5,"ty":5,"nm":"ABC & DEF 5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1151,663,0],"ix":2,"l":2},"a":{"a":0,"k":[133,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"t":{"d":{"k":[{"s":{"s":119,"f":"Helvetica","t":"ABC\u0003D\rE","ca":0,"j":2,"tr":0,"lh":89,"ls":0,"fc":[0,0,0]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":180.00000733155,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Shape Layer 5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1016,580,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[32.289,84.371,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[885.37,241.53],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[13.837,159.727],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,144.052],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":180.00000733155,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":7,"ty":5,"nm":"ABC & DEF 4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1751,663,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"t":{"d":{"k":[{"s":{"s":119,"f":"Helvetica","t":"ABC\u0003D\rE","ca":0,"j":1,"tr":0,"lh":89,"ls":0,"fc":[0,0,0]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":180.00000733155,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Shape Layer 4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1616,580,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[32.289,84.371,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[885.37,241.53],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[13.837,159.727],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,144.052],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":180.00000733155,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":9,"ty":5,"nm":"ABC & DEF 3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1751,151,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"t":{"d":{"k":[{"s":{"sz":[266,339],"ps":[-266,-85.560302734375],"s":119,"f":"Helvetica","t":"ABC\u0003D\rE","ca":0,"j":1,"tr":0,"lh":89,"ls":0,"fc":[0,0,0]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":180.00000733155,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"Shape Layer 3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1616,68,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[32.289,84.371,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[885.37,241.53],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[13.837,159.727],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,144.052],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":180.00000733155,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":11,"ty":5,"nm":"ABC & DEF 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1151,151,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"t":{"d":{"k":[{"s":{"sz":[266,339],"ps":[-266,-85.560302734375],"s":119,"f":"Helvetica","t":"ABC\u0003D\rE","ca":0,"j":2,"tr":0,"lh":89,"ls":0,"fc":[0,0,0]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":180.00000733155,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"Shape Layer 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1016,68,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[32.289,84.371,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[885.37,241.53],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[13.837,159.727],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,144.052],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":180.00000733155,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":13,"ty":5,"nm":"ABC & DEF","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[682,151,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"t":{"d":{"k":[{"s":{"sz":[266,339],"ps":[-266,-85.560302734375],"s":119,"f":"Helvetica","t":"ABC\u0003D\rE","ca":0,"j":0,"tr":0,"lh":89,"ls":0,"fc":[0,0,0]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":180.00000733155,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[544,68,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[32.289,84.371,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[885.37,241.53],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[13.837,159.727],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,144.052],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":180.00000733155,"st":0,"ct":1,"bm":0}],"markers":[],"chars":[{"ch":"A","size":119,"style":"Regular","w":66.7,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[21.973,-29.395],[33.545,-61.084],[44.434,-29.395]],"c":true},"ix":2},"nm":"A","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[1.465,0],[11.426,0],[19.189,-21.484],[47.559,-21.484],[54.834,0],[65.479,0],[39.453,-71.729],[28.467,-71.729]],"c":true},"ix":2},"nm":"A","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"A","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"Helvetica"},{"ch":"B","size":119,"style":"Regular","w":66.7,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-2.171,-0.911],[0,-4.688],[3.618,-1.79],[4.144,0]],"o":[[0,0],[0,0],[4.276,0],[3.848,1.628],[0,4.655],[-2.303,1.14],[0,0]],"v":[[16.895,-41.406],[16.895,-63.623],[34.41,-63.623],[44.081,-62.256],[49.854,-52.783],[44.426,-43.115],[34.756,-41.406]],"c":true},"ix":2},"nm":"B","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-2.498,-1.009],[0,-5.208],[1.61,-2.18],[6.013,0]],"o":[[0,0],[0,0],[4.108,0],[4.699,1.888],[0,3.093],[-2.563,3.451],[0,0]],"v":[[16.895,-8.301],[16.895,-33.545],[36.364,-33.545],[46.272,-32.031],[53.32,-21.387],[50.905,-13.477],[38.04,-8.301]],"c":true},"ix":2},"nm":"B","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-4.356,5.599],[0,4.623],[3.223,3.125],[3.678,1.4],[-1.335,1.53],[0,4.525],[2.097,2.962],[8.453,0],[0,0]],"o":[[0,0],[9.498,0],[2.914,-3.743],[0,-5.501],[-1.823,-1.758],[2.506,-1.27],[2.571,-2.897],[0,-3.873],[-3.572,-5.013],[0,0],[0,0]],"v":[[7.373,0],[37.883,0],[58.665,-8.398],[63.037,-20.947],[58.203,-33.887],[49.951,-38.623],[55.713,-42.822],[59.57,-53.955],[56.425,-64.209],[38.387,-71.729],[7.373,-71.729]],"c":true},"ix":2},"nm":"B","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"B","np":6,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"Helvetica"},{"ch":"C","size":119,"style":"Regular","w":72.22,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[8.976,0],[5.984,-7.361],[0,-10.586],[-7.368,-6.677],[-8.237,0],[-5.631,6.152],[-0.837,7.552],[0,0],[1.95,-2.897],[7.035,0],[3.853,5.229],[0,8.406],[-4.268,4.968],[-6.937,0],[-3.149,-2.702],[-1.055,-4.622],[0,0],[4.955,4.785]],"o":[[-10.521,0],[-5.534,6.776],[0,13.942],[5.598,5.049],[9.557,0],[4.697,-5.11],[0,0],[-0.96,4.72],[-3.677,5.502],[-7.642,0],[-3.854,-5.229],[0,-10.262],[4.268,-4.968],[5.69,0],[3.149,2.702],[0,0],[-0.547,-6.087],[-4.955,-4.785]],"v":[[37.453,-73.682],[12.695,-62.64],[4.395,-36.597],[15.447,-5.669],[36.201,1.904],[58.984,-7.324],[67.285,-26.318],[57.812,-26.318],[53.448,-14.893],[37.379,-6.641],[20.135,-14.484],[14.355,-34.936],[20.757,-57.782],[37.564,-65.234],[50.823,-61.182],[57.129,-50.195],[66.602,-50.195],[58.349,-66.504]],"c":true},"ix":2},"nm":"C","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"C","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"Helvetica"},{"ch":"\u0003","size":119,"style":"Regular","w":0,"fFamily":"Helvetica"},{"ch":"D","size":119,"style":"Regular","w":72.22,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-3.454,-4.915],[0,-8.887],[0.478,-2.702],[1.878,-2.897],[3.692,-1.27],[3.214,0]],"o":[[0,0],[0,0],[7.671,0],[3.453,4.916],[0,2.312],[-0.828,4.525],[-2.356,3.613],[-2.069,0.684],[0,0]],"v":[[17.871,-8.301],[17.871,-63.379],[34.725,-63.379],[51.411,-56.006],[56.592,-35.303],[55.875,-27.783],[51.817,-16.65],[42.746,-9.326],[34.821,-8.301]],"c":true},"ix":2},"nm":"D","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-4.979,10.873],[0,7.617],[4.786,6.316],[9.734,0],[0,0]],"o":[[0,0],[12.142,0],[2.827,-6.152],[0,-9.863],[-5.365,-6.998],[0,0],[0,0]],"v":[[8.057,0],[36.63,0],[62.312,-16.309],[66.553,-36.963],[59.373,-61.23],[36.726,-71.729],[8.057,-71.729]],"c":true},"ix":2},"nm":"D","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"D","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"Helvetica"},{"ch":"\r","size":119,"style":"Regular","w":0,"fFamily":"Helvetica"},{"ch":"E","size":119,"style":"Regular","w":66.7,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[8.545,0],[61.328,0],[61.328,-8.545],[18.018,-8.545],[18.018,-32.861],[57.373,-32.861],[57.373,-41.162],[18.018,-41.162],[18.018,-62.939],[60.596,-62.939],[60.596,-71.729],[8.545,-71.729]],"c":true},"ix":2},"nm":"E","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"E","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"Helvetica"},{"ch":"P","size":60,"style":"Regular","w":66.7,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[-3.482,4.15],[0,5.599],[3.902,3.597],[6.345,0],[0,0]],"o":[[0,0],[0,0],[0,0],[7.175,0],[3.481,-4.15],[0,-6.51],[-3.902,-3.596],[0,0],[0,0]],"v":[[8.545,0],[18.262,0],[18.262,-30.322],[40.659,-30.322],[56.643,-36.548],[61.865,-51.172],[56.013,-66.333],[40.643,-71.729],[8.545,-71.729]],"c":true},"ix":2},"nm":"P","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,-5.273],[2.699,-1.855],[4.33,0],[0,0],[0,0],[0,0],[-2.133,-1.009]],"o":[[0,4.688],[-2.699,1.855],[0,0],[0,0],[0,0],[3.716,0],[3.878,1.888]],"v":[[52.051,-51.123],[48.003,-41.309],[37.459,-38.525],[18.262,-38.525],[18.262,-63.379],[37.459,-63.379],[46.233,-61.865]],"c":true},"ix":2},"nm":"P","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"P","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"Helvetica"},{"ch":"a","size":60,"style":"Regular","w":55.62,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,2.533],[-2.718,1.527],[-3.184,0.423],[0,0],[-1.689,0.458],[-1.073,0.686],[0,0],[4.883,-2.373],[3.092,0],[1.855,1.462]],"o":[[0,-3.345],[1.604,-0.909],[0,0],[1.624,-0.195],[1.689,-0.457],[0,0],[0,5.396],[-2.898,1.43],[-2.539,0],[-1.855,-1.462]],"v":[[13.184,-13.897],[17.261,-21.204],[24.443,-23.203],[29.755,-23.885],[34.725,-24.863],[38.867,-26.578],[38.867,-19.509],[31.543,-7.858],[22.559,-5.713],[15.967,-7.905]],"c":true},"ix":2},"nm":"a","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[3.027,-2.666],[0,-4.844],[-3.076,-2.942],[-4.851,0],[-3.353,1.724],[-1.791,2.344],[-0.716,-1.139],[-3.027,0],[-0.716,0.098],[-1.367,0.391],[0,0],[0.488,-0.049],[0.391,0],[0.374,0.552],[0,0.912],[0,0],[3.804,2.344],[6.145,0],[4.015,-2.53],[0.163,-6.464],[0,0],[-1.072,1.375],[-4.581,0],[-2.128,-1.356],[0,-3.006],[0.39,-0.784],[2.018,-0.259]],"o":[[-4.916,0.618],[-3.027,2.666],[0,4.422],[3.076,2.942],[4.036,0],[3.352,-1.725],[0.293,2.083],[1.367,2.148],[1.237,0],[0.716,-0.098],[0,0],[-0.554,0.098],[-0.488,0.049],[-1.205,0],[-0.375,-0.552],[0,0],[0,-4.948],[-3.837,-2.344],[-5.299,0],[-4.015,2.53],[0,0],[0.325,-2.715],[1.917,-2.486],[3.963,0],[2.128,1.357],[0,1.471],[-0.684,1.43],[0,0]],"v":[[20.459,-29.893],[8.545,-24.966],[4.004,-13.702],[8.618,-2.656],[20.508,1.758],[31.592,-0.829],[39.307,-6.932],[40.82,-2.099],[47.412,1.123],[50.342,0.977],[53.467,0.244],[53.467,-6.249],[51.904,-6.03],[50.586,-5.957],[48.218,-6.786],[47.656,-8.982],[47.656,-39.111],[41.95,-50.049],[26.978,-53.564],[13.005,-49.77],[6.738,-36.279],[14.941,-36.279],[17.036,-42.413],[26.783,-46.143],[35.919,-44.109],[39.111,-37.565],[38.526,-34.183],[34.473,-31.648]],"c":true},"ix":2},"nm":"a","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"a","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"Helvetica"},{"ch":"r","size":60,"style":"Regular","w":33.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-2.377,2.849],[-4.427,0],[-0.439,-0.032],[-0.521,-0.098],[0,0],[0.391,0.033],[0.163,0],[2.669,-2.522],[0.684,-1.758],[0,0],[0,0]],"o":[[0,0],[0,0],[0,-3.711],[2.376,-2.848],[0.52,0],[0.439,0.033],[0,0],[-0.945,-0.098],[-0.391,-0.032],[-3.484,0],[-2.67,2.523],[0,0],[0,0],[0,0]],"v":[[6.689,0],[15.479,0],[15.479,-30.078],[19.043,-39.917],[29.248,-44.189],[30.688,-44.141],[32.129,-43.945],[32.129,-53.223],[30.127,-53.418],[29.297,-53.467],[20.068,-49.683],[15.039,-43.262],[15.039,-52.295],[6.689,-52.295]],"c":true},"ix":2},"nm":"r","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"r","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"Helvetica"},{"ch":"g","size":60,"style":"Regular","w":55.62,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[4.086,0],[4.264,-4.915],[0,-8.756],[-4.231,-4.02],[-5.642,0],[-2.464,1.302],[-1.751,2.67],[1.231,-2.8],[6.702,0],[1.974,1.953],[0.42,2.344],[0,0],[-3.828,-2.523],[-5.613,0],[-3.634,7.096],[0,6.641],[0,0],[0,0],[0,0],[1.653,1.14]],"o":[[-6.031,0],[-4.264,4.916],[0,9.277],[4.231,4.021],[4.053,0],[2.464,-1.302],[0.098,7.195],[-2.072,4.752],[-4.241,0],[-1.263,-1.27],[0,0],[0.455,5.371],[3.828,2.522],[10.089,0],[1.946,-3.841],[0,0],[0,0],[0,0],[-1.719,-2.18],[-3.049,-2.018]],"v":[[24.817,-53.223],[9.374,-45.85],[2.979,-25.342],[9.325,-5.396],[24.136,0.635],[33.912,-1.318],[40.234,-7.275],[38.535,7.715],[25.375,14.844],[16.051,11.914],[13.525,6.494],[4.59,6.494],[11.015,18.335],[25.177,22.119],[45.762,11.475],[48.682,-4.248],[48.682,-51.807],[40.576,-51.807],[40.576,-45.215],[35.518,-50.195]],"c":true},"ix":2},"nm":"g","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,-6.477],[1.425,-3.223],[6.282,0],[2.38,3.076],[0,5.892],[-1.199,3.093],[-6.154,0],[-2.656,-3.125]],"o":[[0,4.297],[-2.559,5.697],[-4.016,0],[-2.38,-3.076],[0,-5.013],[2.267,-5.794],[4.113,0],[2.655,3.125]],"v":[[40.576,-26.367],[38.438,-15.088],[25.177,-6.543],[15.582,-11.157],[12.012,-24.609],[13.809,-36.768],[26.44,-45.459],[36.593,-40.771]],"c":true},"ix":2},"nm":"g","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"g","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"Helvetica"},{"ch":"p","size":60,"style":"Regular","w":55.62,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[4.115,0],[2.286,5.404],[0,4.037],[-1.208,3.255],[-6.108,0],[-2.287,-5.762],[0,-4.166],[2.727,-3.434]],"o":[[-6.076,0],[-1.208,-2.832],[0,-5.013],[2.254,-6.087],[6.075,0],[1.208,2.995],[0,6.836],[-2.728,3.435]],"v":[[28.516,-5.908],[15.973,-14.014],[14.16,-24.316],[15.973,-36.719],[28.516,-45.85],[41.058,-37.207],[42.871,-26.465],[38.78,-11.06]],"c":true},"ix":2},"nm":"p","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-1.569,-0.977],[-3.954,0],[-3.791,3.092],[0,11.394],[4.144,4.541],[5.94,0],[2.969,-1.953],[1.762,-2.376],[0,0],[0,0]],"o":[[0,0],[0,0],[1.928,2.377],[2.679,1.725],[5.032,0],[5.98,-4.883],[0,-8.43],[-4.145,-4.541],[-4.015,0],[-2.089,1.302],[0,0],[0,0],[0,0]],"v":[[5.713,20.85],[14.502,20.85],[14.502,-5.859],[19.747,-0.83],[29.698,1.758],[42.934,-2.881],[51.904,-27.295],[45.687,-46.753],[30.56,-53.564],[20.084,-50.635],[14.307,-45.117],[14.307,-52.051],[5.713,-52.051]],"c":true},"ix":2},"nm":"p","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"p","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"Helvetica"},{"ch":"h","size":60,"style":"Regular","w":55.62,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-2.962,2.507],[-3.646,0],[-1.595,-2.864],[0,-3.841],[0,0],[0,0],[0,0],[1.465,2.898],[7.584,0],[2.832,-1.855],[2.083,-2.637],[0,0],[0,0]],"o":[[0,0],[0,0],[0,-6.966],[2.962,-2.506],[4.395,0],[0.977,1.791],[0,0],[0,0],[0,0],[0,-5.143],[-2.702,-5.305],[-4.232,0],[-1.66,1.074],[0,0],[0,0],[0,0]],"v":[[6.445,0],[15.234,0],[15.234,-27.734],[19.678,-41.943],[29.59,-45.703],[38.574,-41.406],[40.039,-32.959],[40.039,0],[49.072,0],[49.072,-33.545],[46.875,-45.605],[31.445,-53.564],[20.85,-50.781],[15.234,-45.215],[15.234,-71.973],[6.445,-71.973]],"c":true},"ix":2},"nm":"h","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"h","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"Helvetica"},{"ch":"o","size":60,"style":"Regular","w":55.62,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[5.761,0],[2.414,3.706],[0,5.56],[-2.414,4.097],[-5.312,0],[-2.446,-4.812],[0,-4.877],[2.141,-4.405]],"o":[[-5.247,0],[-2.414,-3.706],[0,-5.787],[2.414,-4.097],[5.987,0],[1.545,3.056],[0,5.397],[-2.141,4.405]],"v":[[27.026,-5.713],[15.535,-11.272],[11.914,-25.172],[15.535,-39.997],[27.122,-46.143],[39.772,-38.924],[42.09,-27.025],[38.879,-12.321]],"c":true},"ix":2},"nm":"o","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[6.691,0],[4.428,-5.203],[0,-8.781],[-4.202,-4.862],[-7.144,0],[-4.073,5.496],[0,8.424],[4.622,4.488]],"o":[[-7.467,0],[-4.428,5.204],[0,8.196],[4.202,4.862],[8.566,0],[4.073,-5.496],[0,-8.716],[-4.623,-4.488]],"v":[[27.366,-53.809],[9.523,-46.003],[2.881,-25.025],[9.184,-5.437],[26.202,1.855],[45.16,-6.389],[51.27,-27.27],[44.336,-47.076]],"c":true},"ix":2},"nm":"o","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"o","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"Helvetica"},{"ch":"i","size":60,"style":"Regular","w":22.22,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[6.445,0],[15.381,0],[15.381,-52.051],[6.445,-52.051]],"c":true},"ix":2},"nm":"i","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[6.445,-61.768],[15.381,-61.768],[15.381,-71.729],[6.445,-71.729]],"c":true},"ix":2},"nm":"i","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"i","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"Helvetica"},{"ch":"n","size":60,"style":"Regular","w":55.62,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-0.439,1.839],[-1.465,1.726],[-2.409,0.716],[-2.084,0],[-1.562,-3.255],[0,-3.19],[0,0],[0,0],[0,0],[1.432,2.832],[7.422,0],[2.766,-1.334],[2.473,-3.059],[0,0],[0,0]],"o":[[0,0],[0,0],[0,-3.418],[0.439,-1.839],[1.823,-2.148],[1.334,-0.423],[4.102,0],[0.944,1.953],[0,0],[0,0],[0,0],[0,-5.273],[-2.605,-5.176],[-3.386,0],[-2.767,1.335],[0,0],[0,0],[0,0]],"v":[[6.445,0],[15.234,0],[15.234,-27.393],[15.894,-35.278],[18.75,-40.625],[25.098,-44.922],[30.225,-45.557],[38.721,-40.674],[40.137,-32.959],[40.137,0],[49.072,0],[49.072,-33.545],[46.924,-45.703],[31.885,-53.467],[22.656,-51.465],[14.795,-44.873],[14.795,-52.295],[6.445,-52.295]],"c":true},"ix":2},"nm":"n","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"n","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"Helvetica"},{"ch":"t","size":60,"style":"Regular","w":27.78,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[-1.465,-2.1],[-4.102,0],[-1.091,0.13],[-1.009,0.293],[0,0],[0.488,-0.021],[0.423,0],[0.684,0.359],[0,1.823],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,3.353],[1.465,2.1],[1.27,0],[1.09,-0.13],[0,0],[-0.652,0.087],[-0.488,0.021],[-1.595,0],[-1.237,-0.618],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[8.203,-52.295],[1.123,-52.295],[1.123,-45.117],[8.203,-45.117],[8.203,-10.498],[10.4,-2.319],[18.75,0.83],[22.29,0.635],[25.439,0],[25.439,-6.982],[23.73,-6.819],[22.363,-6.787],[18.945,-7.324],[17.09,-10.986],[17.09,-45.117],[25.439,-45.117],[25.439,-52.295],[17.09,-52.295],[17.09,-66.895],[8.203,-66.895]],"c":true},"ix":2},"nm":"t","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"t","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"Helvetica"}]}
\ No newline at end of file