]> source.dussan.org Git - poi.git/commitdiff
Snapshot commit - still lots of errors, xslf rendering works, started work on hslf
authorAndreas Beeker <kiwiwings@apache.org>
Thu, 19 Mar 2015 23:44:23 +0000 (23:44 +0000)
committerAndreas Beeker <kiwiwings@apache.org>
Thu, 19 Mar 2015 23:44:23 +0000 (23:44 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/branches/common_sl@1667902 13f79535-47bb-0310-9956-ffa450edef68

192 files changed:
src/examples/src/org/apache/poi/hslf/examples/ApacheconEU08.java
src/examples/src/org/apache/poi/hslf/examples/BulletsDemo.java
src/examples/src/org/apache/poi/hslf/examples/CreateHyperlink.java
src/examples/src/org/apache/poi/hslf/examples/DataExtraction.java
src/examples/src/org/apache/poi/hslf/examples/Graphics2DDemo.java
src/examples/src/org/apache/poi/hslf/examples/HeadersFootersDemo.java
src/examples/src/org/apache/poi/hslf/examples/Hyperlinks.java
src/examples/src/org/apache/poi/hslf/examples/PPT2PNG.java
src/examples/src/org/apache/poi/hslf/examples/SoundFinder.java
src/examples/src/org/apache/poi/hslf/examples/TableDemo.java
src/examples/src/org/apache/poi/hssf/usermodel/examples/EmeddedObjects.java
src/examples/src/org/apache/poi/xslf/usermodel/DataExtraction.java
src/examples/src/org/apache/poi/xslf/usermodel/Tutorial4.java
src/examples/src/org/apache/poi/xssf/usermodel/examples/EmbeddedObjects.java
src/integrationtest/org/apache/poi/stress/HSLFFileHandler.java
src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFGroupShape.java
src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFNotes.java
src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFNotesMaster.java
src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFPictureShape.java
src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFShadow.java
src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFShape.java
src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSheet.java
src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSimpleShape.java
src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSlide.java
src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSlideLayout.java
src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSlideMaster.java
src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFAutoShape.java
src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFConnectorShape.java
src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFSimpleShape.java
src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFTable.java
src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFTextParagraph.java
src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFTextShape.java
src/resources/scratchpad/org/apache/poi/sl/draw/geom/presetShapeDefinitions.xml [new file with mode: 0644]
src/resources/scratchpad/org/apache/poi/sl/draw/presetShapeDefinitions.xml [deleted file]
src/scratchpad/src/org/apache/poi/hslf/EncryptedSlideShow.java [deleted file]
src/scratchpad/src/org/apache/poi/hslf/HSLFSlideShow.java [deleted file]
src/scratchpad/src/org/apache/poi/hslf/blip/Bitmap.java
src/scratchpad/src/org/apache/poi/hslf/blip/BitmapPainter.java
src/scratchpad/src/org/apache/poi/hslf/blip/DIB.java
src/scratchpad/src/org/apache/poi/hslf/blip/EMF.java
src/scratchpad/src/org/apache/poi/hslf/blip/ImagePainter.java
src/scratchpad/src/org/apache/poi/hslf/blip/JPEG.java
src/scratchpad/src/org/apache/poi/hslf/blip/Metafile.java
src/scratchpad/src/org/apache/poi/hslf/blip/PICT.java
src/scratchpad/src/org/apache/poi/hslf/blip/PNG.java
src/scratchpad/src/org/apache/poi/hslf/blip/WMF.java
src/scratchpad/src/org/apache/poi/hslf/dev/PPDrawingTextListing.java
src/scratchpad/src/org/apache/poi/hslf/dev/SLWTListing.java
src/scratchpad/src/org/apache/poi/hslf/dev/SLWTTextListing.java
src/scratchpad/src/org/apache/poi/hslf/dev/SlideAndNotesAtomListing.java
src/scratchpad/src/org/apache/poi/hslf/dev/SlideIdListing.java
src/scratchpad/src/org/apache/poi/hslf/dev/SlideShowRecordDumper.java
src/scratchpad/src/org/apache/poi/hslf/dev/TextStyleListing.java
src/scratchpad/src/org/apache/poi/hslf/dev/UserEditAndPersistListing.java
src/scratchpad/src/org/apache/poi/hslf/extractor/ImageExtractor.java
src/scratchpad/src/org/apache/poi/hslf/extractor/PowerPointExtractor.java
src/scratchpad/src/org/apache/poi/hslf/extractor/QuickButCruddyTextExtractor.java
src/scratchpad/src/org/apache/poi/hslf/model/ActiveXShape.java
src/scratchpad/src/org/apache/poi/hslf/model/AutoShape.java [deleted file]
src/scratchpad/src/org/apache/poi/hslf/model/Background.java [deleted file]
src/scratchpad/src/org/apache/poi/hslf/model/Fill.java [deleted file]
src/scratchpad/src/org/apache/poi/hslf/model/Freeform.java [deleted file]
src/scratchpad/src/org/apache/poi/hslf/model/HSLFAutoShape.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/hslf/model/HSLFBackground.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/hslf/model/HSLFFill.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/hslf/model/HSLFFreeformShape.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/hslf/model/HSLFGroupShape.java
src/scratchpad/src/org/apache/poi/hslf/model/HSLFMasterSheet.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/hslf/model/HSLFNotes.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/hslf/model/HSLFPictureShape.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/hslf/model/HSLFShape.java
src/scratchpad/src/org/apache/poi/hslf/model/HSLFSheet.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/hslf/model/HSLFSimpleShape.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/hslf/model/HSLFSlide.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/hslf/model/HSLFSlideShowEncrypted.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/hslf/model/HSLFSlideShowImpl.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/hslf/model/HSLFTextBox.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/hslf/model/HSLFTextParagraph.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/hslf/model/HSLFTextShape.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/hslf/model/HeadersFooters.java
src/scratchpad/src/org/apache/poi/hslf/model/Hyperlink.java
src/scratchpad/src/org/apache/poi/hslf/model/Line.java
src/scratchpad/src/org/apache/poi/hslf/model/MasterSheet.java [deleted file]
src/scratchpad/src/org/apache/poi/hslf/model/MovieShape.java
src/scratchpad/src/org/apache/poi/hslf/model/Notes.java [deleted file]
src/scratchpad/src/org/apache/poi/hslf/model/OLEShape.java
src/scratchpad/src/org/apache/poi/hslf/model/PPGraphics2D.java
src/scratchpad/src/org/apache/poi/hslf/model/Picture.java [deleted file]
src/scratchpad/src/org/apache/poi/hslf/model/Placeholder.java
src/scratchpad/src/org/apache/poi/hslf/model/Polygon.java
src/scratchpad/src/org/apache/poi/hslf/model/ShapeFactory.java
src/scratchpad/src/org/apache/poi/hslf/model/ShapePainter.java
src/scratchpad/src/org/apache/poi/hslf/model/Sheet.java [deleted file]
src/scratchpad/src/org/apache/poi/hslf/model/SimpleShape.java [deleted file]
src/scratchpad/src/org/apache/poi/hslf/model/Slide.java [deleted file]
src/scratchpad/src/org/apache/poi/hslf/model/SlideMaster.java
src/scratchpad/src/org/apache/poi/hslf/model/Table.java
src/scratchpad/src/org/apache/poi/hslf/model/TableCell.java
src/scratchpad/src/org/apache/poi/hslf/model/TextBox.java [deleted file]
src/scratchpad/src/org/apache/poi/hslf/model/TextPainter.java
src/scratchpad/src/org/apache/poi/hslf/model/TextRun.java [deleted file]
src/scratchpad/src/org/apache/poi/hslf/model/TextShape.java [deleted file]
src/scratchpad/src/org/apache/poi/hslf/model/TitleMaster.java
src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFObjectData.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFPictureData.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlideShow.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSoundData.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFTextRun.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/hslf/usermodel/ObjectData.java [deleted file]
src/scratchpad/src/org/apache/poi/hslf/usermodel/PictureData.java [deleted file]
src/scratchpad/src/org/apache/poi/hslf/usermodel/RichTextRun.java [deleted file]
src/scratchpad/src/org/apache/poi/hslf/usermodel/SlideShow.java [deleted file]
src/scratchpad/src/org/apache/poi/hslf/usermodel/SoundData.java [deleted file]
src/scratchpad/src/org/apache/poi/sl/draw/DrawAutoShape.java
src/scratchpad/src/org/apache/poi/sl/draw/DrawFactory.java
src/scratchpad/src/org/apache/poi/sl/draw/DrawMasterSheet.java
src/scratchpad/src/org/apache/poi/sl/draw/DrawPaint.java
src/scratchpad/src/org/apache/poi/sl/draw/DrawShapeGroup.java
src/scratchpad/src/org/apache/poi/sl/draw/DrawSheet.java
src/scratchpad/src/org/apache/poi/sl/draw/DrawSimpleShape.java
src/scratchpad/src/org/apache/poi/sl/draw/DrawSlide.java
src/scratchpad/src/org/apache/poi/sl/draw/DrawTextFragment.java
src/scratchpad/src/org/apache/poi/sl/draw/DrawTextShape.java
src/scratchpad/src/org/apache/poi/sl/draw/geom/PresetGeometries.java
src/scratchpad/src/org/apache/poi/sl/usermodel/AutoShape.java
src/scratchpad/src/org/apache/poi/sl/usermodel/FreeformShape.java
src/scratchpad/src/org/apache/poi/sl/usermodel/MasterSheet.java
src/scratchpad/src/org/apache/poi/sl/usermodel/Notes.java
src/scratchpad/src/org/apache/poi/sl/usermodel/PaintStyle.java
src/scratchpad/src/org/apache/poi/sl/usermodel/Shape.java
src/scratchpad/src/org/apache/poi/sl/usermodel/ShapeGroup.java
src/scratchpad/src/org/apache/poi/sl/usermodel/Sheet.java
src/scratchpad/src/org/apache/poi/sl/usermodel/Slide.java
src/scratchpad/src/org/apache/poi/sl/usermodel/SlideShow.java
src/scratchpad/src/org/apache/poi/sl/usermodel/StrokeStyle.java
src/scratchpad/src/org/apache/poi/sl/usermodel/TextBox.java
src/scratchpad/src/org/apache/poi/sl/usermodel/TextShape.java
src/scratchpad/testcases/org/apache/poi/TestPOIDocumentScratchpad.java
src/scratchpad/testcases/org/apache/poi/hslf/HSLFTestDataSamples.java
src/scratchpad/testcases/org/apache/poi/hslf/TestEncryptedFile.java
src/scratchpad/testcases/org/apache/poi/hslf/TestReWrite.java
src/scratchpad/testcases/org/apache/poi/hslf/TestReWriteSanity.java
src/scratchpad/testcases/org/apache/poi/hslf/TestRecordCounts.java
src/scratchpad/testcases/org/apache/poi/hslf/extractor/TestExtractor.java
src/scratchpad/testcases/org/apache/poi/hslf/model/TestBackground.java
src/scratchpad/testcases/org/apache/poi/hslf/model/TestFreeform.java
src/scratchpad/testcases/org/apache/poi/hslf/model/TestHeadersFooters.java
src/scratchpad/testcases/org/apache/poi/hslf/model/TestHyperlink.java
src/scratchpad/testcases/org/apache/poi/hslf/model/TestImagePainter.java
src/scratchpad/testcases/org/apache/poi/hslf/model/TestLine.java
src/scratchpad/testcases/org/apache/poi/hslf/model/TestMovieShape.java
src/scratchpad/testcases/org/apache/poi/hslf/model/TestOleEmbedding.java
src/scratchpad/testcases/org/apache/poi/hslf/model/TestPPFont.java
src/scratchpad/testcases/org/apache/poi/hslf/model/TestPPGraphics2D.java
src/scratchpad/testcases/org/apache/poi/hslf/model/TestPicture.java
src/scratchpad/testcases/org/apache/poi/hslf/model/TestSetBoldItalic.java
src/scratchpad/testcases/org/apache/poi/hslf/model/TestShapes.java
src/scratchpad/testcases/org/apache/poi/hslf/model/TestSheet.java
src/scratchpad/testcases/org/apache/poi/hslf/model/TestSlideChangeNotes.java
src/scratchpad/testcases/org/apache/poi/hslf/model/TestSlideMaster.java
src/scratchpad/testcases/org/apache/poi/hslf/model/TestSlides.java
src/scratchpad/testcases/org/apache/poi/hslf/model/TestTable.java
src/scratchpad/testcases/org/apache/poi/hslf/model/TestTextRun.java
src/scratchpad/testcases/org/apache/poi/hslf/model/TestTextRunReWrite.java
src/scratchpad/testcases/org/apache/poi/hslf/model/TestTextShape.java
src/scratchpad/testcases/org/apache/poi/hslf/model/TextPainterTest.java
src/scratchpad/testcases/org/apache/poi/hslf/record/TestCurrentUserAtom.java
src/scratchpad/testcases/org/apache/poi/hslf/record/TestDocument.java
src/scratchpad/testcases/org/apache/poi/hslf/record/TestDocumentEncryption.java
src/scratchpad/testcases/org/apache/poi/hslf/record/TestExHyperlink.java
src/scratchpad/testcases/org/apache/poi/hslf/record/TestExObjList.java
src/scratchpad/testcases/org/apache/poi/hslf/record/TestRecordContainer.java
src/scratchpad/testcases/org/apache/poi/hslf/record/TestSlideAtom.java
src/scratchpad/testcases/org/apache/poi/hslf/record/TestSound.java
src/scratchpad/testcases/org/apache/poi/hslf/record/TestTxMasterStyleAtom.java
src/scratchpad/testcases/org/apache/poi/hslf/usermodel/TestAddingSlides.java
src/scratchpad/testcases/org/apache/poi/hslf/usermodel/TestBugs.java
src/scratchpad/testcases/org/apache/poi/hslf/usermodel/TestCounts.java
src/scratchpad/testcases/org/apache/poi/hslf/usermodel/TestFontRendering.java
src/scratchpad/testcases/org/apache/poi/hslf/usermodel/TestMostRecentRecords.java
src/scratchpad/testcases/org/apache/poi/hslf/usermodel/TestNotesText.java
src/scratchpad/testcases/org/apache/poi/hslf/usermodel/TestNumberedList.java
src/scratchpad/testcases/org/apache/poi/hslf/usermodel/TestNumberedList2.java
src/scratchpad/testcases/org/apache/poi/hslf/usermodel/TestNumberedList3.java
src/scratchpad/testcases/org/apache/poi/hslf/usermodel/TestPictures.java
src/scratchpad/testcases/org/apache/poi/hslf/usermodel/TestReOrderingSlides.java
src/scratchpad/testcases/org/apache/poi/hslf/usermodel/TestRecordSetup.java
src/scratchpad/testcases/org/apache/poi/hslf/usermodel/TestRichTextRun.java
src/scratchpad/testcases/org/apache/poi/hslf/usermodel/TestSheetText.java
src/scratchpad/testcases/org/apache/poi/hslf/usermodel/TestSlideOrdering.java
src/scratchpad/testcases/org/apache/poi/hslf/usermodel/TestSoundData.java
src/scratchpad/testcases/org/apache/poi/hslf/usermodel/TestTable.java

index 7d013237fff4e0c3411d3e55627744706bcd6acf..7a4b20c187c0b7088950fe5175fbbe0a5b44a39c 100644 (file)
@@ -34,7 +34,7 @@ import java.awt.*;
 public final class ApacheconEU08 {
 
     public static void main(String[] args) throws IOException {
-        SlideShow ppt = new SlideShow();
+        HSLFSlideShow ppt = new HSLFSlideShow();
         ppt.setPageSize(new Dimension(720, 540));
 
         slide1(ppt);
@@ -56,27 +56,27 @@ public final class ApacheconEU08 {
 
     }
 
-    public static void slide1(SlideShow ppt) throws IOException {
-        Slide slide = ppt.createSlide();
+    public static void slide1(HSLFSlideShow ppt) throws IOException {
+        HSLFSlide slide = ppt.createSlide();
 
-        TextBox box1 = new TextBox();
-        TextRun tr1 = box1.getTextRun();
+        HSLFTextBox box1 = new HSLFTextBox();
+        HSLFTextParagraph tr1 = box1.getTextParagraph();
         tr1.setRunType(TextHeaderAtom.CENTER_TITLE_TYPE);
         tr1.setText("POI-HSLF");
         box1.setAnchor(new Rectangle(54, 78, 612, 115));
         slide.addShape(box1);
 
-        TextBox box2 = new TextBox();
-        TextRun tr2 = box2.getTextRun();
+        HSLFTextBox box2 = new HSLFTextBox();
+        HSLFTextParagraph tr2 = box2.getTextParagraph();
         tr2.setRunType(TextHeaderAtom.CENTRE_BODY_TYPE);
         tr2.setText("Java API To Access Microsoft PowerPoint Format Files");
         box2.setAnchor(new Rectangle(108, 204, 504, 138));
         slide.addShape(box2);
 
-        TextBox box3 = new TextBox();
-        TextRun tr3 = box3.getTextRun();
+        HSLFTextBox box3 = new HSLFTextBox();
+        HSLFTextParagraph tr3 = box3.getTextParagraph();
         tr3.getRichTextRuns()[0].setFontSize(32);
-        box3.setHorizontalAlignment(TextBox.AlignCenter);
+        box3.setHorizontalAlignment(HSLFTextBox.AlignCenter);
         tr3.setText(
                 "Yegor Kozlov\r" +
                 "yegor - apache - org");
@@ -84,18 +84,18 @@ public final class ApacheconEU08 {
         slide.addShape(box3);
     }
 
-    public static void slide2(SlideShow ppt) throws IOException {
-        Slide slide = ppt.createSlide();
+    public static void slide2(HSLFSlideShow ppt) throws IOException {
+        HSLFSlide slide = ppt.createSlide();
 
-        TextBox box1 = new TextBox();
-        TextRun tr1 = box1.getTextRun();
+        HSLFTextBox box1 = new HSLFTextBox();
+        HSLFTextParagraph tr1 = box1.getTextParagraph();
         tr1.setRunType(TextHeaderAtom.TITLE_TYPE);
         tr1.setText("What is HSLF?");
         box1.setAnchor(new Rectangle(36, 21, 648, 90));
         slide.addShape(box1);
 
-        TextBox box2 = new TextBox();
-        TextRun tr2 = box2.getTextRun();
+        HSLFTextBox box2 = new HSLFTextBox();
+        HSLFTextParagraph tr2 = box2.getTextParagraph();
         tr2.setRunType(TextHeaderAtom.BODY_TYPE);
         tr2.setText("HorribleSLideshowFormat is the POI Project's pure Java implementation " +
                 "of the Powerpoint binary file format. \r" +
@@ -107,18 +107,18 @@ public final class ApacheconEU08 {
 
     }
 
-    public static void slide3(SlideShow ppt) throws IOException {
-        Slide slide = ppt.createSlide();
+    public static void slide3(HSLFSlideShow ppt) throws IOException {
+        HSLFSlide slide = ppt.createSlide();
 
-        TextBox box1 = new TextBox();
-        TextRun tr1 = box1.getTextRun();
+        HSLFTextBox box1 = new HSLFTextBox();
+        HSLFTextParagraph tr1 = box1.getTextParagraph();
         tr1.setRunType(TextHeaderAtom.TITLE_TYPE);
         tr1.setText("HSLF in a Nutshell");
         box1.setAnchor(new Rectangle(36, 15, 648, 65));
         slide.addShape(box1);
 
-        TextBox box2 = new TextBox();
-        TextRun tr2 = box2.getTextRun();
+        HSLFTextBox box2 = new HSLFTextBox();
+        HSLFTextParagraph tr2 = box2.getTextParagraph();
         tr2.setRunType(TextHeaderAtom.BODY_TYPE);
         tr2.setText(
                 "HSLF provides a way to read, create and modify MS PowerPoint presentations\r" +
@@ -128,8 +128,8 @@ public final class ApacheconEU08 {
         box2.setAnchor(new Rectangle(36, 80, 648, 200));
         slide.addShape(box2);
 
-        TextBox box3 = new TextBox();
-        TextRun tr3 = box3.getTextRun();
+        HSLFTextBox box3 = new HSLFTextBox();
+        HSLFTextParagraph tr3 = box3.getTextParagraph();
         tr3.setRunType(TextHeaderAtom.BODY_TYPE);
         tr3.setText(
                 "Rich text\r" +
@@ -142,16 +142,16 @@ public final class ApacheconEU08 {
         box3.setAnchor(new Rectangle(36, 265, 648, 150));
         slide.addShape(box3);
 
-        TextBox box4 = new TextBox();
-        TextRun tr4 = box4.getTextRun();
+        HSLFTextBox box4 = new HSLFTextBox();
+        HSLFTextParagraph tr4 = box4.getTextParagraph();
         tr4.setRunType(TextHeaderAtom.BODY_TYPE);
         tr4.setText("Access to low level data structures");
         box4.setAnchor(new Rectangle(36, 430, 648, 50));
         slide.addShape(box4);
     }
 
-    public static void slide4(SlideShow ppt) throws IOException {
-        Slide slide = ppt.createSlide();
+    public static void slide4(HSLFSlideShow ppt) throws IOException {
+        HSLFSlide slide = ppt.createSlide();
 
         String[][] txt1 = {
             {"Note"},
@@ -162,8 +162,8 @@ public final class ApacheconEU08 {
             for (int j = 0; j < txt1[i].length; j++) {
                 TableCell cell = table1.getCell(i, j);
                 cell.setText(txt1[i][j]);
-                cell.getTextRun().getRichTextRuns()[0].setFontSize(10);
-                RichTextRun rt = cell.getTextRun().getRichTextRuns()[0];
+                cell.getTextParagraph().getRichTextRuns()[0].setFontSize(10);
+                HSLFTextRun rt = cell.getTextParagraph().getRichTextRuns()[0];
                 rt.setFontName("Arial");
                 rt.setBold(true);
                 if(i == 0){
@@ -174,7 +174,7 @@ public final class ApacheconEU08 {
                     rt.setFontSize(28);
                     cell.getFill().setForegroundColor(new Color(235, 239, 241));
                 }
-                cell.setVerticalAlignment(TextBox.AnchorMiddle);
+                cell.setVerticalAlignment(HSLFTextBox.AnchorMiddle);
             }
         }
 
@@ -195,30 +195,30 @@ public final class ApacheconEU08 {
 
         table1.moveTo(100, 100);
 
-        TextBox box1 = new TextBox();
-        box1.setHorizontalAlignment(TextBox.AlignCenter);
-        TextRun tr1 = box1.getTextRun();
+        HSLFTextBox box1 = new HSLFTextBox();
+        box1.setHorizontalAlignment(HSLFTextBox.AlignCenter);
+        HSLFTextParagraph tr1 = box1.getTextParagraph();
         tr1.setText("The source code is available at\r" +
                 "http://people.apache.org/~yegor/apachecon_eu08/");
-        RichTextRun rt = tr1.getRichTextRuns()[0];
+        HSLFTextRun rt = tr1.getRichTextRuns()[0];
         rt.setFontSize(24);
         box1.setAnchor(new Rectangle(80, 356, 553, 65));
         slide.addShape(box1);
 
     }
 
-    public static void slide5(SlideShow ppt) throws IOException {
-        Slide slide = ppt.createSlide();
+    public static void slide5(HSLFSlideShow ppt) throws IOException {
+        HSLFSlide slide = ppt.createSlide();
 
-        TextBox box1 = new TextBox();
-        TextRun tr1 = box1.getTextRun();
+        HSLFTextBox box1 = new HSLFTextBox();
+        HSLFTextParagraph tr1 = box1.getTextParagraph();
         tr1.setRunType(TextHeaderAtom.TITLE_TYPE);
         tr1.setText("HSLF in Action - 1\rData Extraction");
         box1.setAnchor(new Rectangle(36, 21, 648, 100));
         slide.addShape(box1);
 
-        TextBox box2 = new TextBox();
-        TextRun tr2 = box2.getTextRun();
+        HSLFTextBox box2 = new HSLFTextBox();
+        HSLFTextParagraph tr2 = box2.getTextParagraph();
         tr2.setRunType(TextHeaderAtom.BODY_TYPE);
         tr2.setText(
                 "Text from slides and notes\r" +
@@ -230,26 +230,26 @@ public final class ApacheconEU08 {
 
     }
 
-    public static void slide6(SlideShow ppt) throws IOException {
-        Slide slide = ppt.createSlide();
+    public static void slide6(HSLFSlideShow ppt) throws IOException {
+        HSLFSlide slide = ppt.createSlide();
 
-        TextBox box1 = new TextBox();
-        TextRun tr1 = box1.getTextRun();
+        HSLFTextBox box1 = new HSLFTextBox();
+        HSLFTextParagraph tr1 = box1.getTextParagraph();
         tr1.setRunType(TextHeaderAtom.TITLE_TYPE);
         tr1.setText("HSLF in Action - 2");
         box1.setAnchor(new Rectangle(36, 20, 648, 90));
         slide.addShape(box1);
 
-        TextBox box2 = new TextBox();
-        TextRun tr2 = box2.getTextRun();
+        HSLFTextBox box2 = new HSLFTextBox();
+        HSLFTextParagraph tr2 = box2.getTextParagraph();
         tr2.getRichTextRuns()[0].setFontSize(18);
         tr2.setText("Creating a simple presentation from scratch");
         box2.setAnchor(new Rectangle(170, 100, 364, 30));
         slide.addShape(box2);
 
-        TextBox box3 = new TextBox();
-        TextRun tr3 = box3.getTextRun();
-        RichTextRun rt3 = tr3.getRichTextRuns()[0];
+        HSLFTextBox box3 = new HSLFTextBox();
+        HSLFTextParagraph tr3 = box3.getTextParagraph();
+        HSLFTextRun rt3 = tr3.getRichTextRuns()[0];
         rt3.setFontName("Courier New");
         rt3.setFontSize(8);
         tr3.setText(
@@ -290,30 +290,30 @@ public final class ApacheconEU08 {
         slide.addShape(box3);
     }
 
-    public static void slide7(SlideShow ppt) throws IOException {
-        Slide slide = ppt.createSlide();
+    public static void slide7(HSLFSlideShow ppt) throws IOException {
+        HSLFSlide slide = ppt.createSlide();
 
-        TextBox box2 = new TextBox();
-        box2.setHorizontalAlignment(TextBox.AlignCenter);
-        box2.setVerticalAlignment(TextBox.AnchorMiddle);
-        box2.getTextRun().setText("Java Code");
+        HSLFTextBox box2 = new HSLFTextBox();
+        box2.setHorizontalAlignment(HSLFTextBox.AlignCenter);
+        box2.setVerticalAlignment(HSLFTextBox.AnchorMiddle);
+        box2.getTextParagraph().setText("Java Code");
         box2.getFill().setForegroundColor(new Color(187, 224, 227));
         box2.setLineColor(Color.black);
         box2.setLineWidth(0.75);
         box2.setAnchor(new Rectangle(66, 243, 170, 170));
         slide.addShape(box2);
 
-        TextBox box3 = new TextBox();
-        box3.setHorizontalAlignment(TextBox.AlignCenter);
-        box3.setVerticalAlignment(TextBox.AnchorMiddle);
-        box3.getTextRun().setText("*.ppt file");
+        HSLFTextBox box3 = new HSLFTextBox();
+        box3.setHorizontalAlignment(HSLFTextBox.AlignCenter);
+        box3.setVerticalAlignment(HSLFTextBox.AnchorMiddle);
+        box3.getTextParagraph().setText("*.ppt file");
         box3.setLineWidth(0.75);
         box3.setLineColor(Color.black);
         box3.getFill().setForegroundColor(new Color(187, 224, 227));
         box3.setAnchor(new Rectangle(473, 243, 170, 170));
         slide.addShape(box3);
 
-        AutoShape box4 = new AutoShape(ShapeType.RIGHT_ARROW);
+        HSLFAutoShape box4 = new HSLFAutoShape(ShapeType.RIGHT_ARROW);
         box4.getFill().setForegroundColor(new Color(187, 224, 227));
         box4.setLineWidth(0.75);
         box4.setLineColor(Color.black);
@@ -321,18 +321,18 @@ public final class ApacheconEU08 {
         slide.addShape(box4);
     }
 
-    public static void slide8(SlideShow ppt) throws IOException {
-        Slide slide = ppt.createSlide();
+    public static void slide8(HSLFSlideShow ppt) throws IOException {
+        HSLFSlide slide = ppt.createSlide();
 
-        TextBox box1 = new TextBox();
-        TextRun tr1 = box1.getTextRun();
+        HSLFTextBox box1 = new HSLFTextBox();
+        HSLFTextParagraph tr1 = box1.getTextParagraph();
         tr1.setRunType(TextHeaderAtom.TITLE_TYPE);
         tr1.setText("Wait, there is more!");
         box1.setAnchor(new Rectangle(36, 21, 648, 90));
         slide.addShape(box1);
 
-        TextBox box2 = new TextBox();
-        TextRun tr2 = box2.getTextRun();
+        HSLFTextBox box2 = new HSLFTextBox();
+        HSLFTextParagraph tr2 = box2.getTextParagraph();
         tr2.setRunType(TextHeaderAtom.BODY_TYPE);
         tr2.setText(
                 "Rich text\r" +
@@ -343,26 +343,26 @@ public final class ApacheconEU08 {
         slide.addShape(box2);
     }
 
-    public static void slide9(SlideShow ppt) throws IOException {
-        Slide slide = ppt.createSlide();
+    public static void slide9(HSLFSlideShow ppt) throws IOException {
+        HSLFSlide slide = ppt.createSlide();
 
-        TextBox box1 = new TextBox();
-        TextRun tr1 = box1.getTextRun();
+        HSLFTextBox box1 = new HSLFTextBox();
+        HSLFTextParagraph tr1 = box1.getTextParagraph();
         tr1.setRunType(TextHeaderAtom.TITLE_TYPE);
         tr1.setText("HSLF in Action - 3");
         box1.setAnchor(new Rectangle(36, 20, 648, 50));
         slide.addShape(box1);
 
-        TextBox box2 = new TextBox();
-        TextRun tr2 = box2.getTextRun();
+        HSLFTextBox box2 = new HSLFTextBox();
+        HSLFTextParagraph tr2 = box2.getTextParagraph();
         tr2.getRichTextRuns()[0].setFontSize(18);
         tr2.setText("PPGraphics2D: PowerPoint Graphics2D driver");
         box2.setAnchor(new Rectangle(178, 70, 387, 30));
         slide.addShape(box2);
 
-        TextBox box3 = new TextBox();
-        TextRun tr3 = box3.getTextRun();
-        RichTextRun rt3 = tr3.getRichTextRuns()[0];
+        HSLFTextBox box3 = new HSLFTextBox();
+        HSLFTextParagraph tr3 = box3.getTextParagraph();
+        HSLFTextRun rt3 = tr3.getRichTextRuns()[0];
         rt3.setFontName("Courier New");
         rt3.setFontSize(8);
         tr3.setText(
@@ -408,7 +408,7 @@ public final class ApacheconEU08 {
         slide.addShape(box3);
     }
 
-    public static void slide10(SlideShow ppt) throws IOException {
+    public static void slide10(HSLFSlideShow ppt) throws IOException {
         //bar chart data. The first value is the bar color, the second is the width
         Object[] def = new Object[]{
             Color.yellow, new Integer(100),
@@ -417,7 +417,7 @@ public final class ApacheconEU08 {
             Color.red, new Integer(200),
         };
 
-        Slide slide = ppt.createSlide();
+        HSLFSlide slide = ppt.createSlide();
 
         HSLFGroupShape group = new HSLFGroupShape();
         //define position of the drawing in the slide
@@ -445,18 +445,18 @@ public final class ApacheconEU08 {
 
     }
 
-    public static void slide11(SlideShow ppt) throws IOException {
-        Slide slide = ppt.createSlide();
+    public static void slide11(HSLFSlideShow ppt) throws IOException {
+        HSLFSlide slide = ppt.createSlide();
 
-        TextBox box1 = new TextBox();
-        TextRun tr1 = box1.getTextRun();
+        HSLFTextBox box1 = new HSLFTextBox();
+        HSLFTextParagraph tr1 = box1.getTextParagraph();
         tr1.setRunType(TextHeaderAtom.TITLE_TYPE);
         tr1.setText("HSLF Development Plans");
         box1.setAnchor(new Rectangle(36, 21, 648, 90));
         slide.addShape(box1);
 
-        TextBox box2 = new TextBox();
-        TextRun tr2 = box2.getTextRun();
+        HSLFTextBox box2 = new HSLFTextBox();
+        HSLFTextParagraph tr2 = box2.getTextParagraph();
         tr2.setRunType(TextHeaderAtom.BODY_TYPE);
         tr2.getRichTextRuns()[0].setFontSize(32);
         tr2.setText(
@@ -465,8 +465,8 @@ public final class ApacheconEU08 {
         box2.setAnchor(new Rectangle(36, 126, 648, 100));
         slide.addShape(box2);
 
-        TextBox box3 = new TextBox();
-        TextRun tr3 = box3.getTextRun();
+        HSLFTextBox box3 = new HSLFTextBox();
+        HSLFTextParagraph tr3 = box3.getTextParagraph();
         tr3.setRunType(TextHeaderAtom.BODY_TYPE);
         tr3.getRichTextRuns()[0].setIndentLevel(1);
         tr3.setText(
@@ -474,8 +474,8 @@ public final class ApacheconEU08 {
         box3.setAnchor(new Rectangle(36, 220, 648, 70));
         slide.addShape(box3);
 
-        TextBox box4 = new TextBox();
-        TextRun tr4 = box4.getTextRun();
+        HSLFTextBox box4 = new HSLFTextBox();
+        HSLFTextParagraph tr4 = box4.getTextParagraph();
         tr4.setRunType(TextHeaderAtom.BODY_TYPE);
         tr4.getRichTextRuns()[0].setFontSize(32);
         tr4.setText(
@@ -483,8 +483,8 @@ public final class ApacheconEU08 {
         box4.setAnchor(new Rectangle(36, 290, 648, 90));
         slide.addShape(box4);
 
-        TextBox box5 = new TextBox();
-        TextRun tr5 = box5.getTextRun();
+        HSLFTextBox box5 = new HSLFTextBox();
+        HSLFTextParagraph tr5 = box5.getTextParagraph();
         tr5.setRunType(TextHeaderAtom.BODY_TYPE);
         tr5.getRichTextRuns()[0].setIndentLevel(1);
         tr5.setText(
@@ -494,18 +494,18 @@ public final class ApacheconEU08 {
         slide.addShape(box5);
     }
 
-    public static void slide12(SlideShow ppt) throws IOException {
-        Slide slide = ppt.createSlide();
+    public static void slide12(HSLFSlideShow ppt) throws IOException {
+        HSLFSlide slide = ppt.createSlide();
 
-        TextBox box1 = new TextBox();
-        TextRun tr1 = box1.getTextRun();
+        HSLFTextBox box1 = new HSLFTextBox();
+        HSLFTextParagraph tr1 = box1.getTextParagraph();
         tr1.setRunType(TextHeaderAtom.CENTER_TITLE_TYPE);
         tr1.setText("Questions?");
         box1.setAnchor(new Rectangle(54, 167, 612, 115));
         slide.addShape(box1);
 
-        TextBox box2 = new TextBox();
-        TextRun tr2 = box2.getTextRun();
+        HSLFTextBox box2 = new HSLFTextBox();
+        HSLFTextParagraph tr2 = box2.getTextParagraph();
         tr2.setRunType(TextHeaderAtom.CENTRE_BODY_TYPE);
         tr2.setText(
                 "http://poi.apache.org/hslf/\r" +
index 3a97b61aa00c25a47509587aee96d2fb2986c354..ed6dd1231df73b9996928d04fc5d6d1249183e3b 100644 (file)
 
 package org.apache.poi.hslf.examples;
 
-import org.apache.poi.hslf.usermodel.SlideShow;
-import org.apache.poi.hslf.usermodel.RichTextRun;
-import org.apache.poi.hslf.model.Slide;
-import org.apache.poi.hslf.model.TextBox;
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;
+import org.apache.poi.hslf.usermodel.HSLFTextRun;
+import org.apache.poi.hslf.model.HSLFSlide;
+import org.apache.poi.hslf.model.HSLFTextBox;
 
 import java.io.FileOutputStream;
 
@@ -34,12 +34,12 @@ public final class BulletsDemo {
 
     public static void main(String[] args) throws Exception {
 
-        SlideShow ppt = new SlideShow();
+        HSLFSlideShow ppt = new HSLFSlideShow();
 
-        Slide slide = ppt.createSlide();
+        HSLFSlide slide = ppt.createSlide();
 
-        TextBox shape = new TextBox();
-        RichTextRun rt = shape.getTextRun().getRichTextRuns()[0];
+        HSLFTextBox shape = new HSLFTextBox();
+        HSLFTextRun rt = shape.getTextParagraph().getRichTextRuns()[0];
         shape.setText(
                 "January\r" +
                 "February\r" +
index 0aa8db32de87536cf158338a8dae44d65bbe56ed..99c5d7d31f8b441a8c2c24f5b00fb42a78abae61 100644 (file)
@@ -17,7 +17,7 @@
 
 package org.apache.poi.hslf.examples;
 
-import org.apache.poi.hslf.usermodel.SlideShow;
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;
 import org.apache.poi.hslf.model.*;
 
 import java.io.FileOutputStream;
@@ -31,14 +31,14 @@ import java.awt.*;
 public final class CreateHyperlink {
 
     public static void main(String[] args) throws Exception {
-        SlideShow ppt = new SlideShow();
+        HSLFSlideShow ppt = new HSLFSlideShow();
 
-        Slide slideA = ppt.createSlide();
-        Slide slideB = ppt.createSlide();
-        Slide slideC = ppt.createSlide();
+        HSLFSlide slideA = ppt.createSlide();
+        HSLFSlide slideB = ppt.createSlide();
+        HSLFSlide slideC = ppt.createSlide();
 
         // link to a URL
-        TextBox textBox1 = new TextBox();
+        HSLFTextBox textBox1 = new HSLFTextBox();
         textBox1.setText("Apache POI");
         textBox1.setAnchor(new Rectangle(100, 100, 200, 50));
 
@@ -54,7 +54,7 @@ public final class CreateHyperlink {
         slideA.addShape(textBox1);
 
         // link to another slide
-        TextBox textBox2 = new TextBox();
+        HSLFTextBox textBox2 = new HSLFTextBox();
         textBox2.setText("Go to slide #3");
         textBox2.setAnchor(new Rectangle(100, 300, 200, 50));
 
index e0f58741e152892d1caf9f4f824035490bec41da..d4028d7c6741e85e856b3ddadffdbd9332247108 100644 (file)
@@ -41,11 +41,11 @@ public final class DataExtraction {
         }
 
         FileInputStream is = new FileInputStream(args[0]);
-        SlideShow ppt = new SlideShow(is);
+        HSLFSlideShow ppt = new HSLFSlideShow(is);
         is.close();
 
         //extract all sound files embedded in this presentation
-        SoundData[] sound = ppt.getSoundData();
+        HSLFSoundData[] sound = ppt.getSoundData();
         for (int i = 0; i < sound.length; i++) {
             String type = sound[i].getSoundType();  //*.wav
             String name = sound[i].getSoundName();  //typically file name
@@ -58,13 +58,13 @@ public final class DataExtraction {
         }
 
         //extract embedded OLE documents
-        Slide[] slide = ppt.getSlides();
+        HSLFSlide[] slide = ppt.getSlides();
         for (int i = 0; i < slide.length; i++) {
             HSLFShape[] shape = slide[i].getShapes();
             for (int j = 0; j < shape.length; j++) {
                 if (shape[j] instanceof OLEShape) {
                     OLEShape ole = (OLEShape) shape[j];
-                    ObjectData data = ole.getObjectData();
+                    HSLFObjectData data = ole.getObjectData();
                     String name = ole.getInstanceName();
                     if ("Worksheet".equals(name)) {
 
@@ -104,29 +104,29 @@ public final class DataExtraction {
         for (int i = 0; i < slide.length; i++) {
             HSLFShape[] shape = slide[i].getShapes();
             for (int j = 0; j < shape.length; j++) {
-                if (shape[j] instanceof Picture) {
-                    Picture p = (Picture) shape[j];
-                    PictureData data = p.getPictureData();
+                if (shape[j] instanceof HSLFPictureShape) {
+                    HSLFPictureShape p = (HSLFPictureShape) shape[j];
+                    HSLFPictureData data = p.getPictureData();
                     String name = p.getPictureName();
                     int type = data.getType();
                     String ext;
                     switch (type) {
-                        case Picture.JPEG:
+                        case HSLFPictureShape.JPEG:
                             ext = ".jpg";
                             break;
-                        case Picture.PNG:
+                        case HSLFPictureShape.PNG:
                             ext = ".png";
                             break;
-                        case Picture.WMF:
+                        case HSLFPictureShape.WMF:
                             ext = ".wmf";
                             break;
-                        case Picture.EMF:
+                        case HSLFPictureShape.EMF:
                             ext = ".emf";
                             break;
-                        case Picture.PICT:
+                        case HSLFPictureShape.PICT:
                             ext = ".pict";
                             break;
-                        case Picture.DIB:
+                        case HSLFPictureShape.DIB:
                             ext = ".dib";
                             break;
                         default:
index a2f14ac41b44cd4759a7b0d1f83471163eff5234..4e678ba64d5ba332bb4c61d0433c94881f71b7ec 100644 (file)
@@ -17,7 +17,7 @@
 
 package org.apache.poi.hslf.examples;
 
-import org.apache.poi.hslf.usermodel.SlideShow;
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;
 import org.apache.poi.hslf.model.*;
 
 import java.awt.*;
@@ -34,7 +34,7 @@ public final class Graphics2DDemo {
      * A simple bar chart demo
      */
     public static void main(String[] args) throws Exception {
-        SlideShow ppt = new SlideShow();
+        HSLFSlideShow ppt = new HSLFSlideShow();
 
         //bar chart data. The first value is the bar color, the second is the width
         Object[] def = new Object[]{
@@ -44,7 +44,7 @@ public final class Graphics2DDemo {
             Color.red, new Integer(80),
         };
 
-        Slide slide = ppt.createSlide();
+        HSLFSlide slide = ppt.createSlide();
 
         HSLFGroupShape group = new HSLFGroupShape();
         //define position of the drawing in the slide
index 3ebcecc90f7de05b07ab4a71d85cfa842f2ab68f..068d6753473394b54c4e8be8448d81c62aca92d1 100644 (file)
@@ -16,9 +16,9 @@
 ==================================================================== */
 package org.apache.poi.hslf.examples;
 
-import org.apache.poi.hslf.usermodel.SlideShow;
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;
 import org.apache.poi.hslf.model.HeadersFooters;
-import org.apache.poi.hslf.model.Slide;
+import org.apache.poi.hslf.model.HSLFSlide;
 
 import java.io.FileOutputStream;
 
@@ -29,7 +29,7 @@ import java.io.FileOutputStream;
  */
 public class HeadersFootersDemo {
     public static void main(String[] args) throws Exception {
-        SlideShow ppt = new SlideShow();
+        HSLFSlideShow ppt = new HSLFSlideShow();
         
         HeadersFooters slideHeaders = ppt.getSlideHeadersFooters();
         slideHeaders.setFootersText("Created by POI-HSLF");
@@ -40,7 +40,7 @@ public class HeadersFootersDemo {
         notesHeaders.setFootersText("My notes footers");
         notesHeaders.setHeaderText("My notes header");
 
-        Slide slide = ppt.createSlide();
+        HSLFSlide slide = ppt.createSlide();
 
         FileOutputStream out = new FileOutputStream("headers_footers.ppt");
         ppt.write(out);
index a90b6a1df07236d18f400ced508775274c60db2b..89dcb636afc6f039dffce049bd24cf2da378d743 100644 (file)
@@ -17,9 +17,9 @@
 
 package org.apache.poi.hslf.examples;
 
-import org.apache.poi.hslf.usermodel.SlideShow;
-import org.apache.poi.hslf.model.Slide;
-import org.apache.poi.hslf.model.TextRun;
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;
+import org.apache.poi.hslf.model.HSLFSlide;
+import org.apache.poi.hslf.model.HSLFTextParagraph;
 import org.apache.poi.hslf.model.Hyperlink;
 import org.apache.poi.hslf.model.HSLFShape;
 
@@ -35,16 +35,16 @@ public final class Hyperlinks {
     public static void main(String[] args) throws Exception {
         for (int i = 0; i < args.length; i++) {
             FileInputStream is = new FileInputStream(args[i]);
-            SlideShow ppt = new SlideShow(is);
+            HSLFSlideShow ppt = new HSLFSlideShow(is);
             is.close();
 
-            Slide[] slide = ppt.getSlides();
+            HSLFSlide[] slide = ppt.getSlides();
             for (int j = 0; j < slide.length; j++) {
                 System.out.println("slide " + slide[j].getSlideNumber());
 
                 //read hyperlinks from the slide's text runs
                 System.out.println("reading hyperlinks from the text runs");
-                TextRun[] txt = slide[j].getTextRuns();
+                HSLFTextParagraph[] txt = slide[j].getTextRuns();
                 for (int k = 0; k < txt.length; k++) {
                     String text = txt[k].getText();
                     Hyperlink[] links = txt[k].getHyperlinks();
index 99037d3264d95d16e4d0bf0995e32a707cd3cd5a..373f942844914f37f6c8e229e93a546494f5e224 100644 (file)
@@ -62,14 +62,14 @@ public final class PPT2PNG {
         }
 
         FileInputStream is = new FileInputStream(file);
-        SlideShow ppt = new SlideShow(is);
+        HSLFSlideShow ppt = new HSLFSlideShow(is);
         is.close();
 
         Dimension pgsize = ppt.getPageSize();
         int width = (int)(pgsize.width*scale);
         int height = (int)(pgsize.height*scale);
 
-        Slide[] slide = ppt.getSlides();
+        HSLFSlide[] slide = ppt.getSlides();
         for (int i = 0; i < slide.length; i++) {
             if (slidenum != -1 && slidenum != (i+1)) continue;
 
index 571c86a4258c4bcc72a3a75dc8405ebe91a313dc..765ba3ef4953d41fa0fa0b7fad85ec5f480c3f27 100644 (file)
@@ -32,10 +32,10 @@ import java.util.List;
  */
 public class SoundFinder {
     public static void main(String[] args) throws Exception {
-        SlideShow ppt = new SlideShow(new FileInputStream(args[0]));
-        SoundData[] sounds = ppt.getSoundData();
+        HSLFSlideShow ppt = new HSLFSlideShow(new FileInputStream(args[0]));
+        HSLFSoundData[] sounds = ppt.getSoundData();
 
-        Slide[] slide = ppt.getSlides();
+        HSLFSlide[] slide = ppt.getSlides();
         for (int i = 0; i < slide.length; i++) {
             HSLFShape[] shape = slide[i].getShapes();
             for (int j = 0; j < shape.length; j++) {
index 44935c05ac9c989f53a43adca2798a12222d9e93..5dd1edea06e8277f1641ff02994a041daa9fef27 100644 (file)
@@ -17,8 +17,8 @@
 
 package org.apache.poi.hslf.examples;
 
-import org.apache.poi.hslf.usermodel.SlideShow;
-import org.apache.poi.hslf.usermodel.RichTextRun;
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;
+import org.apache.poi.hslf.usermodel.HSLFTextRun;
 import org.apache.poi.hslf.model.*;
 
 import java.awt.*;
@@ -43,9 +43,9 @@ public final class TableDemo {
             {"Total PO History Spend", "$10,172,038"}
         };
 
-        SlideShow ppt = new SlideShow();
+        HSLFSlideShow ppt = new HSLFSlideShow();
 
-        Slide slide = ppt.createSlide();
+        HSLFSlide slide = ppt.createSlide();
 
         //six rows, two columns
         Table table1 = new Table(6, 2);
@@ -53,7 +53,7 @@ public final class TableDemo {
             for (int j = 0; j < txt1[i].length; j++) {
                 TableCell cell = table1.getCell(i, j);
                 cell.setText(txt1[i][j]);
-                RichTextRun rt = cell.getTextRun().getRichTextRuns()[0];
+                HSLFTextRun rt = cell.getTextParagraph().getRichTextRuns()[0];
                 rt.setFontName("Arial");
                 rt.setFontSize(10);
                 if(i == 0){
@@ -61,8 +61,8 @@ public final class TableDemo {
                 } else {
                     rt.setBold(true);
                 }
-                cell.setVerticalAlignment(TextBox.AnchorMiddle);
-                cell.setHorizontalAlignment(TextBox.AlignCenter);
+                cell.setVerticalAlignment(HSLFTextBox.AnchorMiddle);
+                cell.setHorizontalAlignment(HSLFTextBox.AlignCenter);
             }
         }
 
@@ -92,7 +92,7 @@ public final class TableDemo {
             for (int j = 0; j < txt2[i].length; j++) {
                 TableCell cell = table2.getCell(i, j);
                 cell.setText(txt2[i][j]);
-                RichTextRun rt = cell.getTextRun().getRichTextRuns()[0];
+                HSLFTextRun rt = cell.getTextParagraph().getRichTextRuns()[0];
                 rt.setFontSize(10);
                 rt.setFontName("Arial");
                 if(i == 0){
@@ -100,13 +100,13 @@ public final class TableDemo {
                     rt.setFontColor(Color.white);
                     rt.setBold(true);
                     rt.setFontSize(14);
-                    cell.setHorizontalAlignment(TextBox.AlignCenter);
+                    cell.setHorizontalAlignment(HSLFTextBox.AlignCenter);
                 } else {
                     rt.setBullet(true);
                     rt.setFontSize(12);
-                    cell.setHorizontalAlignment(TextBox.AlignLeft);
+                    cell.setHorizontalAlignment(HSLFTextBox.AlignLeft);
                 }
-                cell.setVerticalAlignment(TextBox.AnchorMiddle);
+                cell.setVerticalAlignment(HSLFTextBox.AnchorMiddle);
             }
         }
         table2.setColumnWidth(0, 300);
index bb6f19d0a522682fdb853b1e1d98c979ab375211..caf96a84c83e4553a9c2b7729cc401e79cbe9ab6 100644 (file)
@@ -21,8 +21,8 @@ import org.apache.poi.poifs.filesystem.DirectoryNode;
 import org.apache.poi.poifs.filesystem.Entry;\r
 import org.apache.poi.poifs.filesystem.POIFSFileSystem;\r
 import org.apache.poi.hwpf.HWPFDocument;\r
-import org.apache.poi.hslf.HSLFSlideShow;\r
-import org.apache.poi.hslf.usermodel.SlideShow;\r
+import org.apache.poi.hslf.model.HSLFSlideShowImpl;\r
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;\r
 \r
 import java.io.FileInputStream;\r
 import java.util.Iterator;\r
@@ -47,7 +47,7 @@ public class EmeddedObjects {
                 //System.out.println(entry.getName() + ": " + embeddedWordDocument.getRange().text());\r
             }  else if (oleName.equals("Presentation")) {\r
                 DirectoryNode dn = (DirectoryNode) obj.getDirectory();\r
-                SlideShow embeddedPowerPointDocument = new SlideShow(new HSLFSlideShow(dn));\r
+                HSLFSlideShow embeddedPowerPointDocument = new HSLFSlideShow(new HSLFSlideShowImpl(dn));\r
                 //System.out.println(entry.getName() + ": " + embeddedPowerPointDocument.getSlides().length);\r
             } else {\r
                 if(obj.hasDirectoryEntry()){\r
index b7e08fc6f181b256504347b65f6e0378dd2e0487..5437b5dea484c767ca9cdb4845c82652e1ac8dc0 100644 (file)
@@ -76,7 +76,6 @@ public final class DataExtraction {
         Dimension pageSize = ppt.getPageSize();  // size of the canvas in points\r
         for(XSLFSlide slide : ppt.getSlides()) {\r
             for(XSLFShape shape : slide){\r
-                Rectangle2D anchor = shape.getAnchor();  // position on the canvas\r
                 if(shape instanceof XSLFTextShape) {\r
                     XSLFTextShape txShape = (XSLFTextShape)shape;\r
                     System.out.println(txShape.getText());\r
index 2e810e1d45d3a42c4576799a8ec0d690e73634c8..926bc0d4bf2b7a6015eda4f755988c99e4b1e471 100644 (file)
 \r
 package org.apache.poi.xslf.usermodel;\r
 \r
-import java.awt.*;\r
+import java.awt.Color;\r
 import java.awt.geom.Rectangle2D;\r
 import java.io.FileOutputStream;\r
 import java.io.IOException;\r
 \r
-import org.apache.poi.sl.usermodel.TextAlign;\r
+import org.apache.poi.sl.usermodel.TextParagraph.TextAlign;\r
 \r
 /**\r
  * PPTX Tables\r
index b50e9594607b55fca69c48e362d36ddf9eda29bc..ea3a5b28e10d666a48e7db6474badb6770212b3e 100644 (file)
@@ -20,7 +20,7 @@ import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.apache.poi.openxml4j.opc.OPCPackage;\r
 import org.apache.poi.openxml4j.opc.PackagePart;\r
 import org.apache.poi.xwpf.usermodel.XWPFDocument;\r
-import org.apache.poi.hslf.HSLFSlideShow;\r
+import org.apache.poi.hslf.model.HSLFSlideShowImpl;\r
 import org.apache.poi.hwpf.HWPFDocument;\r
 import org.apache.poi.xslf.XSLFSlideShow;\r
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;\r
@@ -54,7 +54,7 @@ public class EmbeddedObjects {
             }\r
             // PowerPoint Document - binary file format\r
             else if (contentType.equals("application/vnd.ms-powerpoint")) {\r
-                HSLFSlideShow slideShow = new HSLFSlideShow(pPart.getInputStream());\r
+                HSLFSlideShowImpl slideShow = new HSLFSlideShowImpl(pPart.getInputStream());\r
             }\r
             // PowerPoint Document - OpenXML file format\r
             else if (contentType.equals("application/vnd.openxmlformats-officedocument.presentationml.presentation")) {\r
index 51e54f6eb2e64b66abd084f8409c653d06d42713..6b2ee5f09e39d6cf80934d96e79079c4e108f41e 100644 (file)
@@ -22,14 +22,14 @@ import static org.junit.Assert.assertTrue;
 import java.io.FileInputStream;
 import java.io.InputStream;
 
-import org.apache.poi.hslf.HSLFSlideShow;
+import org.apache.poi.hslf.model.HSLFSlideShowImpl;
 import org.apache.poi.hslf.record.Record;
 import org.junit.Test;
 
 public class HSLFFileHandler extends POIFSFileHandler {
        @Override
        public void handleFile(InputStream stream) throws Exception {
-               HSLFSlideShow slide = new HSLFSlideShow(stream);
+               HSLFSlideShowImpl slide = new HSLFSlideShowImpl(stream);
                assertNotNull(slide.getCurrentUserAtom());
                assertNotNull(slide.getEmbeddedObjects());
                assertNotNull(slide.getUnderlyingBytes());
index 57e96f8ee569a6a82c1d20dd67b6928aaf72d5b5..9a58a5128a6544009d97a06881b136a9e4e205a1 100644 (file)
 \r
 package org.apache.poi.xslf.usermodel;\r
 \r
-import java.awt.Graphics2D;\r
-import java.awt.geom.AffineTransform;\r
 import java.awt.geom.Rectangle2D;\r
 import java.util.Iterator;\r
 import java.util.List;\r
 import java.util.regex.Pattern;\r
 \r
-import org.apache.poi.openxml4j.opc.PackagePart;\r
-import org.apache.poi.openxml4j.opc.PackageRelationship;\r
-import org.apache.poi.openxml4j.opc.TargetMode;\r
-import org.apache.poi.sl.usermodel.*;\r
+import org.apache.poi.openxml4j.opc.*;\r
+import org.apache.poi.sl.usermodel.PlaceableShape;\r
+import org.apache.poi.sl.usermodel.ShapeGroup;\r
 import org.apache.poi.util.Beta;\r
 import org.apache.poi.util.Units;\r
 import org.apache.xmlbeans.XmlObject;\r
 import org.openxmlformats.schemas.drawingml.x2006.main.*;\r
-import org.openxmlformats.schemas.presentationml.x2006.main.CTConnector;\r
-import org.openxmlformats.schemas.presentationml.x2006.main.CTGroupShape;\r
-import org.openxmlformats.schemas.presentationml.x2006.main.CTGroupShapeNonVisual;\r
-import org.openxmlformats.schemas.presentationml.x2006.main.CTShape;\r
+import org.openxmlformats.schemas.presentationml.x2006.main.*;\r
 \r
 /**\r
  * Represents a group shape that consists of many shapes grouped together.\r
@@ -45,7 +39,7 @@ import org.openxmlformats.schemas.presentationml.x2006.main.CTShape;
  * @author Yegor Kozlov\r
  */\r
 @Beta\r
-public class XSLFGroupShape extends XSLFShape implements XSLFShapeContainer, PlaceableShape {\r
+public class XSLFGroupShape extends XSLFShape implements XSLFShapeContainer, ShapeGroup<XSLFShape> {\r
     private final List<XSLFShape> _shapes;\r
     private final CTGroupShapeProperties _grpSpPr;\r
     private XSLFDrawing _drawing;\r
index 62f9cc4ad6a499390adacfb547b48e61fd1286d3..a953e2013e5865faad825158977826d5d84bf3f4 100644 (file)
 package org.apache.poi.xslf.usermodel;
 
 import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
 
 import org.apache.poi.POIXMLDocumentPart;
 import org.apache.poi.openxml4j.opc.PackagePart;
 import org.apache.poi.openxml4j.opc.PackageRelationship;
 import org.apache.poi.sl.usermodel.Notes;
-import org.apache.poi.sl.usermodel.TextRun;
 import org.apache.poi.util.Beta;
 import org.apache.xmlbeans.XmlException;
-import org.openxmlformats.schemas.presentationml.x2006.main.CTCommonSlideData;
-import org.openxmlformats.schemas.presentationml.x2006.main.CTNotesSlide;
-import org.openxmlformats.schemas.presentationml.x2006.main.NotesDocument;
+import org.openxmlformats.schemas.presentationml.x2006.main.*;
 
 @Beta
-public final class XSLFNotes extends XSLFSheet implements Notes<XSLFShape> {
+public final class XSLFNotes extends XSLFSheet implements Notes<XSLFShape,XMLSlideShow> {
    private CTNotesSlide _notes;
 
     /**
@@ -91,19 +90,15 @@ public final class XSLFNotes extends XSLFSheet implements Notes<XSLFShape> {
         return null;
     }
 
-    public TextRun getTextRun() {
+    @Override
+    public List<XSLFTextParagraph> getTextParagraphs() {
+        List<XSLFTextParagraph> tp = new ArrayList<XSLFTextParagraph>();
         for (XSLFShape sh : super.getShapes()) {
             if (sh instanceof XSLFTextShape) {
                 XSLFTextShape txt = (XSLFTextShape)sh;
-                for (XSLFTextParagraph p : txt.getTextParagraphs()) {
-                    for (XSLFTextRun r : p.getTextRuns()) {
-                        return r;
-                    }
-                }
+                tp.addAll(txt.getTextParagraphs());
             }
         }
-        return null;
+        return tp;
     }
-    
-    
 }
index c5de53767700e9be89a0cf78995a020af7d666c2..aeea5cc521d85ce71e0e02803bedf1f1f7fae069 100644 (file)
@@ -47,7 +47,7 @@ import org.openxmlformats.schemas.presentationml.x2006.main.NotesMasterDocument;
  * @author Yegor Kozlov
 */
 @Beta
- public class XSLFNotesMaster extends XSLFSheet implements MasterSheet<XSLFShape> {
+ public class XSLFNotesMaster extends XSLFSheet implements MasterSheet<XSLFShape,XMLSlideShow> {
         private CTNotesMaster _slide;
      private XSLFTheme _theme;
 
@@ -94,7 +94,7 @@ import org.openxmlformats.schemas.presentationml.x2006.main.NotesMasterDocument;
     }
 
     @Override
-    public MasterSheet getMasterSheet() {
+    public MasterSheet<XSLFShape,XMLSlideShow> getMasterSheet() {
         return null;
     }
     
index d0f75e05352c63e10a709caa0e47ab3f6c77817e..b815e00d426266e98fa4563a956bcd59035989f9 100644 (file)
@@ -19,7 +19,6 @@
 \r
 package org.apache.poi.xslf.usermodel;\r
 \r
-import java.awt.Graphics2D;\r
 import java.awt.Insets;\r
 import java.awt.geom.Rectangle2D;\r
 import java.awt.image.BufferedImage;\r
@@ -32,27 +31,18 @@ import javax.xml.namespace.QName;
 import org.apache.poi.POIXMLException;\r
 import org.apache.poi.openxml4j.opc.PackagePart;\r
 import org.apache.poi.openxml4j.opc.PackageRelationship;\r
+import org.apache.poi.sl.usermodel.PictureShape;\r
 import org.apache.poi.util.Beta;\r
 import org.apache.xmlbeans.XmlCursor;\r
 import org.apache.xmlbeans.XmlObject;\r
-import org.openxmlformats.schemas.drawingml.x2006.main.CTBlip;\r
-import org.openxmlformats.schemas.drawingml.x2006.main.CTBlipFillProperties;\r
-import org.openxmlformats.schemas.drawingml.x2006.main.CTNonVisualDrawingProps;\r
-import org.openxmlformats.schemas.drawingml.x2006.main.CTOfficeArtExtension;\r
-import org.openxmlformats.schemas.drawingml.x2006.main.CTOfficeArtExtensionList;\r
-import org.openxmlformats.schemas.drawingml.x2006.main.CTPresetGeometry2D;\r
-import org.openxmlformats.schemas.drawingml.x2006.main.CTRelativeRect;\r
-import org.openxmlformats.schemas.drawingml.x2006.main.CTShapeProperties;\r
-import org.openxmlformats.schemas.drawingml.x2006.main.STShapeType;\r
-import org.openxmlformats.schemas.presentationml.x2006.main.CTApplicationNonVisualDrawingProps;\r
-import org.openxmlformats.schemas.presentationml.x2006.main.CTPicture;\r
-import org.openxmlformats.schemas.presentationml.x2006.main.CTPictureNonVisual;\r
+import org.openxmlformats.schemas.drawingml.x2006.main.*;\r
+import org.openxmlformats.schemas.presentationml.x2006.main.*;\r
 \r
 /**\r
  * Represents a picture shape\r
  */\r
 @Beta\r
-public class XSLFPictureShape extends XSLFSimpleShape {\r
+public class XSLFPictureShape extends XSLFSimpleShape implements PictureShape {\r
     private XSLFPictureData _data;\r
 \r
     /*package*/ XSLFPictureShape(CTPicture shape, XSLFSheet sheet) {\r
index 9004a6be5f8dc83468cf305622e6617e8b7185dc..0b0e4f0aadea3d42e5a65f6d9903dfd6bffd31e2 100644 (file)
@@ -88,7 +88,7 @@ public class XSLFShadow extends XSLFShape implements Shadow {
      */\r
     public Color getFillColor() {\r
         SolidPaint ps = getFillStyle();\r
-        if (ps == TRANSPARENT_PAINT) return null;\r
+        if (ps == PaintStyle.TRANSPARENT_PAINT) return null;\r
         Color col = DrawPaint.applyColorTransform(ps.getSolidColor());\r
         return col;\r
     }\r
@@ -97,7 +97,7 @@ public class XSLFShadow extends XSLFShape implements Shadow {
     public SolidPaint getFillStyle() {\r
         XSLFTheme theme = getSheet().getTheme();\r
         CTOuterShadowEffect ct = (CTOuterShadowEffect)getXmlObject();\r
-        if(ct == null) return TRANSPARENT_PAINT;\r
+        if(ct == null) return PaintStyle.TRANSPARENT_PAINT;\r
             \r
         CTSchemeColor phClr = ct.getSchemeClr();\r
         final XSLFColor xc = new XSLFColor(ct, theme, phClr);\r
index 5634838302b4bd5e98e37048d649e7e60b3d6889..0f2ba258340f5e9425c83b8a5805f3a57a38fd59 100644 (file)
@@ -19,7 +19,6 @@
 \r
 package org.apache.poi.xslf.usermodel;\r
 \r
-import java.awt.Color;\r
 import java.io.IOException;\r
 import java.io.InputStream;\r
 import java.util.Arrays;\r
@@ -28,7 +27,6 @@ import java.util.Comparator;
 import org.apache.poi.openxml4j.exceptions.InvalidFormatException;\r
 import org.apache.poi.openxml4j.opc.PackagePart;\r
 import org.apache.poi.openxml4j.opc.PackageRelationship;\r
-import org.apache.poi.sl.draw.DrawPaint;\r
 import org.apache.poi.sl.usermodel.*;\r
 import org.apache.poi.sl.usermodel.PaintStyle.GradientPaint;\r
 import org.apache.poi.sl.usermodel.PaintStyle.SolidPaint;\r
@@ -56,19 +54,6 @@ public abstract class XSLFShape implements Shape {
     private CTNonVisualDrawingProps _nvPr;\r
     private CTPlaceholder _ph;\r
 \r
-    protected static final SolidPaint TRANSPARENT_PAINT = new SolidPaint() {\r
-        public ColorStyle getSolidColor() {\r
-            return new ColorStyle(){\r
-                public Color getColor() { return DrawPaint.NO_PAINT; }\r
-                public int getAlpha() { return -1; }\r
-                public int getLumOff() { return -1; }\r
-                public int getLumMod() { return -1; }\r
-                public int getShade() { return -1; }\r
-                public int getTint() { return -1; }\r
-            };\r
-        }\r
-    };\r
-    \r
     protected XSLFShape(XmlObject shape, XSLFSheet sheet) {\r
         _shape = shape;\r
         _sheet = sheet;\r
@@ -146,7 +131,7 @@ public abstract class XSLFShape implements Shape {
                 try {\r
                     pr = shape.getSpPr();\r
                     if (((CTShapeProperties)pr).isSetNoFill()) {\r
-                        setValue(TRANSPARENT_PAINT);\r
+                        setValue(PaintStyle.TRANSPARENT_PAINT);\r
                         return true;\r
                     }                    \r
                 } catch (IllegalStateException e) {}\r
@@ -158,7 +143,7 @@ public abstract class XSLFShape implements Shape {
                     pr = shape.getGrpSpPr();\r
                 }\r
                 if (pr == null) {\r
-                    setValue(TRANSPARENT_PAINT);\r
+                    setValue(PaintStyle.TRANSPARENT_PAINT);\r
                     return true;\r
                 }\r
                 \r
@@ -190,7 +175,7 @@ public abstract class XSLFShape implements Shape {
             fillRef = getBgRef();\r
         }\r
         if (fillRef == null) {\r
-            return TRANSPARENT_PAINT;\r
+            return PaintStyle.TRANSPARENT_PAINT;\r
         }\r
 \r
         // The idx attribute refers to the index of a fill style or\r
@@ -213,21 +198,21 @@ public abstract class XSLFShape implements Shape {
             paint = selectPaint(fillProps, phClr, sheet.getPackagePart());\r
         }\r
 \r
-        return paint == null ? TRANSPARENT_PAINT : paint;\r
+        return paint == null ? PaintStyle.TRANSPARENT_PAINT : paint;\r
     }\r
 \r
     protected CTBackgroundProperties getBgPr() {\r
-        String xquery = "declare namespace p='http://schemas.openxmlformats.org/presentationml/2006/main' .//*/p:bgPr";\r
+        String xquery = "declare namespace p='http://schemas.openxmlformats.org/presentationml/2006/main' p:bgPr";\r
         return selectProperty(CTBackgroundProperties.class, xquery);\r
     }\r
     \r
     protected CTStyleMatrixReference getBgRef() {\r
-        String xquery = "declare namespace p='http://schemas.openxmlformats.org/presentationml/2006/main' .//*/p:bgRef";\r
+        String xquery = "declare namespace p='http://schemas.openxmlformats.org/presentationml/2006/main' p:bgRef";\r
         return selectProperty(CTStyleMatrixReference.class, xquery);\r
     }\r
     \r
     protected CTGroupShapeProperties getGrpSpPr() {\r
-        String xquery = "declare namespace p='http://schemas.openxmlformats.org/presentationml/2006/main' .//*/p:grpSpPr";\r
+        String xquery = "declare namespace p='http://schemas.openxmlformats.org/presentationml/2006/main' p:grpSpPr";\r
         return selectProperty(CTGroupShapeProperties.class, xquery);\r
     }\r
     \r
@@ -241,7 +226,7 @@ public abstract class XSLFShape implements Shape {
 \r
     protected CTShapeProperties getSpPr() {\r
         if (_spPr == null) {\r
-            String xquery = "declare namespace p='http://schemas.openxmlformats.org/presentationml/2006/main' .//*/p:spPr";\r
+            String xquery = "declare namespace p='http://schemas.openxmlformats.org/presentationml/2006/main' p:spPr";\r
             _spPr = selectProperty(CTShapeProperties.class, xquery);\r
         }\r
         if (_spPr == null) {\r
@@ -252,7 +237,7 @@ public abstract class XSLFShape implements Shape {
 \r
     protected CTShapeStyle getSpStyle() {\r
         if (_spStyle == null) {\r
-            String xquery = "declare namespace p='http://schemas.openxmlformats.org/presentationml/2006/main' .//*/p:style";\r
+            String xquery = "declare namespace p='http://schemas.openxmlformats.org/presentationml/2006/main' p:style";\r
             _spStyle = selectProperty(CTShapeStyle.class, xquery);\r
         }\r
         return _spStyle;\r
@@ -348,7 +333,7 @@ public abstract class XSLFShape implements Shape {
             paint = selectPaint(obj, phClr, pp);\r
             if(paint != null) break;\r
         }\r
-        return paint == null ? TRANSPARENT_PAINT : paint;\r
+        return paint == null ? PaintStyle.TRANSPARENT_PAINT : paint;\r
     }    \r
     \r
     /**\r
@@ -373,7 +358,7 @@ public abstract class XSLFShape implements Shape {
      */\r
     protected PaintStyle selectPaint(XmlObject obj, final CTSchemeColor phClr, final PackagePart parentPart) {\r
         if (obj instanceof CTNoFillProperties) {\r
-            return TRANSPARENT_PAINT;\r
+            return PaintStyle.TRANSPARENT_PAINT;\r
         } else if (obj instanceof CTSolidColorFillProperties) {\r
             return selectPaint((CTSolidColorFillProperties)obj, phClr, parentPart);\r
         } else if (obj instanceof CTBlipFillProperties) {\r
index 163d8a65aaa148186b73de7610322e9b54ee59b0..38dea1b462f9b2998e871ebf8d02a5ea86e1f2d8 100644 (file)
@@ -37,7 +37,7 @@ import org.openxmlformats.schemas.officeDocument.x2006.relationships.STRelations
 import org.openxmlformats.schemas.presentationml.x2006.main.*;
 
 @Beta
-public abstract class XSLFSheet extends POIXMLDocumentPart implements XSLFShapeContainer, Sheet<XSLFShape> {
+public abstract class XSLFSheet extends POIXMLDocumentPart implements XSLFShapeContainer, Sheet<XSLFShape, XMLSlideShow> {
     private XSLFCommonSlideData _commonSlideData;
     private XSLFDrawing _drawing;
     private List<XSLFShape> _shapes;
@@ -516,25 +516,26 @@ public abstract class XSLFSheet extends POIXMLDocumentPart implements XSLFShapeC
      * Import a package part into this sheet.
      */
     PackagePart importPart(PackageRelationship srcRel, PackagePart srcPafrt) {
-
-        OPCPackage pkg = getPackagePart().getPackage();
-        if(!pkg.containPart(srcPafrt.getPartName())){
-            PackageRelationship rel = getPackagePart().addRelationship(
-                    srcPafrt.getPartName(), TargetMode.INTERNAL, srcRel.getRelationshipType());
-
-            PackagePart part = pkg.createPart(srcPafrt.getPartName(), srcPafrt.getContentType());
-            OutputStream out = part.getOutputStream();
-            try {
-                InputStream is = srcPafrt.getInputStream();
-                IOUtils.copy(is, out);
-                out.close();
-            } catch (IOException e){
-                throw new POIXMLException(e);
-            }
-            return part;
-        }  else {
+        PackagePart destPP = getPackagePart();
+        PackagePartName srcPPName = srcPafrt.getPartName();
+        
+        OPCPackage pkg = destPP.getPackage();
+        if(pkg.containPart(srcPPName)){
             // already exists
-            return pkg.getPart(srcPafrt.getPartName());
+            return pkg.getPart(srcPPName);
+        }            
+            
+        destPP.addRelationship(srcPPName, TargetMode.INTERNAL, srcRel.getRelationshipType());
+
+        PackagePart part = pkg.createPart(srcPPName, srcPafrt.getContentType());
+        OutputStream out = part.getOutputStream();
+        try {
+            InputStream is = srcPafrt.getInputStream();
+            IOUtils.copy(is, out);
+            out.close();
+        } catch (IOException e){
+            throw new POIXMLException(e);
         }
+        return part;
     }
 }
\ No newline at end of file
index ffe0fc823d0ccc433dd6641294d02535d1979718..fb971806056a3964e3f49fbabad354c09e7ceca5 100644 (file)
 \r
 package org.apache.poi.xslf.usermodel;\r
 \r
+import static org.apache.poi.sl.usermodel.PaintStyle.TRANSPARENT_PAINT;\r
+\r
 import java.awt.Color;\r
 import java.awt.geom.Rectangle2D;\r
 \r
 import javax.xml.stream.XMLStreamException;\r
 import javax.xml.stream.XMLStreamReader;\r
 \r
-import org.apache.poi.sl.draw.DrawPaint;\r
 import org.apache.poi.sl.draw.geom.*;\r
 import org.apache.poi.sl.usermodel.*;\r
 import org.apache.poi.sl.usermodel.LineDecoration.DecorationShape;\r
 import org.apache.poi.sl.usermodel.LineDecoration.DecorationSize;\r
 import org.apache.poi.sl.usermodel.PaintStyle.SolidPaint;\r
 import org.apache.poi.sl.usermodel.StrokeStyle.LineCap;\r
+import org.apache.poi.sl.usermodel.StrokeStyle.LineCompound;\r
 import org.apache.poi.sl.usermodel.StrokeStyle.LineDash;\r
 import org.apache.poi.util.Beta;\r
 import org.apache.poi.util.Units;\r
@@ -208,8 +210,7 @@ public abstract class XSLFSimpleShape extends XSLFShape implements SimpleShape {
         PaintStyle ps = getLinePaint();\r
         if (ps == null || ps == TRANSPARENT_PAINT) return null;\r
         if (ps instanceof SolidPaint) {\r
-            Color col = ((SolidPaint)ps).getSolidColor().getColor();\r
-            return (col == DrawPaint.NO_PAINT) ? null : col;\r
+            return ((SolidPaint)ps).getSolidColor().getColor();\r
         }\r
         return null;\r
     }\r
@@ -273,7 +274,6 @@ public abstract class XSLFSimpleShape extends XSLFShape implements SimpleShape {
     }\r
 \r
     /**\r
-     *\r
      * @return line width in points. <code>0</code> means no line.\r
      */\r
     public double getLineWidth() {\r
@@ -310,6 +310,54 @@ public abstract class XSLFSimpleShape extends XSLFShape implements SimpleShape {
         return lineWidth;\r
     }\r
 \r
+    /**\r
+     * @return the line compound\r
+     */\r
+    public LineCompound getLineCompound() {\r
+        PropertyFetcher<Integer> fetcher = new PropertyFetcher<Integer>() {\r
+            public boolean fetch(XSLFShape shape) {\r
+                CTShapeProperties spPr = shape.getSpPr();\r
+                CTLineProperties ln = spPr.getLn();\r
+                if (ln != null) {\r
+                    STCompoundLine.Enum stCmpd = ln.getCmpd();\r
+                    if (stCmpd != null) {\r
+                        setValue(stCmpd.intValue());\r
+                        return true;\r
+                    }\r
+                }\r
+                return false;\r
+            }\r
+        };\r
+        fetchShapeProperty(fetcher);\r
+\r
+        Integer cmpd = fetcher.getValue();\r
+        if (cmpd == null) {\r
+            CTLineProperties defaultLn = getDefaultLineProperties();\r
+            if (defaultLn != null) {\r
+                STCompoundLine.Enum stCmpd = defaultLn.getCmpd();\r
+                if (stCmpd != null) {\r
+                    cmpd = stCmpd.intValue();\r
+                }\r
+            }\r
+        }\r
+        \r
+        if (cmpd == null) return null;\r
+\r
+        switch (cmpd) {\r
+        default:\r
+        case STCompoundLine.INT_SNG:\r
+            return LineCompound.SINGLE;\r
+        case STCompoundLine.INT_DBL:\r
+            return LineCompound.DOUBLE;\r
+        case STCompoundLine.INT_THICK_THIN:\r
+            return LineCompound.THICK_THIN;\r
+        case STCompoundLine.INT_THIN_THICK:\r
+            return LineCompound.THIN_THICK;\r
+        case STCompoundLine.INT_TRI:\r
+            return LineCompound.TRIPLE;\r
+        }\r
+    }\r
+\r
     /**\r
      *\r
      * @param dash a preset line dashing scheme to stroke thr shape outline\r
@@ -453,8 +501,7 @@ public abstract class XSLFSimpleShape extends XSLFShape implements SimpleShape {
         PaintStyle ps = getFillPaint();\r
         if (ps == null || ps == TRANSPARENT_PAINT) return null;\r
         if (ps instanceof SolidPaint) {\r
-            Color col = ((SolidPaint)ps).getSolidColor().getColor();\r
-            return (col == DrawPaint.NO_PAINT) ? null : col;\r
+            return ((SolidPaint)ps).getSolidColor().getColor();\r
         }\r
         return null;\r
     }\r
@@ -769,6 +816,10 @@ public abstract class XSLFSimpleShape extends XSLFShape implements SimpleShape {
             public double getLineWidth() {\r
                 return XSLFSimpleShape.this.getLineWidth();\r
             }\r
+\r
+            public LineCompound getLineCompound() {\r
+                return XSLFSimpleShape.this.getLineCompound();\r
+            }\r
             \r
         };\r
     }\r
index 795daa30b523b5f67f1c51e60e65cedaeceb9c3b..ee62ee9d793a2487347d53a0ae8464228c86540c 100644 (file)
@@ -29,7 +29,7 @@ import org.openxmlformats.schemas.drawingml.x2006.main.*;
 import org.openxmlformats.schemas.presentationml.x2006.main.*;
 
 @Beta
-public final class XSLFSlide extends XSLFSheet implements Slide<XSLFShape> {
+public final class XSLFSlide extends XSLFSheet implements Slide<XSLFShape, XMLSlideShow> {
    private final CTSlide _slide;
    private XSLFSlideLayout _layout;
    private XSLFComments _comments;
@@ -245,7 +245,7 @@ public final class XSLFSlide extends XSLFSheet implements Slide<XSLFShape> {
         throw new UnsupportedOperationException();
     }
 
-    public void setNotes(Notes<XSLFShape> notes) {
+    public void setNotes(Notes<XSLFShape,XMLSlideShow> notes) {
         // TODO Auto-generated method stub
         
     }
index bd6c38ca462069ab8e750a70449a96705deecb53..65487bd45bdb3e91e5c8bcf1d2709185e7c24bf4 100644 (file)
@@ -31,7 +31,7 @@ import org.openxmlformats.schemas.presentationml.x2006.main.SldLayoutDocument;
 import java.io.IOException;
 
 @Beta
-public class XSLFSlideLayout extends XSLFSheet implements MasterSheet<XSLFShape> {
+public class XSLFSlideLayout extends XSLFSheet implements MasterSheet<XSLFShape, XMLSlideShow> {
     private CTSlideLayout _layout;
     private XSLFSlideMaster _master;
 
index 0b64306fd10a66a2e287ce9af9da870ff472c2a4..830a531a241c1847164789f4ee4a3fe4e3e4927c 100644 (file)
@@ -54,7 +54,7 @@ import java.util.Map;
  * @author Yegor Kozlov
 */
 @Beta
- public class XSLFSlideMaster extends XSLFSheet implements MasterSheet<XSLFShape> {
+ public class XSLFSlideMaster extends XSLFSheet implements MasterSheet<XSLFShape, XMLSlideShow> {
        private CTSlideMaster _slide;
     private Map<String, XSLFSlideLayout> _layouts;
     private XSLFTheme _theme;
@@ -83,7 +83,7 @@ import java.util.Map;
     }
 
     @Override
-    public MasterSheet getMasterSheet() {
+    public MasterSheet<XSLFShape, XMLSlideShow> getMasterSheet() {
         return null;
     }
 
index e3dad561b6f6424b5a9e365a2ec56c200057a7a8..5b7109059ff1bbd0d176f60d9d7dfcfb75af2281 100644 (file)
@@ -18,9 +18,10 @@ package org.apache.poi.xslf.usermodel;
 \r
 import junit.framework.TestCase;\r
 \r
-import org.apache.poi.sl.usermodel.ShapeType;\r
-import org.apache.poi.sl.usermodel.TextAlign;\r
-import org.apache.poi.sl.usermodel.VerticalAlignment;\r
+import org.apache.poi.sl.usermodel.*;\r
+import org.apache.poi.sl.usermodel.TextParagraph.TextAlign;\r
+import org.apache.poi.sl.usermodel.TextShape.TextAutofit;\r
+import org.apache.poi.sl.usermodel.TextShape.TextDirection;\r
 import org.apache.poi.util.Units;\r
 import org.openxmlformats.schemas.drawingml.x2006.main.STTextStrikeType;\r
 import org.openxmlformats.schemas.drawingml.x2006.main.STTextUnderlineType;\r
index ae7de8d5c06dd0d1c5a940ad9a41a5f62c5c3dbc..0dc9c4d6f7d2ab5e60ae99a1474ebf69c2725bc0 100644 (file)
 ==================================================================== */\r
 package org.apache.poi.xslf.usermodel;\r
 \r
+import java.awt.Color;\r
+import java.awt.Rectangle;\r
+\r
 import junit.framework.TestCase;\r
 \r
-import org.apache.poi.sl.usermodel.ShapeType;\r
+import org.apache.poi.sl.usermodel.LineDecoration.DecorationShape;\r
+import org.apache.poi.sl.usermodel.LineDecoration.DecorationSize;\r
+import org.apache.poi.sl.usermodel.*;\r
 import org.openxmlformats.schemas.drawingml.x2006.main.*;\r
 import org.openxmlformats.schemas.presentationml.x2006.main.CTConnector;\r
 \r
-import java.awt.*;\r
-\r
 /**\r
  * @author Yegor Kozlov\r
  */\r
@@ -40,70 +43,70 @@ public class TestXSLFConnectorShape extends TestCase {
         assertFalse(shape.getSpPr().getLn().isSetTailEnd());\r
 \r
         // line decorations\r
-        assertEquals(LineDecoration.NONE, shape.getLineHeadDecoration());\r
-        assertEquals(LineDecoration.NONE, shape.getLineTailDecoration());\r
+        assertEquals(DecorationShape.NONE, shape.getLineHeadDecoration());\r
+        assertEquals(DecorationShape.NONE, shape.getLineTailDecoration());\r
         shape.setLineHeadDecoration(null);\r
         shape.setLineTailDecoration(null);\r
-        assertEquals(LineDecoration.NONE, shape.getLineHeadDecoration());\r
-        assertEquals(LineDecoration.NONE, shape.getLineTailDecoration());\r
+        assertEquals(DecorationShape.NONE, shape.getLineHeadDecoration());\r
+        assertEquals(DecorationShape.NONE, shape.getLineTailDecoration());\r
         assertFalse(shape.getSpPr().getLn().getHeadEnd().isSetType());\r
         assertFalse(shape.getSpPr().getLn().getTailEnd().isSetType());\r
 \r
-        shape.setLineHeadDecoration(LineDecoration.ARROW);\r
-        shape.setLineTailDecoration(LineDecoration.DIAMOND);\r
-        assertEquals(LineDecoration.ARROW, shape.getLineHeadDecoration());\r
-        assertEquals(LineDecoration.DIAMOND, shape.getLineTailDecoration());\r
+        shape.setLineHeadDecoration(DecorationShape.ARROW);\r
+        shape.setLineTailDecoration(DecorationShape.DIAMOND);\r
+        assertEquals(DecorationShape.ARROW, shape.getLineHeadDecoration());\r
+        assertEquals(DecorationShape.DIAMOND, shape.getLineTailDecoration());\r
         assertEquals(STLineEndType.ARROW, shape.getSpPr().getLn().getHeadEnd().getType());\r
         assertEquals(STLineEndType.DIAMOND, shape.getSpPr().getLn().getTailEnd().getType());\r
 \r
-        shape.setLineHeadDecoration(LineDecoration.DIAMOND);\r
-        shape.setLineTailDecoration(LineDecoration.ARROW);\r
-        assertEquals(LineDecoration.DIAMOND, shape.getLineHeadDecoration());\r
-        assertEquals(LineDecoration.ARROW, shape.getLineTailDecoration());\r
+        shape.setLineHeadDecoration(DecorationShape.DIAMOND);\r
+        shape.setLineTailDecoration(DecorationShape.ARROW);\r
+        assertEquals(DecorationShape.DIAMOND, shape.getLineHeadDecoration());\r
+        assertEquals(DecorationShape.ARROW, shape.getLineTailDecoration());\r
         assertEquals(STLineEndType.DIAMOND, shape.getSpPr().getLn().getHeadEnd().getType());\r
         assertEquals(STLineEndType.ARROW, shape.getSpPr().getLn().getTailEnd().getType());\r
 \r
         // line end width\r
-        assertEquals(LineEndWidth.MEDIUM, shape.getLineHeadWidth());\r
-        assertEquals(LineEndWidth.MEDIUM, shape.getLineTailWidth());\r
+        assertEquals(DecorationSize.MEDIUM, shape.getLineHeadWidth());\r
+        assertEquals(DecorationSize.MEDIUM, shape.getLineTailWidth());\r
         shape.setLineHeadWidth(null);\r
         shape.setLineHeadWidth(null);\r
-        assertEquals(LineEndWidth.MEDIUM, shape.getLineHeadWidth());\r
-        assertEquals(LineEndWidth.MEDIUM, shape.getLineTailWidth());\r
+        assertEquals(DecorationSize.MEDIUM, shape.getLineHeadWidth());\r
+        assertEquals(DecorationSize.MEDIUM, shape.getLineTailWidth());\r
         assertFalse(shape.getSpPr().getLn().getHeadEnd().isSetW());\r
         assertFalse(shape.getSpPr().getLn().getTailEnd().isSetW());\r
-        shape.setLineHeadWidth(LineEndWidth.LARGE);\r
-        shape.setLineTailWidth(LineEndWidth.MEDIUM);\r
-        assertEquals(LineEndWidth.LARGE, shape.getLineHeadWidth());\r
-        assertEquals(LineEndWidth.MEDIUM, shape.getLineTailWidth());\r
+        shape.setLineHeadWidth(DecorationSize.LARGE);\r
+        shape.setLineTailWidth(DecorationSize.MEDIUM);\r
+        assertEquals(DecorationSize.LARGE, shape.getLineHeadWidth());\r
+        assertEquals(DecorationSize.MEDIUM, shape.getLineTailWidth());\r
         assertEquals(STLineEndWidth.LG, shape.getSpPr().getLn().getHeadEnd().getW());\r
         assertEquals(STLineEndWidth.MED, shape.getSpPr().getLn().getTailEnd().getW());\r
-        shape.setLineHeadWidth(LineEndWidth.MEDIUM);\r
-        shape.setLineTailWidth(LineEndWidth.LARGE);\r
-        assertEquals(LineEndWidth.MEDIUM, shape.getLineHeadWidth());\r
-        assertEquals(LineEndWidth.LARGE, shape.getLineTailWidth());\r
+        shape.setLineHeadWidth(DecorationSize.MEDIUM);\r
+        shape.setLineTailWidth(DecorationSize.LARGE);\r
+        assertEquals(DecorationSize.MEDIUM, shape.getLineHeadWidth());\r
+        assertEquals(DecorationSize.LARGE, shape.getLineTailWidth());\r
         assertEquals(STLineEndWidth.MED, shape.getSpPr().getLn().getHeadEnd().getW());\r
         assertEquals(STLineEndWidth.LG, shape.getSpPr().getLn().getTailEnd().getW());\r
 \r
         // line end length\r
-        assertEquals(LineEndLength.MEDIUM, shape.getLineHeadLength());\r
-        assertEquals(LineEndLength.MEDIUM, shape.getLineTailLength());\r
+        assertEquals(DecorationSize.MEDIUM, shape.getLineHeadLength());\r
+        assertEquals(DecorationSize.MEDIUM, shape.getLineTailLength());\r
         shape.setLineHeadLength(null);\r
         shape.setLineTailLength(null);\r
-        assertEquals(LineEndLength.MEDIUM, shape.getLineHeadLength());\r
-        assertEquals(LineEndLength.MEDIUM, shape.getLineTailLength());\r
+        assertEquals(DecorationSize.MEDIUM, shape.getLineHeadLength());\r
+        assertEquals(DecorationSize.MEDIUM, shape.getLineTailLength());\r
         assertFalse(shape.getSpPr().getLn().getHeadEnd().isSetLen());\r
         assertFalse(shape.getSpPr().getLn().getTailEnd().isSetLen());\r
-        shape.setLineHeadLength(LineEndLength.LARGE);\r
-        shape.setLineTailLength(LineEndLength.MEDIUM);\r
-        assertEquals(LineEndLength.LARGE, shape.getLineHeadLength());\r
-        assertEquals(LineEndLength.MEDIUM, shape.getLineTailLength());\r
+        shape.setLineHeadLength(DecorationSize.LARGE);\r
+        shape.setLineTailLength(DecorationSize.MEDIUM);\r
+        assertEquals(DecorationSize.LARGE, shape.getLineHeadLength());\r
+        assertEquals(DecorationSize.MEDIUM, shape.getLineTailLength());\r
         assertEquals(STLineEndLength.LG, shape.getSpPr().getLn().getHeadEnd().getLen());\r
         assertEquals(STLineEndLength.MED, shape.getSpPr().getLn().getTailEnd().getLen());\r
-        shape.setLineHeadLength(LineEndLength.MEDIUM);\r
-        shape.setLineTailLength(LineEndLength.LARGE);\r
-        assertEquals(LineEndLength.MEDIUM, shape.getLineHeadLength());\r
-        assertEquals(LineEndLength.LARGE, shape.getLineTailLength());\r
+        shape.setLineHeadLength(DecorationSize.MEDIUM);\r
+        shape.setLineTailLength(DecorationSize.LARGE);\r
+        assertEquals(DecorationSize.MEDIUM, shape.getLineHeadLength());\r
+        assertEquals(DecorationSize.LARGE, shape.getLineTailLength());\r
         assertEquals(STLineEndLength.MED, shape.getSpPr().getLn().getHeadEnd().getLen());\r
         assertEquals(STLineEndLength.LG, shape.getSpPr().getLn().getTailEnd().getLen());\r
 \r
index 2153ceb26f40979e594f75bb545007f2f889bb6a..b3a5fc211efc97429e7d02c9f51dd814accf4cde 100644 (file)
@@ -20,17 +20,11 @@ import java.awt.Color;
 \r
 import junit.framework.TestCase;\r
 \r
-import org.apache.poi.sl.usermodel.LineCap;\r
-import org.apache.poi.sl.usermodel.LineDash;\r
+import org.apache.poi.sl.usermodel.StrokeStyle.LineCap;\r
+import org.apache.poi.sl.usermodel.StrokeStyle.LineDash;\r
 import org.apache.poi.util.Units;\r
 import org.apache.poi.xslf.XSLFTestDataSamples;\r
-import org.openxmlformats.schemas.drawingml.x2006.main.CTEffectStyleItem;\r
-import org.openxmlformats.schemas.drawingml.x2006.main.CTEffectStyleList;\r
-import org.openxmlformats.schemas.drawingml.x2006.main.CTOuterShadowEffect;\r
-import org.openxmlformats.schemas.drawingml.x2006.main.CTSchemeColor;\r
-import org.openxmlformats.schemas.drawingml.x2006.main.CTStyleMatrix;\r
-import org.openxmlformats.schemas.drawingml.x2006.main.STLineCap;\r
-import org.openxmlformats.schemas.drawingml.x2006.main.STPresetLineDashVal;\r
+import org.openxmlformats.schemas.drawingml.x2006.main.*;\r
 \r
 /**\r
  * @author Yegor Kozlov\r
index 505703bcaa1ab548a9234ee576249eb62a6142c0..80a52fd2cc719dbef73e86d5be2fdbcb9c7741aa 100644 (file)
@@ -20,6 +20,7 @@ import junit.framework.TestCase;
 \r
 import org.apache.poi.sl.usermodel.VerticalAlignment;\r
 import org.apache.poi.xslf.XSLFTestDataSamples;\r
+import org.openxmlformats.schemas.drawingml.x2006.main.CTTableCell;\r
 import org.openxmlformats.schemas.presentationml.x2006.main.CTGraphicalObjectFrame;\r
 \r
 import java.awt.Color;\r
@@ -99,10 +100,11 @@ public class TestXSLFTable extends TestCase {
         XSLFTableCell cell0 = row0.addCell();\r
         assertNotNull(cell0.getXmlObject());\r
         // by default table cell has no borders\r
-        assertTrue(cell0.getXmlObject().getTcPr().getLnB().isSetNoFill());\r
-        assertTrue(cell0.getXmlObject().getTcPr().getLnT().isSetNoFill());\r
-        assertTrue(cell0.getXmlObject().getTcPr().getLnL().isSetNoFill());\r
-        assertTrue(cell0.getXmlObject().getTcPr().getLnR().isSetNoFill());\r
+        CTTableCell tc = (CTTableCell)cell0.getXmlObject();\r
+        assertTrue(tc.getTcPr().getLnB().isSetNoFill());\r
+        assertTrue(tc.getTcPr().getLnT().isSetNoFill());\r
+        assertTrue(tc.getTcPr().getLnL().isSetNoFill());\r
+        assertTrue(tc.getTcPr().getLnR().isSetNoFill());\r
 \r
         assertSame(cell0, row0.getCells().get(0));\r
         assertEquals(1, tbl.getNumberOfColumns());\r
index 45bc30286e62a9e218da46feb94370bde003d4c7..fb906ed3a10c06597a334b75b4a2864f73dd6970 100644 (file)
 ==================================================================== */\r
 package org.apache.poi.xslf.usermodel;\r
 \r
-import junit.framework.TestCase;\r
-\r
-import org.apache.poi.sl.draw.TextFragment;\r
-import org.apache.poi.sl.usermodel.TextAlign;\r
-import org.apache.poi.util.POILogFactory;\r
-import org.apache.poi.util.POILogger;\r
-import org.apache.poi.xslf.XSLFTestDataSamples;\r
+import static org.junit.Assert.*;\r
 \r
 import java.awt.*;\r
 import java.awt.geom.Rectangle2D;\r
 import java.awt.image.BufferedImage;\r
 import java.util.List;\r
 \r
+import org.apache.poi.sl.draw.DrawTextFragment;\r
+import org.apache.poi.sl.draw.DrawTextParagraph;\r
+import org.apache.poi.sl.usermodel.TextParagraph.TextAlign;\r
+import org.apache.poi.util.POILogFactory;\r
+import org.apache.poi.util.POILogger;\r
+import org.apache.poi.xslf.XSLFTestDataSamples;\r
+import org.junit.Test;\r
+\r
 /**\r
  * @author Yegor Kozlov\r
  */\r
-public class TestXSLFTextParagraph extends TestCase {\r
+public class TestXSLFTextParagraph {\r
     private static POILogger _logger = POILogFactory.getLogger(XSLFTextParagraph.class);\r
 \r
+    static class DrawTextParagraphProxy extends DrawTextParagraph<XSLFTextRun> {\r
+        DrawTextParagraphProxy(XSLFTextParagraph p) {\r
+            super(p);\r
+        }\r
+        \r
+        public void breakText(Graphics2D graphics) {\r
+            super.breakText(graphics);\r
+        }\r
+        \r
+        public double getWrappingWidth(boolean firstLine, Graphics2D graphics) {\r
+            return super.getWrappingWidth(firstLine, graphics);\r
+        }\r
+        \r
+        public List<DrawTextFragment> getLines() {\r
+            return lines;\r
+        }\r
+    }\r
+    \r
+    @Test\r
     public void testWrappingWidth() throws Exception {\r
         XMLSlideShow ppt = new XMLSlideShow();\r
         XSLFSlide slide = ppt.createSlide();\r
@@ -49,45 +70,47 @@ public class TestXSLFTextParagraph extends TestCase {
 \r
         Rectangle2D anchor = new Rectangle(50, 50, 300, 200);\r
         sh.setAnchor(anchor);\r
+        \r
+        DrawTextParagraphProxy dtp = new DrawTextParagraphProxy(p);\r
 \r
         double leftInset = sh.getLeftInset();\r
         double rightInset = sh.getRightInset();\r
-        assertEquals(7.2, leftInset);\r
-        assertEquals(7.2, rightInset);\r
+        assertEquals(7.2, leftInset, 0);\r
+        assertEquals(7.2, rightInset, 0);\r
 \r
         double leftMargin = p.getLeftMargin();\r
-        assertEquals(0.0, leftMargin);\r
+        assertEquals(0.0, leftMargin, 0);\r
 \r
         double indent = p.getIndent();\r
-        assertEquals(0.0, indent); // default\r
+        assertEquals(0.0, indent, 0); // default\r
 \r
         double expectedWidth;\r
 \r
         // Case 1: bullet=false, leftMargin=0, indent=0.\r
         expectedWidth = anchor.getWidth() - leftInset - rightInset - leftMargin;\r
-        assertEquals(285.6, expectedWidth); // 300 - 7.2 - 7.2 - 0\r
-        assertEquals(expectedWidth, p.getWrappingWidth(true, null));\r
-        assertEquals(expectedWidth, p.getWrappingWidth(false, null));\r
+        assertEquals(285.6, expectedWidth, 0); // 300 - 7.2 - 7.2 - 0\r
+        assertEquals(expectedWidth, dtp.getWrappingWidth(true, null), 0);\r
+        assertEquals(expectedWidth, dtp.getWrappingWidth(false, null), 0);\r
 \r
         p.setLeftMargin(36); // 0.5"\r
         leftMargin = p.getLeftMargin();\r
-        assertEquals(36.0, leftMargin);\r
+        assertEquals(36.0, leftMargin, 0);\r
         expectedWidth = anchor.getWidth() - leftInset - rightInset - leftMargin;\r
         assertEquals(249.6, expectedWidth, 1E-5); // 300 - 7.2 - 7.2 - 36\r
-        assertEquals(expectedWidth, p.getWrappingWidth(true, null));\r
-        assertEquals(expectedWidth, p.getWrappingWidth(false, null));\r
+        assertEquals(expectedWidth, dtp.getWrappingWidth(true, null), 0);\r
+        assertEquals(expectedWidth, dtp.getWrappingWidth(false, null), 0);\r
 \r
         // increase insets, the wrapping width should get smaller\r
         sh.setLeftInset(10);\r
         sh.setRightInset(10);\r
         leftInset = sh.getLeftInset();\r
         rightInset = sh.getRightInset();\r
-        assertEquals(10.0, leftInset);\r
-        assertEquals(10.0, rightInset);\r
+        assertEquals(10.0, leftInset, 0);\r
+        assertEquals(10.0, rightInset, 0);\r
         expectedWidth = anchor.getWidth() - leftInset - rightInset - leftMargin;\r
-        assertEquals(244.0, expectedWidth); // 300 - 10 - 10 - 36\r
-        assertEquals(expectedWidth, p.getWrappingWidth(true, null));\r
-        assertEquals(expectedWidth, p.getWrappingWidth(false, null));\r
+        assertEquals(244.0, expectedWidth, 0); // 300 - 10 - 10 - 36\r
+        assertEquals(expectedWidth, dtp.getWrappingWidth(true, null), 0);\r
+        assertEquals(expectedWidth, dtp.getWrappingWidth(false, null), 0);\r
 \r
         // set a positive indent of a 0.5 inch. This means "First Line" indentation:\r
         // |<---  indent -->|Here goes first line of the text\r
@@ -95,34 +118,35 @@ public class TestXSLFTextParagraph extends TestCase {
 \r
         p.setIndent(36.0);  // 0.5"\r
         indent = p.getIndent();\r
-        assertEquals(36.0, indent);\r
+        assertEquals(36.0, indent, 0);\r
         expectedWidth = anchor.getWidth() - leftInset - rightInset - leftMargin - indent;\r
-        assertEquals(208.0, expectedWidth); // 300 - 10 - 10 - 36 - 6.4\r
-        assertEquals(expectedWidth, p.getWrappingWidth(true, null)); // first line is indented\r
+        assertEquals(208.0, expectedWidth, 0); // 300 - 10 - 10 - 36 - 6.4\r
+        assertEquals(expectedWidth, dtp.getWrappingWidth(true, null), 0); // first line is indented\r
         // other lines are not indented\r
         expectedWidth = anchor.getWidth() - leftInset - rightInset - leftMargin;\r
-        assertEquals(244.0, expectedWidth); // 300 - 10 - 10 - 36\r
-        assertEquals(expectedWidth, p.getWrappingWidth(false, null));\r
+        assertEquals(244.0, expectedWidth, 0); // 300 - 10 - 10 - 36\r
+        assertEquals(expectedWidth, dtp.getWrappingWidth(false, null), 0);\r
 \r
         // set a negative indent of a 1 inch. This means "Hanging" indentation:\r
         // Here goes first line of the text\r
         // |<---  indent -->|Here go other lines (second and subsequent)\r
         p.setIndent(-72.0);  // 1"\r
         indent = p.getIndent();\r
-        assertEquals(-72.0, indent);\r
+        assertEquals(-72.0, indent, 0);\r
         expectedWidth = anchor.getWidth() - leftInset - rightInset;\r
-        assertEquals(280.0, expectedWidth); // 300 - 10 - 10 \r
-        assertEquals(expectedWidth, p.getWrappingWidth(true, null)); // first line is NOT indented\r
+        assertEquals(280.0, expectedWidth, 0); // 300 - 10 - 10 \r
+        assertEquals(expectedWidth, dtp.getWrappingWidth(true, null), 0); // first line is NOT indented\r
         // other lines are indented by leftMargin (the value of indent is not used)\r
         expectedWidth = anchor.getWidth() - leftInset - rightInset - leftMargin;\r
-        assertEquals(244.0, expectedWidth); // 300 - 10 - 10 - 36 \r
-        assertEquals(expectedWidth, p.getWrappingWidth(false, null));\r
+        assertEquals(244.0, expectedWidth, 0); // 300 - 10 - 10 - 36 \r
+        assertEquals(expectedWidth, dtp.getWrappingWidth(false, null), 0);\r
      }\r
 \r
     /**\r
      * test breaking test into lines.\r
      * This test requires that the Arial font is available and will run only on windows\r
      */\r
+    @Test\r
     public void testBreakLines(){\r
         String os = System.getProperty("os.name");\r
         if(os == null || !os.contains("Windows")) {\r
@@ -144,44 +168,52 @@ public class TestXSLFTextParagraph extends TestCase {
                 "residing within the corresponding paragraph.");\r
 \r
         sh.setAnchor(new Rectangle(50, 50, 300, 200));\r
+        DrawTextParagraphProxy dtp = new DrawTextParagraphProxy(p);\r
 \r
         BufferedImage img = new BufferedImage(1, 1, BufferedImage.TYPE_INT_RGB);\r
         Graphics2D graphics = img.createGraphics();\r
 \r
-        List<TextFragment> lines;\r
-        lines = p.breakText(graphics);\r
+        List<DrawTextFragment> lines;\r
+        dtp.breakText(graphics);\r
+        lines = dtp.getLines();\r
         assertEquals(4, lines.size());\r
 \r
         // descrease the shape width from 300 pt to 100 pt\r
         sh.setAnchor(new Rectangle(50, 50, 100, 200));\r
-        lines = p.breakText(graphics);\r
+        dtp.breakText(graphics);\r
+        lines = dtp.getLines();\r
         assertEquals(12, lines.size());\r
 \r
         // descrease the shape width from 300 pt to 100 pt\r
         sh.setAnchor(new Rectangle(50, 50, 600, 200));\r
-        lines = p.breakText(graphics);\r
+        dtp.breakText(graphics);\r
+        lines = dtp.getLines();\r
         assertEquals(2, lines.size());\r
 \r
         // set left and right margins to 200pt. This leaves 200pt for wrapping text\r
         sh.setLeftInset(200);\r
         sh.setRightInset(200);\r
-        lines = p.breakText(graphics);\r
+        dtp.breakText(graphics);\r
+        lines = dtp.getLines();\r
         assertEquals(5, lines.size());\r
 \r
         r.setText("Apache POI");\r
-        lines = p.breakText(graphics);\r
+        dtp.breakText(graphics);\r
+        lines = dtp.getLines();\r
         assertEquals(1, lines.size());\r
         assertEquals("Apache POI", lines.get(0).getString());\r
 \r
         r.setText("Apache\nPOI");\r
-        lines = p.breakText(graphics);\r
+        dtp.breakText(graphics);\r
+        lines = dtp.getLines();\r
         assertEquals(2, lines.size());\r
         assertEquals("Apache", lines.get(0).getString());\r
         assertEquals("POI", lines.get(1).getString());\r
 \r
         // trailing newlines are ignored\r
         r.setText("Apache\nPOI\n");\r
-        lines = p.breakText(graphics);\r
+        dtp.breakText(graphics);\r
+        lines = dtp.getLines();\r
         assertEquals(2, lines.size());\r
         assertEquals("Apache", lines.get(0).getString());\r
         assertEquals("POI", lines.get(1).getString());\r
@@ -197,7 +229,8 @@ public class TestXSLFTextParagraph extends TestCase {
         r3.setFontFamily("serif"); // this should always be available\r
         r3.setFontSize(10);\r
         r3.setText("POI");\r
-        lines = p2.breakText(graphics);\r
+        dtp.breakText(graphics);\r
+        lines = dtp.getLines();\r
         assertEquals(2, lines.size());\r
         assertEquals("Apache", lines.get(0).getString());\r
         assertEquals("POI", lines.get(1).getString());\r
@@ -206,6 +239,7 @@ public class TestXSLFTextParagraph extends TestCase {
 \r
     }\r
 \r
+    @Test\r
     public void testThemeInheritance(){\r
         XMLSlideShow ppt = XSLFTestDataSamples.openSampleDocument("prProps.pptx");\r
         XSLFShape[] shapes = ppt.getSlides()[0].getShapes();\r
@@ -220,6 +254,7 @@ public class TestXSLFTextParagraph extends TestCase {
         assertEquals(TextAlign.CENTER, sh3.getTextParagraphs().get(0).getTextAlign());\r
     }\r
 \r
+    @Test\r
     public void testParagraphProperties(){\r
         XMLSlideShow ppt = new XMLSlideShow();\r
         XSLFSlide slide = ppt.createSlide();\r
@@ -242,25 +277,25 @@ public class TestXSLFTextParagraph extends TestCase {
         p.setBulletFontColor(Color.red);\r
         assertEquals(Color.red, p.getBulletFontColor());\r
 \r
-        assertEquals(100.0, p.getBulletFontSize());\r
+        assertEquals(100.0, p.getBulletFontSize(), 0);\r
         p.setBulletFontSize(200.);\r
-        assertEquals(200., p.getBulletFontSize());\r
+        assertEquals(200., p.getBulletFontSize(), 0);\r
         p.setBulletFontSize(-20.);\r
-        assertEquals(-20.0, p.getBulletFontSize());\r
+        assertEquals(-20.0, p.getBulletFontSize(), 0);\r
 \r
-        assertEquals(72.0, p.getDefaultTabSize());\r
+        assertEquals(72.0, p.getDefaultTabSize(), 0);\r
         \r
-        assertEquals(0.0, p.getIndent());\r
+        assertEquals(0.0, p.getIndent(), 0);\r
         p.setIndent(72.0);\r
-        assertEquals(72.0, p.getIndent());\r
+        assertEquals(72.0, p.getIndent(), 0);\r
         p.setIndent(-1.0); // the value of -1.0 resets to the defaults\r
-        assertEquals(0.0, p.getIndent());\r
+        assertEquals(0.0, p.getIndent(), 0);\r
 \r
-        assertEquals(0.0, p.getLeftMargin());\r
+        assertEquals(0.0, p.getLeftMargin(), 0);\r
         p.setLeftMargin(72.0);\r
-        assertEquals(72.0, p.getLeftMargin());\r
+        assertEquals(72.0, p.getLeftMargin(), 0);\r
         p.setLeftMargin(-1.0); // the value of -1.0 resets to the defaults\r
-        assertEquals(0.0, p.getLeftMargin());\r
+        assertEquals(0.0, p.getLeftMargin(), 0);\r
 \r
         assertEquals(0, p.getLevel());\r
         p.setLevel(1);\r
@@ -268,23 +303,23 @@ public class TestXSLFTextParagraph extends TestCase {
         p.setLevel(2);\r
         assertEquals(2, p.getLevel());\r
 \r
-        assertEquals(100., p.getLineSpacing());\r
+        assertEquals(100., p.getLineSpacing(), 0);\r
         p.setLineSpacing(200.);\r
-        assertEquals(200.0, p.getLineSpacing());\r
+        assertEquals(200.0, p.getLineSpacing(), 0);\r
         p.setLineSpacing(-15.);\r
-        assertEquals(-15.0, p.getLineSpacing());\r
+        assertEquals(-15.0, p.getLineSpacing(), 0);\r
 \r
-        assertEquals(0., p.getSpaceAfter());\r
+        assertEquals(0., p.getSpaceAfter(), 0);\r
         p.setSpaceAfter(200.);\r
-        assertEquals(200.0, p.getSpaceAfter());\r
+        assertEquals(200.0, p.getSpaceAfter(), 0);\r
         p.setSpaceAfter(-15.);\r
-        assertEquals(-15.0, p.getSpaceAfter());\r
+        assertEquals(-15.0, p.getSpaceAfter(), 0);\r
 \r
-        assertEquals(0., p.getSpaceBefore());\r
+        assertEquals(0., p.getSpaceBefore(), 0);\r
         p.setSpaceBefore(200.);\r
-        assertEquals(200.0, p.getSpaceBefore());\r
+        assertEquals(200.0, p.getSpaceBefore(), 0);\r
         p.setSpaceBefore(-15.);\r
-        assertEquals(-15.0, p.getSpaceBefore());\r
+        assertEquals(-15.0, p.getSpaceBefore(), 0);\r
 \r
         assertEquals(TextAlign.LEFT, p.getTextAlign());\r
         p.setTextAlign(TextAlign.RIGHT);\r
@@ -296,15 +331,16 @@ public class TestXSLFTextParagraph extends TestCase {
         p.setBulletAutoNumber(ListAutoNumber.ALPHA_LC_PARENT_BOTH, 1);\r
 \r
         double tabStop = p.getTabStop(0);\r
-        assertEquals(0.0, tabStop);\r
+        assertEquals(0.0, tabStop, 0);\r
 \r
         p.addTabStop(100.);\r
-        assertEquals(100., p.getTabStop(0));\r
+        assertEquals(100., p.getTabStop(0), 0);\r
 \r
-        assertEquals(72.0, p.getDefaultTabSize());\r
+        assertEquals(72.0, p.getDefaultTabSize(), 0);\r
 \r
     }\r
 \r
+    @Test\r
     public void testLineBreak(){\r
         XMLSlideShow ppt = new XMLSlideShow();\r
         XSLFSlide slide = ppt.createSlide();\r
@@ -316,12 +352,12 @@ public class TestXSLFTextParagraph extends TestCase {
         XSLFTextRun r2 = p.addLineBreak();\r
         assertEquals("\n", r2.getText());\r
         r2.setFontSize(10.0);\r
-        assertEquals(10.0, r2.getFontSize());\r
+        assertEquals(10.0, r2.getFontSize(), 0);\r
         XSLFTextRun r3 = p.addNewTextRun();\r
         r3.setText("World!");\r
         r3.setFontSize(20.0);\r
         XSLFTextRun r4 = p.addLineBreak();\r
-        assertEquals(20.0, r4.getFontSize());\r
+        assertEquals(20.0, r4.getFontSize(), 0);\r
 \r
         assertEquals("Hello,\nWorld!\n",sh.getText());\r
 \r
index f217c58278882c1367fd46e9e1c18f299c187941..f9232a1733a765428332ee30f22f25a80d20beaf 100644 (file)
 ==================================================================== */\r
 package org.apache.poi.xslf.usermodel;\r
 \r
+import java.awt.Color;\r
+\r
 import junit.framework.TestCase;\r
 \r
-import org.apache.poi.sl.usermodel.TextAlign;\r
+import org.apache.poi.sl.usermodel.TextParagraph.TextAlign;\r
 import org.apache.poi.sl.usermodel.VerticalAlignment;\r
 import org.apache.poi.xslf.XSLFTestDataSamples;\r
-import org.openxmlformats.schemas.drawingml.x2006.main.CTTextBodyProperties;\r
-import org.openxmlformats.schemas.drawingml.x2006.main.CTTextCharacterProperties;\r
-import org.openxmlformats.schemas.drawingml.x2006.main.CTTextParagraphProperties;\r
-import org.openxmlformats.schemas.drawingml.x2006.main.STTextAlignType;\r
+import org.openxmlformats.schemas.drawingml.x2006.main.*;\r
 import org.openxmlformats.schemas.presentationml.x2006.main.CTPlaceholder;\r
 import org.openxmlformats.schemas.presentationml.x2006.main.STPlaceholderType;\r
 \r
-import java.awt.Color;\r
-\r
 /**\r
  * @author Yegor Kozlov\r
  */\r
diff --git a/src/resources/scratchpad/org/apache/poi/sl/draw/geom/presetShapeDefinitions.xml b/src/resources/scratchpad/org/apache/poi/sl/draw/geom/presetShapeDefinitions.xml
new file mode 100644 (file)
index 0000000..4a3a070
--- /dev/null
@@ -0,0 +1,19906 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<presetShapeDefinitons>\r
+  <accentBorderCallout1>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+\r
+      <gd name="adj1" fmla="val 18750" />\r
+\r
+      <gd name="adj2" fmla="val -8333" />\r
+\r
+      <gd name="adj3" fmla="val 112500" />\r
+\r
+      <gd name="adj4" fmla="val -38333" />\r
+\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="y1" fmla="*/ h adj1 100000" />\r
+      <gd name="x1" fmla="*/ w adj2 100000" />\r
+      <gd name="y2" fmla="*/ h adj3 100000" />\r
+      <gd name="x2" fmla="*/ w adj4 100000" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj2" minX="-2147483647" maxX="2147483647" gdRefY="adj1" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x1" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj4" minX="-2147483647" maxX="2147483647" gdRefY="adj3" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x2" y="y2" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="x1" y="t" />\r
+        </moveTo>\r
+        <close />\r
+        <lnTo>\r
+          <pt x="x1" y="b" />\r
+        </lnTo>\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="x1" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+\r
+  </accentBorderCallout1>\r
+  <accentBorderCallout2>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+\r
+      <gd name="adj1" fmla="val 18750" />\r
+\r
+      <gd name="adj2" fmla="val -8333" />\r
+\r
+      <gd name="adj3" fmla="val 18750" />\r
+\r
+      <gd name="adj4" fmla="val -16667" />\r
+\r
+      <gd name="adj5" fmla="val 112500" />\r
+\r
+      <gd name="adj6" fmla="val -46667" />\r
+\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="y1" fmla="*/ h adj1 100000" />\r
+      <gd name="x1" fmla="*/ w adj2 100000" />\r
+      <gd name="y2" fmla="*/ h adj3 100000" />\r
+      <gd name="x2" fmla="*/ w adj4 100000" />\r
+      <gd name="y3" fmla="*/ h adj5 100000" />\r
+      <gd name="x3" fmla="*/ w adj6 100000" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj2" minX="-2147483647" maxX="2147483647" gdRefY="adj1" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x1" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj4" minX="-2147483647" maxX="2147483647" gdRefY="adj3" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x2" y="y2" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj6" minX="-2147483647" maxX="2147483647" gdRefY="adj5" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x3" y="y3" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="x1" y="t" />\r
+        </moveTo>\r
+        <close />\r
+        <lnTo>\r
+          <pt x="x1" y="b" />\r
+        </lnTo>\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="x1" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y3" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+\r
+  </accentBorderCallout2>\r
+  <accentBorderCallout3>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+\r
+      <gd name="adj1" fmla="val 18750" />\r
+\r
+      <gd name="adj2" fmla="val -8333" />\r
+\r
+      <gd name="adj3" fmla="val 18750" />\r
+\r
+      <gd name="adj4" fmla="val -16667" />\r
+\r
+      <gd name="adj5" fmla="val 100000" />\r
+\r
+      <gd name="adj6" fmla="val -16667" />\r
+\r
+      <gd name="adj7" fmla="val 112963" />\r
+\r
+      <gd name="adj8" fmla="val -8333" />\r
+\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="y1" fmla="*/ h adj1 100000" />\r
+      <gd name="x1" fmla="*/ w adj2 100000" />\r
+      <gd name="y2" fmla="*/ h adj3 100000" />\r
+      <gd name="x2" fmla="*/ w adj4 100000" />\r
+      <gd name="y3" fmla="*/ h adj5 100000" />\r
+      <gd name="x3" fmla="*/ w adj6 100000" />\r
+      <gd name="y4" fmla="*/ h adj7 100000" />\r
+      <gd name="x4" fmla="*/ w adj8 100000" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj2" minX="-2147483647" maxX="2147483647" gdRefY="adj1" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x1" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj4" minX="-2147483647" maxX="2147483647" gdRefY="adj3" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x2" y="y2" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj6" minX="-2147483647" maxX="2147483647" gdRefY="adj5" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x3" y="y3" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj8" minX="-2147483647" maxX="2147483647" gdRefY="adj7" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x4" y="y4" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="x1" y="t" />\r
+        </moveTo>\r
+        <close />\r
+        <lnTo>\r
+          <pt x="x1" y="b" />\r
+        </lnTo>\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="x1" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y4" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+\r
+  </accentBorderCallout3>\r
+  <accentCallout1>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+\r
+      <gd name="adj1" fmla="val 18750" />\r
+\r
+      <gd name="adj2" fmla="val -8333" />\r
+\r
+      <gd name="adj3" fmla="val 112500" />\r
+\r
+      <gd name="adj4" fmla="val -38333" />\r
+\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="y1" fmla="*/ h adj1 100000" />\r
+      <gd name="x1" fmla="*/ w adj2 100000" />\r
+      <gd name="y2" fmla="*/ h adj3 100000" />\r
+      <gd name="x2" fmla="*/ w adj4 100000" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj2" minX="-2147483647" maxX="2147483647" gdRefY="adj1" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x1" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj4" minX="-2147483647" maxX="2147483647" gdRefY="adj3" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x2" y="y2" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="x1" y="t" />\r
+        </moveTo>\r
+        <close />\r
+        <lnTo>\r
+          <pt x="x1" y="b" />\r
+        </lnTo>\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="x1" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+\r
+  </accentCallout1>\r
+  <accentCallout2>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+\r
+      <gd name="adj1" fmla="val 18750" />\r
+\r
+      <gd name="adj2" fmla="val -8333" />\r
+\r
+      <gd name="adj3" fmla="val 18750" />\r
+\r
+      <gd name="adj4" fmla="val -16667" />\r
+\r
+      <gd name="adj5" fmla="val 112500" />\r
+\r
+      <gd name="adj6" fmla="val -46667" />\r
+\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="y1" fmla="*/ h adj1 100000" />\r
+      <gd name="x1" fmla="*/ w adj2 100000" />\r
+      <gd name="y2" fmla="*/ h adj3 100000" />\r
+      <gd name="x2" fmla="*/ w adj4 100000" />\r
+      <gd name="y3" fmla="*/ h adj5 100000" />\r
+      <gd name="x3" fmla="*/ w adj6 100000" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj2" minX="-2147483647" maxX="2147483647" gdRefY="adj1" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x1" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj4" minX="-2147483647" maxX="2147483647" gdRefY="adj3" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x2" y="y2" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj6" minX="-2147483647" maxX="2147483647" gdRefY="adj5" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x3" y="y3" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="x1" y="t" />\r
+        </moveTo>\r
+        <close />\r
+        <lnTo>\r
+          <pt x="x1" y="b" />\r
+        </lnTo>\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="x1" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y3" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+\r
+  </accentCallout2>\r
+  <accentCallout3>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+\r
+      <gd name="adj1" fmla="val 18750" />\r
+\r
+      <gd name="adj2" fmla="val -8333" />\r
+\r
+      <gd name="adj3" fmla="val 18750" />\r
+\r
+      <gd name="adj4" fmla="val -16667" />\r
+\r
+      <gd name="adj5" fmla="val 100000" />\r
+\r
+      <gd name="adj6" fmla="val -16667" />\r
+\r
+      <gd name="adj7" fmla="val 112963" />\r
+\r
+      <gd name="adj8" fmla="val -8333" />\r
+\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="y1" fmla="*/ h adj1 100000" />\r
+      <gd name="x1" fmla="*/ w adj2 100000" />\r
+      <gd name="y2" fmla="*/ h adj3 100000" />\r
+      <gd name="x2" fmla="*/ w adj4 100000" />\r
+      <gd name="y3" fmla="*/ h adj5 100000" />\r
+      <gd name="x3" fmla="*/ w adj6 100000" />\r
+      <gd name="y4" fmla="*/ h adj7 100000" />\r
+      <gd name="x4" fmla="*/ w adj8 100000" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj2" minX="-2147483647" maxX="2147483647" gdRefY="adj1" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x1" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj4" minX="-2147483647" maxX="2147483647" gdRefY="adj3" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x2" y="y2" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj6" minX="-2147483647" maxX="2147483647" gdRefY="adj5" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x3" y="y3" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj8" minX="-2147483647" maxX="2147483647" gdRefY="adj7" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x4" y="y4" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="x1" y="t" />\r
+        </moveTo>\r
+        <close />\r
+        <lnTo>\r
+          <pt x="x1" y="b" />\r
+        </lnTo>\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="x1" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y4" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+\r
+  </accentCallout3>\r
+  <actionButtonBackPrevious>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="dx2" fmla="*/ ss 3 8" />\r
+      <gd name="g9" fmla="+- vc 0 dx2" />\r
+      <gd name="g10" fmla="+- vc dx2 0" />\r
+      <gd name="g11" fmla="+- hc 0 dx2" />\r
+      <gd name="g12" fmla="+- hc dx2 0" />\r
+    </gdLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="g11" y="vc" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="g12" y="g9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g12" y="g10" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path stroke="false" fill="darken" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="g11" y="vc" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="g12" y="g9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g12" y="g10" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="g11" y="vc" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="g12" y="g9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g12" y="g10" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+  </actionButtonBackPrevious>\r
+  <actionButtonBeginning>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="dx2" fmla="*/ ss 3 8" />\r
+      <gd name="g9" fmla="+- vc 0 dx2" />\r
+      <gd name="g10" fmla="+- vc dx2 0" />\r
+      <gd name="g11" fmla="+- hc 0 dx2" />\r
+      <gd name="g12" fmla="+- hc dx2 0" />\r
+      <gd name="g13" fmla="*/ ss 3 4" />\r
+      <gd name="g14" fmla="*/ g13 1 8" />\r
+      <gd name="g15" fmla="*/ g13 1 4" />\r
+      <gd name="g16" fmla="+- g11 g14 0" />\r
+      <gd name="g17" fmla="+- g11 g15 0" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="g17" y="vc" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="g12" y="g9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g12" y="g10" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="g16" y="g9" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="g11" y="g9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g11" y="g10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g16" y="g10" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path stroke="false" fill="darken" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="g17" y="vc" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="g12" y="g9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g12" y="g10" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="g16" y="g9" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="g11" y="g9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g11" y="g10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g16" y="g10" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="g17" y="vc" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="g12" y="g9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g12" y="g10" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="g16" y="g9" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="g16" y="g10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g11" y="g10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g11" y="g9" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </actionButtonBeginning>\r
+  <actionButtonBlank>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </actionButtonBlank>\r
+  <actionButtonDocument>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="dx2" fmla="*/ ss 3 8" />\r
+      <gd name="g9" fmla="+- vc 0 dx2" />\r
+      <gd name="g10" fmla="+- vc dx2 0" />\r
+      <gd name="dx1" fmla="*/ ss 9 32" />\r
+      <gd name="g11" fmla="+- hc 0 dx1" />\r
+      <gd name="g12" fmla="+- hc dx1 0" />\r
+      <gd name="g13" fmla="*/ ss 3 16" />\r
+      <gd name="g14" fmla="+- g12 0 g13" />\r
+      <gd name="g15" fmla="+- g9 g13 0" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="g11" y="g9" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="g14" y="g9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g12" y="g15" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g12" y="g10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g11" y="g10" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path stroke="false" fill="darkenLess" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="g11" y="g9" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="g14" y="g9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g14" y="g15" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g12" y="g15" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g12" y="g10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g11" y="g10" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path stroke="false" fill="darken" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="g14" y="g9" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="g14" y="g15" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g12" y="g15" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="g11" y="g9" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="g14" y="g9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g12" y="g15" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g12" y="g10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g11" y="g10" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="g12" y="g15" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="g14" y="g15" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g14" y="g9" />\r
+        </lnTo>\r
+      </path>\r
+      <path fill="none">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </actionButtonDocument>\r
+  <actionButtonEnd>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="dx2" fmla="*/ ss 3 8" />\r
+      <gd name="g9" fmla="+- vc 0 dx2" />\r
+      <gd name="g10" fmla="+- vc dx2 0" />\r
+      <gd name="g11" fmla="+- hc 0 dx2" />\r
+      <gd name="g12" fmla="+- hc dx2 0" />\r
+      <gd name="g13" fmla="*/ ss 3 4" />\r
+      <gd name="g14" fmla="*/ g13 3 4" />\r
+      <gd name="g15" fmla="*/ g13 7 8" />\r
+      <gd name="g16" fmla="+- g11 g14 0" />\r
+      <gd name="g17" fmla="+- g11 g15 0" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="g16" y="vc" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="g11" y="g9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g11" y="g10" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="g17" y="g9" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="g12" y="g9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g12" y="g10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g17" y="g10" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path stroke="false" fill="darken" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="g16" y="vc" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="g11" y="g9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g11" y="g10" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="g17" y="g9" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="g12" y="g9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g12" y="g10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g17" y="g10" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="g16" y="vc" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="g11" y="g10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g11" y="g9" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="g17" y="g9" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="g12" y="g9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g12" y="g10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g17" y="g10" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </actionButtonEnd>\r
+  <actionButtonForwardNext>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="dx2" fmla="*/ ss 3 8" />\r
+      <gd name="g9" fmla="+- vc 0 dx2" />\r
+      <gd name="g10" fmla="+- vc dx2 0" />\r
+      <gd name="g11" fmla="+- hc 0 dx2" />\r
+      <gd name="g12" fmla="+- hc dx2 0" />\r
+    </gdLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="g12" y="vc" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="g11" y="g9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g11" y="g10" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path stroke="false" fill="darken" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="g12" y="vc" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="g11" y="g9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g11" y="g10" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="g12" y="vc" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="g11" y="g10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g11" y="g9" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+  </actionButtonForwardNext>\r
+  <actionButtonHelp>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="dx2" fmla="*/ ss 3 8" />\r
+      <gd name="g9" fmla="+- vc 0 dx2" />\r
+      <gd name="g11" fmla="+- hc 0 dx2" />\r
+      <gd name="g13" fmla="*/ ss 3 4" />\r
+      <gd name="g14" fmla="*/ g13 1 7" />\r
+      <gd name="g15" fmla="*/ g13 3 14" />\r
+      <gd name="g16" fmla="*/ g13 2 7" />\r
+      <gd name="g19" fmla="*/ g13 3 7" />\r
+      <gd name="g20" fmla="*/ g13 4 7" />\r
+      <gd name="g21" fmla="*/ g13 17 28" />\r
+      <gd name="g23" fmla="*/ g13 21 28" />\r
+      <gd name="g24" fmla="*/ g13 11 14" />\r
+      <gd name="g27" fmla="+- g9 g16 0" />\r
+      <gd name="g29" fmla="+- g9 g21 0" />\r
+      <gd name="g30" fmla="+- g9 g23 0" />\r
+      <gd name="g31" fmla="+- g9 g24 0" />\r
+      <gd name="g33" fmla="+- g11 g15 0" />\r
+      <gd name="g36" fmla="+- g11 g19 0" />\r
+      <gd name="g37" fmla="+- g11 g20 0" />\r
+      <gd name="g41" fmla="*/ g13 1 14" />\r
+      <gd name="g42" fmla="*/ g13 3 28" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="g33" y="g27" />\r
+        </moveTo>\r
+\r
+        <arcTo wR="g16" hR="g16" stAng="cd2" swAng="cd2" />\r
+        <arcTo wR="g14" hR="g15" stAng="0" swAng="cd4" />\r
+        <arcTo wR="g41" hR="g42" stAng="3cd4" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="g37" y="g30" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g36" y="g30" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g36" y="g29" />\r
+        </lnTo>\r
+        <arcTo wR="g14" hR="g15" stAng="cd2" swAng="cd4" />\r
+        <arcTo wR="g41" hR="g42" stAng="cd4" swAng="-5400000" />\r
+        <arcTo wR="g14" hR="g14" stAng="0" swAng="-10800000" />\r
+        <close />\r
+        <moveTo>\r
+          <pt x="hc" y="g31" />\r
+        </moveTo>\r
+\r
+        <arcTo wR="g42" hR="g42" stAng="3cd4" swAng="21600000" />\r
+        <close />\r
+      </path>\r
+      <path stroke="false" fill="darken" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="g33" y="g27" />\r
+        </moveTo>\r
+\r
+        <arcTo wR="g16" hR="g16" stAng="cd2" swAng="cd2" />\r
+        <arcTo wR="g14" hR="g15" stAng="0" swAng="cd4" />\r
+        <arcTo wR="g41" hR="g42" stAng="3cd4" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="g37" y="g30" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g36" y="g30" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g36" y="g29" />\r
+        </lnTo>\r
+        <arcTo wR="g14" hR="g15" stAng="cd2" swAng="cd4" />\r
+        <arcTo wR="g41" hR="g42" stAng="cd4" swAng="-5400000" />\r
+        <arcTo wR="g14" hR="g14" stAng="0" swAng="-10800000" />\r
+        <close />\r
+        <moveTo>\r
+          <pt x="hc" y="g31" />\r
+        </moveTo>\r
+\r
+        <arcTo wR="g42" hR="g42" stAng="3cd4" swAng="21600000" />\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="g33" y="g27" />\r
+        </moveTo>\r
+\r
+        <arcTo wR="g16" hR="g16" stAng="cd2" swAng="cd2" />\r
+        <arcTo wR="g14" hR="g15" stAng="0" swAng="cd4" />\r
+        <arcTo wR="g41" hR="g42" stAng="3cd4" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="g37" y="g30" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g36" y="g30" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g36" y="g29" />\r
+        </lnTo>\r
+        <arcTo wR="g14" hR="g15" stAng="cd2" swAng="cd4" />\r
+        <arcTo wR="g41" hR="g42" stAng="cd4" swAng="-5400000" />\r
+        <arcTo wR="g14" hR="g14" stAng="0" swAng="-10800000" />\r
+        <close />\r
+        <moveTo>\r
+          <pt x="hc" y="g31" />\r
+        </moveTo>\r
+\r
+        <arcTo wR="g42" hR="g42" stAng="3cd4" swAng="21600000" />\r
+        <close />\r
+      </path>\r
+      <path fill="none">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </actionButtonHelp>\r
+  <actionButtonHome>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="dx2" fmla="*/ ss 3 8" />\r
+      <gd name="g9" fmla="+- vc 0 dx2" />\r
+      <gd name="g10" fmla="+- vc dx2 0" />\r
+      <gd name="g11" fmla="+- hc 0 dx2" />\r
+      <gd name="g12" fmla="+- hc dx2 0" />\r
+      <gd name="g13" fmla="*/ ss 3 4" />\r
+      <gd name="g14" fmla="*/ g13 1 16" />\r
+      <gd name="g15" fmla="*/ g13 1 8" />\r
+      <gd name="g16" fmla="*/ g13 3 16" />\r
+      <gd name="g17" fmla="*/ g13 5 16" />\r
+      <gd name="g18" fmla="*/ g13 7 16" />\r
+      <gd name="g19" fmla="*/ g13 9 16" />\r
+      <gd name="g20" fmla="*/ g13 11 16" />\r
+      <gd name="g21" fmla="*/ g13 3 4" />\r
+      <gd name="g22" fmla="*/ g13 13 16" />\r
+      <gd name="g23" fmla="*/ g13 7 8" />\r
+      <gd name="g24" fmla="+- g9 g14 0" />\r
+      <gd name="g25" fmla="+- g9 g16 0" />\r
+      <gd name="g26" fmla="+- g9 g17 0" />\r
+      <gd name="g27" fmla="+- g9 g21 0" />\r
+      <gd name="g28" fmla="+- g11 g15 0" />\r
+      <gd name="g29" fmla="+- g11 g18 0" />\r
+      <gd name="g30" fmla="+- g11 g19 0" />\r
+      <gd name="g31" fmla="+- g11 g20 0" />\r
+      <gd name="g32" fmla="+- g11 g22 0" />\r
+      <gd name="g33" fmla="+- g11 g23 0" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="hc" y="g9" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="g11" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g28" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g28" y="g10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g33" y="g10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g33" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g12" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g32" y="g26" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g32" y="g24" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g31" y="g24" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g31" y="g25" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path stroke="false" fill="darkenLess" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="g32" y="g26" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="g32" y="g24" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g31" y="g24" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g31" y="g25" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="g28" y="vc" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="g28" y="g10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g29" y="g10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g29" y="g27" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g30" y="g27" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g30" y="g10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g33" y="g10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g33" y="vc" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path stroke="false" fill="darken" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="hc" y="g9" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="g11" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g12" y="vc" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="g29" y="g27" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="g30" y="g27" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g30" y="g10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g29" y="g10" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="hc" y="g9" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="g31" y="g25" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g31" y="g24" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g32" y="g24" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g32" y="g26" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g12" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g33" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g33" y="g10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g28" y="g10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g28" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g11" y="vc" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="g31" y="g25" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="g32" y="g26" />\r
+        </lnTo>\r
+\r
+        <moveTo>\r
+          <pt x="g33" y="vc" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="g28" y="vc" />\r
+        </lnTo>\r
+\r
+        <moveTo>\r
+          <pt x="g29" y="g10" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="g29" y="g27" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g30" y="g27" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g30" y="g10" />\r
+        </lnTo>\r
+      </path>\r
+      <path fill="none">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </actionButtonHome>\r
+  <actionButtonInformation>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="dx2" fmla="*/ ss 3 8" />\r
+      <gd name="g9" fmla="+- vc 0 dx2" />\r
+      <gd name="g11" fmla="+- hc 0 dx2" />\r
+      <gd name="g13" fmla="*/ ss 3 4" />\r
+      <gd name="g14" fmla="*/ g13 1 32" />\r
+      <gd name="g17" fmla="*/ g13 5 16" />\r
+      <gd name="g18" fmla="*/ g13 3 8" />\r
+      <gd name="g19" fmla="*/ g13 13 32" />\r
+      <gd name="g20" fmla="*/ g13 19 32" />\r
+      <gd name="g22" fmla="*/ g13 11 16" />\r
+      <gd name="g23" fmla="*/ g13 13 16" />\r
+      <gd name="g24" fmla="*/ g13 7 8" />\r
+      <gd name="g25" fmla="+- g9 g14 0" />\r
+      <gd name="g28" fmla="+- g9 g17 0" />\r
+      <gd name="g29" fmla="+- g9 g18 0" />\r
+      <gd name="g30" fmla="+- g9 g23 0" />\r
+      <gd name="g31" fmla="+- g9 g24 0" />\r
+      <gd name="g32" fmla="+- g11 g17 0" />\r
+      <gd name="g34" fmla="+- g11 g19 0" />\r
+      <gd name="g35" fmla="+- g11 g20 0" />\r
+      <gd name="g37" fmla="+- g11 g22 0" />\r
+      <gd name="g38" fmla="*/ g13 3 32" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="hc" y="g9" />\r
+        </moveTo>\r
+\r
+        <arcTo wR="dx2" hR="dx2" stAng="3cd4" swAng="21600000" />\r
+        <close />\r
+      </path>\r
+      <path stroke="false" fill="darken" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="hc" y="g9" />\r
+        </moveTo>\r
+\r
+        <arcTo wR="dx2" hR="dx2" stAng="3cd4" swAng="21600000" />\r
+        <close />\r
+        <moveTo>\r
+          <pt x="hc" y="g25" />\r
+        </moveTo>\r
+\r
+        <arcTo wR="g38" hR="g38" stAng="3cd4" swAng="21600000" />\r
+        <moveTo>\r
+          <pt x="g32" y="g28" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="g32" y="g29" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g34" y="g29" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g34" y="g30" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g32" y="g30" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g32" y="g31" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g37" y="g31" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g37" y="g30" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g35" y="g30" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g35" y="g28" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path stroke="false" fill="lighten" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="hc" y="g25" />\r
+        </moveTo>\r
+\r
+        <arcTo wR="g38" hR="g38" stAng="3cd4" swAng="21600000" />\r
+        <moveTo>\r
+          <pt x="g32" y="g28" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="g35" y="g28" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g35" y="g30" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g37" y="g30" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g37" y="g31" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g32" y="g31" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g32" y="g30" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g34" y="g30" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g34" y="g29" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g32" y="g29" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="hc" y="g9" />\r
+        </moveTo>\r
+\r
+        <arcTo wR="dx2" hR="dx2" stAng="3cd4" swAng="21600000" />\r
+        <close />\r
+        <moveTo>\r
+          <pt x="hc" y="g25" />\r
+        </moveTo>\r
+\r
+        <arcTo wR="g38" hR="g38" stAng="3cd4" swAng="21600000" />\r
+        <moveTo>\r
+          <pt x="g32" y="g28" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="g35" y="g28" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g35" y="g30" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g37" y="g30" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g37" y="g31" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g32" y="g31" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g32" y="g30" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g34" y="g30" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g34" y="g29" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g32" y="g29" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </actionButtonInformation>\r
+  <actionButtonMovie>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="dx2" fmla="*/ ss 3 8" />\r
+      <gd name="g9" fmla="+- vc 0 dx2" />\r
+      <gd name="g10" fmla="+- vc dx2 0" />\r
+      <gd name="g11" fmla="+- hc 0 dx2" />\r
+      <gd name="g12" fmla="+- hc dx2 0" />\r
+      <gd name="g13" fmla="*/ ss 3 4" />\r
+      <gd name="g14" fmla="*/ g13 1455 21600" />\r
+      <gd name="g15" fmla="*/ g13 1905 21600" />\r
+      <gd name="g16" fmla="*/ g13 2325 21600" />\r
+      <gd name="g17" fmla="*/ g13 16155 21600" />\r
+      <gd name="g18" fmla="*/ g13 17010 21600" />\r
+      <gd name="g19" fmla="*/ g13 19335 21600" />\r
+      <gd name="g20" fmla="*/ g13 19725 21600" />\r
+      <gd name="g21" fmla="*/ g13 20595 21600" />\r
+      <gd name="g22" fmla="*/ g13 5280 21600" />\r
+      <gd name="g23" fmla="*/ g13 5730 21600" />\r
+      <gd name="g24" fmla="*/ g13 6630 21600" />\r
+      <gd name="g25" fmla="*/ g13 7492 21600" />\r
+      <gd name="g26" fmla="*/ g13 9067 21600" />\r
+      <gd name="g27" fmla="*/ g13 9555 21600" />\r
+      <gd name="g28" fmla="*/ g13 13342 21600" />\r
+      <gd name="g29" fmla="*/ g13 14580 21600" />\r
+      <gd name="g30" fmla="*/ g13 15592 21600" />\r
+      <gd name="g31" fmla="+- g11 g14 0" />\r
+      <gd name="g32" fmla="+- g11 g15 0" />\r
+      <gd name="g33" fmla="+- g11 g16 0" />\r
+      <gd name="g34" fmla="+- g11 g17 0" />\r
+      <gd name="g35" fmla="+- g11 g18 0" />\r
+      <gd name="g36" fmla="+- g11 g19 0" />\r
+      <gd name="g37" fmla="+- g11 g20 0" />\r
+      <gd name="g38" fmla="+- g11 g21 0" />\r
+      <gd name="g39" fmla="+- g9 g22 0" />\r
+      <gd name="g40" fmla="+- g9 g23 0" />\r
+      <gd name="g41" fmla="+- g9 g24 0" />\r
+      <gd name="g42" fmla="+- g9 g25 0" />\r
+      <gd name="g43" fmla="+- g9 g26 0" />\r
+      <gd name="g44" fmla="+- g9 g27 0" />\r
+      <gd name="g45" fmla="+- g9 g28 0" />\r
+      <gd name="g46" fmla="+- g9 g29 0" />\r
+      <gd name="g47" fmla="+- g9 g30 0" />\r
+      <gd name="g48" fmla="+- g9 g31 0" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="g11" y="g39" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="g11" y="g44" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g31" y="g44" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g32" y="g43" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g33" y="g43" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g33" y="g47" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g35" y="g47" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g35" y="g45" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g36" y="g45" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g38" y="g46" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g12" y="g46" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g12" y="g41" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g38" y="g41" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g37" y="g42" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g35" y="g42" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g35" y="g41" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g34" y="g40" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g32" y="g40" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g31" y="g39" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path stroke="false" fill="darken" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="g11" y="g39" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="g11" y="g44" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g31" y="g44" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g32" y="g43" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g33" y="g43" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g33" y="g47" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g35" y="g47" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g35" y="g45" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g36" y="g45" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g38" y="g46" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g12" y="g46" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g12" y="g41" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g38" y="g41" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g37" y="g42" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g35" y="g42" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g35" y="g41" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g34" y="g40" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g32" y="g40" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g31" y="g39" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="g11" y="g39" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="g31" y="g39" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g32" y="g40" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g34" y="g40" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g35" y="g41" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g35" y="g42" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g37" y="g42" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g38" y="g41" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g12" y="g41" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g12" y="g46" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g38" y="g46" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g36" y="g45" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g35" y="g45" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g35" y="g47" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g33" y="g47" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g33" y="g43" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g32" y="g43" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g31" y="g44" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g11" y="g44" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </actionButtonMovie>\r
+  <actionButtonReturn>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="dx2" fmla="*/ ss 3 8" />\r
+      <gd name="g9" fmla="+- vc 0 dx2" />\r
+      <gd name="g10" fmla="+- vc dx2 0" />\r
+      <gd name="g11" fmla="+- hc 0 dx2" />\r
+      <gd name="g12" fmla="+- hc dx2 0" />\r
+      <gd name="g13" fmla="*/ ss 3 4" />\r
+      <gd name="g14" fmla="*/ g13 7 8" />\r
+      <gd name="g15" fmla="*/ g13 3 4" />\r
+      <gd name="g16" fmla="*/ g13 5 8" />\r
+      <gd name="g17" fmla="*/ g13 3 8" />\r
+      <gd name="g18" fmla="*/ g13 1 4" />\r
+      <gd name="g19" fmla="+- g9 g15 0" />\r
+      <gd name="g20" fmla="+- g9 g16 0" />\r
+      <gd name="g21" fmla="+- g9 g18 0" />\r
+      <gd name="g22" fmla="+- g11 g14 0" />\r
+      <gd name="g23" fmla="+- g11 g15 0" />\r
+      <gd name="g24" fmla="+- g11 g16 0" />\r
+      <gd name="g25" fmla="+- g11 g17 0" />\r
+      <gd name="g26" fmla="+- g11 g18 0" />\r
+      <gd name="g27" fmla="*/ g13 1 8" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="g12" y="g21" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="g23" y="g9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="g21" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g24" y="g21" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g24" y="g20" />\r
+        </lnTo>\r
+        <arcTo wR="g27" hR="g27" stAng="0" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="g25" y="g19" />\r
+        </lnTo>\r
+        <arcTo wR="g27" hR="g27" stAng="cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="g26" y="g21" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g11" y="g21" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g11" y="g20" />\r
+        </lnTo>\r
+        <arcTo wR="g17" hR="g17" stAng="cd2" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="hc" y="g10" />\r
+        </lnTo>\r
+        <arcTo wR="g17" hR="g17" stAng="cd4" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="g22" y="g21" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path stroke="false" fill="darken" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="g12" y="g21" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="g23" y="g9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="g21" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g24" y="g21" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g24" y="g20" />\r
+        </lnTo>\r
+        <arcTo wR="g27" hR="g27" stAng="0" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="g25" y="g19" />\r
+        </lnTo>\r
+        <arcTo wR="g27" hR="g27" stAng="cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="g26" y="g21" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g11" y="g21" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g11" y="g20" />\r
+        </lnTo>\r
+        <arcTo wR="g17" hR="g17" stAng="cd2" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="hc" y="g10" />\r
+        </lnTo>\r
+        <arcTo wR="g17" hR="g17" stAng="cd4" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="g22" y="g21" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="g12" y="g21" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="g22" y="g21" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g22" y="g20" />\r
+        </lnTo>\r
+        <arcTo wR="g17" hR="g17" stAng="0" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="g25" y="g10" />\r
+        </lnTo>\r
+        <arcTo wR="g17" hR="g17" stAng="cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="g11" y="g21" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g26" y="g21" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g26" y="g20" />\r
+        </lnTo>\r
+        <arcTo wR="g27" hR="g27" stAng="cd2" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="hc" y="g19" />\r
+        </lnTo>\r
+        <arcTo wR="g27" hR="g27" stAng="cd4" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="g24" y="g21" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="g21" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g23" y="g9" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </actionButtonReturn>\r
+  <actionButtonSound>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="dx2" fmla="*/ ss 3 8" />\r
+      <gd name="g9" fmla="+- vc 0 dx2" />\r
+      <gd name="g10" fmla="+- vc dx2 0" />\r
+      <gd name="g11" fmla="+- hc 0 dx2" />\r
+      <gd name="g12" fmla="+- hc dx2 0" />\r
+      <gd name="g13" fmla="*/ ss 3 4" />\r
+      <gd name="g14" fmla="*/ g13 1 8" />\r
+      <gd name="g15" fmla="*/ g13 5 16" />\r
+      <gd name="g16" fmla="*/ g13 5 8" />\r
+      <gd name="g17" fmla="*/ g13 11 16" />\r
+      <gd name="g18" fmla="*/ g13 3 4" />\r
+      <gd name="g19" fmla="*/ g13 7 8" />\r
+      <gd name="g20" fmla="+- g9 g14 0" />\r
+      <gd name="g21" fmla="+- g9 g15 0" />\r
+      <gd name="g22" fmla="+- g9 g17 0" />\r
+      <gd name="g23" fmla="+- g9 g19 0" />\r
+      <gd name="g24" fmla="+- g11 g15 0" />\r
+      <gd name="g25" fmla="+- g11 g16 0" />\r
+      <gd name="g26" fmla="+- g11 g18 0" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="g11" y="g21" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="g11" y="g22" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g24" y="g22" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g25" y="g10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g25" y="g9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g24" y="g21" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path stroke="false" fill="darken" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="g11" y="g21" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="g11" y="g22" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g24" y="g22" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g25" y="g10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g25" y="g9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g24" y="g21" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="g11" y="g21" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="g24" y="g21" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g25" y="g9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g25" y="g10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g24" y="g22" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g11" y="g22" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="g26" y="g21" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="g12" y="g20" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="g26" y="vc" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="g12" y="vc" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="g26" y="g22" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="g12" y="g23" />\r
+        </lnTo>\r
+      </path>\r
+      <path fill="none">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </actionButtonSound>\r
+  <arc>\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 16200000" />\r
+      <gd name="adj2" fmla="val 0" />\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="stAng" fmla="pin 0 adj1 21599999" />\r
+      <gd name="enAng" fmla="pin 0 adj2 21599999" />\r
+      <gd name="sw11" fmla="+- enAng 0 stAng" />\r
+      <gd name="sw12" fmla="+- sw11 21600000 0" />\r
+      <gd name="swAng" fmla="?: sw11 sw11 sw12" />\r
+      <gd name="wt1" fmla="sin wd2 stAng" />\r
+      <gd name="ht1" fmla="cos hd2 stAng" />\r
+      <gd name="dx1" fmla="cat2 wd2 ht1 wt1" />\r
+      <gd name="dy1" fmla="sat2 hd2 ht1 wt1" />\r
+      <gd name="wt2" fmla="sin wd2 enAng" />\r
+      <gd name="ht2" fmla="cos hd2 enAng" />\r
+      <gd name="dx2" fmla="cat2 wd2 ht2 wt2" />\r
+      <gd name="dy2" fmla="sat2 hd2 ht2 wt2" />\r
+      <gd name="x1" fmla="+- hc dx1 0" />\r
+      <gd name="y1" fmla="+- vc dy1 0" />\r
+      <gd name="x2" fmla="+- hc dx2 0" />\r
+      <gd name="y2" fmla="+- vc dy2 0" />\r
+      <gd name="sw0" fmla="+- 21600000 0 stAng" />\r
+      <gd name="da1" fmla="+- swAng 0 sw0" />\r
+      <gd name="g1" fmla="max x1 x2" />\r
+      <gd name="ir" fmla="?: da1 r g1" />\r
+      <gd name="sw1" fmla="+- cd4 0 stAng" />\r
+      <gd name="sw2" fmla="+- 27000000 0 stAng" />\r
+      <gd name="sw3" fmla="?: sw1 sw1 sw2" />\r
+      <gd name="da2" fmla="+- swAng 0 sw3" />\r
+      <gd name="g5" fmla="max y1 y2" />\r
+      <gd name="ib" fmla="?: da2 b g5" />\r
+      <gd name="sw4" fmla="+- cd2 0 stAng" />\r
+      <gd name="sw5" fmla="+- 32400000 0 stAng" />\r
+      <gd name="sw6" fmla="?: sw4 sw4 sw5" />\r
+      <gd name="da3" fmla="+- swAng 0 sw6" />\r
+      <gd name="g9" fmla="min x1 x2" />\r
+      <gd name="il" fmla="?: da3 l g9" />\r
+      <gd name="sw7" fmla="+- 3cd4 0 stAng" />\r
+      <gd name="sw8" fmla="+- 37800000 0 stAng" />\r
+      <gd name="sw9" fmla="?: sw7 sw7 sw8" />\r
+      <gd name="da4" fmla="+- swAng 0 sw9" />\r
+      <gd name="g13" fmla="min y1 y2" />\r
+      <gd name="it" fmla="?: da4 t g13" />\r
+      <gd name="cang1" fmla="+- stAng 0 cd4" />\r
+      <gd name="cang2" fmla="+- enAng cd4 0" />\r
+      <gd name="cang3" fmla="+/ cang1 cang2 2" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahPolar gdRefAng="adj1" minAng="0" maxAng="21599999">\r
+        <pos x="x1" y="y1" />\r
+      </ahPolar>\r
+      <ahPolar gdRefAng="adj2" minAng="0" maxAng="21599999">\r
+        <pos x="x2" y="y2" />\r
+      </ahPolar>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="cang1">\r
+        <pos x="x1" y="y1" />\r
+      </cxn>\r
+      <cxn ang="cang3">\r
+        <pos x="hc" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cang2">\r
+        <pos x="x2" y="y2" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="x1" y="y1" />\r
+        </moveTo>\r
+        <arcTo wR="wd2" hR="hd2" stAng="stAng" swAng="swAng" />\r
+        <lnTo>\r
+          <pt x="hc" y="vc" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none">\r
+        <moveTo>\r
+          <pt x="x1" y="y1" />\r
+        </moveTo>\r
+        <arcTo wR="wd2" hR="hd2" stAng="stAng" swAng="swAng" />\r
+      </path>\r
+    </pathLst>\r
+  </arc>\r
+  <bentArrow>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 25000" />\r
+\r
+      <gd name="adj2" fmla="val 25000" />\r
+\r
+      <gd name="adj3" fmla="val 25000" />\r
+\r
+      <gd name="adj4" fmla="val 43750" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a2" fmla="pin 0 adj2 50000" />\r
+      <gd name="maxAdj1" fmla="*/ a2 2 1" />\r
+\r
+      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
+      <gd name="a3" fmla="pin 0 adj3 50000" />\r
+      <gd name="th" fmla="*/ ss a1 100000" />\r
+\r
+      <gd name="aw2" fmla="*/ ss a2 100000" />\r
+\r
+      <gd name="th2" fmla="*/ th 1 2" />\r
+      <gd name="dh2" fmla="+- aw2 0 th2" />\r
+\r
+      <gd name="ah" fmla="*/ ss a3 100000" />\r
+\r
+      <gd name="bw" fmla="+- r 0 ah" />\r
+\r
+      <gd name="bh" fmla="+- b 0 dh2" />\r
+\r
+      <gd name="bs" fmla="min bw bh" />\r
+\r
+      <gd name="maxAdj4" fmla="*/ 100000 bs ss" />\r
+      <gd name="a4" fmla="pin 0 adj4 maxAdj4" />\r
+\r
+      <gd name="bd" fmla="*/ ss a4 100000" />\r
+\r
+\r
+      <gd name="bd3" fmla="+- bd 0 th" />\r
+      <gd name="bd2" fmla="max bd3 0" />\r
+      <gd name="x3" fmla="+- th bd2 0" />\r
+      <gd name="x4" fmla="+- r 0 ah" />\r
+\r
+\r
+      <gd name="y3" fmla="+- dh2 th 0" />\r
+      <gd name="y4" fmla="+- y3 dh2 0" />\r
+      <gd name="y5" fmla="+- dh2 bd 0" />\r
+      <gd name="y6" fmla="+- y3 bd2 0" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="0" maxX="maxAdj1">\r
+        <pos x="th" y="b" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj2" minY="0" maxY="50000">\r
+        <pos x="r" y="y4" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj3" minX="0" maxX="50000">\r
+        <pos x="x4" y="t" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj4" minX="0" maxX="maxAdj4">\r
+        <pos x="bd" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="x4" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x4" y="y4" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="th2" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="aw2" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="b" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="l" y="y5" />\r
+        </lnTo>\r
+        <arcTo wR="bd" hR="bd" stAng="cd2" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x4" y="dh2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="aw2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y3" />\r
+        </lnTo>\r
+        <arcTo wR="bd2" hR="bd2" stAng="3cd4" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="th" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </bentArrow>\r
+  <bentConnector2>\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path fill="none">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+  </bentConnector2>\r
+  <bentConnector3>\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 50000" />\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="x1" fmla="*/ w adj1 100000" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="-2147483647" maxX="2147483647">\r
+        <pos x="x1" y="vc" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path fill="none">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+  </bentConnector3>\r
+  <bentConnector4>\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 50000" />\r
+      <gd name="adj2" fmla="val 50000" />\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="x1" fmla="*/ w adj1 100000" />\r
+      <gd name="x2" fmla="+/ x1 r 2" />\r
+      <gd name="y2" fmla="*/ h adj2 100000" />\r
+      <gd name="y1" fmla="+/ t y2 2" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="-2147483647" maxX="2147483647">\r
+        <pos x="x1" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj2" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x2" y="y2" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path fill="none">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+  </bentConnector4>\r
+  <bentConnector5>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 50000" />\r
+\r
+      <gd name="adj2" fmla="val 50000" />\r
+\r
+      <gd name="adj3" fmla="val 50000" />\r
+\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="x1" fmla="*/ w adj1 100000" />\r
+\r
+      <gd name="x3" fmla="*/ w adj3 100000" />\r
+\r
+      <gd name="x2" fmla="+/ x1 x3 2" />\r
+\r
+      <gd name="y2" fmla="*/ h adj2 100000" />\r
+\r
+      <gd name="y1" fmla="+/ t y2 2" />\r
+\r
+      <gd name="y3" fmla="+/ b y2 2" />\r
+\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="-2147483647" maxX="2147483647">\r
+        <pos x="x1" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj2" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x2" y="y2" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj3" minX="-2147483647" maxX="2147483647">\r
+        <pos x="x3" y="y3" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path fill="none">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+\r
+  </bentConnector5>\r
+  <bentUpArrow>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 25000" />\r
+\r
+      <gd name="adj2" fmla="val 25000" />\r
+\r
+      <gd name="adj3" fmla="val 25000" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a1" fmla="pin 0 adj1 50000" />\r
+      <gd name="a2" fmla="pin 0 adj2 50000" />\r
+      <gd name="a3" fmla="pin 0 adj3 50000" />\r
+      <gd name="y1" fmla="*/ ss a3 100000" />\r
+      <gd name="dx1" fmla="*/ ss a2 50000" />\r
+\r
+      <gd name="x1" fmla="+- r 0 dx1" />\r
+      <gd name="dx3" fmla="*/ ss a2 100000" />\r
+\r
+      <gd name="x3" fmla="+- r 0 dx3" />\r
+      <gd name="dx2" fmla="*/ ss a1 200000" />\r
+\r
+      <gd name="x2" fmla="+- x3 0 dx2" />\r
+      <gd name="x4" fmla="+- x3 dx2 0" />\r
+      <gd name="dy2" fmla="*/ ss a1 100000" />\r
+\r
+      <gd name="y2" fmla="+- b 0 dy2" />\r
+      <gd name="x0" fmla="*/ x4 1 2" />\r
+      <gd name="y3" fmla="+/ y2 b 2" />\r
+      <gd name="y15" fmla="+/ y1 b 2" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="50000">\r
+        <pos x="l" y="y2" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="0" maxX="50000">\r
+        <pos x="x1" y="t" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj3" minY="0" maxY="50000">\r
+        <pos x="x2" y="y1" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="x3" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="y1" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="y3" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x0" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x4" y="y15" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="y1" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="y2" r="x4" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="y2" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </bentUpArrow>\r
+  <bevel>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 12500" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 50000" />\r
+      <gd name="x1" fmla="*/ ss a 100000" />\r
+\r
+\r
+\r
+      <gd name="x2" fmla="+- r 0 x1" />\r
+\r
+      <gd name="y2" fmla="+- b 0 x1" />\r
+\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj" minX="0" maxX="50000">\r
+        <pos x="x1" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x2" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="y2" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="x1" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="x1" t="x1" r="x2" b="y2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="x1" y="x1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="x1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y2" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path stroke="false" fill="lightenLess" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="x1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="x1" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path stroke="false" fill="darkenLess" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="l" y="b" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path stroke="false" fill="lighten" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="x1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path stroke="false" fill="darken" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="r" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="x1" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="x1" y="x1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="x1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y2" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="x1" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="l" y="b" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y2" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="r" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="x1" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="r" y="b" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+\r
+  </bevel>\r
+  <blockArc>\r
+\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 10800000" />\r
+\r
+      <gd name="adj2" fmla="val 0" />\r
+\r
+      <gd name="adj3" fmla="val 25000" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="stAng" fmla="pin 0 adj1 21599999" />\r
+      <gd name="istAng" fmla="pin 0 adj2 21599999" />\r
+      <gd name="a3" fmla="pin 0 adj3 50000" />\r
+      <gd name="sw11" fmla="+- istAng 0 stAng" />\r
+\r
+      <gd name="sw12" fmla="+- sw11 21600000 0" />\r
+\r
+      <gd name="swAng" fmla="?: sw11 sw11 sw12" />\r
+\r
+      <gd name="iswAng" fmla="+- 0 0 swAng" />\r
+\r
+\r
+      <gd name="wt1" fmla="sin wd2 stAng" />\r
+      <gd name="ht1" fmla="cos hd2 stAng" />\r
+      <gd name="wt3" fmla="sin wd2 istAng" />\r
+      <gd name="ht3" fmla="cos hd2 istAng" />\r
+      <gd name="dx1" fmla="cat2 wd2 ht1 wt1" />\r
+      <gd name="dy1" fmla="sat2 hd2 ht1 wt1" />\r
+      <gd name="dx3" fmla="cat2 wd2 ht3 wt3" />\r
+      <gd name="dy3" fmla="sat2 hd2 ht3 wt3" />\r
+      <gd name="x1" fmla="+- hc dx1 0" />\r
+\r
+      <gd name="y1" fmla="+- vc dy1 0" />\r
+\r
+      <gd name="x3" fmla="+- hc dx3 0" />\r
+\r
+      <gd name="y3" fmla="+- vc dy3 0" />\r
+\r
+\r
+      <gd name="dr" fmla="*/ ss a3 100000" />\r
+      <gd name="iwd2" fmla="+- wd2 0 dr" />\r
+      <gd name="ihd2" fmla="+- hd2 0 dr" />\r
+      <gd name="wt2" fmla="sin iwd2 istAng" />\r
+      <gd name="ht2" fmla="cos ihd2 istAng" />\r
+      <gd name="wt4" fmla="sin iwd2 stAng" />\r
+      <gd name="ht4" fmla="cos ihd2 stAng" />\r
+      <gd name="dx2" fmla="cat2 iwd2 ht2 wt2" />\r
+      <gd name="dy2" fmla="sat2 ihd2 ht2 wt2" />\r
+      <gd name="dx4" fmla="cat2 iwd2 ht4 wt4" />\r
+      <gd name="dy4" fmla="sat2 ihd2 ht4 wt4" />\r
+      <gd name="x2" fmla="+- hc dx2 0" />\r
+\r
+      <gd name="y2" fmla="+- vc dy2 0" />\r
+\r
+      <gd name="x4" fmla="+- hc dx4 0" />\r
+\r
+      <gd name="y4" fmla="+- vc dy4 0" />\r
+\r
+\r
+      <gd name="sw0" fmla="+- 21600000 0 stAng" />\r
+      <gd name="da1" fmla="+- swAng 0 sw0" />\r
+      <gd name="g1" fmla="max x1 x2" />\r
+      <gd name="g2" fmla="max x3 x4" />\r
+      <gd name="g3" fmla="max g1 g2" />\r
+      <gd name="ir" fmla="?: da1 r g3" />\r
+\r
+      <gd name="sw1" fmla="+- cd4 0 stAng" />\r
+      <gd name="sw2" fmla="+- 27000000 0 stAng" />\r
+      <gd name="sw3" fmla="?: sw1 sw1 sw2" />\r
+      <gd name="da2" fmla="+- swAng 0 sw3" />\r
+      <gd name="g5" fmla="max y1 y2" />\r
+      <gd name="g6" fmla="max y3 y4" />\r
+      <gd name="g7" fmla="max g5 g6" />\r
+      <gd name="ib" fmla="?: da2 b g7" />\r
+\r
+      <gd name="sw4" fmla="+- cd2 0 stAng" />\r
+      <gd name="sw5" fmla="+- 32400000 0 stAng" />\r
+      <gd name="sw6" fmla="?: sw4 sw4 sw5" />\r
+      <gd name="da3" fmla="+- swAng 0 sw6" />\r
+      <gd name="g9" fmla="min x1 x2" />\r
+      <gd name="g10" fmla="min x3 x4" />\r
+      <gd name="g11" fmla="min g9 g10" />\r
+      <gd name="il" fmla="?: da3 l g11" />\r
+\r
+      <gd name="sw7" fmla="+- 3cd4 0 stAng" />\r
+      <gd name="sw8" fmla="+- 37800000 0 stAng" />\r
+      <gd name="sw9" fmla="?: sw7 sw7 sw8" />\r
+      <gd name="da4" fmla="+- swAng 0 sw9" />\r
+      <gd name="g13" fmla="min y1 y2" />\r
+      <gd name="g14" fmla="min y3 y4" />\r
+      <gd name="g15" fmla="min g13 g14" />\r
+      <gd name="it" fmla="?: da4 t g15" />\r
+\r
+      <gd name="x5" fmla="+/ x1 x4 2" />\r
+\r
+      <gd name="y5" fmla="+/ y1 y4 2" />\r
+\r
+      <gd name="x6" fmla="+/ x3 x2 2" />\r
+\r
+      <gd name="y6" fmla="+/ y3 y2 2" />\r
+\r
+      <gd name="cang1" fmla="+- stAng 0 cd4" />\r
+      <gd name="cang2" fmla="+- istAng cd4 0" />\r
+      <gd name="cang3" fmla="+/ cang1 cang2 2" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahPolar gdRefAng="adj1" minAng="0" maxAng="21599999">\r
+        <pos x="x1" y="y1" />\r
+      </ahPolar>\r
+      <ahPolar gdRefR="adj3" minR="0" maxR="50000" gdRefAng="adj2" minAng="0" maxAng="21599999">\r
+        <pos x="x2" y="y2" />\r
+      </ahPolar>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="cang1">\r
+        <pos x="x5" y="y5" />\r
+      </cxn>\r
+      <cxn ang="cang2">\r
+        <pos x="x6" y="y6" />\r
+      </cxn>\r
+      <cxn ang="cang3">\r
+        <pos x="hc" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="x1" y="y1" />\r
+        </moveTo>\r
+        <arcTo wR="wd2" hR="hd2" stAng="stAng" swAng="swAng" />\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <arcTo wR="iwd2" hR="ihd2" stAng="istAng" swAng="iswAng" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </blockArc>\r
+  <borderCallout1>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+\r
+      <gd name="adj1" fmla="val 18750" />\r
+\r
+      <gd name="adj2" fmla="val -8333" />\r
+\r
+      <gd name="adj3" fmla="val 112500" />\r
+\r
+      <gd name="adj4" fmla="val -38333" />\r
+\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="y1" fmla="*/ h adj1 100000" />\r
+      <gd name="x1" fmla="*/ w adj2 100000" />\r
+      <gd name="y2" fmla="*/ h adj3 100000" />\r
+      <gd name="x2" fmla="*/ w adj4 100000" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj2" minX="-2147483647" maxX="2147483647" gdRefY="adj1" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x1" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj4" minX="-2147483647" maxX="2147483647" gdRefY="adj3" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x2" y="y2" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="x1" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+\r
+  </borderCallout1>\r
+  <borderCallout2>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+\r
+      <gd name="adj1" fmla="val 18750" />\r
+\r
+      <gd name="adj2" fmla="val -8333" />\r
+\r
+      <gd name="adj3" fmla="val 18750" />\r
+\r
+      <gd name="adj4" fmla="val -16667" />\r
+\r
+      <gd name="adj5" fmla="val 112500" />\r
+\r
+      <gd name="adj6" fmla="val -46667" />\r
+\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="y1" fmla="*/ h adj1 100000" />\r
+      <gd name="x1" fmla="*/ w adj2 100000" />\r
+      <gd name="y2" fmla="*/ h adj3 100000" />\r
+      <gd name="x2" fmla="*/ w adj4 100000" />\r
+      <gd name="y3" fmla="*/ h adj5 100000" />\r
+      <gd name="x3" fmla="*/ w adj6 100000" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj2" minX="-2147483647" maxX="2147483647" gdRefY="adj1" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x1" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj4" minX="-2147483647" maxX="2147483647" gdRefY="adj3" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x2" y="y2" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj6" minX="-2147483647" maxX="2147483647" gdRefY="adj5" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x3" y="y3" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="x1" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y3" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+\r
+  </borderCallout2>\r
+  <borderCallout3>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+\r
+      <gd name="adj1" fmla="val 18750" />\r
+\r
+      <gd name="adj2" fmla="val -8333" />\r
+\r
+      <gd name="adj3" fmla="val 18750" />\r
+\r
+      <gd name="adj4" fmla="val -16667" />\r
+\r
+      <gd name="adj5" fmla="val 100000" />\r
+\r
+      <gd name="adj6" fmla="val -16667" />\r
+\r
+      <gd name="adj7" fmla="val 112963" />\r
+\r
+      <gd name="adj8" fmla="val -8333" />\r
+\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="y1" fmla="*/ h adj1 100000" />\r
+      <gd name="x1" fmla="*/ w adj2 100000" />\r
+      <gd name="y2" fmla="*/ h adj3 100000" />\r
+      <gd name="x2" fmla="*/ w adj4 100000" />\r
+      <gd name="y3" fmla="*/ h adj5 100000" />\r
+      <gd name="x3" fmla="*/ w adj6 100000" />\r
+      <gd name="y4" fmla="*/ h adj7 100000" />\r
+      <gd name="x4" fmla="*/ w adj8 100000" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj2" minX="-2147483647" maxX="2147483647" gdRefY="adj1" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x1" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj4" minX="-2147483647" maxX="2147483647" gdRefY="adj3" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x2" y="y2" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj6" minX="-2147483647" maxX="2147483647" gdRefY="adj5" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x3" y="y3" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj8" minX="-2147483647" maxX="2147483647" gdRefY="adj7" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x4" y="y4" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="x1" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y4" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+\r
+  </borderCallout3>\r
+  <bracePair>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 8333" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 25000" />\r
+      <gd name="x1" fmla="*/ ss a 100000" />\r
+      <gd name="x2" fmla="*/ ss a 50000" />\r
+      <gd name="x3" fmla="+- r 0 x2" />\r
+      <gd name="x4" fmla="+- r 0 x1" />\r
+\r
+      <gd name="y2" fmla="+- vc 0 x1" />\r
+      <gd name="y3" fmla="+- vc x1 0" />\r
+      <gd name="y4" fmla="+- b 0 x1" />\r
+      <gd name="it" fmla="*/ x1 29289 100000" />\r
+\r
+      <gd name="il" fmla="+- x1 it 0" />\r
+      <gd name="ir" fmla="+- r 0 il" />\r
+      <gd name="ib" fmla="+- b 0 it" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj" minY="0" maxY="25000">\r
+        <pos x="l" y="x1" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="il" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="x2" y="b" />\r
+        </moveTo>\r
+        <arcTo wR="x1" hR="x1" stAng="cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x1" y="y3" />\r
+        </lnTo>\r
+        <arcTo wR="x1" hR="x1" stAng="0" swAng="-5400000" />\r
+        <arcTo wR="x1" hR="x1" stAng="cd4" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="x1" y="x1" />\r
+        </lnTo>\r
+        <arcTo wR="x1" hR="x1" stAng="cd2" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x3" y="t" />\r
+        </lnTo>\r
+        <arcTo wR="x1" hR="x1" stAng="3cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x4" y="y2" />\r
+        </lnTo>\r
+        <arcTo wR="x1" hR="x1" stAng="cd2" swAng="-5400000" />\r
+        <arcTo wR="x1" hR="x1" stAng="3cd4" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="x4" y="y4" />\r
+        </lnTo>\r
+        <arcTo wR="x1" hR="x1" stAng="0" swAng="cd4" />\r
+        <close />\r
+      </path>\r
+      <path fill="none">\r
+        <moveTo>\r
+          <pt x="x2" y="b" />\r
+        </moveTo>\r
+        <arcTo wR="x1" hR="x1" stAng="cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x1" y="y3" />\r
+        </lnTo>\r
+        <arcTo wR="x1" hR="x1" stAng="0" swAng="-5400000" />\r
+        <arcTo wR="x1" hR="x1" stAng="cd4" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="x1" y="x1" />\r
+        </lnTo>\r
+        <arcTo wR="x1" hR="x1" stAng="cd2" swAng="cd4" />\r
+        <moveTo>\r
+          <pt x="x3" y="t" />\r
+        </moveTo>\r
+        <arcTo wR="x1" hR="x1" stAng="3cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x4" y="y2" />\r
+        </lnTo>\r
+        <arcTo wR="x1" hR="x1" stAng="cd2" swAng="-5400000" />\r
+        <arcTo wR="x1" hR="x1" stAng="3cd4" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="x4" y="y4" />\r
+        </lnTo>\r
+        <arcTo wR="x1" hR="x1" stAng="0" swAng="cd4" />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </bracePair>\r
+  <bracketPair>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 16667" />\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 50000" />\r
+      <gd name="x1" fmla="*/ ss a 100000" />\r
+      <gd name="x2" fmla="+- r 0 x1" />\r
+\r
+      <gd name="y2" fmla="+- b 0 x1" />\r
+      <gd name="il" fmla="*/ x1 29289 100000" />\r
+\r
+\r
+      <gd name="ir" fmla="+- r 0 il" />\r
+      <gd name="ib" fmla="+- b 0 il" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj" minY="0" maxY="50000">\r
+        <pos x="l" y="x1" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="il" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="x1" />\r
+        </moveTo>\r
+        <arcTo wR="x1" hR="x1" stAng="cd2" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x2" y="t" />\r
+        </lnTo>\r
+        <arcTo wR="x1" hR="x1" stAng="3cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="r" y="y2" />\r
+        </lnTo>\r
+        <arcTo wR="x1" hR="x1" stAng="0" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x1" y="b" />\r
+        </lnTo>\r
+        <arcTo wR="x1" hR="x1" stAng="cd4" swAng="cd4" />\r
+        <close />\r
+      </path>\r
+      <path fill="none">\r
+        <moveTo>\r
+          <pt x="x1" y="b" />\r
+        </moveTo>\r
+        <arcTo wR="x1" hR="x1" stAng="cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="l" y="x1" />\r
+        </lnTo>\r
+        <arcTo wR="x1" hR="x1" stAng="cd2" swAng="cd4" />\r
+        <moveTo>\r
+          <pt x="x2" y="t" />\r
+        </moveTo>\r
+        <arcTo wR="x1" hR="x1" stAng="3cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="r" y="y2" />\r
+        </lnTo>\r
+        <arcTo wR="x1" hR="x1" stAng="0" swAng="cd4" />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </bracketPair>\r
+  <callout1>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+\r
+      <gd name="adj1" fmla="val 18750" />\r
+\r
+      <gd name="adj2" fmla="val -8333" />\r
+\r
+      <gd name="adj3" fmla="val 112500" />\r
+\r
+      <gd name="adj4" fmla="val -38333" />\r
+\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="y1" fmla="*/ h adj1 100000" />\r
+      <gd name="x1" fmla="*/ w adj2 100000" />\r
+      <gd name="y2" fmla="*/ h adj3 100000" />\r
+      <gd name="x2" fmla="*/ w adj4 100000" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj2" minX="-2147483647" maxX="2147483647" gdRefY="adj1" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x1" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj4" minX="-2147483647" maxX="2147483647" gdRefY="adj3" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x2" y="y2" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="x1" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+\r
+  </callout1>\r
+  <callout2>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+\r
+      <gd name="adj1" fmla="val 18750" />\r
+\r
+      <gd name="adj2" fmla="val -8333" />\r
+\r
+      <gd name="adj3" fmla="val 18750" />\r
+\r
+      <gd name="adj4" fmla="val -16667" />\r
+\r
+      <gd name="adj5" fmla="val 112500" />\r
+\r
+      <gd name="adj6" fmla="val -46667" />\r
+\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="y1" fmla="*/ h adj1 100000" />\r
+      <gd name="x1" fmla="*/ w adj2 100000" />\r
+      <gd name="y2" fmla="*/ h adj3 100000" />\r
+      <gd name="x2" fmla="*/ w adj4 100000" />\r
+      <gd name="y3" fmla="*/ h adj5 100000" />\r
+      <gd name="x3" fmla="*/ w adj6 100000" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj2" minX="-2147483647" maxX="2147483647" gdRefY="adj1" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x1" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj4" minX="-2147483647" maxX="2147483647" gdRefY="adj3" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x2" y="y2" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj6" minX="-2147483647" maxX="2147483647" gdRefY="adj5" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x3" y="y3" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="x1" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y3" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+\r
+  </callout2>\r
+  <callout3>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+\r
+      <gd name="adj1" fmla="val 18750" />\r
+\r
+      <gd name="adj2" fmla="val -8333" />\r
+\r
+      <gd name="adj3" fmla="val 18750" />\r
+\r
+      <gd name="adj4" fmla="val -16667" />\r
+\r
+      <gd name="adj5" fmla="val 100000" />\r
+\r
+      <gd name="adj6" fmla="val -16667" />\r
+\r
+      <gd name="adj7" fmla="val 112963" />\r
+\r
+      <gd name="adj8" fmla="val -8333" />\r
+\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="y1" fmla="*/ h adj1 100000" />\r
+      <gd name="x1" fmla="*/ w adj2 100000" />\r
+      <gd name="y2" fmla="*/ h adj3 100000" />\r
+      <gd name="x2" fmla="*/ w adj4 100000" />\r
+      <gd name="y3" fmla="*/ h adj5 100000" />\r
+      <gd name="x3" fmla="*/ w adj6 100000" />\r
+      <gd name="y4" fmla="*/ h adj7 100000" />\r
+      <gd name="x4" fmla="*/ w adj8 100000" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj2" minX="-2147483647" maxX="2147483647" gdRefY="adj1" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x1" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj4" minX="-2147483647" maxX="2147483647" gdRefY="adj3" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x2" y="y2" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj6" minX="-2147483647" maxX="2147483647" gdRefY="adj5" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x3" y="y3" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj8" minX="-2147483647" maxX="2147483647" gdRefY="adj7" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x4" y="y4" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="x1" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y4" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+\r
+  </callout3>\r
+  <can>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 25000" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj" fmla="*/ 50000 h ss" />\r
+      <gd name="a" fmla="pin 0 adj maxAdj" />\r
+      <gd name="y1" fmla="*/ ss a 200000" />\r
+      <gd name="y2" fmla="+- y1 y1 0" />\r
+      <gd name="y3" fmla="+- b 0 y1" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj" minY="0" maxY="maxAdj">\r
+        <pos x="hc" y="y2" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="y2" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="y2" r="r" b="y3" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="l" y="y1" />\r
+        </moveTo>\r
+        <arcTo wR="wd2" hR="y1" stAng="cd2" swAng="-10800000" />\r
+        <lnTo>\r
+          <pt x="r" y="y3" />\r
+        </lnTo>\r
+        <arcTo wR="wd2" hR="y1" stAng="0" swAng="cd2" />\r
+        <close />\r
+      </path>\r
+      <path stroke="false" fill="lighten" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="l" y="y1" />\r
+        </moveTo>\r
+        <arcTo wR="wd2" hR="y1" stAng="cd2" swAng="cd2" />\r
+        <arcTo wR="wd2" hR="y1" stAng="0" swAng="cd2" />\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="r" y="y1" />\r
+        </moveTo>\r
+        <arcTo wR="wd2" hR="y1" stAng="0" swAng="cd2" />\r
+        <arcTo wR="wd2" hR="y1" stAng="cd2" swAng="cd2" />\r
+        <lnTo>\r
+          <pt x="r" y="y3" />\r
+        </lnTo>\r
+        <arcTo wR="wd2" hR="y1" stAng="0" swAng="cd2" />\r
+        <lnTo>\r
+          <pt x="l" y="y1" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+\r
+  </can>\r
+  <chartPlus>\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path w="10" h="10" fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="5" y="0" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="5" y="10" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="0" y="5" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="10" y="5" />\r
+        </lnTo>\r
+      </path>\r
+      <path w="10" h="10" stroke="false">\r
+        <moveTo>\r
+          <pt x="0" y="0" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="0" y="10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="10" y="10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="10" y="0" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </chartPlus>\r
+  <chartStar>\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path w="10" h="10" fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="0" y="0" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="10" y="10" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="0" y="10" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="10" y="0" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="5" y="0" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="5" y="10" />\r
+        </lnTo>\r
+      </path>\r
+      <path w="10" h="10" stroke="false">\r
+        <moveTo>\r
+          <pt x="0" y="0" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="0" y="10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="10" y="10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="10" y="0" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </chartStar>\r
+  <chartX>\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path w="10" h="10" fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="0" y="0" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="10" y="10" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="0" y="10" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="10" y="0" />\r
+        </lnTo>\r
+      </path>\r
+      <path w="10" h="10" stroke="false">\r
+        <moveTo>\r
+          <pt x="0" y="0" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="0" y="10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="10" y="10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="10" y="0" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </chartX>\r
+  <chevron>\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 50000" />\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj" fmla="*/ 100000 w ss" />\r
+      <gd name="a" fmla="pin 0 adj maxAdj" />\r
+      <gd name="x1" fmla="*/ ss a 100000" />\r
+      <gd name="x2" fmla="+- r 0 x1" />\r
+      <gd name="x3" fmla="*/ x2 1 2" />\r
+      <gd name="dx" fmla="+- x2 0 x1" />\r
+      <gd name="il" fmla="?: dx x1 l" />\r
+      <gd name="ir" fmla="?: dx x2 r" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj" minX="0" maxX="maxAdj">\r
+        <pos x="x2" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="x3" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x3" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="il" t="t" r="ir" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="vc" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+  </chevron>\r
+  <chord>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 2700000" />\r
+\r
+      <gd name="adj2" fmla="val 16200000" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="stAng" fmla="pin 0 adj1 21599999" />\r
+      <gd name="enAng" fmla="pin 0 adj2 21599999" />\r
+      <gd name="sw1" fmla="+- enAng 0 stAng" />\r
+\r
+      <gd name="sw2" fmla="+- sw1 21600000 0" />\r
+\r
+      <gd name="swAng" fmla="?: sw1 sw1 sw2" />\r
+\r
+      <gd name="wt1" fmla="sin wd2 stAng" />\r
+      <gd name="ht1" fmla="cos hd2 stAng" />\r
+      <gd name="dx1" fmla="cat2 wd2 ht1 wt1" />\r
+      <gd name="dy1" fmla="sat2 hd2 ht1 wt1" />\r
+      <gd name="wt2" fmla="sin wd2 enAng" />\r
+      <gd name="ht2" fmla="cos hd2 enAng" />\r
+      <gd name="dx2" fmla="cat2 wd2 ht2 wt2" />\r
+      <gd name="dy2" fmla="sat2 hd2 ht2 wt2" />\r
+      <gd name="x1" fmla="+- hc dx1 0" />\r
+\r
+      <gd name="y1" fmla="+- vc dy1 0" />\r
+\r
+      <gd name="x2" fmla="+- hc dx2 0" />\r
+\r
+      <gd name="y2" fmla="+- vc dy2 0" />\r
+\r
+      <gd name="x3" fmla="+/ x1 x2 2" />\r
+      <gd name="y3" fmla="+/ y1 y2 2" />\r
+      <gd name="midAng0" fmla="*/ swAng 1 2" />\r
+      <gd name="midAng" fmla="+- stAng midAng0 cd2" />\r
+      <gd name="idx" fmla="cos wd2 2700000" />\r
+      <gd name="idy" fmla="sin hd2 2700000" />\r
+      <gd name="il" fmla="+- hc 0 idx" />\r
+      <gd name="ir" fmla="+- hc idx 0" />\r
+      <gd name="it" fmla="+- vc 0 idy" />\r
+      <gd name="ib" fmla="+- vc idy 0" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahPolar gdRefAng="adj1" minAng="0" maxAng="21599999">\r
+        <pos x="x1" y="y1" />\r
+      </ahPolar>\r
+      <ahPolar gdRefAng="adj2" minAng="0" maxAng="21599999">\r
+        <pos x="x2" y="y2" />\r
+      </ahPolar>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="stAng">\r
+        <pos x="x1" y="y1" />\r
+      </cxn>\r
+      <cxn ang="enAng">\r
+        <pos x="x2" y="y2" />\r
+      </cxn>\r
+      <cxn ang="midAng">\r
+        <pos x="x3" y="y3" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="x1" y="y1" />\r
+        </moveTo>\r
+        <arcTo wR="wd2" hR="hd2" stAng="stAng" swAng="swAng" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </chord>\r
+  <circularArrow>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 12500" />\r
+\r
+      <gd name="adj2" fmla="val 1142319" />\r
+\r
+      <gd name="adj3" fmla="val 20457681" />\r
+\r
+      <gd name="adj4" fmla="val 10800000" />\r
+\r
+      <gd name="adj5" fmla="val 12500" />\r
+\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a5" fmla="pin 0 adj5 25000" />\r
+\r
+      <gd name="maxAdj1" fmla="*/ a5 2 1" />\r
+\r
+      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
+      <gd name="enAng" fmla="pin 1 adj3 21599999" />\r
+      <gd name="stAng" fmla="pin 0 adj4 21599999" />\r
+\r
+      <gd name="th" fmla="*/ ss a1 100000" />\r
+\r
+      <gd name="thh" fmla="*/ ss a5 100000" />\r
+\r
+      <gd name="th2" fmla="*/ th 1 2" />\r
+\r
+\r
+      <gd name="rw1" fmla="+- wd2 th2 thh" />\r
+\r
+      <gd name="rh1" fmla="+- hd2 th2 thh" />\r
+\r
+      <gd name="rw2" fmla="+- rw1 0 th" />\r
+\r
+      <gd name="rh2" fmla="+- rh1 0 th" />\r
+\r
+      <gd name="rw3" fmla="+- rw2 th2 0" />\r
+\r
+      <gd name="rh3" fmla="+- rh2 th2 0" />\r
+\r
+\r
+      <gd name="wtH" fmla="sin rw3 enAng" />\r
+      <gd name="htH" fmla="cos rh3 enAng" />\r
+      <gd name="dxH" fmla="cat2 rw3 htH wtH" />\r
+      <gd name="dyH" fmla="sat2 rh3 htH wtH" />\r
+      <gd name="xH" fmla="+- hc dxH 0" />\r
+\r
+      <gd name="yH" fmla="+- vc dyH 0" />\r
+\r
+\r
+      <gd name="rI" fmla="min rw2 rh2" />\r
+\r
+      <gd name="u1" fmla="*/ dxH dxH 1" />\r
+      <gd name="u2" fmla="*/ dyH dyH 1" />\r
+      <gd name="u3" fmla="*/ rI rI 1" />\r
+      <gd name="u4" fmla="+- u1 0 u3" />\r
+      <gd name="u5" fmla="+- u2 0 u3" />\r
+      <gd name="u6" fmla="*/ u4 u5 u1" />\r
+      <gd name="u7" fmla="*/ u6 1 u2" />\r
+      <gd name="u8" fmla="+- 1 0 u7" />\r
+      <gd name="u9" fmla="sqrt u8" />\r
+      <gd name="u10" fmla="*/ u4 1 dxH" />\r
+      <gd name="u11" fmla="*/ u10 1 dyH" />\r
+      <gd name="u12" fmla="+/ 1 u9 u11" />\r
+      <gd name="u13" fmla="at2 1 u12" />\r
+      <gd name="u14" fmla="+- u13 21600000 0" />\r
+      <gd name="u15" fmla="?: u13 u13 u14" />\r
+      <gd name="u16" fmla="+- u15 0 enAng" />\r
+\r
+      <gd name="u17" fmla="+- u16 21600000 0" />\r
+      <gd name="u18" fmla="?: u16 u16 u17" />\r
+      <gd name="u19" fmla="+- u18 0 cd2" />\r
+      <gd name="u20" fmla="+- u18 0 21600000" />\r
+      <gd name="u21" fmla="?: u19 u20 u18" />\r
+      <gd name="maxAng" fmla="abs u21" />\r
+      <gd name="aAng" fmla="pin 0 adj2 maxAng" />\r
+\r
+      <gd name="ptAng" fmla="+- enAng aAng 0" />\r
+\r
+\r
+      <gd name="wtA" fmla="sin rw3 ptAng" />\r
+      <gd name="htA" fmla="cos rh3 ptAng" />\r
+      <gd name="dxA" fmla="cat2 rw3 htA wtA" />\r
+      <gd name="dyA" fmla="sat2 rh3 htA wtA" />\r
+      <gd name="xA" fmla="+- hc dxA 0" />\r
+\r
+      <gd name="yA" fmla="+- vc dyA 0" />\r
+\r
+\r
+      <gd name="wtE" fmla="sin rw1 stAng" />\r
+      <gd name="htE" fmla="cos rh1 stAng" />\r
+      <gd name="dxE" fmla="cat2 rw1 htE wtE" />\r
+      <gd name="dyE" fmla="sat2 rh1 htE wtE" />\r
+      <gd name="xE" fmla="+- hc dxE 0" />\r
+\r
+      <gd name="yE" fmla="+- vc dyE 0" />\r
+\r
+\r
+      <gd name="dxG" fmla="cos thh ptAng" />\r
+      <gd name="dyG" fmla="sin thh ptAng" />\r
+      <gd name="xG" fmla="+- xH dxG 0" />\r
+\r
+      <gd name="yG" fmla="+- yH dyG 0" />\r
+\r
+\r
+      <gd name="dxB" fmla="cos thh ptAng" />\r
+      <gd name="dyB" fmla="sin thh ptAng" />\r
+      <gd name="xB" fmla="+- xH 0 dxB 0" />\r
+\r
+      <gd name="yB" fmla="+- yH 0 dyB 0" />\r
+\r
+\r
+      <gd name="sx1" fmla="+- xB 0 hc" />\r
+\r
+      <gd name="sy1" fmla="+- yB 0 vc" />\r
+\r
+      <gd name="sx2" fmla="+- xG 0 hc" />\r
+\r
+      <gd name="sy2" fmla="+- yG 0 vc" />\r
+\r
+\r
+      <gd name="rO" fmla="min rw1 rh1" />\r
+\r
+      <gd name="x1O" fmla="*/ sx1 rO rw1" />\r
+\r
+      <gd name="y1O" fmla="*/ sy1 rO rh1" />\r
+\r
+      <gd name="x2O" fmla="*/ sx2 rO rw1" />\r
+\r
+      <gd name="y2O" fmla="*/ sy2 rO rh1" />\r
+\r
+\r
+      <gd name="dxO" fmla="+- x2O 0 x1O" />\r
+      <gd name="dyO" fmla="+- y2O 0 y1O" />\r
+      <gd name="dO" fmla="mod dxO dyO 0" />\r
+\r
+      <gd name="q1" fmla="*/ x1O y2O 1" />\r
+      <gd name="q2" fmla="*/ x2O y1O 1" />\r
+      <gd name="DO" fmla="+- q1 0 q2" />\r
+\r
+\r
+      <gd name="q3" fmla="*/ rO rO 1" />\r
+\r
+      <gd name="q4" fmla="*/ dO dO 1" />\r
+\r
+      <gd name="q5" fmla="*/ q3 q4 1" />\r
+\r
+      <gd name="q6" fmla="*/ DO DO 1" />\r
+\r
+      <gd name="q7" fmla="+- q5 0 q6" />\r
+\r
+      <gd name="q8" fmla="max q7 0" />\r
+\r
+      <gd name="sdelO" fmla="sqrt q8" />\r
+\r
+      <gd name="ndyO" fmla="*/ dyO -1 1" />\r
+      <gd name="sdyO" fmla="?: ndyO -1 1" />\r
+\r
+      <gd name="q9" fmla="*/ sdyO dxO 1" />\r
+\r
+      <gd name="q10" fmla="*/ q9 sdelO 1" />\r
+\r
+      <gd name="q11" fmla="*/ DO dyO 1" />\r
+\r
+      <gd name="dxF1" fmla="+/ q11 q10 q4" />\r
+\r
+      <gd name="q12" fmla="+- q11 0 q10" />\r
+      <gd name="dxF2" fmla="*/ q12 1 q4" />\r
+\r
+\r
+      <gd name="adyO" fmla="abs dyO" />\r
+      <gd name="q13" fmla="*/ adyO sdelO 1" />\r
+\r
+      <gd name="q14" fmla="*/ DO dxO -1" />\r
+\r
+      <gd name="dyF1" fmla="+/ q14 q13 q4" />\r
+\r
+      <gd name="q15" fmla="+- q14 0 q13" />\r
+      <gd name="dyF2" fmla="*/ q15 1 q4" />\r
+\r
+\r
+\r
+      <gd name="q16" fmla="+- x2O 0 dxF1" />\r
+      <gd name="q17" fmla="+- x2O 0 dxF2" />\r
+      <gd name="q18" fmla="+- y2O 0 dyF1" />\r
+      <gd name="q19" fmla="+- y2O 0 dyF2" />\r
+      <gd name="q20" fmla="mod q16 q18 0" />\r
+\r
+      <gd name="q21" fmla="mod q17 q19 0" />\r
+\r
+      <gd name="q22" fmla="+- q21 0 q20" />\r
+      <gd name="dxF" fmla="?: q22 dxF1 dxF2" />\r
+\r
+      <gd name="dyF" fmla="?: q22 dyF1 dyF2" />\r
+\r
+      <gd name="sdxF" fmla="*/ dxF rw1 rO" />\r
+\r
+      <gd name="sdyF" fmla="*/ dyF rh1 rO" />\r
+\r
+      <gd name="xF" fmla="+- hc sdxF 0" />\r
+\r
+      <gd name="yF" fmla="+- vc sdyF 0" />\r
+\r
+\r
+\r
+\r
+      <gd name="x1I" fmla="*/ sx1 rI rw2" />\r
+\r
+      <gd name="y1I" fmla="*/ sy1 rI rh2" />\r
+\r
+      <gd name="x2I" fmla="*/ sx2 rI rw2" />\r
+\r
+      <gd name="y2I" fmla="*/ sy2 rI rh2" />\r
+\r
+\r
+      <gd name="dxI" fmla="+- x2I 0 x1I" />\r
+      <gd name="dyI" fmla="+- y2I 0 y1I" />\r
+      <gd name="dI" fmla="mod dxI dyI 0" />\r
+      <gd name="v1" fmla="*/ x1I y2I 1" />\r
+      <gd name="v2" fmla="*/ x2I y1I 1" />\r
+      <gd name="DI" fmla="+- v1 0 v2" />\r
+\r
+      <gd name="v3" fmla="*/ rI rI 1" />\r
+      <gd name="v4" fmla="*/ dI dI 1" />\r
+      <gd name="v5" fmla="*/ v3 v4 1" />\r
+      <gd name="v6" fmla="*/ DI DI 1" />\r
+      <gd name="v7" fmla="+- v5 0 v6" />\r
+      <gd name="v8" fmla="max v7 0" />\r
+      <gd name="sdelI" fmla="sqrt v8" />\r
+      <gd name="v9" fmla="*/ sdyO dxI 1" />\r
+      <gd name="v10" fmla="*/ v9 sdelI 1" />\r
+      <gd name="v11" fmla="*/ DI dyI 1" />\r
+      <gd name="dxC1" fmla="+/ v11 v10 v4" />\r
+      <gd name="v12" fmla="+- v11 0 v10" />\r
+      <gd name="dxC2" fmla="*/ v12 1 v4" />\r
+\r
+      <gd name="adyI" fmla="abs dyI" />\r
+      <gd name="v13" fmla="*/ adyI sdelI 1" />\r
+      <gd name="v14" fmla="*/ DI dxI -1" />\r
+      <gd name="dyC1" fmla="+/ v14 v13 v4" />\r
+      <gd name="v15" fmla="+- v14 0 v13" />\r
+      <gd name="dyC2" fmla="*/ v15 1 v4" />\r
+\r
+      <gd name="v16" fmla="+- x1I 0 dxC1" />\r
+      <gd name="v17" fmla="+- x1I 0 dxC2" />\r
+      <gd name="v18" fmla="+- y1I 0 dyC1" />\r
+      <gd name="v19" fmla="+- y1I 0 dyC2" />\r
+      <gd name="v20" fmla="mod v16 v18 0" />\r
+      <gd name="v21" fmla="mod v17 v19 0" />\r
+      <gd name="v22" fmla="+- v21 0 v20" />\r
+      <gd name="dxC" fmla="?: v22 dxC1 dxC2" />\r
+      <gd name="dyC" fmla="?: v22 dyC1 dyC2" />\r
+      <gd name="sdxC" fmla="*/ dxC rw2 rI" />\r
+      <gd name="sdyC" fmla="*/ dyC rh2 rI" />\r
+      <gd name="xC" fmla="+- hc sdxC 0" />\r
+\r
+      <gd name="yC" fmla="+- vc sdyC 0" />\r
+\r
+\r
+      <gd name="ist0" fmla="at2 sdxC sdyC" />\r
+      <gd name="ist1" fmla="+- ist0 21600000 0" />\r
+      <gd name="istAng" fmla="?: ist0 ist0 ist1" />\r
+      <gd name="isw1" fmla="+- stAng 0 istAng" />\r
+      <gd name="isw2" fmla="+- isw1 0 21600000" />\r
+      <gd name="iswAng" fmla="?: isw1 isw2 isw1" />\r
+\r
+\r
+      <gd name="p1" fmla="+- xF 0 xC" />\r
+      <gd name="p2" fmla="+- yF 0 yC" />\r
+      <gd name="p3" fmla="mod p1 p2 0" />\r
+      <gd name="p4" fmla="*/ p3 1 2" />\r
+      <gd name="p5" fmla="+- p4 0 thh" />\r
+      <gd name="xGp" fmla="?: p5 xF xG" />\r
+      <gd name="yGp" fmla="?: p5 yF yG" />\r
+      <gd name="xBp" fmla="?: p5 xC xB" />\r
+      <gd name="yBp" fmla="?: p5 yC yB" />\r
+\r
+      <gd name="en0" fmla="at2 sdxF sdyF" />\r
+      <gd name="en1" fmla="+- en0 21600000 0" />\r
+      <gd name="en2" fmla="?: en0 en0 en1" />\r
+      <gd name="sw0" fmla="+- en2 0 stAng" />\r
+      <gd name="sw1" fmla="+- sw0 21600000 0" />\r
+      <gd name="swAng" fmla="?: sw0 sw0 sw1" />\r
+\r
+      <gd name="wtI" fmla="sin rw3 stAng" />\r
+      <gd name="htI" fmla="cos rh3 stAng" />\r
+      <gd name="dxI" fmla="cat2 rw3 htI wtI" />\r
+      <gd name="dyI" fmla="sat2 rh3 htI wtI" />\r
+      <gd name="xI" fmla="+- hc dxI 0" />\r
+\r
+      <gd name="yI" fmla="+- vc dyI 0" />\r
+\r
+\r
+      <gd name="aI" fmla="+- stAng 0 cd4" />\r
+      <gd name="aA" fmla="+- ptAng cd4 0" />\r
+      <gd name="aB" fmla="+- ptAng cd2 0" />\r
+\r
+      <gd name="idx" fmla="cos rw1 2700000" />\r
+      <gd name="idy" fmla="sin rh1 2700000" />\r
+      <gd name="il" fmla="+- hc 0 idx" />\r
+      <gd name="ir" fmla="+- hc idx 0" />\r
+      <gd name="it" fmla="+- vc 0 idy" />\r
+      <gd name="ib" fmla="+- vc idy 0" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahPolar gdRefAng="adj2" minAng="0" maxAng="maxAng">\r
+        <pos x="xA" y="yA" />\r
+      </ahPolar>\r
+      <ahPolar gdRefAng="adj4" minAng="0" maxAng="21599999">\r
+        <pos x="xE" y="yE" />\r
+      </ahPolar>\r
+      <ahPolar gdRefR="adj1" minR="0" maxR="maxAdj1" gdRefAng="adj3" minAng="0" maxAng="21599999">\r
+        <pos x="xF" y="yF" />\r
+      </ahPolar>\r
+      <ahPolar gdRefR="adj5" minR="0" maxR="25000">\r
+        <pos x="xB" y="yB" />\r
+      </ahPolar>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="aI">\r
+        <pos x="xI" y="yI" />\r
+      </cxn>\r
+      <cxn ang="ptAng">\r
+        <pos x="xGp" y="yGp" />\r
+      </cxn>\r
+      <cxn ang="aA">\r
+        <pos x="xA" y="yA" />\r
+      </cxn>\r
+      <cxn ang="aB">\r
+        <pos x="xBp" y="yBp" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="xE" y="yE" />\r
+        </moveTo>\r
+        <arcTo wR="rw1" hR="rh1" stAng="stAng" swAng="swAng" />\r
+        <lnTo>\r
+          <pt x="xGp" y="yGp" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xA" y="yA" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xBp" y="yBp" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xC" y="yC" />\r
+        </lnTo>\r
+        <arcTo wR="rw2" hR="rh2" stAng="istAng" swAng="iswAng" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </circularArrow>\r
+  <cloud>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="il" fmla="*/ w 2977 21600" />\r
+      <gd name="it" fmla="*/ h 3262 21600" />\r
+      <gd name="ir" fmla="*/ w 17087 21600" />\r
+      <gd name="ib" fmla="*/ h 17337 21600" />\r
+      <gd name="g27" fmla="*/ w 67 21600" />\r
+      <gd name="g28" fmla="*/ h 21577 21600" />\r
+      <gd name="g29" fmla="*/ w 21582 21600" />\r
+      <gd name="g30" fmla="*/ h 1235 21600" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="g29" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="g28" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="g27" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="g30" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path w="43200" h="43200">\r
+        <moveTo>\r
+          <pt x="3900" y="14370" />\r
+        </moveTo>\r
+        <arcTo wR="6753" hR="9190" stAng="-11429249" swAng="7426832" />\r
+        <arcTo wR="5333" hR="7267" stAng="-8646143" swAng="5396714" />\r
+        <arcTo wR="4365" hR="5945" stAng="-8748475" swAng="5983381" />\r
+        <arcTo wR="4857" hR="6595" stAng="-7859164" swAng="7034504" />\r
+        <arcTo wR="5333" hR="7273" stAng="-4722533" swAng="6541615" />\r
+        <arcTo wR="6775" hR="9220" stAng="-2776035" swAng="7816140" />\r
+        <arcTo wR="5785" hR="7867" stAng="37501" swAng="6842000" />\r
+        <arcTo wR="6752" hR="9215" stAng="1347096" swAng="6910353" />\r
+        <arcTo wR="7720" hR="10543" stAng="3974558" swAng="4542661" />\r
+        <arcTo wR="4360" hR="5918" stAng="-16496525" swAng="8804134" />\r
+        <arcTo wR="4345" hR="5945" stAng="-14809710" swAng="9151131" />\r
+        <close />\r
+      </path>\r
+      <path w="43200" h="43200" fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="4693" y="26177" />\r
+        </moveTo>\r
+        <arcTo wR="4345" hR="5945" stAng="5204520" swAng="1585770" />\r
+        <moveTo>\r
+          <pt x="6928" y="34899" />\r
+        </moveTo>\r
+        <arcTo wR="4360" hR="5918" stAng="4416628" swAng="686848" />\r
+        <moveTo>\r
+          <pt x="16478" y="39090" />\r
+        </moveTo>\r
+        <arcTo wR="6752" hR="9215" stAng="8257449" swAng="844866" />\r
+        <moveTo>\r
+          <pt x="28827" y="34751" />\r
+        </moveTo>\r
+        <arcTo wR="6752" hR="9215" stAng="387196" swAng="959901" />\r
+        <moveTo>\r
+          <pt x="34129" y="22954" />\r
+        </moveTo>\r
+        <arcTo wR="5785" hR="7867" stAng="-4217541" swAng="4255042" />\r
+        <moveTo>\r
+          <pt x="41798" y="15354" />\r
+        </moveTo>\r
+        <arcTo wR="5333" hR="7273" stAng="1819082" swAng="1665090" />\r
+        <moveTo>\r
+          <pt x="38324" y="5426" />\r
+        </moveTo>\r
+        <arcTo wR="4857" hR="6595" stAng="-824660" swAng="891534" />\r
+        <moveTo>\r
+          <pt x="29078" y="3952" />\r
+        </moveTo>\r
+        <arcTo wR="4857" hR="6595" stAng="-8950887" swAng="1091722" />\r
+        <moveTo>\r
+          <pt x="22141" y="4720" />\r
+        </moveTo>\r
+        <arcTo wR="4365" hR="5945" stAng="-9809656" swAng="1061181" />\r
+        <moveTo>\r
+          <pt x="14000" y="5192" />\r
+        </moveTo>\r
+        <arcTo wR="6753" hR="9190" stAng="-4002417" swAng="739161" />\r
+        <moveTo>\r
+          <pt x="4127" y="15789" />\r
+        </moveTo>\r
+        <arcTo wR="6753" hR="9190" stAng="9459261" swAng="711490" />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </cloud>\r
+  <cloudCallout>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val -20833" />\r
+\r
+      <gd name="adj2" fmla="val 62500" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="dxPos" fmla="*/ w adj1 100000" />\r
+      <gd name="dyPos" fmla="*/ h adj2 100000" />\r
+      <gd name="xPos" fmla="+- hc dxPos 0" />\r
+      <gd name="yPos" fmla="+- vc dyPos 0" />\r
+      <gd name="ht" fmla="cat2 hd2 dxPos dyPos" />\r
+      <gd name="wt" fmla="sat2 wd2 dxPos dyPos" />\r
+      <gd name="g2" fmla="cat2 wd2 ht wt" />\r
+      <gd name="g3" fmla="sat2 hd2 ht wt" />\r
+      <gd name="g4" fmla="+- hc g2 0" />\r
+\r
+      <gd name="g5" fmla="+- vc g3 0" />\r
+\r
+      <gd name="g6" fmla="+- g4 0 xPos" />\r
+\r
+      <gd name="g7" fmla="+- g5 0 yPos" />\r
+\r
+      <gd name="g8" fmla="mod g6 g7 0" />\r
+\r
+      <gd name="g9" fmla="*/ ss 6600 21600" />\r
+\r
+      <gd name="g10" fmla="+- g8 0 g9" />\r
+\r
+      <gd name="g11" fmla="*/ g10 1 3" />\r
+\r
+      <gd name="g12" fmla="*/ ss 1800 21600" />\r
+\r
+      <gd name="g13" fmla="+- g11 g12 0" />\r
+\r
+      <gd name="g14" fmla="*/ g13 g6 g8" />\r
+\r
+      <gd name="g15" fmla="*/ g13 g7 g8" />\r
+\r
+      <gd name="g16" fmla="+- g14 xPos 0" />\r
+\r
+      <gd name="g17" fmla="+- g15 yPos 0" />\r
+\r
+      <gd name="g18" fmla="*/ ss 4800 21600" />\r
+\r
+      <gd name="g19" fmla="*/ g11 2 1" />\r
+\r
+      <gd name="g20" fmla="+- g18 g19 0" />\r
+\r
+      <gd name="g21" fmla="*/ g20 g6 g8" />\r
+      <gd name="g22" fmla="*/ g20 g7 g8" />\r
+      <gd name="g23" fmla="+- g21 xPos 0" />\r
+      <gd name="g24" fmla="+- g22 yPos 0" />\r
+      <gd name="g25" fmla="*/ ss 1200 21600" />\r
+      <gd name="g26" fmla="*/ ss 600 21600" />\r
+\r
+      <gd name="x23" fmla="+- xPos g26 0" />\r
+      <gd name="x24" fmla="+- g16 g25 0" />\r
+      <gd name="x25" fmla="+- g23 g12 0" />\r
+      <gd name="il" fmla="*/ w 2977 21600" />\r
+      <gd name="it" fmla="*/ h 3262 21600" />\r
+      <gd name="ir" fmla="*/ w 17087 21600" />\r
+      <gd name="ib" fmla="*/ h 17337 21600" />\r
+\r
+      <gd name="g27" fmla="*/ w 67 21600" />\r
+      <gd name="g28" fmla="*/ h 21577 21600" />\r
+      <gd name="g29" fmla="*/ w 21582 21600" />\r
+      <gd name="g30" fmla="*/ h 1235 21600" />\r
+      <gd name="pang" fmla="at2 dxPos dyPos" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="-2147483647" maxX="2147483647" gdRefY="adj2" minY="-2147483647" maxY="2147483647">\r
+        <pos x="xPos" y="yPos" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="cd2">\r
+        <pos x="g27" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="g28" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="g29" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="g30" />\r
+      </cxn>\r
+      <cxn ang="pang">\r
+        <pos x="xPos" y="yPos" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path w="43200" h="43200">\r
+        <moveTo>\r
+          <pt x="3900" y="14370" />\r
+        </moveTo>\r
+        <arcTo wR="6753" hR="9190" stAng="-11429249" swAng="7426832" />\r
+        <arcTo wR="5333" hR="7267" stAng="-8646143" swAng="5396714" />\r
+        <arcTo wR="4365" hR="5945" stAng="-8748475" swAng="5983381" />\r
+        <arcTo wR="4857" hR="6595" stAng="-7859164" swAng="7034504" />\r
+        <arcTo wR="5333" hR="7273" stAng="-4722533" swAng="6541615" />\r
+        <arcTo wR="6775" hR="9220" stAng="-2776035" swAng="7816140" />\r
+        <arcTo wR="5785" hR="7867" stAng="37501" swAng="6842000" />\r
+        <arcTo wR="6752" hR="9215" stAng="1347096" swAng="6910353" />\r
+        <arcTo wR="7720" hR="10543" stAng="3974558" swAng="4542661" />\r
+        <arcTo wR="4360" hR="5918" stAng="-16496525" swAng="8804134" />\r
+        <arcTo wR="4345" hR="5945" stAng="-14809710" swAng="9151131" />\r
+        <close />\r
+      </path>\r
+      <path>\r
+        <moveTo>\r
+          <pt x="x23" y="yPos" />\r
+        </moveTo>\r
+        <arcTo wR="g26" hR="g26" stAng="0" swAng="21600000" />\r
+        <close />\r
+      </path>\r
+      <path>\r
+        <moveTo>\r
+          <pt x="x24" y="g17" />\r
+        </moveTo>\r
+        <arcTo wR="g25" hR="g25" stAng="0" swAng="21600000" />\r
+        <close />\r
+      </path>\r
+      <path>\r
+        <moveTo>\r
+          <pt x="x25" y="g24" />\r
+        </moveTo>\r
+        <arcTo wR="g12" hR="g12" stAng="0" swAng="21600000" />\r
+        <close />\r
+      </path>\r
+      <path w="43200" h="43200" fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="4693" y="26177" />\r
+        </moveTo>\r
+        <arcTo wR="4345" hR="5945" stAng="5204520" swAng="1585770" />\r
+        <moveTo>\r
+          <pt x="6928" y="34899" />\r
+        </moveTo>\r
+        <arcTo wR="4360" hR="5918" stAng="4416628" swAng="686848" />\r
+        <moveTo>\r
+          <pt x="16478" y="39090" />\r
+        </moveTo>\r
+        <arcTo wR="6752" hR="9215" stAng="8257449" swAng="844866" />\r
+        <moveTo>\r
+          <pt x="28827" y="34751" />\r
+        </moveTo>\r
+        <arcTo wR="6752" hR="9215" stAng="387196" swAng="959901" />\r
+        <moveTo>\r
+          <pt x="34129" y="22954" />\r
+        </moveTo>\r
+        <arcTo wR="5785" hR="7867" stAng="-4217541" swAng="4255042" />\r
+        <moveTo>\r
+          <pt x="41798" y="15354" />\r
+        </moveTo>\r
+        <arcTo wR="5333" hR="7273" stAng="1819082" swAng="1665090" />\r
+        <moveTo>\r
+          <pt x="38324" y="5426" />\r
+        </moveTo>\r
+        <arcTo wR="4857" hR="6595" stAng="-824660" swAng="891534" />\r
+        <moveTo>\r
+          <pt x="29078" y="3952" />\r
+        </moveTo>\r
+        <arcTo wR="4857" hR="6595" stAng="-8950887" swAng="1091722" />\r
+        <moveTo>\r
+          <pt x="22141" y="4720" />\r
+        </moveTo>\r
+        <arcTo wR="4365" hR="5945" stAng="-9809656" swAng="1061181" />\r
+        <moveTo>\r
+          <pt x="14000" y="5192" />\r
+        </moveTo>\r
+        <arcTo wR="6753" hR="9190" stAng="-4002417" swAng="739161" />\r
+        <moveTo>\r
+          <pt x="4127" y="15789" />\r
+        </moveTo>\r
+        <arcTo wR="6753" hR="9190" stAng="9459261" swAng="711490" />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </cloudCallout>\r
+  <corner>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 50000" />\r
+\r
+      <gd name="adj2" fmla="val 50000" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj1" fmla="*/ 100000 h ss" />\r
+      <gd name="maxAdj2" fmla="*/ 100000 w ss" />\r
+      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
+      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
+      <gd name="x1" fmla="*/ ss a2 100000" />\r
+      <gd name="dy1" fmla="*/ ss a1 100000" />\r
+      <gd name="y1" fmla="+- b 0 dy1" />\r
+      <gd name="cx1" fmla="*/ x1 1 2" />\r
+      <gd name="cy1" fmla="+/ y1 b 2" />\r
+      <gd name="d" fmla="+- w 0 h" />\r
+      <gd name="it" fmla="?: d y1 t" />\r
+      <gd name="ir" fmla="?: d r x1" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="maxAdj1">\r
+        <pos x="l" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="0" maxX="maxAdj2">\r
+        <pos x="x1" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="cy1" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="cx1" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="it" r="ir" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </corner>\r
+  <cornerTabs>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="md" fmla="mod w h 0" />\r
+      <gd name="dx" fmla="*/ 1 md 20" />\r
+\r
+      <gd name="y1" fmla="+- 0 b dx" />\r
+\r
+      <gd name="x1" fmla="+- 0 r dx" />\r
+\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="dx" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="y1" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="b" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="dx" y="t" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x1" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="dx" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x1" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="t" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="dx" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="y1" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="b" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="dx" t="dx" r="x1" b="y1" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="dx" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="dx" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="dx" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path>\r
+        <moveTo>\r
+          <pt x="x1" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="dx" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path>\r
+        <moveTo>\r
+          <pt x="r" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </cornerTabs>\r
+  <cube>\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 25000" />\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 100000" />\r
+      <gd name="y1" fmla="*/ ss a 100000" />\r
+      <gd name="y4" fmla="+- b 0 y1" />\r
+      <gd name="y2" fmla="*/ y4 1 2" />\r
+      <gd name="y3" fmla="+/ y1 b 2" />\r
+      <gd name="x4" fmla="+- r 0 y1" />\r
+      <gd name="x2" fmla="*/ x4 1 2" />\r
+      <gd name="x3" fmla="+/ y1 r 2" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj" minY="0" maxY="100000">\r
+        <pos x="l" y="y1" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="x3" y="t" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x2" y="y1" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="y3" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x2" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x4" y="y3" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="y2" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="l" t="y1" r="x4" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path stroke="false" fill="darkenLess" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="x4" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path stroke="false" fill="lightenLess" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="y1" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y1" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="y1" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="l" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="x4" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x4" y="b" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+  </cube>\r
+  <curvedConnector2>\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path fill="none">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <cubicBezTo>\r
+          <pt x="wd2" y="t" />\r
+          <pt x="r" y="hd2" />\r
+          <pt x="r" y="b" />\r
+        </cubicBezTo>\r
+      </path>\r
+    </pathLst>\r
+  </curvedConnector2>\r
+  <curvedConnector3>\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 50000" />\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="x2" fmla="*/ w adj1 100000" />\r
+      <gd name="x1" fmla="+/ l x2 2" />\r
+      <gd name="x3" fmla="+/ r x2 2" />\r
+      <gd name="y3" fmla="*/ h 3 4" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="-2147483647" maxX="2147483647">\r
+        <pos x="x2" y="vc" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path fill="none">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <cubicBezTo>\r
+          <pt x="x1" y="t" />\r
+          <pt x="x2" y="hd4" />\r
+          <pt x="x2" y="vc" />\r
+        </cubicBezTo>\r
+        <cubicBezTo>\r
+          <pt x="x2" y="y3" />\r
+          <pt x="x3" y="b" />\r
+          <pt x="r" y="b" />\r
+        </cubicBezTo>\r
+      </path>\r
+    </pathLst>\r
+  </curvedConnector3>\r
+  <curvedConnector4>\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 50000" />\r
+      <gd name="adj2" fmla="val 50000" />\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="x2" fmla="*/ w adj1 100000" />\r
+      <gd name="x1" fmla="+/ l x2 2" />\r
+      <gd name="x3" fmla="+/ r x2 2" />\r
+      <gd name="x4" fmla="+/ x2 x3 2" />\r
+      <gd name="x5" fmla="+/ x3 r 2" />\r
+      <gd name="y4" fmla="*/ h adj2 100000" />\r
+      <gd name="y1" fmla="+/ t y4 2" />\r
+      <gd name="y2" fmla="+/ t y1 2" />\r
+      <gd name="y3" fmla="+/ y1 y4 2" />\r
+      <gd name="y5" fmla="+/ b y4 2" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="-2147483647" maxX="2147483647">\r
+        <pos x="x2" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj2" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x3" y="y4" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path fill="none">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <cubicBezTo>\r
+          <pt x="x1" y="t" />\r
+          <pt x="x2" y="y2" />\r
+          <pt x="x2" y="y1" />\r
+        </cubicBezTo>\r
+        <cubicBezTo>\r
+          <pt x="x2" y="y3" />\r
+          <pt x="x4" y="y4" />\r
+          <pt x="x3" y="y4" />\r
+        </cubicBezTo>\r
+        <cubicBezTo>\r
+          <pt x="x5" y="y4" />\r
+          <pt x="r" y="y5" />\r
+          <pt x="r" y="b" />\r
+        </cubicBezTo>\r
+      </path>\r
+    </pathLst>\r
+  </curvedConnector4>\r
+  <curvedConnector5>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 50000" />\r
+\r
+      <gd name="adj2" fmla="val 50000" />\r
+\r
+      <gd name="adj3" fmla="val 50000" />\r
+\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="x3" fmla="*/ w adj1 100000" />\r
+      <gd name="x6" fmla="*/ w adj3 100000" />\r
+      <gd name="x1" fmla="+/ x3 x6 2" />\r
+      <gd name="x2" fmla="+/ l x3 2" />\r
+      <gd name="x4" fmla="+/ x3 x1 2" />\r
+      <gd name="x5" fmla="+/ x6 x1 2" />\r
+      <gd name="x7" fmla="+/ x6 r 2" />\r
+      <gd name="y4" fmla="*/ h adj2 100000" />\r
+      <gd name="y1" fmla="+/ t y4 2" />\r
+      <gd name="y2" fmla="+/ t y1 2" />\r
+      <gd name="y3" fmla="+/ y1 y4 2" />\r
+      <gd name="y5" fmla="+/ b y4 2" />\r
+      <gd name="y6" fmla="+/ y5 y4 2" />\r
+      <gd name="y7" fmla="+/ y5 b 2" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="-2147483647" maxX="2147483647">\r
+        <pos x="x3" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj2" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x1" y="y4" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj3" minX="-2147483647" maxX="2147483647">\r
+        <pos x="x6" y="y5" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path fill="none">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <cubicBezTo>\r
+          <pt x="x2" y="t" />\r
+          <pt x="x3" y="y2" />\r
+          <pt x="x3" y="y1" />\r
+        </cubicBezTo>\r
+        <cubicBezTo>\r
+          <pt x="x3" y="y3" />\r
+          <pt x="x4" y="y4" />\r
+          <pt x="x1" y="y4" />\r
+        </cubicBezTo>\r
+        <cubicBezTo>\r
+          <pt x="x5" y="y4" />\r
+          <pt x="x6" y="y6" />\r
+          <pt x="x6" y="y5" />\r
+        </cubicBezTo>\r
+        <cubicBezTo>\r
+          <pt x="x6" y="y7" />\r
+          <pt x="x7" y="b" />\r
+          <pt x="r" y="b" />\r
+        </cubicBezTo>\r
+      </path>\r
+    </pathLst>\r
+\r
+  </curvedConnector5>\r
+  <curvedDownArrow>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 25000" />\r
+\r
+      <gd name="adj2" fmla="val 50000" />\r
+\r
+      <gd name="adj3" fmla="val 25000" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj2" fmla="*/ 50000 w ss" />\r
+\r
+      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
+      <gd name="a1" fmla="pin 0 adj1 100000" />\r
+      <gd name="th" fmla="*/ ss a1 100000" />\r
+\r
+      <gd name="aw" fmla="*/ ss a2 100000" />\r
+\r
+      <gd name="q1" fmla="+/ th aw 4" />\r
+\r
+      <gd name="wR" fmla="+- wd2 0 q1" />\r
+\r
+      <gd name="q7" fmla="*/ wR 2 1" />\r
+\r
+      <gd name="q8" fmla="*/ q7 q7 1" />\r
+\r
+      <gd name="q9" fmla="*/ th th 1" />\r
+\r
+      <gd name="q10" fmla="+- q8 0 q9" />\r
+      <gd name="q11" fmla="sqrt q10" />\r
+      <gd name="idy" fmla="*/ q11 h q7" />\r
+      <gd name="maxAdj3" fmla="*/ 100000 idy ss" />\r
+\r
+      <gd name="a3" fmla="pin 0 adj3 maxAdj3" />\r
+      <gd name="ah" fmla="*/ ss adj3 100000" />\r
+\r
+\r
+\r
+\r
+\r
+      <gd name="x3" fmla="+- wR th 0" />\r
+\r
+      <gd name="q2" fmla="*/ h h 1" />\r
+      <gd name="q3" fmla="*/ ah ah 1" />\r
+      <gd name="q4" fmla="+- q2 0 q3" />\r
+      <gd name="q5" fmla="sqrt q4" />\r
+      <gd name="dx" fmla="*/ q5 wR h" />\r
+      <gd name="x5" fmla="+- wR dx 0" />\r
+\r
+      <gd name="x7" fmla="+- x3 dx 0" />\r
+\r
+      <gd name="q6" fmla="+- aw 0 th" />\r
+      <gd name="dh" fmla="*/ q6 1 2" />\r
+\r
+      <gd name="x4" fmla="+- x5 0 dh" />\r
+\r
+      <gd name="x8" fmla="+- x7 dh 0" />\r
+\r
+      <gd name="aw2" fmla="*/ aw 1 2" />\r
+      <gd name="x6" fmla="+- r 0 aw2" />\r
+\r
+      <gd name="y1" fmla="+- b 0 ah" />\r
+      <gd name="swAng" fmla="at2 ah dx" />\r
+\r
+      <gd name="mswAng" fmla="+- 0 0 swAng" />\r
+      <gd name="iy" fmla="+- b 0 idy" />\r
+\r
+      <gd name="ix" fmla="+/ wR x3 2" />\r
+\r
+      <gd name="q12" fmla="*/ th 1 2" />\r
+      <gd name="dang2" fmla="at2 idy q12" />\r
+      <gd name="stAng" fmla="+- 3cd4 swAng 0" />\r
+      <gd name="stAng2" fmla="+- 3cd4 0 dang2" />\r
+      <gd name="swAng2" fmla="+- dang2 0 cd4" />\r
+      <gd name="swAng3" fmla="+- cd4 dang2 0" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="0" maxX="adj2">\r
+        <pos x="x7" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="0" maxX="maxAdj2">\r
+        <pos x="x4" y="b" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj3" minY="0" maxY="maxAdj3">\r
+        <pos x="r" y="y1" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="ix" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="q12" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x4" y="y1" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x6" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x8" y="y1" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+\r
+      <path stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="x6" y="b" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x5" y="y1" />\r
+        </lnTo>\r
+        <arcTo wR="wR" hR="h" stAng="stAng" swAng="mswAng" />\r
+        <lnTo>\r
+          <pt x="x3" y="t" />\r
+        </lnTo>\r
+        <arcTo wR="wR" hR="h" stAng="3cd4" swAng="swAng" />\r
+        <lnTo>\r
+          <pt x="x8" y="y1" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+\r
+      <path fill="darkenLess" stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="ix" y="iy" />\r
+        </moveTo>\r
+        <arcTo wR="wR" hR="h" stAng="stAng2" swAng="swAng2" />\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <arcTo wR="wR" hR="h" stAng="cd2" swAng="swAng3" />\r
+        <close />\r
+      </path>\r
+\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="ix" y="iy" />\r
+        </moveTo>\r
+        <arcTo wR="wR" hR="h" stAng="stAng2" swAng="swAng2" />\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <arcTo wR="wR" hR="h" stAng="cd2" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x3" y="t" />\r
+        </lnTo>\r
+        <arcTo wR="wR" hR="h" stAng="3cd4" swAng="swAng" />\r
+        <lnTo>\r
+          <pt x="x8" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x6" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x5" y="y1" />\r
+        </lnTo>\r
+        <arcTo wR="wR" hR="h" stAng="stAng" swAng="mswAng" />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </curvedDownArrow>\r
+  <curvedLeftArrow>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 25000" />\r
+\r
+      <gd name="adj2" fmla="val 50000" />\r
+\r
+      <gd name="adj3" fmla="val 25000" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj2" fmla="*/ 50000 h ss" />\r
+\r
+      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
+      <gd name="a1" fmla="pin 0 adj1 a2" />\r
+      <gd name="th" fmla="*/ ss a1 100000" />\r
+\r
+      <gd name="aw" fmla="*/ ss a2 100000" />\r
+\r
+      <gd name="q1" fmla="+/ th aw 4" />\r
+\r
+      <gd name="hR" fmla="+- hd2 0 q1" />\r
+\r
+      <gd name="q7" fmla="*/ hR 2 1" />\r
+\r
+      <gd name="q8" fmla="*/ q7 q7 1" />\r
+\r
+      <gd name="q9" fmla="*/ th th 1" />\r
+\r
+      <gd name="q10" fmla="+- q8 0 q9" />\r
+      <gd name="q11" fmla="sqrt q10" />\r
+      <gd name="idx" fmla="*/ q11 w q7" />\r
+      <gd name="maxAdj3" fmla="*/ 100000 idx ss" />\r
+\r
+      <gd name="a3" fmla="pin 0 adj3 maxAdj3" />\r
+      <gd name="ah" fmla="*/ ss a3 100000" />\r
+\r
+\r
+\r
+\r
+\r
+      <gd name="y3" fmla="+- hR th 0" />\r
+\r
+      <gd name="q2" fmla="*/ w w 1" />\r
+      <gd name="q3" fmla="*/ ah ah 1" />\r
+      <gd name="q4" fmla="+- q2 0 q3" />\r
+      <gd name="q5" fmla="sqrt q4" />\r
+      <gd name="dy" fmla="*/ q5 hR w" />\r
+      <gd name="y5" fmla="+- hR dy 0" />\r
+\r
+      <gd name="y7" fmla="+- y3 dy 0" />\r
+\r
+      <gd name="q6" fmla="+- aw 0 th" />\r
+      <gd name="dh" fmla="*/ q6 1 2" />\r
+\r
+      <gd name="y4" fmla="+- y5 0 dh" />\r
+\r
+      <gd name="y8" fmla="+- y7 dh 0" />\r
+\r
+      <gd name="aw2" fmla="*/ aw 1 2" />\r
+      <gd name="y6" fmla="+- b 0 aw2" />\r
+\r
+      <gd name="x1" fmla="+- l ah 0" />\r
+      <gd name="swAng" fmla="at2 ah dy" />\r
+\r
+      <gd name="mswAng" fmla="+- 0 0 swAng" />\r
+      <gd name="ix" fmla="+- l idx 0" />\r
+\r
+      <gd name="iy" fmla="+/ hR y3 2" />\r
+\r
+      <gd name="q12" fmla="*/ th 1 2" />\r
+      <gd name="dang2" fmla="at2 idx q12" />\r
+      <gd name="swAng2" fmla="+- dang2 0 swAng" />\r
+      <gd name="swAng3" fmla="+- swAng dang2 0" />\r
+      <gd name="stAng3" fmla="+- 0 0 dang2" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="a2">\r
+        <pos x="x1" y="y5" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj2" minY="0" maxY="maxAdj2">\r
+        <pos x="r" y="y4" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj3" minX="0" maxX="maxAdj3">\r
+        <pos x="x1" y="b" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="q12" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="y4" />\r
+      </cxn>\r
+      <cxn ang="cd3">\r
+        <pos x="l" y="y6" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x1" y="y8" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="iy" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+\r
+      <path stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="y6" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y5" />\r
+        </lnTo>\r
+        <arcTo wR="w" hR="hR" stAng="swAng" swAng="swAng2" />\r
+        <arcTo wR="w" hR="hR" stAng="stAng3" swAng="swAng3" />\r
+        <lnTo>\r
+          <pt x="x1" y="y8" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+\r
+      <path fill="darkenLess" stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="r" y="y3" />\r
+        </moveTo>\r
+        <arcTo wR="w" hR="hR" stAng="0" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="l" y="t" />\r
+        </lnTo>\r
+        <arcTo wR="w" hR="hR" stAng="3cd4" swAng="cd4" />\r
+        <close />\r
+      </path>\r
+\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="r" y="y3" />\r
+        </moveTo>\r
+        <arcTo wR="w" hR="hR" stAng="0" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="l" y="t" />\r
+        </lnTo>\r
+        <arcTo wR="w" hR="hR" stAng="3cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="r" y="y3" />\r
+        </lnTo>\r
+        <arcTo wR="w" hR="hR" stAng="0" swAng="swAng" />\r
+        <lnTo>\r
+          <pt x="x1" y="y8" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="y6" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y5" />\r
+        </lnTo>\r
+        <arcTo wR="w" hR="hR" stAng="swAng" swAng="swAng2" />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </curvedLeftArrow>\r
+  <curvedRightArrow>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 25000" />\r
+\r
+      <gd name="adj2" fmla="val 50000" />\r
+\r
+      <gd name="adj3" fmla="val 25000" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj2" fmla="*/ 50000 h ss" />\r
+\r
+      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
+      <gd name="a1" fmla="pin 0 adj1 a2" />\r
+      <gd name="th" fmla="*/ ss a1 100000" />\r
+\r
+      <gd name="aw" fmla="*/ ss a2 100000" />\r
+\r
+      <gd name="q1" fmla="+/ th aw 4" />\r
+\r
+      <gd name="hR" fmla="+- hd2 0 q1" />\r
+\r
+      <gd name="q7" fmla="*/ hR 2 1" />\r
+\r
+      <gd name="q8" fmla="*/ q7 q7 1" />\r
+\r
+      <gd name="q9" fmla="*/ th th 1" />\r
+\r
+      <gd name="q10" fmla="+- q8 0 q9" />\r
+      <gd name="q11" fmla="sqrt q10" />\r
+      <gd name="idx" fmla="*/ q11 w q7" />\r
+      <gd name="maxAdj3" fmla="*/ 100000 idx ss" />\r
+\r
+      <gd name="a3" fmla="pin 0 adj3 maxAdj3" />\r
+      <gd name="ah" fmla="*/ ss a3 100000" />\r
+\r
+\r
+\r
+\r
+\r
+      <gd name="y3" fmla="+- hR th 0" />\r
+\r
+      <gd name="q2" fmla="*/ w w 1" />\r
+      <gd name="q3" fmla="*/ ah ah 1" />\r
+      <gd name="q4" fmla="+- q2 0 q3" />\r
+      <gd name="q5" fmla="sqrt q4" />\r
+      <gd name="dy" fmla="*/ q5 hR w" />\r
+      <gd name="y5" fmla="+- hR dy 0" />\r
+\r
+      <gd name="y7" fmla="+- y3 dy 0" />\r
+\r
+      <gd name="q6" fmla="+- aw 0 th" />\r
+      <gd name="dh" fmla="*/ q6 1 2" />\r
+\r
+      <gd name="y4" fmla="+- y5 0 dh" />\r
+\r
+      <gd name="y8" fmla="+- y7 dh 0" />\r
+\r
+      <gd name="aw2" fmla="*/ aw 1 2" />\r
+      <gd name="y6" fmla="+- b 0 aw2" />\r
+\r
+      <gd name="x1" fmla="+- r 0 ah" />\r
+      <gd name="swAng" fmla="at2 ah dy" />\r
+\r
+      <gd name="stAng" fmla="+- cd2 0 swAng" />\r
+      <gd name="mswAng" fmla="+- 0 0 swAng" />\r
+      <gd name="ix" fmla="+- r 0 idx" />\r
+\r
+      <gd name="iy" fmla="+/ hR y3 2" />\r
+\r
+      <gd name="q12" fmla="*/ th 1 2" />\r
+      <gd name="dang2" fmla="at2 idx q12" />\r
+      <gd name="swAng2" fmla="+- dang2 0 cd4" />\r
+      <gd name="swAng3" fmla="+- cd4 dang2 0" />\r
+      <gd name="stAng3" fmla="+- cd2 0 dang2" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="a2">\r
+        <pos x="x1" y="y5" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj2" minY="0" maxY="maxAdj2">\r
+        <pos x="r" y="y4" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj3" minX="0" maxX="maxAdj3">\r
+        <pos x="x1" y="b" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="iy" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x1" y="y8" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="y6" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x1" y="y4" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="q12" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+\r
+      <path stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="hR" />\r
+        </moveTo>\r
+        <arcTo wR="w" hR="hR" stAng="cd2" swAng="mswAng" />\r
+        <lnTo>\r
+          <pt x="x1" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y6" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y8" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y7" />\r
+        </lnTo>\r
+        <arcTo wR="w" hR="hR" stAng="stAng" swAng="swAng" />\r
+        <close />\r
+      </path>\r
+\r
+      <path fill="darkenLess" stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="r" y="th" />\r
+        </moveTo>\r
+        <arcTo wR="w" hR="hR" stAng="3cd4" swAng="swAng2" />\r
+        <arcTo wR="w" hR="hR" stAng="stAng3" swAng="swAng3" />\r
+        <close />\r
+      </path>\r
+\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="hR" />\r
+        </moveTo>\r
+        <arcTo wR="w" hR="hR" stAng="cd2" swAng="mswAng" />\r
+        <lnTo>\r
+          <pt x="x1" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y6" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y8" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y7" />\r
+        </lnTo>\r
+        <arcTo wR="w" hR="hR" stAng="stAng" swAng="swAng" />\r
+        <lnTo>\r
+          <pt x="l" y="hR" />\r
+        </lnTo>\r
+        <arcTo wR="w" hR="hR" stAng="cd2" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="r" y="th" />\r
+        </lnTo>\r
+        <arcTo wR="w" hR="hR" stAng="3cd4" swAng="swAng2" />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </curvedRightArrow>\r
+  <curvedUpArrow>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 25000" />\r
+\r
+      <gd name="adj2" fmla="val 50000" />\r
+\r
+      <gd name="adj3" fmla="val 25000" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj2" fmla="*/ 50000 w ss" />\r
+\r
+      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
+      <gd name="a1" fmla="pin 0 adj1 100000" />\r
+      <gd name="th" fmla="*/ ss a1 100000" />\r
+\r
+      <gd name="aw" fmla="*/ ss a2 100000" />\r
+\r
+      <gd name="q1" fmla="+/ th aw 4" />\r
+\r
+      <gd name="wR" fmla="+- wd2 0 q1" />\r
+\r
+      <gd name="q7" fmla="*/ wR 2 1" />\r
+\r
+      <gd name="q8" fmla="*/ q7 q7 1" />\r
+\r
+      <gd name="q9" fmla="*/ th th 1" />\r
+\r
+      <gd name="q10" fmla="+- q8 0 q9" />\r
+      <gd name="q11" fmla="sqrt q10" />\r
+      <gd name="idy" fmla="*/ q11 h q7" />\r
+      <gd name="maxAdj3" fmla="*/ 100000 idy ss" />\r
+\r
+      <gd name="a3" fmla="pin 0 adj3 maxAdj3" />\r
+      <gd name="ah" fmla="*/ ss adj3 100000" />\r
+\r
+\r
+\r
+\r
+\r
+      <gd name="x3" fmla="+- wR th 0" />\r
+\r
+      <gd name="q2" fmla="*/ h h 1" />\r
+      <gd name="q3" fmla="*/ ah ah 1" />\r
+      <gd name="q4" fmla="+- q2 0 q3" />\r
+      <gd name="q5" fmla="sqrt q4" />\r
+      <gd name="dx" fmla="*/ q5 wR h" />\r
+      <gd name="x5" fmla="+- wR dx 0" />\r
+\r
+      <gd name="x7" fmla="+- x3 dx 0" />\r
+\r
+      <gd name="q6" fmla="+- aw 0 th" />\r
+      <gd name="dh" fmla="*/ q6 1 2" />\r
+\r
+      <gd name="x4" fmla="+- x5 0 dh" />\r
+\r
+      <gd name="x8" fmla="+- x7 dh 0" />\r
+\r
+      <gd name="aw2" fmla="*/ aw 1 2" />\r
+      <gd name="x6" fmla="+- r 0 aw2" />\r
+\r
+      <gd name="y1" fmla="+- t ah 0" />\r
+      <gd name="swAng" fmla="at2 ah dx" />\r
+\r
+      <gd name="mswAng" fmla="+- 0 0 swAng" />\r
+      <gd name="iy" fmla="+- t idy 0" />\r
+\r
+      <gd name="ix" fmla="+/ wR x3 2" />\r
+\r
+      <gd name="q12" fmla="*/ th 1 2" />\r
+      <gd name="dang2" fmla="at2 idy q12" />\r
+      <gd name="swAng2" fmla="+- dang2 0 swAng" />\r
+      <gd name="mswAng2" fmla="+- 0 0 swAng2" />\r
+      <gd name="stAng3" fmla="+- cd4 0 swAng" />\r
+      <gd name="swAng3" fmla="+- swAng dang2 0" />\r
+      <gd name="stAng2" fmla="+- cd4 0 dang2" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="0" maxX="a2">\r
+        <pos x="x7" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="0" maxX="maxAdj2">\r
+        <pos x="x4" y="t" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj3" minY="0" maxY="maxAdj3">\r
+        <pos x="r" y="y1" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="x6" y="t" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x4" y="y1" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="q12" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="ix" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x8" y="y1" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+\r
+      <path stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="x6" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x8" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x7" y="y1" />\r
+        </lnTo>\r
+        <arcTo wR="wR" hR="h" stAng="stAng3" swAng="swAng3" />\r
+        <arcTo wR="wR" hR="h" stAng="stAng2" swAng="swAng2" />\r
+        <lnTo>\r
+          <pt x="x4" y="y1" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+\r
+      <path fill="darkenLess" stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="wR" y="b" />\r
+        </moveTo>\r
+        <arcTo wR="wR" hR="h" stAng="cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="th" y="t" />\r
+        </lnTo>\r
+        <arcTo wR="wR" hR="h" stAng="cd2" swAng="-5400000" />\r
+        <close />\r
+      </path>\r
+\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="ix" y="iy" />\r
+        </moveTo>\r
+        <arcTo wR="wR" hR="h" stAng="stAng2" swAng="swAng2" />\r
+        <lnTo>\r
+          <pt x="x4" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x6" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x8" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x7" y="y1" />\r
+        </lnTo>\r
+        <arcTo wR="wR" hR="h" stAng="stAng3" swAng="swAng" />\r
+        <lnTo>\r
+          <pt x="wR" y="b" />\r
+        </lnTo>\r
+        <arcTo wR="wR" hR="h" stAng="cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="th" y="t" />\r
+        </lnTo>\r
+        <arcTo wR="wR" hR="h" stAng="cd2" swAng="-5400000" />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </curvedUpArrow>\r
+  <decagon>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="vf" fmla="val 105146" />\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="shd2" fmla="*/ hd2 vf 100000" />\r
+      <gd name="dx1" fmla="cos wd2 2160000" />\r
+      <gd name="dx2" fmla="cos wd2 4320000" />\r
+      <gd name="x1" fmla="+- hc 0 dx1" />\r
+      <gd name="x2" fmla="+- hc 0 dx2" />\r
+      <gd name="x3" fmla="+- hc dx2 0" />\r
+      <gd name="x4" fmla="+- hc dx1 0" />\r
+      <gd name="dy1" fmla="sin shd2 4320000" />\r
+      <gd name="dy2" fmla="sin shd2 2160000" />\r
+      <gd name="y1" fmla="+- vc 0 dy1" />\r
+      <gd name="y2" fmla="+- vc 0 dy2" />\r
+      <gd name="y3" fmla="+- vc dy2 0" />\r
+      <gd name="y4" fmla="+- vc dy1 0" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="x4" y="y2" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x4" y="y3" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x3" y="y4" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x2" y="y4" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="y3" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="y2" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x2" y="y1" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x3" y="y1" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="x1" t="y2" r="x4" b="y3" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="vc" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y3" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </decagon>\r
+  <diagStripe>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 50000" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 100000" />\r
+      <gd name="x2" fmla="*/ w a 100000" />\r
+      <gd name="x1" fmla="*/ x2 1 2" />\r
+      <gd name="x3" fmla="+/ x2 r 2" />\r
+      <gd name="y2" fmla="*/ h a 100000" />\r
+      <gd name="y1" fmla="*/ y2 1 2" />\r
+      <gd name="y3" fmla="+/ y2 b 2" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj" minY="0" maxY="100000">\r
+        <pos x="l" y="y2" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="hc" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="y3" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="y1" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x3" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="t" r="x3" b="y3" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="y2" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </diagStripe>\r
+  <diamond>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="ir" fmla="*/ w 3 4" />\r
+      <gd name="ib" fmla="*/ h 3 4" />\r
+    </gdLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="wd4" t="hd4" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="vc" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="hc" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+  </diamond>\r
+  <dodecagon>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="x1" fmla="*/ w 2894 21600" />\r
+      <gd name="x2" fmla="*/ w 7906 21600" />\r
+      <gd name="x3" fmla="*/ w 13694 21600" />\r
+      <gd name="x4" fmla="*/ w 18706 21600" />\r
+      <gd name="y1" fmla="*/ h 2894 21600" />\r
+      <gd name="y2" fmla="*/ h 7906 21600" />\r
+      <gd name="y3" fmla="*/ h 13694 21600" />\r
+      <gd name="y4" fmla="*/ h 18706 21600" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="x4" y="y1" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="y2" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="y3" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x4" y="y4" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x3" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x2" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="y4" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="y3" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="y2" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="y1" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x2" y="t" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x3" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="x1" t="y1" r="x4" b="y4" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="y2" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="y3" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </dodecagon>\r
+  <donut>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 25000" />\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 50000" />\r
+      <gd name="dr" fmla="*/ ss a 100000" />\r
+      <gd name="iwd2" fmla="+- wd2 0 dr" />\r
+      <gd name="ihd2" fmla="+- hd2 0 dr" />\r
+      <gd name="idx" fmla="cos wd2 2700000" />\r
+      <gd name="idy" fmla="sin hd2 2700000" />\r
+      <gd name="il" fmla="+- hc 0 idx" />\r
+      <gd name="ir" fmla="+- hc idx 0" />\r
+      <gd name="it" fmla="+- vc 0 idy" />\r
+      <gd name="ib" fmla="+- vc idy 0" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahPolar gdRefR="adj" minR="0" maxR="50000">\r
+        <pos x="dr" y="vc" />\r
+      </ahPolar>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="il" y="it" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="il" y="ib" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="ir" y="ib" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="ir" y="it" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="vc" />\r
+        </moveTo>\r
+        <arcTo wR="wd2" hR="hd2" stAng="cd2" swAng="cd4" />\r
+        <arcTo wR="wd2" hR="hd2" stAng="3cd4" swAng="cd4" />\r
+        <arcTo wR="wd2" hR="hd2" stAng="0" swAng="cd4" />\r
+        <arcTo wR="wd2" hR="hd2" stAng="cd4" swAng="cd4" />\r
+        <close />\r
+        <moveTo>\r
+          <pt x="dr" y="vc" />\r
+        </moveTo>\r
+        <arcTo wR="iwd2" hR="ihd2" stAng="cd2" swAng="-5400000" />\r
+        <arcTo wR="iwd2" hR="ihd2" stAng="cd4" swAng="-5400000" />\r
+        <arcTo wR="iwd2" hR="ihd2" stAng="0" swAng="-5400000" />\r
+        <arcTo wR="iwd2" hR="ihd2" stAng="3cd4" swAng="-5400000" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </donut>\r
+  <doubleWave>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 6250" />\r
+\r
+      <gd name="adj2" fmla="val 0" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a1" fmla="pin 0 adj1 12500" />\r
+      <gd name="a2" fmla="pin -10000 adj2 10000" />\r
+      <gd name="y1" fmla="*/ h a1 100000" />\r
+\r
+      <gd name="dy2" fmla="*/ y1 10 3" />\r
+      <gd name="y2" fmla="+- y1 0 dy2" />\r
+\r
+      <gd name="y3" fmla="+- y1 dy2 0" />\r
+\r
+      <gd name="y4" fmla="+- b 0 y1" />\r
+\r
+      <gd name="y5" fmla="+- y4 0 dy2" />\r
+\r
+      <gd name="y6" fmla="+- y4 dy2 0" />\r
+\r
+      <gd name="dx1" fmla="*/ w a2 100000" />\r
+\r
+      <gd name="of2" fmla="*/ w a2 50000" />\r
+\r
+      <gd name="x1" fmla="abs dx1" />\r
+\r
+      <gd name="dx2" fmla="?: of2 0 of2" />\r
+      <gd name="x2" fmla="+- l 0 dx2" />\r
+\r
+      <gd name="dx8" fmla="?: of2 of2 0" />\r
+      <gd name="x8" fmla="+- r 0 dx8" />\r
+\r
+      <gd name="dx3" fmla="+/ dx2 x8 6" />\r
+      <gd name="x3" fmla="+- x2 dx3 0" />\r
+\r
+      <gd name="dx4" fmla="+/ dx2 x8 3" />\r
+      <gd name="x4" fmla="+- x2 dx4 0" />\r
+\r
+      <gd name="x5" fmla="+/ x2 x8 2" />\r
+\r
+      <gd name="x6" fmla="+- x5 dx3 0" />\r
+\r
+      <gd name="x7" fmla="+/ x6 x8 2" />\r
+\r
+      <gd name="x9" fmla="+- l dx8 0" />\r
+\r
+      <gd name="x15" fmla="+- r dx2 0" />\r
+\r
+      <gd name="x10" fmla="+- x9 dx3 0" />\r
+\r
+      <gd name="x11" fmla="+- x9 dx4 0" />\r
+\r
+      <gd name="x12" fmla="+/ x9 x15 2" />\r
+\r
+      <gd name="x13" fmla="+- x12 dx3 0" />\r
+\r
+      <gd name="x14" fmla="+/ x13 x15 2" />\r
+\r
+      <gd name="x16" fmla="+- r 0 x1" />\r
+\r
+      <gd name="xAdj" fmla="+- hc dx1 0" />\r
+      <gd name="il" fmla="max x2 x9" />\r
+      <gd name="ir" fmla="min x8 x15" />\r
+      <gd name="it" fmla="*/ h a1 50000" />\r
+      <gd name="ib" fmla="+- b 0 it" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="12500">\r
+        <pos x="l" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="-10000" maxX="10000">\r
+        <pos x="xAdj" y="b" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="cd4">\r
+        <pos x="x12" y="y1" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x5" y="y4" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x16" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="x2" y="y1" />\r
+        </moveTo>\r
+        <cubicBezTo>\r
+          <pt x="x3" y="y2" />\r
+          <pt x="x4" y="y3" />\r
+          <pt x="x5" y="y1" />\r
+        </cubicBezTo>\r
+        <cubicBezTo>\r
+          <pt x="x6" y="y2" />\r
+          <pt x="x7" y="y3" />\r
+          <pt x="x8" y="y1" />\r
+        </cubicBezTo>\r
+        <lnTo>\r
+          <pt x="x15" y="y4" />\r
+        </lnTo>\r
+        <cubicBezTo>\r
+          <pt x="x14" y="y6" />\r
+          <pt x="x13" y="y5" />\r
+          <pt x="x12" y="y4" />\r
+        </cubicBezTo>\r
+        <cubicBezTo>\r
+          <pt x="x11" y="y6" />\r
+          <pt x="x10" y="y5" />\r
+          <pt x="x9" y="y4" />\r
+        </cubicBezTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </doubleWave>\r
+  <downArrow>\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 50000" />\r
+      <gd name="adj2" fmla="val 50000" />\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj2" fmla="*/ 100000 h ss" />\r
+      <gd name="a1" fmla="pin 0 adj1 100000" />\r
+      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
+      <gd name="dy1" fmla="*/ ss a2 100000" />\r
+      <gd name="y1" fmla="+- b 0 dy1" />\r
+      <gd name="dx1" fmla="*/ w a1 200000" />\r
+      <gd name="x1" fmla="+- hc 0 dx1" />\r
+      <gd name="x2" fmla="+- hc dx1 0" />\r
+      <gd name="dy2" fmla="*/ x1 dy1 wd2" />\r
+      <gd name="y2" fmla="+- y1 dy2 0" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="0" maxX="100000">\r
+        <pos x="x1" y="t" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj2" minY="0" maxY="maxAdj2">\r
+        <pos x="l" y="y1" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="y1" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="y1" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="x1" t="t" r="x2" b="y2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+  </downArrow>\r
+  <downArrowCallout>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 25000" />\r
+\r
+      <gd name="adj2" fmla="val 25000" />\r
+\r
+      <gd name="adj3" fmla="val 25000" />\r
+\r
+      <gd name="adj4" fmla="val 64977" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj2" fmla="*/ 50000 w ss" />\r
+\r
+      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
+      <gd name="maxAdj1" fmla="*/ a2 2 1" />\r
+\r
+      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
+      <gd name="maxAdj3" fmla="*/ 100000 h ss" />\r
+\r
+      <gd name="a3" fmla="pin 0 adj3 maxAdj3" />\r
+      <gd name="q2" fmla="*/ a3 ss h" />\r
+\r
+      <gd name="maxAdj4" fmla="+- 100000 0 q2" />\r
+\r
+      <gd name="a4" fmla="pin 0 adj4 maxAdj4" />\r
+      <gd name="dx1" fmla="*/ ss a2 100000" />\r
+\r
+      <gd name="dx2" fmla="*/ ss a1 200000" />\r
+\r
+      <gd name="x1" fmla="+- hc 0 dx1" />\r
+      <gd name="x2" fmla="+- hc 0 dx2" />\r
+      <gd name="x3" fmla="+- hc dx2 0" />\r
+      <gd name="x4" fmla="+- hc dx1 0" />\r
+      <gd name="dy3" fmla="*/ ss a3 100000" />\r
+\r
+      <gd name="y3" fmla="+- b 0 dy3" />\r
+      <gd name="y2" fmla="*/ h a4 100000" />\r
+\r
+      <gd name="y1" fmla="*/ y2 1 2" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="0" maxX="maxAdj1">\r
+        <pos x="x2" y="y3" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="0" maxX="maxAdj2">\r
+        <pos x="x1" y="b" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj3" minY="0" maxY="maxAdj3">\r
+        <pos x="r" y="y3" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj4" minY="0" maxY="maxAdj4">\r
+        <pos x="l" y="y2" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="y1" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="y1" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="t" r="r" b="y2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="y2" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </downArrowCallout>\r
+  <ellipse>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="idx" fmla="cos wd2 2700000" />\r
+      <gd name="idy" fmla="sin hd2 2700000" />\r
+      <gd name="il" fmla="+- hc 0 idx" />\r
+      <gd name="ir" fmla="+- hc idx 0" />\r
+      <gd name="it" fmla="+- vc 0 idy" />\r
+      <gd name="ib" fmla="+- vc idy 0" />\r
+    </gdLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="il" y="it" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="il" y="ib" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="ir" y="ib" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="ir" y="it" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="vc" />\r
+        </moveTo>\r
+        <arcTo wR="wd2" hR="hd2" stAng="cd2" swAng="cd4" />\r
+        <arcTo wR="wd2" hR="hd2" stAng="3cd4" swAng="cd4" />\r
+        <arcTo wR="wd2" hR="hd2" stAng="0" swAng="cd4" />\r
+        <arcTo wR="wd2" hR="hd2" stAng="cd4" swAng="cd4" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+  </ellipse>\r
+  <ellipseRibbon>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 25000" />\r
+\r
+      <gd name="adj2" fmla="val 50000" />\r
+\r
+      <gd name="adj3" fmla="val 12500" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a1" fmla="pin 0 adj1 100000" />\r
+      <gd name="a2" fmla="pin 25000 adj2 75000" />\r
+      <gd name="q10" fmla="+- 100000 0 a1" />\r
+      <gd name="q11" fmla="*/ q10 1 2" />\r
+      <gd name="q12" fmla="+- a1 0 q11" />\r
+      <gd name="minAdj3" fmla="max 0 q12" />\r
+      <gd name="a3" fmla="pin minAdj3 adj3 a1" />\r
+\r
+\r
+      <gd name="dx2" fmla="*/ w a2 200000" />\r
+\r
+      <gd name="x2" fmla="+- hc 0 dx2" />\r
+\r
+      <gd name="x3" fmla="+- x2 wd8 0" />\r
+\r
+      <gd name="x4" fmla="+- r 0 x3" />\r
+\r
+      <gd name="x5" fmla="+- r 0 x2" />\r
+\r
+      <gd name="x6" fmla="+- r 0 wd8" />\r
+\r
+      <gd name="dy1" fmla="*/ h a3 100000" />\r
+\r
+      <gd name="f1" fmla="*/ 4 dy1 w" />\r
+\r
+      <gd name="q1" fmla="*/ x3 x3 w" />\r
+      <gd name="q2" fmla="+- x3 0 q1" />\r
+      <gd name="y1" fmla="*/ f1 q2 1" />\r
+\r
+      <gd name="cx1" fmla="*/ x3 1 2" />\r
+\r
+      <gd name="cy1" fmla="*/ f1 cx1 1" />\r
+\r
+      <gd name="cx2" fmla="+- r 0 cx1" />\r
+\r
+\r
+\r
+      <gd name="q1" fmla="*/ h a1 100000" />\r
+\r
+      <gd name="dy3" fmla="+- q1 0 dy1" />\r
+\r
+      <gd name="q3" fmla="*/ x2 x2 w" />\r
+      <gd name="q4" fmla="+- x2 0 q3" />\r
+      <gd name="q5" fmla="*/ f1 q4 1" />\r
+      <gd name="y3" fmla="+- q5 dy3 0" />\r
+\r
+\r
+\r
+      <gd name="q6" fmla="+- dy1 dy3 y3" />\r
+      <gd name="q7" fmla="+- q6 dy1 0" />\r
+      <gd name="cy3" fmla="+- q7 dy3 0" />\r
+\r
+      <gd name="rh" fmla="+- b 0 q1" />\r
+\r
+      <gd name="q8" fmla="*/ dy1 14 16" />\r
+      <gd name="y2" fmla="+/ q8 rh 2" />\r
+\r
+\r
+      <gd name="y5" fmla="+- q5 rh 0" />\r
+\r
+      <gd name="y6" fmla="+- y3 rh 0" />\r
+\r
+      <gd name="cx4" fmla="*/ x2 1 2" />\r
+\r
+      <gd name="q9" fmla="*/ f1 cx4 1" />\r
+      <gd name="cy4" fmla="+- q9 rh 0" />\r
+\r
+      <gd name="cx5" fmla="+- r 0 cx4" />\r
+\r
+\r
+\r
+\r
+\r
+      <gd name="cy6" fmla="+- cy3 rh 0" />\r
+\r
+      <gd name="y7" fmla="+- y1 dy3 0" />\r
+      <gd name="cy7" fmla="+- q1 q1 y7" />\r
+      <gd name="y8" fmla="+- b 0 dy1" />\r
+\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="100000">\r
+        <pos x="hc" y="q1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="25000" maxX="75000">\r
+        <pos x="x2" y="b" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj3" minY="minAdj3" maxY="a1">\r
+        <pos x="l" y="y8" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="q1" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="wd8" y="y2" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x6" y="y2" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="x2" t="q1" r="x5" b="y6" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <quadBezTo>\r
+          <pt x="cx1" y="cy1" />\r
+          <pt x="x3" y="y1" />\r
+        </quadBezTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y3" />\r
+        </lnTo>\r
+        <quadBezTo>\r
+          <pt x="hc" y="cy3" />\r
+          <pt x="x5" y="y3" />\r
+        </quadBezTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y1" />\r
+        </lnTo>\r
+        <quadBezTo>\r
+          <pt x="cx2" y="cy1" />\r
+          <pt x="r" y="t" />\r
+        </quadBezTo>\r
+        <lnTo>\r
+          <pt x="x6" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="rh" />\r
+        </lnTo>\r
+        <quadBezTo>\r
+          <pt x="cx5" y="cy4" />\r
+          <pt x="x5" y="y5" />\r
+        </quadBezTo>\r
+        <lnTo>\r
+          <pt x="x5" y="y6" />\r
+        </lnTo>\r
+        <quadBezTo>\r
+          <pt x="hc" y="cy6" />\r
+          <pt x="x2" y="y6" />\r
+        </quadBezTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y5" />\r
+        </lnTo>\r
+        <quadBezTo>\r
+          <pt x="cx4" y="cy4" />\r
+          <pt x="l" y="rh" />\r
+        </quadBezTo>\r
+        <lnTo>\r
+          <pt x="wd8" y="y2" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="darkenLess" stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="x3" y="y7" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y3" />\r
+        </lnTo>\r
+        <quadBezTo>\r
+          <pt x="hc" y="cy3" />\r
+          <pt x="x5" y="y3" />\r
+        </quadBezTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y7" />\r
+        </lnTo>\r
+        <quadBezTo>\r
+          <pt x="hc" y="cy7" />\r
+          <pt x="x3" y="y7" />\r
+        </quadBezTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <quadBezTo>\r
+          <pt x="cx1" y="cy1" />\r
+          <pt x="x3" y="y1" />\r
+        </quadBezTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y3" />\r
+        </lnTo>\r
+        <quadBezTo>\r
+          <pt x="hc" y="cy3" />\r
+          <pt x="x5" y="y3" />\r
+        </quadBezTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y1" />\r
+        </lnTo>\r
+        <quadBezTo>\r
+          <pt x="cx2" y="cy1" />\r
+          <pt x="r" y="t" />\r
+        </quadBezTo>\r
+        <lnTo>\r
+          <pt x="x6" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="rh" />\r
+        </lnTo>\r
+        <quadBezTo>\r
+          <pt x="cx5" y="cy4" />\r
+          <pt x="x5" y="y5" />\r
+        </quadBezTo>\r
+        <lnTo>\r
+          <pt x="x5" y="y6" />\r
+        </lnTo>\r
+        <quadBezTo>\r
+          <pt x="hc" y="cy6" />\r
+          <pt x="x2" y="y6" />\r
+        </quadBezTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y5" />\r
+        </lnTo>\r
+        <quadBezTo>\r
+          <pt x="cx4" y="cy4" />\r
+          <pt x="l" y="rh" />\r
+        </quadBezTo>\r
+        <lnTo>\r
+          <pt x="wd8" y="y2" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="x2" y="y5" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y3" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="x5" y="y3" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x5" y="y5" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="x3" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y7" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="x4" y="y7" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y1" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+\r
+  </ellipseRibbon>\r
+  <ellipseRibbon2>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 25000" />\r
+\r
+      <gd name="adj2" fmla="val 50000" />\r
+\r
+      <gd name="adj3" fmla="val 12500" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+\r
+\r
+      <gd name="a1" fmla="pin 0 adj1 100000" />\r
+      <gd name="a2" fmla="pin 25000 adj2 75000" />\r
+      <gd name="q10" fmla="+- 100000 0 a1" />\r
+      <gd name="q11" fmla="*/ q10 1 2" />\r
+      <gd name="q12" fmla="+- a1 0 q11" />\r
+      <gd name="minAdj3" fmla="max 0 q12" />\r
+      <gd name="a3" fmla="pin minAdj3 adj3 a1" />\r
+      <gd name="dx2" fmla="*/ w a2 200000" />\r
+\r
+      <gd name="x2" fmla="+- hc 0 dx2" />\r
+\r
+      <gd name="x3" fmla="+- x2 wd8 0" />\r
+\r
+      <gd name="x4" fmla="+- r 0 x3" />\r
+\r
+      <gd name="x5" fmla="+- r 0 x2" />\r
+\r
+      <gd name="x6" fmla="+- r 0 wd8" />\r
+\r
+      <gd name="dy1" fmla="*/ h a3 100000" />\r
+\r
+      <gd name="f1" fmla="*/ 4 dy1 w" />\r
+\r
+      <gd name="q1" fmla="*/ x3 x3 w" />\r
+      <gd name="q2" fmla="+- x3 0 q1" />\r
+      <gd name="u1" fmla="*/ f1 q2 1" />\r
+\r
+      <gd name="y1" fmla="+- b 0 u1" />\r
+      <gd name="cx1" fmla="*/ x3 1 2" />\r
+\r
+      <gd name="cu1" fmla="*/ f1 cx1 1" />\r
+\r
+      <gd name="cy1" fmla="+- b 0 cu1" />\r
+      <gd name="cx2" fmla="+- r 0 cx1" />\r
+\r
+\r
+\r
+      <gd name="q1" fmla="*/ h a1 100000" />\r
+\r
+      <gd name="dy3" fmla="+- q1 0 dy1" />\r
+\r
+      <gd name="q3" fmla="*/ x2 x2 w" />\r
+      <gd name="q4" fmla="+- x2 0 q3" />\r
+      <gd name="q5" fmla="*/ f1 q4 1" />\r
+      <gd name="u3" fmla="+- q5 dy3 0" />\r
+\r
+      <gd name="y3" fmla="+- b 0 u3" />\r
+\r
+\r
+      <gd name="q6" fmla="+- dy1 dy3 u3" />\r
+      <gd name="q7" fmla="+- q6 dy1 0" />\r
+      <gd name="cu3" fmla="+- q7 dy3 0" />\r
+\r
+      <gd name="cy3" fmla="+- b 0 cu3" />\r
+      <gd name="rh" fmla="+- b 0 q1" />\r
+\r
+      <gd name="q8" fmla="*/ dy1 14 16" />\r
+      <gd name="u2" fmla="+/ q8 rh 2" />\r
+\r
+      <gd name="y2" fmla="+- b 0 u2" />\r
+\r
+      <gd name="u5" fmla="+- q5 rh 0" />\r
+\r
+      <gd name="y5" fmla="+- b 0 u5" />\r
+      <gd name="u6" fmla="+- u3 rh 0" />\r
+\r
+      <gd name="y6" fmla="+- b 0 u6" />\r
+      <gd name="cx4" fmla="*/ x2 1 2" />\r
+\r
+      <gd name="q9" fmla="*/ f1 cx4 1" />\r
+      <gd name="cu4" fmla="+- q9 rh 0" />\r
+\r
+      <gd name="cy4" fmla="+- b 0 cu4" />\r
+      <gd name="cx5" fmla="+- r 0 cx4" />\r
+\r
+\r
+\r
+\r
+\r
+      <gd name="cu6" fmla="+- cu3 rh 0" />\r
+\r
+      <gd name="cy6" fmla="+- b 0 cu6" />\r
+      <gd name="u7" fmla="+- u1 dy3 0" />\r
+      <gd name="y7" fmla="+- b 0 u7" />\r
+      <gd name="cu7" fmla="+- q1 q1 u7" />\r
+      <gd name="cy7" fmla="+- b 0 cu7" />\r
+\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="100000">\r
+        <pos x="hc" y="rh" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="25000" maxX="100000">\r
+        <pos x="x2" y="t" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj3" minY="minAdj3" maxY="a1">\r
+        <pos x="l" y="dy1" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="wd8" y="y2" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="rh" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x6" y="y2" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="x2" t="y6" r="x5" b="rh" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="l" y="b" />\r
+        </moveTo>\r
+        <quadBezTo>\r
+          <pt x="cx1" y="cy1" />\r
+          <pt x="x3" y="y1" />\r
+        </quadBezTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y3" />\r
+        </lnTo>\r
+        <quadBezTo>\r
+          <pt x="hc" y="cy3" />\r
+          <pt x="x5" y="y3" />\r
+        </quadBezTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y1" />\r
+        </lnTo>\r
+        <quadBezTo>\r
+          <pt x="cx2" y="cy1" />\r
+          <pt x="r" y="b" />\r
+        </quadBezTo>\r
+        <lnTo>\r
+          <pt x="x6" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="q1" />\r
+        </lnTo>\r
+        <quadBezTo>\r
+          <pt x="cx5" y="cy4" />\r
+          <pt x="x5" y="y5" />\r
+        </quadBezTo>\r
+        <lnTo>\r
+          <pt x="x5" y="y6" />\r
+        </lnTo>\r
+        <quadBezTo>\r
+          <pt x="hc" y="cy6" />\r
+          <pt x="x2" y="y6" />\r
+        </quadBezTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y5" />\r
+        </lnTo>\r
+        <quadBezTo>\r
+          <pt x="cx4" y="cy4" />\r
+          <pt x="l" y="q1" />\r
+        </quadBezTo>\r
+        <lnTo>\r
+          <pt x="wd8" y="y2" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="darkenLess" stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="x3" y="y7" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y3" />\r
+        </lnTo>\r
+        <quadBezTo>\r
+          <pt x="hc" y="cy3" />\r
+          <pt x="x5" y="y3" />\r
+        </quadBezTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y7" />\r
+        </lnTo>\r
+        <quadBezTo>\r
+          <pt x="hc" y="cy7" />\r
+          <pt x="x3" y="y7" />\r
+        </quadBezTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="l" y="b" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="wd8" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="q1" />\r
+        </lnTo>\r
+        <quadBezTo>\r
+          <pt x="cx4" y="cy4" />\r
+          <pt x="x2" y="y5" />\r
+        </quadBezTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y6" />\r
+        </lnTo>\r
+        <quadBezTo>\r
+          <pt x="hc" y="cy6" />\r
+          <pt x="x5" y="y6" />\r
+        </quadBezTo>\r
+        <lnTo>\r
+          <pt x="x5" y="y5" />\r
+        </lnTo>\r
+        <quadBezTo>\r
+          <pt x="cx5" y="cy4" />\r
+          <pt x="r" y="q1" />\r
+        </quadBezTo>\r
+        <lnTo>\r
+          <pt x="x6" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <quadBezTo>\r
+          <pt x="cx2" y="cy1" />\r
+          <pt x="x4" y="y1" />\r
+        </quadBezTo>\r
+        <lnTo>\r
+          <pt x="x5" y="y3" />\r
+        </lnTo>\r
+        <quadBezTo>\r
+          <pt x="hc" y="cy3" />\r
+          <pt x="x2" y="y3" />\r
+        </quadBezTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y1" />\r
+        </lnTo>\r
+        <quadBezTo>\r
+          <pt x="cx1" y="cy1" />\r
+          <pt x="l" y="b" />\r
+        </quadBezTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="x2" y="y3" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y5" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="x5" y="y5" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x5" y="y3" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="x3" y="y7" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y1" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="x4" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y7" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+\r
+  </ellipseRibbon2>\r
+  <flowChartAlternateProcess>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="x2" fmla="+- r 0 ssd6" />\r
+      <gd name="y2" fmla="+- b 0 ssd6" />\r
+      <gd name="il" fmla="*/ ssd6 29289 100000" />\r
+\r
+\r
+      <gd name="ir" fmla="+- r 0 il" />\r
+      <gd name="ib" fmla="+- b 0 il" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="il" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="ssd6" />\r
+        </moveTo>\r
+        <arcTo wR="ssd6" hR="ssd6" stAng="cd2" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x2" y="t" />\r
+        </lnTo>\r
+        <arcTo wR="ssd6" hR="ssd6" stAng="3cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="r" y="y2" />\r
+        </lnTo>\r
+        <arcTo wR="ssd6" hR="ssd6" stAng="0" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="ssd6" y="b" />\r
+        </lnTo>\r
+        <arcTo wR="ssd6" hR="ssd6" stAng="cd4" swAng="cd4" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartAlternateProcess>\r
+  <flowChartCollate>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="ir" fmla="*/ w 3 4" />\r
+      <gd name="ib" fmla="*/ h 3 4" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="wd4" t="hd4" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path w="2" h="2">\r
+        <moveTo>\r
+          <pt x="0" y="0" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="2" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="1" y="1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="2" y="2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="0" y="2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="1" y="1" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartCollate>\r
+  <flowChartConnector>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="idx" fmla="cos wd2 2700000" />\r
+      <gd name="idy" fmla="sin hd2 2700000" />\r
+      <gd name="il" fmla="+- hc 0 idx" />\r
+      <gd name="ir" fmla="+- hc idx 0" />\r
+      <gd name="it" fmla="+- vc 0 idy" />\r
+      <gd name="ib" fmla="+- vc idy 0" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="il" y="it" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="il" y="ib" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="ir" y="ib" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="ir" y="it" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="vc" />\r
+        </moveTo>\r
+        <arcTo wR="wd2" hR="hd2" stAng="cd2" swAng="cd4" />\r
+        <arcTo wR="wd2" hR="hd2" stAng="3cd4" swAng="cd4" />\r
+        <arcTo wR="wd2" hR="hd2" stAng="0" swAng="cd4" />\r
+        <arcTo wR="wd2" hR="hd2" stAng="cd4" swAng="cd4" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartConnector>\r
+  <flowChartDecision>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="ir" fmla="*/ w 3 4" />\r
+      <gd name="ib" fmla="*/ h 3 4" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="wd4" t="hd4" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path w="2" h="2">\r
+        <moveTo>\r
+          <pt x="0" y="1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="1" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="2" y="1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="1" y="2" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartDecision>\r
+  <flowChartDelay>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="idx" fmla="cos wd2 2700000" />\r
+      <gd name="idy" fmla="sin hd2 2700000" />\r
+      <gd name="ir" fmla="+- hc idx 0" />\r
+      <gd name="it" fmla="+- vc 0 idy" />\r
+      <gd name="ib" fmla="+- vc idy 0" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="hc" y="t" />\r
+        </lnTo>\r
+        <arcTo wR="wd2" hR="hd2" stAng="3cd4" swAng="cd2" />\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartDelay>\r
+  <flowChartDisplay>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="x2" fmla="*/ w 5 6" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="wd6" t="t" r="x2" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path w="6" h="6">\r
+        <moveTo>\r
+          <pt x="0" y="3" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="1" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="5" y="0" />\r
+        </lnTo>\r
+        <arcTo wR="1" hR="3" stAng="3cd4" swAng="cd2" />\r
+        <lnTo>\r
+          <pt x="1" y="6" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartDisplay>\r
+  <flowChartDocument>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="y1" fmla="*/ h 17322 21600" />\r
+      <gd name="y2" fmla="*/ h 20172 21600" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="y2" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="t" r="r" b="y1" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path w="21600" h="21600">\r
+        <moveTo>\r
+          <pt x="0" y="0" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="21600" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="21600" y="17322" />\r
+        </lnTo>\r
+        <cubicBezTo>\r
+          <pt x="10800" y="17322" />\r
+          <pt x="10800" y="23922" />\r
+          <pt x="0" y="20172" />\r
+        </cubicBezTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartDocument>\r
+  <flowChartExtract>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="x2" fmla="*/ w 3 4" />\r
+    </gdLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="wd4" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x2" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="wd4" t="vc" r="x2" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path w="2" h="2">\r
+        <moveTo>\r
+          <pt x="0" y="2" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="1" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="2" y="2" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartExtract>\r
+  <flowChartInputOutput>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="x3" fmla="*/ w 2 5" />\r
+      <gd name="x4" fmla="*/ w 3 5" />\r
+      <gd name="x5" fmla="*/ w 4 5" />\r
+      <gd name="x6" fmla="*/ w 9 10" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="x4" y="t" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="wd10" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x3" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x6" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="wd5" t="t" r="x5" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path w="5" h="5">\r
+        <moveTo>\r
+          <pt x="0" y="5" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="1" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="5" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="4" y="5" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartInputOutput>\r
+  <flowChartInternalStorage>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="wd8" t="hd8" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false" w="1" h="1">\r
+\r
+        <moveTo>\r
+          <pt x="0" y="0" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="1" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="1" y="1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="0" y="1" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false" w="8" h="8">\r
+\r
+        <moveTo>\r
+          <pt x="1" y="0" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="1" y="8" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="0" y="1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="8" y="1" />\r
+        </lnTo>\r
+      </path>\r
+      <path fill="none" w="1" h="1">\r
+\r
+        <moveTo>\r
+          <pt x="0" y="0" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="1" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="1" y="1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="0" y="1" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartInternalStorage>\r
+  <flowChartMagneticDisk>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="y3" fmla="*/ h 5 6" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="hd3" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="hd3" r="r" b="y3" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false" w="6" h="6">\r
+\r
+        <moveTo>\r
+          <pt x="0" y="1" />\r
+        </moveTo>\r
+        <arcTo wR="3" hR="1" stAng="cd2" swAng="cd2" />\r
+        <lnTo>\r
+          <pt x="6" y="5" />\r
+        </lnTo>\r
+        <arcTo wR="3" hR="1" stAng="0" swAng="cd2" />\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false" w="6" h="6">\r
+\r
+        <moveTo>\r
+          <pt x="6" y="1" />\r
+        </moveTo>\r
+        <arcTo wR="3" hR="1" stAng="0" swAng="cd2" />\r
+      </path>\r
+      <path fill="none" w="6" h="6">\r
+\r
+        <moveTo>\r
+          <pt x="0" y="1" />\r
+        </moveTo>\r
+        <arcTo wR="3" hR="1" stAng="cd2" swAng="cd2" />\r
+        <lnTo>\r
+          <pt x="6" y="5" />\r
+        </lnTo>\r
+        <arcTo wR="3" hR="1" stAng="0" swAng="cd2" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartMagneticDisk>\r
+  <flowChartMagneticDrum>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="x2" fmla="*/ w 2 3" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x2" y="vc" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="wd6" t="t" r="x2" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false" w="6" h="6">\r
+\r
+        <moveTo>\r
+          <pt x="1" y="0" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="5" y="0" />\r
+        </lnTo>\r
+        <arcTo wR="1" hR="3" stAng="3cd4" swAng="cd2" />\r
+        <lnTo>\r
+          <pt x="1" y="6" />\r
+        </lnTo>\r
+        <arcTo wR="1" hR="3" stAng="cd4" swAng="cd2" />\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false" w="6" h="6">\r
+\r
+        <moveTo>\r
+          <pt x="5" y="6" />\r
+        </moveTo>\r
+        <arcTo wR="1" hR="3" stAng="cd4" swAng="cd2" />\r
+      </path>\r
+      <path fill="none" w="6" h="6">\r
+\r
+        <moveTo>\r
+          <pt x="1" y="0" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="5" y="0" />\r
+        </lnTo>\r
+        <arcTo wR="1" hR="3" stAng="3cd4" swAng="cd2" />\r
+        <lnTo>\r
+          <pt x="1" y="6" />\r
+        </lnTo>\r
+        <arcTo wR="1" hR="3" stAng="cd4" swAng="cd2" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartMagneticDrum>\r
+  <flowChartMagneticTape>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="idx" fmla="cos wd2 2700000" />\r
+      <gd name="idy" fmla="sin hd2 2700000" />\r
+      <gd name="il" fmla="+- hc 0 idx" />\r
+      <gd name="ir" fmla="+- hc idx 0" />\r
+      <gd name="it" fmla="+- vc 0 idy" />\r
+      <gd name="ib" fmla="+- vc idy 0" />\r
+      <gd name="ang1" fmla="at2 w h" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="hc" y="b" />\r
+        </moveTo>\r
+        <arcTo wR="wd2" hR="hd2" stAng="cd4" swAng="cd4" />\r
+        <arcTo wR="wd2" hR="hd2" stAng="cd2" swAng="cd4" />\r
+        <arcTo wR="wd2" hR="hd2" stAng="3cd4" swAng="cd4" />\r
+        <arcTo wR="wd2" hR="hd2" stAng="0" swAng="ang1" />\r
+        <lnTo>\r
+          <pt x="r" y="ib" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartMagneticTape>\r
+  <flowChartManualInput>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="hd10" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="hd5" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path w="5" h="5">\r
+        <moveTo>\r
+          <pt x="0" y="1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="5" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="5" y="5" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="0" y="5" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartManualInput>\r
+  <flowChartManualOperation>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="x3" fmla="*/ w 4 5" />\r
+      <gd name="x4" fmla="*/ w 9 10" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="wd10" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x4" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="wd5" t="t" r="x3" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path w="5" h="5">\r
+        <moveTo>\r
+          <pt x="0" y="0" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="5" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="4" y="5" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="1" y="5" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartManualOperation>\r
+  <flowChartMerge>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="x2" fmla="*/ w 3 4" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="wd4" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x2" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="wd4" t="t" r="x2" b="vc" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path w="2" h="2">\r
+        <moveTo>\r
+          <pt x="0" y="0" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="2" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="1" y="2" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartMerge>\r
+  <flowChartMultidocument>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="y2" fmla="*/ h 3675 21600" />\r
+      <gd name="y8" fmla="*/ h 20782 21600" />\r
+      <gd name="x3" fmla="*/ w 9298 21600" />\r
+      <gd name="x4" fmla="*/ w 12286 21600" />\r
+      <gd name="x5" fmla="*/ w 18595 21600" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="x4" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x3" y="y8" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="y2" r="x5" b="y8" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false" w="21600" h="21600">\r
+\r
+        <moveTo>\r
+          <pt x="0" y="20782" />\r
+        </moveTo>\r
+        <cubicBezTo>\r
+          <pt x="9298" y="23542" />\r
+          <pt x="9298" y="18022" />\r
+          <pt x="18595" y="18022" />\r
+        </cubicBezTo>\r
+        <lnTo>\r
+          <pt x="18595" y="3675" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="0" y="3675" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="1532" y="3675" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="1532" y="1815" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="20000" y="1815" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="20000" y="16252" />\r
+        </lnTo>\r
+        <cubicBezTo>\r
+          <pt x="19298" y="16252" />\r
+          <pt x="18595" y="16352" />\r
+          <pt x="18595" y="16352" />\r
+        </cubicBezTo>\r
+        <lnTo>\r
+          <pt x="18595" y="3675" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="2972" y="1815" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="2972" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="21600" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="21600" y="14392" />\r
+        </lnTo>\r
+        <cubicBezTo>\r
+          <pt x="20800" y="14392" />\r
+          <pt x="20000" y="14467" />\r
+          <pt x="20000" y="14467" />\r
+        </cubicBezTo>\r
+        <lnTo>\r
+          <pt x="20000" y="1815" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false" w="21600" h="21600">\r
+\r
+        <moveTo>\r
+          <pt x="0" y="3675" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="18595" y="3675" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="18595" y="18022" />\r
+        </lnTo>\r
+        <cubicBezTo>\r
+          <pt x="9298" y="18022" />\r
+          <pt x="9298" y="23542" />\r
+          <pt x="0" y="20782" />\r
+        </cubicBezTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="1532" y="3675" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="1532" y="1815" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="20000" y="1815" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="20000" y="16252" />\r
+        </lnTo>\r
+        <cubicBezTo>\r
+          <pt x="19298" y="16252" />\r
+          <pt x="18595" y="16352" />\r
+          <pt x="18595" y="16352" />\r
+        </cubicBezTo>\r
+        <moveTo>\r
+          <pt x="2972" y="1815" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="2972" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="21600" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="21600" y="14392" />\r
+        </lnTo>\r
+        <cubicBezTo>\r
+          <pt x="20800" y="14392" />\r
+          <pt x="20000" y="14467" />\r
+          <pt x="20000" y="14467" />\r
+        </cubicBezTo>\r
+      </path>\r
+      <path stroke="false" fill="none" w="21600" h="21600">\r
+\r
+        <moveTo>\r
+          <pt x="0" y="20782" />\r
+        </moveTo>\r
+        <cubicBezTo>\r
+          <pt x="9298" y="23542" />\r
+          <pt x="9298" y="18022" />\r
+          <pt x="18595" y="18022" />\r
+        </cubicBezTo>\r
+        <lnTo>\r
+          <pt x="18595" y="16352" />\r
+        </lnTo>\r
+        <cubicBezTo>\r
+          <pt x="18595" y="16352" />\r
+          <pt x="19298" y="16252" />\r
+          <pt x="20000" y="16252" />\r
+        </cubicBezTo>\r
+        <lnTo>\r
+          <pt x="20000" y="14467" />\r
+        </lnTo>\r
+        <cubicBezTo>\r
+          <pt x="20000" y="14467" />\r
+          <pt x="20800" y="14392" />\r
+          <pt x="21600" y="14392" />\r
+        </cubicBezTo>\r
+        <lnTo>\r
+          <pt x="21600" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="2972" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="2972" y="1815" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="1532" y="1815" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="1532" y="3675" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="0" y="3675" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartMultidocument>\r
+  <flowChartOfflineStorage>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="x4" fmla="*/ w 3 4" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="x4" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="wd4" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="wd4" t="t" r="x4" b="vc" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false" w="2" h="2">\r
+\r
+        <moveTo>\r
+          <pt x="0" y="0" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="2" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="1" y="2" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false" w="5" h="5">\r
+\r
+        <moveTo>\r
+          <pt x="2" y="4" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="3" y="4" />\r
+        </lnTo>\r
+      </path>\r
+      <path fill="none" extrusionOk="true" w="2" h="2">\r
+\r
+        <moveTo>\r
+          <pt x="0" y="0" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="2" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="1" y="2" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartOfflineStorage>\r
+  <flowChartOffpageConnector>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="y1" fmla="*/ h 4 5" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="t" r="r" b="y1" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path w="10" h="10">\r
+        <moveTo>\r
+          <pt x="0" y="0" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="10" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="10" y="8" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="5" y="10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="0" y="8" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartOffpageConnector>\r
+  <flowChartOnlineStorage>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="x2" fmla="*/ w 5 6" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x2" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="wd6" t="t" r="x2" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path w="6" h="6">\r
+        <moveTo>\r
+          <pt x="1" y="0" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="6" y="0" />\r
+        </lnTo>\r
+        <arcTo wR="1" hR="3" stAng="3cd4" swAng="-10800000" />\r
+        <lnTo>\r
+          <pt x="1" y="6" />\r
+        </lnTo>\r
+        <arcTo wR="1" hR="3" stAng="cd4" swAng="cd2" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartOnlineStorage>\r
+  <flowChartOr>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="idx" fmla="cos wd2 2700000" />\r
+      <gd name="idy" fmla="sin hd2 2700000" />\r
+      <gd name="il" fmla="+- hc 0 idx" />\r
+      <gd name="ir" fmla="+- hc idx 0" />\r
+      <gd name="it" fmla="+- vc 0 idy" />\r
+      <gd name="ib" fmla="+- vc idy 0" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="il" y="it" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="il" y="ib" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="ir" y="ib" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="ir" y="it" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="l" y="vc" />\r
+        </moveTo>\r
+        <arcTo wR="wd2" hR="hd2" stAng="cd2" swAng="cd4" />\r
+        <arcTo wR="wd2" hR="hd2" stAng="3cd4" swAng="cd4" />\r
+        <arcTo wR="wd2" hR="hd2" stAng="0" swAng="cd4" />\r
+        <arcTo wR="wd2" hR="hd2" stAng="cd4" swAng="cd4" />\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="hc" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="hc" y="b" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="l" y="vc" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="vc" />\r
+        </lnTo>\r
+      </path>\r
+      <path fill="none">\r
+\r
+        <moveTo>\r
+          <pt x="l" y="vc" />\r
+        </moveTo>\r
+        <arcTo wR="wd2" hR="hd2" stAng="cd2" swAng="cd4" />\r
+        <arcTo wR="wd2" hR="hd2" stAng="3cd4" swAng="cd4" />\r
+        <arcTo wR="wd2" hR="hd2" stAng="0" swAng="cd4" />\r
+        <arcTo wR="wd2" hR="hd2" stAng="cd4" swAng="cd4" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartOr>\r
+  <flowChartPredefinedProcess>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="x2" fmla="*/ w 7 8" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="wd8" t="t" r="x2" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false" w="1" h="1">\r
+\r
+        <moveTo>\r
+          <pt x="0" y="0" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="1" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="1" y="1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="0" y="1" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false" w="8" h="8">\r
+\r
+        <moveTo>\r
+          <pt x="1" y="0" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="1" y="8" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="7" y="0" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="7" y="8" />\r
+        </lnTo>\r
+      </path>\r
+      <path fill="none" w="1" h="1">\r
+\r
+        <moveTo>\r
+          <pt x="0" y="0" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="1" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="1" y="1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="0" y="1" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartPredefinedProcess>\r
+  <flowChartPreparation>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="x2" fmla="*/ w 4 5" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="wd5" t="t" r="x2" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path w="10" h="10">\r
+        <moveTo>\r
+          <pt x="0" y="5" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="2" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="8" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="10" y="5" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="8" y="10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="2" y="10" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartPreparation>\r
+  <flowChartProcess>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path w="1" h="1">\r
+        <moveTo>\r
+          <pt x="0" y="0" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="1" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="1" y="1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="0" y="1" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartProcess>\r
+  <flowChartPunchedCard>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="hd5" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path w="5" h="5">\r
+        <moveTo>\r
+          <pt x="0" y="1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="1" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="5" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="5" y="5" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="0" y="5" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartPunchedCard>\r
+  <flowChartPunchedTape>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="y2" fmla="*/ h 9 10" />\r
+      <gd name="ib" fmla="*/ h 4 5" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="hd10" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="y2" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="hd5" r="r" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path w="20" h="20">\r
+        <moveTo>\r
+          <pt x="0" y="2" />\r
+        </moveTo>\r
+        <arcTo wR="5" hR="2" stAng="cd2" swAng="-10800000" />\r
+        <arcTo wR="5" hR="2" stAng="cd2" swAng="cd2" />\r
+        <lnTo>\r
+          <pt x="20" y="18" />\r
+        </lnTo>\r
+        <arcTo wR="5" hR="2" stAng="0" swAng="-10800000" />\r
+        <arcTo wR="5" hR="2" stAng="0" swAng="cd2" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartPunchedTape>\r
+  <flowChartSort>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="ir" fmla="*/ w 3 4" />\r
+      <gd name="ib" fmla="*/ h 3 4" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="wd4" t="hd4" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false" w="2" h="2">\r
+\r
+        <moveTo>\r
+          <pt x="0" y="1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="1" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="2" y="1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="1" y="2" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false" w="2" h="2">\r
+\r
+        <moveTo>\r
+          <pt x="0" y="1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="2" y="1" />\r
+        </lnTo>\r
+      </path>\r
+      <path fill="none" w="2" h="2">\r
+\r
+        <moveTo>\r
+          <pt x="0" y="1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="1" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="2" y="1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="1" y="2" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartSort>\r
+  <flowChartSummingJunction>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="idx" fmla="cos wd2 2700000" />\r
+      <gd name="idy" fmla="sin hd2 2700000" />\r
+      <gd name="il" fmla="+- hc 0 idx" />\r
+      <gd name="ir" fmla="+- hc idx 0" />\r
+      <gd name="it" fmla="+- vc 0 idy" />\r
+      <gd name="ib" fmla="+- vc idy 0" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="il" y="it" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="il" y="ib" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="ir" y="ib" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="ir" y="it" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="l" y="vc" />\r
+        </moveTo>\r
+        <arcTo wR="wd2" hR="hd2" stAng="cd2" swAng="cd4" />\r
+        <arcTo wR="wd2" hR="hd2" stAng="3cd4" swAng="cd4" />\r
+        <arcTo wR="wd2" hR="hd2" stAng="0" swAng="cd4" />\r
+        <arcTo wR="wd2" hR="hd2" stAng="cd4" swAng="cd4" />\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="il" y="it" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="ir" y="ib" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="ir" y="it" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="il" y="ib" />\r
+        </lnTo>\r
+      </path>\r
+      <path fill="none">\r
+\r
+        <moveTo>\r
+          <pt x="l" y="vc" />\r
+        </moveTo>\r
+        <arcTo wR="wd2" hR="hd2" stAng="cd2" swAng="cd4" />\r
+        <arcTo wR="wd2" hR="hd2" stAng="3cd4" swAng="cd4" />\r
+        <arcTo wR="wd2" hR="hd2" stAng="0" swAng="cd4" />\r
+        <arcTo wR="wd2" hR="hd2" stAng="cd4" swAng="cd4" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartSummingJunction>\r
+  <flowChartTerminator>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="il" fmla="*/ w 1018 21600" />\r
+      <gd name="ir" fmla="*/ w 20582 21600" />\r
+      <gd name="it" fmla="*/ h 3163 21600" />\r
+      <gd name="ib" fmla="*/ h 18437 21600" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path w="21600" h="21600">\r
+        <moveTo>\r
+          <pt x="3475" y="0" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="18125" y="0" />\r
+        </lnTo>\r
+        <arcTo wR="3475" hR="10800" stAng="3cd4" swAng="cd2" />\r
+        <lnTo>\r
+          <pt x="3475" y="21600" />\r
+        </lnTo>\r
+        <arcTo wR="3475" hR="10800" stAng="cd4" swAng="cd2" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartTerminator>\r
+  <foldedCorner>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 16667" />\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 50000" />\r
+      <gd name="dy2" fmla="*/ ss a 100000" />\r
+      <gd name="dy1" fmla="*/ dy2 1 5" />\r
+      <gd name="x1" fmla="+- r 0 dy2" />\r
+      <gd name="x2" fmla="+- x1 dy1 0" />\r
+      <gd name="y2" fmla="+- b 0 dy2" />\r
+      <gd name="y1" fmla="+- y2 dy1 0" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj" minX="0" maxX="50000">\r
+        <pos x="x1" y="b" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="t" r="r" b="y2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path stroke="false" fill="darkenLess" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="x1" y="b" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y2" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="x1" y="b" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y2" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+\r
+  </foldedCorner>\r
+  <frame>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 12500" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a1" fmla="pin 0 adj1 50000" />\r
+      <gd name="x1" fmla="*/ ss a1 100000" />\r
+\r
+      <gd name="x4" fmla="+- r 0 x1" />\r
+\r
+\r
+\r
+      <gd name="y4" fmla="+- b 0 x1" />\r
+\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="0" maxX="50000">\r
+        <pos x="x1" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="x1" t="x1" r="x4" b="y4" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="x1" y="x1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="x1" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </frame>\r
+  <funnel>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+\r
+      <gd name="d" fmla="*/ ss 1 20" />\r
+\r
+\r
+      <gd name="rw2" fmla="+- wd2 0 d" />\r
+\r
+      <gd name="rh2" fmla="+- hd4 0 d" />\r
+\r
+\r
+\r
+      <gd name="t1" fmla="cos wd2 480000" />\r
+\r
+      <gd name="t2" fmla="sin hd4 480000" />\r
+\r
+      <gd name="da" fmla="at2 t1 t2" />\r
+\r
+\r
+      <gd name="2da" fmla="*/ da 2 1" />\r
+      <gd name="stAng1" fmla="+- cd2 0 da" />\r
+      <gd name="swAng1" fmla="+- cd2 2da 0" />\r
+\r
+\r
+      <gd name="swAng3" fmla="+- cd2 0 2da" />\r
+\r
+\r
+      <gd name="rw3" fmla="*/ wd2 1 4" />\r
+      <gd name="rh3" fmla="*/ hd4 1 4" />\r
+\r
+\r
+      <gd name="ct1" fmla="cos hd4 stAng1" />\r
+      <gd name="st1" fmla="sin wd2 stAng1" />\r
+      <gd name="m1" fmla="mod ct1 st1 0" />\r
+      <gd name="n1" fmla="*/ wd2 hd4 m1" />\r
+      <gd name="dx1" fmla="cos n1 stAng1" />\r
+      <gd name="dy1" fmla="sin n1 stAng1" />\r
+      <gd name="x1" fmla="+- hc dx1 0" />\r
+      <gd name="y1" fmla="+- hd4 dy1 0" />\r
+\r
+\r
+      <gd name="ct3" fmla="cos rh3 da" />\r
+      <gd name="st3" fmla="sin rw3 da" />\r
+      <gd name="m3" fmla="mod ct3 st3 0" />\r
+      <gd name="n3" fmla="*/ rw3 rh3 m3" />\r
+      <gd name="dx3" fmla="cos n3 da" />\r
+      <gd name="dy3" fmla="sin n3 da" />\r
+      <gd name="x3" fmla="+- hc dx3 0" />\r
+      <gd name="vc3" fmla="+- b 0 rh3" />\r
+      <gd name="y2" fmla="+- vc3 dy3 0" />\r
+\r
+\r
+      <gd name="x2" fmla="+- wd2 0 rw2" />\r
+\r
+      <gd name="cd" fmla="*/ cd2 2 1" />\r
+    </gdLst>\r
+\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="x1" y="y1" />\r
+        </moveTo>\r
+        <arcTo hR="hd4" wR="wd2" stAng="stAng1" swAng="swAng1" />\r
+        <lnTo>\r
+          <pt x="x3" y="y2" />\r
+        </lnTo>\r
+        <arcTo hR="rh3" wR="rw3" stAng="da" swAng="swAng3" />\r
+        <close />\r
+        <moveTo>\r
+          <pt x="x2" y="hd4" />\r
+        </moveTo>\r
+        <arcTo hR="rh2" wR="rw2" stAng="cd2" swAng="-21600000" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </funnel>\r
+  <gear6>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 15000" />\r
+\r
+      <gd name="adj2" fmla="val 3526" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+\r
+\r
+\r
+\r
+      <gd name="a1" fmla="pin 0 adj1 20000" />\r
+      <gd name="a2" fmla="pin 0 adj2 5358" />\r
+\r
+\r
+      <gd name="th" fmla="*/ ss a1 100000" />\r
+      <gd name="lFD" fmla="*/ ss a2 100000" />\r
+\r
+      <gd name="th2" fmla="*/ th 1 2" />\r
+      <gd name="l2" fmla="*/ lFD 1 2" />\r
+      <gd name="l3" fmla="+- th2 l2 0" />\r
+\r
+\r
+      <gd name="rh" fmla="+- hd2 0 th" />\r
+      <gd name="rw" fmla="+- wd2 0 th" />\r
+\r
+\r
+      <gd name="dr" fmla="+- rw 0 rh" />\r
+      <gd name="maxr" fmla="?: dr rh rw" />\r
+      <gd name="ha" fmla="at2 maxr l3" />\r
+\r
+\r
+      <gd name="aA1" fmla="+- 19800000 0 ha" />\r
+      <gd name="aD1" fmla="+- 19800000 ha 0" />\r
+\r
+\r
+      <gd name="ta11" fmla="cos rw aA1" />\r
+      <gd name="ta12" fmla="sin rh aA1" />\r
+      <gd name="bA1" fmla="at2 ta11 ta12" />\r
+\r
+      <gd name="cta1" fmla="cos rh bA1" />\r
+      <gd name="sta1" fmla="sin rw bA1" />\r
+      <gd name="ma1" fmla="mod cta1 sta1 0" />\r
+      <gd name="na1" fmla="*/ rw rh ma1" />\r
+      <gd name="dxa1" fmla="cos na1 bA1" />\r
+      <gd name="dya1" fmla="sin na1 bA1" />\r
+      <gd name="xA1" fmla="+- hc dxa1 0" />\r
+      <gd name="yA1" fmla="+- vc dya1 0" />\r
+\r
+\r
+      <gd name="td11" fmla="cos rw aD1" />\r
+      <gd name="td12" fmla="sin rh aD1" />\r
+      <gd name="bD1" fmla="at2 td11 td12" />\r
+\r
+      <gd name="ctd1" fmla="cos rh bD1" />\r
+      <gd name="std1" fmla="sin rw bD1" />\r
+      <gd name="md1" fmla="mod ctd1 std1 0" />\r
+      <gd name="nd1" fmla="*/ rw rh md1" />\r
+      <gd name="dxd1" fmla="cos nd1 bD1" />\r
+      <gd name="dyd1" fmla="sin nd1 bD1" />\r
+      <gd name="xD1" fmla="+- hc dxd1 0" />\r
+      <gd name="yD1" fmla="+- vc dyd1 0" />\r
+\r
+\r
+      <gd name="xAD1" fmla="+- xA1 0 xD1" />\r
+      <gd name="yAD1" fmla="+- yA1 0 yD1" />\r
+      <gd name="lAD1" fmla="mod xAD1 yAD1 0" />\r
+      <gd name="a1" fmla="at2 yAD1 xAD1" />\r
+\r
+\r
+      <gd name="dxF1" fmla="sin lFD a1" />\r
+      <gd name="dyF1" fmla="cos lFD a1" />\r
+      <gd name="xF1" fmla="+- xD1 dxF1 0" />\r
+      <gd name="yF1" fmla="+- yD1 dyF1 0" />\r
+      <gd name="xE1" fmla="+- xA1 0 dxF1" />\r
+      <gd name="yE1" fmla="+- yA1 0 dyF1" />\r
+\r
+\r
+      <gd name="yC1t" fmla="sin th a1" />\r
+      <gd name="xC1t" fmla="cos th a1" />\r
+      <gd name="yC1" fmla="+- yF1 yC1t 0" />\r
+      <gd name="xC1" fmla="+- xF1 0 xC1t" />\r
+\r
+\r
+      <gd name="yB1" fmla="+- yE1 yC1t 0" />\r
+      <gd name="xB1" fmla="+- xE1 0 xC1t" />\r
+\r
+\r
+      <gd name="aD6" fmla="+- 3cd4 ha 0" />\r
+\r
+\r
+      <gd name="td61" fmla="cos rw aD6" />\r
+      <gd name="td62" fmla="sin rh aD6" />\r
+      <gd name="bD6" fmla="at2 td61 td62" />\r
+\r
+      <gd name="ctd6" fmla="cos rh bD6" />\r
+      <gd name="std6" fmla="sin rw bD6" />\r
+      <gd name="md6" fmla="mod ctd6 std6 0" />\r
+      <gd name="nd6" fmla="*/ rw rh md6" />\r
+      <gd name="dxd6" fmla="cos nd6 bD6" />\r
+      <gd name="dyd6" fmla="sin nd6 bD6" />\r
+      <gd name="xD6" fmla="+- hc dxd6 0" />\r
+      <gd name="yD6" fmla="+- vc dyd6 0" />\r
+\r
+\r
+      <gd name="xA6" fmla="+- hc 0 dxd6" />\r
+\r
+\r
+      <gd name="xF6" fmla="+- xD6 0 lFD" />\r
+      <gd name="xE6" fmla="+- xA6 lFD 0" />\r
+\r
+\r
+      <gd name="yC6" fmla="+- yD6 0 th" />\r
+\r
+      <gd name="swAng1" fmla="+- bA1 0 bD6" />\r
+\r
+\r
+      <gd name="aA2" fmla="+- 1800000 0 ha" />\r
+      <gd name="aD2" fmla="+- 1800000 ha 0" />\r
+\r
+\r
+      <gd name="ta21" fmla="cos rw aA2" />\r
+      <gd name="ta22" fmla="sin rh aA2" />\r
+      <gd name="bA2" fmla="at2 ta21 ta22" />\r
+\r
+      <gd name="yA2" fmla="+- h 0 yD1" />\r
+\r
+\r
+      <gd name="td21" fmla="cos rw aD2" />\r
+      <gd name="td22" fmla="sin rh aD2" />\r
+      <gd name="bD2" fmla="at2 td21 td22" />\r
+\r
+      <gd name="yD2" fmla="+- h 0 yA1" />\r
+\r
+\r
+      <gd name="yC2" fmla="+- h 0 yB1" />\r
+\r
+\r
+      <gd name="yB2" fmla="+- h 0 yC1" />\r
+      <gd name="xB2" fmla="val xC1" />\r
+\r
+      <gd name="swAng2" fmla="+- bA2 0 bD1" />\r
+\r
+\r
+      <gd name="aD3" fmla="+- cd4 ha 0" />\r
+\r
+      <gd name="td31" fmla="cos rw aD3" />\r
+      <gd name="td32" fmla="sin rh aD3" />\r
+      <gd name="bD3" fmla="at2 td31 td32" />\r
+\r
+\r
+      <gd name="yD3" fmla="+- h 0 yD6" />\r
+\r
+\r
+      <gd name="yB3" fmla="+- h 0 yC6" />\r
+\r
+\r
+      <gd name="aD4" fmla="+- 9000000 ha 0" />\r
+\r
+      <gd name="td41" fmla="cos rw aD4" />\r
+      <gd name="td42" fmla="sin rh aD4" />\r
+      <gd name="bD4" fmla="at2 td41 td42" />\r
+\r
+\r
+      <gd name="xD4" fmla="+- w 0 xD1" />\r
+\r
+\r
+      <gd name="xC4" fmla="+- w 0 xC1" />\r
+\r
+\r
+      <gd name="xB4" fmla="+- w 0 xB1" />\r
+\r
+\r
+      <gd name="aD5" fmla="+- 12600000 ha 0" />\r
+\r
+      <gd name="td51" fmla="cos rw aD5" />\r
+      <gd name="td52" fmla="sin rh aD5" />\r
+      <gd name="bD5" fmla="at2 td51 td52" />\r
+\r
+\r
+      <gd name="xD5" fmla="+- w 0 xA1" />\r
+\r
+\r
+      <gd name="xC5" fmla="+- w 0 xB1" />\r
+\r
+\r
+      <gd name="xB5" fmla="+- w 0 xC1" />\r
+\r
+\r
+      <gd name="xCxn1" fmla="+/ xB1 xC1 2" />\r
+      <gd name="yCxn1" fmla="+/ yB1 yC1 2" />\r
+      <gd name="yCxn2" fmla="+- b 0 yCxn1" />\r
+      <gd name="xCxn4" fmla="+/ r 0 xCxn1" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="20000">\r
+        <pos x="xD6" y="yD6" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="0" maxX="5358">\r
+        <pos x="xA6" y="yD6" />\r
+      </ahXY>\r
+\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="19800000">\r
+        <pos x="xCxn1" y="yCxn1" />\r
+      </cxn>\r
+\r
+      <cxn ang="1800000">\r
+        <pos x="xCxn1" y="yCxn2" />\r
+      </cxn>\r
+\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="yB3" />\r
+      </cxn>\r
+\r
+      <cxn ang="9000000">\r
+        <pos x="xCxn4" y="yCxn2" />\r
+      </cxn>\r
+\r
+      <cxn ang="12600000">\r
+        <pos x="xCxn4" y="yCxn1" />\r
+      </cxn>\r
+\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="yC6" />\r
+      </cxn>\r
+\r
+    </cxnLst>\r
+\r
+    <rect l="xD5" t="yA1" r="xA1" b="yD2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="xA1" y="yA1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="xB1" y="yB1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xC1" y="yC1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xD1" y="yD1" />\r
+        </lnTo>\r
+        <arcTo hR="rh" wR="rw" stAng="bD1" swAng="swAng2" />\r
+\r
+        <lnTo>\r
+          <pt x="xC1" y="yB2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xB1" y="yC2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xA1" y="yD2" />\r
+        </lnTo>\r
+        <arcTo hR="rh" wR="rw" stAng="bD2" swAng="swAng1" />\r
+\r
+        <lnTo>\r
+          <pt x="xF6" y="yB3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xE6" y="yB3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xA6" y="yD3" />\r
+        </lnTo>\r
+        <arcTo hR="rh" wR="rw" stAng="bD3" swAng="swAng1" />\r
+\r
+        <lnTo>\r
+          <pt x="xB4" y="yC2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xC4" y="yB2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xD4" y="yA2" />\r
+        </lnTo>\r
+        <arcTo hR="rh" wR="rw" stAng="bD4" swAng="swAng2" />\r
+\r
+        <lnTo>\r
+          <pt x="xB5" y="yC1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xC5" y="yB1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xD5" y="yA1" />\r
+        </lnTo>\r
+        <arcTo hR="rh" wR="rw" stAng="bD5" swAng="swAng1" />\r
+\r
+        <lnTo>\r
+          <pt x="xE6" y="yC6" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xF6" y="yC6" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xD6" y="yD6" />\r
+        </lnTo>\r
+        <arcTo hR="rh" wR="rw" stAng="bD6" swAng="swAng1" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </gear6>\r
+  <gear9>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 10000" />\r
+\r
+      <gd name="adj2" fmla="val 1763" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+\r
+\r
+\r
+\r
+      <gd name="a1" fmla="pin 0 adj1 20000" />\r
+      <gd name="a2" fmla="pin 0 adj2 2679" />\r
+\r
+\r
+      <gd name="th" fmla="*/ ss a1 100000" />\r
+      <gd name="lFD" fmla="*/ ss a2 100000" />\r
+\r
+      <gd name="th2" fmla="*/ th 1 2" />\r
+      <gd name="l2" fmla="*/ lFD 1 2" />\r
+      <gd name="l3" fmla="+- th2 l2 0" />\r
+\r
+\r
+      <gd name="rh" fmla="+- hd2 0 th" />\r
+      <gd name="rw" fmla="+- wd2 0 th" />\r
+\r
+\r
+      <gd name="dr" fmla="+- rw 0 rh" />\r
+      <gd name="maxr" fmla="?: dr rh rw" />\r
+      <gd name="ha" fmla="at2 maxr l3" />\r
+\r
+\r
+      <gd name="aA1" fmla="+- 18600000 0 ha" />\r
+      <gd name="aD1" fmla="+- 18600000 ha 0" />\r
+\r
+\r
+      <gd name="ta11" fmla="cos rw aA1" />\r
+      <gd name="ta12" fmla="sin rh aA1" />\r
+      <gd name="bA1" fmla="at2 ta11 ta12" />\r
+\r
+      <gd name="cta1" fmla="cos rh bA1" />\r
+      <gd name="sta1" fmla="sin rw bA1" />\r
+      <gd name="ma1" fmla="mod cta1 sta1 0" />\r
+      <gd name="na1" fmla="*/ rw rh ma1" />\r
+      <gd name="dxa1" fmla="cos na1 bA1" />\r
+      <gd name="dya1" fmla="sin na1 bA1" />\r
+      <gd name="xA1" fmla="+- hc dxa1 0" />\r
+      <gd name="yA1" fmla="+- vc dya1 0" />\r
+\r
+\r
+      <gd name="td11" fmla="cos rw aD1" />\r
+      <gd name="td12" fmla="sin rh aD1" />\r
+      <gd name="bD1" fmla="at2 td11 td12" />\r
+\r
+      <gd name="ctd1" fmla="cos rh bD1" />\r
+      <gd name="std1" fmla="sin rw bD1" />\r
+      <gd name="md1" fmla="mod ctd1 std1 0" />\r
+      <gd name="nd1" fmla="*/ rw rh md1" />\r
+      <gd name="dxd1" fmla="cos nd1 bD1" />\r
+      <gd name="dyd1" fmla="sin nd1 bD1" />\r
+      <gd name="xD1" fmla="+- hc dxd1 0" />\r
+      <gd name="yD1" fmla="+- vc dyd1 0" />\r
+\r
+\r
+      <gd name="xAD1" fmla="+- xA1 0 xD1" />\r
+      <gd name="yAD1" fmla="+- yA1 0 yD1" />\r
+      <gd name="lAD1" fmla="mod xAD1 yAD1 0" />\r
+      <gd name="a1" fmla="at2 yAD1 xAD1" />\r
+\r
+\r
+      <gd name="dxF1" fmla="sin lFD a1" />\r
+      <gd name="dyF1" fmla="cos lFD a1" />\r
+      <gd name="xF1" fmla="+- xD1 dxF1 0" />\r
+      <gd name="yF1" fmla="+- yD1 dyF1 0" />\r
+      <gd name="xE1" fmla="+- xA1 0 dxF1" />\r
+      <gd name="yE1" fmla="+- yA1 0 dyF1" />\r
+\r
+\r
+      <gd name="yC1t" fmla="sin th a1" />\r
+      <gd name="xC1t" fmla="cos th a1" />\r
+      <gd name="yC1" fmla="+- yF1 yC1t 0" />\r
+      <gd name="xC1" fmla="+- xF1 0 xC1t" />\r
+\r
+\r
+      <gd name="yB1" fmla="+- yE1 yC1t 0" />\r
+      <gd name="xB1" fmla="+- xE1 0 xC1t" />\r
+\r
+\r
+      <gd name="aA2" fmla="+- 21000000 0 ha" />\r
+      <gd name="aD2" fmla="+- 21000000 ha 0" />\r
+\r
+\r
+      <gd name="ta21" fmla="cos rw aA2" />\r
+      <gd name="ta22" fmla="sin rh aA2" />\r
+      <gd name="bA2" fmla="at2 ta21 ta22" />\r
+\r
+      <gd name="cta2" fmla="cos rh bA2" />\r
+      <gd name="sta2" fmla="sin rw bA2" />\r
+      <gd name="ma2" fmla="mod cta2 sta2 0" />\r
+      <gd name="na2" fmla="*/ rw rh ma2" />\r
+      <gd name="dxa2" fmla="cos na2 bA2" />\r
+      <gd name="dya2" fmla="sin na2 bA2" />\r
+      <gd name="xA2" fmla="+- hc dxa2 0" />\r
+      <gd name="yA2" fmla="+- vc dya2 0" />\r
+\r
+\r
+      <gd name="td21" fmla="cos rw aD2" />\r
+      <gd name="td22" fmla="sin rh aD2" />\r
+      <gd name="bD2" fmla="at2 td21 td22" />\r
+\r
+      <gd name="ctd2" fmla="cos rh bD2" />\r
+      <gd name="std2" fmla="sin rw bD2" />\r
+      <gd name="md2" fmla="mod ctd2 std2 0" />\r
+      <gd name="nd2" fmla="*/ rw rh md2" />\r
+      <gd name="dxd2" fmla="cos nd2 bD2" />\r
+      <gd name="dyd2" fmla="sin nd2 bD2" />\r
+      <gd name="xD2" fmla="+- hc dxd2 0" />\r
+      <gd name="yD2" fmla="+- vc dyd2 0" />\r
+\r
+\r
+      <gd name="xAD2" fmla="+- xA2 0 xD2" />\r
+      <gd name="yAD2" fmla="+- yA2 0 yD2" />\r
+      <gd name="lAD2" fmla="mod xAD2 yAD2 0" />\r
+      <gd name="a2" fmla="at2 yAD2 xAD2" />\r
+\r
+\r
+      <gd name="dxF2" fmla="sin lFD a2" />\r
+      <gd name="dyF2" fmla="cos lFD a2" />\r
+      <gd name="xF2" fmla="+- xD2 dxF2 0" />\r
+      <gd name="yF2" fmla="+- yD2 dyF2 0" />\r
+      <gd name="xE2" fmla="+- xA2 0 dxF2" />\r
+      <gd name="yE2" fmla="+- yA2 0 dyF2" />\r
+\r
+\r
+      <gd name="yC2t" fmla="sin th a2" />\r
+      <gd name="xC2t" fmla="cos th a2" />\r
+      <gd name="yC2" fmla="+- yF2 yC2t 0" />\r
+      <gd name="xC2" fmla="+- xF2 0 xC2t" />\r
+\r
+\r
+      <gd name="yB2" fmla="+- yE2 yC2t 0" />\r
+      <gd name="xB2" fmla="+- xE2 0 xC2t" />\r
+\r
+      <gd name="swAng1" fmla="+- bA2 0 bD1" />\r
+\r
+\r
+      <gd name="aA3" fmla="+- 1800000 0 ha" />\r
+      <gd name="aD3" fmla="+- 1800000 ha 0" />\r
+\r
+\r
+      <gd name="ta31" fmla="cos rw aA3" />\r
+      <gd name="ta32" fmla="sin rh aA3" />\r
+      <gd name="bA3" fmla="at2 ta31 ta32" />\r
+\r
+      <gd name="cta3" fmla="cos rh bA3" />\r
+      <gd name="sta3" fmla="sin rw bA3" />\r
+      <gd name="ma3" fmla="mod cta3 sta3 0" />\r
+      <gd name="na3" fmla="*/ rw rh ma3" />\r
+      <gd name="dxa3" fmla="cos na3 bA3" />\r
+      <gd name="dya3" fmla="sin na3 bA3" />\r
+      <gd name="xA3" fmla="+- hc dxa3 0" />\r
+      <gd name="yA3" fmla="+- vc dya3 0" />\r
+\r
+\r
+      <gd name="td31" fmla="cos rw aD3" />\r
+      <gd name="td32" fmla="sin rh aD3" />\r
+      <gd name="bD3" fmla="at2 td31 td32" />\r
+\r
+      <gd name="ctd3" fmla="cos rh bD3" />\r
+      <gd name="std3" fmla="sin rw bD3" />\r
+      <gd name="md3" fmla="mod ctd3 std3 0" />\r
+      <gd name="nd3" fmla="*/ rw rh md3" />\r
+      <gd name="dxd3" fmla="cos nd3 bD3" />\r
+      <gd name="dyd3" fmla="sin nd3 bD3" />\r
+      <gd name="xD3" fmla="+- hc dxd3 0" />\r
+      <gd name="yD3" fmla="+- vc dyd3 0" />\r
+\r
+\r
+      <gd name="xAD3" fmla="+- xA3 0 xD3" />\r
+      <gd name="yAD3" fmla="+- yA3 0 yD3" />\r
+      <gd name="lAD3" fmla="mod xAD3 yAD3 0" />\r
+      <gd name="a3" fmla="at2 yAD3 xAD3" />\r
+\r
+\r
+      <gd name="dxF3" fmla="sin lFD a3" />\r
+      <gd name="dyF3" fmla="cos lFD a3" />\r
+      <gd name="xF3" fmla="+- xD3 dxF3 0" />\r
+      <gd name="yF3" fmla="+- yD3 dyF3 0" />\r
+      <gd name="xE3" fmla="+- xA3 0 dxF3" />\r
+      <gd name="yE3" fmla="+- yA3 0 dyF3" />\r
+\r
+\r
+      <gd name="yC3t" fmla="sin th a3" />\r
+      <gd name="xC3t" fmla="cos th a3" />\r
+      <gd name="yC3" fmla="+- yF3 yC3t 0" />\r
+      <gd name="xC3" fmla="+- xF3 0 xC3t" />\r
+\r
+\r
+      <gd name="yB3" fmla="+- yE3 yC3t 0" />\r
+      <gd name="xB3" fmla="+- xE3 0 xC3t" />\r
+\r
+      <gd name="swAng2" fmla="+- bA3 0 bD2" />\r
+\r
+\r
+      <gd name="aA4" fmla="+- 4200000 0 ha" />\r
+      <gd name="aD4" fmla="+- 4200000 ha 0" />\r
+\r
+\r
+      <gd name="ta41" fmla="cos rw aA4" />\r
+      <gd name="ta42" fmla="sin rh aA4" />\r
+      <gd name="bA4" fmla="at2 ta41 ta42" />\r
+\r
+      <gd name="cta4" fmla="cos rh bA4" />\r
+      <gd name="sta4" fmla="sin rw bA4" />\r
+      <gd name="ma4" fmla="mod cta4 sta4 0" />\r
+      <gd name="na4" fmla="*/ rw rh ma4" />\r
+      <gd name="dxa4" fmla="cos na4 bA4" />\r
+      <gd name="dya4" fmla="sin na4 bA4" />\r
+      <gd name="xA4" fmla="+- hc dxa4 0" />\r
+      <gd name="yA4" fmla="+- vc dya4 0" />\r
+\r
+\r
+      <gd name="td41" fmla="cos rw aD4" />\r
+      <gd name="td42" fmla="sin rh aD4" />\r
+      <gd name="bD4" fmla="at2 td41 td42" />\r
+\r
+      <gd name="ctd4" fmla="cos rh bD4" />\r
+      <gd name="std4" fmla="sin rw bD4" />\r
+      <gd name="md4" fmla="mod ctd4 std4 0" />\r
+      <gd name="nd4" fmla="*/ rw rh md4" />\r
+      <gd name="dxd4" fmla="cos nd4 bD4" />\r
+      <gd name="dyd4" fmla="sin nd4 bD4" />\r
+      <gd name="xD4" fmla="+- hc dxd4 0" />\r
+      <gd name="yD4" fmla="+- vc dyd4 0" />\r
+\r
+\r
+      <gd name="xAD4" fmla="+- xA4 0 xD4" />\r
+      <gd name="yAD4" fmla="+- yA4 0 yD4" />\r
+      <gd name="lAD4" fmla="mod xAD4 yAD4 0" />\r
+      <gd name="a4" fmla="at2 yAD4 xAD4" />\r
+\r
+\r
+      <gd name="dxF4" fmla="sin lFD a4" />\r
+      <gd name="dyF4" fmla="cos lFD a4" />\r
+      <gd name="xF4" fmla="+- xD4 dxF4 0" />\r
+      <gd name="yF4" fmla="+- yD4 dyF4 0" />\r
+      <gd name="xE4" fmla="+- xA4 0 dxF4" />\r
+      <gd name="yE4" fmla="+- yA4 0 dyF4" />\r
+\r
+\r
+      <gd name="yC4t" fmla="sin th a4" />\r
+      <gd name="xC4t" fmla="cos th a4" />\r
+      <gd name="yC4" fmla="+- yF4 yC4t 0" />\r
+      <gd name="xC4" fmla="+- xF4 0 xC4t" />\r
+\r
+\r
+      <gd name="yB4" fmla="+- yE4 yC4t 0" />\r
+      <gd name="xB4" fmla="+- xE4 0 xC4t" />\r
+\r
+      <gd name="swAng3" fmla="+- bA4 0 bD3" />\r
+\r
+\r
+      <gd name="aA5" fmla="+- 6600000 0 ha" />\r
+      <gd name="aD5" fmla="+- 6600000 ha 0" />\r
+\r
+      <gd name="ta51" fmla="cos rw aA5" />\r
+      <gd name="ta52" fmla="sin rh aA5" />\r
+      <gd name="bA5" fmla="at2 ta51 ta52" />\r
+\r
+      <gd name="td51" fmla="cos rw aD5" />\r
+      <gd name="td52" fmla="sin rh aD5" />\r
+      <gd name="bD5" fmla="at2 td51 td52" />\r
+\r
+\r
+      <gd name="xD5" fmla="+- w 0 xA4" />\r
+\r
+\r
+      <gd name="xC5" fmla="+- w 0 xB4" />\r
+\r
+\r
+      <gd name="xB5" fmla="+- w 0 xC4" />\r
+\r
+      <gd name="swAng4" fmla="+- bA5 0 bD4" />\r
+\r
+\r
+      <gd name="aD6" fmla="+- 9000000 ha 0" />\r
+\r
+      <gd name="td61" fmla="cos rw aD6" />\r
+      <gd name="td62" fmla="sin rh aD6" />\r
+      <gd name="bD6" fmla="at2 td61 td62" />\r
+\r
+\r
+      <gd name="xD6" fmla="+- w 0 xA3" />\r
+\r
+\r
+      <gd name="xC6" fmla="+- w 0 xB3" />\r
+\r
+\r
+      <gd name="xB6" fmla="+- w 0 xC3" />\r
+\r
+\r
+      <gd name="aD7" fmla="+- 11400000 ha 0" />\r
+\r
+      <gd name="td71" fmla="cos rw aD7" />\r
+      <gd name="td72" fmla="sin rh aD7" />\r
+      <gd name="bD7" fmla="at2 td71 td72" />\r
+\r
+\r
+      <gd name="xD7" fmla="+- w 0 xA2" />\r
+\r
+\r
+      <gd name="xC7" fmla="+- w 0 xB2" />\r
+\r
+\r
+      <gd name="xB7" fmla="+- w 0 xC2" />\r
+\r
+\r
+      <gd name="aD8" fmla="+- 13800000 ha 0" />\r
+\r
+      <gd name="td81" fmla="cos rw aD8" />\r
+      <gd name="td82" fmla="sin rh aD8" />\r
+      <gd name="bD8" fmla="at2 td81 td82" />\r
+\r
+\r
+      <gd name="xA8" fmla="+- w 0 xD1" />\r
+\r
+      <gd name="xD8" fmla="+- w 0 xA1" />\r
+\r
+\r
+      <gd name="xC8" fmla="+- w 0 xB1" />\r
+\r
+\r
+      <gd name="xB8" fmla="+- w 0 xC1" />\r
+\r
+\r
+      <gd name="aA9" fmla="+- 3cd4 0 ha" />\r
+      <gd name="aD9" fmla="+- 3cd4 ha 0" />\r
+\r
+\r
+      <gd name="td91" fmla="cos rw aD9" />\r
+      <gd name="td92" fmla="sin rh aD9" />\r
+      <gd name="bD9" fmla="at2 td91 td92" />\r
+\r
+      <gd name="ctd9" fmla="cos rh bD9" />\r
+      <gd name="std9" fmla="sin rw bD9" />\r
+      <gd name="md9" fmla="mod ctd9 std9 0" />\r
+      <gd name="nd9" fmla="*/ rw rh md9" />\r
+      <gd name="dxd9" fmla="cos nd9 bD9" />\r
+      <gd name="dyd9" fmla="sin nd9 bD9" />\r
+      <gd name="xD9" fmla="+- hc dxd9 0" />\r
+      <gd name="yD9" fmla="+- vc dyd9 0" />\r
+\r
+\r
+      <gd name="ta91" fmla="cos rw aA9" />\r
+      <gd name="ta92" fmla="sin rh aA9" />\r
+      <gd name="bA9" fmla="at2 ta91 ta92" />\r
+\r
+      <gd name="xA9" fmla="+- hc 0 dxd9" />\r
+\r
+\r
+      <gd name="xF9" fmla="+- xD9 0 lFD" />\r
+      <gd name="xE9" fmla="+- xA9 lFD 0" />\r
+\r
+\r
+      <gd name="yC9" fmla="+- yD9 0 th" />\r
+\r
+      <gd name="swAng5" fmla="+- bA9 0 bD8" />\r
+\r
+\r
+      <gd name="xCxn1" fmla="+/ xB1 xC1 2" />\r
+      <gd name="yCxn1" fmla="+/ yB1 yC1 2" />\r
+      <gd name="xCxn2" fmla="+/ xB2 xC2 2" />\r
+      <gd name="yCxn2" fmla="+/ yB2 yC2 2" />\r
+      <gd name="xCxn3" fmla="+/ xB3 xC3 2" />\r
+      <gd name="yCxn3" fmla="+/ yB3 yC3 2" />\r
+      <gd name="xCxn4" fmla="+/ xB4 xC4 2" />\r
+      <gd name="yCxn4" fmla="+/ yB4 yC4 2" />\r
+      <gd name="xCxn5" fmla="+/ r 0 xCxn4" />\r
+      <gd name="xCxn6" fmla="+/ r 0 xCxn3" />\r
+      <gd name="xCxn7" fmla="+/ r 0 xCxn2" />\r
+      <gd name="xCxn8" fmla="+/ r 0 xCxn1" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="20000">\r
+        <pos x="xD9" y="yD9" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="0" maxX="2679">\r
+        <pos x="xA9" y="yD9" />\r
+      </ahXY>\r
+\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="18600000">\r
+        <pos x="xCxn1" y="yCxn1" />\r
+      </cxn>\r
+\r
+      <cxn ang="21000000">\r
+        <pos x="xCxn2" y="yCxn2" />\r
+      </cxn>\r
+\r
+      <cxn ang="1800000">\r
+        <pos x="xCxn3" y="yCxn3" />\r
+      </cxn>\r
+\r
+      <cxn ang="4200000">\r
+        <pos x="xCxn4" y="yCxn4" />\r
+      </cxn>\r
+\r
+      <cxn ang="6600000">\r
+        <pos x="xCxn5" y="yCxn4" />\r
+      </cxn>\r
+\r
+      <cxn ang="9000000">\r
+        <pos x="xCxn6" y="yCxn3" />\r
+      </cxn>\r
+\r
+      <cxn ang="11400000">\r
+        <pos x="xCxn7" y="yCxn2" />\r
+      </cxn>\r
+\r
+      <cxn ang="13800000">\r
+        <pos x="xCxn8" y="yCxn1" />\r
+      </cxn>\r
+\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="yC9" />\r
+      </cxn>\r
+\r
+    </cxnLst>\r
+\r
+    <rect l="xA8" t="yD1" r="xD1" b="yD3" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="xA1" y="yA1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="xB1" y="yB1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xC1" y="yC1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xD1" y="yD1" />\r
+        </lnTo>\r
+        <arcTo hR="rh" wR="rw" stAng="bD1" swAng="swAng1" />\r
+\r
+        <lnTo>\r
+          <pt x="xB2" y="yB2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xC2" y="yC2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xD2" y="yD2" />\r
+        </lnTo>\r
+        <arcTo hR="rh" wR="rw" stAng="bD2" swAng="swAng2" />\r
+\r
+        <lnTo>\r
+          <pt x="xB3" y="yB3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xC3" y="yC3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xD3" y="yD3" />\r
+        </lnTo>\r
+        <arcTo hR="rh" wR="rw" stAng="bD3" swAng="swAng3" />\r
+\r
+        <lnTo>\r
+          <pt x="xB4" y="yB4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xC4" y="yC4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xD4" y="yD4" />\r
+        </lnTo>\r
+        <arcTo hR="rh" wR="rw" stAng="bD4" swAng="swAng4" />\r
+\r
+        <lnTo>\r
+          <pt x="xB5" y="yC4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xC5" y="yB4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xD5" y="yA4" />\r
+        </lnTo>\r
+        <arcTo hR="rh" wR="rw" stAng="bD5" swAng="swAng3" />\r
+\r
+        <lnTo>\r
+          <pt x="xB6" y="yC3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xC6" y="yB3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xD6" y="yA3" />\r
+        </lnTo>\r
+        <arcTo hR="rh" wR="rw" stAng="bD6" swAng="swAng2" />\r
+\r
+        <lnTo>\r
+          <pt x="xB7" y="yC2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xC7" y="yB2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xD7" y="yA2" />\r
+        </lnTo>\r
+        <arcTo hR="rh" wR="rw" stAng="bD7" swAng="swAng1" />\r
+\r
+        <lnTo>\r
+          <pt x="xB8" y="yC1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xC8" y="yB1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xD8" y="yA1" />\r
+        </lnTo>\r
+        <arcTo hR="rh" wR="rw" stAng="bD8" swAng="swAng5" />\r
+\r
+        <lnTo>\r
+          <pt x="xE9" y="yC9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xF9" y="yC9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xD9" y="yD9" />\r
+        </lnTo>\r
+        <arcTo hR="rh" wR="rw" stAng="bD9" swAng="swAng5" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </gear9>\r
+  <halfFrame>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 33333" />\r
+\r
+      <gd name="adj2" fmla="val 33333" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj2" fmla="*/ 100000 w ss" />\r
+      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
+      <gd name="x1" fmla="*/ ss a2 100000" />\r
+      <gd name="g1" fmla="*/ h x1 w" />\r
+      <gd name="g2" fmla="+- h 0 g1" />\r
+      <gd name="maxAdj1" fmla="*/ 100000 g2 ss" />\r
+      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
+      <gd name="y1" fmla="*/ ss a1 100000" />\r
+      <gd name="dx2" fmla="*/ y1 w h" />\r
+      <gd name="x2" fmla="+- r 0 dx2" />\r
+      <gd name="dy2" fmla="*/ x1 h w" />\r
+      <gd name="y2" fmla="+- b 0 dy2" />\r
+      <gd name="cx1" fmla="*/ x1 1 2" />\r
+      <gd name="cy1" fmla="+/ y2 b 2" />\r
+      <gd name="cx2" fmla="+/ x2 r 2" />\r
+      <gd name="cy2" fmla="*/ y1 1 2" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="maxAdj1">\r
+        <pos x="l" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="0" maxX="maxAdj2">\r
+        <pos x="x1" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="cx2" y="cy2" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="cx1" y="cy1" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </halfFrame>\r
+  <heart>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="dx1" fmla="*/ w 49 48" />\r
+      <gd name="dx2" fmla="*/ w 10 48" />\r
+      <gd name="x1" fmla="+- hc 0 dx1" />\r
+      <gd name="x2" fmla="+- hc 0 dx2" />\r
+      <gd name="x3" fmla="+- hc dx2 0" />\r
+      <gd name="x4" fmla="+- hc dx1 0" />\r
+      <gd name="y1" fmla="+- t 0 hd3" />\r
+\r
+\r
+      <gd name="il" fmla="*/ w 1 6" />\r
+      <gd name="ir" fmla="*/ w 5 6" />\r
+      <gd name="ib" fmla="*/ h 2 3" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="hd4" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="hd4" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="hc" y="hd4" />\r
+        </moveTo>\r
+        <cubicBezTo>\r
+          <pt x="x3" y="y1" />\r
+          <pt x="x4" y="hd4" />\r
+          <pt x="hc" y="b" />\r
+        </cubicBezTo>\r
+        <cubicBezTo>\r
+          <pt x="x1" y="hd4" />\r
+          <pt x="x2" y="y1" />\r
+          <pt x="hc" y="hd4" />\r
+        </cubicBezTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </heart>\r
+  <heptagon>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="hf" fmla="val 102572" />\r
+      <gd name="vf" fmla="val 105210" />\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="swd2" fmla="*/ wd2 hf 100000" />\r
+      <gd name="shd2" fmla="*/ hd2 vf 100000" />\r
+      <gd name="svc" fmla="*/ vc  vf 100000" />\r
+      <gd name="dx1" fmla="*/ swd2 97493 100000" />\r
+      <gd name="dx2" fmla="*/ swd2 78183 100000" />\r
+      <gd name="dx3" fmla="*/ swd2 43388 100000" />\r
+      <gd name="dy1" fmla="*/ shd2 62349 100000" />\r
+      <gd name="dy2" fmla="*/ shd2 22252 100000" />\r
+      <gd name="dy3" fmla="*/ shd2 90097 100000" />\r
+      <gd name="x1" fmla="+- hc 0 dx1" />\r
+      <gd name="x2" fmla="+- hc 0 dx2" />\r
+      <gd name="x3" fmla="+- hc 0 dx3" />\r
+      <gd name="x4" fmla="+- hc dx3 0" />\r
+      <gd name="x5" fmla="+- hc dx2 0" />\r
+      <gd name="x6" fmla="+- hc dx1 0" />\r
+      <gd name="y1" fmla="+- svc 0 dy1" />\r
+      <gd name="y2" fmla="+- svc dy2 0" />\r
+      <gd name="y3" fmla="+- svc dy3 0" />\r
+      <gd name="ib" fmla="+- b 0 y1" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="x5" y="y1" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x6" y="y2" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x4" y="y3" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x3" y="y3" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="y2" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x2" y="y1" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="x2" t="y1" r="x5" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="x1" y="y2" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x5" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x6" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y3" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </heptagon>\r
+  <hexagon>\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 25000" />\r
+      <gd name="vf" fmla="val 115470" />\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj" fmla="*/ 50000 w ss" />\r
+      <gd name="a" fmla="pin 0 adj maxAdj" />\r
+      <gd name="shd2" fmla="*/ hd2 vf 100000" />\r
+      <gd name="x1" fmla="*/ ss a 100000" />\r
+      <gd name="x2" fmla="+- r 0 x1" />\r
+      <gd name="dy1" fmla="sin shd2 3600000" />\r
+      <gd name="y1" fmla="+- vc 0 dy1" />\r
+      <gd name="y2" fmla="+- vc dy1 0" />\r
+      <gd name="q1" fmla="*/ maxAdj -1 2" />\r
+      <gd name="q2" fmla="+- a q1 0" />\r
+      <gd name="q3" fmla="?: q2 4 2" />\r
+      <gd name="q4" fmla="?: q2 3 2" />\r
+      <gd name="q5" fmla="?: q2 q1 0" />\r
+      <gd name="q6" fmla="+/ a q5 q1" />\r
+      <gd name="q7" fmla="*/ q6 q4 -1" />\r
+      <gd name="q8" fmla="+- q3 q7 0" />\r
+      <gd name="il" fmla="*/ w q8 24" />\r
+      <gd name="it" fmla="*/ h q8 24" />\r
+      <gd name="ir" fmla="+- r 0 il" />\r
+      <gd name="ib" fmla="+- b 0 it" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj" minX="0" maxX="maxAdj">\r
+        <pos x="x1" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x2" y="y2" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x1" y="y2" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x1" y="y1" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x2" y="y1" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="vc" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y2" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+  </hexagon>\r
+  <homePlate>\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 50000" />\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj" fmla="*/ 100000 w ss" />\r
+      <gd name="a" fmla="pin 0 adj maxAdj" />\r
+      <gd name="dx1" fmla="*/ ss a 100000" />\r
+      <gd name="x1" fmla="+- r 0 dx1" />\r
+      <gd name="ir" fmla="+/ x1 r 2" />\r
+      <gd name="x2" fmla="*/ x1 1 2" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj" minX="0" maxX="maxAdj">\r
+        <pos x="x1" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="x2" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x1" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="l" t="t" r="ir" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+  </homePlate>\r
+  <horizontalScroll>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 12500" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 25000" />\r
+      <gd name="ch" fmla="*/ ss a 100000" />\r
+\r
+      <gd name="ch2" fmla="*/ ch 1 2" />\r
+\r
+      <gd name="ch4" fmla="*/ ch 1 4" />\r
+\r
+\r
+\r
+\r
+\r
+      <gd name="y3" fmla="+- ch ch2 0" />\r
+\r
+      <gd name="y4" fmla="+- ch ch 0" />\r
+\r
+      <gd name="y6" fmla="+- b 0 ch" />\r
+\r
+      <gd name="y7" fmla="+- b 0 ch2" />\r
+\r
+      <gd name="y5" fmla="+- y6 0 ch2" />\r
+\r
+\r
+\r
+\r
+\r
+      <gd name="x3" fmla="+- r 0 ch" />\r
+\r
+      <gd name="x4" fmla="+- r 0 ch2" />\r
+\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj" minX="0" maxX="25000">\r
+        <pos x="ch" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="ch" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="y6" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="ch" t="ch" r="x4" b="y6" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="r" y="ch2" />\r
+        </moveTo>\r
+        <arcTo wR="ch2" hR="ch2" stAng="0" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x4" y="ch2" />\r
+        </lnTo>\r
+        <arcTo wR="ch4" hR="ch4" stAng="0" swAng="cd2" />\r
+        <lnTo>\r
+          <pt x="x3" y="ch" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="ch2" y="ch" />\r
+        </lnTo>\r
+        <arcTo wR="ch2" hR="ch2" stAng="3cd4" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="l" y="y7" />\r
+        </lnTo>\r
+        <arcTo wR="ch2" hR="ch2" stAng="cd2" swAng="-10800000" />\r
+        <lnTo>\r
+          <pt x="ch" y="y6" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y6" />\r
+        </lnTo>\r
+        <arcTo wR="ch2" hR="ch2" stAng="cd4" swAng="-5400000" />\r
+        <close />\r
+        <moveTo>\r
+          <pt x="ch2" y="y4" />\r
+        </moveTo>\r
+        <arcTo wR="ch2" hR="ch2" stAng="cd4" swAng="-5400000" />\r
+        <arcTo wR="ch4" hR="ch4" stAng="0" swAng="-10800000" />\r
+        <close />\r
+      </path>\r
+      <path fill="darkenLess" stroke="false" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="ch2" y="y4" />\r
+        </moveTo>\r
+        <arcTo wR="ch2" hR="ch2" stAng="cd4" swAng="-5400000" />\r
+        <arcTo wR="ch4" hR="ch4" stAng="0" swAng="-10800000" />\r
+        <close />\r
+        <moveTo>\r
+          <pt x="x4" y="ch" />\r
+        </moveTo>\r
+        <arcTo wR="ch2" hR="ch2" stAng="cd4" swAng="-16200000" />\r
+        <arcTo wR="ch4" hR="ch4" stAng="cd2" swAng="-10800000" />\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="l" y="y3" />\r
+        </moveTo>\r
+        <arcTo wR="ch2" hR="ch2" stAng="cd2" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x3" y="ch" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="ch2" />\r
+        </lnTo>\r
+        <arcTo wR="ch2" hR="ch2" stAng="cd2" swAng="cd2" />\r
+        <lnTo>\r
+          <pt x="r" y="y5" />\r
+        </lnTo>\r
+        <arcTo wR="ch2" hR="ch2" stAng="0" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="ch" y="y6" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="ch" y="y7" />\r
+        </lnTo>\r
+        <arcTo wR="ch2" hR="ch2" stAng="0" swAng="cd2" />\r
+        <close />\r
+        <moveTo>\r
+          <pt x="x3" y="ch" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x4" y="ch" />\r
+        </lnTo>\r
+        <arcTo wR="ch2" hR="ch2" stAng="cd4" swAng="-5400000" />\r
+        <moveTo>\r
+          <pt x="x4" y="ch" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x4" y="ch2" />\r
+        </lnTo>\r
+        <arcTo wR="ch4" hR="ch4" stAng="0" swAng="cd2" />\r
+        <moveTo>\r
+          <pt x="ch2" y="y4" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="ch2" y="y3" />\r
+        </lnTo>\r
+        <arcTo wR="ch4" hR="ch4" stAng="cd2" swAng="cd2" />\r
+        <arcTo wR="ch2" hR="ch2" stAng="0" swAng="cd2" />\r
+        <moveTo>\r
+          <pt x="ch" y="y3" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="ch" y="y6" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+\r
+  </horizontalScroll>\r
+  <irregularSeal1>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="x5" fmla="*/ w 4627 21600" />\r
+      <gd name="x12" fmla="*/ w 8485 21600" />\r
+      <gd name="x21" fmla="*/ w 16702 21600" />\r
+      <gd name="x24" fmla="*/ w 14522 21600" />\r
+      <gd name="y3" fmla="*/ h 6320 21600" />\r
+      <gd name="y6" fmla="*/ h 8615 21600" />\r
+      <gd name="y9" fmla="*/ h 13937 21600" />\r
+      <gd name="y18" fmla="*/ h 13290 21600" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="x24" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="y6" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x12" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="y18" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="x5" t="y3" r="x21" b="y9" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path w="21600" h="21600">\r
+        <moveTo>\r
+          <pt x="10800" y="5800" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="14522" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="14155" y="5325" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="18380" y="4457" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="16702" y="7315" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="21097" y="8137" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="17607" y="10475" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="21600" y="13290" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="16837" y="12942" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="18145" y="18095" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="14020" y="14457" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="13247" y="19737" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="10532" y="14935" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="8485" y="21600" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="7715" y="15627" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="4762" y="17617" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="5667" y="13937" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="135" y="14587" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="3722" y="11775" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="0" y="8615" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="4627" y="7617" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="370" y="2295" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="7312" y="6320" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="8352" y="2295" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </irregularSeal1>\r
+  <irregularSeal2>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="x2" fmla="*/ w 9722 21600" />\r
+      <gd name="x5" fmla="*/ w 5372 21600" />\r
+      <gd name="x16" fmla="*/ w 11612 21600" />\r
+      <gd name="x19" fmla="*/ w 14640 21600" />\r
+      <gd name="y2" fmla="*/ h 1887 21600" />\r
+      <gd name="y3" fmla="*/ h 6382 21600" />\r
+      <gd name="y8" fmla="*/ h 12877 21600" />\r
+      <gd name="y14" fmla="*/ h 19712 21600" />\r
+      <gd name="y16" fmla="*/ h 18842 21600" />\r
+      <gd name="y17" fmla="*/ h 15935 21600" />\r
+      <gd name="y24" fmla="*/ h 6645 21600" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="x2" y="y2" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="y8" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x16" y="y16" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="y24" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="x5" t="y3" r="x19" b="y17" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path w="21600" h="21600">\r
+        <moveTo>\r
+          <pt x="11462" y="4342" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="14790" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="14525" y="5777" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="18007" y="3172" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="16380" y="6532" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="21600" y="6645" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="16985" y="9402" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="18270" y="11290" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="16380" y="12310" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="18877" y="15632" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="14640" y="14350" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="14942" y="17370" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="12180" y="15935" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="11612" y="18842" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="9872" y="17370" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="8700" y="19712" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="7527" y="18125" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="4917" y="21600" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="4805" y="18240" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="1285" y="17825" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="3330" y="15370" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="0" y="12877" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="3935" y="11592" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="1172" y="8270" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="5372" y="7817" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="4502" y="3625" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="8550" y="6382" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="9722" y="1887" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </irregularSeal2>\r
+  <leftArrow>\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 50000" />\r
+      <gd name="adj2" fmla="val 50000" />\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj2" fmla="*/ 100000 w ss" />\r
+      <gd name="a1" fmla="pin 0 adj1 100000" />\r
+      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
+      <gd name="dx2" fmla="*/ ss a2 100000" />\r
+      <gd name="x2" fmla="+- l dx2 0" />\r
+      <gd name="dy1" fmla="*/ h a1 200000" />\r
+      <gd name="y1" fmla="+- vc 0 dy1" />\r
+      <gd name="y2" fmla="+- vc dy1 0" />\r
+      <gd name="dx1" fmla="*/ y1 dx2 hd2" />\r
+      <gd name="x1" fmla="+- x2  0 dx1" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="100000">\r
+        <pos x="r" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="0" maxX="maxAdj2">\r
+        <pos x="x2" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="x2" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x2" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="x1" t="y1" r="r" b="y2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="vc" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+  </leftArrow>\r
+  <leftArrowCallout>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 25000" />\r
+\r
+      <gd name="adj2" fmla="val 25000" />\r
+\r
+      <gd name="adj3" fmla="val 25000" />\r
+\r
+      <gd name="adj4" fmla="val 64977" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj2" fmla="*/ 50000 h ss" />\r
+\r
+      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
+      <gd name="maxAdj1" fmla="*/ a2 2 1" />\r
+\r
+      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
+      <gd name="maxAdj3" fmla="*/ 100000 w ss" />\r
+\r
+      <gd name="a3" fmla="pin 0 adj3 maxAdj3" />\r
+      <gd name="q2" fmla="*/ a3 ss w" />\r
+\r
+      <gd name="maxAdj4" fmla="+- 100000 0 q2" />\r
+\r
+      <gd name="a4" fmla="pin 0 adj4 maxAdj4" />\r
+      <gd name="dy1" fmla="*/ ss a2 100000" />\r
+\r
+      <gd name="dy2" fmla="*/ ss a1 200000" />\r
+\r
+      <gd name="y1" fmla="+- vc 0 dy1" />\r
+      <gd name="y2" fmla="+- vc 0 dy2" />\r
+      <gd name="y3" fmla="+- vc dy2 0" />\r
+      <gd name="y4" fmla="+- vc dy1 0" />\r
+      <gd name="x1" fmla="*/ ss a3 100000" />\r
+\r
+      <gd name="dx2" fmla="*/ w a4 100000" />\r
+\r
+      <gd name="x2" fmla="+- r 0 dx2" />\r
+      <gd name="x3" fmla="+/ x2 r 2" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="maxAdj1">\r
+        <pos x="x1" y="y2" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj2" minY="0" maxY="maxAdj2">\r
+        <pos x="l" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj3" minX="0" maxX="maxAdj3">\r
+        <pos x="x1" y="t" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj4" minX="0" maxX="maxAdj4">\r
+        <pos x="x2" y="b" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="x3" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x3" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="x2" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="vc" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y4" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </leftArrowCallout>\r
+  <leftBrace>\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 8333" />\r
+      <gd name="adj2" fmla="val 50000" />\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a2" fmla="pin 0 adj2 100000" />\r
+      <gd name="q1" fmla="+- 100000 0 a2" />\r
+      <gd name="q2" fmla="min q1 a2" />\r
+      <gd name="q3" fmla="*/ q2 1 2" />\r
+      <gd name="maxAdj1" fmla="*/ q3 h ss" />\r
+      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
+      <gd name="y1" fmla="*/ ss a1 100000" />\r
+      <gd name="y3" fmla="*/ h a2 100000" />\r
+      <gd name="y4" fmla="+- y3 y1 0" />\r
+      <gd name="dx1" fmla="cos wd2 2700000" />\r
+      <gd name="dy1" fmla="sin y1 2700000" />\r
+      <gd name="il" fmla="+- r 0 dx1" />\r
+      <gd name="it" fmla="+- y1 0 dy1" />\r
+      <gd name="ib" fmla="+- b dy1 y1" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="maxAdj1">\r
+        <pos x="hc" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj2" minY="0" maxY="100000">\r
+        <pos x="l" y="y3" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="cd4">\r
+        <pos x="r" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="y3" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="r" y="b" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="il" t="it" r="r" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="r" y="b" />\r
+        </moveTo>\r
+        <arcTo wR="wd2" hR="y1" stAng="cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="hc" y="y4" />\r
+        </lnTo>\r
+        <arcTo wR="wd2" hR="y1" stAng="0" swAng="-5400000" />\r
+        <arcTo wR="wd2" hR="y1" stAng="cd4" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="hc" y="y1" />\r
+        </lnTo>\r
+        <arcTo wR="wd2" hR="y1" stAng="cd2" swAng="cd4" />\r
+        <close />\r
+      </path>\r
+      <path fill="none">\r
+        <moveTo>\r
+          <pt x="r" y="b" />\r
+        </moveTo>\r
+        <arcTo wR="wd2" hR="y1" stAng="cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="hc" y="y4" />\r
+        </lnTo>\r
+        <arcTo wR="wd2" hR="y1" stAng="0" swAng="-5400000" />\r
+        <arcTo wR="wd2" hR="y1" stAng="cd4" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="hc" y="y1" />\r
+        </lnTo>\r
+        <arcTo wR="wd2" hR="y1" stAng="cd2" swAng="cd4" />\r
+      </path>\r
+    </pathLst>\r
+  </leftBrace>\r
+  <leftBracket>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 8333" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj" fmla="*/ 50000 h ss" />\r
+\r
+      <gd name="a" fmla="pin 0 adj maxAdj" />\r
+      <gd name="y1" fmla="*/ ss a 100000" />\r
+\r
+      <gd name="y2" fmla="+- b 0 y1" />\r
+\r
+      <gd name="dx1" fmla="cos w 2700000" />\r
+      <gd name="dy1" fmla="sin y1 2700000" />\r
+      <gd name="il" fmla="+- r 0 dx1" />\r
+      <gd name="it" fmla="+- y1 0 dy1" />\r
+      <gd name="ib" fmla="+- b dy1 y1" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj" minY="0" maxY="maxAdj">\r
+        <pos x="l" y="y1" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="cd4">\r
+        <pos x="r" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="r" y="b" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="it" r="r" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="r" y="b" />\r
+        </moveTo>\r
+        <arcTo wR="w" hR="y1" stAng="cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="l" y="y1" />\r
+        </lnTo>\r
+        <arcTo wR="w" hR="y1" stAng="cd2" swAng="cd4" />\r
+        <close />\r
+      </path>\r
+      <path fill="none">\r
+\r
+        <moveTo>\r
+          <pt x="r" y="b" />\r
+        </moveTo>\r
+        <arcTo wR="w" hR="y1" stAng="cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="l" y="y1" />\r
+        </lnTo>\r
+        <arcTo wR="w" hR="y1" stAng="cd2" swAng="cd4" />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </leftBracket>\r
+  <leftCircularArrow>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 12500" />\r
+\r
+      <gd name="adj2" fmla="val -1142319" />\r
+\r
+      <gd name="adj3" fmla="val 1142319" />\r
+\r
+      <gd name="adj4" fmla="val 10800000" />\r
+\r
+      <gd name="adj5" fmla="val 12500" />\r
+\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a5" fmla="pin 0 adj5 25000" />\r
+\r
+      <gd name="maxAdj1" fmla="*/ a5 2 1" />\r
+\r
+      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
+      <gd name="enAng" fmla="pin 1 adj3 21599999" />\r
+      <gd name="stAng" fmla="pin 0 adj4 21599999" />\r
+\r
+      <gd name="th" fmla="*/ ss a1 100000" />\r
+\r
+      <gd name="thh" fmla="*/ ss a5 100000" />\r
+\r
+      <gd name="th2" fmla="*/ th 1 2" />\r
+\r
+\r
+      <gd name="rw1" fmla="+- wd2 th2 thh" />\r
+\r
+      <gd name="rh1" fmla="+- hd2 th2 thh" />\r
+\r
+      <gd name="rw2" fmla="+- rw1 0 th" />\r
+\r
+      <gd name="rh2" fmla="+- rh1 0 th" />\r
+\r
+      <gd name="rw3" fmla="+- rw2 th2 0" />\r
+\r
+      <gd name="rh3" fmla="+- rh2 th2 0" />\r
+\r
+\r
+      <gd name="wtH" fmla="sin rw3 enAng" />\r
+      <gd name="htH" fmla="cos rh3 enAng" />\r
+      <gd name="dxH" fmla="cat2 rw3 htH wtH" />\r
+      <gd name="dyH" fmla="sat2 rh3 htH wtH" />\r
+      <gd name="xH" fmla="+- hc dxH 0" />\r
+\r
+      <gd name="yH" fmla="+- vc dyH 0" />\r
+\r
+\r
+      <gd name="rI" fmla="min rw2 rh2" />\r
+\r
+      <gd name="u1" fmla="*/ dxH dxH 1" />\r
+      <gd name="u2" fmla="*/ dyH dyH 1" />\r
+      <gd name="u3" fmla="*/ rI rI 1" />\r
+      <gd name="u4" fmla="+- u1 0 u3" />\r
+      <gd name="u5" fmla="+- u2 0 u3" />\r
+      <gd name="u6" fmla="*/ u4 u5 u1" />\r
+      <gd name="u7" fmla="*/ u6 1 u2" />\r
+      <gd name="u8" fmla="+- 1 0 u7" />\r
+      <gd name="u9" fmla="sqrt u8" />\r
+      <gd name="u10" fmla="*/ u4 1 dxH" />\r
+      <gd name="u11" fmla="*/ u10 1 dyH" />\r
+      <gd name="u12" fmla="+/ 1 u9 u11" />\r
+      <gd name="u13" fmla="at2 1 u12" />\r
+      <gd name="u14" fmla="+- u13 21600000 0" />\r
+      <gd name="u15" fmla="?: u13 u13 u14" />\r
+      <gd name="u16" fmla="+- u15 0 enAng" />\r
+\r
+      <gd name="u17" fmla="+- u16 21600000 0" />\r
+      <gd name="u18" fmla="?: u16 u16 u17" />\r
+      <gd name="u19" fmla="+- u18 0 cd2" />\r
+      <gd name="u20" fmla="+- u18 0 21600000" />\r
+      <gd name="u21" fmla="?: u19 u20 u18" />\r
+      <gd name="u22" fmla="abs u21" />\r
+      <gd name="minAng" fmla="*/ u22 -1 1" />\r
+      <gd name="u23" fmla="abs adj2" />\r
+      <gd name="a2" fmla="*/ u23 -1 1" />\r
+      <gd name="aAng" fmla="pin minAng a2 0" />\r
+\r
+      <gd name="ptAng" fmla="+- enAng aAng 0" />\r
+\r
+\r
+      <gd name="wtA" fmla="sin rw3 ptAng" />\r
+      <gd name="htA" fmla="cos rh3 ptAng" />\r
+      <gd name="dxA" fmla="cat2 rw3 htA wtA" />\r
+      <gd name="dyA" fmla="sat2 rh3 htA wtA" />\r
+      <gd name="xA" fmla="+- hc dxA 0" />\r
+\r
+      <gd name="yA" fmla="+- vc dyA 0" />\r
+\r
+\r
+      <gd name="wtE" fmla="sin rw1 stAng" />\r
+      <gd name="htE" fmla="cos rh1 stAng" />\r
+      <gd name="dxE" fmla="cat2 rw1 htE wtE" />\r
+      <gd name="dyE" fmla="sat2 rh1 htE wtE" />\r
+      <gd name="xE" fmla="+- hc dxE 0" />\r
+\r
+      <gd name="yE" fmla="+- vc dyE 0" />\r
+\r
+\r
+      <gd name="wtD" fmla="sin rw2 stAng" />\r
+      <gd name="htD" fmla="cos rh2 stAng" />\r
+      <gd name="dxD" fmla="cat2 rw2 htD wtD" />\r
+      <gd name="dyD" fmla="sat2 rh2 htD wtD" />\r
+      <gd name="xD" fmla="+- hc dxD 0" />\r
+\r
+      <gd name="yD" fmla="+- vc dyD 0" />\r
+\r
+\r
+      <gd name="dxG" fmla="cos thh ptAng" />\r
+      <gd name="dyG" fmla="sin thh ptAng" />\r
+      <gd name="xG" fmla="+- xH dxG 0" />\r
+\r
+      <gd name="yG" fmla="+- yH dyG 0" />\r
+\r
+\r
+      <gd name="dxB" fmla="cos thh ptAng" />\r
+      <gd name="dyB" fmla="sin thh ptAng" />\r
+      <gd name="xB" fmla="+- xH 0 dxB 0" />\r
+\r
+      <gd name="yB" fmla="+- yH 0 dyB 0" />\r
+\r
+\r
+      <gd name="sx1" fmla="+- xB 0 hc" />\r
+\r
+      <gd name="sy1" fmla="+- yB 0 vc" />\r
+\r
+      <gd name="sx2" fmla="+- xG 0 hc" />\r
+\r
+      <gd name="sy2" fmla="+- yG 0 vc" />\r
+\r
+\r
+      <gd name="rO" fmla="min rw1 rh1" />\r
+\r
+      <gd name="x1O" fmla="*/ sx1 rO rw1" />\r
+\r
+      <gd name="y1O" fmla="*/ sy1 rO rh1" />\r
+\r
+      <gd name="x2O" fmla="*/ sx2 rO rw1" />\r
+\r
+      <gd name="y2O" fmla="*/ sy2 rO rh1" />\r
+\r
+\r
+      <gd name="dxO" fmla="+- x2O 0 x1O" />\r
+      <gd name="dyO" fmla="+- y2O 0 y1O" />\r
+      <gd name="dO" fmla="mod dxO dyO 0" />\r
+\r
+      <gd name="q1" fmla="*/ x1O y2O 1" />\r
+      <gd name="q2" fmla="*/ x2O y1O 1" />\r
+      <gd name="DO" fmla="+- q1 0 q2" />\r
+\r
+\r
+      <gd name="q3" fmla="*/ rO rO 1" />\r
+\r
+      <gd name="q4" fmla="*/ dO dO 1" />\r
+\r
+      <gd name="q5" fmla="*/ q3 q4 1" />\r
+\r
+      <gd name="q6" fmla="*/ DO DO 1" />\r
+\r
+      <gd name="q7" fmla="+- q5 0 q6" />\r
+\r
+      <gd name="q8" fmla="max q7 0" />\r
+\r
+      <gd name="sdelO" fmla="sqrt q8" />\r
+\r
+      <gd name="ndyO" fmla="*/ dyO -1 1" />\r
+      <gd name="sdyO" fmla="?: ndyO -1 1" />\r
+\r
+      <gd name="q9" fmla="*/ sdyO dxO 1" />\r
+\r
+      <gd name="q10" fmla="*/ q9 sdelO 1" />\r
+\r
+      <gd name="q11" fmla="*/ DO dyO 1" />\r
+\r
+      <gd name="dxF1" fmla="+/ q11 q10 q4" />\r
+\r
+      <gd name="q12" fmla="+- q11 0 q10" />\r
+      <gd name="dxF2" fmla="*/ q12 1 q4" />\r
+\r
+\r
+      <gd name="adyO" fmla="abs dyO" />\r
+      <gd name="q13" fmla="*/ adyO sdelO 1" />\r
+\r
+      <gd name="q14" fmla="*/ DO dxO -1" />\r
+\r
+      <gd name="dyF1" fmla="+/ q14 q13 q4" />\r
+\r
+      <gd name="q15" fmla="+- q14 0 q13" />\r
+      <gd name="dyF2" fmla="*/ q15 1 q4" />\r
+\r
+\r
+\r
+      <gd name="q16" fmla="+- x2O 0 dxF1" />\r
+      <gd name="q17" fmla="+- x2O 0 dxF2" />\r
+      <gd name="q18" fmla="+- y2O 0 dyF1" />\r
+      <gd name="q19" fmla="+- y2O 0 dyF2" />\r
+      <gd name="q20" fmla="mod q16 q18 0" />\r
+\r
+      <gd name="q21" fmla="mod q17 q19 0" />\r
+\r
+      <gd name="q22" fmla="+- q21 0 q20" />\r
+      <gd name="dxF" fmla="?: q22 dxF1 dxF2" />\r
+\r
+      <gd name="dyF" fmla="?: q22 dyF1 dyF2" />\r
+\r
+      <gd name="sdxF" fmla="*/ dxF rw1 rO" />\r
+\r
+      <gd name="sdyF" fmla="*/ dyF rh1 rO" />\r
+\r
+      <gd name="xF" fmla="+- hc sdxF 0" />\r
+\r
+      <gd name="yF" fmla="+- vc sdyF 0" />\r
+\r
+\r
+\r
+\r
+      <gd name="x1I" fmla="*/ sx1 rI rw2" />\r
+\r
+      <gd name="y1I" fmla="*/ sy1 rI rh2" />\r
+\r
+      <gd name="x2I" fmla="*/ sx2 rI rw2" />\r
+\r
+      <gd name="y2I" fmla="*/ sy2 rI rh2" />\r
+\r
+\r
+      <gd name="dxI" fmla="+- x2I 0 x1I" />\r
+      <gd name="dyI" fmla="+- y2I 0 y1I" />\r
+      <gd name="dI" fmla="mod dxI dyI 0" />\r
+      <gd name="v1" fmla="*/ x1I y2I 1" />\r
+      <gd name="v2" fmla="*/ x2I y1I 1" />\r
+      <gd name="DI" fmla="+- v1 0 v2" />\r
+\r
+      <gd name="v3" fmla="*/ rI rI 1" />\r
+      <gd name="v4" fmla="*/ dI dI 1" />\r
+      <gd name="v5" fmla="*/ v3 v4 1" />\r
+      <gd name="v6" fmla="*/ DI DI 1" />\r
+      <gd name="v7" fmla="+- v5 0 v6" />\r
+      <gd name="v8" fmla="max v7 0" />\r
+      <gd name="sdelI" fmla="sqrt v8" />\r
+      <gd name="v9" fmla="*/ sdyO dxI 1" />\r
+      <gd name="v10" fmla="*/ v9 sdelI 1" />\r
+      <gd name="v11" fmla="*/ DI dyI 1" />\r
+      <gd name="dxC1" fmla="+/ v11 v10 v4" />\r
+      <gd name="v12" fmla="+- v11 0 v10" />\r
+      <gd name="dxC2" fmla="*/ v12 1 v4" />\r
+\r
+      <gd name="adyI" fmla="abs dyI" />\r
+      <gd name="v13" fmla="*/ adyI sdelI 1" />\r
+      <gd name="v14" fmla="*/ DI dxI -1" />\r
+      <gd name="dyC1" fmla="+/ v14 v13 v4" />\r
+      <gd name="v15" fmla="+- v14 0 v13" />\r
+      <gd name="dyC2" fmla="*/ v15 1 v4" />\r
+\r
+      <gd name="v16" fmla="+- x1I 0 dxC1" />\r
+      <gd name="v17" fmla="+- x1I 0 dxC2" />\r
+      <gd name="v18" fmla="+- y1I 0 dyC1" />\r
+      <gd name="v19" fmla="+- y1I 0 dyC2" />\r
+      <gd name="v20" fmla="mod v16 v18 0" />\r
+      <gd name="v21" fmla="mod v17 v19 0" />\r
+      <gd name="v22" fmla="+- v21 0 v20" />\r
+      <gd name="dxC" fmla="?: v22 dxC1 dxC2" />\r
+      <gd name="dyC" fmla="?: v22 dyC1 dyC2" />\r
+      <gd name="sdxC" fmla="*/ dxC rw2 rI" />\r
+      <gd name="sdyC" fmla="*/ dyC rh2 rI" />\r
+      <gd name="xC" fmla="+- hc sdxC 0" />\r
+\r
+      <gd name="yC" fmla="+- vc sdyC 0" />\r
+\r
+\r
+      <gd name="ist0" fmla="at2 sdxC sdyC" />\r
+      <gd name="ist1" fmla="+- ist0 21600000 0" />\r
+      <gd name="istAng0" fmla="?: ist0 ist0 ist1" />\r
+      <gd name="isw1" fmla="+- stAng 0 istAng0" />\r
+      <gd name="isw2" fmla="+- isw1 21600000 0" />\r
+      <gd name="iswAng0" fmla="?: isw1 isw1 isw2" />\r
+\r
+      <gd name="istAng" fmla="+- istAng0 iswAng0 0" />\r
+      <gd name="iswAng" fmla="+- 0 0 iswAng0" />\r
+\r
+      <gd name="p1" fmla="+- xF 0 xC" />\r
+      <gd name="p2" fmla="+- yF 0 yC" />\r
+      <gd name="p3" fmla="mod p1 p2 0" />\r
+      <gd name="p4" fmla="*/ p3 1 2" />\r
+      <gd name="p5" fmla="+- p4 0 thh" />\r
+      <gd name="xGp" fmla="?: p5 xF xG" />\r
+      <gd name="yGp" fmla="?: p5 yF yG" />\r
+      <gd name="xBp" fmla="?: p5 xC xB" />\r
+      <gd name="yBp" fmla="?: p5 yC yB" />\r
+\r
+      <gd name="en0" fmla="at2 sdxF sdyF" />\r
+      <gd name="en1" fmla="+- en0 21600000 0" />\r
+      <gd name="en2" fmla="?: en0 en0 en1" />\r
+      <gd name="sw0" fmla="+- en2 0 stAng" />\r
+      <gd name="sw1" fmla="+- sw0 0 21600000" />\r
+      <gd name="swAng" fmla="?: sw0 sw1 sw0" />\r
+\r
+\r
+      <gd name="stAng0" fmla="+- stAng swAng 0" />\r
+\r
+      <gd name="swAng0" fmla="+- 0 0 swAng" />\r
+\r
+\r
+      <gd name="wtI" fmla="sin rw3 stAng" />\r
+      <gd name="htI" fmla="cos rh3 stAng" />\r
+      <gd name="dxI" fmla="cat2 rw3 htI wtI" />\r
+      <gd name="dyI" fmla="sat2 rh3 htI wtI" />\r
+      <gd name="xI" fmla="+- hc dxI 0" />\r
+\r
+      <gd name="yI" fmla="+- vc dyI 0" />\r
+\r
+\r
+      <gd name="aI" fmla="+- stAng cd4 0" />\r
+      <gd name="aA" fmla="+- ptAng 0 cd4" />\r
+      <gd name="aB" fmla="+- ptAng cd2 0" />\r
+\r
+      <gd name="idx" fmla="cos rw1 2700000" />\r
+      <gd name="idy" fmla="sin rh1 2700000" />\r
+      <gd name="il" fmla="+- hc 0 idx" />\r
+      <gd name="ir" fmla="+- hc idx 0" />\r
+      <gd name="it" fmla="+- vc 0 idy" />\r
+      <gd name="ib" fmla="+- vc idy 0" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahPolar gdRefAng="adj2" minAng="minAng" maxAng="0">\r
+        <pos x="xA" y="yA" />\r
+      </ahPolar>\r
+      <ahPolar gdRefAng="adj4" minAng="0" maxAng="21599999">\r
+        <pos x="xE" y="yE" />\r
+      </ahPolar>\r
+      <ahPolar gdRefR="adj1" minR="0" maxR="maxAdj1" gdRefAng="adj3" minAng="0" maxAng="21599999">\r
+        <pos x="xF" y="yF" />\r
+      </ahPolar>\r
+      <ahPolar gdRefR="adj5" minR="0" maxR="25000">\r
+        <pos x="xB" y="yB" />\r
+      </ahPolar>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="aI">\r
+        <pos x="xI" y="yI" />\r
+      </cxn>\r
+      <cxn ang="ptAng">\r
+        <pos x="xGp" y="yGp" />\r
+      </cxn>\r
+      <cxn ang="aA">\r
+        <pos x="xA" y="yA" />\r
+      </cxn>\r
+      <cxn ang="aB">\r
+        <pos x="xBp" y="yBp" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="xE" y="yE" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="xD" y="yD" />\r
+        </lnTo>\r
+        <arcTo wR="rw2" hR="rh2" stAng="istAng" swAng="iswAng" />\r
+        <lnTo>\r
+          <pt x="xBp" y="yBp" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xA" y="yA" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xGp" y="yGp" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xF" y="yF" />\r
+        </lnTo>\r
+        <arcTo wR="rw1" hR="rh1" stAng="stAng0" swAng="swAng0" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </leftCircularArrow>\r
+  <leftRightArrow>\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 50000" />\r
+      <gd name="adj2" fmla="val 50000" />\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj2" fmla="*/ 50000 w ss" />\r
+      <gd name="a1" fmla="pin 0 adj1 100000" />\r
+      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
+      <gd name="x2" fmla="*/ ss a2 100000" />\r
+      <gd name="x3" fmla="+- r 0 x2" />\r
+      <gd name="dy" fmla="*/ h a1 200000" />\r
+      <gd name="y1" fmla="+- vc 0 dy" />\r
+      <gd name="y2" fmla="+- vc dy 0" />\r
+      <gd name="dx1" fmla="*/ y1 x2 hd2" />\r
+      <gd name="x1" fmla="+- x2 0 dx1" />\r
+      <gd name="x4" fmla="+- x3 dx1 0" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="100000">\r
+        <pos x="x3" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="0" maxX="maxAdj2">\r
+        <pos x="x2" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x3" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x2" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x2" y="t" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x3" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="x1" t="y1" r="x4" b="y2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="vc" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+  </leftRightArrow>\r
+  <leftRightArrowCallout>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 25000" />\r
+\r
+      <gd name="adj2" fmla="val 25000" />\r
+\r
+      <gd name="adj3" fmla="val 25000" />\r
+\r
+      <gd name="adj4" fmla="val 48123" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj2" fmla="*/ 50000 h ss" />\r
+\r
+      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
+      <gd name="maxAdj1" fmla="*/ a2 2 1" />\r
+\r
+      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
+      <gd name="maxAdj3" fmla="*/ 50000 w ss" />\r
+\r
+      <gd name="a3" fmla="pin 0 adj3 maxAdj3" />\r
+      <gd name="q2" fmla="*/ a3 ss wd2" />\r
+\r
+      <gd name="maxAdj4" fmla="+- 100000 0 q2" />\r
+\r
+      <gd name="a4" fmla="pin 0 adj4 maxAdj4" />\r
+      <gd name="dy1" fmla="*/ ss a2 100000" />\r
+\r
+      <gd name="dy2" fmla="*/ ss a1 200000" />\r
+\r
+      <gd name="y1" fmla="+- vc 0 dy1" />\r
+      <gd name="y2" fmla="+- vc 0 dy2" />\r
+      <gd name="y3" fmla="+- vc dy2 0" />\r
+      <gd name="y4" fmla="+- vc dy1 0" />\r
+      <gd name="x1" fmla="*/ ss a3 100000" />\r
+\r
+      <gd name="x4" fmla="+- r 0 x1" />\r
+\r
+      <gd name="dx2" fmla="*/ w a4 200000" />\r
+\r
+      <gd name="x2" fmla="+- hc 0 dx2" />\r
+\r
+      <gd name="x3" fmla="+- hc dx2 0" />\r
+\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="maxAdj1">\r
+        <pos x="x1" y="y2" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj2" minY="0" maxY="maxAdj2">\r
+        <pos x="l" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj3" minX="0" maxX="maxAdj3">\r
+        <pos x="x1" y="t" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj4" minX="0" maxX="maxAdj4">\r
+        <pos x="x2" y="b" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="x2" t="t" r="x3" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="vc" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y4" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </leftRightArrowCallout>\r
+  <leftRightCircularArrow>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 12500" />\r
+\r
+      <gd name="adj2" fmla="val 1142319" />\r
+\r
+      <gd name="adj3" fmla="val 20457681" />\r
+\r
+      <gd name="adj4" fmla="val 11942319" />\r
+\r
+      <gd name="adj5" fmla="val 12500" />\r
+\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a5" fmla="pin 0 adj5 25000" />\r
+\r
+      <gd name="maxAdj1" fmla="*/ a5 2 1" />\r
+\r
+      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
+      <gd name="enAng" fmla="pin 1 adj3 21599999" />\r
+      <gd name="stAng" fmla="pin 0 adj4 21599999" />\r
+\r
+      <gd name="th" fmla="*/ ss a1 100000" />\r
+\r
+      <gd name="thh" fmla="*/ ss a5 100000" />\r
+\r
+      <gd name="th2" fmla="*/ th 1 2" />\r
+\r
+\r
+      <gd name="rw1" fmla="+- wd2 th2 thh" />\r
+\r
+      <gd name="rh1" fmla="+- hd2 th2 thh" />\r
+\r
+      <gd name="rw2" fmla="+- rw1 0 th" />\r
+\r
+      <gd name="rh2" fmla="+- rh1 0 th" />\r
+\r
+      <gd name="rw3" fmla="+- rw2 th2 0" />\r
+\r
+      <gd name="rh3" fmla="+- rh2 th2 0" />\r
+\r
+\r
+      <gd name="wtH" fmla="sin rw3 enAng" />\r
+      <gd name="htH" fmla="cos rh3 enAng" />\r
+      <gd name="dxH" fmla="cat2 rw3 htH wtH" />\r
+      <gd name="dyH" fmla="sat2 rh3 htH wtH" />\r
+      <gd name="xH" fmla="+- hc dxH 0" />\r
+\r
+      <gd name="yH" fmla="+- vc dyH 0" />\r
+\r
+\r
+      <gd name="rI" fmla="min rw2 rh2" />\r
+\r
+      <gd name="u1" fmla="*/ dxH dxH 1" />\r
+      <gd name="u2" fmla="*/ dyH dyH 1" />\r
+      <gd name="u3" fmla="*/ rI rI 1" />\r
+      <gd name="u4" fmla="+- u1 0 u3" />\r
+      <gd name="u5" fmla="+- u2 0 u3" />\r
+      <gd name="u6" fmla="*/ u4 u5 u1" />\r
+      <gd name="u7" fmla="*/ u6 1 u2" />\r
+      <gd name="u8" fmla="+- 1 0 u7" />\r
+      <gd name="u9" fmla="sqrt u8" />\r
+      <gd name="u10" fmla="*/ u4 1 dxH" />\r
+      <gd name="u11" fmla="*/ u10 1 dyH" />\r
+      <gd name="u12" fmla="+/ 1 u9 u11" />\r
+      <gd name="u13" fmla="at2 1 u12" />\r
+      <gd name="u14" fmla="+- u13 21600000 0" />\r
+      <gd name="u15" fmla="?: u13 u13 u14" />\r
+      <gd name="u16" fmla="+- u15 0 enAng" />\r
+\r
+      <gd name="u17" fmla="+- u16 21600000 0" />\r
+      <gd name="u18" fmla="?: u16 u16 u17" />\r
+      <gd name="u19" fmla="+- u18 0 cd2" />\r
+      <gd name="u20" fmla="+- u18 0 21600000" />\r
+      <gd name="u21" fmla="?: u19 u20 u18" />\r
+      <gd name="maxAng" fmla="abs u21" />\r
+      <gd name="aAng" fmla="pin 0 adj2 maxAng" />\r
+\r
+      <gd name="ptAng" fmla="+- enAng aAng 0" />\r
+\r
+\r
+      <gd name="wtA" fmla="sin rw3 ptAng" />\r
+      <gd name="htA" fmla="cos rh3 ptAng" />\r
+      <gd name="dxA" fmla="cat2 rw3 htA wtA" />\r
+      <gd name="dyA" fmla="sat2 rh3 htA wtA" />\r
+      <gd name="xA" fmla="+- hc dxA 0" />\r
+\r
+      <gd name="yA" fmla="+- vc dyA 0" />\r
+\r
+\r
+      <gd name="dxG" fmla="cos thh ptAng" />\r
+      <gd name="dyG" fmla="sin thh ptAng" />\r
+      <gd name="xG" fmla="+- xH dxG 0" />\r
+\r
+      <gd name="yG" fmla="+- yH dyG 0" />\r
+\r
+\r
+      <gd name="dxB" fmla="cos thh ptAng" />\r
+      <gd name="dyB" fmla="sin thh ptAng" />\r
+      <gd name="xB" fmla="+- xH 0 dxB 0" />\r
+\r
+      <gd name="yB" fmla="+- yH 0 dyB 0" />\r
+\r
+\r
+      <gd name="sx1" fmla="+- xB 0 hc" />\r
+\r
+      <gd name="sy1" fmla="+- yB 0 vc" />\r
+\r
+      <gd name="sx2" fmla="+- xG 0 hc" />\r
+\r
+      <gd name="sy2" fmla="+- yG 0 vc" />\r
+\r
+\r
+      <gd name="rO" fmla="min rw1 rh1" />\r
+\r
+      <gd name="x1O" fmla="*/ sx1 rO rw1" />\r
+\r
+      <gd name="y1O" fmla="*/ sy1 rO rh1" />\r
+\r
+      <gd name="x2O" fmla="*/ sx2 rO rw1" />\r
+\r
+      <gd name="y2O" fmla="*/ sy2 rO rh1" />\r
+\r
+\r
+      <gd name="dxO" fmla="+- x2O 0 x1O" />\r
+      <gd name="dyO" fmla="+- y2O 0 y1O" />\r
+      <gd name="dO" fmla="mod dxO dyO 0" />\r
+\r
+      <gd name="q1" fmla="*/ x1O y2O 1" />\r
+      <gd name="q2" fmla="*/ x2O y1O 1" />\r
+      <gd name="DO" fmla="+- q1 0 q2" />\r
+\r
+\r
+      <gd name="q3" fmla="*/ rO rO 1" />\r
+\r
+      <gd name="q4" fmla="*/ dO dO 1" />\r
+\r
+      <gd name="q5" fmla="*/ q3 q4 1" />\r
+\r
+      <gd name="q6" fmla="*/ DO DO 1" />\r
+\r
+      <gd name="q7" fmla="+- q5 0 q6" />\r
+\r
+      <gd name="q8" fmla="max q7 0" />\r
+\r
+      <gd name="sdelO" fmla="sqrt q8" />\r
+\r
+      <gd name="ndyO" fmla="*/ dyO -1 1" />\r
+      <gd name="sdyO" fmla="?: ndyO -1 1" />\r
+\r
+      <gd name="q9" fmla="*/ sdyO dxO 1" />\r
+\r
+      <gd name="q10" fmla="*/ q9 sdelO 1" />\r
+\r
+      <gd name="q11" fmla="*/ DO dyO 1" />\r
+\r
+      <gd name="dxF1" fmla="+/ q11 q10 q4" />\r
+\r
+      <gd name="q12" fmla="+- q11 0 q10" />\r
+      <gd name="dxF2" fmla="*/ q12 1 q4" />\r
+\r
+\r
+      <gd name="adyO" fmla="abs dyO" />\r
+      <gd name="q13" fmla="*/ adyO sdelO 1" />\r
+\r
+      <gd name="q14" fmla="*/ DO dxO -1" />\r
+\r
+      <gd name="dyF1" fmla="+/ q14 q13 q4" />\r
+\r
+      <gd name="q15" fmla="+- q14 0 q13" />\r
+      <gd name="dyF2" fmla="*/ q15 1 q4" />\r
+\r
+\r
+\r
+      <gd name="q16" fmla="+- x2O 0 dxF1" />\r
+      <gd name="q17" fmla="+- x2O 0 dxF2" />\r
+      <gd name="q18" fmla="+- y2O 0 dyF1" />\r
+      <gd name="q19" fmla="+- y2O 0 dyF2" />\r
+      <gd name="q20" fmla="mod q16 q18 0" />\r
+\r
+      <gd name="q21" fmla="mod q17 q19 0" />\r
+\r
+      <gd name="q22" fmla="+- q21 0 q20" />\r
+      <gd name="dxF" fmla="?: q22 dxF1 dxF2" />\r
+\r
+      <gd name="dyF" fmla="?: q22 dyF1 dyF2" />\r
+\r
+      <gd name="sdxF" fmla="*/ dxF rw1 rO" />\r
+\r
+      <gd name="sdyF" fmla="*/ dyF rh1 rO" />\r
+\r
+      <gd name="xF" fmla="+- hc sdxF 0" />\r
+\r
+      <gd name="yF" fmla="+- vc sdyF 0" />\r
+\r
+\r
+\r
+\r
+      <gd name="x1I" fmla="*/ sx1 rI rw2" />\r
+\r
+      <gd name="y1I" fmla="*/ sy1 rI rh2" />\r
+\r
+      <gd name="x2I" fmla="*/ sx2 rI rw2" />\r
+\r
+      <gd name="y2I" fmla="*/ sy2 rI rh2" />\r
+\r
+\r
+      <gd name="dxI" fmla="+- x2I 0 x1I" />\r
+      <gd name="dyI" fmla="+- y2I 0 y1I" />\r
+      <gd name="dI" fmla="mod dxI dyI 0" />\r
+      <gd name="v1" fmla="*/ x1I y2I 1" />\r
+      <gd name="v2" fmla="*/ x2I y1I 1" />\r
+      <gd name="DI" fmla="+- v1 0 v2" />\r
+\r
+      <gd name="v3" fmla="*/ rI rI 1" />\r
+      <gd name="v4" fmla="*/ dI dI 1" />\r
+      <gd name="v5" fmla="*/ v3 v4 1" />\r
+      <gd name="v6" fmla="*/ DI DI 1" />\r
+      <gd name="v7" fmla="+- v5 0 v6" />\r
+      <gd name="v8" fmla="max v7 0" />\r
+      <gd name="sdelI" fmla="sqrt v8" />\r
+      <gd name="v9" fmla="*/ sdyO dxI 1" />\r
+      <gd name="v10" fmla="*/ v9 sdelI 1" />\r
+      <gd name="v11" fmla="*/ DI dyI 1" />\r
+      <gd name="dxC1" fmla="+/ v11 v10 v4" />\r
+      <gd name="v12" fmla="+- v11 0 v10" />\r
+      <gd name="dxC2" fmla="*/ v12 1 v4" />\r
+\r
+      <gd name="adyI" fmla="abs dyI" />\r
+      <gd name="v13" fmla="*/ adyI sdelI 1" />\r
+      <gd name="v14" fmla="*/ DI dxI -1" />\r
+      <gd name="dyC1" fmla="+/ v14 v13 v4" />\r
+      <gd name="v15" fmla="+- v14 0 v13" />\r
+      <gd name="dyC2" fmla="*/ v15 1 v4" />\r
+\r
+      <gd name="v16" fmla="+- x1I 0 dxC1" />\r
+      <gd name="v17" fmla="+- x1I 0 dxC2" />\r
+      <gd name="v18" fmla="+- y1I 0 dyC1" />\r
+      <gd name="v19" fmla="+- y1I 0 dyC2" />\r
+      <gd name="v20" fmla="mod v16 v18 0" />\r
+      <gd name="v21" fmla="mod v17 v19 0" />\r
+      <gd name="v22" fmla="+- v21 0 v20" />\r
+      <gd name="dxC" fmla="?: v22 dxC1 dxC2" />\r
+      <gd name="dyC" fmla="?: v22 dyC1 dyC2" />\r
+      <gd name="sdxC" fmla="*/ dxC rw2 rI" />\r
+      <gd name="sdyC" fmla="*/ dyC rh2 rI" />\r
+      <gd name="xC" fmla="+- hc sdxC 0" />\r
+\r
+      <gd name="yC" fmla="+- vc sdyC 0" />\r
+\r
+\r
+      <gd name="wtI" fmla="sin rw3 stAng" />\r
+      <gd name="htI" fmla="cos rh3 stAng" />\r
+      <gd name="dxI" fmla="cat2 rw3 htI wtI" />\r
+      <gd name="dyI" fmla="sat2 rh3 htI wtI" />\r
+      <gd name="xI" fmla="+- hc dxI 0" />\r
+\r
+      <gd name="yI" fmla="+- vc dyI 0" />\r
+\r
+\r
+      <gd name="lptAng" fmla="+- stAng 0 aAng" />\r
+\r
+\r
+      <gd name="wtL" fmla="sin rw3 lptAng" />\r
+      <gd name="htL" fmla="cos rh3 lptAng" />\r
+      <gd name="dxL" fmla="cat2 rw3 htL wtL" />\r
+      <gd name="dyL" fmla="sat2 rh3 htL wtL" />\r
+      <gd name="xL" fmla="+- hc dxL 0" />\r
+\r
+      <gd name="yL" fmla="+- vc dyL 0" />\r
+\r
+\r
+      <gd name="dxK" fmla="cos thh lptAng" />\r
+      <gd name="dyK" fmla="sin thh lptAng" />\r
+      <gd name="xK" fmla="+- xI dxK 0" />\r
+\r
+      <gd name="yK" fmla="+- yI dyK 0" />\r
+\r
+\r
+      <gd name="dxJ" fmla="cos thh lptAng" />\r
+      <gd name="dyJ" fmla="sin thh lptAng" />\r
+      <gd name="xJ" fmla="+- xI 0 dxJ 0" />\r
+\r
+      <gd name="yJ" fmla="+- yI 0 dyJ 0" />\r
+\r
+\r
+      <gd name="p1" fmla="+- xF 0 xC" />\r
+      <gd name="p2" fmla="+- yF 0 yC" />\r
+      <gd name="p3" fmla="mod p1 p2 0" />\r
+      <gd name="p4" fmla="*/ p3 1 2" />\r
+      <gd name="p5" fmla="+- p4 0 thh" />\r
+      <gd name="xGp" fmla="?: p5 xF xG" />\r
+      <gd name="yGp" fmla="?: p5 yF yG" />\r
+      <gd name="xBp" fmla="?: p5 xC xB" />\r
+      <gd name="yBp" fmla="?: p5 yC yB" />\r
+\r
+      <gd name="en0" fmla="at2 sdxF sdyF" />\r
+      <gd name="en1" fmla="+- en0 21600000 0" />\r
+      <gd name="en2" fmla="?: en0 en0 en1" />\r
+      <gd name="od0" fmla="+- en2 0 enAng" />\r
+      <gd name="od1" fmla="+- od0 21600000 0" />\r
+      <gd name="od2" fmla="?: od0 od0 od1" />\r
+\r
+      <gd name="st0" fmla="+- stAng 0 od2" />\r
+      <gd name="st1" fmla="+- st0 21600000 0" />\r
+      <gd name="st2" fmla="?: st0 st0 st1" />\r
+\r
+      <gd name="sw0" fmla="+- en2 0 st2" />\r
+      <gd name="sw1" fmla="+- sw0 21600000 0" />\r
+      <gd name="swAng" fmla="?: sw0 sw0 sw1" />\r
+\r
+\r
+      <gd name="ist0" fmla="at2 sdxC sdyC" />\r
+      <gd name="ist1" fmla="+- ist0 21600000 0" />\r
+      <gd name="istAng" fmla="?: ist0 ist0 ist1" />\r
+\r
+      <gd name="id0" fmla="+- istAng 0 enAng" />\r
+      <gd name="id1" fmla="+- id0 0 21600000" />\r
+      <gd name="id2" fmla="?: id0 id1 id0" />\r
+\r
+      <gd name="ien0" fmla="+- stAng 0 id2" />\r
+      <gd name="ien1" fmla="+- ien0 0 21600000" />\r
+      <gd name="ien2" fmla="?: ien1 ien1 ien0" />\r
+\r
+      <gd name="isw1" fmla="+- ien2 0 istAng" />\r
+      <gd name="isw2" fmla="+- isw1 0 21600000" />\r
+      <gd name="iswAng" fmla="?: isw1 isw2 isw1" />\r
+\r
+\r
+      <gd name="wtE" fmla="sin rw1 st2" />\r
+      <gd name="htE" fmla="cos rh1 st2" />\r
+      <gd name="dxE" fmla="cat2 rw1 htE wtE" />\r
+      <gd name="dyE" fmla="sat2 rh1 htE wtE" />\r
+      <gd name="xE" fmla="+- hc dxE 0" />\r
+\r
+      <gd name="yE" fmla="+- vc dyE 0" />\r
+\r
+\r
+      <gd name="wtD" fmla="sin rw2 ien2" />\r
+      <gd name="htD" fmla="cos rh2 ien2" />\r
+      <gd name="dxD" fmla="cat2 rw2 htD wtD" />\r
+      <gd name="dyD" fmla="sat2 rh2 htD wtD" />\r
+      <gd name="xD" fmla="+- hc dxD 0" />\r
+\r
+      <gd name="yD" fmla="+- vc dyD 0" />\r
+\r
+\r
+      <gd name="xKp" fmla="?: p5 xE xK" />\r
+      <gd name="yKp" fmla="?: p5 yE yK" />\r
+      <gd name="xJp" fmla="?: p5 xD xJ" />\r
+      <gd name="yJp" fmla="?: p5 yD yJ" />\r
+\r
+      <gd name="aL" fmla="+- lptAng 0 cd4" />\r
+      <gd name="aA" fmla="+- ptAng cd4 0" />\r
+      <gd name="aB" fmla="+- ptAng cd2 0" />\r
+      <gd name="aJ" fmla="+- lptAng cd2 0" />\r
+\r
+      <gd name="idx" fmla="cos rw1 2700000" />\r
+      <gd name="idy" fmla="sin rh1 2700000" />\r
+      <gd name="il" fmla="+- hc 0 idx" />\r
+      <gd name="ir" fmla="+- hc idx 0" />\r
+      <gd name="it" fmla="+- vc 0 idy" />\r
+      <gd name="ib" fmla="+- vc idy 0" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahPolar gdRefAng="adj2" minAng="0" maxAng="maxAng">\r
+        <pos x="xA" y="yA" />\r
+      </ahPolar>\r
+      <ahPolar gdRefAng="adj4" minAng="0" maxAng="21599999">\r
+        <pos x="xE" y="yE" />\r
+      </ahPolar>\r
+      <ahPolar gdRefR="adj1" minR="0" maxR="maxAdj1" gdRefAng="adj3" minAng="0" maxAng="21599999">\r
+        <pos x="xF" y="yF" />\r
+      </ahPolar>\r
+      <ahPolar gdRefR="adj5" minR="0" maxR="25000">\r
+        <pos x="xB" y="yB" />\r
+      </ahPolar>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="aL">\r
+        <pos x="xL" y="yL" />\r
+      </cxn>\r
+      <cxn ang="lptAng">\r
+        <pos x="xKp" y="yKp" />\r
+      </cxn>\r
+      <cxn ang="ptAng">\r
+        <pos x="xGp" y="yGp" />\r
+      </cxn>\r
+      <cxn ang="aA">\r
+        <pos x="xA" y="yA" />\r
+      </cxn>\r
+      <cxn ang="aB">\r
+        <pos x="xBp" y="yBp" />\r
+      </cxn>\r
+      <cxn ang="aJ">\r
+        <pos x="xJp" y="yJp" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="xL" y="yL" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="xKp" y="yKp" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xE" y="yE" />\r
+        </lnTo>\r
+        <arcTo wR="rw1" hR="rh1" stAng="st2" swAng="swAng" />\r
+        <lnTo>\r
+          <pt x="xGp" y="yGp" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xA" y="yA" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xBp" y="yBp" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xC" y="yC" />\r
+        </lnTo>\r
+        <arcTo wR="rw2" hR="rh2" stAng="istAng" swAng="iswAng" />\r
+        <lnTo>\r
+          <pt x="xJp" y="yJp" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </leftRightCircularArrow>\r
+  <leftRightRibbon>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 50000" />\r
+\r
+      <gd name="adj2" fmla="val 50000" />\r
+\r
+      <gd name="adj3" fmla="val 16667" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a3" fmla="pin 0 adj3 33333" />\r
+      <gd name="maxAdj1" fmla="+- 100000 0 a3" />\r
+      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
+\r
+      <gd name="w1" fmla="+- wd2 0 wd32" />\r
+      <gd name="maxAdj2" fmla="*/ 100000 w1 ss" />\r
+      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
+\r
+      <gd name="x1" fmla="*/ ss a2 100000" />\r
+\r
+      <gd name="x4" fmla="+- r 0 x1" />\r
+\r
+      <gd name="dy1" fmla="*/ h a1 200000" />\r
+\r
+      <gd name="dy2" fmla="*/ h a3 -200000" />\r
+\r
+      <gd name="ly1" fmla="+- vc dy2 dy1" />\r
+\r
+      <gd name="ry4" fmla="+- vc dy1 dy2" />\r
+\r
+      <gd name="ly2" fmla="+- ly1 dy1 0" />\r
+\r
+      <gd name="ry3" fmla="+- b 0 ly2" />\r
+\r
+      <gd name="ly4" fmla="*/ ly2 2 1" />\r
+\r
+      <gd name="ry1" fmla="+- b 0 ly4" />\r
+\r
+      <gd name="ly3" fmla="+- ly4 0 ly1" />\r
+\r
+      <gd name="ry2" fmla="+- b 0 ly3" />\r
+\r
+\r
+      <gd name="hR" fmla="*/ a3 ss 400000" />\r
+\r
+      <gd name="x2" fmla="+- hc 0 wd32" />\r
+\r
+      <gd name="x3" fmla="+- hc wd32 0" />\r
+\r
+      <gd name="y1" fmla="+- ly1 hR 0" />\r
+\r
+      <gd name="y2" fmla="+- ry2 0 hR" />\r
+\r
+\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="maxAdj1">\r
+        <pos x="x4" y="ry2" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="0" maxX="maxAdj2">\r
+        <pos x="x1" y="t" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj3" minY="0" maxY="33333">\r
+        <pos x="x3" y="ry2" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="ry3" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x4" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x1" y="ly4" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="ly2" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x1" y="t" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x4" y="ry1" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="x1" t="ly1" r="x4" b="ry4" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="l" y="ly2" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="ly1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="ly1" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="cd2" />\r
+        <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="-10800000" />\r
+        <lnTo>\r
+          <pt x="x4" y="ry2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="ry1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="ry3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="ry4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="ry4" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x2" y="ly3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="ly3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="ly4" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path stroke="false" fill="darkenLess" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="x3" y="y1" />\r
+        </moveTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="0" swAng="cd4" />\r
+        <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="-10800000" />\r
+        <lnTo>\r
+          <pt x="x3" y="ry2" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="l" y="ly2" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="ly1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="ly1" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="cd2" />\r
+        <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="-10800000" />\r
+        <lnTo>\r
+          <pt x="x4" y="ry2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="ry1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="ry3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="ry4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="ry4" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x2" y="ly3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="ly3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="ly4" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="x3" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x3" y="ry2" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="x2" y="y2" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="ly3" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+\r
+  </leftRightRibbon>\r
+  <leftRightUpArrow>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 25000" />\r
+\r
+      <gd name="adj2" fmla="val 25000" />\r
+\r
+      <gd name="adj3" fmla="val 25000" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a2" fmla="pin 0 adj2 50000" />\r
+      <gd name="maxAdj1" fmla="*/ a2 2 1" />\r
+      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
+      <gd name="q1" fmla="+- 100000 0 maxAdj1" />\r
+      <gd name="maxAdj3" fmla="*/ q1 1 2" />\r
+      <gd name="a3" fmla="pin 0 adj3 maxAdj3" />\r
+      <gd name="x1" fmla="*/ ss a3 100000" />\r
+      <gd name="dx2" fmla="*/ ss a2 100000" />\r
+\r
+      <gd name="x2" fmla="+- hc 0 dx2" />\r
+      <gd name="x5" fmla="+- hc dx2 0" />\r
+      <gd name="dx3" fmla="*/ ss a1 200000" />\r
+\r
+      <gd name="x3" fmla="+- hc 0 dx3" />\r
+      <gd name="x4" fmla="+- hc dx3 0" />\r
+      <gd name="x6" fmla="+- r 0 x1" />\r
+\r
+      <gd name="dy2" fmla="*/ ss a2 50000" />\r
+\r
+      <gd name="y2" fmla="+- b 0 dy2" />\r
+      <gd name="y4" fmla="+- b 0 dx2" />\r
+      <gd name="y3" fmla="+- y4 0 dx3" />\r
+      <gd name="y5" fmla="+- y4 dx3 0" />\r
+      <gd name="il" fmla="*/ dx3 x1 dx2" />\r
+      <gd name="ir" fmla="+- r 0 il" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="0" maxX="maxAdj1">\r
+        <pos x="x3" y="x1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="0" maxX="50000">\r
+        <pos x="x2" y="t" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj3" minY="0" maxY="maxAdj3">\r
+        <pos x="r" y="x1" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="y4" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="y5" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="y4" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="y3" r="ir" b="y5" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="y4" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="x1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="x1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x5" y="x1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="x1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x6" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x6" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x6" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x6" y="y5" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y5" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </leftRightUpArrow>\r
+  <leftUpArrow>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 25000" />\r
+\r
+      <gd name="adj2" fmla="val 25000" />\r
+\r
+      <gd name="adj3" fmla="val 25000" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a2" fmla="pin 0 adj2 50000" />\r
+      <gd name="maxAdj1" fmla="*/ a2 2 1" />\r
+      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
+      <gd name="maxAdj3" fmla="+- 100000 0 maxAdj1" />\r
+      <gd name="a3" fmla="pin 0 adj3 maxAdj3" />\r
+      <gd name="x1" fmla="*/ ss a3 100000" />\r
+\r
+      <gd name="dx2" fmla="*/ ss a2 50000" />\r
+\r
+      <gd name="x2" fmla="+- r 0 dx2" />\r
+      <gd name="y2" fmla="+- b 0 dx2" />\r
+      <gd name="dx4" fmla="*/ ss a2 100000" />\r
+\r
+      <gd name="x4" fmla="+- r 0 dx4" />\r
+      <gd name="y4" fmla="+- b 0 dx4" />\r
+      <gd name="dx3" fmla="*/ ss a1 200000" />\r
+\r
+      <gd name="x3" fmla="+- x4 0 dx3" />\r
+      <gd name="x5" fmla="+- x4 dx3 0" />\r
+      <gd name="y3" fmla="+- y4 0 dx3" />\r
+      <gd name="y5" fmla="+- y4 dx3 0" />\r
+      <gd name="il" fmla="*/ dx3 x1 dx4" />\r
+      <gd name="cx1" fmla="+/ x1 x5 2" />\r
+      <gd name="cy1" fmla="+/ x1 y5 2" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="maxAdj1">\r
+        <pos x="x3" y="y3" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="0" maxX="50000">\r
+        <pos x="x2" y="t" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj3" minY="0" maxY="maxAdj3">\r
+        <pos x="x3" y="x1" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="x4" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x2" y="x1" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x1" y="y2" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="y4" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x1" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="cx1" y="y5" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x5" y="cy1" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="x1" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="y3" r="x4" b="y5" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="y4" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="x1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="x1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="x1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x5" y="x1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x5" y="y5" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y5" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </leftUpArrow>\r
+  <lightningBolt>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="x1" fmla="*/ w 5022 21600" />\r
+      <gd name="x3" fmla="*/ w 8472 21600" />\r
+      <gd name="x4" fmla="*/ w 8757 21600" />\r
+\r
+      <gd name="x5" fmla="*/ w 10012 21600" />\r
+      <gd name="x8" fmla="*/ w 12860 21600" />\r
+      <gd name="x9" fmla="*/ w 13917 21600" />\r
+\r
+      <gd name="x11" fmla="*/ w 16577 21600" />\r
+      <gd name="y1" fmla="*/ h 3890 21600" />\r
+      <gd name="y2" fmla="*/ h 6080 21600" />\r
+      <gd name="y4" fmla="*/ h 7437 21600" />\r
+\r
+      <gd name="y6" fmla="*/ h 9705 21600" />\r
+      <gd name="y7" fmla="*/ h 12007 21600" />\r
+      <gd name="y10" fmla="*/ h 14277 21600" />\r
+\r
+      <gd name="y11" fmla="*/ h 14915 21600" />\r
+\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="x3" y="t" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="l" y="y1" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="y6" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x5" y="y11" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="r" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x11" y="y7" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x8" y="y2" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="x4" t="y4" r="x9" b="y10" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path w="21600" h="21600">\r
+        <moveTo>\r
+          <pt x="8472" y="0" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="12860" y="6080" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="11050" y="6797" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="16577" y="12007" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="14767" y="12877" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="21600" y="21600" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="10012" y="14915" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="12222" y="13987" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="5022" y="9705" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="7602" y="8382" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="0" y="3890" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </lightningBolt>\r
+  <line>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="cd4">\r
+        <pos x="l" y="t" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="r" y="b" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+  </line>\r
+  <lineInv>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="cd4">\r
+        <pos x="l" y="b" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="r" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="b" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+  </lineInv>\r
+  <mathDivide>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 23520" />\r
+\r
+      <gd name="adj2" fmla="val 5880" />\r
+\r
+      <gd name="adj3" fmla="val 11760" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+\r
+      <gd name="a1" fmla="pin 1000 adj1 36745" />\r
+      <gd name="ma1" fmla="+- 0 0 a1" />\r
+\r
+      <gd name="ma3h" fmla="+/ 73490 ma1 4" />\r
+\r
+      <gd name="ma3w" fmla="*/ 36745 w h" />\r
+\r
+      <gd name="maxAdj3" fmla="min ma3h ma3w" />\r
+      <gd name="a3" fmla="pin 1000 adj3 maxAdj3" />\r
+      <gd name="m4a3" fmla="*/ -4 a3 1" />\r
+\r
+      <gd name="maxAdj2" fmla="+- 73490 m4a3 a1" />\r
+      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
+\r
+      <gd name="dy1" fmla="*/ h a1 200000" />\r
+\r
+      <gd name="yg" fmla="*/ h a2 100000" />\r
+\r
+      <gd name="rad" fmla="*/ h a3 100000" />\r
+\r
+      <gd name="dx1" fmla="*/ w 73490 200000" />\r
+\r
+\r
+      <gd name="y3" fmla="+- vc 0 dy1" />\r
+\r
+      <gd name="y4" fmla="+- vc dy1 0" />\r
+\r
+      <gd name="a" fmla="+- yg rad 0" />\r
+      <gd name="y2" fmla="+- y3 0 a" />\r
+\r
+      <gd name="y1" fmla="+- y2 0 rad" />\r
+\r
+      <gd name="y5" fmla="+- b 0 y1" />\r
+\r
+\r
+      <gd name="x1" fmla="+- hc 0 dx1" />\r
+\r
+      <gd name="x3" fmla="+- hc dx1 0" />\r
+\r
+      <gd name="x2" fmla="+- hc 0 rad" />\r
+\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="1000" maxY="36745">\r
+        <pos x="l" y="y3" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj2" minY="0" maxY="maxAdj2">\r
+        <pos x="r" y="y2" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj3" minX="1000" maxX="maxAdj3">\r
+        <pos x="x2" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="x3" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="y5" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="y1" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="x1" t="y3" r="x3" b="y4" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="hc" y="y1" />\r
+        </moveTo>\r
+        <arcTo hR="rad" wR="rad" stAng="3cd4" swAng="21600000" />\r
+        <close />\r
+        <moveTo>\r
+          <pt x="hc" y="y5" />\r
+        </moveTo>\r
+        <arcTo hR="rad" wR="rad" stAng="cd4" swAng="21600000" />\r
+        <close />\r
+        <moveTo>\r
+          <pt x="x1" y="y3" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y4" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </mathDivide>\r
+  <mathEqual>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 23520" />\r
+\r
+      <gd name="adj2" fmla="val 11760" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a1" fmla="pin 0 adj1 36745" />\r
+\r
+\r
+      <gd name="2a1" fmla="*/ a1 2 1" />\r
+\r
+      <gd name="mAdj2" fmla="+- 100000 0 2a1" />\r
+\r
+      <gd name="a2" fmla="pin 0 adj2 mAdj2" />\r
+      <gd name="dy1" fmla="*/ h a1 100000" />\r
+\r
+      <gd name="dy2" fmla="*/ h a2 200000" />\r
+\r
+      <gd name="dx1" fmla="*/ w 73490 200000" />\r
+\r
+\r
+      <gd name="y2" fmla="+- vc 0 dy2" />\r
+\r
+      <gd name="y3" fmla="+- vc dy2 0" />\r
+\r
+      <gd name="y1" fmla="+- y2 0 dy1" />\r
+\r
+      <gd name="y4" fmla="+- y3 dy1 0" />\r
+\r
+\r
+      <gd name="x1" fmla="+- hc 0 dx1" />\r
+\r
+      <gd name="x2" fmla="+- hc dx1 0" />\r
+\r
+\r
+\r
+      <gd name="yC1" fmla="+/ y1 y2 2" />\r
+\r
+      <gd name="yC2" fmla="+/ y3 y4 2" />\r
+\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="36745">\r
+        <pos x="l" y="y1" />\r
+      </ahXY>\r
+\r
+      <ahXY gdRefY="adj2" minY="0" maxY="mAdj2">\r
+        <pos x="r" y="y2" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="x2" y="yC1" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x2" y="yC2" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="y4" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="yC1" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="yC2" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="y1" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="x1" t="y1" r="x2" b="y4" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="x1" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y2" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="x1" y="y3" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y4" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </mathEqual>\r
+  <mathMinus>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 23520" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a1" fmla="pin 0 adj1 100000" />\r
+      <gd name="dy1" fmla="*/ h a1 200000" />\r
+\r
+      <gd name="dx1" fmla="*/ w 73490 200000" />\r
+\r
+\r
+      <gd name="y1" fmla="+- vc 0 dy1" />\r
+\r
+      <gd name="y2" fmla="+- vc dy1 0" />\r
+\r
+\r
+      <gd name="x1" fmla="+- hc 0 dx1" />\r
+\r
+      <gd name="x2" fmla="+- hc dx1 0" />\r
+\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="100000">\r
+        <pos x="l" y="y1" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="x2" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="y2" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="y1" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="x1" t="y1" r="x2" b="y2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="x1" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y2" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </mathMinus>\r
+  <mathMultiply>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 23520" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+\r
+\r
+\r
+\r
+\r
+      <gd name="a1" fmla="pin 0 adj1 51965" />\r
+\r
+      <gd name="th" fmla="*/ ss a1 100000" />\r
+\r
+\r
+      <gd name="a" fmla="at2 w h" />\r
+\r
+      <gd name="sa" fmla="sin 1 a" />\r
+      <gd name="ca" fmla="cos 1 a" />\r
+      <gd name="ta" fmla="tan 1 a" />\r
+\r
+\r
+      <gd name="dl" fmla="mod w h 0" />\r
+\r
+      <gd name="rw" fmla="*/ dl 51965 100000" />\r
+\r
+\r
+\r
+      <gd name="lM" fmla="+- dl 0 rw" />\r
+      <gd name="xM" fmla="*/ ca lM 2" />\r
+      <gd name="yM" fmla="*/ sa lM 2" />\r
+\r
+\r
+      <gd name="dxAM" fmla="*/ sa th 2" />\r
+      <gd name="dyAM" fmla="*/ ca th 2" />\r
+      <gd name="xA" fmla="+- xM 0 dxAM" />\r
+      <gd name="yA" fmla="+- yM dyAM 0" />\r
+\r
+\r
+      <gd name="xB" fmla="+- xM dxAM 0" />\r
+      <gd name="yB" fmla="+- yM 0 dyAM" />\r
+\r
+\r
+      <gd name="xBC" fmla="+- hc 0 xB" />\r
+      <gd name="yBC" fmla="*/ xBC ta 1" />\r
+      <gd name="yC" fmla="+- yBC yB 0" />\r
+\r
+\r
+      <gd name="xD" fmla="+- r 0 xB" />\r
+      <gd name="xE" fmla="+- r 0 xA" />\r
+\r
+      <gd name="yFE" fmla="+- vc 0 yA" />\r
+      <gd name="xFE" fmla="*/ yFE 1 ta" />\r
+      <gd name="xF" fmla="+- xE 0 xFE" />\r
+      <gd name="xL" fmla="+- xA xFE 0" />\r
+      <gd name="yG" fmla="+- b 0 yA" />\r
+      <gd name="yH" fmla="+- b 0 yB" />\r
+      <gd name="yI" fmla="+- b 0 yC" />\r
+\r
+\r
+      <gd name="xC2" fmla="+- r 0 xM" />\r
+\r
+      <gd name="yC3" fmla="+- b 0 yM" />\r
+\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="51965">\r
+        <pos x="l" y="th" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="cd2">\r
+        <pos x="xM" y="yM" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="xC2" y="yM" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="xC2" y="yC3" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="xM" y="yC3" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="xA" t="yB" r="xE" b="yH" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="xA" y="yA" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="xB" y="yB" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="yC" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xD" y="yB" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xE" y="yA" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xF" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xE" y="yG" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xD" y="yH" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="yI" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xB" y="yH" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xA" y="yG" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xL" y="vc" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </mathMultiply>\r
+  <mathNotEqual>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 23520" />\r
+\r
+      <gd name="adj2" fmla="val 6600000" />\r
+\r
+      <gd name="adj3" fmla="val 11760" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a1" fmla="pin 0 adj1 50000" />\r
+      <gd name="crAng" fmla="pin 4200000 adj2 6600000" />\r
+\r
+\r
+      <gd name="2a1" fmla="*/ a1 2 1" />\r
+      <gd name="maxAdj3" fmla="+- 100000 0 2a1" />\r
+      <gd name="a3" fmla="pin 0 adj3 maxAdj3" />\r
+\r
+      <gd name="dy1" fmla="*/ h a1 100000" />\r
+\r
+      <gd name="dy2" fmla="*/ h a3 200000" />\r
+\r
+      <gd name="dx1" fmla="*/ w 73490 200000" />\r
+\r
+\r
+      <gd name="x1" fmla="+- hc 0 dx1" />\r
+\r
+      <gd name="x8" fmla="+- hc dx1 0" />\r
+\r
+\r
+\r
+      <gd name="y2" fmla="+- vc 0 dy2" />\r
+\r
+      <gd name="y3" fmla="+- vc dy2 0" />\r
+\r
+      <gd name="y1" fmla="+- y2 0 dy1" />\r
+\r
+      <gd name="y4" fmla="+- y3 dy1 0" />\r
+\r
+\r
+      <gd name="cadj2" fmla="+- crAng 0 cd4" />\r
+      <gd name="xadj2" fmla="tan hd2 cadj2" />\r
+\r
+\r
+\r
+      <gd name="len" fmla="mod xadj2 hd2 0" />\r
+\r
+\r
+\r
+      <gd name="bhw" fmla="*/ len dy1 hd2" />\r
+\r
+      <gd name="bhw2" fmla="*/ bhw 1 2" />\r
+      <gd name="x7" fmla="+- hc xadj2 bhw2" />\r
+\r
+      <gd name="dx67" fmla="*/ xadj2 y1 hd2" />\r
+      <gd name="x6" fmla="+- x7 0 dx67" />\r
+\r
+      <gd name="dx57" fmla="*/ xadj2 y2 hd2" />\r
+      <gd name="x5" fmla="+- x7 0 dx57" />\r
+\r
+      <gd name="dx47" fmla="*/ xadj2 y3 hd2" />\r
+      <gd name="x4" fmla="+- x7 0 dx47" />\r
+\r
+      <gd name="dx37" fmla="*/ xadj2 y4 hd2" />\r
+      <gd name="x3" fmla="+- x7 0 dx37" />\r
+\r
+      <gd name="dx27" fmla="*/ xadj2 2 1" />\r
+      <gd name="x2" fmla="+- x7 0 dx27" />\r
+\r
+\r
+      <gd name="rx7" fmla="+- x7 bhw 0" />\r
+\r
+      <gd name="rx6" fmla="+- x6 bhw 0" />\r
+\r
+      <gd name="rx5" fmla="+- x5 bhw 0" />\r
+\r
+      <gd name="rx4" fmla="+- x4 bhw 0" />\r
+\r
+      <gd name="rx3" fmla="+- x3 bhw 0" />\r
+\r
+      <gd name="rx2" fmla="+- x2 bhw 0" />\r
+\r
+\r
+\r
+      <gd name="dx7" fmla="*/ dy1 hd2 len" />\r
+      <gd name="rxt" fmla="+- x7 dx7 0" />\r
+\r
+      <gd name="lxt" fmla="+- rx7 0 dx7" />\r
+\r
+      <gd name="rx" fmla="?: cadj2 rxt rx7" />\r
+\r
+      <gd name="lx" fmla="?: cadj2 x7 lxt" />\r
+\r
+\r
+      <gd name="dy3" fmla="*/ dy1 xadj2 len" />\r
+      <gd name="dy4" fmla="+- 0 0 dy3" />\r
+      <gd name="ry" fmla="?: cadj2 dy3 t" />\r
+\r
+      <gd name="ly" fmla="?: cadj2 t dy4" />\r
+\r
+\r
+      <gd name="dlx" fmla="+- w 0 rx" />\r
+\r
+      <gd name="drx" fmla="+- w 0 lx" />\r
+\r
+\r
+      <gd name="dly" fmla="+- h 0 ry" />\r
+\r
+      <gd name="dry" fmla="+- h 0 ly" />\r
+\r
+\r
+\r
+      <gd name="xC1" fmla="+/ rx lx 2" />\r
+\r
+      <gd name="xC2" fmla="+/ drx dlx 2" />\r
+\r
+\r
+      <gd name="yC1" fmla="+/ ry ly 2" />\r
+\r
+      <gd name="yC2" fmla="+/ y1 y2 2" />\r
+\r
+      <gd name="yC3" fmla="+/ y3 y4 2" />\r
+\r
+      <gd name="yC4" fmla="+/ dry dly 2" />\r
+\r
+\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="50000">\r
+        <pos x="l" y="y1" />\r
+      </ahXY>\r
+      <ahPolar gdRefAng="adj2" minAng="4200000" maxAng="6600000">\r
+        <pos x="lx" y="t" />\r
+      </ahPolar>\r
+      <ahXY gdRefY="adj3" minY="0" maxY="maxAdj3">\r
+        <pos x="r" y="y2" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="x8" y="yC2" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x8" y="yC3" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="xC2" y="yC4" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="yC2" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="yC3" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="xC1" y="yC1" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="x1" t="y1" r="x8" b="y4" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="x1" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x6" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="lx" y="ly" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="rx" y="ry" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="rx6" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x8" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x8" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="rx5" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="rx4" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x8" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x8" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="rx3" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="drx" y="dry" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="dlx" y="dly" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x5" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y2" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </mathNotEqual>\r
+  <mathPlus>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 23520" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a1" fmla="pin 0 adj1 73490" />\r
+      <gd name="dx1" fmla="*/ w 73490 200000" />\r
+\r
+      <gd name="dy1" fmla="*/ h 73490 200000" />\r
+\r
+      <gd name="dx2" fmla="*/ ss a1 200000" />\r
+\r
+\r
+      <gd name="x1" fmla="+- hc 0 dx1" />\r
+\r
+      <gd name="x2" fmla="+- hc 0 dx2" />\r
+\r
+      <gd name="x3" fmla="+- hc dx2 0" />\r
+\r
+      <gd name="x4" fmla="+- hc dx1 0" />\r
+\r
+\r
+      <gd name="y1" fmla="+- vc 0 dy1" />\r
+\r
+      <gd name="y2" fmla="+- vc 0 dx2" />\r
+\r
+      <gd name="y3" fmla="+- vc dx2 0" />\r
+\r
+      <gd name="y4" fmla="+- vc dy1 0" />\r
+\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="73490">\r
+        <pos x="l" y="y2" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="x4" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="y4" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="y1" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="x1" t="y2" r="x4" b="y3" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="x1" y="y2" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y3" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </mathPlus>\r
+  <moon>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 50000" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 87500" />\r
+      <gd name="g0" fmla="*/ ss a 100000" />\r
+      <gd name="g0w" fmla="*/ g0 w ss" />\r
+      <gd name="g1" fmla="+- ss 0 g0" />\r
+      <gd name="g2" fmla="*/ g0 g0 g1" />\r
+      <gd name="g3" fmla="*/ ss ss g1" />\r
+      <gd name="g4" fmla="*/ g3 2 1" />\r
+      <gd name="g5" fmla="+- g4 0 g2" />\r
+      <gd name="g6" fmla="+- g5 0 g0" />\r
+      <gd name="g6w" fmla="*/ g6 w ss" />\r
+      <gd name="g7" fmla="*/ g5 1 2" />\r
+      <gd name="g8" fmla="+- g7 0 g0" />\r
+      <gd name="dy1" fmla="*/ g8 hd2 ss" />\r
+\r
+      <gd name="g10h" fmla="+- vc 0 dy1" />\r
+      <gd name="g11h" fmla="+- vc dy1 0" />\r
+      <gd name="g12" fmla="*/ g0 9598 32768" />\r
+      <gd name="g12w" fmla="*/ g12 w ss" />\r
+      <gd name="g13" fmla="+- ss 0 g12" />\r
+      <gd name="q1" fmla="*/ ss ss 1" />\r
+      <gd name="q2" fmla="*/ g13 g13 1" />\r
+      <gd name="q3" fmla="+- q1 0 q2" />\r
+      <gd name="q4" fmla="sqrt q3" />\r
+      <gd name="dy4" fmla="*/ q4 hd2 ss" />\r
+      <gd name="g15h" fmla="+- vc 0 dy4" />\r
+      <gd name="g16h" fmla="+- vc dy4 0" />\r
+      <gd name="g17w" fmla="+- g6w 0 g0w" />\r
+      <gd name="g18w" fmla="*/ g17w 1 2" />\r
+\r
+\r
+      <gd name="dx2p" fmla="+- g0w g18w w" />\r
+      <gd name="dx2" fmla="*/ dx2p -1 1" />\r
+\r
+      <gd name="dy2" fmla="*/ hd2 -1 1" />\r
+\r
+      <gd name="stAng1" fmla="at2 dx2 dy2" />\r
+      <gd name="enAngp1" fmla="at2 dx2 hd2" />\r
+      <gd name="enAng1" fmla="+- enAngp1 0 21600000" />\r
+      <gd name="swAng1" fmla="+- enAng1 0 stAng1" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj" minX="0" maxX="87500">\r
+        <pos x="g0w" y="vc" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="r" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="r" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="g0w" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="g12w" t="g15h" r="g0w" b="g16h" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="r" y="b" />\r
+        </moveTo>\r
+        <arcTo wR="w" hR="hd2" stAng="cd4" swAng="cd2" />\r
+        <arcTo wR="g18w" hR="dy1" stAng="stAng1" swAng="swAng1" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </moon>\r
+  <nonIsoscelesTrapezoid>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 25000" />\r
+\r
+      <gd name="adj2" fmla="val 25000" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj" fmla="*/ 50000 w ss" />\r
+\r
+      <gd name="a1" fmla="pin 0 adj1 maxAdj" />\r
+      <gd name="a2" fmla="pin 0 adj2 maxAdj" />\r
+      <gd name="x1" fmla="*/ ss a1 200000" />\r
+\r
+      <gd name="x2" fmla="*/ ss a1 100000" />\r
+\r
+      <gd name="dx3" fmla="*/ ss a2 100000" />\r
+\r
+      <gd name="x3" fmla="+- r 0 dx3" />\r
+      <gd name="x4" fmla="+/ r x3 2" />\r
+      <gd name="il" fmla="*/ wd3 a1 maxAdj" />\r
+\r
+      <gd name="adjm" fmla="max a1 a2" />\r
+      <gd name="it" fmla="*/ hd3 adjm maxAdj" />\r
+\r
+      <gd name="irt" fmla="*/ wd3 a2 maxAdj" />\r
+      <gd name="ir" fmla="+- r 0 irt" />\r
+\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="0" maxX="maxAdj">\r
+        <pos x="x2" y="t" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="0" maxX="maxAdj">\r
+        <pos x="x3" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="x4" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+\r
+    <rect l="il" t="it" r="ir" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="b" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </nonIsoscelesTrapezoid>\r
+  <noSmoking>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 18750" />\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 50000" />\r
+      <gd name="dr" fmla="*/ ss a 100000" />\r
+      <gd name="iwd2" fmla="+- wd2 0 dr" />\r
+      <gd name="ihd2" fmla="+- hd2 0 dr" />\r
+      <gd name="ang" fmla="at2 w h" />\r
+      <gd name="ct" fmla="cos ihd2 ang" />\r
+      <gd name="st" fmla="sin iwd2 ang" />\r
+      <gd name="m" fmla="mod ct st 0" />\r
+      <gd name="n" fmla="*/ iwd2 ihd2 m" />\r
+      <gd name="drd2" fmla="*/ dr 1 2" />\r
+      <gd name="dang" fmla="at2 n drd2" />\r
+      <gd name="2dang" fmla="*/ dang 2 1" />\r
+      <gd name="swAng" fmla="+- -10800000 2dang 0" />\r
+      <gd name="t3" fmla="at2 w h" />\r
+      <gd name="stAng1" fmla="+- t3 0 dang" />\r
+      <gd name="stAng2" fmla="+- stAng1 0 cd2" />\r
+      <gd name="ct1" fmla="cos ihd2 stAng1" />\r
+      <gd name="st1" fmla="sin iwd2 stAng1" />\r
+      <gd name="m1" fmla="mod ct1 st1 0" />\r
+      <gd name="n1" fmla="*/ iwd2 ihd2 m1" />\r
+      <gd name="dx1" fmla="cos n1 stAng1" />\r
+      <gd name="dy1" fmla="sin n1 stAng1" />\r
+      <gd name="x1" fmla="+- hc dx1 0" />\r
+      <gd name="y1" fmla="+- vc dy1 0" />\r
+      <gd name="x2" fmla="+- hc 0 dx1" />\r
+      <gd name="y2" fmla="+- vc 0 dy1" />\r
+      <gd name="idx" fmla="cos wd2 2700000" />\r
+      <gd name="idy" fmla="sin hd2 2700000" />\r
+      <gd name="il" fmla="+- hc 0 idx" />\r
+      <gd name="ir" fmla="+- hc idx 0" />\r
+      <gd name="it" fmla="+- vc 0 idy" />\r
+      <gd name="ib" fmla="+- vc idy 0" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahPolar gdRefR="adj" minR="0" maxR="50000">\r
+        <pos x="dr" y="vc" />\r
+      </ahPolar>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="il" y="it" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="il" y="ib" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="ir" y="ib" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="ir" y="it" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="vc" />\r
+        </moveTo>\r
+        <arcTo wR="wd2" hR="hd2" stAng="cd2" swAng="cd4" />\r
+        <arcTo wR="wd2" hR="hd2" stAng="3cd4" swAng="cd4" />\r
+        <arcTo wR="wd2" hR="hd2" stAng="0" swAng="cd4" />\r
+        <arcTo wR="wd2" hR="hd2" stAng="cd4" swAng="cd4" />\r
+        <close />\r
+        <moveTo>\r
+          <pt x="x1" y="y1" />\r
+        </moveTo>\r
+        <arcTo wR="iwd2" hR="ihd2" stAng="stAng1" swAng="swAng" />\r
+        <close />\r
+        <moveTo>\r
+          <pt x="x2" y="y2" />\r
+        </moveTo>\r
+        <arcTo wR="iwd2" hR="ihd2" stAng="stAng2" swAng="swAng" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </noSmoking>\r
+  <notchedRightArrow>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 50000" />\r
+\r
+      <gd name="adj2" fmla="val 50000" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj2" fmla="*/ 100000 w ss" />\r
+\r
+      <gd name="a1" fmla="pin 0 adj1 100000" />\r
+      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
+      <gd name="dx2" fmla="*/ ss a2 100000" />\r
+      <gd name="x2" fmla="+- r 0 dx2" />\r
+      <gd name="dy1" fmla="*/ h a1 200000" />\r
+      <gd name="y1" fmla="+- vc 0 dy1" />\r
+      <gd name="y2" fmla="+- vc dy1 0" />\r
+      <gd name="x1" fmla="*/ dy1 dx2 hd2" />\r
+      <gd name="x3" fmla="+- r 0 x1" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="100000">\r
+        <pos x="r" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="0" maxX="maxAdj2">\r
+        <pos x="x2" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="x2" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x2" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="x1" t="y1" r="x3" b="y2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="vc" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </notchedRightArrow>\r
+  <octagon>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 29289" />\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 50000" />\r
+      <gd name="x1" fmla="*/ ss a 100000" />\r
+      <gd name="x2" fmla="+- r 0 x1" />\r
+      <gd name="y2" fmla="+- b 0 x1" />\r
+      <gd name="il" fmla="*/ x1 1 2" />\r
+      <gd name="ir" fmla="+- r 0 il" />\r
+      <gd name="ib" fmla="+- b 0 il" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj" minX="0" maxX="50000">\r
+        <pos x="x1" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="x1" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="y2" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x2" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x1" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="y2" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="x1" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x1" y="t" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x2" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="il" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="x1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="x1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="y2" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </octagon>\r
+  <parallelogram>\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 25000" />\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj" fmla="*/ 100000 w ss" />\r
+      <gd name="a" fmla="pin 0 adj maxAdj" />\r
+      <gd name="x1" fmla="*/ ss a 200000" />\r
+      <gd name="x2" fmla="*/ ss a 100000" />\r
+      <gd name="x6" fmla="+- r 0 x1" />\r
+      <gd name="x5" fmla="+- r 0 x2" />\r
+      <gd name="x3" fmla="*/ x5 1 2" />\r
+      <gd name="x4" fmla="+- r 0 x3" />\r
+      <gd name="il" fmla="*/ wd2 a maxAdj" />\r
+      <gd name="q1" fmla="*/ 5 a maxAdj" />\r
+      <gd name="q2" fmla="+/ 1 q1 12" />\r
+      <gd name="il" fmla="*/ q2 w 1" />\r
+      <gd name="it" fmla="*/ q2 h 1" />\r
+      <gd name="ir" fmla="+- r 0 il" />\r
+      <gd name="ib" fmla="+- b 0 it" />\r
+      <gd name="q3" fmla="*/ h hc x2" />\r
+      <gd name="y1" fmla="pin 0 q3 h" />\r
+      <gd name="y2" fmla="+- b 0 y1" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj" minX="0" maxX="maxAdj">\r
+        <pos x="x2" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="y2" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x4" y="t" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x6" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x3" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="y1" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="b" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x5" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+  </parallelogram>\r
+  <pentagon>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="hf" fmla="val 105146" />\r
+      <gd name="vf" fmla="val 110557" />\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="swd2" fmla="*/ wd2 hf 100000" />\r
+      <gd name="shd2" fmla="*/ hd2 vf 100000" />\r
+      <gd name="svc" fmla="*/ vc  vf 100000" />\r
+      <gd name="dx1" fmla="cos swd2 1080000" />\r
+      <gd name="dx2" fmla="cos swd2 18360000" />\r
+      <gd name="dy1" fmla="sin shd2 1080000" />\r
+      <gd name="dy2" fmla="sin shd2 18360000" />\r
+      <gd name="x1" fmla="+- hc 0 dx1" />\r
+      <gd name="x2" fmla="+- hc 0 dx2" />\r
+      <gd name="x3" fmla="+- hc dx2 0" />\r
+      <gd name="x4" fmla="+- hc dx1 0" />\r
+      <gd name="y1" fmla="+- svc 0 dy1" />\r
+      <gd name="y2" fmla="+- svc 0 dy2" />\r
+      <gd name="it" fmla="*/ y1 dx2 dx1" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="y1" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x2" y="y2" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x3" y="y2" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x4" y="y1" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="x2" t="it" r="x3" b="y2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="x1" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="hc" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </pentagon>\r
+  <pie>\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 0" />\r
+      <gd name="adj2" fmla="val 16200000" />\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="stAng" fmla="pin 0 adj1 21599999" />\r
+      <gd name="enAng" fmla="pin 0 adj2 21599999" />\r
+      <gd name="sw1" fmla="+- enAng 0 stAng" />\r
+      <gd name="sw2" fmla="+- sw1 21600000 0" />\r
+      <gd name="swAng" fmla="?: sw1 sw1 sw2" />\r
+      <gd name="wt1" fmla="sin wd2 stAng" />\r
+      <gd name="ht1" fmla="cos hd2 stAng" />\r
+      <gd name="dx1" fmla="cat2 wd2 ht1 wt1" />\r
+      <gd name="dy1" fmla="sat2 hd2 ht1 wt1" />\r
+      <gd name="x1" fmla="+- hc dx1 0" />\r
+      <gd name="y1" fmla="+- vc dy1 0" />\r
+      <gd name="wt2" fmla="sin wd2 enAng" />\r
+      <gd name="ht2" fmla="cos hd2 enAng" />\r
+      <gd name="dx2" fmla="cat2 wd2 ht2 wt2" />\r
+      <gd name="dy2" fmla="sat2 hd2 ht2 wt2" />\r
+      <gd name="x2" fmla="+- hc dx2 0" />\r
+      <gd name="y2" fmla="+- vc dy2 0" />\r
+      <gd name="idx" fmla="cos wd2 2700000" />\r
+      <gd name="idy" fmla="sin hd2 2700000" />\r
+      <gd name="il" fmla="+- hc 0 idx" />\r
+      <gd name="ir" fmla="+- hc idx 0" />\r
+      <gd name="it" fmla="+- vc 0 idy" />\r
+      <gd name="ib" fmla="+- vc idy 0" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahPolar gdRefAng="adj1" minAng="0" maxAng="21599999">\r
+        <pos x="x1" y="y1" />\r
+      </ahPolar>\r
+      <ahPolar gdRefAng="adj2" minAng="0" maxAng="21599999">\r
+        <pos x="x2" y="y2" />\r
+      </ahPolar>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="il" t="ir" r="it" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="x1" y="y1" />\r
+        </moveTo>\r
+        <arcTo wR="wd2" hR="hd2" stAng="stAng" swAng="swAng" />\r
+        <lnTo>\r
+          <pt x="hc" y="vc" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+  </pie>\r
+  <pieWedge>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="g1" fmla="cos w 13500000" />\r
+      <gd name="g2" fmla="sin h 13500000" />\r
+      <gd name="x1" fmla="+- r g1 0" />\r
+      <gd name="y1" fmla="+- b g2 0" />\r
+    </gdLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="x1" t="y1" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="b" />\r
+        </moveTo>\r
+        <arcTo wR="w" hR="h" stAng="cd2" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+  </pieWedge>\r
+  <plaque>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 16667" />\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 50000" />\r
+      <gd name="x1" fmla="*/ ss a 100000" />\r
+      <gd name="x2" fmla="+- r 0 x1" />\r
+\r
+      <gd name="y2" fmla="+- b 0 x1" />\r
+      <gd name="il" fmla="*/ x1 70711 100000" />\r
+\r
+      <gd name="ir" fmla="+- r 0 il" />\r
+      <gd name="ib" fmla="+- b 0 il" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj" minX="0" maxX="50000">\r
+        <pos x="x1" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="il" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="x1" />\r
+        </moveTo>\r
+        <arcTo wR="x1" hR="x1" stAng="cd4" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="x2" y="t" />\r
+        </lnTo>\r
+        <arcTo wR="x1" hR="x1" stAng="cd2" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="r" y="y2" />\r
+        </lnTo>\r
+        <arcTo wR="x1" hR="x1" stAng="3cd4" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="x1" y="b" />\r
+        </lnTo>\r
+        <arcTo wR="x1" hR="x1" stAng="0" swAng="-5400000" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </plaque>\r
+  <plaqueTabs>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="md" fmla="mod w h 0" />\r
+      <gd name="dx" fmla="*/ 1 md 20" />\r
+\r
+      <gd name="y1" fmla="+- 0 b dx" />\r
+\r
+      <gd name="x1" fmla="+- 0 r dx" />\r
+\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="dx" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="y1" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="b" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="dx" y="t" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x1" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="dx" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x1" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="t" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="dx" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="y1" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="b" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="dx" t="dx" r="x1" b="y1" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="dx" y="t" />\r
+        </lnTo>\r
+        <arcTo wR="dx" hR="dx" stAng="0" swAng="cd4" />\r
+        <close />\r
+      </path>\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="y1" />\r
+        </moveTo>\r
+        <arcTo wR="dx" hR="dx" stAng="3cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path>\r
+        <moveTo>\r
+          <pt x="r" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="dx" />\r
+        </lnTo>\r
+        <arcTo wR="dx" hR="dx" stAng="cd4" swAng="cd4" />\r
+        <close />\r
+      </path>\r
+      <path>\r
+        <moveTo>\r
+          <pt x="x1" y="b" />\r
+        </moveTo>\r
+        <arcTo wR="dx" hR="dx" stAng="cd2" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </plaqueTabs>\r
+  <plus>\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 25000" />\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 50000" />\r
+      <gd name="x1" fmla="*/ ss a 100000" />\r
+      <gd name="x2" fmla="+- r 0 x1" />\r
+      <gd name="y2" fmla="+- b 0 x1" />\r
+      <gd name="d" fmla="+- w 0 h" />\r
+      <gd name="il" fmla="?: d l x1" />\r
+      <gd name="ir" fmla="?: d r x2" />\r
+      <gd name="it" fmla="?: d x1 t" />\r
+      <gd name="ib" fmla="?: d y2 b" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj" minX="0" maxX="50000">\r
+        <pos x="x1" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="x1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="x1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="x1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="x1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="y2" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+  </plus>\r
+  <quadArrow>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 22500" />\r
+\r
+      <gd name="adj2" fmla="val 22500" />\r
+\r
+      <gd name="adj3" fmla="val 22500" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a2" fmla="pin 0 adj2 50000" />\r
+      <gd name="maxAdj1" fmla="*/ a2 2 1" />\r
+      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
+      <gd name="q1" fmla="+- 100000 0 maxAdj1" />\r
+      <gd name="maxAdj3" fmla="*/ q1 1 2" />\r
+      <gd name="a3" fmla="pin 0 adj3 maxAdj3" />\r
+      <gd name="x1" fmla="*/ ss a3 100000" />\r
+      <gd name="dx2" fmla="*/ ss a2 100000" />\r
+\r
+      <gd name="x2" fmla="+- hc 0 dx2" />\r
+      <gd name="x5" fmla="+- hc dx2 0" />\r
+      <gd name="dx3" fmla="*/ ss a1 200000" />\r
+\r
+      <gd name="x3" fmla="+- hc 0 dx3" />\r
+      <gd name="x4" fmla="+- hc dx3 0" />\r
+      <gd name="x6" fmla="+- r 0 x1" />\r
+\r
+      <gd name="y2" fmla="+- vc 0 dx2" />\r
+      <gd name="y5" fmla="+- vc dx2 0" />\r
+      <gd name="y3" fmla="+- vc 0 dx3" />\r
+      <gd name="y4" fmla="+- vc dx3 0" />\r
+      <gd name="y6" fmla="+- b 0 x1" />\r
+      <gd name="il" fmla="*/ dx3 x1 dx2" />\r
+      <gd name="ir" fmla="+- r 0 il" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="0" maxX="maxAdj1">\r
+        <pos x="x3" y="x1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="0" maxX="50000">\r
+        <pos x="x2" y="t" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj3" minY="0" maxY="maxAdj3">\r
+        <pos x="r" y="x1" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="y3" r="ir" b="y4" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="vc" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="x1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="x1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x5" y="x1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="x1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x6" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x6" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x6" y="y5" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x6" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y6" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x5" y="y6" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y6" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y6" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y5" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </quadArrow>\r
+  <quadArrowCallout>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 18515" />\r
+\r
+      <gd name="adj2" fmla="val 18515" />\r
+\r
+      <gd name="adj3" fmla="val 18515" />\r
+\r
+      <gd name="adj4" fmla="val 48123" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a2" fmla="pin 0 adj2 50000" />\r
+      <gd name="maxAdj1" fmla="*/ a2 2 1" />\r
+\r
+      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
+      <gd name="maxAdj3" fmla="+- 50000 0 a2" />\r
+      <gd name="a3" fmla="pin 0 adj3 maxAdj3" />\r
+      <gd name="q2" fmla="*/ a3 2 1" />\r
+\r
+      <gd name="maxAdj4" fmla="+- 100000 0 q2" />\r
+\r
+      <gd name="a4" fmla="pin a1 adj4 maxAdj4" />\r
+      <gd name="dx2" fmla="*/ ss a2 100000" />\r
+\r
+      <gd name="dx3" fmla="*/ ss a1 200000" />\r
+\r
+      <gd name="ah" fmla="*/ ss a3 100000" />\r
+\r
+      <gd name="dx1" fmla="*/ w a4 200000" />\r
+\r
+      <gd name="dy1" fmla="*/ h a4 200000" />\r
+\r
+\r
+      <gd name="x8" fmla="+- r 0 ah" />\r
+      <gd name="x2" fmla="+- hc 0 dx1" />\r
+      <gd name="x7" fmla="+- hc dx1 0" />\r
+      <gd name="x3" fmla="+- hc 0 dx2" />\r
+      <gd name="x6" fmla="+- hc dx2 0" />\r
+      <gd name="x4" fmla="+- hc 0 dx3" />\r
+      <gd name="x5" fmla="+- hc dx3 0" />\r
+\r
+      <gd name="y8" fmla="+- b 0 ah" />\r
+      <gd name="y2" fmla="+- vc 0 dy1" />\r
+      <gd name="y7" fmla="+- vc dy1 0" />\r
+      <gd name="y3" fmla="+- vc 0 dx2" />\r
+      <gd name="y6" fmla="+- vc dx2 0" />\r
+      <gd name="y4" fmla="+- vc 0 dx3" />\r
+      <gd name="y5" fmla="+- vc dx3 0" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="0" maxX="maxAdj1">\r
+        <pos x="x4" y="ah" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="0" maxX="50000">\r
+        <pos x="x3" y="t" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj3" minY="0" maxY="maxAdj3">\r
+        <pos x="r" y="ah" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj4" minY="a1" maxY="maxAdj4">\r
+        <pos x="l" y="y2" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="x2" t="y2" r="x7" b="y7" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="vc" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="ah" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="ah" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="ah" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="ah" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x6" y="ah" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x5" y="ah" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x5" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x7" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x7" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x8" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x8" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x8" y="y6" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x8" y="y5" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x7" y="y5" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x7" y="y7" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x5" y="y7" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x5" y="y8" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x6" y="y8" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y8" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y8" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y7" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y7" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y5" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="ah" y="y5" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="ah" y="y6" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </quadArrowCallout>\r
+  <rect>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+  </rect>\r
+  <ribbon>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 16667" />\r
+\r
+      <gd name="adj2" fmla="val 50000" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a1" fmla="pin 0 adj1 33333" />\r
+      <gd name="a2" fmla="pin 25000 adj2 75000" />\r
+\r
+\r
+      <gd name="x10" fmla="+- r 0 wd8" />\r
+\r
+      <gd name="dx2" fmla="*/ w a2 200000" />\r
+\r
+      <gd name="x2" fmla="+- hc 0 dx2" />\r
+\r
+      <gd name="x9" fmla="+- hc dx2 0" />\r
+\r
+      <gd name="x3" fmla="+- x2 wd32 0" />\r
+      <gd name="x8" fmla="+- x9 0 wd32" />\r
+      <gd name="x5" fmla="+- x2 wd8 0" />\r
+\r
+      <gd name="x6" fmla="+- x9 0 wd8" />\r
+\r
+      <gd name="x4" fmla="+- x5 0 wd32" />\r
+      <gd name="x7" fmla="+- x6 wd32 0" />\r
+      <gd name="y1" fmla="*/ h a1 200000" />\r
+\r
+      <gd name="y2" fmla="*/ h a1 100000" />\r
+\r
+      <gd name="y4" fmla="+- b 0 y2" />\r
+\r
+      <gd name="y3" fmla="*/ y4 1 2" />\r
+\r
+      <gd name="hR" fmla="*/ h a1 400000" />\r
+\r
+      <gd name="y5" fmla="+- b 0 hR" />\r
+      <gd name="y6" fmla="+- y2 0 hR" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="33333">\r
+        <pos x="hc" y="y2" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="25000" maxX="75000">\r
+        <pos x="x2" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="y2" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="wd8" y="y3" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x10" y="y3" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="x2" t="y2" r="x9" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x4" y="t" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="cd2" />\r
+        <lnTo>\r
+          <pt x="x3" y="y1" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="-10800000" />\r
+        <lnTo>\r
+          <pt x="x8" y="y2" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="cd4" swAng="-10800000" />\r
+        <lnTo>\r
+          <pt x="x7" y="y1" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="cd4" swAng="cd2" />\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x10" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x9" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x9" y="y5" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="0" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x3" y="b" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x2" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="wd8" y="y3" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path stroke="false" fill="darkenLess" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="x5" y="hR" />\r
+        </moveTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="0" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x3" y="y1" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="-10800000" />\r
+        <lnTo>\r
+          <pt x="x5" y="y2" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="x6" y="hR" />\r
+        </moveTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="cd2" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="x8" y="y1" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="cd2" />\r
+        <lnTo>\r
+          <pt x="x6" y="y2" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x4" y="t" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="cd2" />\r
+        <lnTo>\r
+          <pt x="x3" y="y1" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="-10800000" />\r
+        <lnTo>\r
+          <pt x="x8" y="y2" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="cd4" swAng="-10800000" />\r
+        <lnTo>\r
+          <pt x="x7" y="y1" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="cd4" swAng="cd2" />\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x10" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x9" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x9" y="y5" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="0" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x3" y="b" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x2" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="wd8" y="y3" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="x5" y="hR" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x5" y="y2" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="x6" y="y2" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x6" y="hR" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="x2" y="y4" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y6" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="x9" y="y6" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x9" y="y4" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+\r
+  </ribbon>\r
+  <ribbon2>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 16667" />\r
+\r
+      <gd name="adj2" fmla="val 50000" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a1" fmla="pin 0 adj1 33333" />\r
+      <gd name="a2" fmla="pin 25000 adj2 75000" />\r
+\r
+\r
+      <gd name="x10" fmla="+- r 0 wd8" />\r
+\r
+      <gd name="dx2" fmla="*/ w a2 200000" />\r
+\r
+      <gd name="x2" fmla="+- hc 0 dx2" />\r
+\r
+      <gd name="x9" fmla="+- hc dx2 0" />\r
+\r
+      <gd name="x3" fmla="+- x2 wd32 0" />\r
+      <gd name="x8" fmla="+- x9 0 wd32" />\r
+      <gd name="x5" fmla="+- x2 wd8 0" />\r
+\r
+      <gd name="x6" fmla="+- x9 0 wd8" />\r
+\r
+      <gd name="x4" fmla="+- x5 0 wd32" />\r
+      <gd name="x7" fmla="+- x6 wd32 0" />\r
+      <gd name="dy1" fmla="*/ h a1 200000" />\r
+\r
+      <gd name="y1" fmla="+- b 0 dy1" />\r
+      <gd name="dy2" fmla="*/ h a1 100000" />\r
+\r
+      <gd name="y2" fmla="+- b 0 dy2" />\r
+      <gd name="y4" fmla="+- t dy2 0" />\r
+\r
+      <gd name="y3" fmla="+/ y4 b 2" />\r
+\r
+      <gd name="hR" fmla="*/ h a1 400000" />\r
+\r
+\r
+      <gd name="y6" fmla="+- b 0 hR" />\r
+      <gd name="y7" fmla="+- y1 0 hR" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="33333">\r
+        <pos x="hc" y="y2" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="25000" maxX="75000">\r
+        <pos x="x2" y="b" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="wd8" y="y3" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="y2" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x10" y="y3" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="x2" t="t" r="x9" b="y2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="l" y="b" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x4" y="b" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="cd4" swAng="-10800000" />\r
+        <lnTo>\r
+          <pt x="x3" y="y1" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="cd4" swAng="cd2" />\r
+        <lnTo>\r
+          <pt x="x8" y="y2" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="cd2" />\r
+        <lnTo>\r
+          <pt x="x7" y="y1" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="-10800000" />\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x10" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x9" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x9" y="hR" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="0" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="x3" y="t" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="x2" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="wd8" y="y3" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path stroke="false" fill="darkenLess" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="x5" y="y6" />\r
+        </moveTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="0" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="x3" y="y1" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="cd4" swAng="cd2" />\r
+        <lnTo>\r
+          <pt x="x5" y="y2" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="x6" y="y6" />\r
+        </moveTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="cd2" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x8" y="y1" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="cd4" swAng="-10800000" />\r
+        <lnTo>\r
+          <pt x="x6" y="y2" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="l" y="b" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="wd8" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="hR" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="cd2" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x8" y="t" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x9" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x9" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x10" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x7" y="b" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="cd4" swAng="cd2" />\r
+        <lnTo>\r
+          <pt x="x8" y="y1" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="cd4" swAng="-10800000" />\r
+        <lnTo>\r
+          <pt x="x3" y="y2" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="-10800000" />\r
+        <lnTo>\r
+          <pt x="x4" y="y1" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="cd2" />\r
+        <close />\r
+        <moveTo>\r
+          <pt x="x5" y="y2" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x5" y="y6" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="x6" y="y6" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x6" y="y2" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="x2" y="y7" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y4" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="x9" y="y4" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x9" y="y7" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+\r
+  </ribbon2>\r
+  <rightArrow>\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 50000" />\r
+      <gd name="adj2" fmla="val 50000" />\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj2" fmla="*/ 100000 w ss" />\r
+      <gd name="a1" fmla="pin 0 adj1 100000" />\r
+      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
+      <gd name="dx1" fmla="*/ ss a2 100000" />\r
+      <gd name="x1" fmla="+- r 0 dx1" />\r
+      <gd name="dy1" fmla="*/ h a1 200000" />\r
+      <gd name="y1" fmla="+- vc 0 dy1" />\r
+      <gd name="y2" fmla="+- vc dy1 0" />\r
+      <gd name="dx2" fmla="*/ y1 dx1 hd2" />\r
+      <gd name="x2" fmla="+- x1 dx2 0" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="100000">\r
+        <pos x="l" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="0" maxX="maxAdj2">\r
+        <pos x="x1" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="x1" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x1" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="l" t="y1" r="x2" b="y2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="y2" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+  </rightArrow>\r
+  <rightArrowCallout>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 25000" />\r
+\r
+      <gd name="adj2" fmla="val 25000" />\r
+\r
+      <gd name="adj3" fmla="val 25000" />\r
+\r
+      <gd name="adj4" fmla="val 64977" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj2" fmla="*/ 50000 h ss" />\r
+\r
+      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
+      <gd name="maxAdj1" fmla="*/ a2 2 1" />\r
+\r
+      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
+      <gd name="maxAdj3" fmla="*/ 100000 w ss" />\r
+\r
+      <gd name="a3" fmla="pin 0 adj3 maxAdj3" />\r
+      <gd name="q2" fmla="*/ a3 ss w" />\r
+\r
+      <gd name="maxAdj4" fmla="+- 100000 0 q2" />\r
+\r
+      <gd name="a4" fmla="pin 0 adj4 maxAdj4" />\r
+      <gd name="dy1" fmla="*/ ss a2 100000" />\r
+\r
+      <gd name="dy2" fmla="*/ ss a1 200000" />\r
+\r
+      <gd name="y1" fmla="+- vc 0 dy1" />\r
+      <gd name="y2" fmla="+- vc 0 dy2" />\r
+      <gd name="y3" fmla="+- vc dy2 0" />\r
+      <gd name="y4" fmla="+- vc dy1 0" />\r
+      <gd name="dx3" fmla="*/ ss a3 100000" />\r
+\r
+      <gd name="x3" fmla="+- r 0 dx3" />\r
+      <gd name="x2" fmla="*/ w a4 100000" />\r
+\r
+      <gd name="x1" fmla="*/ x2 1 2" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="maxAdj1">\r
+        <pos x="x3" y="y2" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj2" minY="0" maxY="maxAdj2">\r
+        <pos x="r" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj3" minX="0" maxX="maxAdj3">\r
+        <pos x="x3" y="t" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj4" minX="0" maxX="maxAdj4">\r
+        <pos x="x2" y="b" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="x1" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x1" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="t" r="x2" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </rightArrowCallout>\r
+  <rightBrace>\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 8333" />\r
+      <gd name="adj2" fmla="val 50000" />\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a2" fmla="pin 0 adj2 100000" />\r
+      <gd name="q1" fmla="+- 100000 0 a2" />\r
+      <gd name="q2" fmla="min q1 a2" />\r
+      <gd name="q3" fmla="*/ q2 1 2" />\r
+      <gd name="maxAdj1" fmla="*/ q3 h ss" />\r
+      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
+      <gd name="y1" fmla="*/ ss a1 100000" />\r
+      <gd name="y3" fmla="*/ h a2 100000" />\r
+      <gd name="y2" fmla="+- y3 0 y1" />\r
+      <gd name="y4" fmla="+- b 0 y1" />\r
+      <gd name="dx1" fmla="cos wd2 2700000" />\r
+      <gd name="dy1" fmla="sin y1 2700000" />\r
+      <gd name="ir" fmla="+- l dx1 0" />\r
+      <gd name="it" fmla="+- y1 0 dy1" />\r
+      <gd name="ib" fmla="+- b dy1 y1" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="maxAdj1">\r
+        <pos x="hc" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj2" minY="0" maxY="100000">\r
+        <pos x="r" y="y3" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="cd4">\r
+        <pos x="l" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="r" y="y3" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="l" y="b" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="l" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <arcTo wR="wd2" hR="y1" stAng="3cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="hc" y="y2" />\r
+        </lnTo>\r
+        <arcTo wR="wd2" hR="y1" stAng="cd2" swAng="-5400000" />\r
+        <arcTo wR="wd2" hR="y1" stAng="3cd4" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="hc" y="y4" />\r
+        </lnTo>\r
+        <arcTo wR="wd2" hR="y1" stAng="0" swAng="cd4" />\r
+        <close />\r
+      </path>\r
+      <path fill="none">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <arcTo wR="wd2" hR="y1" stAng="3cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="hc" y="y2" />\r
+        </lnTo>\r
+        <arcTo wR="wd2" hR="y1" stAng="cd2" swAng="-5400000" />\r
+        <arcTo wR="wd2" hR="y1" stAng="3cd4" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="hc" y="y4" />\r
+        </lnTo>\r
+        <arcTo wR="wd2" hR="y1" stAng="0" swAng="cd4" />\r
+      </path>\r
+    </pathLst>\r
+  </rightBrace>\r
+  <rightBracket>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 8333" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj" fmla="*/ 50000 h ss" />\r
+\r
+      <gd name="a" fmla="pin 0 adj maxAdj" />\r
+      <gd name="y1" fmla="*/ ss a 100000" />\r
+\r
+      <gd name="y2" fmla="+- b 0 y1" />\r
+\r
+      <gd name="dx1" fmla="cos w 2700000" />\r
+      <gd name="dy1" fmla="sin y1 2700000" />\r
+      <gd name="ir" fmla="+- l dx1 0" />\r
+      <gd name="it" fmla="+- y1 0 dy1" />\r
+      <gd name="ib" fmla="+- b dy1 y1" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj" minY="0" maxY="maxAdj">\r
+        <pos x="r" y="y1" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="cd4">\r
+        <pos x="l" y="t" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="l" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <arcTo wR="w" hR="y1" stAng="3cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="r" y="y2" />\r
+        </lnTo>\r
+        <arcTo wR="w" hR="y1" stAng="0" swAng="cd4" />\r
+        <close />\r
+      </path>\r
+      <path fill="none">\r
+\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <arcTo wR="w" hR="y1" stAng="3cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="r" y="y2" />\r
+        </lnTo>\r
+        <arcTo wR="w" hR="y1" stAng="0" swAng="cd4" />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </rightBracket>\r
+  <round1Rect>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 16667" />\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 50000" />\r
+      <gd name="dx1" fmla="*/ ss a 100000" />\r
+      <gd name="x1" fmla="+- r 0 dx1" />\r
+      <gd name="idx" fmla="*/ dx1 29289 100000" />\r
+      <gd name="ir" fmla="+- r 0 idx" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj" minX="0" maxX="50000">\r
+        <pos x="x1" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="t" r="ir" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="t" />\r
+        </lnTo>\r
+        <arcTo wR="dx1" hR="dx1" stAng="3cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </round1Rect>\r
+  <round2DiagRect>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 16667" />\r
+      <gd name="adj2" fmla="val 0" />\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a1" fmla="pin 0 adj1 50000" />\r
+      <gd name="a2" fmla="pin 0 adj2 50000" />\r
+      <gd name="x1" fmla="*/ ss a1 100000" />\r
+      <gd name="y1" fmla="+- b 0 x1" />\r
+      <gd name="a" fmla="*/ ss a2 100000" />\r
+      <gd name="x2" fmla="+- r 0 a" />\r
+      <gd name="y2" fmla="+- b 0 a" />\r
+      <gd name="dx1" fmla="*/ x1 29289 100000" />\r
+      <gd name="dx2" fmla="*/ a 29289 100000" />\r
+      <gd name="d" fmla="+- dx1 0 dx2" />\r
+      <gd name="dx" fmla="?: d dx1 dx2" />\r
+      <gd name="ir" fmla="+- r 0 dx" />\r
+      <gd name="ib" fmla="+- b 0 dx" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="0" maxX="50000">\r
+        <pos x="x1" y="t" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="0" maxX="50000">\r
+        <pos x="x2" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="dx" t="dx" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="x1" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="t" />\r
+        </lnTo>\r
+        <arcTo wR="a" hR="a" stAng="3cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="r" y="y1" />\r
+        </lnTo>\r
+        <arcTo wR="x1" hR="x1" stAng="0" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="a" y="b" />\r
+        </lnTo>\r
+        <arcTo wR="a" hR="a" stAng="cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="l" y="x1" />\r
+        </lnTo>\r
+        <arcTo wR="x1" hR="x1" stAng="cd2" swAng="cd4" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </round2DiagRect>\r
+  <round2SameRect>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 16667" />\r
+      <gd name="adj2" fmla="val 0" />\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a1" fmla="pin 0 adj1 50000" />\r
+      <gd name="a2" fmla="pin 0 adj2 50000" />\r
+\r
+      <gd name="tx1" fmla="*/ ss a1 100000" />\r
+      <gd name="tx2" fmla="+- r 0 tx1" />\r
+\r
+      <gd name="bx1" fmla="*/ ss a2 100000" />\r
+      <gd name="bx2" fmla="+- r 0 bx1" />\r
+      <gd name="by1" fmla="+- b 0 bx1" />\r
+      <gd name="d" fmla="+- tx1 0 bx1" />\r
+      <gd name="tdx" fmla="*/ tx1 29289 100000" />\r
+      <gd name="bdx" fmla="*/ bx1 29289 100000" />\r
+      <gd name="il" fmla="?: d tdx bdx" />\r
+      <gd name="ir" fmla="+- r 0 il" />\r
+      <gd name="ib" fmla="+- b 0 bdx" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="0" maxX="50000">\r
+        <pos x="tx2" y="t" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="0" maxX="50000">\r
+        <pos x="bx1" y="b" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="tdx" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="tx1" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="tx2" y="t" />\r
+        </lnTo>\r
+        <arcTo wR="tx1" hR="tx1" stAng="3cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="r" y="by1" />\r
+        </lnTo>\r
+        <arcTo wR="bx1" hR="bx1" stAng="0" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="bx1" y="b" />\r
+        </lnTo>\r
+        <arcTo wR="bx1" hR="bx1" stAng="cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="l" y="tx1" />\r
+        </lnTo>\r
+        <arcTo wR="tx1" hR="tx1" stAng="cd2" swAng="cd4" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </round2SameRect>\r
+  <roundRect>\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 16667" />\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 50000" />\r
+      <gd name="x1" fmla="*/ ss a 100000" />\r
+      <gd name="x2" fmla="+- r 0 x1" />\r
+      <gd name="y2" fmla="+- b 0 x1" />\r
+      <gd name="il" fmla="*/ x1 29289 100000" />\r
+      <gd name="ir" fmla="+- r 0 il" />\r
+      <gd name="ib" fmla="+- b 0 il" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj" minX="0" maxX="50000">\r
+        <pos x="x1" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="il" t="il" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="x1" />\r
+        </moveTo>\r
+        <arcTo wR="x1" hR="x1" stAng="cd2" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x2" y="t" />\r
+        </lnTo>\r
+        <arcTo wR="x1" hR="x1" stAng="3cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="r" y="y2" />\r
+        </lnTo>\r
+        <arcTo wR="x1" hR="x1" stAng="0" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x1" y="b" />\r
+        </lnTo>\r
+        <arcTo wR="x1" hR="x1" stAng="cd4" swAng="cd4" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+  </roundRect>\r
+  <rtTriangle>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="it" fmla="*/ h 7 12" />\r
+      <gd name="ir" fmla="*/ w 7 12" />\r
+      <gd name="ib" fmla="*/ h 11 12" />\r
+    </gdLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="l" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="l" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="r" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="hc" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="wd12" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="b" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="l" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+  </rtTriangle>\r
+  <smileyFace>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 4653" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin -4653 adj 4653" />\r
+      <gd name="x1" fmla="*/ w 4969 21699" />\r
+\r
+      <gd name="x2" fmla="*/ w 6215 21600" />\r
+\r
+      <gd name="x3" fmla="*/ w 13135 21600" />\r
+\r
+      <gd name="x4" fmla="*/ w 16640 21600" />\r
+\r
+      <gd name="y1" fmla="*/ h 7570 21600" />\r
+\r
+      <gd name="y3" fmla="*/ h 16515 21600" />\r
+\r
+      <gd name="dy2" fmla="*/ h a 100000" />\r
+\r
+      <gd name="y2" fmla="+- y3 0 dy2" />\r
+\r
+      <gd name="y4" fmla="+- y3 dy2 0" />\r
+\r
+      <gd name="dy3" fmla="*/ h a 50000" />\r
+\r
+      <gd name="y5" fmla="+- y4 dy3 0" />\r
+      <gd name="idx" fmla="cos wd2 2700000" />\r
+      <gd name="idy" fmla="sin hd2 2700000" />\r
+      <gd name="il" fmla="+- hc 0 idx" />\r
+      <gd name="ir" fmla="+- hc idx 0" />\r
+      <gd name="it" fmla="+- vc 0 idy" />\r
+      <gd name="ib" fmla="+- vc idy 0" />\r
+      <gd name="wR" fmla="*/ w 1125 21600" />\r
+      <gd name="hR" fmla="*/ h 1125 21600" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj" minY="-4653" maxY="4653">\r
+        <pos x="hc" y="y4" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="il" y="it" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="il" y="ib" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="ir" y="ib" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="ir" y="it" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="l" y="vc" />\r
+        </moveTo>\r
+        <arcTo wR="wd2" hR="hd2" stAng="cd2" swAng="21600000" />\r
+        <close />\r
+      </path>\r
+      <path fill="darkenLess" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="x2" y="y1" />\r
+        </moveTo>\r
+        <arcTo wR="wR" hR="hR" stAng="cd2" swAng="21600000" />\r
+        <moveTo>\r
+          <pt x="x3" y="y1" />\r
+        </moveTo>\r
+        <arcTo wR="wR" hR="hR" stAng="cd2" swAng="21600000" />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="x1" y="y2" />\r
+        </moveTo>\r
+        <quadBezTo>\r
+          <pt x="hc" y="y5" />\r
+          <pt x="x4" y="y2" />\r
+        </quadBezTo>\r
+      </path>\r
+      <path fill="none">\r
+\r
+        <moveTo>\r
+          <pt x="l" y="vc" />\r
+        </moveTo>\r
+        <arcTo wR="wd2" hR="hd2" stAng="cd2" swAng="21600000" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </smileyFace>\r
+  <snip1Rect>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 16667" />\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 50000" />\r
+      <gd name="dx1" fmla="*/ ss a 100000" />\r
+      <gd name="x1" fmla="+- r 0 dx1" />\r
+      <gd name="it" fmla="*/ dx1 1 2" />\r
+      <gd name="ir" fmla="+/ x1 r 2" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj" minX="0" maxX="50000">\r
+        <pos x="x1" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="it" r="ir" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="dx1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </snip1Rect>\r
+  <snip2DiagRect>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 0" />\r
+      <gd name="adj2" fmla="val 16667" />\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a1" fmla="pin 0 adj1 50000" />\r
+      <gd name="a2" fmla="pin 0 adj2 50000" />\r
+      <gd name="lx1" fmla="*/ ss a1 100000" />\r
+      <gd name="lx2" fmla="+- r 0 lx1" />\r
+      <gd name="ly1" fmla="+- b 0 lx1" />\r
+      <gd name="rx1" fmla="*/ ss a2 100000" />\r
+      <gd name="rx2" fmla="+- r 0 rx1" />\r
+      <gd name="ry1" fmla="+- b 0 rx1" />\r
+      <gd name="d" fmla="+- lx1 0 rx1" />\r
+      <gd name="dx" fmla="?: d lx1 rx1" />\r
+      <gd name="il" fmla="*/ dx 1 2" />\r
+\r
+      <gd name="ir" fmla="+- r 0 il" />\r
+      <gd name="ib" fmla="+- b 0 il" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="0" maxX="50000">\r
+        <pos x="lx1" y="t" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="0" maxX="50000">\r
+        <pos x="rx2" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="il" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="lx1" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="rx2" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="rx1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="ly1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="lx2" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="rx1" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="ry1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="lx1" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </snip2DiagRect>\r
+  <snip2SameRect>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 16667" />\r
+      <gd name="adj2" fmla="val 0" />\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a1" fmla="pin 0 adj1 50000" />\r
+      <gd name="a2" fmla="pin 0 adj2 50000" />\r
+      <gd name="tx1" fmla="*/ ss a1 100000" />\r
+      <gd name="tx2" fmla="+- r 0 tx1" />\r
+      <gd name="bx1" fmla="*/ ss a2 100000" />\r
+      <gd name="bx2" fmla="+- r 0 bx1" />\r
+      <gd name="by1" fmla="+- b 0 bx1" />\r
+      <gd name="d" fmla="+- tx1 0 bx1" />\r
+      <gd name="dx" fmla="?: d tx1 bx1" />\r
+      <gd name="il" fmla="*/ dx 1 2" />\r
+      <gd name="ir" fmla="+- r 0 il" />\r
+      <gd name="it" fmla="*/ tx1 1 2" />\r
+      <gd name="ib" fmla="+/ by1 b 2" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="0" maxX="50000">\r
+        <pos x="tx2" y="t" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="0" maxX="50000">\r
+        <pos x="bx1" y="b" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="tx1" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="tx2" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="tx1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="by1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="bx2" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="bx1" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="by1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="tx1" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </snip2SameRect>\r
+  <snipRoundRect>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 16667" />\r
+      <gd name="adj2" fmla="val 16667" />\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a1" fmla="pin 0 adj1 50000" />\r
+      <gd name="a2" fmla="pin 0 adj2 50000" />\r
+      <gd name="x1" fmla="*/ ss a1 100000" />\r
+      <gd name="dx2" fmla="*/ ss a2 100000" />\r
+      <gd name="x2" fmla="+- r 0 dx2" />\r
+      <gd name="il" fmla="*/ x1 29289 100000" />\r
+\r
+      <gd name="ir" fmla="+/ x2 r 2" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="0" maxX="50000">\r
+        <pos x="x1" y="t" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="0" maxX="50000">\r
+        <pos x="x2" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="il" r="ir" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="x1" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="dx2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="x1" />\r
+        </lnTo>\r
+        <arcTo wR="x1" hR="x1" stAng="cd2" swAng="cd4" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </snipRoundRect>\r
+  <squareTabs>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="md" fmla="mod w h 0" />\r
+      <gd name="dx" fmla="*/ 1 md 20" />\r
+\r
+      <gd name="y1" fmla="+- 0 b dx" />\r
+\r
+      <gd name="x1" fmla="+- 0 r dx" />\r
+\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="dx" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="y1" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="dx" y="dx" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="dx" y="x1" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="dx" y="t" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x1" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="dx" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x1" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="t" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="dx" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="y1" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x1" y="dx" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x1" y="y1" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="dx" t="dx" r="x1" b="y1" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="dx" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="dx" y="dx" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="dx" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="dx" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="dx" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path>\r
+        <moveTo>\r
+          <pt x="x1" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="dx" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="dx" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path>\r
+        <moveTo>\r
+          <pt x="x1" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </squareTabs>\r
+  <star10>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 42533" />\r
+      <gd name="hf" fmla="val 105146" />\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 50000" />\r
+      <gd name="swd2" fmla="*/ wd2 hf 100000" />\r
+      <gd name="dx1" fmla="*/ swd2 95106 100000" />\r
+      <gd name="dx2" fmla="*/ swd2 58779 100000" />\r
+      <gd name="x1" fmla="+- hc 0 dx1" />\r
+      <gd name="x2" fmla="+- hc 0 dx2" />\r
+      <gd name="x3" fmla="+- hc dx2 0" />\r
+      <gd name="x4" fmla="+- hc dx1 0" />\r
+      <gd name="dy1" fmla="*/ hd2 80902 100000" />\r
+      <gd name="dy2" fmla="*/ hd2 30902 100000" />\r
+      <gd name="y1" fmla="+- vc 0 dy1" />\r
+      <gd name="y2" fmla="+- vc 0 dy2" />\r
+      <gd name="y3" fmla="+- vc dy2 0" />\r
+      <gd name="y4" fmla="+- vc dy1 0" />\r
+      <gd name="iwd2" fmla="*/ swd2 a 50000" />\r
+      <gd name="ihd2" fmla="*/ hd2 a 50000" />\r
+      <gd name="sdx1" fmla="*/ iwd2 80902 100000" />\r
+      <gd name="sdx2" fmla="*/ iwd2 30902 100000" />\r
+      <gd name="sdy1" fmla="*/ ihd2 95106 100000" />\r
+      <gd name="sdy2" fmla="*/ ihd2 58779 100000" />\r
+      <gd name="sx1" fmla="+- hc 0 iwd2" />\r
+      <gd name="sx2" fmla="+- hc 0 sdx1" />\r
+      <gd name="sx3" fmla="+- hc 0 sdx2" />\r
+      <gd name="sx4" fmla="+- hc sdx2 0" />\r
+      <gd name="sx5" fmla="+- hc sdx1 0" />\r
+      <gd name="sx6" fmla="+- hc iwd2 0" />\r
+      <gd name="sy1" fmla="+- vc 0 sdy1" />\r
+      <gd name="sy2" fmla="+- vc 0 sdy2" />\r
+      <gd name="sy3" fmla="+- vc sdy2 0" />\r
+      <gd name="sy4" fmla="+- vc sdy1 0" />\r
+      <gd name="yAdj" fmla="+- vc 0 ihd2" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj" minY="0" maxY="50000">\r
+        <pos x="hc" y="yAdj" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="x4" y="y2" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x4" y="y3" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x3" y="y4" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x2" y="y4" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="y3" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="y2" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x2" y="y1" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x3" y="y1" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="sx2" t="sy2" r="sx5" b="sy3" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="x1" y="y2" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="sx2" y="sy2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx3" y="sy1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx4" y="sy1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx5" y="sy2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx6" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx5" y="sy3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx4" y="sy4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx3" y="sy4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx2" y="sy3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx1" y="vc" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </star10>\r
+  <star12>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 37500" />\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 50000" />\r
+      <gd name="dx1" fmla="cos wd2 1800000" />\r
+\r
+      <gd name="dy1" fmla="sin hd2 3600000" />\r
+\r
+      <gd name="x1" fmla="+- hc 0 dx1" />\r
+      <gd name="x3" fmla="*/ w 3 4" />\r
+      <gd name="x4" fmla="+- hc dx1 0" />\r
+      <gd name="y1" fmla="+- vc 0 dy1" />\r
+      <gd name="y3" fmla="*/ h 3 4" />\r
+      <gd name="y4" fmla="+- vc dy1 0" />\r
+      <gd name="iwd2" fmla="*/ wd2 a 50000" />\r
+      <gd name="ihd2" fmla="*/ hd2 a 50000" />\r
+      <gd name="sdx1" fmla="cos iwd2 900000" />\r
+      <gd name="sdx2" fmla="cos iwd2 2700000" />\r
+      <gd name="sdx3" fmla="cos iwd2 4500000" />\r
+      <gd name="sdy1" fmla="sin ihd2 4500000" />\r
+      <gd name="sdy2" fmla="sin ihd2 2700000" />\r
+      <gd name="sdy3" fmla="sin ihd2 900000" />\r
+      <gd name="sx1" fmla="+- hc 0 sdx1" />\r
+      <gd name="sx2" fmla="+- hc 0 sdx2" />\r
+      <gd name="sx3" fmla="+- hc 0 sdx3" />\r
+      <gd name="sx4" fmla="+- hc sdx3 0" />\r
+      <gd name="sx5" fmla="+- hc sdx2 0" />\r
+      <gd name="sx6" fmla="+- hc sdx1 0" />\r
+      <gd name="sy1" fmla="+- vc 0 sdy1" />\r
+      <gd name="sy2" fmla="+- vc 0 sdy2" />\r
+      <gd name="sy3" fmla="+- vc 0 sdy3" />\r
+      <gd name="sy4" fmla="+- vc sdy3 0" />\r
+      <gd name="sy5" fmla="+- vc sdy2 0" />\r
+      <gd name="sy6" fmla="+- vc sdy1 0" />\r
+      <gd name="yAdj" fmla="+- vc 0 ihd2" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj" minY="0" maxY="50000">\r
+        <pos x="hc" y="yAdj" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="x4" y="hd4" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x4" y="y3" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x3" y="y4" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="wd4" y="y4" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="y3" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="hd4" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="wd4" y="y1" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x3" y="y1" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="sx2" t="sy2" r="sx5" b="sy5" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="vc" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="sx1" y="sy3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="hd4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx2" y="sy2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="wd4" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx3" y="sy1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx4" y="sy1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx5" y="sy2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="hd4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx6" y="sy3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx6" y="sy4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx5" y="sy5" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx4" y="sy6" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx3" y="sy6" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="wd4" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx2" y="sy5" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx1" y="sy4" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </star12>\r
+  <star16>\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 37500" />\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 50000" />\r
+      <gd name="dx1" fmla="*/ wd2 92388 100000" />\r
+      <gd name="dx2" fmla="*/ wd2 70711 100000" />\r
+      <gd name="dx3" fmla="*/ wd2 38268 100000" />\r
+      <gd name="dy1" fmla="*/ hd2 92388 100000" />\r
+      <gd name="dy2" fmla="*/ hd2 70711 100000" />\r
+      <gd name="dy3" fmla="*/ hd2 38268 100000" />\r
+      <gd name="x1" fmla="+- hc 0 dx1" />\r
+      <gd name="x2" fmla="+- hc 0 dx2" />\r
+      <gd name="x3" fmla="+- hc 0 dx3" />\r
+      <gd name="x4" fmla="+- hc dx3 0" />\r
+      <gd name="x5" fmla="+- hc dx2 0" />\r
+      <gd name="x6" fmla="+- hc dx1 0" />\r
+      <gd name="y1" fmla="+- vc 0 dy1" />\r
+      <gd name="y2" fmla="+- vc 0 dy2" />\r
+      <gd name="y3" fmla="+- vc 0 dy3" />\r
+      <gd name="y4" fmla="+- vc dy3 0" />\r
+      <gd name="y5" fmla="+- vc dy2 0" />\r
+      <gd name="y6" fmla="+- vc dy1 0" />\r
+      <gd name="iwd2" fmla="*/ wd2 a 50000" />\r
+      <gd name="ihd2" fmla="*/ hd2 a 50000" />\r
+      <gd name="sdx1" fmla="*/ iwd2 98079 100000" />\r
+      <gd name="sdx2" fmla="*/ iwd2 83147 100000" />\r
+      <gd name="sdx3" fmla="*/ iwd2 55557 100000" />\r
+      <gd name="sdx4" fmla="*/ iwd2 19509 100000" />\r
+      <gd name="sdy1" fmla="*/ ihd2 98079 100000" />\r
+      <gd name="sdy2" fmla="*/ ihd2 83147 100000" />\r
+      <gd name="sdy3" fmla="*/ ihd2 55557 100000" />\r
+      <gd name="sdy4" fmla="*/ ihd2 19509 100000" />\r
+      <gd name="sx1" fmla="+- hc 0 sdx1" />\r
+      <gd name="sx2" fmla="+- hc 0 sdx2" />\r
+      <gd name="sx3" fmla="+- hc 0 sdx3" />\r
+      <gd name="sx4" fmla="+- hc 0 sdx4" />\r
+      <gd name="sx5" fmla="+- hc sdx4 0" />\r
+      <gd name="sx6" fmla="+- hc sdx3 0" />\r
+      <gd name="sx7" fmla="+- hc sdx2 0" />\r
+      <gd name="sx8" fmla="+- hc sdx1 0" />\r
+      <gd name="sy1" fmla="+- vc 0 sdy1" />\r
+      <gd name="sy2" fmla="+- vc 0 sdy2" />\r
+      <gd name="sy3" fmla="+- vc 0 sdy3" />\r
+      <gd name="sy4" fmla="+- vc 0 sdy4" />\r
+      <gd name="sy5" fmla="+- vc sdy4 0" />\r
+      <gd name="sy6" fmla="+- vc sdy3 0" />\r
+      <gd name="sy7" fmla="+- vc sdy2 0" />\r
+      <gd name="sy8" fmla="+- vc sdy1 0" />\r
+      <gd name="idx" fmla="cos iwd2 2700000" />\r
+      <gd name="idy" fmla="sin ihd2 2700000" />\r
+      <gd name="il" fmla="+- hc 0 idx" />\r
+      <gd name="it" fmla="+- vc 0 idy" />\r
+      <gd name="ir" fmla="+- hc idx 0" />\r
+      <gd name="ib" fmla="+- vc idy 0" />\r
+      <gd name="yAdj" fmla="+- vc 0 ihd2" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj" minY="0" maxY="50000">\r
+        <pos x="hc" y="yAdj" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="x5" y="y2" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x6" y="y3" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x6" y="y4" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x5" y="y5" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x4" y="y6" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x3" y="y6" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x2" y="y5" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="y4" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="y3" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x2" y="y2" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x3" y="y1" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x4" y="y1" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="vc" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="sx1" y="sy4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx2" y="sy3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx3" y="sy2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx4" y="sy1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx5" y="sy1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx6" y="sy2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x5" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx7" y="sy3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x6" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx8" y="sy4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx8" y="sy5" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x6" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx7" y="sy6" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x5" y="y5" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx6" y="sy7" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y6" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx5" y="sy8" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx4" y="sy8" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y6" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx3" y="sy7" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y5" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx2" y="sy6" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx1" y="sy5" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+  </star16>\r
+  <star24>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 37500" />\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 50000" />\r
+      <gd name="dx1" fmla="cos wd2 900000" />\r
+      <gd name="dx2" fmla="cos wd2 1800000" />\r
+      <gd name="dx3" fmla="cos wd2 2700000" />\r
+      <gd name="dx4" fmla="val wd4" />\r
+      <gd name="dx5" fmla="cos wd2 4500000" />\r
+      <gd name="dy1" fmla="sin hd2 4500000" />\r
+      <gd name="dy2" fmla="sin hd2 3600000" />\r
+      <gd name="dy3" fmla="sin hd2 2700000" />\r
+      <gd name="dy4" fmla="val hd4" />\r
+      <gd name="dy5" fmla="sin hd2 900000" />\r
+      <gd name="x1" fmla="+- hc 0 dx1" />\r
+      <gd name="x2" fmla="+- hc 0 dx2" />\r
+      <gd name="x3" fmla="+- hc 0 dx3" />\r
+      <gd name="x4" fmla="+- hc 0 dx4" />\r
+      <gd name="x5" fmla="+- hc 0 dx5" />\r
+      <gd name="x6" fmla="+- hc dx5 0" />\r
+      <gd name="x7" fmla="+- hc dx4 0" />\r
+      <gd name="x8" fmla="+- hc dx3 0" />\r
+      <gd name="x9" fmla="+- hc dx2 0" />\r
+      <gd name="x10" fmla="+- hc dx1 0" />\r
+      <gd name="y1" fmla="+- vc 0 dy1" />\r
+      <gd name="y2" fmla="+- vc 0 dy2" />\r
+      <gd name="y3" fmla="+- vc 0 dy3" />\r
+      <gd name="y4" fmla="+- vc 0 dy4" />\r
+      <gd name="y5" fmla="+- vc 0 dy5" />\r
+      <gd name="y6" fmla="+- vc dy5 0" />\r
+      <gd name="y7" fmla="+- vc dy4 0" />\r
+      <gd name="y8" fmla="+- vc dy3 0" />\r
+      <gd name="y9" fmla="+- vc dy2 0" />\r
+      <gd name="y10" fmla="+- vc dy1 0" />\r
+      <gd name="iwd2" fmla="*/ wd2 a 50000" />\r
+      <gd name="ihd2" fmla="*/ hd2 a 50000" />\r
+      <gd name="sdx1" fmla="*/ iwd2 99144 100000" />\r
+      <gd name="sdx2" fmla="*/ iwd2 92388 100000" />\r
+      <gd name="sdx3" fmla="*/ iwd2 79335 100000" />\r
+      <gd name="sdx4" fmla="*/ iwd2 60876 100000" />\r
+      <gd name="sdx5" fmla="*/ iwd2 38268 100000" />\r
+      <gd name="sdx6" fmla="*/ iwd2 13053 100000" />\r
+      <gd name="sdy1" fmla="*/ ihd2 99144 100000" />\r
+      <gd name="sdy2" fmla="*/ ihd2 92388 100000" />\r
+      <gd name="sdy3" fmla="*/ ihd2 79335 100000" />\r
+      <gd name="sdy4" fmla="*/ ihd2 60876 100000" />\r
+      <gd name="sdy5" fmla="*/ ihd2 38268 100000" />\r
+      <gd name="sdy6" fmla="*/ ihd2 13053 100000" />\r
+      <gd name="sx1" fmla="+- hc 0 sdx1" />\r
+      <gd name="sx2" fmla="+- hc 0 sdx2" />\r
+      <gd name="sx3" fmla="+- hc 0 sdx3" />\r
+      <gd name="sx4" fmla="+- hc 0 sdx4" />\r
+      <gd name="sx5" fmla="+- hc 0 sdx5" />\r
+      <gd name="sx6" fmla="+- hc 0 sdx6" />\r
+      <gd name="sx7" fmla="+- hc sdx6 0" />\r
+      <gd name="sx8" fmla="+- hc sdx5 0" />\r
+      <gd name="sx9" fmla="+- hc sdx4 0" />\r
+      <gd name="sx10" fmla="+- hc sdx3 0" />\r
+      <gd name="sx11" fmla="+- hc sdx2 0" />\r
+      <gd name="sx12" fmla="+- hc sdx1 0" />\r
+      <gd name="sy1" fmla="+- vc 0 sdy1" />\r
+      <gd name="sy2" fmla="+- vc 0 sdy2" />\r
+      <gd name="sy3" fmla="+- vc 0 sdy3" />\r
+      <gd name="sy4" fmla="+- vc 0 sdy4" />\r
+      <gd name="sy5" fmla="+- vc 0 sdy5" />\r
+      <gd name="sy6" fmla="+- vc 0 sdy6" />\r
+      <gd name="sy7" fmla="+- vc sdy6 0" />\r
+      <gd name="sy8" fmla="+- vc sdy5 0" />\r
+      <gd name="sy9" fmla="+- vc sdy4 0" />\r
+      <gd name="sy10" fmla="+- vc sdy3 0" />\r
+      <gd name="sy11" fmla="+- vc sdy2 0" />\r
+      <gd name="sy12" fmla="+- vc sdy1 0" />\r
+      <gd name="idx" fmla="cos iwd2 2700000" />\r
+      <gd name="idy" fmla="sin ihd2 2700000" />\r
+      <gd name="il" fmla="+- hc 0 idx" />\r
+      <gd name="it" fmla="+- vc 0 idy" />\r
+      <gd name="ir" fmla="+- hc idx 0" />\r
+      <gd name="ib" fmla="+- vc idy 0" />\r
+      <gd name="yAdj" fmla="+- vc 0 ihd2" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj" minY="0" maxY="ssd2">\r
+        <pos x="hc" y="yAdj" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="vc" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="sx1" y="sy6" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y5" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx2" y="sy5" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx3" y="sy4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx4" y="sy3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx5" y="sy2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x5" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx6" y="sy1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx7" y="sy1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x6" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx8" y="sy2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x7" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx9" y="sy3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x8" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx10" y="sy4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x9" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx11" y="sy5" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x10" y="y5" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx12" y="sy6" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx12" y="sy7" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x10" y="y6" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx11" y="sy8" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x9" y="y7" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx10" y="sy9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x8" y="y8" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx9" y="sy10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x7" y="y9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx8" y="sy11" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x6" y="y10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx7" y="sy12" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx6" y="sy12" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x5" y="y10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx5" y="sy11" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx4" y="sy10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y8" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx3" y="sy9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y7" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx2" y="sy8" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y6" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx1" y="sy7" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </star24>\r
+  <star32>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 37500" />\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 50000" />\r
+      <gd name="dx1" fmla="*/ wd2 98079 100000" />\r
+      <gd name="dx2" fmla="*/ wd2 92388 100000" />\r
+      <gd name="dx3" fmla="*/ wd2 83147 100000" />\r
+      <gd name="dx4" fmla="cos wd2 2700000" />\r
+      <gd name="dx5" fmla="*/ wd2 55557 100000" />\r
+      <gd name="dx6" fmla="*/ wd2 38268 100000" />\r
+      <gd name="dx7" fmla="*/ wd2 19509 100000" />\r
+      <gd name="dy1" fmla="*/ hd2 98079 100000" />\r
+      <gd name="dy2" fmla="*/ hd2 92388 100000" />\r
+      <gd name="dy3" fmla="*/ hd2 83147 100000" />\r
+      <gd name="dy4" fmla="sin hd2 2700000" />\r
+      <gd name="dy5" fmla="*/ hd2 55557 100000" />\r
+      <gd name="dy6" fmla="*/ hd2 38268 100000" />\r
+      <gd name="dy7" fmla="*/ hd2 19509 100000" />\r
+      <gd name="x1" fmla="+- hc 0 dx1" />\r
+      <gd name="x2" fmla="+- hc 0 dx2" />\r
+      <gd name="x3" fmla="+- hc 0 dx3" />\r
+      <gd name="x4" fmla="+- hc 0 dx4" />\r
+      <gd name="x5" fmla="+- hc 0 dx5" />\r
+      <gd name="x6" fmla="+- hc 0 dx6" />\r
+      <gd name="x7" fmla="+- hc 0 dx7" />\r
+      <gd name="x8" fmla="+- hc dx7 0" />\r
+      <gd name="x9" fmla="+- hc dx6 0" />\r
+      <gd name="x10" fmla="+- hc dx5 0" />\r
+      <gd name="x11" fmla="+- hc dx4 0" />\r
+      <gd name="x12" fmla="+- hc dx3 0" />\r
+      <gd name="x13" fmla="+- hc dx2 0" />\r
+      <gd name="x14" fmla="+- hc dx1 0" />\r
+      <gd name="y1" fmla="+- vc 0 dy1" />\r
+      <gd name="y2" fmla="+- vc 0 dy2" />\r
+      <gd name="y3" fmla="+- vc 0 dy3" />\r
+      <gd name="y4" fmla="+- vc 0 dy4" />\r
+      <gd name="y5" fmla="+- vc 0 dy5" />\r
+      <gd name="y6" fmla="+- vc 0 dy6" />\r
+      <gd name="y7" fmla="+- vc 0 dy7" />\r
+      <gd name="y8" fmla="+- vc dy7 0" />\r
+      <gd name="y9" fmla="+- vc dy6 0" />\r
+      <gd name="y10" fmla="+- vc dy5 0" />\r
+      <gd name="y11" fmla="+- vc dy4 0" />\r
+      <gd name="y12" fmla="+- vc dy3 0" />\r
+      <gd name="y13" fmla="+- vc dy2 0" />\r
+      <gd name="y14" fmla="+- vc dy1 0" />\r
+      <gd name="iwd2" fmla="*/ wd2 a 50000" />\r
+      <gd name="ihd2" fmla="*/ hd2 a 50000" />\r
+      <gd name="sdx1" fmla="*/ iwd2 99518 100000" />\r
+      <gd name="sdx2" fmla="*/ iwd2 95694 100000" />\r
+      <gd name="sdx3" fmla="*/ iwd2 88192 100000" />\r
+      <gd name="sdx4" fmla="*/ iwd2 77301 100000" />\r
+      <gd name="sdx5" fmla="*/ iwd2 63439 100000" />\r
+      <gd name="sdx6" fmla="*/ iwd2 47140 100000" />\r
+      <gd name="sdx7" fmla="*/ iwd2 29028 100000" />\r
+      <gd name="sdx8" fmla="*/ iwd2 9802 100000" />\r
+      <gd name="sdy1" fmla="*/ ihd2 99518 100000" />\r
+      <gd name="sdy2" fmla="*/ ihd2 95694 100000" />\r
+      <gd name="sdy3" fmla="*/ ihd2 88192 100000" />\r
+      <gd name="sdy4" fmla="*/ ihd2 77301 100000" />\r
+      <gd name="sdy5" fmla="*/ ihd2 63439 100000" />\r
+      <gd name="sdy6" fmla="*/ ihd2 47140 100000" />\r
+      <gd name="sdy7" fmla="*/ ihd2 29028 100000" />\r
+      <gd name="sdy8" fmla="*/ ihd2 9802 100000" />\r
+      <gd name="sx1" fmla="+- hc 0 sdx1" />\r
+      <gd name="sx2" fmla="+- hc 0 sdx2" />\r
+      <gd name="sx3" fmla="+- hc 0 sdx3" />\r
+      <gd name="sx4" fmla="+- hc 0 sdx4" />\r
+      <gd name="sx5" fmla="+- hc 0 sdx5" />\r
+      <gd name="sx6" fmla="+- hc 0 sdx6" />\r
+      <gd name="sx7" fmla="+- hc 0 sdx7" />\r
+      <gd name="sx8" fmla="+- hc 0 sdx8" />\r
+      <gd name="sx9" fmla="+- hc sdx8 0" />\r
+      <gd name="sx10" fmla="+- hc sdx7 0" />\r
+      <gd name="sx11" fmla="+- hc sdx6 0" />\r
+      <gd name="sx12" fmla="+- hc sdx5 0" />\r
+      <gd name="sx13" fmla="+- hc sdx4 0" />\r
+      <gd name="sx14" fmla="+- hc sdx3 0" />\r
+      <gd name="sx15" fmla="+- hc sdx2 0" />\r
+      <gd name="sx16" fmla="+- hc sdx1 0" />\r
+      <gd name="sy1" fmla="+- vc 0 sdy1" />\r
+      <gd name="sy2" fmla="+- vc 0 sdy2" />\r
+      <gd name="sy3" fmla="+- vc 0 sdy3" />\r
+      <gd name="sy4" fmla="+- vc 0 sdy4" />\r
+      <gd name="sy5" fmla="+- vc 0 sdy5" />\r
+      <gd name="sy6" fmla="+- vc 0 sdy6" />\r
+      <gd name="sy7" fmla="+- vc 0 sdy7" />\r
+      <gd name="sy8" fmla="+- vc 0 sdy8" />\r
+      <gd name="sy9" fmla="+- vc sdy8 0" />\r
+      <gd name="sy10" fmla="+- vc sdy7 0" />\r
+      <gd name="sy11" fmla="+- vc sdy6 0" />\r
+      <gd name="sy12" fmla="+- vc sdy5 0" />\r
+      <gd name="sy13" fmla="+- vc sdy4 0" />\r
+      <gd name="sy14" fmla="+- vc sdy3 0" />\r
+      <gd name="sy15" fmla="+- vc sdy2 0" />\r
+      <gd name="sy16" fmla="+- vc sdy1 0" />\r
+      <gd name="idx" fmla="cos iwd2 2700000" />\r
+      <gd name="idy" fmla="sin ihd2 2700000" />\r
+      <gd name="il" fmla="+- hc 0 idx" />\r
+      <gd name="it" fmla="+- vc 0 idy" />\r
+      <gd name="ir" fmla="+- hc idx 0" />\r
+      <gd name="ib" fmla="+- vc idy 0" />\r
+      <gd name="yAdj" fmla="+- vc 0 ihd2" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj" minY="0" maxY="ssd2">\r
+        <pos x="hc" y="yAdj" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="vc" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="sx1" y="sy8" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y7" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx2" y="sy7" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y6" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx3" y="sy6" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y5" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx4" y="sy5" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx5" y="sy4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x5" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx6" y="sy3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x6" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx7" y="sy2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x7" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx8" y="sy1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx9" y="sy1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x8" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx10" y="sy2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x9" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx11" y="sy3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x10" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx12" y="sy4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x11" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx13" y="sy5" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x12" y="y5" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx14" y="sy6" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x13" y="y6" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx15" y="sy7" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x14" y="y7" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx16" y="sy8" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx16" y="sy9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x14" y="y8" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx15" y="sy10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x13" y="y9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx14" y="sy11" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x12" y="y10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx13" y="sy12" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x11" y="y11" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx12" y="sy13" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x10" y="y12" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx11" y="sy14" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x9" y="y13" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx10" y="sy15" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x8" y="y14" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx9" y="sy16" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx8" y="sy16" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x7" y="y14" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx7" y="sy15" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x6" y="y13" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx6" y="sy14" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x5" y="y12" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx5" y="sy13" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y11" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx4" y="sy12" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx3" y="sy11" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx2" y="sy10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y8" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx1" y="sy9" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </star32>\r
+  <star4>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 12500" />\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 50000" />\r
+      <gd name="iwd2" fmla="*/ wd2 a 50000" />\r
+      <gd name="ihd2" fmla="*/ hd2 a 50000" />\r
+      <gd name="sdx" fmla="cos iwd2 2700000" />\r
+      <gd name="sdy" fmla="sin ihd2 2700000" />\r
+      <gd name="sx1" fmla="+- hc 0 sdx" />\r
+      <gd name="sx2" fmla="+- hc sdx 0" />\r
+      <gd name="sy1" fmla="+- vc 0 sdy" />\r
+      <gd name="sy2" fmla="+- vc sdy 0" />\r
+      <gd name="yAdj" fmla="+- vc 0 ihd2" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj" minY="0" maxY="50000">\r
+        <pos x="hc" y="yAdj" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="sx1" t="sy1" r="sx2" b="sy2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="vc" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="sx1" y="sy1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx2" y="sy1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx2" y="sy2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx1" y="sy2" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </star4>\r
+  <star5>\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 19098" />\r
+      <gd name="hf" fmla="val 105146" />\r
+      <gd name="vf" fmla="val 110557" />\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 50000" />\r
+      <gd name="swd2" fmla="*/ wd2 hf 100000" />\r
+      <gd name="shd2" fmla="*/ hd2 vf 100000" />\r
+      <gd name="svc" fmla="*/ vc  vf 100000" />\r
+      <gd name="dx1" fmla="cos swd2 1080000" />\r
+      <gd name="dx2" fmla="cos swd2 18360000" />\r
+      <gd name="dy1" fmla="sin shd2 1080000" />\r
+      <gd name="dy2" fmla="sin shd2 18360000" />\r
+      <gd name="x1" fmla="+- hc 0 dx1" />\r
+      <gd name="x2" fmla="+- hc 0 dx2" />\r
+      <gd name="x3" fmla="+- hc dx2 0" />\r
+      <gd name="x4" fmla="+- hc dx1 0" />\r
+      <gd name="y1" fmla="+- svc 0 dy1" />\r
+      <gd name="y2" fmla="+- svc 0 dy2" />\r
+      <gd name="iwd2" fmla="*/ swd2 a 50000" />\r
+      <gd name="ihd2" fmla="*/ shd2 a 50000" />\r
+      <gd name="sdx1" fmla="cos iwd2 20520000" />\r
+      <gd name="sdx2" fmla="cos iwd2 3240000" />\r
+      <gd name="sdy1" fmla="sin ihd2 3240000" />\r
+      <gd name="sdy2" fmla="sin ihd2 20520000" />\r
+      <gd name="sx1" fmla="+- hc 0 sdx1" />\r
+      <gd name="sx2" fmla="+- hc 0 sdx2" />\r
+      <gd name="sx3" fmla="+- hc sdx2 0" />\r
+      <gd name="sx4" fmla="+- hc sdx1 0" />\r
+      <gd name="sy1" fmla="+- svc 0 sdy1" />\r
+      <gd name="sy2" fmla="+- svc 0 sdy2" />\r
+      <gd name="sy3" fmla="+- svc ihd2 0" />\r
+      <gd name="yAdj" fmla="+- svc 0 ihd2" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj" minY="0" maxY="50000">\r
+        <pos x="hc" y="yAdj" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="y1" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x2" y="y2" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x3" y="y2" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x4" y="y1" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="sx1" t="sy1" r="sx4" b="sy3" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="x1" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="sx2" y="sy1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx3" y="sy1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx4" y="sy2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="sy3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx1" y="sy2" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+  </star5>\r
+  <star6>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 28868" />\r
+      <gd name="hf" fmla="val 115470" />\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 50000" />\r
+      <gd name="swd2" fmla="*/ wd2 hf 100000" />\r
+      <gd name="dx1" fmla="cos swd2 1800000" />\r
+      <gd name="x1" fmla="+- hc 0 dx1" />\r
+      <gd name="x2" fmla="+- hc dx1 0" />\r
+      <gd name="y2" fmla="+- vc hd4 0" />\r
+      <gd name="iwd2" fmla="*/ swd2 a 50000" />\r
+      <gd name="ihd2" fmla="*/ hd2 a 50000" />\r
+      <gd name="sdx2" fmla="*/ iwd2 1 2" />\r
+      <gd name="sx1" fmla="+- hc 0 iwd2" />\r
+      <gd name="sx2" fmla="+- hc 0 sdx2" />\r
+      <gd name="sx3" fmla="+- hc sdx2 0" />\r
+      <gd name="sx4" fmla="+- hc iwd2 0" />\r
+      <gd name="sdy1" fmla="sin ihd2 3600000" />\r
+      <gd name="sy1" fmla="+- vc 0 sdy1" />\r
+      <gd name="sy2" fmla="+- vc sdy1 0" />\r
+      <gd name="yAdj" fmla="+- vc 0 ihd2" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj" minY="0" maxY="50000">\r
+        <pos x="hc" y="yAdj" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="x2" y="hd4" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x2" y="y2" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="y2" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="hd4" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="sx1" t="sy1" r="sx4" b="sy2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="x1" y="hd4" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="sx2" y="sy1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx3" y="sy1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="hd4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx4" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx3" y="sy2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx2" y="sy2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx1" y="vc" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </star6>\r
+  <star7>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 34601" />\r
+      <gd name="hf" fmla="val 102572" />\r
+      <gd name="vf" fmla="val 105210" />\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 50000" />\r
+      <gd name="swd2" fmla="*/ wd2 hf 100000" />\r
+      <gd name="shd2" fmla="*/ hd2 vf 100000" />\r
+      <gd name="svc" fmla="*/ vc  vf 100000" />\r
+      <gd name="dx1" fmla="*/ swd2 97493 100000" />\r
+      <gd name="dx2" fmla="*/ swd2 78183 100000" />\r
+      <gd name="dx3" fmla="*/ swd2 43388 100000" />\r
+      <gd name="dy1" fmla="*/ shd2 62349 100000" />\r
+      <gd name="dy2" fmla="*/ shd2 22252 100000" />\r
+      <gd name="dy3" fmla="*/ shd2 90097 100000" />\r
+      <gd name="x1" fmla="+- hc 0 dx1" />\r
+      <gd name="x2" fmla="+- hc 0 dx2" />\r
+      <gd name="x3" fmla="+- hc 0 dx3" />\r
+      <gd name="x4" fmla="+- hc dx3 0" />\r
+      <gd name="x5" fmla="+- hc dx2 0" />\r
+      <gd name="x6" fmla="+- hc dx1 0" />\r
+      <gd name="y1" fmla="+- svc 0 dy1" />\r
+      <gd name="y2" fmla="+- svc dy2 0" />\r
+      <gd name="y3" fmla="+- svc dy3 0" />\r
+      <gd name="iwd2" fmla="*/ swd2 a 50000" />\r
+      <gd name="ihd2" fmla="*/ shd2 a 50000" />\r
+      <gd name="sdx1" fmla="*/ iwd2 97493 100000" />\r
+      <gd name="sdx2" fmla="*/ iwd2 78183 100000" />\r
+      <gd name="sdx3" fmla="*/ iwd2 43388 100000" />\r
+      <gd name="sx1" fmla="+- hc 0 sdx1" />\r
+      <gd name="sx2" fmla="+- hc 0 sdx2" />\r
+      <gd name="sx3" fmla="+- hc 0 sdx3" />\r
+      <gd name="sx4" fmla="+- hc sdx3 0" />\r
+      <gd name="sx5" fmla="+- hc sdx2 0" />\r
+      <gd name="sx6" fmla="+- hc sdx1 0" />\r
+      <gd name="sdy1" fmla="*/ ihd2 90097 100000" />\r
+      <gd name="sdy2" fmla="*/ ihd2 22252 100000" />\r
+      <gd name="sdy3" fmla="*/ ihd2 62349 100000" />\r
+      <gd name="sy1" fmla="+- svc 0 sdy1" />\r
+      <gd name="sy2" fmla="+- svc 0 sdy2" />\r
+      <gd name="sy3" fmla="+- svc sdy3 0" />\r
+      <gd name="sy4" fmla="+- svc ihd2 0" />\r
+      <gd name="yAdj" fmla="+- svc 0 ihd2" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj" minY="0" maxY="50000">\r
+        <pos x="hc" y="yAdj" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="x5" y="y1" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x6" y="y2" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x4" y="y3" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x3" y="y3" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="y2" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x2" y="y1" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="sx2" t="sy1" r="sx5" b="sy3" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="x1" y="y2" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="sx1" y="sy2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx3" y="sy1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx4" y="sy1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x5" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx6" y="sy2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x6" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx5" y="sy3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="sy4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx2" y="sy3" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </star7>\r
+  <star8>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 37500" />\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 50000" />\r
+      <gd name="dx1" fmla="cos wd2 2700000" />\r
+      <gd name="x1" fmla="+- hc 0 dx1" />\r
+      <gd name="x2" fmla="+- hc dx1 0" />\r
+      <gd name="dy1" fmla="sin hd2 2700000" />\r
+      <gd name="y1" fmla="+- vc 0 dy1" />\r
+      <gd name="y2" fmla="+- vc dy1 0" />\r
+      <gd name="iwd2" fmla="*/ wd2 a 50000" />\r
+      <gd name="ihd2" fmla="*/ hd2 a 50000" />\r
+      <gd name="sdx1" fmla="*/ iwd2 92388 100000" />\r
+      <gd name="sdx2" fmla="*/ iwd2 38268 100000" />\r
+      <gd name="sdy1" fmla="*/ ihd2 92388 100000" />\r
+      <gd name="sdy2" fmla="*/ ihd2 38268 100000" />\r
+      <gd name="sx1" fmla="+- hc 0 sdx1" />\r
+      <gd name="sx2" fmla="+- hc 0 sdx2" />\r
+      <gd name="sx3" fmla="+- hc sdx2 0" />\r
+      <gd name="sx4" fmla="+- hc sdx1 0" />\r
+      <gd name="sy1" fmla="+- vc 0 sdy1" />\r
+      <gd name="sy2" fmla="+- vc 0 sdy2" />\r
+      <gd name="sy3" fmla="+- vc sdy2 0" />\r
+      <gd name="sy4" fmla="+- vc sdy1 0" />\r
+      <gd name="yAdj" fmla="+- vc 0 ihd2" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj" minY="0" maxY="50000">\r
+        <pos x="hc" y="yAdj" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x2" y="y2" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x1" y="y2" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x1" y="y1" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x2" y="y1" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="sx1" t="sy1" r="sx4" b="sy4" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="vc" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="sx1" y="sy2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx2" y="sy1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx3" y="sy1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx4" y="sy2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx4" y="sy3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx3" y="sy4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx2" y="sy4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx1" y="sy3" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </star8>\r
+  <straightConnector1>\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path fill="none">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+  </straightConnector1>\r
+  <stripedRightArrow>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 50000" />\r
+\r
+      <gd name="adj2" fmla="val 50000" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj2" fmla="*/ 84375 w ss" />\r
+\r
+      <gd name="a1" fmla="pin 0 adj1 100000" />\r
+      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
+      <gd name="x4" fmla="*/ ss 5 32" />\r
+      <gd name="dx5" fmla="*/ ss a2 100000" />\r
+      <gd name="x5" fmla="+- r 0 dx5" />\r
+      <gd name="dy1" fmla="*/ h a1 200000" />\r
+      <gd name="y1" fmla="+- vc 0 dy1" />\r
+      <gd name="y2" fmla="+- vc dy1 0" />\r
+      <gd name="dx6" fmla="*/ dy1 dx5 hd2" />\r
+      <gd name="x6" fmla="+- r 0 dx6" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="100000">\r
+        <pos x="l" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="0" maxX="maxAdj2">\r
+        <pos x="x5" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="x5" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x5" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="x4" t="y1" r="x6" b="y2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="ssd32" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="ssd32" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="y2" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="ssd16" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="ssd8" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="ssd8" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="ssd16" y="y2" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="x4" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x5" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x5" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x5" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x5" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y2" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </stripedRightArrow>\r
+  <sun>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 25000" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 12500 adj 46875" />\r
+      <gd name="g0" fmla="+- 50000 0 a" />\r
+      <gd name="g1" fmla="*/ g0 30274 32768" />\r
+      <gd name="g2" fmla="*/ g0 12540 32768" />\r
+      <gd name="g3" fmla="+- g1 50000 0" />\r
+      <gd name="g4" fmla="+- g2 50000 0" />\r
+      <gd name="g5" fmla="+- 50000 0 g1" />\r
+      <gd name="g6" fmla="+- 50000 0 g2" />\r
+      <gd name="g7" fmla="*/ g0 23170 32768" />\r
+      <gd name="g8" fmla="+- 50000 g7 0" />\r
+      <gd name="g9" fmla="+- 50000 0 g7" />\r
+      <gd name="g10" fmla="*/ g5 3 4" />\r
+      <gd name="g11" fmla="*/ g6 3 4" />\r
+      <gd name="g12" fmla="+- g10 3662 0" />\r
+      <gd name="g13" fmla="+- g11 3662 0" />\r
+      <gd name="g14" fmla="+- g11 12500 0" />\r
+      <gd name="g15" fmla="+- 100000 0 g10" />\r
+      <gd name="g16" fmla="+- 100000 0 g12" />\r
+      <gd name="g17" fmla="+- 100000 0 g13" />\r
+      <gd name="g18" fmla="+- 100000 0 g14" />\r
+      <gd name="ox1" fmla="*/ w 18436 21600" />\r
+      <gd name="oy1" fmla="*/ h 3163 21600" />\r
+      <gd name="ox2" fmla="*/ w 3163 21600" />\r
+      <gd name="oy2" fmla="*/ h 18436 21600" />\r
+      <gd name="x8" fmla="*/ w g8 100000" />\r
+      <gd name="x9" fmla="*/ w g9 100000" />\r
+      <gd name="x10" fmla="*/ w g10 100000" />\r
+      <gd name="x12" fmla="*/ w g12 100000" />\r
+      <gd name="x13" fmla="*/ w g13 100000" />\r
+      <gd name="x14" fmla="*/ w g14 100000" />\r
+      <gd name="x15" fmla="*/ w g15 100000" />\r
+      <gd name="x16" fmla="*/ w g16 100000" />\r
+      <gd name="x17" fmla="*/ w g17 100000" />\r
+      <gd name="x18" fmla="*/ w g18 100000" />\r
+      <gd name="x19" fmla="*/ w a 100000" />\r
+      <gd name="wR" fmla="*/ w g0 100000" />\r
+      <gd name="hR" fmla="*/ h g0 100000" />\r
+      <gd name="y8" fmla="*/ h g8 100000" />\r
+      <gd name="y9" fmla="*/ h g9 100000" />\r
+      <gd name="y10" fmla="*/ h g10 100000" />\r
+      <gd name="y12" fmla="*/ h g12 100000" />\r
+      <gd name="y13" fmla="*/ h g13 100000" />\r
+      <gd name="y14" fmla="*/ h g14 100000" />\r
+      <gd name="y15" fmla="*/ h g15 100000" />\r
+      <gd name="y16" fmla="*/ h g16 100000" />\r
+      <gd name="y17" fmla="*/ h g17 100000" />\r
+      <gd name="y18" fmla="*/ h g18 100000" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj" minX="12500" maxX="46875">\r
+        <pos x="x19" y="vc" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="x9" t="y9" r="x8" b="y8" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="r" y="vc" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x15" y="y18" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x15" y="y14" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="ox1" y="oy1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x16" y="y13" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x17" y="y12" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="hc" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x18" y="y10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x14" y="y10" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="ox2" y="oy1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x13" y="y12" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x12" y="y13" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="l" y="vc" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x10" y="y14" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x10" y="y18" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="ox2" y="oy2" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x12" y="y17" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x13" y="y16" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="hc" y="b" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x14" y="y15" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x18" y="y15" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="ox1" y="oy2" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x17" y="y16" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x16" y="y17" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="x19" y="vc" />\r
+        </moveTo>\r
+        <arcTo wR="wR" hR="hR" stAng="cd2" swAng="21600000" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </sun>\r
+  <swooshArrow>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 25000" />\r
+\r
+      <gd name="adj2" fmla="val 16667" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+\r
+\r
+      <gd name="a1" fmla="pin 1 adj1 75000" />\r
+\r
+      <gd name="maxAdj2" fmla="*/ 70000 w ss" />\r
+\r
+      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
+      <gd name="ad1" fmla="*/ h a1 100000" />\r
+      <gd name="ad2" fmla="*/ ss a2 100000" />\r
+\r
+      <gd name="xB" fmla="+- r 0 ad2" />\r
+      <gd name="yB" fmla="+- t ssd8 0" />\r
+\r
+      <gd name="alfa" fmla="*/ cd4 1 14" />\r
+\r
+      <gd name="dx0" fmla="tan ssd8 alfa" />\r
+      <gd name="xC" fmla="+- xB 0 dx0" />\r
+\r
+      <gd name="dx1" fmla="tan ad1 alfa" />\r
+\r
+      <gd name="yF" fmla="+- yB ad1 0" />\r
+      <gd name="xF" fmla="+- xB dx1 0" />\r
+\r
+      <gd name="xE" fmla="+- xF dx0 0" />\r
+      <gd name="yE" fmla="+- yF ssd8 0" />\r
+\r
+      <gd name="dy2" fmla="+- yE 0 t" />\r
+      <gd name="dy22" fmla="*/ dy2 1 2" />\r
+      <gd name="dy3" fmla="*/ h 1 20" />\r
+      <gd name="yD" fmla="+- t dy22 dy3" />\r
+\r
+\r
+      <gd name="dy4" fmla="*/ hd6 1 1" />\r
+      <gd name="yP1" fmla="+- hd6 dy4 0" />\r
+      <gd name="xP1" fmla="val wd6" />\r
+\r
+\r
+      <gd name="dy5" fmla="*/ hd6 1 2" />\r
+      <gd name="yP2" fmla="+- yF dy5 0" />\r
+      <gd name="xP2" fmla="val wd4" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="1" maxY="75000">\r
+        <pos x="xF" y="yF" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="0" maxX="maxAdj2">\r
+        <pos x="xB" y="yB" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="cd4">\r
+        <pos x="l" y="b" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="xC" y="t" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="yD" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="xE" y="yE" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="b" />\r
+        </moveTo>\r
+        <quadBezTo>\r
+          <pt x="xP1" y="yP1" />\r
+          <pt x="xB" y="yB" />\r
+        </quadBezTo>\r
+        <lnTo>\r
+          <pt x="xC" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="yD" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xE" y="yE" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xF" y="yF" />\r
+        </lnTo>\r
+        <quadBezTo>\r
+          <pt x="xP2" y="yP2" />\r
+          <pt x="l" y="b" />\r
+        </quadBezTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </swooshArrow>\r
+  <teardrop>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 100000" />\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 200000" />\r
+      <gd name="r2" fmla="sqrt 2" />\r
+      <gd name="tw" fmla="*/ wd2 r2 1" />\r
+      <gd name="th" fmla="*/ hd2 r2 1" />\r
+      <gd name="sw" fmla="*/ tw a 100000" />\r
+      <gd name="sh" fmla="*/ th a 100000" />\r
+      <gd name="dx1" fmla="cos sw 2700000" />\r
+      <gd name="dy1" fmla="sin sh 2700000" />\r
+      <gd name="x1" fmla="+- hc dx1 0" />\r
+      <gd name="y1" fmla="+- vc 0 dy1" />\r
+      <gd name="x2" fmla="+/ hc x1 2" />\r
+      <gd name="y2" fmla="+/ vc y1 2" />\r
+      <gd name="idx" fmla="cos wd2 2700000" />\r
+      <gd name="idy" fmla="sin hd2 2700000" />\r
+      <gd name="il" fmla="+- hc 0 idx" />\r
+      <gd name="ir" fmla="+- hc idx 0" />\r
+      <gd name="it" fmla="+- vc 0 idy" />\r
+      <gd name="ib" fmla="+- vc idy 0" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj" minX="0" maxX="200000">\r
+        <pos x="x1" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="ir" y="ib" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="il" y="ib" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="il" y="it" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x1" y="y1" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="vc" />\r
+        </moveTo>\r
+        <arcTo wR="wd2" hR="hd2" stAng="cd2" swAng="cd4" />\r
+        <quadBezTo>\r
+          <pt x="x2" y="t" />\r
+          <pt x="x1" y="y1" />\r
+        </quadBezTo>\r
+        <quadBezTo>\r
+          <pt x="r" y="y2" />\r
+          <pt x="r" y="vc" />\r
+        </quadBezTo>\r
+        <arcTo wR="wd2" hR="hd2" stAng="0" swAng="cd4" />\r
+        <arcTo wR="wd2" hR="hd2" stAng="cd4" swAng="cd4" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </teardrop>\r
+  <trapezoid>\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 25000" />\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj" fmla="*/ 50000 w ss" />\r
+      <gd name="a" fmla="pin 0 adj maxAdj" />\r
+      <gd name="x1" fmla="*/ ss a 200000" />\r
+      <gd name="x2" fmla="*/ ss a 100000" />\r
+      <gd name="x3" fmla="+- r 0 x2" />\r
+      <gd name="x4" fmla="+- r 0 x1" />\r
+      <gd name="il" fmla="*/ wd3 a maxAdj" />\r
+      <gd name="it" fmla="*/ hd3 a maxAdj" />\r
+      <gd name="ir" fmla="+- r 0 il" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj" minX="0" maxX="maxAdj">\r
+        <pos x="x2" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x4" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="il" t="it" r="ir" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="b" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+  </trapezoid>\r
+  <triangle>\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 50000" />\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 100000" />\r
+      <gd name="x1" fmla="*/ w a 200000" />\r
+      <gd name="x2" fmla="*/ w a 100000" />\r
+      <gd name="x3" fmla="+- x1 wd2 0" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj" minX="0" maxX="100000">\r
+        <pos x="x2" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="x2" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="l" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x2" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="r" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x3" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="x1" t="vc" r="x3" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="b" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+  </triangle>\r
+  <upArrowCallout>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 25000" />\r
+\r
+      <gd name="adj2" fmla="val 25000" />\r
+\r
+      <gd name="adj3" fmla="val 25000" />\r
+\r
+      <gd name="adj4" fmla="val 64977" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj2" fmla="*/ 50000 w ss" />\r
+\r
+      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
+      <gd name="maxAdj1" fmla="*/ a2 2 1" />\r
+\r
+      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
+      <gd name="maxAdj3" fmla="*/ 100000 h ss" />\r
+\r
+      <gd name="a3" fmla="pin 0 adj3 maxAdj3" />\r
+      <gd name="q2" fmla="*/ a3 ss h" />\r
+\r
+      <gd name="maxAdj4" fmla="+- 100000 0 q2" />\r
+\r
+      <gd name="a4" fmla="pin 0 adj4 maxAdj4" />\r
+      <gd name="dx1" fmla="*/ ss a2 100000" />\r
+\r
+      <gd name="dx2" fmla="*/ ss a1 200000" />\r
+\r
+      <gd name="x1" fmla="+- hc 0 dx1" />\r
+      <gd name="x2" fmla="+- hc 0 dx2" />\r
+      <gd name="x3" fmla="+- hc dx2 0" />\r
+      <gd name="x4" fmla="+- hc dx1 0" />\r
+      <gd name="y1" fmla="*/ ss a3 100000" />\r
+\r
+      <gd name="dy2" fmla="*/ h a4 100000" />\r
+\r
+      <gd name="y2" fmla="+- b 0 dy2" />\r
+      <gd name="y3" fmla="+/ y2 b 2" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="0" maxX="maxAdj1">\r
+        <pos x="x2" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="0" maxX="maxAdj2">\r
+        <pos x="x1" y="t" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj3" minY="0" maxY="maxAdj3">\r
+        <pos x="r" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj4" minY="0" maxY="maxAdj4">\r
+        <pos x="l" y="y2" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="y2" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="y2" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="y2" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="y2" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </upArrowCallout>\r
+  <upArrow>\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 50000" />\r
+      <gd name="adj2" fmla="val 50000" />\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj2" fmla="*/ 50000 h ss" />\r
+      <gd name="a1" fmla="pin 0 adj1 100000" />\r
+      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
+      <gd name="y2" fmla="*/ ss a2 100000" />\r
+      <gd name="y3" fmla="+- b 0 y2" />\r
+      <gd name="dx1" fmla="*/ w a1 200000" />\r
+      <gd name="x1" fmla="+- hc 0 dx1" />\r
+      <gd name="x2" fmla="+- hc dx1 0" />\r
+      <gd name="dy1" fmla="*/ x1 y2 wd2" />\r
+      <gd name="y1" fmla="+- y2 0 dy1" />\r
+      <gd name="y4" fmla="+- y3 dy1 0" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="0" maxX="100000">\r
+        <pos x="x1" y="y3" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj2" minY="0" maxY="maxAdj2">\r
+        <pos x="l" y="y2" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="y2" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="y3" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="y3" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x2" y="vc" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="y2" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="x1" t="y1" r="x2" b="y4" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="y2" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="hc" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y2" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+  </upArrow>\r
+  <upDownArrow>\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 50000" />\r
+      <gd name="adj2" fmla="val 50000" />\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj2" fmla="*/ 50000 h ss" />\r
+      <gd name="a1" fmla="pin 0 adj1 100000" />\r
+      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
+      <gd name="y2" fmla="*/ ss a2 100000" />\r
+      <gd name="y3" fmla="+- b 0 y2" />\r
+      <gd name="dx1" fmla="*/ w a1 200000" />\r
+      <gd name="x1" fmla="+- hc 0 dx1" />\r
+      <gd name="x2" fmla="+- hc dx1 0" />\r
+      <gd name="dy1" fmla="*/ x1 y2 wd2" />\r
+      <gd name="y1" fmla="+- y2 0 dy1" />\r
+      <gd name="y4" fmla="+- y3 dy1 0" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="0" maxX="100000">\r
+        <pos x="x1" y="y3" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj2" minY="0" maxY="maxAdj2">\r
+        <pos x="l" y="y2" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="y2" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="y3" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="y3" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x2" y="vc" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="y2" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="x1" t="y1" r="x2" b="y4" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="y2" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="hc" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y2" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+  </upDownArrow>\r
+  <upDownArrowCallout>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 25000" />\r
+\r
+      <gd name="adj2" fmla="val 25000" />\r
+\r
+      <gd name="adj3" fmla="val 25000" />\r
+\r
+      <gd name="adj4" fmla="val 48123" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj2" fmla="*/ 50000 w ss" />\r
+\r
+      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
+      <gd name="maxAdj1" fmla="*/ a2 2 1" />\r
+\r
+      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
+      <gd name="maxAdj3" fmla="*/ 50000 h ss" />\r
+\r
+      <gd name="a3" fmla="pin 0 adj3 maxAdj3" />\r
+      <gd name="q2" fmla="*/ a3 ss hd2" />\r
+\r
+      <gd name="maxAdj4" fmla="+- 100000 0 q2" />\r
+\r
+      <gd name="a4" fmla="pin 0 adj4 maxAdj4" />\r
+      <gd name="dx1" fmla="*/ ss a2 100000" />\r
+\r
+      <gd name="dx2" fmla="*/ ss a1 200000" />\r
+\r
+      <gd name="x1" fmla="+- hc 0 dx1" />\r
+      <gd name="x2" fmla="+- hc 0 dx2" />\r
+      <gd name="x3" fmla="+- hc dx2 0" />\r
+      <gd name="x4" fmla="+- hc dx1 0" />\r
+      <gd name="y1" fmla="*/ ss a3 100000" />\r
+\r
+      <gd name="y4" fmla="+- b 0 y1" />\r
+\r
+      <gd name="dy2" fmla="*/ h a4 200000" />\r
+\r
+      <gd name="y2" fmla="+- vc 0 dy2" />\r
+\r
+      <gd name="y3" fmla="+- vc dy2 0" />\r
+\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="0" maxX="maxAdj1">\r
+        <pos x="x2" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="0" maxX="maxAdj2">\r
+        <pos x="x1" y="t" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj3" minY="0" maxY="maxAdj3">\r
+        <pos x="r" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj4" minY="0" maxY="maxAdj4">\r
+        <pos x="l" y="y2" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="y2" r="r" b="y3" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="y2" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="y3" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </upDownArrowCallout>\r
+  <uturnArrow>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 25000" />\r
+\r
+      <gd name="adj2" fmla="val 25000" />\r
+\r
+      <gd name="adj3" fmla="val 25000" />\r
+\r
+      <gd name="adj4" fmla="val 43750" />\r
+\r
+      <gd name="adj5" fmla="val 75000" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a2" fmla="pin 0 adj2 25000" />\r
+      <gd name="maxAdj1" fmla="*/ a2 2 1" />\r
+      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
+      <gd name="q2" fmla="*/ a1 ss h" />\r
+\r
+      <gd name="q3" fmla="+- 100000 0 q2" />\r
+\r
+      <gd name="maxAdj3" fmla="*/ q3 h ss" />\r
+\r
+      <gd name="a3" fmla="pin 0 adj3 maxAdj3" />\r
+      <gd name="q1" fmla="+- a3 a1 0" />\r
+      <gd name="minAdj5" fmla="*/ q1 ss h" />\r
+      <gd name="a5" fmla="pin minAdj5 adj5 100000" />\r
+      <gd name="th" fmla="*/ ss a1 100000" />\r
+\r
+      <gd name="aw2" fmla="*/ ss a2 100000" />\r
+\r
+      <gd name="th2" fmla="*/ th 1 2" />\r
+      <gd name="dh2" fmla="+- aw2 0 th2" />\r
+\r
+      <gd name="y5" fmla="*/ h a5 100000" />\r
+\r
+      <gd name="ah" fmla="*/ ss a3 100000" />\r
+\r
+      <gd name="y4" fmla="+- y5 0 ah" />\r
+      <gd name="x9" fmla="+- r 0 dh2" />\r
+\r
+      <gd name="bw" fmla="*/ x9 1 2" />\r
+      <gd name="bs" fmla="min bw y4" />\r
+      <gd name="maxAdj4" fmla="*/ bs 100000 ss" />\r
+      <gd name="a4" fmla="pin 0 adj4 maxAdj4" />\r
+\r
+\r
+      <gd name="bd" fmla="*/ ss a4 100000" />\r
+\r
+\r
+\r
+      <gd name="bd3" fmla="+- bd 0 th" />\r
+      <gd name="bd2" fmla="max bd3 0" />\r
+      <gd name="x3" fmla="+- th bd2 0" />\r
+\r
+      <gd name="x8" fmla="+- r 0 aw2" />\r
+\r
+      <gd name="x6" fmla="+- x8 0 aw2" />\r
+\r
+      <gd name="x7" fmla="+- x6 dh2 0" />\r
+\r
+      <gd name="x4" fmla="+- x9 0 bd" />\r
+\r
+      <gd name="x5" fmla="+- x7 0 bd2" />\r
+\r
+      <gd name="cx" fmla="+/ th x7 2" />\r
+\r
+\r
+\r
+\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="0" maxX="maxAdj1">\r
+        <pos x="th" y="b" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="0" maxX="25000">\r
+        <pos x="x6" y="b" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj3" minY="0" maxY="maxAdj3">\r
+        <pos x="x6" y="y4" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj4" minX="0" maxX="maxAdj4">\r
+        <pos x="bd" y="t" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj5" minY="minAdj5" maxY="100000">\r
+        <pos x="r" y="y5" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="cd4">\r
+        <pos x="x6" y="y4" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x8" y="y5" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="y4" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="cx" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="th2" y="b" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="b" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="l" y="bd" />\r
+        </lnTo>\r
+        <arcTo wR="bd" hR="bd" stAng="cd2" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x4" y="t" />\r
+        </lnTo>\r
+        <arcTo wR="bd" hR="bd" stAng="3cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x9" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x8" y="y5" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x6" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x7" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x7" y="x3" />\r
+        </lnTo>\r
+        <arcTo wR="bd2" hR="bd2" stAng="0" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="x3" y="th" />\r
+        </lnTo>\r
+        <arcTo wR="bd2" hR="bd2" stAng="3cd4" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="th" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </uturnArrow>\r
+  <verticalScroll>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 12500" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 25000" />\r
+      <gd name="ch" fmla="*/ ss a 100000" />\r
+\r
+      <gd name="ch2" fmla="*/ ch 1 2" />\r
+\r
+      <gd name="ch4" fmla="*/ ch 1 4" />\r
+\r
+\r
+\r
+\r
+\r
+      <gd name="x3" fmla="+- ch ch2 0" />\r
+\r
+      <gd name="x4" fmla="+- ch ch 0" />\r
+\r
+      <gd name="x6" fmla="+- r 0 ch" />\r
+\r
+      <gd name="x7" fmla="+- r 0 ch2" />\r
+\r
+      <gd name="x5" fmla="+- x6 0 ch2" />\r
+\r
+\r
+\r
+\r
+\r
+      <gd name="y3" fmla="+- b 0 ch" />\r
+\r
+      <gd name="y4" fmla="+- b 0 ch2" />\r
+\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj" minY="0" maxY="25000">\r
+        <pos x="l" y="ch" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="ch" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x6" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="ch" t="ch" r="x6" b="y4" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="ch2" y="b" />\r
+        </moveTo>\r
+        <arcTo wR="ch2" hR="ch2" stAng="cd4" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="ch2" y="y4" />\r
+        </lnTo>\r
+        <arcTo wR="ch4" hR="ch4" stAng="cd4" swAng="-10800000" />\r
+        <lnTo>\r
+          <pt x="ch" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="ch" y="ch2" />\r
+        </lnTo>\r
+        <arcTo wR="ch2" hR="ch2" stAng="cd2" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x7" y="t" />\r
+        </lnTo>\r
+        <arcTo wR="ch2" hR="ch2" stAng="3cd4" swAng="cd2" />\r
+        <lnTo>\r
+          <pt x="x6" y="ch" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x6" y="y4" />\r
+        </lnTo>\r
+        <arcTo wR="ch2" hR="ch2" stAng="0" swAng="cd4" />\r
+        <close />\r
+        <moveTo>\r
+          <pt x="x4" y="ch2" />\r
+        </moveTo>\r
+        <arcTo wR="ch2" hR="ch2" stAng="0" swAng="cd4" />\r
+        <arcTo wR="ch4" hR="ch4" stAng="cd4" swAng="cd2" />\r
+        <close />\r
+      </path>\r
+      <path fill="darkenLess" stroke="false" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="x4" y="ch2" />\r
+        </moveTo>\r
+        <arcTo wR="ch2" hR="ch2" stAng="0" swAng="cd4" />\r
+        <arcTo wR="ch4" hR="ch4" stAng="cd4" swAng="cd2" />\r
+        <close />\r
+        <moveTo>\r
+          <pt x="ch" y="y4" />\r
+        </moveTo>\r
+        <arcTo wR="ch2" hR="ch2" stAng="0" swAng="3cd4" />\r
+        <arcTo wR="ch4" hR="ch4" stAng="3cd4" swAng="cd2" />\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="ch" y="y3" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="ch" y="ch2" />\r
+        </lnTo>\r
+        <arcTo wR="ch2" hR="ch2" stAng="cd2" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x7" y="t" />\r
+        </lnTo>\r
+        <arcTo wR="ch2" hR="ch2" stAng="3cd4" swAng="cd2" />\r
+        <lnTo>\r
+          <pt x="x6" y="ch" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x6" y="y4" />\r
+        </lnTo>\r
+        <arcTo wR="ch2" hR="ch2" stAng="0" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="ch2" y="b" />\r
+        </lnTo>\r
+        <arcTo wR="ch2" hR="ch2" stAng="cd4" swAng="cd2" />\r
+        <close />\r
+        <moveTo>\r
+          <pt x="x3" y="t" />\r
+        </moveTo>\r
+        <arcTo wR="ch2" hR="ch2" stAng="3cd4" swAng="cd2" />\r
+        <arcTo wR="ch4" hR="ch4" stAng="cd4" swAng="cd2" />\r
+        <lnTo>\r
+          <pt x="x4" y="ch2" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="x6" y="ch" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x3" y="ch" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="ch2" y="y3" />\r
+        </moveTo>\r
+        <arcTo wR="ch4" hR="ch4" stAng="3cd4" swAng="cd2" />\r
+        <lnTo>\r
+          <pt x="ch" y="y4" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="ch2" y="b" />\r
+        </moveTo>\r
+        <arcTo wR="ch2" hR="ch2" stAng="cd4" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="ch" y="y3" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+\r
+  </verticalScroll>\r
+  <wave>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 12500" />\r
+\r
+      <gd name="adj2" fmla="val 0" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a1" fmla="pin 0 adj1 20000" />\r
+      <gd name="a2" fmla="pin -10000 adj2 10000" />\r
+      <gd name="y1" fmla="*/ h a1 100000" />\r
+\r
+      <gd name="dy2" fmla="*/ y1 10 3" />\r
+      <gd name="y2" fmla="+- y1 0 dy2" />\r
+\r
+      <gd name="y3" fmla="+- y1 dy2 0" />\r
+\r
+      <gd name="y4" fmla="+- b 0 y1" />\r
+\r
+      <gd name="y5" fmla="+- y4 0 dy2" />\r
+\r
+      <gd name="y6" fmla="+- y4 dy2 0" />\r
+\r
+      <gd name="dx1" fmla="*/ w a2 100000" />\r
+\r
+      <gd name="of2" fmla="*/ w a2 50000" />\r
+\r
+      <gd name="x1" fmla="abs dx1" />\r
+\r
+      <gd name="dx2" fmla="?: of2 0 of2" />\r
+      <gd name="x2" fmla="+- l 0 dx2" />\r
+\r
+      <gd name="dx5" fmla="?: of2 of2 0" />\r
+      <gd name="x5" fmla="+- r 0 dx5" />\r
+\r
+      <gd name="dx3" fmla="+/ dx2 x5 3" />\r
+\r
+      <gd name="x3" fmla="+- x2 dx3 0" />\r
+\r
+      <gd name="x4" fmla="+/ x3 x5 2" />\r
+\r
+      <gd name="x6" fmla="+- l dx5 0" />\r
+\r
+      <gd name="x10" fmla="+- r dx2 0" />\r
+\r
+      <gd name="x7" fmla="+- x6 dx3 0" />\r
+\r
+      <gd name="x8" fmla="+/ x7 x10 2" />\r
+\r
+      <gd name="x9" fmla="+- r 0 x1" />\r
+\r
+      <gd name="xAdj" fmla="+- hc dx1 0" />\r
+      <gd name="xAdj2" fmla="+- hc 0 dx1" />\r
+      <gd name="il" fmla="max x2 x6" />\r
+      <gd name="ir" fmla="min x5 x10" />\r
+      <gd name="it" fmla="*/ h a1 50000" />\r
+      <gd name="ib" fmla="+- b 0 it" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="20000">\r
+        <pos x="l" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="-10000" maxX="10000">\r
+        <pos x="xAdj" y="b" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="cd4">\r
+        <pos x="xAdj2" y="y1" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="xAdj" y="y4" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x9" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="x2" y="y1" />\r
+        </moveTo>\r
+        <cubicBezTo>\r
+          <pt x="x3" y="y2" />\r
+          <pt x="x4" y="y3" />\r
+          <pt x="x5" y="y1" />\r
+        </cubicBezTo>\r
+        <lnTo>\r
+          <pt x="x10" y="y4" />\r
+        </lnTo>\r
+        <cubicBezTo>\r
+          <pt x="x8" y="y6" />\r
+          <pt x="x7" y="y5" />\r
+          <pt x="x6" y="y4" />\r
+        </cubicBezTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </wave>\r
+  <wedgeEllipseCallout>\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val -20833" />\r
+      <gd name="adj2" fmla="val 62500" />\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="dxPos" fmla="*/ w adj1 100000" />\r
+      <gd name="dyPos" fmla="*/ h adj2 100000" />\r
+      <gd name="xPos" fmla="+- hc dxPos 0" />\r
+      <gd name="yPos" fmla="+- vc dyPos 0" />\r
+      <gd name="sdx" fmla="*/ dxPos h 1" />\r
+      <gd name="sdy" fmla="*/ dyPos w 1" />\r
+      <gd name="pang" fmla="at2 sdx sdy" />\r
+      <gd name="stAng" fmla="+- pang 660000 0" />\r
+      <gd name="enAng" fmla="+- pang 0 660000" />\r
+      <gd name="dx1" fmla="cos wd2 stAng" />\r
+      <gd name="dy1" fmla="sin hd2 stAng" />\r
+      <gd name="x1" fmla="+- hc dx1 0" />\r
+      <gd name="y1" fmla="+- vc dy1 0" />\r
+      <gd name="dx2" fmla="cos wd2 enAng" />\r
+      <gd name="dy2" fmla="sin hd2 enAng" />\r
+      <gd name="x2" fmla="+- hc dx2 0" />\r
+      <gd name="y2" fmla="+- vc dy2 0" />\r
+      <gd name="stAng1" fmla="at2 dx1 dy1" />\r
+      <gd name="enAng1" fmla="at2 dx2 dy2" />\r
+      <gd name="swAng1" fmla="+- enAng1 0 stAng1" />\r
+      <gd name="swAng2" fmla="+- swAng1 21600000 0" />\r
+      <gd name="swAng" fmla="?: swAng1 swAng1 swAng2" />\r
+      <gd name="idx" fmla="cos wd2 2700000" />\r
+      <gd name="idy" fmla="sin hd2 2700000" />\r
+      <gd name="il" fmla="+- hc 0 idx" />\r
+      <gd name="ir" fmla="+- hc idx 0" />\r
+      <gd name="it" fmla="+- vc 0 idy" />\r
+      <gd name="ib" fmla="+- vc idy 0" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="-2147483647" maxX="2147483647" gdRefY="adj2" minY="-2147483647" maxY="2147483647">\r
+        <pos x="xPos" y="yPos" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="il" y="it" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="il" y="ib" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="ir" y="ib" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="ir" y="it" />\r
+      </cxn>\r
+      <cxn ang="pang">\r
+        <pos x="xPos" y="yPos" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="xPos" y="yPos" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y1" />\r
+        </lnTo>\r
+        <arcTo wR="wd2" hR="hd2" stAng="stAng1" swAng="swAng" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+  </wedgeEllipseCallout>\r
+  <wedgeRectCallout>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val -20833" />\r
+\r
+      <gd name="adj2" fmla="val 62500" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="dxPos" fmla="*/ w adj1 100000" />\r
+      <gd name="dyPos" fmla="*/ h adj2 100000" />\r
+      <gd name="xPos" fmla="+- hc dxPos 0" />\r
+      <gd name="yPos" fmla="+- vc dyPos 0" />\r
+      <gd name="dx" fmla="+- xPos 0 hc" />\r
+      <gd name="dy" fmla="+- yPos 0 vc" />\r
+      <gd name="dq" fmla="*/ dxPos h w" />\r
+      <gd name="ady" fmla="abs dyPos" />\r
+      <gd name="adq" fmla="abs dq" />\r
+      <gd name="dz" fmla="+- ady 0 adq" />\r
+      <gd name="xg1" fmla="?: dxPos 7 2" />\r
+      <gd name="xg2" fmla="?: dxPos 10 5" />\r
+      <gd name="x1" fmla="*/ w xg1 12" />\r
+      <gd name="x2" fmla="*/ w xg2 12" />\r
+      <gd name="yg1" fmla="?: dyPos 7 2" />\r
+      <gd name="yg2" fmla="?: dyPos 10 5" />\r
+      <gd name="y1" fmla="*/ h yg1 12" />\r
+      <gd name="y2" fmla="*/ h yg2 12" />\r
+      <gd name="t1" fmla="?: dxPos l xPos" />\r
+      <gd name="xl" fmla="?: dz l t1" />\r
+      <gd name="t2" fmla="?: dyPos x1 xPos" />\r
+      <gd name="xt" fmla="?: dz t2 x1" />\r
+      <gd name="t3" fmla="?: dxPos xPos r" />\r
+      <gd name="xr" fmla="?: dz r t3" />\r
+      <gd name="t4" fmla="?: dyPos xPos x1" />\r
+      <gd name="xb" fmla="?: dz t4 x1" />\r
+      <gd name="t5" fmla="?: dxPos y1 yPos" />\r
+      <gd name="yl" fmla="?: dz y1 t5" />\r
+      <gd name="t6" fmla="?: dyPos t yPos" />\r
+      <gd name="yt" fmla="?: dz t6 t" />\r
+      <gd name="t7" fmla="?: dxPos yPos y1" />\r
+      <gd name="yr" fmla="?: dz y1 t7" />\r
+      <gd name="t8" fmla="?: dyPos yPos b" />\r
+      <gd name="yb" fmla="?: dz t8 b" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="-2147483647" maxX="2147483647" gdRefY="adj2" minY="-2147483647" maxY="2147483647">\r
+        <pos x="xPos" y="yPos" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="xPos" y="yPos" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xt" y="yt" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xr" y="yr" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xb" y="yb" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xl" y="yl" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="y1" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </wedgeRectCallout>\r
+  <wedgeRoundRectCallout>\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val -20833" />\r
+      <gd name="adj2" fmla="val 62500" />\r
+      <gd name="adj3" fmla="val 16667" />\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="dxPos" fmla="*/ w adj1 100000" />\r
+      <gd name="dyPos" fmla="*/ h adj2 100000" />\r
+      <gd name="xPos" fmla="+- hc dxPos 0" />\r
+      <gd name="yPos" fmla="+- vc dyPos 0" />\r
+      <gd name="dq" fmla="*/ dxPos h w" />\r
+      <gd name="ady" fmla="abs dyPos" />\r
+      <gd name="adq" fmla="abs dq" />\r
+      <gd name="dz" fmla="+- ady 0 adq" />\r
+      <gd name="xg1" fmla="?: dxPos 7 2" />\r
+      <gd name="xg2" fmla="?: dxPos 10 5" />\r
+      <gd name="x1" fmla="*/ w xg1 12" />\r
+      <gd name="x2" fmla="*/ w xg2 12" />\r
+      <gd name="yg1" fmla="?: dyPos 7 2" />\r
+      <gd name="yg2" fmla="?: dyPos 10 5" />\r
+      <gd name="y1" fmla="*/ h yg1 12" />\r
+      <gd name="y2" fmla="*/ h yg2 12" />\r
+      <gd name="t1" fmla="?: dxPos l xPos" />\r
+      <gd name="xl" fmla="?: dz l t1" />\r
+      <gd name="t2" fmla="?: dyPos x1 xPos" />\r
+      <gd name="xt" fmla="?: dz t2 x1" />\r
+      <gd name="t3" fmla="?: dxPos xPos r" />\r
+      <gd name="xr" fmla="?: dz r t3" />\r
+      <gd name="t4" fmla="?: dyPos xPos x1" />\r
+      <gd name="xb" fmla="?: dz t4 x1" />\r
+      <gd name="t5" fmla="?: dxPos y1 yPos" />\r
+      <gd name="yl" fmla="?: dz y1 t5" />\r
+      <gd name="t6" fmla="?: dyPos t yPos" />\r
+      <gd name="yt" fmla="?: dz t6 t" />\r
+      <gd name="t7" fmla="?: dxPos yPos y1" />\r
+      <gd name="yr" fmla="?: dz y1 t7" />\r
+      <gd name="t8" fmla="?: dyPos yPos b" />\r
+      <gd name="yb" fmla="?: dz t8 b" />\r
+      <gd name="u1" fmla="*/ ss adj3 100000" />\r
+      <gd name="u2" fmla="+- r 0 u1" />\r
+      <gd name="v2" fmla="+- b 0 u1" />\r
+      <gd name="il" fmla="*/ u1 29289 100000" />\r
+      <gd name="ir" fmla="+- r 0 il" />\r
+      <gd name="ib" fmla="+- b 0 il" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="-2147483647" maxX="2147483647" gdRefY="adj2" minY="-2147483647" maxY="2147483647">\r
+        <pos x="xPos" y="yPos" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="xPos" y="yPos" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="il" t="il" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="u1" />\r
+        </moveTo>\r
+        <arcTo wR="u1" hR="u1" stAng="cd2" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x1" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xt" y="yt" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="u2" y="t" />\r
+        </lnTo>\r
+        <arcTo wR="u1" hR="u1" stAng="3cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="r" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xr" y="yr" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="v2" />\r
+        </lnTo>\r
+        <arcTo wR="u1" hR="u1" stAng="0" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x2" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xb" y="yb" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="u1" y="b" />\r
+        </lnTo>\r
+        <arcTo wR="u1" hR="u1" stAng="cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="l" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xl" y="yl" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="y1" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+  </wedgeRoundRectCallout>\r
+</presetShapeDefinitons>\r
diff --git a/src/resources/scratchpad/org/apache/poi/sl/draw/presetShapeDefinitions.xml b/src/resources/scratchpad/org/apache/poi/sl/draw/presetShapeDefinitions.xml
deleted file mode 100644 (file)
index 4a3a070..0000000
+++ /dev/null
@@ -1,19906 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<presetShapeDefinitons>\r
-  <accentBorderCallout1>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-\r
-      <gd name="adj1" fmla="val 18750" />\r
-\r
-      <gd name="adj2" fmla="val -8333" />\r
-\r
-      <gd name="adj3" fmla="val 112500" />\r
-\r
-      <gd name="adj4" fmla="val -38333" />\r
-\r
-    </avLst>\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="y1" fmla="*/ h adj1 100000" />\r
-      <gd name="x1" fmla="*/ w adj2 100000" />\r
-      <gd name="y2" fmla="*/ h adj3 100000" />\r
-      <gd name="x2" fmla="*/ w adj4 100000" />\r
-    </gdLst>\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj2" minX="-2147483647" maxX="2147483647" gdRefY="adj1" minY="-2147483647" maxY="2147483647">\r
-        <pos x="x1" y="y1" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj4" minX="-2147483647" maxX="2147483647" gdRefY="adj3" minY="-2147483647" maxY="2147483647">\r
-        <pos x="x2" y="y2" />\r
-      </ahXY>\r
-    </ahLst>\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-    </cxnLst>\r
-    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="r" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path fill="none" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="x1" y="t" />\r
-        </moveTo>\r
-        <close />\r
-        <lnTo>\r
-          <pt x="x1" y="b" />\r
-        </lnTo>\r
-      </path>\r
-      <path fill="none" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="x1" y="y1" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y2" />\r
-        </lnTo>\r
-      </path>\r
-    </pathLst>\r
-\r
-  </accentBorderCallout1>\r
-  <accentBorderCallout2>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-\r
-      <gd name="adj1" fmla="val 18750" />\r
-\r
-      <gd name="adj2" fmla="val -8333" />\r
-\r
-      <gd name="adj3" fmla="val 18750" />\r
-\r
-      <gd name="adj4" fmla="val -16667" />\r
-\r
-      <gd name="adj5" fmla="val 112500" />\r
-\r
-      <gd name="adj6" fmla="val -46667" />\r
-\r
-    </avLst>\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="y1" fmla="*/ h adj1 100000" />\r
-      <gd name="x1" fmla="*/ w adj2 100000" />\r
-      <gd name="y2" fmla="*/ h adj3 100000" />\r
-      <gd name="x2" fmla="*/ w adj4 100000" />\r
-      <gd name="y3" fmla="*/ h adj5 100000" />\r
-      <gd name="x3" fmla="*/ w adj6 100000" />\r
-    </gdLst>\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj2" minX="-2147483647" maxX="2147483647" gdRefY="adj1" minY="-2147483647" maxY="2147483647">\r
-        <pos x="x1" y="y1" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj4" minX="-2147483647" maxX="2147483647" gdRefY="adj3" minY="-2147483647" maxY="2147483647">\r
-        <pos x="x2" y="y2" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj6" minX="-2147483647" maxX="2147483647" gdRefY="adj5" minY="-2147483647" maxY="2147483647">\r
-        <pos x="x3" y="y3" />\r
-      </ahXY>\r
-    </ahLst>\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-    </cxnLst>\r
-    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="r" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path fill="none" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="x1" y="t" />\r
-        </moveTo>\r
-        <close />\r
-        <lnTo>\r
-          <pt x="x1" y="b" />\r
-        </lnTo>\r
-      </path>\r
-      <path fill="none" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="x1" y="y1" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y3" />\r
-        </lnTo>\r
-      </path>\r
-    </pathLst>\r
-\r
-  </accentBorderCallout2>\r
-  <accentBorderCallout3>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-\r
-      <gd name="adj1" fmla="val 18750" />\r
-\r
-      <gd name="adj2" fmla="val -8333" />\r
-\r
-      <gd name="adj3" fmla="val 18750" />\r
-\r
-      <gd name="adj4" fmla="val -16667" />\r
-\r
-      <gd name="adj5" fmla="val 100000" />\r
-\r
-      <gd name="adj6" fmla="val -16667" />\r
-\r
-      <gd name="adj7" fmla="val 112963" />\r
-\r
-      <gd name="adj8" fmla="val -8333" />\r
-\r
-    </avLst>\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="y1" fmla="*/ h adj1 100000" />\r
-      <gd name="x1" fmla="*/ w adj2 100000" />\r
-      <gd name="y2" fmla="*/ h adj3 100000" />\r
-      <gd name="x2" fmla="*/ w adj4 100000" />\r
-      <gd name="y3" fmla="*/ h adj5 100000" />\r
-      <gd name="x3" fmla="*/ w adj6 100000" />\r
-      <gd name="y4" fmla="*/ h adj7 100000" />\r
-      <gd name="x4" fmla="*/ w adj8 100000" />\r
-    </gdLst>\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj2" minX="-2147483647" maxX="2147483647" gdRefY="adj1" minY="-2147483647" maxY="2147483647">\r
-        <pos x="x1" y="y1" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj4" minX="-2147483647" maxX="2147483647" gdRefY="adj3" minY="-2147483647" maxY="2147483647">\r
-        <pos x="x2" y="y2" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj6" minX="-2147483647" maxX="2147483647" gdRefY="adj5" minY="-2147483647" maxY="2147483647">\r
-        <pos x="x3" y="y3" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj8" minX="-2147483647" maxX="2147483647" gdRefY="adj7" minY="-2147483647" maxY="2147483647">\r
-        <pos x="x4" y="y4" />\r
-      </ahXY>\r
-    </ahLst>\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-    </cxnLst>\r
-    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="r" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path fill="none" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="x1" y="t" />\r
-        </moveTo>\r
-        <close />\r
-        <lnTo>\r
-          <pt x="x1" y="b" />\r
-        </lnTo>\r
-      </path>\r
-      <path fill="none" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="x1" y="y1" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y4" />\r
-        </lnTo>\r
-      </path>\r
-    </pathLst>\r
-\r
-  </accentBorderCallout3>\r
-  <accentCallout1>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-\r
-      <gd name="adj1" fmla="val 18750" />\r
-\r
-      <gd name="adj2" fmla="val -8333" />\r
-\r
-      <gd name="adj3" fmla="val 112500" />\r
-\r
-      <gd name="adj4" fmla="val -38333" />\r
-\r
-    </avLst>\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="y1" fmla="*/ h adj1 100000" />\r
-      <gd name="x1" fmla="*/ w adj2 100000" />\r
-      <gd name="y2" fmla="*/ h adj3 100000" />\r
-      <gd name="x2" fmla="*/ w adj4 100000" />\r
-    </gdLst>\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj2" minX="-2147483647" maxX="2147483647" gdRefY="adj1" minY="-2147483647" maxY="2147483647">\r
-        <pos x="x1" y="y1" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj4" minX="-2147483647" maxX="2147483647" gdRefY="adj3" minY="-2147483647" maxY="2147483647">\r
-        <pos x="x2" y="y2" />\r
-      </ahXY>\r
-    </ahLst>\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-    </cxnLst>\r
-    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path stroke="false" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="r" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path fill="none" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="x1" y="t" />\r
-        </moveTo>\r
-        <close />\r
-        <lnTo>\r
-          <pt x="x1" y="b" />\r
-        </lnTo>\r
-      </path>\r
-      <path fill="none" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="x1" y="y1" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y2" />\r
-        </lnTo>\r
-      </path>\r
-    </pathLst>\r
-\r
-  </accentCallout1>\r
-  <accentCallout2>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-\r
-      <gd name="adj1" fmla="val 18750" />\r
-\r
-      <gd name="adj2" fmla="val -8333" />\r
-\r
-      <gd name="adj3" fmla="val 18750" />\r
-\r
-      <gd name="adj4" fmla="val -16667" />\r
-\r
-      <gd name="adj5" fmla="val 112500" />\r
-\r
-      <gd name="adj6" fmla="val -46667" />\r
-\r
-    </avLst>\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="y1" fmla="*/ h adj1 100000" />\r
-      <gd name="x1" fmla="*/ w adj2 100000" />\r
-      <gd name="y2" fmla="*/ h adj3 100000" />\r
-      <gd name="x2" fmla="*/ w adj4 100000" />\r
-      <gd name="y3" fmla="*/ h adj5 100000" />\r
-      <gd name="x3" fmla="*/ w adj6 100000" />\r
-    </gdLst>\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj2" minX="-2147483647" maxX="2147483647" gdRefY="adj1" minY="-2147483647" maxY="2147483647">\r
-        <pos x="x1" y="y1" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj4" minX="-2147483647" maxX="2147483647" gdRefY="adj3" minY="-2147483647" maxY="2147483647">\r
-        <pos x="x2" y="y2" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj6" minX="-2147483647" maxX="2147483647" gdRefY="adj5" minY="-2147483647" maxY="2147483647">\r
-        <pos x="x3" y="y3" />\r
-      </ahXY>\r
-    </ahLst>\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-    </cxnLst>\r
-    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path stroke="false" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="r" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path fill="none" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="x1" y="t" />\r
-        </moveTo>\r
-        <close />\r
-        <lnTo>\r
-          <pt x="x1" y="b" />\r
-        </lnTo>\r
-      </path>\r
-      <path fill="none" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="x1" y="y1" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y3" />\r
-        </lnTo>\r
-      </path>\r
-    </pathLst>\r
-\r
-  </accentCallout2>\r
-  <accentCallout3>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-\r
-      <gd name="adj1" fmla="val 18750" />\r
-\r
-      <gd name="adj2" fmla="val -8333" />\r
-\r
-      <gd name="adj3" fmla="val 18750" />\r
-\r
-      <gd name="adj4" fmla="val -16667" />\r
-\r
-      <gd name="adj5" fmla="val 100000" />\r
-\r
-      <gd name="adj6" fmla="val -16667" />\r
-\r
-      <gd name="adj7" fmla="val 112963" />\r
-\r
-      <gd name="adj8" fmla="val -8333" />\r
-\r
-    </avLst>\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="y1" fmla="*/ h adj1 100000" />\r
-      <gd name="x1" fmla="*/ w adj2 100000" />\r
-      <gd name="y2" fmla="*/ h adj3 100000" />\r
-      <gd name="x2" fmla="*/ w adj4 100000" />\r
-      <gd name="y3" fmla="*/ h adj5 100000" />\r
-      <gd name="x3" fmla="*/ w adj6 100000" />\r
-      <gd name="y4" fmla="*/ h adj7 100000" />\r
-      <gd name="x4" fmla="*/ w adj8 100000" />\r
-    </gdLst>\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj2" minX="-2147483647" maxX="2147483647" gdRefY="adj1" minY="-2147483647" maxY="2147483647">\r
-        <pos x="x1" y="y1" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj4" minX="-2147483647" maxX="2147483647" gdRefY="adj3" minY="-2147483647" maxY="2147483647">\r
-        <pos x="x2" y="y2" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj6" minX="-2147483647" maxX="2147483647" gdRefY="adj5" minY="-2147483647" maxY="2147483647">\r
-        <pos x="x3" y="y3" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj8" minX="-2147483647" maxX="2147483647" gdRefY="adj7" minY="-2147483647" maxY="2147483647">\r
-        <pos x="x4" y="y4" />\r
-      </ahXY>\r
-    </ahLst>\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-    </cxnLst>\r
-    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path stroke="false" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="r" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path fill="none" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="x1" y="t" />\r
-        </moveTo>\r
-        <close />\r
-        <lnTo>\r
-          <pt x="x1" y="b" />\r
-        </lnTo>\r
-      </path>\r
-      <path fill="none" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="x1" y="y1" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y4" />\r
-        </lnTo>\r
-      </path>\r
-    </pathLst>\r
-\r
-  </accentCallout3>\r
-  <actionButtonBackPrevious>\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="dx2" fmla="*/ ss 3 8" />\r
-      <gd name="g9" fmla="+- vc 0 dx2" />\r
-      <gd name="g10" fmla="+- vc dx2 0" />\r
-      <gd name="g11" fmla="+- hc 0 dx2" />\r
-      <gd name="g12" fmla="+- hc dx2 0" />\r
-    </gdLst>\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-    </cxnLst>\r
-    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path stroke="false" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="r" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <close />\r
-        <moveTo>\r
-          <pt x="g11" y="vc" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="g12" y="g9" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g12" y="g10" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path stroke="false" fill="darken" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="g11" y="vc" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="g12" y="g9" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g12" y="g10" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path fill="none" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="g11" y="vc" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="g12" y="g9" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g12" y="g10" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path fill="none">\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="r" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-  </actionButtonBackPrevious>\r
-  <actionButtonBeginning>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="dx2" fmla="*/ ss 3 8" />\r
-      <gd name="g9" fmla="+- vc 0 dx2" />\r
-      <gd name="g10" fmla="+- vc dx2 0" />\r
-      <gd name="g11" fmla="+- hc 0 dx2" />\r
-      <gd name="g12" fmla="+- hc dx2 0" />\r
-      <gd name="g13" fmla="*/ ss 3 4" />\r
-      <gd name="g14" fmla="*/ g13 1 8" />\r
-      <gd name="g15" fmla="*/ g13 1 4" />\r
-      <gd name="g16" fmla="+- g11 g14 0" />\r
-      <gd name="g17" fmla="+- g11 g15 0" />\r
-    </gdLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path stroke="false" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="r" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <close />\r
-        <moveTo>\r
-          <pt x="g17" y="vc" />\r
-        </moveTo>\r
-\r
-        <lnTo>\r
-          <pt x="g12" y="g9" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g12" y="g10" />\r
-        </lnTo>\r
-        <close />\r
-        <moveTo>\r
-          <pt x="g16" y="g9" />\r
-        </moveTo>\r
-\r
-        <lnTo>\r
-          <pt x="g11" y="g9" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g11" y="g10" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g16" y="g10" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path stroke="false" fill="darken" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="g17" y="vc" />\r
-        </moveTo>\r
-\r
-        <lnTo>\r
-          <pt x="g12" y="g9" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g12" y="g10" />\r
-        </lnTo>\r
-        <close />\r
-        <moveTo>\r
-          <pt x="g16" y="g9" />\r
-        </moveTo>\r
-\r
-        <lnTo>\r
-          <pt x="g11" y="g9" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g11" y="g10" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g16" y="g10" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path fill="none" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="g17" y="vc" />\r
-        </moveTo>\r
-\r
-        <lnTo>\r
-          <pt x="g12" y="g9" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g12" y="g10" />\r
-        </lnTo>\r
-        <close />\r
-        <moveTo>\r
-          <pt x="g16" y="g9" />\r
-        </moveTo>\r
-\r
-        <lnTo>\r
-          <pt x="g16" y="g10" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g11" y="g10" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g11" y="g9" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path fill="none">\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-\r
-        <lnTo>\r
-          <pt x="r" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </actionButtonBeginning>\r
-  <actionButtonBlank>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="r" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </actionButtonBlank>\r
-  <actionButtonDocument>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="dx2" fmla="*/ ss 3 8" />\r
-      <gd name="g9" fmla="+- vc 0 dx2" />\r
-      <gd name="g10" fmla="+- vc dx2 0" />\r
-      <gd name="dx1" fmla="*/ ss 9 32" />\r
-      <gd name="g11" fmla="+- hc 0 dx1" />\r
-      <gd name="g12" fmla="+- hc dx1 0" />\r
-      <gd name="g13" fmla="*/ ss 3 16" />\r
-      <gd name="g14" fmla="+- g12 0 g13" />\r
-      <gd name="g15" fmla="+- g9 g13 0" />\r
-    </gdLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path stroke="false" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="r" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <close />\r
-        <moveTo>\r
-          <pt x="g11" y="g9" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="g14" y="g9" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g12" y="g15" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g12" y="g10" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g11" y="g10" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path stroke="false" fill="darkenLess" extrusionOk="false">\r
-\r
-        <moveTo>\r
-          <pt x="g11" y="g9" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="g14" y="g9" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g14" y="g15" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g12" y="g15" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g12" y="g10" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g11" y="g10" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path stroke="false" fill="darken" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="g14" y="g9" />\r
-        </moveTo>\r
-\r
-        <lnTo>\r
-          <pt x="g14" y="g15" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g12" y="g15" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path fill="none" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="g11" y="g9" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="g14" y="g9" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g12" y="g15" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g12" y="g10" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g11" y="g10" />\r
-        </lnTo>\r
-        <close />\r
-        <moveTo>\r
-          <pt x="g12" y="g15" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="g14" y="g15" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g14" y="g9" />\r
-        </lnTo>\r
-      </path>\r
-      <path fill="none">\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-\r
-        <lnTo>\r
-          <pt x="r" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </actionButtonDocument>\r
-  <actionButtonEnd>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="dx2" fmla="*/ ss 3 8" />\r
-      <gd name="g9" fmla="+- vc 0 dx2" />\r
-      <gd name="g10" fmla="+- vc dx2 0" />\r
-      <gd name="g11" fmla="+- hc 0 dx2" />\r
-      <gd name="g12" fmla="+- hc dx2 0" />\r
-      <gd name="g13" fmla="*/ ss 3 4" />\r
-      <gd name="g14" fmla="*/ g13 3 4" />\r
-      <gd name="g15" fmla="*/ g13 7 8" />\r
-      <gd name="g16" fmla="+- g11 g14 0" />\r
-      <gd name="g17" fmla="+- g11 g15 0" />\r
-    </gdLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path stroke="false" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="r" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <close />\r
-        <moveTo>\r
-          <pt x="g16" y="vc" />\r
-        </moveTo>\r
-\r
-        <lnTo>\r
-          <pt x="g11" y="g9" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g11" y="g10" />\r
-        </lnTo>\r
-        <close />\r
-        <moveTo>\r
-          <pt x="g17" y="g9" />\r
-        </moveTo>\r
-\r
-        <lnTo>\r
-          <pt x="g12" y="g9" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g12" y="g10" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g17" y="g10" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path stroke="false" fill="darken" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="g16" y="vc" />\r
-        </moveTo>\r
-\r
-        <lnTo>\r
-          <pt x="g11" y="g9" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g11" y="g10" />\r
-        </lnTo>\r
-        <close />\r
-        <moveTo>\r
-          <pt x="g17" y="g9" />\r
-        </moveTo>\r
-\r
-        <lnTo>\r
-          <pt x="g12" y="g9" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g12" y="g10" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g17" y="g10" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path fill="none" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="g16" y="vc" />\r
-        </moveTo>\r
-\r
-        <lnTo>\r
-          <pt x="g11" y="g10" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g11" y="g9" />\r
-        </lnTo>\r
-        <close />\r
-        <moveTo>\r
-          <pt x="g17" y="g9" />\r
-        </moveTo>\r
-\r
-        <lnTo>\r
-          <pt x="g12" y="g9" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g12" y="g10" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g17" y="g10" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path fill="none">\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-\r
-        <lnTo>\r
-          <pt x="r" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </actionButtonEnd>\r
-  <actionButtonForwardNext>\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="dx2" fmla="*/ ss 3 8" />\r
-      <gd name="g9" fmla="+- vc 0 dx2" />\r
-      <gd name="g10" fmla="+- vc dx2 0" />\r
-      <gd name="g11" fmla="+- hc 0 dx2" />\r
-      <gd name="g12" fmla="+- hc dx2 0" />\r
-    </gdLst>\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-    </cxnLst>\r
-    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path stroke="false" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="r" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <close />\r
-        <moveTo>\r
-          <pt x="g12" y="vc" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="g11" y="g9" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g11" y="g10" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path stroke="false" fill="darken" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="g12" y="vc" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="g11" y="g9" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g11" y="g10" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path fill="none" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="g12" y="vc" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="g11" y="g10" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g11" y="g9" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path fill="none">\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="r" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-  </actionButtonForwardNext>\r
-  <actionButtonHelp>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="dx2" fmla="*/ ss 3 8" />\r
-      <gd name="g9" fmla="+- vc 0 dx2" />\r
-      <gd name="g11" fmla="+- hc 0 dx2" />\r
-      <gd name="g13" fmla="*/ ss 3 4" />\r
-      <gd name="g14" fmla="*/ g13 1 7" />\r
-      <gd name="g15" fmla="*/ g13 3 14" />\r
-      <gd name="g16" fmla="*/ g13 2 7" />\r
-      <gd name="g19" fmla="*/ g13 3 7" />\r
-      <gd name="g20" fmla="*/ g13 4 7" />\r
-      <gd name="g21" fmla="*/ g13 17 28" />\r
-      <gd name="g23" fmla="*/ g13 21 28" />\r
-      <gd name="g24" fmla="*/ g13 11 14" />\r
-      <gd name="g27" fmla="+- g9 g16 0" />\r
-      <gd name="g29" fmla="+- g9 g21 0" />\r
-      <gd name="g30" fmla="+- g9 g23 0" />\r
-      <gd name="g31" fmla="+- g9 g24 0" />\r
-      <gd name="g33" fmla="+- g11 g15 0" />\r
-      <gd name="g36" fmla="+- g11 g19 0" />\r
-      <gd name="g37" fmla="+- g11 g20 0" />\r
-      <gd name="g41" fmla="*/ g13 1 14" />\r
-      <gd name="g42" fmla="*/ g13 3 28" />\r
-    </gdLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path stroke="false" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="r" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <close />\r
-        <moveTo>\r
-          <pt x="g33" y="g27" />\r
-        </moveTo>\r
-\r
-        <arcTo wR="g16" hR="g16" stAng="cd2" swAng="cd2" />\r
-        <arcTo wR="g14" hR="g15" stAng="0" swAng="cd4" />\r
-        <arcTo wR="g41" hR="g42" stAng="3cd4" swAng="-5400000" />\r
-        <lnTo>\r
-          <pt x="g37" y="g30" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g36" y="g30" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g36" y="g29" />\r
-        </lnTo>\r
-        <arcTo wR="g14" hR="g15" stAng="cd2" swAng="cd4" />\r
-        <arcTo wR="g41" hR="g42" stAng="cd4" swAng="-5400000" />\r
-        <arcTo wR="g14" hR="g14" stAng="0" swAng="-10800000" />\r
-        <close />\r
-        <moveTo>\r
-          <pt x="hc" y="g31" />\r
-        </moveTo>\r
-\r
-        <arcTo wR="g42" hR="g42" stAng="3cd4" swAng="21600000" />\r
-        <close />\r
-      </path>\r
-      <path stroke="false" fill="darken" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="g33" y="g27" />\r
-        </moveTo>\r
-\r
-        <arcTo wR="g16" hR="g16" stAng="cd2" swAng="cd2" />\r
-        <arcTo wR="g14" hR="g15" stAng="0" swAng="cd4" />\r
-        <arcTo wR="g41" hR="g42" stAng="3cd4" swAng="-5400000" />\r
-        <lnTo>\r
-          <pt x="g37" y="g30" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g36" y="g30" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g36" y="g29" />\r
-        </lnTo>\r
-        <arcTo wR="g14" hR="g15" stAng="cd2" swAng="cd4" />\r
-        <arcTo wR="g41" hR="g42" stAng="cd4" swAng="-5400000" />\r
-        <arcTo wR="g14" hR="g14" stAng="0" swAng="-10800000" />\r
-        <close />\r
-        <moveTo>\r
-          <pt x="hc" y="g31" />\r
-        </moveTo>\r
-\r
-        <arcTo wR="g42" hR="g42" stAng="3cd4" swAng="21600000" />\r
-        <close />\r
-      </path>\r
-      <path fill="none" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="g33" y="g27" />\r
-        </moveTo>\r
-\r
-        <arcTo wR="g16" hR="g16" stAng="cd2" swAng="cd2" />\r
-        <arcTo wR="g14" hR="g15" stAng="0" swAng="cd4" />\r
-        <arcTo wR="g41" hR="g42" stAng="3cd4" swAng="-5400000" />\r
-        <lnTo>\r
-          <pt x="g37" y="g30" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g36" y="g30" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g36" y="g29" />\r
-        </lnTo>\r
-        <arcTo wR="g14" hR="g15" stAng="cd2" swAng="cd4" />\r
-        <arcTo wR="g41" hR="g42" stAng="cd4" swAng="-5400000" />\r
-        <arcTo wR="g14" hR="g14" stAng="0" swAng="-10800000" />\r
-        <close />\r
-        <moveTo>\r
-          <pt x="hc" y="g31" />\r
-        </moveTo>\r
-\r
-        <arcTo wR="g42" hR="g42" stAng="3cd4" swAng="21600000" />\r
-        <close />\r
-      </path>\r
-      <path fill="none">\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-\r
-        <lnTo>\r
-          <pt x="r" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </actionButtonHelp>\r
-  <actionButtonHome>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="dx2" fmla="*/ ss 3 8" />\r
-      <gd name="g9" fmla="+- vc 0 dx2" />\r
-      <gd name="g10" fmla="+- vc dx2 0" />\r
-      <gd name="g11" fmla="+- hc 0 dx2" />\r
-      <gd name="g12" fmla="+- hc dx2 0" />\r
-      <gd name="g13" fmla="*/ ss 3 4" />\r
-      <gd name="g14" fmla="*/ g13 1 16" />\r
-      <gd name="g15" fmla="*/ g13 1 8" />\r
-      <gd name="g16" fmla="*/ g13 3 16" />\r
-      <gd name="g17" fmla="*/ g13 5 16" />\r
-      <gd name="g18" fmla="*/ g13 7 16" />\r
-      <gd name="g19" fmla="*/ g13 9 16" />\r
-      <gd name="g20" fmla="*/ g13 11 16" />\r
-      <gd name="g21" fmla="*/ g13 3 4" />\r
-      <gd name="g22" fmla="*/ g13 13 16" />\r
-      <gd name="g23" fmla="*/ g13 7 8" />\r
-      <gd name="g24" fmla="+- g9 g14 0" />\r
-      <gd name="g25" fmla="+- g9 g16 0" />\r
-      <gd name="g26" fmla="+- g9 g17 0" />\r
-      <gd name="g27" fmla="+- g9 g21 0" />\r
-      <gd name="g28" fmla="+- g11 g15 0" />\r
-      <gd name="g29" fmla="+- g11 g18 0" />\r
-      <gd name="g30" fmla="+- g11 g19 0" />\r
-      <gd name="g31" fmla="+- g11 g20 0" />\r
-      <gd name="g32" fmla="+- g11 g22 0" />\r
-      <gd name="g33" fmla="+- g11 g23 0" />\r
-    </gdLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path stroke="false" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="r" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <close />\r
-        <moveTo>\r
-          <pt x="hc" y="g9" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="g11" y="vc" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g28" y="vc" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g28" y="g10" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g33" y="g10" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g33" y="vc" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g12" y="vc" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g32" y="g26" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g32" y="g24" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g31" y="g24" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g31" y="g25" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path stroke="false" fill="darkenLess" extrusionOk="false">\r
-\r
-        <moveTo>\r
-          <pt x="g32" y="g26" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="g32" y="g24" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g31" y="g24" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g31" y="g25" />\r
-        </lnTo>\r
-        <close />\r
-        <moveTo>\r
-          <pt x="g28" y="vc" />\r
-        </moveTo>\r
-\r
-        <lnTo>\r
-          <pt x="g28" y="g10" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g29" y="g10" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g29" y="g27" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g30" y="g27" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g30" y="g10" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g33" y="g10" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g33" y="vc" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path stroke="false" fill="darken" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="hc" y="g9" />\r
-        </moveTo>\r
-\r
-        <lnTo>\r
-          <pt x="g11" y="vc" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g12" y="vc" />\r
-        </lnTo>\r
-        <close />\r
-        <moveTo>\r
-          <pt x="g29" y="g27" />\r
-        </moveTo>\r
-\r
-        <lnTo>\r
-          <pt x="g30" y="g27" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g30" y="g10" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g29" y="g10" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path fill="none" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="hc" y="g9" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="g31" y="g25" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g31" y="g24" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g32" y="g24" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g32" y="g26" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g12" y="vc" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g33" y="vc" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g33" y="g10" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g28" y="g10" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g28" y="vc" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g11" y="vc" />\r
-        </lnTo>\r
-        <close />\r
-        <moveTo>\r
-          <pt x="g31" y="g25" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="g32" y="g26" />\r
-        </lnTo>\r
-\r
-        <moveTo>\r
-          <pt x="g33" y="vc" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="g28" y="vc" />\r
-        </lnTo>\r
-\r
-        <moveTo>\r
-          <pt x="g29" y="g10" />\r
-        </moveTo>\r
-\r
-        <lnTo>\r
-          <pt x="g29" y="g27" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g30" y="g27" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g30" y="g10" />\r
-        </lnTo>\r
-      </path>\r
-      <path fill="none">\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-\r
-        <lnTo>\r
-          <pt x="r" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </actionButtonHome>\r
-  <actionButtonInformation>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="dx2" fmla="*/ ss 3 8" />\r
-      <gd name="g9" fmla="+- vc 0 dx2" />\r
-      <gd name="g11" fmla="+- hc 0 dx2" />\r
-      <gd name="g13" fmla="*/ ss 3 4" />\r
-      <gd name="g14" fmla="*/ g13 1 32" />\r
-      <gd name="g17" fmla="*/ g13 5 16" />\r
-      <gd name="g18" fmla="*/ g13 3 8" />\r
-      <gd name="g19" fmla="*/ g13 13 32" />\r
-      <gd name="g20" fmla="*/ g13 19 32" />\r
-      <gd name="g22" fmla="*/ g13 11 16" />\r
-      <gd name="g23" fmla="*/ g13 13 16" />\r
-      <gd name="g24" fmla="*/ g13 7 8" />\r
-      <gd name="g25" fmla="+- g9 g14 0" />\r
-      <gd name="g28" fmla="+- g9 g17 0" />\r
-      <gd name="g29" fmla="+- g9 g18 0" />\r
-      <gd name="g30" fmla="+- g9 g23 0" />\r
-      <gd name="g31" fmla="+- g9 g24 0" />\r
-      <gd name="g32" fmla="+- g11 g17 0" />\r
-      <gd name="g34" fmla="+- g11 g19 0" />\r
-      <gd name="g35" fmla="+- g11 g20 0" />\r
-      <gd name="g37" fmla="+- g11 g22 0" />\r
-      <gd name="g38" fmla="*/ g13 3 32" />\r
-    </gdLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path stroke="false" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="r" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <close />\r
-        <moveTo>\r
-          <pt x="hc" y="g9" />\r
-        </moveTo>\r
-\r
-        <arcTo wR="dx2" hR="dx2" stAng="3cd4" swAng="21600000" />\r
-        <close />\r
-      </path>\r
-      <path stroke="false" fill="darken" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="hc" y="g9" />\r
-        </moveTo>\r
-\r
-        <arcTo wR="dx2" hR="dx2" stAng="3cd4" swAng="21600000" />\r
-        <close />\r
-        <moveTo>\r
-          <pt x="hc" y="g25" />\r
-        </moveTo>\r
-\r
-        <arcTo wR="g38" hR="g38" stAng="3cd4" swAng="21600000" />\r
-        <moveTo>\r
-          <pt x="g32" y="g28" />\r
-        </moveTo>\r
-\r
-        <lnTo>\r
-          <pt x="g32" y="g29" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g34" y="g29" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g34" y="g30" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g32" y="g30" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g32" y="g31" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g37" y="g31" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g37" y="g30" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g35" y="g30" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g35" y="g28" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path stroke="false" fill="lighten" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="hc" y="g25" />\r
-        </moveTo>\r
-\r
-        <arcTo wR="g38" hR="g38" stAng="3cd4" swAng="21600000" />\r
-        <moveTo>\r
-          <pt x="g32" y="g28" />\r
-        </moveTo>\r
-\r
-        <lnTo>\r
-          <pt x="g35" y="g28" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g35" y="g30" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g37" y="g30" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g37" y="g31" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g32" y="g31" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g32" y="g30" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g34" y="g30" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g34" y="g29" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g32" y="g29" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path fill="none" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="hc" y="g9" />\r
-        </moveTo>\r
-\r
-        <arcTo wR="dx2" hR="dx2" stAng="3cd4" swAng="21600000" />\r
-        <close />\r
-        <moveTo>\r
-          <pt x="hc" y="g25" />\r
-        </moveTo>\r
-\r
-        <arcTo wR="g38" hR="g38" stAng="3cd4" swAng="21600000" />\r
-        <moveTo>\r
-          <pt x="g32" y="g28" />\r
-        </moveTo>\r
-\r
-        <lnTo>\r
-          <pt x="g35" y="g28" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g35" y="g30" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g37" y="g30" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g37" y="g31" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g32" y="g31" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g32" y="g30" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g34" y="g30" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g34" y="g29" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g32" y="g29" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path fill="none">\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-\r
-        <lnTo>\r
-          <pt x="r" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </actionButtonInformation>\r
-  <actionButtonMovie>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="dx2" fmla="*/ ss 3 8" />\r
-      <gd name="g9" fmla="+- vc 0 dx2" />\r
-      <gd name="g10" fmla="+- vc dx2 0" />\r
-      <gd name="g11" fmla="+- hc 0 dx2" />\r
-      <gd name="g12" fmla="+- hc dx2 0" />\r
-      <gd name="g13" fmla="*/ ss 3 4" />\r
-      <gd name="g14" fmla="*/ g13 1455 21600" />\r
-      <gd name="g15" fmla="*/ g13 1905 21600" />\r
-      <gd name="g16" fmla="*/ g13 2325 21600" />\r
-      <gd name="g17" fmla="*/ g13 16155 21600" />\r
-      <gd name="g18" fmla="*/ g13 17010 21600" />\r
-      <gd name="g19" fmla="*/ g13 19335 21600" />\r
-      <gd name="g20" fmla="*/ g13 19725 21600" />\r
-      <gd name="g21" fmla="*/ g13 20595 21600" />\r
-      <gd name="g22" fmla="*/ g13 5280 21600" />\r
-      <gd name="g23" fmla="*/ g13 5730 21600" />\r
-      <gd name="g24" fmla="*/ g13 6630 21600" />\r
-      <gd name="g25" fmla="*/ g13 7492 21600" />\r
-      <gd name="g26" fmla="*/ g13 9067 21600" />\r
-      <gd name="g27" fmla="*/ g13 9555 21600" />\r
-      <gd name="g28" fmla="*/ g13 13342 21600" />\r
-      <gd name="g29" fmla="*/ g13 14580 21600" />\r
-      <gd name="g30" fmla="*/ g13 15592 21600" />\r
-      <gd name="g31" fmla="+- g11 g14 0" />\r
-      <gd name="g32" fmla="+- g11 g15 0" />\r
-      <gd name="g33" fmla="+- g11 g16 0" />\r
-      <gd name="g34" fmla="+- g11 g17 0" />\r
-      <gd name="g35" fmla="+- g11 g18 0" />\r
-      <gd name="g36" fmla="+- g11 g19 0" />\r
-      <gd name="g37" fmla="+- g11 g20 0" />\r
-      <gd name="g38" fmla="+- g11 g21 0" />\r
-      <gd name="g39" fmla="+- g9 g22 0" />\r
-      <gd name="g40" fmla="+- g9 g23 0" />\r
-      <gd name="g41" fmla="+- g9 g24 0" />\r
-      <gd name="g42" fmla="+- g9 g25 0" />\r
-      <gd name="g43" fmla="+- g9 g26 0" />\r
-      <gd name="g44" fmla="+- g9 g27 0" />\r
-      <gd name="g45" fmla="+- g9 g28 0" />\r
-      <gd name="g46" fmla="+- g9 g29 0" />\r
-      <gd name="g47" fmla="+- g9 g30 0" />\r
-      <gd name="g48" fmla="+- g9 g31 0" />\r
-    </gdLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path stroke="false" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="r" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <close />\r
-        <moveTo>\r
-          <pt x="g11" y="g39" />\r
-        </moveTo>\r
-\r
-        <lnTo>\r
-          <pt x="g11" y="g44" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g31" y="g44" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g32" y="g43" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g33" y="g43" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g33" y="g47" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g35" y="g47" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g35" y="g45" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g36" y="g45" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g38" y="g46" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g12" y="g46" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g12" y="g41" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g38" y="g41" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g37" y="g42" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g35" y="g42" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g35" y="g41" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g34" y="g40" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g32" y="g40" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g31" y="g39" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path stroke="false" fill="darken" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="g11" y="g39" />\r
-        </moveTo>\r
-\r
-        <lnTo>\r
-          <pt x="g11" y="g44" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g31" y="g44" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g32" y="g43" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g33" y="g43" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g33" y="g47" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g35" y="g47" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g35" y="g45" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g36" y="g45" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g38" y="g46" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g12" y="g46" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g12" y="g41" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g38" y="g41" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g37" y="g42" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g35" y="g42" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g35" y="g41" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g34" y="g40" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g32" y="g40" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g31" y="g39" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path fill="none" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="g11" y="g39" />\r
-        </moveTo>\r
-\r
-        <lnTo>\r
-          <pt x="g31" y="g39" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g32" y="g40" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g34" y="g40" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g35" y="g41" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g35" y="g42" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g37" y="g42" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g38" y="g41" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g12" y="g41" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g12" y="g46" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g38" y="g46" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g36" y="g45" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g35" y="g45" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g35" y="g47" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g33" y="g47" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g33" y="g43" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g32" y="g43" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g31" y="g44" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g11" y="g44" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path fill="none">\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-\r
-        <lnTo>\r
-          <pt x="r" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </actionButtonMovie>\r
-  <actionButtonReturn>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="dx2" fmla="*/ ss 3 8" />\r
-      <gd name="g9" fmla="+- vc 0 dx2" />\r
-      <gd name="g10" fmla="+- vc dx2 0" />\r
-      <gd name="g11" fmla="+- hc 0 dx2" />\r
-      <gd name="g12" fmla="+- hc dx2 0" />\r
-      <gd name="g13" fmla="*/ ss 3 4" />\r
-      <gd name="g14" fmla="*/ g13 7 8" />\r
-      <gd name="g15" fmla="*/ g13 3 4" />\r
-      <gd name="g16" fmla="*/ g13 5 8" />\r
-      <gd name="g17" fmla="*/ g13 3 8" />\r
-      <gd name="g18" fmla="*/ g13 1 4" />\r
-      <gd name="g19" fmla="+- g9 g15 0" />\r
-      <gd name="g20" fmla="+- g9 g16 0" />\r
-      <gd name="g21" fmla="+- g9 g18 0" />\r
-      <gd name="g22" fmla="+- g11 g14 0" />\r
-      <gd name="g23" fmla="+- g11 g15 0" />\r
-      <gd name="g24" fmla="+- g11 g16 0" />\r
-      <gd name="g25" fmla="+- g11 g17 0" />\r
-      <gd name="g26" fmla="+- g11 g18 0" />\r
-      <gd name="g27" fmla="*/ g13 1 8" />\r
-    </gdLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path stroke="false" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="r" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <close />\r
-        <moveTo>\r
-          <pt x="g12" y="g21" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="g23" y="g9" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="hc" y="g21" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g24" y="g21" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g24" y="g20" />\r
-        </lnTo>\r
-        <arcTo wR="g27" hR="g27" stAng="0" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="g25" y="g19" />\r
-        </lnTo>\r
-        <arcTo wR="g27" hR="g27" stAng="cd4" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="g26" y="g21" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g11" y="g21" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g11" y="g20" />\r
-        </lnTo>\r
-        <arcTo wR="g17" hR="g17" stAng="cd2" swAng="-5400000" />\r
-        <lnTo>\r
-          <pt x="hc" y="g10" />\r
-        </lnTo>\r
-        <arcTo wR="g17" hR="g17" stAng="cd4" swAng="-5400000" />\r
-        <lnTo>\r
-          <pt x="g22" y="g21" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path stroke="false" fill="darken" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="g12" y="g21" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="g23" y="g9" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="hc" y="g21" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g24" y="g21" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g24" y="g20" />\r
-        </lnTo>\r
-        <arcTo wR="g27" hR="g27" stAng="0" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="g25" y="g19" />\r
-        </lnTo>\r
-        <arcTo wR="g27" hR="g27" stAng="cd4" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="g26" y="g21" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g11" y="g21" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g11" y="g20" />\r
-        </lnTo>\r
-        <arcTo wR="g17" hR="g17" stAng="cd2" swAng="-5400000" />\r
-        <lnTo>\r
-          <pt x="hc" y="g10" />\r
-        </lnTo>\r
-        <arcTo wR="g17" hR="g17" stAng="cd4" swAng="-5400000" />\r
-        <lnTo>\r
-          <pt x="g22" y="g21" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path fill="none" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="g12" y="g21" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="g22" y="g21" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g22" y="g20" />\r
-        </lnTo>\r
-        <arcTo wR="g17" hR="g17" stAng="0" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="g25" y="g10" />\r
-        </lnTo>\r
-        <arcTo wR="g17" hR="g17" stAng="cd4" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="g11" y="g21" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g26" y="g21" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g26" y="g20" />\r
-        </lnTo>\r
-        <arcTo wR="g27" hR="g27" stAng="cd2" swAng="-5400000" />\r
-        <lnTo>\r
-          <pt x="hc" y="g19" />\r
-        </lnTo>\r
-        <arcTo wR="g27" hR="g27" stAng="cd4" swAng="-5400000" />\r
-        <lnTo>\r
-          <pt x="g24" y="g21" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="hc" y="g21" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g23" y="g9" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path fill="none">\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-\r
-        <lnTo>\r
-          <pt x="r" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </actionButtonReturn>\r
-  <actionButtonSound>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="dx2" fmla="*/ ss 3 8" />\r
-      <gd name="g9" fmla="+- vc 0 dx2" />\r
-      <gd name="g10" fmla="+- vc dx2 0" />\r
-      <gd name="g11" fmla="+- hc 0 dx2" />\r
-      <gd name="g12" fmla="+- hc dx2 0" />\r
-      <gd name="g13" fmla="*/ ss 3 4" />\r
-      <gd name="g14" fmla="*/ g13 1 8" />\r
-      <gd name="g15" fmla="*/ g13 5 16" />\r
-      <gd name="g16" fmla="*/ g13 5 8" />\r
-      <gd name="g17" fmla="*/ g13 11 16" />\r
-      <gd name="g18" fmla="*/ g13 3 4" />\r
-      <gd name="g19" fmla="*/ g13 7 8" />\r
-      <gd name="g20" fmla="+- g9 g14 0" />\r
-      <gd name="g21" fmla="+- g9 g15 0" />\r
-      <gd name="g22" fmla="+- g9 g17 0" />\r
-      <gd name="g23" fmla="+- g9 g19 0" />\r
-      <gd name="g24" fmla="+- g11 g15 0" />\r
-      <gd name="g25" fmla="+- g11 g16 0" />\r
-      <gd name="g26" fmla="+- g11 g18 0" />\r
-    </gdLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path stroke="false" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="r" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <close />\r
-        <moveTo>\r
-          <pt x="g11" y="g21" />\r
-        </moveTo>\r
-\r
-        <lnTo>\r
-          <pt x="g11" y="g22" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g24" y="g22" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g25" y="g10" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g25" y="g9" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g24" y="g21" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path stroke="false" fill="darken" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="g11" y="g21" />\r
-        </moveTo>\r
-\r
-        <lnTo>\r
-          <pt x="g11" y="g22" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g24" y="g22" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g25" y="g10" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g25" y="g9" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g24" y="g21" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path fill="none" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="g11" y="g21" />\r
-        </moveTo>\r
-\r
-        <lnTo>\r
-          <pt x="g24" y="g21" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g25" y="g9" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g25" y="g10" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g24" y="g22" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="g11" y="g22" />\r
-        </lnTo>\r
-        <close />\r
-        <moveTo>\r
-          <pt x="g26" y="g21" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="g12" y="g20" />\r
-        </lnTo>\r
-        <moveTo>\r
-          <pt x="g26" y="vc" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="g12" y="vc" />\r
-        </lnTo>\r
-        <moveTo>\r
-          <pt x="g26" y="g22" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="g12" y="g23" />\r
-        </lnTo>\r
-      </path>\r
-      <path fill="none">\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-\r
-        <lnTo>\r
-          <pt x="r" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </actionButtonSound>\r
-  <arc>\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 16200000" />\r
-      <gd name="adj2" fmla="val 0" />\r
-    </avLst>\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="stAng" fmla="pin 0 adj1 21599999" />\r
-      <gd name="enAng" fmla="pin 0 adj2 21599999" />\r
-      <gd name="sw11" fmla="+- enAng 0 stAng" />\r
-      <gd name="sw12" fmla="+- sw11 21600000 0" />\r
-      <gd name="swAng" fmla="?: sw11 sw11 sw12" />\r
-      <gd name="wt1" fmla="sin wd2 stAng" />\r
-      <gd name="ht1" fmla="cos hd2 stAng" />\r
-      <gd name="dx1" fmla="cat2 wd2 ht1 wt1" />\r
-      <gd name="dy1" fmla="sat2 hd2 ht1 wt1" />\r
-      <gd name="wt2" fmla="sin wd2 enAng" />\r
-      <gd name="ht2" fmla="cos hd2 enAng" />\r
-      <gd name="dx2" fmla="cat2 wd2 ht2 wt2" />\r
-      <gd name="dy2" fmla="sat2 hd2 ht2 wt2" />\r
-      <gd name="x1" fmla="+- hc dx1 0" />\r
-      <gd name="y1" fmla="+- vc dy1 0" />\r
-      <gd name="x2" fmla="+- hc dx2 0" />\r
-      <gd name="y2" fmla="+- vc dy2 0" />\r
-      <gd name="sw0" fmla="+- 21600000 0 stAng" />\r
-      <gd name="da1" fmla="+- swAng 0 sw0" />\r
-      <gd name="g1" fmla="max x1 x2" />\r
-      <gd name="ir" fmla="?: da1 r g1" />\r
-      <gd name="sw1" fmla="+- cd4 0 stAng" />\r
-      <gd name="sw2" fmla="+- 27000000 0 stAng" />\r
-      <gd name="sw3" fmla="?: sw1 sw1 sw2" />\r
-      <gd name="da2" fmla="+- swAng 0 sw3" />\r
-      <gd name="g5" fmla="max y1 y2" />\r
-      <gd name="ib" fmla="?: da2 b g5" />\r
-      <gd name="sw4" fmla="+- cd2 0 stAng" />\r
-      <gd name="sw5" fmla="+- 32400000 0 stAng" />\r
-      <gd name="sw6" fmla="?: sw4 sw4 sw5" />\r
-      <gd name="da3" fmla="+- swAng 0 sw6" />\r
-      <gd name="g9" fmla="min x1 x2" />\r
-      <gd name="il" fmla="?: da3 l g9" />\r
-      <gd name="sw7" fmla="+- 3cd4 0 stAng" />\r
-      <gd name="sw8" fmla="+- 37800000 0 stAng" />\r
-      <gd name="sw9" fmla="?: sw7 sw7 sw8" />\r
-      <gd name="da4" fmla="+- swAng 0 sw9" />\r
-      <gd name="g13" fmla="min y1 y2" />\r
-      <gd name="it" fmla="?: da4 t g13" />\r
-      <gd name="cang1" fmla="+- stAng 0 cd4" />\r
-      <gd name="cang2" fmla="+- enAng cd4 0" />\r
-      <gd name="cang3" fmla="+/ cang1 cang2 2" />\r
-    </gdLst>\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahPolar gdRefAng="adj1" minAng="0" maxAng="21599999">\r
-        <pos x="x1" y="y1" />\r
-      </ahPolar>\r
-      <ahPolar gdRefAng="adj2" minAng="0" maxAng="21599999">\r
-        <pos x="x2" y="y2" />\r
-      </ahPolar>\r
-    </ahLst>\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="cang1">\r
-        <pos x="x1" y="y1" />\r
-      </cxn>\r
-      <cxn ang="cang3">\r
-        <pos x="hc" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cang2">\r
-        <pos x="x2" y="y2" />\r
-      </cxn>\r
-    </cxnLst>\r
-    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path stroke="false" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="x1" y="y1" />\r
-        </moveTo>\r
-        <arcTo wR="wd2" hR="hd2" stAng="stAng" swAng="swAng" />\r
-        <lnTo>\r
-          <pt x="hc" y="vc" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path fill="none">\r
-        <moveTo>\r
-          <pt x="x1" y="y1" />\r
-        </moveTo>\r
-        <arcTo wR="wd2" hR="hd2" stAng="stAng" swAng="swAng" />\r
-      </path>\r
-    </pathLst>\r
-  </arc>\r
-  <bentArrow>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 25000" />\r
-\r
-      <gd name="adj2" fmla="val 25000" />\r
-\r
-      <gd name="adj3" fmla="val 25000" />\r
-\r
-      <gd name="adj4" fmla="val 43750" />\r
-\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a2" fmla="pin 0 adj2 50000" />\r
-      <gd name="maxAdj1" fmla="*/ a2 2 1" />\r
-\r
-      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
-      <gd name="a3" fmla="pin 0 adj3 50000" />\r
-      <gd name="th" fmla="*/ ss a1 100000" />\r
-\r
-      <gd name="aw2" fmla="*/ ss a2 100000" />\r
-\r
-      <gd name="th2" fmla="*/ th 1 2" />\r
-      <gd name="dh2" fmla="+- aw2 0 th2" />\r
-\r
-      <gd name="ah" fmla="*/ ss a3 100000" />\r
-\r
-      <gd name="bw" fmla="+- r 0 ah" />\r
-\r
-      <gd name="bh" fmla="+- b 0 dh2" />\r
-\r
-      <gd name="bs" fmla="min bw bh" />\r
-\r
-      <gd name="maxAdj4" fmla="*/ 100000 bs ss" />\r
-      <gd name="a4" fmla="pin 0 adj4 maxAdj4" />\r
-\r
-      <gd name="bd" fmla="*/ ss a4 100000" />\r
-\r
-\r
-      <gd name="bd3" fmla="+- bd 0 th" />\r
-      <gd name="bd2" fmla="max bd3 0" />\r
-      <gd name="x3" fmla="+- th bd2 0" />\r
-      <gd name="x4" fmla="+- r 0 ah" />\r
-\r
-\r
-      <gd name="y3" fmla="+- dh2 th 0" />\r
-      <gd name="y4" fmla="+- y3 dh2 0" />\r
-      <gd name="y5" fmla="+- dh2 bd 0" />\r
-      <gd name="y6" fmla="+- y3 bd2 0" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj1" minX="0" maxX="maxAdj1">\r
-        <pos x="th" y="b" />\r
-      </ahXY>\r
-      <ahXY gdRefY="adj2" minY="0" maxY="50000">\r
-        <pos x="r" y="y4" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj3" minX="0" maxX="50000">\r
-        <pos x="x4" y="t" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj4" minX="0" maxX="maxAdj4">\r
-        <pos x="bd" y="t" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="x4" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="x4" y="y4" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="th2" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="aw2" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="b" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="l" y="y5" />\r
-        </lnTo>\r
-        <arcTo wR="bd" hR="bd" stAng="cd2" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="x4" y="dh2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="aw2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y3" />\r
-        </lnTo>\r
-        <arcTo wR="bd2" hR="bd2" stAng="3cd4" swAng="-5400000" />\r
-        <lnTo>\r
-          <pt x="th" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </bentArrow>\r
-  <bentConnector2>\r
-    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path fill="none">\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="r" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-      </path>\r
-    </pathLst>\r
-  </bentConnector2>\r
-  <bentConnector3>\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 50000" />\r
-    </avLst>\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="x1" fmla="*/ w adj1 100000" />\r
-    </gdLst>\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj1" minX="-2147483647" maxX="2147483647">\r
-        <pos x="x1" y="vc" />\r
-      </ahXY>\r
-    </ahLst>\r
-    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path fill="none">\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x1" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-      </path>\r
-    </pathLst>\r
-  </bentConnector3>\r
-  <bentConnector4>\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 50000" />\r
-      <gd name="adj2" fmla="val 50000" />\r
-    </avLst>\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="x1" fmla="*/ w adj1 100000" />\r
-      <gd name="x2" fmla="+/ x1 r 2" />\r
-      <gd name="y2" fmla="*/ h adj2 100000" />\r
-      <gd name="y1" fmla="+/ t y2 2" />\r
-    </gdLst>\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj1" minX="-2147483647" maxX="2147483647">\r
-        <pos x="x1" y="y1" />\r
-      </ahXY>\r
-      <ahXY gdRefY="adj2" minY="-2147483647" maxY="2147483647">\r
-        <pos x="x2" y="y2" />\r
-      </ahXY>\r
-    </ahLst>\r
-    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path fill="none">\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x1" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-      </path>\r
-    </pathLst>\r
-  </bentConnector4>\r
-  <bentConnector5>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 50000" />\r
-\r
-      <gd name="adj2" fmla="val 50000" />\r
-\r
-      <gd name="adj3" fmla="val 50000" />\r
-\r
-    </avLst>\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="x1" fmla="*/ w adj1 100000" />\r
-\r
-      <gd name="x3" fmla="*/ w adj3 100000" />\r
-\r
-      <gd name="x2" fmla="+/ x1 x3 2" />\r
-\r
-      <gd name="y2" fmla="*/ h adj2 100000" />\r
-\r
-      <gd name="y1" fmla="+/ t y2 2" />\r
-\r
-      <gd name="y3" fmla="+/ b y2 2" />\r
-\r
-    </gdLst>\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj1" minX="-2147483647" maxX="2147483647">\r
-        <pos x="x1" y="y1" />\r
-      </ahXY>\r
-      <ahXY gdRefY="adj2" minY="-2147483647" maxY="2147483647">\r
-        <pos x="x2" y="y2" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj3" minX="-2147483647" maxX="2147483647">\r
-        <pos x="x3" y="y3" />\r
-      </ahXY>\r
-    </ahLst>\r
-    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path fill="none">\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x1" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-      </path>\r
-    </pathLst>\r
-\r
-  </bentConnector5>\r
-  <bentUpArrow>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 25000" />\r
-\r
-      <gd name="adj2" fmla="val 25000" />\r
-\r
-      <gd name="adj3" fmla="val 25000" />\r
-\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a1" fmla="pin 0 adj1 50000" />\r
-      <gd name="a2" fmla="pin 0 adj2 50000" />\r
-      <gd name="a3" fmla="pin 0 adj3 50000" />\r
-      <gd name="y1" fmla="*/ ss a3 100000" />\r
-      <gd name="dx1" fmla="*/ ss a2 50000" />\r
-\r
-      <gd name="x1" fmla="+- r 0 dx1" />\r
-      <gd name="dx3" fmla="*/ ss a2 100000" />\r
-\r
-      <gd name="x3" fmla="+- r 0 dx3" />\r
-      <gd name="dx2" fmla="*/ ss a1 200000" />\r
-\r
-      <gd name="x2" fmla="+- x3 0 dx2" />\r
-      <gd name="x4" fmla="+- x3 dx2 0" />\r
-      <gd name="dy2" fmla="*/ ss a1 100000" />\r
-\r
-      <gd name="y2" fmla="+- b 0 dy2" />\r
-      <gd name="x0" fmla="*/ x4 1 2" />\r
-      <gd name="y3" fmla="+/ y2 b 2" />\r
-      <gd name="y15" fmla="+/ y1 b 2" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefY="adj1" minY="0" maxY="50000">\r
-        <pos x="l" y="y2" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj2" minX="0" maxX="50000">\r
-        <pos x="x1" y="t" />\r
-      </ahXY>\r
-      <ahXY gdRefY="adj3" minY="0" maxY="50000">\r
-        <pos x="x2" y="y1" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="x3" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="x1" y="y1" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="y3" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="x0" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="x4" y="y15" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="y1" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="l" t="y2" r="x4" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="y2" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </bentUpArrow>\r
-  <bevel>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj" fmla="val 12500" />\r
-\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a" fmla="pin 0 adj 50000" />\r
-      <gd name="x1" fmla="*/ ss a 100000" />\r
-\r
-\r
-\r
-      <gd name="x2" fmla="+- r 0 x1" />\r
-\r
-      <gd name="y2" fmla="+- b 0 x1" />\r
-\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj" minX="0" maxX="50000">\r
-        <pos x="x1" y="t" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="x2" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="y2" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="x1" y="vc" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="x1" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="x1" t="x1" r="x2" b="y2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path stroke="false" extrusionOk="false">\r
-\r
-        <moveTo>\r
-          <pt x="x1" y="x1" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x2" y="x1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y2" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path stroke="false" fill="lightenLess" extrusionOk="false">\r
-\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="r" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="x1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="x1" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path stroke="false" fill="darkenLess" extrusionOk="false">\r
-\r
-        <moveTo>\r
-          <pt x="l" y="b" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path stroke="false" fill="lighten" extrusionOk="false">\r
-\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x1" y="x1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path stroke="false" fill="darken" extrusionOk="false">\r
-\r
-        <moveTo>\r
-          <pt x="r" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="x1" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path fill="none" extrusionOk="false">\r
-\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="r" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <close />\r
-        <moveTo>\r
-          <pt x="x1" y="x1" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x2" y="x1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y2" />\r
-        </lnTo>\r
-        <close />\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x1" y="x1" />\r
-        </lnTo>\r
-        <moveTo>\r
-          <pt x="l" y="b" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y2" />\r
-        </lnTo>\r
-        <moveTo>\r
-          <pt x="r" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x2" y="x1" />\r
-        </lnTo>\r
-        <moveTo>\r
-          <pt x="r" y="b" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y2" />\r
-        </lnTo>\r
-      </path>\r
-    </pathLst>\r
-\r
-  </bevel>\r
-  <blockArc>\r
-\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 10800000" />\r
-\r
-      <gd name="adj2" fmla="val 0" />\r
-\r
-      <gd name="adj3" fmla="val 25000" />\r
-\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="stAng" fmla="pin 0 adj1 21599999" />\r
-      <gd name="istAng" fmla="pin 0 adj2 21599999" />\r
-      <gd name="a3" fmla="pin 0 adj3 50000" />\r
-      <gd name="sw11" fmla="+- istAng 0 stAng" />\r
-\r
-      <gd name="sw12" fmla="+- sw11 21600000 0" />\r
-\r
-      <gd name="swAng" fmla="?: sw11 sw11 sw12" />\r
-\r
-      <gd name="iswAng" fmla="+- 0 0 swAng" />\r
-\r
-\r
-      <gd name="wt1" fmla="sin wd2 stAng" />\r
-      <gd name="ht1" fmla="cos hd2 stAng" />\r
-      <gd name="wt3" fmla="sin wd2 istAng" />\r
-      <gd name="ht3" fmla="cos hd2 istAng" />\r
-      <gd name="dx1" fmla="cat2 wd2 ht1 wt1" />\r
-      <gd name="dy1" fmla="sat2 hd2 ht1 wt1" />\r
-      <gd name="dx3" fmla="cat2 wd2 ht3 wt3" />\r
-      <gd name="dy3" fmla="sat2 hd2 ht3 wt3" />\r
-      <gd name="x1" fmla="+- hc dx1 0" />\r
-\r
-      <gd name="y1" fmla="+- vc dy1 0" />\r
-\r
-      <gd name="x3" fmla="+- hc dx3 0" />\r
-\r
-      <gd name="y3" fmla="+- vc dy3 0" />\r
-\r
-\r
-      <gd name="dr" fmla="*/ ss a3 100000" />\r
-      <gd name="iwd2" fmla="+- wd2 0 dr" />\r
-      <gd name="ihd2" fmla="+- hd2 0 dr" />\r
-      <gd name="wt2" fmla="sin iwd2 istAng" />\r
-      <gd name="ht2" fmla="cos ihd2 istAng" />\r
-      <gd name="wt4" fmla="sin iwd2 stAng" />\r
-      <gd name="ht4" fmla="cos ihd2 stAng" />\r
-      <gd name="dx2" fmla="cat2 iwd2 ht2 wt2" />\r
-      <gd name="dy2" fmla="sat2 ihd2 ht2 wt2" />\r
-      <gd name="dx4" fmla="cat2 iwd2 ht4 wt4" />\r
-      <gd name="dy4" fmla="sat2 ihd2 ht4 wt4" />\r
-      <gd name="x2" fmla="+- hc dx2 0" />\r
-\r
-      <gd name="y2" fmla="+- vc dy2 0" />\r
-\r
-      <gd name="x4" fmla="+- hc dx4 0" />\r
-\r
-      <gd name="y4" fmla="+- vc dy4 0" />\r
-\r
-\r
-      <gd name="sw0" fmla="+- 21600000 0 stAng" />\r
-      <gd name="da1" fmla="+- swAng 0 sw0" />\r
-      <gd name="g1" fmla="max x1 x2" />\r
-      <gd name="g2" fmla="max x3 x4" />\r
-      <gd name="g3" fmla="max g1 g2" />\r
-      <gd name="ir" fmla="?: da1 r g3" />\r
-\r
-      <gd name="sw1" fmla="+- cd4 0 stAng" />\r
-      <gd name="sw2" fmla="+- 27000000 0 stAng" />\r
-      <gd name="sw3" fmla="?: sw1 sw1 sw2" />\r
-      <gd name="da2" fmla="+- swAng 0 sw3" />\r
-      <gd name="g5" fmla="max y1 y2" />\r
-      <gd name="g6" fmla="max y3 y4" />\r
-      <gd name="g7" fmla="max g5 g6" />\r
-      <gd name="ib" fmla="?: da2 b g7" />\r
-\r
-      <gd name="sw4" fmla="+- cd2 0 stAng" />\r
-      <gd name="sw5" fmla="+- 32400000 0 stAng" />\r
-      <gd name="sw6" fmla="?: sw4 sw4 sw5" />\r
-      <gd name="da3" fmla="+- swAng 0 sw6" />\r
-      <gd name="g9" fmla="min x1 x2" />\r
-      <gd name="g10" fmla="min x3 x4" />\r
-      <gd name="g11" fmla="min g9 g10" />\r
-      <gd name="il" fmla="?: da3 l g11" />\r
-\r
-      <gd name="sw7" fmla="+- 3cd4 0 stAng" />\r
-      <gd name="sw8" fmla="+- 37800000 0 stAng" />\r
-      <gd name="sw9" fmla="?: sw7 sw7 sw8" />\r
-      <gd name="da4" fmla="+- swAng 0 sw9" />\r
-      <gd name="g13" fmla="min y1 y2" />\r
-      <gd name="g14" fmla="min y3 y4" />\r
-      <gd name="g15" fmla="min g13 g14" />\r
-      <gd name="it" fmla="?: da4 t g15" />\r
-\r
-      <gd name="x5" fmla="+/ x1 x4 2" />\r
-\r
-      <gd name="y5" fmla="+/ y1 y4 2" />\r
-\r
-      <gd name="x6" fmla="+/ x3 x2 2" />\r
-\r
-      <gd name="y6" fmla="+/ y3 y2 2" />\r
-\r
-      <gd name="cang1" fmla="+- stAng 0 cd4" />\r
-      <gd name="cang2" fmla="+- istAng cd4 0" />\r
-      <gd name="cang3" fmla="+/ cang1 cang2 2" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahPolar gdRefAng="adj1" minAng="0" maxAng="21599999">\r
-        <pos x="x1" y="y1" />\r
-      </ahPolar>\r
-      <ahPolar gdRefR="adj3" minR="0" maxR="50000" gdRefAng="adj2" minAng="0" maxAng="21599999">\r
-        <pos x="x2" y="y2" />\r
-      </ahPolar>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="cang1">\r
-        <pos x="x5" y="y5" />\r
-      </cxn>\r
-      <cxn ang="cang2">\r
-        <pos x="x6" y="y6" />\r
-      </cxn>\r
-      <cxn ang="cang3">\r
-        <pos x="hc" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="x1" y="y1" />\r
-        </moveTo>\r
-        <arcTo wR="wd2" hR="hd2" stAng="stAng" swAng="swAng" />\r
-        <lnTo>\r
-          <pt x="x2" y="y2" />\r
-        </lnTo>\r
-        <arcTo wR="iwd2" hR="ihd2" stAng="istAng" swAng="iswAng" />\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </blockArc>\r
-  <borderCallout1>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-\r
-      <gd name="adj1" fmla="val 18750" />\r
-\r
-      <gd name="adj2" fmla="val -8333" />\r
-\r
-      <gd name="adj3" fmla="val 112500" />\r
-\r
-      <gd name="adj4" fmla="val -38333" />\r
-\r
-    </avLst>\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="y1" fmla="*/ h adj1 100000" />\r
-      <gd name="x1" fmla="*/ w adj2 100000" />\r
-      <gd name="y2" fmla="*/ h adj3 100000" />\r
-      <gd name="x2" fmla="*/ w adj4 100000" />\r
-    </gdLst>\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj2" minX="-2147483647" maxX="2147483647" gdRefY="adj1" minY="-2147483647" maxY="2147483647">\r
-        <pos x="x1" y="y1" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj4" minX="-2147483647" maxX="2147483647" gdRefY="adj3" minY="-2147483647" maxY="2147483647">\r
-        <pos x="x2" y="y2" />\r
-      </ahXY>\r
-    </ahLst>\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-    </cxnLst>\r
-    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="r" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path fill="none" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="x1" y="y1" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y2" />\r
-        </lnTo>\r
-      </path>\r
-    </pathLst>\r
-\r
-  </borderCallout1>\r
-  <borderCallout2>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-\r
-      <gd name="adj1" fmla="val 18750" />\r
-\r
-      <gd name="adj2" fmla="val -8333" />\r
-\r
-      <gd name="adj3" fmla="val 18750" />\r
-\r
-      <gd name="adj4" fmla="val -16667" />\r
-\r
-      <gd name="adj5" fmla="val 112500" />\r
-\r
-      <gd name="adj6" fmla="val -46667" />\r
-\r
-    </avLst>\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="y1" fmla="*/ h adj1 100000" />\r
-      <gd name="x1" fmla="*/ w adj2 100000" />\r
-      <gd name="y2" fmla="*/ h adj3 100000" />\r
-      <gd name="x2" fmla="*/ w adj4 100000" />\r
-      <gd name="y3" fmla="*/ h adj5 100000" />\r
-      <gd name="x3" fmla="*/ w adj6 100000" />\r
-    </gdLst>\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj2" minX="-2147483647" maxX="2147483647" gdRefY="adj1" minY="-2147483647" maxY="2147483647">\r
-        <pos x="x1" y="y1" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj4" minX="-2147483647" maxX="2147483647" gdRefY="adj3" minY="-2147483647" maxY="2147483647">\r
-        <pos x="x2" y="y2" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj6" minX="-2147483647" maxX="2147483647" gdRefY="adj5" minY="-2147483647" maxY="2147483647">\r
-        <pos x="x3" y="y3" />\r
-      </ahXY>\r
-    </ahLst>\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-    </cxnLst>\r
-    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="r" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path fill="none" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="x1" y="y1" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y3" />\r
-        </lnTo>\r
-      </path>\r
-    </pathLst>\r
-\r
-  </borderCallout2>\r
-  <borderCallout3>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-\r
-      <gd name="adj1" fmla="val 18750" />\r
-\r
-      <gd name="adj2" fmla="val -8333" />\r
-\r
-      <gd name="adj3" fmla="val 18750" />\r
-\r
-      <gd name="adj4" fmla="val -16667" />\r
-\r
-      <gd name="adj5" fmla="val 100000" />\r
-\r
-      <gd name="adj6" fmla="val -16667" />\r
-\r
-      <gd name="adj7" fmla="val 112963" />\r
-\r
-      <gd name="adj8" fmla="val -8333" />\r
-\r
-    </avLst>\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="y1" fmla="*/ h adj1 100000" />\r
-      <gd name="x1" fmla="*/ w adj2 100000" />\r
-      <gd name="y2" fmla="*/ h adj3 100000" />\r
-      <gd name="x2" fmla="*/ w adj4 100000" />\r
-      <gd name="y3" fmla="*/ h adj5 100000" />\r
-      <gd name="x3" fmla="*/ w adj6 100000" />\r
-      <gd name="y4" fmla="*/ h adj7 100000" />\r
-      <gd name="x4" fmla="*/ w adj8 100000" />\r
-    </gdLst>\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj2" minX="-2147483647" maxX="2147483647" gdRefY="adj1" minY="-2147483647" maxY="2147483647">\r
-        <pos x="x1" y="y1" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj4" minX="-2147483647" maxX="2147483647" gdRefY="adj3" minY="-2147483647" maxY="2147483647">\r
-        <pos x="x2" y="y2" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj6" minX="-2147483647" maxX="2147483647" gdRefY="adj5" minY="-2147483647" maxY="2147483647">\r
-        <pos x="x3" y="y3" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj8" minX="-2147483647" maxX="2147483647" gdRefY="adj7" minY="-2147483647" maxY="2147483647">\r
-        <pos x="x4" y="y4" />\r
-      </ahXY>\r
-    </ahLst>\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-    </cxnLst>\r
-    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="r" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path fill="none" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="x1" y="y1" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y4" />\r
-        </lnTo>\r
-      </path>\r
-    </pathLst>\r
-\r
-  </borderCallout3>\r
-  <bracePair>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj" fmla="val 8333" />\r
-\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a" fmla="pin 0 adj 25000" />\r
-      <gd name="x1" fmla="*/ ss a 100000" />\r
-      <gd name="x2" fmla="*/ ss a 50000" />\r
-      <gd name="x3" fmla="+- r 0 x2" />\r
-      <gd name="x4" fmla="+- r 0 x1" />\r
-\r
-      <gd name="y2" fmla="+- vc 0 x1" />\r
-      <gd name="y3" fmla="+- vc x1 0" />\r
-      <gd name="y4" fmla="+- b 0 x1" />\r
-      <gd name="it" fmla="*/ x1 29289 100000" />\r
-\r
-      <gd name="il" fmla="+- x1 it 0" />\r
-      <gd name="ir" fmla="+- r 0 il" />\r
-      <gd name="ib" fmla="+- b 0 it" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefY="adj" minY="0" maxY="25000">\r
-        <pos x="l" y="x1" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="il" t="il" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path stroke="false" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="x2" y="b" />\r
-        </moveTo>\r
-        <arcTo wR="x1" hR="x1" stAng="cd4" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="x1" y="y3" />\r
-        </lnTo>\r
-        <arcTo wR="x1" hR="x1" stAng="0" swAng="-5400000" />\r
-        <arcTo wR="x1" hR="x1" stAng="cd4" swAng="-5400000" />\r
-        <lnTo>\r
-          <pt x="x1" y="x1" />\r
-        </lnTo>\r
-        <arcTo wR="x1" hR="x1" stAng="cd2" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="x3" y="t" />\r
-        </lnTo>\r
-        <arcTo wR="x1" hR="x1" stAng="3cd4" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="x4" y="y2" />\r
-        </lnTo>\r
-        <arcTo wR="x1" hR="x1" stAng="cd2" swAng="-5400000" />\r
-        <arcTo wR="x1" hR="x1" stAng="3cd4" swAng="-5400000" />\r
-        <lnTo>\r
-          <pt x="x4" y="y4" />\r
-        </lnTo>\r
-        <arcTo wR="x1" hR="x1" stAng="0" swAng="cd4" />\r
-        <close />\r
-      </path>\r
-      <path fill="none">\r
-        <moveTo>\r
-          <pt x="x2" y="b" />\r
-        </moveTo>\r
-        <arcTo wR="x1" hR="x1" stAng="cd4" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="x1" y="y3" />\r
-        </lnTo>\r
-        <arcTo wR="x1" hR="x1" stAng="0" swAng="-5400000" />\r
-        <arcTo wR="x1" hR="x1" stAng="cd4" swAng="-5400000" />\r
-        <lnTo>\r
-          <pt x="x1" y="x1" />\r
-        </lnTo>\r
-        <arcTo wR="x1" hR="x1" stAng="cd2" swAng="cd4" />\r
-        <moveTo>\r
-          <pt x="x3" y="t" />\r
-        </moveTo>\r
-        <arcTo wR="x1" hR="x1" stAng="3cd4" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="x4" y="y2" />\r
-        </lnTo>\r
-        <arcTo wR="x1" hR="x1" stAng="cd2" swAng="-5400000" />\r
-        <arcTo wR="x1" hR="x1" stAng="3cd4" swAng="-5400000" />\r
-        <lnTo>\r
-          <pt x="x4" y="y4" />\r
-        </lnTo>\r
-        <arcTo wR="x1" hR="x1" stAng="0" swAng="cd4" />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </bracePair>\r
-  <bracketPair>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj" fmla="val 16667" />\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a" fmla="pin 0 adj 50000" />\r
-      <gd name="x1" fmla="*/ ss a 100000" />\r
-      <gd name="x2" fmla="+- r 0 x1" />\r
-\r
-      <gd name="y2" fmla="+- b 0 x1" />\r
-      <gd name="il" fmla="*/ x1 29289 100000" />\r
-\r
-\r
-      <gd name="ir" fmla="+- r 0 il" />\r
-      <gd name="ib" fmla="+- b 0 il" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefY="adj" minY="0" maxY="50000">\r
-        <pos x="l" y="x1" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="il" t="il" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path stroke="false" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="l" y="x1" />\r
-        </moveTo>\r
-        <arcTo wR="x1" hR="x1" stAng="cd2" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="x2" y="t" />\r
-        </lnTo>\r
-        <arcTo wR="x1" hR="x1" stAng="3cd4" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="r" y="y2" />\r
-        </lnTo>\r
-        <arcTo wR="x1" hR="x1" stAng="0" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="x1" y="b" />\r
-        </lnTo>\r
-        <arcTo wR="x1" hR="x1" stAng="cd4" swAng="cd4" />\r
-        <close />\r
-      </path>\r
-      <path fill="none">\r
-        <moveTo>\r
-          <pt x="x1" y="b" />\r
-        </moveTo>\r
-        <arcTo wR="x1" hR="x1" stAng="cd4" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="l" y="x1" />\r
-        </lnTo>\r
-        <arcTo wR="x1" hR="x1" stAng="cd2" swAng="cd4" />\r
-        <moveTo>\r
-          <pt x="x2" y="t" />\r
-        </moveTo>\r
-        <arcTo wR="x1" hR="x1" stAng="3cd4" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="r" y="y2" />\r
-        </lnTo>\r
-        <arcTo wR="x1" hR="x1" stAng="0" swAng="cd4" />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </bracketPair>\r
-  <callout1>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-\r
-      <gd name="adj1" fmla="val 18750" />\r
-\r
-      <gd name="adj2" fmla="val -8333" />\r
-\r
-      <gd name="adj3" fmla="val 112500" />\r
-\r
-      <gd name="adj4" fmla="val -38333" />\r
-\r
-    </avLst>\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="y1" fmla="*/ h adj1 100000" />\r
-      <gd name="x1" fmla="*/ w adj2 100000" />\r
-      <gd name="y2" fmla="*/ h adj3 100000" />\r
-      <gd name="x2" fmla="*/ w adj4 100000" />\r
-    </gdLst>\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj2" minX="-2147483647" maxX="2147483647" gdRefY="adj1" minY="-2147483647" maxY="2147483647">\r
-        <pos x="x1" y="y1" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj4" minX="-2147483647" maxX="2147483647" gdRefY="adj3" minY="-2147483647" maxY="2147483647">\r
-        <pos x="x2" y="y2" />\r
-      </ahXY>\r
-    </ahLst>\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-    </cxnLst>\r
-    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path stroke="false" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="r" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path fill="none" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="x1" y="y1" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y2" />\r
-        </lnTo>\r
-      </path>\r
-    </pathLst>\r
-\r
-  </callout1>\r
-  <callout2>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-\r
-      <gd name="adj1" fmla="val 18750" />\r
-\r
-      <gd name="adj2" fmla="val -8333" />\r
-\r
-      <gd name="adj3" fmla="val 18750" />\r
-\r
-      <gd name="adj4" fmla="val -16667" />\r
-\r
-      <gd name="adj5" fmla="val 112500" />\r
-\r
-      <gd name="adj6" fmla="val -46667" />\r
-\r
-    </avLst>\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="y1" fmla="*/ h adj1 100000" />\r
-      <gd name="x1" fmla="*/ w adj2 100000" />\r
-      <gd name="y2" fmla="*/ h adj3 100000" />\r
-      <gd name="x2" fmla="*/ w adj4 100000" />\r
-      <gd name="y3" fmla="*/ h adj5 100000" />\r
-      <gd name="x3" fmla="*/ w adj6 100000" />\r
-    </gdLst>\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj2" minX="-2147483647" maxX="2147483647" gdRefY="adj1" minY="-2147483647" maxY="2147483647">\r
-        <pos x="x1" y="y1" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj4" minX="-2147483647" maxX="2147483647" gdRefY="adj3" minY="-2147483647" maxY="2147483647">\r
-        <pos x="x2" y="y2" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj6" minX="-2147483647" maxX="2147483647" gdRefY="adj5" minY="-2147483647" maxY="2147483647">\r
-        <pos x="x3" y="y3" />\r
-      </ahXY>\r
-    </ahLst>\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-    </cxnLst>\r
-    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path stroke="false" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="r" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path fill="none" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="x1" y="y1" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y3" />\r
-        </lnTo>\r
-      </path>\r
-    </pathLst>\r
-\r
-  </callout2>\r
-  <callout3>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-\r
-      <gd name="adj1" fmla="val 18750" />\r
-\r
-      <gd name="adj2" fmla="val -8333" />\r
-\r
-      <gd name="adj3" fmla="val 18750" />\r
-\r
-      <gd name="adj4" fmla="val -16667" />\r
-\r
-      <gd name="adj5" fmla="val 100000" />\r
-\r
-      <gd name="adj6" fmla="val -16667" />\r
-\r
-      <gd name="adj7" fmla="val 112963" />\r
-\r
-      <gd name="adj8" fmla="val -8333" />\r
-\r
-    </avLst>\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="y1" fmla="*/ h adj1 100000" />\r
-      <gd name="x1" fmla="*/ w adj2 100000" />\r
-      <gd name="y2" fmla="*/ h adj3 100000" />\r
-      <gd name="x2" fmla="*/ w adj4 100000" />\r
-      <gd name="y3" fmla="*/ h adj5 100000" />\r
-      <gd name="x3" fmla="*/ w adj6 100000" />\r
-      <gd name="y4" fmla="*/ h adj7 100000" />\r
-      <gd name="x4" fmla="*/ w adj8 100000" />\r
-    </gdLst>\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj2" minX="-2147483647" maxX="2147483647" gdRefY="adj1" minY="-2147483647" maxY="2147483647">\r
-        <pos x="x1" y="y1" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj4" minX="-2147483647" maxX="2147483647" gdRefY="adj3" minY="-2147483647" maxY="2147483647">\r
-        <pos x="x2" y="y2" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj6" minX="-2147483647" maxX="2147483647" gdRefY="adj5" minY="-2147483647" maxY="2147483647">\r
-        <pos x="x3" y="y3" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj8" minX="-2147483647" maxX="2147483647" gdRefY="adj7" minY="-2147483647" maxY="2147483647">\r
-        <pos x="x4" y="y4" />\r
-      </ahXY>\r
-    </ahLst>\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-    </cxnLst>\r
-    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path stroke="false" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="r" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path fill="none" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="x1" y="y1" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y4" />\r
-        </lnTo>\r
-      </path>\r
-    </pathLst>\r
-\r
-  </callout3>\r
-  <can>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj" fmla="val 25000" />\r
-\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="maxAdj" fmla="*/ 50000 h ss" />\r
-      <gd name="a" fmla="pin 0 adj maxAdj" />\r
-      <gd name="y1" fmla="*/ ss a 200000" />\r
-      <gd name="y2" fmla="+- y1 y1 0" />\r
-      <gd name="y3" fmla="+- b 0 y1" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefY="adj" minY="0" maxY="maxAdj">\r
-        <pos x="hc" y="y2" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="y2" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="l" t="y2" r="r" b="y3" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path stroke="false" extrusionOk="false">\r
-\r
-        <moveTo>\r
-          <pt x="l" y="y1" />\r
-        </moveTo>\r
-        <arcTo wR="wd2" hR="y1" stAng="cd2" swAng="-10800000" />\r
-        <lnTo>\r
-          <pt x="r" y="y3" />\r
-        </lnTo>\r
-        <arcTo wR="wd2" hR="y1" stAng="0" swAng="cd2" />\r
-        <close />\r
-      </path>\r
-      <path stroke="false" fill="lighten" extrusionOk="false">\r
-\r
-        <moveTo>\r
-          <pt x="l" y="y1" />\r
-        </moveTo>\r
-        <arcTo wR="wd2" hR="y1" stAng="cd2" swAng="cd2" />\r
-        <arcTo wR="wd2" hR="y1" stAng="0" swAng="cd2" />\r
-        <close />\r
-      </path>\r
-      <path fill="none" extrusionOk="false">\r
-\r
-        <moveTo>\r
-          <pt x="r" y="y1" />\r
-        </moveTo>\r
-        <arcTo wR="wd2" hR="y1" stAng="0" swAng="cd2" />\r
-        <arcTo wR="wd2" hR="y1" stAng="cd2" swAng="cd2" />\r
-        <lnTo>\r
-          <pt x="r" y="y3" />\r
-        </lnTo>\r
-        <arcTo wR="wd2" hR="y1" stAng="0" swAng="cd2" />\r
-        <lnTo>\r
-          <pt x="l" y="y1" />\r
-        </lnTo>\r
-      </path>\r
-    </pathLst>\r
-\r
-  </can>\r
-  <chartPlus>\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path w="10" h="10" fill="none" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="5" y="0" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="5" y="10" />\r
-        </lnTo>\r
-        <moveTo>\r
-          <pt x="0" y="5" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="10" y="5" />\r
-        </lnTo>\r
-      </path>\r
-      <path w="10" h="10" stroke="false">\r
-        <moveTo>\r
-          <pt x="0" y="0" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="0" y="10" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="10" y="10" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="10" y="0" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </chartPlus>\r
-  <chartStar>\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path w="10" h="10" fill="none" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="0" y="0" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="10" y="10" />\r
-        </lnTo>\r
-        <moveTo>\r
-          <pt x="0" y="10" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="10" y="0" />\r
-        </lnTo>\r
-        <moveTo>\r
-          <pt x="5" y="0" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="5" y="10" />\r
-        </lnTo>\r
-      </path>\r
-      <path w="10" h="10" stroke="false">\r
-        <moveTo>\r
-          <pt x="0" y="0" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="0" y="10" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="10" y="10" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="10" y="0" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </chartStar>\r
-  <chartX>\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path w="10" h="10" fill="none" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="0" y="0" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="10" y="10" />\r
-        </lnTo>\r
-        <moveTo>\r
-          <pt x="0" y="10" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="10" y="0" />\r
-        </lnTo>\r
-      </path>\r
-      <path w="10" h="10" stroke="false">\r
-        <moveTo>\r
-          <pt x="0" y="0" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="0" y="10" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="10" y="10" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="10" y="0" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </chartX>\r
-  <chevron>\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj" fmla="val 50000" />\r
-    </avLst>\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="maxAdj" fmla="*/ 100000 w ss" />\r
-      <gd name="a" fmla="pin 0 adj maxAdj" />\r
-      <gd name="x1" fmla="*/ ss a 100000" />\r
-      <gd name="x2" fmla="+- r 0 x1" />\r
-      <gd name="x3" fmla="*/ x2 1 2" />\r
-      <gd name="dx" fmla="+- x2 0 x1" />\r
-      <gd name="il" fmla="?: dx x1 l" />\r
-      <gd name="ir" fmla="?: dx x2 r" />\r
-    </gdLst>\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj" minX="0" maxX="maxAdj">\r
-        <pos x="x2" y="t" />\r
-      </ahXY>\r
-    </ahLst>\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="x3" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="x1" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="x3" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-    <rect l="il" t="t" r="ir" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x2" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="vc" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="vc" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-  </chevron>\r
-  <chord>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 2700000" />\r
-\r
-      <gd name="adj2" fmla="val 16200000" />\r
-\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="stAng" fmla="pin 0 adj1 21599999" />\r
-      <gd name="enAng" fmla="pin 0 adj2 21599999" />\r
-      <gd name="sw1" fmla="+- enAng 0 stAng" />\r
-\r
-      <gd name="sw2" fmla="+- sw1 21600000 0" />\r
-\r
-      <gd name="swAng" fmla="?: sw1 sw1 sw2" />\r
-\r
-      <gd name="wt1" fmla="sin wd2 stAng" />\r
-      <gd name="ht1" fmla="cos hd2 stAng" />\r
-      <gd name="dx1" fmla="cat2 wd2 ht1 wt1" />\r
-      <gd name="dy1" fmla="sat2 hd2 ht1 wt1" />\r
-      <gd name="wt2" fmla="sin wd2 enAng" />\r
-      <gd name="ht2" fmla="cos hd2 enAng" />\r
-      <gd name="dx2" fmla="cat2 wd2 ht2 wt2" />\r
-      <gd name="dy2" fmla="sat2 hd2 ht2 wt2" />\r
-      <gd name="x1" fmla="+- hc dx1 0" />\r
-\r
-      <gd name="y1" fmla="+- vc dy1 0" />\r
-\r
-      <gd name="x2" fmla="+- hc dx2 0" />\r
-\r
-      <gd name="y2" fmla="+- vc dy2 0" />\r
-\r
-      <gd name="x3" fmla="+/ x1 x2 2" />\r
-      <gd name="y3" fmla="+/ y1 y2 2" />\r
-      <gd name="midAng0" fmla="*/ swAng 1 2" />\r
-      <gd name="midAng" fmla="+- stAng midAng0 cd2" />\r
-      <gd name="idx" fmla="cos wd2 2700000" />\r
-      <gd name="idy" fmla="sin hd2 2700000" />\r
-      <gd name="il" fmla="+- hc 0 idx" />\r
-      <gd name="ir" fmla="+- hc idx 0" />\r
-      <gd name="it" fmla="+- vc 0 idy" />\r
-      <gd name="ib" fmla="+- vc idy 0" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahPolar gdRefAng="adj1" minAng="0" maxAng="21599999">\r
-        <pos x="x1" y="y1" />\r
-      </ahPolar>\r
-      <ahPolar gdRefAng="adj2" minAng="0" maxAng="21599999">\r
-        <pos x="x2" y="y2" />\r
-      </ahPolar>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="stAng">\r
-        <pos x="x1" y="y1" />\r
-      </cxn>\r
-      <cxn ang="enAng">\r
-        <pos x="x2" y="y2" />\r
-      </cxn>\r
-      <cxn ang="midAng">\r
-        <pos x="x3" y="y3" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="x1" y="y1" />\r
-        </moveTo>\r
-        <arcTo wR="wd2" hR="hd2" stAng="stAng" swAng="swAng" />\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </chord>\r
-  <circularArrow>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 12500" />\r
-\r
-      <gd name="adj2" fmla="val 1142319" />\r
-\r
-      <gd name="adj3" fmla="val 20457681" />\r
-\r
-      <gd name="adj4" fmla="val 10800000" />\r
-\r
-      <gd name="adj5" fmla="val 12500" />\r
-\r
-    </avLst>\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a5" fmla="pin 0 adj5 25000" />\r
-\r
-      <gd name="maxAdj1" fmla="*/ a5 2 1" />\r
-\r
-      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
-      <gd name="enAng" fmla="pin 1 adj3 21599999" />\r
-      <gd name="stAng" fmla="pin 0 adj4 21599999" />\r
-\r
-      <gd name="th" fmla="*/ ss a1 100000" />\r
-\r
-      <gd name="thh" fmla="*/ ss a5 100000" />\r
-\r
-      <gd name="th2" fmla="*/ th 1 2" />\r
-\r
-\r
-      <gd name="rw1" fmla="+- wd2 th2 thh" />\r
-\r
-      <gd name="rh1" fmla="+- hd2 th2 thh" />\r
-\r
-      <gd name="rw2" fmla="+- rw1 0 th" />\r
-\r
-      <gd name="rh2" fmla="+- rh1 0 th" />\r
-\r
-      <gd name="rw3" fmla="+- rw2 th2 0" />\r
-\r
-      <gd name="rh3" fmla="+- rh2 th2 0" />\r
-\r
-\r
-      <gd name="wtH" fmla="sin rw3 enAng" />\r
-      <gd name="htH" fmla="cos rh3 enAng" />\r
-      <gd name="dxH" fmla="cat2 rw3 htH wtH" />\r
-      <gd name="dyH" fmla="sat2 rh3 htH wtH" />\r
-      <gd name="xH" fmla="+- hc dxH 0" />\r
-\r
-      <gd name="yH" fmla="+- vc dyH 0" />\r
-\r
-\r
-      <gd name="rI" fmla="min rw2 rh2" />\r
-\r
-      <gd name="u1" fmla="*/ dxH dxH 1" />\r
-      <gd name="u2" fmla="*/ dyH dyH 1" />\r
-      <gd name="u3" fmla="*/ rI rI 1" />\r
-      <gd name="u4" fmla="+- u1 0 u3" />\r
-      <gd name="u5" fmla="+- u2 0 u3" />\r
-      <gd name="u6" fmla="*/ u4 u5 u1" />\r
-      <gd name="u7" fmla="*/ u6 1 u2" />\r
-      <gd name="u8" fmla="+- 1 0 u7" />\r
-      <gd name="u9" fmla="sqrt u8" />\r
-      <gd name="u10" fmla="*/ u4 1 dxH" />\r
-      <gd name="u11" fmla="*/ u10 1 dyH" />\r
-      <gd name="u12" fmla="+/ 1 u9 u11" />\r
-      <gd name="u13" fmla="at2 1 u12" />\r
-      <gd name="u14" fmla="+- u13 21600000 0" />\r
-      <gd name="u15" fmla="?: u13 u13 u14" />\r
-      <gd name="u16" fmla="+- u15 0 enAng" />\r
-\r
-      <gd name="u17" fmla="+- u16 21600000 0" />\r
-      <gd name="u18" fmla="?: u16 u16 u17" />\r
-      <gd name="u19" fmla="+- u18 0 cd2" />\r
-      <gd name="u20" fmla="+- u18 0 21600000" />\r
-      <gd name="u21" fmla="?: u19 u20 u18" />\r
-      <gd name="maxAng" fmla="abs u21" />\r
-      <gd name="aAng" fmla="pin 0 adj2 maxAng" />\r
-\r
-      <gd name="ptAng" fmla="+- enAng aAng 0" />\r
-\r
-\r
-      <gd name="wtA" fmla="sin rw3 ptAng" />\r
-      <gd name="htA" fmla="cos rh3 ptAng" />\r
-      <gd name="dxA" fmla="cat2 rw3 htA wtA" />\r
-      <gd name="dyA" fmla="sat2 rh3 htA wtA" />\r
-      <gd name="xA" fmla="+- hc dxA 0" />\r
-\r
-      <gd name="yA" fmla="+- vc dyA 0" />\r
-\r
-\r
-      <gd name="wtE" fmla="sin rw1 stAng" />\r
-      <gd name="htE" fmla="cos rh1 stAng" />\r
-      <gd name="dxE" fmla="cat2 rw1 htE wtE" />\r
-      <gd name="dyE" fmla="sat2 rh1 htE wtE" />\r
-      <gd name="xE" fmla="+- hc dxE 0" />\r
-\r
-      <gd name="yE" fmla="+- vc dyE 0" />\r
-\r
-\r
-      <gd name="dxG" fmla="cos thh ptAng" />\r
-      <gd name="dyG" fmla="sin thh ptAng" />\r
-      <gd name="xG" fmla="+- xH dxG 0" />\r
-\r
-      <gd name="yG" fmla="+- yH dyG 0" />\r
-\r
-\r
-      <gd name="dxB" fmla="cos thh ptAng" />\r
-      <gd name="dyB" fmla="sin thh ptAng" />\r
-      <gd name="xB" fmla="+- xH 0 dxB 0" />\r
-\r
-      <gd name="yB" fmla="+- yH 0 dyB 0" />\r
-\r
-\r
-      <gd name="sx1" fmla="+- xB 0 hc" />\r
-\r
-      <gd name="sy1" fmla="+- yB 0 vc" />\r
-\r
-      <gd name="sx2" fmla="+- xG 0 hc" />\r
-\r
-      <gd name="sy2" fmla="+- yG 0 vc" />\r
-\r
-\r
-      <gd name="rO" fmla="min rw1 rh1" />\r
-\r
-      <gd name="x1O" fmla="*/ sx1 rO rw1" />\r
-\r
-      <gd name="y1O" fmla="*/ sy1 rO rh1" />\r
-\r
-      <gd name="x2O" fmla="*/ sx2 rO rw1" />\r
-\r
-      <gd name="y2O" fmla="*/ sy2 rO rh1" />\r
-\r
-\r
-      <gd name="dxO" fmla="+- x2O 0 x1O" />\r
-      <gd name="dyO" fmla="+- y2O 0 y1O" />\r
-      <gd name="dO" fmla="mod dxO dyO 0" />\r
-\r
-      <gd name="q1" fmla="*/ x1O y2O 1" />\r
-      <gd name="q2" fmla="*/ x2O y1O 1" />\r
-      <gd name="DO" fmla="+- q1 0 q2" />\r
-\r
-\r
-      <gd name="q3" fmla="*/ rO rO 1" />\r
-\r
-      <gd name="q4" fmla="*/ dO dO 1" />\r
-\r
-      <gd name="q5" fmla="*/ q3 q4 1" />\r
-\r
-      <gd name="q6" fmla="*/ DO DO 1" />\r
-\r
-      <gd name="q7" fmla="+- q5 0 q6" />\r
-\r
-      <gd name="q8" fmla="max q7 0" />\r
-\r
-      <gd name="sdelO" fmla="sqrt q8" />\r
-\r
-      <gd name="ndyO" fmla="*/ dyO -1 1" />\r
-      <gd name="sdyO" fmla="?: ndyO -1 1" />\r
-\r
-      <gd name="q9" fmla="*/ sdyO dxO 1" />\r
-\r
-      <gd name="q10" fmla="*/ q9 sdelO 1" />\r
-\r
-      <gd name="q11" fmla="*/ DO dyO 1" />\r
-\r
-      <gd name="dxF1" fmla="+/ q11 q10 q4" />\r
-\r
-      <gd name="q12" fmla="+- q11 0 q10" />\r
-      <gd name="dxF2" fmla="*/ q12 1 q4" />\r
-\r
-\r
-      <gd name="adyO" fmla="abs dyO" />\r
-      <gd name="q13" fmla="*/ adyO sdelO 1" />\r
-\r
-      <gd name="q14" fmla="*/ DO dxO -1" />\r
-\r
-      <gd name="dyF1" fmla="+/ q14 q13 q4" />\r
-\r
-      <gd name="q15" fmla="+- q14 0 q13" />\r
-      <gd name="dyF2" fmla="*/ q15 1 q4" />\r
-\r
-\r
-\r
-      <gd name="q16" fmla="+- x2O 0 dxF1" />\r
-      <gd name="q17" fmla="+- x2O 0 dxF2" />\r
-      <gd name="q18" fmla="+- y2O 0 dyF1" />\r
-      <gd name="q19" fmla="+- y2O 0 dyF2" />\r
-      <gd name="q20" fmla="mod q16 q18 0" />\r
-\r
-      <gd name="q21" fmla="mod q17 q19 0" />\r
-\r
-      <gd name="q22" fmla="+- q21 0 q20" />\r
-      <gd name="dxF" fmla="?: q22 dxF1 dxF2" />\r
-\r
-      <gd name="dyF" fmla="?: q22 dyF1 dyF2" />\r
-\r
-      <gd name="sdxF" fmla="*/ dxF rw1 rO" />\r
-\r
-      <gd name="sdyF" fmla="*/ dyF rh1 rO" />\r
-\r
-      <gd name="xF" fmla="+- hc sdxF 0" />\r
-\r
-      <gd name="yF" fmla="+- vc sdyF 0" />\r
-\r
-\r
-\r
-\r
-      <gd name="x1I" fmla="*/ sx1 rI rw2" />\r
-\r
-      <gd name="y1I" fmla="*/ sy1 rI rh2" />\r
-\r
-      <gd name="x2I" fmla="*/ sx2 rI rw2" />\r
-\r
-      <gd name="y2I" fmla="*/ sy2 rI rh2" />\r
-\r
-\r
-      <gd name="dxI" fmla="+- x2I 0 x1I" />\r
-      <gd name="dyI" fmla="+- y2I 0 y1I" />\r
-      <gd name="dI" fmla="mod dxI dyI 0" />\r
-      <gd name="v1" fmla="*/ x1I y2I 1" />\r
-      <gd name="v2" fmla="*/ x2I y1I 1" />\r
-      <gd name="DI" fmla="+- v1 0 v2" />\r
-\r
-      <gd name="v3" fmla="*/ rI rI 1" />\r
-      <gd name="v4" fmla="*/ dI dI 1" />\r
-      <gd name="v5" fmla="*/ v3 v4 1" />\r
-      <gd name="v6" fmla="*/ DI DI 1" />\r
-      <gd name="v7" fmla="+- v5 0 v6" />\r
-      <gd name="v8" fmla="max v7 0" />\r
-      <gd name="sdelI" fmla="sqrt v8" />\r
-      <gd name="v9" fmla="*/ sdyO dxI 1" />\r
-      <gd name="v10" fmla="*/ v9 sdelI 1" />\r
-      <gd name="v11" fmla="*/ DI dyI 1" />\r
-      <gd name="dxC1" fmla="+/ v11 v10 v4" />\r
-      <gd name="v12" fmla="+- v11 0 v10" />\r
-      <gd name="dxC2" fmla="*/ v12 1 v4" />\r
-\r
-      <gd name="adyI" fmla="abs dyI" />\r
-      <gd name="v13" fmla="*/ adyI sdelI 1" />\r
-      <gd name="v14" fmla="*/ DI dxI -1" />\r
-      <gd name="dyC1" fmla="+/ v14 v13 v4" />\r
-      <gd name="v15" fmla="+- v14 0 v13" />\r
-      <gd name="dyC2" fmla="*/ v15 1 v4" />\r
-\r
-      <gd name="v16" fmla="+- x1I 0 dxC1" />\r
-      <gd name="v17" fmla="+- x1I 0 dxC2" />\r
-      <gd name="v18" fmla="+- y1I 0 dyC1" />\r
-      <gd name="v19" fmla="+- y1I 0 dyC2" />\r
-      <gd name="v20" fmla="mod v16 v18 0" />\r
-      <gd name="v21" fmla="mod v17 v19 0" />\r
-      <gd name="v22" fmla="+- v21 0 v20" />\r
-      <gd name="dxC" fmla="?: v22 dxC1 dxC2" />\r
-      <gd name="dyC" fmla="?: v22 dyC1 dyC2" />\r
-      <gd name="sdxC" fmla="*/ dxC rw2 rI" />\r
-      <gd name="sdyC" fmla="*/ dyC rh2 rI" />\r
-      <gd name="xC" fmla="+- hc sdxC 0" />\r
-\r
-      <gd name="yC" fmla="+- vc sdyC 0" />\r
-\r
-\r
-      <gd name="ist0" fmla="at2 sdxC sdyC" />\r
-      <gd name="ist1" fmla="+- ist0 21600000 0" />\r
-      <gd name="istAng" fmla="?: ist0 ist0 ist1" />\r
-      <gd name="isw1" fmla="+- stAng 0 istAng" />\r
-      <gd name="isw2" fmla="+- isw1 0 21600000" />\r
-      <gd name="iswAng" fmla="?: isw1 isw2 isw1" />\r
-\r
-\r
-      <gd name="p1" fmla="+- xF 0 xC" />\r
-      <gd name="p2" fmla="+- yF 0 yC" />\r
-      <gd name="p3" fmla="mod p1 p2 0" />\r
-      <gd name="p4" fmla="*/ p3 1 2" />\r
-      <gd name="p5" fmla="+- p4 0 thh" />\r
-      <gd name="xGp" fmla="?: p5 xF xG" />\r
-      <gd name="yGp" fmla="?: p5 yF yG" />\r
-      <gd name="xBp" fmla="?: p5 xC xB" />\r
-      <gd name="yBp" fmla="?: p5 yC yB" />\r
-\r
-      <gd name="en0" fmla="at2 sdxF sdyF" />\r
-      <gd name="en1" fmla="+- en0 21600000 0" />\r
-      <gd name="en2" fmla="?: en0 en0 en1" />\r
-      <gd name="sw0" fmla="+- en2 0 stAng" />\r
-      <gd name="sw1" fmla="+- sw0 21600000 0" />\r
-      <gd name="swAng" fmla="?: sw0 sw0 sw1" />\r
-\r
-      <gd name="wtI" fmla="sin rw3 stAng" />\r
-      <gd name="htI" fmla="cos rh3 stAng" />\r
-      <gd name="dxI" fmla="cat2 rw3 htI wtI" />\r
-      <gd name="dyI" fmla="sat2 rh3 htI wtI" />\r
-      <gd name="xI" fmla="+- hc dxI 0" />\r
-\r
-      <gd name="yI" fmla="+- vc dyI 0" />\r
-\r
-\r
-      <gd name="aI" fmla="+- stAng 0 cd4" />\r
-      <gd name="aA" fmla="+- ptAng cd4 0" />\r
-      <gd name="aB" fmla="+- ptAng cd2 0" />\r
-\r
-      <gd name="idx" fmla="cos rw1 2700000" />\r
-      <gd name="idy" fmla="sin rh1 2700000" />\r
-      <gd name="il" fmla="+- hc 0 idx" />\r
-      <gd name="ir" fmla="+- hc idx 0" />\r
-      <gd name="it" fmla="+- vc 0 idy" />\r
-      <gd name="ib" fmla="+- vc idy 0" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahPolar gdRefAng="adj2" minAng="0" maxAng="maxAng">\r
-        <pos x="xA" y="yA" />\r
-      </ahPolar>\r
-      <ahPolar gdRefAng="adj4" minAng="0" maxAng="21599999">\r
-        <pos x="xE" y="yE" />\r
-      </ahPolar>\r
-      <ahPolar gdRefR="adj1" minR="0" maxR="maxAdj1" gdRefAng="adj3" minAng="0" maxAng="21599999">\r
-        <pos x="xF" y="yF" />\r
-      </ahPolar>\r
-      <ahPolar gdRefR="adj5" minR="0" maxR="25000">\r
-        <pos x="xB" y="yB" />\r
-      </ahPolar>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="aI">\r
-        <pos x="xI" y="yI" />\r
-      </cxn>\r
-      <cxn ang="ptAng">\r
-        <pos x="xGp" y="yGp" />\r
-      </cxn>\r
-      <cxn ang="aA">\r
-        <pos x="xA" y="yA" />\r
-      </cxn>\r
-      <cxn ang="aB">\r
-        <pos x="xBp" y="yBp" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="xE" y="yE" />\r
-        </moveTo>\r
-        <arcTo wR="rw1" hR="rh1" stAng="stAng" swAng="swAng" />\r
-        <lnTo>\r
-          <pt x="xGp" y="yGp" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xA" y="yA" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xBp" y="yBp" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xC" y="yC" />\r
-        </lnTo>\r
-        <arcTo wR="rw2" hR="rh2" stAng="istAng" swAng="iswAng" />\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </circularArrow>\r
-  <cloud>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="il" fmla="*/ w 2977 21600" />\r
-      <gd name="it" fmla="*/ h 3262 21600" />\r
-      <gd name="ir" fmla="*/ w 17087 21600" />\r
-      <gd name="ib" fmla="*/ h 17337 21600" />\r
-      <gd name="g27" fmla="*/ w 67 21600" />\r
-      <gd name="g28" fmla="*/ h 21577 21600" />\r
-      <gd name="g29" fmla="*/ w 21582 21600" />\r
-      <gd name="g30" fmla="*/ h 1235 21600" />\r
-    </gdLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="g29" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="g28" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="g27" y="vc" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="g30" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path w="43200" h="43200">\r
-        <moveTo>\r
-          <pt x="3900" y="14370" />\r
-        </moveTo>\r
-        <arcTo wR="6753" hR="9190" stAng="-11429249" swAng="7426832" />\r
-        <arcTo wR="5333" hR="7267" stAng="-8646143" swAng="5396714" />\r
-        <arcTo wR="4365" hR="5945" stAng="-8748475" swAng="5983381" />\r
-        <arcTo wR="4857" hR="6595" stAng="-7859164" swAng="7034504" />\r
-        <arcTo wR="5333" hR="7273" stAng="-4722533" swAng="6541615" />\r
-        <arcTo wR="6775" hR="9220" stAng="-2776035" swAng="7816140" />\r
-        <arcTo wR="5785" hR="7867" stAng="37501" swAng="6842000" />\r
-        <arcTo wR="6752" hR="9215" stAng="1347096" swAng="6910353" />\r
-        <arcTo wR="7720" hR="10543" stAng="3974558" swAng="4542661" />\r
-        <arcTo wR="4360" hR="5918" stAng="-16496525" swAng="8804134" />\r
-        <arcTo wR="4345" hR="5945" stAng="-14809710" swAng="9151131" />\r
-        <close />\r
-      </path>\r
-      <path w="43200" h="43200" fill="none" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="4693" y="26177" />\r
-        </moveTo>\r
-        <arcTo wR="4345" hR="5945" stAng="5204520" swAng="1585770" />\r
-        <moveTo>\r
-          <pt x="6928" y="34899" />\r
-        </moveTo>\r
-        <arcTo wR="4360" hR="5918" stAng="4416628" swAng="686848" />\r
-        <moveTo>\r
-          <pt x="16478" y="39090" />\r
-        </moveTo>\r
-        <arcTo wR="6752" hR="9215" stAng="8257449" swAng="844866" />\r
-        <moveTo>\r
-          <pt x="28827" y="34751" />\r
-        </moveTo>\r
-        <arcTo wR="6752" hR="9215" stAng="387196" swAng="959901" />\r
-        <moveTo>\r
-          <pt x="34129" y="22954" />\r
-        </moveTo>\r
-        <arcTo wR="5785" hR="7867" stAng="-4217541" swAng="4255042" />\r
-        <moveTo>\r
-          <pt x="41798" y="15354" />\r
-        </moveTo>\r
-        <arcTo wR="5333" hR="7273" stAng="1819082" swAng="1665090" />\r
-        <moveTo>\r
-          <pt x="38324" y="5426" />\r
-        </moveTo>\r
-        <arcTo wR="4857" hR="6595" stAng="-824660" swAng="891534" />\r
-        <moveTo>\r
-          <pt x="29078" y="3952" />\r
-        </moveTo>\r
-        <arcTo wR="4857" hR="6595" stAng="-8950887" swAng="1091722" />\r
-        <moveTo>\r
-          <pt x="22141" y="4720" />\r
-        </moveTo>\r
-        <arcTo wR="4365" hR="5945" stAng="-9809656" swAng="1061181" />\r
-        <moveTo>\r
-          <pt x="14000" y="5192" />\r
-        </moveTo>\r
-        <arcTo wR="6753" hR="9190" stAng="-4002417" swAng="739161" />\r
-        <moveTo>\r
-          <pt x="4127" y="15789" />\r
-        </moveTo>\r
-        <arcTo wR="6753" hR="9190" stAng="9459261" swAng="711490" />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </cloud>\r
-  <cloudCallout>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val -20833" />\r
-\r
-      <gd name="adj2" fmla="val 62500" />\r
-\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="dxPos" fmla="*/ w adj1 100000" />\r
-      <gd name="dyPos" fmla="*/ h adj2 100000" />\r
-      <gd name="xPos" fmla="+- hc dxPos 0" />\r
-      <gd name="yPos" fmla="+- vc dyPos 0" />\r
-      <gd name="ht" fmla="cat2 hd2 dxPos dyPos" />\r
-      <gd name="wt" fmla="sat2 wd2 dxPos dyPos" />\r
-      <gd name="g2" fmla="cat2 wd2 ht wt" />\r
-      <gd name="g3" fmla="sat2 hd2 ht wt" />\r
-      <gd name="g4" fmla="+- hc g2 0" />\r
-\r
-      <gd name="g5" fmla="+- vc g3 0" />\r
-\r
-      <gd name="g6" fmla="+- g4 0 xPos" />\r
-\r
-      <gd name="g7" fmla="+- g5 0 yPos" />\r
-\r
-      <gd name="g8" fmla="mod g6 g7 0" />\r
-\r
-      <gd name="g9" fmla="*/ ss 6600 21600" />\r
-\r
-      <gd name="g10" fmla="+- g8 0 g9" />\r
-\r
-      <gd name="g11" fmla="*/ g10 1 3" />\r
-\r
-      <gd name="g12" fmla="*/ ss 1800 21600" />\r
-\r
-      <gd name="g13" fmla="+- g11 g12 0" />\r
-\r
-      <gd name="g14" fmla="*/ g13 g6 g8" />\r
-\r
-      <gd name="g15" fmla="*/ g13 g7 g8" />\r
-\r
-      <gd name="g16" fmla="+- g14 xPos 0" />\r
-\r
-      <gd name="g17" fmla="+- g15 yPos 0" />\r
-\r
-      <gd name="g18" fmla="*/ ss 4800 21600" />\r
-\r
-      <gd name="g19" fmla="*/ g11 2 1" />\r
-\r
-      <gd name="g20" fmla="+- g18 g19 0" />\r
-\r
-      <gd name="g21" fmla="*/ g20 g6 g8" />\r
-      <gd name="g22" fmla="*/ g20 g7 g8" />\r
-      <gd name="g23" fmla="+- g21 xPos 0" />\r
-      <gd name="g24" fmla="+- g22 yPos 0" />\r
-      <gd name="g25" fmla="*/ ss 1200 21600" />\r
-      <gd name="g26" fmla="*/ ss 600 21600" />\r
-\r
-      <gd name="x23" fmla="+- xPos g26 0" />\r
-      <gd name="x24" fmla="+- g16 g25 0" />\r
-      <gd name="x25" fmla="+- g23 g12 0" />\r
-      <gd name="il" fmla="*/ w 2977 21600" />\r
-      <gd name="it" fmla="*/ h 3262 21600" />\r
-      <gd name="ir" fmla="*/ w 17087 21600" />\r
-      <gd name="ib" fmla="*/ h 17337 21600" />\r
-\r
-      <gd name="g27" fmla="*/ w 67 21600" />\r
-      <gd name="g28" fmla="*/ h 21577 21600" />\r
-      <gd name="g29" fmla="*/ w 21582 21600" />\r
-      <gd name="g30" fmla="*/ h 1235 21600" />\r
-      <gd name="pang" fmla="at2 dxPos dyPos" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj1" minX="-2147483647" maxX="2147483647" gdRefY="adj2" minY="-2147483647" maxY="2147483647">\r
-        <pos x="xPos" y="yPos" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="cd2">\r
-        <pos x="g27" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="g28" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="g29" y="vc" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="g30" />\r
-      </cxn>\r
-      <cxn ang="pang">\r
-        <pos x="xPos" y="yPos" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path w="43200" h="43200">\r
-        <moveTo>\r
-          <pt x="3900" y="14370" />\r
-        </moveTo>\r
-        <arcTo wR="6753" hR="9190" stAng="-11429249" swAng="7426832" />\r
-        <arcTo wR="5333" hR="7267" stAng="-8646143" swAng="5396714" />\r
-        <arcTo wR="4365" hR="5945" stAng="-8748475" swAng="5983381" />\r
-        <arcTo wR="4857" hR="6595" stAng="-7859164" swAng="7034504" />\r
-        <arcTo wR="5333" hR="7273" stAng="-4722533" swAng="6541615" />\r
-        <arcTo wR="6775" hR="9220" stAng="-2776035" swAng="7816140" />\r
-        <arcTo wR="5785" hR="7867" stAng="37501" swAng="6842000" />\r
-        <arcTo wR="6752" hR="9215" stAng="1347096" swAng="6910353" />\r
-        <arcTo wR="7720" hR="10543" stAng="3974558" swAng="4542661" />\r
-        <arcTo wR="4360" hR="5918" stAng="-16496525" swAng="8804134" />\r
-        <arcTo wR="4345" hR="5945" stAng="-14809710" swAng="9151131" />\r
-        <close />\r
-      </path>\r
-      <path>\r
-        <moveTo>\r
-          <pt x="x23" y="yPos" />\r
-        </moveTo>\r
-        <arcTo wR="g26" hR="g26" stAng="0" swAng="21600000" />\r
-        <close />\r
-      </path>\r
-      <path>\r
-        <moveTo>\r
-          <pt x="x24" y="g17" />\r
-        </moveTo>\r
-        <arcTo wR="g25" hR="g25" stAng="0" swAng="21600000" />\r
-        <close />\r
-      </path>\r
-      <path>\r
-        <moveTo>\r
-          <pt x="x25" y="g24" />\r
-        </moveTo>\r
-        <arcTo wR="g12" hR="g12" stAng="0" swAng="21600000" />\r
-        <close />\r
-      </path>\r
-      <path w="43200" h="43200" fill="none" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="4693" y="26177" />\r
-        </moveTo>\r
-        <arcTo wR="4345" hR="5945" stAng="5204520" swAng="1585770" />\r
-        <moveTo>\r
-          <pt x="6928" y="34899" />\r
-        </moveTo>\r
-        <arcTo wR="4360" hR="5918" stAng="4416628" swAng="686848" />\r
-        <moveTo>\r
-          <pt x="16478" y="39090" />\r
-        </moveTo>\r
-        <arcTo wR="6752" hR="9215" stAng="8257449" swAng="844866" />\r
-        <moveTo>\r
-          <pt x="28827" y="34751" />\r
-        </moveTo>\r
-        <arcTo wR="6752" hR="9215" stAng="387196" swAng="959901" />\r
-        <moveTo>\r
-          <pt x="34129" y="22954" />\r
-        </moveTo>\r
-        <arcTo wR="5785" hR="7867" stAng="-4217541" swAng="4255042" />\r
-        <moveTo>\r
-          <pt x="41798" y="15354" />\r
-        </moveTo>\r
-        <arcTo wR="5333" hR="7273" stAng="1819082" swAng="1665090" />\r
-        <moveTo>\r
-          <pt x="38324" y="5426" />\r
-        </moveTo>\r
-        <arcTo wR="4857" hR="6595" stAng="-824660" swAng="891534" />\r
-        <moveTo>\r
-          <pt x="29078" y="3952" />\r
-        </moveTo>\r
-        <arcTo wR="4857" hR="6595" stAng="-8950887" swAng="1091722" />\r
-        <moveTo>\r
-          <pt x="22141" y="4720" />\r
-        </moveTo>\r
-        <arcTo wR="4365" hR="5945" stAng="-9809656" swAng="1061181" />\r
-        <moveTo>\r
-          <pt x="14000" y="5192" />\r
-        </moveTo>\r
-        <arcTo wR="6753" hR="9190" stAng="-4002417" swAng="739161" />\r
-        <moveTo>\r
-          <pt x="4127" y="15789" />\r
-        </moveTo>\r
-        <arcTo wR="6753" hR="9190" stAng="9459261" swAng="711490" />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </cloudCallout>\r
-  <corner>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 50000" />\r
-\r
-      <gd name="adj2" fmla="val 50000" />\r
-\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="maxAdj1" fmla="*/ 100000 h ss" />\r
-      <gd name="maxAdj2" fmla="*/ 100000 w ss" />\r
-      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
-      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
-      <gd name="x1" fmla="*/ ss a2 100000" />\r
-      <gd name="dy1" fmla="*/ ss a1 100000" />\r
-      <gd name="y1" fmla="+- b 0 dy1" />\r
-      <gd name="cx1" fmla="*/ x1 1 2" />\r
-      <gd name="cy1" fmla="+/ y1 b 2" />\r
-      <gd name="d" fmla="+- w 0 h" />\r
-      <gd name="it" fmla="?: d y1 t" />\r
-      <gd name="ir" fmla="?: d r x1" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefY="adj1" minY="0" maxY="maxAdj1">\r
-        <pos x="l" y="y1" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj2" minX="0" maxX="maxAdj2">\r
-        <pos x="x1" y="t" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="r" y="cy1" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="cx1" y="t" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="l" t="it" r="ir" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x1" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </corner>\r
-  <cornerTabs>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="md" fmla="mod w h 0" />\r
-      <gd name="dx" fmla="*/ 1 md 20" />\r
-\r
-      <gd name="y1" fmla="+- 0 b dx" />\r
-\r
-      <gd name="x1" fmla="+- 0 r dx" />\r
-\r
-    </gdLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="dx" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="y1" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="b" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="dx" y="t" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="x1" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="dx" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="x1" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="t" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="dx" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="y1" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="b" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="dx" t="dx" r="x1" b="y1" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="dx" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="dx" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="y1" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="dx" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path>\r
-        <moveTo>\r
-          <pt x="x1" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="r" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="dx" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path>\r
-        <moveTo>\r
-          <pt x="r" y="y1" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </cornerTabs>\r
-  <cube>\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj" fmla="val 25000" />\r
-    </avLst>\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a" fmla="pin 0 adj 100000" />\r
-      <gd name="y1" fmla="*/ ss a 100000" />\r
-      <gd name="y4" fmla="+- b 0 y1" />\r
-      <gd name="y2" fmla="*/ y4 1 2" />\r
-      <gd name="y3" fmla="+/ y1 b 2" />\r
-      <gd name="x4" fmla="+- r 0 y1" />\r
-      <gd name="x2" fmla="*/ x4 1 2" />\r
-      <gd name="x3" fmla="+/ y1 r 2" />\r
-    </gdLst>\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefY="adj" minY="0" maxY="100000">\r
-        <pos x="l" y="y1" />\r
-      </ahXY>\r
-    </ahLst>\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="x3" y="t" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="x2" y="y1" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="y3" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="x2" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="x4" y="y3" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="y2" />\r
-      </cxn>\r
-    </cxnLst>\r
-    <rect l="l" t="y1" r="x4" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path stroke="false" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="l" y="y1" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path stroke="false" fill="darkenLess" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="x4" y="y1" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="r" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path stroke="false" fill="lightenLess" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="l" y="y1" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="y1" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y1" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path fill="none" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="l" y="y1" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="y1" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <close />\r
-        <moveTo>\r
-          <pt x="l" y="y1" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="t" />\r
-        </lnTo>\r
-        <moveTo>\r
-          <pt x="x4" y="y1" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x4" y="b" />\r
-        </lnTo>\r
-      </path>\r
-    </pathLst>\r
-  </cube>\r
-  <curvedConnector2>\r
-    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path fill="none">\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <cubicBezTo>\r
-          <pt x="wd2" y="t" />\r
-          <pt x="r" y="hd2" />\r
-          <pt x="r" y="b" />\r
-        </cubicBezTo>\r
-      </path>\r
-    </pathLst>\r
-  </curvedConnector2>\r
-  <curvedConnector3>\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 50000" />\r
-    </avLst>\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="x2" fmla="*/ w adj1 100000" />\r
-      <gd name="x1" fmla="+/ l x2 2" />\r
-      <gd name="x3" fmla="+/ r x2 2" />\r
-      <gd name="y3" fmla="*/ h 3 4" />\r
-    </gdLst>\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj1" minX="-2147483647" maxX="2147483647">\r
-        <pos x="x2" y="vc" />\r
-      </ahXY>\r
-    </ahLst>\r
-    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path fill="none">\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <cubicBezTo>\r
-          <pt x="x1" y="t" />\r
-          <pt x="x2" y="hd4" />\r
-          <pt x="x2" y="vc" />\r
-        </cubicBezTo>\r
-        <cubicBezTo>\r
-          <pt x="x2" y="y3" />\r
-          <pt x="x3" y="b" />\r
-          <pt x="r" y="b" />\r
-        </cubicBezTo>\r
-      </path>\r
-    </pathLst>\r
-  </curvedConnector3>\r
-  <curvedConnector4>\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 50000" />\r
-      <gd name="adj2" fmla="val 50000" />\r
-    </avLst>\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="x2" fmla="*/ w adj1 100000" />\r
-      <gd name="x1" fmla="+/ l x2 2" />\r
-      <gd name="x3" fmla="+/ r x2 2" />\r
-      <gd name="x4" fmla="+/ x2 x3 2" />\r
-      <gd name="x5" fmla="+/ x3 r 2" />\r
-      <gd name="y4" fmla="*/ h adj2 100000" />\r
-      <gd name="y1" fmla="+/ t y4 2" />\r
-      <gd name="y2" fmla="+/ t y1 2" />\r
-      <gd name="y3" fmla="+/ y1 y4 2" />\r
-      <gd name="y5" fmla="+/ b y4 2" />\r
-    </gdLst>\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj1" minX="-2147483647" maxX="2147483647">\r
-        <pos x="x2" y="y1" />\r
-      </ahXY>\r
-      <ahXY gdRefY="adj2" minY="-2147483647" maxY="2147483647">\r
-        <pos x="x3" y="y4" />\r
-      </ahXY>\r
-    </ahLst>\r
-    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path fill="none">\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <cubicBezTo>\r
-          <pt x="x1" y="t" />\r
-          <pt x="x2" y="y2" />\r
-          <pt x="x2" y="y1" />\r
-        </cubicBezTo>\r
-        <cubicBezTo>\r
-          <pt x="x2" y="y3" />\r
-          <pt x="x4" y="y4" />\r
-          <pt x="x3" y="y4" />\r
-        </cubicBezTo>\r
-        <cubicBezTo>\r
-          <pt x="x5" y="y4" />\r
-          <pt x="r" y="y5" />\r
-          <pt x="r" y="b" />\r
-        </cubicBezTo>\r
-      </path>\r
-    </pathLst>\r
-  </curvedConnector4>\r
-  <curvedConnector5>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 50000" />\r
-\r
-      <gd name="adj2" fmla="val 50000" />\r
-\r
-      <gd name="adj3" fmla="val 50000" />\r
-\r
-    </avLst>\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="x3" fmla="*/ w adj1 100000" />\r
-      <gd name="x6" fmla="*/ w adj3 100000" />\r
-      <gd name="x1" fmla="+/ x3 x6 2" />\r
-      <gd name="x2" fmla="+/ l x3 2" />\r
-      <gd name="x4" fmla="+/ x3 x1 2" />\r
-      <gd name="x5" fmla="+/ x6 x1 2" />\r
-      <gd name="x7" fmla="+/ x6 r 2" />\r
-      <gd name="y4" fmla="*/ h adj2 100000" />\r
-      <gd name="y1" fmla="+/ t y4 2" />\r
-      <gd name="y2" fmla="+/ t y1 2" />\r
-      <gd name="y3" fmla="+/ y1 y4 2" />\r
-      <gd name="y5" fmla="+/ b y4 2" />\r
-      <gd name="y6" fmla="+/ y5 y4 2" />\r
-      <gd name="y7" fmla="+/ y5 b 2" />\r
-    </gdLst>\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj1" minX="-2147483647" maxX="2147483647">\r
-        <pos x="x3" y="y1" />\r
-      </ahXY>\r
-      <ahXY gdRefY="adj2" minY="-2147483647" maxY="2147483647">\r
-        <pos x="x1" y="y4" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj3" minX="-2147483647" maxX="2147483647">\r
-        <pos x="x6" y="y5" />\r
-      </ahXY>\r
-    </ahLst>\r
-    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path fill="none">\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <cubicBezTo>\r
-          <pt x="x2" y="t" />\r
-          <pt x="x3" y="y2" />\r
-          <pt x="x3" y="y1" />\r
-        </cubicBezTo>\r
-        <cubicBezTo>\r
-          <pt x="x3" y="y3" />\r
-          <pt x="x4" y="y4" />\r
-          <pt x="x1" y="y4" />\r
-        </cubicBezTo>\r
-        <cubicBezTo>\r
-          <pt x="x5" y="y4" />\r
-          <pt x="x6" y="y6" />\r
-          <pt x="x6" y="y5" />\r
-        </cubicBezTo>\r
-        <cubicBezTo>\r
-          <pt x="x6" y="y7" />\r
-          <pt x="x7" y="b" />\r
-          <pt x="r" y="b" />\r
-        </cubicBezTo>\r
-      </path>\r
-    </pathLst>\r
-\r
-  </curvedConnector5>\r
-  <curvedDownArrow>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 25000" />\r
-\r
-      <gd name="adj2" fmla="val 50000" />\r
-\r
-      <gd name="adj3" fmla="val 25000" />\r
-\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="maxAdj2" fmla="*/ 50000 w ss" />\r
-\r
-      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
-      <gd name="a1" fmla="pin 0 adj1 100000" />\r
-      <gd name="th" fmla="*/ ss a1 100000" />\r
-\r
-      <gd name="aw" fmla="*/ ss a2 100000" />\r
-\r
-      <gd name="q1" fmla="+/ th aw 4" />\r
-\r
-      <gd name="wR" fmla="+- wd2 0 q1" />\r
-\r
-      <gd name="q7" fmla="*/ wR 2 1" />\r
-\r
-      <gd name="q8" fmla="*/ q7 q7 1" />\r
-\r
-      <gd name="q9" fmla="*/ th th 1" />\r
-\r
-      <gd name="q10" fmla="+- q8 0 q9" />\r
-      <gd name="q11" fmla="sqrt q10" />\r
-      <gd name="idy" fmla="*/ q11 h q7" />\r
-      <gd name="maxAdj3" fmla="*/ 100000 idy ss" />\r
-\r
-      <gd name="a3" fmla="pin 0 adj3 maxAdj3" />\r
-      <gd name="ah" fmla="*/ ss adj3 100000" />\r
-\r
-\r
-\r
-\r
-\r
-      <gd name="x3" fmla="+- wR th 0" />\r
-\r
-      <gd name="q2" fmla="*/ h h 1" />\r
-      <gd name="q3" fmla="*/ ah ah 1" />\r
-      <gd name="q4" fmla="+- q2 0 q3" />\r
-      <gd name="q5" fmla="sqrt q4" />\r
-      <gd name="dx" fmla="*/ q5 wR h" />\r
-      <gd name="x5" fmla="+- wR dx 0" />\r
-\r
-      <gd name="x7" fmla="+- x3 dx 0" />\r
-\r
-      <gd name="q6" fmla="+- aw 0 th" />\r
-      <gd name="dh" fmla="*/ q6 1 2" />\r
-\r
-      <gd name="x4" fmla="+- x5 0 dh" />\r
-\r
-      <gd name="x8" fmla="+- x7 dh 0" />\r
-\r
-      <gd name="aw2" fmla="*/ aw 1 2" />\r
-      <gd name="x6" fmla="+- r 0 aw2" />\r
-\r
-      <gd name="y1" fmla="+- b 0 ah" />\r
-      <gd name="swAng" fmla="at2 ah dx" />\r
-\r
-      <gd name="mswAng" fmla="+- 0 0 swAng" />\r
-      <gd name="iy" fmla="+- b 0 idy" />\r
-\r
-      <gd name="ix" fmla="+/ wR x3 2" />\r
-\r
-      <gd name="q12" fmla="*/ th 1 2" />\r
-      <gd name="dang2" fmla="at2 idy q12" />\r
-      <gd name="stAng" fmla="+- 3cd4 swAng 0" />\r
-      <gd name="stAng2" fmla="+- 3cd4 0 dang2" />\r
-      <gd name="swAng2" fmla="+- dang2 0 cd4" />\r
-      <gd name="swAng3" fmla="+- cd4 dang2 0" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj1" minX="0" maxX="adj2">\r
-        <pos x="x7" y="y1" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj2" minX="0" maxX="maxAdj2">\r
-        <pos x="x4" y="b" />\r
-      </ahXY>\r
-      <ahXY gdRefY="adj3" minY="0" maxY="maxAdj3">\r
-        <pos x="r" y="y1" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="ix" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="q12" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="x4" y="y1" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="x6" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="x8" y="y1" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-\r
-    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-\r
-      <path stroke="false" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="x6" y="b" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x5" y="y1" />\r
-        </lnTo>\r
-        <arcTo wR="wR" hR="h" stAng="stAng" swAng="mswAng" />\r
-        <lnTo>\r
-          <pt x="x3" y="t" />\r
-        </lnTo>\r
-        <arcTo wR="wR" hR="h" stAng="3cd4" swAng="swAng" />\r
-        <lnTo>\r
-          <pt x="x8" y="y1" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-\r
-      <path fill="darkenLess" stroke="false" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="ix" y="iy" />\r
-        </moveTo>\r
-        <arcTo wR="wR" hR="h" stAng="stAng2" swAng="swAng2" />\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <arcTo wR="wR" hR="h" stAng="cd2" swAng="swAng3" />\r
-        <close />\r
-      </path>\r
-\r
-      <path fill="none" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="ix" y="iy" />\r
-        </moveTo>\r
-        <arcTo wR="wR" hR="h" stAng="stAng2" swAng="swAng2" />\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <arcTo wR="wR" hR="h" stAng="cd2" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="x3" y="t" />\r
-        </lnTo>\r
-        <arcTo wR="wR" hR="h" stAng="3cd4" swAng="swAng" />\r
-        <lnTo>\r
-          <pt x="x8" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x6" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x5" y="y1" />\r
-        </lnTo>\r
-        <arcTo wR="wR" hR="h" stAng="stAng" swAng="mswAng" />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </curvedDownArrow>\r
-  <curvedLeftArrow>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 25000" />\r
-\r
-      <gd name="adj2" fmla="val 50000" />\r
-\r
-      <gd name="adj3" fmla="val 25000" />\r
-\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="maxAdj2" fmla="*/ 50000 h ss" />\r
-\r
-      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
-      <gd name="a1" fmla="pin 0 adj1 a2" />\r
-      <gd name="th" fmla="*/ ss a1 100000" />\r
-\r
-      <gd name="aw" fmla="*/ ss a2 100000" />\r
-\r
-      <gd name="q1" fmla="+/ th aw 4" />\r
-\r
-      <gd name="hR" fmla="+- hd2 0 q1" />\r
-\r
-      <gd name="q7" fmla="*/ hR 2 1" />\r
-\r
-      <gd name="q8" fmla="*/ q7 q7 1" />\r
-\r
-      <gd name="q9" fmla="*/ th th 1" />\r
-\r
-      <gd name="q10" fmla="+- q8 0 q9" />\r
-      <gd name="q11" fmla="sqrt q10" />\r
-      <gd name="idx" fmla="*/ q11 w q7" />\r
-      <gd name="maxAdj3" fmla="*/ 100000 idx ss" />\r
-\r
-      <gd name="a3" fmla="pin 0 adj3 maxAdj3" />\r
-      <gd name="ah" fmla="*/ ss a3 100000" />\r
-\r
-\r
-\r
-\r
-\r
-      <gd name="y3" fmla="+- hR th 0" />\r
-\r
-      <gd name="q2" fmla="*/ w w 1" />\r
-      <gd name="q3" fmla="*/ ah ah 1" />\r
-      <gd name="q4" fmla="+- q2 0 q3" />\r
-      <gd name="q5" fmla="sqrt q4" />\r
-      <gd name="dy" fmla="*/ q5 hR w" />\r
-      <gd name="y5" fmla="+- hR dy 0" />\r
-\r
-      <gd name="y7" fmla="+- y3 dy 0" />\r
-\r
-      <gd name="q6" fmla="+- aw 0 th" />\r
-      <gd name="dh" fmla="*/ q6 1 2" />\r
-\r
-      <gd name="y4" fmla="+- y5 0 dh" />\r
-\r
-      <gd name="y8" fmla="+- y7 dh 0" />\r
-\r
-      <gd name="aw2" fmla="*/ aw 1 2" />\r
-      <gd name="y6" fmla="+- b 0 aw2" />\r
-\r
-      <gd name="x1" fmla="+- l ah 0" />\r
-      <gd name="swAng" fmla="at2 ah dy" />\r
-\r
-      <gd name="mswAng" fmla="+- 0 0 swAng" />\r
-      <gd name="ix" fmla="+- l idx 0" />\r
-\r
-      <gd name="iy" fmla="+/ hR y3 2" />\r
-\r
-      <gd name="q12" fmla="*/ th 1 2" />\r
-      <gd name="dang2" fmla="at2 idx q12" />\r
-      <gd name="swAng2" fmla="+- dang2 0 swAng" />\r
-      <gd name="swAng3" fmla="+- swAng dang2 0" />\r
-      <gd name="stAng3" fmla="+- 0 0 dang2" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefY="adj1" minY="0" maxY="a2">\r
-        <pos x="x1" y="y5" />\r
-      </ahXY>\r
-      <ahXY gdRefY="adj2" minY="0" maxY="maxAdj2">\r
-        <pos x="r" y="y4" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj3" minX="0" maxX="maxAdj3">\r
-        <pos x="x1" y="b" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="q12" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="x1" y="y4" />\r
-      </cxn>\r
-      <cxn ang="cd3">\r
-        <pos x="l" y="y6" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="x1" y="y8" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="iy" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-\r
-    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-\r
-      <path stroke="false" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="l" y="y6" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y5" />\r
-        </lnTo>\r
-        <arcTo wR="w" hR="hR" stAng="swAng" swAng="swAng2" />\r
-        <arcTo wR="w" hR="hR" stAng="stAng3" swAng="swAng3" />\r
-        <lnTo>\r
-          <pt x="x1" y="y8" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-\r
-      <path fill="darkenLess" stroke="false" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="r" y="y3" />\r
-        </moveTo>\r
-        <arcTo wR="w" hR="hR" stAng="0" swAng="-5400000" />\r
-        <lnTo>\r
-          <pt x="l" y="t" />\r
-        </lnTo>\r
-        <arcTo wR="w" hR="hR" stAng="3cd4" swAng="cd4" />\r
-        <close />\r
-      </path>\r
-\r
-      <path fill="none" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="r" y="y3" />\r
-        </moveTo>\r
-        <arcTo wR="w" hR="hR" stAng="0" swAng="-5400000" />\r
-        <lnTo>\r
-          <pt x="l" y="t" />\r
-        </lnTo>\r
-        <arcTo wR="w" hR="hR" stAng="3cd4" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="r" y="y3" />\r
-        </lnTo>\r
-        <arcTo wR="w" hR="hR" stAng="0" swAng="swAng" />\r
-        <lnTo>\r
-          <pt x="x1" y="y8" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="y6" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y5" />\r
-        </lnTo>\r
-        <arcTo wR="w" hR="hR" stAng="swAng" swAng="swAng2" />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </curvedLeftArrow>\r
-  <curvedRightArrow>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 25000" />\r
-\r
-      <gd name="adj2" fmla="val 50000" />\r
-\r
-      <gd name="adj3" fmla="val 25000" />\r
-\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="maxAdj2" fmla="*/ 50000 h ss" />\r
-\r
-      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
-      <gd name="a1" fmla="pin 0 adj1 a2" />\r
-      <gd name="th" fmla="*/ ss a1 100000" />\r
-\r
-      <gd name="aw" fmla="*/ ss a2 100000" />\r
-\r
-      <gd name="q1" fmla="+/ th aw 4" />\r
-\r
-      <gd name="hR" fmla="+- hd2 0 q1" />\r
-\r
-      <gd name="q7" fmla="*/ hR 2 1" />\r
-\r
-      <gd name="q8" fmla="*/ q7 q7 1" />\r
-\r
-      <gd name="q9" fmla="*/ th th 1" />\r
-\r
-      <gd name="q10" fmla="+- q8 0 q9" />\r
-      <gd name="q11" fmla="sqrt q10" />\r
-      <gd name="idx" fmla="*/ q11 w q7" />\r
-      <gd name="maxAdj3" fmla="*/ 100000 idx ss" />\r
-\r
-      <gd name="a3" fmla="pin 0 adj3 maxAdj3" />\r
-      <gd name="ah" fmla="*/ ss a3 100000" />\r
-\r
-\r
-\r
-\r
-\r
-      <gd name="y3" fmla="+- hR th 0" />\r
-\r
-      <gd name="q2" fmla="*/ w w 1" />\r
-      <gd name="q3" fmla="*/ ah ah 1" />\r
-      <gd name="q4" fmla="+- q2 0 q3" />\r
-      <gd name="q5" fmla="sqrt q4" />\r
-      <gd name="dy" fmla="*/ q5 hR w" />\r
-      <gd name="y5" fmla="+- hR dy 0" />\r
-\r
-      <gd name="y7" fmla="+- y3 dy 0" />\r
-\r
-      <gd name="q6" fmla="+- aw 0 th" />\r
-      <gd name="dh" fmla="*/ q6 1 2" />\r
-\r
-      <gd name="y4" fmla="+- y5 0 dh" />\r
-\r
-      <gd name="y8" fmla="+- y7 dh 0" />\r
-\r
-      <gd name="aw2" fmla="*/ aw 1 2" />\r
-      <gd name="y6" fmla="+- b 0 aw2" />\r
-\r
-      <gd name="x1" fmla="+- r 0 ah" />\r
-      <gd name="swAng" fmla="at2 ah dy" />\r
-\r
-      <gd name="stAng" fmla="+- cd2 0 swAng" />\r
-      <gd name="mswAng" fmla="+- 0 0 swAng" />\r
-      <gd name="ix" fmla="+- r 0 idx" />\r
-\r
-      <gd name="iy" fmla="+/ hR y3 2" />\r
-\r
-      <gd name="q12" fmla="*/ th 1 2" />\r
-      <gd name="dang2" fmla="at2 idx q12" />\r
-      <gd name="swAng2" fmla="+- dang2 0 cd4" />\r
-      <gd name="swAng3" fmla="+- cd4 dang2 0" />\r
-      <gd name="stAng3" fmla="+- cd2 0 dang2" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefY="adj1" minY="0" maxY="a2">\r
-        <pos x="x1" y="y5" />\r
-      </ahXY>\r
-      <ahXY gdRefY="adj2" minY="0" maxY="maxAdj2">\r
-        <pos x="r" y="y4" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj3" minX="0" maxX="maxAdj3">\r
-        <pos x="x1" y="b" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="iy" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="x1" y="y8" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="y6" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="x1" y="y4" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="q12" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-\r
-    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-\r
-      <path stroke="false" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="l" y="hR" />\r
-        </moveTo>\r
-        <arcTo wR="w" hR="hR" stAng="cd2" swAng="mswAng" />\r
-        <lnTo>\r
-          <pt x="x1" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="y6" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y8" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y7" />\r
-        </lnTo>\r
-        <arcTo wR="w" hR="hR" stAng="stAng" swAng="swAng" />\r
-        <close />\r
-      </path>\r
-\r
-      <path fill="darkenLess" stroke="false" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="r" y="th" />\r
-        </moveTo>\r
-        <arcTo wR="w" hR="hR" stAng="3cd4" swAng="swAng2" />\r
-        <arcTo wR="w" hR="hR" stAng="stAng3" swAng="swAng3" />\r
-        <close />\r
-      </path>\r
-\r
-      <path fill="none" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="l" y="hR" />\r
-        </moveTo>\r
-        <arcTo wR="w" hR="hR" stAng="cd2" swAng="mswAng" />\r
-        <lnTo>\r
-          <pt x="x1" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="y6" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y8" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y7" />\r
-        </lnTo>\r
-        <arcTo wR="w" hR="hR" stAng="stAng" swAng="swAng" />\r
-        <lnTo>\r
-          <pt x="l" y="hR" />\r
-        </lnTo>\r
-        <arcTo wR="w" hR="hR" stAng="cd2" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="r" y="th" />\r
-        </lnTo>\r
-        <arcTo wR="w" hR="hR" stAng="3cd4" swAng="swAng2" />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </curvedRightArrow>\r
-  <curvedUpArrow>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 25000" />\r
-\r
-      <gd name="adj2" fmla="val 50000" />\r
-\r
-      <gd name="adj3" fmla="val 25000" />\r
-\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="maxAdj2" fmla="*/ 50000 w ss" />\r
-\r
-      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
-      <gd name="a1" fmla="pin 0 adj1 100000" />\r
-      <gd name="th" fmla="*/ ss a1 100000" />\r
-\r
-      <gd name="aw" fmla="*/ ss a2 100000" />\r
-\r
-      <gd name="q1" fmla="+/ th aw 4" />\r
-\r
-      <gd name="wR" fmla="+- wd2 0 q1" />\r
-\r
-      <gd name="q7" fmla="*/ wR 2 1" />\r
-\r
-      <gd name="q8" fmla="*/ q7 q7 1" />\r
-\r
-      <gd name="q9" fmla="*/ th th 1" />\r
-\r
-      <gd name="q10" fmla="+- q8 0 q9" />\r
-      <gd name="q11" fmla="sqrt q10" />\r
-      <gd name="idy" fmla="*/ q11 h q7" />\r
-      <gd name="maxAdj3" fmla="*/ 100000 idy ss" />\r
-\r
-      <gd name="a3" fmla="pin 0 adj3 maxAdj3" />\r
-      <gd name="ah" fmla="*/ ss adj3 100000" />\r
-\r
-\r
-\r
-\r
-\r
-      <gd name="x3" fmla="+- wR th 0" />\r
-\r
-      <gd name="q2" fmla="*/ h h 1" />\r
-      <gd name="q3" fmla="*/ ah ah 1" />\r
-      <gd name="q4" fmla="+- q2 0 q3" />\r
-      <gd name="q5" fmla="sqrt q4" />\r
-      <gd name="dx" fmla="*/ q5 wR h" />\r
-      <gd name="x5" fmla="+- wR dx 0" />\r
-\r
-      <gd name="x7" fmla="+- x3 dx 0" />\r
-\r
-      <gd name="q6" fmla="+- aw 0 th" />\r
-      <gd name="dh" fmla="*/ q6 1 2" />\r
-\r
-      <gd name="x4" fmla="+- x5 0 dh" />\r
-\r
-      <gd name="x8" fmla="+- x7 dh 0" />\r
-\r
-      <gd name="aw2" fmla="*/ aw 1 2" />\r
-      <gd name="x6" fmla="+- r 0 aw2" />\r
-\r
-      <gd name="y1" fmla="+- t ah 0" />\r
-      <gd name="swAng" fmla="at2 ah dx" />\r
-\r
-      <gd name="mswAng" fmla="+- 0 0 swAng" />\r
-      <gd name="iy" fmla="+- t idy 0" />\r
-\r
-      <gd name="ix" fmla="+/ wR x3 2" />\r
-\r
-      <gd name="q12" fmla="*/ th 1 2" />\r
-      <gd name="dang2" fmla="at2 idy q12" />\r
-      <gd name="swAng2" fmla="+- dang2 0 swAng" />\r
-      <gd name="mswAng2" fmla="+- 0 0 swAng2" />\r
-      <gd name="stAng3" fmla="+- cd4 0 swAng" />\r
-      <gd name="swAng3" fmla="+- swAng dang2 0" />\r
-      <gd name="stAng2" fmla="+- cd4 0 dang2" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj1" minX="0" maxX="a2">\r
-        <pos x="x7" y="y1" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj2" minX="0" maxX="maxAdj2">\r
-        <pos x="x4" y="t" />\r
-      </ahXY>\r
-      <ahXY gdRefY="adj3" minY="0" maxY="maxAdj3">\r
-        <pos x="r" y="y1" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="x6" y="t" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="x4" y="y1" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="q12" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="ix" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="x8" y="y1" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-\r
-    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-\r
-      <path stroke="false" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="x6" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x8" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x7" y="y1" />\r
-        </lnTo>\r
-        <arcTo wR="wR" hR="h" stAng="stAng3" swAng="swAng3" />\r
-        <arcTo wR="wR" hR="h" stAng="stAng2" swAng="swAng2" />\r
-        <lnTo>\r
-          <pt x="x4" y="y1" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-\r
-      <path fill="darkenLess" stroke="false" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="wR" y="b" />\r
-        </moveTo>\r
-        <arcTo wR="wR" hR="h" stAng="cd4" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="th" y="t" />\r
-        </lnTo>\r
-        <arcTo wR="wR" hR="h" stAng="cd2" swAng="-5400000" />\r
-        <close />\r
-      </path>\r
-\r
-      <path fill="none" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="ix" y="iy" />\r
-        </moveTo>\r
-        <arcTo wR="wR" hR="h" stAng="stAng2" swAng="swAng2" />\r
-        <lnTo>\r
-          <pt x="x4" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x6" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x8" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x7" y="y1" />\r
-        </lnTo>\r
-        <arcTo wR="wR" hR="h" stAng="stAng3" swAng="swAng" />\r
-        <lnTo>\r
-          <pt x="wR" y="b" />\r
-        </lnTo>\r
-        <arcTo wR="wR" hR="h" stAng="cd4" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="th" y="t" />\r
-        </lnTo>\r
-        <arcTo wR="wR" hR="h" stAng="cd2" swAng="-5400000" />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </curvedUpArrow>\r
-  <decagon>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="vf" fmla="val 105146" />\r
-    </avLst>\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="shd2" fmla="*/ hd2 vf 100000" />\r
-      <gd name="dx1" fmla="cos wd2 2160000" />\r
-      <gd name="dx2" fmla="cos wd2 4320000" />\r
-      <gd name="x1" fmla="+- hc 0 dx1" />\r
-      <gd name="x2" fmla="+- hc 0 dx2" />\r
-      <gd name="x3" fmla="+- hc dx2 0" />\r
-      <gd name="x4" fmla="+- hc dx1 0" />\r
-      <gd name="dy1" fmla="sin shd2 4320000" />\r
-      <gd name="dy2" fmla="sin shd2 2160000" />\r
-      <gd name="y1" fmla="+- vc 0 dy1" />\r
-      <gd name="y2" fmla="+- vc 0 dy2" />\r
-      <gd name="y3" fmla="+- vc dy2 0" />\r
-      <gd name="y4" fmla="+- vc dy1 0" />\r
-    </gdLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="x4" y="y2" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="x4" y="y3" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="x3" y="y4" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="x2" y="y4" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="x1" y="y3" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="x1" y="y2" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="x2" y="y1" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="x3" y="y1" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="x1" t="y2" r="x4" b="y3" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="vc" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="vc" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y3" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </decagon>\r
-  <diagStripe>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj" fmla="val 50000" />\r
-\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a" fmla="pin 0 adj 100000" />\r
-      <gd name="x2" fmla="*/ w a 100000" />\r
-      <gd name="x1" fmla="*/ x2 1 2" />\r
-      <gd name="x3" fmla="+/ x2 r 2" />\r
-      <gd name="y2" fmla="*/ h a 100000" />\r
-      <gd name="y1" fmla="*/ y2 1 2" />\r
-      <gd name="y3" fmla="+/ y2 b 2" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefY="adj" minY="0" maxY="100000">\r
-        <pos x="l" y="y2" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="hc" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="y3" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="x1" y="y1" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="x3" y="t" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="l" t="t" r="x3" b="y3" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="y2" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x2" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </diagStripe>\r
-  <diamond>\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="ir" fmla="*/ w 3 4" />\r
-      <gd name="ib" fmla="*/ h 3 4" />\r
-    </gdLst>\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-    <rect l="wd4" t="hd4" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="vc" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="hc" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="vc" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="hc" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-  </diamond>\r
-  <dodecagon>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="x1" fmla="*/ w 2894 21600" />\r
-      <gd name="x2" fmla="*/ w 7906 21600" />\r
-      <gd name="x3" fmla="*/ w 13694 21600" />\r
-      <gd name="x4" fmla="*/ w 18706 21600" />\r
-      <gd name="y1" fmla="*/ h 2894 21600" />\r
-      <gd name="y2" fmla="*/ h 7906 21600" />\r
-      <gd name="y3" fmla="*/ h 13694 21600" />\r
-      <gd name="y4" fmla="*/ h 18706 21600" />\r
-    </gdLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="x4" y="y1" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="y2" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="y3" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="x4" y="y4" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="x3" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="x2" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="x1" y="y4" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="y3" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="y2" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="x1" y="y1" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="x2" y="t" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="x3" y="t" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="x1" t="y1" r="x4" b="y4" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="y2" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="y3" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </dodecagon>\r
-  <donut>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj" fmla="val 25000" />\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a" fmla="pin 0 adj 50000" />\r
-      <gd name="dr" fmla="*/ ss a 100000" />\r
-      <gd name="iwd2" fmla="+- wd2 0 dr" />\r
-      <gd name="ihd2" fmla="+- hd2 0 dr" />\r
-      <gd name="idx" fmla="cos wd2 2700000" />\r
-      <gd name="idy" fmla="sin hd2 2700000" />\r
-      <gd name="il" fmla="+- hc 0 idx" />\r
-      <gd name="ir" fmla="+- hc idx 0" />\r
-      <gd name="it" fmla="+- vc 0 idy" />\r
-      <gd name="ib" fmla="+- vc idy 0" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahPolar gdRefR="adj" minR="0" maxR="50000">\r
-        <pos x="dr" y="vc" />\r
-      </ahPolar>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="il" y="it" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="il" y="ib" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="ir" y="ib" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="ir" y="it" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="vc" />\r
-        </moveTo>\r
-        <arcTo wR="wd2" hR="hd2" stAng="cd2" swAng="cd4" />\r
-        <arcTo wR="wd2" hR="hd2" stAng="3cd4" swAng="cd4" />\r
-        <arcTo wR="wd2" hR="hd2" stAng="0" swAng="cd4" />\r
-        <arcTo wR="wd2" hR="hd2" stAng="cd4" swAng="cd4" />\r
-        <close />\r
-        <moveTo>\r
-          <pt x="dr" y="vc" />\r
-        </moveTo>\r
-        <arcTo wR="iwd2" hR="ihd2" stAng="cd2" swAng="-5400000" />\r
-        <arcTo wR="iwd2" hR="ihd2" stAng="cd4" swAng="-5400000" />\r
-        <arcTo wR="iwd2" hR="ihd2" stAng="0" swAng="-5400000" />\r
-        <arcTo wR="iwd2" hR="ihd2" stAng="3cd4" swAng="-5400000" />\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </donut>\r
-  <doubleWave>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 6250" />\r
-\r
-      <gd name="adj2" fmla="val 0" />\r
-\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a1" fmla="pin 0 adj1 12500" />\r
-      <gd name="a2" fmla="pin -10000 adj2 10000" />\r
-      <gd name="y1" fmla="*/ h a1 100000" />\r
-\r
-      <gd name="dy2" fmla="*/ y1 10 3" />\r
-      <gd name="y2" fmla="+- y1 0 dy2" />\r
-\r
-      <gd name="y3" fmla="+- y1 dy2 0" />\r
-\r
-      <gd name="y4" fmla="+- b 0 y1" />\r
-\r
-      <gd name="y5" fmla="+- y4 0 dy2" />\r
-\r
-      <gd name="y6" fmla="+- y4 dy2 0" />\r
-\r
-      <gd name="dx1" fmla="*/ w a2 100000" />\r
-\r
-      <gd name="of2" fmla="*/ w a2 50000" />\r
-\r
-      <gd name="x1" fmla="abs dx1" />\r
-\r
-      <gd name="dx2" fmla="?: of2 0 of2" />\r
-      <gd name="x2" fmla="+- l 0 dx2" />\r
-\r
-      <gd name="dx8" fmla="?: of2 of2 0" />\r
-      <gd name="x8" fmla="+- r 0 dx8" />\r
-\r
-      <gd name="dx3" fmla="+/ dx2 x8 6" />\r
-      <gd name="x3" fmla="+- x2 dx3 0" />\r
-\r
-      <gd name="dx4" fmla="+/ dx2 x8 3" />\r
-      <gd name="x4" fmla="+- x2 dx4 0" />\r
-\r
-      <gd name="x5" fmla="+/ x2 x8 2" />\r
-\r
-      <gd name="x6" fmla="+- x5 dx3 0" />\r
-\r
-      <gd name="x7" fmla="+/ x6 x8 2" />\r
-\r
-      <gd name="x9" fmla="+- l dx8 0" />\r
-\r
-      <gd name="x15" fmla="+- r dx2 0" />\r
-\r
-      <gd name="x10" fmla="+- x9 dx3 0" />\r
-\r
-      <gd name="x11" fmla="+- x9 dx4 0" />\r
-\r
-      <gd name="x12" fmla="+/ x9 x15 2" />\r
-\r
-      <gd name="x13" fmla="+- x12 dx3 0" />\r
-\r
-      <gd name="x14" fmla="+/ x13 x15 2" />\r
-\r
-      <gd name="x16" fmla="+- r 0 x1" />\r
-\r
-      <gd name="xAdj" fmla="+- hc dx1 0" />\r
-      <gd name="il" fmla="max x2 x9" />\r
-      <gd name="ir" fmla="min x8 x15" />\r
-      <gd name="it" fmla="*/ h a1 50000" />\r
-      <gd name="ib" fmla="+- b 0 it" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefY="adj1" minY="0" maxY="12500">\r
-        <pos x="l" y="y1" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj2" minX="-10000" maxX="10000">\r
-        <pos x="xAdj" y="b" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="cd4">\r
-        <pos x="x12" y="y1" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="x1" y="vc" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="x5" y="y4" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="x16" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="x2" y="y1" />\r
-        </moveTo>\r
-        <cubicBezTo>\r
-          <pt x="x3" y="y2" />\r
-          <pt x="x4" y="y3" />\r
-          <pt x="x5" y="y1" />\r
-        </cubicBezTo>\r
-        <cubicBezTo>\r
-          <pt x="x6" y="y2" />\r
-          <pt x="x7" y="y3" />\r
-          <pt x="x8" y="y1" />\r
-        </cubicBezTo>\r
-        <lnTo>\r
-          <pt x="x15" y="y4" />\r
-        </lnTo>\r
-        <cubicBezTo>\r
-          <pt x="x14" y="y6" />\r
-          <pt x="x13" y="y5" />\r
-          <pt x="x12" y="y4" />\r
-        </cubicBezTo>\r
-        <cubicBezTo>\r
-          <pt x="x11" y="y6" />\r
-          <pt x="x10" y="y5" />\r
-          <pt x="x9" y="y4" />\r
-        </cubicBezTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </doubleWave>\r
-  <downArrow>\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 50000" />\r
-      <gd name="adj2" fmla="val 50000" />\r
-    </avLst>\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="maxAdj2" fmla="*/ 100000 h ss" />\r
-      <gd name="a1" fmla="pin 0 adj1 100000" />\r
-      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
-      <gd name="dy1" fmla="*/ ss a2 100000" />\r
-      <gd name="y1" fmla="+- b 0 dy1" />\r
-      <gd name="dx1" fmla="*/ w a1 200000" />\r
-      <gd name="x1" fmla="+- hc 0 dx1" />\r
-      <gd name="x2" fmla="+- hc dx1 0" />\r
-      <gd name="dy2" fmla="*/ x1 dy1 wd2" />\r
-      <gd name="y2" fmla="+- y1 dy2 0" />\r
-    </gdLst>\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj1" minX="0" maxX="100000">\r
-        <pos x="x1" y="t" />\r
-      </ahXY>\r
-      <ahXY gdRefY="adj2" minY="0" maxY="maxAdj2">\r
-        <pos x="l" y="y1" />\r
-      </ahXY>\r
-    </ahLst>\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="y1" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="y1" />\r
-      </cxn>\r
-    </cxnLst>\r
-    <rect l="x1" t="t" r="x2" b="y2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="y1" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="hc" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-  </downArrow>\r
-  <downArrowCallout>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 25000" />\r
-\r
-      <gd name="adj2" fmla="val 25000" />\r
-\r
-      <gd name="adj3" fmla="val 25000" />\r
-\r
-      <gd name="adj4" fmla="val 64977" />\r
-\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="maxAdj2" fmla="*/ 50000 w ss" />\r
-\r
-      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
-      <gd name="maxAdj1" fmla="*/ a2 2 1" />\r
-\r
-      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
-      <gd name="maxAdj3" fmla="*/ 100000 h ss" />\r
-\r
-      <gd name="a3" fmla="pin 0 adj3 maxAdj3" />\r
-      <gd name="q2" fmla="*/ a3 ss h" />\r
-\r
-      <gd name="maxAdj4" fmla="+- 100000 0 q2" />\r
-\r
-      <gd name="a4" fmla="pin 0 adj4 maxAdj4" />\r
-      <gd name="dx1" fmla="*/ ss a2 100000" />\r
-\r
-      <gd name="dx2" fmla="*/ ss a1 200000" />\r
-\r
-      <gd name="x1" fmla="+- hc 0 dx1" />\r
-      <gd name="x2" fmla="+- hc 0 dx2" />\r
-      <gd name="x3" fmla="+- hc dx2 0" />\r
-      <gd name="x4" fmla="+- hc dx1 0" />\r
-      <gd name="dy3" fmla="*/ ss a3 100000" />\r
-\r
-      <gd name="y3" fmla="+- b 0 dy3" />\r
-      <gd name="y2" fmla="*/ h a4 100000" />\r
-\r
-      <gd name="y1" fmla="*/ y2 1 2" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj1" minX="0" maxX="maxAdj1">\r
-        <pos x="x2" y="y3" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj2" minX="0" maxX="maxAdj2">\r
-        <pos x="x1" y="b" />\r
-      </ahXY>\r
-      <ahXY gdRefY="adj3" minY="0" maxY="maxAdj3">\r
-        <pos x="r" y="y3" />\r
-      </ahXY>\r
-      <ahXY gdRefY="adj4" minY="0" maxY="maxAdj4">\r
-        <pos x="l" y="y2" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="y1" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="y1" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="l" t="t" r="r" b="y2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="r" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="hc" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="y2" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </downArrowCallout>\r
-  <ellipse>\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="idx" fmla="cos wd2 2700000" />\r
-      <gd name="idy" fmla="sin hd2 2700000" />\r
-      <gd name="il" fmla="+- hc 0 idx" />\r
-      <gd name="ir" fmla="+- hc idx 0" />\r
-      <gd name="it" fmla="+- vc 0 idy" />\r
-      <gd name="ib" fmla="+- vc idy 0" />\r
-    </gdLst>\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="il" y="it" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="il" y="ib" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="ir" y="ib" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="ir" y="it" />\r
-      </cxn>\r
-    </cxnLst>\r
-    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="vc" />\r
-        </moveTo>\r
-        <arcTo wR="wd2" hR="hd2" stAng="cd2" swAng="cd4" />\r
-        <arcTo wR="wd2" hR="hd2" stAng="3cd4" swAng="cd4" />\r
-        <arcTo wR="wd2" hR="hd2" stAng="0" swAng="cd4" />\r
-        <arcTo wR="wd2" hR="hd2" stAng="cd4" swAng="cd4" />\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-  </ellipse>\r
-  <ellipseRibbon>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 25000" />\r
-\r
-      <gd name="adj2" fmla="val 50000" />\r
-\r
-      <gd name="adj3" fmla="val 12500" />\r
-\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a1" fmla="pin 0 adj1 100000" />\r
-      <gd name="a2" fmla="pin 25000 adj2 75000" />\r
-      <gd name="q10" fmla="+- 100000 0 a1" />\r
-      <gd name="q11" fmla="*/ q10 1 2" />\r
-      <gd name="q12" fmla="+- a1 0 q11" />\r
-      <gd name="minAdj3" fmla="max 0 q12" />\r
-      <gd name="a3" fmla="pin minAdj3 adj3 a1" />\r
-\r
-\r
-      <gd name="dx2" fmla="*/ w a2 200000" />\r
-\r
-      <gd name="x2" fmla="+- hc 0 dx2" />\r
-\r
-      <gd name="x3" fmla="+- x2 wd8 0" />\r
-\r
-      <gd name="x4" fmla="+- r 0 x3" />\r
-\r
-      <gd name="x5" fmla="+- r 0 x2" />\r
-\r
-      <gd name="x6" fmla="+- r 0 wd8" />\r
-\r
-      <gd name="dy1" fmla="*/ h a3 100000" />\r
-\r
-      <gd name="f1" fmla="*/ 4 dy1 w" />\r
-\r
-      <gd name="q1" fmla="*/ x3 x3 w" />\r
-      <gd name="q2" fmla="+- x3 0 q1" />\r
-      <gd name="y1" fmla="*/ f1 q2 1" />\r
-\r
-      <gd name="cx1" fmla="*/ x3 1 2" />\r
-\r
-      <gd name="cy1" fmla="*/ f1 cx1 1" />\r
-\r
-      <gd name="cx2" fmla="+- r 0 cx1" />\r
-\r
-\r
-\r
-      <gd name="q1" fmla="*/ h a1 100000" />\r
-\r
-      <gd name="dy3" fmla="+- q1 0 dy1" />\r
-\r
-      <gd name="q3" fmla="*/ x2 x2 w" />\r
-      <gd name="q4" fmla="+- x2 0 q3" />\r
-      <gd name="q5" fmla="*/ f1 q4 1" />\r
-      <gd name="y3" fmla="+- q5 dy3 0" />\r
-\r
-\r
-\r
-      <gd name="q6" fmla="+- dy1 dy3 y3" />\r
-      <gd name="q7" fmla="+- q6 dy1 0" />\r
-      <gd name="cy3" fmla="+- q7 dy3 0" />\r
-\r
-      <gd name="rh" fmla="+- b 0 q1" />\r
-\r
-      <gd name="q8" fmla="*/ dy1 14 16" />\r
-      <gd name="y2" fmla="+/ q8 rh 2" />\r
-\r
-\r
-      <gd name="y5" fmla="+- q5 rh 0" />\r
-\r
-      <gd name="y6" fmla="+- y3 rh 0" />\r
-\r
-      <gd name="cx4" fmla="*/ x2 1 2" />\r
-\r
-      <gd name="q9" fmla="*/ f1 cx4 1" />\r
-      <gd name="cy4" fmla="+- q9 rh 0" />\r
-\r
-      <gd name="cx5" fmla="+- r 0 cx4" />\r
-\r
-\r
-\r
-\r
-\r
-      <gd name="cy6" fmla="+- cy3 rh 0" />\r
-\r
-      <gd name="y7" fmla="+- y1 dy3 0" />\r
-      <gd name="cy7" fmla="+- q1 q1 y7" />\r
-      <gd name="y8" fmla="+- b 0 dy1" />\r
-\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefY="adj1" minY="0" maxY="100000">\r
-        <pos x="hc" y="q1" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj2" minX="25000" maxX="75000">\r
-        <pos x="x2" y="b" />\r
-      </ahXY>\r
-      <ahXY gdRefY="adj3" minY="minAdj3" maxY="a1">\r
-        <pos x="l" y="y8" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="q1" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="wd8" y="y2" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="x6" y="y2" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="x2" t="q1" r="x5" b="y6" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path stroke="false" extrusionOk="false">\r
-\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <quadBezTo>\r
-          <pt x="cx1" y="cy1" />\r
-          <pt x="x3" y="y1" />\r
-        </quadBezTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y3" />\r
-        </lnTo>\r
-        <quadBezTo>\r
-          <pt x="hc" y="cy3" />\r
-          <pt x="x5" y="y3" />\r
-        </quadBezTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y1" />\r
-        </lnTo>\r
-        <quadBezTo>\r
-          <pt x="cx2" y="cy1" />\r
-          <pt x="r" y="t" />\r
-        </quadBezTo>\r
-        <lnTo>\r
-          <pt x="x6" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="rh" />\r
-        </lnTo>\r
-        <quadBezTo>\r
-          <pt x="cx5" y="cy4" />\r
-          <pt x="x5" y="y5" />\r
-        </quadBezTo>\r
-        <lnTo>\r
-          <pt x="x5" y="y6" />\r
-        </lnTo>\r
-        <quadBezTo>\r
-          <pt x="hc" y="cy6" />\r
-          <pt x="x2" y="y6" />\r
-        </quadBezTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y5" />\r
-        </lnTo>\r
-        <quadBezTo>\r
-          <pt x="cx4" y="cy4" />\r
-          <pt x="l" y="rh" />\r
-        </quadBezTo>\r
-        <lnTo>\r
-          <pt x="wd8" y="y2" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path fill="darkenLess" stroke="false" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="x3" y="y7" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y3" />\r
-        </lnTo>\r
-        <quadBezTo>\r
-          <pt x="hc" y="cy3" />\r
-          <pt x="x5" y="y3" />\r
-        </quadBezTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y7" />\r
-        </lnTo>\r
-        <quadBezTo>\r
-          <pt x="hc" y="cy7" />\r
-          <pt x="x3" y="y7" />\r
-        </quadBezTo>\r
-        <close />\r
-      </path>\r
-      <path fill="none" extrusionOk="false">\r
-\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <quadBezTo>\r
-          <pt x="cx1" y="cy1" />\r
-          <pt x="x3" y="y1" />\r
-        </quadBezTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y3" />\r
-        </lnTo>\r
-        <quadBezTo>\r
-          <pt x="hc" y="cy3" />\r
-          <pt x="x5" y="y3" />\r
-        </quadBezTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y1" />\r
-        </lnTo>\r
-        <quadBezTo>\r
-          <pt x="cx2" y="cy1" />\r
-          <pt x="r" y="t" />\r
-        </quadBezTo>\r
-        <lnTo>\r
-          <pt x="x6" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="rh" />\r
-        </lnTo>\r
-        <quadBezTo>\r
-          <pt x="cx5" y="cy4" />\r
-          <pt x="x5" y="y5" />\r
-        </quadBezTo>\r
-        <lnTo>\r
-          <pt x="x5" y="y6" />\r
-        </lnTo>\r
-        <quadBezTo>\r
-          <pt x="hc" y="cy6" />\r
-          <pt x="x2" y="y6" />\r
-        </quadBezTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y5" />\r
-        </lnTo>\r
-        <quadBezTo>\r
-          <pt x="cx4" y="cy4" />\r
-          <pt x="l" y="rh" />\r
-        </quadBezTo>\r
-        <lnTo>\r
-          <pt x="wd8" y="y2" />\r
-        </lnTo>\r
-        <close />\r
-        <moveTo>\r
-          <pt x="x2" y="y5" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y3" />\r
-        </lnTo>\r
-        <moveTo>\r
-          <pt x="x5" y="y3" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x5" y="y5" />\r
-        </lnTo>\r
-        <moveTo>\r
-          <pt x="x3" y="y1" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y7" />\r
-        </lnTo>\r
-        <moveTo>\r
-          <pt x="x4" y="y7" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y1" />\r
-        </lnTo>\r
-      </path>\r
-    </pathLst>\r
-\r
-  </ellipseRibbon>\r
-  <ellipseRibbon2>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 25000" />\r
-\r
-      <gd name="adj2" fmla="val 50000" />\r
-\r
-      <gd name="adj3" fmla="val 12500" />\r
-\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-\r
-\r
-      <gd name="a1" fmla="pin 0 adj1 100000" />\r
-      <gd name="a2" fmla="pin 25000 adj2 75000" />\r
-      <gd name="q10" fmla="+- 100000 0 a1" />\r
-      <gd name="q11" fmla="*/ q10 1 2" />\r
-      <gd name="q12" fmla="+- a1 0 q11" />\r
-      <gd name="minAdj3" fmla="max 0 q12" />\r
-      <gd name="a3" fmla="pin minAdj3 adj3 a1" />\r
-      <gd name="dx2" fmla="*/ w a2 200000" />\r
-\r
-      <gd name="x2" fmla="+- hc 0 dx2" />\r
-\r
-      <gd name="x3" fmla="+- x2 wd8 0" />\r
-\r
-      <gd name="x4" fmla="+- r 0 x3" />\r
-\r
-      <gd name="x5" fmla="+- r 0 x2" />\r
-\r
-      <gd name="x6" fmla="+- r 0 wd8" />\r
-\r
-      <gd name="dy1" fmla="*/ h a3 100000" />\r
-\r
-      <gd name="f1" fmla="*/ 4 dy1 w" />\r
-\r
-      <gd name="q1" fmla="*/ x3 x3 w" />\r
-      <gd name="q2" fmla="+- x3 0 q1" />\r
-      <gd name="u1" fmla="*/ f1 q2 1" />\r
-\r
-      <gd name="y1" fmla="+- b 0 u1" />\r
-      <gd name="cx1" fmla="*/ x3 1 2" />\r
-\r
-      <gd name="cu1" fmla="*/ f1 cx1 1" />\r
-\r
-      <gd name="cy1" fmla="+- b 0 cu1" />\r
-      <gd name="cx2" fmla="+- r 0 cx1" />\r
-\r
-\r
-\r
-      <gd name="q1" fmla="*/ h a1 100000" />\r
-\r
-      <gd name="dy3" fmla="+- q1 0 dy1" />\r
-\r
-      <gd name="q3" fmla="*/ x2 x2 w" />\r
-      <gd name="q4" fmla="+- x2 0 q3" />\r
-      <gd name="q5" fmla="*/ f1 q4 1" />\r
-      <gd name="u3" fmla="+- q5 dy3 0" />\r
-\r
-      <gd name="y3" fmla="+- b 0 u3" />\r
-\r
-\r
-      <gd name="q6" fmla="+- dy1 dy3 u3" />\r
-      <gd name="q7" fmla="+- q6 dy1 0" />\r
-      <gd name="cu3" fmla="+- q7 dy3 0" />\r
-\r
-      <gd name="cy3" fmla="+- b 0 cu3" />\r
-      <gd name="rh" fmla="+- b 0 q1" />\r
-\r
-      <gd name="q8" fmla="*/ dy1 14 16" />\r
-      <gd name="u2" fmla="+/ q8 rh 2" />\r
-\r
-      <gd name="y2" fmla="+- b 0 u2" />\r
-\r
-      <gd name="u5" fmla="+- q5 rh 0" />\r
-\r
-      <gd name="y5" fmla="+- b 0 u5" />\r
-      <gd name="u6" fmla="+- u3 rh 0" />\r
-\r
-      <gd name="y6" fmla="+- b 0 u6" />\r
-      <gd name="cx4" fmla="*/ x2 1 2" />\r
-\r
-      <gd name="q9" fmla="*/ f1 cx4 1" />\r
-      <gd name="cu4" fmla="+- q9 rh 0" />\r
-\r
-      <gd name="cy4" fmla="+- b 0 cu4" />\r
-      <gd name="cx5" fmla="+- r 0 cx4" />\r
-\r
-\r
-\r
-\r
-\r
-      <gd name="cu6" fmla="+- cu3 rh 0" />\r
-\r
-      <gd name="cy6" fmla="+- b 0 cu6" />\r
-      <gd name="u7" fmla="+- u1 dy3 0" />\r
-      <gd name="y7" fmla="+- b 0 u7" />\r
-      <gd name="cu7" fmla="+- q1 q1 u7" />\r
-      <gd name="cy7" fmla="+- b 0 cu7" />\r
-\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefY="adj1" minY="0" maxY="100000">\r
-        <pos x="hc" y="rh" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj2" minX="25000" maxX="100000">\r
-        <pos x="x2" y="t" />\r
-      </ahXY>\r
-      <ahXY gdRefY="adj3" minY="minAdj3" maxY="a1">\r
-        <pos x="l" y="dy1" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="wd8" y="y2" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="rh" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="x6" y="y2" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="x2" t="y6" r="x5" b="rh" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path stroke="false" extrusionOk="false">\r
-\r
-        <moveTo>\r
-          <pt x="l" y="b" />\r
-        </moveTo>\r
-        <quadBezTo>\r
-          <pt x="cx1" y="cy1" />\r
-          <pt x="x3" y="y1" />\r
-        </quadBezTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y3" />\r
-        </lnTo>\r
-        <quadBezTo>\r
-          <pt x="hc" y="cy3" />\r
-          <pt x="x5" y="y3" />\r
-        </quadBezTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y1" />\r
-        </lnTo>\r
-        <quadBezTo>\r
-          <pt x="cx2" y="cy1" />\r
-          <pt x="r" y="b" />\r
-        </quadBezTo>\r
-        <lnTo>\r
-          <pt x="x6" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="q1" />\r
-        </lnTo>\r
-        <quadBezTo>\r
-          <pt x="cx5" y="cy4" />\r
-          <pt x="x5" y="y5" />\r
-        </quadBezTo>\r
-        <lnTo>\r
-          <pt x="x5" y="y6" />\r
-        </lnTo>\r
-        <quadBezTo>\r
-          <pt x="hc" y="cy6" />\r
-          <pt x="x2" y="y6" />\r
-        </quadBezTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y5" />\r
-        </lnTo>\r
-        <quadBezTo>\r
-          <pt x="cx4" y="cy4" />\r
-          <pt x="l" y="q1" />\r
-        </quadBezTo>\r
-        <lnTo>\r
-          <pt x="wd8" y="y2" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path fill="darkenLess" stroke="false" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="x3" y="y7" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y3" />\r
-        </lnTo>\r
-        <quadBezTo>\r
-          <pt x="hc" y="cy3" />\r
-          <pt x="x5" y="y3" />\r
-        </quadBezTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y7" />\r
-        </lnTo>\r
-        <quadBezTo>\r
-          <pt x="hc" y="cy7" />\r
-          <pt x="x3" y="y7" />\r
-        </quadBezTo>\r
-        <close />\r
-      </path>\r
-      <path fill="none" extrusionOk="false">\r
-\r
-        <moveTo>\r
-          <pt x="l" y="b" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="wd8" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="q1" />\r
-        </lnTo>\r
-        <quadBezTo>\r
-          <pt x="cx4" y="cy4" />\r
-          <pt x="x2" y="y5" />\r
-        </quadBezTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y6" />\r
-        </lnTo>\r
-        <quadBezTo>\r
-          <pt x="hc" y="cy6" />\r
-          <pt x="x5" y="y6" />\r
-        </quadBezTo>\r
-        <lnTo>\r
-          <pt x="x5" y="y5" />\r
-        </lnTo>\r
-        <quadBezTo>\r
-          <pt x="cx5" y="cy4" />\r
-          <pt x="r" y="q1" />\r
-        </quadBezTo>\r
-        <lnTo>\r
-          <pt x="x6" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <quadBezTo>\r
-          <pt x="cx2" y="cy1" />\r
-          <pt x="x4" y="y1" />\r
-        </quadBezTo>\r
-        <lnTo>\r
-          <pt x="x5" y="y3" />\r
-        </lnTo>\r
-        <quadBezTo>\r
-          <pt x="hc" y="cy3" />\r
-          <pt x="x2" y="y3" />\r
-        </quadBezTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y1" />\r
-        </lnTo>\r
-        <quadBezTo>\r
-          <pt x="cx1" y="cy1" />\r
-          <pt x="l" y="b" />\r
-        </quadBezTo>\r
-        <close />\r
-        <moveTo>\r
-          <pt x="x2" y="y3" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y5" />\r
-        </lnTo>\r
-        <moveTo>\r
-          <pt x="x5" y="y5" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x5" y="y3" />\r
-        </lnTo>\r
-        <moveTo>\r
-          <pt x="x3" y="y7" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y1" />\r
-        </lnTo>\r
-        <moveTo>\r
-          <pt x="x4" y="y1" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y7" />\r
-        </lnTo>\r
-      </path>\r
-    </pathLst>\r
-\r
-  </ellipseRibbon2>\r
-  <flowChartAlternateProcess>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="x2" fmla="+- r 0 ssd6" />\r
-      <gd name="y2" fmla="+- b 0 ssd6" />\r
-      <gd name="il" fmla="*/ ssd6 29289 100000" />\r
-\r
-\r
-      <gd name="ir" fmla="+- r 0 il" />\r
-      <gd name="ib" fmla="+- b 0 il" />\r
-    </gdLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="il" t="il" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="ssd6" />\r
-        </moveTo>\r
-        <arcTo wR="ssd6" hR="ssd6" stAng="cd2" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="x2" y="t" />\r
-        </lnTo>\r
-        <arcTo wR="ssd6" hR="ssd6" stAng="3cd4" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="r" y="y2" />\r
-        </lnTo>\r
-        <arcTo wR="ssd6" hR="ssd6" stAng="0" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="ssd6" y="b" />\r
-        </lnTo>\r
-        <arcTo wR="ssd6" hR="ssd6" stAng="cd4" swAng="cd4" />\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </flowChartAlternateProcess>\r
-  <flowChartCollate>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="ir" fmla="*/ w 3 4" />\r
-      <gd name="ib" fmla="*/ h 3 4" />\r
-    </gdLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="wd4" t="hd4" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path w="2" h="2">\r
-        <moveTo>\r
-          <pt x="0" y="0" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="2" y="0" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="1" y="1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="2" y="2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="0" y="2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="1" y="1" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </flowChartCollate>\r
-  <flowChartConnector>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="idx" fmla="cos wd2 2700000" />\r
-      <gd name="idy" fmla="sin hd2 2700000" />\r
-      <gd name="il" fmla="+- hc 0 idx" />\r
-      <gd name="ir" fmla="+- hc idx 0" />\r
-      <gd name="it" fmla="+- vc 0 idy" />\r
-      <gd name="ib" fmla="+- vc idy 0" />\r
-    </gdLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="il" y="it" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="il" y="ib" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="ir" y="ib" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="ir" y="it" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="vc" />\r
-        </moveTo>\r
-        <arcTo wR="wd2" hR="hd2" stAng="cd2" swAng="cd4" />\r
-        <arcTo wR="wd2" hR="hd2" stAng="3cd4" swAng="cd4" />\r
-        <arcTo wR="wd2" hR="hd2" stAng="0" swAng="cd4" />\r
-        <arcTo wR="wd2" hR="hd2" stAng="cd4" swAng="cd4" />\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </flowChartConnector>\r
-  <flowChartDecision>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="ir" fmla="*/ w 3 4" />\r
-      <gd name="ib" fmla="*/ h 3 4" />\r
-    </gdLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="wd4" t="hd4" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path w="2" h="2">\r
-        <moveTo>\r
-          <pt x="0" y="1" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="1" y="0" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="2" y="1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="1" y="2" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </flowChartDecision>\r
-  <flowChartDelay>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="idx" fmla="cos wd2 2700000" />\r
-      <gd name="idy" fmla="sin hd2 2700000" />\r
-      <gd name="ir" fmla="+- hc idx 0" />\r
-      <gd name="it" fmla="+- vc 0 idy" />\r
-      <gd name="ib" fmla="+- vc idy 0" />\r
-    </gdLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="l" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="hc" y="t" />\r
-        </lnTo>\r
-        <arcTo wR="wd2" hR="hd2" stAng="3cd4" swAng="cd2" />\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </flowChartDelay>\r
-  <flowChartDisplay>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="x2" fmla="*/ w 5 6" />\r
-    </gdLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="wd6" t="t" r="x2" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path w="6" h="6">\r
-        <moveTo>\r
-          <pt x="0" y="3" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="1" y="0" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="5" y="0" />\r
-        </lnTo>\r
-        <arcTo wR="1" hR="3" stAng="3cd4" swAng="cd2" />\r
-        <lnTo>\r
-          <pt x="1" y="6" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </flowChartDisplay>\r
-  <flowChartDocument>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="y1" fmla="*/ h 17322 21600" />\r
-      <gd name="y2" fmla="*/ h 20172 21600" />\r
-    </gdLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="y2" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="l" t="t" r="r" b="y1" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path w="21600" h="21600">\r
-        <moveTo>\r
-          <pt x="0" y="0" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="21600" y="0" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="21600" y="17322" />\r
-        </lnTo>\r
-        <cubicBezTo>\r
-          <pt x="10800" y="17322" />\r
-          <pt x="10800" y="23922" />\r
-          <pt x="0" y="20172" />\r
-        </cubicBezTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </flowChartDocument>\r
-  <flowChartExtract>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="x2" fmla="*/ w 3 4" />\r
-    </gdLst>\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="wd4" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="x2" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="wd4" t="vc" r="x2" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path w="2" h="2">\r
-        <moveTo>\r
-          <pt x="0" y="2" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="1" y="0" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="2" y="2" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </flowChartExtract>\r
-  <flowChartInputOutput>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="x3" fmla="*/ w 2 5" />\r
-      <gd name="x4" fmla="*/ w 3 5" />\r
-      <gd name="x5" fmla="*/ w 4 5" />\r
-      <gd name="x6" fmla="*/ w 9 10" />\r
-    </gdLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="x4" y="t" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="wd10" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="x3" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="x6" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="wd5" t="t" r="x5" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path w="5" h="5">\r
-        <moveTo>\r
-          <pt x="0" y="5" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="1" y="0" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="5" y="0" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="4" y="5" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </flowChartInputOutput>\r
-  <flowChartInternalStorage>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="wd8" t="hd8" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path stroke="false" extrusionOk="false" w="1" h="1">\r
-\r
-        <moveTo>\r
-          <pt x="0" y="0" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="1" y="0" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="1" y="1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="0" y="1" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path fill="none" extrusionOk="false" w="8" h="8">\r
-\r
-        <moveTo>\r
-          <pt x="1" y="0" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="1" y="8" />\r
-        </lnTo>\r
-        <moveTo>\r
-          <pt x="0" y="1" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="8" y="1" />\r
-        </lnTo>\r
-      </path>\r
-      <path fill="none" w="1" h="1">\r
-\r
-        <moveTo>\r
-          <pt x="0" y="0" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="1" y="0" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="1" y="1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="0" y="1" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </flowChartInternalStorage>\r
-  <flowChartMagneticDisk>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="y3" fmla="*/ h 5 6" />\r
-    </gdLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="hd3" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="l" t="hd3" r="r" b="y3" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path stroke="false" extrusionOk="false" w="6" h="6">\r
-\r
-        <moveTo>\r
-          <pt x="0" y="1" />\r
-        </moveTo>\r
-        <arcTo wR="3" hR="1" stAng="cd2" swAng="cd2" />\r
-        <lnTo>\r
-          <pt x="6" y="5" />\r
-        </lnTo>\r
-        <arcTo wR="3" hR="1" stAng="0" swAng="cd2" />\r
-        <close />\r
-      </path>\r
-      <path fill="none" extrusionOk="false" w="6" h="6">\r
-\r
-        <moveTo>\r
-          <pt x="6" y="1" />\r
-        </moveTo>\r
-        <arcTo wR="3" hR="1" stAng="0" swAng="cd2" />\r
-      </path>\r
-      <path fill="none" w="6" h="6">\r
-\r
-        <moveTo>\r
-          <pt x="0" y="1" />\r
-        </moveTo>\r
-        <arcTo wR="3" hR="1" stAng="cd2" swAng="cd2" />\r
-        <lnTo>\r
-          <pt x="6" y="5" />\r
-        </lnTo>\r
-        <arcTo wR="3" hR="1" stAng="0" swAng="cd2" />\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </flowChartMagneticDisk>\r
-  <flowChartMagneticDrum>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="x2" fmla="*/ w 2 3" />\r
-    </gdLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="x2" y="vc" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="wd6" t="t" r="x2" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path stroke="false" extrusionOk="false" w="6" h="6">\r
-\r
-        <moveTo>\r
-          <pt x="1" y="0" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="5" y="0" />\r
-        </lnTo>\r
-        <arcTo wR="1" hR="3" stAng="3cd4" swAng="cd2" />\r
-        <lnTo>\r
-          <pt x="1" y="6" />\r
-        </lnTo>\r
-        <arcTo wR="1" hR="3" stAng="cd4" swAng="cd2" />\r
-        <close />\r
-      </path>\r
-      <path fill="none" extrusionOk="false" w="6" h="6">\r
-\r
-        <moveTo>\r
-          <pt x="5" y="6" />\r
-        </moveTo>\r
-        <arcTo wR="1" hR="3" stAng="cd4" swAng="cd2" />\r
-      </path>\r
-      <path fill="none" w="6" h="6">\r
-\r
-        <moveTo>\r
-          <pt x="1" y="0" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="5" y="0" />\r
-        </lnTo>\r
-        <arcTo wR="1" hR="3" stAng="3cd4" swAng="cd2" />\r
-        <lnTo>\r
-          <pt x="1" y="6" />\r
-        </lnTo>\r
-        <arcTo wR="1" hR="3" stAng="cd4" swAng="cd2" />\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </flowChartMagneticDrum>\r
-  <flowChartMagneticTape>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="idx" fmla="cos wd2 2700000" />\r
-      <gd name="idy" fmla="sin hd2 2700000" />\r
-      <gd name="il" fmla="+- hc 0 idx" />\r
-      <gd name="ir" fmla="+- hc idx 0" />\r
-      <gd name="it" fmla="+- vc 0 idy" />\r
-      <gd name="ib" fmla="+- vc idy 0" />\r
-      <gd name="ang1" fmla="at2 w h" />\r
-    </gdLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="hc" y="b" />\r
-        </moveTo>\r
-        <arcTo wR="wd2" hR="hd2" stAng="cd4" swAng="cd4" />\r
-        <arcTo wR="wd2" hR="hd2" stAng="cd2" swAng="cd4" />\r
-        <arcTo wR="wd2" hR="hd2" stAng="3cd4" swAng="cd4" />\r
-        <arcTo wR="wd2" hR="hd2" stAng="0" swAng="ang1" />\r
-        <lnTo>\r
-          <pt x="r" y="ib" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </flowChartMagneticTape>\r
-  <flowChartManualInput>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="hd10" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="l" t="hd5" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path w="5" h="5">\r
-        <moveTo>\r
-          <pt x="0" y="1" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="5" y="0" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="5" y="5" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="0" y="5" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </flowChartManualInput>\r
-  <flowChartManualOperation>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="x3" fmla="*/ w 4 5" />\r
-      <gd name="x4" fmla="*/ w 9 10" />\r
-    </gdLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="wd10" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="x4" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="wd5" t="t" r="x3" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path w="5" h="5">\r
-        <moveTo>\r
-          <pt x="0" y="0" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="5" y="0" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="4" y="5" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="1" y="5" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </flowChartManualOperation>\r
-  <flowChartMerge>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="x2" fmla="*/ w 3 4" />\r
-    </gdLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="wd4" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="x2" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="wd4" t="t" r="x2" b="vc" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path w="2" h="2">\r
-        <moveTo>\r
-          <pt x="0" y="0" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="2" y="0" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="1" y="2" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </flowChartMerge>\r
-  <flowChartMultidocument>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="y2" fmla="*/ h 3675 21600" />\r
-      <gd name="y8" fmla="*/ h 20782 21600" />\r
-      <gd name="x3" fmla="*/ w 9298 21600" />\r
-      <gd name="x4" fmla="*/ w 12286 21600" />\r
-      <gd name="x5" fmla="*/ w 18595 21600" />\r
-    </gdLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="x4" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="x3" y="y8" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="l" t="y2" r="x5" b="y8" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path stroke="false" extrusionOk="false" w="21600" h="21600">\r
-\r
-        <moveTo>\r
-          <pt x="0" y="20782" />\r
-        </moveTo>\r
-        <cubicBezTo>\r
-          <pt x="9298" y="23542" />\r
-          <pt x="9298" y="18022" />\r
-          <pt x="18595" y="18022" />\r
-        </cubicBezTo>\r
-        <lnTo>\r
-          <pt x="18595" y="3675" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="0" y="3675" />\r
-        </lnTo>\r
-        <close />\r
-        <moveTo>\r
-          <pt x="1532" y="3675" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="1532" y="1815" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="20000" y="1815" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="20000" y="16252" />\r
-        </lnTo>\r
-        <cubicBezTo>\r
-          <pt x="19298" y="16252" />\r
-          <pt x="18595" y="16352" />\r
-          <pt x="18595" y="16352" />\r
-        </cubicBezTo>\r
-        <lnTo>\r
-          <pt x="18595" y="3675" />\r
-        </lnTo>\r
-        <close />\r
-        <moveTo>\r
-          <pt x="2972" y="1815" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="2972" y="0" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="21600" y="0" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="21600" y="14392" />\r
-        </lnTo>\r
-        <cubicBezTo>\r
-          <pt x="20800" y="14392" />\r
-          <pt x="20000" y="14467" />\r
-          <pt x="20000" y="14467" />\r
-        </cubicBezTo>\r
-        <lnTo>\r
-          <pt x="20000" y="1815" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path fill="none" extrusionOk="false" w="21600" h="21600">\r
-\r
-        <moveTo>\r
-          <pt x="0" y="3675" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="18595" y="3675" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="18595" y="18022" />\r
-        </lnTo>\r
-        <cubicBezTo>\r
-          <pt x="9298" y="18022" />\r
-          <pt x="9298" y="23542" />\r
-          <pt x="0" y="20782" />\r
-        </cubicBezTo>\r
-        <close />\r
-        <moveTo>\r
-          <pt x="1532" y="3675" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="1532" y="1815" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="20000" y="1815" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="20000" y="16252" />\r
-        </lnTo>\r
-        <cubicBezTo>\r
-          <pt x="19298" y="16252" />\r
-          <pt x="18595" y="16352" />\r
-          <pt x="18595" y="16352" />\r
-        </cubicBezTo>\r
-        <moveTo>\r
-          <pt x="2972" y="1815" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="2972" y="0" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="21600" y="0" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="21600" y="14392" />\r
-        </lnTo>\r
-        <cubicBezTo>\r
-          <pt x="20800" y="14392" />\r
-          <pt x="20000" y="14467" />\r
-          <pt x="20000" y="14467" />\r
-        </cubicBezTo>\r
-      </path>\r
-      <path stroke="false" fill="none" w="21600" h="21600">\r
-\r
-        <moveTo>\r
-          <pt x="0" y="20782" />\r
-        </moveTo>\r
-        <cubicBezTo>\r
-          <pt x="9298" y="23542" />\r
-          <pt x="9298" y="18022" />\r
-          <pt x="18595" y="18022" />\r
-        </cubicBezTo>\r
-        <lnTo>\r
-          <pt x="18595" y="16352" />\r
-        </lnTo>\r
-        <cubicBezTo>\r
-          <pt x="18595" y="16352" />\r
-          <pt x="19298" y="16252" />\r
-          <pt x="20000" y="16252" />\r
-        </cubicBezTo>\r
-        <lnTo>\r
-          <pt x="20000" y="14467" />\r
-        </lnTo>\r
-        <cubicBezTo>\r
-          <pt x="20000" y="14467" />\r
-          <pt x="20800" y="14392" />\r
-          <pt x="21600" y="14392" />\r
-        </cubicBezTo>\r
-        <lnTo>\r
-          <pt x="21600" y="0" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="2972" y="0" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="2972" y="1815" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="1532" y="1815" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="1532" y="3675" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="0" y="3675" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </flowChartMultidocument>\r
-  <flowChartOfflineStorage>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="x4" fmla="*/ w 3 4" />\r
-    </gdLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="x4" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="wd4" y="vc" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="wd4" t="t" r="x4" b="vc" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path stroke="false" extrusionOk="false" w="2" h="2">\r
-\r
-        <moveTo>\r
-          <pt x="0" y="0" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="2" y="0" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="1" y="2" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path fill="none" extrusionOk="false" w="5" h="5">\r
-\r
-        <moveTo>\r
-          <pt x="2" y="4" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="3" y="4" />\r
-        </lnTo>\r
-      </path>\r
-      <path fill="none" extrusionOk="true" w="2" h="2">\r
-\r
-        <moveTo>\r
-          <pt x="0" y="0" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="2" y="0" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="1" y="2" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </flowChartOfflineStorage>\r
-  <flowChartOffpageConnector>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="y1" fmla="*/ h 4 5" />\r
-    </gdLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="l" t="t" r="r" b="y1" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path w="10" h="10">\r
-        <moveTo>\r
-          <pt x="0" y="0" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="10" y="0" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="10" y="8" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="5" y="10" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="0" y="8" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </flowChartOffpageConnector>\r
-  <flowChartOnlineStorage>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="x2" fmla="*/ w 5 6" />\r
-    </gdLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="x2" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="wd6" t="t" r="x2" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path w="6" h="6">\r
-        <moveTo>\r
-          <pt x="1" y="0" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="6" y="0" />\r
-        </lnTo>\r
-        <arcTo wR="1" hR="3" stAng="3cd4" swAng="-10800000" />\r
-        <lnTo>\r
-          <pt x="1" y="6" />\r
-        </lnTo>\r
-        <arcTo wR="1" hR="3" stAng="cd4" swAng="cd2" />\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </flowChartOnlineStorage>\r
-  <flowChartOr>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="idx" fmla="cos wd2 2700000" />\r
-      <gd name="idy" fmla="sin hd2 2700000" />\r
-      <gd name="il" fmla="+- hc 0 idx" />\r
-      <gd name="ir" fmla="+- hc idx 0" />\r
-      <gd name="it" fmla="+- vc 0 idy" />\r
-      <gd name="ib" fmla="+- vc idy 0" />\r
-    </gdLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="il" y="it" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="il" y="ib" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="ir" y="ib" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="ir" y="it" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path stroke="false" extrusionOk="false">\r
-\r
-        <moveTo>\r
-          <pt x="l" y="vc" />\r
-        </moveTo>\r
-        <arcTo wR="wd2" hR="hd2" stAng="cd2" swAng="cd4" />\r
-        <arcTo wR="wd2" hR="hd2" stAng="3cd4" swAng="cd4" />\r
-        <arcTo wR="wd2" hR="hd2" stAng="0" swAng="cd4" />\r
-        <arcTo wR="wd2" hR="hd2" stAng="cd4" swAng="cd4" />\r
-        <close />\r
-      </path>\r
-      <path fill="none" extrusionOk="false">\r
-\r
-        <moveTo>\r
-          <pt x="hc" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="hc" y="b" />\r
-        </lnTo>\r
-        <moveTo>\r
-          <pt x="l" y="vc" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="r" y="vc" />\r
-        </lnTo>\r
-      </path>\r
-      <path fill="none">\r
-\r
-        <moveTo>\r
-          <pt x="l" y="vc" />\r
-        </moveTo>\r
-        <arcTo wR="wd2" hR="hd2" stAng="cd2" swAng="cd4" />\r
-        <arcTo wR="wd2" hR="hd2" stAng="3cd4" swAng="cd4" />\r
-        <arcTo wR="wd2" hR="hd2" stAng="0" swAng="cd4" />\r
-        <arcTo wR="wd2" hR="hd2" stAng="cd4" swAng="cd4" />\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </flowChartOr>\r
-  <flowChartPredefinedProcess>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="x2" fmla="*/ w 7 8" />\r
-    </gdLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="wd8" t="t" r="x2" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path stroke="false" extrusionOk="false" w="1" h="1">\r
-\r
-        <moveTo>\r
-          <pt x="0" y="0" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="1" y="0" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="1" y="1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="0" y="1" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path fill="none" extrusionOk="false" w="8" h="8">\r
-\r
-        <moveTo>\r
-          <pt x="1" y="0" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="1" y="8" />\r
-        </lnTo>\r
-        <moveTo>\r
-          <pt x="7" y="0" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="7" y="8" />\r
-        </lnTo>\r
-      </path>\r
-      <path fill="none" w="1" h="1">\r
-\r
-        <moveTo>\r
-          <pt x="0" y="0" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="1" y="0" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="1" y="1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="0" y="1" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </flowChartPredefinedProcess>\r
-  <flowChartPreparation>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="x2" fmla="*/ w 4 5" />\r
-    </gdLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="wd5" t="t" r="x2" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path w="10" h="10">\r
-        <moveTo>\r
-          <pt x="0" y="5" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="2" y="0" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="8" y="0" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="10" y="5" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="8" y="10" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="2" y="10" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </flowChartPreparation>\r
-  <flowChartProcess>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path w="1" h="1">\r
-        <moveTo>\r
-          <pt x="0" y="0" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="1" y="0" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="1" y="1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="0" y="1" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </flowChartProcess>\r
-  <flowChartPunchedCard>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="l" t="hd5" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path w="5" h="5">\r
-        <moveTo>\r
-          <pt x="0" y="1" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="1" y="0" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="5" y="0" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="5" y="5" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="0" y="5" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </flowChartPunchedCard>\r
-  <flowChartPunchedTape>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="y2" fmla="*/ h 9 10" />\r
-      <gd name="ib" fmla="*/ h 4 5" />\r
-    </gdLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="hd10" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="y2" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="l" t="hd5" r="r" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path w="20" h="20">\r
-        <moveTo>\r
-          <pt x="0" y="2" />\r
-        </moveTo>\r
-        <arcTo wR="5" hR="2" stAng="cd2" swAng="-10800000" />\r
-        <arcTo wR="5" hR="2" stAng="cd2" swAng="cd2" />\r
-        <lnTo>\r
-          <pt x="20" y="18" />\r
-        </lnTo>\r
-        <arcTo wR="5" hR="2" stAng="0" swAng="-10800000" />\r
-        <arcTo wR="5" hR="2" stAng="0" swAng="cd2" />\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </flowChartPunchedTape>\r
-  <flowChartSort>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="ir" fmla="*/ w 3 4" />\r
-      <gd name="ib" fmla="*/ h 3 4" />\r
-    </gdLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="wd4" t="hd4" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path stroke="false" extrusionOk="false" w="2" h="2">\r
-\r
-        <moveTo>\r
-          <pt x="0" y="1" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="1" y="0" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="2" y="1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="1" y="2" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path fill="none" extrusionOk="false" w="2" h="2">\r
-\r
-        <moveTo>\r
-          <pt x="0" y="1" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="2" y="1" />\r
-        </lnTo>\r
-      </path>\r
-      <path fill="none" w="2" h="2">\r
-\r
-        <moveTo>\r
-          <pt x="0" y="1" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="1" y="0" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="2" y="1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="1" y="2" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </flowChartSort>\r
-  <flowChartSummingJunction>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="idx" fmla="cos wd2 2700000" />\r
-      <gd name="idy" fmla="sin hd2 2700000" />\r
-      <gd name="il" fmla="+- hc 0 idx" />\r
-      <gd name="ir" fmla="+- hc idx 0" />\r
-      <gd name="it" fmla="+- vc 0 idy" />\r
-      <gd name="ib" fmla="+- vc idy 0" />\r
-    </gdLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="il" y="it" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="il" y="ib" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="ir" y="ib" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="ir" y="it" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path stroke="false" extrusionOk="false">\r
-\r
-        <moveTo>\r
-          <pt x="l" y="vc" />\r
-        </moveTo>\r
-        <arcTo wR="wd2" hR="hd2" stAng="cd2" swAng="cd4" />\r
-        <arcTo wR="wd2" hR="hd2" stAng="3cd4" swAng="cd4" />\r
-        <arcTo wR="wd2" hR="hd2" stAng="0" swAng="cd4" />\r
-        <arcTo wR="wd2" hR="hd2" stAng="cd4" swAng="cd4" />\r
-        <close />\r
-      </path>\r
-      <path fill="none" extrusionOk="false">\r
-\r
-        <moveTo>\r
-          <pt x="il" y="it" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="ir" y="ib" />\r
-        </lnTo>\r
-        <moveTo>\r
-          <pt x="ir" y="it" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="il" y="ib" />\r
-        </lnTo>\r
-      </path>\r
-      <path fill="none">\r
-\r
-        <moveTo>\r
-          <pt x="l" y="vc" />\r
-        </moveTo>\r
-        <arcTo wR="wd2" hR="hd2" stAng="cd2" swAng="cd4" />\r
-        <arcTo wR="wd2" hR="hd2" stAng="3cd4" swAng="cd4" />\r
-        <arcTo wR="wd2" hR="hd2" stAng="0" swAng="cd4" />\r
-        <arcTo wR="wd2" hR="hd2" stAng="cd4" swAng="cd4" />\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </flowChartSummingJunction>\r
-  <flowChartTerminator>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="il" fmla="*/ w 1018 21600" />\r
-      <gd name="ir" fmla="*/ w 20582 21600" />\r
-      <gd name="it" fmla="*/ h 3163 21600" />\r
-      <gd name="ib" fmla="*/ h 18437 21600" />\r
-    </gdLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path w="21600" h="21600">\r
-        <moveTo>\r
-          <pt x="3475" y="0" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="18125" y="0" />\r
-        </lnTo>\r
-        <arcTo wR="3475" hR="10800" stAng="3cd4" swAng="cd2" />\r
-        <lnTo>\r
-          <pt x="3475" y="21600" />\r
-        </lnTo>\r
-        <arcTo wR="3475" hR="10800" stAng="cd4" swAng="cd2" />\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </flowChartTerminator>\r
-  <foldedCorner>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj" fmla="val 16667" />\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a" fmla="pin 0 adj 50000" />\r
-      <gd name="dy2" fmla="*/ ss a 100000" />\r
-      <gd name="dy1" fmla="*/ dy2 1 5" />\r
-      <gd name="x1" fmla="+- r 0 dy2" />\r
-      <gd name="x2" fmla="+- x1 dy1 0" />\r
-      <gd name="y2" fmla="+- b 0 dy2" />\r
-      <gd name="y1" fmla="+- y2 dy1 0" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj" minX="0" maxX="50000">\r
-        <pos x="x1" y="b" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="l" t="t" r="r" b="y2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path stroke="false" extrusionOk="false">\r
-\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="r" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path stroke="false" fill="darkenLess" extrusionOk="false">\r
-\r
-        <moveTo>\r
-          <pt x="x1" y="b" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="y2" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path fill="none" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="x1" y="b" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="y2" />\r
-        </lnTo>\r
-      </path>\r
-    </pathLst>\r
-\r
-  </foldedCorner>\r
-  <frame>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 12500" />\r
-\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a1" fmla="pin 0 adj1 50000" />\r
-      <gd name="x1" fmla="*/ ss a1 100000" />\r
-\r
-      <gd name="x4" fmla="+- r 0 x1" />\r
-\r
-\r
-\r
-      <gd name="y4" fmla="+- b 0 x1" />\r
-\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj1" minX="0" maxX="50000">\r
-        <pos x="x1" y="t" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="x1" t="x1" r="x4" b="y4" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="r" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <close />\r
-        <moveTo>\r
-          <pt x="x1" y="x1" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="x1" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </frame>\r
-  <funnel>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-\r
-      <gd name="d" fmla="*/ ss 1 20" />\r
-\r
-\r
-      <gd name="rw2" fmla="+- wd2 0 d" />\r
-\r
-      <gd name="rh2" fmla="+- hd4 0 d" />\r
-\r
-\r
-\r
-      <gd name="t1" fmla="cos wd2 480000" />\r
-\r
-      <gd name="t2" fmla="sin hd4 480000" />\r
-\r
-      <gd name="da" fmla="at2 t1 t2" />\r
-\r
-\r
-      <gd name="2da" fmla="*/ da 2 1" />\r
-      <gd name="stAng1" fmla="+- cd2 0 da" />\r
-      <gd name="swAng1" fmla="+- cd2 2da 0" />\r
-\r
-\r
-      <gd name="swAng3" fmla="+- cd2 0 2da" />\r
-\r
-\r
-      <gd name="rw3" fmla="*/ wd2 1 4" />\r
-      <gd name="rh3" fmla="*/ hd4 1 4" />\r
-\r
-\r
-      <gd name="ct1" fmla="cos hd4 stAng1" />\r
-      <gd name="st1" fmla="sin wd2 stAng1" />\r
-      <gd name="m1" fmla="mod ct1 st1 0" />\r
-      <gd name="n1" fmla="*/ wd2 hd4 m1" />\r
-      <gd name="dx1" fmla="cos n1 stAng1" />\r
-      <gd name="dy1" fmla="sin n1 stAng1" />\r
-      <gd name="x1" fmla="+- hc dx1 0" />\r
-      <gd name="y1" fmla="+- hd4 dy1 0" />\r
-\r
-\r
-      <gd name="ct3" fmla="cos rh3 da" />\r
-      <gd name="st3" fmla="sin rw3 da" />\r
-      <gd name="m3" fmla="mod ct3 st3 0" />\r
-      <gd name="n3" fmla="*/ rw3 rh3 m3" />\r
-      <gd name="dx3" fmla="cos n3 da" />\r
-      <gd name="dy3" fmla="sin n3 da" />\r
-      <gd name="x3" fmla="+- hc dx3 0" />\r
-      <gd name="vc3" fmla="+- b 0 rh3" />\r
-      <gd name="y2" fmla="+- vc3 dy3 0" />\r
-\r
-\r
-      <gd name="x2" fmla="+- wd2 0 rw2" />\r
-\r
-      <gd name="cd" fmla="*/ cd2 2 1" />\r
-    </gdLst>\r
-\r
-    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="x1" y="y1" />\r
-        </moveTo>\r
-        <arcTo hR="hd4" wR="wd2" stAng="stAng1" swAng="swAng1" />\r
-        <lnTo>\r
-          <pt x="x3" y="y2" />\r
-        </lnTo>\r
-        <arcTo hR="rh3" wR="rw3" stAng="da" swAng="swAng3" />\r
-        <close />\r
-        <moveTo>\r
-          <pt x="x2" y="hd4" />\r
-        </moveTo>\r
-        <arcTo hR="rh2" wR="rw2" stAng="cd2" swAng="-21600000" />\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </funnel>\r
-  <gear6>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 15000" />\r
-\r
-      <gd name="adj2" fmla="val 3526" />\r
-\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-\r
-\r
-\r
-\r
-      <gd name="a1" fmla="pin 0 adj1 20000" />\r
-      <gd name="a2" fmla="pin 0 adj2 5358" />\r
-\r
-\r
-      <gd name="th" fmla="*/ ss a1 100000" />\r
-      <gd name="lFD" fmla="*/ ss a2 100000" />\r
-\r
-      <gd name="th2" fmla="*/ th 1 2" />\r
-      <gd name="l2" fmla="*/ lFD 1 2" />\r
-      <gd name="l3" fmla="+- th2 l2 0" />\r
-\r
-\r
-      <gd name="rh" fmla="+- hd2 0 th" />\r
-      <gd name="rw" fmla="+- wd2 0 th" />\r
-\r
-\r
-      <gd name="dr" fmla="+- rw 0 rh" />\r
-      <gd name="maxr" fmla="?: dr rh rw" />\r
-      <gd name="ha" fmla="at2 maxr l3" />\r
-\r
-\r
-      <gd name="aA1" fmla="+- 19800000 0 ha" />\r
-      <gd name="aD1" fmla="+- 19800000 ha 0" />\r
-\r
-\r
-      <gd name="ta11" fmla="cos rw aA1" />\r
-      <gd name="ta12" fmla="sin rh aA1" />\r
-      <gd name="bA1" fmla="at2 ta11 ta12" />\r
-\r
-      <gd name="cta1" fmla="cos rh bA1" />\r
-      <gd name="sta1" fmla="sin rw bA1" />\r
-      <gd name="ma1" fmla="mod cta1 sta1 0" />\r
-      <gd name="na1" fmla="*/ rw rh ma1" />\r
-      <gd name="dxa1" fmla="cos na1 bA1" />\r
-      <gd name="dya1" fmla="sin na1 bA1" />\r
-      <gd name="xA1" fmla="+- hc dxa1 0" />\r
-      <gd name="yA1" fmla="+- vc dya1 0" />\r
-\r
-\r
-      <gd name="td11" fmla="cos rw aD1" />\r
-      <gd name="td12" fmla="sin rh aD1" />\r
-      <gd name="bD1" fmla="at2 td11 td12" />\r
-\r
-      <gd name="ctd1" fmla="cos rh bD1" />\r
-      <gd name="std1" fmla="sin rw bD1" />\r
-      <gd name="md1" fmla="mod ctd1 std1 0" />\r
-      <gd name="nd1" fmla="*/ rw rh md1" />\r
-      <gd name="dxd1" fmla="cos nd1 bD1" />\r
-      <gd name="dyd1" fmla="sin nd1 bD1" />\r
-      <gd name="xD1" fmla="+- hc dxd1 0" />\r
-      <gd name="yD1" fmla="+- vc dyd1 0" />\r
-\r
-\r
-      <gd name="xAD1" fmla="+- xA1 0 xD1" />\r
-      <gd name="yAD1" fmla="+- yA1 0 yD1" />\r
-      <gd name="lAD1" fmla="mod xAD1 yAD1 0" />\r
-      <gd name="a1" fmla="at2 yAD1 xAD1" />\r
-\r
-\r
-      <gd name="dxF1" fmla="sin lFD a1" />\r
-      <gd name="dyF1" fmla="cos lFD a1" />\r
-      <gd name="xF1" fmla="+- xD1 dxF1 0" />\r
-      <gd name="yF1" fmla="+- yD1 dyF1 0" />\r
-      <gd name="xE1" fmla="+- xA1 0 dxF1" />\r
-      <gd name="yE1" fmla="+- yA1 0 dyF1" />\r
-\r
-\r
-      <gd name="yC1t" fmla="sin th a1" />\r
-      <gd name="xC1t" fmla="cos th a1" />\r
-      <gd name="yC1" fmla="+- yF1 yC1t 0" />\r
-      <gd name="xC1" fmla="+- xF1 0 xC1t" />\r
-\r
-\r
-      <gd name="yB1" fmla="+- yE1 yC1t 0" />\r
-      <gd name="xB1" fmla="+- xE1 0 xC1t" />\r
-\r
-\r
-      <gd name="aD6" fmla="+- 3cd4 ha 0" />\r
-\r
-\r
-      <gd name="td61" fmla="cos rw aD6" />\r
-      <gd name="td62" fmla="sin rh aD6" />\r
-      <gd name="bD6" fmla="at2 td61 td62" />\r
-\r
-      <gd name="ctd6" fmla="cos rh bD6" />\r
-      <gd name="std6" fmla="sin rw bD6" />\r
-      <gd name="md6" fmla="mod ctd6 std6 0" />\r
-      <gd name="nd6" fmla="*/ rw rh md6" />\r
-      <gd name="dxd6" fmla="cos nd6 bD6" />\r
-      <gd name="dyd6" fmla="sin nd6 bD6" />\r
-      <gd name="xD6" fmla="+- hc dxd6 0" />\r
-      <gd name="yD6" fmla="+- vc dyd6 0" />\r
-\r
-\r
-      <gd name="xA6" fmla="+- hc 0 dxd6" />\r
-\r
-\r
-      <gd name="xF6" fmla="+- xD6 0 lFD" />\r
-      <gd name="xE6" fmla="+- xA6 lFD 0" />\r
-\r
-\r
-      <gd name="yC6" fmla="+- yD6 0 th" />\r
-\r
-      <gd name="swAng1" fmla="+- bA1 0 bD6" />\r
-\r
-\r
-      <gd name="aA2" fmla="+- 1800000 0 ha" />\r
-      <gd name="aD2" fmla="+- 1800000 ha 0" />\r
-\r
-\r
-      <gd name="ta21" fmla="cos rw aA2" />\r
-      <gd name="ta22" fmla="sin rh aA2" />\r
-      <gd name="bA2" fmla="at2 ta21 ta22" />\r
-\r
-      <gd name="yA2" fmla="+- h 0 yD1" />\r
-\r
-\r
-      <gd name="td21" fmla="cos rw aD2" />\r
-      <gd name="td22" fmla="sin rh aD2" />\r
-      <gd name="bD2" fmla="at2 td21 td22" />\r
-\r
-      <gd name="yD2" fmla="+- h 0 yA1" />\r
-\r
-\r
-      <gd name="yC2" fmla="+- h 0 yB1" />\r
-\r
-\r
-      <gd name="yB2" fmla="+- h 0 yC1" />\r
-      <gd name="xB2" fmla="val xC1" />\r
-\r
-      <gd name="swAng2" fmla="+- bA2 0 bD1" />\r
-\r
-\r
-      <gd name="aD3" fmla="+- cd4 ha 0" />\r
-\r
-      <gd name="td31" fmla="cos rw aD3" />\r
-      <gd name="td32" fmla="sin rh aD3" />\r
-      <gd name="bD3" fmla="at2 td31 td32" />\r
-\r
-\r
-      <gd name="yD3" fmla="+- h 0 yD6" />\r
-\r
-\r
-      <gd name="yB3" fmla="+- h 0 yC6" />\r
-\r
-\r
-      <gd name="aD4" fmla="+- 9000000 ha 0" />\r
-\r
-      <gd name="td41" fmla="cos rw aD4" />\r
-      <gd name="td42" fmla="sin rh aD4" />\r
-      <gd name="bD4" fmla="at2 td41 td42" />\r
-\r
-\r
-      <gd name="xD4" fmla="+- w 0 xD1" />\r
-\r
-\r
-      <gd name="xC4" fmla="+- w 0 xC1" />\r
-\r
-\r
-      <gd name="xB4" fmla="+- w 0 xB1" />\r
-\r
-\r
-      <gd name="aD5" fmla="+- 12600000 ha 0" />\r
-\r
-      <gd name="td51" fmla="cos rw aD5" />\r
-      <gd name="td52" fmla="sin rh aD5" />\r
-      <gd name="bD5" fmla="at2 td51 td52" />\r
-\r
-\r
-      <gd name="xD5" fmla="+- w 0 xA1" />\r
-\r
-\r
-      <gd name="xC5" fmla="+- w 0 xB1" />\r
-\r
-\r
-      <gd name="xB5" fmla="+- w 0 xC1" />\r
-\r
-\r
-      <gd name="xCxn1" fmla="+/ xB1 xC1 2" />\r
-      <gd name="yCxn1" fmla="+/ yB1 yC1 2" />\r
-      <gd name="yCxn2" fmla="+- b 0 yCxn1" />\r
-      <gd name="xCxn4" fmla="+/ r 0 xCxn1" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefY="adj1" minY="0" maxY="20000">\r
-        <pos x="xD6" y="yD6" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj2" minX="0" maxX="5358">\r
-        <pos x="xA6" y="yD6" />\r
-      </ahXY>\r
-\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="19800000">\r
-        <pos x="xCxn1" y="yCxn1" />\r
-      </cxn>\r
-\r
-      <cxn ang="1800000">\r
-        <pos x="xCxn1" y="yCxn2" />\r
-      </cxn>\r
-\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="yB3" />\r
-      </cxn>\r
-\r
-      <cxn ang="9000000">\r
-        <pos x="xCxn4" y="yCxn2" />\r
-      </cxn>\r
-\r
-      <cxn ang="12600000">\r
-        <pos x="xCxn4" y="yCxn1" />\r
-      </cxn>\r
-\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="yC6" />\r
-      </cxn>\r
-\r
-    </cxnLst>\r
-\r
-    <rect l="xD5" t="yA1" r="xA1" b="yD2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="xA1" y="yA1" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="xB1" y="yB1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xC1" y="yC1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xD1" y="yD1" />\r
-        </lnTo>\r
-        <arcTo hR="rh" wR="rw" stAng="bD1" swAng="swAng2" />\r
-\r
-        <lnTo>\r
-          <pt x="xC1" y="yB2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xB1" y="yC2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xA1" y="yD2" />\r
-        </lnTo>\r
-        <arcTo hR="rh" wR="rw" stAng="bD2" swAng="swAng1" />\r
-\r
-        <lnTo>\r
-          <pt x="xF6" y="yB3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xE6" y="yB3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xA6" y="yD3" />\r
-        </lnTo>\r
-        <arcTo hR="rh" wR="rw" stAng="bD3" swAng="swAng1" />\r
-\r
-        <lnTo>\r
-          <pt x="xB4" y="yC2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xC4" y="yB2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xD4" y="yA2" />\r
-        </lnTo>\r
-        <arcTo hR="rh" wR="rw" stAng="bD4" swAng="swAng2" />\r
-\r
-        <lnTo>\r
-          <pt x="xB5" y="yC1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xC5" y="yB1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xD5" y="yA1" />\r
-        </lnTo>\r
-        <arcTo hR="rh" wR="rw" stAng="bD5" swAng="swAng1" />\r
-\r
-        <lnTo>\r
-          <pt x="xE6" y="yC6" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xF6" y="yC6" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xD6" y="yD6" />\r
-        </lnTo>\r
-        <arcTo hR="rh" wR="rw" stAng="bD6" swAng="swAng1" />\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </gear6>\r
-  <gear9>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 10000" />\r
-\r
-      <gd name="adj2" fmla="val 1763" />\r
-\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-\r
-\r
-\r
-\r
-      <gd name="a1" fmla="pin 0 adj1 20000" />\r
-      <gd name="a2" fmla="pin 0 adj2 2679" />\r
-\r
-\r
-      <gd name="th" fmla="*/ ss a1 100000" />\r
-      <gd name="lFD" fmla="*/ ss a2 100000" />\r
-\r
-      <gd name="th2" fmla="*/ th 1 2" />\r
-      <gd name="l2" fmla="*/ lFD 1 2" />\r
-      <gd name="l3" fmla="+- th2 l2 0" />\r
-\r
-\r
-      <gd name="rh" fmla="+- hd2 0 th" />\r
-      <gd name="rw" fmla="+- wd2 0 th" />\r
-\r
-\r
-      <gd name="dr" fmla="+- rw 0 rh" />\r
-      <gd name="maxr" fmla="?: dr rh rw" />\r
-      <gd name="ha" fmla="at2 maxr l3" />\r
-\r
-\r
-      <gd name="aA1" fmla="+- 18600000 0 ha" />\r
-      <gd name="aD1" fmla="+- 18600000 ha 0" />\r
-\r
-\r
-      <gd name="ta11" fmla="cos rw aA1" />\r
-      <gd name="ta12" fmla="sin rh aA1" />\r
-      <gd name="bA1" fmla="at2 ta11 ta12" />\r
-\r
-      <gd name="cta1" fmla="cos rh bA1" />\r
-      <gd name="sta1" fmla="sin rw bA1" />\r
-      <gd name="ma1" fmla="mod cta1 sta1 0" />\r
-      <gd name="na1" fmla="*/ rw rh ma1" />\r
-      <gd name="dxa1" fmla="cos na1 bA1" />\r
-      <gd name="dya1" fmla="sin na1 bA1" />\r
-      <gd name="xA1" fmla="+- hc dxa1 0" />\r
-      <gd name="yA1" fmla="+- vc dya1 0" />\r
-\r
-\r
-      <gd name="td11" fmla="cos rw aD1" />\r
-      <gd name="td12" fmla="sin rh aD1" />\r
-      <gd name="bD1" fmla="at2 td11 td12" />\r
-\r
-      <gd name="ctd1" fmla="cos rh bD1" />\r
-      <gd name="std1" fmla="sin rw bD1" />\r
-      <gd name="md1" fmla="mod ctd1 std1 0" />\r
-      <gd name="nd1" fmla="*/ rw rh md1" />\r
-      <gd name="dxd1" fmla="cos nd1 bD1" />\r
-      <gd name="dyd1" fmla="sin nd1 bD1" />\r
-      <gd name="xD1" fmla="+- hc dxd1 0" />\r
-      <gd name="yD1" fmla="+- vc dyd1 0" />\r
-\r
-\r
-      <gd name="xAD1" fmla="+- xA1 0 xD1" />\r
-      <gd name="yAD1" fmla="+- yA1 0 yD1" />\r
-      <gd name="lAD1" fmla="mod xAD1 yAD1 0" />\r
-      <gd name="a1" fmla="at2 yAD1 xAD1" />\r
-\r
-\r
-      <gd name="dxF1" fmla="sin lFD a1" />\r
-      <gd name="dyF1" fmla="cos lFD a1" />\r
-      <gd name="xF1" fmla="+- xD1 dxF1 0" />\r
-      <gd name="yF1" fmla="+- yD1 dyF1 0" />\r
-      <gd name="xE1" fmla="+- xA1 0 dxF1" />\r
-      <gd name="yE1" fmla="+- yA1 0 dyF1" />\r
-\r
-\r
-      <gd name="yC1t" fmla="sin th a1" />\r
-      <gd name="xC1t" fmla="cos th a1" />\r
-      <gd name="yC1" fmla="+- yF1 yC1t 0" />\r
-      <gd name="xC1" fmla="+- xF1 0 xC1t" />\r
-\r
-\r
-      <gd name="yB1" fmla="+- yE1 yC1t 0" />\r
-      <gd name="xB1" fmla="+- xE1 0 xC1t" />\r
-\r
-\r
-      <gd name="aA2" fmla="+- 21000000 0 ha" />\r
-      <gd name="aD2" fmla="+- 21000000 ha 0" />\r
-\r
-\r
-      <gd name="ta21" fmla="cos rw aA2" />\r
-      <gd name="ta22" fmla="sin rh aA2" />\r
-      <gd name="bA2" fmla="at2 ta21 ta22" />\r
-\r
-      <gd name="cta2" fmla="cos rh bA2" />\r
-      <gd name="sta2" fmla="sin rw bA2" />\r
-      <gd name="ma2" fmla="mod cta2 sta2 0" />\r
-      <gd name="na2" fmla="*/ rw rh ma2" />\r
-      <gd name="dxa2" fmla="cos na2 bA2" />\r
-      <gd name="dya2" fmla="sin na2 bA2" />\r
-      <gd name="xA2" fmla="+- hc dxa2 0" />\r
-      <gd name="yA2" fmla="+- vc dya2 0" />\r
-\r
-\r
-      <gd name="td21" fmla="cos rw aD2" />\r
-      <gd name="td22" fmla="sin rh aD2" />\r
-      <gd name="bD2" fmla="at2 td21 td22" />\r
-\r
-      <gd name="ctd2" fmla="cos rh bD2" />\r
-      <gd name="std2" fmla="sin rw bD2" />\r
-      <gd name="md2" fmla="mod ctd2 std2 0" />\r
-      <gd name="nd2" fmla="*/ rw rh md2" />\r
-      <gd name="dxd2" fmla="cos nd2 bD2" />\r
-      <gd name="dyd2" fmla="sin nd2 bD2" />\r
-      <gd name="xD2" fmla="+- hc dxd2 0" />\r
-      <gd name="yD2" fmla="+- vc dyd2 0" />\r
-\r
-\r
-      <gd name="xAD2" fmla="+- xA2 0 xD2" />\r
-      <gd name="yAD2" fmla="+- yA2 0 yD2" />\r
-      <gd name="lAD2" fmla="mod xAD2 yAD2 0" />\r
-      <gd name="a2" fmla="at2 yAD2 xAD2" />\r
-\r
-\r
-      <gd name="dxF2" fmla="sin lFD a2" />\r
-      <gd name="dyF2" fmla="cos lFD a2" />\r
-      <gd name="xF2" fmla="+- xD2 dxF2 0" />\r
-      <gd name="yF2" fmla="+- yD2 dyF2 0" />\r
-      <gd name="xE2" fmla="+- xA2 0 dxF2" />\r
-      <gd name="yE2" fmla="+- yA2 0 dyF2" />\r
-\r
-\r
-      <gd name="yC2t" fmla="sin th a2" />\r
-      <gd name="xC2t" fmla="cos th a2" />\r
-      <gd name="yC2" fmla="+- yF2 yC2t 0" />\r
-      <gd name="xC2" fmla="+- xF2 0 xC2t" />\r
-\r
-\r
-      <gd name="yB2" fmla="+- yE2 yC2t 0" />\r
-      <gd name="xB2" fmla="+- xE2 0 xC2t" />\r
-\r
-      <gd name="swAng1" fmla="+- bA2 0 bD1" />\r
-\r
-\r
-      <gd name="aA3" fmla="+- 1800000 0 ha" />\r
-      <gd name="aD3" fmla="+- 1800000 ha 0" />\r
-\r
-\r
-      <gd name="ta31" fmla="cos rw aA3" />\r
-      <gd name="ta32" fmla="sin rh aA3" />\r
-      <gd name="bA3" fmla="at2 ta31 ta32" />\r
-\r
-      <gd name="cta3" fmla="cos rh bA3" />\r
-      <gd name="sta3" fmla="sin rw bA3" />\r
-      <gd name="ma3" fmla="mod cta3 sta3 0" />\r
-      <gd name="na3" fmla="*/ rw rh ma3" />\r
-      <gd name="dxa3" fmla="cos na3 bA3" />\r
-      <gd name="dya3" fmla="sin na3 bA3" />\r
-      <gd name="xA3" fmla="+- hc dxa3 0" />\r
-      <gd name="yA3" fmla="+- vc dya3 0" />\r
-\r
-\r
-      <gd name="td31" fmla="cos rw aD3" />\r
-      <gd name="td32" fmla="sin rh aD3" />\r
-      <gd name="bD3" fmla="at2 td31 td32" />\r
-\r
-      <gd name="ctd3" fmla="cos rh bD3" />\r
-      <gd name="std3" fmla="sin rw bD3" />\r
-      <gd name="md3" fmla="mod ctd3 std3 0" />\r
-      <gd name="nd3" fmla="*/ rw rh md3" />\r
-      <gd name="dxd3" fmla="cos nd3 bD3" />\r
-      <gd name="dyd3" fmla="sin nd3 bD3" />\r
-      <gd name="xD3" fmla="+- hc dxd3 0" />\r
-      <gd name="yD3" fmla="+- vc dyd3 0" />\r
-\r
-\r
-      <gd name="xAD3" fmla="+- xA3 0 xD3" />\r
-      <gd name="yAD3" fmla="+- yA3 0 yD3" />\r
-      <gd name="lAD3" fmla="mod xAD3 yAD3 0" />\r
-      <gd name="a3" fmla="at2 yAD3 xAD3" />\r
-\r
-\r
-      <gd name="dxF3" fmla="sin lFD a3" />\r
-      <gd name="dyF3" fmla="cos lFD a3" />\r
-      <gd name="xF3" fmla="+- xD3 dxF3 0" />\r
-      <gd name="yF3" fmla="+- yD3 dyF3 0" />\r
-      <gd name="xE3" fmla="+- xA3 0 dxF3" />\r
-      <gd name="yE3" fmla="+- yA3 0 dyF3" />\r
-\r
-\r
-      <gd name="yC3t" fmla="sin th a3" />\r
-      <gd name="xC3t" fmla="cos th a3" />\r
-      <gd name="yC3" fmla="+- yF3 yC3t 0" />\r
-      <gd name="xC3" fmla="+- xF3 0 xC3t" />\r
-\r
-\r
-      <gd name="yB3" fmla="+- yE3 yC3t 0" />\r
-      <gd name="xB3" fmla="+- xE3 0 xC3t" />\r
-\r
-      <gd name="swAng2" fmla="+- bA3 0 bD2" />\r
-\r
-\r
-      <gd name="aA4" fmla="+- 4200000 0 ha" />\r
-      <gd name="aD4" fmla="+- 4200000 ha 0" />\r
-\r
-\r
-      <gd name="ta41" fmla="cos rw aA4" />\r
-      <gd name="ta42" fmla="sin rh aA4" />\r
-      <gd name="bA4" fmla="at2 ta41 ta42" />\r
-\r
-      <gd name="cta4" fmla="cos rh bA4" />\r
-      <gd name="sta4" fmla="sin rw bA4" />\r
-      <gd name="ma4" fmla="mod cta4 sta4 0" />\r
-      <gd name="na4" fmla="*/ rw rh ma4" />\r
-      <gd name="dxa4" fmla="cos na4 bA4" />\r
-      <gd name="dya4" fmla="sin na4 bA4" />\r
-      <gd name="xA4" fmla="+- hc dxa4 0" />\r
-      <gd name="yA4" fmla="+- vc dya4 0" />\r
-\r
-\r
-      <gd name="td41" fmla="cos rw aD4" />\r
-      <gd name="td42" fmla="sin rh aD4" />\r
-      <gd name="bD4" fmla="at2 td41 td42" />\r
-\r
-      <gd name="ctd4" fmla="cos rh bD4" />\r
-      <gd name="std4" fmla="sin rw bD4" />\r
-      <gd name="md4" fmla="mod ctd4 std4 0" />\r
-      <gd name="nd4" fmla="*/ rw rh md4" />\r
-      <gd name="dxd4" fmla="cos nd4 bD4" />\r
-      <gd name="dyd4" fmla="sin nd4 bD4" />\r
-      <gd name="xD4" fmla="+- hc dxd4 0" />\r
-      <gd name="yD4" fmla="+- vc dyd4 0" />\r
-\r
-\r
-      <gd name="xAD4" fmla="+- xA4 0 xD4" />\r
-      <gd name="yAD4" fmla="+- yA4 0 yD4" />\r
-      <gd name="lAD4" fmla="mod xAD4 yAD4 0" />\r
-      <gd name="a4" fmla="at2 yAD4 xAD4" />\r
-\r
-\r
-      <gd name="dxF4" fmla="sin lFD a4" />\r
-      <gd name="dyF4" fmla="cos lFD a4" />\r
-      <gd name="xF4" fmla="+- xD4 dxF4 0" />\r
-      <gd name="yF4" fmla="+- yD4 dyF4 0" />\r
-      <gd name="xE4" fmla="+- xA4 0 dxF4" />\r
-      <gd name="yE4" fmla="+- yA4 0 dyF4" />\r
-\r
-\r
-      <gd name="yC4t" fmla="sin th a4" />\r
-      <gd name="xC4t" fmla="cos th a4" />\r
-      <gd name="yC4" fmla="+- yF4 yC4t 0" />\r
-      <gd name="xC4" fmla="+- xF4 0 xC4t" />\r
-\r
-\r
-      <gd name="yB4" fmla="+- yE4 yC4t 0" />\r
-      <gd name="xB4" fmla="+- xE4 0 xC4t" />\r
-\r
-      <gd name="swAng3" fmla="+- bA4 0 bD3" />\r
-\r
-\r
-      <gd name="aA5" fmla="+- 6600000 0 ha" />\r
-      <gd name="aD5" fmla="+- 6600000 ha 0" />\r
-\r
-      <gd name="ta51" fmla="cos rw aA5" />\r
-      <gd name="ta52" fmla="sin rh aA5" />\r
-      <gd name="bA5" fmla="at2 ta51 ta52" />\r
-\r
-      <gd name="td51" fmla="cos rw aD5" />\r
-      <gd name="td52" fmla="sin rh aD5" />\r
-      <gd name="bD5" fmla="at2 td51 td52" />\r
-\r
-\r
-      <gd name="xD5" fmla="+- w 0 xA4" />\r
-\r
-\r
-      <gd name="xC5" fmla="+- w 0 xB4" />\r
-\r
-\r
-      <gd name="xB5" fmla="+- w 0 xC4" />\r
-\r
-      <gd name="swAng4" fmla="+- bA5 0 bD4" />\r
-\r
-\r
-      <gd name="aD6" fmla="+- 9000000 ha 0" />\r
-\r
-      <gd name="td61" fmla="cos rw aD6" />\r
-      <gd name="td62" fmla="sin rh aD6" />\r
-      <gd name="bD6" fmla="at2 td61 td62" />\r
-\r
-\r
-      <gd name="xD6" fmla="+- w 0 xA3" />\r
-\r
-\r
-      <gd name="xC6" fmla="+- w 0 xB3" />\r
-\r
-\r
-      <gd name="xB6" fmla="+- w 0 xC3" />\r
-\r
-\r
-      <gd name="aD7" fmla="+- 11400000 ha 0" />\r
-\r
-      <gd name="td71" fmla="cos rw aD7" />\r
-      <gd name="td72" fmla="sin rh aD7" />\r
-      <gd name="bD7" fmla="at2 td71 td72" />\r
-\r
-\r
-      <gd name="xD7" fmla="+- w 0 xA2" />\r
-\r
-\r
-      <gd name="xC7" fmla="+- w 0 xB2" />\r
-\r
-\r
-      <gd name="xB7" fmla="+- w 0 xC2" />\r
-\r
-\r
-      <gd name="aD8" fmla="+- 13800000 ha 0" />\r
-\r
-      <gd name="td81" fmla="cos rw aD8" />\r
-      <gd name="td82" fmla="sin rh aD8" />\r
-      <gd name="bD8" fmla="at2 td81 td82" />\r
-\r
-\r
-      <gd name="xA8" fmla="+- w 0 xD1" />\r
-\r
-      <gd name="xD8" fmla="+- w 0 xA1" />\r
-\r
-\r
-      <gd name="xC8" fmla="+- w 0 xB1" />\r
-\r
-\r
-      <gd name="xB8" fmla="+- w 0 xC1" />\r
-\r
-\r
-      <gd name="aA9" fmla="+- 3cd4 0 ha" />\r
-      <gd name="aD9" fmla="+- 3cd4 ha 0" />\r
-\r
-\r
-      <gd name="td91" fmla="cos rw aD9" />\r
-      <gd name="td92" fmla="sin rh aD9" />\r
-      <gd name="bD9" fmla="at2 td91 td92" />\r
-\r
-      <gd name="ctd9" fmla="cos rh bD9" />\r
-      <gd name="std9" fmla="sin rw bD9" />\r
-      <gd name="md9" fmla="mod ctd9 std9 0" />\r
-      <gd name="nd9" fmla="*/ rw rh md9" />\r
-      <gd name="dxd9" fmla="cos nd9 bD9" />\r
-      <gd name="dyd9" fmla="sin nd9 bD9" />\r
-      <gd name="xD9" fmla="+- hc dxd9 0" />\r
-      <gd name="yD9" fmla="+- vc dyd9 0" />\r
-\r
-\r
-      <gd name="ta91" fmla="cos rw aA9" />\r
-      <gd name="ta92" fmla="sin rh aA9" />\r
-      <gd name="bA9" fmla="at2 ta91 ta92" />\r
-\r
-      <gd name="xA9" fmla="+- hc 0 dxd9" />\r
-\r
-\r
-      <gd name="xF9" fmla="+- xD9 0 lFD" />\r
-      <gd name="xE9" fmla="+- xA9 lFD 0" />\r
-\r
-\r
-      <gd name="yC9" fmla="+- yD9 0 th" />\r
-\r
-      <gd name="swAng5" fmla="+- bA9 0 bD8" />\r
-\r
-\r
-      <gd name="xCxn1" fmla="+/ xB1 xC1 2" />\r
-      <gd name="yCxn1" fmla="+/ yB1 yC1 2" />\r
-      <gd name="xCxn2" fmla="+/ xB2 xC2 2" />\r
-      <gd name="yCxn2" fmla="+/ yB2 yC2 2" />\r
-      <gd name="xCxn3" fmla="+/ xB3 xC3 2" />\r
-      <gd name="yCxn3" fmla="+/ yB3 yC3 2" />\r
-      <gd name="xCxn4" fmla="+/ xB4 xC4 2" />\r
-      <gd name="yCxn4" fmla="+/ yB4 yC4 2" />\r
-      <gd name="xCxn5" fmla="+/ r 0 xCxn4" />\r
-      <gd name="xCxn6" fmla="+/ r 0 xCxn3" />\r
-      <gd name="xCxn7" fmla="+/ r 0 xCxn2" />\r
-      <gd name="xCxn8" fmla="+/ r 0 xCxn1" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefY="adj1" minY="0" maxY="20000">\r
-        <pos x="xD9" y="yD9" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj2" minX="0" maxX="2679">\r
-        <pos x="xA9" y="yD9" />\r
-      </ahXY>\r
-\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="18600000">\r
-        <pos x="xCxn1" y="yCxn1" />\r
-      </cxn>\r
-\r
-      <cxn ang="21000000">\r
-        <pos x="xCxn2" y="yCxn2" />\r
-      </cxn>\r
-\r
-      <cxn ang="1800000">\r
-        <pos x="xCxn3" y="yCxn3" />\r
-      </cxn>\r
-\r
-      <cxn ang="4200000">\r
-        <pos x="xCxn4" y="yCxn4" />\r
-      </cxn>\r
-\r
-      <cxn ang="6600000">\r
-        <pos x="xCxn5" y="yCxn4" />\r
-      </cxn>\r
-\r
-      <cxn ang="9000000">\r
-        <pos x="xCxn6" y="yCxn3" />\r
-      </cxn>\r
-\r
-      <cxn ang="11400000">\r
-        <pos x="xCxn7" y="yCxn2" />\r
-      </cxn>\r
-\r
-      <cxn ang="13800000">\r
-        <pos x="xCxn8" y="yCxn1" />\r
-      </cxn>\r
-\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="yC9" />\r
-      </cxn>\r
-\r
-    </cxnLst>\r
-\r
-    <rect l="xA8" t="yD1" r="xD1" b="yD3" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="xA1" y="yA1" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="xB1" y="yB1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xC1" y="yC1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xD1" y="yD1" />\r
-        </lnTo>\r
-        <arcTo hR="rh" wR="rw" stAng="bD1" swAng="swAng1" />\r
-\r
-        <lnTo>\r
-          <pt x="xB2" y="yB2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xC2" y="yC2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xD2" y="yD2" />\r
-        </lnTo>\r
-        <arcTo hR="rh" wR="rw" stAng="bD2" swAng="swAng2" />\r
-\r
-        <lnTo>\r
-          <pt x="xB3" y="yB3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xC3" y="yC3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xD3" y="yD3" />\r
-        </lnTo>\r
-        <arcTo hR="rh" wR="rw" stAng="bD3" swAng="swAng3" />\r
-\r
-        <lnTo>\r
-          <pt x="xB4" y="yB4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xC4" y="yC4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xD4" y="yD4" />\r
-        </lnTo>\r
-        <arcTo hR="rh" wR="rw" stAng="bD4" swAng="swAng4" />\r
-\r
-        <lnTo>\r
-          <pt x="xB5" y="yC4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xC5" y="yB4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xD5" y="yA4" />\r
-        </lnTo>\r
-        <arcTo hR="rh" wR="rw" stAng="bD5" swAng="swAng3" />\r
-\r
-        <lnTo>\r
-          <pt x="xB6" y="yC3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xC6" y="yB3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xD6" y="yA3" />\r
-        </lnTo>\r
-        <arcTo hR="rh" wR="rw" stAng="bD6" swAng="swAng2" />\r
-\r
-        <lnTo>\r
-          <pt x="xB7" y="yC2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xC7" y="yB2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xD7" y="yA2" />\r
-        </lnTo>\r
-        <arcTo hR="rh" wR="rw" stAng="bD7" swAng="swAng1" />\r
-\r
-        <lnTo>\r
-          <pt x="xB8" y="yC1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xC8" y="yB1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xD8" y="yA1" />\r
-        </lnTo>\r
-        <arcTo hR="rh" wR="rw" stAng="bD8" swAng="swAng5" />\r
-\r
-        <lnTo>\r
-          <pt x="xE9" y="yC9" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xF9" y="yC9" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xD9" y="yD9" />\r
-        </lnTo>\r
-        <arcTo hR="rh" wR="rw" stAng="bD9" swAng="swAng5" />\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </gear9>\r
-  <halfFrame>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 33333" />\r
-\r
-      <gd name="adj2" fmla="val 33333" />\r
-\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="maxAdj2" fmla="*/ 100000 w ss" />\r
-      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
-      <gd name="x1" fmla="*/ ss a2 100000" />\r
-      <gd name="g1" fmla="*/ h x1 w" />\r
-      <gd name="g2" fmla="+- h 0 g1" />\r
-      <gd name="maxAdj1" fmla="*/ 100000 g2 ss" />\r
-      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
-      <gd name="y1" fmla="*/ ss a1 100000" />\r
-      <gd name="dx2" fmla="*/ y1 w h" />\r
-      <gd name="x2" fmla="+- r 0 dx2" />\r
-      <gd name="dy2" fmla="*/ x1 h w" />\r
-      <gd name="y2" fmla="+- b 0 dy2" />\r
-      <gd name="cx1" fmla="*/ x1 1 2" />\r
-      <gd name="cy1" fmla="+/ y2 b 2" />\r
-      <gd name="cx2" fmla="+/ x2 r 2" />\r
-      <gd name="cy2" fmla="*/ y1 1 2" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefY="adj1" minY="0" maxY="maxAdj1">\r
-        <pos x="l" y="y1" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj2" minX="0" maxX="maxAdj2">\r
-        <pos x="x1" y="t" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="cx2" y="cy2" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="cx1" y="cy1" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="r" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </halfFrame>\r
-  <heart>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="dx1" fmla="*/ w 49 48" />\r
-      <gd name="dx2" fmla="*/ w 10 48" />\r
-      <gd name="x1" fmla="+- hc 0 dx1" />\r
-      <gd name="x2" fmla="+- hc 0 dx2" />\r
-      <gd name="x3" fmla="+- hc dx2 0" />\r
-      <gd name="x4" fmla="+- hc dx1 0" />\r
-      <gd name="y1" fmla="+- t 0 hd3" />\r
-\r
-\r
-      <gd name="il" fmla="*/ w 1 6" />\r
-      <gd name="ir" fmla="*/ w 5 6" />\r
-      <gd name="ib" fmla="*/ h 2 3" />\r
-    </gdLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="hd4" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="il" t="hd4" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="hc" y="hd4" />\r
-        </moveTo>\r
-        <cubicBezTo>\r
-          <pt x="x3" y="y1" />\r
-          <pt x="x4" y="hd4" />\r
-          <pt x="hc" y="b" />\r
-        </cubicBezTo>\r
-        <cubicBezTo>\r
-          <pt x="x1" y="hd4" />\r
-          <pt x="x2" y="y1" />\r
-          <pt x="hc" y="hd4" />\r
-        </cubicBezTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </heart>\r
-  <heptagon>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="hf" fmla="val 102572" />\r
-      <gd name="vf" fmla="val 105210" />\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="swd2" fmla="*/ wd2 hf 100000" />\r
-      <gd name="shd2" fmla="*/ hd2 vf 100000" />\r
-      <gd name="svc" fmla="*/ vc  vf 100000" />\r
-      <gd name="dx1" fmla="*/ swd2 97493 100000" />\r
-      <gd name="dx2" fmla="*/ swd2 78183 100000" />\r
-      <gd name="dx3" fmla="*/ swd2 43388 100000" />\r
-      <gd name="dy1" fmla="*/ shd2 62349 100000" />\r
-      <gd name="dy2" fmla="*/ shd2 22252 100000" />\r
-      <gd name="dy3" fmla="*/ shd2 90097 100000" />\r
-      <gd name="x1" fmla="+- hc 0 dx1" />\r
-      <gd name="x2" fmla="+- hc 0 dx2" />\r
-      <gd name="x3" fmla="+- hc 0 dx3" />\r
-      <gd name="x4" fmla="+- hc dx3 0" />\r
-      <gd name="x5" fmla="+- hc dx2 0" />\r
-      <gd name="x6" fmla="+- hc dx1 0" />\r
-      <gd name="y1" fmla="+- svc 0 dy1" />\r
-      <gd name="y2" fmla="+- svc dy2 0" />\r
-      <gd name="y3" fmla="+- svc dy3 0" />\r
-      <gd name="ib" fmla="+- b 0 y1" />\r
-    </gdLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="x5" y="y1" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="x6" y="y2" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="x4" y="y3" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="x3" y="y3" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="x1" y="y2" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="x2" y="y1" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="x2" t="y1" r="x5" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="x1" y="y2" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="hc" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x5" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x6" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y3" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </heptagon>\r
-  <hexagon>\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj" fmla="val 25000" />\r
-      <gd name="vf" fmla="val 115470" />\r
-    </avLst>\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="maxAdj" fmla="*/ 50000 w ss" />\r
-      <gd name="a" fmla="pin 0 adj maxAdj" />\r
-      <gd name="shd2" fmla="*/ hd2 vf 100000" />\r
-      <gd name="x1" fmla="*/ ss a 100000" />\r
-      <gd name="x2" fmla="+- r 0 x1" />\r
-      <gd name="dy1" fmla="sin shd2 3600000" />\r
-      <gd name="y1" fmla="+- vc 0 dy1" />\r
-      <gd name="y2" fmla="+- vc dy1 0" />\r
-      <gd name="q1" fmla="*/ maxAdj -1 2" />\r
-      <gd name="q2" fmla="+- a q1 0" />\r
-      <gd name="q3" fmla="?: q2 4 2" />\r
-      <gd name="q4" fmla="?: q2 3 2" />\r
-      <gd name="q5" fmla="?: q2 q1 0" />\r
-      <gd name="q6" fmla="+/ a q5 q1" />\r
-      <gd name="q7" fmla="*/ q6 q4 -1" />\r
-      <gd name="q8" fmla="+- q3 q7 0" />\r
-      <gd name="il" fmla="*/ w q8 24" />\r
-      <gd name="it" fmla="*/ h q8 24" />\r
-      <gd name="ir" fmla="+- r 0 il" />\r
-      <gd name="ib" fmla="+- b 0 it" />\r
-    </gdLst>\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj" minX="0" maxX="maxAdj">\r
-        <pos x="x1" y="t" />\r
-      </ahXY>\r
-    </ahLst>\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="x2" y="y2" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="x1" y="y2" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="x1" y="y1" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="x2" y="y1" />\r
-      </cxn>\r
-    </cxnLst>\r
-    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="vc" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="vc" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y2" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-  </hexagon>\r
-  <homePlate>\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj" fmla="val 50000" />\r
-    </avLst>\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="maxAdj" fmla="*/ 100000 w ss" />\r
-      <gd name="a" fmla="pin 0 adj maxAdj" />\r
-      <gd name="dx1" fmla="*/ ss a 100000" />\r
-      <gd name="x1" fmla="+- r 0 dx1" />\r
-      <gd name="ir" fmla="+/ x1 r 2" />\r
-      <gd name="x2" fmla="*/ x1 1 2" />\r
-    </gdLst>\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj" minX="0" maxX="maxAdj">\r
-        <pos x="x1" y="t" />\r
-      </ahXY>\r
-    </ahLst>\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="x2" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="x1" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-    <rect l="l" t="t" r="ir" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x1" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="vc" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-  </homePlate>\r
-  <horizontalScroll>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj" fmla="val 12500" />\r
-\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a" fmla="pin 0 adj 25000" />\r
-      <gd name="ch" fmla="*/ ss a 100000" />\r
-\r
-      <gd name="ch2" fmla="*/ ch 1 2" />\r
-\r
-      <gd name="ch4" fmla="*/ ch 1 4" />\r
-\r
-\r
-\r
-\r
-\r
-      <gd name="y3" fmla="+- ch ch2 0" />\r
-\r
-      <gd name="y4" fmla="+- ch ch 0" />\r
-\r
-      <gd name="y6" fmla="+- b 0 ch" />\r
-\r
-      <gd name="y7" fmla="+- b 0 ch2" />\r
-\r
-      <gd name="y5" fmla="+- y6 0 ch2" />\r
-\r
-\r
-\r
-\r
-\r
-      <gd name="x3" fmla="+- r 0 ch" />\r
-\r
-      <gd name="x4" fmla="+- r 0 ch2" />\r
-\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj" minX="0" maxX="25000">\r
-        <pos x="ch" y="t" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="ch" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="y6" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="ch" t="ch" r="x4" b="y6" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path stroke="false" extrusionOk="false">\r
-\r
-        <moveTo>\r
-          <pt x="r" y="ch2" />\r
-        </moveTo>\r
-        <arcTo wR="ch2" hR="ch2" stAng="0" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="x4" y="ch2" />\r
-        </lnTo>\r
-        <arcTo wR="ch4" hR="ch4" stAng="0" swAng="cd2" />\r
-        <lnTo>\r
-          <pt x="x3" y="ch" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="ch2" y="ch" />\r
-        </lnTo>\r
-        <arcTo wR="ch2" hR="ch2" stAng="3cd4" swAng="-5400000" />\r
-        <lnTo>\r
-          <pt x="l" y="y7" />\r
-        </lnTo>\r
-        <arcTo wR="ch2" hR="ch2" stAng="cd2" swAng="-10800000" />\r
-        <lnTo>\r
-          <pt x="ch" y="y6" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y6" />\r
-        </lnTo>\r
-        <arcTo wR="ch2" hR="ch2" stAng="cd4" swAng="-5400000" />\r
-        <close />\r
-        <moveTo>\r
-          <pt x="ch2" y="y4" />\r
-        </moveTo>\r
-        <arcTo wR="ch2" hR="ch2" stAng="cd4" swAng="-5400000" />\r
-        <arcTo wR="ch4" hR="ch4" stAng="0" swAng="-10800000" />\r
-        <close />\r
-      </path>\r
-      <path fill="darkenLess" stroke="false" extrusionOk="false">\r
-\r
-        <moveTo>\r
-          <pt x="ch2" y="y4" />\r
-        </moveTo>\r
-        <arcTo wR="ch2" hR="ch2" stAng="cd4" swAng="-5400000" />\r
-        <arcTo wR="ch4" hR="ch4" stAng="0" swAng="-10800000" />\r
-        <close />\r
-        <moveTo>\r
-          <pt x="x4" y="ch" />\r
-        </moveTo>\r
-        <arcTo wR="ch2" hR="ch2" stAng="cd4" swAng="-16200000" />\r
-        <arcTo wR="ch4" hR="ch4" stAng="cd2" swAng="-10800000" />\r
-        <close />\r
-      </path>\r
-      <path fill="none" extrusionOk="false">\r
-\r
-        <moveTo>\r
-          <pt x="l" y="y3" />\r
-        </moveTo>\r
-        <arcTo wR="ch2" hR="ch2" stAng="cd2" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="x3" y="ch" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="ch2" />\r
-        </lnTo>\r
-        <arcTo wR="ch2" hR="ch2" stAng="cd2" swAng="cd2" />\r
-        <lnTo>\r
-          <pt x="r" y="y5" />\r
-        </lnTo>\r
-        <arcTo wR="ch2" hR="ch2" stAng="0" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="ch" y="y6" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="ch" y="y7" />\r
-        </lnTo>\r
-        <arcTo wR="ch2" hR="ch2" stAng="0" swAng="cd2" />\r
-        <close />\r
-        <moveTo>\r
-          <pt x="x3" y="ch" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x4" y="ch" />\r
-        </lnTo>\r
-        <arcTo wR="ch2" hR="ch2" stAng="cd4" swAng="-5400000" />\r
-        <moveTo>\r
-          <pt x="x4" y="ch" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x4" y="ch2" />\r
-        </lnTo>\r
-        <arcTo wR="ch4" hR="ch4" stAng="0" swAng="cd2" />\r
-        <moveTo>\r
-          <pt x="ch2" y="y4" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="ch2" y="y3" />\r
-        </lnTo>\r
-        <arcTo wR="ch4" hR="ch4" stAng="cd2" swAng="cd2" />\r
-        <arcTo wR="ch2" hR="ch2" stAng="0" swAng="cd2" />\r
-        <moveTo>\r
-          <pt x="ch" y="y3" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="ch" y="y6" />\r
-        </lnTo>\r
-      </path>\r
-    </pathLst>\r
-\r
-  </horizontalScroll>\r
-  <irregularSeal1>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="x5" fmla="*/ w 4627 21600" />\r
-      <gd name="x12" fmla="*/ w 8485 21600" />\r
-      <gd name="x21" fmla="*/ w 16702 21600" />\r
-      <gd name="x24" fmla="*/ w 14522 21600" />\r
-      <gd name="y3" fmla="*/ h 6320 21600" />\r
-      <gd name="y6" fmla="*/ h 8615 21600" />\r
-      <gd name="y9" fmla="*/ h 13937 21600" />\r
-      <gd name="y18" fmla="*/ h 13290 21600" />\r
-    </gdLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="x24" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="y6" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="x12" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="y18" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="x5" t="y3" r="x21" b="y9" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path w="21600" h="21600">\r
-        <moveTo>\r
-          <pt x="10800" y="5800" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="14522" y="0" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="14155" y="5325" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="18380" y="4457" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="16702" y="7315" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="21097" y="8137" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="17607" y="10475" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="21600" y="13290" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="16837" y="12942" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="18145" y="18095" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="14020" y="14457" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="13247" y="19737" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="10532" y="14935" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="8485" y="21600" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="7715" y="15627" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="4762" y="17617" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="5667" y="13937" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="135" y="14587" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="3722" y="11775" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="0" y="8615" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="4627" y="7617" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="370" y="2295" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="7312" y="6320" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="8352" y="2295" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </irregularSeal1>\r
-  <irregularSeal2>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="x2" fmla="*/ w 9722 21600" />\r
-      <gd name="x5" fmla="*/ w 5372 21600" />\r
-      <gd name="x16" fmla="*/ w 11612 21600" />\r
-      <gd name="x19" fmla="*/ w 14640 21600" />\r
-      <gd name="y2" fmla="*/ h 1887 21600" />\r
-      <gd name="y3" fmla="*/ h 6382 21600" />\r
-      <gd name="y8" fmla="*/ h 12877 21600" />\r
-      <gd name="y14" fmla="*/ h 19712 21600" />\r
-      <gd name="y16" fmla="*/ h 18842 21600" />\r
-      <gd name="y17" fmla="*/ h 15935 21600" />\r
-      <gd name="y24" fmla="*/ h 6645 21600" />\r
-    </gdLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="x2" y="y2" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="y8" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="x16" y="y16" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="y24" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="x5" t="y3" r="x19" b="y17" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path w="21600" h="21600">\r
-        <moveTo>\r
-          <pt x="11462" y="4342" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="14790" y="0" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="14525" y="5777" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="18007" y="3172" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="16380" y="6532" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="21600" y="6645" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="16985" y="9402" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="18270" y="11290" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="16380" y="12310" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="18877" y="15632" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="14640" y="14350" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="14942" y="17370" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="12180" y="15935" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="11612" y="18842" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="9872" y="17370" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="8700" y="19712" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="7527" y="18125" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="4917" y="21600" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="4805" y="18240" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="1285" y="17825" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="3330" y="15370" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="0" y="12877" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="3935" y="11592" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="1172" y="8270" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="5372" y="7817" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="4502" y="3625" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="8550" y="6382" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="9722" y="1887" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </irregularSeal2>\r
-  <leftArrow>\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 50000" />\r
-      <gd name="adj2" fmla="val 50000" />\r
-    </avLst>\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="maxAdj2" fmla="*/ 100000 w ss" />\r
-      <gd name="a1" fmla="pin 0 adj1 100000" />\r
-      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
-      <gd name="dx2" fmla="*/ ss a2 100000" />\r
-      <gd name="x2" fmla="+- l dx2 0" />\r
-      <gd name="dy1" fmla="*/ h a1 200000" />\r
-      <gd name="y1" fmla="+- vc 0 dy1" />\r
-      <gd name="y2" fmla="+- vc dy1 0" />\r
-      <gd name="dx1" fmla="*/ y1 dx2 hd2" />\r
-      <gd name="x1" fmla="+- x2  0 dx1" />\r
-    </gdLst>\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefY="adj1" minY="0" maxY="100000">\r
-        <pos x="r" y="y1" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj2" minX="0" maxX="maxAdj2">\r
-        <pos x="x2" y="t" />\r
-      </ahXY>\r
-    </ahLst>\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="x2" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="x2" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-    <rect l="x1" t="y1" r="r" b="y2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="vc" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x2" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-  </leftArrow>\r
-  <leftArrowCallout>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 25000" />\r
-\r
-      <gd name="adj2" fmla="val 25000" />\r
-\r
-      <gd name="adj3" fmla="val 25000" />\r
-\r
-      <gd name="adj4" fmla="val 64977" />\r
-\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="maxAdj2" fmla="*/ 50000 h ss" />\r
-\r
-      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
-      <gd name="maxAdj1" fmla="*/ a2 2 1" />\r
-\r
-      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
-      <gd name="maxAdj3" fmla="*/ 100000 w ss" />\r
-\r
-      <gd name="a3" fmla="pin 0 adj3 maxAdj3" />\r
-      <gd name="q2" fmla="*/ a3 ss w" />\r
-\r
-      <gd name="maxAdj4" fmla="+- 100000 0 q2" />\r
-\r
-      <gd name="a4" fmla="pin 0 adj4 maxAdj4" />\r
-      <gd name="dy1" fmla="*/ ss a2 100000" />\r
-\r
-      <gd name="dy2" fmla="*/ ss a1 200000" />\r
-\r
-      <gd name="y1" fmla="+- vc 0 dy1" />\r
-      <gd name="y2" fmla="+- vc 0 dy2" />\r
-      <gd name="y3" fmla="+- vc dy2 0" />\r
-      <gd name="y4" fmla="+- vc dy1 0" />\r
-      <gd name="x1" fmla="*/ ss a3 100000" />\r
-\r
-      <gd name="dx2" fmla="*/ w a4 100000" />\r
-\r
-      <gd name="x2" fmla="+- r 0 dx2" />\r
-      <gd name="x3" fmla="+/ x2 r 2" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefY="adj1" minY="0" maxY="maxAdj1">\r
-        <pos x="x1" y="y2" />\r
-      </ahXY>\r
-      <ahXY gdRefY="adj2" minY="0" maxY="maxAdj2">\r
-        <pos x="l" y="y1" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj3" minX="0" maxX="maxAdj3">\r
-        <pos x="x1" y="t" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj4" minX="0" maxX="maxAdj4">\r
-        <pos x="x2" y="b" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="x3" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="x3" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="x2" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="vc" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y4" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </leftArrowCallout>\r
-  <leftBrace>\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 8333" />\r
-      <gd name="adj2" fmla="val 50000" />\r
-    </avLst>\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a2" fmla="pin 0 adj2 100000" />\r
-      <gd name="q1" fmla="+- 100000 0 a2" />\r
-      <gd name="q2" fmla="min q1 a2" />\r
-      <gd name="q3" fmla="*/ q2 1 2" />\r
-      <gd name="maxAdj1" fmla="*/ q3 h ss" />\r
-      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
-      <gd name="y1" fmla="*/ ss a1 100000" />\r
-      <gd name="y3" fmla="*/ h a2 100000" />\r
-      <gd name="y4" fmla="+- y3 y1 0" />\r
-      <gd name="dx1" fmla="cos wd2 2700000" />\r
-      <gd name="dy1" fmla="sin y1 2700000" />\r
-      <gd name="il" fmla="+- r 0 dx1" />\r
-      <gd name="it" fmla="+- y1 0 dy1" />\r
-      <gd name="ib" fmla="+- b dy1 y1" />\r
-    </gdLst>\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefY="adj1" minY="0" maxY="maxAdj1">\r
-        <pos x="hc" y="y1" />\r
-      </ahXY>\r
-      <ahXY gdRefY="adj2" minY="0" maxY="100000">\r
-        <pos x="l" y="y3" />\r
-      </ahXY>\r
-    </ahLst>\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="cd4">\r
-        <pos x="r" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="y3" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="r" y="b" />\r
-      </cxn>\r
-    </cxnLst>\r
-    <rect l="il" t="it" r="r" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path stroke="false" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="r" y="b" />\r
-        </moveTo>\r
-        <arcTo wR="wd2" hR="y1" stAng="cd4" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="hc" y="y4" />\r
-        </lnTo>\r
-        <arcTo wR="wd2" hR="y1" stAng="0" swAng="-5400000" />\r
-        <arcTo wR="wd2" hR="y1" stAng="cd4" swAng="-5400000" />\r
-        <lnTo>\r
-          <pt x="hc" y="y1" />\r
-        </lnTo>\r
-        <arcTo wR="wd2" hR="y1" stAng="cd2" swAng="cd4" />\r
-        <close />\r
-      </path>\r
-      <path fill="none">\r
-        <moveTo>\r
-          <pt x="r" y="b" />\r
-        </moveTo>\r
-        <arcTo wR="wd2" hR="y1" stAng="cd4" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="hc" y="y4" />\r
-        </lnTo>\r
-        <arcTo wR="wd2" hR="y1" stAng="0" swAng="-5400000" />\r
-        <arcTo wR="wd2" hR="y1" stAng="cd4" swAng="-5400000" />\r
-        <lnTo>\r
-          <pt x="hc" y="y1" />\r
-        </lnTo>\r
-        <arcTo wR="wd2" hR="y1" stAng="cd2" swAng="cd4" />\r
-      </path>\r
-    </pathLst>\r
-  </leftBrace>\r
-  <leftBracket>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj" fmla="val 8333" />\r
-\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="maxAdj" fmla="*/ 50000 h ss" />\r
-\r
-      <gd name="a" fmla="pin 0 adj maxAdj" />\r
-      <gd name="y1" fmla="*/ ss a 100000" />\r
-\r
-      <gd name="y2" fmla="+- b 0 y1" />\r
-\r
-      <gd name="dx1" fmla="cos w 2700000" />\r
-      <gd name="dy1" fmla="sin y1 2700000" />\r
-      <gd name="il" fmla="+- r 0 dx1" />\r
-      <gd name="it" fmla="+- y1 0 dy1" />\r
-      <gd name="ib" fmla="+- b dy1 y1" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefY="adj" minY="0" maxY="maxAdj">\r
-        <pos x="l" y="y1" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="cd4">\r
-        <pos x="r" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="r" y="b" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="il" t="it" r="r" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path stroke="false" extrusionOk="false">\r
-\r
-        <moveTo>\r
-          <pt x="r" y="b" />\r
-        </moveTo>\r
-        <arcTo wR="w" hR="y1" stAng="cd4" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="l" y="y1" />\r
-        </lnTo>\r
-        <arcTo wR="w" hR="y1" stAng="cd2" swAng="cd4" />\r
-        <close />\r
-      </path>\r
-      <path fill="none">\r
-\r
-        <moveTo>\r
-          <pt x="r" y="b" />\r
-        </moveTo>\r
-        <arcTo wR="w" hR="y1" stAng="cd4" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="l" y="y1" />\r
-        </lnTo>\r
-        <arcTo wR="w" hR="y1" stAng="cd2" swAng="cd4" />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </leftBracket>\r
-  <leftCircularArrow>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 12500" />\r
-\r
-      <gd name="adj2" fmla="val -1142319" />\r
-\r
-      <gd name="adj3" fmla="val 1142319" />\r
-\r
-      <gd name="adj4" fmla="val 10800000" />\r
-\r
-      <gd name="adj5" fmla="val 12500" />\r
-\r
-    </avLst>\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a5" fmla="pin 0 adj5 25000" />\r
-\r
-      <gd name="maxAdj1" fmla="*/ a5 2 1" />\r
-\r
-      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
-      <gd name="enAng" fmla="pin 1 adj3 21599999" />\r
-      <gd name="stAng" fmla="pin 0 adj4 21599999" />\r
-\r
-      <gd name="th" fmla="*/ ss a1 100000" />\r
-\r
-      <gd name="thh" fmla="*/ ss a5 100000" />\r
-\r
-      <gd name="th2" fmla="*/ th 1 2" />\r
-\r
-\r
-      <gd name="rw1" fmla="+- wd2 th2 thh" />\r
-\r
-      <gd name="rh1" fmla="+- hd2 th2 thh" />\r
-\r
-      <gd name="rw2" fmla="+- rw1 0 th" />\r
-\r
-      <gd name="rh2" fmla="+- rh1 0 th" />\r
-\r
-      <gd name="rw3" fmla="+- rw2 th2 0" />\r
-\r
-      <gd name="rh3" fmla="+- rh2 th2 0" />\r
-\r
-\r
-      <gd name="wtH" fmla="sin rw3 enAng" />\r
-      <gd name="htH" fmla="cos rh3 enAng" />\r
-      <gd name="dxH" fmla="cat2 rw3 htH wtH" />\r
-      <gd name="dyH" fmla="sat2 rh3 htH wtH" />\r
-      <gd name="xH" fmla="+- hc dxH 0" />\r
-\r
-      <gd name="yH" fmla="+- vc dyH 0" />\r
-\r
-\r
-      <gd name="rI" fmla="min rw2 rh2" />\r
-\r
-      <gd name="u1" fmla="*/ dxH dxH 1" />\r
-      <gd name="u2" fmla="*/ dyH dyH 1" />\r
-      <gd name="u3" fmla="*/ rI rI 1" />\r
-      <gd name="u4" fmla="+- u1 0 u3" />\r
-      <gd name="u5" fmla="+- u2 0 u3" />\r
-      <gd name="u6" fmla="*/ u4 u5 u1" />\r
-      <gd name="u7" fmla="*/ u6 1 u2" />\r
-      <gd name="u8" fmla="+- 1 0 u7" />\r
-      <gd name="u9" fmla="sqrt u8" />\r
-      <gd name="u10" fmla="*/ u4 1 dxH" />\r
-      <gd name="u11" fmla="*/ u10 1 dyH" />\r
-      <gd name="u12" fmla="+/ 1 u9 u11" />\r
-      <gd name="u13" fmla="at2 1 u12" />\r
-      <gd name="u14" fmla="+- u13 21600000 0" />\r
-      <gd name="u15" fmla="?: u13 u13 u14" />\r
-      <gd name="u16" fmla="+- u15 0 enAng" />\r
-\r
-      <gd name="u17" fmla="+- u16 21600000 0" />\r
-      <gd name="u18" fmla="?: u16 u16 u17" />\r
-      <gd name="u19" fmla="+- u18 0 cd2" />\r
-      <gd name="u20" fmla="+- u18 0 21600000" />\r
-      <gd name="u21" fmla="?: u19 u20 u18" />\r
-      <gd name="u22" fmla="abs u21" />\r
-      <gd name="minAng" fmla="*/ u22 -1 1" />\r
-      <gd name="u23" fmla="abs adj2" />\r
-      <gd name="a2" fmla="*/ u23 -1 1" />\r
-      <gd name="aAng" fmla="pin minAng a2 0" />\r
-\r
-      <gd name="ptAng" fmla="+- enAng aAng 0" />\r
-\r
-\r
-      <gd name="wtA" fmla="sin rw3 ptAng" />\r
-      <gd name="htA" fmla="cos rh3 ptAng" />\r
-      <gd name="dxA" fmla="cat2 rw3 htA wtA" />\r
-      <gd name="dyA" fmla="sat2 rh3 htA wtA" />\r
-      <gd name="xA" fmla="+- hc dxA 0" />\r
-\r
-      <gd name="yA" fmla="+- vc dyA 0" />\r
-\r
-\r
-      <gd name="wtE" fmla="sin rw1 stAng" />\r
-      <gd name="htE" fmla="cos rh1 stAng" />\r
-      <gd name="dxE" fmla="cat2 rw1 htE wtE" />\r
-      <gd name="dyE" fmla="sat2 rh1 htE wtE" />\r
-      <gd name="xE" fmla="+- hc dxE 0" />\r
-\r
-      <gd name="yE" fmla="+- vc dyE 0" />\r
-\r
-\r
-      <gd name="wtD" fmla="sin rw2 stAng" />\r
-      <gd name="htD" fmla="cos rh2 stAng" />\r
-      <gd name="dxD" fmla="cat2 rw2 htD wtD" />\r
-      <gd name="dyD" fmla="sat2 rh2 htD wtD" />\r
-      <gd name="xD" fmla="+- hc dxD 0" />\r
-\r
-      <gd name="yD" fmla="+- vc dyD 0" />\r
-\r
-\r
-      <gd name="dxG" fmla="cos thh ptAng" />\r
-      <gd name="dyG" fmla="sin thh ptAng" />\r
-      <gd name="xG" fmla="+- xH dxG 0" />\r
-\r
-      <gd name="yG" fmla="+- yH dyG 0" />\r
-\r
-\r
-      <gd name="dxB" fmla="cos thh ptAng" />\r
-      <gd name="dyB" fmla="sin thh ptAng" />\r
-      <gd name="xB" fmla="+- xH 0 dxB 0" />\r
-\r
-      <gd name="yB" fmla="+- yH 0 dyB 0" />\r
-\r
-\r
-      <gd name="sx1" fmla="+- xB 0 hc" />\r
-\r
-      <gd name="sy1" fmla="+- yB 0 vc" />\r
-\r
-      <gd name="sx2" fmla="+- xG 0 hc" />\r
-\r
-      <gd name="sy2" fmla="+- yG 0 vc" />\r
-\r
-\r
-      <gd name="rO" fmla="min rw1 rh1" />\r
-\r
-      <gd name="x1O" fmla="*/ sx1 rO rw1" />\r
-\r
-      <gd name="y1O" fmla="*/ sy1 rO rh1" />\r
-\r
-      <gd name="x2O" fmla="*/ sx2 rO rw1" />\r
-\r
-      <gd name="y2O" fmla="*/ sy2 rO rh1" />\r
-\r
-\r
-      <gd name="dxO" fmla="+- x2O 0 x1O" />\r
-      <gd name="dyO" fmla="+- y2O 0 y1O" />\r
-      <gd name="dO" fmla="mod dxO dyO 0" />\r
-\r
-      <gd name="q1" fmla="*/ x1O y2O 1" />\r
-      <gd name="q2" fmla="*/ x2O y1O 1" />\r
-      <gd name="DO" fmla="+- q1 0 q2" />\r
-\r
-\r
-      <gd name="q3" fmla="*/ rO rO 1" />\r
-\r
-      <gd name="q4" fmla="*/ dO dO 1" />\r
-\r
-      <gd name="q5" fmla="*/ q3 q4 1" />\r
-\r
-      <gd name="q6" fmla="*/ DO DO 1" />\r
-\r
-      <gd name="q7" fmla="+- q5 0 q6" />\r
-\r
-      <gd name="q8" fmla="max q7 0" />\r
-\r
-      <gd name="sdelO" fmla="sqrt q8" />\r
-\r
-      <gd name="ndyO" fmla="*/ dyO -1 1" />\r
-      <gd name="sdyO" fmla="?: ndyO -1 1" />\r
-\r
-      <gd name="q9" fmla="*/ sdyO dxO 1" />\r
-\r
-      <gd name="q10" fmla="*/ q9 sdelO 1" />\r
-\r
-      <gd name="q11" fmla="*/ DO dyO 1" />\r
-\r
-      <gd name="dxF1" fmla="+/ q11 q10 q4" />\r
-\r
-      <gd name="q12" fmla="+- q11 0 q10" />\r
-      <gd name="dxF2" fmla="*/ q12 1 q4" />\r
-\r
-\r
-      <gd name="adyO" fmla="abs dyO" />\r
-      <gd name="q13" fmla="*/ adyO sdelO 1" />\r
-\r
-      <gd name="q14" fmla="*/ DO dxO -1" />\r
-\r
-      <gd name="dyF1" fmla="+/ q14 q13 q4" />\r
-\r
-      <gd name="q15" fmla="+- q14 0 q13" />\r
-      <gd name="dyF2" fmla="*/ q15 1 q4" />\r
-\r
-\r
-\r
-      <gd name="q16" fmla="+- x2O 0 dxF1" />\r
-      <gd name="q17" fmla="+- x2O 0 dxF2" />\r
-      <gd name="q18" fmla="+- y2O 0 dyF1" />\r
-      <gd name="q19" fmla="+- y2O 0 dyF2" />\r
-      <gd name="q20" fmla="mod q16 q18 0" />\r
-\r
-      <gd name="q21" fmla="mod q17 q19 0" />\r
-\r
-      <gd name="q22" fmla="+- q21 0 q20" />\r
-      <gd name="dxF" fmla="?: q22 dxF1 dxF2" />\r
-\r
-      <gd name="dyF" fmla="?: q22 dyF1 dyF2" />\r
-\r
-      <gd name="sdxF" fmla="*/ dxF rw1 rO" />\r
-\r
-      <gd name="sdyF" fmla="*/ dyF rh1 rO" />\r
-\r
-      <gd name="xF" fmla="+- hc sdxF 0" />\r
-\r
-      <gd name="yF" fmla="+- vc sdyF 0" />\r
-\r
-\r
-\r
-\r
-      <gd name="x1I" fmla="*/ sx1 rI rw2" />\r
-\r
-      <gd name="y1I" fmla="*/ sy1 rI rh2" />\r
-\r
-      <gd name="x2I" fmla="*/ sx2 rI rw2" />\r
-\r
-      <gd name="y2I" fmla="*/ sy2 rI rh2" />\r
-\r
-\r
-      <gd name="dxI" fmla="+- x2I 0 x1I" />\r
-      <gd name="dyI" fmla="+- y2I 0 y1I" />\r
-      <gd name="dI" fmla="mod dxI dyI 0" />\r
-      <gd name="v1" fmla="*/ x1I y2I 1" />\r
-      <gd name="v2" fmla="*/ x2I y1I 1" />\r
-      <gd name="DI" fmla="+- v1 0 v2" />\r
-\r
-      <gd name="v3" fmla="*/ rI rI 1" />\r
-      <gd name="v4" fmla="*/ dI dI 1" />\r
-      <gd name="v5" fmla="*/ v3 v4 1" />\r
-      <gd name="v6" fmla="*/ DI DI 1" />\r
-      <gd name="v7" fmla="+- v5 0 v6" />\r
-      <gd name="v8" fmla="max v7 0" />\r
-      <gd name="sdelI" fmla="sqrt v8" />\r
-      <gd name="v9" fmla="*/ sdyO dxI 1" />\r
-      <gd name="v10" fmla="*/ v9 sdelI 1" />\r
-      <gd name="v11" fmla="*/ DI dyI 1" />\r
-      <gd name="dxC1" fmla="+/ v11 v10 v4" />\r
-      <gd name="v12" fmla="+- v11 0 v10" />\r
-      <gd name="dxC2" fmla="*/ v12 1 v4" />\r
-\r
-      <gd name="adyI" fmla="abs dyI" />\r
-      <gd name="v13" fmla="*/ adyI sdelI 1" />\r
-      <gd name="v14" fmla="*/ DI dxI -1" />\r
-      <gd name="dyC1" fmla="+/ v14 v13 v4" />\r
-      <gd name="v15" fmla="+- v14 0 v13" />\r
-      <gd name="dyC2" fmla="*/ v15 1 v4" />\r
-\r
-      <gd name="v16" fmla="+- x1I 0 dxC1" />\r
-      <gd name="v17" fmla="+- x1I 0 dxC2" />\r
-      <gd name="v18" fmla="+- y1I 0 dyC1" />\r
-      <gd name="v19" fmla="+- y1I 0 dyC2" />\r
-      <gd name="v20" fmla="mod v16 v18 0" />\r
-      <gd name="v21" fmla="mod v17 v19 0" />\r
-      <gd name="v22" fmla="+- v21 0 v20" />\r
-      <gd name="dxC" fmla="?: v22 dxC1 dxC2" />\r
-      <gd name="dyC" fmla="?: v22 dyC1 dyC2" />\r
-      <gd name="sdxC" fmla="*/ dxC rw2 rI" />\r
-      <gd name="sdyC" fmla="*/ dyC rh2 rI" />\r
-      <gd name="xC" fmla="+- hc sdxC 0" />\r
-\r
-      <gd name="yC" fmla="+- vc sdyC 0" />\r
-\r
-\r
-      <gd name="ist0" fmla="at2 sdxC sdyC" />\r
-      <gd name="ist1" fmla="+- ist0 21600000 0" />\r
-      <gd name="istAng0" fmla="?: ist0 ist0 ist1" />\r
-      <gd name="isw1" fmla="+- stAng 0 istAng0" />\r
-      <gd name="isw2" fmla="+- isw1 21600000 0" />\r
-      <gd name="iswAng0" fmla="?: isw1 isw1 isw2" />\r
-\r
-      <gd name="istAng" fmla="+- istAng0 iswAng0 0" />\r
-      <gd name="iswAng" fmla="+- 0 0 iswAng0" />\r
-\r
-      <gd name="p1" fmla="+- xF 0 xC" />\r
-      <gd name="p2" fmla="+- yF 0 yC" />\r
-      <gd name="p3" fmla="mod p1 p2 0" />\r
-      <gd name="p4" fmla="*/ p3 1 2" />\r
-      <gd name="p5" fmla="+- p4 0 thh" />\r
-      <gd name="xGp" fmla="?: p5 xF xG" />\r
-      <gd name="yGp" fmla="?: p5 yF yG" />\r
-      <gd name="xBp" fmla="?: p5 xC xB" />\r
-      <gd name="yBp" fmla="?: p5 yC yB" />\r
-\r
-      <gd name="en0" fmla="at2 sdxF sdyF" />\r
-      <gd name="en1" fmla="+- en0 21600000 0" />\r
-      <gd name="en2" fmla="?: en0 en0 en1" />\r
-      <gd name="sw0" fmla="+- en2 0 stAng" />\r
-      <gd name="sw1" fmla="+- sw0 0 21600000" />\r
-      <gd name="swAng" fmla="?: sw0 sw1 sw0" />\r
-\r
-\r
-      <gd name="stAng0" fmla="+- stAng swAng 0" />\r
-\r
-      <gd name="swAng0" fmla="+- 0 0 swAng" />\r
-\r
-\r
-      <gd name="wtI" fmla="sin rw3 stAng" />\r
-      <gd name="htI" fmla="cos rh3 stAng" />\r
-      <gd name="dxI" fmla="cat2 rw3 htI wtI" />\r
-      <gd name="dyI" fmla="sat2 rh3 htI wtI" />\r
-      <gd name="xI" fmla="+- hc dxI 0" />\r
-\r
-      <gd name="yI" fmla="+- vc dyI 0" />\r
-\r
-\r
-      <gd name="aI" fmla="+- stAng cd4 0" />\r
-      <gd name="aA" fmla="+- ptAng 0 cd4" />\r
-      <gd name="aB" fmla="+- ptAng cd2 0" />\r
-\r
-      <gd name="idx" fmla="cos rw1 2700000" />\r
-      <gd name="idy" fmla="sin rh1 2700000" />\r
-      <gd name="il" fmla="+- hc 0 idx" />\r
-      <gd name="ir" fmla="+- hc idx 0" />\r
-      <gd name="it" fmla="+- vc 0 idy" />\r
-      <gd name="ib" fmla="+- vc idy 0" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahPolar gdRefAng="adj2" minAng="minAng" maxAng="0">\r
-        <pos x="xA" y="yA" />\r
-      </ahPolar>\r
-      <ahPolar gdRefAng="adj4" minAng="0" maxAng="21599999">\r
-        <pos x="xE" y="yE" />\r
-      </ahPolar>\r
-      <ahPolar gdRefR="adj1" minR="0" maxR="maxAdj1" gdRefAng="adj3" minAng="0" maxAng="21599999">\r
-        <pos x="xF" y="yF" />\r
-      </ahPolar>\r
-      <ahPolar gdRefR="adj5" minR="0" maxR="25000">\r
-        <pos x="xB" y="yB" />\r
-      </ahPolar>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="aI">\r
-        <pos x="xI" y="yI" />\r
-      </cxn>\r
-      <cxn ang="ptAng">\r
-        <pos x="xGp" y="yGp" />\r
-      </cxn>\r
-      <cxn ang="aA">\r
-        <pos x="xA" y="yA" />\r
-      </cxn>\r
-      <cxn ang="aB">\r
-        <pos x="xBp" y="yBp" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="xE" y="yE" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="xD" y="yD" />\r
-        </lnTo>\r
-        <arcTo wR="rw2" hR="rh2" stAng="istAng" swAng="iswAng" />\r
-        <lnTo>\r
-          <pt x="xBp" y="yBp" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xA" y="yA" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xGp" y="yGp" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xF" y="yF" />\r
-        </lnTo>\r
-        <arcTo wR="rw1" hR="rh1" stAng="stAng0" swAng="swAng0" />\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </leftCircularArrow>\r
-  <leftRightArrow>\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 50000" />\r
-      <gd name="adj2" fmla="val 50000" />\r
-    </avLst>\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="maxAdj2" fmla="*/ 50000 w ss" />\r
-      <gd name="a1" fmla="pin 0 adj1 100000" />\r
-      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
-      <gd name="x2" fmla="*/ ss a2 100000" />\r
-      <gd name="x3" fmla="+- r 0 x2" />\r
-      <gd name="dy" fmla="*/ h a1 200000" />\r
-      <gd name="y1" fmla="+- vc 0 dy" />\r
-      <gd name="y2" fmla="+- vc dy 0" />\r
-      <gd name="dx1" fmla="*/ y1 x2 hd2" />\r
-      <gd name="x1" fmla="+- x2 0 dx1" />\r
-      <gd name="x4" fmla="+- x3 dx1 0" />\r
-    </gdLst>\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefY="adj1" minY="0" maxY="100000">\r
-        <pos x="x3" y="y1" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj2" minX="0" maxX="maxAdj2">\r
-        <pos x="x2" y="t" />\r
-      </ahXY>\r
-    </ahLst>\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="x3" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="x2" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="x2" y="t" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="x3" y="t" />\r
-      </cxn>\r
-    </cxnLst>\r
-    <rect l="x1" t="y1" r="x4" b="y2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="vc" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x2" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="vc" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-  </leftRightArrow>\r
-  <leftRightArrowCallout>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 25000" />\r
-\r
-      <gd name="adj2" fmla="val 25000" />\r
-\r
-      <gd name="adj3" fmla="val 25000" />\r
-\r
-      <gd name="adj4" fmla="val 48123" />\r
-\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="maxAdj2" fmla="*/ 50000 h ss" />\r
-\r
-      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
-      <gd name="maxAdj1" fmla="*/ a2 2 1" />\r
-\r
-      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
-      <gd name="maxAdj3" fmla="*/ 50000 w ss" />\r
-\r
-      <gd name="a3" fmla="pin 0 adj3 maxAdj3" />\r
-      <gd name="q2" fmla="*/ a3 ss wd2" />\r
-\r
-      <gd name="maxAdj4" fmla="+- 100000 0 q2" />\r
-\r
-      <gd name="a4" fmla="pin 0 adj4 maxAdj4" />\r
-      <gd name="dy1" fmla="*/ ss a2 100000" />\r
-\r
-      <gd name="dy2" fmla="*/ ss a1 200000" />\r
-\r
-      <gd name="y1" fmla="+- vc 0 dy1" />\r
-      <gd name="y2" fmla="+- vc 0 dy2" />\r
-      <gd name="y3" fmla="+- vc dy2 0" />\r
-      <gd name="y4" fmla="+- vc dy1 0" />\r
-      <gd name="x1" fmla="*/ ss a3 100000" />\r
-\r
-      <gd name="x4" fmla="+- r 0 x1" />\r
-\r
-      <gd name="dx2" fmla="*/ w a4 200000" />\r
-\r
-      <gd name="x2" fmla="+- hc 0 dx2" />\r
-\r
-      <gd name="x3" fmla="+- hc dx2 0" />\r
-\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefY="adj1" minY="0" maxY="maxAdj1">\r
-        <pos x="x1" y="y2" />\r
-      </ahXY>\r
-      <ahXY gdRefY="adj2" minY="0" maxY="maxAdj2">\r
-        <pos x="l" y="y1" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj3" minX="0" maxX="maxAdj3">\r
-        <pos x="x1" y="t" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj4" minX="0" maxX="maxAdj4">\r
-        <pos x="x2" y="b" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="x2" t="t" r="x3" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="vc" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="vc" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y4" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </leftRightArrowCallout>\r
-  <leftRightCircularArrow>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 12500" />\r
-\r
-      <gd name="adj2" fmla="val 1142319" />\r
-\r
-      <gd name="adj3" fmla="val 20457681" />\r
-\r
-      <gd name="adj4" fmla="val 11942319" />\r
-\r
-      <gd name="adj5" fmla="val 12500" />\r
-\r
-    </avLst>\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a5" fmla="pin 0 adj5 25000" />\r
-\r
-      <gd name="maxAdj1" fmla="*/ a5 2 1" />\r
-\r
-      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
-      <gd name="enAng" fmla="pin 1 adj3 21599999" />\r
-      <gd name="stAng" fmla="pin 0 adj4 21599999" />\r
-\r
-      <gd name="th" fmla="*/ ss a1 100000" />\r
-\r
-      <gd name="thh" fmla="*/ ss a5 100000" />\r
-\r
-      <gd name="th2" fmla="*/ th 1 2" />\r
-\r
-\r
-      <gd name="rw1" fmla="+- wd2 th2 thh" />\r
-\r
-      <gd name="rh1" fmla="+- hd2 th2 thh" />\r
-\r
-      <gd name="rw2" fmla="+- rw1 0 th" />\r
-\r
-      <gd name="rh2" fmla="+- rh1 0 th" />\r
-\r
-      <gd name="rw3" fmla="+- rw2 th2 0" />\r
-\r
-      <gd name="rh3" fmla="+- rh2 th2 0" />\r
-\r
-\r
-      <gd name="wtH" fmla="sin rw3 enAng" />\r
-      <gd name="htH" fmla="cos rh3 enAng" />\r
-      <gd name="dxH" fmla="cat2 rw3 htH wtH" />\r
-      <gd name="dyH" fmla="sat2 rh3 htH wtH" />\r
-      <gd name="xH" fmla="+- hc dxH 0" />\r
-\r
-      <gd name="yH" fmla="+- vc dyH 0" />\r
-\r
-\r
-      <gd name="rI" fmla="min rw2 rh2" />\r
-\r
-      <gd name="u1" fmla="*/ dxH dxH 1" />\r
-      <gd name="u2" fmla="*/ dyH dyH 1" />\r
-      <gd name="u3" fmla="*/ rI rI 1" />\r
-      <gd name="u4" fmla="+- u1 0 u3" />\r
-      <gd name="u5" fmla="+- u2 0 u3" />\r
-      <gd name="u6" fmla="*/ u4 u5 u1" />\r
-      <gd name="u7" fmla="*/ u6 1 u2" />\r
-      <gd name="u8" fmla="+- 1 0 u7" />\r
-      <gd name="u9" fmla="sqrt u8" />\r
-      <gd name="u10" fmla="*/ u4 1 dxH" />\r
-      <gd name="u11" fmla="*/ u10 1 dyH" />\r
-      <gd name="u12" fmla="+/ 1 u9 u11" />\r
-      <gd name="u13" fmla="at2 1 u12" />\r
-      <gd name="u14" fmla="+- u13 21600000 0" />\r
-      <gd name="u15" fmla="?: u13 u13 u14" />\r
-      <gd name="u16" fmla="+- u15 0 enAng" />\r
-\r
-      <gd name="u17" fmla="+- u16 21600000 0" />\r
-      <gd name="u18" fmla="?: u16 u16 u17" />\r
-      <gd name="u19" fmla="+- u18 0 cd2" />\r
-      <gd name="u20" fmla="+- u18 0 21600000" />\r
-      <gd name="u21" fmla="?: u19 u20 u18" />\r
-      <gd name="maxAng" fmla="abs u21" />\r
-      <gd name="aAng" fmla="pin 0 adj2 maxAng" />\r
-\r
-      <gd name="ptAng" fmla="+- enAng aAng 0" />\r
-\r
-\r
-      <gd name="wtA" fmla="sin rw3 ptAng" />\r
-      <gd name="htA" fmla="cos rh3 ptAng" />\r
-      <gd name="dxA" fmla="cat2 rw3 htA wtA" />\r
-      <gd name="dyA" fmla="sat2 rh3 htA wtA" />\r
-      <gd name="xA" fmla="+- hc dxA 0" />\r
-\r
-      <gd name="yA" fmla="+- vc dyA 0" />\r
-\r
-\r
-      <gd name="dxG" fmla="cos thh ptAng" />\r
-      <gd name="dyG" fmla="sin thh ptAng" />\r
-      <gd name="xG" fmla="+- xH dxG 0" />\r
-\r
-      <gd name="yG" fmla="+- yH dyG 0" />\r
-\r
-\r
-      <gd name="dxB" fmla="cos thh ptAng" />\r
-      <gd name="dyB" fmla="sin thh ptAng" />\r
-      <gd name="xB" fmla="+- xH 0 dxB 0" />\r
-\r
-      <gd name="yB" fmla="+- yH 0 dyB 0" />\r
-\r
-\r
-      <gd name="sx1" fmla="+- xB 0 hc" />\r
-\r
-      <gd name="sy1" fmla="+- yB 0 vc" />\r
-\r
-      <gd name="sx2" fmla="+- xG 0 hc" />\r
-\r
-      <gd name="sy2" fmla="+- yG 0 vc" />\r
-\r
-\r
-      <gd name="rO" fmla="min rw1 rh1" />\r
-\r
-      <gd name="x1O" fmla="*/ sx1 rO rw1" />\r
-\r
-      <gd name="y1O" fmla="*/ sy1 rO rh1" />\r
-\r
-      <gd name="x2O" fmla="*/ sx2 rO rw1" />\r
-\r
-      <gd name="y2O" fmla="*/ sy2 rO rh1" />\r
-\r
-\r
-      <gd name="dxO" fmla="+- x2O 0 x1O" />\r
-      <gd name="dyO" fmla="+- y2O 0 y1O" />\r
-      <gd name="dO" fmla="mod dxO dyO 0" />\r
-\r
-      <gd name="q1" fmla="*/ x1O y2O 1" />\r
-      <gd name="q2" fmla="*/ x2O y1O 1" />\r
-      <gd name="DO" fmla="+- q1 0 q2" />\r
-\r
-\r
-      <gd name="q3" fmla="*/ rO rO 1" />\r
-\r
-      <gd name="q4" fmla="*/ dO dO 1" />\r
-\r
-      <gd name="q5" fmla="*/ q3 q4 1" />\r
-\r
-      <gd name="q6" fmla="*/ DO DO 1" />\r
-\r
-      <gd name="q7" fmla="+- q5 0 q6" />\r
-\r
-      <gd name="q8" fmla="max q7 0" />\r
-\r
-      <gd name="sdelO" fmla="sqrt q8" />\r
-\r
-      <gd name="ndyO" fmla="*/ dyO -1 1" />\r
-      <gd name="sdyO" fmla="?: ndyO -1 1" />\r
-\r
-      <gd name="q9" fmla="*/ sdyO dxO 1" />\r
-\r
-      <gd name="q10" fmla="*/ q9 sdelO 1" />\r
-\r
-      <gd name="q11" fmla="*/ DO dyO 1" />\r
-\r
-      <gd name="dxF1" fmla="+/ q11 q10 q4" />\r
-\r
-      <gd name="q12" fmla="+- q11 0 q10" />\r
-      <gd name="dxF2" fmla="*/ q12 1 q4" />\r
-\r
-\r
-      <gd name="adyO" fmla="abs dyO" />\r
-      <gd name="q13" fmla="*/ adyO sdelO 1" />\r
-\r
-      <gd name="q14" fmla="*/ DO dxO -1" />\r
-\r
-      <gd name="dyF1" fmla="+/ q14 q13 q4" />\r
-\r
-      <gd name="q15" fmla="+- q14 0 q13" />\r
-      <gd name="dyF2" fmla="*/ q15 1 q4" />\r
-\r
-\r
-\r
-      <gd name="q16" fmla="+- x2O 0 dxF1" />\r
-      <gd name="q17" fmla="+- x2O 0 dxF2" />\r
-      <gd name="q18" fmla="+- y2O 0 dyF1" />\r
-      <gd name="q19" fmla="+- y2O 0 dyF2" />\r
-      <gd name="q20" fmla="mod q16 q18 0" />\r
-\r
-      <gd name="q21" fmla="mod q17 q19 0" />\r
-\r
-      <gd name="q22" fmla="+- q21 0 q20" />\r
-      <gd name="dxF" fmla="?: q22 dxF1 dxF2" />\r
-\r
-      <gd name="dyF" fmla="?: q22 dyF1 dyF2" />\r
-\r
-      <gd name="sdxF" fmla="*/ dxF rw1 rO" />\r
-\r
-      <gd name="sdyF" fmla="*/ dyF rh1 rO" />\r
-\r
-      <gd name="xF" fmla="+- hc sdxF 0" />\r
-\r
-      <gd name="yF" fmla="+- vc sdyF 0" />\r
-\r
-\r
-\r
-\r
-      <gd name="x1I" fmla="*/ sx1 rI rw2" />\r
-\r
-      <gd name="y1I" fmla="*/ sy1 rI rh2" />\r
-\r
-      <gd name="x2I" fmla="*/ sx2 rI rw2" />\r
-\r
-      <gd name="y2I" fmla="*/ sy2 rI rh2" />\r
-\r
-\r
-      <gd name="dxI" fmla="+- x2I 0 x1I" />\r
-      <gd name="dyI" fmla="+- y2I 0 y1I" />\r
-      <gd name="dI" fmla="mod dxI dyI 0" />\r
-      <gd name="v1" fmla="*/ x1I y2I 1" />\r
-      <gd name="v2" fmla="*/ x2I y1I 1" />\r
-      <gd name="DI" fmla="+- v1 0 v2" />\r
-\r
-      <gd name="v3" fmla="*/ rI rI 1" />\r
-      <gd name="v4" fmla="*/ dI dI 1" />\r
-      <gd name="v5" fmla="*/ v3 v4 1" />\r
-      <gd name="v6" fmla="*/ DI DI 1" />\r
-      <gd name="v7" fmla="+- v5 0 v6" />\r
-      <gd name="v8" fmla="max v7 0" />\r
-      <gd name="sdelI" fmla="sqrt v8" />\r
-      <gd name="v9" fmla="*/ sdyO dxI 1" />\r
-      <gd name="v10" fmla="*/ v9 sdelI 1" />\r
-      <gd name="v11" fmla="*/ DI dyI 1" />\r
-      <gd name="dxC1" fmla="+/ v11 v10 v4" />\r
-      <gd name="v12" fmla="+- v11 0 v10" />\r
-      <gd name="dxC2" fmla="*/ v12 1 v4" />\r
-\r
-      <gd name="adyI" fmla="abs dyI" />\r
-      <gd name="v13" fmla="*/ adyI sdelI 1" />\r
-      <gd name="v14" fmla="*/ DI dxI -1" />\r
-      <gd name="dyC1" fmla="+/ v14 v13 v4" />\r
-      <gd name="v15" fmla="+- v14 0 v13" />\r
-      <gd name="dyC2" fmla="*/ v15 1 v4" />\r
-\r
-      <gd name="v16" fmla="+- x1I 0 dxC1" />\r
-      <gd name="v17" fmla="+- x1I 0 dxC2" />\r
-      <gd name="v18" fmla="+- y1I 0 dyC1" />\r
-      <gd name="v19" fmla="+- y1I 0 dyC2" />\r
-      <gd name="v20" fmla="mod v16 v18 0" />\r
-      <gd name="v21" fmla="mod v17 v19 0" />\r
-      <gd name="v22" fmla="+- v21 0 v20" />\r
-      <gd name="dxC" fmla="?: v22 dxC1 dxC2" />\r
-      <gd name="dyC" fmla="?: v22 dyC1 dyC2" />\r
-      <gd name="sdxC" fmla="*/ dxC rw2 rI" />\r
-      <gd name="sdyC" fmla="*/ dyC rh2 rI" />\r
-      <gd name="xC" fmla="+- hc sdxC 0" />\r
-\r
-      <gd name="yC" fmla="+- vc sdyC 0" />\r
-\r
-\r
-      <gd name="wtI" fmla="sin rw3 stAng" />\r
-      <gd name="htI" fmla="cos rh3 stAng" />\r
-      <gd name="dxI" fmla="cat2 rw3 htI wtI" />\r
-      <gd name="dyI" fmla="sat2 rh3 htI wtI" />\r
-      <gd name="xI" fmla="+- hc dxI 0" />\r
-\r
-      <gd name="yI" fmla="+- vc dyI 0" />\r
-\r
-\r
-      <gd name="lptAng" fmla="+- stAng 0 aAng" />\r
-\r
-\r
-      <gd name="wtL" fmla="sin rw3 lptAng" />\r
-      <gd name="htL" fmla="cos rh3 lptAng" />\r
-      <gd name="dxL" fmla="cat2 rw3 htL wtL" />\r
-      <gd name="dyL" fmla="sat2 rh3 htL wtL" />\r
-      <gd name="xL" fmla="+- hc dxL 0" />\r
-\r
-      <gd name="yL" fmla="+- vc dyL 0" />\r
-\r
-\r
-      <gd name="dxK" fmla="cos thh lptAng" />\r
-      <gd name="dyK" fmla="sin thh lptAng" />\r
-      <gd name="xK" fmla="+- xI dxK 0" />\r
-\r
-      <gd name="yK" fmla="+- yI dyK 0" />\r
-\r
-\r
-      <gd name="dxJ" fmla="cos thh lptAng" />\r
-      <gd name="dyJ" fmla="sin thh lptAng" />\r
-      <gd name="xJ" fmla="+- xI 0 dxJ 0" />\r
-\r
-      <gd name="yJ" fmla="+- yI 0 dyJ 0" />\r
-\r
-\r
-      <gd name="p1" fmla="+- xF 0 xC" />\r
-      <gd name="p2" fmla="+- yF 0 yC" />\r
-      <gd name="p3" fmla="mod p1 p2 0" />\r
-      <gd name="p4" fmla="*/ p3 1 2" />\r
-      <gd name="p5" fmla="+- p4 0 thh" />\r
-      <gd name="xGp" fmla="?: p5 xF xG" />\r
-      <gd name="yGp" fmla="?: p5 yF yG" />\r
-      <gd name="xBp" fmla="?: p5 xC xB" />\r
-      <gd name="yBp" fmla="?: p5 yC yB" />\r
-\r
-      <gd name="en0" fmla="at2 sdxF sdyF" />\r
-      <gd name="en1" fmla="+- en0 21600000 0" />\r
-      <gd name="en2" fmla="?: en0 en0 en1" />\r
-      <gd name="od0" fmla="+- en2 0 enAng" />\r
-      <gd name="od1" fmla="+- od0 21600000 0" />\r
-      <gd name="od2" fmla="?: od0 od0 od1" />\r
-\r
-      <gd name="st0" fmla="+- stAng 0 od2" />\r
-      <gd name="st1" fmla="+- st0 21600000 0" />\r
-      <gd name="st2" fmla="?: st0 st0 st1" />\r
-\r
-      <gd name="sw0" fmla="+- en2 0 st2" />\r
-      <gd name="sw1" fmla="+- sw0 21600000 0" />\r
-      <gd name="swAng" fmla="?: sw0 sw0 sw1" />\r
-\r
-\r
-      <gd name="ist0" fmla="at2 sdxC sdyC" />\r
-      <gd name="ist1" fmla="+- ist0 21600000 0" />\r
-      <gd name="istAng" fmla="?: ist0 ist0 ist1" />\r
-\r
-      <gd name="id0" fmla="+- istAng 0 enAng" />\r
-      <gd name="id1" fmla="+- id0 0 21600000" />\r
-      <gd name="id2" fmla="?: id0 id1 id0" />\r
-\r
-      <gd name="ien0" fmla="+- stAng 0 id2" />\r
-      <gd name="ien1" fmla="+- ien0 0 21600000" />\r
-      <gd name="ien2" fmla="?: ien1 ien1 ien0" />\r
-\r
-      <gd name="isw1" fmla="+- ien2 0 istAng" />\r
-      <gd name="isw2" fmla="+- isw1 0 21600000" />\r
-      <gd name="iswAng" fmla="?: isw1 isw2 isw1" />\r
-\r
-\r
-      <gd name="wtE" fmla="sin rw1 st2" />\r
-      <gd name="htE" fmla="cos rh1 st2" />\r
-      <gd name="dxE" fmla="cat2 rw1 htE wtE" />\r
-      <gd name="dyE" fmla="sat2 rh1 htE wtE" />\r
-      <gd name="xE" fmla="+- hc dxE 0" />\r
-\r
-      <gd name="yE" fmla="+- vc dyE 0" />\r
-\r
-\r
-      <gd name="wtD" fmla="sin rw2 ien2" />\r
-      <gd name="htD" fmla="cos rh2 ien2" />\r
-      <gd name="dxD" fmla="cat2 rw2 htD wtD" />\r
-      <gd name="dyD" fmla="sat2 rh2 htD wtD" />\r
-      <gd name="xD" fmla="+- hc dxD 0" />\r
-\r
-      <gd name="yD" fmla="+- vc dyD 0" />\r
-\r
-\r
-      <gd name="xKp" fmla="?: p5 xE xK" />\r
-      <gd name="yKp" fmla="?: p5 yE yK" />\r
-      <gd name="xJp" fmla="?: p5 xD xJ" />\r
-      <gd name="yJp" fmla="?: p5 yD yJ" />\r
-\r
-      <gd name="aL" fmla="+- lptAng 0 cd4" />\r
-      <gd name="aA" fmla="+- ptAng cd4 0" />\r
-      <gd name="aB" fmla="+- ptAng cd2 0" />\r
-      <gd name="aJ" fmla="+- lptAng cd2 0" />\r
-\r
-      <gd name="idx" fmla="cos rw1 2700000" />\r
-      <gd name="idy" fmla="sin rh1 2700000" />\r
-      <gd name="il" fmla="+- hc 0 idx" />\r
-      <gd name="ir" fmla="+- hc idx 0" />\r
-      <gd name="it" fmla="+- vc 0 idy" />\r
-      <gd name="ib" fmla="+- vc idy 0" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahPolar gdRefAng="adj2" minAng="0" maxAng="maxAng">\r
-        <pos x="xA" y="yA" />\r
-      </ahPolar>\r
-      <ahPolar gdRefAng="adj4" minAng="0" maxAng="21599999">\r
-        <pos x="xE" y="yE" />\r
-      </ahPolar>\r
-      <ahPolar gdRefR="adj1" minR="0" maxR="maxAdj1" gdRefAng="adj3" minAng="0" maxAng="21599999">\r
-        <pos x="xF" y="yF" />\r
-      </ahPolar>\r
-      <ahPolar gdRefR="adj5" minR="0" maxR="25000">\r
-        <pos x="xB" y="yB" />\r
-      </ahPolar>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="aL">\r
-        <pos x="xL" y="yL" />\r
-      </cxn>\r
-      <cxn ang="lptAng">\r
-        <pos x="xKp" y="yKp" />\r
-      </cxn>\r
-      <cxn ang="ptAng">\r
-        <pos x="xGp" y="yGp" />\r
-      </cxn>\r
-      <cxn ang="aA">\r
-        <pos x="xA" y="yA" />\r
-      </cxn>\r
-      <cxn ang="aB">\r
-        <pos x="xBp" y="yBp" />\r
-      </cxn>\r
-      <cxn ang="aJ">\r
-        <pos x="xJp" y="yJp" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="xL" y="yL" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="xKp" y="yKp" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xE" y="yE" />\r
-        </lnTo>\r
-        <arcTo wR="rw1" hR="rh1" stAng="st2" swAng="swAng" />\r
-        <lnTo>\r
-          <pt x="xGp" y="yGp" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xA" y="yA" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xBp" y="yBp" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xC" y="yC" />\r
-        </lnTo>\r
-        <arcTo wR="rw2" hR="rh2" stAng="istAng" swAng="iswAng" />\r
-        <lnTo>\r
-          <pt x="xJp" y="yJp" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </leftRightCircularArrow>\r
-  <leftRightRibbon>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 50000" />\r
-\r
-      <gd name="adj2" fmla="val 50000" />\r
-\r
-      <gd name="adj3" fmla="val 16667" />\r
-\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a3" fmla="pin 0 adj3 33333" />\r
-      <gd name="maxAdj1" fmla="+- 100000 0 a3" />\r
-      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
-\r
-      <gd name="w1" fmla="+- wd2 0 wd32" />\r
-      <gd name="maxAdj2" fmla="*/ 100000 w1 ss" />\r
-      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
-\r
-      <gd name="x1" fmla="*/ ss a2 100000" />\r
-\r
-      <gd name="x4" fmla="+- r 0 x1" />\r
-\r
-      <gd name="dy1" fmla="*/ h a1 200000" />\r
-\r
-      <gd name="dy2" fmla="*/ h a3 -200000" />\r
-\r
-      <gd name="ly1" fmla="+- vc dy2 dy1" />\r
-\r
-      <gd name="ry4" fmla="+- vc dy1 dy2" />\r
-\r
-      <gd name="ly2" fmla="+- ly1 dy1 0" />\r
-\r
-      <gd name="ry3" fmla="+- b 0 ly2" />\r
-\r
-      <gd name="ly4" fmla="*/ ly2 2 1" />\r
-\r
-      <gd name="ry1" fmla="+- b 0 ly4" />\r
-\r
-      <gd name="ly3" fmla="+- ly4 0 ly1" />\r
-\r
-      <gd name="ry2" fmla="+- b 0 ly3" />\r
-\r
-\r
-      <gd name="hR" fmla="*/ a3 ss 400000" />\r
-\r
-      <gd name="x2" fmla="+- hc 0 wd32" />\r
-\r
-      <gd name="x3" fmla="+- hc wd32 0" />\r
-\r
-      <gd name="y1" fmla="+- ly1 hR 0" />\r
-\r
-      <gd name="y2" fmla="+- ry2 0 hR" />\r
-\r
-\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefY="adj1" minY="0" maxY="maxAdj1">\r
-        <pos x="x4" y="ry2" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj2" minX="0" maxX="maxAdj2">\r
-        <pos x="x1" y="t" />\r
-      </ahXY>\r
-      <ahXY gdRefY="adj3" minY="0" maxY="33333">\r
-        <pos x="x3" y="ry2" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="r" y="ry3" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="x4" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="x1" y="ly4" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="ly2" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="x1" y="t" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="x4" y="ry1" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="x1" t="ly1" r="x4" b="ry4" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path stroke="false" extrusionOk="false">\r
-\r
-        <moveTo>\r
-          <pt x="l" y="ly2" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x1" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="ly1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="hc" y="ly1" />\r
-        </lnTo>\r
-        <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="cd2" />\r
-        <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="-10800000" />\r
-        <lnTo>\r
-          <pt x="x4" y="ry2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="ry1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="ry3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="ry4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="hc" y="ry4" />\r
-        </lnTo>\r
-        <arcTo wR="wd32" hR="hR" stAng="cd4" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="x2" y="ly3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="ly3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="ly4" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path stroke="false" fill="darkenLess" extrusionOk="false">\r
-\r
-        <moveTo>\r
-          <pt x="x3" y="y1" />\r
-        </moveTo>\r
-        <arcTo wR="wd32" hR="hR" stAng="0" swAng="cd4" />\r
-        <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="-10800000" />\r
-        <lnTo>\r
-          <pt x="x3" y="ry2" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path fill="none" extrusionOk="false">\r
-\r
-        <moveTo>\r
-          <pt x="l" y="ly2" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x1" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="ly1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="hc" y="ly1" />\r
-        </lnTo>\r
-        <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="cd2" />\r
-        <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="-10800000" />\r
-        <lnTo>\r
-          <pt x="x4" y="ry2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="ry1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="ry3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="ry4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="hc" y="ry4" />\r
-        </lnTo>\r
-        <arcTo wR="wd32" hR="hR" stAng="cd4" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="x2" y="ly3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="ly3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="ly4" />\r
-        </lnTo>\r
-        <close />\r
-        <moveTo>\r
-          <pt x="x3" y="y1" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x3" y="ry2" />\r
-        </lnTo>\r
-        <moveTo>\r
-          <pt x="x2" y="y2" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x2" y="ly3" />\r
-        </lnTo>\r
-      </path>\r
-    </pathLst>\r
-\r
-  </leftRightRibbon>\r
-  <leftRightUpArrow>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 25000" />\r
-\r
-      <gd name="adj2" fmla="val 25000" />\r
-\r
-      <gd name="adj3" fmla="val 25000" />\r
-\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a2" fmla="pin 0 adj2 50000" />\r
-      <gd name="maxAdj1" fmla="*/ a2 2 1" />\r
-      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
-      <gd name="q1" fmla="+- 100000 0 maxAdj1" />\r
-      <gd name="maxAdj3" fmla="*/ q1 1 2" />\r
-      <gd name="a3" fmla="pin 0 adj3 maxAdj3" />\r
-      <gd name="x1" fmla="*/ ss a3 100000" />\r
-      <gd name="dx2" fmla="*/ ss a2 100000" />\r
-\r
-      <gd name="x2" fmla="+- hc 0 dx2" />\r
-      <gd name="x5" fmla="+- hc dx2 0" />\r
-      <gd name="dx3" fmla="*/ ss a1 200000" />\r
-\r
-      <gd name="x3" fmla="+- hc 0 dx3" />\r
-      <gd name="x4" fmla="+- hc dx3 0" />\r
-      <gd name="x6" fmla="+- r 0 x1" />\r
-\r
-      <gd name="dy2" fmla="*/ ss a2 50000" />\r
-\r
-      <gd name="y2" fmla="+- b 0 dy2" />\r
-      <gd name="y4" fmla="+- b 0 dx2" />\r
-      <gd name="y3" fmla="+- y4 0 dx3" />\r
-      <gd name="y5" fmla="+- y4 dx3 0" />\r
-      <gd name="il" fmla="*/ dx3 x1 dx2" />\r
-      <gd name="ir" fmla="+- r 0 il" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj1" minX="0" maxX="maxAdj1">\r
-        <pos x="x3" y="x1" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj2" minX="0" maxX="50000">\r
-        <pos x="x2" y="t" />\r
-      </ahXY>\r
-      <ahXY gdRefY="adj3" minY="0" maxY="maxAdj3">\r
-        <pos x="r" y="x1" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="y4" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="y5" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="y4" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="il" t="y3" r="ir" b="y5" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="y4" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="x1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="x1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="hc" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x5" y="x1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="x1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x6" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x6" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x6" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x6" y="y5" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y5" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </leftRightUpArrow>\r
-  <leftUpArrow>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 25000" />\r
-\r
-      <gd name="adj2" fmla="val 25000" />\r
-\r
-      <gd name="adj3" fmla="val 25000" />\r
-\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a2" fmla="pin 0 adj2 50000" />\r
-      <gd name="maxAdj1" fmla="*/ a2 2 1" />\r
-      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
-      <gd name="maxAdj3" fmla="+- 100000 0 maxAdj1" />\r
-      <gd name="a3" fmla="pin 0 adj3 maxAdj3" />\r
-      <gd name="x1" fmla="*/ ss a3 100000" />\r
-\r
-      <gd name="dx2" fmla="*/ ss a2 50000" />\r
-\r
-      <gd name="x2" fmla="+- r 0 dx2" />\r
-      <gd name="y2" fmla="+- b 0 dx2" />\r
-      <gd name="dx4" fmla="*/ ss a2 100000" />\r
-\r
-      <gd name="x4" fmla="+- r 0 dx4" />\r
-      <gd name="y4" fmla="+- b 0 dx4" />\r
-      <gd name="dx3" fmla="*/ ss a1 200000" />\r
-\r
-      <gd name="x3" fmla="+- x4 0 dx3" />\r
-      <gd name="x5" fmla="+- x4 dx3 0" />\r
-      <gd name="y3" fmla="+- y4 0 dx3" />\r
-      <gd name="y5" fmla="+- y4 dx3 0" />\r
-      <gd name="il" fmla="*/ dx3 x1 dx4" />\r
-      <gd name="cx1" fmla="+/ x1 x5 2" />\r
-      <gd name="cy1" fmla="+/ x1 y5 2" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefY="adj1" minY="0" maxY="maxAdj1">\r
-        <pos x="x3" y="y3" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj2" minX="0" maxX="50000">\r
-        <pos x="x2" y="t" />\r
-      </ahXY>\r
-      <ahXY gdRefY="adj3" minY="0" maxY="maxAdj3">\r
-        <pos x="x3" y="x1" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="x4" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="x2" y="x1" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="x1" y="y2" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="y4" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="x1" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="cx1" y="y5" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="x5" y="cy1" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="x1" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="il" t="y3" r="x4" b="y5" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="y4" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="x1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="x1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="x1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x5" y="x1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x5" y="y5" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y5" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </leftUpArrow>\r
-  <lightningBolt>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="x1" fmla="*/ w 5022 21600" />\r
-      <gd name="x3" fmla="*/ w 8472 21600" />\r
-      <gd name="x4" fmla="*/ w 8757 21600" />\r
-\r
-      <gd name="x5" fmla="*/ w 10012 21600" />\r
-      <gd name="x8" fmla="*/ w 12860 21600" />\r
-      <gd name="x9" fmla="*/ w 13917 21600" />\r
-\r
-      <gd name="x11" fmla="*/ w 16577 21600" />\r
-      <gd name="y1" fmla="*/ h 3890 21600" />\r
-      <gd name="y2" fmla="*/ h 6080 21600" />\r
-      <gd name="y4" fmla="*/ h 7437 21600" />\r
-\r
-      <gd name="y6" fmla="*/ h 9705 21600" />\r
-      <gd name="y7" fmla="*/ h 12007 21600" />\r
-      <gd name="y10" fmla="*/ h 14277 21600" />\r
-\r
-      <gd name="y11" fmla="*/ h 14915 21600" />\r
-\r
-    </gdLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="x3" y="t" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="l" y="y1" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="x1" y="y6" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="x5" y="y11" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="r" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="x11" y="y7" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="x8" y="y2" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="x4" t="y4" r="x9" b="y10" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path w="21600" h="21600">\r
-        <moveTo>\r
-          <pt x="8472" y="0" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="12860" y="6080" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="11050" y="6797" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="16577" y="12007" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="14767" y="12877" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="21600" y="21600" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="10012" y="14915" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="12222" y="13987" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="5022" y="9705" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="7602" y="8382" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="0" y="3890" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </lightningBolt>\r
-  <line>\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="cd4">\r
-        <pos x="l" y="t" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="r" y="b" />\r
-      </cxn>\r
-    </cxnLst>\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-      </path>\r
-    </pathLst>\r
-  </line>\r
-  <lineInv>\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="cd4">\r
-        <pos x="l" y="b" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="r" y="t" />\r
-      </cxn>\r
-    </cxnLst>\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="b" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="r" y="t" />\r
-        </lnTo>\r
-      </path>\r
-    </pathLst>\r
-  </lineInv>\r
-  <mathDivide>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 23520" />\r
-\r
-      <gd name="adj2" fmla="val 5880" />\r
-\r
-      <gd name="adj3" fmla="val 11760" />\r
-\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-\r
-      <gd name="a1" fmla="pin 1000 adj1 36745" />\r
-      <gd name="ma1" fmla="+- 0 0 a1" />\r
-\r
-      <gd name="ma3h" fmla="+/ 73490 ma1 4" />\r
-\r
-      <gd name="ma3w" fmla="*/ 36745 w h" />\r
-\r
-      <gd name="maxAdj3" fmla="min ma3h ma3w" />\r
-      <gd name="a3" fmla="pin 1000 adj3 maxAdj3" />\r
-      <gd name="m4a3" fmla="*/ -4 a3 1" />\r
-\r
-      <gd name="maxAdj2" fmla="+- 73490 m4a3 a1" />\r
-      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
-\r
-      <gd name="dy1" fmla="*/ h a1 200000" />\r
-\r
-      <gd name="yg" fmla="*/ h a2 100000" />\r
-\r
-      <gd name="rad" fmla="*/ h a3 100000" />\r
-\r
-      <gd name="dx1" fmla="*/ w 73490 200000" />\r
-\r
-\r
-      <gd name="y3" fmla="+- vc 0 dy1" />\r
-\r
-      <gd name="y4" fmla="+- vc dy1 0" />\r
-\r
-      <gd name="a" fmla="+- yg rad 0" />\r
-      <gd name="y2" fmla="+- y3 0 a" />\r
-\r
-      <gd name="y1" fmla="+- y2 0 rad" />\r
-\r
-      <gd name="y5" fmla="+- b 0 y1" />\r
-\r
-\r
-      <gd name="x1" fmla="+- hc 0 dx1" />\r
-\r
-      <gd name="x3" fmla="+- hc dx1 0" />\r
-\r
-      <gd name="x2" fmla="+- hc 0 rad" />\r
-\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefY="adj1" minY="1000" maxY="36745">\r
-        <pos x="l" y="y3" />\r
-      </ahXY>\r
-      <ahXY gdRefY="adj2" minY="0" maxY="maxAdj2">\r
-        <pos x="r" y="y2" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj3" minX="1000" maxX="maxAdj3">\r
-        <pos x="x2" y="t" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="x3" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="y5" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="x1" y="vc" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="y1" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="x1" t="y3" r="x3" b="y4" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="hc" y="y1" />\r
-        </moveTo>\r
-        <arcTo hR="rad" wR="rad" stAng="3cd4" swAng="21600000" />\r
-        <close />\r
-        <moveTo>\r
-          <pt x="hc" y="y5" />\r
-        </moveTo>\r
-        <arcTo hR="rad" wR="rad" stAng="cd4" swAng="21600000" />\r
-        <close />\r
-        <moveTo>\r
-          <pt x="x1" y="y3" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y4" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </mathDivide>\r
-  <mathEqual>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 23520" />\r
-\r
-      <gd name="adj2" fmla="val 11760" />\r
-\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a1" fmla="pin 0 adj1 36745" />\r
-\r
-\r
-      <gd name="2a1" fmla="*/ a1 2 1" />\r
-\r
-      <gd name="mAdj2" fmla="+- 100000 0 2a1" />\r
-\r
-      <gd name="a2" fmla="pin 0 adj2 mAdj2" />\r
-      <gd name="dy1" fmla="*/ h a1 100000" />\r
-\r
-      <gd name="dy2" fmla="*/ h a2 200000" />\r
-\r
-      <gd name="dx1" fmla="*/ w 73490 200000" />\r
-\r
-\r
-      <gd name="y2" fmla="+- vc 0 dy2" />\r
-\r
-      <gd name="y3" fmla="+- vc dy2 0" />\r
-\r
-      <gd name="y1" fmla="+- y2 0 dy1" />\r
-\r
-      <gd name="y4" fmla="+- y3 dy1 0" />\r
-\r
-\r
-      <gd name="x1" fmla="+- hc 0 dx1" />\r
-\r
-      <gd name="x2" fmla="+- hc dx1 0" />\r
-\r
-\r
-\r
-      <gd name="yC1" fmla="+/ y1 y2 2" />\r
-\r
-      <gd name="yC2" fmla="+/ y3 y4 2" />\r
-\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefY="adj1" minY="0" maxY="36745">\r
-        <pos x="l" y="y1" />\r
-      </ahXY>\r
-\r
-      <ahXY gdRefY="adj2" minY="0" maxY="mAdj2">\r
-        <pos x="r" y="y2" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="x2" y="yC1" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="x2" y="yC2" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="y4" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="x1" y="yC1" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="x1" y="yC2" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="y1" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="x1" t="y1" r="x2" b="y4" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="x1" y="y1" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y2" />\r
-        </lnTo>\r
-        <close />\r
-        <moveTo>\r
-          <pt x="x1" y="y3" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y4" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </mathEqual>\r
-  <mathMinus>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 23520" />\r
-\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a1" fmla="pin 0 adj1 100000" />\r
-      <gd name="dy1" fmla="*/ h a1 200000" />\r
-\r
-      <gd name="dx1" fmla="*/ w 73490 200000" />\r
-\r
-\r
-      <gd name="y1" fmla="+- vc 0 dy1" />\r
-\r
-      <gd name="y2" fmla="+- vc dy1 0" />\r
-\r
-\r
-      <gd name="x1" fmla="+- hc 0 dx1" />\r
-\r
-      <gd name="x2" fmla="+- hc dx1 0" />\r
-\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefY="adj1" minY="0" maxY="100000">\r
-        <pos x="l" y="y1" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="x2" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="y2" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="x1" y="vc" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="y1" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="x1" t="y1" r="x2" b="y2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="x1" y="y1" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y2" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </mathMinus>\r
-  <mathMultiply>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 23520" />\r
-\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-\r
-\r
-\r
-\r
-\r
-      <gd name="a1" fmla="pin 0 adj1 51965" />\r
-\r
-      <gd name="th" fmla="*/ ss a1 100000" />\r
-\r
-\r
-      <gd name="a" fmla="at2 w h" />\r
-\r
-      <gd name="sa" fmla="sin 1 a" />\r
-      <gd name="ca" fmla="cos 1 a" />\r
-      <gd name="ta" fmla="tan 1 a" />\r
-\r
-\r
-      <gd name="dl" fmla="mod w h 0" />\r
-\r
-      <gd name="rw" fmla="*/ dl 51965 100000" />\r
-\r
-\r
-\r
-      <gd name="lM" fmla="+- dl 0 rw" />\r
-      <gd name="xM" fmla="*/ ca lM 2" />\r
-      <gd name="yM" fmla="*/ sa lM 2" />\r
-\r
-\r
-      <gd name="dxAM" fmla="*/ sa th 2" />\r
-      <gd name="dyAM" fmla="*/ ca th 2" />\r
-      <gd name="xA" fmla="+- xM 0 dxAM" />\r
-      <gd name="yA" fmla="+- yM dyAM 0" />\r
-\r
-\r
-      <gd name="xB" fmla="+- xM dxAM 0" />\r
-      <gd name="yB" fmla="+- yM 0 dyAM" />\r
-\r
-\r
-      <gd name="xBC" fmla="+- hc 0 xB" />\r
-      <gd name="yBC" fmla="*/ xBC ta 1" />\r
-      <gd name="yC" fmla="+- yBC yB 0" />\r
-\r
-\r
-      <gd name="xD" fmla="+- r 0 xB" />\r
-      <gd name="xE" fmla="+- r 0 xA" />\r
-\r
-      <gd name="yFE" fmla="+- vc 0 yA" />\r
-      <gd name="xFE" fmla="*/ yFE 1 ta" />\r
-      <gd name="xF" fmla="+- xE 0 xFE" />\r
-      <gd name="xL" fmla="+- xA xFE 0" />\r
-      <gd name="yG" fmla="+- b 0 yA" />\r
-      <gd name="yH" fmla="+- b 0 yB" />\r
-      <gd name="yI" fmla="+- b 0 yC" />\r
-\r
-\r
-      <gd name="xC2" fmla="+- r 0 xM" />\r
-\r
-      <gd name="yC3" fmla="+- b 0 yM" />\r
-\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefY="adj1" minY="0" maxY="51965">\r
-        <pos x="l" y="th" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="cd2">\r
-        <pos x="xM" y="yM" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="xC2" y="yM" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="xC2" y="yC3" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="xM" y="yC3" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="xA" t="yB" r="xE" b="yH" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="xA" y="yA" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="xB" y="yB" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="hc" y="yC" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xD" y="yB" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xE" y="yA" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xF" y="vc" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xE" y="yG" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xD" y="yH" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="hc" y="yI" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xB" y="yH" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xA" y="yG" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xL" y="vc" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </mathMultiply>\r
-  <mathNotEqual>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 23520" />\r
-\r
-      <gd name="adj2" fmla="val 6600000" />\r
-\r
-      <gd name="adj3" fmla="val 11760" />\r
-\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a1" fmla="pin 0 adj1 50000" />\r
-      <gd name="crAng" fmla="pin 4200000 adj2 6600000" />\r
-\r
-\r
-      <gd name="2a1" fmla="*/ a1 2 1" />\r
-      <gd name="maxAdj3" fmla="+- 100000 0 2a1" />\r
-      <gd name="a3" fmla="pin 0 adj3 maxAdj3" />\r
-\r
-      <gd name="dy1" fmla="*/ h a1 100000" />\r
-\r
-      <gd name="dy2" fmla="*/ h a3 200000" />\r
-\r
-      <gd name="dx1" fmla="*/ w 73490 200000" />\r
-\r
-\r
-      <gd name="x1" fmla="+- hc 0 dx1" />\r
-\r
-      <gd name="x8" fmla="+- hc dx1 0" />\r
-\r
-\r
-\r
-      <gd name="y2" fmla="+- vc 0 dy2" />\r
-\r
-      <gd name="y3" fmla="+- vc dy2 0" />\r
-\r
-      <gd name="y1" fmla="+- y2 0 dy1" />\r
-\r
-      <gd name="y4" fmla="+- y3 dy1 0" />\r
-\r
-\r
-      <gd name="cadj2" fmla="+- crAng 0 cd4" />\r
-      <gd name="xadj2" fmla="tan hd2 cadj2" />\r
-\r
-\r
-\r
-      <gd name="len" fmla="mod xadj2 hd2 0" />\r
-\r
-\r
-\r
-      <gd name="bhw" fmla="*/ len dy1 hd2" />\r
-\r
-      <gd name="bhw2" fmla="*/ bhw 1 2" />\r
-      <gd name="x7" fmla="+- hc xadj2 bhw2" />\r
-\r
-      <gd name="dx67" fmla="*/ xadj2 y1 hd2" />\r
-      <gd name="x6" fmla="+- x7 0 dx67" />\r
-\r
-      <gd name="dx57" fmla="*/ xadj2 y2 hd2" />\r
-      <gd name="x5" fmla="+- x7 0 dx57" />\r
-\r
-      <gd name="dx47" fmla="*/ xadj2 y3 hd2" />\r
-      <gd name="x4" fmla="+- x7 0 dx47" />\r
-\r
-      <gd name="dx37" fmla="*/ xadj2 y4 hd2" />\r
-      <gd name="x3" fmla="+- x7 0 dx37" />\r
-\r
-      <gd name="dx27" fmla="*/ xadj2 2 1" />\r
-      <gd name="x2" fmla="+- x7 0 dx27" />\r
-\r
-\r
-      <gd name="rx7" fmla="+- x7 bhw 0" />\r
-\r
-      <gd name="rx6" fmla="+- x6 bhw 0" />\r
-\r
-      <gd name="rx5" fmla="+- x5 bhw 0" />\r
-\r
-      <gd name="rx4" fmla="+- x4 bhw 0" />\r
-\r
-      <gd name="rx3" fmla="+- x3 bhw 0" />\r
-\r
-      <gd name="rx2" fmla="+- x2 bhw 0" />\r
-\r
-\r
-\r
-      <gd name="dx7" fmla="*/ dy1 hd2 len" />\r
-      <gd name="rxt" fmla="+- x7 dx7 0" />\r
-\r
-      <gd name="lxt" fmla="+- rx7 0 dx7" />\r
-\r
-      <gd name="rx" fmla="?: cadj2 rxt rx7" />\r
-\r
-      <gd name="lx" fmla="?: cadj2 x7 lxt" />\r
-\r
-\r
-      <gd name="dy3" fmla="*/ dy1 xadj2 len" />\r
-      <gd name="dy4" fmla="+- 0 0 dy3" />\r
-      <gd name="ry" fmla="?: cadj2 dy3 t" />\r
-\r
-      <gd name="ly" fmla="?: cadj2 t dy4" />\r
-\r
-\r
-      <gd name="dlx" fmla="+- w 0 rx" />\r
-\r
-      <gd name="drx" fmla="+- w 0 lx" />\r
-\r
-\r
-      <gd name="dly" fmla="+- h 0 ry" />\r
-\r
-      <gd name="dry" fmla="+- h 0 ly" />\r
-\r
-\r
-\r
-      <gd name="xC1" fmla="+/ rx lx 2" />\r
-\r
-      <gd name="xC2" fmla="+/ drx dlx 2" />\r
-\r
-\r
-      <gd name="yC1" fmla="+/ ry ly 2" />\r
-\r
-      <gd name="yC2" fmla="+/ y1 y2 2" />\r
-\r
-      <gd name="yC3" fmla="+/ y3 y4 2" />\r
-\r
-      <gd name="yC4" fmla="+/ dry dly 2" />\r
-\r
-\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefY="adj1" minY="0" maxY="50000">\r
-        <pos x="l" y="y1" />\r
-      </ahXY>\r
-      <ahPolar gdRefAng="adj2" minAng="4200000" maxAng="6600000">\r
-        <pos x="lx" y="t" />\r
-      </ahPolar>\r
-      <ahXY gdRefY="adj3" minY="0" maxY="maxAdj3">\r
-        <pos x="r" y="y2" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="x8" y="yC2" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="x8" y="yC3" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="xC2" y="yC4" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="x1" y="yC2" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="x1" y="yC3" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="xC1" y="yC1" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="x1" t="y1" r="x8" b="y4" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="x1" y="y1" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x6" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="lx" y="ly" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="rx" y="ry" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="rx6" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x8" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x8" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="rx5" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="rx4" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x8" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x8" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="rx3" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="drx" y="dry" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="dlx" y="dly" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x5" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y2" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </mathNotEqual>\r
-  <mathPlus>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 23520" />\r
-\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a1" fmla="pin 0 adj1 73490" />\r
-      <gd name="dx1" fmla="*/ w 73490 200000" />\r
-\r
-      <gd name="dy1" fmla="*/ h 73490 200000" />\r
-\r
-      <gd name="dx2" fmla="*/ ss a1 200000" />\r
-\r
-\r
-      <gd name="x1" fmla="+- hc 0 dx1" />\r
-\r
-      <gd name="x2" fmla="+- hc 0 dx2" />\r
-\r
-      <gd name="x3" fmla="+- hc dx2 0" />\r
-\r
-      <gd name="x4" fmla="+- hc dx1 0" />\r
-\r
-\r
-      <gd name="y1" fmla="+- vc 0 dy1" />\r
-\r
-      <gd name="y2" fmla="+- vc 0 dx2" />\r
-\r
-      <gd name="y3" fmla="+- vc dx2 0" />\r
-\r
-      <gd name="y4" fmla="+- vc dy1 0" />\r
-\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefY="adj1" minY="0" maxY="73490">\r
-        <pos x="l" y="y2" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="x4" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="y4" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="x1" y="vc" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="y1" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="x1" t="y2" r="x4" b="y3" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="x1" y="y2" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y3" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </mathPlus>\r
-  <moon>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj" fmla="val 50000" />\r
-\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a" fmla="pin 0 adj 87500" />\r
-      <gd name="g0" fmla="*/ ss a 100000" />\r
-      <gd name="g0w" fmla="*/ g0 w ss" />\r
-      <gd name="g1" fmla="+- ss 0 g0" />\r
-      <gd name="g2" fmla="*/ g0 g0 g1" />\r
-      <gd name="g3" fmla="*/ ss ss g1" />\r
-      <gd name="g4" fmla="*/ g3 2 1" />\r
-      <gd name="g5" fmla="+- g4 0 g2" />\r
-      <gd name="g6" fmla="+- g5 0 g0" />\r
-      <gd name="g6w" fmla="*/ g6 w ss" />\r
-      <gd name="g7" fmla="*/ g5 1 2" />\r
-      <gd name="g8" fmla="+- g7 0 g0" />\r
-      <gd name="dy1" fmla="*/ g8 hd2 ss" />\r
-\r
-      <gd name="g10h" fmla="+- vc 0 dy1" />\r
-      <gd name="g11h" fmla="+- vc dy1 0" />\r
-      <gd name="g12" fmla="*/ g0 9598 32768" />\r
-      <gd name="g12w" fmla="*/ g12 w ss" />\r
-      <gd name="g13" fmla="+- ss 0 g12" />\r
-      <gd name="q1" fmla="*/ ss ss 1" />\r
-      <gd name="q2" fmla="*/ g13 g13 1" />\r
-      <gd name="q3" fmla="+- q1 0 q2" />\r
-      <gd name="q4" fmla="sqrt q3" />\r
-      <gd name="dy4" fmla="*/ q4 hd2 ss" />\r
-      <gd name="g15h" fmla="+- vc 0 dy4" />\r
-      <gd name="g16h" fmla="+- vc dy4 0" />\r
-      <gd name="g17w" fmla="+- g6w 0 g0w" />\r
-      <gd name="g18w" fmla="*/ g17w 1 2" />\r
-\r
-\r
-      <gd name="dx2p" fmla="+- g0w g18w w" />\r
-      <gd name="dx2" fmla="*/ dx2p -1 1" />\r
-\r
-      <gd name="dy2" fmla="*/ hd2 -1 1" />\r
-\r
-      <gd name="stAng1" fmla="at2 dx2 dy2" />\r
-      <gd name="enAngp1" fmla="at2 dx2 hd2" />\r
-      <gd name="enAng1" fmla="+- enAngp1 0 21600000" />\r
-      <gd name="swAng1" fmla="+- enAng1 0 stAng1" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj" minX="0" maxX="87500">\r
-        <pos x="g0w" y="vc" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="r" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="r" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="g0w" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="g12w" t="g15h" r="g0w" b="g16h" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="r" y="b" />\r
-        </moveTo>\r
-        <arcTo wR="w" hR="hd2" stAng="cd4" swAng="cd2" />\r
-        <arcTo wR="g18w" hR="dy1" stAng="stAng1" swAng="swAng1" />\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </moon>\r
-  <nonIsoscelesTrapezoid>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 25000" />\r
-\r
-      <gd name="adj2" fmla="val 25000" />\r
-\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="maxAdj" fmla="*/ 50000 w ss" />\r
-\r
-      <gd name="a1" fmla="pin 0 adj1 maxAdj" />\r
-      <gd name="a2" fmla="pin 0 adj2 maxAdj" />\r
-      <gd name="x1" fmla="*/ ss a1 200000" />\r
-\r
-      <gd name="x2" fmla="*/ ss a1 100000" />\r
-\r
-      <gd name="dx3" fmla="*/ ss a2 100000" />\r
-\r
-      <gd name="x3" fmla="+- r 0 dx3" />\r
-      <gd name="x4" fmla="+/ r x3 2" />\r
-      <gd name="il" fmla="*/ wd3 a1 maxAdj" />\r
-\r
-      <gd name="adjm" fmla="max a1 a2" />\r
-      <gd name="it" fmla="*/ hd3 adjm maxAdj" />\r
-\r
-      <gd name="irt" fmla="*/ wd3 a2 maxAdj" />\r
-      <gd name="ir" fmla="+- r 0 irt" />\r
-\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj1" minX="0" maxX="maxAdj">\r
-        <pos x="x2" y="t" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj2" minX="0" maxX="maxAdj">\r
-        <pos x="x3" y="t" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="x4" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="x1" y="vc" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-\r
-    <rect l="il" t="it" r="ir" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="b" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x2" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </nonIsoscelesTrapezoid>\r
-  <noSmoking>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj" fmla="val 18750" />\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a" fmla="pin 0 adj 50000" />\r
-      <gd name="dr" fmla="*/ ss a 100000" />\r
-      <gd name="iwd2" fmla="+- wd2 0 dr" />\r
-      <gd name="ihd2" fmla="+- hd2 0 dr" />\r
-      <gd name="ang" fmla="at2 w h" />\r
-      <gd name="ct" fmla="cos ihd2 ang" />\r
-      <gd name="st" fmla="sin iwd2 ang" />\r
-      <gd name="m" fmla="mod ct st 0" />\r
-      <gd name="n" fmla="*/ iwd2 ihd2 m" />\r
-      <gd name="drd2" fmla="*/ dr 1 2" />\r
-      <gd name="dang" fmla="at2 n drd2" />\r
-      <gd name="2dang" fmla="*/ dang 2 1" />\r
-      <gd name="swAng" fmla="+- -10800000 2dang 0" />\r
-      <gd name="t3" fmla="at2 w h" />\r
-      <gd name="stAng1" fmla="+- t3 0 dang" />\r
-      <gd name="stAng2" fmla="+- stAng1 0 cd2" />\r
-      <gd name="ct1" fmla="cos ihd2 stAng1" />\r
-      <gd name="st1" fmla="sin iwd2 stAng1" />\r
-      <gd name="m1" fmla="mod ct1 st1 0" />\r
-      <gd name="n1" fmla="*/ iwd2 ihd2 m1" />\r
-      <gd name="dx1" fmla="cos n1 stAng1" />\r
-      <gd name="dy1" fmla="sin n1 stAng1" />\r
-      <gd name="x1" fmla="+- hc dx1 0" />\r
-      <gd name="y1" fmla="+- vc dy1 0" />\r
-      <gd name="x2" fmla="+- hc 0 dx1" />\r
-      <gd name="y2" fmla="+- vc 0 dy1" />\r
-      <gd name="idx" fmla="cos wd2 2700000" />\r
-      <gd name="idy" fmla="sin hd2 2700000" />\r
-      <gd name="il" fmla="+- hc 0 idx" />\r
-      <gd name="ir" fmla="+- hc idx 0" />\r
-      <gd name="it" fmla="+- vc 0 idy" />\r
-      <gd name="ib" fmla="+- vc idy 0" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahPolar gdRefR="adj" minR="0" maxR="50000">\r
-        <pos x="dr" y="vc" />\r
-      </ahPolar>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="il" y="it" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="il" y="ib" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="ir" y="ib" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="ir" y="it" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="vc" />\r
-        </moveTo>\r
-        <arcTo wR="wd2" hR="hd2" stAng="cd2" swAng="cd4" />\r
-        <arcTo wR="wd2" hR="hd2" stAng="3cd4" swAng="cd4" />\r
-        <arcTo wR="wd2" hR="hd2" stAng="0" swAng="cd4" />\r
-        <arcTo wR="wd2" hR="hd2" stAng="cd4" swAng="cd4" />\r
-        <close />\r
-        <moveTo>\r
-          <pt x="x1" y="y1" />\r
-        </moveTo>\r
-        <arcTo wR="iwd2" hR="ihd2" stAng="stAng1" swAng="swAng" />\r
-        <close />\r
-        <moveTo>\r
-          <pt x="x2" y="y2" />\r
-        </moveTo>\r
-        <arcTo wR="iwd2" hR="ihd2" stAng="stAng2" swAng="swAng" />\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </noSmoking>\r
-  <notchedRightArrow>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 50000" />\r
-\r
-      <gd name="adj2" fmla="val 50000" />\r
-\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="maxAdj2" fmla="*/ 100000 w ss" />\r
-\r
-      <gd name="a1" fmla="pin 0 adj1 100000" />\r
-      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
-      <gd name="dx2" fmla="*/ ss a2 100000" />\r
-      <gd name="x2" fmla="+- r 0 dx2" />\r
-      <gd name="dy1" fmla="*/ h a1 200000" />\r
-      <gd name="y1" fmla="+- vc 0 dy1" />\r
-      <gd name="y2" fmla="+- vc dy1 0" />\r
-      <gd name="x1" fmla="*/ dy1 dx2 hd2" />\r
-      <gd name="x3" fmla="+- r 0 x1" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefY="adj1" minY="0" maxY="100000">\r
-        <pos x="r" y="y1" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj2" minX="0" maxX="maxAdj2">\r
-        <pos x="x2" y="t" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="x2" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="x1" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="x2" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="x1" t="y1" r="x3" b="y2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="y1" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="vc" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="vc" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </notchedRightArrow>\r
-  <octagon>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj" fmla="val 29289" />\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a" fmla="pin 0 adj 50000" />\r
-      <gd name="x1" fmla="*/ ss a 100000" />\r
-      <gd name="x2" fmla="+- r 0 x1" />\r
-      <gd name="y2" fmla="+- b 0 x1" />\r
-      <gd name="il" fmla="*/ x1 1 2" />\r
-      <gd name="ir" fmla="+- r 0 il" />\r
-      <gd name="ib" fmla="+- b 0 il" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj" minX="0" maxX="50000">\r
-        <pos x="x1" y="t" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="r" y="x1" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="y2" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="x2" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="x1" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="y2" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="x1" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="x1" y="t" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="x2" y="t" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="il" t="il" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="x1" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x1" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="x1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="y2" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </octagon>\r
-  <parallelogram>\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj" fmla="val 25000" />\r
-    </avLst>\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="maxAdj" fmla="*/ 100000 w ss" />\r
-      <gd name="a" fmla="pin 0 adj maxAdj" />\r
-      <gd name="x1" fmla="*/ ss a 200000" />\r
-      <gd name="x2" fmla="*/ ss a 100000" />\r
-      <gd name="x6" fmla="+- r 0 x1" />\r
-      <gd name="x5" fmla="+- r 0 x2" />\r
-      <gd name="x3" fmla="*/ x5 1 2" />\r
-      <gd name="x4" fmla="+- r 0 x3" />\r
-      <gd name="il" fmla="*/ wd2 a maxAdj" />\r
-      <gd name="q1" fmla="*/ 5 a maxAdj" />\r
-      <gd name="q2" fmla="+/ 1 q1 12" />\r
-      <gd name="il" fmla="*/ q2 w 1" />\r
-      <gd name="it" fmla="*/ q2 h 1" />\r
-      <gd name="ir" fmla="+- r 0 il" />\r
-      <gd name="ib" fmla="+- b 0 it" />\r
-      <gd name="q3" fmla="*/ h hc x2" />\r
-      <gd name="y1" fmla="pin 0 q3 h" />\r
-      <gd name="y2" fmla="+- b 0 y1" />\r
-    </gdLst>\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj" minX="0" maxX="maxAdj">\r
-        <pos x="x2" y="t" />\r
-      </ahXY>\r
-    </ahLst>\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="y2" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="x4" y="t" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="x6" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="x3" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="y1" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="x1" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="b" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x2" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x5" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-  </parallelogram>\r
-  <pentagon>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="hf" fmla="val 105146" />\r
-      <gd name="vf" fmla="val 110557" />\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="swd2" fmla="*/ wd2 hf 100000" />\r
-      <gd name="shd2" fmla="*/ hd2 vf 100000" />\r
-      <gd name="svc" fmla="*/ vc  vf 100000" />\r
-      <gd name="dx1" fmla="cos swd2 1080000" />\r
-      <gd name="dx2" fmla="cos swd2 18360000" />\r
-      <gd name="dy1" fmla="sin shd2 1080000" />\r
-      <gd name="dy2" fmla="sin shd2 18360000" />\r
-      <gd name="x1" fmla="+- hc 0 dx1" />\r
-      <gd name="x2" fmla="+- hc 0 dx2" />\r
-      <gd name="x3" fmla="+- hc dx2 0" />\r
-      <gd name="x4" fmla="+- hc dx1 0" />\r
-      <gd name="y1" fmla="+- svc 0 dy1" />\r
-      <gd name="y2" fmla="+- svc 0 dy2" />\r
-      <gd name="it" fmla="*/ y1 dx2 dx1" />\r
-    </gdLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="x1" y="y1" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="x2" y="y2" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="x3" y="y2" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="x4" y="y1" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="x2" t="it" r="x3" b="y2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="x1" y="y1" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="hc" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y2" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </pentagon>\r
-  <pie>\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 0" />\r
-      <gd name="adj2" fmla="val 16200000" />\r
-    </avLst>\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="stAng" fmla="pin 0 adj1 21599999" />\r
-      <gd name="enAng" fmla="pin 0 adj2 21599999" />\r
-      <gd name="sw1" fmla="+- enAng 0 stAng" />\r
-      <gd name="sw2" fmla="+- sw1 21600000 0" />\r
-      <gd name="swAng" fmla="?: sw1 sw1 sw2" />\r
-      <gd name="wt1" fmla="sin wd2 stAng" />\r
-      <gd name="ht1" fmla="cos hd2 stAng" />\r
-      <gd name="dx1" fmla="cat2 wd2 ht1 wt1" />\r
-      <gd name="dy1" fmla="sat2 hd2 ht1 wt1" />\r
-      <gd name="x1" fmla="+- hc dx1 0" />\r
-      <gd name="y1" fmla="+- vc dy1 0" />\r
-      <gd name="wt2" fmla="sin wd2 enAng" />\r
-      <gd name="ht2" fmla="cos hd2 enAng" />\r
-      <gd name="dx2" fmla="cat2 wd2 ht2 wt2" />\r
-      <gd name="dy2" fmla="sat2 hd2 ht2 wt2" />\r
-      <gd name="x2" fmla="+- hc dx2 0" />\r
-      <gd name="y2" fmla="+- vc dy2 0" />\r
-      <gd name="idx" fmla="cos wd2 2700000" />\r
-      <gd name="idy" fmla="sin hd2 2700000" />\r
-      <gd name="il" fmla="+- hc 0 idx" />\r
-      <gd name="ir" fmla="+- hc idx 0" />\r
-      <gd name="it" fmla="+- vc 0 idy" />\r
-      <gd name="ib" fmla="+- vc idy 0" />\r
-    </gdLst>\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahPolar gdRefAng="adj1" minAng="0" maxAng="21599999">\r
-        <pos x="x1" y="y1" />\r
-      </ahPolar>\r
-      <ahPolar gdRefAng="adj2" minAng="0" maxAng="21599999">\r
-        <pos x="x2" y="y2" />\r
-      </ahPolar>\r
-    </ahLst>\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-    </cxnLst>\r
-    <rect l="il" t="ir" r="it" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="x1" y="y1" />\r
-        </moveTo>\r
-        <arcTo wR="wd2" hR="hd2" stAng="stAng" swAng="swAng" />\r
-        <lnTo>\r
-          <pt x="hc" y="vc" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-  </pie>\r
-  <pieWedge>\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="g1" fmla="cos w 13500000" />\r
-      <gd name="g2" fmla="sin h 13500000" />\r
-      <gd name="x1" fmla="+- r g1 0" />\r
-      <gd name="y1" fmla="+- b g2 0" />\r
-    </gdLst>\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-    </cxnLst>\r
-    <rect l="x1" t="y1" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="b" />\r
-        </moveTo>\r
-        <arcTo wR="w" hR="h" stAng="cd2" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-  </pieWedge>\r
-  <plaque>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj" fmla="val 16667" />\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a" fmla="pin 0 adj 50000" />\r
-      <gd name="x1" fmla="*/ ss a 100000" />\r
-      <gd name="x2" fmla="+- r 0 x1" />\r
-\r
-      <gd name="y2" fmla="+- b 0 x1" />\r
-      <gd name="il" fmla="*/ x1 70711 100000" />\r
-\r
-      <gd name="ir" fmla="+- r 0 il" />\r
-      <gd name="ib" fmla="+- b 0 il" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj" minX="0" maxX="50000">\r
-        <pos x="x1" y="t" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="il" t="il" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="x1" />\r
-        </moveTo>\r
-        <arcTo wR="x1" hR="x1" stAng="cd4" swAng="-5400000" />\r
-        <lnTo>\r
-          <pt x="x2" y="t" />\r
-        </lnTo>\r
-        <arcTo wR="x1" hR="x1" stAng="cd2" swAng="-5400000" />\r
-        <lnTo>\r
-          <pt x="r" y="y2" />\r
-        </lnTo>\r
-        <arcTo wR="x1" hR="x1" stAng="3cd4" swAng="-5400000" />\r
-        <lnTo>\r
-          <pt x="x1" y="b" />\r
-        </lnTo>\r
-        <arcTo wR="x1" hR="x1" stAng="0" swAng="-5400000" />\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </plaque>\r
-  <plaqueTabs>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="md" fmla="mod w h 0" />\r
-      <gd name="dx" fmla="*/ 1 md 20" />\r
-\r
-      <gd name="y1" fmla="+- 0 b dx" />\r
-\r
-      <gd name="x1" fmla="+- 0 r dx" />\r
-\r
-    </gdLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="dx" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="y1" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="b" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="dx" y="t" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="x1" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="dx" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="x1" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="t" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="dx" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="y1" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="b" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="dx" t="dx" r="x1" b="y1" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="dx" y="t" />\r
-        </lnTo>\r
-        <arcTo wR="dx" hR="dx" stAng="0" swAng="cd4" />\r
-        <close />\r
-      </path>\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="y1" />\r
-        </moveTo>\r
-        <arcTo wR="dx" hR="dx" stAng="3cd4" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path>\r
-        <moveTo>\r
-          <pt x="r" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="r" y="dx" />\r
-        </lnTo>\r
-        <arcTo wR="dx" hR="dx" stAng="cd4" swAng="cd4" />\r
-        <close />\r
-      </path>\r
-      <path>\r
-        <moveTo>\r
-          <pt x="x1" y="b" />\r
-        </moveTo>\r
-        <arcTo wR="dx" hR="dx" stAng="cd2" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </plaqueTabs>\r
-  <plus>\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj" fmla="val 25000" />\r
-    </avLst>\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a" fmla="pin 0 adj 50000" />\r
-      <gd name="x1" fmla="*/ ss a 100000" />\r
-      <gd name="x2" fmla="+- r 0 x1" />\r
-      <gd name="y2" fmla="+- b 0 x1" />\r
-      <gd name="d" fmla="+- w 0 h" />\r
-      <gd name="il" fmla="?: d l x1" />\r
-      <gd name="ir" fmla="?: d r x2" />\r
-      <gd name="it" fmla="?: d x1 t" />\r
-      <gd name="ib" fmla="?: d y2 b" />\r
-    </gdLst>\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj" minX="0" maxX="50000">\r
-        <pos x="x1" y="t" />\r
-      </ahXY>\r
-    </ahLst>\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="x1" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x1" y="x1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="x1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="x1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="y2" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-  </plus>\r
-  <quadArrow>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 22500" />\r
-\r
-      <gd name="adj2" fmla="val 22500" />\r
-\r
-      <gd name="adj3" fmla="val 22500" />\r
-\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a2" fmla="pin 0 adj2 50000" />\r
-      <gd name="maxAdj1" fmla="*/ a2 2 1" />\r
-      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
-      <gd name="q1" fmla="+- 100000 0 maxAdj1" />\r
-      <gd name="maxAdj3" fmla="*/ q1 1 2" />\r
-      <gd name="a3" fmla="pin 0 adj3 maxAdj3" />\r
-      <gd name="x1" fmla="*/ ss a3 100000" />\r
-      <gd name="dx2" fmla="*/ ss a2 100000" />\r
-\r
-      <gd name="x2" fmla="+- hc 0 dx2" />\r
-      <gd name="x5" fmla="+- hc dx2 0" />\r
-      <gd name="dx3" fmla="*/ ss a1 200000" />\r
-\r
-      <gd name="x3" fmla="+- hc 0 dx3" />\r
-      <gd name="x4" fmla="+- hc dx3 0" />\r
-      <gd name="x6" fmla="+- r 0 x1" />\r
-\r
-      <gd name="y2" fmla="+- vc 0 dx2" />\r
-      <gd name="y5" fmla="+- vc dx2 0" />\r
-      <gd name="y3" fmla="+- vc 0 dx3" />\r
-      <gd name="y4" fmla="+- vc dx3 0" />\r
-      <gd name="y6" fmla="+- b 0 x1" />\r
-      <gd name="il" fmla="*/ dx3 x1 dx2" />\r
-      <gd name="ir" fmla="+- r 0 il" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj1" minX="0" maxX="maxAdj1">\r
-        <pos x="x3" y="x1" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj2" minX="0" maxX="50000">\r
-        <pos x="x2" y="t" />\r
-      </ahXY>\r
-      <ahXY gdRefY="adj3" minY="0" maxY="maxAdj3">\r
-        <pos x="r" y="x1" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="il" t="y3" r="ir" b="y4" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="vc" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="x1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="x1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="hc" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x5" y="x1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="x1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x6" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x6" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="vc" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x6" y="y5" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x6" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y6" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x5" y="y6" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="hc" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y6" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y6" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y5" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </quadArrow>\r
-  <quadArrowCallout>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 18515" />\r
-\r
-      <gd name="adj2" fmla="val 18515" />\r
-\r
-      <gd name="adj3" fmla="val 18515" />\r
-\r
-      <gd name="adj4" fmla="val 48123" />\r
-\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a2" fmla="pin 0 adj2 50000" />\r
-      <gd name="maxAdj1" fmla="*/ a2 2 1" />\r
-\r
-      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
-      <gd name="maxAdj3" fmla="+- 50000 0 a2" />\r
-      <gd name="a3" fmla="pin 0 adj3 maxAdj3" />\r
-      <gd name="q2" fmla="*/ a3 2 1" />\r
-\r
-      <gd name="maxAdj4" fmla="+- 100000 0 q2" />\r
-\r
-      <gd name="a4" fmla="pin a1 adj4 maxAdj4" />\r
-      <gd name="dx2" fmla="*/ ss a2 100000" />\r
-\r
-      <gd name="dx3" fmla="*/ ss a1 200000" />\r
-\r
-      <gd name="ah" fmla="*/ ss a3 100000" />\r
-\r
-      <gd name="dx1" fmla="*/ w a4 200000" />\r
-\r
-      <gd name="dy1" fmla="*/ h a4 200000" />\r
-\r
-\r
-      <gd name="x8" fmla="+- r 0 ah" />\r
-      <gd name="x2" fmla="+- hc 0 dx1" />\r
-      <gd name="x7" fmla="+- hc dx1 0" />\r
-      <gd name="x3" fmla="+- hc 0 dx2" />\r
-      <gd name="x6" fmla="+- hc dx2 0" />\r
-      <gd name="x4" fmla="+- hc 0 dx3" />\r
-      <gd name="x5" fmla="+- hc dx3 0" />\r
-\r
-      <gd name="y8" fmla="+- b 0 ah" />\r
-      <gd name="y2" fmla="+- vc 0 dy1" />\r
-      <gd name="y7" fmla="+- vc dy1 0" />\r
-      <gd name="y3" fmla="+- vc 0 dx2" />\r
-      <gd name="y6" fmla="+- vc dx2 0" />\r
-      <gd name="y4" fmla="+- vc 0 dx3" />\r
-      <gd name="y5" fmla="+- vc dx3 0" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj1" minX="0" maxX="maxAdj1">\r
-        <pos x="x4" y="ah" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj2" minX="0" maxX="50000">\r
-        <pos x="x3" y="t" />\r
-      </ahXY>\r
-      <ahXY gdRefY="adj3" minY="0" maxY="maxAdj3">\r
-        <pos x="r" y="ah" />\r
-      </ahXY>\r
-      <ahXY gdRefY="adj4" minY="a1" maxY="maxAdj4">\r
-        <pos x="l" y="y2" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="x2" t="y2" r="x7" b="y7" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="vc" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="ah" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="ah" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="ah" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="ah" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="hc" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x6" y="ah" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x5" y="ah" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x5" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x7" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x7" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x8" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x8" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="vc" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x8" y="y6" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x8" y="y5" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x7" y="y5" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x7" y="y7" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x5" y="y7" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x5" y="y8" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x6" y="y8" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="hc" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y8" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y8" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y7" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y7" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y5" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="ah" y="y5" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="ah" y="y6" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </quadArrowCallout>\r
-  <rect>\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="r" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-  </rect>\r
-  <ribbon>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 16667" />\r
-\r
-      <gd name="adj2" fmla="val 50000" />\r
-\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a1" fmla="pin 0 adj1 33333" />\r
-      <gd name="a2" fmla="pin 25000 adj2 75000" />\r
-\r
-\r
-      <gd name="x10" fmla="+- r 0 wd8" />\r
-\r
-      <gd name="dx2" fmla="*/ w a2 200000" />\r
-\r
-      <gd name="x2" fmla="+- hc 0 dx2" />\r
-\r
-      <gd name="x9" fmla="+- hc dx2 0" />\r
-\r
-      <gd name="x3" fmla="+- x2 wd32 0" />\r
-      <gd name="x8" fmla="+- x9 0 wd32" />\r
-      <gd name="x5" fmla="+- x2 wd8 0" />\r
-\r
-      <gd name="x6" fmla="+- x9 0 wd8" />\r
-\r
-      <gd name="x4" fmla="+- x5 0 wd32" />\r
-      <gd name="x7" fmla="+- x6 wd32 0" />\r
-      <gd name="y1" fmla="*/ h a1 200000" />\r
-\r
-      <gd name="y2" fmla="*/ h a1 100000" />\r
-\r
-      <gd name="y4" fmla="+- b 0 y2" />\r
-\r
-      <gd name="y3" fmla="*/ y4 1 2" />\r
-\r
-      <gd name="hR" fmla="*/ h a1 400000" />\r
-\r
-      <gd name="y5" fmla="+- b 0 hR" />\r
-      <gd name="y6" fmla="+- y2 0 hR" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefY="adj1" minY="0" maxY="33333">\r
-        <pos x="hc" y="y2" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj2" minX="25000" maxX="75000">\r
-        <pos x="x2" y="t" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="y2" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="wd8" y="y3" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="x10" y="y3" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="x2" t="y2" r="x9" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path stroke="false" extrusionOk="false">\r
-\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x4" y="t" />\r
-        </lnTo>\r
-        <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="cd2" />\r
-        <lnTo>\r
-          <pt x="x3" y="y1" />\r
-        </lnTo>\r
-        <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="-10800000" />\r
-        <lnTo>\r
-          <pt x="x8" y="y2" />\r
-        </lnTo>\r
-        <arcTo wR="wd32" hR="hR" stAng="cd4" swAng="-10800000" />\r
-        <lnTo>\r
-          <pt x="x7" y="y1" />\r
-        </lnTo>\r
-        <arcTo wR="wd32" hR="hR" stAng="cd4" swAng="cd2" />\r
-        <lnTo>\r
-          <pt x="r" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x10" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x9" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x9" y="y5" />\r
-        </lnTo>\r
-        <arcTo wR="wd32" hR="hR" stAng="0" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="x3" y="b" />\r
-        </lnTo>\r
-        <arcTo wR="wd32" hR="hR" stAng="cd4" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="x2" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="wd8" y="y3" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path stroke="false" fill="darkenLess" extrusionOk="false">\r
-\r
-        <moveTo>\r
-          <pt x="x5" y="hR" />\r
-        </moveTo>\r
-        <arcTo wR="wd32" hR="hR" stAng="0" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="x3" y="y1" />\r
-        </lnTo>\r
-        <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="-10800000" />\r
-        <lnTo>\r
-          <pt x="x5" y="y2" />\r
-        </lnTo>\r
-        <close />\r
-        <moveTo>\r
-          <pt x="x6" y="hR" />\r
-        </moveTo>\r
-        <arcTo wR="wd32" hR="hR" stAng="cd2" swAng="-5400000" />\r
-        <lnTo>\r
-          <pt x="x8" y="y1" />\r
-        </lnTo>\r
-        <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="cd2" />\r
-        <lnTo>\r
-          <pt x="x6" y="y2" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path fill="none" extrusionOk="false">\r
-\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x4" y="t" />\r
-        </lnTo>\r
-        <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="cd2" />\r
-        <lnTo>\r
-          <pt x="x3" y="y1" />\r
-        </lnTo>\r
-        <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="-10800000" />\r
-        <lnTo>\r
-          <pt x="x8" y="y2" />\r
-        </lnTo>\r
-        <arcTo wR="wd32" hR="hR" stAng="cd4" swAng="-10800000" />\r
-        <lnTo>\r
-          <pt x="x7" y="y1" />\r
-        </lnTo>\r
-        <arcTo wR="wd32" hR="hR" stAng="cd4" swAng="cd2" />\r
-        <lnTo>\r
-          <pt x="r" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x10" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x9" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x9" y="y5" />\r
-        </lnTo>\r
-        <arcTo wR="wd32" hR="hR" stAng="0" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="x3" y="b" />\r
-        </lnTo>\r
-        <arcTo wR="wd32" hR="hR" stAng="cd4" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="x2" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="wd8" y="y3" />\r
-        </lnTo>\r
-        <close />\r
-        <moveTo>\r
-          <pt x="x5" y="hR" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x5" y="y2" />\r
-        </lnTo>\r
-        <moveTo>\r
-          <pt x="x6" y="y2" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x6" y="hR" />\r
-        </lnTo>\r
-        <moveTo>\r
-          <pt x="x2" y="y4" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y6" />\r
-        </lnTo>\r
-        <moveTo>\r
-          <pt x="x9" y="y6" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x9" y="y4" />\r
-        </lnTo>\r
-      </path>\r
-    </pathLst>\r
-\r
-  </ribbon>\r
-  <ribbon2>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 16667" />\r
-\r
-      <gd name="adj2" fmla="val 50000" />\r
-\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a1" fmla="pin 0 adj1 33333" />\r
-      <gd name="a2" fmla="pin 25000 adj2 75000" />\r
-\r
-\r
-      <gd name="x10" fmla="+- r 0 wd8" />\r
-\r
-      <gd name="dx2" fmla="*/ w a2 200000" />\r
-\r
-      <gd name="x2" fmla="+- hc 0 dx2" />\r
-\r
-      <gd name="x9" fmla="+- hc dx2 0" />\r
-\r
-      <gd name="x3" fmla="+- x2 wd32 0" />\r
-      <gd name="x8" fmla="+- x9 0 wd32" />\r
-      <gd name="x5" fmla="+- x2 wd8 0" />\r
-\r
-      <gd name="x6" fmla="+- x9 0 wd8" />\r
-\r
-      <gd name="x4" fmla="+- x5 0 wd32" />\r
-      <gd name="x7" fmla="+- x6 wd32 0" />\r
-      <gd name="dy1" fmla="*/ h a1 200000" />\r
-\r
-      <gd name="y1" fmla="+- b 0 dy1" />\r
-      <gd name="dy2" fmla="*/ h a1 100000" />\r
-\r
-      <gd name="y2" fmla="+- b 0 dy2" />\r
-      <gd name="y4" fmla="+- t dy2 0" />\r
-\r
-      <gd name="y3" fmla="+/ y4 b 2" />\r
-\r
-      <gd name="hR" fmla="*/ h a1 400000" />\r
-\r
-\r
-      <gd name="y6" fmla="+- b 0 hR" />\r
-      <gd name="y7" fmla="+- y1 0 hR" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefY="adj1" minY="0" maxY="33333">\r
-        <pos x="hc" y="y2" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj2" minX="25000" maxX="75000">\r
-        <pos x="x2" y="b" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="wd8" y="y3" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="y2" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="x10" y="y3" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="x2" t="t" r="x9" b="y2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path stroke="false" extrusionOk="false">\r
-\r
-        <moveTo>\r
-          <pt x="l" y="b" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x4" y="b" />\r
-        </lnTo>\r
-        <arcTo wR="wd32" hR="hR" stAng="cd4" swAng="-10800000" />\r
-        <lnTo>\r
-          <pt x="x3" y="y1" />\r
-        </lnTo>\r
-        <arcTo wR="wd32" hR="hR" stAng="cd4" swAng="cd2" />\r
-        <lnTo>\r
-          <pt x="x8" y="y2" />\r
-        </lnTo>\r
-        <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="cd2" />\r
-        <lnTo>\r
-          <pt x="x7" y="y1" />\r
-        </lnTo>\r
-        <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="-10800000" />\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x10" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x9" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x9" y="hR" />\r
-        </lnTo>\r
-        <arcTo wR="wd32" hR="hR" stAng="0" swAng="-5400000" />\r
-        <lnTo>\r
-          <pt x="x3" y="t" />\r
-        </lnTo>\r
-        <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="-5400000" />\r
-        <lnTo>\r
-          <pt x="x2" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="wd8" y="y3" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path stroke="false" fill="darkenLess" extrusionOk="false">\r
-\r
-        <moveTo>\r
-          <pt x="x5" y="y6" />\r
-        </moveTo>\r
-        <arcTo wR="wd32" hR="hR" stAng="0" swAng="-5400000" />\r
-        <lnTo>\r
-          <pt x="x3" y="y1" />\r
-        </lnTo>\r
-        <arcTo wR="wd32" hR="hR" stAng="cd4" swAng="cd2" />\r
-        <lnTo>\r
-          <pt x="x5" y="y2" />\r
-        </lnTo>\r
-        <close />\r
-        <moveTo>\r
-          <pt x="x6" y="y6" />\r
-        </moveTo>\r
-        <arcTo wR="wd32" hR="hR" stAng="cd2" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="x8" y="y1" />\r
-        </lnTo>\r
-        <arcTo wR="wd32" hR="hR" stAng="cd4" swAng="-10800000" />\r
-        <lnTo>\r
-          <pt x="x6" y="y2" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path fill="none" extrusionOk="false">\r
-\r
-        <moveTo>\r
-          <pt x="l" y="b" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="wd8" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="hR" />\r
-        </lnTo>\r
-        <arcTo wR="wd32" hR="hR" stAng="cd2" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="x8" y="t" />\r
-        </lnTo>\r
-        <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="x9" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x9" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x10" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x7" y="b" />\r
-        </lnTo>\r
-        <arcTo wR="wd32" hR="hR" stAng="cd4" swAng="cd2" />\r
-        <lnTo>\r
-          <pt x="x8" y="y1" />\r
-        </lnTo>\r
-        <arcTo wR="wd32" hR="hR" stAng="cd4" swAng="-10800000" />\r
-        <lnTo>\r
-          <pt x="x3" y="y2" />\r
-        </lnTo>\r
-        <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="-10800000" />\r
-        <lnTo>\r
-          <pt x="x4" y="y1" />\r
-        </lnTo>\r
-        <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="cd2" />\r
-        <close />\r
-        <moveTo>\r
-          <pt x="x5" y="y2" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x5" y="y6" />\r
-        </lnTo>\r
-        <moveTo>\r
-          <pt x="x6" y="y6" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x6" y="y2" />\r
-        </lnTo>\r
-        <moveTo>\r
-          <pt x="x2" y="y7" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y4" />\r
-        </lnTo>\r
-        <moveTo>\r
-          <pt x="x9" y="y4" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x9" y="y7" />\r
-        </lnTo>\r
-      </path>\r
-    </pathLst>\r
-\r
-  </ribbon2>\r
-  <rightArrow>\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 50000" />\r
-      <gd name="adj2" fmla="val 50000" />\r
-    </avLst>\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="maxAdj2" fmla="*/ 100000 w ss" />\r
-      <gd name="a1" fmla="pin 0 adj1 100000" />\r
-      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
-      <gd name="dx1" fmla="*/ ss a2 100000" />\r
-      <gd name="x1" fmla="+- r 0 dx1" />\r
-      <gd name="dy1" fmla="*/ h a1 200000" />\r
-      <gd name="y1" fmla="+- vc 0 dy1" />\r
-      <gd name="y2" fmla="+- vc dy1 0" />\r
-      <gd name="dx2" fmla="*/ y1 dx1 hd2" />\r
-      <gd name="x2" fmla="+- x1 dx2 0" />\r
-    </gdLst>\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefY="adj1" minY="0" maxY="100000">\r
-        <pos x="l" y="y1" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj2" minX="0" maxX="maxAdj2">\r
-        <pos x="x1" y="t" />\r
-      </ahXY>\r
-    </ahLst>\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="x1" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="x1" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-    <rect l="l" t="y1" r="x2" b="y2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="y1" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="vc" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="y2" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-  </rightArrow>\r
-  <rightArrowCallout>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 25000" />\r
-\r
-      <gd name="adj2" fmla="val 25000" />\r
-\r
-      <gd name="adj3" fmla="val 25000" />\r
-\r
-      <gd name="adj4" fmla="val 64977" />\r
-\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="maxAdj2" fmla="*/ 50000 h ss" />\r
-\r
-      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
-      <gd name="maxAdj1" fmla="*/ a2 2 1" />\r
-\r
-      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
-      <gd name="maxAdj3" fmla="*/ 100000 w ss" />\r
-\r
-      <gd name="a3" fmla="pin 0 adj3 maxAdj3" />\r
-      <gd name="q2" fmla="*/ a3 ss w" />\r
-\r
-      <gd name="maxAdj4" fmla="+- 100000 0 q2" />\r
-\r
-      <gd name="a4" fmla="pin 0 adj4 maxAdj4" />\r
-      <gd name="dy1" fmla="*/ ss a2 100000" />\r
-\r
-      <gd name="dy2" fmla="*/ ss a1 200000" />\r
-\r
-      <gd name="y1" fmla="+- vc 0 dy1" />\r
-      <gd name="y2" fmla="+- vc 0 dy2" />\r
-      <gd name="y3" fmla="+- vc dy2 0" />\r
-      <gd name="y4" fmla="+- vc dy1 0" />\r
-      <gd name="dx3" fmla="*/ ss a3 100000" />\r
-\r
-      <gd name="x3" fmla="+- r 0 dx3" />\r
-      <gd name="x2" fmla="*/ w a4 100000" />\r
-\r
-      <gd name="x1" fmla="*/ x2 1 2" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefY="adj1" minY="0" maxY="maxAdj1">\r
-        <pos x="x3" y="y2" />\r
-      </ahXY>\r
-      <ahXY gdRefY="adj2" minY="0" maxY="maxAdj2">\r
-        <pos x="r" y="y1" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj3" minX="0" maxX="maxAdj3">\r
-        <pos x="x3" y="t" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj4" minX="0" maxX="maxAdj4">\r
-        <pos x="x2" y="b" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="x1" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="x1" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="l" t="t" r="x2" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x2" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="vc" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </rightArrowCallout>\r
-  <rightBrace>\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 8333" />\r
-      <gd name="adj2" fmla="val 50000" />\r
-    </avLst>\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a2" fmla="pin 0 adj2 100000" />\r
-      <gd name="q1" fmla="+- 100000 0 a2" />\r
-      <gd name="q2" fmla="min q1 a2" />\r
-      <gd name="q3" fmla="*/ q2 1 2" />\r
-      <gd name="maxAdj1" fmla="*/ q3 h ss" />\r
-      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
-      <gd name="y1" fmla="*/ ss a1 100000" />\r
-      <gd name="y3" fmla="*/ h a2 100000" />\r
-      <gd name="y2" fmla="+- y3 0 y1" />\r
-      <gd name="y4" fmla="+- b 0 y1" />\r
-      <gd name="dx1" fmla="cos wd2 2700000" />\r
-      <gd name="dy1" fmla="sin y1 2700000" />\r
-      <gd name="ir" fmla="+- l dx1 0" />\r
-      <gd name="it" fmla="+- y1 0 dy1" />\r
-      <gd name="ib" fmla="+- b dy1 y1" />\r
-    </gdLst>\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefY="adj1" minY="0" maxY="maxAdj1">\r
-        <pos x="hc" y="y1" />\r
-      </ahXY>\r
-      <ahXY gdRefY="adj2" minY="0" maxY="100000">\r
-        <pos x="r" y="y3" />\r
-      </ahXY>\r
-    </ahLst>\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="cd4">\r
-        <pos x="l" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="r" y="y3" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="l" y="b" />\r
-      </cxn>\r
-    </cxnLst>\r
-    <rect l="l" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path stroke="false" extrusionOk="false">\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <arcTo wR="wd2" hR="y1" stAng="3cd4" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="hc" y="y2" />\r
-        </lnTo>\r
-        <arcTo wR="wd2" hR="y1" stAng="cd2" swAng="-5400000" />\r
-        <arcTo wR="wd2" hR="y1" stAng="3cd4" swAng="-5400000" />\r
-        <lnTo>\r
-          <pt x="hc" y="y4" />\r
-        </lnTo>\r
-        <arcTo wR="wd2" hR="y1" stAng="0" swAng="cd4" />\r
-        <close />\r
-      </path>\r
-      <path fill="none">\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <arcTo wR="wd2" hR="y1" stAng="3cd4" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="hc" y="y2" />\r
-        </lnTo>\r
-        <arcTo wR="wd2" hR="y1" stAng="cd2" swAng="-5400000" />\r
-        <arcTo wR="wd2" hR="y1" stAng="3cd4" swAng="-5400000" />\r
-        <lnTo>\r
-          <pt x="hc" y="y4" />\r
-        </lnTo>\r
-        <arcTo wR="wd2" hR="y1" stAng="0" swAng="cd4" />\r
-      </path>\r
-    </pathLst>\r
-  </rightBrace>\r
-  <rightBracket>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj" fmla="val 8333" />\r
-\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="maxAdj" fmla="*/ 50000 h ss" />\r
-\r
-      <gd name="a" fmla="pin 0 adj maxAdj" />\r
-      <gd name="y1" fmla="*/ ss a 100000" />\r
-\r
-      <gd name="y2" fmla="+- b 0 y1" />\r
-\r
-      <gd name="dx1" fmla="cos w 2700000" />\r
-      <gd name="dy1" fmla="sin y1 2700000" />\r
-      <gd name="ir" fmla="+- l dx1 0" />\r
-      <gd name="it" fmla="+- y1 0 dy1" />\r
-      <gd name="ib" fmla="+- b dy1 y1" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefY="adj" minY="0" maxY="maxAdj">\r
-        <pos x="r" y="y1" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="cd4">\r
-        <pos x="l" y="t" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="l" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="l" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path stroke="false" extrusionOk="false">\r
-\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <arcTo wR="w" hR="y1" stAng="3cd4" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="r" y="y2" />\r
-        </lnTo>\r
-        <arcTo wR="w" hR="y1" stAng="0" swAng="cd4" />\r
-        <close />\r
-      </path>\r
-      <path fill="none">\r
-\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <arcTo wR="w" hR="y1" stAng="3cd4" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="r" y="y2" />\r
-        </lnTo>\r
-        <arcTo wR="w" hR="y1" stAng="0" swAng="cd4" />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </rightBracket>\r
-  <round1Rect>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj" fmla="val 16667" />\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a" fmla="pin 0 adj 50000" />\r
-      <gd name="dx1" fmla="*/ ss a 100000" />\r
-      <gd name="x1" fmla="+- r 0 dx1" />\r
-      <gd name="idx" fmla="*/ dx1 29289 100000" />\r
-      <gd name="ir" fmla="+- r 0 idx" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj" minX="0" maxX="50000">\r
-        <pos x="x1" y="t" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="l" t="t" r="ir" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x1" y="t" />\r
-        </lnTo>\r
-        <arcTo wR="dx1" hR="dx1" stAng="3cd4" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </round1Rect>\r
-  <round2DiagRect>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 16667" />\r
-      <gd name="adj2" fmla="val 0" />\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a1" fmla="pin 0 adj1 50000" />\r
-      <gd name="a2" fmla="pin 0 adj2 50000" />\r
-      <gd name="x1" fmla="*/ ss a1 100000" />\r
-      <gd name="y1" fmla="+- b 0 x1" />\r
-      <gd name="a" fmla="*/ ss a2 100000" />\r
-      <gd name="x2" fmla="+- r 0 a" />\r
-      <gd name="y2" fmla="+- b 0 a" />\r
-      <gd name="dx1" fmla="*/ x1 29289 100000" />\r
-      <gd name="dx2" fmla="*/ a 29289 100000" />\r
-      <gd name="d" fmla="+- dx1 0 dx2" />\r
-      <gd name="dx" fmla="?: d dx1 dx2" />\r
-      <gd name="ir" fmla="+- r 0 dx" />\r
-      <gd name="ib" fmla="+- b 0 dx" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj1" minX="0" maxX="50000">\r
-        <pos x="x1" y="t" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj2" minX="0" maxX="50000">\r
-        <pos x="x2" y="t" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="dx" t="dx" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="x1" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x2" y="t" />\r
-        </lnTo>\r
-        <arcTo wR="a" hR="a" stAng="3cd4" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="r" y="y1" />\r
-        </lnTo>\r
-        <arcTo wR="x1" hR="x1" stAng="0" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="a" y="b" />\r
-        </lnTo>\r
-        <arcTo wR="a" hR="a" stAng="cd4" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="l" y="x1" />\r
-        </lnTo>\r
-        <arcTo wR="x1" hR="x1" stAng="cd2" swAng="cd4" />\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </round2DiagRect>\r
-  <round2SameRect>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 16667" />\r
-      <gd name="adj2" fmla="val 0" />\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a1" fmla="pin 0 adj1 50000" />\r
-      <gd name="a2" fmla="pin 0 adj2 50000" />\r
-\r
-      <gd name="tx1" fmla="*/ ss a1 100000" />\r
-      <gd name="tx2" fmla="+- r 0 tx1" />\r
-\r
-      <gd name="bx1" fmla="*/ ss a2 100000" />\r
-      <gd name="bx2" fmla="+- r 0 bx1" />\r
-      <gd name="by1" fmla="+- b 0 bx1" />\r
-      <gd name="d" fmla="+- tx1 0 bx1" />\r
-      <gd name="tdx" fmla="*/ tx1 29289 100000" />\r
-      <gd name="bdx" fmla="*/ bx1 29289 100000" />\r
-      <gd name="il" fmla="?: d tdx bdx" />\r
-      <gd name="ir" fmla="+- r 0 il" />\r
-      <gd name="ib" fmla="+- b 0 bdx" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj1" minX="0" maxX="50000">\r
-        <pos x="tx2" y="t" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj2" minX="0" maxX="50000">\r
-        <pos x="bx1" y="b" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="il" t="tdx" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="tx1" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="tx2" y="t" />\r
-        </lnTo>\r
-        <arcTo wR="tx1" hR="tx1" stAng="3cd4" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="r" y="by1" />\r
-        </lnTo>\r
-        <arcTo wR="bx1" hR="bx1" stAng="0" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="bx1" y="b" />\r
-        </lnTo>\r
-        <arcTo wR="bx1" hR="bx1" stAng="cd4" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="l" y="tx1" />\r
-        </lnTo>\r
-        <arcTo wR="tx1" hR="tx1" stAng="cd2" swAng="cd4" />\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </round2SameRect>\r
-  <roundRect>\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj" fmla="val 16667" />\r
-    </avLst>\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a" fmla="pin 0 adj 50000" />\r
-      <gd name="x1" fmla="*/ ss a 100000" />\r
-      <gd name="x2" fmla="+- r 0 x1" />\r
-      <gd name="y2" fmla="+- b 0 x1" />\r
-      <gd name="il" fmla="*/ x1 29289 100000" />\r
-      <gd name="ir" fmla="+- r 0 il" />\r
-      <gd name="ib" fmla="+- b 0 il" />\r
-    </gdLst>\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj" minX="0" maxX="50000">\r
-        <pos x="x1" y="t" />\r
-      </ahXY>\r
-    </ahLst>\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-    <rect l="il" t="il" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="x1" />\r
-        </moveTo>\r
-        <arcTo wR="x1" hR="x1" stAng="cd2" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="x2" y="t" />\r
-        </lnTo>\r
-        <arcTo wR="x1" hR="x1" stAng="3cd4" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="r" y="y2" />\r
-        </lnTo>\r
-        <arcTo wR="x1" hR="x1" stAng="0" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="x1" y="b" />\r
-        </lnTo>\r
-        <arcTo wR="x1" hR="x1" stAng="cd4" swAng="cd4" />\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-  </roundRect>\r
-  <rtTriangle>\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="it" fmla="*/ h 7 12" />\r
-      <gd name="ir" fmla="*/ w 7 12" />\r
-      <gd name="ib" fmla="*/ h 11 12" />\r
-    </gdLst>\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="l" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="l" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="r" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="hc" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-    <rect l="wd12" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="b" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="l" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-  </rtTriangle>\r
-  <smileyFace>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj" fmla="val 4653" />\r
-\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a" fmla="pin -4653 adj 4653" />\r
-      <gd name="x1" fmla="*/ w 4969 21699" />\r
-\r
-      <gd name="x2" fmla="*/ w 6215 21600" />\r
-\r
-      <gd name="x3" fmla="*/ w 13135 21600" />\r
-\r
-      <gd name="x4" fmla="*/ w 16640 21600" />\r
-\r
-      <gd name="y1" fmla="*/ h 7570 21600" />\r
-\r
-      <gd name="y3" fmla="*/ h 16515 21600" />\r
-\r
-      <gd name="dy2" fmla="*/ h a 100000" />\r
-\r
-      <gd name="y2" fmla="+- y3 0 dy2" />\r
-\r
-      <gd name="y4" fmla="+- y3 dy2 0" />\r
-\r
-      <gd name="dy3" fmla="*/ h a 50000" />\r
-\r
-      <gd name="y5" fmla="+- y4 dy3 0" />\r
-      <gd name="idx" fmla="cos wd2 2700000" />\r
-      <gd name="idy" fmla="sin hd2 2700000" />\r
-      <gd name="il" fmla="+- hc 0 idx" />\r
-      <gd name="ir" fmla="+- hc idx 0" />\r
-      <gd name="it" fmla="+- vc 0 idy" />\r
-      <gd name="ib" fmla="+- vc idy 0" />\r
-      <gd name="wR" fmla="*/ w 1125 21600" />\r
-      <gd name="hR" fmla="*/ h 1125 21600" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefY="adj" minY="-4653" maxY="4653">\r
-        <pos x="hc" y="y4" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="il" y="it" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="il" y="ib" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="ir" y="ib" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="ir" y="it" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path stroke="false" extrusionOk="false">\r
-\r
-        <moveTo>\r
-          <pt x="l" y="vc" />\r
-        </moveTo>\r
-        <arcTo wR="wd2" hR="hd2" stAng="cd2" swAng="21600000" />\r
-        <close />\r
-      </path>\r
-      <path fill="darkenLess" extrusionOk="false">\r
-\r
-        <moveTo>\r
-          <pt x="x2" y="y1" />\r
-        </moveTo>\r
-        <arcTo wR="wR" hR="hR" stAng="cd2" swAng="21600000" />\r
-        <moveTo>\r
-          <pt x="x3" y="y1" />\r
-        </moveTo>\r
-        <arcTo wR="wR" hR="hR" stAng="cd2" swAng="21600000" />\r
-      </path>\r
-      <path fill="none" extrusionOk="false">\r
-\r
-        <moveTo>\r
-          <pt x="x1" y="y2" />\r
-        </moveTo>\r
-        <quadBezTo>\r
-          <pt x="hc" y="y5" />\r
-          <pt x="x4" y="y2" />\r
-        </quadBezTo>\r
-      </path>\r
-      <path fill="none">\r
-\r
-        <moveTo>\r
-          <pt x="l" y="vc" />\r
-        </moveTo>\r
-        <arcTo wR="wd2" hR="hd2" stAng="cd2" swAng="21600000" />\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </smileyFace>\r
-  <snip1Rect>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj" fmla="val 16667" />\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a" fmla="pin 0 adj 50000" />\r
-      <gd name="dx1" fmla="*/ ss a 100000" />\r
-      <gd name="x1" fmla="+- r 0 dx1" />\r
-      <gd name="it" fmla="*/ dx1 1 2" />\r
-      <gd name="ir" fmla="+/ x1 r 2" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj" minX="0" maxX="50000">\r
-        <pos x="x1" y="t" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="l" t="it" r="ir" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x1" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="dx1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </snip1Rect>\r
-  <snip2DiagRect>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 0" />\r
-      <gd name="adj2" fmla="val 16667" />\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a1" fmla="pin 0 adj1 50000" />\r
-      <gd name="a2" fmla="pin 0 adj2 50000" />\r
-      <gd name="lx1" fmla="*/ ss a1 100000" />\r
-      <gd name="lx2" fmla="+- r 0 lx1" />\r
-      <gd name="ly1" fmla="+- b 0 lx1" />\r
-      <gd name="rx1" fmla="*/ ss a2 100000" />\r
-      <gd name="rx2" fmla="+- r 0 rx1" />\r
-      <gd name="ry1" fmla="+- b 0 rx1" />\r
-      <gd name="d" fmla="+- lx1 0 rx1" />\r
-      <gd name="dx" fmla="?: d lx1 rx1" />\r
-      <gd name="il" fmla="*/ dx 1 2" />\r
-\r
-      <gd name="ir" fmla="+- r 0 il" />\r
-      <gd name="ib" fmla="+- b 0 il" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj1" minX="0" maxX="50000">\r
-        <pos x="lx1" y="t" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj2" minX="0" maxX="50000">\r
-        <pos x="rx2" y="t" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="il" t="il" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="lx1" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="rx2" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="rx1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="ly1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="lx2" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="rx1" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="ry1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="lx1" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </snip2DiagRect>\r
-  <snip2SameRect>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 16667" />\r
-      <gd name="adj2" fmla="val 0" />\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a1" fmla="pin 0 adj1 50000" />\r
-      <gd name="a2" fmla="pin 0 adj2 50000" />\r
-      <gd name="tx1" fmla="*/ ss a1 100000" />\r
-      <gd name="tx2" fmla="+- r 0 tx1" />\r
-      <gd name="bx1" fmla="*/ ss a2 100000" />\r
-      <gd name="bx2" fmla="+- r 0 bx1" />\r
-      <gd name="by1" fmla="+- b 0 bx1" />\r
-      <gd name="d" fmla="+- tx1 0 bx1" />\r
-      <gd name="dx" fmla="?: d tx1 bx1" />\r
-      <gd name="il" fmla="*/ dx 1 2" />\r
-      <gd name="ir" fmla="+- r 0 il" />\r
-      <gd name="it" fmla="*/ tx1 1 2" />\r
-      <gd name="ib" fmla="+/ by1 b 2" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj1" minX="0" maxX="50000">\r
-        <pos x="tx2" y="t" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj2" minX="0" maxX="50000">\r
-        <pos x="bx1" y="b" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="tx1" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="tx2" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="tx1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="by1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="bx2" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="bx1" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="by1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="tx1" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </snip2SameRect>\r
-  <snipRoundRect>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 16667" />\r
-      <gd name="adj2" fmla="val 16667" />\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a1" fmla="pin 0 adj1 50000" />\r
-      <gd name="a2" fmla="pin 0 adj2 50000" />\r
-      <gd name="x1" fmla="*/ ss a1 100000" />\r
-      <gd name="dx2" fmla="*/ ss a2 100000" />\r
-      <gd name="x2" fmla="+- r 0 dx2" />\r
-      <gd name="il" fmla="*/ x1 29289 100000" />\r
-\r
-      <gd name="ir" fmla="+/ x2 r 2" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj1" minX="0" maxX="50000">\r
-        <pos x="x1" y="t" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj2" minX="0" maxX="50000">\r
-        <pos x="x2" y="t" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="il" t="il" r="ir" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="x1" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x2" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="dx2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="x1" />\r
-        </lnTo>\r
-        <arcTo wR="x1" hR="x1" stAng="cd2" swAng="cd4" />\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </snipRoundRect>\r
-  <squareTabs>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="md" fmla="mod w h 0" />\r
-      <gd name="dx" fmla="*/ 1 md 20" />\r
-\r
-      <gd name="y1" fmla="+- 0 b dx" />\r
-\r
-      <gd name="x1" fmla="+- 0 r dx" />\r
-\r
-    </gdLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="dx" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="y1" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="dx" y="dx" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="dx" y="x1" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="dx" y="t" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="x1" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="dx" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="x1" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="t" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="dx" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="y1" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="x1" y="dx" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="x1" y="y1" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="dx" t="dx" r="x1" b="y1" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="dx" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="dx" y="dx" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="dx" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="y1" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="dx" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="dx" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path>\r
-        <moveTo>\r
-          <pt x="x1" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="r" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="dx" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="dx" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-      <path>\r
-        <moveTo>\r
-          <pt x="x1" y="y1" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="r" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </squareTabs>\r
-  <star10>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj" fmla="val 42533" />\r
-      <gd name="hf" fmla="val 105146" />\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a" fmla="pin 0 adj 50000" />\r
-      <gd name="swd2" fmla="*/ wd2 hf 100000" />\r
-      <gd name="dx1" fmla="*/ swd2 95106 100000" />\r
-      <gd name="dx2" fmla="*/ swd2 58779 100000" />\r
-      <gd name="x1" fmla="+- hc 0 dx1" />\r
-      <gd name="x2" fmla="+- hc 0 dx2" />\r
-      <gd name="x3" fmla="+- hc dx2 0" />\r
-      <gd name="x4" fmla="+- hc dx1 0" />\r
-      <gd name="dy1" fmla="*/ hd2 80902 100000" />\r
-      <gd name="dy2" fmla="*/ hd2 30902 100000" />\r
-      <gd name="y1" fmla="+- vc 0 dy1" />\r
-      <gd name="y2" fmla="+- vc 0 dy2" />\r
-      <gd name="y3" fmla="+- vc dy2 0" />\r
-      <gd name="y4" fmla="+- vc dy1 0" />\r
-      <gd name="iwd2" fmla="*/ swd2 a 50000" />\r
-      <gd name="ihd2" fmla="*/ hd2 a 50000" />\r
-      <gd name="sdx1" fmla="*/ iwd2 80902 100000" />\r
-      <gd name="sdx2" fmla="*/ iwd2 30902 100000" />\r
-      <gd name="sdy1" fmla="*/ ihd2 95106 100000" />\r
-      <gd name="sdy2" fmla="*/ ihd2 58779 100000" />\r
-      <gd name="sx1" fmla="+- hc 0 iwd2" />\r
-      <gd name="sx2" fmla="+- hc 0 sdx1" />\r
-      <gd name="sx3" fmla="+- hc 0 sdx2" />\r
-      <gd name="sx4" fmla="+- hc sdx2 0" />\r
-      <gd name="sx5" fmla="+- hc sdx1 0" />\r
-      <gd name="sx6" fmla="+- hc iwd2 0" />\r
-      <gd name="sy1" fmla="+- vc 0 sdy1" />\r
-      <gd name="sy2" fmla="+- vc 0 sdy2" />\r
-      <gd name="sy3" fmla="+- vc sdy2 0" />\r
-      <gd name="sy4" fmla="+- vc sdy1 0" />\r
-      <gd name="yAdj" fmla="+- vc 0 ihd2" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefY="adj" minY="0" maxY="50000">\r
-        <pos x="hc" y="yAdj" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="x4" y="y2" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="x4" y="y3" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="x3" y="y4" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="x2" y="y4" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="x1" y="y3" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="x1" y="y2" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="x2" y="y1" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="x3" y="y1" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="sx2" t="sy2" r="sx5" b="sy3" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="x1" y="y2" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="sx2" y="sy2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx3" y="sy1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="hc" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx4" y="sy1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx5" y="sy2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx6" y="vc" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx5" y="sy3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx4" y="sy4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="hc" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx3" y="sy4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx2" y="sy3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx1" y="vc" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </star10>\r
-  <star12>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj" fmla="val 37500" />\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a" fmla="pin 0 adj 50000" />\r
-      <gd name="dx1" fmla="cos wd2 1800000" />\r
-\r
-      <gd name="dy1" fmla="sin hd2 3600000" />\r
-\r
-      <gd name="x1" fmla="+- hc 0 dx1" />\r
-      <gd name="x3" fmla="*/ w 3 4" />\r
-      <gd name="x4" fmla="+- hc dx1 0" />\r
-      <gd name="y1" fmla="+- vc 0 dy1" />\r
-      <gd name="y3" fmla="*/ h 3 4" />\r
-      <gd name="y4" fmla="+- vc dy1 0" />\r
-      <gd name="iwd2" fmla="*/ wd2 a 50000" />\r
-      <gd name="ihd2" fmla="*/ hd2 a 50000" />\r
-      <gd name="sdx1" fmla="cos iwd2 900000" />\r
-      <gd name="sdx2" fmla="cos iwd2 2700000" />\r
-      <gd name="sdx3" fmla="cos iwd2 4500000" />\r
-      <gd name="sdy1" fmla="sin ihd2 4500000" />\r
-      <gd name="sdy2" fmla="sin ihd2 2700000" />\r
-      <gd name="sdy3" fmla="sin ihd2 900000" />\r
-      <gd name="sx1" fmla="+- hc 0 sdx1" />\r
-      <gd name="sx2" fmla="+- hc 0 sdx2" />\r
-      <gd name="sx3" fmla="+- hc 0 sdx3" />\r
-      <gd name="sx4" fmla="+- hc sdx3 0" />\r
-      <gd name="sx5" fmla="+- hc sdx2 0" />\r
-      <gd name="sx6" fmla="+- hc sdx1 0" />\r
-      <gd name="sy1" fmla="+- vc 0 sdy1" />\r
-      <gd name="sy2" fmla="+- vc 0 sdy2" />\r
-      <gd name="sy3" fmla="+- vc 0 sdy3" />\r
-      <gd name="sy4" fmla="+- vc sdy3 0" />\r
-      <gd name="sy5" fmla="+- vc sdy2 0" />\r
-      <gd name="sy6" fmla="+- vc sdy1 0" />\r
-      <gd name="yAdj" fmla="+- vc 0 ihd2" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefY="adj" minY="0" maxY="50000">\r
-        <pos x="hc" y="yAdj" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="x4" y="hd4" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="x4" y="y3" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="x3" y="y4" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="wd4" y="y4" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="x1" y="y3" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="x1" y="hd4" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="wd4" y="y1" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="x3" y="y1" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="sx2" t="sy2" r="sx5" b="sy5" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="vc" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="sx1" y="sy3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="hd4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx2" y="sy2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="wd4" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx3" y="sy1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="hc" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx4" y="sy1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx5" y="sy2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="hd4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx6" y="sy3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="vc" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx6" y="sy4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx5" y="sy5" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx4" y="sy6" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="hc" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx3" y="sy6" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="wd4" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx2" y="sy5" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx1" y="sy4" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </star12>\r
-  <star16>\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj" fmla="val 37500" />\r
-    </avLst>\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a" fmla="pin 0 adj 50000" />\r
-      <gd name="dx1" fmla="*/ wd2 92388 100000" />\r
-      <gd name="dx2" fmla="*/ wd2 70711 100000" />\r
-      <gd name="dx3" fmla="*/ wd2 38268 100000" />\r
-      <gd name="dy1" fmla="*/ hd2 92388 100000" />\r
-      <gd name="dy2" fmla="*/ hd2 70711 100000" />\r
-      <gd name="dy3" fmla="*/ hd2 38268 100000" />\r
-      <gd name="x1" fmla="+- hc 0 dx1" />\r
-      <gd name="x2" fmla="+- hc 0 dx2" />\r
-      <gd name="x3" fmla="+- hc 0 dx3" />\r
-      <gd name="x4" fmla="+- hc dx3 0" />\r
-      <gd name="x5" fmla="+- hc dx2 0" />\r
-      <gd name="x6" fmla="+- hc dx1 0" />\r
-      <gd name="y1" fmla="+- vc 0 dy1" />\r
-      <gd name="y2" fmla="+- vc 0 dy2" />\r
-      <gd name="y3" fmla="+- vc 0 dy3" />\r
-      <gd name="y4" fmla="+- vc dy3 0" />\r
-      <gd name="y5" fmla="+- vc dy2 0" />\r
-      <gd name="y6" fmla="+- vc dy1 0" />\r
-      <gd name="iwd2" fmla="*/ wd2 a 50000" />\r
-      <gd name="ihd2" fmla="*/ hd2 a 50000" />\r
-      <gd name="sdx1" fmla="*/ iwd2 98079 100000" />\r
-      <gd name="sdx2" fmla="*/ iwd2 83147 100000" />\r
-      <gd name="sdx3" fmla="*/ iwd2 55557 100000" />\r
-      <gd name="sdx4" fmla="*/ iwd2 19509 100000" />\r
-      <gd name="sdy1" fmla="*/ ihd2 98079 100000" />\r
-      <gd name="sdy2" fmla="*/ ihd2 83147 100000" />\r
-      <gd name="sdy3" fmla="*/ ihd2 55557 100000" />\r
-      <gd name="sdy4" fmla="*/ ihd2 19509 100000" />\r
-      <gd name="sx1" fmla="+- hc 0 sdx1" />\r
-      <gd name="sx2" fmla="+- hc 0 sdx2" />\r
-      <gd name="sx3" fmla="+- hc 0 sdx3" />\r
-      <gd name="sx4" fmla="+- hc 0 sdx4" />\r
-      <gd name="sx5" fmla="+- hc sdx4 0" />\r
-      <gd name="sx6" fmla="+- hc sdx3 0" />\r
-      <gd name="sx7" fmla="+- hc sdx2 0" />\r
-      <gd name="sx8" fmla="+- hc sdx1 0" />\r
-      <gd name="sy1" fmla="+- vc 0 sdy1" />\r
-      <gd name="sy2" fmla="+- vc 0 sdy2" />\r
-      <gd name="sy3" fmla="+- vc 0 sdy3" />\r
-      <gd name="sy4" fmla="+- vc 0 sdy4" />\r
-      <gd name="sy5" fmla="+- vc sdy4 0" />\r
-      <gd name="sy6" fmla="+- vc sdy3 0" />\r
-      <gd name="sy7" fmla="+- vc sdy2 0" />\r
-      <gd name="sy8" fmla="+- vc sdy1 0" />\r
-      <gd name="idx" fmla="cos iwd2 2700000" />\r
-      <gd name="idy" fmla="sin ihd2 2700000" />\r
-      <gd name="il" fmla="+- hc 0 idx" />\r
-      <gd name="it" fmla="+- vc 0 idy" />\r
-      <gd name="ir" fmla="+- hc idx 0" />\r
-      <gd name="ib" fmla="+- vc idy 0" />\r
-      <gd name="yAdj" fmla="+- vc 0 ihd2" />\r
-    </gdLst>\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefY="adj" minY="0" maxY="50000">\r
-        <pos x="hc" y="yAdj" />\r
-      </ahXY>\r
-    </ahLst>\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="x5" y="y2" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="x6" y="y3" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="x6" y="y4" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="x5" y="y5" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="x4" y="y6" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="x3" y="y6" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="x2" y="y5" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="x1" y="y4" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="x1" y="y3" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="x2" y="y2" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="x3" y="y1" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="x4" y="y1" />\r
-      </cxn>\r
-    </cxnLst>\r
-    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="vc" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="sx1" y="sy4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx2" y="sy3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx3" y="sy2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx4" y="sy1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="hc" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx5" y="sy1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx6" y="sy2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x5" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx7" y="sy3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x6" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx8" y="sy4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="vc" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx8" y="sy5" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x6" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx7" y="sy6" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x5" y="y5" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx6" y="sy7" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y6" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx5" y="sy8" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="hc" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx4" y="sy8" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y6" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx3" y="sy7" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y5" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx2" y="sy6" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx1" y="sy5" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-  </star16>\r
-  <star24>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj" fmla="val 37500" />\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a" fmla="pin 0 adj 50000" />\r
-      <gd name="dx1" fmla="cos wd2 900000" />\r
-      <gd name="dx2" fmla="cos wd2 1800000" />\r
-      <gd name="dx3" fmla="cos wd2 2700000" />\r
-      <gd name="dx4" fmla="val wd4" />\r
-      <gd name="dx5" fmla="cos wd2 4500000" />\r
-      <gd name="dy1" fmla="sin hd2 4500000" />\r
-      <gd name="dy2" fmla="sin hd2 3600000" />\r
-      <gd name="dy3" fmla="sin hd2 2700000" />\r
-      <gd name="dy4" fmla="val hd4" />\r
-      <gd name="dy5" fmla="sin hd2 900000" />\r
-      <gd name="x1" fmla="+- hc 0 dx1" />\r
-      <gd name="x2" fmla="+- hc 0 dx2" />\r
-      <gd name="x3" fmla="+- hc 0 dx3" />\r
-      <gd name="x4" fmla="+- hc 0 dx4" />\r
-      <gd name="x5" fmla="+- hc 0 dx5" />\r
-      <gd name="x6" fmla="+- hc dx5 0" />\r
-      <gd name="x7" fmla="+- hc dx4 0" />\r
-      <gd name="x8" fmla="+- hc dx3 0" />\r
-      <gd name="x9" fmla="+- hc dx2 0" />\r
-      <gd name="x10" fmla="+- hc dx1 0" />\r
-      <gd name="y1" fmla="+- vc 0 dy1" />\r
-      <gd name="y2" fmla="+- vc 0 dy2" />\r
-      <gd name="y3" fmla="+- vc 0 dy3" />\r
-      <gd name="y4" fmla="+- vc 0 dy4" />\r
-      <gd name="y5" fmla="+- vc 0 dy5" />\r
-      <gd name="y6" fmla="+- vc dy5 0" />\r
-      <gd name="y7" fmla="+- vc dy4 0" />\r
-      <gd name="y8" fmla="+- vc dy3 0" />\r
-      <gd name="y9" fmla="+- vc dy2 0" />\r
-      <gd name="y10" fmla="+- vc dy1 0" />\r
-      <gd name="iwd2" fmla="*/ wd2 a 50000" />\r
-      <gd name="ihd2" fmla="*/ hd2 a 50000" />\r
-      <gd name="sdx1" fmla="*/ iwd2 99144 100000" />\r
-      <gd name="sdx2" fmla="*/ iwd2 92388 100000" />\r
-      <gd name="sdx3" fmla="*/ iwd2 79335 100000" />\r
-      <gd name="sdx4" fmla="*/ iwd2 60876 100000" />\r
-      <gd name="sdx5" fmla="*/ iwd2 38268 100000" />\r
-      <gd name="sdx6" fmla="*/ iwd2 13053 100000" />\r
-      <gd name="sdy1" fmla="*/ ihd2 99144 100000" />\r
-      <gd name="sdy2" fmla="*/ ihd2 92388 100000" />\r
-      <gd name="sdy3" fmla="*/ ihd2 79335 100000" />\r
-      <gd name="sdy4" fmla="*/ ihd2 60876 100000" />\r
-      <gd name="sdy5" fmla="*/ ihd2 38268 100000" />\r
-      <gd name="sdy6" fmla="*/ ihd2 13053 100000" />\r
-      <gd name="sx1" fmla="+- hc 0 sdx1" />\r
-      <gd name="sx2" fmla="+- hc 0 sdx2" />\r
-      <gd name="sx3" fmla="+- hc 0 sdx3" />\r
-      <gd name="sx4" fmla="+- hc 0 sdx4" />\r
-      <gd name="sx5" fmla="+- hc 0 sdx5" />\r
-      <gd name="sx6" fmla="+- hc 0 sdx6" />\r
-      <gd name="sx7" fmla="+- hc sdx6 0" />\r
-      <gd name="sx8" fmla="+- hc sdx5 0" />\r
-      <gd name="sx9" fmla="+- hc sdx4 0" />\r
-      <gd name="sx10" fmla="+- hc sdx3 0" />\r
-      <gd name="sx11" fmla="+- hc sdx2 0" />\r
-      <gd name="sx12" fmla="+- hc sdx1 0" />\r
-      <gd name="sy1" fmla="+- vc 0 sdy1" />\r
-      <gd name="sy2" fmla="+- vc 0 sdy2" />\r
-      <gd name="sy3" fmla="+- vc 0 sdy3" />\r
-      <gd name="sy4" fmla="+- vc 0 sdy4" />\r
-      <gd name="sy5" fmla="+- vc 0 sdy5" />\r
-      <gd name="sy6" fmla="+- vc 0 sdy6" />\r
-      <gd name="sy7" fmla="+- vc sdy6 0" />\r
-      <gd name="sy8" fmla="+- vc sdy5 0" />\r
-      <gd name="sy9" fmla="+- vc sdy4 0" />\r
-      <gd name="sy10" fmla="+- vc sdy3 0" />\r
-      <gd name="sy11" fmla="+- vc sdy2 0" />\r
-      <gd name="sy12" fmla="+- vc sdy1 0" />\r
-      <gd name="idx" fmla="cos iwd2 2700000" />\r
-      <gd name="idy" fmla="sin ihd2 2700000" />\r
-      <gd name="il" fmla="+- hc 0 idx" />\r
-      <gd name="it" fmla="+- vc 0 idy" />\r
-      <gd name="ir" fmla="+- hc idx 0" />\r
-      <gd name="ib" fmla="+- vc idy 0" />\r
-      <gd name="yAdj" fmla="+- vc 0 ihd2" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefY="adj" minY="0" maxY="ssd2">\r
-        <pos x="hc" y="yAdj" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="vc" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="sx1" y="sy6" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y5" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx2" y="sy5" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx3" y="sy4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx4" y="sy3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx5" y="sy2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x5" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx6" y="sy1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="hc" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx7" y="sy1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x6" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx8" y="sy2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x7" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx9" y="sy3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x8" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx10" y="sy4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x9" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx11" y="sy5" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x10" y="y5" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx12" y="sy6" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="vc" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx12" y="sy7" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x10" y="y6" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx11" y="sy8" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x9" y="y7" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx10" y="sy9" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x8" y="y8" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx9" y="sy10" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x7" y="y9" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx8" y="sy11" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x6" y="y10" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx7" y="sy12" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="hc" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx6" y="sy12" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x5" y="y10" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx5" y="sy11" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y9" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx4" y="sy10" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y8" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx3" y="sy9" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y7" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx2" y="sy8" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y6" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx1" y="sy7" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </star24>\r
-  <star32>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj" fmla="val 37500" />\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a" fmla="pin 0 adj 50000" />\r
-      <gd name="dx1" fmla="*/ wd2 98079 100000" />\r
-      <gd name="dx2" fmla="*/ wd2 92388 100000" />\r
-      <gd name="dx3" fmla="*/ wd2 83147 100000" />\r
-      <gd name="dx4" fmla="cos wd2 2700000" />\r
-      <gd name="dx5" fmla="*/ wd2 55557 100000" />\r
-      <gd name="dx6" fmla="*/ wd2 38268 100000" />\r
-      <gd name="dx7" fmla="*/ wd2 19509 100000" />\r
-      <gd name="dy1" fmla="*/ hd2 98079 100000" />\r
-      <gd name="dy2" fmla="*/ hd2 92388 100000" />\r
-      <gd name="dy3" fmla="*/ hd2 83147 100000" />\r
-      <gd name="dy4" fmla="sin hd2 2700000" />\r
-      <gd name="dy5" fmla="*/ hd2 55557 100000" />\r
-      <gd name="dy6" fmla="*/ hd2 38268 100000" />\r
-      <gd name="dy7" fmla="*/ hd2 19509 100000" />\r
-      <gd name="x1" fmla="+- hc 0 dx1" />\r
-      <gd name="x2" fmla="+- hc 0 dx2" />\r
-      <gd name="x3" fmla="+- hc 0 dx3" />\r
-      <gd name="x4" fmla="+- hc 0 dx4" />\r
-      <gd name="x5" fmla="+- hc 0 dx5" />\r
-      <gd name="x6" fmla="+- hc 0 dx6" />\r
-      <gd name="x7" fmla="+- hc 0 dx7" />\r
-      <gd name="x8" fmla="+- hc dx7 0" />\r
-      <gd name="x9" fmla="+- hc dx6 0" />\r
-      <gd name="x10" fmla="+- hc dx5 0" />\r
-      <gd name="x11" fmla="+- hc dx4 0" />\r
-      <gd name="x12" fmla="+- hc dx3 0" />\r
-      <gd name="x13" fmla="+- hc dx2 0" />\r
-      <gd name="x14" fmla="+- hc dx1 0" />\r
-      <gd name="y1" fmla="+- vc 0 dy1" />\r
-      <gd name="y2" fmla="+- vc 0 dy2" />\r
-      <gd name="y3" fmla="+- vc 0 dy3" />\r
-      <gd name="y4" fmla="+- vc 0 dy4" />\r
-      <gd name="y5" fmla="+- vc 0 dy5" />\r
-      <gd name="y6" fmla="+- vc 0 dy6" />\r
-      <gd name="y7" fmla="+- vc 0 dy7" />\r
-      <gd name="y8" fmla="+- vc dy7 0" />\r
-      <gd name="y9" fmla="+- vc dy6 0" />\r
-      <gd name="y10" fmla="+- vc dy5 0" />\r
-      <gd name="y11" fmla="+- vc dy4 0" />\r
-      <gd name="y12" fmla="+- vc dy3 0" />\r
-      <gd name="y13" fmla="+- vc dy2 0" />\r
-      <gd name="y14" fmla="+- vc dy1 0" />\r
-      <gd name="iwd2" fmla="*/ wd2 a 50000" />\r
-      <gd name="ihd2" fmla="*/ hd2 a 50000" />\r
-      <gd name="sdx1" fmla="*/ iwd2 99518 100000" />\r
-      <gd name="sdx2" fmla="*/ iwd2 95694 100000" />\r
-      <gd name="sdx3" fmla="*/ iwd2 88192 100000" />\r
-      <gd name="sdx4" fmla="*/ iwd2 77301 100000" />\r
-      <gd name="sdx5" fmla="*/ iwd2 63439 100000" />\r
-      <gd name="sdx6" fmla="*/ iwd2 47140 100000" />\r
-      <gd name="sdx7" fmla="*/ iwd2 29028 100000" />\r
-      <gd name="sdx8" fmla="*/ iwd2 9802 100000" />\r
-      <gd name="sdy1" fmla="*/ ihd2 99518 100000" />\r
-      <gd name="sdy2" fmla="*/ ihd2 95694 100000" />\r
-      <gd name="sdy3" fmla="*/ ihd2 88192 100000" />\r
-      <gd name="sdy4" fmla="*/ ihd2 77301 100000" />\r
-      <gd name="sdy5" fmla="*/ ihd2 63439 100000" />\r
-      <gd name="sdy6" fmla="*/ ihd2 47140 100000" />\r
-      <gd name="sdy7" fmla="*/ ihd2 29028 100000" />\r
-      <gd name="sdy8" fmla="*/ ihd2 9802 100000" />\r
-      <gd name="sx1" fmla="+- hc 0 sdx1" />\r
-      <gd name="sx2" fmla="+- hc 0 sdx2" />\r
-      <gd name="sx3" fmla="+- hc 0 sdx3" />\r
-      <gd name="sx4" fmla="+- hc 0 sdx4" />\r
-      <gd name="sx5" fmla="+- hc 0 sdx5" />\r
-      <gd name="sx6" fmla="+- hc 0 sdx6" />\r
-      <gd name="sx7" fmla="+- hc 0 sdx7" />\r
-      <gd name="sx8" fmla="+- hc 0 sdx8" />\r
-      <gd name="sx9" fmla="+- hc sdx8 0" />\r
-      <gd name="sx10" fmla="+- hc sdx7 0" />\r
-      <gd name="sx11" fmla="+- hc sdx6 0" />\r
-      <gd name="sx12" fmla="+- hc sdx5 0" />\r
-      <gd name="sx13" fmla="+- hc sdx4 0" />\r
-      <gd name="sx14" fmla="+- hc sdx3 0" />\r
-      <gd name="sx15" fmla="+- hc sdx2 0" />\r
-      <gd name="sx16" fmla="+- hc sdx1 0" />\r
-      <gd name="sy1" fmla="+- vc 0 sdy1" />\r
-      <gd name="sy2" fmla="+- vc 0 sdy2" />\r
-      <gd name="sy3" fmla="+- vc 0 sdy3" />\r
-      <gd name="sy4" fmla="+- vc 0 sdy4" />\r
-      <gd name="sy5" fmla="+- vc 0 sdy5" />\r
-      <gd name="sy6" fmla="+- vc 0 sdy6" />\r
-      <gd name="sy7" fmla="+- vc 0 sdy7" />\r
-      <gd name="sy8" fmla="+- vc 0 sdy8" />\r
-      <gd name="sy9" fmla="+- vc sdy8 0" />\r
-      <gd name="sy10" fmla="+- vc sdy7 0" />\r
-      <gd name="sy11" fmla="+- vc sdy6 0" />\r
-      <gd name="sy12" fmla="+- vc sdy5 0" />\r
-      <gd name="sy13" fmla="+- vc sdy4 0" />\r
-      <gd name="sy14" fmla="+- vc sdy3 0" />\r
-      <gd name="sy15" fmla="+- vc sdy2 0" />\r
-      <gd name="sy16" fmla="+- vc sdy1 0" />\r
-      <gd name="idx" fmla="cos iwd2 2700000" />\r
-      <gd name="idy" fmla="sin ihd2 2700000" />\r
-      <gd name="il" fmla="+- hc 0 idx" />\r
-      <gd name="it" fmla="+- vc 0 idy" />\r
-      <gd name="ir" fmla="+- hc idx 0" />\r
-      <gd name="ib" fmla="+- vc idy 0" />\r
-      <gd name="yAdj" fmla="+- vc 0 ihd2" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefY="adj" minY="0" maxY="ssd2">\r
-        <pos x="hc" y="yAdj" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="vc" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="sx1" y="sy8" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y7" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx2" y="sy7" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y6" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx3" y="sy6" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y5" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx4" y="sy5" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx5" y="sy4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x5" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx6" y="sy3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x6" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx7" y="sy2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x7" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx8" y="sy1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="hc" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx9" y="sy1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x8" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx10" y="sy2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x9" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx11" y="sy3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x10" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx12" y="sy4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x11" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx13" y="sy5" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x12" y="y5" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx14" y="sy6" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x13" y="y6" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx15" y="sy7" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x14" y="y7" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx16" y="sy8" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="vc" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx16" y="sy9" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x14" y="y8" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx15" y="sy10" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x13" y="y9" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx14" y="sy11" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x12" y="y10" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx13" y="sy12" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x11" y="y11" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx12" y="sy13" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x10" y="y12" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx11" y="sy14" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x9" y="y13" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx10" y="sy15" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x8" y="y14" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx9" y="sy16" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="hc" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx8" y="sy16" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x7" y="y14" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx7" y="sy15" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x6" y="y13" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx6" y="sy14" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x5" y="y12" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx5" y="sy13" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y11" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx4" y="sy12" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y10" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx3" y="sy11" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y9" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx2" y="sy10" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y8" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx1" y="sy9" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </star32>\r
-  <star4>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj" fmla="val 12500" />\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a" fmla="pin 0 adj 50000" />\r
-      <gd name="iwd2" fmla="*/ wd2 a 50000" />\r
-      <gd name="ihd2" fmla="*/ hd2 a 50000" />\r
-      <gd name="sdx" fmla="cos iwd2 2700000" />\r
-      <gd name="sdy" fmla="sin ihd2 2700000" />\r
-      <gd name="sx1" fmla="+- hc 0 sdx" />\r
-      <gd name="sx2" fmla="+- hc sdx 0" />\r
-      <gd name="sy1" fmla="+- vc 0 sdy" />\r
-      <gd name="sy2" fmla="+- vc sdy 0" />\r
-      <gd name="yAdj" fmla="+- vc 0 ihd2" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefY="adj" minY="0" maxY="50000">\r
-        <pos x="hc" y="yAdj" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="sx1" t="sy1" r="sx2" b="sy2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="vc" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="sx1" y="sy1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="hc" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx2" y="sy1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="vc" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx2" y="sy2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="hc" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx1" y="sy2" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </star4>\r
-  <star5>\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj" fmla="val 19098" />\r
-      <gd name="hf" fmla="val 105146" />\r
-      <gd name="vf" fmla="val 110557" />\r
-    </avLst>\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a" fmla="pin 0 adj 50000" />\r
-      <gd name="swd2" fmla="*/ wd2 hf 100000" />\r
-      <gd name="shd2" fmla="*/ hd2 vf 100000" />\r
-      <gd name="svc" fmla="*/ vc  vf 100000" />\r
-      <gd name="dx1" fmla="cos swd2 1080000" />\r
-      <gd name="dx2" fmla="cos swd2 18360000" />\r
-      <gd name="dy1" fmla="sin shd2 1080000" />\r
-      <gd name="dy2" fmla="sin shd2 18360000" />\r
-      <gd name="x1" fmla="+- hc 0 dx1" />\r
-      <gd name="x2" fmla="+- hc 0 dx2" />\r
-      <gd name="x3" fmla="+- hc dx2 0" />\r
-      <gd name="x4" fmla="+- hc dx1 0" />\r
-      <gd name="y1" fmla="+- svc 0 dy1" />\r
-      <gd name="y2" fmla="+- svc 0 dy2" />\r
-      <gd name="iwd2" fmla="*/ swd2 a 50000" />\r
-      <gd name="ihd2" fmla="*/ shd2 a 50000" />\r
-      <gd name="sdx1" fmla="cos iwd2 20520000" />\r
-      <gd name="sdx2" fmla="cos iwd2 3240000" />\r
-      <gd name="sdy1" fmla="sin ihd2 3240000" />\r
-      <gd name="sdy2" fmla="sin ihd2 20520000" />\r
-      <gd name="sx1" fmla="+- hc 0 sdx1" />\r
-      <gd name="sx2" fmla="+- hc 0 sdx2" />\r
-      <gd name="sx3" fmla="+- hc sdx2 0" />\r
-      <gd name="sx4" fmla="+- hc sdx1 0" />\r
-      <gd name="sy1" fmla="+- svc 0 sdy1" />\r
-      <gd name="sy2" fmla="+- svc 0 sdy2" />\r
-      <gd name="sy3" fmla="+- svc ihd2 0" />\r
-      <gd name="yAdj" fmla="+- svc 0 ihd2" />\r
-    </gdLst>\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefY="adj" minY="0" maxY="50000">\r
-        <pos x="hc" y="yAdj" />\r
-      </ahXY>\r
-    </ahLst>\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="x1" y="y1" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="x2" y="y2" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="x3" y="y2" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="x4" y="y1" />\r
-      </cxn>\r
-    </cxnLst>\r
-    <rect l="sx1" t="sy1" r="sx4" b="sy3" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="x1" y="y1" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="sx2" y="sy1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="hc" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx3" y="sy1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx4" y="sy2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="hc" y="sy3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx1" y="sy2" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-  </star5>\r
-  <star6>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj" fmla="val 28868" />\r
-      <gd name="hf" fmla="val 115470" />\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a" fmla="pin 0 adj 50000" />\r
-      <gd name="swd2" fmla="*/ wd2 hf 100000" />\r
-      <gd name="dx1" fmla="cos swd2 1800000" />\r
-      <gd name="x1" fmla="+- hc 0 dx1" />\r
-      <gd name="x2" fmla="+- hc dx1 0" />\r
-      <gd name="y2" fmla="+- vc hd4 0" />\r
-      <gd name="iwd2" fmla="*/ swd2 a 50000" />\r
-      <gd name="ihd2" fmla="*/ hd2 a 50000" />\r
-      <gd name="sdx2" fmla="*/ iwd2 1 2" />\r
-      <gd name="sx1" fmla="+- hc 0 iwd2" />\r
-      <gd name="sx2" fmla="+- hc 0 sdx2" />\r
-      <gd name="sx3" fmla="+- hc sdx2 0" />\r
-      <gd name="sx4" fmla="+- hc iwd2 0" />\r
-      <gd name="sdy1" fmla="sin ihd2 3600000" />\r
-      <gd name="sy1" fmla="+- vc 0 sdy1" />\r
-      <gd name="sy2" fmla="+- vc sdy1 0" />\r
-      <gd name="yAdj" fmla="+- vc 0 ihd2" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefY="adj" minY="0" maxY="50000">\r
-        <pos x="hc" y="yAdj" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="x2" y="hd4" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="x2" y="y2" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="x1" y="y2" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="x1" y="hd4" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="sx1" t="sy1" r="sx4" b="sy2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="x1" y="hd4" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="sx2" y="sy1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="hc" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx3" y="sy1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="hd4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx4" y="vc" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx3" y="sy2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="hc" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx2" y="sy2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx1" y="vc" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </star6>\r
-  <star7>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj" fmla="val 34601" />\r
-      <gd name="hf" fmla="val 102572" />\r
-      <gd name="vf" fmla="val 105210" />\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a" fmla="pin 0 adj 50000" />\r
-      <gd name="swd2" fmla="*/ wd2 hf 100000" />\r
-      <gd name="shd2" fmla="*/ hd2 vf 100000" />\r
-      <gd name="svc" fmla="*/ vc  vf 100000" />\r
-      <gd name="dx1" fmla="*/ swd2 97493 100000" />\r
-      <gd name="dx2" fmla="*/ swd2 78183 100000" />\r
-      <gd name="dx3" fmla="*/ swd2 43388 100000" />\r
-      <gd name="dy1" fmla="*/ shd2 62349 100000" />\r
-      <gd name="dy2" fmla="*/ shd2 22252 100000" />\r
-      <gd name="dy3" fmla="*/ shd2 90097 100000" />\r
-      <gd name="x1" fmla="+- hc 0 dx1" />\r
-      <gd name="x2" fmla="+- hc 0 dx2" />\r
-      <gd name="x3" fmla="+- hc 0 dx3" />\r
-      <gd name="x4" fmla="+- hc dx3 0" />\r
-      <gd name="x5" fmla="+- hc dx2 0" />\r
-      <gd name="x6" fmla="+- hc dx1 0" />\r
-      <gd name="y1" fmla="+- svc 0 dy1" />\r
-      <gd name="y2" fmla="+- svc dy2 0" />\r
-      <gd name="y3" fmla="+- svc dy3 0" />\r
-      <gd name="iwd2" fmla="*/ swd2 a 50000" />\r
-      <gd name="ihd2" fmla="*/ shd2 a 50000" />\r
-      <gd name="sdx1" fmla="*/ iwd2 97493 100000" />\r
-      <gd name="sdx2" fmla="*/ iwd2 78183 100000" />\r
-      <gd name="sdx3" fmla="*/ iwd2 43388 100000" />\r
-      <gd name="sx1" fmla="+- hc 0 sdx1" />\r
-      <gd name="sx2" fmla="+- hc 0 sdx2" />\r
-      <gd name="sx3" fmla="+- hc 0 sdx3" />\r
-      <gd name="sx4" fmla="+- hc sdx3 0" />\r
-      <gd name="sx5" fmla="+- hc sdx2 0" />\r
-      <gd name="sx6" fmla="+- hc sdx1 0" />\r
-      <gd name="sdy1" fmla="*/ ihd2 90097 100000" />\r
-      <gd name="sdy2" fmla="*/ ihd2 22252 100000" />\r
-      <gd name="sdy3" fmla="*/ ihd2 62349 100000" />\r
-      <gd name="sy1" fmla="+- svc 0 sdy1" />\r
-      <gd name="sy2" fmla="+- svc 0 sdy2" />\r
-      <gd name="sy3" fmla="+- svc sdy3 0" />\r
-      <gd name="sy4" fmla="+- svc ihd2 0" />\r
-      <gd name="yAdj" fmla="+- svc 0 ihd2" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefY="adj" minY="0" maxY="50000">\r
-        <pos x="hc" y="yAdj" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="x5" y="y1" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="x6" y="y2" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="x4" y="y3" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="x3" y="y3" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="x1" y="y2" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="x2" y="y1" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="sx2" t="sy1" r="sx5" b="sy3" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="x1" y="y2" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="sx1" y="sy2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx3" y="sy1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="hc" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx4" y="sy1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x5" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx6" y="sy2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x6" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx5" y="sy3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="hc" y="sy4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx2" y="sy3" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </star7>\r
-  <star8>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj" fmla="val 37500" />\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a" fmla="pin 0 adj 50000" />\r
-      <gd name="dx1" fmla="cos wd2 2700000" />\r
-      <gd name="x1" fmla="+- hc 0 dx1" />\r
-      <gd name="x2" fmla="+- hc dx1 0" />\r
-      <gd name="dy1" fmla="sin hd2 2700000" />\r
-      <gd name="y1" fmla="+- vc 0 dy1" />\r
-      <gd name="y2" fmla="+- vc dy1 0" />\r
-      <gd name="iwd2" fmla="*/ wd2 a 50000" />\r
-      <gd name="ihd2" fmla="*/ hd2 a 50000" />\r
-      <gd name="sdx1" fmla="*/ iwd2 92388 100000" />\r
-      <gd name="sdx2" fmla="*/ iwd2 38268 100000" />\r
-      <gd name="sdy1" fmla="*/ ihd2 92388 100000" />\r
-      <gd name="sdy2" fmla="*/ ihd2 38268 100000" />\r
-      <gd name="sx1" fmla="+- hc 0 sdx1" />\r
-      <gd name="sx2" fmla="+- hc 0 sdx2" />\r
-      <gd name="sx3" fmla="+- hc sdx2 0" />\r
-      <gd name="sx4" fmla="+- hc sdx1 0" />\r
-      <gd name="sy1" fmla="+- vc 0 sdy1" />\r
-      <gd name="sy2" fmla="+- vc 0 sdy2" />\r
-      <gd name="sy3" fmla="+- vc sdy2 0" />\r
-      <gd name="sy4" fmla="+- vc sdy1 0" />\r
-      <gd name="yAdj" fmla="+- vc 0 ihd2" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefY="adj" minY="0" maxY="50000">\r
-        <pos x="hc" y="yAdj" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="x2" y="y2" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="x1" y="y2" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="x1" y="y1" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="x2" y="y1" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="sx1" t="sy1" r="sx4" b="sy4" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="vc" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="sx1" y="sy2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx2" y="sy1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="hc" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx3" y="sy1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx4" y="sy2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="vc" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx4" y="sy3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx3" y="sy4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="hc" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx2" y="sy4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="sx1" y="sy3" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </star8>\r
-  <straightConnector1>\r
-    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path fill="none">\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-      </path>\r
-    </pathLst>\r
-  </straightConnector1>\r
-  <stripedRightArrow>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 50000" />\r
-\r
-      <gd name="adj2" fmla="val 50000" />\r
-\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="maxAdj2" fmla="*/ 84375 w ss" />\r
-\r
-      <gd name="a1" fmla="pin 0 adj1 100000" />\r
-      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
-      <gd name="x4" fmla="*/ ss 5 32" />\r
-      <gd name="dx5" fmla="*/ ss a2 100000" />\r
-      <gd name="x5" fmla="+- r 0 dx5" />\r
-      <gd name="dy1" fmla="*/ h a1 200000" />\r
-      <gd name="y1" fmla="+- vc 0 dy1" />\r
-      <gd name="y2" fmla="+- vc dy1 0" />\r
-      <gd name="dx6" fmla="*/ dy1 dx5 hd2" />\r
-      <gd name="x6" fmla="+- r 0 dx6" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefY="adj1" minY="0" maxY="100000">\r
-        <pos x="l" y="y1" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj2" minX="0" maxX="maxAdj2">\r
-        <pos x="x5" y="t" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="x5" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="x5" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="x4" t="y1" r="x6" b="y2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="y1" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="ssd32" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="ssd32" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="y2" />\r
-        </lnTo>\r
-        <close />\r
-        <moveTo>\r
-          <pt x="ssd16" y="y1" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="ssd8" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="ssd8" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="ssd16" y="y2" />\r
-        </lnTo>\r
-        <close />\r
-        <moveTo>\r
-          <pt x="x4" y="y1" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x5" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x5" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="vc" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x5" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x5" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y2" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </stripedRightArrow>\r
-  <sun>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj" fmla="val 25000" />\r
-\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a" fmla="pin 12500 adj 46875" />\r
-      <gd name="g0" fmla="+- 50000 0 a" />\r
-      <gd name="g1" fmla="*/ g0 30274 32768" />\r
-      <gd name="g2" fmla="*/ g0 12540 32768" />\r
-      <gd name="g3" fmla="+- g1 50000 0" />\r
-      <gd name="g4" fmla="+- g2 50000 0" />\r
-      <gd name="g5" fmla="+- 50000 0 g1" />\r
-      <gd name="g6" fmla="+- 50000 0 g2" />\r
-      <gd name="g7" fmla="*/ g0 23170 32768" />\r
-      <gd name="g8" fmla="+- 50000 g7 0" />\r
-      <gd name="g9" fmla="+- 50000 0 g7" />\r
-      <gd name="g10" fmla="*/ g5 3 4" />\r
-      <gd name="g11" fmla="*/ g6 3 4" />\r
-      <gd name="g12" fmla="+- g10 3662 0" />\r
-      <gd name="g13" fmla="+- g11 3662 0" />\r
-      <gd name="g14" fmla="+- g11 12500 0" />\r
-      <gd name="g15" fmla="+- 100000 0 g10" />\r
-      <gd name="g16" fmla="+- 100000 0 g12" />\r
-      <gd name="g17" fmla="+- 100000 0 g13" />\r
-      <gd name="g18" fmla="+- 100000 0 g14" />\r
-      <gd name="ox1" fmla="*/ w 18436 21600" />\r
-      <gd name="oy1" fmla="*/ h 3163 21600" />\r
-      <gd name="ox2" fmla="*/ w 3163 21600" />\r
-      <gd name="oy2" fmla="*/ h 18436 21600" />\r
-      <gd name="x8" fmla="*/ w g8 100000" />\r
-      <gd name="x9" fmla="*/ w g9 100000" />\r
-      <gd name="x10" fmla="*/ w g10 100000" />\r
-      <gd name="x12" fmla="*/ w g12 100000" />\r
-      <gd name="x13" fmla="*/ w g13 100000" />\r
-      <gd name="x14" fmla="*/ w g14 100000" />\r
-      <gd name="x15" fmla="*/ w g15 100000" />\r
-      <gd name="x16" fmla="*/ w g16 100000" />\r
-      <gd name="x17" fmla="*/ w g17 100000" />\r
-      <gd name="x18" fmla="*/ w g18 100000" />\r
-      <gd name="x19" fmla="*/ w a 100000" />\r
-      <gd name="wR" fmla="*/ w g0 100000" />\r
-      <gd name="hR" fmla="*/ h g0 100000" />\r
-      <gd name="y8" fmla="*/ h g8 100000" />\r
-      <gd name="y9" fmla="*/ h g9 100000" />\r
-      <gd name="y10" fmla="*/ h g10 100000" />\r
-      <gd name="y12" fmla="*/ h g12 100000" />\r
-      <gd name="y13" fmla="*/ h g13 100000" />\r
-      <gd name="y14" fmla="*/ h g14 100000" />\r
-      <gd name="y15" fmla="*/ h g15 100000" />\r
-      <gd name="y16" fmla="*/ h g16 100000" />\r
-      <gd name="y17" fmla="*/ h g17 100000" />\r
-      <gd name="y18" fmla="*/ h g18 100000" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj" minX="12500" maxX="46875">\r
-        <pos x="x19" y="vc" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="x9" t="y9" r="x8" b="y8" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="r" y="vc" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x15" y="y18" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x15" y="y14" />\r
-        </lnTo>\r
-        <close />\r
-        <moveTo>\r
-          <pt x="ox1" y="oy1" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x16" y="y13" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x17" y="y12" />\r
-        </lnTo>\r
-        <close />\r
-        <moveTo>\r
-          <pt x="hc" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x18" y="y10" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x14" y="y10" />\r
-        </lnTo>\r
-        <close />\r
-        <moveTo>\r
-          <pt x="ox2" y="oy1" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x13" y="y12" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x12" y="y13" />\r
-        </lnTo>\r
-        <close />\r
-        <moveTo>\r
-          <pt x="l" y="vc" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x10" y="y14" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x10" y="y18" />\r
-        </lnTo>\r
-        <close />\r
-        <moveTo>\r
-          <pt x="ox2" y="oy2" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x12" y="y17" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x13" y="y16" />\r
-        </lnTo>\r
-        <close />\r
-        <moveTo>\r
-          <pt x="hc" y="b" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x14" y="y15" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x18" y="y15" />\r
-        </lnTo>\r
-        <close />\r
-        <moveTo>\r
-          <pt x="ox1" y="oy2" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x17" y="y16" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x16" y="y17" />\r
-        </lnTo>\r
-        <close />\r
-        <moveTo>\r
-          <pt x="x19" y="vc" />\r
-        </moveTo>\r
-        <arcTo wR="wR" hR="hR" stAng="cd2" swAng="21600000" />\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </sun>\r
-  <swooshArrow>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 25000" />\r
-\r
-      <gd name="adj2" fmla="val 16667" />\r
-\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-\r
-\r
-      <gd name="a1" fmla="pin 1 adj1 75000" />\r
-\r
-      <gd name="maxAdj2" fmla="*/ 70000 w ss" />\r
-\r
-      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
-      <gd name="ad1" fmla="*/ h a1 100000" />\r
-      <gd name="ad2" fmla="*/ ss a2 100000" />\r
-\r
-      <gd name="xB" fmla="+- r 0 ad2" />\r
-      <gd name="yB" fmla="+- t ssd8 0" />\r
-\r
-      <gd name="alfa" fmla="*/ cd4 1 14" />\r
-\r
-      <gd name="dx0" fmla="tan ssd8 alfa" />\r
-      <gd name="xC" fmla="+- xB 0 dx0" />\r
-\r
-      <gd name="dx1" fmla="tan ad1 alfa" />\r
-\r
-      <gd name="yF" fmla="+- yB ad1 0" />\r
-      <gd name="xF" fmla="+- xB dx1 0" />\r
-\r
-      <gd name="xE" fmla="+- xF dx0 0" />\r
-      <gd name="yE" fmla="+- yF ssd8 0" />\r
-\r
-      <gd name="dy2" fmla="+- yE 0 t" />\r
-      <gd name="dy22" fmla="*/ dy2 1 2" />\r
-      <gd name="dy3" fmla="*/ h 1 20" />\r
-      <gd name="yD" fmla="+- t dy22 dy3" />\r
-\r
-\r
-      <gd name="dy4" fmla="*/ hd6 1 1" />\r
-      <gd name="yP1" fmla="+- hd6 dy4 0" />\r
-      <gd name="xP1" fmla="val wd6" />\r
-\r
-\r
-      <gd name="dy5" fmla="*/ hd6 1 2" />\r
-      <gd name="yP2" fmla="+- yF dy5 0" />\r
-      <gd name="xP2" fmla="val wd4" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefY="adj1" minY="1" maxY="75000">\r
-        <pos x="xF" y="yF" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj2" minX="0" maxX="maxAdj2">\r
-        <pos x="xB" y="yB" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="cd4">\r
-        <pos x="l" y="b" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="xC" y="t" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="yD" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="xE" y="yE" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="b" />\r
-        </moveTo>\r
-        <quadBezTo>\r
-          <pt x="xP1" y="yP1" />\r
-          <pt x="xB" y="yB" />\r
-        </quadBezTo>\r
-        <lnTo>\r
-          <pt x="xC" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="yD" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xE" y="yE" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xF" y="yF" />\r
-        </lnTo>\r
-        <quadBezTo>\r
-          <pt x="xP2" y="yP2" />\r
-          <pt x="l" y="b" />\r
-        </quadBezTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </swooshArrow>\r
-  <teardrop>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj" fmla="val 100000" />\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a" fmla="pin 0 adj 200000" />\r
-      <gd name="r2" fmla="sqrt 2" />\r
-      <gd name="tw" fmla="*/ wd2 r2 1" />\r
-      <gd name="th" fmla="*/ hd2 r2 1" />\r
-      <gd name="sw" fmla="*/ tw a 100000" />\r
-      <gd name="sh" fmla="*/ th a 100000" />\r
-      <gd name="dx1" fmla="cos sw 2700000" />\r
-      <gd name="dy1" fmla="sin sh 2700000" />\r
-      <gd name="x1" fmla="+- hc dx1 0" />\r
-      <gd name="y1" fmla="+- vc 0 dy1" />\r
-      <gd name="x2" fmla="+/ hc x1 2" />\r
-      <gd name="y2" fmla="+/ vc y1 2" />\r
-      <gd name="idx" fmla="cos wd2 2700000" />\r
-      <gd name="idy" fmla="sin hd2 2700000" />\r
-      <gd name="il" fmla="+- hc 0 idx" />\r
-      <gd name="ir" fmla="+- hc idx 0" />\r
-      <gd name="it" fmla="+- vc 0 idy" />\r
-      <gd name="ib" fmla="+- vc idy 0" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj" minX="0" maxX="200000">\r
-        <pos x="x1" y="t" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="ir" y="ib" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="il" y="ib" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="il" y="it" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="x1" y="y1" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="vc" />\r
-        </moveTo>\r
-        <arcTo wR="wd2" hR="hd2" stAng="cd2" swAng="cd4" />\r
-        <quadBezTo>\r
-          <pt x="x2" y="t" />\r
-          <pt x="x1" y="y1" />\r
-        </quadBezTo>\r
-        <quadBezTo>\r
-          <pt x="r" y="y2" />\r
-          <pt x="r" y="vc" />\r
-        </quadBezTo>\r
-        <arcTo wR="wd2" hR="hd2" stAng="0" swAng="cd4" />\r
-        <arcTo wR="wd2" hR="hd2" stAng="cd4" swAng="cd4" />\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </teardrop>\r
-  <trapezoid>\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj" fmla="val 25000" />\r
-    </avLst>\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="maxAdj" fmla="*/ 50000 w ss" />\r
-      <gd name="a" fmla="pin 0 adj maxAdj" />\r
-      <gd name="x1" fmla="*/ ss a 200000" />\r
-      <gd name="x2" fmla="*/ ss a 100000" />\r
-      <gd name="x3" fmla="+- r 0 x2" />\r
-      <gd name="x4" fmla="+- r 0 x1" />\r
-      <gd name="il" fmla="*/ wd3 a maxAdj" />\r
-      <gd name="it" fmla="*/ hd3 a maxAdj" />\r
-      <gd name="ir" fmla="+- r 0 il" />\r
-    </gdLst>\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj" minX="0" maxX="maxAdj">\r
-        <pos x="x2" y="t" />\r
-      </ahXY>\r
-    </ahLst>\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="x1" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="x4" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-    <rect l="il" t="it" r="ir" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="b" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x2" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-  </trapezoid>\r
-  <triangle>\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj" fmla="val 50000" />\r
-    </avLst>\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a" fmla="pin 0 adj 100000" />\r
-      <gd name="x1" fmla="*/ w a 200000" />\r
-      <gd name="x2" fmla="*/ w a 100000" />\r
-      <gd name="x3" fmla="+- x1 wd2 0" />\r
-    </gdLst>\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj" minX="0" maxX="100000">\r
-        <pos x="x2" y="t" />\r
-      </ahXY>\r
-    </ahLst>\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="x2" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="x1" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="l" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="x2" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="r" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="x3" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-    <rect l="x1" t="vc" r="x3" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="b" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x2" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-  </triangle>\r
-  <upArrowCallout>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 25000" />\r
-\r
-      <gd name="adj2" fmla="val 25000" />\r
-\r
-      <gd name="adj3" fmla="val 25000" />\r
-\r
-      <gd name="adj4" fmla="val 64977" />\r
-\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="maxAdj2" fmla="*/ 50000 w ss" />\r
-\r
-      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
-      <gd name="maxAdj1" fmla="*/ a2 2 1" />\r
-\r
-      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
-      <gd name="maxAdj3" fmla="*/ 100000 h ss" />\r
-\r
-      <gd name="a3" fmla="pin 0 adj3 maxAdj3" />\r
-      <gd name="q2" fmla="*/ a3 ss h" />\r
-\r
-      <gd name="maxAdj4" fmla="+- 100000 0 q2" />\r
-\r
-      <gd name="a4" fmla="pin 0 adj4 maxAdj4" />\r
-      <gd name="dx1" fmla="*/ ss a2 100000" />\r
-\r
-      <gd name="dx2" fmla="*/ ss a1 200000" />\r
-\r
-      <gd name="x1" fmla="+- hc 0 dx1" />\r
-      <gd name="x2" fmla="+- hc 0 dx2" />\r
-      <gd name="x3" fmla="+- hc dx2 0" />\r
-      <gd name="x4" fmla="+- hc dx1 0" />\r
-      <gd name="y1" fmla="*/ ss a3 100000" />\r
-\r
-      <gd name="dy2" fmla="*/ h a4 100000" />\r
-\r
-      <gd name="y2" fmla="+- b 0 dy2" />\r
-      <gd name="y3" fmla="+/ y2 b 2" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj1" minX="0" maxX="maxAdj1">\r
-        <pos x="x2" y="y1" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj2" minX="0" maxX="maxAdj2">\r
-        <pos x="x1" y="t" />\r
-      </ahXY>\r
-      <ahXY gdRefY="adj3" minY="0" maxY="maxAdj3">\r
-        <pos x="r" y="y1" />\r
-      </ahXY>\r
-      <ahXY gdRefY="adj4" minY="0" maxY="maxAdj4">\r
-        <pos x="l" y="y2" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="y2" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="y2" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="l" t="y2" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="y2" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="hc" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </upArrowCallout>\r
-  <upArrow>\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 50000" />\r
-      <gd name="adj2" fmla="val 50000" />\r
-    </avLst>\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="maxAdj2" fmla="*/ 50000 h ss" />\r
-      <gd name="a1" fmla="pin 0 adj1 100000" />\r
-      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
-      <gd name="y2" fmla="*/ ss a2 100000" />\r
-      <gd name="y3" fmla="+- b 0 y2" />\r
-      <gd name="dx1" fmla="*/ w a1 200000" />\r
-      <gd name="x1" fmla="+- hc 0 dx1" />\r
-      <gd name="x2" fmla="+- hc dx1 0" />\r
-      <gd name="dy1" fmla="*/ x1 y2 wd2" />\r
-      <gd name="y1" fmla="+- y2 0 dy1" />\r
-      <gd name="y4" fmla="+- y3 dy1 0" />\r
-    </gdLst>\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj1" minX="0" maxX="100000">\r
-        <pos x="x1" y="y3" />\r
-      </ahXY>\r
-      <ahXY gdRefY="adj2" minY="0" maxY="maxAdj2">\r
-        <pos x="l" y="y2" />\r
-      </ahXY>\r
-    </ahLst>\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="y2" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="x1" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="y3" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="y3" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="x2" y="vc" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="y2" />\r
-      </cxn>\r
-    </cxnLst>\r
-    <rect l="x1" t="y1" r="x2" b="y4" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="y2" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="hc" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y2" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-  </upArrow>\r
-  <upDownArrow>\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 50000" />\r
-      <gd name="adj2" fmla="val 50000" />\r
-    </avLst>\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="maxAdj2" fmla="*/ 50000 h ss" />\r
-      <gd name="a1" fmla="pin 0 adj1 100000" />\r
-      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
-      <gd name="y2" fmla="*/ ss a2 100000" />\r
-      <gd name="y3" fmla="+- b 0 y2" />\r
-      <gd name="dx1" fmla="*/ w a1 200000" />\r
-      <gd name="x1" fmla="+- hc 0 dx1" />\r
-      <gd name="x2" fmla="+- hc dx1 0" />\r
-      <gd name="dy1" fmla="*/ x1 y2 wd2" />\r
-      <gd name="y1" fmla="+- y2 0 dy1" />\r
-      <gd name="y4" fmla="+- y3 dy1 0" />\r
-    </gdLst>\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj1" minX="0" maxX="100000">\r
-        <pos x="x1" y="y3" />\r
-      </ahXY>\r
-      <ahXY gdRefY="adj2" minY="0" maxY="maxAdj2">\r
-        <pos x="l" y="y2" />\r
-      </ahXY>\r
-    </ahLst>\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="y2" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="x1" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="y3" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="y3" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="x2" y="vc" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="y2" />\r
-      </cxn>\r
-    </cxnLst>\r
-    <rect l="x1" t="y1" r="x2" b="y4" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="y2" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="hc" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="hc" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y2" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-  </upDownArrow>\r
-  <upDownArrowCallout>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 25000" />\r
-\r
-      <gd name="adj2" fmla="val 25000" />\r
-\r
-      <gd name="adj3" fmla="val 25000" />\r
-\r
-      <gd name="adj4" fmla="val 48123" />\r
-\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="maxAdj2" fmla="*/ 50000 w ss" />\r
-\r
-      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
-      <gd name="maxAdj1" fmla="*/ a2 2 1" />\r
-\r
-      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
-      <gd name="maxAdj3" fmla="*/ 50000 h ss" />\r
-\r
-      <gd name="a3" fmla="pin 0 adj3 maxAdj3" />\r
-      <gd name="q2" fmla="*/ a3 ss hd2" />\r
-\r
-      <gd name="maxAdj4" fmla="+- 100000 0 q2" />\r
-\r
-      <gd name="a4" fmla="pin 0 adj4 maxAdj4" />\r
-      <gd name="dx1" fmla="*/ ss a2 100000" />\r
-\r
-      <gd name="dx2" fmla="*/ ss a1 200000" />\r
-\r
-      <gd name="x1" fmla="+- hc 0 dx1" />\r
-      <gd name="x2" fmla="+- hc 0 dx2" />\r
-      <gd name="x3" fmla="+- hc dx2 0" />\r
-      <gd name="x4" fmla="+- hc dx1 0" />\r
-      <gd name="y1" fmla="*/ ss a3 100000" />\r
-\r
-      <gd name="y4" fmla="+- b 0 y1" />\r
-\r
-      <gd name="dy2" fmla="*/ h a4 200000" />\r
-\r
-      <gd name="y2" fmla="+- vc 0 dy2" />\r
-\r
-      <gd name="y3" fmla="+- vc dy2 0" />\r
-\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj1" minX="0" maxX="maxAdj1">\r
-        <pos x="x2" y="y1" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj2" minX="0" maxX="maxAdj2">\r
-        <pos x="x1" y="t" />\r
-      </ahXY>\r
-      <ahXY gdRefY="adj3" minY="0" maxY="maxAdj3">\r
-        <pos x="r" y="y1" />\r
-      </ahXY>\r
-      <ahXY gdRefY="adj4" minY="0" maxY="maxAdj4">\r
-        <pos x="l" y="y2" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="l" t="y2" r="r" b="y3" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="y2" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="hc" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x3" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x4" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="hc" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="y3" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </upDownArrowCallout>\r
-  <uturnArrow>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 25000" />\r
-\r
-      <gd name="adj2" fmla="val 25000" />\r
-\r
-      <gd name="adj3" fmla="val 25000" />\r
-\r
-      <gd name="adj4" fmla="val 43750" />\r
-\r
-      <gd name="adj5" fmla="val 75000" />\r
-\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a2" fmla="pin 0 adj2 25000" />\r
-      <gd name="maxAdj1" fmla="*/ a2 2 1" />\r
-      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
-      <gd name="q2" fmla="*/ a1 ss h" />\r
-\r
-      <gd name="q3" fmla="+- 100000 0 q2" />\r
-\r
-      <gd name="maxAdj3" fmla="*/ q3 h ss" />\r
-\r
-      <gd name="a3" fmla="pin 0 adj3 maxAdj3" />\r
-      <gd name="q1" fmla="+- a3 a1 0" />\r
-      <gd name="minAdj5" fmla="*/ q1 ss h" />\r
-      <gd name="a5" fmla="pin minAdj5 adj5 100000" />\r
-      <gd name="th" fmla="*/ ss a1 100000" />\r
-\r
-      <gd name="aw2" fmla="*/ ss a2 100000" />\r
-\r
-      <gd name="th2" fmla="*/ th 1 2" />\r
-      <gd name="dh2" fmla="+- aw2 0 th2" />\r
-\r
-      <gd name="y5" fmla="*/ h a5 100000" />\r
-\r
-      <gd name="ah" fmla="*/ ss a3 100000" />\r
-\r
-      <gd name="y4" fmla="+- y5 0 ah" />\r
-      <gd name="x9" fmla="+- r 0 dh2" />\r
-\r
-      <gd name="bw" fmla="*/ x9 1 2" />\r
-      <gd name="bs" fmla="min bw y4" />\r
-      <gd name="maxAdj4" fmla="*/ bs 100000 ss" />\r
-      <gd name="a4" fmla="pin 0 adj4 maxAdj4" />\r
-\r
-\r
-      <gd name="bd" fmla="*/ ss a4 100000" />\r
-\r
-\r
-\r
-      <gd name="bd3" fmla="+- bd 0 th" />\r
-      <gd name="bd2" fmla="max bd3 0" />\r
-      <gd name="x3" fmla="+- th bd2 0" />\r
-\r
-      <gd name="x8" fmla="+- r 0 aw2" />\r
-\r
-      <gd name="x6" fmla="+- x8 0 aw2" />\r
-\r
-      <gd name="x7" fmla="+- x6 dh2 0" />\r
-\r
-      <gd name="x4" fmla="+- x9 0 bd" />\r
-\r
-      <gd name="x5" fmla="+- x7 0 bd2" />\r
-\r
-      <gd name="cx" fmla="+/ th x7 2" />\r
-\r
-\r
-\r
-\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj1" minX="0" maxX="maxAdj1">\r
-        <pos x="th" y="b" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj2" minX="0" maxX="25000">\r
-        <pos x="x6" y="b" />\r
-      </ahXY>\r
-      <ahXY gdRefY="adj3" minY="0" maxY="maxAdj3">\r
-        <pos x="x6" y="y4" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj4" minX="0" maxX="maxAdj4">\r
-        <pos x="bd" y="t" />\r
-      </ahXY>\r
-      <ahXY gdRefY="adj5" minY="minAdj5" maxY="100000">\r
-        <pos x="r" y="y5" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="cd4">\r
-        <pos x="x6" y="y4" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="x8" y="y5" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="y4" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="cx" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="th2" y="b" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="b" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="l" y="bd" />\r
-        </lnTo>\r
-        <arcTo wR="bd" hR="bd" stAng="cd2" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="x4" y="t" />\r
-        </lnTo>\r
-        <arcTo wR="bd" hR="bd" stAng="3cd4" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="x9" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x8" y="y5" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x6" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x7" y="y4" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x7" y="x3" />\r
-        </lnTo>\r
-        <arcTo wR="bd2" hR="bd2" stAng="0" swAng="-5400000" />\r
-        <lnTo>\r
-          <pt x="x3" y="th" />\r
-        </lnTo>\r
-        <arcTo wR="bd2" hR="bd2" stAng="3cd4" swAng="-5400000" />\r
-        <lnTo>\r
-          <pt x="th" y="b" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </uturnArrow>\r
-  <verticalScroll>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj" fmla="val 12500" />\r
-\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a" fmla="pin 0 adj 25000" />\r
-      <gd name="ch" fmla="*/ ss a 100000" />\r
-\r
-      <gd name="ch2" fmla="*/ ch 1 2" />\r
-\r
-      <gd name="ch4" fmla="*/ ch 1 4" />\r
-\r
-\r
-\r
-\r
-\r
-      <gd name="x3" fmla="+- ch ch2 0" />\r
-\r
-      <gd name="x4" fmla="+- ch ch 0" />\r
-\r
-      <gd name="x6" fmla="+- r 0 ch" />\r
-\r
-      <gd name="x7" fmla="+- r 0 ch2" />\r
-\r
-      <gd name="x5" fmla="+- x6 0 ch2" />\r
-\r
-\r
-\r
-\r
-\r
-      <gd name="y3" fmla="+- b 0 ch" />\r
-\r
-      <gd name="y4" fmla="+- b 0 ch2" />\r
-\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefY="adj" minY="0" maxY="25000">\r
-        <pos x="l" y="ch" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="ch" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="x6" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="ch" t="ch" r="x6" b="y4" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path stroke="false" extrusionOk="false">\r
-\r
-        <moveTo>\r
-          <pt x="ch2" y="b" />\r
-        </moveTo>\r
-        <arcTo wR="ch2" hR="ch2" stAng="cd4" swAng="-5400000" />\r
-        <lnTo>\r
-          <pt x="ch2" y="y4" />\r
-        </lnTo>\r
-        <arcTo wR="ch4" hR="ch4" stAng="cd4" swAng="-10800000" />\r
-        <lnTo>\r
-          <pt x="ch" y="y3" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="ch" y="ch2" />\r
-        </lnTo>\r
-        <arcTo wR="ch2" hR="ch2" stAng="cd2" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="x7" y="t" />\r
-        </lnTo>\r
-        <arcTo wR="ch2" hR="ch2" stAng="3cd4" swAng="cd2" />\r
-        <lnTo>\r
-          <pt x="x6" y="ch" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x6" y="y4" />\r
-        </lnTo>\r
-        <arcTo wR="ch2" hR="ch2" stAng="0" swAng="cd4" />\r
-        <close />\r
-        <moveTo>\r
-          <pt x="x4" y="ch2" />\r
-        </moveTo>\r
-        <arcTo wR="ch2" hR="ch2" stAng="0" swAng="cd4" />\r
-        <arcTo wR="ch4" hR="ch4" stAng="cd4" swAng="cd2" />\r
-        <close />\r
-      </path>\r
-      <path fill="darkenLess" stroke="false" extrusionOk="false">\r
-\r
-        <moveTo>\r
-          <pt x="x4" y="ch2" />\r
-        </moveTo>\r
-        <arcTo wR="ch2" hR="ch2" stAng="0" swAng="cd4" />\r
-        <arcTo wR="ch4" hR="ch4" stAng="cd4" swAng="cd2" />\r
-        <close />\r
-        <moveTo>\r
-          <pt x="ch" y="y4" />\r
-        </moveTo>\r
-        <arcTo wR="ch2" hR="ch2" stAng="0" swAng="3cd4" />\r
-        <arcTo wR="ch4" hR="ch4" stAng="3cd4" swAng="cd2" />\r
-        <close />\r
-      </path>\r
-      <path fill="none" extrusionOk="false">\r
-\r
-        <moveTo>\r
-          <pt x="ch" y="y3" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="ch" y="ch2" />\r
-        </lnTo>\r
-        <arcTo wR="ch2" hR="ch2" stAng="cd2" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="x7" y="t" />\r
-        </lnTo>\r
-        <arcTo wR="ch2" hR="ch2" stAng="3cd4" swAng="cd2" />\r
-        <lnTo>\r
-          <pt x="x6" y="ch" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x6" y="y4" />\r
-        </lnTo>\r
-        <arcTo wR="ch2" hR="ch2" stAng="0" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="ch2" y="b" />\r
-        </lnTo>\r
-        <arcTo wR="ch2" hR="ch2" stAng="cd4" swAng="cd2" />\r
-        <close />\r
-        <moveTo>\r
-          <pt x="x3" y="t" />\r
-        </moveTo>\r
-        <arcTo wR="ch2" hR="ch2" stAng="3cd4" swAng="cd2" />\r
-        <arcTo wR="ch4" hR="ch4" stAng="cd4" swAng="cd2" />\r
-        <lnTo>\r
-          <pt x="x4" y="ch2" />\r
-        </lnTo>\r
-        <moveTo>\r
-          <pt x="x6" y="ch" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x3" y="ch" />\r
-        </lnTo>\r
-        <moveTo>\r
-          <pt x="ch2" y="y3" />\r
-        </moveTo>\r
-        <arcTo wR="ch4" hR="ch4" stAng="3cd4" swAng="cd2" />\r
-        <lnTo>\r
-          <pt x="ch" y="y4" />\r
-        </lnTo>\r
-        <moveTo>\r
-          <pt x="ch2" y="b" />\r
-        </moveTo>\r
-        <arcTo wR="ch2" hR="ch2" stAng="cd4" swAng="-5400000" />\r
-        <lnTo>\r
-          <pt x="ch" y="y3" />\r
-        </lnTo>\r
-      </path>\r
-    </pathLst>\r
-\r
-  </verticalScroll>\r
-  <wave>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val 12500" />\r
-\r
-      <gd name="adj2" fmla="val 0" />\r
-\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="a1" fmla="pin 0 adj1 20000" />\r
-      <gd name="a2" fmla="pin -10000 adj2 10000" />\r
-      <gd name="y1" fmla="*/ h a1 100000" />\r
-\r
-      <gd name="dy2" fmla="*/ y1 10 3" />\r
-      <gd name="y2" fmla="+- y1 0 dy2" />\r
-\r
-      <gd name="y3" fmla="+- y1 dy2 0" />\r
-\r
-      <gd name="y4" fmla="+- b 0 y1" />\r
-\r
-      <gd name="y5" fmla="+- y4 0 dy2" />\r
-\r
-      <gd name="y6" fmla="+- y4 dy2 0" />\r
-\r
-      <gd name="dx1" fmla="*/ w a2 100000" />\r
-\r
-      <gd name="of2" fmla="*/ w a2 50000" />\r
-\r
-      <gd name="x1" fmla="abs dx1" />\r
-\r
-      <gd name="dx2" fmla="?: of2 0 of2" />\r
-      <gd name="x2" fmla="+- l 0 dx2" />\r
-\r
-      <gd name="dx5" fmla="?: of2 of2 0" />\r
-      <gd name="x5" fmla="+- r 0 dx5" />\r
-\r
-      <gd name="dx3" fmla="+/ dx2 x5 3" />\r
-\r
-      <gd name="x3" fmla="+- x2 dx3 0" />\r
-\r
-      <gd name="x4" fmla="+/ x3 x5 2" />\r
-\r
-      <gd name="x6" fmla="+- l dx5 0" />\r
-\r
-      <gd name="x10" fmla="+- r dx2 0" />\r
-\r
-      <gd name="x7" fmla="+- x6 dx3 0" />\r
-\r
-      <gd name="x8" fmla="+/ x7 x10 2" />\r
-\r
-      <gd name="x9" fmla="+- r 0 x1" />\r
-\r
-      <gd name="xAdj" fmla="+- hc dx1 0" />\r
-      <gd name="xAdj2" fmla="+- hc 0 dx1" />\r
-      <gd name="il" fmla="max x2 x6" />\r
-      <gd name="ir" fmla="min x5 x10" />\r
-      <gd name="it" fmla="*/ h a1 50000" />\r
-      <gd name="ib" fmla="+- b 0 it" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefY="adj1" minY="0" maxY="20000">\r
-        <pos x="l" y="y1" />\r
-      </ahXY>\r
-      <ahXY gdRefX="adj2" minX="-10000" maxX="10000">\r
-        <pos x="xAdj" y="b" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="cd4">\r
-        <pos x="xAdj2" y="y1" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="x1" y="vc" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="xAdj" y="y4" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="x9" y="vc" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="x2" y="y1" />\r
-        </moveTo>\r
-        <cubicBezTo>\r
-          <pt x="x3" y="y2" />\r
-          <pt x="x4" y="y3" />\r
-          <pt x="x5" y="y1" />\r
-        </cubicBezTo>\r
-        <lnTo>\r
-          <pt x="x10" y="y4" />\r
-        </lnTo>\r
-        <cubicBezTo>\r
-          <pt x="x8" y="y6" />\r
-          <pt x="x7" y="y5" />\r
-          <pt x="x6" y="y4" />\r
-        </cubicBezTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </wave>\r
-  <wedgeEllipseCallout>\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val -20833" />\r
-      <gd name="adj2" fmla="val 62500" />\r
-    </avLst>\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="dxPos" fmla="*/ w adj1 100000" />\r
-      <gd name="dyPos" fmla="*/ h adj2 100000" />\r
-      <gd name="xPos" fmla="+- hc dxPos 0" />\r
-      <gd name="yPos" fmla="+- vc dyPos 0" />\r
-      <gd name="sdx" fmla="*/ dxPos h 1" />\r
-      <gd name="sdy" fmla="*/ dyPos w 1" />\r
-      <gd name="pang" fmla="at2 sdx sdy" />\r
-      <gd name="stAng" fmla="+- pang 660000 0" />\r
-      <gd name="enAng" fmla="+- pang 0 660000" />\r
-      <gd name="dx1" fmla="cos wd2 stAng" />\r
-      <gd name="dy1" fmla="sin hd2 stAng" />\r
-      <gd name="x1" fmla="+- hc dx1 0" />\r
-      <gd name="y1" fmla="+- vc dy1 0" />\r
-      <gd name="dx2" fmla="cos wd2 enAng" />\r
-      <gd name="dy2" fmla="sin hd2 enAng" />\r
-      <gd name="x2" fmla="+- hc dx2 0" />\r
-      <gd name="y2" fmla="+- vc dy2 0" />\r
-      <gd name="stAng1" fmla="at2 dx1 dy1" />\r
-      <gd name="enAng1" fmla="at2 dx2 dy2" />\r
-      <gd name="swAng1" fmla="+- enAng1 0 stAng1" />\r
-      <gd name="swAng2" fmla="+- swAng1 21600000 0" />\r
-      <gd name="swAng" fmla="?: swAng1 swAng1 swAng2" />\r
-      <gd name="idx" fmla="cos wd2 2700000" />\r
-      <gd name="idy" fmla="sin hd2 2700000" />\r
-      <gd name="il" fmla="+- hc 0 idx" />\r
-      <gd name="ir" fmla="+- hc idx 0" />\r
-      <gd name="it" fmla="+- vc 0 idy" />\r
-      <gd name="ib" fmla="+- vc idy 0" />\r
-    </gdLst>\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj1" minX="-2147483647" maxX="2147483647" gdRefY="adj2" minY="-2147483647" maxY="2147483647">\r
-        <pos x="xPos" y="yPos" />\r
-      </ahXY>\r
-    </ahLst>\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="il" y="it" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="il" y="ib" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="ir" y="ib" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-      <cxn ang="3cd4">\r
-        <pos x="ir" y="it" />\r
-      </cxn>\r
-      <cxn ang="pang">\r
-        <pos x="xPos" y="yPos" />\r
-      </cxn>\r
-    </cxnLst>\r
-    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="xPos" y="yPos" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x1" y="y1" />\r
-        </lnTo>\r
-        <arcTo wR="wd2" hR="hd2" stAng="stAng1" swAng="swAng" />\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-  </wedgeEllipseCallout>\r
-  <wedgeRectCallout>\r
-\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val -20833" />\r
-\r
-      <gd name="adj2" fmla="val 62500" />\r
-\r
-    </avLst>\r
-\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="dxPos" fmla="*/ w adj1 100000" />\r
-      <gd name="dyPos" fmla="*/ h adj2 100000" />\r
-      <gd name="xPos" fmla="+- hc dxPos 0" />\r
-      <gd name="yPos" fmla="+- vc dyPos 0" />\r
-      <gd name="dx" fmla="+- xPos 0 hc" />\r
-      <gd name="dy" fmla="+- yPos 0 vc" />\r
-      <gd name="dq" fmla="*/ dxPos h w" />\r
-      <gd name="ady" fmla="abs dyPos" />\r
-      <gd name="adq" fmla="abs dq" />\r
-      <gd name="dz" fmla="+- ady 0 adq" />\r
-      <gd name="xg1" fmla="?: dxPos 7 2" />\r
-      <gd name="xg2" fmla="?: dxPos 10 5" />\r
-      <gd name="x1" fmla="*/ w xg1 12" />\r
-      <gd name="x2" fmla="*/ w xg2 12" />\r
-      <gd name="yg1" fmla="?: dyPos 7 2" />\r
-      <gd name="yg2" fmla="?: dyPos 10 5" />\r
-      <gd name="y1" fmla="*/ h yg1 12" />\r
-      <gd name="y2" fmla="*/ h yg2 12" />\r
-      <gd name="t1" fmla="?: dxPos l xPos" />\r
-      <gd name="xl" fmla="?: dz l t1" />\r
-      <gd name="t2" fmla="?: dyPos x1 xPos" />\r
-      <gd name="xt" fmla="?: dz t2 x1" />\r
-      <gd name="t3" fmla="?: dxPos xPos r" />\r
-      <gd name="xr" fmla="?: dz r t3" />\r
-      <gd name="t4" fmla="?: dyPos xPos x1" />\r
-      <gd name="xb" fmla="?: dz t4 x1" />\r
-      <gd name="t5" fmla="?: dxPos y1 yPos" />\r
-      <gd name="yl" fmla="?: dz y1 t5" />\r
-      <gd name="t6" fmla="?: dyPos t yPos" />\r
-      <gd name="yt" fmla="?: dz t6 t" />\r
-      <gd name="t7" fmla="?: dxPos yPos y1" />\r
-      <gd name="yr" fmla="?: dz y1 t7" />\r
-      <gd name="t8" fmla="?: dyPos yPos b" />\r
-      <gd name="yb" fmla="?: dz t8 b" />\r
-    </gdLst>\r
-\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj1" minX="-2147483647" maxX="2147483647" gdRefY="adj2" minY="-2147483647" maxY="2147483647">\r
-        <pos x="xPos" y="yPos" />\r
-      </ahXY>\r
-    </ahLst>\r
-\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="xPos" y="yPos" />\r
-      </cxn>\r
-    </cxnLst>\r
-\r
-    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="t" />\r
-        </moveTo>\r
-        <lnTo>\r
-          <pt x="x1" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xt" y="yt" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xr" y="yr" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xb" y="yb" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xl" y="yl" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="y1" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-\r
-  </wedgeRectCallout>\r
-  <wedgeRoundRectCallout>\r
-    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="adj1" fmla="val -20833" />\r
-      <gd name="adj2" fmla="val 62500" />\r
-      <gd name="adj3" fmla="val 16667" />\r
-    </avLst>\r
-    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <gd name="dxPos" fmla="*/ w adj1 100000" />\r
-      <gd name="dyPos" fmla="*/ h adj2 100000" />\r
-      <gd name="xPos" fmla="+- hc dxPos 0" />\r
-      <gd name="yPos" fmla="+- vc dyPos 0" />\r
-      <gd name="dq" fmla="*/ dxPos h w" />\r
-      <gd name="ady" fmla="abs dyPos" />\r
-      <gd name="adq" fmla="abs dq" />\r
-      <gd name="dz" fmla="+- ady 0 adq" />\r
-      <gd name="xg1" fmla="?: dxPos 7 2" />\r
-      <gd name="xg2" fmla="?: dxPos 10 5" />\r
-      <gd name="x1" fmla="*/ w xg1 12" />\r
-      <gd name="x2" fmla="*/ w xg2 12" />\r
-      <gd name="yg1" fmla="?: dyPos 7 2" />\r
-      <gd name="yg2" fmla="?: dyPos 10 5" />\r
-      <gd name="y1" fmla="*/ h yg1 12" />\r
-      <gd name="y2" fmla="*/ h yg2 12" />\r
-      <gd name="t1" fmla="?: dxPos l xPos" />\r
-      <gd name="xl" fmla="?: dz l t1" />\r
-      <gd name="t2" fmla="?: dyPos x1 xPos" />\r
-      <gd name="xt" fmla="?: dz t2 x1" />\r
-      <gd name="t3" fmla="?: dxPos xPos r" />\r
-      <gd name="xr" fmla="?: dz r t3" />\r
-      <gd name="t4" fmla="?: dyPos xPos x1" />\r
-      <gd name="xb" fmla="?: dz t4 x1" />\r
-      <gd name="t5" fmla="?: dxPos y1 yPos" />\r
-      <gd name="yl" fmla="?: dz y1 t5" />\r
-      <gd name="t6" fmla="?: dyPos t yPos" />\r
-      <gd name="yt" fmla="?: dz t6 t" />\r
-      <gd name="t7" fmla="?: dxPos yPos y1" />\r
-      <gd name="yr" fmla="?: dz y1 t7" />\r
-      <gd name="t8" fmla="?: dyPos yPos b" />\r
-      <gd name="yb" fmla="?: dz t8 b" />\r
-      <gd name="u1" fmla="*/ ss adj3 100000" />\r
-      <gd name="u2" fmla="+- r 0 u1" />\r
-      <gd name="v2" fmla="+- b 0 u1" />\r
-      <gd name="il" fmla="*/ u1 29289 100000" />\r
-      <gd name="ir" fmla="+- r 0 il" />\r
-      <gd name="ib" fmla="+- b 0 il" />\r
-    </gdLst>\r
-    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <ahXY gdRefX="adj1" minX="-2147483647" maxX="2147483647" gdRefY="adj2" minY="-2147483647" maxY="2147483647">\r
-        <pos x="xPos" y="yPos" />\r
-      </ahXY>\r
-    </ahLst>\r
-    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <cxn ang="3cd4">\r
-        <pos x="hc" y="t" />\r
-      </cxn>\r
-      <cxn ang="cd2">\r
-        <pos x="l" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="hc" y="b" />\r
-      </cxn>\r
-      <cxn ang="0">\r
-        <pos x="r" y="vc" />\r
-      </cxn>\r
-      <cxn ang="cd4">\r
-        <pos x="xPos" y="yPos" />\r
-      </cxn>\r
-    </cxnLst>\r
-    <rect l="il" t="il" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
-    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
-      <path>\r
-        <moveTo>\r
-          <pt x="l" y="u1" />\r
-        </moveTo>\r
-        <arcTo wR="u1" hR="u1" stAng="cd2" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="x1" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xt" y="yt" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x2" y="t" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="u2" y="t" />\r
-        </lnTo>\r
-        <arcTo wR="u1" hR="u1" stAng="3cd4" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="r" y="y1" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xr" y="yr" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="r" y="v2" />\r
-        </lnTo>\r
-        <arcTo wR="u1" hR="u1" stAng="0" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="x2" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xb" y="yb" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="x1" y="b" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="u1" y="b" />\r
-        </lnTo>\r
-        <arcTo wR="u1" hR="u1" stAng="cd4" swAng="cd4" />\r
-        <lnTo>\r
-          <pt x="l" y="y2" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="xl" y="yl" />\r
-        </lnTo>\r
-        <lnTo>\r
-          <pt x="l" y="y1" />\r
-        </lnTo>\r
-        <close />\r
-      </path>\r
-    </pathLst>\r
-  </wedgeRoundRectCallout>\r
-</presetShapeDefinitons>\r
diff --git a/src/scratchpad/src/org/apache/poi/hslf/EncryptedSlideShow.java b/src/scratchpad/src/org/apache/poi/hslf/EncryptedSlideShow.java
deleted file mode 100644 (file)
index 07a01aa..0000000
+++ /dev/null
@@ -1,494 +0,0 @@
-/* ====================================================================
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-==================================================================== */
-
-package org.apache.poi.hslf;
-
-import java.io.OutputStream;
-import java.security.GeneralSecurityException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.NavigableMap;
-import java.util.TreeMap;
-
-import javax.crypto.Cipher;
-import javax.crypto.CipherOutputStream;
-
-import org.apache.poi.hslf.exceptions.CorruptPowerPointFileException;
-import org.apache.poi.hslf.exceptions.EncryptedPowerPointFileException;
-import org.apache.poi.hslf.record.DocumentEncryptionAtom;
-import org.apache.poi.hslf.record.PersistPtrHolder;
-import org.apache.poi.hslf.record.PositionDependentRecord;
-import org.apache.poi.hslf.record.Record;
-import org.apache.poi.hslf.record.UserEditAtom;
-import org.apache.poi.hssf.record.crypto.Biff8EncryptionKey;
-import org.apache.poi.poifs.crypt.Decryptor;
-import org.apache.poi.poifs.crypt.EncryptionInfo;
-import org.apache.poi.poifs.crypt.Encryptor;
-import org.apache.poi.poifs.crypt.cryptoapi.CryptoAPIDecryptor;
-import org.apache.poi.poifs.crypt.cryptoapi.CryptoAPIEncryptor;
-import org.apache.poi.util.BitField;
-import org.apache.poi.util.Internal;
-import org.apache.poi.util.LittleEndian;
-
-/**
- * This class provides helper functions for encrypted PowerPoint documents.
- */
-@Internal
-public class EncryptedSlideShow {
-    DocumentEncryptionAtom dea;
-    CryptoAPIEncryptor enc = null;
-    CryptoAPIDecryptor dec = null;
-    Cipher cipher = null;
-    CipherOutputStream cyos = null;
-
-    private static final BitField fieldRecInst = new BitField(0xFFF0);
-    
-    protected EncryptedSlideShow(DocumentEncryptionAtom dea) {
-        this.dea = dea;
-    }
-
-    protected EncryptedSlideShow(byte[] docstream, NavigableMap<Integer,Record> recordMap) {
-        // check for DocumentEncryptionAtom, which would be at the last offset
-        // need to ignore already set UserEdit and PersistAtoms
-        UserEditAtom userEditAtomWithEncryption = null;
-        for (Map.Entry<Integer, Record> me : recordMap.descendingMap().entrySet()) {
-            Record r = me.getValue();
-            if (!(r instanceof UserEditAtom)) continue;
-            UserEditAtom uea = (UserEditAtom)r;
-            if (uea.getEncryptSessionPersistIdRef() != -1) {
-                userEditAtomWithEncryption = uea;
-                break;
-            }
-        }
-
-        if (userEditAtomWithEncryption == null) {
-            dea = null;
-            return;
-        }
-
-        Record r = recordMap.get(userEditAtomWithEncryption.getPersistPointersOffset());
-        assert(r instanceof PersistPtrHolder);
-        PersistPtrHolder ptr = (PersistPtrHolder)r;
-        
-        Integer encOffset = ptr.getSlideLocationsLookup().get(userEditAtomWithEncryption.getEncryptSessionPersistIdRef());
-        assert(encOffset != null);
-        
-        r = recordMap.get(encOffset);
-        if (r == null) {
-            r = Record.buildRecordAtOffset(docstream, encOffset);
-            recordMap.put(encOffset, r);
-        }
-        assert(r instanceof DocumentEncryptionAtom);
-        this.dea = (DocumentEncryptionAtom)r;
-        
-        CryptoAPIDecryptor dec = (CryptoAPIDecryptor)dea.getEncryptionInfo().getDecryptor();
-        String pass = Biff8EncryptionKey.getCurrentUserPassword();
-        if(!dec.verifyPassword(pass != null ? pass : Decryptor.DEFAULT_PASSWORD)) {
-            throw new EncryptedPowerPointFileException("PowerPoint file is encrypted. The correct password needs to be set via Biff8EncryptionKey.setCurrentUserPassword()");
-        }
-     }
-
-    public DocumentEncryptionAtom getDocumentEncryptionAtom() {
-        return dea;
-    }
-    
-    protected void setPersistId(int persistId) {
-        if (enc != null && dec != null) {
-            throw new EncryptedPowerPointFileException("Use instance either for en- or decryption");
-        }
-        
-        try {
-            if (enc != null) cipher = enc.initCipherForBlock(cipher, persistId);
-            if (dec != null) cipher = dec.initCipherForBlock(cipher, persistId);
-        } catch (GeneralSecurityException e) {
-            throw new EncryptedPowerPointFileException(e);
-        }
-    }
-    
-    protected void decryptInit() {
-        if (dec != null) return;
-        EncryptionInfo ei = dea.getEncryptionInfo();
-        dec = (CryptoAPIDecryptor)ei.getDecryptor();
-    }
-    
-    protected void encryptInit() {
-        if (enc != null) return;
-        EncryptionInfo ei = dea.getEncryptionInfo();
-        enc = (CryptoAPIEncryptor)ei.getEncryptor();
-    }
-    
-
-    
-    protected OutputStream encryptRecord(OutputStream plainStream, int persistId, Record record) {
-        boolean isPlain = (dea == null 
-            || record instanceof UserEditAtom
-            || record instanceof PersistPtrHolder
-            || record instanceof DocumentEncryptionAtom
-        );
-        if (isPlain) return plainStream;
-
-        encryptInit();
-        setPersistId(persistId);
-        
-        if (cyos == null) {
-            cyos = new CipherOutputStream(plainStream, cipher);
-        }
-        return cyos;
-    }
-
-    protected void decryptRecord(byte[] docstream, int persistId, int offset) {
-        if (dea == null) return;
-
-        decryptInit();
-        setPersistId(persistId);
-        
-        try {
-            // decrypt header and read length to be decrypted
-            cipher.update(docstream, offset, 8, docstream, offset);
-            // decrypt the rest of the record
-            int rlen = (int)LittleEndian.getUInt(docstream, offset+4);
-            cipher.update(docstream, offset+8, rlen, docstream, offset+8);
-        } catch (GeneralSecurityException e) {
-            throw new CorruptPowerPointFileException(e);
-        }       
-    }        
-    
-    protected void decryptPicture(byte[] pictstream, int offset) {
-        if (dea == null) return;
-        
-        decryptInit();
-        setPersistId(0);
-        
-        try {
-            // decrypt header and read length to be decrypted
-            cipher.doFinal(pictstream, offset, 8, pictstream, offset);
-            int recInst = fieldRecInst.getValue(LittleEndian.getUShort(pictstream, offset));
-            int recType = LittleEndian.getUShort(pictstream, offset+2);
-            int rlen = (int)LittleEndian.getUInt(pictstream, offset+4);
-            offset += 8;
-            int endOffset = offset + rlen; 
-
-            if (recType == 0xF007) {
-                // TOOD: get a real example file ... to actual test the FBSE entry
-                // not sure where the foDelay block is
-                
-                // File BLIP Store Entry (FBSE)
-                cipher.doFinal(pictstream, offset, 1, pictstream, offset); // btWin32
-                offset++;
-                cipher.doFinal(pictstream, offset, 1, pictstream, offset); // btMacOS
-                offset++;
-                cipher.doFinal(pictstream, offset, 16, pictstream, offset); // rgbUid
-                offset += 16;
-                cipher.doFinal(pictstream, offset, 2, pictstream, offset); // tag
-                offset += 2;
-                cipher.doFinal(pictstream, offset, 4, pictstream, offset); // size
-                offset += 4;
-                cipher.doFinal(pictstream, offset, 4, pictstream, offset); // cRef
-                offset += 4;
-                cipher.doFinal(pictstream, offset, 4, pictstream, offset); // foDelay
-                offset += 4;
-                cipher.doFinal(pictstream, offset+0, 1, pictstream, offset+0); // unused1
-                cipher.doFinal(pictstream, offset+1, 1, pictstream, offset+1); // cbName
-                cipher.doFinal(pictstream, offset+2, 1, pictstream, offset+2); // unused2
-                cipher.doFinal(pictstream, offset+3, 1, pictstream, offset+3); // unused3
-                int cbName = LittleEndian.getUShort(pictstream, offset+1);
-                offset += 4;
-                if (cbName > 0) {
-                    cipher.doFinal(pictstream, offset, cbName, pictstream, offset); // nameData
-                    offset += cbName;
-                }
-                if (offset == endOffset) {
-                    return; // no embedded blip
-                }
-                // fall through, read embedded blip now
-
-                // update header data
-                cipher.doFinal(pictstream, offset, 8, pictstream, offset);
-                recInst = fieldRecInst.getValue(LittleEndian.getUShort(pictstream, offset));
-                recType = LittleEndian.getUShort(pictstream, offset+2);
-                rlen = (int)LittleEndian.getUInt(pictstream, offset+4);
-                offset += 8;
-            }
-
-            int rgbUidCnt = (recInst == 0x217 || recInst == 0x3D5 || recInst == 0x46B || recInst == 0x543 ||
-                recInst == 0x6E1 || recInst == 0x6E3 || recInst == 0x6E5 || recInst == 0x7A9) ? 2 : 1;
-            
-            for (int i=0; i<rgbUidCnt; i++) {
-                cipher.doFinal(pictstream, offset, 16, pictstream, offset); // rgbUid 1/2
-                offset += 16;
-            }
-            
-            if (recType == 0xF01A || recType == 0XF01B || recType == 0XF01C) {
-                cipher.doFinal(pictstream, offset, 34, pictstream, offset); // metafileHeader
-                offset += 34;
-            } else {
-                cipher.doFinal(pictstream, offset, 1, pictstream, offset); // tag
-                offset += 1;
-            }
-            
-            int blipLen = endOffset - offset;
-            cipher.doFinal(pictstream, offset, blipLen, pictstream, offset);
-        } catch (GeneralSecurityException e) {
-            throw new CorruptPowerPointFileException(e);
-        }       
-    }
-
-    protected void encryptPicture(byte[] pictstream, int offset) {
-        if (dea == null) return;
-        
-        encryptInit();
-        setPersistId(0);
-
-        try {
-            int recInst = fieldRecInst.getValue(LittleEndian.getUShort(pictstream, offset));
-            int recType = LittleEndian.getUShort(pictstream, offset+2);
-            int rlen = (int)LittleEndian.getUInt(pictstream, offset+4);
-            cipher.doFinal(pictstream, offset, 8, pictstream, offset);
-            offset += 8;
-            int endOffset = offset + rlen; 
-
-            if (recType == 0xF007) {
-                // TOOD: get a real example file ... to actual test the FBSE entry
-                // not sure where the foDelay block is
-                
-                // File BLIP Store Entry (FBSE)
-                cipher.doFinal(pictstream, offset, 1, pictstream, offset); // btWin32
-                offset++;
-                cipher.doFinal(pictstream, offset, 1, pictstream, offset); // btMacOS
-                offset++;
-                cipher.doFinal(pictstream, offset, 16, pictstream, offset); // rgbUid
-                offset += 16;
-                cipher.doFinal(pictstream, offset, 2, pictstream, offset); // tag
-                offset += 2;
-                cipher.doFinal(pictstream, offset, 4, pictstream, offset); // size
-                offset += 4;
-                cipher.doFinal(pictstream, offset, 4, pictstream, offset); // cRef
-                offset += 4;
-                cipher.doFinal(pictstream, offset, 4, pictstream, offset); // foDelay
-                offset += 4;
-                int cbName = LittleEndian.getUShort(pictstream, offset+1);
-                cipher.doFinal(pictstream, offset+0, 1, pictstream, offset+0); // unused1
-                cipher.doFinal(pictstream, offset+1, 1, pictstream, offset+1); // cbName
-                cipher.doFinal(pictstream, offset+2, 1, pictstream, offset+2); // unused2
-                cipher.doFinal(pictstream, offset+3, 1, pictstream, offset+3); // unused3
-                offset += 4;
-                if (cbName > 0) {
-                    cipher.doFinal(pictstream, offset, cbName, pictstream, offset); // nameData
-                    offset += cbName;
-                }
-                if (offset == endOffset) {
-                    return; // no embedded blip
-                }
-                // fall through, read embedded blip now
-
-                // update header data
-                recInst = fieldRecInst.getValue(LittleEndian.getUShort(pictstream, offset));
-                recType = LittleEndian.getUShort(pictstream, offset+2);
-                rlen = (int)LittleEndian.getUInt(pictstream, offset+4);
-                cipher.doFinal(pictstream, offset, 8, pictstream, offset);
-                offset += 8;
-            }
-            
-            int rgbUidCnt = (recInst == 0x217 || recInst == 0x3D5 || recInst == 0x46B || recInst == 0x543 ||
-                recInst == 0x6E1 || recInst == 0x6E3 || recInst == 0x6E5 || recInst == 0x7A9) ? 2 : 1;
-                
-            for (int i=0; i<rgbUidCnt; i++) {
-                cipher.doFinal(pictstream, offset, 16, pictstream, offset); // rgbUid 1/2
-                offset += 16;
-            }
-            
-            if (recType == 0xF01A || recType == 0XF01B || recType == 0XF01C) {
-                cipher.doFinal(pictstream, offset, 34, pictstream, offset); // metafileHeader
-                offset += 34;
-            } else {
-                cipher.doFinal(pictstream, offset, 1, pictstream, offset); // tag
-                offset += 1;
-            }
-            
-            int blipLen = endOffset - offset;
-            cipher.doFinal(pictstream, offset, blipLen, pictstream, offset);
-        } catch (GeneralSecurityException e) {
-            throw new CorruptPowerPointFileException(e);
-        }       
-    }
-
-    protected Record[] updateEncryptionRecord(Record records[]) {
-        String password = Biff8EncryptionKey.getCurrentUserPassword();
-        if (password == null) {
-            if (dea == null) {
-                // no password given, no encryption record exits -> done
-                return records;
-            } else {
-                // need to remove password data
-                dea = null;
-                return removeEncryptionRecord(records);
-            }
-        } else {
-            // create password record
-            if (dea == null) {
-                dea = new DocumentEncryptionAtom();
-            }
-            EncryptionInfo ei = dea.getEncryptionInfo();
-            byte salt[] = ei.getVerifier().getSalt();
-            Encryptor enc = ei.getEncryptor();
-            if (salt == null) {
-                enc.confirmPassword(password);
-            } else {
-                byte verifier[] = ei.getDecryptor().getVerifier();
-                enc.confirmPassword(password, null, null, verifier, salt, null);
-            }
-
-            // move EncryptionRecord to last slide position
-            records = normalizeRecords(records);
-            return addEncryptionRecord(records, dea);
-        }
-    }
-
-    /**
-     * remove duplicated UserEditAtoms and merge PersistPtrHolder.
-     * Before this method is called, make sure that the offsets are correct,
-     * i.e. call {@link HSLFSlideShow#updateAndWriteDependantRecords(OutputStream, Map)}
-     */
-    protected static Record[] normalizeRecords(Record records[]) {
-        // http://msdn.microsoft.com/en-us/library/office/gg615594(v=office.14).aspx
-        // repeated slideIds can be overwritten, i.e. ignored
-        
-        UserEditAtom uea = null;
-        PersistPtrHolder pph = null;
-        TreeMap<Integer,Integer> slideLocations = new TreeMap<Integer,Integer>();
-        TreeMap<Integer,Record> recordMap = new TreeMap<Integer,Record>();
-        List<Integer> obsoleteOffsets = new ArrayList<Integer>();
-        int duplicatedCount = 0;
-        for (Record r : records) {
-            assert(r instanceof PositionDependentRecord);
-            PositionDependentRecord pdr = (PositionDependentRecord)r;
-            if (pdr instanceof UserEditAtom) {
-                uea = (UserEditAtom)pdr;
-                continue;
-            }
-            
-            if (pdr instanceof PersistPtrHolder) {
-                if (pph != null) {
-                    duplicatedCount++;
-                }
-                pph = (PersistPtrHolder)pdr;
-                for (Map.Entry<Integer,Integer> me : pph.getSlideLocationsLookup().entrySet()) {
-                    Integer oldOffset = slideLocations.put(me.getKey(), me.getValue());
-                    if (oldOffset != null) obsoleteOffsets.add(oldOffset);
-                }
-                continue;
-            }
-            
-            recordMap.put(pdr.getLastOnDiskOffset(), r);
-        }
-        recordMap.put(pph.getLastOnDiskOffset(), pph);
-        recordMap.put(uea.getLastOnDiskOffset(), uea);
-
-        assert(uea != null && pph != null && uea.getPersistPointersOffset() == pph.getLastOnDiskOffset());
-        
-        if (duplicatedCount == 0 && obsoleteOffsets.isEmpty()) {
-            return records;
-        }
-
-        uea.setLastUserEditAtomOffset(0);
-        pph.clear();
-        for (Map.Entry<Integer,Integer> me : slideLocations.entrySet()) {
-            pph.addSlideLookup(me.getKey(), me.getValue());
-        }
-        
-        for (Integer oldOffset : obsoleteOffsets) {
-            recordMap.remove(oldOffset);
-        }
-        
-        return recordMap.values().toArray(new Record[recordMap.size()]);
-    }
-     
-    
-    protected static Record[] removeEncryptionRecord(Record records[]) {
-        int deaSlideId = -1;
-        int deaOffset = -1;
-        PersistPtrHolder ptr = null;
-        UserEditAtom uea = null;
-        List<Record> recordList = new ArrayList<Record>();
-        for (Record r : records) {
-            if (r instanceof DocumentEncryptionAtom) {
-                deaOffset = ((DocumentEncryptionAtom)r).getLastOnDiskOffset();
-                continue;
-            } else if (r instanceof UserEditAtom) {
-                uea = (UserEditAtom)r;
-                deaSlideId = uea.getEncryptSessionPersistIdRef();
-                uea.setEncryptSessionPersistIdRef(-1);
-            } else if (r instanceof PersistPtrHolder) {
-                ptr = (PersistPtrHolder)r;
-            }
-            recordList.add(r);
-        }
-        
-        assert(ptr != null);
-        if (deaSlideId == -1 && deaOffset == -1) return records;
-        
-        TreeMap<Integer,Integer> tm = new TreeMap<Integer,Integer>(ptr.getSlideLocationsLookup());
-        ptr.clear();
-        int maxSlideId = -1;
-        for (Map.Entry<Integer,Integer> me : tm.entrySet()) {
-            if (me.getKey() == deaSlideId || me.getValue() == deaOffset) continue;
-            ptr.addSlideLookup(me.getKey(), me.getValue());
-            maxSlideId = Math.max(me.getKey(), maxSlideId);
-        }
-        
-        uea.setMaxPersistWritten(maxSlideId);
-
-        records = recordList.toArray(new Record[recordList.size()]);
-        
-        return records;
-    }
-
-
-    protected static Record[] addEncryptionRecord(Record records[], DocumentEncryptionAtom dea) {
-        assert(dea != null);
-        int ueaIdx = -1, ptrIdx = -1, deaIdx = -1, idx = -1;
-        for (Record r : records) {
-            idx++;
-            if (r instanceof UserEditAtom) ueaIdx = idx;
-            else if (r instanceof PersistPtrHolder) ptrIdx = idx;
-            else if (r instanceof DocumentEncryptionAtom) deaIdx = idx;
-        }
-        assert(ueaIdx != -1 && ptrIdx != -1 && ptrIdx < ueaIdx);
-        if (deaIdx != -1) {
-            DocumentEncryptionAtom deaOld = (DocumentEncryptionAtom)records[deaIdx];
-            dea.setLastOnDiskOffset(deaOld.getLastOnDiskOffset());
-            records[deaIdx] = dea;
-            return records;
-        } else {
-            PersistPtrHolder ptr = (PersistPtrHolder)records[ptrIdx];
-            UserEditAtom uea = ((UserEditAtom)records[ueaIdx]);
-            dea.setLastOnDiskOffset(ptr.getLastOnDiskOffset()-1);
-            int nextSlideId = uea.getMaxPersistWritten()+1;
-            ptr.addSlideLookup(nextSlideId, ptr.getLastOnDiskOffset()-1);
-            uea.setEncryptSessionPersistIdRef(nextSlideId);
-            uea.setMaxPersistWritten(nextSlideId);
-            
-            Record newRecords[] = new Record[records.length+1];
-            if (ptrIdx > 0) System.arraycopy(records, 0, newRecords, 0, ptrIdx);
-            if (ptrIdx < records.length-1) System.arraycopy(records, ptrIdx, newRecords, ptrIdx+1, records.length-ptrIdx);
-            newRecords[ptrIdx] = dea;
-            return newRecords;
-        }
-    }
-
-}
diff --git a/src/scratchpad/src/org/apache/poi/hslf/HSLFSlideShow.java b/src/scratchpad/src/org/apache/poi/hslf/HSLFSlideShow.java
deleted file mode 100644 (file)
index 55c3f6f..0000000
+++ /dev/null
@@ -1,808 +0,0 @@
-/* ====================================================================
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-==================================================================== */
-
-package org.apache.poi.hslf;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.security.GeneralSecurityException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Hashtable;
-import java.util.List;
-import java.util.Map;
-import java.util.NavigableMap;
-import java.util.TreeMap;
-
-import org.apache.poi.POIDocument;
-import org.apache.poi.hpsf.PropertySet;
-import org.apache.poi.hslf.exceptions.CorruptPowerPointFileException;
-import org.apache.poi.hslf.exceptions.HSLFException;
-import org.apache.poi.hslf.record.CurrentUserAtom;
-import org.apache.poi.hslf.record.DocumentEncryptionAtom;
-import org.apache.poi.hslf.record.ExOleObjStg;
-import org.apache.poi.hslf.record.PersistPtrHolder;
-import org.apache.poi.hslf.record.PersistRecord;
-import org.apache.poi.hslf.record.PositionDependentRecord;
-import org.apache.poi.hslf.record.Record;
-import org.apache.poi.hslf.record.RecordTypes;
-import org.apache.poi.hslf.record.UserEditAtom;
-import org.apache.poi.hslf.usermodel.ObjectData;
-import org.apache.poi.hslf.usermodel.PictureData;
-import org.apache.poi.poifs.crypt.cryptoapi.CryptoAPIEncryptor;
-import org.apache.poi.poifs.filesystem.DirectoryNode;
-import org.apache.poi.poifs.filesystem.DocumentEntry;
-import org.apache.poi.poifs.filesystem.DocumentInputStream;
-import org.apache.poi.poifs.filesystem.EntryUtils;
-import org.apache.poi.poifs.filesystem.NPOIFSFileSystem;
-import org.apache.poi.poifs.filesystem.POIFSFileSystem;
-import org.apache.poi.util.LittleEndian;
-import org.apache.poi.util.POILogFactory;
-import org.apache.poi.util.POILogger;
-
-/**
- * This class contains the main functionality for the Powerpoint file
- * "reader". It is only a very basic class for now
- *
- * @author Nick Burch
- */
-public final class HSLFSlideShow extends POIDocument {
-    public static final int UNSET_OFFSET = -1;
-    
-    // For logging
-    private POILogger logger = POILogFactory.getLogger(this.getClass());
-
-       // Holds metadata on where things are in our document
-       private CurrentUserAtom currentUser;
-
-       // Low level contents of the file
-       private byte[] _docstream;
-
-       // Low level contents
-       private Record[] _records;
-
-       // Raw Pictures contained in the pictures stream
-       private List<PictureData> _pictures;
-
-    // Embedded objects stored in storage records in the document stream, lazily populated.
-    private ObjectData[] _objects;
-    
-    /**
-        * Returns the underlying POIFSFileSystem for the document
-        *  that is open.
-        */
-       protected POIFSFileSystem getPOIFSFileSystem() {
-               return directory.getFileSystem();
-       }
-
-   /**
-    * Returns the directory in the underlying POIFSFileSystem for the 
-    *  document that is open.
-    */
-   protected DirectoryNode getPOIFSDirectory() {
-      return directory;
-   }
-
-       /**
-        * Constructs a Powerpoint document from fileName. Parses the document
-        * and places all the important stuff into data structures.
-        *
-        * @param fileName The name of the file to read.
-        * @throws IOException if there is a problem while parsing the document.
-        */
-       public HSLFSlideShow(String fileName) throws IOException
-       {
-               this(new FileInputStream(fileName));
-       }
-
-       /**
-        * Constructs a Powerpoint document from an input stream. Parses the
-        * document and places all the important stuff into data structures.
-        *
-        * @param inputStream the source of the data
-        * @throws IOException if there is a problem while parsing the document.
-        */
-       public HSLFSlideShow(InputStream inputStream) throws IOException {
-               //do Ole stuff
-               this(new POIFSFileSystem(inputStream));
-       }
-
-       /**
-        * Constructs a Powerpoint document from a POIFS Filesystem. Parses the
-        * document and places all the important stuff into data structures.
-        *
-        * @param filesystem the POIFS FileSystem to read from
-        * @throws IOException if there is a problem while parsing the document.
-        */
-       public HSLFSlideShow(POIFSFileSystem filesystem) throws IOException
-       {
-               this(filesystem.getRoot());
-       }
-
-   /**
-    * Constructs a Powerpoint document from a POIFS Filesystem. Parses the
-    * document and places all the important stuff into data structures.
-    *
-    * @param filesystem the POIFS FileSystem to read from
-    * @throws IOException if there is a problem while parsing the document.
-    */
-   public HSLFSlideShow(NPOIFSFileSystem filesystem) throws IOException
-   {
-      this(filesystem.getRoot());
-   }
-
-   /**
-    * Constructs a Powerpoint document from a specific point in a
-    *  POIFS Filesystem. Parses the document and places all the
-    *  important stuff into data structures.
-    *
-    * @deprecated Use {@link #HSLFSlideShow(DirectoryNode)} instead
-    * @param dir the POIFS directory to read from
-    * @param filesystem the POIFS FileSystem to read from
-    * @throws IOException if there is a problem while parsing the document.
-    */
-       @Deprecated
-   public HSLFSlideShow(DirectoryNode dir, POIFSFileSystem filesystem) throws IOException
-   {
-      this(dir);
-   }
-   
-       /**
-        * Constructs a Powerpoint document from a specific point in a
-        *  POIFS Filesystem. Parses the document and places all the
-        *  important stuff into data structures.
-        *
-        * @param dir the POIFS directory to read from
-        * @throws IOException if there is a problem while parsing the document.
-        */
-       public HSLFSlideShow(DirectoryNode dir) throws IOException {
-               super(handleDualStorage(dir));
-
-               // First up, grab the "Current User" stream
-               // We need this before we can detect Encrypted Documents
-               readCurrentUserStream();
-
-               // Next up, grab the data that makes up the
-               //  PowerPoint stream
-               readPowerPointStream();
-
-               // Now, build records based on the PowerPoint stream
-               buildRecords();
-
-               // Look for any other streams
-               readOtherStreams();
-       }
-       
-       private static DirectoryNode handleDualStorage(DirectoryNode dir) throws IOException {
-           // when there's a dual storage entry, use it, as the outer document can't be read quite probably ...
-           String dualName = "PP97_DUALSTORAGE";
-           if (!dir.hasEntry(dualName)) return dir;
-           dir = (DirectoryNode)dir.getEntry(dualName);
-           return dir;
-       }
-       
-       /**
-        * Constructs a new, empty, Powerpoint document.
-        */
-       public static final HSLFSlideShow create() {
-               InputStream is = HSLFSlideShow.class.getResourceAsStream("data/empty.ppt");
-               if (is == null) {
-                       throw new RuntimeException("Missing resource 'empty.ppt'");
-               }
-               try {
-                       return new HSLFSlideShow(is);
-               } catch (IOException e) {
-                       throw new RuntimeException(e);
-               }
-       }
-
-       /**
-        * Extracts the main PowerPoint document stream from the
-        *  POI file, ready to be passed
-        *
-        * @throws IOException
-        */
-       private void readPowerPointStream() throws IOException
-       {
-               // Get the main document stream
-               DocumentEntry docProps =
-                       (DocumentEntry)directory.getEntry("PowerPoint Document");
-
-               // Grab the document stream
-               _docstream = new byte[docProps.getSize()];
-               directory.createDocumentInputStream("PowerPoint Document").read(_docstream);
-       }
-
-       /**
-        * Builds the list of records, based on the contents
-        *  of the PowerPoint stream
-        */
-       private void buildRecords()
-       {
-               // The format of records in a powerpoint file are:
-               //   <little endian 2 byte "info">
-               //   <little endian 2 byte "type">
-               //   <little endian 4 byte "length">
-               // If it has a zero length, following it will be another record
-               //              <xx xx yy yy 00 00 00 00> <xx xx yy yy zz zz zz zz>
-               // If it has a length, depending on its type it may have children or data
-               // If it has children, these will follow straight away
-               //              <xx xx yy yy zz zz zz zz <xx xx yy yy zz zz zz zz>>
-               // If it has data, this will come straigh after, and run for the length
-               //      <xx xx yy yy zz zz zz zz dd dd dd dd dd dd dd>
-               // All lengths given exclude the 8 byte record header
-               // (Data records are known as Atoms)
-
-               // Document should start with:
-               //   0F 00 E8 03 ## ## ## ##
-           //     (type 1000 = document, info 00 0f is normal, rest is document length)
-               //   01 00 E9 03 28 00 00 00
-               //     (type 1001 = document atom, info 00 01 normal, 28 bytes long)
-               //   80 16 00 00 E0 10 00 00 xx xx xx xx xx xx xx xx
-               //   05 00 00 00 0A 00 00 00 xx xx xx
-               //     (the contents of the document atom, not sure what it means yet)
-               //   (records then follow)
-
-               // When parsing a document, look to see if you know about that type
-               //  of the current record. If you know it's a type that has children,
-               //  process the record's data area looking for more records
-               // If you know about the type and it doesn't have children, either do
-               //  something with the data (eg TextRun) or skip over it
-               // If you don't know about the type, play safe and skip over it (using
-               //  its length to know where the next record will start)
-               //
-
-        _records = read(_docstream, (int)currentUser.getCurrentEditOffset());
-       }
-
-       private Record[] read(byte[] docstream, int usrOffset){
-        //sort found records by offset.
-        //(it is not necessary but SlideShow.findMostRecentCoreRecords() expects them sorted)
-           NavigableMap<Integer,Record> records = new TreeMap<Integer,Record>(); // offset -> record
-        Map<Integer,Integer> persistIds = new HashMap<Integer,Integer>(); // offset -> persistId
-        initRecordOffsets(docstream, usrOffset, records, persistIds);
-        EncryptedSlideShow decryptData = new EncryptedSlideShow(docstream, records);
-        
-        for (Map.Entry<Integer,Record> entry : records.entrySet()) {
-            Integer offset = entry.getKey();
-            Record record = entry.getValue();
-            Integer persistId = persistIds.get(offset);
-            if (record == null) {
-                // all plain records have been already added,
-                // only new records need to be decrypted (tbd #35897)
-                decryptData.decryptRecord(docstream, persistId, offset);
-                record = Record.buildRecordAtOffset(docstream, offset);
-                entry.setValue(record);
-            }
-            
-            if (record instanceof PersistRecord) {
-                ((PersistRecord)record).setPersistId(persistId);
-            }            
-        }
-        
-        return records.values().toArray(new Record[records.size()]);
-    }
-
-    private void initRecordOffsets(byte[] docstream, int usrOffset, NavigableMap<Integer,Record> recordMap, Map<Integer,Integer> offset2id) {
-        while (usrOffset != 0){
-            UserEditAtom usr = (UserEditAtom) Record.buildRecordAtOffset(docstream, usrOffset);
-            recordMap.put(usrOffset, usr);
-            
-            int psrOffset = usr.getPersistPointersOffset();
-            PersistPtrHolder ptr = (PersistPtrHolder)Record.buildRecordAtOffset(docstream, psrOffset);
-            recordMap.put(psrOffset, ptr);
-            
-            for(Map.Entry<Integer,Integer> entry : ptr.getSlideLocationsLookup().entrySet()) {
-                Integer offset = entry.getValue();
-                Integer id = entry.getKey();
-                recordMap.put(offset, null); // reserve a slot for the record
-                offset2id.put(offset, id);
-            }
-            
-            usrOffset = usr.getLastUserEditAtomOffset();
-
-            // check for corrupted user edit atom and try to repair it
-            // if the next user edit atom offset is already known, we would go into an endless loop
-            if (usrOffset > 0 && recordMap.containsKey(usrOffset)) {
-                // a user edit atom is usually located 36 byte before the smallest known record offset 
-                usrOffset = recordMap.firstKey()-36;
-                // check that we really are located on a user edit atom
-                int ver_inst = LittleEndian.getUShort(docstream, usrOffset);
-                int type = LittleEndian.getUShort(docstream, usrOffset+2);
-                int len = LittleEndian.getInt(docstream, usrOffset+4);
-                if (ver_inst == 0 && type == 4085 && (len == 0x1C || len == 0x20)) {
-                    logger.log(POILogger.WARN, "Repairing invalid user edit atom");
-                    usr.setLastUserEditAtomOffset(usrOffset);
-                } else {
-                    throw new CorruptPowerPointFileException("Powerpoint document contains invalid user edit atom");
-                }
-            }
-        }       
-    }
-
-    public DocumentEncryptionAtom getDocumentEncryptionAtom() {
-        for (Record r : _records) {
-            if (r instanceof DocumentEncryptionAtom) {
-                return (DocumentEncryptionAtom)r;
-            }
-        }
-        return null;
-    }
-    
-    
-       /**
-        * Find the "Current User" stream, and load it
-        */
-       private void readCurrentUserStream() {
-               try {
-                       currentUser = new CurrentUserAtom(directory);
-               } catch(IOException ie) {
-                       logger.log(POILogger.ERROR, "Error finding Current User Atom:\n" + ie);
-                       currentUser = new CurrentUserAtom();
-               }
-       }
-
-       /**
-        * Find any other streams from the filesystem, and load them
-        */
-       private void readOtherStreams() {
-               // Currently, there aren't any
-       }
-       
-       /**
-        * Find and read in pictures contained in this presentation.
-        * This is lazily called as and when we want to touch pictures.
-        */
-    @SuppressWarnings("unused")
-       private void readPictures() throws IOException {
-        _pictures = new ArrayList<PictureData>();
-
-        // if the presentation doesn't contain pictures - will use a null set instead
-        if (!directory.hasEntry("Pictures")) return;
-
-        EncryptedSlideShow decryptData = new EncryptedSlideShow(getDocumentEncryptionAtom());
-        
-               DocumentEntry entry = (DocumentEntry)directory.getEntry("Pictures");
-               byte[] pictstream = new byte[entry.getSize()];
-               DocumentInputStream is = directory.createDocumentInputStream(entry);
-               is.read(pictstream);
-               is.close();
-
-               
-        int pos = 0;
-               // An empty picture record (length 0) will take up 8 bytes
-        while (pos <= (pictstream.length-8)) {
-            int offset = pos;
-
-            decryptData.decryptPicture(pictstream, offset);
-            
-            // Image signature
-            int signature = LittleEndian.getUShort(pictstream, pos);
-            pos += LittleEndian.SHORT_SIZE;
-            // Image type + 0xF018
-            int type = LittleEndian.getUShort(pictstream, pos);
-            pos += LittleEndian.SHORT_SIZE;
-            // Image size (excluding the 8 byte header)
-            int imgsize = LittleEndian.getInt(pictstream, pos);
-            pos += LittleEndian.INT_SIZE;
-
-            // When parsing the BStoreDelay stream, [MS-ODRAW] says that we
-            //  should terminate if the type isn't 0xf007 or 0xf018->0xf117
-            if (!((type == 0xf007) || (type >= 0xf018 && type <= 0xf117)))
-                break;
-
-                       // The image size must be 0 or greater
-                       // (0 is allowed, but odd, since we do wind on by the header each
-                       //  time, so we won't get stuck)
-                       if(imgsize < 0) {
-                               throw new CorruptPowerPointFileException("The file contains a picture, at position " + _pictures.size() + ", which has a negatively sized data length, so we can't trust any of the picture data");
-                       }
-
-                       // If they type (including the bonus 0xF018) is 0, skip it
-                       if(type == 0) {
-                               logger.log(POILogger.ERROR, "Problem reading picture: Invalid image type 0, on picture with length " + imgsize + ".\nYou document will probably become corrupted if you save it!");
-                               logger.log(POILogger.ERROR, "" + pos);
-                       } else {
-                               // Build the PictureData object from the data
-                               try {
-                                       PictureData pict = PictureData.create(type - 0xF018);
-
-                    // Copy the data, ready to pass to PictureData
-                    byte[] imgdata = new byte[imgsize];
-                    System.arraycopy(pictstream, pos, imgdata, 0, imgdata.length);
-                    pict.setRawData(imgdata);
-
-                    pict.setOffset(offset);
-                                       _pictures.add(pict);
-                               } catch(IllegalArgumentException e) {
-                                       logger.log(POILogger.ERROR, "Problem reading picture: " + e + "\nYou document will probably become corrupted if you save it!");
-                               }
-                       }
-
-            pos += imgsize;
-        }
-       }
-    
-    /**
-     * remove duplicated UserEditAtoms and merge PersistPtrHolder, i.e.
-     * remove document edit history
-     */
-    public void normalizeRecords() {
-        try {
-            updateAndWriteDependantRecords(null, null);
-        } catch (IOException e) {
-            throw new CorruptPowerPointFileException(e);
-        }
-        _records = EncryptedSlideShow.normalizeRecords(_records);
-    }
-   
-    
-       /**
-     * This is a helper functions, which is needed for adding new position dependent records
-     * or finally write the slideshow to a file.
-        *
-        * @param os the stream to write to, if null only the references are updated
-        * @param interestingRecords a map of interesting records (PersistPtrHolder and UserEditAtom)
-        *        referenced by their RecordType. Only the very last of each type will be saved to the map.
-        *        May be null, if not needed. 
-        * @throws IOException
-        */
-       public void updateAndWriteDependantRecords(OutputStream os, Map<RecordTypes.Type,PositionDependentRecord> interestingRecords)
-       throws IOException {
-        // For position dependent records, hold where they were and now are
-        // As we go along, update, and hand over, to any Position Dependent
-        //  records we happen across
-        Hashtable<Integer,Integer> oldToNewPositions = new Hashtable<Integer,Integer>();
-
-        // First pass - figure out where all the position dependent
-        //   records are going to end up, in the new scheme
-        // (Annoyingly, some powerpoint files have PersistPtrHolders
-        //  that reference slides after the PersistPtrHolder)
-        UserEditAtom usr = null;
-        PersistPtrHolder ptr = null;
-        CountingOS cos = new CountingOS();
-        for (Record record : _records) {
-            // all top level records are position dependent
-            assert(record instanceof PositionDependentRecord);
-            PositionDependentRecord pdr = (PositionDependentRecord)record;
-            int oldPos = pdr.getLastOnDiskOffset();
-            int newPos = cos.size();
-            pdr.setLastOnDiskOffset(newPos);
-            if (oldPos != UNSET_OFFSET) {
-                // new records don't need a mapping, as they aren't in a relation yet
-                oldToNewPositions.put(oldPos,newPos);
-            }
-
-            // Grab interesting records as they come past
-            // this will only save the very last record of each type
-            RecordTypes.Type saveme = null;
-            int recordType = (int)record.getRecordType();
-            if (recordType == RecordTypes.PersistPtrIncrementalBlock.typeID) {
-                saveme = RecordTypes.PersistPtrIncrementalBlock;
-                ptr = (PersistPtrHolder)pdr;
-            } else if (recordType == RecordTypes.UserEditAtom.typeID) {
-                saveme = RecordTypes.UserEditAtom;
-                usr = (UserEditAtom)pdr;
-            }
-            if (interestingRecords != null && saveme != null) {
-                interestingRecords.put(saveme,pdr);
-            }
-            
-            // Dummy write out, so the position winds on properly
-            record.writeOut(cos);
-        }
-        
-        assert(usr != null && ptr != null);
-        
-        Map<Integer,Integer> persistIds = new HashMap<Integer,Integer>();
-        for (Map.Entry<Integer,Integer> entry : ptr.getSlideLocationsLookup().entrySet()) {
-            persistIds.put(oldToNewPositions.get(entry.getValue()), entry.getKey());
-        }
-        
-        EncryptedSlideShow encData = new EncryptedSlideShow(getDocumentEncryptionAtom());
-           
-           for (Record record : _records) {
-            assert(record instanceof PositionDependentRecord);
-            // We've already figured out their new location, and
-            // told them that
-            // Tell them of the positions of the other records though
-            PositionDependentRecord pdr = (PositionDependentRecord)record;
-            Integer persistId = persistIds.get(pdr.getLastOnDiskOffset());
-            if (persistId == null) persistId = 0;
-            
-            // For now, we're only handling PositionDependentRecord's that
-            // happen at the top level.
-            // In future, we'll need the handle them everywhere, but that's
-            // a bit trickier
-            pdr.updateOtherRecordReferences(oldToNewPositions);
-            
-            // Whatever happens, write out that record tree
-            if (os != null) {
-                record.writeOut(encData.encryptRecord(os, persistId, record));
-            }
-        }
-
-        // Update and write out the Current User atom
-        int oldLastUserEditAtomPos = (int)currentUser.getCurrentEditOffset();
-        Integer newLastUserEditAtomPos = oldToNewPositions.get(oldLastUserEditAtomPos);
-        if(usr == null || newLastUserEditAtomPos == null || usr.getLastOnDiskOffset() != newLastUserEditAtomPos) {
-            throw new HSLFException("Couldn't find the new location of the last UserEditAtom that used to be at " + oldLastUserEditAtomPos);
-        }
-        currentUser.setCurrentEditOffset(usr.getLastOnDiskOffset());
-       }
-
-    /**
-     * Writes out the slideshow file the is represented by an instance
-     *  of this class.
-     * It will write out the common OLE2 streams. If you require all
-     *  streams to be written out, pass in preserveNodes
-     * @param out The OutputStream to write to.
-     * @throws IOException If there is an unexpected IOException from
-     *           the passed in OutputStream
-     */
-    public void write(OutputStream out) throws IOException {
-        // Write out, but only the common streams
-        write(out,false);
-    }
-    /**
-     * Writes out the slideshow file the is represented by an instance
-     *  of this class.
-     * If you require all streams to be written out (eg Marcos, embeded
-     *  documents), then set preserveNodes to true
-     * @param out The OutputStream to write to.
-     * @param preserveNodes Should all OLE2 streams be written back out, or only the common ones?
-     * @throws IOException If there is an unexpected IOException from
-     *           the passed in OutputStream
-     */
-    public void write(OutputStream out, boolean preserveNodes) throws IOException {
-        // read properties and pictures, with old encryption settings where appropriate 
-        if(_pictures == null) {
-           readPictures();
-        }
-        getDocumentSummaryInformation();
-
-        // set new encryption settings
-        EncryptedSlideShow encryptedSS = new EncryptedSlideShow(getDocumentEncryptionAtom());
-        _records = encryptedSS.updateEncryptionRecord(_records);
-
-        // Get a new Filesystem to write into
-        POIFSFileSystem outFS = new POIFSFileSystem();
-
-        // The list of entries we've written out
-        List<String> writtenEntries = new ArrayList<String>(1);
-
-        // Write out the Property Streams
-        writeProperties(outFS, writtenEntries);
-        
-        BufAccessBAOS baos = new BufAccessBAOS();
-
-        // For position dependent records, hold where they were and now are
-        // As we go along, update, and hand over, to any Position Dependent
-        // records we happen across
-        updateAndWriteDependantRecords(baos, null);
-
-        // Update our cached copy of the bytes that make up the PPT stream
-        _docstream = new byte[baos.size()];
-        System.arraycopy(baos.getBuf(), 0, _docstream, 0, baos.size());
-
-        // Write the PPT stream into the POIFS layer
-        ByteArrayInputStream bais = new ByteArrayInputStream(_docstream);
-        outFS.createDocument(bais,"PowerPoint Document");
-        writtenEntries.add("PowerPoint Document");
-        
-        currentUser.setEncrypted(encryptedSS.getDocumentEncryptionAtom() != null);
-        currentUser.writeToFS(outFS);
-        writtenEntries.add("Current User");
-
-
-        if (_pictures.size() > 0) {
-            BufAccessBAOS pict = new BufAccessBAOS();
-            for (PictureData p : _pictures) {
-                int offset = pict.size();
-                p.write(pict);
-                encryptedSS.encryptPicture(pict.getBuf(), offset);
-            }
-            outFS.createDocument(
-                new ByteArrayInputStream(pict.getBuf(), 0, pict.size()), "Pictures"
-            );
-            writtenEntries.add("Pictures");
-        }
-
-        // If requested, write out any other streams we spot
-        if(preserveNodes) {
-            EntryUtils.copyNodes(directory.getFileSystem(), outFS, writtenEntries);
-        }
-
-        // Send the POIFSFileSystem object out to the underlying stream
-        outFS.writeFilesystem(out);
-    }
-
-    /** 
-     * For a given named property entry, either return it or null if
-     *  if it wasn't found
-     *  
-     *  @param setName The property to read
-     *  @return The value of the given property or null if it wasn't found.
-     */
-    protected PropertySet getPropertySet(String setName) {
-        DocumentEncryptionAtom dea = getDocumentEncryptionAtom();
-        return (dea == null)
-            ? super.getPropertySet(setName)
-            : super.getPropertySet(setName, dea.getEncryptionInfo());
-    }
-
-    /**
-     * Writes out the standard Documment Information Properties (HPSF)
-     * @param outFS the POIFSFileSystem to write the properties into
-     * @param writtenEntries a list of POIFS entries to add the property names too
-     * 
-     * @throws IOException if an error when writing to the 
-     *      {@link POIFSFileSystem} occurs
-     */
-    protected void writeProperties(POIFSFileSystem outFS, List<String> writtenEntries) throws IOException {
-        super.writeProperties(outFS, writtenEntries);
-        DocumentEncryptionAtom dea = getDocumentEncryptionAtom();
-        if (dea != null) {
-            CryptoAPIEncryptor enc = (CryptoAPIEncryptor)dea.getEncryptionInfo().getEncryptor();
-            try {
-                enc.getDataStream(outFS.getRoot()); // ignore OutputStream
-            } catch (IOException e) {
-                throw e;
-            } catch (GeneralSecurityException e) {
-                throw new IOException(e);
-            }
-        }
-    }
-    
-    /* ******************* adding methods follow ********************* */
-
-       /**
-        * Adds a new root level record, at the end, but before the last
-        *  PersistPtrIncrementalBlock.
-        */
-       public synchronized int appendRootLevelRecord(Record newRecord) {
-               int addedAt = -1;
-               Record[] r = new Record[_records.length+1];
-               boolean added = false;
-               for(int i=(_records.length-1); i>=0; i--) {
-                       if(added) {
-                               // Just copy over
-                               r[i] = _records[i];
-                       } else {
-                               r[(i+1)] = _records[i];
-                               if(_records[i] instanceof PersistPtrHolder) {
-                                       r[i] = newRecord;
-                                       added = true;
-                                       addedAt = i;
-                               }
-                       }
-               }
-               _records = r;
-               return addedAt;
-       }
-
-       /**
-        * Add a new picture to this presentation.
-     *
-     * @return offset of this picture in the Pictures stream
-        */
-       public int addPicture(PictureData img) {
-          // Process any existing pictures if we haven't yet
-          if(_pictures == null) {
-         try {
-            readPictures();
-         } catch(IOException e) {
-            throw new CorruptPowerPointFileException(e.getMessage());
-         }
-          }
-          
-          // Add the new picture in
-      int offset = 0;
-          if(_pictures.size() > 0) {
-             PictureData prev = _pictures.get(_pictures.size() - 1);
-             offset = prev.getOffset() + prev.getRawData().length + 8;
-          }
-          img.setOffset(offset);
-          _pictures.add(img);
-          return offset;
-   }
-
-       /* ******************* fetching methods follow ********************* */
-
-
-       /**
-        * Returns an array of all the records found in the slideshow
-        */
-       public Record[] getRecords() { return _records; }
-
-       /**
-        * Returns an array of the bytes of the file. Only correct after a
-        *  call to open or write - at all other times might be wrong!
-        */
-       public byte[] getUnderlyingBytes() { return _docstream; }
-
-       /**
-        * Fetch the Current User Atom of the document
-        */
-       public CurrentUserAtom getCurrentUserAtom() { return currentUser; }
-
-       /**
-        *  Return array of pictures contained in this presentation
-        *
-        *  @return array with the read pictures or <code>null</code> if the
-        *  presentation doesn't contain pictures.
-        */
-       public PictureData[] getPictures() {
-          if(_pictures == null) {
-             try {
-                readPictures();
-             } catch(IOException e) {
-                throw new CorruptPowerPointFileException(e.getMessage());
-             }
-          }
-          
-               return _pictures.toArray(new PictureData[_pictures.size()]);
-       }
-
-    /**
-     * Gets embedded object data from the slide show.
-     *
-     * @return the embedded objects.
-     */
-    public ObjectData[] getEmbeddedObjects() {
-        if (_objects == null) {
-            List<ObjectData> objects = new ArrayList<ObjectData>();
-            for (Record r : _records) {
-                if (r instanceof ExOleObjStg) {
-                    objects.add(new ObjectData((ExOleObjStg)r));
-                }
-            }
-            _objects = objects.toArray(new ObjectData[objects.size()]);
-        }
-        return _objects;
-    }
-    
-    
-    private static class BufAccessBAOS extends ByteArrayOutputStream {
-        public byte[] getBuf() {
-            return buf;
-        }
-    }
-    
-    private static class CountingOS extends OutputStream {
-        int count = 0;
-        public void write(int b) throws IOException {
-            count++;
-        }
-
-        public void write(byte[] b) throws IOException {
-            count += b.length;
-        }
-
-        public void write(byte[] b, int off, int len) throws IOException {
-            count += len;
-        }
-        
-        public int size() {
-            return count;
-        }
-    }
-}
index 9f59de4a86ac56f005f739a9ef4a438af95bdb55..4c9e9ceaf68d604385f71505810e0e8fdd41672d 100644 (file)
@@ -17,7 +17,7 @@
 
 package org.apache.poi.hslf.blip;
 
-import org.apache.poi.hslf.usermodel.PictureData;
+import org.apache.poi.hslf.usermodel.HSLFPictureData;
 
 import java.io.IOException;
 import java.io.ByteArrayOutputStream;
@@ -28,7 +28,7 @@ import java.io.ByteArrayOutputStream;
  *
  * @author Yegor Kozlov
  */
-public abstract  class Bitmap extends PictureData {
+public abstract  class Bitmap extends HSLFPictureData {
 
     public byte[] getData(){
         byte[] rawdata = getRawData();
index aae83bf6e15a5c31fbadd3ae2fee5dc9f3a4e1c3..6795601a6c436bef1b139306939f18316a4fd7aa 100644 (file)
@@ -17,8 +17,8 @@
 
 package org.apache.poi.hslf.blip;
 
-import org.apache.poi.hslf.usermodel.PictureData;
-import org.apache.poi.hslf.model.Picture;
+import org.apache.poi.hslf.usermodel.HSLFPictureData;
+import org.apache.poi.hslf.model.HSLFPictureShape;
 import org.apache.poi.util.POILogger;
 import org.apache.poi.util.POILogFactory;
 
@@ -56,7 +56,7 @@ import java.io.ByteArrayInputStream;
 public final class BitmapPainter implements ImagePainter {
     protected POILogger logger = POILogFactory.getLogger(this.getClass());
 
-    public void paint(Graphics2D graphics, PictureData pict, Picture parent) {
+    public void paint(Graphics2D graphics, HSLFPictureData pict, HSLFPictureShape parent) {
         BufferedImage img;
         try {
             img = ImageIO.read(new ByteArrayInputStream(pict.getData()));
index 21ea072ff7e7f48019f077410d39c3ac0620a759..401ac434762459d3f2ae88da54a80f42448f7c06 100644 (file)
@@ -17,7 +17,7 @@
 
 package org.apache.poi.hslf.blip;
 
-import org.apache.poi.hslf.model.Picture;
+import org.apache.poi.hslf.model.HSLFPictureShape;
 import org.apache.poi.util.LittleEndian;
 
 import java.io.IOException;
@@ -35,10 +35,10 @@ public final class DIB extends Bitmap {
 
     /**
      * @return type of  this picture
-     * @see  org.apache.poi.hslf.model.Picture#DIB
+     * @see  org.apache.poi.hslf.model.HSLFPictureShape#DIB
      */
     public int getType(){
-        return Picture.DIB;
+        return HSLFPictureShape.DIB;
     }
 
     /**
@@ -89,4 +89,8 @@ public final class DIB extends Bitmap {
         System.arraycopy(data, HEADER_SIZE, dib, 0, dib.length);
         super.setData(dib);
     }
+
+    public String getContentType() {
+        return "image/bmp";
+    }
 }
index 7ad569aa8de18bf51d20580791d2be23f3eebafd..5fe55f181959868aa5f80eb246b4c0e6c1a9ab19 100644 (file)
@@ -17,7 +17,7 @@
 
 package org.apache.poi.hslf.blip;
 
-import org.apache.poi.hslf.model.Picture;
+import org.apache.poi.hslf.model.HSLFPictureShape;
 import org.apache.poi.hslf.model.HSLFShape;
 import org.apache.poi.hslf.exceptions.HSLFException;
 
@@ -80,7 +80,7 @@ public final class EMF extends Metafile {
     }
 
     public int getType(){
-        return Picture.EMF;
+        return HSLFPictureShape.EMF;
     }
 
     /**
@@ -91,4 +91,8 @@ public final class EMF extends Metafile {
     public int getSignature(){
         return 0x3D40;
     }
+
+    public String getContentType() {
+        return "image/x-emf";
+    }
 }
index 2c350070486e47ed12da44d9249a98373a082f2f..0f1afecb9852fc8c1db06055174c05238fc066f8 100644 (file)
@@ -17,8 +17,8 @@
 
 package org.apache.poi.hslf.blip;
 
-import org.apache.poi.hslf.model.Picture;
-import org.apache.poi.hslf.usermodel.PictureData;
+import org.apache.poi.hslf.model.HSLFPictureShape;
+import org.apache.poi.hslf.usermodel.HSLFPictureData;
 
 import java.awt.*;
 
@@ -68,5 +68,5 @@ public interface ImagePainter {
      * @param pict      the data to paint
      * @param parent    the shapes that owns the picture data
      */
-    public void paint(Graphics2D graphics, PictureData pict, Picture parent);
+    public void paint(Graphics2D graphics, HSLFPictureData pict, HSLFPictureShape parent);
 }
index 65ade3ee385b3eb11c814c59481b0e8762a84ed9..567fc996ee94d8b846507a795d8e31e51efac499 100644 (file)
@@ -17,7 +17,7 @@
 
 package org.apache.poi.hslf.blip;
 
-import org.apache.poi.hslf.model.Picture;
+import org.apache.poi.hslf.model.HSLFPictureShape;
 
 /**
  * Represents a JPEG picture data in a PPT file
@@ -28,10 +28,10 @@ public final class JPEG extends Bitmap {
 
     /**
      * @return type of  this picture
-     * @see  org.apache.poi.hslf.model.Picture#JPEG
+     * @see  org.apache.poi.hslf.model.HSLFPictureShape#JPEG
      */
     public int getType(){
-        return Picture.JPEG;
+        return HSLFPictureShape.JPEG;
     }
 
     /**
@@ -42,4 +42,8 @@ public final class JPEG extends Bitmap {
     public int getSignature(){
         return 0x46A0;
     }
+
+    public String getContentType() {
+        return "image/jpeg";
+    }
 }
index c05d19acb041b6ee98a12753ed27ae165f2ad56b..535e206410875d8dfb9a650bb58df3b8971c20da 100644 (file)
@@ -18,7 +18,7 @@
 package org.apache.poi.hslf.blip;
 
 import org.apache.poi.util.LittleEndian;
-import org.apache.poi.hslf.usermodel.PictureData;
+import org.apache.poi.hslf.usermodel.HSLFPictureData;
 
 import java.awt.*;
 import java.io.*;
@@ -30,7 +30,7 @@ import java.util.zip.DeflaterOutputStream;
  *
  * @author Yegor Kozlov
  */
-public abstract class Metafile extends PictureData {
+public abstract class Metafile extends HSLFPictureData {
 
     /**
      *  A structure which represents a 34-byte header preceeding the compressed metafile data
index 4b401518ee5431c925abdc057aca57e5e98435cc..9b2df642625dc57e7aa79e84dda18bf75e2d92c4 100644 (file)
@@ -23,7 +23,7 @@ import java.io.IOException;
 import java.util.zip.InflaterInputStream;
 
 import org.apache.poi.hslf.exceptions.HSLFException;
-import org.apache.poi.hslf.model.Picture;
+import org.apache.poi.hslf.model.HSLFPictureShape;
 import org.apache.poi.hslf.model.HSLFShape;
 
 /**
@@ -102,10 +102,10 @@ public final class PICT extends Metafile {
     }
 
     /**
-     * @see org.apache.poi.hslf.model.Picture#PICT
+     * @see org.apache.poi.hslf.model.HSLFPictureShape#PICT
      */
     public int getType(){
-        return Picture.PICT;
+        return HSLFPictureShape.PICT;
     }
 
     /**
@@ -117,4 +117,8 @@ public final class PICT extends Metafile {
         return 0x5430;
     }
 
+    public String getContentType() {
+        return "image/x-pict";
+    }
+
 }
index 12b98f1802175c7b212453d452a79cc2d8ea6d62..a1d9aa50a90c4b12083bf0dd808065a58256638f 100644 (file)
 
 package org.apache.poi.hslf.blip;
 
+import org.apache.poi.hslf.model.HSLFPictureShape;
 import org.apache.poi.util.PngUtils;
-import org.apache.poi.hslf.model.Picture;
-import org.apache.poi.hslf.exceptions.HSLFException;
-
-import javax.imageio.ImageIO;
-import java.awt.image.BufferedImage;
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
 
 /**
  * Represents a PNG picture data in a PPT file
@@ -52,10 +46,10 @@ public final class PNG extends Bitmap {
 
     /**
      * @return type of  this picture
-     * @see  org.apache.poi.hslf.model.Picture#PNG
+     * @see  org.apache.poi.hslf.model.HSLFPictureShape#PNG
      */
     public int getType(){
-        return Picture.PNG;
+        return HSLFPictureShape.PNG;
     }
 
     /**
@@ -66,4 +60,8 @@ public final class PNG extends Bitmap {
     public int getSignature(){
         return 0x6E00;
     }
+
+    public String getContentType() {
+        return "image/png";
+    }
 }
index 76f680eafd86fdb7bcb0f33c8daef4685e4cb26d..3270b3259625e0aa879f1216a5eda84fce7a7243 100644 (file)
@@ -19,7 +19,7 @@ package org.apache.poi.hslf.blip;
 
 import org.apache.poi.util.LittleEndian;
 import org.apache.poi.util.POILogger;
-import org.apache.poi.hslf.model.Picture;
+import org.apache.poi.hslf.model.HSLFPictureShape;
 import org.apache.poi.hslf.model.HSLFShape;
 import org.apache.poi.hslf.exceptions.HSLFException;
 
@@ -95,7 +95,7 @@ public final class WMF extends Metafile {
      * We are of type <code>Picture.WMF</code>
      */
     public int getType(){
-        return Picture.WMF;
+        return HSLFPictureShape.WMF;
     }
 
     /**
@@ -188,4 +188,9 @@ public final class WMF extends Metafile {
         }
     }
 
+
+    public String getContentType() {
+        return "image/x-wmf";
+    }
+
 }
index f46906f73c63579327b519a9d8e6fbd7a9e012cd..e437f9504eac8106d27beb9df0e14fb9a550868b 100644 (file)
@@ -18,6 +18,7 @@
 package org.apache.poi.hslf.dev;
 
 import org.apache.poi.hslf.*;
+import org.apache.poi.hslf.model.HSLFSlideShowImpl;
 import org.apache.poi.hslf.record.*;
 
 
@@ -33,7 +34,7 @@ public final class PPDrawingTextListing {
                        System.exit(1);
                }
 
-               HSLFSlideShow ss = new HSLFSlideShow(args[0]);
+               HSLFSlideShowImpl ss = new HSLFSlideShowImpl(args[0]);
 
                // Find PPDrawings at any second level position
                Record[] records = ss.getRecords();
index 490e3e20554c13199be06e0007fe2d4286c70efa..d0ab5ec98fd6fd0f791e43308bda9b52f94a315e 100644 (file)
@@ -17,7 +17,7 @@
 
 package org.apache.poi.hslf.dev;
 
-import org.apache.poi.hslf.HSLFSlideShow;
+import org.apache.poi.hslf.model.HSLFSlideShowImpl;
 import org.apache.poi.hslf.record.Document;
 import org.apache.poi.hslf.record.Record;
 import org.apache.poi.hslf.record.RecordTypes;
@@ -35,7 +35,7 @@ public final class SLWTListing {
                        System.exit(1);
                }
 
-               HSLFSlideShow ss = new HSLFSlideShow(args[0]);
+               HSLFSlideShowImpl ss = new HSLFSlideShowImpl(args[0]);
 
                // Find the documents, and then their SLWT
                Record[] records = ss.getRecords();
index 16858aa3dbc5f27bf42272f765bf6d4becbbb7d4..fc9b224801fc414c36e75d8e96661ac8e9704960 100644 (file)
@@ -18,6 +18,7 @@
 package org.apache.poi.hslf.dev;
 
 import org.apache.poi.hslf.*;
+import org.apache.poi.hslf.model.HSLFSlideShowImpl;
 import org.apache.poi.hslf.record.*;
 
 /**
@@ -32,7 +33,7 @@ public final class SLWTTextListing {
                        System.exit(1);
                }
 
-               HSLFSlideShow ss = new HSLFSlideShow(args[0]);
+               HSLFSlideShowImpl ss = new HSLFSlideShowImpl(args[0]);
 
                // Find the documents, and then their SLWT
                Record[] records = ss.getRecords();
index 2dd32a4af064dba482834521f3c4480d31b717cf..2a69c17d81840c1bb6c038ea9e2e654f90f7216c 100644 (file)
@@ -18,6 +18,7 @@
 package org.apache.poi.hslf.dev;
 
 import org.apache.poi.hslf.*;
+import org.apache.poi.hslf.model.HSLFSlideShowImpl;
 import org.apache.poi.hslf.record.*;
 
 
@@ -34,7 +35,7 @@ public final class SlideAndNotesAtomListing {
                        System.exit(1);
                }
 
-               HSLFSlideShow ss = new HSLFSlideShow(args[0]);
+               HSLFSlideShowImpl ss = new HSLFSlideShowImpl(args[0]);
                System.out.println("");
 
                // Find either Slides or Notes
index 010f424c33ce50eda3daac851c6b60743dee287f..b4f487ab8abc3fdea948f88b374394905f4d1632 100644 (file)
@@ -20,7 +20,7 @@ package org.apache.poi.hslf.dev;
 import java.io.ByteArrayOutputStream;
 import java.util.Map;
 
-import org.apache.poi.hslf.HSLFSlideShow;
+import org.apache.poi.hslf.model.HSLFSlideShowImpl;
 import org.apache.poi.hslf.record.Document;
 import org.apache.poi.hslf.record.Notes;
 import org.apache.poi.hslf.record.NotesAtom;
@@ -31,7 +31,7 @@ import org.apache.poi.hslf.record.Slide;
 import org.apache.poi.hslf.record.SlideAtom;
 import org.apache.poi.hslf.record.SlideListWithText;
 import org.apache.poi.hslf.record.SlidePersistAtom;
-import org.apache.poi.hslf.usermodel.SlideShow;
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;
 import org.apache.poi.util.LittleEndian;
 
 /**
@@ -50,8 +50,8 @@ public final class SlideIdListing {
 
 
                // Create the slideshow object, for normal working with
-               HSLFSlideShow hss = new HSLFSlideShow(args[0]);
-               SlideShow ss = new SlideShow(hss);
+               HSLFSlideShowImpl hss = new HSLFSlideShowImpl(args[0]);
+               HSLFSlideShow ss = new HSLFSlideShow(hss);
 
                // Grab the base contents
                fileContents = hss.getUnderlyingBytes();
index f2e7b36dc2ddbcb5236b7d5d480db657c37c94c9..77415ff2dccc46e67907ab20f8d346baf5c3fa15 100644 (file)
@@ -19,10 +19,9 @@ package org.apache.poi.hslf.dev;
 
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
-
 import java.util.Iterator;
 
-import org.apache.poi.hslf.HSLFSlideShow;
+import org.apache.poi.hslf.model.HSLFSlideShowImpl;
 import org.apache.poi.hslf.record.Record;
 import org.apache.poi.util.HexDump;
 import org.apache.poi.ddf.DefaultEscherRecordFactory;
@@ -44,7 +43,7 @@ import org.apache.poi.hslf.record.StyleTextPropAtom;
 public final class SlideShowRecordDumper {
   private boolean optVerbose;
   private boolean optEscher;
-  private HSLFSlideShow doc;
+  private HSLFSlideShowImpl doc;
 
   /**
    *  right now this function takes one parameter: a ppt file, and outputs
@@ -103,7 +102,7 @@ public final class SlideShowRecordDumper {
   {
        optVerbose = verbose;
        optEscher = escher;
-       doc = new HSLFSlideShow(fileName);
+       doc = new HSLFSlideShowImpl(fileName);
   }
 
 
index a919f61cdded44cf6ba3d28bf5e56a67edf71134..d7fcbc6fd17045ae5bd2037ca21a245b17102274 100644 (file)
@@ -18,6 +18,7 @@
 package org.apache.poi.hslf.dev;
 
 import org.apache.poi.hslf.*;
+import org.apache.poi.hslf.model.HSLFSlideShowImpl;
 import org.apache.poi.hslf.model.textproperties.BitMaskTextProp;
 import org.apache.poi.hslf.model.textproperties.TextProp;
 import org.apache.poi.hslf.model.textproperties.TextPropCollection;
@@ -36,7 +37,7 @@ public final class TextStyleListing {
                        System.exit(1);
                }
 
-               HSLFSlideShow ss = new HSLFSlideShow(args[0]);
+               HSLFSlideShowImpl ss = new HSLFSlideShowImpl(args[0]);
 
                // Find the documents, and then their SLWT
                Record[] records = ss.getRecords();
index 749cfa94844a63de0e3a49b4e9070fe9030c973d..c7c8057171902b33d66eba0ad8021db3ac50c6ca 100644 (file)
@@ -20,7 +20,7 @@ package org.apache.poi.hslf.dev;
 import java.io.ByteArrayOutputStream;
 import java.util.Map;
 
-import org.apache.poi.hslf.HSLFSlideShow;
+import org.apache.poi.hslf.model.HSLFSlideShowImpl;
 import org.apache.poi.hslf.record.CurrentUserAtom;
 import org.apache.poi.hslf.record.PersistPtrHolder;
 import org.apache.poi.hslf.record.PositionDependentRecord;
@@ -44,7 +44,7 @@ public final class UserEditAndPersistListing {
 
 
                // Create the slideshow object, for normal working with
-               HSLFSlideShow ss = new HSLFSlideShow(args[0]);
+               HSLFSlideShowImpl ss = new HSLFSlideShowImpl(args[0]);
                fileContents = ss.getUnderlyingBytes();
                System.out.println("");
 
index 24d6d9096ec63e011498f0f4ea05ca46f3c7ff2d..268eb3b2fb81991a3d99ff950b515d018bfe986d 100644 (file)
 
 package org.apache.poi.hslf.extractor;
 
-import org.apache.poi.hslf.usermodel.SlideShow;
-import org.apache.poi.hslf.usermodel.PictureData;
-import org.apache.poi.hslf.HSLFSlideShow;
-import org.apache.poi.hslf.model.Picture;
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;
+import org.apache.poi.hslf.usermodel.HSLFPictureData;
+import org.apache.poi.hslf.model.HSLFPictureShape;
+import org.apache.poi.hslf.model.HSLFSlideShowImpl;
 
 import java.io.IOException;
 import java.io.FileOutputStream;
@@ -37,12 +37,12 @@ public final class ImageExtractor {
             System.err.println("\tImageExtractor <file>");
             return;
         }
-        SlideShow ppt = new SlideShow(new HSLFSlideShow(args[0]));
+        HSLFSlideShow ppt = new HSLFSlideShow(new HSLFSlideShowImpl(args[0]));
 
         //extract all pictures contained in the presentation
-        PictureData[] pdata = ppt.getPictureData();
+        HSLFPictureData[] pdata = ppt.getPictureData();
         for (int i = 0; i < pdata.length; i++) {
-            PictureData pict = pdata[i];
+            HSLFPictureData pict = pdata[i];
 
             // picture data
             byte[] data = pict.getData();
@@ -50,22 +50,22 @@ public final class ImageExtractor {
             int type = pict.getType();
             String ext;
             switch (type) {
-                case Picture.JPEG:
+                case HSLFPictureShape.JPEG:
                     ext = ".jpg";
                     break;
-                case Picture.PNG:
+                case HSLFPictureShape.PNG:
                     ext = ".png";
                     break;
-                case Picture.WMF:
+                case HSLFPictureShape.WMF:
                     ext = ".wmf";
                     break;
-                case Picture.EMF:
+                case HSLFPictureShape.EMF:
                     ext = ".emf";
                     break;
-                case Picture.PICT:
+                case HSLFPictureShape.PICT:
                     ext = ".pict";
                     break;
-                case Picture.DIB:
+                case HSLFPictureShape.DIB:
                     ext = ".dib";
                     break;
                 default:
index e870e5d0f8e29d6db06d2883d78ba0ecd069437c..621d2b6fcdee914e5b83b4e91486663616b46d46 100644 (file)
@@ -25,9 +25,8 @@ import java.util.List;
 import java.util.ArrayList;
 
 import org.apache.poi.POIOLE2TextExtractor;
-import org.apache.poi.hslf.HSLFSlideShow;
 import org.apache.poi.hslf.model.*;
-import org.apache.poi.hslf.usermodel.SlideShow;
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;
 import org.apache.poi.poifs.filesystem.DirectoryNode;
 import org.apache.poi.poifs.filesystem.NPOIFSFileSystem;
 import org.apache.poi.poifs.filesystem.POIFSFileSystem;
@@ -39,9 +38,9 @@ import org.apache.poi.poifs.filesystem.POIFSFileSystem;
  * @author Nick Burch
  */
 public final class PowerPointExtractor extends POIOLE2TextExtractor {
-   private HSLFSlideShow _hslfshow;
-   private SlideShow _show;
-   private Slide[] _slides;
+   private HSLFSlideShowImpl _hslfshow;
+   private HSLFSlideShow _show;
+   private HSLFSlide[] _slides;
 
    private boolean _slidesByDefault = true;
    private boolean _notesByDefault = false;
@@ -120,7 +119,7 @@ public final class PowerPointExtractor extends POIOLE2TextExtractor {
     * @param dir the POIFS Directory containing the PowerPoint document
     */
    public PowerPointExtractor(DirectoryNode dir) throws IOException {
-      this(new HSLFSlideShow(dir));
+      this(new HSLFSlideShowImpl(dir));
    }
 
    /**
@@ -128,7 +127,7 @@ public final class PowerPointExtractor extends POIOLE2TextExtractor {
     */
    @Deprecated
        public PowerPointExtractor(DirectoryNode dir, POIFSFileSystem fs) throws IOException {
-               this(new HSLFSlideShow(dir, fs));
+               this(new HSLFSlideShowImpl(dir, fs));
        }
 
        /**
@@ -136,10 +135,10 @@ public final class PowerPointExtractor extends POIOLE2TextExtractor {
         *
         * @param ss the HSLFSlideShow to extract text from
         */
-       public PowerPointExtractor(HSLFSlideShow ss) {
+       public PowerPointExtractor(HSLFSlideShowImpl ss) {
                super(ss);
                _hslfshow = ss;
-               _show = new SlideShow(_hslfshow);
+               _show = new HSLFSlideShow(_hslfshow);
                _slides = _show.getSlides();
        }
 
@@ -190,7 +189,7 @@ public final class PowerPointExtractor extends POIOLE2TextExtractor {
                List<OLEShape> list = new ArrayList<OLEShape>();
 
                for (int i = 0; i < _slides.length; i++) {
-                       Slide slide = _slides[i];
+                       HSLFSlide slide = _slides[i];
 
                        HSLFShape[] shapes = slide.getShapes();
                        for (int j = 0; j < shapes.length; j++) {
@@ -222,14 +221,14 @@ public final class PowerPointExtractor extends POIOLE2TextExtractor {
             if (getMasterText) {
                 for (SlideMaster master : _show.getSlidesMasters()) {
                     for(HSLFShape sh : master.getShapes()){
-                        if(sh instanceof TextShape){
-                            if(MasterSheet.isPlaceholder(sh)) {
+                        if(sh instanceof HSLFTextShape){
+                            if(HSLFMasterSheet.isPlaceholder(sh)) {
                                 // don't bother about boiler
                                 // plate text on master
                                 // sheets
                                 continue;
                             }
-                            TextShape tsh = (TextShape)sh;
+                            HSLFTextShape tsh = (HSLFTextShape)sh;
                             String text = tsh.getText();
                             if (text != null){
                                 ret.append(text);
@@ -243,7 +242,7 @@ public final class PowerPointExtractor extends POIOLE2TextExtractor {
             }
 
             for (int i = 0; i < _slides.length; i++) {
-                               Slide slide = _slides[i];
+                               HSLFSlide slide = _slides[i];
 
                                // Slide header, if set
                                HeadersFooters hf = slide.getHeadersFooters();
@@ -286,7 +285,7 @@ public final class PowerPointExtractor extends POIOLE2TextExtractor {
                        HeadersFooters hf = _show.getNotesHeadersFooters();
 
                        for (int i = 0; i < _slides.length; i++) {
-                               Notes notes = _slides[i].getNotesSheet();
+                               HSLFNotes notes = _slides[i].getNotesSheet();
                                if (notes == null) {
                                        continue;
                                }
@@ -331,13 +330,13 @@ public final class PowerPointExtractor extends POIOLE2TextExtractor {
             ret.append('\n');
         }
     }
-    private void textRunsToText(StringBuffer ret, TextRun[] runs) {
+    private void textRunsToText(StringBuffer ret, HSLFTextParagraph[] runs) {
         if (runs==null) {
             return;
         }
 
         for (int j = 0; j < runs.length; j++) {
-            TextRun run = runs[j];
+            HSLFTextParagraph run = runs[j];
             if (run != null) {
                 String text = run.getText();
                 ret.append(text);
index e449a555e8fd3913993e781a9d497ad690c4e688..9c92c5c59170cdf123d67e3606bab7d2b567d34e 100644 (file)
@@ -23,7 +23,7 @@ import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.poi.hslf.model.TextRun;
+import org.apache.poi.hslf.model.HSLFTextParagraph;
 import org.apache.poi.hslf.record.CString;
 import org.apache.poi.hslf.record.Record;
 import org.apache.poi.hslf.record.RecordTypes;
@@ -175,17 +175,17 @@ public final class QuickButCruddyTextExtractor {
 
                // Otherwise, check the type to see if it's text
                long type = LittleEndian.getUShort(pptContents,startPos+2);
-               TextRun trun = null;
+               HSLFTextParagraph trun = null;
 
                // TextBytesAtom
                if(type == RecordTypes.TextBytesAtom.typeID) {
                        TextBytesAtom tba = (TextBytesAtom)Record.createRecordForType(type, pptContents, startPos, len+8);
-                       trun = new TextRun((TextHeaderAtom)null,tba,(StyleTextPropAtom)null);
+                       trun = new HSLFTextParagraph((TextHeaderAtom)null,tba,(StyleTextPropAtom)null);
                }
                // TextCharsAtom
                if(type == RecordTypes.TextCharsAtom.typeID) {
                        TextCharsAtom tca = (TextCharsAtom)Record.createRecordForType(type, pptContents, startPos, len+8);
-                       trun = new TextRun((TextHeaderAtom)null,tca,(StyleTextPropAtom)null);
+                       trun = new HSLFTextParagraph((TextHeaderAtom)null,tca,(StyleTextPropAtom)null);
                }
 
                // CString (doesn't go via a TextRun)
index f1c90130dbd253960af9584d80581d4575da0372..95f83a38349c8ab8fb04f6bc72135410beca2900 100644 (file)
@@ -45,7 +45,7 @@ import org.apache.poi.util.StringUtil;
  * TODO: finish
  * @author Yegor Kozlov
  */
-public final class ActiveXShape extends Picture {
+public final class ActiveXShape extends HSLFPictureShape {
     public static final int DEFAULT_ACTIVEX_THUMBNAIL = -1;
 
     /**
@@ -108,7 +108,7 @@ public final class ActiveXShape extends Picture {
     /**
      * Assign a control to this shape
      *
-     * @see org.apache.poi.hslf.usermodel.SlideShow#addMovie(String, int)
+     * @see org.apache.poi.hslf.usermodel.HSLFSlideShow#addMovie(String, int)
      * @param idx  the index of the movie
      */
     public void setActiveXIndex(int idx){
@@ -164,7 +164,7 @@ public final class ActiveXShape extends Picture {
         return ctrl;
     }
 
-    protected void afterInsert(Sheet sheet){
+    protected void afterInsert(HSLFSheet sheet){
         ExControl ctrl = getExControl();
         ctrl.getExControlAtom().setSlideId(sheet._getSheetNumber());
 
diff --git a/src/scratchpad/src/org/apache/poi/hslf/model/AutoShape.java b/src/scratchpad/src/org/apache/poi/hslf/model/AutoShape.java
deleted file mode 100644 (file)
index 0cadd7c..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-/* ====================================================================
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-==================================================================== */
-
-package org.apache.poi.hslf.model;
-
-import org.apache.poi.ddf.*;
-import org.apache.poi.sl.usermodel.ShapeContainer;
-import org.apache.poi.sl.usermodel.ShapeType;
-import org.apache.poi.util.POILogger;
-
-import java.awt.geom.Rectangle2D;
-
-/**
- * Represents an AutoShape.
- * <p>
- * AutoShapes are drawing objects with a particular shape that may be customized through smart resizing and adjustments.
- * See {@link ShapeTypes}
- * </p>
- *
- *  @author Yegor Kozlov
- */
-public class AutoShape extends TextShape {
-
-    protected AutoShape(EscherContainerRecord escherRecord, ShapeContainer<HSLFShape> parent){
-        super(escherRecord, parent);
-    }
-
-    public AutoShape(ShapeType type, ShapeContainer<HSLFShape> parent){
-        super(null, parent);
-        _escherContainer = createSpContainer(type, parent instanceof HSLFGroupShape);
-    }
-
-    public AutoShape(ShapeType type){
-        this(type, null);
-    }
-
-    protected EscherContainerRecord createSpContainer(ShapeType shapeType, boolean isChild){
-        _escherContainer = super.createSpContainer(isChild);
-
-        setShapeType(shapeType);
-
-        //set default properties for an autoshape
-        setEscherProperty(EscherProperties.PROTECTION__LOCKAGAINSTGROUPING, 0x40000);
-        setEscherProperty(EscherProperties.FILL__FILLCOLOR, 0x8000004);
-        setEscherProperty(EscherProperties.FILL__FILLCOLOR, 0x8000004);
-        setEscherProperty(EscherProperties.FILL__FILLBACKCOLOR, 0x8000000);
-        setEscherProperty(EscherProperties.FILL__NOFILLHITTEST, 0x100010);
-        setEscherProperty(EscherProperties.LINESTYLE__COLOR, 0x8000001);
-        setEscherProperty(EscherProperties.LINESTYLE__NOLINEDRAWDASH, 0x80008);
-        setEscherProperty(EscherProperties.SHADOWSTYLE__COLOR, 0x8000002);
-
-        return _escherContainer;
-    }
-
-    protected void setDefaultTextProperties(TextRun _txtrun){
-        setVerticalAlignment(TextBox.AnchorMiddle);
-        setHorizontalAlignment(TextBox.AlignCenter);
-        setWordWrap(TextBox.WrapNone);
-    }
-
-    /**
-     * Gets adjust value which controls smart resizing of the auto-shape.
-     *
-     * <p>
-     * The adjustment values are given in shape coordinates:
-     * the origin is at the top-left, positive-x is to the right, positive-y is down.
-     * The region from (0,0) to (S,S) maps to the geometry box of the shape (S=21600 is a constant).
-     * </p>
-     *
-     * @param idx the adjust index in the [0, 9] range
-     * @return the adjustment value
-     */
-    public int getAdjustmentValue(int idx){
-        if(idx < 0 || idx > 9) throw new IllegalArgumentException("The index of an adjustment value must be in the [0, 9] range");
-
-        return getEscherProperty((short)(EscherProperties.GEOMETRY__ADJUSTVALUE + idx));
-    }
-
-    /**
-     * Sets adjust value which controls smart resizing of the auto-shape.
-     *
-     * <p>
-     * The adjustment values are given in shape coordinates:
-     * the origin is at the top-left, positive-x is to the right, positive-y is down.
-     * The region from (0,0) to (S,S) maps to the geometry box of the shape (S=21600 is a constant).
-     * </p>
-     *
-     * @param idx the adjust index in the [0, 9] range
-     * @param val the adjustment value
-     */
-    public void setAdjustmentValue(int idx, int val){
-        if(idx < 0 || idx > 9) throw new IllegalArgumentException("The index of an adjustment value must be in the [0, 9] range");
-
-        setEscherProperty((short)(EscherProperties.GEOMETRY__ADJUSTVALUE + idx), val);
-    }
-
-    public java.awt.Shape getOutline(){
-        ShapeOutline outline = AutoShapes.getShapeOutline(getShapeType());
-        Rectangle2D anchor = getLogicalAnchor2D();
-        if(outline == null){
-            logger.log(POILogger.WARN, "Outline not found for " + getShapeType().nativeName);
-            return anchor;
-        }
-        java.awt.Shape shape = outline.getOutline(this);
-        return AutoShapes.transform(shape, anchor);
-    }
-
-}
diff --git a/src/scratchpad/src/org/apache/poi/hslf/model/Background.java b/src/scratchpad/src/org/apache/poi/hslf/model/Background.java
deleted file mode 100644 (file)
index 1b172bd..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-/* ====================================================================
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-==================================================================== */
-
-package org.apache.poi.hslf.model;
-
-import java.awt.Color;
-import java.awt.Dimension;
-import java.awt.Graphics2D;
-import java.awt.Image;
-import java.awt.Rectangle;
-import java.awt.image.BufferedImage;
-import java.io.ByteArrayInputStream;
-
-import javax.imageio.ImageIO;
-
-import org.apache.poi.ddf.EscherContainerRecord;
-import org.apache.poi.hslf.blip.Bitmap;
-import org.apache.poi.hslf.usermodel.PictureData;
-import org.apache.poi.sl.usermodel.ShapeContainer;
-import org.apache.poi.util.POILogger;
-
-/**
- * Background shape
- *
- * @author Yegor Kozlov
- */
-public final class Background extends HSLFShape {
-
-    protected Background(EscherContainerRecord escherRecord, ShapeContainer<HSLFShape> parent) {
-        super(escherRecord, parent);
-    }
-
-    protected EscherContainerRecord createSpContainer(boolean isChild) {
-        return null;
-    }
-
-    public void draw(Graphics2D graphics) {
-        Fill f = getFill();
-        Dimension pg = getSheet().getSlideShow().getPageSize();
-        Rectangle anchor = new Rectangle(0, 0, pg.width, pg.height);
-        switch (f.getFillType()) {
-            case Fill.FILL_SOLID:
-                Color color = f.getForegroundColor();
-                graphics.setPaint(color);
-                graphics.fill(anchor);
-                break;
-            case Fill.FILL_PICTURE:
-                PictureData data = f.getPictureData();
-                if (data instanceof Bitmap) {
-                    BufferedImage img = null;
-                    try {
-                        img = ImageIO.read(new ByteArrayInputStream(data.getData()));
-                    } catch (Exception e) {
-                        logger.log(POILogger.WARN, "ImageIO failed to create image. image.type: " + data.getType());
-                        return;
-                    }
-                    Image scaledImg = img.getScaledInstance(anchor.width, anchor.height, Image.SCALE_SMOOTH);
-                    graphics.drawImage(scaledImg, anchor.x, anchor.y, null);
-
-                }
-                break;
-            default:
-                logger.log(POILogger.WARN, "unsuported fill type: " + f.getFillType());
-                break;
-        }
-    }
-}
diff --git a/src/scratchpad/src/org/apache/poi/hslf/model/Fill.java b/src/scratchpad/src/org/apache/poi/hslf/model/Fill.java
deleted file mode 100644 (file)
index a394cac..0000000
+++ /dev/null
@@ -1,267 +0,0 @@
-/* ====================================================================
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-==================================================================== */
-
-package org.apache.poi.hslf.model;
-
-import java.awt.Color;
-import java.util.List;
-
-import org.apache.poi.ddf.EscherBSERecord;
-import org.apache.poi.ddf.EscherContainerRecord;
-import org.apache.poi.ddf.EscherOptRecord;
-import org.apache.poi.ddf.EscherProperties;
-import org.apache.poi.ddf.EscherRecord;
-import org.apache.poi.ddf.EscherSimpleProperty;
-import org.apache.poi.hslf.record.Document;
-import org.apache.poi.hslf.usermodel.PictureData;
-import org.apache.poi.hslf.usermodel.SlideShow;
-import org.apache.poi.util.POILogFactory;
-import org.apache.poi.util.POILogger;
-
-/**
- * Represents functionality provided by the 'Fill Effects' dialog in PowerPoint.
- *
- * @author Yegor Kozlov
- */
-public final class Fill {
-    // For logging
-    protected POILogger logger = POILogFactory.getLogger(this.getClass());
-
-    /**
-     *  Fill with a solid color
-     */
-    public static final int FILL_SOLID = 0;
-
-    /**
-     *  Fill with a pattern (bitmap)
-     */
-    public static final int FILL_PATTERN = 1;
-
-    /**
-     *  A texture (pattern with its own color map)
-     */
-    public static final int FILL_TEXTURE = 2;
-
-    /**
-     *  Center a picture in the shape
-     */
-    public static final int FILL_PICTURE = 3;
-
-    /**
-     *  Shade from start to end points
-     */
-    public static final int FILL_SHADE = 4;
-
-    /**
-     *  Shade from bounding rectangle to end point
-     */
-    public static final int FILL_SHADE_CENTER = 5;
-
-    /**
-     *  Shade from shape outline to end point
-     */
-    public static final int FILL_SHADE_SHAPE = 6;
-
-    /**
-     *  Similar to FILL_SHADE, but the fill angle
-     *  is additionally scaled by the aspect ratio of
-     *  the shape. If shape is square, it is the same as FILL_SHADE
-     */
-    public static final int FILL_SHADE_SCALE = 7;
-
-    /**
-     *  shade to title
-     */
-    public static final int FILL_SHADE_TITLE = 8;
-
-    /**
-     *  Use the background fill color/pattern
-     */
-    public static final int FILL_BACKGROUND = 9;
-
-
-
-    /**
-     * The shape this background applies to
-     */
-    protected HSLFShape shape;
-
-    /**
-     * Construct a <code>Fill</code> object for a shape.
-     * Fill information will be read from shape's escher properties.
-     *
-     * @param shape the shape this background applies to
-     */
-    public Fill(HSLFShape shape){
-        this.shape = shape;
-    }
-
-    /**
-     * Returns fill type.
-     * Must be one of the <code>FILL_*</code> constants defined in this class.
-     *
-     * @return type of fill
-     */
-    public int getFillType(){
-        EscherOptRecord opt = shape.getEscherOptRecord();
-        EscherSimpleProperty prop = HSLFShape.getEscherProperty(opt, EscherProperties.FILL__FILLTYPE);
-        return prop == null ? FILL_SOLID : prop.getPropertyValue();
-    }
-
-    /**
-     */
-    protected void afterInsert(Sheet sh){
-        EscherOptRecord opt = shape.getEscherOptRecord();
-        EscherSimpleProperty p = HSLFShape.getEscherProperty(opt, EscherProperties.FILL__PATTERNTEXTURE);
-        if(p != null) {
-            int idx = p.getPropertyValue();
-            EscherBSERecord bse = getEscherBSERecord(idx);
-            bse.setRef(bse.getRef() + 1);
-        }
-    }
-
-    protected EscherBSERecord getEscherBSERecord(int idx){
-        Sheet sheet = shape.getSheet();
-        if(sheet == null) {
-            logger.log(POILogger.DEBUG, "Fill has not yet been assigned to a sheet");
-            return null;
-        }
-        SlideShow ppt = sheet.getSlideShow();
-        Document doc = ppt.getDocumentRecord();
-        EscherContainerRecord dggContainer = doc.getPPDrawingGroup().getDggContainer();
-        EscherContainerRecord bstore = HSLFShape.getEscherChild(dggContainer, EscherContainerRecord.BSTORE_CONTAINER);
-        if(bstore == null) {
-            logger.log(POILogger.DEBUG, "EscherContainerRecord.BSTORE_CONTAINER was not found ");
-            return null;
-        }
-        List<EscherRecord> lst = bstore.getChildRecords();
-        return (EscherBSERecord)lst.get(idx-1);
-    }
-
-    /**
-     * Sets fill type.
-     * Must be one of the <code>FILL_*</code> constants defined in this class.
-     *
-     * @param type type of the fill
-     */
-    public void setFillType(int type){
-        EscherOptRecord opt = shape.getEscherOptRecord();
-        HSLFShape.setEscherProperty(opt, EscherProperties.FILL__FILLTYPE, type);
-    }
-
-    /**
-     * Foreground color
-     */
-    public Color getForegroundColor(){
-        EscherOptRecord opt = shape.getEscherOptRecord();
-        EscherSimpleProperty p = HSLFShape.getEscherProperty(opt, EscherProperties.FILL__NOFILLHITTEST);
-
-        if(p != null && (p.getPropertyValue() & 0x10) == 0) return null;
-
-        return shape.getColor(EscherProperties.FILL__FILLCOLOR, EscherProperties.FILL__FILLOPACITY, -1);
-
-    }
-
-    /**
-     * Foreground color
-     */
-    public void setForegroundColor(Color color){
-        EscherOptRecord opt = shape.getEscherOptRecord();
-        if (color == null) {
-            HSLFShape.setEscherProperty(opt, EscherProperties.FILL__NOFILLHITTEST, 0x150000);
-        }
-        else {
-            int rgb = new Color(color.getBlue(), color.getGreen(), color.getRed(), 0).getRGB();
-            HSLFShape.setEscherProperty(opt, EscherProperties.FILL__FILLCOLOR, rgb);
-            HSLFShape.setEscherProperty(opt, EscherProperties.FILL__NOFILLHITTEST, 0x150011);
-        }
-    }
-
-    /**
-     * Background color
-     */
-    public Color getBackgroundColor(){
-        EscherOptRecord opt = shape.getEscherOptRecord();
-        EscherSimpleProperty p = HSLFShape.getEscherProperty(opt, EscherProperties.FILL__NOFILLHITTEST);
-
-        if(p != null && (p.getPropertyValue() & 0x10) == 0) return null;
-
-        return shape.getColor(EscherProperties.FILL__FILLBACKCOLOR, EscherProperties.FILL__FILLOPACITY, -1);
-    }
-
-    /**
-     * Background color
-     */
-    public void setBackgroundColor(Color color){
-        EscherOptRecord opt = shape.getEscherOptRecord();
-        if (color == null) {
-            HSLFShape.setEscherProperty(opt, EscherProperties.FILL__FILLBACKCOLOR, -1);
-        }
-        else {
-            int rgb = new Color(color.getBlue(), color.getGreen(), color.getRed(), 0).getRGB();
-            HSLFShape.setEscherProperty(opt, EscherProperties.FILL__FILLBACKCOLOR, rgb);
-        }
-    }
-
-    /**
-     * <code>PictureData</code> object used in a texture, pattern of picture fill.
-     */
-    public PictureData getPictureData(){
-        EscherOptRecord opt = shape.getEscherOptRecord();
-        EscherSimpleProperty p = HSLFShape.getEscherProperty(opt, EscherProperties.FILL__PATTERNTEXTURE);
-        if (p == null) return null;
-
-        SlideShow ppt = shape.getSheet().getSlideShow();
-        PictureData[] pict = ppt.getPictureData();
-        Document doc = ppt.getDocumentRecord();
-
-        EscherContainerRecord dggContainer = doc.getPPDrawingGroup().getDggContainer();
-        EscherContainerRecord bstore = HSLFShape.getEscherChild(dggContainer, EscherContainerRecord.BSTORE_CONTAINER);
-
-        java.util.List<EscherRecord> lst = bstore.getChildRecords();
-        int idx = p.getPropertyValue();
-        if (idx == 0){
-            logger.log(POILogger.WARN, "no reference to picture data found ");
-        } else {
-            EscherBSERecord bse = (EscherBSERecord)lst.get(idx - 1);
-            for ( int i = 0; i < pict.length; i++ ) {
-                if (pict[i].getOffset() ==  bse.getOffset()){
-                    return pict[i];
-                }
-            }
-        }
-
-        return null;
-    }
-
-    /**
-     * Assign picture used to fill the underlying shape.
-     *
-     * @param idx 0-based index of the picture added to this ppt by <code>SlideShow.addPicture</code> method.
-     */
-    public void setPictureData(int idx){
-        EscherOptRecord opt = shape.getEscherOptRecord();
-        HSLFShape.setEscherProperty(opt, (short)(EscherProperties.FILL__PATTERNTEXTURE + 0x4000), idx);
-        if( idx != 0 ) {
-            if( shape.getSheet() != null ) {
-                EscherBSERecord bse = getEscherBSERecord(idx);
-                bse.setRef(bse.getRef() + 1);
-            }
-        }
-    }
-
-}
diff --git a/src/scratchpad/src/org/apache/poi/hslf/model/Freeform.java b/src/scratchpad/src/org/apache/poi/hslf/model/Freeform.java
deleted file mode 100644 (file)
index 6bf232a..0000000
+++ /dev/null
@@ -1,264 +0,0 @@
-/* ====================================================================
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-==================================================================== */
-
-package org.apache.poi.hslf.model;
-
-import java.awt.geom.AffineTransform;
-import java.awt.geom.GeneralPath;
-import java.awt.geom.PathIterator;
-import java.awt.geom.Point2D;
-import java.awt.geom.Rectangle2D;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.apache.poi.ddf.EscherArrayProperty;
-import org.apache.poi.ddf.EscherContainerRecord;
-import org.apache.poi.ddf.EscherOptRecord;
-import org.apache.poi.ddf.EscherProperties;
-import org.apache.poi.ddf.EscherSimpleProperty;
-import org.apache.poi.sl.usermodel.ShapeContainer;
-import org.apache.poi.sl.usermodel.ShapeType;
-import org.apache.poi.util.LittleEndian;
-import org.apache.poi.util.POILogger;
-
-/**
- * A "Freeform" shape.
- *
- * <p>
- * Shapes drawn with the "Freeform" tool have cubic bezier curve segments in the smooth sections
- * and straight-line segments in the straight sections. This object closely corresponds to <code>java.awt.geom.GeneralPath</code>.
- * </p>
- * @author Yegor Kozlov
- */
-public final class Freeform extends AutoShape {
-
-    public static final byte[] SEGMENTINFO_MOVETO   = new byte[]{0x00, 0x40};
-    public static final byte[] SEGMENTINFO_LINETO   = new byte[]{0x00, (byte)0xAC};
-    public static final byte[] SEGMENTINFO_ESCAPE   = new byte[]{0x01, 0x00};
-    public static final byte[] SEGMENTINFO_ESCAPE2  = new byte[]{0x01, 0x20};
-    public static final byte[] SEGMENTINFO_CUBICTO  = new byte[]{0x00, (byte)0xAD};
-    public static final byte[] SEGMENTINFO_CUBICTO2 = new byte[]{0x00, (byte)0xB3}; //OpenOffice inserts 0xB3 instead of 0xAD.
-    public static final byte[] SEGMENTINFO_CLOSE    = new byte[]{0x01, (byte)0x60};
-    public static final byte[] SEGMENTINFO_END      = new byte[]{0x00, (byte)0x80};
-
-    /**
-     * Create a Freeform object and initialize it from the supplied Record container.
-     *
-     * @param escherRecord       <code>EscherSpContainer</code> container which holds information about this shape
-     * @param parent    the parent of the shape
-     */
-   protected Freeform(EscherContainerRecord escherRecord, ShapeContainer<HSLFShape> parent){
-        super(escherRecord, parent);
-
-    }
-
-    /**
-     * Create a new Freeform. This constructor is used when a new shape is created.
-     *
-     * @param parent    the parent of this Shape. For example, if this text box is a cell
-     * in a table then the parent is Table.
-     */
-    public Freeform(ShapeContainer<HSLFShape> parent){
-        super((EscherContainerRecord)null, parent);
-        _escherContainer = createSpContainer(ShapeType.NOT_PRIMITIVE, parent instanceof HSLFGroupShape);
-    }
-
-    /**
-     * Create a new Freeform. This constructor is used when a new shape is created.
-     *
-     */
-    public Freeform(){
-        this(null);
-    }
-
-    /**
-     * Set the shape path
-     *
-     * @param path
-     */
-    public void setPath(GeneralPath path)
-    {
-        Rectangle2D bounds = path.getBounds2D();
-        PathIterator it = path.getPathIterator(new AffineTransform());
-
-        List<byte[]> segInfo = new ArrayList<byte[]>();
-        List<Point2D.Double> pntInfo = new ArrayList<Point2D.Double>();
-        boolean isClosed = false;
-        while (!it.isDone()) {
-            double[] vals = new double[6];
-            int type = it.currentSegment(vals);
-            switch (type) {
-                case PathIterator.SEG_MOVETO:
-                    pntInfo.add(new Point2D.Double(vals[0], vals[1]));
-                    segInfo.add(SEGMENTINFO_MOVETO);
-                    break;
-                case PathIterator.SEG_LINETO:
-                    pntInfo.add(new Point2D.Double(vals[0], vals[1]));
-                    segInfo.add(SEGMENTINFO_LINETO);
-                    segInfo.add(SEGMENTINFO_ESCAPE);
-                    break;
-                case PathIterator.SEG_CUBICTO:
-                    pntInfo.add(new Point2D.Double(vals[0], vals[1]));
-                    pntInfo.add(new Point2D.Double(vals[2], vals[3]));
-                    pntInfo.add(new Point2D.Double(vals[4], vals[5]));
-                    segInfo.add(SEGMENTINFO_CUBICTO);
-                    segInfo.add(SEGMENTINFO_ESCAPE2);
-                    break;
-                case PathIterator.SEG_QUADTO:
-                    //TODO: figure out how to convert SEG_QUADTO into SEG_CUBICTO
-                    logger.log(POILogger.WARN, "SEG_QUADTO is not supported");
-                    break;
-                case PathIterator.SEG_CLOSE:
-                    pntInfo.add(pntInfo.get(0));
-                    segInfo.add(SEGMENTINFO_LINETO);
-                    segInfo.add(SEGMENTINFO_ESCAPE);
-                    segInfo.add(SEGMENTINFO_LINETO);
-                    segInfo.add(SEGMENTINFO_CLOSE);
-                    isClosed = true;
-                    break;
-            }
-
-            it.next();
-        }
-        if(!isClosed) segInfo.add(SEGMENTINFO_LINETO);
-        segInfo.add(new byte[]{0x00, (byte)0x80});
-
-        EscherOptRecord opt = getEscherOptRecord();
-        opt.addEscherProperty(new EscherSimpleProperty(EscherProperties.GEOMETRY__SHAPEPATH, 0x4));
-
-        EscherArrayProperty verticesProp = new EscherArrayProperty((short)(EscherProperties.GEOMETRY__VERTICES + 0x4000), false, null);
-        verticesProp.setNumberOfElementsInArray(pntInfo.size());
-        verticesProp.setNumberOfElementsInMemory(pntInfo.size());
-        verticesProp.setSizeOfElements(0xFFF0);
-        for (int i = 0; i < pntInfo.size(); i++) {
-            Point2D.Double pnt = pntInfo.get(i);
-            byte[] data = new byte[4];
-            LittleEndian.putShort(data, 0, (short)((pnt.getX() - bounds.getX())*MASTER_DPI/POINT_DPI));
-            LittleEndian.putShort(data, 2, (short)((pnt.getY() - bounds.getY())*MASTER_DPI/POINT_DPI));
-            verticesProp.setElement(i, data);
-        }
-        opt.addEscherProperty(verticesProp);
-
-        EscherArrayProperty segmentsProp = new EscherArrayProperty((short)(EscherProperties.GEOMETRY__SEGMENTINFO + 0x4000), false, null);
-        segmentsProp.setNumberOfElementsInArray(segInfo.size());
-        segmentsProp.setNumberOfElementsInMemory(segInfo.size());
-        segmentsProp.setSizeOfElements(0x2);
-        for (int i = 0; i < segInfo.size(); i++) {
-            byte[] seg = segInfo.get(i);
-            segmentsProp.setElement(i, seg);
-        }
-        opt.addEscherProperty(segmentsProp);
-
-        opt.addEscherProperty(new EscherSimpleProperty(EscherProperties.GEOMETRY__RIGHT, (int)(bounds.getWidth()*MASTER_DPI/POINT_DPI)));
-        opt.addEscherProperty(new EscherSimpleProperty(EscherProperties.GEOMETRY__BOTTOM, (int)(bounds.getHeight()*MASTER_DPI/POINT_DPI)));
-
-        opt.sortProperties();
-
-        setAnchor(bounds);
-    }
-
-    /**
-     * Gets the freeform path
-     *
-     * @return the freeform path
-     */
-     public GeneralPath getPath(){
-        EscherOptRecord opt = getEscherOptRecord();
-        opt.addEscherProperty(new EscherSimpleProperty(EscherProperties.GEOMETRY__SHAPEPATH, 0x4));
-
-        EscherArrayProperty verticesProp = getEscherProperty(opt, (short)(EscherProperties.GEOMETRY__VERTICES + 0x4000));
-        if(verticesProp == null) verticesProp = getEscherProperty(opt, EscherProperties.GEOMETRY__VERTICES);
-
-        EscherArrayProperty segmentsProp = getEscherProperty(opt, (short)(EscherProperties.GEOMETRY__SEGMENTINFO + 0x4000));
-        if(segmentsProp == null) segmentsProp = getEscherProperty(opt, EscherProperties.GEOMETRY__SEGMENTINFO);
-
-        //sanity check
-        if(verticesProp == null) {
-            logger.log(POILogger.WARN, "Freeform is missing GEOMETRY__VERTICES ");
-            return null;
-        }
-        if(segmentsProp == null) {
-            logger.log(POILogger.WARN, "Freeform is missing GEOMETRY__SEGMENTINFO ");
-            return null;
-        }
-
-        GeneralPath path = new GeneralPath();
-        int numPoints = verticesProp.getNumberOfElementsInArray();
-        int numSegments = segmentsProp.getNumberOfElementsInArray();
-        for (int i = 0, j = 0; i < numSegments && j < numPoints; i++) {
-            byte[] elem = segmentsProp.getElement(i);
-            if(Arrays.equals(elem, SEGMENTINFO_MOVETO)){
-                byte[] p = verticesProp.getElement(j++);
-                short x = LittleEndian.getShort(p, 0);
-                short y = LittleEndian.getShort(p, 2);
-                path.moveTo(
-                        ((float)x*POINT_DPI/MASTER_DPI),
-                        ((float)y*POINT_DPI/MASTER_DPI));
-            } else if (Arrays.equals(elem, SEGMENTINFO_CUBICTO) || Arrays.equals(elem, SEGMENTINFO_CUBICTO2)){
-                i++;
-                byte[] p1 = verticesProp.getElement(j++);
-                short x1 = LittleEndian.getShort(p1, 0);
-                short y1 = LittleEndian.getShort(p1, 2);
-                byte[] p2 = verticesProp.getElement(j++);
-                short x2 = LittleEndian.getShort(p2, 0);
-                short y2 = LittleEndian.getShort(p2, 2);
-                byte[] p3 = verticesProp.getElement(j++);
-                short x3 = LittleEndian.getShort(p3, 0);
-                short y3 = LittleEndian.getShort(p3, 2);
-                path.curveTo(
-                        ((float)x1*POINT_DPI/MASTER_DPI), ((float)y1*POINT_DPI/MASTER_DPI),
-                        ((float)x2*POINT_DPI/MASTER_DPI), ((float)y2*POINT_DPI/MASTER_DPI),
-                        ((float)x3*POINT_DPI/MASTER_DPI), ((float)y3*POINT_DPI/MASTER_DPI));
-
-            } else if (Arrays.equals(elem, SEGMENTINFO_LINETO)){
-                i++;
-                byte[] pnext = segmentsProp.getElement(i);
-                if(Arrays.equals(pnext, SEGMENTINFO_ESCAPE)){
-                    if(j + 1 < numPoints){
-                        byte[] p = verticesProp.getElement(j++);
-                        short x = LittleEndian.getShort(p, 0);
-                        short y = LittleEndian.getShort(p, 2);
-                        path.lineTo(
-                                ((float)x*POINT_DPI/MASTER_DPI), ((float)y*POINT_DPI/MASTER_DPI));
-                    }
-                } else if (Arrays.equals(pnext, SEGMENTINFO_CLOSE)){
-                    path.closePath();
-                }
-            }
-        }
-        return path;
-    }
-
-    public java.awt.Shape getOutline(){
-        GeneralPath path =  getPath();
-        if(path == null) {
-            // return empty path if either GEOMETRY__VERTICES or GEOMETRY__SEGMENTINFO is missing, see Bugzilla 54188
-            return new GeneralPath();
-        }
-
-        Rectangle2D anchor = getAnchor2D();
-        Rectangle2D bounds = path.getBounds2D();
-        AffineTransform at = new AffineTransform();
-        at.translate(anchor.getX(), anchor.getY());
-        at.scale(
-                anchor.getWidth()/bounds.getWidth(),
-                anchor.getHeight()/bounds.getHeight()
-        );
-        return at.createTransformedShape(path);
-    }
-}
diff --git a/src/scratchpad/src/org/apache/poi/hslf/model/HSLFAutoShape.java b/src/scratchpad/src/org/apache/poi/hslf/model/HSLFAutoShape.java
new file mode 100644 (file)
index 0000000..1f74f2c
--- /dev/null
@@ -0,0 +1,123 @@
+/* ====================================================================
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+==================================================================== */
+
+package org.apache.poi.hslf.model;
+
+import org.apache.poi.ddf.*;
+import org.apache.poi.sl.draw.geom.CustomGeometry;
+import org.apache.poi.sl.draw.geom.Guide;
+import org.apache.poi.sl.usermodel.*;
+import org.apache.poi.util.POILogger;
+
+import java.awt.geom.Rectangle2D;
+import java.util.Iterator;
+
+/**
+ * Represents an AutoShape.
+ * <p>
+ * AutoShapes are drawing objects with a particular shape that may be customized through smart resizing and adjustments.
+ * See {@link ShapeTypes}
+ * </p>
+ *
+ *  @author Yegor Kozlov
+ */
+public class HSLFAutoShape extends HSLFTextShape implements AutoShape<HSLFTextParagraph> {
+
+    protected HSLFAutoShape(EscherContainerRecord escherRecord, ShapeContainer<HSLFShape> parent){
+        super(escherRecord, parent);
+    }
+
+    public HSLFAutoShape(ShapeType type, ShapeContainer<HSLFShape> parent){
+        super(null, parent);
+        _escherContainer = createSpContainer(type, parent instanceof HSLFGroupShape);
+    }
+
+    public HSLFAutoShape(ShapeType type){
+        this(type, null);
+    }
+
+    protected EscherContainerRecord createSpContainer(ShapeType shapeType, boolean isChild){
+        _escherContainer = super.createSpContainer(isChild);
+
+        setShapeType(shapeType);
+
+        //set default properties for an autoshape
+        setEscherProperty(EscherProperties.PROTECTION__LOCKAGAINSTGROUPING, 0x40000);
+        setEscherProperty(EscherProperties.FILL__FILLCOLOR, 0x8000004);
+        setEscherProperty(EscherProperties.FILL__FILLCOLOR, 0x8000004);
+        setEscherProperty(EscherProperties.FILL__FILLBACKCOLOR, 0x8000000);
+        setEscherProperty(EscherProperties.FILL__NOFILLHITTEST, 0x100010);
+        setEscherProperty(EscherProperties.LINESTYLE__COLOR, 0x8000001);
+        setEscherProperty(EscherProperties.LINESTYLE__NOLINEDRAWDASH, 0x80008);
+        setEscherProperty(EscherProperties.SHADOWSTYLE__COLOR, 0x8000002);
+
+        return _escherContainer;
+    }
+
+    protected void setDefaultTextProperties(HSLFTextParagraph _txtrun){
+        setVerticalAlignment(HSLFTextBox.AnchorMiddle);
+        setHorizontalAlignment(HSLFTextBox.AlignCenter);
+        setWordWrap(HSLFTextBox.WrapNone);
+    }
+
+    /**
+     * Gets adjust value which controls smart resizing of the auto-shape.
+     *
+     * <p>
+     * The adjustment values are given in shape coordinates:
+     * the origin is at the top-left, positive-x is to the right, positive-y is down.
+     * The region from (0,0) to (S,S) maps to the geometry box of the shape (S=21600 is a constant).
+     * </p>
+     *
+     * @param idx the adjust index in the [0, 9] range
+     * @return the adjustment value
+     */
+    public int getAdjustmentValue(int idx){
+        if(idx < 0 || idx > 9) throw new IllegalArgumentException("The index of an adjustment value must be in the [0, 9] range");
+
+        return getEscherProperty((short)(EscherProperties.GEOMETRY__ADJUSTVALUE + idx));
+    }
+
+    /**
+     * Sets adjust value which controls smart resizing of the auto-shape.
+     *
+     * <p>
+     * The adjustment values are given in shape coordinates:
+     * the origin is at the top-left, positive-x is to the right, positive-y is down.
+     * The region from (0,0) to (S,S) maps to the geometry box of the shape (S=21600 is a constant).
+     * </p>
+     *
+     * @param idx the adjust index in the [0, 9] range
+     * @param val the adjustment value
+     */
+    public void setAdjustmentValue(int idx, int val){
+        if(idx < 0 || idx > 9) throw new IllegalArgumentException("The index of an adjustment value must be in the [0, 9] range");
+
+        setEscherProperty((short)(EscherProperties.GEOMETRY__ADJUSTVALUE + idx), val);
+    }
+
+    public java.awt.Shape getOutline(){
+        ShapeOutline outline = AutoShapes.getShapeOutline(getShapeType());
+        Rectangle2D anchor = getLogicalAnchor2D();
+        if(outline == null){
+            logger.log(POILogger.WARN, "Outline not found for " + getShapeType().nativeName);
+            return anchor;
+        }
+        java.awt.Shape shape = outline.getOutline(this);
+        return AutoShapes.transform(shape, anchor);
+    }
+}
diff --git a/src/scratchpad/src/org/apache/poi/hslf/model/HSLFBackground.java b/src/scratchpad/src/org/apache/poi/hslf/model/HSLFBackground.java
new file mode 100644 (file)
index 0000000..8d581f5
--- /dev/null
@@ -0,0 +1,38 @@
+/* ====================================================================
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+==================================================================== */
+
+package org.apache.poi.hslf.model;
+
+import org.apache.poi.ddf.EscherContainerRecord;
+import org.apache.poi.sl.usermodel.Background;
+import org.apache.poi.sl.usermodel.ShapeContainer;
+
+/**
+ * Background shape
+ *
+ * @author Yegor Kozlov
+ */
+public final class HSLFBackground extends HSLFShape implements Background {
+
+    protected HSLFBackground(EscherContainerRecord escherRecord, ShapeContainer<HSLFShape> parent) {
+        super(escherRecord, parent);
+    }
+
+    protected EscherContainerRecord createSpContainer(boolean isChild) {
+        return null;
+    }
+}
diff --git a/src/scratchpad/src/org/apache/poi/hslf/model/HSLFFill.java b/src/scratchpad/src/org/apache/poi/hslf/model/HSLFFill.java
new file mode 100644 (file)
index 0000000..14846e1
--- /dev/null
@@ -0,0 +1,312 @@
+/* ====================================================================
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+==================================================================== */
+
+package org.apache.poi.hslf.model;
+
+import java.awt.Color;
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+import java.util.List;
+
+import org.apache.poi.ddf.*;
+import org.apache.poi.hslf.record.Document;
+import org.apache.poi.hslf.usermodel.HSLFPictureData;
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;
+import org.apache.poi.sl.usermodel.*;
+import org.apache.poi.sl.usermodel.PaintStyle.SolidPaint;
+import org.apache.poi.sl.usermodel.PaintStyle.TexturePaint;
+import org.apache.poi.util.POILogFactory;
+import org.apache.poi.util.POILogger;
+
+/**
+ * Represents functionality provided by the 'Fill Effects' dialog in PowerPoint.
+ *
+ * @author Yegor Kozlov
+ */
+public final class HSLFFill {
+    // For logging
+    protected POILogger logger = POILogFactory.getLogger(this.getClass());
+
+    /**
+     *  Fill with a solid color
+     */
+    public static final int FILL_SOLID = 0;
+
+    /**
+     *  Fill with a pattern (bitmap)
+     */
+    public static final int FILL_PATTERN = 1;
+
+    /**
+     *  A texture (pattern with its own color map)
+     */
+    public static final int FILL_TEXTURE = 2;
+
+    /**
+     *  Center a picture in the shape
+     */
+    public static final int FILL_PICTURE = 3;
+
+    /**
+     *  Shade from start to end points
+     */
+    public static final int FILL_SHADE = 4;
+
+    /**
+     *  Shade from bounding rectangle to end point
+     */
+    public static final int FILL_SHADE_CENTER = 5;
+
+    /**
+     *  Shade from shape outline to end point
+     */
+    public static final int FILL_SHADE_SHAPE = 6;
+
+    /**
+     *  Similar to FILL_SHADE, but the fill angle
+     *  is additionally scaled by the aspect ratio of
+     *  the shape. If shape is square, it is the same as FILL_SHADE
+     */
+    public static final int FILL_SHADE_SCALE = 7;
+
+    /**
+     *  shade to title
+     */
+    public static final int FILL_SHADE_TITLE = 8;
+
+    /**
+     *  Use the background fill color/pattern
+     */
+    public static final int FILL_BACKGROUND = 9;
+
+
+
+    /**
+     * The shape this background applies to
+     */
+    protected HSLFShape shape;
+
+    /**
+     * Construct a <code>Fill</code> object for a shape.
+     * Fill information will be read from shape's escher properties.
+     *
+     * @param shape the shape this background applies to
+     */
+    public HSLFFill(HSLFShape shape){
+        this.shape = shape;
+    }
+
+
+    public FillStyle getFillStyle() {
+        return new FillStyle() {
+            public PaintStyle getPaint() {
+                switch (getFillType()) {
+                    case FILL_SOLID: {
+                        return new SolidPaint() {
+                            public ColorStyle getSolidColor() {
+                                return new ColorStyle() {
+                                    public Color getColor() { return getForegroundColor(); }
+                                    public int getAlpha() { return -1; }
+                                    public int getLumOff() { return -1; }
+                                    public int getLumMod() { return -1; }
+                                    public int getShade()  { return -1; }
+                                    public int getTint()  { return -1; }
+                                };
+                            }
+                        };
+                    }
+                    case FILL_PICTURE: {
+                        return new TexturePaint() {
+                            final HSLFPictureData pd = getPictureData();
+                            
+                            public InputStream getImageData() {
+                                return new ByteArrayInputStream(pd.getData());
+                            }
+
+                            public String getContentType() {
+                                return pd.getContentType();
+                            }
+
+                            public int getAlpha() {
+                                return (int)(shape.getAlpha(EscherProperties.FILL__FILLOPACITY)*100000.0);
+                            }
+                        };
+                    }
+                    default:
+                        logger.log(POILogger.WARN, "unsuported fill type: " + getFillType());
+                        break;
+                }
+                return PaintStyle.TRANSPARENT_PAINT;
+            }
+        };
+    }
+    
+    /**
+     * Returns fill type.
+     * Must be one of the <code>FILL_*</code> constants defined in this class.
+     *
+     * @return type of fill
+     */
+    public int getFillType(){
+        EscherOptRecord opt = shape.getEscherOptRecord();
+        EscherSimpleProperty prop = HSLFShape.getEscherProperty(opt, EscherProperties.FILL__FILLTYPE);
+        return prop == null ? FILL_SOLID : prop.getPropertyValue();
+    }
+
+    /**
+     */
+    protected void afterInsert(HSLFSheet sh){
+        EscherOptRecord opt = shape.getEscherOptRecord();
+        EscherSimpleProperty p = HSLFShape.getEscherProperty(opt, EscherProperties.FILL__PATTERNTEXTURE);
+        if(p != null) {
+            int idx = p.getPropertyValue();
+            EscherBSERecord bse = getEscherBSERecord(idx);
+            bse.setRef(bse.getRef() + 1);
+        }
+    }
+
+    protected EscherBSERecord getEscherBSERecord(int idx){
+        HSLFSheet sheet = shape.getSheet();
+        if(sheet == null) {
+            logger.log(POILogger.DEBUG, "Fill has not yet been assigned to a sheet");
+            return null;
+        }
+        HSLFSlideShow ppt = sheet.getSlideShow();
+        Document doc = ppt.getDocumentRecord();
+        EscherContainerRecord dggContainer = doc.getPPDrawingGroup().getDggContainer();
+        EscherContainerRecord bstore = HSLFShape.getEscherChild(dggContainer, EscherContainerRecord.BSTORE_CONTAINER);
+        if(bstore == null) {
+            logger.log(POILogger.DEBUG, "EscherContainerRecord.BSTORE_CONTAINER was not found ");
+            return null;
+        }
+        List<EscherRecord> lst = bstore.getChildRecords();
+        return (EscherBSERecord)lst.get(idx-1);
+    }
+
+    /**
+     * Sets fill type.
+     * Must be one of the <code>FILL_*</code> constants defined in this class.
+     *
+     * @param type type of the fill
+     */
+    public void setFillType(int type){
+        EscherOptRecord opt = shape.getEscherOptRecord();
+        HSLFShape.setEscherProperty(opt, EscherProperties.FILL__FILLTYPE, type);
+    }
+
+    /**
+     * Foreground color
+     */
+    public Color getForegroundColor(){
+        EscherOptRecord opt = shape.getEscherOptRecord();
+        EscherSimpleProperty p = HSLFShape.getEscherProperty(opt, EscherProperties.FILL__NOFILLHITTEST);
+
+        if(p != null && (p.getPropertyValue() & 0x10) == 0) return null;
+
+        return shape.getColor(EscherProperties.FILL__FILLCOLOR, EscherProperties.FILL__FILLOPACITY, -1);
+
+    }
+
+    /**
+     * Foreground color
+     */
+    public void setForegroundColor(Color color){
+        EscherOptRecord opt = shape.getEscherOptRecord();
+        if (color == null) {
+            HSLFShape.setEscherProperty(opt, EscherProperties.FILL__NOFILLHITTEST, 0x150000);
+        }
+        else {
+            int rgb = new Color(color.getBlue(), color.getGreen(), color.getRed(), 0).getRGB();
+            HSLFShape.setEscherProperty(opt, EscherProperties.FILL__FILLCOLOR, rgb);
+            HSLFShape.setEscherProperty(opt, EscherProperties.FILL__NOFILLHITTEST, 0x150011);
+        }
+    }
+
+    /**
+     * Background color
+     */
+    public Color getBackgroundColor(){
+        EscherOptRecord opt = shape.getEscherOptRecord();
+        EscherSimpleProperty p = HSLFShape.getEscherProperty(opt, EscherProperties.FILL__NOFILLHITTEST);
+
+        if(p != null && (p.getPropertyValue() & 0x10) == 0) return null;
+
+        return shape.getColor(EscherProperties.FILL__FILLBACKCOLOR, EscherProperties.FILL__FILLOPACITY, -1);
+    }
+
+    /**
+     * Background color
+     */
+    public void setBackgroundColor(Color color){
+        EscherOptRecord opt = shape.getEscherOptRecord();
+        if (color == null) {
+            HSLFShape.setEscherProperty(opt, EscherProperties.FILL__FILLBACKCOLOR, -1);
+        }
+        else {
+            int rgb = new Color(color.getBlue(), color.getGreen(), color.getRed(), 0).getRGB();
+            HSLFShape.setEscherProperty(opt, EscherProperties.FILL__FILLBACKCOLOR, rgb);
+        }
+    }
+
+    /**
+     * <code>PictureData</code> object used in a texture, pattern of picture fill.
+     */
+    public HSLFPictureData getPictureData(){
+        EscherOptRecord opt = shape.getEscherOptRecord();
+        EscherSimpleProperty p = HSLFShape.getEscherProperty(opt, EscherProperties.FILL__PATTERNTEXTURE);
+        if (p == null) return null;
+
+        HSLFSlideShow ppt = shape.getSheet().getSlideShow();
+        HSLFPictureData[] pict = ppt.getPictureData();
+        Document doc = ppt.getDocumentRecord();
+
+        EscherContainerRecord dggContainer = doc.getPPDrawingGroup().getDggContainer();
+        EscherContainerRecord bstore = HSLFShape.getEscherChild(dggContainer, EscherContainerRecord.BSTORE_CONTAINER);
+
+        java.util.List<EscherRecord> lst = bstore.getChildRecords();
+        int idx = p.getPropertyValue();
+        if (idx == 0){
+            logger.log(POILogger.WARN, "no reference to picture data found ");
+        } else {
+            EscherBSERecord bse = (EscherBSERecord)lst.get(idx - 1);
+            for ( int i = 0; i < pict.length; i++ ) {
+                if (pict[i].getOffset() ==  bse.getOffset()){
+                    return pict[i];
+                }
+            }
+        }
+
+        return null;
+    }
+
+    /**
+     * Assign picture used to fill the underlying shape.
+     *
+     * @param idx 0-based index of the picture added to this ppt by <code>SlideShow.addPicture</code> method.
+     */
+    public void setPictureData(int idx){
+        EscherOptRecord opt = shape.getEscherOptRecord();
+        HSLFShape.setEscherProperty(opt, (short)(EscherProperties.FILL__PATTERNTEXTURE + 0x4000), idx);
+        if( idx != 0 ) {
+            if( shape.getSheet() != null ) {
+                EscherBSERecord bse = getEscherBSERecord(idx);
+                bse.setRef(bse.getRef() + 1);
+            }
+        }
+    }
+
+}
diff --git a/src/scratchpad/src/org/apache/poi/hslf/model/HSLFFreeformShape.java b/src/scratchpad/src/org/apache/poi/hslf/model/HSLFFreeformShape.java
new file mode 100644 (file)
index 0000000..685e2da
--- /dev/null
@@ -0,0 +1,264 @@
+/* ====================================================================
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+==================================================================== */
+
+package org.apache.poi.hslf.model;
+
+import java.awt.geom.AffineTransform;
+import java.awt.geom.GeneralPath;
+import java.awt.geom.PathIterator;
+import java.awt.geom.Point2D;
+import java.awt.geom.Rectangle2D;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.apache.poi.ddf.EscherArrayProperty;
+import org.apache.poi.ddf.EscherContainerRecord;
+import org.apache.poi.ddf.EscherOptRecord;
+import org.apache.poi.ddf.EscherProperties;
+import org.apache.poi.ddf.EscherSimpleProperty;
+import org.apache.poi.sl.usermodel.ShapeContainer;
+import org.apache.poi.sl.usermodel.ShapeType;
+import org.apache.poi.util.LittleEndian;
+import org.apache.poi.util.POILogger;
+
+/**
+ * A "Freeform" shape.
+ *
+ * <p>
+ * Shapes drawn with the "Freeform" tool have cubic bezier curve segments in the smooth sections
+ * and straight-line segments in the straight sections. This object closely corresponds to <code>java.awt.geom.GeneralPath</code>.
+ * </p>
+ * @author Yegor Kozlov
+ */
+public final class HSLFFreeformShape extends HSLFAutoShape {
+
+    public static final byte[] SEGMENTINFO_MOVETO   = new byte[]{0x00, 0x40};
+    public static final byte[] SEGMENTINFO_LINETO   = new byte[]{0x00, (byte)0xAC};
+    public static final byte[] SEGMENTINFO_ESCAPE   = new byte[]{0x01, 0x00};
+    public static final byte[] SEGMENTINFO_ESCAPE2  = new byte[]{0x01, 0x20};
+    public static final byte[] SEGMENTINFO_CUBICTO  = new byte[]{0x00, (byte)0xAD};
+    public static final byte[] SEGMENTINFO_CUBICTO2 = new byte[]{0x00, (byte)0xB3}; //OpenOffice inserts 0xB3 instead of 0xAD.
+    public static final byte[] SEGMENTINFO_CLOSE    = new byte[]{0x01, (byte)0x60};
+    public static final byte[] SEGMENTINFO_END      = new byte[]{0x00, (byte)0x80};
+
+    /**
+     * Create a Freeform object and initialize it from the supplied Record container.
+     *
+     * @param escherRecord       <code>EscherSpContainer</code> container which holds information about this shape
+     * @param parent    the parent of the shape
+     */
+   protected HSLFFreeformShape(EscherContainerRecord escherRecord, ShapeContainer<HSLFShape> parent){
+        super(escherRecord, parent);
+
+    }
+
+    /**
+     * Create a new Freeform. This constructor is used when a new shape is created.
+     *
+     * @param parent    the parent of this Shape. For example, if this text box is a cell
+     * in a table then the parent is Table.
+     */
+    public HSLFFreeformShape(ShapeContainer<HSLFShape> parent){
+        super((EscherContainerRecord)null, parent);
+        _escherContainer = createSpContainer(ShapeType.NOT_PRIMITIVE, parent instanceof HSLFGroupShape);
+    }
+
+    /**
+     * Create a new Freeform. This constructor is used when a new shape is created.
+     *
+     */
+    public HSLFFreeformShape(){
+        this(null);
+    }
+
+    /**
+     * Set the shape path
+     *
+     * @param path
+     */
+    public void setPath(GeneralPath path)
+    {
+        Rectangle2D bounds = path.getBounds2D();
+        PathIterator it = path.getPathIterator(new AffineTransform());
+
+        List<byte[]> segInfo = new ArrayList<byte[]>();
+        List<Point2D.Double> pntInfo = new ArrayList<Point2D.Double>();
+        boolean isClosed = false;
+        while (!it.isDone()) {
+            double[] vals = new double[6];
+            int type = it.currentSegment(vals);
+            switch (type) {
+                case PathIterator.SEG_MOVETO:
+                    pntInfo.add(new Point2D.Double(vals[0], vals[1]));
+                    segInfo.add(SEGMENTINFO_MOVETO);
+                    break;
+                case PathIterator.SEG_LINETO:
+                    pntInfo.add(new Point2D.Double(vals[0], vals[1]));
+                    segInfo.add(SEGMENTINFO_LINETO);
+                    segInfo.add(SEGMENTINFO_ESCAPE);
+                    break;
+                case PathIterator.SEG_CUBICTO:
+                    pntInfo.add(new Point2D.Double(vals[0], vals[1]));
+                    pntInfo.add(new Point2D.Double(vals[2], vals[3]));
+                    pntInfo.add(new Point2D.Double(vals[4], vals[5]));
+                    segInfo.add(SEGMENTINFO_CUBICTO);
+                    segInfo.add(SEGMENTINFO_ESCAPE2);
+                    break;
+                case PathIterator.SEG_QUADTO:
+                    //TODO: figure out how to convert SEG_QUADTO into SEG_CUBICTO
+                    logger.log(POILogger.WARN, "SEG_QUADTO is not supported");
+                    break;
+                case PathIterator.SEG_CLOSE:
+                    pntInfo.add(pntInfo.get(0));
+                    segInfo.add(SEGMENTINFO_LINETO);
+                    segInfo.add(SEGMENTINFO_ESCAPE);
+                    segInfo.add(SEGMENTINFO_LINETO);
+                    segInfo.add(SEGMENTINFO_CLOSE);
+                    isClosed = true;
+                    break;
+            }
+
+            it.next();
+        }
+        if(!isClosed) segInfo.add(SEGMENTINFO_LINETO);
+        segInfo.add(new byte[]{0x00, (byte)0x80});
+
+        EscherOptRecord opt = getEscherOptRecord();
+        opt.addEscherProperty(new EscherSimpleProperty(EscherProperties.GEOMETRY__SHAPEPATH, 0x4));
+
+        EscherArrayProperty verticesProp = new EscherArrayProperty((short)(EscherProperties.GEOMETRY__VERTICES + 0x4000), false, null);
+        verticesProp.setNumberOfElementsInArray(pntInfo.size());
+        verticesProp.setNumberOfElementsInMemory(pntInfo.size());
+        verticesProp.setSizeOfElements(0xFFF0);
+        for (int i = 0; i < pntInfo.size(); i++) {
+            Point2D.Double pnt = pntInfo.get(i);
+            byte[] data = new byte[4];
+            LittleEndian.putShort(data, 0, (short)((pnt.getX() - bounds.getX())*MASTER_DPI/POINT_DPI));
+            LittleEndian.putShort(data, 2, (short)((pnt.getY() - bounds.getY())*MASTER_DPI/POINT_DPI));
+            verticesProp.setElement(i, data);
+        }
+        opt.addEscherProperty(verticesProp);
+
+        EscherArrayProperty segmentsProp = new EscherArrayProperty((short)(EscherProperties.GEOMETRY__SEGMENTINFO + 0x4000), false, null);
+        segmentsProp.setNumberOfElementsInArray(segInfo.size());
+        segmentsProp.setNumberOfElementsInMemory(segInfo.size());
+        segmentsProp.setSizeOfElements(0x2);
+        for (int i = 0; i < segInfo.size(); i++) {
+            byte[] seg = segInfo.get(i);
+            segmentsProp.setElement(i, seg);
+        }
+        opt.addEscherProperty(segmentsProp);
+
+        opt.addEscherProperty(new EscherSimpleProperty(EscherProperties.GEOMETRY__RIGHT, (int)(bounds.getWidth()*MASTER_DPI/POINT_DPI)));
+        opt.addEscherProperty(new EscherSimpleProperty(EscherProperties.GEOMETRY__BOTTOM, (int)(bounds.getHeight()*MASTER_DPI/POINT_DPI)));
+
+        opt.sortProperties();
+
+        setAnchor(bounds);
+    }
+
+    /**
+     * Gets the freeform path
+     *
+     * @return the freeform path
+     */
+     public GeneralPath getPath(){
+        EscherOptRecord opt = getEscherOptRecord();
+        opt.addEscherProperty(new EscherSimpleProperty(EscherProperties.GEOMETRY__SHAPEPATH, 0x4));
+
+        EscherArrayProperty verticesProp = getEscherProperty(opt, (short)(EscherProperties.GEOMETRY__VERTICES + 0x4000));
+        if(verticesProp == null) verticesProp = getEscherProperty(opt, EscherProperties.GEOMETRY__VERTICES);
+
+        EscherArrayProperty segmentsProp = getEscherProperty(opt, (short)(EscherProperties.GEOMETRY__SEGMENTINFO + 0x4000));
+        if(segmentsProp == null) segmentsProp = getEscherProperty(opt, EscherProperties.GEOMETRY__SEGMENTINFO);
+
+        //sanity check
+        if(verticesProp == null) {
+            logger.log(POILogger.WARN, "Freeform is missing GEOMETRY__VERTICES ");
+            return null;
+        }
+        if(segmentsProp == null) {
+            logger.log(POILogger.WARN, "Freeform is missing GEOMETRY__SEGMENTINFO ");
+            return null;
+        }
+
+        GeneralPath path = new GeneralPath();
+        int numPoints = verticesProp.getNumberOfElementsInArray();
+        int numSegments = segmentsProp.getNumberOfElementsInArray();
+        for (int i = 0, j = 0; i < numSegments && j < numPoints; i++) {
+            byte[] elem = segmentsProp.getElement(i);
+            if(Arrays.equals(elem, SEGMENTINFO_MOVETO)){
+                byte[] p = verticesProp.getElement(j++);
+                short x = LittleEndian.getShort(p, 0);
+                short y = LittleEndian.getShort(p, 2);
+                path.moveTo(
+                        ((float)x*POINT_DPI/MASTER_DPI),
+                        ((float)y*POINT_DPI/MASTER_DPI));
+            } else if (Arrays.equals(elem, SEGMENTINFO_CUBICTO) || Arrays.equals(elem, SEGMENTINFO_CUBICTO2)){
+                i++;
+                byte[] p1 = verticesProp.getElement(j++);
+                short x1 = LittleEndian.getShort(p1, 0);
+                short y1 = LittleEndian.getShort(p1, 2);
+                byte[] p2 = verticesProp.getElement(j++);
+                short x2 = LittleEndian.getShort(p2, 0);
+                short y2 = LittleEndian.getShort(p2, 2);
+                byte[] p3 = verticesProp.getElement(j++);
+                short x3 = LittleEndian.getShort(p3, 0);
+                short y3 = LittleEndian.getShort(p3, 2);
+                path.curveTo(
+                        ((float)x1*POINT_DPI/MASTER_DPI), ((float)y1*POINT_DPI/MASTER_DPI),
+                        ((float)x2*POINT_DPI/MASTER_DPI), ((float)y2*POINT_DPI/MASTER_DPI),
+                        ((float)x3*POINT_DPI/MASTER_DPI), ((float)y3*POINT_DPI/MASTER_DPI));
+
+            } else if (Arrays.equals(elem, SEGMENTINFO_LINETO)){
+                i++;
+                byte[] pnext = segmentsProp.getElement(i);
+                if(Arrays.equals(pnext, SEGMENTINFO_ESCAPE)){
+                    if(j + 1 < numPoints){
+                        byte[] p = verticesProp.getElement(j++);
+                        short x = LittleEndian.getShort(p, 0);
+                        short y = LittleEndian.getShort(p, 2);
+                        path.lineTo(
+                                ((float)x*POINT_DPI/MASTER_DPI), ((float)y*POINT_DPI/MASTER_DPI));
+                    }
+                } else if (Arrays.equals(pnext, SEGMENTINFO_CLOSE)){
+                    path.closePath();
+                }
+            }
+        }
+        return path;
+    }
+
+    public java.awt.Shape getOutline(){
+        GeneralPath path =  getPath();
+        if(path == null) {
+            // return empty path if either GEOMETRY__VERTICES or GEOMETRY__SEGMENTINFO is missing, see Bugzilla 54188
+            return new GeneralPath();
+        }
+
+        Rectangle2D anchor = getAnchor2D();
+        Rectangle2D bounds = path.getBounds2D();
+        AffineTransform at = new AffineTransform();
+        at.translate(anchor.getX(), anchor.getY());
+        at.scale(
+                anchor.getWidth()/bounds.getWidth(),
+                anchor.getHeight()/bounds.getHeight()
+        );
+        return at.createTransformedShape(path);
+    }
+}
index 336f11743adff41b079374b41f2072991e337ac8..64d4de28b4a3bdcd96e8acba8f0b26cac37955d4 100644 (file)
@@ -177,7 +177,7 @@ public class HSLFGroupShape extends HSLFShape implements ShapeContainer<HSLFShap
     public void addShape(HSLFShape shape){
         _escherContainer.addChildRecord(shape.getSpContainer());
 
-        Sheet sheet = getSheet();
+        HSLFSheet sheet = getSheet();
         shape.setSheet(sheet);
         shape.setShapeId(sheet.allocateShapeId());
         shape.afterInsert(sheet);
diff --git a/src/scratchpad/src/org/apache/poi/hslf/model/HSLFMasterSheet.java b/src/scratchpad/src/org/apache/poi/hslf/model/HSLFMasterSheet.java
new file mode 100644 (file)
index 0000000..6c7574b
--- /dev/null
@@ -0,0 +1,57 @@
+/* ====================================================================
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+==================================================================== */
+
+package org.apache.poi.hslf.model;
+
+import org.apache.poi.hslf.record.SheetContainer;
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;
+import org.apache.poi.hslf.model.textproperties.TextProp;
+import org.apache.poi.sl.usermodel.MasterSheet;
+
+/**
+ * The superclass of all master sheets - Slide masters, Notes masters, etc.
+ *
+ * For now it's empty. When we understand more about masters in ppt we will add the common functionality here.
+ *
+ * @author Yegor Kozlov
+ */
+public abstract class HSLFMasterSheet extends HSLFSheet implements MasterSheet<HSLFShape,HSLFSlideShow> {
+    public HSLFMasterSheet(SheetContainer container, int sheetNo){
+        super(container, sheetNo);
+    }
+
+    /**
+     * Pickup a style attribute from the master.
+     * This is the "workhorse" which returns the default style attrubutes.
+     */
+    public abstract TextProp getStyleAttribute(int txtype, int level, String name, boolean isCharacter) ;
+
+
+    /**
+     * Checks if the shape is a placeholder.
+     * (placeholders aren't normal shapes, they are visible only in the Edit Master mode)
+     *
+     *
+     * @return true if the shape is a placeholder
+     */
+    public static boolean isPlaceholder(HSLFShape shape){
+        if(!(shape instanceof HSLFTextShape)) return false;
+
+        HSLFTextShape tx = (HSLFTextShape)shape;
+        return tx.getPlaceholderAtom() != null;
+    }
+}
diff --git a/src/scratchpad/src/org/apache/poi/hslf/model/HSLFNotes.java b/src/scratchpad/src/org/apache/poi/hslf/model/HSLFNotes.java
new file mode 100644 (file)
index 0000000..2a7698d
--- /dev/null
@@ -0,0 +1,75 @@
+/* ====================================================================
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+==================================================================== */
+
+package org.apache.poi.hslf.model;
+
+import java.util.Arrays;
+import java.util.List;
+
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;
+import org.apache.poi.sl.usermodel.Notes;
+
+/**
+ * This class represents a slide's notes in a PowerPoint Document. It
+ *  allows access to the text within, and the layout. For now, it only
+ *  does the text side of things though
+ *
+ * @author Nick Burch
+ */
+
+public final class HSLFNotes extends HSLFSheet implements Notes<HSLFShape, HSLFSlideShow> {
+    private HSLFTextParagraph[] _runs;
+
+    /**
+     * Constructs a Notes Sheet from the given Notes record.
+     * Initialises TextRuns, to provide easier access to the text
+     * 
+     * @param notes the Notes record to read from
+     */
+    public HSLFNotes(org.apache.poi.hslf.record.Notes notes) {
+        super(notes, notes.getNotesAtom().getSlideID());
+
+        // Now, build up TextRuns from pairs of TextHeaderAtom and
+        // one of TextBytesAtom or TextCharsAtom, found inside
+        // EscherTextboxWrapper's in the PPDrawing
+        _runs = findTextRuns(getPPDrawing());
+
+        // Set the sheet on each TextRun
+        for (HSLFTextParagraph tp : _runs) {
+            tp.supplySheet(this);
+        }
+    }
+
+    /**
+     * Returns an array of all the TextRuns found
+     */
+    public HSLFTextParagraph[] getTextRuns() {
+        return _runs;
+    }
+
+    @Override
+    public List<HSLFTextParagraph> getTextParagraphs() {
+        return Arrays.asList(_runs);
+    }
+    
+    /**
+     * Return <code>null</code> - Notes Masters are not yet supported
+     */
+    public HSLFMasterSheet getMasterSheet() {
+        return null;
+    }
+}
diff --git a/src/scratchpad/src/org/apache/poi/hslf/model/HSLFPictureShape.java b/src/scratchpad/src/org/apache/poi/hslf/model/HSLFPictureShape.java
new file mode 100644 (file)
index 0000000..e6b72a6
--- /dev/null
@@ -0,0 +1,302 @@
+/* ====================================================================
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+==================================================================== */
+
+package org.apache.poi.hslf.model;
+
+import java.awt.Graphics2D;
+import java.awt.Insets;
+import java.awt.geom.AffineTransform;
+import java.awt.image.BufferedImage;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.util.List;
+
+import javax.imageio.ImageIO;
+
+import org.apache.poi.ddf.EscherBSERecord;
+import org.apache.poi.ddf.EscherComplexProperty;
+import org.apache.poi.ddf.EscherContainerRecord;
+import org.apache.poi.ddf.EscherOptRecord;
+import org.apache.poi.ddf.EscherProperties;
+import org.apache.poi.ddf.EscherRecord;
+import org.apache.poi.ddf.EscherSimpleProperty;
+import org.apache.poi.ddf.EscherSpRecord;
+import org.apache.poi.hslf.blip.Bitmap;
+import org.apache.poi.hslf.record.Document;
+import org.apache.poi.hslf.usermodel.HSLFPictureData;
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;
+import org.apache.poi.sl.usermodel.ShapeContainer;
+import org.apache.poi.sl.usermodel.ShapeType;
+import org.apache.poi.util.POILogger;
+import org.apache.poi.util.StringUtil;
+import org.apache.poi.util.Units;
+
+
+/**
+ * Represents a picture in a PowerPoint document.
+ *
+ * @author Yegor Kozlov
+ */
+public class HSLFPictureShape extends HSLFSimpleShape {
+
+    /**
+    *  Windows Enhanced Metafile (EMF)
+    */
+    public static final int EMF = 2;
+
+    /**
+    *  Windows Metafile (WMF)
+    */
+    public static final int WMF = 3;
+
+    /**
+    * Macintosh PICT
+    */
+    public static final int PICT = 4;
+
+    /**
+    *  JPEG
+    */
+    public static final int JPEG = 5;
+
+    /**
+    *  PNG
+    */
+    public static final int PNG = 6;
+
+    /**
+     * Windows DIB (BMP)
+     */
+    public static final byte DIB = 7;
+
+    /**
+     * Create a new <code>Picture</code>
+     *
+    * @param idx the index of the picture
+     */
+    public HSLFPictureShape(int idx){
+        this(idx, null);
+    }
+
+    /**
+     * Create a new <code>Picture</code>
+     *
+     * @param idx the index of the picture
+     * @param parent the parent shape
+     */
+    public HSLFPictureShape(int idx, ShapeContainer<HSLFShape> parent) {
+        super(null, parent);
+        _escherContainer = createSpContainer(idx, parent instanceof HSLFGroupShape);
+    }
+
+    /**
+      * Create a <code>Picture</code> object
+      *
+      * @param escherRecord the <code>EscherSpContainer</code> record which holds information about
+      *        this picture in the <code>Slide</code>
+      * @param parent the parent shape of this picture
+      */
+     protected HSLFPictureShape(EscherContainerRecord escherRecord, ShapeContainer<HSLFShape> parent){
+        super(escherRecord, parent);
+    }
+
+    /**
+     * Returns index associated with this picture.
+     * Index starts with 1 and points to a EscherBSE record which
+     * holds information about this picture.
+     *
+     * @return the index to this picture (1 based).
+     */
+    public int getPictureIndex(){
+        EscherOptRecord opt = getEscherOptRecord();
+        EscherSimpleProperty prop = getEscherProperty(opt, EscherProperties.BLIP__BLIPTODISPLAY);
+        return prop == null ? 0 : prop.getPropertyValue();
+    }
+
+    /**
+     * Create a new Picture and populate the inital structure of the <code>EscherSp</code> record which holds information about this picture.
+
+     * @param idx the index of the picture which refers to <code>EscherBSE</code> container.
+     * @return the create Picture object
+     */
+    protected EscherContainerRecord createSpContainer(int idx, boolean isChild) {
+        _escherContainer = super.createSpContainer(isChild);
+        _escherContainer.setOptions((short)15);
+
+        EscherSpRecord spRecord = _escherContainer.getChildById(EscherSpRecord.RECORD_ID);
+        spRecord.setOptions((short)((ShapeType.FRAME.nativeId << 4) | 0x2));
+
+        //set default properties for a picture
+        EscherOptRecord opt = getEscherOptRecord();
+        setEscherProperty(opt, EscherProperties.PROTECTION__LOCKAGAINSTGROUPING, 0x800080);
+
+        //another weird feature of powerpoint: for picture id we must add 0x4000.
+        setEscherProperty(opt, (short)(EscherProperties.BLIP__BLIPTODISPLAY + 0x4000), idx);
+
+        return _escherContainer;
+    }
+
+    /**
+     * Resize this picture to the default size.
+     * For PNG and JPEG resizes the image to 100%,
+     * for other types sets the default size of 200x200 pixels.
+     */
+    public void setDefaultSize(){
+        HSLFPictureData pict = getPictureData();
+        if (pict  instanceof Bitmap){
+            BufferedImage img = null;
+            try {
+                       img = ImageIO.read(new ByteArrayInputStream(pict.getData()));
+            }
+            catch (IOException e){}
+            catch (NegativeArraySizeException ne) {}
+
+            if(img != null) {
+                // Valid image, set anchor from it
+                setAnchor(new java.awt.Rectangle(0, 0, img.getWidth()*POINT_DPI/PIXEL_DPI, img.getHeight()*POINT_DPI/PIXEL_DPI));
+            } else {
+                // Invalid image, go with the default metafile size
+                setAnchor(new java.awt.Rectangle(0, 0, 200, 200));
+            }
+        } else {
+            //default size of a metafile picture is 200x200
+            setAnchor(new java.awt.Rectangle(50, 50, 200, 200));
+        }
+    }
+
+    /**
+     * Returns the picture data for this picture.
+     *
+     * @return the picture data for this picture.
+     */
+    public HSLFPictureData getPictureData(){
+        HSLFSlideShow ppt = getSheet().getSlideShow();
+        HSLFPictureData[] pict = ppt.getPictureData();
+
+        EscherBSERecord bse = getEscherBSERecord();
+        if (bse == null){
+            logger.log(POILogger.ERROR, "no reference to picture data found ");
+        } else {
+            for ( int i = 0; i < pict.length; i++ ) {
+                if (pict[i].getOffset() ==  bse.getOffset()){
+                    return pict[i];
+                }
+            }
+            logger.log(POILogger.ERROR, "no picture found for our BSE offset " + bse.getOffset());
+        }
+        return null;
+    }
+
+    protected EscherBSERecord getEscherBSERecord(){
+        HSLFSlideShow ppt = getSheet().getSlideShow();
+        Document doc = ppt.getDocumentRecord();
+        EscherContainerRecord dggContainer = doc.getPPDrawingGroup().getDggContainer();
+        EscherContainerRecord bstore = HSLFShape.getEscherChild(dggContainer, EscherContainerRecord.BSTORE_CONTAINER);
+        if(bstore == null) {
+            logger.log(POILogger.DEBUG, "EscherContainerRecord.BSTORE_CONTAINER was not found ");
+            return null;
+        }
+        List<EscherRecord> lst = bstore.getChildRecords();
+        int idx = getPictureIndex();
+        if (idx == 0){
+            logger.log(POILogger.DEBUG, "picture index was not found, returning ");
+            return null;
+        }
+        return (EscherBSERecord)lst.get(idx-1);
+    }
+
+    /**
+     * Name of this picture.
+     *
+     * @return name of this picture
+     */
+    public String getPictureName(){
+        EscherOptRecord opt = getEscherOptRecord();
+        EscherComplexProperty prop = getEscherProperty(opt, EscherProperties.BLIP__BLIPFILENAME);
+        if (prop == null) return null;
+        String name = StringUtil.getFromUnicodeLE(prop.getComplexData());
+        return name.trim();
+    }
+
+    /**
+     * Name of this picture.
+     *
+     * @param name of this picture
+     */
+    public void setPictureName(String name){
+        EscherOptRecord opt = getEscherOptRecord();
+        byte[] data = StringUtil.getToUnicodeLE(name + '\u0000');
+        EscherComplexProperty prop = new EscherComplexProperty(EscherProperties.BLIP__BLIPFILENAME, false, data);
+        opt.addEscherProperty(prop);
+    }
+
+    /**
+     * By default set the orininal image size
+     */
+    protected void afterInsert(HSLFSheet sh){
+        super.afterInsert(sh);
+
+        EscherBSERecord bse = getEscherBSERecord();
+        bse.setRef(bse.getRef() + 1);
+
+        java.awt.Rectangle anchor = getAnchor();
+        if (anchor.equals(new java.awt.Rectangle())){
+            setDefaultSize();
+        }
+    }
+
+    public void draw(Graphics2D graphics){
+        AffineTransform at = graphics.getTransform();
+        ShapePainter.paint(this, graphics);
+
+        HSLFPictureData data = getPictureData();
+        if(data != null) data.draw(graphics, this);
+
+        graphics.setTransform(at);
+    }
+
+    /**
+     * Returns the clipping values as percent ratio relatively to the image size.
+     * The anchor specified by {@link #getLogicalAnchor2D()} is the displayed size,
+     * i.e. the size of the already clipped image
+     * 
+     * @return the clipping as insets converted/scaled to 100000 (=100%) 
+     */
+    public Insets getBlipClip() {
+        EscherOptRecord opt = getEscherOptRecord();
+        
+        double top    = getFractProp(opt, EscherProperties.BLIP__CROPFROMTOP);
+        double bottom = getFractProp(opt, EscherProperties.BLIP__CROPFROMBOTTOM);
+        double left   = getFractProp(opt, EscherProperties.BLIP__CROPFROMLEFT);
+        double right  = getFractProp(opt, EscherProperties.BLIP__CROPFROMRIGHT);
+        
+        // if all crop values are zero (the default) then no crop rectangle is set, return null
+        return (top==0 && bottom==0 && left==0 && right==0)
+            ? null
+            : new Insets((int)(top*100000), (int)(left*100000), (int)(bottom*100000), (int)(right*100000));
+    }
+    
+    /**
+     * @return the fractional property or 0 if not defined
+     */
+    private static double getFractProp(EscherOptRecord opt, short propertyId) {
+        EscherSimpleProperty prop = getEscherProperty(opt, propertyId);
+        if (prop == null) return 0;
+        int fixedPoint = prop.getPropertyValue();
+        return Units.fixedPointToDouble(fixedPoint);
+    }
+}
\ No newline at end of file
index c673cae2ded6ccf21bf1bf9c578dcdf853ac5c7c..4e2229982e3dcb9f36b8d541547c4169df5c539a 100644 (file)
 
 package org.apache.poi.hslf.model;
 
+import java.awt.Color;
+import java.awt.Graphics2D;
+import java.awt.geom.Rectangle2D;
+import java.util.Iterator;
+
 import org.apache.poi.ddf.*;
 import org.apache.poi.hslf.record.ColorSchemeAtom;
-import org.apache.poi.sl.usermodel.ShapeContainer;
-import org.apache.poi.sl.usermodel.ShapeType;
-import org.apache.poi.util.POILogger;
-import org.apache.poi.util.POILogFactory;
-import org.apache.poi.util.Units;
-
-import java.util.*;
-import java.awt.*;
-import java.awt.geom.Rectangle2D;
+import org.apache.poi.sl.usermodel.*;
+import org.apache.poi.util.*;
 
 /**
  *  <p>
@@ -45,7 +43,7 @@ import java.awt.geom.Rectangle2D;
   *
   * @author Yegor Kozlov
  */
-public abstract class HSLFShape implements org.apache.poi.sl.usermodel.Shape<HSLFShape> {
+public abstract class HSLFShape implements Shape {
 
     // For logging
     protected POILogger logger = POILogFactory.getLogger(this.getClass());
@@ -90,12 +88,12 @@ public abstract class HSLFShape implements org.apache.poi.sl.usermodel.Shape<HSL
     /**
      * The <code>Sheet</code> this shape belongs to
      */
-    protected Sheet _sheet;
+    protected HSLFSheet _sheet;
 
     /**
      * Fill
      */
-    protected Fill _fill;
+    protected HSLFFill _fill;
 
     /**
      * Create a Shape object. This constructor is used when an existing Shape is read from from a PowerPoint document.
@@ -336,7 +334,7 @@ public abstract class HSLFShape implements org.apache.poi.sl.usermodel.Shape<HSL
      *
      * @param sh - owning shape
      */
-    protected void afterInsert(Sheet sh){
+    protected void afterInsert(HSLFSheet sh){
         if(_fill != null) {
             _fill.afterInsert(sh);
         }
@@ -345,7 +343,7 @@ public abstract class HSLFShape implements org.apache.poi.sl.usermodel.Shape<HSL
     /**
      *  @return the <code>SlideShow</code> this shape belongs to
      */
-    public Sheet getSheet(){
+    public HSLFSheet getSheet(){
         return _sheet;
     }
 
@@ -354,7 +352,7 @@ public abstract class HSLFShape implements org.apache.poi.sl.usermodel.Shape<HSL
      *
      * @param sheet owner of this shape
      */
-    public void setSheet(Sheet sheet){
+    public void setSheet(HSLFSheet sheet){
         _sheet = sheet;
     }
 
@@ -375,7 +373,7 @@ public abstract class HSLFShape implements org.apache.poi.sl.usermodel.Shape<HSL
         
         int rgb[] = ecr.getRGB();
 
-        Sheet sheet = getSheet();
+        HSLFSheet sheet = getSheet();
         if (fSchemeIndex && sheet != null) {
             //red is the index to the color scheme
             ColorSchemeAtom ca = sheet.getColorScheme();
@@ -394,13 +392,18 @@ public abstract class HSLFShape implements org.apache.poi.sl.usermodel.Shape<HSL
             //TODO
         }
 
+        double alpha = getAlpha(opacityProperty);
+        return new Color(rgb[0], rgb[1], rgb[2], (int)(alpha*255.0));
+    }
+
+    double getAlpha(short opacityProperty) {
+        EscherOptRecord opt = getEscherOptRecord();
         EscherSimpleProperty op = getEscherProperty(opt, opacityProperty);
         int defaultOpacity = 0x00010000;
         int opacity = (op == null) ? defaultOpacity : op.getPropertyValue();
-        double alpha = Units.fixedPointToDouble(opacity)*255.0;
-        return new Color(rgb[0], rgb[1], rgb[2], (int)alpha);
+        return Units.fixedPointToDouble(opacity);
     }
-
+    
     Color toRGB(int val){
         int a = (val >> 24) & 0xFF;
         int b = (val >> 16) & 0xFF;
@@ -446,11 +449,16 @@ public abstract class HSLFShape implements org.apache.poi.sl.usermodel.Shape<HSL
      *
      * @return fill properties of this shape
      */
-    public Fill getFill(){
-        if(_fill == null) _fill = new Fill(this);
+    public HSLFFill getFill(){
+        if(_fill == null) {
+            _fill = new HSLFFill(this);
+        }
         return _fill;
     }
 
+    public FillStyle getFillStyle() {
+        return getFill().getFillStyle();
+    }
 
     /**
      * Returns the hyperlink assigned to this shape
@@ -479,46 +487,39 @@ public abstract class HSLFShape implements org.apache.poi.sl.usermodel.Shape<HSL
         return getEscherChild(EscherOptRecord.RECORD_ID);
     }
     
-    @Override
     public boolean getFlipHorizontal(){
         EscherSpRecord spRecord = getEscherChild(EscherSpRecord.RECORD_ID);
         return (spRecord.getFlags()& EscherSpRecord.FLAG_FLIPHORIZ) != 0;
     }
      
-    @Override
     public void setFlipHorizontal(boolean flip) {
         EscherSpRecord spRecord = getEscherChild(EscherSpRecord.RECORD_ID);
         int flag = spRecord.getFlags() | EscherSpRecord.FLAG_FLIPHORIZ;
         spRecord.setFlags(flag);
     }
 
-    @Override
     public boolean getFlipVertical(){
         EscherSpRecord spRecord = getEscherChild(EscherSpRecord.RECORD_ID);
         return (spRecord.getFlags()& EscherSpRecord.FLAG_FLIPVERT) != 0;
     }
     
-    @Override
     public void setFlipVertical(boolean flip) {
         EscherSpRecord spRecord = getEscherChild(EscherSpRecord.RECORD_ID);
         int flag = spRecord.getFlags() | EscherSpRecord.FLAG_FLIPVERT;
         spRecord.setFlags(flag);
     }
 
-    @Override
     public double getRotation(){
         int rot = getEscherProperty(EscherProperties.TRANSFORM__ROTATION);
         double angle = Units.fixedPointToDouble(rot) % 360.0;
         return angle;
     }
     
-    @Override
     public void setRotation(double theta){
         int rot = Units.doubleToFixedPoint(theta % 360.0);
         setEscherProperty(EscherProperties.TRANSFORM__ROTATION, rot);
     }
 
-    @Override
     public boolean isPlaceholder() {
         return false;
     }
diff --git a/src/scratchpad/src/org/apache/poi/hslf/model/HSLFSheet.java b/src/scratchpad/src/org/apache/poi/hslf/model/HSLFSheet.java
new file mode 100644 (file)
index 0000000..5156f37
--- /dev/null
@@ -0,0 +1,530 @@
+/* ====================================================================
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+==================================================================== */
+
+package org.apache.poi.hslf.model;
+
+import java.awt.Graphics2D;
+import java.util.*;
+
+import org.apache.poi.ddf.*;
+import org.apache.poi.hslf.record.*;
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;
+import org.apache.poi.sl.usermodel.Sheet;
+import org.apache.poi.util.POILogFactory;
+import org.apache.poi.util.POILogger;
+
+/**
+ * This class defines the common format of "Sheets" in a powerpoint
+ * document. Such sheets could be Slides, Notes, Master etc
+ *
+ * @author Nick Burch
+ * @author Yegor Kozlov
+ */
+
+public abstract class HSLFSheet implements Sheet<HSLFShape,HSLFSlideShow> {
+       private static POILogger logger = POILogFactory.getLogger(HSLFSheet.class);
+
+    /**
+     * The <code>SlideShow</code> we belong to
+     */
+    private HSLFSlideShow _slideShow;
+
+    /**
+     * Sheet background
+     */
+    private HSLFBackground _background;
+
+    /**
+     * Record container that holds sheet data.
+     * For slides it is org.apache.poi.hslf.record.Slide,
+     * for notes it is org.apache.poi.hslf.record.Notes,
+     * for slide masters it is org.apache.poi.hslf.record.SlideMaster, etc.
+     */
+    private SheetContainer _container;
+
+    private int _sheetNo;
+
+    public HSLFSheet(SheetContainer container, int sheetNo) {
+        _container = container;
+        _sheetNo = sheetNo;
+    }
+
+    /**
+     * Returns an array of all the TextRuns in the sheet.
+     */
+    public abstract HSLFTextParagraph[] getTextRuns();
+
+    /**
+     * Returns the (internal, RefID based) sheet number, as used
+     * to in PersistPtr stuff.
+     */
+    public int _getSheetRefId() {
+        return _container.getSheetId();
+    }
+
+    /**
+     * Returns the (internal, SlideIdentifier based) sheet number, as used
+     * to reference this sheet from other records.
+     */
+    public int _getSheetNumber() {
+        return _sheetNo;
+    }
+
+    /**
+     * Fetch the PPDrawing from the underlying record
+     */
+    protected PPDrawing getPPDrawing() {
+        return _container.getPPDrawing();
+    }
+
+    /**
+     * Fetch the SlideShow we're attached to
+     */
+    public HSLFSlideShow getSlideShow() {
+        return _slideShow;
+    }
+
+    /**
+     * Return record container for this sheet
+     */
+    public SheetContainer getSheetContainer() {
+        return _container;
+    }
+
+    /**
+     * Set the SlideShow we're attached to.
+     * Also passes it on to our child RichTextRuns
+     */
+    public void setSlideShow(HSLFSlideShow ss) {
+        _slideShow = ss;
+        HSLFTextParagraph[] trs = getTextRuns();
+        if (trs == null) return;
+        for (HSLFTextParagraph tp : trs) {
+            tp.supplySheet(this);
+        }
+    }
+
+
+    /**
+     * For a given PPDrawing, grab all the TextRuns
+     */
+    public static HSLFTextParagraph[] findTextRuns(PPDrawing ppdrawing) {
+        final List<HSLFTextParagraph> runsV = new ArrayList<HSLFTextParagraph>();
+        final EscherTextboxWrapper[] wrappers = ppdrawing.getTextboxWrappers();
+        for (int i = 0; i < wrappers.length; i++) {
+            int s1 = runsV.size();
+
+            // propagate parents to parent-aware records
+            RecordContainer.handleParentAwareRecords(wrappers[i]);
+            findTextRuns(wrappers[i], runsV);
+            int s2 = runsV.size();
+            if (s2 != s1){
+                HSLFTextParagraph t = runsV.get(runsV.size()-1);
+                t.setShapeId(wrappers[i].getShapeId());
+            }
+        }
+        return runsV.toArray(new HSLFTextParagraph[runsV.size()]);
+    }
+    /**
+     * Scans through the supplied record array, looking for
+     * a TextHeaderAtom followed by one of a TextBytesAtom or
+     * a TextCharsAtom. Builds up TextRuns from these
+     *
+     * @param records the records to build from
+     * @param found   vector to add any found to
+     */
+    protected static void findTextParagraphs(final Record[] records, final List<HSLFTextParagraph> found) {
+       findTextRuns(records, found, null); 
+    }
+    /**
+     * Scans through the supplied record array, looking for
+     * a TextHeaderAtom followed by one of a TextBytesAtom or
+     * a TextCharsAtom. Builds up TextRuns from these
+     *
+     * @param wrapper an EscherTextboxWrapper
+     * @param found   vector to add any found to
+     */
+    protected static void findTextRuns(final EscherTextboxWrapper wrapper, final List<HSLFTextParagraph> found) {
+       findTextRuns(wrapper.getChildRecords(), found, wrapper.getStyleTextProp9Atom());
+    }
+    /**
+     * Scans through the supplied record array, looking for
+     * a TextHeaderAtom followed by one of a TextBytesAtom or
+     * a TextCharsAtom. Builds up TextRuns from these
+     *
+     * @param records the records to build from
+     * @param found   vector to add any found to
+     * @param styleTextProp9Atom a StyleTextProp9Atom with numbered lists info
+     */
+    protected static void findTextRuns(final Record[] records, final List<HSLFTextParagraph> found, final StyleTextProp9Atom styleTextProp9Atom) {
+        for (int i = 0, slwtIndex=0; i < (records.length - 1); i++) {
+            if (records[i] instanceof TextHeaderAtom) {
+                TextHeaderAtom tha = (TextHeaderAtom) records[i];
+                StyleTextPropAtom stpa = null;
+                HSLFTextParagraph trun = null;
+                Record next = null;
+                Record subs = null;
+                
+                // See what follows the TextHeaderAtom
+                next = records[i+1];
+                if (i < records.length - 2) {
+                    subs = records[i+2];
+                }
+                
+                // Is the next record one we need to skip over?
+                if (subs != null) {
+                    if (next instanceof TextRulerAtom ||
+                        next instanceof MasterTextPropAtom ||
+                        next instanceof TextSpecInfoAtom) {
+                        // Ignore this one, check the one after
+                        next = subs;
+                        if (i < records.length - 3) {
+                            subs = records[i+3];
+                        } else {
+                            subs = null;
+                        }
+                    }
+                }
+                
+                // Is the subsequent record a style one?
+                if (subs != null && subs instanceof StyleTextPropAtom) {
+                    stpa = (StyleTextPropAtom)subs;
+                }
+                
+                // Now, check if the next record is one to record
+                if (next instanceof TextCharsAtom) {
+                    TextCharsAtom tca = (TextCharsAtom)next;
+                    trun = new HSLFTextParagraph(tha, tca, stpa);
+                } else if (next instanceof TextBytesAtom) {
+                    TextBytesAtom tba = (TextBytesAtom)next;
+                    trun = new HSLFTextParagraph(tha, tba, stpa);
+                } else if (next instanceof StyleTextPropAtom) {
+                    stpa = (StyleTextPropAtom)next;
+                } else if (next instanceof TextHeaderAtom) {
+                    // Seems to be a mostly, but not completely deleted block of
+                    //  text. Only the header remains, which isn't useful alone 
+                    // Skip on to the next TextHeaderAtom
+                    continue;
+                } else {
+                    logger.log(POILogger.ERROR, "Found a TextHeaderAtom not followed by a TextBytesAtom or TextCharsAtom: Followed by " + next.getRecordType());
+                }
+
+                if (trun != null) {
+                    List<Record> lst = new ArrayList<Record>();
+                    for (int j = i; j < records.length; j++) {
+                        if(j > i && records[j] instanceof TextHeaderAtom) break;
+                        lst.add(records[j]);
+                    }
+                    Record[] recs = new Record[lst.size()];
+                    lst.toArray(recs);
+                    trun._records = recs;
+                    trun.setIndex(slwtIndex);
+                    trun.setStyleTextProp9Atom(styleTextProp9Atom);
+                    found.add(trun);
+                    i++;
+                } else {
+                    // Not a valid one, so skip on to next and look again
+                }
+                slwtIndex++;
+            }
+        }
+    }
+
+    /**
+     * Returns all shapes contained in this Sheet
+     *
+     * @return all shapes contained in this Sheet (Slide or Notes)
+     */
+    public HSLFShape[] getShapes() {
+        List<HSLFShape> shapeList = getShapeList();
+        return shapeList.toArray(new HSLFShape[shapeList.size()]);
+    }
+
+    /**
+     * Add a new Shape to this Slide
+     *
+     * @param shape - the Shape to add
+     */
+    public void addShape(HSLFShape shape) {
+        PPDrawing ppdrawing = getPPDrawing();
+
+        EscherContainerRecord dgContainer = (EscherContainerRecord) ppdrawing.getEscherRecords()[0];
+        EscherContainerRecord spgr = (EscherContainerRecord) HSLFShape.getEscherChild(dgContainer, EscherContainerRecord.SPGR_CONTAINER);
+        spgr.addChildRecord(shape.getSpContainer());
+
+        shape.setSheet(this);
+        shape.setShapeId(allocateShapeId());
+        shape.afterInsert(this);
+    }
+
+    /**
+     * Allocates new shape id for the new drawing group id.
+     *
+     * @return a new shape id.
+     */
+    public int allocateShapeId()
+    {
+        EscherDggRecord dgg = _slideShow.getDocumentRecord().getPPDrawingGroup().getEscherDggRecord();
+        EscherDgRecord dg = _container.getPPDrawing().getEscherDgRecord();
+
+        dgg.setNumShapesSaved( dgg.getNumShapesSaved() + 1 );
+
+        // Add to existing cluster if space available
+        for (int i = 0; i < dgg.getFileIdClusters().length; i++)
+        {
+            EscherDggRecord.FileIdCluster c = dgg.getFileIdClusters()[i];
+            if (c.getDrawingGroupId() == dg.getDrawingGroupId() && c.getNumShapeIdsUsed() != 1024)
+            {
+                int result = c.getNumShapeIdsUsed() + (1024 * (i+1));
+                c.incrementShapeId();
+                dg.setNumShapes( dg.getNumShapes() + 1 );
+                dg.setLastMSOSPID( result );
+                if (result >= dgg.getShapeIdMax())
+                    dgg.setShapeIdMax( result + 1 );
+                return result;
+            }
+        }
+
+        // Create new cluster
+        dgg.addCluster( dg.getDrawingGroupId(), 0, false );
+        dgg.getFileIdClusters()[dgg.getFileIdClusters().length-1].incrementShapeId();
+        dg.setNumShapes( dg.getNumShapes() + 1 );
+        int result = (1024 * dgg.getFileIdClusters().length);
+        dg.setLastMSOSPID( result );
+        if (result >= dgg.getShapeIdMax())
+            dgg.setShapeIdMax( result + 1 );
+        return result;
+    }
+
+    /**
+     * Removes the specified shape from this sheet.
+     *
+     * @param shape shape to be removed from this sheet, if present.
+     * @return <tt>true</tt> if the shape was deleted.
+     */
+    public boolean removeShape(HSLFShape shape) {
+        PPDrawing ppdrawing = getPPDrawing();
+
+        EscherContainerRecord dg = (EscherContainerRecord) ppdrawing.getEscherRecords()[0];
+        EscherContainerRecord spgr = null;
+
+        for (Iterator<EscherRecord> it = dg.getChildIterator(); it.hasNext();) {
+            EscherRecord rec = it.next();
+            if (rec.getRecordId() == EscherContainerRecord.SPGR_CONTAINER) {
+                spgr = (EscherContainerRecord) rec;
+                break;
+            }
+        }
+        if(spgr == null) {
+            return false;
+        }
+
+        List<EscherRecord> lst = spgr.getChildRecords();
+        boolean result = lst.remove(shape.getSpContainer());
+        spgr.setChildRecords(lst);
+        return result;
+    }
+
+    /**
+     * Called by SlideShow ater a new sheet is created
+     */
+    public void onCreate(){
+
+    }
+
+    /**
+     * Return the master sheet .
+     */
+    public abstract HSLFMasterSheet getMasterSheet();
+
+    /**
+     * Color scheme for this sheet.
+     */
+    public ColorSchemeAtom getColorScheme() {
+        return _container.getColorScheme();
+    }
+
+    /**
+     * Returns the background shape for this sheet.
+     *
+     * @return the background shape for this sheet.
+     */
+    public HSLFBackground getBackground() {
+        if (_background == null) {
+            PPDrawing ppdrawing = getPPDrawing();
+
+            EscherContainerRecord dg = (EscherContainerRecord) ppdrawing.getEscherRecords()[0];
+            EscherContainerRecord spContainer = null;
+
+            for (Iterator<EscherRecord> it = dg.getChildIterator(); it.hasNext();) {
+                EscherRecord rec = it.next();
+                if (rec.getRecordId() == EscherContainerRecord.SP_CONTAINER) {
+                    spContainer = (EscherContainerRecord) rec;
+                    break;
+                }
+            }
+            _background = new HSLFBackground(spContainer, null);
+            _background.setSheet(this);
+        }
+        return _background;
+    }
+
+    public void draw(Graphics2D graphics){
+
+    }
+
+    /**
+     * Subclasses should call this method and update the array of text runs
+     * when a text shape is added
+     *
+     * @param shape
+     */
+    protected void onAddTextShape(HSLFTextShape shape) {
+
+    }
+
+    /**
+     * Return placeholder by text type
+     *
+     * @param type  type of text, See {@link org.apache.poi.hslf.record.TextHeaderAtom}
+     * @return  <code>TextShape</code> or <code>null</code>
+     */
+    public HSLFTextShape getPlaceholderByTextType(int type){
+        HSLFShape[] shape = getShapes();
+        for (int i = 0; i < shape.length; i++) {
+            if(shape[i] instanceof HSLFTextShape){
+                HSLFTextShape tx = (HSLFTextShape)shape[i];
+                HSLFTextParagraph run = tx.getTextParagraph();
+                if(run != null && run.getRunType() == type){
+                    return tx;
+                }
+            }
+        }
+        return null;
+    }
+
+    /**
+     * Search text placeholer by its type
+     *
+     * @param type  type of placeholder to search. See {@link org.apache.poi.hslf.record.OEPlaceholderAtom}
+     * @return  <code>TextShape</code> or <code>null</code>
+     */
+    public HSLFTextShape getPlaceholder(int type){
+        HSLFShape[] shape = getShapes();
+        for (int i = 0; i < shape.length; i++) {
+            if(shape[i] instanceof HSLFTextShape){
+                HSLFTextShape tx = (HSLFTextShape)shape[i];
+                int placeholderId = 0;
+                OEPlaceholderAtom oep = tx.getPlaceholderAtom();
+                if(oep != null) {
+                    placeholderId = oep.getPlaceholderId();
+                } else {
+                    //special case for files saved in Office 2007
+                    RoundTripHFPlaceholder12 hldr = tx.getClientDataRecord(RecordTypes.RoundTripHFPlaceholder12.typeID);
+                    if(hldr != null) placeholderId = hldr.getPlaceholderId();
+                }
+                if(placeholderId == type){
+                    return tx;
+                }
+            }
+        }
+        return null;
+    }
+
+    /**
+     * Return programmable tag associated with this sheet, e.g. <code>___PPT12</code>.
+     *
+     * @return programmable tag associated with this sheet.
+     */
+    public String getProgrammableTag(){
+        String tag = null;
+        RecordContainer progTags = (RecordContainer)
+                getSheetContainer().findFirstOfType(
+                            RecordTypes.ProgTags.typeID
+        );
+        if(progTags != null) {
+            RecordContainer progBinaryTag = (RecordContainer)
+                progTags.findFirstOfType(
+                        RecordTypes.ProgBinaryTag.typeID
+            );
+            if(progBinaryTag != null) {
+                CString binaryTag = (CString)
+                    progBinaryTag.findFirstOfType(
+                            RecordTypes.CString.typeID
+                );
+                if(binaryTag != null) tag = binaryTag.getText();
+            }
+        }
+
+        return tag;
+
+    }
+
+    public Iterator<HSLFShape> iterator() {
+        return getShapeList().iterator();
+    }
+
+
+    /**
+     * Returns all shapes contained in this Sheet
+     *
+     * @return all shapes contained in this Sheet (Slide or Notes)
+     */
+    protected List<HSLFShape> getShapeList() {
+        PPDrawing ppdrawing = getPPDrawing();
+
+        EscherContainerRecord dg = (EscherContainerRecord) ppdrawing.getEscherRecords()[0];
+        EscherContainerRecord spgr = null;
+
+        for (Iterator<EscherRecord> it = dg.getChildIterator(); it.hasNext();) {
+            EscherRecord rec = it.next();
+            if (rec.getRecordId() == EscherContainerRecord.SPGR_CONTAINER) {
+                spgr = (EscherContainerRecord) rec;
+                break;
+            }
+        }
+        if (spgr == null) {
+            throw new IllegalStateException("spgr not found");
+        }
+
+        List<HSLFShape> shapeList = new ArrayList<HSLFShape>();
+        Iterator<EscherRecord> it = spgr.getChildIterator();
+        if (it.hasNext()) {
+            // skip first item
+            it.next();
+        }
+        for (; it.hasNext();) {
+            EscherContainerRecord sp = (EscherContainerRecord) it.next();
+            HSLFShape sh = ShapeFactory.createShape(sp, null);
+            sh.setSheet(this);
+            shapeList.add(sh);
+        }
+
+        return shapeList;
+    }
+
+    /**
+     * @return whether shapes on the master sheet should be shown. By default master graphics is turned off.
+     * Sheets that support the notion of master (slide, slideLayout) should override it and
+     * check this setting
+     */
+    public boolean getFollowMasterGraphics() {
+        return false;
+    }
+
+
+}
diff --git a/src/scratchpad/src/org/apache/poi/hslf/model/HSLFSimpleShape.java b/src/scratchpad/src/org/apache/poi/hslf/model/HSLFSimpleShape.java
new file mode 100644 (file)
index 0000000..71c3c34
--- /dev/null
@@ -0,0 +1,420 @@
+/* ====================================================================
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+==================================================================== */
+
+package org.apache.poi.hslf.model;
+
+import java.awt.Color;
+import java.awt.Graphics2D;
+import java.awt.geom.AffineTransform;
+import java.awt.geom.Rectangle2D;
+import java.io.ByteArrayOutputStream;
+import java.util.ArrayList;
+
+import org.apache.poi.ddf.DefaultEscherRecordFactory;
+import org.apache.poi.ddf.EscherChildAnchorRecord;
+import org.apache.poi.ddf.EscherClientAnchorRecord;
+import org.apache.poi.ddf.EscherClientDataRecord;
+import org.apache.poi.ddf.EscherContainerRecord;
+import org.apache.poi.ddf.EscherOptRecord;
+import org.apache.poi.ddf.EscherProperties;
+import org.apache.poi.ddf.EscherRecord;
+import org.apache.poi.ddf.EscherSimpleProperty;
+import org.apache.poi.ddf.EscherSpRecord;
+import org.apache.poi.hslf.exceptions.HSLFException;
+import org.apache.poi.hslf.record.InteractiveInfo;
+import org.apache.poi.hslf.record.InteractiveInfoAtom;
+import org.apache.poi.hslf.record.Record;
+import org.apache.poi.sl.usermodel.*;
+import org.apache.poi.sl.usermodel.StrokeStyle.*;
+import org.apache.poi.util.LittleEndian;
+import org.apache.poi.util.Units;
+
+/**
+ *  An abstract simple (non-group) shape.
+ *  This is the parent class for all primitive shapes like Line, Rectangle, etc.
+ *
+ *  @author Yegor Kozlov
+ */
+public abstract class HSLFSimpleShape extends HSLFShape implements SimpleShape {
+
+    public final static double DEFAULT_LINE_WIDTH = 0.75;
+
+    /**
+     * Records stored in EscherClientDataRecord
+     */
+    protected Record[] _clientRecords;
+    protected EscherClientDataRecord _clientData;
+
+    /**
+     * Create a SimpleShape object and initialize it from the supplied Record container.
+     *
+     * @param escherRecord    <code>EscherSpContainer</code> container which holds information about this shape
+     * @param parent    the parent of the shape
+     */
+    protected HSLFSimpleShape(EscherContainerRecord escherRecord, ShapeContainer<HSLFShape> parent){
+        super(escherRecord, parent);
+    }
+
+    /**
+     * Create a new Shape
+     *
+     * @param isChild   <code>true</code> if the Line is inside a group, <code>false</code> otherwise
+     * @return the record container which holds this shape
+     */
+    protected EscherContainerRecord createSpContainer(boolean isChild) {
+        _escherContainer = new EscherContainerRecord();
+        _escherContainer.setRecordId( EscherContainerRecord.SP_CONTAINER );
+        _escherContainer.setOptions((short)15);
+
+        EscherSpRecord sp = new EscherSpRecord();
+        int flags = EscherSpRecord.FLAG_HAVEANCHOR | EscherSpRecord.FLAG_HASSHAPETYPE;
+        if (isChild) flags |= EscherSpRecord.FLAG_CHILD;
+        sp.setFlags(flags);
+        _escherContainer.addChildRecord(sp);
+
+        EscherOptRecord opt = new EscherOptRecord();
+        opt.setRecordId(EscherOptRecord.RECORD_ID);
+        _escherContainer.addChildRecord(opt);
+
+        EscherRecord anchor;
+        if(isChild) anchor = new EscherChildAnchorRecord();
+        else {
+            anchor = new EscherClientAnchorRecord();
+
+            //hack. internal variable EscherClientAnchorRecord.shortRecord can be
+            //initialized only in fillFields(). We need to set shortRecord=false;
+            byte[] header = new byte[16];
+            LittleEndian.putUShort(header, 0, 0);
+            LittleEndian.putUShort(header, 2, 0);
+            LittleEndian.putInt(header, 4, 8);
+            anchor.fillFields(header, 0, null);
+        }
+        _escherContainer.addChildRecord(anchor);
+
+        return _escherContainer;
+    }
+
+    /**
+     *  Returns width of the line in in points
+     */
+    public double getLineWidth(){
+        EscherOptRecord opt = getEscherOptRecord();
+        EscherSimpleProperty prop = getEscherProperty(opt, EscherProperties.LINESTYLE__LINEWIDTH);
+        double width = (prop == null) ? DEFAULT_LINE_WIDTH : Units.toPoints(prop.getPropertyValue());
+        return width;
+    }
+
+    /**
+     *  Sets the width of line in in points
+     *  @param width  the width of line in in points
+     */
+    public void setLineWidth(double width){
+        EscherOptRecord opt = getEscherOptRecord();
+        setEscherProperty(opt, EscherProperties.LINESTYLE__LINEWIDTH, Units.toEMU(width));
+    }
+
+    /**
+     * Sets the color of line
+     *
+     * @param color new color of the line
+     */
+    public void setLineColor(Color color){
+        EscherOptRecord opt = getEscherOptRecord();
+        if (color == null) {
+            setEscherProperty(opt, EscherProperties.LINESTYLE__NOLINEDRAWDASH, 0x80000);
+        } else {
+            int rgb = new Color(color.getBlue(), color.getGreen(), color.getRed(), 0).getRGB();
+            setEscherProperty(opt, EscherProperties.LINESTYLE__COLOR, rgb);
+            setEscherProperty(opt, EscherProperties.LINESTYLE__NOLINEDRAWDASH, color == null ? 0x180010 : 0x180018);
+        }
+    }
+
+    /**
+     * @return color of the line. If color is not set returns <code>java.awt.Color.black</code>
+     */
+    public Color getLineColor(){
+        EscherOptRecord opt = getEscherOptRecord();
+
+        EscherSimpleProperty p = getEscherProperty(opt, EscherProperties.LINESTYLE__NOLINEDRAWDASH);
+        if(p != null && (p.getPropertyValue() & 0x8) == 0) return null;
+
+        Color clr = getColor(EscherProperties.LINESTYLE__COLOR, EscherProperties.LINESTYLE__OPACITY, -1);
+        return clr == null ? Color.black : clr;
+    }
+
+    /**
+     * Gets line dashing.
+     *
+     * @return dashing of the line.
+     */
+    public LineDash getLineDashing(){
+        EscherOptRecord opt = getEscherOptRecord();
+        EscherSimpleProperty prop = getEscherProperty(opt, EscherProperties.LINESTYLE__LINEDASHING);
+        return (prop == null) ? LineDash.SOLID : LineDash.fromNativeId(prop.getPropertyValue());
+    }
+
+    /**
+     * Sets line dashing.
+     *
+     * @param pen new style of the line.
+     */
+    public void setLineDashing(LineDash pen){
+        EscherOptRecord opt = getEscherOptRecord();
+        setEscherProperty(opt, EscherProperties.LINESTYLE__LINEDASHING, pen == LineDash.SOLID ? -1 : pen.nativeId);
+    }
+
+    /**
+     * Gets the line compound style
+     *
+     * @return the compound style of the line.
+     */
+    public LineCompound getLineCompound() {
+        EscherOptRecord opt = getEscherOptRecord();
+        EscherSimpleProperty prop = getEscherProperty(opt, EscherProperties.LINESTYLE__LINESTYLE);
+        return (prop == null) ? LineCompound.SINGLE : LineCompound.fromNativeId(prop.getPropertyValue());
+    }
+    
+    /**
+     * Sets the line compound style
+     *
+     * @param style new compound style of the line.
+     */
+    public void setLineCompound(LineCompound style){
+        EscherOptRecord opt = getEscherOptRecord();
+        setEscherProperty(opt, EscherProperties.LINESTYLE__LINESTYLE, style == LineCompound.SINGLE ? -1 : style.nativeId);
+    }
+
+    /**
+     * Returns line style. One of the constants defined in this class.
+     *
+     * @return style of the line.
+     */
+    public StrokeStyle getStrokeStyle(){
+        return new StrokeStyle() {
+            public PaintStyle getPaint() {
+                return null;
+            }
+
+            public LineCap getLineCap() {
+                return null;
+            }
+
+            public LineDash getLineDash() {
+                return null;
+            }
+
+            public LineCompound getLineCompound() {
+                return null;
+            }
+
+            public double getLineWidth() {
+                return 0;
+            }
+            
+        };
+    }
+
+    /**
+     * The color used to fill this shape.
+     */
+    public Color getFillColor(){
+        return getFill().getForegroundColor();
+    }
+
+    /**
+     * The color used to fill this shape.
+     *
+     * @param color the background color
+     */
+    public void setFillColor(Color color){
+        getFill().setForegroundColor(color);
+    }
+
+    /**
+     *
+     * @return 'absolute' anchor of this shape relative to the parent sheet
+     */
+    public Rectangle2D getLogicalAnchor2D(){
+        Rectangle2D anchor = getAnchor2D();
+
+        //if it is a groupped shape see if we need to transform the coordinates
+        if (getParent() != null){
+            ArrayList<HSLFGroupShape> lst = new ArrayList<HSLFGroupShape>();
+            for (ShapeContainer<HSLFShape> parent=this.getParent();
+                parent instanceof HSLFGroupShape;
+                parent = ((HSLFGroupShape)parent).getParent()) {
+                lst.add(0, (HSLFGroupShape)parent);
+            }
+            
+            AffineTransform tx = new AffineTransform();
+            for(HSLFGroupShape prnt : lst) {
+                Rectangle2D exterior = prnt.getAnchor2D();
+                Rectangle2D interior = prnt.getCoordinates();
+
+                double scaleX =  exterior.getWidth() / interior.getWidth();
+                double scaleY = exterior.getHeight() / interior.getHeight();
+
+                tx.translate(exterior.getX(), exterior.getY());
+                tx.scale(scaleX, scaleY);
+                tx.translate(-interior.getX(), -interior.getY());
+                
+            }
+            anchor = tx.createTransformedShape(anchor).getBounds2D();
+        }
+
+        double angle = getRotation();
+        if(angle != 0.){
+            double centerX = anchor.getX() + anchor.getWidth()/2;
+            double centerY = anchor.getY() + anchor.getHeight()/2;
+
+            AffineTransform trans = new AffineTransform();
+            trans.translate(centerX, centerY);
+            trans.rotate(Math.toRadians(angle));
+            trans.translate(-centerX, -centerY);
+
+            Rectangle2D rect = trans.createTransformedShape(anchor).getBounds2D();
+            if((anchor.getWidth() < anchor.getHeight() && rect.getWidth() > rect.getHeight()) ||
+                (anchor.getWidth() > anchor.getHeight() && rect.getWidth() < rect.getHeight())    ){
+                trans = new AffineTransform();
+                trans.translate(centerX, centerY);
+                trans.rotate(Math.PI/2);
+                trans.translate(-centerX, -centerY);
+                anchor = trans.createTransformedShape(anchor).getBounds2D();
+            }
+        }
+        return anchor;
+    }
+
+    public void draw(Graphics2D graphics){
+        AffineTransform at = graphics.getTransform();
+        ShapePainter.paint(this, graphics);
+        graphics.setTransform(at);
+    }
+
+    /**
+     *  Find a record in the underlying EscherClientDataRecord
+     *
+     * @param recordType type of the record to search
+     */
+    @SuppressWarnings("unchecked")
+    protected <T extends Record> T getClientDataRecord(int recordType) {
+
+        Record[] records = getClientRecords();
+        if(records != null) for (int i = 0; i < records.length; i++) {
+            if(records[i].getRecordType() == recordType){
+                return (T)records[i];
+            }
+        }
+        return null;
+    }
+
+    /**
+     * Search for EscherClientDataRecord, if found, convert its contents into an array of HSLF records
+     *
+     * @return an array of HSLF records contained in the shape's EscherClientDataRecord or <code>null</code>
+     */
+    protected Record[] getClientRecords() {
+        if(_clientData == null){
+            EscherRecord r = getEscherChild(EscherClientDataRecord.RECORD_ID);
+            //ddf can return EscherContainerRecord with recordId=EscherClientDataRecord.RECORD_ID
+            //convert in to EscherClientDataRecord on the fly
+            if(r != null && !(r instanceof EscherClientDataRecord)){
+                byte[] data = r.serialize();
+                r = new EscherClientDataRecord();
+                r.fillFields(data, 0, new DefaultEscherRecordFactory());
+            }
+            _clientData = (EscherClientDataRecord)r;
+        }
+        if(_clientData != null && _clientRecords == null){
+            byte[] data = _clientData.getRemainingData();
+            _clientRecords = Record.findChildRecords(data, 0, data.length);
+        }
+        return _clientRecords;
+    }
+
+    protected void updateClientData() {
+        if(_clientData != null && _clientRecords != null){
+            ByteArrayOutputStream out = new ByteArrayOutputStream();
+            try {
+                for (int i = 0; i < _clientRecords.length; i++) {
+                    _clientRecords[i].writeOut(out);
+                }
+            } catch(Exception e){
+                throw new HSLFException(e);
+            }
+            _clientData.setRemainingData(out.toByteArray());
+        }
+    }
+
+    public void setHyperlink(Hyperlink link){
+        if(link.getId() == -1){
+            throw new HSLFException("You must call SlideShow.addHyperlink(Hyperlink link) first");
+        }
+
+        EscherClientDataRecord cldata = new EscherClientDataRecord();
+        cldata.setOptions((short)0xF);
+        getSpContainer().addChildRecord(cldata); // TODO - junit to prove getChildRecords().add is wrong
+
+        InteractiveInfo info = new InteractiveInfo();
+        InteractiveInfoAtom infoAtom = info.getInteractiveInfoAtom();
+
+        switch(link.getType()){
+            case Hyperlink.LINK_FIRSTSLIDE:
+                infoAtom.setAction(InteractiveInfoAtom.ACTION_JUMP);
+                infoAtom.setJump(InteractiveInfoAtom.JUMP_FIRSTSLIDE);
+                infoAtom.setHyperlinkType(InteractiveInfoAtom.LINK_FirstSlide);
+                break;
+            case Hyperlink.LINK_LASTSLIDE:
+                infoAtom.setAction(InteractiveInfoAtom.ACTION_JUMP);
+                infoAtom.setJump(InteractiveInfoAtom.JUMP_LASTSLIDE);
+                infoAtom.setHyperlinkType(InteractiveInfoAtom.LINK_LastSlide);
+                break;
+            case Hyperlink.LINK_NEXTSLIDE:
+                infoAtom.setAction(InteractiveInfoAtom.ACTION_JUMP);
+                infoAtom.setJump(InteractiveInfoAtom.JUMP_NEXTSLIDE);
+                infoAtom.setHyperlinkType(InteractiveInfoAtom.LINK_NextSlide);
+                break;
+            case Hyperlink.LINK_PREVIOUSSLIDE:
+                infoAtom.setAction(InteractiveInfoAtom.ACTION_JUMP);
+                infoAtom.setJump(InteractiveInfoAtom.JUMP_PREVIOUSSLIDE);
+                infoAtom.setHyperlinkType(InteractiveInfoAtom.LINK_PreviousSlide);
+                break;
+            case Hyperlink.LINK_URL:
+                infoAtom.setAction(InteractiveInfoAtom.ACTION_HYPERLINK);
+                infoAtom.setJump(InteractiveInfoAtom.JUMP_NONE);
+                infoAtom.setHyperlinkType(InteractiveInfoAtom.LINK_Url);
+                break;
+            case Hyperlink.LINK_SLIDENUMBER:
+                infoAtom.setAction(InteractiveInfoAtom.ACTION_HYPERLINK);
+                infoAtom.setJump(InteractiveInfoAtom.JUMP_NONE);
+                infoAtom.setHyperlinkType(InteractiveInfoAtom.LINK_SlideNumber);
+                break;
+        }
+
+        infoAtom.setHyperlinkID(link.getId());
+
+        ByteArrayOutputStream out = new ByteArrayOutputStream();
+        try {
+            info.writeOut(out);
+        } catch(Exception e){
+            throw new HSLFException(e);
+        }
+        cldata.setRemainingData(out.toByteArray());
+
+    }
+
+}
diff --git a/src/scratchpad/src/org/apache/poi/hslf/model/HSLFSlide.java b/src/scratchpad/src/org/apache/poi/hslf/model/HSLFSlide.java
new file mode 100644 (file)
index 0000000..7030ce7
--- /dev/null
@@ -0,0 +1,515 @@
+/* ====================================================================
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+==================================================================== */
+
+package org.apache.poi.hslf.model;
+
+import java.awt.Graphics2D;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.apache.poi.ddf.EscherContainerRecord;
+import org.apache.poi.ddf.EscherDgRecord;
+import org.apache.poi.ddf.EscherDggRecord;
+import org.apache.poi.ddf.EscherSpRecord;
+import org.apache.poi.hslf.record.ColorSchemeAtom;
+import org.apache.poi.hslf.record.Comment2000;
+import org.apache.poi.hslf.record.EscherTextboxWrapper;
+import org.apache.poi.hslf.record.HeadersFootersContainer;
+import org.apache.poi.hslf.record.Record;
+import org.apache.poi.hslf.record.RecordContainer;
+import org.apache.poi.hslf.record.RecordTypes;
+import org.apache.poi.hslf.record.SSSlideInfoAtom;
+import org.apache.poi.hslf.record.SlideAtom;
+import org.apache.poi.hslf.record.SlideListWithText.SlideAtomsSet;
+import org.apache.poi.hslf.record.StyleTextProp9Atom;
+import org.apache.poi.hslf.record.TextHeaderAtom;
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;
+import org.apache.poi.sl.usermodel.ShapeType;
+import org.apache.poi.sl.usermodel.Slide;
+
+/**
+ * This class represents a slide in a PowerPoint Document. It allows
+ *  access to the text within, and the layout. For now, it only does
+ *  the text side of things though
+ *
+ * @author Nick Burch
+ * @author Yegor Kozlov
+ */
+
+public final class HSLFSlide extends HSLFSheet implements Slide<HSLFShape,HSLFSlideShow> {
+       private int _slideNo;
+       private SlideAtomsSet _atomSet;
+       private HSLFTextParagraph[] _runs;
+       private HSLFNotes _notes; // usermodel needs to set this
+
+       /**
+        * Constructs a Slide from the Slide record, and the SlideAtomsSet
+        *  containing the text.
+        * Initializes TextRuns, to provide easier access to the text
+        *
+        * @param slide the Slide record we're based on
+        * @param notes the Notes sheet attached to us
+        * @param atomSet the SlideAtomsSet to get the text from
+        */
+       public HSLFSlide(org.apache.poi.hslf.record.Slide slide, HSLFNotes notes, SlideAtomsSet atomSet, int slideIdentifier, int slideNumber) {
+        super(slide, slideIdentifier);
+
+               _notes = notes;
+               _atomSet = atomSet;
+               _slideNo = slideNumber;
+
+               // Grab the TextRuns from the PPDrawing
+               HSLFTextParagraph[] _otherRuns = findTextRuns(getPPDrawing());
+
+               // For the text coming in from the SlideAtomsSet:
+               // Build up TextRuns from pairs of TextHeaderAtom and
+               //  one of TextBytesAtom or TextCharsAtom
+               final List<HSLFTextParagraph> textParagraphs = new LinkedList<HSLFTextParagraph>();
+               if(_atomSet != null) {
+                       findTextParagraphs(_atomSet.getSlideRecords(),textParagraphs);
+               } else {
+                       // No text on the slide, must just be pictures
+               }
+
+               // Build an array, more useful than a vector
+               _runs = new HSLFTextParagraph[textParagraphs.size()+_otherRuns.length];
+               // Grab text from SlideListWithTexts entries
+               int i=0;
+               for(HSLFTextParagraph tp : textParagraphs) {
+                   _runs[i++] = tp;
+                       tp.supplySheet(this);
+               }
+               // Grab text from slide's PPDrawing
+               for(HSLFTextParagraph tp : _otherRuns) {
+                       _runs[i++] = tp;
+                       tp.supplySheet(this);
+            tp.setIndex(-1); // runs found in PPDrawing are not linked with SlideListWithTexts
+               }
+       }
+
+       /**
+       * Create a new Slide instance
+       * @param sheetNumber The internal number of the sheet, as used by PersistPtrHolder
+       * @param slideNumber The user facing number of the sheet
+       */
+       public HSLFSlide(int sheetNumber, int sheetRefId, int slideNumber){
+               super(new org.apache.poi.hslf.record.Slide(), sheetNumber);
+               _slideNo = slideNumber;
+        getSheetContainer().setSheetId(sheetRefId);
+       }
+
+       /**
+        * Sets the Notes that are associated with this. Updates the
+        *  references in the records to point to the new ID
+        */
+       public void setNotes(HSLFNotes notes) {
+               _notes = notes;
+
+               // Update the Slide Atom's ID of where to point to
+               SlideAtom sa = getSlideRecord().getSlideAtom();
+
+               if(notes == null) {
+                       // Set to 0
+                       sa.setNotesID(0);
+               } else {
+                       // Set to the value from the notes' sheet id
+                       sa.setNotesID(notes._getSheetNumber());
+               }
+       }
+
+       /**
+       * Changes the Slide's (external facing) page number.
+       * @see org.apache.poi.hslf.usermodel.HSLFSlideShow#reorderSlide(int, int)
+       */
+       public void setSlideNumber(int newSlideNumber) {
+               _slideNo = newSlideNumber;
+       }
+
+    /**
+     * Called by SlideShow ater a new slide is created.
+     * <p>
+     * For Slide we need to do the following:
+     *  <li> set id of the drawing group.
+     *  <li> set shapeId for the container descriptor and background
+     * </p>
+     */
+    public void onCreate(){
+        //initialize drawing group id
+        EscherDggRecord dgg = getSlideShow().getDocumentRecord().getPPDrawingGroup().getEscherDggRecord();
+        EscherContainerRecord dgContainer = (EscherContainerRecord)getSheetContainer().getPPDrawing().getEscherRecords()[0];
+        EscherDgRecord dg = (EscherDgRecord) HSLFShape.getEscherChild(dgContainer, EscherDgRecord.RECORD_ID);
+        int dgId = dgg.getMaxDrawingGroupId() + 1;
+        dg.setOptions((short)(dgId << 4));
+        dgg.setDrawingsSaved(dgg.getDrawingsSaved() + 1);
+        dgg.setMaxDrawingGroupId(dgId);
+
+        for (EscherContainerRecord c : dgContainer.getChildContainers()) {
+            EscherSpRecord spr = null;
+            switch(c.getRecordId()){
+                case EscherContainerRecord.SPGR_CONTAINER:
+                    EscherContainerRecord dc = (EscherContainerRecord)c.getChild(0);
+                    spr = dc.getChildById(EscherSpRecord.RECORD_ID);
+                    break;
+                case EscherContainerRecord.SP_CONTAINER:
+                    spr = c.getChildById(EscherSpRecord.RECORD_ID);
+                    break;
+            }
+            if(spr != null) spr.setShapeId(allocateShapeId());
+        }
+
+        //PPT doen't increment the number of saved shapes for group descriptor and background
+        dg.setNumShapes(1);
+    }
+
+       /**
+        * Create a <code>TextBox</code> object that represents the slide's title.
+        *
+        * @return <code>TextBox</code> object that represents the slide's title.
+        */
+       public HSLFTextBox addTitle() {
+               Placeholder pl = new Placeholder();
+               pl.setShapeType(ShapeType.RECT);
+               pl.getTextParagraph().setRunType(TextHeaderAtom.TITLE_TYPE);
+               pl.setText("Click to edit title");
+               pl.setAnchor(new java.awt.Rectangle(54, 48, 612, 90));
+               addShape(pl);
+               return pl;
+       }
+
+
+       // Complex Accesser methods follow
+
+       /**
+        * Return title of this slide or <code>null</code> if the slide does not have title.
+        * <p>
+        * The title is a run of text of type <code>TextHeaderAtom.CENTER_TITLE_TYPE</code> or
+        * <code>TextHeaderAtom.TITLE_TYPE</code>
+        * </p>
+        *
+        * @see TextHeaderAtom
+        *
+        * @return title of this slide
+        */
+       public String getTitle(){
+               HSLFTextParagraph[] txt = getTextRuns();
+               for (int i = 0; i < txt.length; i++) {
+                       int type = txt[i].getRunType();
+                       if (type == TextHeaderAtom.CENTER_TITLE_TYPE ||
+                       type == TextHeaderAtom.TITLE_TYPE ){
+                               String title = txt[i].getText();
+                               return title;
+                       }
+               }
+               return null;
+       }
+
+       // Simple Accesser methods follow
+
+       /**
+        * Returns an array of all the TextRuns found
+        */
+       public HSLFTextParagraph[] getTextRuns() { return _runs; }
+
+       /**
+        * Returns the (public facing) page number of this slide
+        */
+       public int getSlideNumber() { return _slideNo; }
+
+       /**
+        * Returns the underlying slide record
+        */
+       public org.apache.poi.hslf.record.Slide getSlideRecord() {
+        return (org.apache.poi.hslf.record.Slide)getSheetContainer();
+    }
+
+       /**
+        * Returns the Notes Sheet for this slide, or null if there isn't one
+        */
+       public HSLFNotes getNotesSheet() { return _notes; }
+
+       /**
+        * @return set of records inside <code>SlideListWithtext</code> container
+        *  which hold text data for this slide (typically for placeholders).
+        */
+       protected SlideAtomsSet getSlideAtomsSet() { return _atomSet;  }
+
+    /**
+     * Returns master sheet associated with this slide.
+     * It can be either SlideMaster or TitleMaster objects.
+     *
+     * @return the master sheet associated with this slide.
+     */
+     public HSLFMasterSheet getMasterSheet(){
+        SlideMaster[] master = getSlideShow().getSlidesMasters();
+        SlideAtom sa = getSlideRecord().getSlideAtom();
+        int masterId = sa.getMasterID();
+        HSLFMasterSheet sheet = null;
+        for (int i = 0; i < master.length; i++) {
+            if (masterId == master[i]._getSheetNumber()) {
+                sheet = master[i];
+                break;
+            }
+        }
+        if (sheet == null){
+            TitleMaster[] titleMaster = getSlideShow().getTitleMasters();
+            if(titleMaster != null) for (int i = 0; i < titleMaster.length; i++) {
+                if (masterId == titleMaster[i]._getSheetNumber()) {
+                    sheet = titleMaster[i];
+                    break;
+                }
+            }
+        }
+        return sheet;
+    }
+
+    /**
+     * Change Master of this slide.
+     */
+    public void setMasterSheet(HSLFMasterSheet master){
+        SlideAtom sa = getSlideRecord().getSlideAtom();
+        int sheetNo = master._getSheetNumber();
+        sa.setMasterID(sheetNo);
+    }
+
+    /**
+     * Sets whether this slide follows master background
+     *
+     * @param flag  <code>true</code> if the slide follows master,
+     * <code>false</code> otherwise
+     */
+    public void setFollowMasterBackground(boolean flag){
+        SlideAtom sa = getSlideRecord().getSlideAtom();
+        sa.setFollowMasterBackground(flag);
+    }
+
+    /**
+     * Whether this slide follows master sheet background
+     *
+     * @return <code>true</code> if the slide follows master background,
+     * <code>false</code> otherwise
+     */
+    public boolean getFollowMasterBackground(){
+        SlideAtom sa = getSlideRecord().getSlideAtom();
+        return sa.getFollowMasterBackground();
+    }
+
+    /**
+     * Sets whether this slide draws master sheet objects
+     *
+     * @param flag  <code>true</code> if the slide draws master sheet objects,
+     * <code>false</code> otherwise
+     */
+    public void setFollowMasterObjects(boolean flag){
+        SlideAtom sa = getSlideRecord().getSlideAtom();
+        sa.setFollowMasterObjects(flag);
+    }
+
+    /**
+     * Whether this slide follows master color scheme
+     *
+     * @return <code>true</code> if the slide follows master color scheme,
+     * <code>false</code> otherwise
+     */
+    public boolean getFollowMasterScheme(){
+        SlideAtom sa = getSlideRecord().getSlideAtom();
+        return sa.getFollowMasterScheme();
+    }
+
+    /**
+     * Sets whether this slide draws master color scheme
+     *
+     * @param flag  <code>true</code> if the slide draws master color scheme,
+     * <code>false</code> otherwise
+     */
+    public void setFollowMasterScheme(boolean flag){
+        SlideAtom sa = getSlideRecord().getSlideAtom();
+        sa.setFollowMasterScheme(flag);
+    }
+
+    /**
+     * Whether this slide draws master sheet objects
+     *
+     * @return <code>true</code> if the slide draws master sheet objects,
+     * <code>false</code> otherwise
+     */
+    public boolean getFollowMasterObjects(){
+        SlideAtom sa = getSlideRecord().getSlideAtom();
+        return sa.getFollowMasterObjects();
+    }
+
+    /**
+     * Background for this slide.
+     */
+     public HSLFBackground getBackground() {
+        if(getFollowMasterBackground()) {
+            return getMasterSheet().getBackground();
+        }
+        return super.getBackground();
+    }
+
+    /**
+     * Color scheme for this slide.
+     */
+    public ColorSchemeAtom getColorScheme() {
+        if(getFollowMasterScheme()){
+            return getMasterSheet().getColorScheme();
+        }
+        return super.getColorScheme();
+    }
+
+    /**
+     * Get the comment(s) for this slide.
+     * Note - for now, only works on PPT 2000 and
+     *  PPT 2003 files. Doesn't work for PPT 97
+     *  ones, as they do their comments oddly.
+     */
+    public Comment[] getComments() {
+       // If there are any, they're in
+       //  ProgTags -> ProgBinaryTag -> BinaryTagData
+       RecordContainer progTags = (RecordContainer)
+                       getSheetContainer().findFirstOfType(
+                                               RecordTypes.ProgTags.typeID
+       );
+       if(progTags != null) {
+               RecordContainer progBinaryTag = (RecordContainer)
+                       progTags.findFirstOfType(
+                                       RecordTypes.ProgBinaryTag.typeID
+               );
+               if(progBinaryTag != null) {
+                       RecordContainer binaryTags = (RecordContainer)
+                               progBinaryTag.findFirstOfType(
+                                               RecordTypes.BinaryTagData.typeID
+                       );
+                       if(binaryTags != null) {
+                               // This is where they'll be
+                               int count = 0;
+                               for(int i=0; i<binaryTags.getChildRecords().length; i++) {
+                                       if(binaryTags.getChildRecords()[i] instanceof Comment2000) {
+                                               count++;
+                                       }
+                               }
+
+                               // Now build
+                               Comment[] comments = new Comment[count];
+                               count = 0;
+                               for(int i=0; i<binaryTags.getChildRecords().length; i++) {
+                                       if(binaryTags.getChildRecords()[i] instanceof Comment2000) {
+                                               comments[i] = new Comment(
+                                                               (Comment2000)binaryTags.getChildRecords()[i]
+                                               );
+                                               count++;
+                                       }
+                               }
+
+                               return comments;
+                       }
+               }
+       }
+
+       // None found
+       return new Comment[0];
+    }
+
+    public void draw(Graphics2D graphics){
+        HSLFMasterSheet master = getMasterSheet();
+        HSLFBackground bg = getBackground();
+        if(bg != null)bg.draw(graphics);
+
+        if(getFollowMasterObjects()){
+            HSLFShape[] sh = master.getShapes();
+            for (int i = 0; i < sh.length; i++) {
+                if(HSLFMasterSheet.isPlaceholder(sh[i])) continue;
+
+                sh[i].draw(graphics);
+            }
+        }
+
+        HSLFShape[] sh = getShapes();
+        for (int i = 0; i < sh.length; i++) {
+            sh[i].draw(graphics);
+        }
+    }
+
+    /**
+     * Header / Footer settings for this slide.
+     *
+     * @return Header / Footer settings for this slide
+     */
+     public HeadersFooters getHeadersFooters(){
+        HeadersFootersContainer hdd = null;
+        Record[] ch = getSheetContainer().getChildRecords();
+        boolean ppt2007 = false;
+        for (int i = 0; i < ch.length; i++) {
+            if(ch[i] instanceof HeadersFootersContainer){
+                hdd = (HeadersFootersContainer)ch[i];
+            } else if (ch[i].getRecordType() == RecordTypes.RoundTripContentMasterId.typeID){
+                ppt2007 = true;
+            }
+        }
+        boolean newRecord = false;
+        if(hdd == null && !ppt2007) {
+            return getSlideShow().getSlideHeadersFooters();
+        }
+        if(hdd == null) {
+            hdd = new HeadersFootersContainer(HeadersFootersContainer.SlideHeadersFootersContainer);
+            newRecord = true;
+        }
+        return new HeadersFooters(hdd, this, newRecord, ppt2007);
+    }
+
+    protected void onAddTextShape(HSLFTextShape shape) {
+        HSLFTextParagraph run = shape.getTextParagraph();
+
+        if(_runs == null) _runs = new HSLFTextParagraph[]{run};
+        else {
+            HSLFTextParagraph[] tmp = new HSLFTextParagraph[_runs.length + 1];
+            System.arraycopy(_runs, 0, tmp, 0, _runs.length);
+            tmp[tmp.length-1] = run;
+            _runs = tmp;
+        }
+    }
+
+    /** This will return an atom per TextBox, so if the page has two text boxes the method should return two atoms. */
+    public StyleTextProp9Atom[] getNumberedListInfo() {
+       return this.getPPDrawing().getNumberedListInfo();
+    }
+
+       public EscherTextboxWrapper[] getTextboxWrappers() {
+               return this.getPPDrawing().getTextboxWrappers();
+       }
+
+       public void setHidden(boolean hidden) {
+               org.apache.poi.hslf.record.Slide cont = getSlideRecord();
+               
+               SSSlideInfoAtom slideInfo = 
+                       (SSSlideInfoAtom)cont.findFirstOfType(RecordTypes.SSSlideInfoAtom.typeID);
+               if (slideInfo == null) {
+                       slideInfo = new SSSlideInfoAtom();
+                       cont.addChildAfter(slideInfo, cont.findFirstOfType(RecordTypes.SlideAtom.typeID));
+               }
+               
+               slideInfo.setEffectTransitionFlagByBit(SSSlideInfoAtom.HIDDEN_BIT, hidden);
+       }
+       
+       public boolean getHidden() {
+               SSSlideInfoAtom slideInfo = 
+                       (SSSlideInfoAtom)getSlideRecord().findFirstOfType(RecordTypes.SSSlideInfoAtom.typeID);
+               return (slideInfo == null)
+                       ? false
+                       : slideInfo.getEffectTransitionFlagByBit(SSSlideInfoAtom.HIDDEN_BIT);
+       }
+}
diff --git a/src/scratchpad/src/org/apache/poi/hslf/model/HSLFSlideShowEncrypted.java b/src/scratchpad/src/org/apache/poi/hslf/model/HSLFSlideShowEncrypted.java
new file mode 100644 (file)
index 0000000..803aeac
--- /dev/null
@@ -0,0 +1,494 @@
+/* ====================================================================
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+==================================================================== */
+
+package org.apache.poi.hslf.model;
+
+import java.io.OutputStream;
+import java.security.GeneralSecurityException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.NavigableMap;
+import java.util.TreeMap;
+
+import javax.crypto.Cipher;
+import javax.crypto.CipherOutputStream;
+
+import org.apache.poi.hslf.exceptions.CorruptPowerPointFileException;
+import org.apache.poi.hslf.exceptions.EncryptedPowerPointFileException;
+import org.apache.poi.hslf.record.DocumentEncryptionAtom;
+import org.apache.poi.hslf.record.PersistPtrHolder;
+import org.apache.poi.hslf.record.PositionDependentRecord;
+import org.apache.poi.hslf.record.Record;
+import org.apache.poi.hslf.record.UserEditAtom;
+import org.apache.poi.hssf.record.crypto.Biff8EncryptionKey;
+import org.apache.poi.poifs.crypt.Decryptor;
+import org.apache.poi.poifs.crypt.EncryptionInfo;
+import org.apache.poi.poifs.crypt.Encryptor;
+import org.apache.poi.poifs.crypt.cryptoapi.CryptoAPIDecryptor;
+import org.apache.poi.poifs.crypt.cryptoapi.CryptoAPIEncryptor;
+import org.apache.poi.util.BitField;
+import org.apache.poi.util.Internal;
+import org.apache.poi.util.LittleEndian;
+
+/**
+ * This class provides helper functions for encrypted PowerPoint documents.
+ */
+@Internal
+public class HSLFSlideShowEncrypted {
+    DocumentEncryptionAtom dea;
+    CryptoAPIEncryptor enc = null;
+    CryptoAPIDecryptor dec = null;
+    Cipher cipher = null;
+    CipherOutputStream cyos = null;
+
+    private static final BitField fieldRecInst = new BitField(0xFFF0);
+    
+    protected HSLFSlideShowEncrypted(DocumentEncryptionAtom dea) {
+        this.dea = dea;
+    }
+
+    protected HSLFSlideShowEncrypted(byte[] docstream, NavigableMap<Integer,Record> recordMap) {
+        // check for DocumentEncryptionAtom, which would be at the last offset
+        // need to ignore already set UserEdit and PersistAtoms
+        UserEditAtom userEditAtomWithEncryption = null;
+        for (Map.Entry<Integer, Record> me : recordMap.descendingMap().entrySet()) {
+            Record r = me.getValue();
+            if (!(r instanceof UserEditAtom)) continue;
+            UserEditAtom uea = (UserEditAtom)r;
+            if (uea.getEncryptSessionPersistIdRef() != -1) {
+                userEditAtomWithEncryption = uea;
+                break;
+            }
+        }
+
+        if (userEditAtomWithEncryption == null) {
+            dea = null;
+            return;
+        }
+
+        Record r = recordMap.get(userEditAtomWithEncryption.getPersistPointersOffset());
+        assert(r instanceof PersistPtrHolder);
+        PersistPtrHolder ptr = (PersistPtrHolder)r;
+        
+        Integer encOffset = ptr.getSlideLocationsLookup().get(userEditAtomWithEncryption.getEncryptSessionPersistIdRef());
+        assert(encOffset != null);
+        
+        r = recordMap.get(encOffset);
+        if (r == null) {
+            r = Record.buildRecordAtOffset(docstream, encOffset);
+            recordMap.put(encOffset, r);
+        }
+        assert(r instanceof DocumentEncryptionAtom);
+        this.dea = (DocumentEncryptionAtom)r;
+        
+        CryptoAPIDecryptor dec = (CryptoAPIDecryptor)dea.getEncryptionInfo().getDecryptor();
+        String pass = Biff8EncryptionKey.getCurrentUserPassword();
+        if(!dec.verifyPassword(pass != null ? pass : Decryptor.DEFAULT_PASSWORD)) {
+            throw new EncryptedPowerPointFileException("PowerPoint file is encrypted. The correct password needs to be set via Biff8EncryptionKey.setCurrentUserPassword()");
+        }
+     }
+
+    public DocumentEncryptionAtom getDocumentEncryptionAtom() {
+        return dea;
+    }
+    
+    protected void setPersistId(int persistId) {
+        if (enc != null && dec != null) {
+            throw new EncryptedPowerPointFileException("Use instance either for en- or decryption");
+        }
+        
+        try {
+            if (enc != null) cipher = enc.initCipherForBlock(cipher, persistId);
+            if (dec != null) cipher = dec.initCipherForBlock(cipher, persistId);
+        } catch (GeneralSecurityException e) {
+            throw new EncryptedPowerPointFileException(e);
+        }
+    }
+    
+    protected void decryptInit() {
+        if (dec != null) return;
+        EncryptionInfo ei = dea.getEncryptionInfo();
+        dec = (CryptoAPIDecryptor)ei.getDecryptor();
+    }
+    
+    protected void encryptInit() {
+        if (enc != null) return;
+        EncryptionInfo ei = dea.getEncryptionInfo();
+        enc = (CryptoAPIEncryptor)ei.getEncryptor();
+    }
+    
+
+    
+    protected OutputStream encryptRecord(OutputStream plainStream, int persistId, Record record) {
+        boolean isPlain = (dea == null 
+            || record instanceof UserEditAtom
+            || record instanceof PersistPtrHolder
+            || record instanceof DocumentEncryptionAtom
+        );
+        if (isPlain) return plainStream;
+
+        encryptInit();
+        setPersistId(persistId);
+        
+        if (cyos == null) {
+            cyos = new CipherOutputStream(plainStream, cipher);
+        }
+        return cyos;
+    }
+
+    protected void decryptRecord(byte[] docstream, int persistId, int offset) {
+        if (dea == null) return;
+
+        decryptInit();
+        setPersistId(persistId);
+        
+        try {
+            // decrypt header and read length to be decrypted
+            cipher.update(docstream, offset, 8, docstream, offset);
+            // decrypt the rest of the record
+            int rlen = (int)LittleEndian.getUInt(docstream, offset+4);
+            cipher.update(docstream, offset+8, rlen, docstream, offset+8);
+        } catch (GeneralSecurityException e) {
+            throw new CorruptPowerPointFileException(e);
+        }       
+    }        
+    
+    protected void decryptPicture(byte[] pictstream, int offset) {
+        if (dea == null) return;
+        
+        decryptInit();
+        setPersistId(0);
+        
+        try {
+            // decrypt header and read length to be decrypted
+            cipher.doFinal(pictstream, offset, 8, pictstream, offset);
+            int recInst = fieldRecInst.getValue(LittleEndian.getUShort(pictstream, offset));
+            int recType = LittleEndian.getUShort(pictstream, offset+2);
+            int rlen = (int)LittleEndian.getUInt(pictstream, offset+4);
+            offset += 8;
+            int endOffset = offset + rlen; 
+
+            if (recType == 0xF007) {
+                // TOOD: get a real example file ... to actual test the FBSE entry
+                // not sure where the foDelay block is
+                
+                // File BLIP Store Entry (FBSE)
+                cipher.doFinal(pictstream, offset, 1, pictstream, offset); // btWin32
+                offset++;
+                cipher.doFinal(pictstream, offset, 1, pictstream, offset); // btMacOS
+                offset++;
+                cipher.doFinal(pictstream, offset, 16, pictstream, offset); // rgbUid
+                offset += 16;
+                cipher.doFinal(pictstream, offset, 2, pictstream, offset); // tag
+                offset += 2;
+                cipher.doFinal(pictstream, offset, 4, pictstream, offset); // size
+                offset += 4;
+                cipher.doFinal(pictstream, offset, 4, pictstream, offset); // cRef
+                offset += 4;
+                cipher.doFinal(pictstream, offset, 4, pictstream, offset); // foDelay
+                offset += 4;
+                cipher.doFinal(pictstream, offset+0, 1, pictstream, offset+0); // unused1
+                cipher.doFinal(pictstream, offset+1, 1, pictstream, offset+1); // cbName
+                cipher.doFinal(pictstream, offset+2, 1, pictstream, offset+2); // unused2
+                cipher.doFinal(pictstream, offset+3, 1, pictstream, offset+3); // unused3
+                int cbName = LittleEndian.getUShort(pictstream, offset+1);
+                offset += 4;
+                if (cbName > 0) {
+                    cipher.doFinal(pictstream, offset, cbName, pictstream, offset); // nameData
+                    offset += cbName;
+                }
+                if (offset == endOffset) {
+                    return; // no embedded blip
+                }
+                // fall through, read embedded blip now
+
+                // update header data
+                cipher.doFinal(pictstream, offset, 8, pictstream, offset);
+                recInst = fieldRecInst.getValue(LittleEndian.getUShort(pictstream, offset));
+                recType = LittleEndian.getUShort(pictstream, offset+2);
+                rlen = (int)LittleEndian.getUInt(pictstream, offset+4);
+                offset += 8;
+            }
+
+            int rgbUidCnt = (recInst == 0x217 || recInst == 0x3D5 || recInst == 0x46B || recInst == 0x543 ||
+                recInst == 0x6E1 || recInst == 0x6E3 || recInst == 0x6E5 || recInst == 0x7A9) ? 2 : 1;
+            
+            for (int i=0; i<rgbUidCnt; i++) {
+                cipher.doFinal(pictstream, offset, 16, pictstream, offset); // rgbUid 1/2
+                offset += 16;
+            }
+            
+            if (recType == 0xF01A || recType == 0XF01B || recType == 0XF01C) {
+                cipher.doFinal(pictstream, offset, 34, pictstream, offset); // metafileHeader
+                offset += 34;
+            } else {
+                cipher.doFinal(pictstream, offset, 1, pictstream, offset); // tag
+                offset += 1;
+            }
+            
+            int blipLen = endOffset - offset;
+            cipher.doFinal(pictstream, offset, blipLen, pictstream, offset);
+        } catch (GeneralSecurityException e) {
+            throw new CorruptPowerPointFileException(e);
+        }       
+    }
+
+    protected void encryptPicture(byte[] pictstream, int offset) {
+        if (dea == null) return;
+        
+        encryptInit();
+        setPersistId(0);
+
+        try {
+            int recInst = fieldRecInst.getValue(LittleEndian.getUShort(pictstream, offset));
+            int recType = LittleEndian.getUShort(pictstream, offset+2);
+            int rlen = (int)LittleEndian.getUInt(pictstream, offset+4);
+            cipher.doFinal(pictstream, offset, 8, pictstream, offset);
+            offset += 8;
+            int endOffset = offset + rlen; 
+
+            if (recType == 0xF007) {
+                // TOOD: get a real example file ... to actual test the FBSE entry
+                // not sure where the foDelay block is
+                
+                // File BLIP Store Entry (FBSE)
+                cipher.doFinal(pictstream, offset, 1, pictstream, offset); // btWin32
+                offset++;
+                cipher.doFinal(pictstream, offset, 1, pictstream, offset); // btMacOS
+                offset++;
+                cipher.doFinal(pictstream, offset, 16, pictstream, offset); // rgbUid
+                offset += 16;
+                cipher.doFinal(pictstream, offset, 2, pictstream, offset); // tag
+                offset += 2;
+                cipher.doFinal(pictstream, offset, 4, pictstream, offset); // size
+                offset += 4;
+                cipher.doFinal(pictstream, offset, 4, pictstream, offset); // cRef
+                offset += 4;
+                cipher.doFinal(pictstream, offset, 4, pictstream, offset); // foDelay
+                offset += 4;
+                int cbName = LittleEndian.getUShort(pictstream, offset+1);
+                cipher.doFinal(pictstream, offset+0, 1, pictstream, offset+0); // unused1
+                cipher.doFinal(pictstream, offset+1, 1, pictstream, offset+1); // cbName
+                cipher.doFinal(pictstream, offset+2, 1, pictstream, offset+2); // unused2
+                cipher.doFinal(pictstream, offset+3, 1, pictstream, offset+3); // unused3
+                offset += 4;
+                if (cbName > 0) {
+                    cipher.doFinal(pictstream, offset, cbName, pictstream, offset); // nameData
+                    offset += cbName;
+                }
+                if (offset == endOffset) {
+                    return; // no embedded blip
+                }
+                // fall through, read embedded blip now
+
+                // update header data
+                recInst = fieldRecInst.getValue(LittleEndian.getUShort(pictstream, offset));
+                recType = LittleEndian.getUShort(pictstream, offset+2);
+                rlen = (int)LittleEndian.getUInt(pictstream, offset+4);
+                cipher.doFinal(pictstream, offset, 8, pictstream, offset);
+                offset += 8;
+            }
+            
+            int rgbUidCnt = (recInst == 0x217 || recInst == 0x3D5 || recInst == 0x46B || recInst == 0x543 ||
+                recInst == 0x6E1 || recInst == 0x6E3 || recInst == 0x6E5 || recInst == 0x7A9) ? 2 : 1;
+                
+            for (int i=0; i<rgbUidCnt; i++) {
+                cipher.doFinal(pictstream, offset, 16, pictstream, offset); // rgbUid 1/2
+                offset += 16;
+            }
+            
+            if (recType == 0xF01A || recType == 0XF01B || recType == 0XF01C) {
+                cipher.doFinal(pictstream, offset, 34, pictstream, offset); // metafileHeader
+                offset += 34;
+            } else {
+                cipher.doFinal(pictstream, offset, 1, pictstream, offset); // tag
+                offset += 1;
+            }
+            
+            int blipLen = endOffset - offset;
+            cipher.doFinal(pictstream, offset, blipLen, pictstream, offset);
+        } catch (GeneralSecurityException e) {
+            throw new CorruptPowerPointFileException(e);
+        }       
+    }
+
+    protected Record[] updateEncryptionRecord(Record records[]) {
+        String password = Biff8EncryptionKey.getCurrentUserPassword();
+        if (password == null) {
+            if (dea == null) {
+                // no password given, no encryption record exits -> done
+                return records;
+            } else {
+                // need to remove password data
+                dea = null;
+                return removeEncryptionRecord(records);
+            }
+        } else {
+            // create password record
+            if (dea == null) {
+                dea = new DocumentEncryptionAtom();
+            }
+            EncryptionInfo ei = dea.getEncryptionInfo();
+            byte salt[] = ei.getVerifier().getSalt();
+            Encryptor enc = ei.getEncryptor();
+            if (salt == null) {
+                enc.confirmPassword(password);
+            } else {
+                byte verifier[] = ei.getDecryptor().getVerifier();
+                enc.confirmPassword(password, null, null, verifier, salt, null);
+            }
+
+            // move EncryptionRecord to last slide position
+            records = normalizeRecords(records);
+            return addEncryptionRecord(records, dea);
+        }
+    }
+
+    /**
+     * remove duplicated UserEditAtoms and merge PersistPtrHolder.
+     * Before this method is called, make sure that the offsets are correct,
+     * i.e. call {@link HSLFSlideShowImpl#updateAndWriteDependantRecords(OutputStream, Map)}
+     */
+    protected static Record[] normalizeRecords(Record records[]) {
+        // http://msdn.microsoft.com/en-us/library/office/gg615594(v=office.14).aspx
+        // repeated slideIds can be overwritten, i.e. ignored
+        
+        UserEditAtom uea = null;
+        PersistPtrHolder pph = null;
+        TreeMap<Integer,Integer> slideLocations = new TreeMap<Integer,Integer>();
+        TreeMap<Integer,Record> recordMap = new TreeMap<Integer,Record>();
+        List<Integer> obsoleteOffsets = new ArrayList<Integer>();
+        int duplicatedCount = 0;
+        for (Record r : records) {
+            assert(r instanceof PositionDependentRecord);
+            PositionDependentRecord pdr = (PositionDependentRecord)r;
+            if (pdr instanceof UserEditAtom) {
+                uea = (UserEditAtom)pdr;
+                continue;
+            }
+            
+            if (pdr instanceof PersistPtrHolder) {
+                if (pph != null) {
+                    duplicatedCount++;
+                }
+                pph = (PersistPtrHolder)pdr;
+                for (Map.Entry<Integer,Integer> me : pph.getSlideLocationsLookup().entrySet()) {
+                    Integer oldOffset = slideLocations.put(me.getKey(), me.getValue());
+                    if (oldOffset != null) obsoleteOffsets.add(oldOffset);
+                }
+                continue;
+            }
+            
+            recordMap.put(pdr.getLastOnDiskOffset(), r);
+        }
+        recordMap.put(pph.getLastOnDiskOffset(), pph);
+        recordMap.put(uea.getLastOnDiskOffset(), uea);
+
+        assert(uea != null && pph != null && uea.getPersistPointersOffset() == pph.getLastOnDiskOffset());
+        
+        if (duplicatedCount == 0 && obsoleteOffsets.isEmpty()) {
+            return records;
+        }
+
+        uea.setLastUserEditAtomOffset(0);
+        pph.clear();
+        for (Map.Entry<Integer,Integer> me : slideLocations.entrySet()) {
+            pph.addSlideLookup(me.getKey(), me.getValue());
+        }
+        
+        for (Integer oldOffset : obsoleteOffsets) {
+            recordMap.remove(oldOffset);
+        }
+        
+        return recordMap.values().toArray(new Record[recordMap.size()]);
+    }
+     
+    
+    protected static Record[] removeEncryptionRecord(Record records[]) {
+        int deaSlideId = -1;
+        int deaOffset = -1;
+        PersistPtrHolder ptr = null;
+        UserEditAtom uea = null;
+        List<Record> recordList = new ArrayList<Record>();
+        for (Record r : records) {
+            if (r instanceof DocumentEncryptionAtom) {
+                deaOffset = ((DocumentEncryptionAtom)r).getLastOnDiskOffset();
+                continue;
+            } else if (r instanceof UserEditAtom) {
+                uea = (UserEditAtom)r;
+                deaSlideId = uea.getEncryptSessionPersistIdRef();
+                uea.setEncryptSessionPersistIdRef(-1);
+            } else if (r instanceof PersistPtrHolder) {
+                ptr = (PersistPtrHolder)r;
+            }
+            recordList.add(r);
+        }
+        
+        assert(ptr != null);
+        if (deaSlideId == -1 && deaOffset == -1) return records;
+        
+        TreeMap<Integer,Integer> tm = new TreeMap<Integer,Integer>(ptr.getSlideLocationsLookup());
+        ptr.clear();
+        int maxSlideId = -1;
+        for (Map.Entry<Integer,Integer> me : tm.entrySet()) {
+            if (me.getKey() == deaSlideId || me.getValue() == deaOffset) continue;
+            ptr.addSlideLookup(me.getKey(), me.getValue());
+            maxSlideId = Math.max(me.getKey(), maxSlideId);
+        }
+        
+        uea.setMaxPersistWritten(maxSlideId);
+
+        records = recordList.toArray(new Record[recordList.size()]);
+        
+        return records;
+    }
+
+
+    protected static Record[] addEncryptionRecord(Record records[], DocumentEncryptionAtom dea) {
+        assert(dea != null);
+        int ueaIdx = -1, ptrIdx = -1, deaIdx = -1, idx = -1;
+        for (Record r : records) {
+            idx++;
+            if (r instanceof UserEditAtom) ueaIdx = idx;
+            else if (r instanceof PersistPtrHolder) ptrIdx = idx;
+            else if (r instanceof DocumentEncryptionAtom) deaIdx = idx;
+        }
+        assert(ueaIdx != -1 && ptrIdx != -1 && ptrIdx < ueaIdx);
+        if (deaIdx != -1) {
+            DocumentEncryptionAtom deaOld = (DocumentEncryptionAtom)records[deaIdx];
+            dea.setLastOnDiskOffset(deaOld.getLastOnDiskOffset());
+            records[deaIdx] = dea;
+            return records;
+        } else {
+            PersistPtrHolder ptr = (PersistPtrHolder)records[ptrIdx];
+            UserEditAtom uea = ((UserEditAtom)records[ueaIdx]);
+            dea.setLastOnDiskOffset(ptr.getLastOnDiskOffset()-1);
+            int nextSlideId = uea.getMaxPersistWritten()+1;
+            ptr.addSlideLookup(nextSlideId, ptr.getLastOnDiskOffset()-1);
+            uea.setEncryptSessionPersistIdRef(nextSlideId);
+            uea.setMaxPersistWritten(nextSlideId);
+            
+            Record newRecords[] = new Record[records.length+1];
+            if (ptrIdx > 0) System.arraycopy(records, 0, newRecords, 0, ptrIdx);
+            if (ptrIdx < records.length-1) System.arraycopy(records, ptrIdx, newRecords, ptrIdx+1, records.length-ptrIdx);
+            newRecords[ptrIdx] = dea;
+            return newRecords;
+        }
+    }
+
+}
diff --git a/src/scratchpad/src/org/apache/poi/hslf/model/HSLFSlideShowImpl.java b/src/scratchpad/src/org/apache/poi/hslf/model/HSLFSlideShowImpl.java
new file mode 100644 (file)
index 0000000..48e52da
--- /dev/null
@@ -0,0 +1,808 @@
+/* ====================================================================
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+==================================================================== */
+
+package org.apache.poi.hslf.model;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.security.GeneralSecurityException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Hashtable;
+import java.util.List;
+import java.util.Map;
+import java.util.NavigableMap;
+import java.util.TreeMap;
+
+import org.apache.poi.POIDocument;
+import org.apache.poi.hpsf.PropertySet;
+import org.apache.poi.hslf.exceptions.CorruptPowerPointFileException;
+import org.apache.poi.hslf.exceptions.HSLFException;
+import org.apache.poi.hslf.record.CurrentUserAtom;
+import org.apache.poi.hslf.record.DocumentEncryptionAtom;
+import org.apache.poi.hslf.record.ExOleObjStg;
+import org.apache.poi.hslf.record.PersistPtrHolder;
+import org.apache.poi.hslf.record.PersistRecord;
+import org.apache.poi.hslf.record.PositionDependentRecord;
+import org.apache.poi.hslf.record.Record;
+import org.apache.poi.hslf.record.RecordTypes;
+import org.apache.poi.hslf.record.UserEditAtom;
+import org.apache.poi.hslf.usermodel.HSLFObjectData;
+import org.apache.poi.hslf.usermodel.HSLFPictureData;
+import org.apache.poi.poifs.crypt.cryptoapi.CryptoAPIEncryptor;
+import org.apache.poi.poifs.filesystem.DirectoryNode;
+import org.apache.poi.poifs.filesystem.DocumentEntry;
+import org.apache.poi.poifs.filesystem.DocumentInputStream;
+import org.apache.poi.poifs.filesystem.EntryUtils;
+import org.apache.poi.poifs.filesystem.NPOIFSFileSystem;
+import org.apache.poi.poifs.filesystem.POIFSFileSystem;
+import org.apache.poi.util.LittleEndian;
+import org.apache.poi.util.POILogFactory;
+import org.apache.poi.util.POILogger;
+
+/**
+ * This class contains the main functionality for the Powerpoint file
+ * "reader". It is only a very basic class for now
+ *
+ * @author Nick Burch
+ */
+public final class HSLFSlideShowImpl extends POIDocument {
+    public static final int UNSET_OFFSET = -1;
+    
+    // For logging
+    private POILogger logger = POILogFactory.getLogger(this.getClass());
+
+       // Holds metadata on where things are in our document
+       private CurrentUserAtom currentUser;
+
+       // Low level contents of the file
+       private byte[] _docstream;
+
+       // Low level contents
+       private Record[] _records;
+
+       // Raw Pictures contained in the pictures stream
+       private List<HSLFPictureData> _pictures;
+
+    // Embedded objects stored in storage records in the document stream, lazily populated.
+    private HSLFObjectData[] _objects;
+    
+    /**
+        * Returns the underlying POIFSFileSystem for the document
+        *  that is open.
+        */
+       protected POIFSFileSystem getPOIFSFileSystem() {
+               return directory.getFileSystem();
+       }
+
+   /**
+    * Returns the directory in the underlying POIFSFileSystem for the 
+    *  document that is open.
+    */
+   protected DirectoryNode getPOIFSDirectory() {
+      return directory;
+   }
+
+       /**
+        * Constructs a Powerpoint document from fileName. Parses the document
+        * and places all the important stuff into data structures.
+        *
+        * @param fileName The name of the file to read.
+        * @throws IOException if there is a problem while parsing the document.
+        */
+       public HSLFSlideShowImpl(String fileName) throws IOException
+       {
+               this(new FileInputStream(fileName));
+       }
+
+       /**
+        * Constructs a Powerpoint document from an input stream. Parses the
+        * document and places all the important stuff into data structures.
+        *
+        * @param inputStream the source of the data
+        * @throws IOException if there is a problem while parsing the document.
+        */
+       public HSLFSlideShowImpl(InputStream inputStream) throws IOException {
+               //do Ole stuff
+               this(new POIFSFileSystem(inputStream));
+       }
+
+       /**
+        * Constructs a Powerpoint document from a POIFS Filesystem. Parses the
+        * document and places all the important stuff into data structures.
+        *
+        * @param filesystem the POIFS FileSystem to read from
+        * @throws IOException if there is a problem while parsing the document.
+        */
+       public HSLFSlideShowImpl(POIFSFileSystem filesystem) throws IOException
+       {
+               this(filesystem.getRoot());
+       }
+
+   /**
+    * Constructs a Powerpoint document from a POIFS Filesystem. Parses the
+    * document and places all the important stuff into data structures.
+    *
+    * @param filesystem the POIFS FileSystem to read from
+    * @throws IOException if there is a problem while parsing the document.
+    */
+   public HSLFSlideShowImpl(NPOIFSFileSystem filesystem) throws IOException
+   {
+      this(filesystem.getRoot());
+   }
+
+   /**
+    * Constructs a Powerpoint document from a specific point in a
+    *  POIFS Filesystem. Parses the document and places all the
+    *  important stuff into data structures.
+    *
+    * @deprecated Use {@link #HSLFSlideShow(DirectoryNode)} instead
+    * @param dir the POIFS directory to read from
+    * @param filesystem the POIFS FileSystem to read from
+    * @throws IOException if there is a problem while parsing the document.
+    */
+       @Deprecated
+   public HSLFSlideShowImpl(DirectoryNode dir, POIFSFileSystem filesystem) throws IOException
+   {
+      this(dir);
+   }
+   
+       /**
+        * Constructs a Powerpoint document from a specific point in a
+        *  POIFS Filesystem. Parses the document and places all the
+        *  important stuff into data structures.
+        *
+        * @param dir the POIFS directory to read from
+        * @throws IOException if there is a problem while parsing the document.
+        */
+       public HSLFSlideShowImpl(DirectoryNode dir) throws IOException {
+               super(handleDualStorage(dir));
+
+               // First up, grab the "Current User" stream
+               // We need this before we can detect Encrypted Documents
+               readCurrentUserStream();
+
+               // Next up, grab the data that makes up the
+               //  PowerPoint stream
+               readPowerPointStream();
+
+               // Now, build records based on the PowerPoint stream
+               buildRecords();
+
+               // Look for any other streams
+               readOtherStreams();
+       }
+       
+       private static DirectoryNode handleDualStorage(DirectoryNode dir) throws IOException {
+           // when there's a dual storage entry, use it, as the outer document can't be read quite probably ...
+           String dualName = "PP97_DUALSTORAGE";
+           if (!dir.hasEntry(dualName)) return dir;
+           dir = (DirectoryNode)dir.getEntry(dualName);
+           return dir;
+       }
+       
+       /**
+        * Constructs a new, empty, Powerpoint document.
+        */
+       public static final HSLFSlideShowImpl create() {
+               InputStream is = HSLFSlideShowImpl.class.getResourceAsStream("data/empty.ppt");
+               if (is == null) {
+                       throw new RuntimeException("Missing resource 'empty.ppt'");
+               }
+               try {
+                       return new HSLFSlideShowImpl(is);
+               } catch (IOException e) {
+                       throw new RuntimeException(e);
+               }
+       }
+
+       /**
+        * Extracts the main PowerPoint document stream from the
+        *  POI file, ready to be passed
+        *
+        * @throws IOException
+        */
+       private void readPowerPointStream() throws IOException
+       {
+               // Get the main document stream
+               DocumentEntry docProps =
+                       (DocumentEntry)directory.getEntry("PowerPoint Document");
+
+               // Grab the document stream
+               _docstream = new byte[docProps.getSize()];
+               directory.createDocumentInputStream("PowerPoint Document").read(_docstream);
+       }
+
+       /**
+        * Builds the list of records, based on the contents
+        *  of the PowerPoint stream
+        */
+       private void buildRecords()
+       {
+               // The format of records in a powerpoint file are:
+               //   <little endian 2 byte "info">
+               //   <little endian 2 byte "type">
+               //   <little endian 4 byte "length">
+               // If it has a zero length, following it will be another record
+               //              <xx xx yy yy 00 00 00 00> <xx xx yy yy zz zz zz zz>
+               // If it has a length, depending on its type it may have children or data
+               // If it has children, these will follow straight away
+               //              <xx xx yy yy zz zz zz zz <xx xx yy yy zz zz zz zz>>
+               // If it has data, this will come straigh after, and run for the length
+               //      <xx xx yy yy zz zz zz zz dd dd dd dd dd dd dd>
+               // All lengths given exclude the 8 byte record header
+               // (Data records are known as Atoms)
+
+               // Document should start with:
+               //   0F 00 E8 03 ## ## ## ##
+           //     (type 1000 = document, info 00 0f is normal, rest is document length)
+               //   01 00 E9 03 28 00 00 00
+               //     (type 1001 = document atom, info 00 01 normal, 28 bytes long)
+               //   80 16 00 00 E0 10 00 00 xx xx xx xx xx xx xx xx
+               //   05 00 00 00 0A 00 00 00 xx xx xx
+               //     (the contents of the document atom, not sure what it means yet)
+               //   (records then follow)
+
+               // When parsing a document, look to see if you know about that type
+               //  of the current record. If you know it's a type that has children,
+               //  process the record's data area looking for more records
+               // If you know about the type and it doesn't have children, either do
+               //  something with the data (eg TextRun) or skip over it
+               // If you don't know about the type, play safe and skip over it (using
+               //  its length to know where the next record will start)
+               //
+
+        _records = read(_docstream, (int)currentUser.getCurrentEditOffset());
+       }
+
+       private Record[] read(byte[] docstream, int usrOffset){
+        //sort found records by offset.
+        //(it is not necessary but SlideShow.findMostRecentCoreRecords() expects them sorted)
+           NavigableMap<Integer,Record> records = new TreeMap<Integer,Record>(); // offset -> record
+        Map<Integer,Integer> persistIds = new HashMap<Integer,Integer>(); // offset -> persistId
+        initRecordOffsets(docstream, usrOffset, records, persistIds);
+        HSLFSlideShowEncrypted decryptData = new HSLFSlideShowEncrypted(docstream, records);
+        
+        for (Map.Entry<Integer,Record> entry : records.entrySet()) {
+            Integer offset = entry.getKey();
+            Record record = entry.getValue();
+            Integer persistId = persistIds.get(offset);
+            if (record == null) {
+                // all plain records have been already added,
+                // only new records need to be decrypted (tbd #35897)
+                decryptData.decryptRecord(docstream, persistId, offset);
+                record = Record.buildRecordAtOffset(docstream, offset);
+                entry.setValue(record);
+            }
+            
+            if (record instanceof PersistRecord) {
+                ((PersistRecord)record).setPersistId(persistId);
+            }            
+        }
+        
+        return records.values().toArray(new Record[records.size()]);
+    }
+
+    private void initRecordOffsets(byte[] docstream, int usrOffset, NavigableMap<Integer,Record> recordMap, Map<Integer,Integer> offset2id) {
+        while (usrOffset != 0){
+            UserEditAtom usr = (UserEditAtom) Record.buildRecordAtOffset(docstream, usrOffset);
+            recordMap.put(usrOffset, usr);
+            
+            int psrOffset = usr.getPersistPointersOffset();
+            PersistPtrHolder ptr = (PersistPtrHolder)Record.buildRecordAtOffset(docstream, psrOffset);
+            recordMap.put(psrOffset, ptr);
+            
+            for(Map.Entry<Integer,Integer> entry : ptr.getSlideLocationsLookup().entrySet()) {
+                Integer offset = entry.getValue();
+                Integer id = entry.getKey();
+                recordMap.put(offset, null); // reserve a slot for the record
+                offset2id.put(offset, id);
+            }
+            
+            usrOffset = usr.getLastUserEditAtomOffset();
+
+            // check for corrupted user edit atom and try to repair it
+            // if the next user edit atom offset is already known, we would go into an endless loop
+            if (usrOffset > 0 && recordMap.containsKey(usrOffset)) {
+                // a user edit atom is usually located 36 byte before the smallest known record offset 
+                usrOffset = recordMap.firstKey()-36;
+                // check that we really are located on a user edit atom
+                int ver_inst = LittleEndian.getUShort(docstream, usrOffset);
+                int type = LittleEndian.getUShort(docstream, usrOffset+2);
+                int len = LittleEndian.getInt(docstream, usrOffset+4);
+                if (ver_inst == 0 && type == 4085 && (len == 0x1C || len == 0x20)) {
+                    logger.log(POILogger.WARN, "Repairing invalid user edit atom");
+                    usr.setLastUserEditAtomOffset(usrOffset);
+                } else {
+                    throw new CorruptPowerPointFileException("Powerpoint document contains invalid user edit atom");
+                }
+            }
+        }       
+    }
+
+    public DocumentEncryptionAtom getDocumentEncryptionAtom() {
+        for (Record r : _records) {
+            if (r instanceof DocumentEncryptionAtom) {
+                return (DocumentEncryptionAtom)r;
+            }
+        }
+        return null;
+    }
+    
+    
+       /**
+        * Find the "Current User" stream, and load it
+        */
+       private void readCurrentUserStream() {
+               try {
+                       currentUser = new CurrentUserAtom(directory);
+               } catch(IOException ie) {
+                       logger.log(POILogger.ERROR, "Error finding Current User Atom:\n" + ie);
+                       currentUser = new CurrentUserAtom();
+               }
+       }
+
+       /**
+        * Find any other streams from the filesystem, and load them
+        */
+       private void readOtherStreams() {
+               // Currently, there aren't any
+       }
+       
+       /**
+        * Find and read in pictures contained in this presentation.
+        * This is lazily called as and when we want to touch pictures.
+        */
+    @SuppressWarnings("unused")
+       private void readPictures() throws IOException {
+        _pictures = new ArrayList<HSLFPictureData>();
+
+        // if the presentation doesn't contain pictures - will use a null set instead
+        if (!directory.hasEntry("Pictures")) return;
+
+        HSLFSlideShowEncrypted decryptData = new HSLFSlideShowEncrypted(getDocumentEncryptionAtom());
+        
+               DocumentEntry entry = (DocumentEntry)directory.getEntry("Pictures");
+               byte[] pictstream = new byte[entry.getSize()];
+               DocumentInputStream is = directory.createDocumentInputStream(entry);
+               is.read(pictstream);
+               is.close();
+
+               
+        int pos = 0;
+               // An empty picture record (length 0) will take up 8 bytes
+        while (pos <= (pictstream.length-8)) {
+            int offset = pos;
+
+            decryptData.decryptPicture(pictstream, offset);
+            
+            // Image signature
+            int signature = LittleEndian.getUShort(pictstream, pos);
+            pos += LittleEndian.SHORT_SIZE;
+            // Image type + 0xF018
+            int type = LittleEndian.getUShort(pictstream, pos);
+            pos += LittleEndian.SHORT_SIZE;
+            // Image size (excluding the 8 byte header)
+            int imgsize = LittleEndian.getInt(pictstream, pos);
+            pos += LittleEndian.INT_SIZE;
+
+            // When parsing the BStoreDelay stream, [MS-ODRAW] says that we
+            //  should terminate if the type isn't 0xf007 or 0xf018->0xf117
+            if (!((type == 0xf007) || (type >= 0xf018 && type <= 0xf117)))
+                break;
+
+                       // The image size must be 0 or greater
+                       // (0 is allowed, but odd, since we do wind on by the header each
+                       //  time, so we won't get stuck)
+                       if(imgsize < 0) {
+                               throw new CorruptPowerPointFileException("The file contains a picture, at position " + _pictures.size() + ", which has a negatively sized data length, so we can't trust any of the picture data");
+                       }
+
+                       // If they type (including the bonus 0xF018) is 0, skip it
+                       if(type == 0) {
+                               logger.log(POILogger.ERROR, "Problem reading picture: Invalid image type 0, on picture with length " + imgsize + ".\nYou document will probably become corrupted if you save it!");
+                               logger.log(POILogger.ERROR, "" + pos);
+                       } else {
+                               // Build the PictureData object from the data
+                               try {
+                                       HSLFPictureData pict = HSLFPictureData.create(type - 0xF018);
+
+                    // Copy the data, ready to pass to PictureData
+                    byte[] imgdata = new byte[imgsize];
+                    System.arraycopy(pictstream, pos, imgdata, 0, imgdata.length);
+                    pict.setRawData(imgdata);
+
+                    pict.setOffset(offset);
+                                       _pictures.add(pict);
+                               } catch(IllegalArgumentException e) {
+                                       logger.log(POILogger.ERROR, "Problem reading picture: " + e + "\nYou document will probably become corrupted if you save it!");
+                               }
+                       }
+
+            pos += imgsize;
+        }
+       }
+    
+    /**
+     * remove duplicated UserEditAtoms and merge PersistPtrHolder, i.e.
+     * remove document edit history
+     */
+    public void normalizeRecords() {
+        try {
+            updateAndWriteDependantRecords(null, null);
+        } catch (IOException e) {
+            throw new CorruptPowerPointFileException(e);
+        }
+        _records = HSLFSlideShowEncrypted.normalizeRecords(_records);
+    }
+   
+    
+       /**
+     * This is a helper functions, which is needed for adding new position dependent records
+     * or finally write the slideshow to a file.
+        *
+        * @param os the stream to write to, if null only the references are updated
+        * @param interestingRecords a map of interesting records (PersistPtrHolder and UserEditAtom)
+        *        referenced by their RecordType. Only the very last of each type will be saved to the map.
+        *        May be null, if not needed. 
+        * @throws IOException
+        */
+       public void updateAndWriteDependantRecords(OutputStream os, Map<RecordTypes.Type,PositionDependentRecord> interestingRecords)
+       throws IOException {
+        // For position dependent records, hold where they were and now are
+        // As we go along, update, and hand over, to any Position Dependent
+        //  records we happen across
+        Hashtable<Integer,Integer> oldToNewPositions = new Hashtable<Integer,Integer>();
+
+        // First pass - figure out where all the position dependent
+        //   records are going to end up, in the new scheme
+        // (Annoyingly, some powerpoint files have PersistPtrHolders
+        //  that reference slides after the PersistPtrHolder)
+        UserEditAtom usr = null;
+        PersistPtrHolder ptr = null;
+        CountingOS cos = new CountingOS();
+        for (Record record : _records) {
+            // all top level records are position dependent
+            assert(record instanceof PositionDependentRecord);
+            PositionDependentRecord pdr = (PositionDependentRecord)record;
+            int oldPos = pdr.getLastOnDiskOffset();
+            int newPos = cos.size();
+            pdr.setLastOnDiskOffset(newPos);
+            if (oldPos != UNSET_OFFSET) {
+                // new records don't need a mapping, as they aren't in a relation yet
+                oldToNewPositions.put(oldPos,newPos);
+            }
+
+            // Grab interesting records as they come past
+            // this will only save the very last record of each type
+            RecordTypes.Type saveme = null;
+            int recordType = (int)record.getRecordType();
+            if (recordType == RecordTypes.PersistPtrIncrementalBlock.typeID) {
+                saveme = RecordTypes.PersistPtrIncrementalBlock;
+                ptr = (PersistPtrHolder)pdr;
+            } else if (recordType == RecordTypes.UserEditAtom.typeID) {
+                saveme = RecordTypes.UserEditAtom;
+                usr = (UserEditAtom)pdr;
+            }
+            if (interestingRecords != null && saveme != null) {
+                interestingRecords.put(saveme,pdr);
+            }
+            
+            // Dummy write out, so the position winds on properly
+            record.writeOut(cos);
+        }
+        
+        assert(usr != null && ptr != null);
+        
+        Map<Integer,Integer> persistIds = new HashMap<Integer,Integer>();
+        for (Map.Entry<Integer,Integer> entry : ptr.getSlideLocationsLookup().entrySet()) {
+            persistIds.put(oldToNewPositions.get(entry.getValue()), entry.getKey());
+        }
+        
+        HSLFSlideShowEncrypted encData = new HSLFSlideShowEncrypted(getDocumentEncryptionAtom());
+           
+           for (Record record : _records) {
+            assert(record instanceof PositionDependentRecord);
+            // We've already figured out their new location, and
+            // told them that
+            // Tell them of the positions of the other records though
+            PositionDependentRecord pdr = (PositionDependentRecord)record;
+            Integer persistId = persistIds.get(pdr.getLastOnDiskOffset());
+            if (persistId == null) persistId = 0;
+            
+            // For now, we're only handling PositionDependentRecord's that
+            // happen at the top level.
+            // In future, we'll need the handle them everywhere, but that's
+            // a bit trickier
+            pdr.updateOtherRecordReferences(oldToNewPositions);
+            
+            // Whatever happens, write out that record tree
+            if (os != null) {
+                record.writeOut(encData.encryptRecord(os, persistId, record));
+            }
+        }
+
+        // Update and write out the Current User atom
+        int oldLastUserEditAtomPos = (int)currentUser.getCurrentEditOffset();
+        Integer newLastUserEditAtomPos = oldToNewPositions.get(oldLastUserEditAtomPos);
+        if(usr == null || newLastUserEditAtomPos == null || usr.getLastOnDiskOffset() != newLastUserEditAtomPos) {
+            throw new HSLFException("Couldn't find the new location of the last UserEditAtom that used to be at " + oldLastUserEditAtomPos);
+        }
+        currentUser.setCurrentEditOffset(usr.getLastOnDiskOffset());
+       }
+
+    /**
+     * Writes out the slideshow file the is represented by an instance
+     *  of this class.
+     * It will write out the common OLE2 streams. If you require all
+     *  streams to be written out, pass in preserveNodes
+     * @param out The OutputStream to write to.
+     * @throws IOException If there is an unexpected IOException from
+     *           the passed in OutputStream
+     */
+    public void write(OutputStream out) throws IOException {
+        // Write out, but only the common streams
+        write(out,false);
+    }
+    /**
+     * Writes out the slideshow file the is represented by an instance
+     *  of this class.
+     * If you require all streams to be written out (eg Marcos, embeded
+     *  documents), then set preserveNodes to true
+     * @param out The OutputStream to write to.
+     * @param preserveNodes Should all OLE2 streams be written back out, or only the common ones?
+     * @throws IOException If there is an unexpected IOException from
+     *           the passed in OutputStream
+     */
+    public void write(OutputStream out, boolean preserveNodes) throws IOException {
+        // read properties and pictures, with old encryption settings where appropriate 
+        if(_pictures == null) {
+           readPictures();
+        }
+        getDocumentSummaryInformation();
+
+        // set new encryption settings
+        HSLFSlideShowEncrypted encryptedSS = new HSLFSlideShowEncrypted(getDocumentEncryptionAtom());
+        _records = encryptedSS.updateEncryptionRecord(_records);
+
+        // Get a new Filesystem to write into
+        POIFSFileSystem outFS = new POIFSFileSystem();
+
+        // The list of entries we've written out
+        List<String> writtenEntries = new ArrayList<String>(1);
+
+        // Write out the Property Streams
+        writeProperties(outFS, writtenEntries);
+        
+        BufAccessBAOS baos = new BufAccessBAOS();
+
+        // For position dependent records, hold where they were and now are
+        // As we go along, update, and hand over, to any Position Dependent
+        // records we happen across
+        updateAndWriteDependantRecords(baos, null);
+
+        // Update our cached copy of the bytes that make up the PPT stream
+        _docstream = new byte[baos.size()];
+        System.arraycopy(baos.getBuf(), 0, _docstream, 0, baos.size());
+
+        // Write the PPT stream into the POIFS layer
+        ByteArrayInputStream bais = new ByteArrayInputStream(_docstream);
+        outFS.createDocument(bais,"PowerPoint Document");
+        writtenEntries.add("PowerPoint Document");
+        
+        currentUser.setEncrypted(encryptedSS.getDocumentEncryptionAtom() != null);
+        currentUser.writeToFS(outFS);
+        writtenEntries.add("Current User");
+
+
+        if (_pictures.size() > 0) {
+            BufAccessBAOS pict = new BufAccessBAOS();
+            for (HSLFPictureData p : _pictures) {
+                int offset = pict.size();
+                p.write(pict);
+                encryptedSS.encryptPicture(pict.getBuf(), offset);
+            }
+            outFS.createDocument(
+                new ByteArrayInputStream(pict.getBuf(), 0, pict.size()), "Pictures"
+            );
+            writtenEntries.add("Pictures");
+        }
+
+        // If requested, write out any other streams we spot
+        if(preserveNodes) {
+            EntryUtils.copyNodes(directory.getFileSystem(), outFS, writtenEntries);
+        }
+
+        // Send the POIFSFileSystem object out to the underlying stream
+        outFS.writeFilesystem(out);
+    }
+
+    /** 
+     * For a given named property entry, either return it or null if
+     *  if it wasn't found
+     *  
+     *  @param setName The property to read
+     *  @return The value of the given property or null if it wasn't found.
+     */
+    protected PropertySet getPropertySet(String setName) {
+        DocumentEncryptionAtom dea = getDocumentEncryptionAtom();
+        return (dea == null)
+            ? super.getPropertySet(setName)
+            : super.getPropertySet(setName, dea.getEncryptionInfo());
+    }
+
+    /**
+     * Writes out the standard Documment Information Properties (HPSF)
+     * @param outFS the POIFSFileSystem to write the properties into
+     * @param writtenEntries a list of POIFS entries to add the property names too
+     * 
+     * @throws IOException if an error when writing to the 
+     *      {@link POIFSFileSystem} occurs
+     */
+    protected void writeProperties(POIFSFileSystem outFS, List<String> writtenEntries) throws IOException {
+        super.writeProperties(outFS, writtenEntries);
+        DocumentEncryptionAtom dea = getDocumentEncryptionAtom();
+        if (dea != null) {
+            CryptoAPIEncryptor enc = (CryptoAPIEncryptor)dea.getEncryptionInfo().getEncryptor();
+            try {
+                enc.getDataStream(outFS.getRoot()); // ignore OutputStream
+            } catch (IOException e) {
+                throw e;
+            } catch (GeneralSecurityException e) {
+                throw new IOException(e);
+            }
+        }
+    }
+    
+    /* ******************* adding methods follow ********************* */
+
+       /**
+        * Adds a new root level record, at the end, but before the last
+        *  PersistPtrIncrementalBlock.
+        */
+       public synchronized int appendRootLevelRecord(Record newRecord) {
+               int addedAt = -1;
+               Record[] r = new Record[_records.length+1];
+               boolean added = false;
+               for(int i=(_records.length-1); i>=0; i--) {
+                       if(added) {
+                               // Just copy over
+                               r[i] = _records[i];
+                       } else {
+                               r[(i+1)] = _records[i];
+                               if(_records[i] instanceof PersistPtrHolder) {
+                                       r[i] = newRecord;
+                                       added = true;
+                                       addedAt = i;
+                               }
+                       }
+               }
+               _records = r;
+               return addedAt;
+       }
+
+       /**
+        * Add a new picture to this presentation.
+     *
+     * @return offset of this picture in the Pictures stream
+        */
+       public int addPicture(HSLFPictureData img) {
+          // Process any existing pictures if we haven't yet
+          if(_pictures == null) {
+         try {
+            readPictures();
+         } catch(IOException e) {
+            throw new CorruptPowerPointFileException(e.getMessage());
+         }
+          }
+          
+          // Add the new picture in
+      int offset = 0;
+          if(_pictures.size() > 0) {
+             HSLFPictureData prev = _pictures.get(_pictures.size() - 1);
+             offset = prev.getOffset() + prev.getRawData().length + 8;
+          }
+          img.setOffset(offset);
+          _pictures.add(img);
+          return offset;
+   }
+
+       /* ******************* fetching methods follow ********************* */
+
+
+       /**
+        * Returns an array of all the records found in the slideshow
+        */
+       public Record[] getRecords() { return _records; }
+
+       /**
+        * Returns an array of the bytes of the file. Only correct after a
+        *  call to open or write - at all other times might be wrong!
+        */
+       public byte[] getUnderlyingBytes() { return _docstream; }
+
+       /**
+        * Fetch the Current User Atom of the document
+        */
+       public CurrentUserAtom getCurrentUserAtom() { return currentUser; }
+
+       /**
+        *  Return array of pictures contained in this presentation
+        *
+        *  @return array with the read pictures or <code>null</code> if the
+        *  presentation doesn't contain pictures.
+        */
+       public HSLFPictureData[] getPictures() {
+          if(_pictures == null) {
+             try {
+                readPictures();
+             } catch(IOException e) {
+                throw new CorruptPowerPointFileException(e.getMessage());
+             }
+          }
+          
+               return _pictures.toArray(new HSLFPictureData[_pictures.size()]);
+       }
+
+    /**
+     * Gets embedded object data from the slide show.
+     *
+     * @return the embedded objects.
+     */
+    public HSLFObjectData[] getEmbeddedObjects() {
+        if (_objects == null) {
+            List<HSLFObjectData> objects = new ArrayList<HSLFObjectData>();
+            for (Record r : _records) {
+                if (r instanceof ExOleObjStg) {
+                    objects.add(new HSLFObjectData((ExOleObjStg)r));
+                }
+            }
+            _objects = objects.toArray(new HSLFObjectData[objects.size()]);
+        }
+        return _objects;
+    }
+    
+    
+    private static class BufAccessBAOS extends ByteArrayOutputStream {
+        public byte[] getBuf() {
+            return buf;
+        }
+    }
+    
+    private static class CountingOS extends OutputStream {
+        int count = 0;
+        public void write(int b) throws IOException {
+            count++;
+        }
+
+        public void write(byte[] b) throws IOException {
+            count += b.length;
+        }
+
+        public void write(byte[] b, int off, int len) throws IOException {
+            count += len;
+        }
+        
+        public int size() {
+            return count;
+        }
+    }
+}
diff --git a/src/scratchpad/src/org/apache/poi/hslf/model/HSLFTextBox.java b/src/scratchpad/src/org/apache/poi/hslf/model/HSLFTextBox.java
new file mode 100644 (file)
index 0000000..25ea585
--- /dev/null
@@ -0,0 +1,92 @@
+/* ====================================================================
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+==================================================================== */
+
+package org.apache.poi.hslf.model;
+
+import org.apache.poi.ddf.*;
+import org.apache.poi.sl.usermodel.ShapeContainer;
+import org.apache.poi.sl.usermodel.ShapeType;
+
+/**
+ * Represents a TextFrame shape in PowerPoint.
+ * <p>
+ * Contains the text in a text frame as well as the properties and methods
+ * that control alignment and anchoring of the text.
+ * </p>
+ *
+ * @author Yegor Kozlov
+ */
+public class HSLFTextBox extends HSLFTextShape {
+
+    /**
+     * Create a TextBox object and initialize it from the supplied Record container.
+     *
+     * @param escherRecord       <code>EscherSpContainer</code> container which holds information about this shape
+     * @param parent    the parent of the shape
+     */
+   protected HSLFTextBox(EscherContainerRecord escherRecord, ShapeContainer<HSLFShape> parent){
+        super(escherRecord, parent);
+
+    }
+
+    /**
+     * Create a new TextBox. This constructor is used when a new shape is created.
+     *
+     * @param parent    the parent of this Shape. For example, if this text box is a cell
+     * in a table then the parent is Table.
+     */
+    public HSLFTextBox(ShapeContainer<HSLFShape> parent){
+        super(parent);
+    }
+
+    /**
+     * Create a new TextBox. This constructor is used when a new shape is created.
+     *
+     */
+    public HSLFTextBox(){
+        this(null);
+    }
+
+    /**
+     * Create a new TextBox and initialize its internal structures
+     *
+     * @return the created <code>EscherContainerRecord</code> which holds shape data
+     */
+    protected EscherContainerRecord createSpContainer(boolean isChild){
+        _escherContainer = super.createSpContainer(isChild);
+
+        setShapeType(ShapeType.TEXT_BOX);
+
+        //set default properties for a TextBox
+        setEscherProperty(EscherProperties.FILL__FILLCOLOR, 0x8000004);
+        setEscherProperty(EscherProperties.FILL__FILLBACKCOLOR, 0x8000000);
+        setEscherProperty(EscherProperties.FILL__NOFILLHITTEST, 0x100000);
+        setEscherProperty(EscherProperties.LINESTYLE__COLOR, 0x8000001);
+        setEscherProperty(EscherProperties.LINESTYLE__NOLINEDRAWDASH, 0x80000);
+        setEscherProperty(EscherProperties.SHADOWSTYLE__COLOR, 0x8000002);
+
+        _txtrun = createTextRun();
+
+        return _escherContainer;
+    }
+
+    protected void setDefaultTextProperties(HSLFTextParagraph _txtrun){
+        setVerticalAlignment(HSLFTextBox.AnchorTop);
+        setEscherProperty(EscherProperties.TEXT__SIZE_TEXT_TO_FIT_SHAPE, 0x20002);
+    }
+
+}
diff --git a/src/scratchpad/src/org/apache/poi/hslf/model/HSLFTextParagraph.java b/src/scratchpad/src/org/apache/poi/hslf/model/HSLFTextParagraph.java
new file mode 100644 (file)
index 0000000..b23c997
--- /dev/null
@@ -0,0 +1,744 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.hslf.model;\r
+\r
+import java.util.ArrayList;\r
+import java.util.LinkedList;\r
+import java.util.List;\r
+\r
+import org.apache.poi.hslf.model.textproperties.TextPropCollection;\r
+import org.apache.poi.hslf.record.PPDrawing;\r
+import org.apache.poi.hslf.record.Record;\r
+import org.apache.poi.hslf.record.RecordContainer;\r
+import org.apache.poi.hslf.record.SlideListWithText;\r
+import org.apache.poi.hslf.record.StyleTextProp9Atom;\r
+import org.apache.poi.hslf.record.StyleTextPropAtom;\r
+import org.apache.poi.hslf.record.TextBytesAtom;\r
+import org.apache.poi.hslf.record.TextCharsAtom;\r
+import org.apache.poi.hslf.record.TextHeaderAtom;\r
+import org.apache.poi.hslf.record.TextRulerAtom;\r
+import org.apache.poi.hslf.record.TextSpecInfoAtom;\r
+import org.apache.poi.hslf.usermodel.HSLFTextRun;\r
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;\r
+import org.apache.poi.sl.usermodel.TextParagraph;\r
+import org.apache.poi.util.StringUtil;\r
+\r
+/**\r
+ * This class represents a run of text in a powerpoint document. That\r
+ *  run could be text on a sheet, or text in a note.\r
+ *  It is only a very basic class for now\r
+ *\r
+ * @author Nick Burch\r
+ */\r
+\r
+public final class HSLFTextParagraph implements TextParagraph<HSLFTextRun>\r
+{\r
+       // Note: These fields are protected to help with unit testing\r
+       //   Other classes shouldn't really go playing with them!\r
+       protected TextHeaderAtom _headerAtom;\r
+       protected TextBytesAtom  _byteAtom;\r
+       protected TextCharsAtom  _charAtom;\r
+       protected StyleTextPropAtom _styleAtom;\r
+    protected TextRulerAtom _ruler;\r
+    protected boolean _isUnicode;\r
+       protected HSLFTextRun[] _rtRuns;\r
+       protected HSLFTextShape _parentShape;\r
+       // private SlideShow slideShow;\r
+    private HSLFSheet _sheet;\r
+    private int shapeId;\r
+    private int slwtIndex = -1; //position in the owning SlideListWithText\r
+    /**\r
+     * all text run records that follow TextHeaderAtom.\r
+     * (there can be misc InteractiveInfo, TxInteractiveInfo and other records)\r
+     */\r
+    protected Record[] _records;\r
+       // private StyleTextPropAtom styleTextPropAtom;\r
+       private StyleTextProp9Atom styleTextProp9Atom;\r
+\r
+       /**\r
+       * Constructs a Text Run from a Unicode text block\r
+       *\r
+       * @param tha the TextHeaderAtom that defines what's what\r
+       * @param tca the TextCharsAtom containing the text\r
+       * @param sta the StyleTextPropAtom which defines the character stylings\r
+       */\r
+       public HSLFTextParagraph(TextHeaderAtom tha, TextCharsAtom tca, StyleTextPropAtom sta) {\r
+               this(tha,null,tca,sta);\r
+       }\r
+\r
+       /**\r
+       * Constructs a Text Run from a Ascii text block\r
+       *\r
+       * @param tha the TextHeaderAtom that defines what's what\r
+       * @param tba the TextBytesAtom containing the text\r
+       * @param sta the StyleTextPropAtom which defines the character stylings\r
+       */\r
+       public HSLFTextParagraph(TextHeaderAtom tha, TextBytesAtom tba, StyleTextPropAtom sta) {\r
+               this(tha,tba,null,sta);\r
+       }\r
+\r
+       /**\r
+        * Internal constructor and initializer\r
+        */\r
+       private HSLFTextParagraph(TextHeaderAtom tha, TextBytesAtom tba, TextCharsAtom tca, StyleTextPropAtom sta) {\r
+               _headerAtom = tha;\r
+               _styleAtom = sta;\r
+               if(tba != null) {\r
+                       _byteAtom = tba;\r
+                       _isUnicode = false;\r
+               } else {\r
+                       _charAtom = tca;\r
+                       _isUnicode = true;\r
+               }\r
+               String runRawText = getText();\r
+\r
+               // Figure out the rich text runs\r
+               LinkedList<TextPropCollection> pStyles = new LinkedList<TextPropCollection>();\r
+               LinkedList<TextPropCollection> cStyles = new LinkedList<TextPropCollection>();\r
+               if(_styleAtom != null) {\r
+                       // Get the style atom to grok itself\r
+                       _styleAtom.setParentTextSize(runRawText.length());\r
+                       pStyles = _styleAtom.getParagraphStyles();\r
+                       cStyles = _styleAtom.getCharacterStyles();\r
+               }\r
+        buildRichTextRuns(pStyles, cStyles, runRawText);\r
+       }\r
+\r
+       public void buildRichTextRuns(LinkedList<TextPropCollection> pStyles, LinkedList<TextPropCollection> cStyles, String runRawText){\r
+\r
+        // Handle case of no current style, with a default\r
+        if(pStyles.size() == 0 || cStyles.size() == 0) {\r
+            _rtRuns = new HSLFTextRun[1];\r
+            _rtRuns[0] = new HSLFTextRun(this, 0, runRawText.length());\r
+        } else {\r
+            // Build up Rich Text Runs, one for each\r
+            //  character/paragraph style pair\r
+            List<HSLFTextRun> rtrs = new ArrayList<HSLFTextRun>();\r
+\r
+            int pos = 0;\r
+\r
+            int curP = 0;\r
+            int curC = 0;\r
+            int pLenRemain = -1;\r
+            int cLenRemain = -1;\r
+\r
+            // Build one for each run with the same style\r
+            while(pos <= runRawText.length() && curP < pStyles.size() && curC < cStyles.size()) {\r
+                // Get the Props to use\r
+                TextPropCollection pProps = pStyles.get(curP);\r
+                TextPropCollection cProps = cStyles.get(curC);\r
+\r
+                int pLen = pProps.getCharactersCovered();\r
+                int cLen = cProps.getCharactersCovered();\r
+\r
+                // Handle new pass\r
+                boolean freshSet = false;\r
+                if(pLenRemain == -1 && cLenRemain == -1) { freshSet = true; }\r
+                if(pLenRemain == -1) { pLenRemain = pLen; }\r
+                if(cLenRemain == -1) { cLenRemain = cLen; }\r
+\r
+                // So we know how to build the eventual run\r
+                int runLen = -1;\r
+                boolean pShared = false;\r
+                boolean cShared = false;\r
+\r
+                // Same size, new styles - neither shared\r
+                if(pLen == cLen && freshSet) {\r
+                    runLen = cLen;\r
+                    pShared = false;\r
+                    cShared = false;\r
+                    curP++;\r
+                    curC++;\r
+                    pLenRemain = -1;\r
+                    cLenRemain = -1;\r
+                } else {\r
+                    // Some sharing\r
+\r
+                    // See if we are already in a shared block\r
+                    if(pLenRemain < pLen) {\r
+                        // Existing shared p block\r
+                        pShared = true;\r
+\r
+                        // Do we end with the c block, or either side of it?\r
+                        if(pLenRemain == cLenRemain) {\r
+                            // We end at the same time\r
+                            cShared = false;\r
+                            runLen = pLenRemain;\r
+                            curP++;\r
+                            curC++;\r
+                            pLenRemain = -1;\r
+                            cLenRemain = -1;\r
+                        } else if(pLenRemain < cLenRemain) {\r
+                            // We end before the c block\r
+                            cShared = true;\r
+                            runLen = pLenRemain;\r
+                            curP++;\r
+                            cLenRemain -= pLenRemain;\r
+                            pLenRemain = -1;\r
+                        } else {\r
+                            // We end after the c block\r
+                            cShared = false;\r
+                            runLen = cLenRemain;\r
+                            curC++;\r
+                            pLenRemain -= cLenRemain;\r
+                            cLenRemain = -1;\r
+                        }\r
+                    } else if(cLenRemain < cLen) {\r
+                        // Existing shared c block\r
+                        cShared = true;\r
+\r
+                        // Do we end with the p block, or either side of it?\r
+                        if(pLenRemain == cLenRemain) {\r
+                            // We end at the same time\r
+                            pShared = false;\r
+                            runLen = cLenRemain;\r
+                            curP++;\r
+                            curC++;\r
+                            pLenRemain = -1;\r
+                            cLenRemain = -1;\r
+                        } else if(cLenRemain < pLenRemain) {\r
+                            // We end before the p block\r
+                            pShared = true;\r
+                            runLen = cLenRemain;\r
+                            curC++;\r
+                            pLenRemain -= cLenRemain;\r
+                            cLenRemain = -1;\r
+                        } else {\r
+                            // We end after the p block\r
+                            pShared = false;\r
+                            runLen = pLenRemain;\r
+                            curP++;\r
+                            cLenRemain -= pLenRemain;\r
+                            pLenRemain = -1;\r
+                        }\r
+                    } else {\r
+                        // Start of a shared block\r
+                        if(pLenRemain < cLenRemain) {\r
+                            // Shared c block\r
+                            pShared = false;\r
+                            cShared = true;\r
+                            runLen = pLenRemain;\r
+                            curP++;\r
+                            cLenRemain -= pLenRemain;\r
+                            pLenRemain = -1;\r
+                        } else {\r
+                            // Shared p block\r
+                            pShared = true;\r
+                            cShared = false;\r
+                            runLen = cLenRemain;\r
+                            curC++;\r
+                            pLenRemain -= cLenRemain;\r
+                            cLenRemain = -1;\r
+                        }\r
+                    }\r
+                }\r
+\r
+                // Wind on\r
+                int prevPos = pos;\r
+                pos += runLen;\r
+                // Adjust for end-of-run extra 1 length\r
+                if(pos > runRawText.length()) {\r
+                    runLen--;\r
+                }\r
+\r
+                // Save\r
+                HSLFTextRun rtr = new HSLFTextRun(this, prevPos, runLen, pProps, cProps, pShared, cShared);\r
+                rtrs.add(rtr);\r
+            }\r
+\r
+            // Build the array\r
+            _rtRuns = rtrs.toArray(new HSLFTextRun[rtrs.size()]);\r
+        }\r
+\r
+    }\r
+\r
+    // Update methods follow\r
+\r
+       /**\r
+        * Adds the supplied text onto the end of the TextRun,\r
+        *  creating a new RichTextRun (returned) for it to\r
+        *  sit in.\r
+        * In many cases, before calling this, you'll want to add\r
+        *  a newline onto the end of your last RichTextRun\r
+        */\r
+       public HSLFTextRun appendText(String s) {\r
+               // We will need a StyleTextProp atom\r
+               ensureStyleAtomPresent();\r
+\r
+               // First up, append the text to the\r
+               //  underlying text atom\r
+               int oldSize = getRawText().length();\r
+               storeText(\r
+                               getRawText() + s\r
+               );\r
+\r
+               // If either of the previous styles overran\r
+               //  the text by one, we need to shuffle that\r
+               //  extra character onto the new ones\r
+               int pOverRun = _styleAtom.getParagraphTextLengthCovered() - oldSize;\r
+               int cOverRun = _styleAtom.getCharacterTextLengthCovered() - oldSize;\r
+               if(pOverRun > 0) {\r
+                       TextPropCollection tpc = _styleAtom.getParagraphStyles().getLast();\r
+                       tpc.updateTextSize(\r
+                                       tpc.getCharactersCovered() - pOverRun\r
+                       );\r
+               }\r
+               if(cOverRun > 0) {\r
+                       TextPropCollection tpc = _styleAtom.getCharacterStyles().getLast();\r
+                       tpc.updateTextSize(\r
+                                       tpc.getCharactersCovered() - cOverRun\r
+                       );\r
+               }\r
+\r
+               // Next, add the styles for its paragraph and characters\r
+               TextPropCollection newPTP =\r
+                       _styleAtom.addParagraphTextPropCollection(s.length()+pOverRun);\r
+               TextPropCollection newCTP =\r
+                       _styleAtom.addCharacterTextPropCollection(s.length()+cOverRun);\r
+\r
+               // Now, create the new RichTextRun\r
+               HSLFTextRun nr = new HSLFTextRun(\r
+                               this, oldSize, s.length(),\r
+                               newPTP, newCTP, false, false\r
+               );\r
+\r
+               // Add the new RichTextRun onto our list\r
+               HSLFTextRun[] newRuns = new HSLFTextRun[_rtRuns.length+1];\r
+               System.arraycopy(_rtRuns, 0, newRuns, 0, _rtRuns.length);\r
+               newRuns[newRuns.length-1] = nr;\r
+               _rtRuns = newRuns;\r
+\r
+               // And return the new run to the caller\r
+               return nr;\r
+       }\r
+\r
+       /**\r
+        * Saves the given string to the records. Doesn't\r
+        *  touch the stylings.\r
+        */\r
+       private void storeText(String s) {\r
+               // Store in the appropriate record\r
+               if(_isUnicode) {\r
+                       // The atom can safely convert to unicode\r
+                       _charAtom.setText(s);\r
+               } else {\r
+                       // Will it fit in a 8 bit atom?\r
+                       boolean hasMultibyte = StringUtil.hasMultibyte(s);\r
+                       if(! hasMultibyte) {\r
+                               // Fine to go into 8 bit atom\r
+                               byte[] text = new byte[s.length()];\r
+                               StringUtil.putCompressedUnicode(s,text,0);\r
+                               _byteAtom.setText(text);\r
+                       } else {\r
+                               // Need to swap a TextBytesAtom for a TextCharsAtom\r
+\r
+                               // Build the new TextCharsAtom\r
+                               _charAtom = new TextCharsAtom();\r
+                               _charAtom.setText(s);\r
+\r
+                               // Use the TextHeaderAtom to do the swap on the parent\r
+                               RecordContainer parent = _headerAtom.getParentRecord();\r
+                               Record[] cr = parent.getChildRecords();\r
+                               for(int i=0; i<cr.length; i++) {\r
+                                       // Look for TextBytesAtom\r
+                                       if(cr[i].equals(_byteAtom)) {\r
+                                               // Found it, so replace, then all done\r
+                                               cr[i] = _charAtom;\r
+                                               break;\r
+                                       }\r
+                               }\r
+\r
+                               // Flag the change\r
+                               _byteAtom = null;\r
+                               _isUnicode = true;\r
+                       }\r
+               }\r
+        /**\r
+         * If TextSpecInfoAtom is present, we must update the text size in it,\r
+         * otherwise the ppt will be corrupted\r
+         */\r
+        if(_records != null) for (int i = 0; i < _records.length; i++) {\r
+            if(_records[i] instanceof TextSpecInfoAtom){\r
+                TextSpecInfoAtom specAtom = (TextSpecInfoAtom)_records[i];\r
+                if((s.length() + 1) != specAtom.getCharactersCovered()){\r
+                    specAtom.reset(s.length() + 1);\r
+                }\r
+            }\r
+        }\r
+       }\r
+\r
+       /**\r
+        * Handles an update to the text stored in one of the Rich Text Runs\r
+        * @param run\r
+        * @param s\r
+        */\r
+       public void changeTextInRichTextRun(HSLFTextRun run, String s) {\r
+               // Figure out which run it is\r
+               int runID = -1;\r
+               for(int i=0; i<_rtRuns.length; i++) {\r
+                       if(run.equals(_rtRuns[i])) {\r
+                               runID = i;\r
+                       }\r
+               }\r
+               if(runID == -1) {\r
+                       throw new IllegalArgumentException("Supplied RichTextRun wasn't from this TextRun");\r
+               }\r
+\r
+               // Ensure a StyleTextPropAtom is present, adding if required\r
+               ensureStyleAtomPresent();\r
+\r
+               // Update the text length for its Paragraph and Character stylings\r
+               // If it's shared:\r
+               //   * calculate the new length based on the run's old text\r
+               //   * this should leave in any +1's for the end of block if needed\r
+               // If it isn't shared:\r
+               //   * reset the length, to the new string's length\r
+               //   * add on +1 if the last block\r
+               // The last run needs its stylings to be 1 longer than the raw\r
+               //  text is. This is to define the stylings that any new text\r
+               //  that is added will inherit\r
+               TextPropCollection pCol = run._getRawParagraphStyle();\r
+               TextPropCollection cCol = run._getRawCharacterStyle();\r
+               int newSize = s.length();\r
+               if(runID == _rtRuns.length-1) {\r
+                       newSize++;\r
+               }\r
+\r
+               if(run._isParagraphStyleShared()) {\r
+                       pCol.updateTextSize( pCol.getCharactersCovered() - run.getLength() + s.length() );\r
+               } else {\r
+                       pCol.updateTextSize(newSize);\r
+               }\r
+               if(run._isCharacterStyleShared()) {\r
+                       cCol.updateTextSize( cCol.getCharactersCovered() - run.getLength() + s.length() );\r
+               } else {\r
+                       cCol.updateTextSize(newSize);\r
+               }\r
+\r
+               // Build up the new text\r
+               // As we go through, update the start position for all subsequent runs\r
+               // The building relies on the old text still being present\r
+               StringBuffer newText = new StringBuffer();\r
+               for(int i=0; i<_rtRuns.length; i++) {\r
+                       int newStartPos = newText.length();\r
+\r
+                       // Build up the new text\r
+                       if(i != runID) {\r
+                               // Not the affected run, so keep old text\r
+                               newText.append(_rtRuns[i].getRawText());\r
+                       } else {\r
+                               // Affected run, so use new text\r
+                               newText.append(s);\r
+                       }\r
+\r
+                       // Do we need to update the start position of this run?\r
+                       // (Need to get the text before we update the start pos)\r
+                       if(i <= runID) {\r
+                               // Change is after this, so don't need to change start position\r
+                       } else {\r
+                               // Change has occured, so update start position\r
+                               _rtRuns[i].updateStartPosition(newStartPos);\r
+                       }\r
+               }\r
+\r
+               // Now we can save the new text\r
+               storeText(newText.toString());\r
+       }\r
+\r
+       /**\r
+        * Changes the text, and sets it all to have the same styling\r
+        *  as the the first character has.\r
+        * If you care about styling, do setText on a RichTextRun instead\r
+        */\r
+       public void setRawText(String s) {\r
+               // Save the new text to the atoms\r
+               storeText(s);\r
+               HSLFTextRun fst = _rtRuns[0];\r
+\r
+               // Finally, zap and re-do the RichTextRuns\r
+               for(int i=0; i<_rtRuns.length; i++) { _rtRuns[i] = null; }\r
+               _rtRuns = new HSLFTextRun[1];\r
+        _rtRuns[0] = fst;\r
+\r
+               // Now handle record stylings:\r
+               // If there isn't styling\r
+               //  no change, stays with no styling\r
+               // If there is styling:\r
+               //  everthing gets the same style that the first block has\r
+        // Update the lengths +1 for since these will be the only runs\r
+               if(_styleAtom != null) {\r
+                       LinkedList<TextPropCollection> pStyles = _styleAtom.getParagraphStyles();\r
+                       while(pStyles.size() > 1) { pStyles.removeLast(); }\r
+\r
+            if (!pStyles.isEmpty()) {\r
+                pStyles.getFirst().updateTextSize( s.length()+1 );\r
+            }\r
+\r
+                       LinkedList<TextPropCollection> cStyles = _styleAtom.getCharacterStyles();\r
+                       while(cStyles.size() > 1) { cStyles.removeLast(); }\r
+            \r
+            if (!cStyles.isEmpty()) {\r
+                cStyles.getFirst().updateTextSize( s.length()+1 );\r
+            }\r
+                       \r
+                       _rtRuns[0].setText(s);\r
+               } else {\r
+                       // Recreate rich text run with no styling\r
+                       _rtRuns[0] = new HSLFTextRun(this,0,s.length());\r
+               }\r
+\r
+       }\r
+\r
+    /**\r
+     * Changes the text.\r
+     * Converts '\r' into '\n'\r
+     */\r
+    public void setText(String s) {\r
+        String text = normalize(s);\r
+        setRawText(text);\r
+    }\r
+\r
+    /**\r
+        * Ensure a StyleTextPropAtom is present for this run,\r
+        *  by adding if required. Normally for internal TextRun use.\r
+        */\r
+       public void ensureStyleAtomPresent() {\r
+               if(_styleAtom != null) {\r
+                       // All there\r
+                       return;\r
+               }\r
+\r
+               // Create a new one at the right size\r
+               _styleAtom = new StyleTextPropAtom(getRawText().length() + 1);\r
+\r
+               // Use the TextHeader atom to get at the parent\r
+               RecordContainer runAtomsParent = _headerAtom.getParentRecord();\r
+\r
+               // Add the new StyleTextPropAtom after the TextCharsAtom / TextBytesAtom\r
+               Record addAfter = _byteAtom;\r
+               if(_byteAtom == null) { addAfter = _charAtom; }\r
+               runAtomsParent.addChildAfter(_styleAtom, addAfter);\r
+\r
+               // Feed this to our sole rich text run\r
+               if(_rtRuns.length != 1) {\r
+                       throw new IllegalStateException("Needed to add StyleTextPropAtom when had many rich text runs");\r
+               }\r
+               // These are the only styles for now\r
+               _rtRuns[0].supplyTextProps(\r
+                               _styleAtom.getParagraphStyles().get(0),\r
+                               _styleAtom.getCharacterStyles().get(0),\r
+                               false,\r
+                               false\r
+               );\r
+       }\r
+\r
+       // Accesser methods follow\r
+\r
+       /**\r
+        * Returns the text content of the run, which has been made safe\r
+        * for printing and other use.\r
+        */\r
+       public String getText() {\r
+               String rawText = getRawText();\r
+\r
+               // PowerPoint seems to store files with \r as the line break\r
+               // The messes things up on everything but a Mac, so translate\r
+               //  them to \n\r
+               String text = rawText.replace('\r','\n');\r
+\r
+        int type = _headerAtom == null ? 0 : _headerAtom.getTextType();\r
+        if(type == TextHeaderAtom.TITLE_TYPE || type == TextHeaderAtom.CENTER_TITLE_TYPE){\r
+            //0xB acts like cariage return in page titles and like blank in the others\r
+            text = text.replace((char) 0x0B, '\n');\r
+        } else {\r
+            text = text.replace((char) 0x0B, ' ');\r
+        }\r
+               return text;\r
+       }\r
+\r
+       /**\r
+       * Returns the raw text content of the run. This hasn't had any\r
+       *  changes applied to it, and so is probably unlikely to print\r
+       *  out nicely.\r
+       */\r
+       public String getRawText() {\r
+               if(_isUnicode) {\r
+                       return _charAtom.getText();\r
+               }\r
+               return _byteAtom.getText();\r
+       }\r
+\r
+       /**\r
+        * Fetch the rich text runs (runs of text with the same styling) that\r
+        *  are contained within this block of text\r
+        */\r
+       public HSLFTextRun[] getRichTextRuns() {\r
+               return  _rtRuns;\r
+       }\r
+\r
+       /**\r
+       * Returns the type of the text, from the TextHeaderAtom.\r
+       * Possible values can be seen from TextHeaderAtom\r
+       * @see org.apache.poi.hslf.record.TextHeaderAtom\r
+       */\r
+       public int getRunType() {\r
+               return _headerAtom.getTextType();\r
+       }\r
+\r
+       /**\r
+       * Changes the type of the text. Values should be taken\r
+       *  from TextHeaderAtom. No checking is done to ensure you\r
+       *  set this to a valid value!\r
+       * @see org.apache.poi.hslf.record.TextHeaderAtom\r
+       */\r
+       public void setRunType(int type) {\r
+               _headerAtom.setTextType(type);\r
+       }\r
+\r
+    /**\r
+     * Supply the Sheet we belong to, which might have an assigned SlideShow\r
+     * Also passes it on to our child RichTextRuns\r
+     */\r
+       public void supplySheet(HSLFSheet sheet){\r
+        this._sheet = sheet;\r
+\r
+        if (_rtRuns == null) return;\r
+        for(HSLFTextRun rt : _rtRuns) {\r
+            rt.updateSheet();\r
+        }\r
+       }\r
+\r
+    public HSLFSheet getSheet(){\r
+        return this._sheet;\r
+    }\r
+\r
+    /**\r
+     * @return  Shape ID\r
+     */\r
+    protected int getShapeId(){\r
+        return shapeId;\r
+    }\r
+\r
+    /**\r
+     *  @param id Shape ID\r
+     */\r
+    protected void setShapeId(int id){\r
+        shapeId = id;\r
+    }\r
+\r
+    /**\r
+     * @return  0-based index of the text run in the SLWT container\r
+     */\r
+    protected int getIndex(){\r
+        return slwtIndex;\r
+    }\r
+\r
+    /**\r
+     *  @param id 0-based index of the text run in the SLWT container\r
+     */\r
+    protected void setIndex(int id){\r
+        slwtIndex = id;\r
+    }\r
+    \r
+    /**\r
+     * Is this Text Run one from a {@link PPDrawing}, or is it\r
+     *  one from the {@link SlideListWithText}?\r
+     */\r
+    public boolean isDrawingBased() {\r
+        return (slwtIndex == -1);\r
+    }\r
+\r
+    /**\r
+     * Returns the array of all hyperlinks in this text run\r
+     *\r
+     * @return the array of all hyperlinks in this text run\r
+     * or <code>null</code> if not found.\r
+     */\r
+    public Hyperlink[] getHyperlinks(){\r
+        return Hyperlink.find(this);\r
+    }\r
+\r
+    /**\r
+     * Fetch RichTextRun at a given position\r
+     *\r
+     * @param pos 0-based index in the text\r
+     * @return RichTextRun or null if not found\r
+     */\r
+    public HSLFTextRun getRichTextRunAt(int pos){\r
+        for (int i = 0; i < _rtRuns.length; i++) {\r
+            int start = _rtRuns[i].getStartIndex();\r
+            int end = _rtRuns[i].getEndIndex();\r
+            if(pos >= start && pos < end) return _rtRuns[i];\r
+        }\r
+        return null;\r
+    }\r
+\r
+    public TextRulerAtom getTextRuler(){\r
+        if(_ruler == null){\r
+            if(_records != null) for (int i = 0; i < _records.length; i++) {\r
+                if(_records[i] instanceof TextRulerAtom) {\r
+                    _ruler = (TextRulerAtom)_records[i];\r
+                    break;\r
+                }\r
+            }\r
+\r
+        }\r
+        return _ruler;\r
+\r
+    }\r
+\r
+    public TextRulerAtom createTextRuler(){\r
+        _ruler = getTextRuler();\r
+        if(_ruler == null){\r
+            _ruler = TextRulerAtom.getParagraphInstance();\r
+            _headerAtom.getParentRecord().appendChildRecord(_ruler);\r
+        }\r
+        return _ruler;\r
+    }\r
+\r
+    /**\r
+     * Returns a new string with line breaks converted into internal ppt representation\r
+     */\r
+    public String normalize(String s){\r
+        String ns = s.replaceAll("\\r?\\n", "\r");\r
+        return ns;\r
+    }\r
+\r
+    /**\r
+     * Returns records that make up this text run\r
+     *\r
+     * @return text run records\r
+     */\r
+    public Record[] getRecords(){\r
+        return _records;\r
+    }\r
+    /** Numbered List info */\r
+       public void setStyleTextProp9Atom(final StyleTextProp9Atom styleTextProp9Atom) {\r
+               this.styleTextProp9Atom = styleTextProp9Atom;\r
+       }\r
+    /** Numbered List info */\r
+       public StyleTextProp9Atom getStyleTextProp9Atom() {\r
+               return this.styleTextProp9Atom;\r
+       }\r
+\r
+    /** Characters covered */\r
+       public StyleTextPropAtom getStyleTextPropAtom() {\r
+               return this._styleAtom;         \r
+       }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/hslf/model/HSLFTextShape.java b/src/scratchpad/src/org/apache/poi/hslf/model/HSLFTextShape.java
new file mode 100644 (file)
index 0000000..17e8b81
--- /dev/null
@@ -0,0 +1,639 @@
+/* ====================================================================
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+==================================================================== */
+
+package org.apache.poi.hslf.model;
+
+import java.awt.Font;
+import java.awt.Graphics2D;
+import java.awt.Rectangle;
+import java.awt.font.FontRenderContext;
+import java.awt.font.TextLayout;
+import java.awt.geom.AffineTransform;
+import java.awt.geom.Rectangle2D;
+import java.io.IOException;
+
+import org.apache.poi.ddf.EscherContainerRecord;
+import org.apache.poi.ddf.EscherOptRecord;
+import org.apache.poi.ddf.EscherProperties;
+import org.apache.poi.ddf.EscherSimpleProperty;
+import org.apache.poi.ddf.EscherSpRecord;
+import org.apache.poi.ddf.EscherTextboxRecord;
+import org.apache.poi.hslf.exceptions.HSLFException;
+import org.apache.poi.hslf.record.EscherTextboxWrapper;
+import org.apache.poi.hslf.record.InteractiveInfo;
+import org.apache.poi.hslf.record.InteractiveInfoAtom;
+import org.apache.poi.hslf.record.OEPlaceholderAtom;
+import org.apache.poi.hslf.record.OutlineTextRefAtom;
+import org.apache.poi.hslf.record.PPDrawing;
+import org.apache.poi.hslf.record.Record;
+import org.apache.poi.hslf.record.RecordTypes;
+import org.apache.poi.hslf.record.RoundTripHFPlaceholder12;
+import org.apache.poi.hslf.record.StyleTextPropAtom;
+import org.apache.poi.hslf.record.TextBytesAtom;
+import org.apache.poi.hslf.record.TextCharsAtom;
+import org.apache.poi.hslf.record.TextHeaderAtom;
+import org.apache.poi.hslf.record.TxInteractiveInfoAtom;
+import org.apache.poi.hslf.usermodel.HSLFTextRun;
+import org.apache.poi.sl.usermodel.ShapeContainer;
+import org.apache.poi.util.POILogger;
+
+/**
+ * A common superclass of all shapes that can hold text.
+ *
+ * @author Yegor Kozlov
+ */
+public abstract class HSLFTextShape extends HSLFSimpleShape {
+
+    /**
+     * How to anchor the text
+     */
+    public static final int AnchorTop = 0;
+    public static final int AnchorMiddle = 1;
+    public static final int AnchorBottom = 2;
+    public static final int AnchorTopCentered = 3;
+    public static final int AnchorMiddleCentered = 4;
+    public static final int AnchorBottomCentered = 5;
+    public static final int AnchorTopBaseline = 6;
+    public static final int AnchorBottomBaseline = 7;
+    public static final int AnchorTopCenteredBaseline = 8;
+    public static final int AnchorBottomCenteredBaseline = 9;
+
+    /**
+     * How to wrap the text
+     */
+    public static final int WrapSquare = 0;
+    public static final int WrapByPoints = 1;
+    public static final int WrapNone = 2;
+    public static final int WrapTopBottom = 3;
+    public static final int WrapThrough = 4;
+
+    /**
+     * How to align the text
+     */
+    public static final int AlignLeft = 0;
+    public static final int AlignCenter = 1;
+    public static final int AlignRight = 2;
+    public static final int AlignJustify = 3;
+
+    /**
+     * TextRun object which holds actual text and format data
+     */
+    protected HSLFTextParagraph _txtrun;
+
+    /**
+     * Escher container which holds text attributes such as
+     * TextHeaderAtom, TextBytesAtom ot TextCharsAtom, StyleTextPropAtom etc.
+     */
+    protected EscherTextboxWrapper _txtbox;
+
+    /**
+     * Used to calculate text bounds
+     */
+    protected static final FontRenderContext _frc = new FontRenderContext(null, true, true);
+
+    /**
+     * Create a TextBox object and initialize it from the supplied Record container.
+     *
+     * @param escherRecord       <code>EscherSpContainer</code> container which holds information about this shape
+     * @param parent    the parent of the shape
+     */
+   protected HSLFTextShape(EscherContainerRecord escherRecord, ShapeContainer<HSLFShape> parent){
+        super(escherRecord, parent);
+
+    }
+
+    /**
+     * Create a new TextBox. This constructor is used when a new shape is created.
+     *
+     * @param parent    the parent of this Shape. For example, if this text box is a cell
+     * in a table then the parent is Table.
+     */
+    public HSLFTextShape(ShapeContainer<HSLFShape> parent){
+        super(null, parent);
+        _escherContainer = createSpContainer(parent instanceof HSLFGroupShape);
+    }
+
+    /**
+     * Create a new TextBox. This constructor is used when a new shape is created.
+     *
+     */
+    public HSLFTextShape(){
+        this(null);
+    }
+
+    public HSLFTextParagraph createTextRun(){
+        _txtbox = getEscherTextboxWrapper();
+        if(_txtbox == null) _txtbox = new EscherTextboxWrapper();
+
+        _txtrun = getTextParagraph();
+        if(_txtrun == null){
+            TextHeaderAtom tha = new TextHeaderAtom();
+            tha.setParentRecord(_txtbox);
+            _txtbox.appendChildRecord(tha);
+
+            TextCharsAtom tca = new TextCharsAtom();
+            _txtbox.appendChildRecord(tca);
+
+            StyleTextPropAtom sta = new StyleTextPropAtom(0);
+            _txtbox.appendChildRecord(sta);
+
+            _txtrun = new HSLFTextParagraph(tha,tca,sta);
+            _txtrun._records = new Record[]{tha, tca, sta};
+            _txtrun.setText("");
+
+            _escherContainer.addChildRecord(_txtbox.getEscherRecord());
+
+            setDefaultTextProperties(_txtrun);
+        }
+
+        return _txtrun;
+    }
+
+    /**
+     * Set default properties for the  TextRun.
+     * Depending on the text and shape type the defaults are different:
+     *   TextBox: align=left, valign=top
+     *   AutoShape: align=center, valign=middle
+     *
+     */
+    protected void setDefaultTextProperties(HSLFTextParagraph _txtrun){
+
+    }
+
+    /**
+     * Returns the text contained in this text frame.
+     *
+     * @return the text string for this textbox.
+     */
+     public String getText(){
+        HSLFTextParagraph tx = getTextParagraph();
+        return tx == null ? null : tx.getText();
+    }
+
+    /**
+     * Sets the text contained in this text frame.
+     *
+     * @param text the text string used by this object.
+     */
+    public void setText(String text){
+        HSLFTextParagraph tx = getTextParagraph();
+        if(tx == null){
+            tx = createTextRun();
+        }
+        tx.setText(text);
+        setTextId(text.hashCode());
+    }
+
+    /**
+     * When a textbox is added to  a sheet we need to tell upper-level
+     * <code>PPDrawing</code> about it.
+     *
+     * @param sh the sheet we are adding to
+     */
+    protected void afterInsert(HSLFSheet sh){
+        super.afterInsert(sh);
+
+        EscherTextboxWrapper _txtbox = getEscherTextboxWrapper();
+        if(_txtbox != null){
+            PPDrawing ppdrawing = sh.getPPDrawing();
+            ppdrawing.addTextboxWrapper(_txtbox);
+            // Ensure the escher layer knows about the added records
+            try {
+                _txtbox.writeOut(null);
+            } catch (IOException e){
+                throw new HSLFException(e);
+            }
+            if(getAnchor().equals(new Rectangle()) && !"".equals(getText())) resizeToFitText();
+        }
+        if(_txtrun != null) {
+            _txtrun.setShapeId(getShapeId());
+            sh.onAddTextShape(this);
+        }
+    }
+
+    protected EscherTextboxWrapper getEscherTextboxWrapper(){
+        if(_txtbox == null){
+            EscherTextboxRecord textRecord = getEscherChild(EscherTextboxRecord.RECORD_ID);
+            if(textRecord != null) _txtbox = new EscherTextboxWrapper(textRecord);
+        }
+        return _txtbox;
+    }
+    /**
+     * Adjust the size of the TextShape so it encompasses the text inside it.
+     *
+     * @return a <code>Rectangle2D</code> that is the bounds of this <code>TextShape</code>.
+     */
+    public Rectangle2D resizeToFitText(){
+        String txt = getText();
+        if(txt == null || txt.length() == 0) return new Rectangle2D.Float();
+
+        HSLFTextRun rt = getTextParagraph().getRichTextRuns()[0];
+        int size = rt.getFontSize();
+        int style = 0;
+        if (rt.isBold()) style |= Font.BOLD;
+        if (rt.isItalic()) style |= Font.ITALIC;
+        String fntname = rt.getFontName();
+        Font font = new Font(fntname, style, size);
+
+        float width = 0, height = 0, leading = 0;
+        String[] lines = txt.split("\n");
+        for (int i = 0; i < lines.length; i++) {
+            if(lines[i].length() == 0) continue;
+
+            TextLayout layout = new TextLayout(lines[i], font, _frc);
+
+            leading = Math.max(leading, layout.getLeading());
+            width = Math.max(width, layout.getAdvance());
+            height = Math.max(height, (height + (layout.getDescent() + layout.getAscent())));
+        }
+
+        // add one character to width
+        Rectangle2D charBounds = font.getMaxCharBounds(_frc);
+        width += getMarginLeft() + getMarginRight() + charBounds.getWidth();
+
+        // add leading to height
+        height += getMarginTop() + getMarginBottom() + leading;
+
+        Rectangle2D anchor = getAnchor2D();
+        anchor.setRect(anchor.getX(), anchor.getY(), width, height);
+        setAnchor(anchor);
+
+        return anchor;
+    }
+
+    /**
+     * Returns the type of vertical alignment for the text.
+     * One of the <code>Anchor*</code> constants defined in this class.
+     *
+     * @return the type of alignment
+     */
+    public int getVerticalAlignment(){
+        EscherOptRecord opt = getEscherOptRecord();
+        EscherSimpleProperty prop = getEscherProperty(opt, EscherProperties.TEXT__ANCHORTEXT);
+        int valign = HSLFTextShape.AnchorTop;
+        if (prop == null){
+            /**
+             * If vertical alignment was not found in the shape properties then try to
+             * fetch the master shape and search for the align property there.
+             */
+            int type = getTextParagraph().getRunType();
+            HSLFMasterSheet master = getSheet().getMasterSheet();
+            if(master != null){
+                HSLFTextShape masterShape = master.getPlaceholderByTextType(type);
+                if(masterShape != null) valign = masterShape.getVerticalAlignment();
+            } else {
+                //not found in the master sheet. Use the hardcoded defaults.
+                switch (type){
+                     case TextHeaderAtom.TITLE_TYPE:
+                     case TextHeaderAtom.CENTER_TITLE_TYPE:
+                         valign = HSLFTextShape.AnchorMiddle;
+                         break;
+                     default:
+                         valign = HSLFTextShape.AnchorTop;
+                         break;
+                 }
+            }
+        } else {
+            valign = prop.getPropertyValue();
+        }
+        return valign;
+    }
+
+    /**
+     * Sets the type of vertical alignment for the text.
+     * One of the <code>Anchor*</code> constants defined in this class.
+     *
+     * @param align - the type of alignment
+     */
+    public void setVerticalAlignment(int align){
+        setEscherProperty(EscherProperties.TEXT__ANCHORTEXT, align);
+    }
+
+    /**
+     * Sets the type of horizontal alignment for the text.
+     * One of the <code>Align*</code> constants defined in this class.
+     *
+     * @param align - the type of horizontal alignment
+     */
+    public void setHorizontalAlignment(int align){
+        HSLFTextParagraph tx = getTextParagraph();
+        if(tx != null) tx.getRichTextRuns()[0].setAlignment(align);
+    }
+
+    /**
+     * Gets the type of horizontal alignment for the text.
+     * One of the <code>Align*</code> constants defined in this class.
+     *
+     * @return align - the type of horizontal alignment
+     */
+    public int getHorizontalAlignment(){
+        HSLFTextParagraph tx = getTextParagraph();
+        return tx == null ? -1 : tx.getRichTextRuns()[0].getAlignment();
+    }
+
+    /**
+     * Returns the distance (in points) between the bottom of the text frame
+     * and the bottom of the inscribed rectangle of the shape that contains the text.
+     * Default value is 1/20 inch.
+     *
+     * @return the botom margin
+     */
+    public float getMarginBottom(){
+        EscherOptRecord opt = getEscherOptRecord();
+        EscherSimpleProperty prop = getEscherProperty(opt, EscherProperties.TEXT__TEXTBOTTOM);
+        int val = prop == null ? EMU_PER_INCH/20 : prop.getPropertyValue();
+        return (float)val/EMU_PER_POINT;
+    }
+
+    /**
+     * Sets the botom margin.
+     * @see #getMarginBottom()
+     *
+     * @param margin    the bottom margin
+     */
+    public void setMarginBottom(float margin){
+        setEscherProperty(EscherProperties.TEXT__TEXTBOTTOM, (int)(margin*EMU_PER_POINT));
+    }
+
+    /**
+     *  Returns the distance (in points) between the left edge of the text frame
+     *  and the left edge of the inscribed rectangle of the shape that contains
+     *  the text.
+     *  Default value is 1/10 inch.
+     *
+     * @return the left margin
+     */
+    public float getMarginLeft(){
+        EscherOptRecord opt = getEscherOptRecord();
+        EscherSimpleProperty prop = getEscherProperty(opt, EscherProperties.TEXT__TEXTLEFT);
+        int val = prop == null ? EMU_PER_INCH/10 : prop.getPropertyValue();
+        return (float)val/EMU_PER_POINT;
+    }
+
+    /**
+     * Sets the left margin.
+     * @see #getMarginLeft()
+     *
+     * @param margin    the left margin
+     */
+    public void setMarginLeft(float margin){
+        setEscherProperty(EscherProperties.TEXT__TEXTLEFT, (int)(margin*EMU_PER_POINT));
+    }
+
+    /**
+     *  Returns the distance (in points) between the right edge of the
+     *  text frame and the right edge of the inscribed rectangle of the shape
+     *  that contains the text.
+     *  Default value is 1/10 inch.
+     *
+     * @return the right margin
+     */
+    public float getMarginRight(){
+        EscherOptRecord opt = getEscherOptRecord();
+        EscherSimpleProperty prop = getEscherProperty(opt, EscherProperties.TEXT__TEXTRIGHT);
+        int val = prop == null ? EMU_PER_INCH/10 : prop.getPropertyValue();
+        return (float)val/EMU_PER_POINT;
+    }
+
+    /**
+     * Sets the right margin.
+     * @see #getMarginRight()
+     *
+     * @param margin    the right margin
+     */
+    public void setMarginRight(float margin){
+        setEscherProperty(EscherProperties.TEXT__TEXTRIGHT, (int)(margin*EMU_PER_POINT));
+    }
+
+     /**
+     *  Returns the distance (in points) between the top of the text frame
+     *  and the top of the inscribed rectangle of the shape that contains the text.
+     *  Default value is 1/20 inch.
+     *
+     * @return the top margin
+     */
+    public float getMarginTop(){
+        EscherOptRecord opt = getEscherOptRecord();
+        EscherSimpleProperty prop = getEscherProperty(opt, EscherProperties.TEXT__TEXTTOP);
+        int val = prop == null ? EMU_PER_INCH/20 : prop.getPropertyValue();
+        return (float)val/EMU_PER_POINT;
+    }
+
+   /**
+     * Sets the top margin.
+     * @see #getMarginTop()
+     *
+     * @param margin    the top margin
+     */
+    public void setMarginTop(float margin){
+        setEscherProperty(EscherProperties.TEXT__TEXTTOP, (int)(margin*EMU_PER_POINT));
+    }
+
+
+    /**
+     * Returns the value indicating word wrap.
+     *
+     * @return the value indicating word wrap.
+     *  Must be one of the <code>Wrap*</code> constants defined in this class.
+     */
+    public int getWordWrap(){
+        EscherOptRecord opt = getEscherOptRecord();
+        EscherSimpleProperty prop = getEscherProperty(opt, EscherProperties.TEXT__WRAPTEXT);
+        return prop == null ? WrapSquare : prop.getPropertyValue();
+    }
+
+    /**
+     *  Specifies how the text should be wrapped
+     *
+     * @param wrap  the value indicating how the text should be wrapped.
+     *  Must be one of the <code>Wrap*</code> constants defined in this class.
+     */
+    public void setWordWrap(int wrap){
+        setEscherProperty(EscherProperties.TEXT__WRAPTEXT, wrap);
+    }
+
+    /**
+     * @return id for the text.
+     */
+    public int getTextId(){
+        EscherOptRecord opt = getEscherOptRecord();
+        EscherSimpleProperty prop = getEscherProperty(opt, EscherProperties.TEXT__TEXTID);
+        return prop == null ? 0 : prop.getPropertyValue();
+    }
+
+    /**
+     * Sets text ID
+     *
+     * @param id of the text
+     */
+    public void setTextId(int id){
+        setEscherProperty(EscherProperties.TEXT__TEXTID, id);
+    }
+
+    /**
+      * @return the TextRun object for this text box
+      */
+    public HSLFTextParagraph getTextParagraph(){
+       if (null == this._txtrun) initTextRun();
+       if (null == this._txtrun && null != this._txtbox) {
+          TextHeaderAtom    tha = null; 
+          TextBytesAtom     tba = null;
+          TextCharsAtom     tca = null;
+          StyleTextPropAtom sta = null;
+          Record[] childRecords = this._txtbox.getChildRecords();
+          for (Record r : childRecords) {
+             if (r instanceof TextHeaderAtom) {
+                tha = (TextHeaderAtom) r;
+             } else if (r instanceof TextBytesAtom) {
+                tba = (TextBytesAtom) r;
+             } else if (r instanceof TextCharsAtom) {
+                tca = (TextCharsAtom) r;
+             } else if (r instanceof StyleTextPropAtom) {
+                sta = (StyleTextPropAtom) r;
+             }
+          }
+          if (tba != null) {
+             this._txtrun = new HSLFTextParagraph(tha, tba, sta);
+          } else if (tca != null) {
+             this._txtrun = new HSLFTextParagraph(tha, tca, sta);
+          }
+       }
+       return _txtrun;
+    }
+
+    public void setSheet(HSLFSheet sheet) {
+        _sheet = sheet;
+
+        // Initialize _txtrun object.
+        // (We can't do it in the constructor because the sheet
+        //  is not assigned then, it's only built once we have
+        //  all the records)
+        HSLFTextParagraph tx = getTextParagraph();
+        if (tx != null) {
+            // Supply the sheet to our child RichTextRuns
+            tx.supplySheet(_sheet);
+        }
+    }
+
+    protected void initTextRun(){
+        EscherTextboxWrapper txtbox = getEscherTextboxWrapper();
+        HSLFSheet sheet = getSheet();
+
+        if(sheet == null || txtbox == null) return;
+
+        OutlineTextRefAtom ota = null;
+
+        Record[] child = txtbox.getChildRecords();
+        for (int i = 0; i < child.length; i++) {
+            if (child[i] instanceof OutlineTextRefAtom) {
+                ota = (OutlineTextRefAtom)child[i];
+                break;
+            }
+        }
+
+        HSLFTextParagraph[] runs = _sheet.getTextRuns();
+        if (ota != null) {
+            int idx = ota.getTextIndex();
+            for (int i = 0; i < runs.length; i++) {
+                if(runs[i].getIndex() == idx){
+                    _txtrun = runs[i];
+                    break;
+                }
+            }
+            if(_txtrun == null) {
+                logger.log(POILogger.WARN, "text run not found for OutlineTextRefAtom.TextIndex=" + idx);
+            }
+        } else {
+            EscherSpRecord escherSpRecord = getEscherChild(EscherSpRecord.RECORD_ID);
+            int shapeId = escherSpRecord.getShapeId();
+            if(runs != null) for (int i = 0; i < runs.length; i++) {
+                if(runs[i].getShapeId() == shapeId){
+                    _txtrun = runs[i];
+                    break;
+                }
+            }
+        }
+        
+        // ensure the same references child records of TextRun
+        if(_txtrun != null) {
+            for (int i = 0; i < child.length; i++) {
+                for (Record r : _txtrun.getRecords()) {
+                    if (child[i].getRecordType() == r.getRecordType()) {
+                        child[i] = r;
+                    }
+                }
+            }
+        }
+    }
+
+    public void draw(Graphics2D graphics){
+        AffineTransform at = graphics.getTransform();
+        ShapePainter.paint(this, graphics);
+        new TextPainter(this).paint(graphics);
+        graphics.setTransform(at);
+    }
+
+    /**
+     * Return <code>OEPlaceholderAtom</code>, the atom that describes a placeholder.
+     *
+     * @return <code>OEPlaceholderAtom</code> or <code>null</code> if not found
+     */
+    public OEPlaceholderAtom getPlaceholderAtom(){
+        return getClientDataRecord(RecordTypes.OEPlaceholderAtom.typeID);
+    }
+
+    /**
+     *
+     * Assigns a hyperlink to this text shape
+     *
+     * @param linkId    id of the hyperlink, @see org.apache.poi.hslf.usermodel.SlideShow#addHyperlink(Hyperlink)
+     * @param      beginIndex   the beginning index, inclusive.
+     * @param      endIndex     the ending index, exclusive.
+     * @see org.apache.poi.hslf.usermodel.HSLFSlideShow#addHyperlink(Hyperlink)
+     */
+    public void setHyperlink(int linkId, int beginIndex, int endIndex){
+        //TODO validate beginIndex and endIndex and throw IllegalArgumentException
+
+        InteractiveInfo info = new InteractiveInfo();
+        InteractiveInfoAtom infoAtom = info.getInteractiveInfoAtom();
+        infoAtom.setAction(InteractiveInfoAtom.ACTION_HYPERLINK);
+        infoAtom.setHyperlinkType(InteractiveInfoAtom.LINK_Url);
+        infoAtom.setHyperlinkID(linkId);
+
+        _txtbox.appendChildRecord(info);
+
+        TxInteractiveInfoAtom txiatom = new TxInteractiveInfoAtom();
+        txiatom.setStartIndex(beginIndex);
+        txiatom.setEndIndex(endIndex);
+        _txtbox.appendChildRecord(txiatom);
+
+    }
+
+    @Override
+    public boolean isPlaceholder() {
+        OEPlaceholderAtom oep = getPlaceholderAtom();
+        if (oep != null) return true;
+
+        //special case for files saved in Office 2007
+        RoundTripHFPlaceholder12 hldr = getClientDataRecord(RecordTypes.RoundTripHFPlaceholder12.typeID);
+        if (hldr != null) return true;
+
+        return false;
+    }
+
+    
+}
index 8bb441e4e46846a57501bb693be940834bd577bd..bd3a6da3994608b2ea42c9d79371af592f77937e 100644 (file)
@@ -18,7 +18,7 @@
 package org.apache.poi.hslf.model;
 
 import org.apache.poi.hslf.record.*;
-import org.apache.poi.hslf.usermodel.SlideShow;
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;
 
 /**
  * Header / Footer settings.
@@ -31,19 +31,19 @@ public final class HeadersFooters {
 
     private HeadersFootersContainer _container;
     private boolean _newRecord;
-    private SlideShow _ppt;
-    private Sheet _sheet;
+    private HSLFSlideShow _ppt;
+    private HSLFSheet _sheet;
     private boolean _ppt2007;
 
 
-    public HeadersFooters(HeadersFootersContainer rec, SlideShow ppt, boolean newRecord, boolean isPpt2007){
+    public HeadersFooters(HeadersFootersContainer rec, HSLFSlideShow ppt, boolean newRecord, boolean isPpt2007){
         _container = rec;
         _newRecord = newRecord;
         _ppt = ppt;
         _ppt2007 = isPpt2007;
     }
 
-    public HeadersFooters(HeadersFootersContainer rec, Sheet sheet, boolean newRecord, boolean isPpt2007){
+    public HeadersFooters(HeadersFootersContainer rec, HSLFSheet sheet, boolean newRecord, boolean isPpt2007){
         _container = rec;
         _newRecord = newRecord;
         _sheet = sheet;
@@ -240,8 +240,8 @@ public final class HeadersFooters {
     private boolean isVisible(int flag, int placeholderId){
         boolean visible;
         if(_ppt2007){
-            Sheet master = _sheet != null ? _sheet : _ppt.getSlidesMasters()[0];
-            TextShape placeholder = master.getPlaceholder(placeholderId);
+            HSLFSheet master = _sheet != null ? _sheet : _ppt.getSlidesMasters()[0];
+            HSLFTextShape placeholder = master.getPlaceholder(placeholderId);
             visible = placeholder != null && placeholder.getText() != null;
         } else {
             visible = _container.getHeadersFootersAtom().getFlag(flag);
@@ -252,8 +252,8 @@ public final class HeadersFooters {
     private String getPlaceholderText(int placeholderId, CString cs){
         String text = null;
         if(_ppt2007){
-            Sheet master = _sheet != null ? _sheet : _ppt.getSlidesMasters()[0];
-            TextShape placeholder = master.getPlaceholder(placeholderId);
+            HSLFSheet master = _sheet != null ? _sheet : _ppt.getSlidesMasters()[0];
+            HSLFTextShape placeholder = master.getPlaceholder(placeholderId);
             if(placeholder != null) text = placeholder.getText();
 
             //default text in master placeholders is not visible
index df207e6716b91d602b33bd5fe4d796c2146de0d1..2e1f1ec586c76d6f2ffb49cf616f236811e0e604 100644 (file)
@@ -18,7 +18,7 @@
 package org.apache.poi.hslf.model;
 
 import org.apache.poi.hslf.record.*;
-import org.apache.poi.hslf.usermodel.SlideShow;
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;
 import org.apache.poi.ddf.EscherContainerRecord;
 import org.apache.poi.ddf.EscherRecord;
 import org.apache.poi.ddf.EscherClientDataRecord;
@@ -95,7 +95,7 @@ public final class Hyperlink {
         return address;
     }
 
-    public void setAddress(Slide slide) {
+    public void setAddress(HSLFSlide slide) {
         String href = slide._getSheetNumber() + ","+slide.getSlideNumber()+",Slide " + slide.getSlideNumber();
         setAddress(href);;
         setTitle("Slide " + slide.getSlideNumber());
@@ -151,9 +151,9 @@ public final class Hyperlink {
      * @param run  <code>TextRun</code> to lookup hyperlinks in
      * @return found hyperlinks or <code>null</code> if not found
      */
-    protected static Hyperlink[] find(TextRun run){
+    protected static Hyperlink[] find(HSLFTextParagraph run){
         List<Hyperlink> lst = new ArrayList<Hyperlink>();
-        SlideShow ppt = run.getSheet().getSlideShow();
+        HSLFSlideShow ppt = run.getSheet().getSlideShow();
         //document-level container which stores info about all links in a presentation
         ExObjList exobj = ppt.getDocumentRecord().getExObjList();
         if (exobj == null) {
@@ -178,7 +178,7 @@ public final class Hyperlink {
      */
     protected static Hyperlink find(HSLFShape shape){
         List<Hyperlink> lst = new ArrayList<Hyperlink>();
-        SlideShow ppt = shape.getSheet().getSlideShow();
+        HSLFSlideShow ppt = shape.getSheet().getSlideShow();
         //document-level container which stores info about all links in a presentation
         ExObjList exobj = ppt.getDocumentRecord().getExObjList();
         if (exobj == null) {
index e811aeb6bfcda5c445878f6704af18b7d77a9f71..b2e0b35884c09aa1eafb819f030da73850c8f113 100644 (file)
@@ -29,74 +29,7 @@ import java.awt.geom.Line2D;
  *
  *  @author Yegor Kozlov
  */
-public final class Line extends SimpleShape {
-    /**
-    * Solid (continuous) pen
-    */
-    public static final int PEN_SOLID = 1;
-    /**
-     *  PS_DASH system   dash style
-     */
-    public static final int PEN_PS_DASH = 2;
-    /**
-     *  PS_DOT system   dash style
-     */
-    public static final int PEN_DOT = 3;
-    /**
-     * PS_DASHDOT system dash style
-     */
-    public static final int PEN_DASHDOT = 4;
-    /**
-     * PS_DASHDOTDOT system dash style
-     */
-    public static final int PEN_DASHDOTDOT = 5;
-    /**
-     *  square dot style
-     */
-    public static final int PEN_DOTGEL = 6;
-    /**
-     *  dash style
-     */
-    public static final int PEN_DASH = 7;
-    /**
-     *  long dash style
-     */
-    public static final int PEN_LONGDASHGEL = 8;
-    /**
-     * dash short dash
-     */
-    public static final int PEN_DASHDOTGEL = 9;
-    /**
-     * long dash short dash
-     */
-    public static final int PEN_LONGDASHDOTGEL = 10;
-    /**
-     * long dash short dash short dash
-     */
-    public static final int PEN_LONGDASHDOTDOTGEL = 11;
-
-    /**
-     *  Single line (of width lineWidth)
-     */
-    public static final int LINE_SIMPLE = 0;
-    /**
-     * Double lines of equal width
-     */
-    public static final int LINE_DOUBLE = 1;
-    /**
-     * Double lines, one thick, one thin
-     */
-    public static final int LINE_THICKTHIN = 2;
-    /**
-     *  Double lines, reverse order
-     */
-    public static final int LINE_THINTHICK = 3;
-    /**
-     * Three lines, thin, thick, thin
-     */
-    public static final int LINE_TRIPLE = 4;
-
-
+public final class Line extends HSLFSimpleShape {
     protected Line(EscherContainerRecord escherRecord, ShapeContainer<HSLFShape> parent){
         super(escherRecord, parent);
     }
diff --git a/src/scratchpad/src/org/apache/poi/hslf/model/MasterSheet.java b/src/scratchpad/src/org/apache/poi/hslf/model/MasterSheet.java
deleted file mode 100644 (file)
index 5f7bd1a..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-/* ====================================================================
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-==================================================================== */
-
-package org.apache.poi.hslf.model;
-
-import org.apache.poi.hslf.record.SheetContainer;
-import org.apache.poi.hslf.model.textproperties.TextProp;
-
-/**
- * The superclass of all master sheets - Slide masters, Notes masters, etc.
- *
- * For now it's empty. When we understand more about masters in ppt we will add the common functionality here.
- *
- * @author Yegor Kozlov
- */
-public abstract class MasterSheet extends Sheet {
-    public MasterSheet(SheetContainer container, int sheetNo){
-        super(container, sheetNo);
-    }
-
-    /**
-     * Pickup a style attribute from the master.
-     * This is the "workhorse" which returns the default style attrubutes.
-     */
-    public abstract TextProp getStyleAttribute(int txtype, int level, String name, boolean isCharacter) ;
-
-
-    /**
-     * Checks if the shape is a placeholder.
-     * (placeholders aren't normal shapes, they are visible only in the Edit Master mode)
-     *
-     *
-     * @return true if the shape is a placeholder
-     */
-    public static boolean isPlaceholder(HSLFShape shape){
-        if(!(shape instanceof TextShape)) return false;
-
-        TextShape tx = (TextShape)shape;
-        return tx.getPlaceholderAtom() != null;
-    }
-}
index 834dc870e414120672ecbf8afbaa0422778146c4..e366fdbe924b7b65c3da2f1d76c3b3ca894ea512 100644 (file)
@@ -24,7 +24,7 @@ import org.apache.poi.ddf.EscherContainerRecord;
 import org.apache.poi.ddf.EscherProperties;
 import org.apache.poi.hslf.exceptions.HSLFException;
 import org.apache.poi.hslf.record.*;
-import org.apache.poi.hslf.usermodel.SlideShow;
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;
 import org.apache.poi.sl.usermodel.ShapeContainer;
 
 /**
@@ -32,7 +32,7 @@ import org.apache.poi.sl.usermodel.ShapeContainer;
  *
  * @author Yegor Kozlov
  */
-public final class MovieShape extends Picture {
+public final class MovieShape extends HSLFPictureShape {
     public static final int DEFAULT_MOVIE_THUMBNAIL = -1;
 
     public static final int MOVIE_MPEG = 1;
@@ -113,7 +113,7 @@ public final class MovieShape extends Picture {
     /**
      * Assign a movie to this shape
      *
-     * @see org.apache.poi.hslf.usermodel.SlideShow#addMovie(String, int)
+     * @see org.apache.poi.hslf.usermodel.HSLFSlideShow#addMovie(String, int)
      * @param idx  the index of the movie
      */
     public void setMovieIndex(int idx){
@@ -154,7 +154,7 @@ public final class MovieShape extends Picture {
         OEShapeAtom oe = getClientDataRecord(RecordTypes.OEShapeAtom.typeID);
         int idx = oe.getOptions();
 
-        SlideShow ppt = getSheet().getSlideShow();
+        HSLFSlideShow ppt = getSheet().getSlideShow();
         ExObjList lst = (ExObjList)ppt.getDocumentRecord().findFirstOfType(RecordTypes.ExObjList.typeID);
         if(lst == null) return null;
 
diff --git a/src/scratchpad/src/org/apache/poi/hslf/model/Notes.java b/src/scratchpad/src/org/apache/poi/hslf/model/Notes.java
deleted file mode 100644 (file)
index cdb0503..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-/* ====================================================================
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-==================================================================== */
-
-package org.apache.poi.hslf.model;
-
-/**
- * This class represents a slide's notes in a PowerPoint Document. It
- *  allows access to the text within, and the layout. For now, it only
- *  does the text side of things though
- *
- * @author Nick Burch
- */
-
-public final class Notes extends Sheet
-{
-  private TextRun[] _runs;
-
-  /**
-   * Constructs a Notes Sheet from the given Notes record.
-   * Initialises TextRuns, to provide easier access to the text
-   *
-   * @param notes the Notes record to read from
-   */
-  public Notes (org.apache.poi.hslf.record.Notes notes) {
-      super(notes, notes.getNotesAtom().getSlideID());
-
-       // Now, build up TextRuns from pairs of TextHeaderAtom and
-       //  one of TextBytesAtom or TextCharsAtom, found inside
-       //  EscherTextboxWrapper's in the PPDrawing
-       _runs = findTextRuns(getPPDrawing());
-
-       // Set the sheet on each TextRun
-       for (int i = 0; i < _runs.length; i++)
-               _runs[i].setSheet(this);
-  }
-
-
-  // Accesser methods follow
-
-  /**
-   * Returns an array of all the TextRuns found
-   */
-  public TextRun[] getTextRuns() { return _runs; }
-
-    /**
-     * Return <code>null</code> - Notes Masters are not yet supported
-     */
-    public MasterSheet getMasterSheet() {
-        return null;
-    }
-
-}
index a1e9c94e089abf1b0f2d8ad598c16ca5bfcb803f..49ed8c2073d2cceab51ce2d15a3d9daef68df353 100644 (file)
@@ -18,8 +18,8 @@
 package org.apache.poi.hslf.model;
 
 import org.apache.poi.ddf.*;
-import org.apache.poi.hslf.usermodel.SlideShow;
-import org.apache.poi.hslf.usermodel.ObjectData;
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;
+import org.apache.poi.hslf.usermodel.HSLFObjectData;
 import org.apache.poi.hslf.record.ExObjList;
 import org.apache.poi.hslf.record.Record;
 import org.apache.poi.hslf.record.ExEmbed;
@@ -34,7 +34,7 @@ import org.apache.poi.util.POILogger;
  *
  * @author Yegor Kozlov
  */
-public final class OLEShape extends Picture {
+public final class OLEShape extends HSLFPictureShape {
     protected ExEmbed _exEmbed;
 
     /**
@@ -117,13 +117,13 @@ public final class OLEShape extends Picture {
      *
      * @return the unique identifier for the OLE object
      */
-    public ObjectData getObjectData(){
-        SlideShow ppt = getSheet().getSlideShow();
-        ObjectData[] ole = ppt.getEmbeddedObjects();
+    public HSLFObjectData getObjectData(){
+        HSLFSlideShow ppt = getSheet().getSlideShow();
+        HSLFObjectData[] ole = ppt.getEmbeddedObjects();
 
         //persist reference
         ExEmbed exEmbed = getExEmbed();
-        ObjectData data = null;
+        HSLFObjectData data = null;
         if(exEmbed != null) {
             int ref = exEmbed.getExOleObjAtom().getObjStgDataRef();
 
@@ -156,7 +156,7 @@ public final class OLEShape extends Picture {
      */
     public ExEmbed getExEmbed(){
         if(_exEmbed == null){
-            SlideShow ppt = getSheet().getSlideShow();
+            HSLFSlideShow ppt = getSheet().getSlideShow();
 
             ExObjList lst = ppt.getDocumentRecord().getExObjList();
             if(lst == null){
index f775addac36c675ad46b630e45b3937e8bd54505..47500df2f6106dcfe10328e5d94eb421b538214c 100644 (file)
@@ -28,7 +28,7 @@ import java.awt.image.renderable.RenderableImage;
 import java.awt.geom.*;
 import java.text.AttributedCharacterIterator;
 import java.util.Map;
-import org.apache.poi.hslf.usermodel.RichTextRun;
+import org.apache.poi.hslf.usermodel.HSLFTextRun;
 import org.apache.poi.hslf.exceptions.HSLFException;
 import org.apache.poi.util.POILogger;
 import org.apache.poi.util.POILogFactory;
@@ -214,7 +214,7 @@ public final class PPGraphics2D extends Graphics2D implements Cloneable {
      */
     public void draw(Shape shape){
         GeneralPath path = new GeneralPath(_transform.createTransformedShape(shape));
-        Freeform p = new Freeform(_group);
+        HSLFFreeformShape p = new HSLFFreeformShape(_group);
         p.setPath(path);
         p.getFill().setForegroundColor(null);
         applyStroke(p);
@@ -250,12 +250,11 @@ public final class PPGraphics2D extends Graphics2D implements Cloneable {
      * @see #setClip
      */
     public void drawString(String s, float x, float y) {
-        TextBox txt = new TextBox(_group);
-        txt.getTextRun().supplySlideShow(_group.getSheet().getSlideShow());
-        txt.getTextRun().setSheet(_group.getSheet());
+        HSLFTextBox txt = new HSLFTextBox(_group);
+        txt.getTextParagraph().supplySheet(_group.getSheet());
         txt.setText(s);
 
-        RichTextRun rt = txt.getTextRun().getRichTextRuns()[0];
+        HSLFTextRun rt = txt.getTextParagraph().getRichTextRuns()[0];
         rt.setFontSize(_font.getSize());
         rt.setFontName(_font.getFamily());
 
@@ -267,9 +266,9 @@ public final class PPGraphics2D extends Graphics2D implements Cloneable {
         txt.setMarginTop(0);
         txt.setMarginLeft(0);
         txt.setMarginRight(0);
-        txt.setWordWrap(TextBox.WrapNone);
-        txt.setHorizontalAlignment(TextBox.AlignLeft);
-        txt.setVerticalAlignment(TextBox.AnchorMiddle);
+        txt.setWordWrap(HSLFTextBox.WrapNone);
+        txt.setHorizontalAlignment(HSLFTextBox.AlignLeft);
+        txt.setVerticalAlignment(HSLFTextBox.AnchorMiddle);
 
 
         TextLayout layout = new TextLayout(s, _font, getFontRenderContext());
@@ -317,7 +316,7 @@ public final class PPGraphics2D extends Graphics2D implements Cloneable {
      */
     public void fill(Shape shape){
         GeneralPath path = new GeneralPath(_transform.createTransformedShape(shape));
-        Freeform p = new Freeform(_group);
+        HSLFFreeformShape p = new HSLFFreeformShape(_group);
         p.setPath(path);
         applyPaint(p);
         p.setLineColor(null);   //Fills must be "No Line"
@@ -1788,7 +1787,7 @@ public final class PPGraphics2D extends Graphics2D implements Cloneable {
         }
     }
 
-    protected void applyStroke(SimpleShape shape) {
+    protected void applyStroke(HSLFSimpleShape shape) {
         if (_stroke instanceof BasicStroke){
             BasicStroke bs = (BasicStroke)_stroke;
             shape.setLineWidth(bs.getLineWidth());
@@ -1800,7 +1799,7 @@ public final class PPGraphics2D extends Graphics2D implements Cloneable {
         }
     }
 
-    protected void applyPaint(SimpleShape shape) {
+    protected void applyPaint(HSLFSimpleShape shape) {
         if (_paint instanceof Color) {
             shape.getFill().setForegroundColor((Color)_paint);
         }
diff --git a/src/scratchpad/src/org/apache/poi/hslf/model/Picture.java b/src/scratchpad/src/org/apache/poi/hslf/model/Picture.java
deleted file mode 100644 (file)
index 8c3b2b6..0000000
+++ /dev/null
@@ -1,302 +0,0 @@
-/* ====================================================================
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-==================================================================== */
-
-package org.apache.poi.hslf.model;
-
-import java.awt.Graphics2D;
-import java.awt.Insets;
-import java.awt.geom.AffineTransform;
-import java.awt.image.BufferedImage;
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.util.List;
-
-import javax.imageio.ImageIO;
-
-import org.apache.poi.ddf.EscherBSERecord;
-import org.apache.poi.ddf.EscherComplexProperty;
-import org.apache.poi.ddf.EscherContainerRecord;
-import org.apache.poi.ddf.EscherOptRecord;
-import org.apache.poi.ddf.EscherProperties;
-import org.apache.poi.ddf.EscherRecord;
-import org.apache.poi.ddf.EscherSimpleProperty;
-import org.apache.poi.ddf.EscherSpRecord;
-import org.apache.poi.hslf.blip.Bitmap;
-import org.apache.poi.hslf.record.Document;
-import org.apache.poi.hslf.usermodel.PictureData;
-import org.apache.poi.hslf.usermodel.SlideShow;
-import org.apache.poi.sl.usermodel.ShapeContainer;
-import org.apache.poi.sl.usermodel.ShapeType;
-import org.apache.poi.util.POILogger;
-import org.apache.poi.util.StringUtil;
-import org.apache.poi.util.Units;
-
-
-/**
- * Represents a picture in a PowerPoint document.
- *
- * @author Yegor Kozlov
- */
-public class Picture extends SimpleShape {
-
-    /**
-    *  Windows Enhanced Metafile (EMF)
-    */
-    public static final int EMF = 2;
-
-    /**
-    *  Windows Metafile (WMF)
-    */
-    public static final int WMF = 3;
-
-    /**
-    * Macintosh PICT
-    */
-    public static final int PICT = 4;
-
-    /**
-    *  JPEG
-    */
-    public static final int JPEG = 5;
-
-    /**
-    *  PNG
-    */
-    public static final int PNG = 6;
-
-    /**
-     * Windows DIB (BMP)
-     */
-    public static final byte DIB = 7;
-
-    /**
-     * Create a new <code>Picture</code>
-     *
-    * @param idx the index of the picture
-     */
-    public Picture(int idx){
-        this(idx, null);
-    }
-
-    /**
-     * Create a new <code>Picture</code>
-     *
-     * @param idx the index of the picture
-     * @param parent the parent shape
-     */
-    public Picture(int idx, ShapeContainer<HSLFShape> parent) {
-        super(null, parent);
-        _escherContainer = createSpContainer(idx, parent instanceof HSLFGroupShape);
-    }
-
-    /**
-      * Create a <code>Picture</code> object
-      *
-      * @param escherRecord the <code>EscherSpContainer</code> record which holds information about
-      *        this picture in the <code>Slide</code>
-      * @param parent the parent shape of this picture
-      */
-     protected Picture(EscherContainerRecord escherRecord, ShapeContainer<HSLFShape> parent){
-        super(escherRecord, parent);
-    }
-
-    /**
-     * Returns index associated with this picture.
-     * Index starts with 1 and points to a EscherBSE record which
-     * holds information about this picture.
-     *
-     * @return the index to this picture (1 based).
-     */
-    public int getPictureIndex(){
-        EscherOptRecord opt = getEscherOptRecord();
-        EscherSimpleProperty prop = getEscherProperty(opt, EscherProperties.BLIP__BLIPTODISPLAY);
-        return prop == null ? 0 : prop.getPropertyValue();
-    }
-
-    /**
-     * Create a new Picture and populate the inital structure of the <code>EscherSp</code> record which holds information about this picture.
-
-     * @param idx the index of the picture which refers to <code>EscherBSE</code> container.
-     * @return the create Picture object
-     */
-    protected EscherContainerRecord createSpContainer(int idx, boolean isChild) {
-        _escherContainer = super.createSpContainer(isChild);
-        _escherContainer.setOptions((short)15);
-
-        EscherSpRecord spRecord = _escherContainer.getChildById(EscherSpRecord.RECORD_ID);
-        spRecord.setOptions((short)((ShapeType.FRAME.nativeId << 4) | 0x2));
-
-        //set default properties for a picture
-        EscherOptRecord opt = getEscherOptRecord();
-        setEscherProperty(opt, EscherProperties.PROTECTION__LOCKAGAINSTGROUPING, 0x800080);
-
-        //another weird feature of powerpoint: for picture id we must add 0x4000.
-        setEscherProperty(opt, (short)(EscherProperties.BLIP__BLIPTODISPLAY + 0x4000), idx);
-
-        return _escherContainer;
-    }
-
-    /**
-     * Resize this picture to the default size.
-     * For PNG and JPEG resizes the image to 100%,
-     * for other types sets the default size of 200x200 pixels.
-     */
-    public void setDefaultSize(){
-        PictureData pict = getPictureData();
-        if (pict  instanceof Bitmap){
-            BufferedImage img = null;
-            try {
-                       img = ImageIO.read(new ByteArrayInputStream(pict.getData()));
-            }
-            catch (IOException e){}
-            catch (NegativeArraySizeException ne) {}
-
-            if(img != null) {
-                // Valid image, set anchor from it
-                setAnchor(new java.awt.Rectangle(0, 0, img.getWidth()*POINT_DPI/PIXEL_DPI, img.getHeight()*POINT_DPI/PIXEL_DPI));
-            } else {
-                // Invalid image, go with the default metafile size
-                setAnchor(new java.awt.Rectangle(0, 0, 200, 200));
-            }
-        } else {
-            //default size of a metafile picture is 200x200
-            setAnchor(new java.awt.Rectangle(50, 50, 200, 200));
-        }
-    }
-
-    /**
-     * Returns the picture data for this picture.
-     *
-     * @return the picture data for this picture.
-     */
-    public PictureData getPictureData(){
-        SlideShow ppt = getSheet().getSlideShow();
-        PictureData[] pict = ppt.getPictureData();
-
-        EscherBSERecord bse = getEscherBSERecord();
-        if (bse == null){
-            logger.log(POILogger.ERROR, "no reference to picture data found ");
-        } else {
-            for ( int i = 0; i < pict.length; i++ ) {
-                if (pict[i].getOffset() ==  bse.getOffset()){
-                    return pict[i];
-                }
-            }
-            logger.log(POILogger.ERROR, "no picture found for our BSE offset " + bse.getOffset());
-        }
-        return null;
-    }
-
-    protected EscherBSERecord getEscherBSERecord(){
-        SlideShow ppt = getSheet().getSlideShow();
-        Document doc = ppt.getDocumentRecord();
-        EscherContainerRecord dggContainer = doc.getPPDrawingGroup().getDggContainer();
-        EscherContainerRecord bstore = HSLFShape.getEscherChild(dggContainer, EscherContainerRecord.BSTORE_CONTAINER);
-        if(bstore == null) {
-            logger.log(POILogger.DEBUG, "EscherContainerRecord.BSTORE_CONTAINER was not found ");
-            return null;
-        }
-        List<EscherRecord> lst = bstore.getChildRecords();
-        int idx = getPictureIndex();
-        if (idx == 0){
-            logger.log(POILogger.DEBUG, "picture index was not found, returning ");
-            return null;
-        }
-        return (EscherBSERecord)lst.get(idx-1);
-    }
-
-    /**
-     * Name of this picture.
-     *
-     * @return name of this picture
-     */
-    public String getPictureName(){
-        EscherOptRecord opt = getEscherOptRecord();
-        EscherComplexProperty prop = getEscherProperty(opt, EscherProperties.BLIP__BLIPFILENAME);
-        if (prop == null) return null;
-        String name = StringUtil.getFromUnicodeLE(prop.getComplexData());
-        return name.trim();
-    }
-
-    /**
-     * Name of this picture.
-     *
-     * @param name of this picture
-     */
-    public void setPictureName(String name){
-        EscherOptRecord opt = getEscherOptRecord();
-        byte[] data = StringUtil.getToUnicodeLE(name + '\u0000');
-        EscherComplexProperty prop = new EscherComplexProperty(EscherProperties.BLIP__BLIPFILENAME, false, data);
-        opt.addEscherProperty(prop);
-    }
-
-    /**
-     * By default set the orininal image size
-     */
-    protected void afterInsert(Sheet sh){
-        super.afterInsert(sh);
-
-        EscherBSERecord bse = getEscherBSERecord();
-        bse.setRef(bse.getRef() + 1);
-
-        java.awt.Rectangle anchor = getAnchor();
-        if (anchor.equals(new java.awt.Rectangle())){
-            setDefaultSize();
-        }
-    }
-
-    public void draw(Graphics2D graphics){
-        AffineTransform at = graphics.getTransform();
-        ShapePainter.paint(this, graphics);
-
-        PictureData data = getPictureData();
-        if(data != null) data.draw(graphics, this);
-
-        graphics.setTransform(at);
-    }
-
-    /**
-     * Returns the clipping values as percent ratio relatively to the image size.
-     * The anchor specified by {@link #getLogicalAnchor2D()} is the displayed size,
-     * i.e. the size of the already clipped image
-     * 
-     * @return the clipping as insets converted/scaled to 100000 (=100%) 
-     */
-    public Insets getBlipClip() {
-        EscherOptRecord opt = getEscherOptRecord();
-        
-        double top    = getFractProp(opt, EscherProperties.BLIP__CROPFROMTOP);
-        double bottom = getFractProp(opt, EscherProperties.BLIP__CROPFROMBOTTOM);
-        double left   = getFractProp(opt, EscherProperties.BLIP__CROPFROMLEFT);
-        double right  = getFractProp(opt, EscherProperties.BLIP__CROPFROMRIGHT);
-        
-        // if all crop values are zero (the default) then no crop rectangle is set, return null
-        return (top==0 && bottom==0 && left==0 && right==0)
-            ? null
-            : new Insets((int)(top*100000), (int)(left*100000), (int)(bottom*100000), (int)(right*100000));
-    }
-    
-    /**
-     * @return the fractional property or 0 if not defined
-     */
-    private static double getFractProp(EscherOptRecord opt, short propertyId) {
-        EscherSimpleProperty prop = getEscherProperty(opt, propertyId);
-        if (prop == null) return 0;
-        int fixedPoint = prop.getPropertyValue();
-        return Units.fixedPointToDouble(fixedPoint);
-    }
-}
\ No newline at end of file
index 0e6052e969fa28be8a848e4472660f0eeaa5deee..470f6a42048d23be8843161d7c68572f5dda0153 100644 (file)
@@ -29,7 +29,7 @@ import java.io.ByteArrayOutputStream;
  *
  * @author Yegor Kozlov
  */
-public final class Placeholder extends TextBox {
+public final class Placeholder extends HSLFTextBox {
 
     protected Placeholder(EscherContainerRecord escherRecord, ShapeContainer<HSLFShape> parent){
         super(escherRecord, parent);
index 2d67c03fdc73f3e9085e7d33f6dc9b4f5657e3bd..7bfd95a571ea3d2da687ee94049b94eca29eecff 100644 (file)
@@ -29,7 +29,7 @@ import java.awt.geom.Point2D;
  *
  * @author Yegor Kozlov
  */
-public final class Polygon extends AutoShape {
+public final class Polygon extends HSLFAutoShape {
     /**
      * Create a Polygon object and initialize it from the supplied Record container.
      *
index 01ac53855c551b3676b0d3b2e741a120463c22b0..d21cf9dd2bb03df459087b92e7d077b5085f5c36 100644 (file)
@@ -89,7 +89,7 @@ public final class ShapeFactory {
         ShapeType type = ShapeType.forId(spRecord.getShapeType(), false);
         switch (type){
             case TEXT_BOX:
-                shape = new TextBox(spContainer, parent);
+                shape = new HSLFTextBox(spContainer, parent);
                 break;
             case HOST_CONTROL:
             case FRAME: {
@@ -110,7 +110,7 @@ public final class ShapeFactory {
                     shape = new OLEShape(spContainer, parent);
                 }
 
-                if(shape == null) shape = new Picture(spContainer, parent);
+                if(shape == null) shape = new HSLFPictureShape(spContainer, parent);
                 break;
             }
             case LINE:
@@ -120,16 +120,16 @@ public final class ShapeFactory {
                 EscherOptRecord opt = HSLFShape.getEscherChild(spContainer, EscherOptRecord.RECORD_ID);
                 EscherProperty prop = HSLFShape.getEscherProperty(opt, EscherProperties.GEOMETRY__VERTICES);
                 if(prop != null)
-                    shape = new Freeform(spContainer, parent);
+                    shape = new HSLFFreeformShape(spContainer, parent);
                 else {
 
                     logger.log(POILogger.WARN, "Creating AutoShape for a NotPrimitive shape");
-                    shape = new AutoShape(spContainer, parent);
+                    shape = new HSLFAutoShape(spContainer, parent);
                 }
                 break;
             }
             default:
-                shape = new AutoShape(spContainer, parent);
+                shape = new HSLFAutoShape(spContainer, parent);
                 break;
         }
         return shape;
index c9954a8dee2d38d5e1d2b3993f74dbaabebe86d4..e9686a612072fdc774a7d335bc0eff4ee6c7d820 100644 (file)
@@ -35,7 +35,7 @@ import org.apache.poi.util.POILogger;
 public final class ShapePainter {
     protected static final POILogger logger = POILogFactory.getLogger(ShapePainter.class);
 
-    public static void paint(SimpleShape shape, Graphics2D graphics){
+    public static void paint(HSLFSimpleShape shape, Graphics2D graphics){
         Rectangle2D anchor = shape.getLogicalAnchor2D();
         java.awt.Shape outline = shape.getOutline();
 
diff --git a/src/scratchpad/src/org/apache/poi/hslf/model/Sheet.java b/src/scratchpad/src/org/apache/poi/hslf/model/Sheet.java
deleted file mode 100644 (file)
index 197043f..0000000
+++ /dev/null
@@ -1,543 +0,0 @@
-/* ====================================================================
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-==================================================================== */
-
-package org.apache.poi.hslf.model;
-
-import java.awt.Graphics2D;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.apache.poi.ddf.EscherContainerRecord;
-import org.apache.poi.ddf.EscherDgRecord;
-import org.apache.poi.ddf.EscherDggRecord;
-import org.apache.poi.ddf.EscherRecord;
-import org.apache.poi.hslf.record.CString;
-import org.apache.poi.hslf.record.ColorSchemeAtom;
-import org.apache.poi.hslf.record.EscherTextboxWrapper;
-import org.apache.poi.hslf.record.MasterTextPropAtom;
-import org.apache.poi.hslf.record.OEPlaceholderAtom;
-import org.apache.poi.hslf.record.PPDrawing;
-import org.apache.poi.hslf.record.Record;
-import org.apache.poi.hslf.record.RecordContainer;
-import org.apache.poi.hslf.record.RecordTypes;
-import org.apache.poi.hslf.record.RoundTripHFPlaceholder12;
-import org.apache.poi.hslf.record.SheetContainer;
-import org.apache.poi.hslf.record.StyleTextProp9Atom;
-import org.apache.poi.hslf.record.StyleTextPropAtom;
-import org.apache.poi.hslf.record.TextBytesAtom;
-import org.apache.poi.hslf.record.TextCharsAtom;
-import org.apache.poi.hslf.record.TextHeaderAtom;
-import org.apache.poi.hslf.record.TextRulerAtom;
-import org.apache.poi.hslf.record.TextSpecInfoAtom;
-import org.apache.poi.hslf.usermodel.SlideShow;
-import org.apache.poi.sl.usermodel.ShapeContainer;
-import org.apache.poi.util.POILogFactory;
-import org.apache.poi.util.POILogger;
-
-/**
- * This class defines the common format of "Sheets" in a powerpoint
- * document. Such sheets could be Slides, Notes, Master etc
- *
- * @author Nick Burch
- * @author Yegor Kozlov
- */
-
-public abstract class Sheet implements ShapeContainer<HSLFShape> {
-       private static POILogger logger = POILogFactory.getLogger(Sheet.class);
-
-    /**
-     * The <code>SlideShow</code> we belong to
-     */
-    private SlideShow _slideShow;
-
-    /**
-     * Sheet background
-     */
-    private Background _background;
-
-    /**
-     * Record container that holds sheet data.
-     * For slides it is org.apache.poi.hslf.record.Slide,
-     * for notes it is org.apache.poi.hslf.record.Notes,
-     * for slide masters it is org.apache.poi.hslf.record.SlideMaster, etc.
-     */
-    private SheetContainer _container;
-
-    private int _sheetNo;
-
-    public Sheet(SheetContainer container, int sheetNo) {
-        _container = container;
-        _sheetNo = sheetNo;
-    }
-
-    /**
-     * Returns an array of all the TextRuns in the sheet.
-     */
-    public abstract TextRun[] getTextRuns();
-
-    /**
-     * Returns the (internal, RefID based) sheet number, as used
-     * to in PersistPtr stuff.
-     */
-    public int _getSheetRefId() {
-        return _container.getSheetId();
-    }
-
-    /**
-     * Returns the (internal, SlideIdentifier based) sheet number, as used
-     * to reference this sheet from other records.
-     */
-    public int _getSheetNumber() {
-        return _sheetNo;
-    }
-
-    /**
-     * Fetch the PPDrawing from the underlying record
-     */
-    protected PPDrawing getPPDrawing() {
-        return _container.getPPDrawing();
-    }
-
-    /**
-     * Fetch the SlideShow we're attached to
-     */
-    public SlideShow getSlideShow() {
-        return _slideShow;
-    }
-
-    /**
-     * Return record container for this sheet
-     */
-    public SheetContainer getSheetContainer() {
-        return _container;
-    }
-
-    /**
-     * Set the SlideShow we're attached to.
-     * Also passes it on to our child RichTextRuns
-     */
-    public void setSlideShow(SlideShow ss) {
-        _slideShow = ss;
-        TextRun[] trs = getTextRuns();
-        if (trs != null) {
-            for (int i = 0; i < trs.length; i++) {
-                trs[i].supplySlideShow(_slideShow);
-            }
-        }
-    }
-
-
-    /**
-     * For a given PPDrawing, grab all the TextRuns
-     */
-    public static TextRun[] findTextRuns(PPDrawing ppdrawing) {
-        final List<TextRun> runsV = new ArrayList<TextRun>();
-        final EscherTextboxWrapper[] wrappers = ppdrawing.getTextboxWrappers();
-        for (int i = 0; i < wrappers.length; i++) {
-            int s1 = runsV.size();
-
-            // propagate parents to parent-aware records
-            RecordContainer.handleParentAwareRecords(wrappers[i]);
-            findTextRuns(wrappers[i], runsV);
-            int s2 = runsV.size();
-            if (s2 != s1){
-                TextRun t = runsV.get(runsV.size()-1);
-                t.setShapeId(wrappers[i].getShapeId());
-            }
-        }
-        return runsV.toArray(new TextRun[runsV.size()]);
-    }
-    /**
-     * Scans through the supplied record array, looking for
-     * a TextHeaderAtom followed by one of a TextBytesAtom or
-     * a TextCharsAtom. Builds up TextRuns from these
-     *
-     * @param records the records to build from
-     * @param found   vector to add any found to
-     */
-    protected static void findTextRuns(final Record[] records, final List<TextRun> found) {
-       findTextRuns(records, found, null); 
-    }
-    /**
-     * Scans through the supplied record array, looking for
-     * a TextHeaderAtom followed by one of a TextBytesAtom or
-     * a TextCharsAtom. Builds up TextRuns from these
-     *
-     * @param wrapper an EscherTextboxWrapper
-     * @param found   vector to add any found to
-     */
-    protected static void findTextRuns(final EscherTextboxWrapper wrapper, final List<TextRun> found) {
-       findTextRuns(wrapper.getChildRecords(), found, wrapper.getStyleTextProp9Atom());
-    }
-    /**
-     * Scans through the supplied record array, looking for
-     * a TextHeaderAtom followed by one of a TextBytesAtom or
-     * a TextCharsAtom. Builds up TextRuns from these
-     *
-     * @param records the records to build from
-     * @param found   vector to add any found to
-     * @param styleTextProp9Atom a StyleTextProp9Atom with numbered lists info
-     */
-    protected static void findTextRuns(final Record[] records, final List<TextRun> found, final StyleTextProp9Atom styleTextProp9Atom) {
-        for (int i = 0, slwtIndex=0; i < (records.length - 1); i++) {
-            if (records[i] instanceof TextHeaderAtom) {
-                TextHeaderAtom tha = (TextHeaderAtom) records[i];
-                StyleTextPropAtom stpa = null;
-                TextRun trun = null;
-                Record next = null;
-                Record subs = null;
-                
-                // See what follows the TextHeaderAtom
-                next = records[i+1];
-                if (i < records.length - 2) {
-                    subs = records[i+2];
-                }
-                
-                // Is the next record one we need to skip over?
-                if (subs != null) {
-                    if (next instanceof TextRulerAtom ||
-                        next instanceof MasterTextPropAtom ||
-                        next instanceof TextSpecInfoAtom) {
-                        // Ignore this one, check the one after
-                        next = subs;
-                        if (i < records.length - 3) {
-                            subs = records[i+3];
-                        } else {
-                            subs = null;
-                        }
-                    }
-                }
-                
-                // Is the subsequent record a style one?
-                if (subs != null && subs instanceof StyleTextPropAtom) {
-                    stpa = (StyleTextPropAtom)subs;
-                }
-                
-                // Now, check if the next record is one to record
-                if (next instanceof TextCharsAtom) {
-                    TextCharsAtom tca = (TextCharsAtom)next;
-                    trun = new TextRun(tha, tca, stpa);
-                } else if (next instanceof TextBytesAtom) {
-                    TextBytesAtom tba = (TextBytesAtom)next;
-                    trun = new TextRun(tha, tba, stpa);
-                } else if (next instanceof StyleTextPropAtom) {
-                    stpa = (StyleTextPropAtom)next;
-                } else if (next instanceof TextHeaderAtom) {
-                    // Seems to be a mostly, but not completely deleted block of
-                    //  text. Only the header remains, which isn't useful alone 
-                    // Skip on to the next TextHeaderAtom
-                    continue;
-                } else {
-                    logger.log(POILogger.ERROR, "Found a TextHeaderAtom not followed by a TextBytesAtom or TextCharsAtom: Followed by " + next.getRecordType());
-                }
-
-                if (trun != null) {
-                    List<Record> lst = new ArrayList<Record>();
-                    for (int j = i; j < records.length; j++) {
-                        if(j > i && records[j] instanceof TextHeaderAtom) break;
-                        lst.add(records[j]);
-                    }
-                    Record[] recs = new Record[lst.size()];
-                    lst.toArray(recs);
-                    trun._records = recs;
-                    trun.setIndex(slwtIndex);
-                    trun.setStyleTextProp9Atom(styleTextProp9Atom);
-                    found.add(trun);
-                    i++;
-                } else {
-                    // Not a valid one, so skip on to next and look again
-                }
-                slwtIndex++;
-            }
-        }
-    }
-
-    /**
-     * Returns all shapes contained in this Sheet
-     *
-     * @return all shapes contained in this Sheet (Slide or Notes)
-     */
-    public HSLFShape[] getShapes() {
-        List<HSLFShape> shapeList = getShapeList();
-        return shapeList.toArray(new HSLFShape[shapeList.size()]);
-    }
-
-    /**
-     * Add a new Shape to this Slide
-     *
-     * @param shape - the Shape to add
-     */
-    public void addShape(HSLFShape shape) {
-        PPDrawing ppdrawing = getPPDrawing();
-
-        EscherContainerRecord dgContainer = (EscherContainerRecord) ppdrawing.getEscherRecords()[0];
-        EscherContainerRecord spgr = (EscherContainerRecord) HSLFShape.getEscherChild(dgContainer, EscherContainerRecord.SPGR_CONTAINER);
-        spgr.addChildRecord(shape.getSpContainer());
-
-        shape.setSheet(this);
-        shape.setShapeId(allocateShapeId());
-        shape.afterInsert(this);
-    }
-
-    /**
-     * Allocates new shape id for the new drawing group id.
-     *
-     * @return a new shape id.
-     */
-    public int allocateShapeId()
-    {
-        EscherDggRecord dgg = _slideShow.getDocumentRecord().getPPDrawingGroup().getEscherDggRecord();
-        EscherDgRecord dg = _container.getPPDrawing().getEscherDgRecord();
-
-        dgg.setNumShapesSaved( dgg.getNumShapesSaved() + 1 );
-
-        // Add to existing cluster if space available
-        for (int i = 0; i < dgg.getFileIdClusters().length; i++)
-        {
-            EscherDggRecord.FileIdCluster c = dgg.getFileIdClusters()[i];
-            if (c.getDrawingGroupId() == dg.getDrawingGroupId() && c.getNumShapeIdsUsed() != 1024)
-            {
-                int result = c.getNumShapeIdsUsed() + (1024 * (i+1));
-                c.incrementShapeId();
-                dg.setNumShapes( dg.getNumShapes() + 1 );
-                dg.setLastMSOSPID( result );
-                if (result >= dgg.getShapeIdMax())
-                    dgg.setShapeIdMax( result + 1 );
-                return result;
-            }
-        }
-
-        // Create new cluster
-        dgg.addCluster( dg.getDrawingGroupId(), 0, false );
-        dgg.getFileIdClusters()[dgg.getFileIdClusters().length-1].incrementShapeId();
-        dg.setNumShapes( dg.getNumShapes() + 1 );
-        int result = (1024 * dgg.getFileIdClusters().length);
-        dg.setLastMSOSPID( result );
-        if (result >= dgg.getShapeIdMax())
-            dgg.setShapeIdMax( result + 1 );
-        return result;
-    }
-
-    /**
-     * Removes the specified shape from this sheet.
-     *
-     * @param shape shape to be removed from this sheet, if present.
-     * @return <tt>true</tt> if the shape was deleted.
-     */
-    public boolean removeShape(HSLFShape shape) {
-        PPDrawing ppdrawing = getPPDrawing();
-
-        EscherContainerRecord dg = (EscherContainerRecord) ppdrawing.getEscherRecords()[0];
-        EscherContainerRecord spgr = null;
-
-        for (Iterator<EscherRecord> it = dg.getChildIterator(); it.hasNext();) {
-            EscherRecord rec = it.next();
-            if (rec.getRecordId() == EscherContainerRecord.SPGR_CONTAINER) {
-                spgr = (EscherContainerRecord) rec;
-                break;
-            }
-        }
-        if(spgr == null) {
-            return false;
-        }
-
-        List<EscherRecord> lst = spgr.getChildRecords();
-        boolean result = lst.remove(shape.getSpContainer());
-        spgr.setChildRecords(lst);
-        return result;
-    }
-
-    /**
-     * Called by SlideShow ater a new sheet is created
-     */
-    public void onCreate(){
-
-    }
-
-    /**
-     * Return the master sheet .
-     */
-    public abstract MasterSheet getMasterSheet();
-
-    /**
-     * Color scheme for this sheet.
-     */
-    public ColorSchemeAtom getColorScheme() {
-        return _container.getColorScheme();
-    }
-
-    /**
-     * Returns the background shape for this sheet.
-     *
-     * @return the background shape for this sheet.
-     */
-    public Background getBackground() {
-        if (_background == null) {
-            PPDrawing ppdrawing = getPPDrawing();
-
-            EscherContainerRecord dg = (EscherContainerRecord) ppdrawing.getEscherRecords()[0];
-            EscherContainerRecord spContainer = null;
-
-            for (Iterator<EscherRecord> it = dg.getChildIterator(); it.hasNext();) {
-                EscherRecord rec = it.next();
-                if (rec.getRecordId() == EscherContainerRecord.SP_CONTAINER) {
-                    spContainer = (EscherContainerRecord) rec;
-                    break;
-                }
-            }
-            _background = new Background(spContainer, null);
-            _background.setSheet(this);
-        }
-        return _background;
-    }
-
-    public void draw(Graphics2D graphics){
-
-    }
-
-    /**
-     * Subclasses should call this method and update the array of text runs
-     * when a text shape is added
-     *
-     * @param shape
-     */
-    protected void onAddTextShape(TextShape shape) {
-
-    }
-
-    /**
-     * Return placeholder by text type
-     *
-     * @param type  type of text, See {@link org.apache.poi.hslf.record.TextHeaderAtom}
-     * @return  <code>TextShape</code> or <code>null</code>
-     */
-    public TextShape getPlaceholderByTextType(int type){
-        HSLFShape[] shape = getShapes();
-        for (int i = 0; i < shape.length; i++) {
-            if(shape[i] instanceof TextShape){
-                TextShape tx = (TextShape)shape[i];
-                TextRun run = tx.getTextRun();
-                if(run != null && run.getRunType() == type){
-                    return tx;
-                }
-            }
-        }
-        return null;
-    }
-
-    /**
-     * Search text placeholer by its type
-     *
-     * @param type  type of placeholder to search. See {@link org.apache.poi.hslf.record.OEPlaceholderAtom}
-     * @return  <code>TextShape</code> or <code>null</code>
-     */
-    public TextShape getPlaceholder(int type){
-        HSLFShape[] shape = getShapes();
-        for (int i = 0; i < shape.length; i++) {
-            if(shape[i] instanceof TextShape){
-                TextShape tx = (TextShape)shape[i];
-                int placeholderId = 0;
-                OEPlaceholderAtom oep = tx.getPlaceholderAtom();
-                if(oep != null) {
-                    placeholderId = oep.getPlaceholderId();
-                } else {
-                    //special case for files saved in Office 2007
-                    RoundTripHFPlaceholder12 hldr = tx.getClientDataRecord(RecordTypes.RoundTripHFPlaceholder12.typeID);
-                    if(hldr != null) placeholderId = hldr.getPlaceholderId();
-                }
-                if(placeholderId == type){
-                    return tx;
-                }
-            }
-        }
-        return null;
-    }
-
-    /**
-     * Return programmable tag associated with this sheet, e.g. <code>___PPT12</code>.
-     *
-     * @return programmable tag associated with this sheet.
-     */
-    public String getProgrammableTag(){
-        String tag = null;
-        RecordContainer progTags = (RecordContainer)
-                getSheetContainer().findFirstOfType(
-                            RecordTypes.ProgTags.typeID
-        );
-        if(progTags != null) {
-            RecordContainer progBinaryTag = (RecordContainer)
-                progTags.findFirstOfType(
-                        RecordTypes.ProgBinaryTag.typeID
-            );
-            if(progBinaryTag != null) {
-                CString binaryTag = (CString)
-                    progBinaryTag.findFirstOfType(
-                            RecordTypes.CString.typeID
-                );
-                if(binaryTag != null) tag = binaryTag.getText();
-            }
-        }
-
-        return tag;
-
-    }
-
-    public Iterator<HSLFShape> iterator() {
-        return getShapeList().iterator();
-    }
-
-
-    /**
-     * Returns all shapes contained in this Sheet
-     *
-     * @return all shapes contained in this Sheet (Slide or Notes)
-     */
-    protected List<HSLFShape> getShapeList() {
-        PPDrawing ppdrawing = getPPDrawing();
-
-        EscherContainerRecord dg = (EscherContainerRecord) ppdrawing.getEscherRecords()[0];
-        EscherContainerRecord spgr = null;
-
-        for (Iterator<EscherRecord> it = dg.getChildIterator(); it.hasNext();) {
-            EscherRecord rec = it.next();
-            if (rec.getRecordId() == EscherContainerRecord.SPGR_CONTAINER) {
-                spgr = (EscherContainerRecord) rec;
-                break;
-            }
-        }
-        if (spgr == null) {
-            throw new IllegalStateException("spgr not found");
-        }
-
-        List<HSLFShape> shapeList = new ArrayList<HSLFShape>();
-        Iterator<EscherRecord> it = spgr.getChildIterator();
-        if (it.hasNext()) {
-            // skip first item
-            it.next();
-        }
-        for (; it.hasNext();) {
-            EscherContainerRecord sp = (EscherContainerRecord) it.next();
-            HSLFShape sh = ShapeFactory.createShape(sp, null);
-            sh.setSheet(this);
-            shapeList.add(sh);
-        }
-
-        return shapeList;
-    }
-
-}
diff --git a/src/scratchpad/src/org/apache/poi/hslf/model/SimpleShape.java b/src/scratchpad/src/org/apache/poi/hslf/model/SimpleShape.java
deleted file mode 100644 (file)
index bfe6a1d..0000000
+++ /dev/null
@@ -1,390 +0,0 @@
-/* ====================================================================
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-==================================================================== */
-
-package org.apache.poi.hslf.model;
-
-import java.awt.Color;
-import java.awt.Graphics2D;
-import java.awt.geom.AffineTransform;
-import java.awt.geom.Rectangle2D;
-import java.io.ByteArrayOutputStream;
-import java.util.ArrayList;
-
-import org.apache.poi.ddf.DefaultEscherRecordFactory;
-import org.apache.poi.ddf.EscherChildAnchorRecord;
-import org.apache.poi.ddf.EscherClientAnchorRecord;
-import org.apache.poi.ddf.EscherClientDataRecord;
-import org.apache.poi.ddf.EscherContainerRecord;
-import org.apache.poi.ddf.EscherOptRecord;
-import org.apache.poi.ddf.EscherProperties;
-import org.apache.poi.ddf.EscherRecord;
-import org.apache.poi.ddf.EscherSimpleProperty;
-import org.apache.poi.ddf.EscherSpRecord;
-import org.apache.poi.hslf.exceptions.HSLFException;
-import org.apache.poi.hslf.record.InteractiveInfo;
-import org.apache.poi.hslf.record.InteractiveInfoAtom;
-import org.apache.poi.hslf.record.Record;
-import org.apache.poi.sl.usermodel.ShapeContainer;
-import org.apache.poi.util.LittleEndian;
-
-/**
- *  An abstract simple (non-group) shape.
- *  This is the parent class for all primitive shapes like Line, Rectangle, etc.
- *
- *  @author Yegor Kozlov
- */
-public abstract class SimpleShape extends HSLFShape {
-
-    public final static double DEFAULT_LINE_WIDTH = 0.75;
-
-    /**
-     * Records stored in EscherClientDataRecord
-     */
-    protected Record[] _clientRecords;
-    protected EscherClientDataRecord _clientData;
-
-    /**
-     * Create a SimpleShape object and initialize it from the supplied Record container.
-     *
-     * @param escherRecord    <code>EscherSpContainer</code> container which holds information about this shape
-     * @param parent    the parent of the shape
-     */
-    protected SimpleShape(EscherContainerRecord escherRecord, ShapeContainer<HSLFShape> parent){
-        super(escherRecord, parent);
-    }
-
-    /**
-     * Create a new Shape
-     *
-     * @param isChild   <code>true</code> if the Line is inside a group, <code>false</code> otherwise
-     * @return the record container which holds this shape
-     */
-    protected EscherContainerRecord createSpContainer(boolean isChild) {
-        _escherContainer = new EscherContainerRecord();
-        _escherContainer.setRecordId( EscherContainerRecord.SP_CONTAINER );
-        _escherContainer.setOptions((short)15);
-
-        EscherSpRecord sp = new EscherSpRecord();
-        int flags = EscherSpRecord.FLAG_HAVEANCHOR | EscherSpRecord.FLAG_HASSHAPETYPE;
-        if (isChild) flags |= EscherSpRecord.FLAG_CHILD;
-        sp.setFlags(flags);
-        _escherContainer.addChildRecord(sp);
-
-        EscherOptRecord opt = new EscherOptRecord();
-        opt.setRecordId(EscherOptRecord.RECORD_ID);
-        _escherContainer.addChildRecord(opt);
-
-        EscherRecord anchor;
-        if(isChild) anchor = new EscherChildAnchorRecord();
-        else {
-            anchor = new EscherClientAnchorRecord();
-
-            //hack. internal variable EscherClientAnchorRecord.shortRecord can be
-            //initialized only in fillFields(). We need to set shortRecord=false;
-            byte[] header = new byte[16];
-            LittleEndian.putUShort(header, 0, 0);
-            LittleEndian.putUShort(header, 2, 0);
-            LittleEndian.putInt(header, 4, 8);
-            anchor.fillFields(header, 0, null);
-        }
-        _escherContainer.addChildRecord(anchor);
-
-        return _escherContainer;
-    }
-
-    /**
-     *  Returns width of the line in in points
-     */
-    public double getLineWidth(){
-        EscherOptRecord opt = getEscherOptRecord();
-        EscherSimpleProperty prop = getEscherProperty(opt, EscherProperties.LINESTYLE__LINEWIDTH);
-        double width = prop == null ? DEFAULT_LINE_WIDTH : (double)prop.getPropertyValue()/EMU_PER_POINT;
-        return width;
-    }
-
-    /**
-     *  Sets the width of line in in points
-     *  @param width  the width of line in in points
-     */
-    public void setLineWidth(double width){
-        EscherOptRecord opt = getEscherOptRecord();
-        setEscherProperty(opt, EscherProperties.LINESTYLE__LINEWIDTH, (int)(width*EMU_PER_POINT));
-    }
-
-    /**
-     * Sets the color of line
-     *
-     * @param color new color of the line
-     */
-    public void setLineColor(Color color){
-        EscherOptRecord opt = getEscherOptRecord();
-        if (color == null) {
-            setEscherProperty(opt, EscherProperties.LINESTYLE__NOLINEDRAWDASH, 0x80000);
-        } else {
-            int rgb = new Color(color.getBlue(), color.getGreen(), color.getRed(), 0).getRGB();
-            setEscherProperty(opt, EscherProperties.LINESTYLE__COLOR, rgb);
-            setEscherProperty(opt, EscherProperties.LINESTYLE__NOLINEDRAWDASH, color == null ? 0x180010 : 0x180018);
-        }
-    }
-
-    /**
-     * @return color of the line. If color is not set returns <code>java.awt.Color.black</code>
-     */
-    public Color getLineColor(){
-        EscherOptRecord opt = getEscherOptRecord();
-
-        EscherSimpleProperty p = getEscherProperty(opt, EscherProperties.LINESTYLE__NOLINEDRAWDASH);
-        if(p != null && (p.getPropertyValue() & 0x8) == 0) return null;
-
-        Color clr = getColor(EscherProperties.LINESTYLE__COLOR, EscherProperties.LINESTYLE__OPACITY, -1);
-        return clr == null ? Color.black : clr;
-    }
-
-    /**
-     * Gets line dashing. One of the PEN_* constants defined in this class.
-     *
-     * @return dashing of the line.
-     */
-    public int getLineDashing(){
-        EscherOptRecord opt = getEscherOptRecord();
-
-        EscherSimpleProperty prop = getEscherProperty(opt, EscherProperties.LINESTYLE__LINEDASHING);
-        return prop == null ? Line.PEN_SOLID : prop.getPropertyValue();
-    }
-
-    /**
-     * Sets line dashing. One of the PEN_* constants defined in this class.
-     *
-     * @param pen new style of the line.
-     */
-    public void setLineDashing(int pen){
-        EscherOptRecord opt = getEscherOptRecord();
-
-        setEscherProperty(opt, EscherProperties.LINESTYLE__LINEDASHING, pen == Line.PEN_SOLID ? -1 : pen);
-    }
-
-    /**
-     * Sets line style. One of the constants defined in this class.
-     *
-     * @param style new style of the line.
-     */
-    public void setLineStyle(int style){
-        EscherOptRecord opt = getEscherOptRecord();
-        setEscherProperty(opt, EscherProperties.LINESTYLE__LINESTYLE, style == Line.LINE_SIMPLE ? -1 : style);
-    }
-
-    /**
-     * Returns line style. One of the constants defined in this class.
-     *
-     * @return style of the line.
-     */
-    public int getStrokeStyle(){
-        EscherOptRecord opt = getEscherOptRecord();
-        EscherSimpleProperty prop = getEscherProperty(opt, EscherProperties.LINESTYLE__LINESTYLE);
-        return prop == null ? Line.LINE_SIMPLE : prop.getPropertyValue();
-    }
-
-    /**
-     * The color used to fill this shape.
-     */
-    public Color getFillColor(){
-        return getFill().getForegroundColor();
-    }
-
-    /**
-     * The color used to fill this shape.
-     *
-     * @param color the background color
-     */
-    public void setFillColor(Color color){
-        getFill().setForegroundColor(color);
-    }
-
-    /**
-     *
-     * @return 'absolute' anchor of this shape relative to the parent sheet
-     */
-    public Rectangle2D getLogicalAnchor2D(){
-        Rectangle2D anchor = getAnchor2D();
-
-        //if it is a groupped shape see if we need to transform the coordinates
-        if (getParent() != null){
-            ArrayList<HSLFGroupShape> lst = new ArrayList<HSLFGroupShape>();
-            for (ShapeContainer<HSLFShape> parent=this.getParent();
-                parent instanceof HSLFGroupShape;
-                parent = ((HSLFGroupShape)parent).getParent()) {
-                lst.add(0, (HSLFGroupShape)parent);
-            }
-            
-            AffineTransform tx = new AffineTransform();
-            for(HSLFGroupShape prnt : lst) {
-                Rectangle2D exterior = prnt.getAnchor2D();
-                Rectangle2D interior = prnt.getCoordinates();
-
-                double scaleX =  exterior.getWidth() / interior.getWidth();
-                double scaleY = exterior.getHeight() / interior.getHeight();
-
-                tx.translate(exterior.getX(), exterior.getY());
-                tx.scale(scaleX, scaleY);
-                tx.translate(-interior.getX(), -interior.getY());
-                
-            }
-            anchor = tx.createTransformedShape(anchor).getBounds2D();
-        }
-
-        double angle = getRotation();
-        if(angle != 0.){
-            double centerX = anchor.getX() + anchor.getWidth()/2;
-            double centerY = anchor.getY() + anchor.getHeight()/2;
-
-            AffineTransform trans = new AffineTransform();
-            trans.translate(centerX, centerY);
-            trans.rotate(Math.toRadians(angle));
-            trans.translate(-centerX, -centerY);
-
-            Rectangle2D rect = trans.createTransformedShape(anchor).getBounds2D();
-            if((anchor.getWidth() < anchor.getHeight() && rect.getWidth() > rect.getHeight()) ||
-                (anchor.getWidth() > anchor.getHeight() && rect.getWidth() < rect.getHeight())    ){
-                trans = new AffineTransform();
-                trans.translate(centerX, centerY);
-                trans.rotate(Math.PI/2);
-                trans.translate(-centerX, -centerY);
-                anchor = trans.createTransformedShape(anchor).getBounds2D();
-            }
-        }
-        return anchor;
-    }
-
-    public void draw(Graphics2D graphics){
-        AffineTransform at = graphics.getTransform();
-        ShapePainter.paint(this, graphics);
-        graphics.setTransform(at);
-    }
-
-    /**
-     *  Find a record in the underlying EscherClientDataRecord
-     *
-     * @param recordType type of the record to search
-     */
-    @SuppressWarnings("unchecked")
-    protected <T extends Record> T getClientDataRecord(int recordType) {
-
-        Record[] records = getClientRecords();
-        if(records != null) for (int i = 0; i < records.length; i++) {
-            if(records[i].getRecordType() == recordType){
-                return (T)records[i];
-            }
-        }
-        return null;
-    }
-
-    /**
-     * Search for EscherClientDataRecord, if found, convert its contents into an array of HSLF records
-     *
-     * @return an array of HSLF records contained in the shape's EscherClientDataRecord or <code>null</code>
-     */
-    protected Record[] getClientRecords() {
-        if(_clientData == null){
-            EscherRecord r = getEscherChild(EscherClientDataRecord.RECORD_ID);
-            //ddf can return EscherContainerRecord with recordId=EscherClientDataRecord.RECORD_ID
-            //convert in to EscherClientDataRecord on the fly
-            if(r != null && !(r instanceof EscherClientDataRecord)){
-                byte[] data = r.serialize();
-                r = new EscherClientDataRecord();
-                r.fillFields(data, 0, new DefaultEscherRecordFactory());
-            }
-            _clientData = (EscherClientDataRecord)r;
-        }
-        if(_clientData != null && _clientRecords == null){
-            byte[] data = _clientData.getRemainingData();
-            _clientRecords = Record.findChildRecords(data, 0, data.length);
-        }
-        return _clientRecords;
-    }
-
-    protected void updateClientData() {
-        if(_clientData != null && _clientRecords != null){
-            ByteArrayOutputStream out = new ByteArrayOutputStream();
-            try {
-                for (int i = 0; i < _clientRecords.length; i++) {
-                    _clientRecords[i].writeOut(out);
-                }
-            } catch(Exception e){
-                throw new HSLFException(e);
-            }
-            _clientData.setRemainingData(out.toByteArray());
-        }
-    }
-
-    public void setHyperlink(Hyperlink link){
-        if(link.getId() == -1){
-            throw new HSLFException("You must call SlideShow.addHyperlink(Hyperlink link) first");
-        }
-
-        EscherClientDataRecord cldata = new EscherClientDataRecord();
-        cldata.setOptions((short)0xF);
-        getSpContainer().addChildRecord(cldata); // TODO - junit to prove getChildRecords().add is wrong
-
-        InteractiveInfo info = new InteractiveInfo();
-        InteractiveInfoAtom infoAtom = info.getInteractiveInfoAtom();
-
-        switch(link.getType()){
-            case Hyperlink.LINK_FIRSTSLIDE:
-                infoAtom.setAction(InteractiveInfoAtom.ACTION_JUMP);
-                infoAtom.setJump(InteractiveInfoAtom.JUMP_FIRSTSLIDE);
-                infoAtom.setHyperlinkType(InteractiveInfoAtom.LINK_FirstSlide);
-                break;
-            case Hyperlink.LINK_LASTSLIDE:
-                infoAtom.setAction(InteractiveInfoAtom.ACTION_JUMP);
-                infoAtom.setJump(InteractiveInfoAtom.JUMP_LASTSLIDE);
-                infoAtom.setHyperlinkType(InteractiveInfoAtom.LINK_LastSlide);
-                break;
-            case Hyperlink.LINK_NEXTSLIDE:
-                infoAtom.setAction(InteractiveInfoAtom.ACTION_JUMP);
-                infoAtom.setJump(InteractiveInfoAtom.JUMP_NEXTSLIDE);
-                infoAtom.setHyperlinkType(InteractiveInfoAtom.LINK_NextSlide);
-                break;
-            case Hyperlink.LINK_PREVIOUSSLIDE:
-                infoAtom.setAction(InteractiveInfoAtom.ACTION_JUMP);
-                infoAtom.setJump(InteractiveInfoAtom.JUMP_PREVIOUSSLIDE);
-                infoAtom.setHyperlinkType(InteractiveInfoAtom.LINK_PreviousSlide);
-                break;
-            case Hyperlink.LINK_URL:
-                infoAtom.setAction(InteractiveInfoAtom.ACTION_HYPERLINK);
-                infoAtom.setJump(InteractiveInfoAtom.JUMP_NONE);
-                infoAtom.setHyperlinkType(InteractiveInfoAtom.LINK_Url);
-                break;
-            case Hyperlink.LINK_SLIDENUMBER:
-                infoAtom.setAction(InteractiveInfoAtom.ACTION_HYPERLINK);
-                infoAtom.setJump(InteractiveInfoAtom.JUMP_NONE);
-                infoAtom.setHyperlinkType(InteractiveInfoAtom.LINK_SlideNumber);
-                break;
-        }
-
-        infoAtom.setHyperlinkID(link.getId());
-
-        ByteArrayOutputStream out = new ByteArrayOutputStream();
-        try {
-            info.writeOut(out);
-        } catch(Exception e){
-            throw new HSLFException(e);
-        }
-        cldata.setRemainingData(out.toByteArray());
-
-    }
-
-}
diff --git a/src/scratchpad/src/org/apache/poi/hslf/model/Slide.java b/src/scratchpad/src/org/apache/poi/hslf/model/Slide.java
deleted file mode 100644 (file)
index 1db3173..0000000
+++ /dev/null
@@ -1,513 +0,0 @@
-/* ====================================================================
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-==================================================================== */
-
-package org.apache.poi.hslf.model;
-
-import java.awt.Graphics2D;
-import java.util.LinkedList;
-import java.util.List;
-
-import org.apache.poi.ddf.EscherContainerRecord;
-import org.apache.poi.ddf.EscherDgRecord;
-import org.apache.poi.ddf.EscherDggRecord;
-import org.apache.poi.ddf.EscherSpRecord;
-import org.apache.poi.hslf.record.ColorSchemeAtom;
-import org.apache.poi.hslf.record.Comment2000;
-import org.apache.poi.hslf.record.EscherTextboxWrapper;
-import org.apache.poi.hslf.record.HeadersFootersContainer;
-import org.apache.poi.hslf.record.Record;
-import org.apache.poi.hslf.record.RecordContainer;
-import org.apache.poi.hslf.record.RecordTypes;
-import org.apache.poi.hslf.record.SSSlideInfoAtom;
-import org.apache.poi.hslf.record.SlideAtom;
-import org.apache.poi.hslf.record.SlideListWithText.SlideAtomsSet;
-import org.apache.poi.hslf.record.StyleTextProp9Atom;
-import org.apache.poi.hslf.record.TextHeaderAtom;
-import org.apache.poi.sl.usermodel.ShapeType;
-
-/**
- * This class represents a slide in a PowerPoint Document. It allows
- *  access to the text within, and the layout. For now, it only does
- *  the text side of things though
- *
- * @author Nick Burch
- * @author Yegor Kozlov
- */
-
-public final class Slide extends Sheet {
-       private int _slideNo;
-       private SlideAtomsSet _atomSet;
-       private TextRun[] _runs;
-       private Notes _notes; // usermodel needs to set this
-
-       /**
-        * Constructs a Slide from the Slide record, and the SlideAtomsSet
-        *  containing the text.
-        * Initializes TextRuns, to provide easier access to the text
-        *
-        * @param slide the Slide record we're based on
-        * @param notes the Notes sheet attached to us
-        * @param atomSet the SlideAtomsSet to get the text from
-        */
-       public Slide(org.apache.poi.hslf.record.Slide slide, Notes notes, SlideAtomsSet atomSet, int slideIdentifier, int slideNumber) {
-        super(slide, slideIdentifier);
-
-               _notes = notes;
-               _atomSet = atomSet;
-               _slideNo = slideNumber;
-
-               // Grab the TextRuns from the PPDrawing
-               TextRun[] _otherRuns = findTextRuns(getPPDrawing());
-
-               // For the text coming in from the SlideAtomsSet:
-               // Build up TextRuns from pairs of TextHeaderAtom and
-               //  one of TextBytesAtom or TextCharsAtom
-               final List<TextRun> textRuns = new LinkedList<TextRun>();
-               if(_atomSet != null) {
-                       findTextRuns(_atomSet.getSlideRecords(),textRuns);
-               } else {
-                       // No text on the slide, must just be pictures
-               }
-
-               // Build an array, more useful than a vector
-               _runs = new TextRun[textRuns.size()+_otherRuns.length];
-               // Grab text from SlideListWithTexts entries
-               int i=0;
-               for(i=0; i<textRuns.size(); i++) {
-                       _runs[i] = textRuns.get(i);
-            _runs[i].setSheet(this);
-               }
-               // Grab text from slide's PPDrawing
-               for(int k=0; k<_otherRuns.length; i++, k++) {
-                       _runs[i] = _otherRuns[k];
-            _runs[i].setSheet(this);
-            _runs[i].setIndex(-1); // runs found in PPDrawing are not linked with SlideListWithTexts
-               }
-       }
-
-       /**
-       * Create a new Slide instance
-       * @param sheetNumber The internal number of the sheet, as used by PersistPtrHolder
-       * @param slideNumber The user facing number of the sheet
-       */
-       public Slide(int sheetNumber, int sheetRefId, int slideNumber){
-               super(new org.apache.poi.hslf.record.Slide(), sheetNumber);
-               _slideNo = slideNumber;
-        getSheetContainer().setSheetId(sheetRefId);
-       }
-
-       /**
-        * Sets the Notes that are associated with this. Updates the
-        *  references in the records to point to the new ID
-        */
-       public void setNotes(Notes notes) {
-               _notes = notes;
-
-               // Update the Slide Atom's ID of where to point to
-               SlideAtom sa = getSlideRecord().getSlideAtom();
-
-               if(notes == null) {
-                       // Set to 0
-                       sa.setNotesID(0);
-               } else {
-                       // Set to the value from the notes' sheet id
-                       sa.setNotesID(notes._getSheetNumber());
-               }
-       }
-
-       /**
-       * Changes the Slide's (external facing) page number.
-       * @see org.apache.poi.hslf.usermodel.SlideShow#reorderSlide(int, int)
-       */
-       public void setSlideNumber(int newSlideNumber) {
-               _slideNo = newSlideNumber;
-       }
-
-    /**
-     * Called by SlideShow ater a new slide is created.
-     * <p>
-     * For Slide we need to do the following:
-     *  <li> set id of the drawing group.
-     *  <li> set shapeId for the container descriptor and background
-     * </p>
-     */
-    public void onCreate(){
-        //initialize drawing group id
-        EscherDggRecord dgg = getSlideShow().getDocumentRecord().getPPDrawingGroup().getEscherDggRecord();
-        EscherContainerRecord dgContainer = (EscherContainerRecord)getSheetContainer().getPPDrawing().getEscherRecords()[0];
-        EscherDgRecord dg = (EscherDgRecord) HSLFShape.getEscherChild(dgContainer, EscherDgRecord.RECORD_ID);
-        int dgId = dgg.getMaxDrawingGroupId() + 1;
-        dg.setOptions((short)(dgId << 4));
-        dgg.setDrawingsSaved(dgg.getDrawingsSaved() + 1);
-        dgg.setMaxDrawingGroupId(dgId);
-
-        for (EscherContainerRecord c : dgContainer.getChildContainers()) {
-            EscherSpRecord spr = null;
-            switch(c.getRecordId()){
-                case EscherContainerRecord.SPGR_CONTAINER:
-                    EscherContainerRecord dc = (EscherContainerRecord)c.getChild(0);
-                    spr = dc.getChildById(EscherSpRecord.RECORD_ID);
-                    break;
-                case EscherContainerRecord.SP_CONTAINER:
-                    spr = c.getChildById(EscherSpRecord.RECORD_ID);
-                    break;
-            }
-            if(spr != null) spr.setShapeId(allocateShapeId());
-        }
-
-        //PPT doen't increment the number of saved shapes for group descriptor and background
-        dg.setNumShapes(1);
-    }
-
-       /**
-        * Create a <code>TextBox</code> object that represents the slide's title.
-        *
-        * @return <code>TextBox</code> object that represents the slide's title.
-        */
-       public TextBox addTitle() {
-               Placeholder pl = new Placeholder();
-               pl.setShapeType(ShapeType.RECT);
-               pl.getTextRun().setRunType(TextHeaderAtom.TITLE_TYPE);
-               pl.setText("Click to edit title");
-               pl.setAnchor(new java.awt.Rectangle(54, 48, 612, 90));
-               addShape(pl);
-               return pl;
-       }
-
-
-       // Complex Accesser methods follow
-
-       /**
-        * Return title of this slide or <code>null</code> if the slide does not have title.
-        * <p>
-        * The title is a run of text of type <code>TextHeaderAtom.CENTER_TITLE_TYPE</code> or
-        * <code>TextHeaderAtom.TITLE_TYPE</code>
-        * </p>
-        *
-        * @see TextHeaderAtom
-        *
-        * @return title of this slide
-        */
-       public String getTitle(){
-               TextRun[] txt = getTextRuns();
-               for (int i = 0; i < txt.length; i++) {
-                       int type = txt[i].getRunType();
-                       if (type == TextHeaderAtom.CENTER_TITLE_TYPE ||
-                       type == TextHeaderAtom.TITLE_TYPE ){
-                               String title = txt[i].getText();
-                               return title;
-                       }
-               }
-               return null;
-       }
-
-       // Simple Accesser methods follow
-
-       /**
-        * Returns an array of all the TextRuns found
-        */
-       public TextRun[] getTextRuns() { return _runs; }
-
-       /**
-        * Returns the (public facing) page number of this slide
-        */
-       public int getSlideNumber() { return _slideNo; }
-
-       /**
-        * Returns the underlying slide record
-        */
-       public org.apache.poi.hslf.record.Slide getSlideRecord() {
-        return (org.apache.poi.hslf.record.Slide)getSheetContainer();
-    }
-
-       /**
-        * Returns the Notes Sheet for this slide, or null if there isn't one
-        */
-       public Notes getNotesSheet() { return _notes; }
-
-       /**
-        * @return set of records inside <code>SlideListWithtext</code> container
-        *  which hold text data for this slide (typically for placeholders).
-        */
-       protected SlideAtomsSet getSlideAtomsSet() { return _atomSet;  }
-
-    /**
-     * Returns master sheet associated with this slide.
-     * It can be either SlideMaster or TitleMaster objects.
-     *
-     * @return the master sheet associated with this slide.
-     */
-     public MasterSheet getMasterSheet(){
-        SlideMaster[] master = getSlideShow().getSlidesMasters();
-        SlideAtom sa = getSlideRecord().getSlideAtom();
-        int masterId = sa.getMasterID();
-        MasterSheet sheet = null;
-        for (int i = 0; i < master.length; i++) {
-            if (masterId == master[i]._getSheetNumber()) {
-                sheet = master[i];
-                break;
-            }
-        }
-        if (sheet == null){
-            TitleMaster[] titleMaster = getSlideShow().getTitleMasters();
-            if(titleMaster != null) for (int i = 0; i < titleMaster.length; i++) {
-                if (masterId == titleMaster[i]._getSheetNumber()) {
-                    sheet = titleMaster[i];
-                    break;
-                }
-            }
-        }
-        return sheet;
-    }
-
-    /**
-     * Change Master of this slide.
-     */
-    public void setMasterSheet(MasterSheet master){
-        SlideAtom sa = getSlideRecord().getSlideAtom();
-        int sheetNo = master._getSheetNumber();
-        sa.setMasterID(sheetNo);
-    }
-
-    /**
-     * Sets whether this slide follows master background
-     *
-     * @param flag  <code>true</code> if the slide follows master,
-     * <code>false</code> otherwise
-     */
-    public void setFollowMasterBackground(boolean flag){
-        SlideAtom sa = getSlideRecord().getSlideAtom();
-        sa.setFollowMasterBackground(flag);
-    }
-
-    /**
-     * Whether this slide follows master sheet background
-     *
-     * @return <code>true</code> if the slide follows master background,
-     * <code>false</code> otherwise
-     */
-    public boolean getFollowMasterBackground(){
-        SlideAtom sa = getSlideRecord().getSlideAtom();
-        return sa.getFollowMasterBackground();
-    }
-
-    /**
-     * Sets whether this slide draws master sheet objects
-     *
-     * @param flag  <code>true</code> if the slide draws master sheet objects,
-     * <code>false</code> otherwise
-     */
-    public void setFollowMasterObjects(boolean flag){
-        SlideAtom sa = getSlideRecord().getSlideAtom();
-        sa.setFollowMasterObjects(flag);
-    }
-
-    /**
-     * Whether this slide follows master color scheme
-     *
-     * @return <code>true</code> if the slide follows master color scheme,
-     * <code>false</code> otherwise
-     */
-    public boolean getFollowMasterScheme(){
-        SlideAtom sa = getSlideRecord().getSlideAtom();
-        return sa.getFollowMasterScheme();
-    }
-
-    /**
-     * Sets whether this slide draws master color scheme
-     *
-     * @param flag  <code>true</code> if the slide draws master color scheme,
-     * <code>false</code> otherwise
-     */
-    public void setFollowMasterScheme(boolean flag){
-        SlideAtom sa = getSlideRecord().getSlideAtom();
-        sa.setFollowMasterScheme(flag);
-    }
-
-    /**
-     * Whether this slide draws master sheet objects
-     *
-     * @return <code>true</code> if the slide draws master sheet objects,
-     * <code>false</code> otherwise
-     */
-    public boolean getFollowMasterObjects(){
-        SlideAtom sa = getSlideRecord().getSlideAtom();
-        return sa.getFollowMasterObjects();
-    }
-
-    /**
-     * Background for this slide.
-     */
-     public Background getBackground() {
-        if(getFollowMasterBackground()) {
-            return getMasterSheet().getBackground();
-        }
-        return super.getBackground();
-    }
-
-    /**
-     * Color scheme for this slide.
-     */
-    public ColorSchemeAtom getColorScheme() {
-        if(getFollowMasterScheme()){
-            return getMasterSheet().getColorScheme();
-        }
-        return super.getColorScheme();
-    }
-
-    /**
-     * Get the comment(s) for this slide.
-     * Note - for now, only works on PPT 2000 and
-     *  PPT 2003 files. Doesn't work for PPT 97
-     *  ones, as they do their comments oddly.
-     */
-    public Comment[] getComments() {
-       // If there are any, they're in
-       //  ProgTags -> ProgBinaryTag -> BinaryTagData
-       RecordContainer progTags = (RecordContainer)
-                       getSheetContainer().findFirstOfType(
-                                               RecordTypes.ProgTags.typeID
-       );
-       if(progTags != null) {
-               RecordContainer progBinaryTag = (RecordContainer)
-                       progTags.findFirstOfType(
-                                       RecordTypes.ProgBinaryTag.typeID
-               );
-               if(progBinaryTag != null) {
-                       RecordContainer binaryTags = (RecordContainer)
-                               progBinaryTag.findFirstOfType(
-                                               RecordTypes.BinaryTagData.typeID
-                       );
-                       if(binaryTags != null) {
-                               // This is where they'll be
-                               int count = 0;
-                               for(int i=0; i<binaryTags.getChildRecords().length; i++) {
-                                       if(binaryTags.getChildRecords()[i] instanceof Comment2000) {
-                                               count++;
-                                       }
-                               }
-
-                               // Now build
-                               Comment[] comments = new Comment[count];
-                               count = 0;
-                               for(int i=0; i<binaryTags.getChildRecords().length; i++) {
-                                       if(binaryTags.getChildRecords()[i] instanceof Comment2000) {
-                                               comments[i] = new Comment(
-                                                               (Comment2000)binaryTags.getChildRecords()[i]
-                                               );
-                                               count++;
-                                       }
-                               }
-
-                               return comments;
-                       }
-               }
-       }
-
-       // None found
-       return new Comment[0];
-    }
-
-    public void draw(Graphics2D graphics){
-        MasterSheet master = getMasterSheet();
-        Background bg = getBackground();
-        if(bg != null)bg.draw(graphics);
-
-        if(getFollowMasterObjects()){
-            HSLFShape[] sh = master.getShapes();
-            for (int i = 0; i < sh.length; i++) {
-                if(MasterSheet.isPlaceholder(sh[i])) continue;
-
-                sh[i].draw(graphics);
-            }
-        }
-
-        HSLFShape[] sh = getShapes();
-        for (int i = 0; i < sh.length; i++) {
-            sh[i].draw(graphics);
-        }
-    }
-
-    /**
-     * Header / Footer settings for this slide.
-     *
-     * @return Header / Footer settings for this slide
-     */
-     public HeadersFooters getHeadersFooters(){
-        HeadersFootersContainer hdd = null;
-        Record[] ch = getSheetContainer().getChildRecords();
-        boolean ppt2007 = false;
-        for (int i = 0; i < ch.length; i++) {
-            if(ch[i] instanceof HeadersFootersContainer){
-                hdd = (HeadersFootersContainer)ch[i];
-            } else if (ch[i].getRecordType() == RecordTypes.RoundTripContentMasterId.typeID){
-                ppt2007 = true;
-            }
-        }
-        boolean newRecord = false;
-        if(hdd == null && !ppt2007) {
-            return getSlideShow().getSlideHeadersFooters();
-        }
-        if(hdd == null) {
-            hdd = new HeadersFootersContainer(HeadersFootersContainer.SlideHeadersFootersContainer);
-            newRecord = true;
-        }
-        return new HeadersFooters(hdd, this, newRecord, ppt2007);
-    }
-
-    protected void onAddTextShape(TextShape shape) {
-        TextRun run = shape.getTextRun();
-
-        if(_runs == null) _runs = new TextRun[]{run};
-        else {
-            TextRun[] tmp = new TextRun[_runs.length + 1];
-            System.arraycopy(_runs, 0, tmp, 0, _runs.length);
-            tmp[tmp.length-1] = run;
-            _runs = tmp;
-        }
-    }
-
-    /** This will return an atom per TextBox, so if the page has two text boxes the method should return two atoms. */
-    public StyleTextProp9Atom[] getNumberedListInfo() {
-       return this.getPPDrawing().getNumberedListInfo();
-    }
-
-       public EscherTextboxWrapper[] getTextboxWrappers() {
-               return this.getPPDrawing().getTextboxWrappers();
-       }
-
-       public void setHidden(boolean hidden) {
-               org.apache.poi.hslf.record.Slide cont = getSlideRecord();
-               
-               SSSlideInfoAtom slideInfo = 
-                       (SSSlideInfoAtom)cont.findFirstOfType(RecordTypes.SSSlideInfoAtom.typeID);
-               if (slideInfo == null) {
-                       slideInfo = new SSSlideInfoAtom();
-                       cont.addChildAfter(slideInfo, cont.findFirstOfType(RecordTypes.SlideAtom.typeID));
-               }
-               
-               slideInfo.setEffectTransitionFlagByBit(SSSlideInfoAtom.HIDDEN_BIT, hidden);
-       }
-       
-       public boolean getHidden() {
-               SSSlideInfoAtom slideInfo = 
-                       (SSSlideInfoAtom)getSlideRecord().findFirstOfType(RecordTypes.SSSlideInfoAtom.typeID);
-               return (slideInfo == null)
-                       ? false
-                       : slideInfo.getEffectTransitionFlagByBit(SSSlideInfoAtom.HIDDEN_BIT);
-       }
-}
index a103d09c777e082fa8c6a515b30049ff34fa79f8..859ceebb4280f18c7e691936d0c5ba961d2445d1 100644 (file)
@@ -20,7 +20,7 @@ package org.apache.poi.hslf.model;
 import org.apache.poi.hslf.model.textproperties.TextProp;
 import org.apache.poi.hslf.model.textproperties.TextPropCollection;
 import org.apache.poi.hslf.record.*;
-import org.apache.poi.hslf.usermodel.SlideShow;
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;
 
 /**
  * SlideMaster determines the graphics, layout, and formatting for all the slides in a given presentation.
@@ -29,8 +29,8 @@ import org.apache.poi.hslf.usermodel.SlideShow;
  *
  * @author Yegor Kozlov
  */
-public final class SlideMaster extends MasterSheet {
-    private TextRun[] _runs;
+public final class SlideMaster extends HSLFMasterSheet {
+    private HSLFTextParagraph[] _runs;
 
     /**
      * all TxMasterStyleAtoms available in this master
@@ -51,14 +51,14 @@ public final class SlideMaster extends MasterSheet {
     /**
      * Returns an array of all the TextRuns found
      */
-    public TextRun[] getTextRuns() {
+    public HSLFTextParagraph[] getTextRuns() {
         return _runs;
     }
 
     /**
      * Returns <code>null</code> since SlideMasters doen't have master sheet.
      */
-    public MasterSheet getMasterSheet() {
+    public HSLFMasterSheet getMasterSheet() {
         return null;
     }
 
@@ -112,7 +112,7 @@ public final class SlideMaster extends MasterSheet {
      * Assign SlideShow for this slide master.
      * (Used interanlly)
      */
-    public void setSlideShow(SlideShow ss) {
+    public void setSlideShow(HSLFSlideShow ss) {
         super.setSlideShow(ss);
 
         //after the slide show is assigned collect all available style records
@@ -130,12 +130,12 @@ public final class SlideMaster extends MasterSheet {
         }
     }
 
-    protected void onAddTextShape(TextShape shape) {
-        TextRun run = shape.getTextRun();
+    protected void onAddTextShape(HSLFTextShape shape) {
+        HSLFTextParagraph run = shape.getTextParagraph();
 
-        if(_runs == null) _runs = new TextRun[]{run};
+        if(_runs == null) _runs = new HSLFTextParagraph[]{run};
         else {
-            TextRun[] tmp = new TextRun[_runs.length + 1];
+            HSLFTextParagraph[] tmp = new HSLFTextParagraph[_runs.length + 1];
             System.arraycopy(_runs, 0, tmp, 0, _runs.length);
             tmp[tmp.length-1] = run;
             _runs = tmp;
index f94bd7f5b685c8ea1c03f4d5e7ed27db17ef7e6f..99ee13f211ace0d467be60402e1e1d43750f75cd 100644 (file)
@@ -115,7 +115,7 @@ public final class Table extends HSLFGroupShape {
         return cells.length;
     }
 
-    protected void afterInsert(Sheet sh){
+    protected void afterInsert(HSLFSheet sh){
         super.afterInsert(sh);
 
         EscherContainerRecord spCont = (EscherContainerRecord) getSpContainer().getChild(0);
@@ -165,7 +165,7 @@ public final class Table extends HSLFGroupShape {
         List<List<HSLFShape>> lst = new ArrayList<List<HSLFShape>>();
         List<HSLFShape> row = null;
         for (HSLFShape sh : shapeList) {
-            if(sh instanceof TextShape){
+            if(sh instanceof HSLFTextShape){
                 Rectangle anchor = sh.getAnchor();
                 if(anchor.y != y0){
                     y0 = anchor.y;
@@ -180,7 +180,7 @@ public final class Table extends HSLFGroupShape {
         for (int i = 0; i < lst.size(); i++) {
             row = lst.get(i);
             for (int j = 0; j < row.size(); j++) {
-                TextShape tx = (TextShape)row.get(j);
+                HSLFTextShape tx = (HSLFTextShape)row.get(j);
                 cells[i][j] = new TableCell(tx.getSpContainer(), getParent());
                 cells[i][j].setSheet(tx.getSheet());
             }
@@ -192,7 +192,7 @@ public final class Table extends HSLFGroupShape {
      *
      * @param sheet owner of this shape
      */
-    public void setSheet(Sheet sheet){
+    public void setSheet(HSLFSheet sheet){
         super.setSheet(sheet);
         if(cells == null) initTable();
     }
index 715181cfadd95330e49a30a97fa45477f810642e..18431a720ca090f0a5ab57354594f35b32cbed9b 100644 (file)
@@ -30,7 +30,7 @@ import org.apache.poi.sl.usermodel.ShapeType;
  *
  * @author Yegor Kozlov
  */
-public final class TableCell extends TextBox {
+public final class TableCell extends HSLFTextBox {
     protected static final int DEFAULT_WIDTH = 100;
     protected static final int DEFAULT_HEIGHT = 40;
 
diff --git a/src/scratchpad/src/org/apache/poi/hslf/model/TextBox.java b/src/scratchpad/src/org/apache/poi/hslf/model/TextBox.java
deleted file mode 100644 (file)
index dc5ac94..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-/* ====================================================================
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-==================================================================== */
-
-package org.apache.poi.hslf.model;
-
-import org.apache.poi.ddf.*;
-import org.apache.poi.sl.usermodel.ShapeContainer;
-import org.apache.poi.sl.usermodel.ShapeType;
-
-/**
- * Represents a TextFrame shape in PowerPoint.
- * <p>
- * Contains the text in a text frame as well as the properties and methods
- * that control alignment and anchoring of the text.
- * </p>
- *
- * @author Yegor Kozlov
- */
-public class TextBox extends TextShape {
-
-    /**
-     * Create a TextBox object and initialize it from the supplied Record container.
-     *
-     * @param escherRecord       <code>EscherSpContainer</code> container which holds information about this shape
-     * @param parent    the parent of the shape
-     */
-   protected TextBox(EscherContainerRecord escherRecord, ShapeContainer<HSLFShape> parent){
-        super(escherRecord, parent);
-
-    }
-
-    /**
-     * Create a new TextBox. This constructor is used when a new shape is created.
-     *
-     * @param parent    the parent of this Shape. For example, if this text box is a cell
-     * in a table then the parent is Table.
-     */
-    public TextBox(ShapeContainer<HSLFShape> parent){
-        super(parent);
-    }
-
-    /**
-     * Create a new TextBox. This constructor is used when a new shape is created.
-     *
-     */
-    public TextBox(){
-        this(null);
-    }
-
-    /**
-     * Create a new TextBox and initialize its internal structures
-     *
-     * @return the created <code>EscherContainerRecord</code> which holds shape data
-     */
-    protected EscherContainerRecord createSpContainer(boolean isChild){
-        _escherContainer = super.createSpContainer(isChild);
-
-        setShapeType(ShapeType.TEXT_BOX);
-
-        //set default properties for a TextBox
-        setEscherProperty(EscherProperties.FILL__FILLCOLOR, 0x8000004);
-        setEscherProperty(EscherProperties.FILL__FILLBACKCOLOR, 0x8000000);
-        setEscherProperty(EscherProperties.FILL__NOFILLHITTEST, 0x100000);
-        setEscherProperty(EscherProperties.LINESTYLE__COLOR, 0x8000001);
-        setEscherProperty(EscherProperties.LINESTYLE__NOLINEDRAWDASH, 0x80000);
-        setEscherProperty(EscherProperties.SHADOWSTYLE__COLOR, 0x8000002);
-
-        _txtrun = createTextRun();
-
-        return _escherContainer;
-    }
-
-    protected void setDefaultTextProperties(TextRun _txtrun){
-        setVerticalAlignment(TextBox.AnchorTop);
-        setEscherProperty(EscherProperties.TEXT__SIZE_TEXT_TO_FIT_SHAPE, 0x20002);
-    }
-
-}
index 4b8805c2664d194c2eb3e8cda4bddc55f31aa048..038e28a04d4be3b32ab1153c86b585424433d8d7 100644 (file)
@@ -35,7 +35,7 @@ import java.util.List;
 import java.util.Map;
 
 import org.apache.poi.hslf.record.TextRulerAtom;
-import org.apache.poi.hslf.usermodel.RichTextRun;
+import org.apache.poi.hslf.usermodel.HSLFTextRun;
 import org.apache.poi.util.POILogFactory;
 import org.apache.poi.util.POILogger;
 
@@ -57,27 +57,27 @@ public final class TextPainter {
      */
     protected static final char DEFAULT_BULLET_CHAR = '\u25a0';
 
-    protected TextShape _shape;
+    protected HSLFTextShape _shape;
 
-    public TextPainter(TextShape shape){
+    public TextPainter(HSLFTextShape shape){
         _shape = shape;
     }
 
-    public AttributedString getAttributedString(TextRun txrun) {
+    public AttributedString getAttributedString(HSLFTextParagraph txrun) {
         return getAttributedString(txrun, null);
     }
     
     /**
      * Convert the underlying set of rich text runs into java.text.AttributedString
      */
-    public AttributedString getAttributedString(TextRun txrun, Graphics2D graphics){
+    public AttributedString getAttributedString(HSLFTextParagraph txrun, Graphics2D graphics){
         String text = txrun.getText();
         //TODO: properly process tabs
         text = text.replace('\t', ' ');
         text = text.replace((char)160, ' ');
 
         AttributedString at = new AttributedString(text);
-        RichTextRun[] rt = txrun.getRichTextRuns();
+        HSLFTextRun[] rt = txrun.getRichTextRuns();
         for (int i = 0; i < rt.length; i++) {
             int start = rt[i].getStartIndex();
             int end = rt[i].getEndIndex();
@@ -157,15 +157,15 @@ public final class TextPainter {
         int valign = _shape.getVerticalAlignment();
         double y0 = anchor.getY();
         switch (valign){
-            case TextShape.AnchorTopBaseline:
-            case TextShape.AnchorTop:
+            case HSLFTextShape.AnchorTopBaseline:
+            case HSLFTextShape.AnchorTop:
                 y0 += _shape.getMarginTop();
                 break;
-            case TextShape.AnchorBottom:
+            case HSLFTextShape.AnchorBottom:
                 y0 += anchor.getHeight() - textHeight - _shape.getMarginBottom();
                 break;
             default:
-            case TextShape.AnchorMiddle:
+            case HSLFTextShape.AnchorMiddle:
                 float delta =  (float)anchor.getHeight() - textHeight - _shape.getMarginTop() - _shape.getMarginBottom();
                 y0 += _shape.getMarginTop()  + delta/2;
                 break;
@@ -205,14 +205,14 @@ public final class TextPainter {
             pen.y = y0;
             switch (elem[i]._align) {
                 default:
-                case TextShape.AlignLeft:
+                case HSLFTextShape.AlignLeft:
                     pen.x = anchor.getX() + _shape.getMarginLeft();
                     break;
-                case TextShape.AlignCenter:
+                case HSLFTextShape.AlignCenter:
                     pen.x = anchor.getX() + _shape.getMarginLeft() +
                             (anchor.getWidth() - elem[i].advance - _shape.getMarginLeft() - _shape.getMarginRight()) / 2;
                     break;
-                case TextShape.AlignRight:
+                case HSLFTextShape.AlignRight:
                     pen.x = anchor.getX() + _shape.getMarginLeft() +
                             (anchor.getWidth() - elem[i].advance - _shape.getMarginLeft() - _shape.getMarginRight());
                     break;
@@ -235,7 +235,7 @@ public final class TextPainter {
     }
     
     public TextElement[] getTextElements(float textWidth, FontRenderContext frc, Graphics2D graphics){
-        TextRun run = _shape.getTextRun();
+        HSLFTextParagraph run = _shape.getTextParagraph();
         if (run == null) return null;
 
         String text = run.getText();
@@ -257,7 +257,7 @@ public final class TextPainter {
             boolean prStart = text.charAt(startIndex) == '\n';
             if(prStart) measurer.setPosition(startIndex++);
 
-            RichTextRun rt = run.getRichTextRunAt(startIndex == text.length() ? (startIndex-1) : startIndex);
+            HSLFTextRun rt = run.getRichTextRunAt(startIndex == text.length() ? (startIndex-1) : startIndex);
             if(rt == null) {
                 logger.log(POILogger.WARN,  "RichTextRun not found at pos" + startIndex + "; text.length: " + text.length());
                 break;
@@ -283,7 +283,7 @@ public final class TextPainter {
 
             if(bulletOffset > 0 || prStart || startIndex == 0) wrappingWidth -= textOffset;
 
-            if (_shape.getWordWrap() == TextShape.WrapNone) {
+            if (_shape.getWordWrap() == HSLFTextShape.WrapNone) {
                 wrappingWidth = _shape.getSheet().getSlideShow().getPageSize().width;
             }
 
diff --git a/src/scratchpad/src/org/apache/poi/hslf/model/TextRun.java b/src/scratchpad/src/org/apache/poi/hslf/model/TextRun.java
deleted file mode 100644 (file)
index 755482f..0000000
+++ /dev/null
@@ -1,746 +0,0 @@
-/* ====================================================================
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-==================================================================== */
-
-package org.apache.poi.hslf.model;
-
-import java.util.ArrayList;
-import java.util.LinkedList;
-import java.util.List;
-
-import org.apache.poi.hslf.model.textproperties.TextPropCollection;
-import org.apache.poi.hslf.record.PPDrawing;
-import org.apache.poi.hslf.record.Record;
-import org.apache.poi.hslf.record.RecordContainer;
-import org.apache.poi.hslf.record.SlideListWithText;
-import org.apache.poi.hslf.record.StyleTextProp9Atom;
-import org.apache.poi.hslf.record.StyleTextPropAtom;
-import org.apache.poi.hslf.record.TextBytesAtom;
-import org.apache.poi.hslf.record.TextCharsAtom;
-import org.apache.poi.hslf.record.TextHeaderAtom;
-import org.apache.poi.hslf.record.TextRulerAtom;
-import org.apache.poi.hslf.record.TextSpecInfoAtom;
-import org.apache.poi.hslf.usermodel.RichTextRun;
-import org.apache.poi.hslf.usermodel.SlideShow;
-import org.apache.poi.util.StringUtil;
-
-/**
- * This class represents a run of text in a powerpoint document. That
- *  run could be text on a sheet, or text in a note.
- *  It is only a very basic class for now
- *
- * @author Nick Burch
- */
-
-public final class TextRun
-{
-       // Note: These fields are protected to help with unit testing
-       //   Other classes shouldn't really go playing with them!
-       protected TextHeaderAtom _headerAtom;
-       protected TextBytesAtom  _byteAtom;
-       protected TextCharsAtom  _charAtom;
-       protected StyleTextPropAtom _styleAtom;
-    protected TextRulerAtom _ruler;
-    protected boolean _isUnicode;
-       protected RichTextRun[] _rtRuns;
-       private SlideShow slideShow;
-    private Sheet _sheet;
-    private int shapeId;
-    private int slwtIndex = -1; //position in the owning SlideListWithText
-    /**
-     * all text run records that follow TextHeaderAtom.
-     * (there can be misc InteractiveInfo, TxInteractiveInfo and other records)
-     */
-    protected Record[] _records;
-       // private StyleTextPropAtom styleTextPropAtom;
-       private StyleTextProp9Atom styleTextProp9Atom;
-
-       /**
-       * Constructs a Text Run from a Unicode text block
-       *
-       * @param tha the TextHeaderAtom that defines what's what
-       * @param tca the TextCharsAtom containing the text
-       * @param sta the StyleTextPropAtom which defines the character stylings
-       */
-       public TextRun(TextHeaderAtom tha, TextCharsAtom tca, StyleTextPropAtom sta) {
-               this(tha,null,tca,sta);
-       }
-
-       /**
-       * Constructs a Text Run from a Ascii text block
-       *
-       * @param tha the TextHeaderAtom that defines what's what
-       * @param tba the TextBytesAtom containing the text
-       * @param sta the StyleTextPropAtom which defines the character stylings
-       */
-       public TextRun(TextHeaderAtom tha, TextBytesAtom tba, StyleTextPropAtom sta) {
-               this(tha,tba,null,sta);
-       }
-
-       /**
-        * Internal constructor and initializer
-        */
-       private TextRun(TextHeaderAtom tha, TextBytesAtom tba, TextCharsAtom tca, StyleTextPropAtom sta) {
-               _headerAtom = tha;
-               _styleAtom = sta;
-               if(tba != null) {
-                       _byteAtom = tba;
-                       _isUnicode = false;
-               } else {
-                       _charAtom = tca;
-                       _isUnicode = true;
-               }
-               String runRawText = getText();
-
-               // Figure out the rich text runs
-               LinkedList<TextPropCollection> pStyles = new LinkedList<TextPropCollection>();
-               LinkedList<TextPropCollection> cStyles = new LinkedList<TextPropCollection>();
-               if(_styleAtom != null) {
-                       // Get the style atom to grok itself
-                       _styleAtom.setParentTextSize(runRawText.length());
-                       pStyles = _styleAtom.getParagraphStyles();
-                       cStyles = _styleAtom.getCharacterStyles();
-               }
-        buildRichTextRuns(pStyles, cStyles, runRawText);
-       }
-
-       public void buildRichTextRuns(LinkedList<TextPropCollection> pStyles, LinkedList<TextPropCollection> cStyles, String runRawText){
-
-        // Handle case of no current style, with a default
-        if(pStyles.size() == 0 || cStyles.size() == 0) {
-            _rtRuns = new RichTextRun[1];
-            _rtRuns[0] = new RichTextRun(this, 0, runRawText.length());
-        } else {
-            // Build up Rich Text Runs, one for each
-            //  character/paragraph style pair
-            List<RichTextRun> rtrs = new ArrayList<RichTextRun>();
-
-            int pos = 0;
-
-            int curP = 0;
-            int curC = 0;
-            int pLenRemain = -1;
-            int cLenRemain = -1;
-
-            // Build one for each run with the same style
-            while(pos <= runRawText.length() && curP < pStyles.size() && curC < cStyles.size()) {
-                // Get the Props to use
-                TextPropCollection pProps = pStyles.get(curP);
-                TextPropCollection cProps = cStyles.get(curC);
-
-                int pLen = pProps.getCharactersCovered();
-                int cLen = cProps.getCharactersCovered();
-
-                // Handle new pass
-                boolean freshSet = false;
-                if(pLenRemain == -1 && cLenRemain == -1) { freshSet = true; }
-                if(pLenRemain == -1) { pLenRemain = pLen; }
-                if(cLenRemain == -1) { cLenRemain = cLen; }
-
-                // So we know how to build the eventual run
-                int runLen = -1;
-                boolean pShared = false;
-                boolean cShared = false;
-
-                // Same size, new styles - neither shared
-                if(pLen == cLen && freshSet) {
-                    runLen = cLen;
-                    pShared = false;
-                    cShared = false;
-                    curP++;
-                    curC++;
-                    pLenRemain = -1;
-                    cLenRemain = -1;
-                } else {
-                    // Some sharing
-
-                    // See if we are already in a shared block
-                    if(pLenRemain < pLen) {
-                        // Existing shared p block
-                        pShared = true;
-
-                        // Do we end with the c block, or either side of it?
-                        if(pLenRemain == cLenRemain) {
-                            // We end at the same time
-                            cShared = false;
-                            runLen = pLenRemain;
-                            curP++;
-                            curC++;
-                            pLenRemain = -1;
-                            cLenRemain = -1;
-                        } else if(pLenRemain < cLenRemain) {
-                            // We end before the c block
-                            cShared = true;
-                            runLen = pLenRemain;
-                            curP++;
-                            cLenRemain -= pLenRemain;
-                            pLenRemain = -1;
-                        } else {
-                            // We end after the c block
-                            cShared = false;
-                            runLen = cLenRemain;
-                            curC++;
-                            pLenRemain -= cLenRemain;
-                            cLenRemain = -1;
-                        }
-                    } else if(cLenRemain < cLen) {
-                        // Existing shared c block
-                        cShared = true;
-
-                        // Do we end with the p block, or either side of it?
-                        if(pLenRemain == cLenRemain) {
-                            // We end at the same time
-                            pShared = false;
-                            runLen = cLenRemain;
-                            curP++;
-                            curC++;
-                            pLenRemain = -1;
-                            cLenRemain = -1;
-                        } else if(cLenRemain < pLenRemain) {
-                            // We end before the p block
-                            pShared = true;
-                            runLen = cLenRemain;
-                            curC++;
-                            pLenRemain -= cLenRemain;
-                            cLenRemain = -1;
-                        } else {
-                            // We end after the p block
-                            pShared = false;
-                            runLen = pLenRemain;
-                            curP++;
-                            cLenRemain -= pLenRemain;
-                            pLenRemain = -1;
-                        }
-                    } else {
-                        // Start of a shared block
-                        if(pLenRemain < cLenRemain) {
-                            // Shared c block
-                            pShared = false;
-                            cShared = true;
-                            runLen = pLenRemain;
-                            curP++;
-                            cLenRemain -= pLenRemain;
-                            pLenRemain = -1;
-                        } else {
-                            // Shared p block
-                            pShared = true;
-                            cShared = false;
-                            runLen = cLenRemain;
-                            curC++;
-                            pLenRemain -= cLenRemain;
-                            cLenRemain = -1;
-                        }
-                    }
-                }
-
-                // Wind on
-                int prevPos = pos;
-                pos += runLen;
-                // Adjust for end-of-run extra 1 length
-                if(pos > runRawText.length()) {
-                    runLen--;
-                }
-
-                // Save
-                RichTextRun rtr = new RichTextRun(this, prevPos, runLen, pProps, cProps, pShared, cShared);
-                rtrs.add(rtr);
-            }
-
-            // Build the array
-            _rtRuns = rtrs.toArray(new RichTextRun[rtrs.size()]);
-        }
-
-    }
-
-    // Update methods follow
-
-       /**
-        * Adds the supplied text onto the end of the TextRun,
-        *  creating a new RichTextRun (returned) for it to
-        *  sit in.
-        * In many cases, before calling this, you'll want to add
-        *  a newline onto the end of your last RichTextRun
-        */
-       public RichTextRun appendText(String s) {
-               // We will need a StyleTextProp atom
-               ensureStyleAtomPresent();
-
-               // First up, append the text to the
-               //  underlying text atom
-               int oldSize = getRawText().length();
-               storeText(
-                               getRawText() + s
-               );
-
-               // If either of the previous styles overran
-               //  the text by one, we need to shuffle that
-               //  extra character onto the new ones
-               int pOverRun = _styleAtom.getParagraphTextLengthCovered() - oldSize;
-               int cOverRun = _styleAtom.getCharacterTextLengthCovered() - oldSize;
-               if(pOverRun > 0) {
-                       TextPropCollection tpc = _styleAtom.getParagraphStyles().getLast();
-                       tpc.updateTextSize(
-                                       tpc.getCharactersCovered() - pOverRun
-                       );
-               }
-               if(cOverRun > 0) {
-                       TextPropCollection tpc = _styleAtom.getCharacterStyles().getLast();
-                       tpc.updateTextSize(
-                                       tpc.getCharactersCovered() - cOverRun
-                       );
-               }
-
-               // Next, add the styles for its paragraph and characters
-               TextPropCollection newPTP =
-                       _styleAtom.addParagraphTextPropCollection(s.length()+pOverRun);
-               TextPropCollection newCTP =
-                       _styleAtom.addCharacterTextPropCollection(s.length()+cOverRun);
-
-               // Now, create the new RichTextRun
-               RichTextRun nr = new RichTextRun(
-                               this, oldSize, s.length(),
-                               newPTP, newCTP, false, false
-               );
-
-               // Add the new RichTextRun onto our list
-               RichTextRun[] newRuns = new RichTextRun[_rtRuns.length+1];
-               System.arraycopy(_rtRuns, 0, newRuns, 0, _rtRuns.length);
-               newRuns[newRuns.length-1] = nr;
-               _rtRuns = newRuns;
-
-               // And return the new run to the caller
-               return nr;
-       }
-
-       /**
-        * Saves the given string to the records. Doesn't
-        *  touch the stylings.
-        */
-       private void storeText(String s) {
-               // Store in the appropriate record
-               if(_isUnicode) {
-                       // The atom can safely convert to unicode
-                       _charAtom.setText(s);
-               } else {
-                       // Will it fit in a 8 bit atom?
-                       boolean hasMultibyte = StringUtil.hasMultibyte(s);
-                       if(! hasMultibyte) {
-                               // Fine to go into 8 bit atom
-                               byte[] text = new byte[s.length()];
-                               StringUtil.putCompressedUnicode(s,text,0);
-                               _byteAtom.setText(text);
-                       } else {
-                               // Need to swap a TextBytesAtom for a TextCharsAtom
-
-                               // Build the new TextCharsAtom
-                               _charAtom = new TextCharsAtom();
-                               _charAtom.setText(s);
-
-                               // Use the TextHeaderAtom to do the swap on the parent
-                               RecordContainer parent = _headerAtom.getParentRecord();
-                               Record[] cr = parent.getChildRecords();
-                               for(int i=0; i<cr.length; i++) {
-                                       // Look for TextBytesAtom
-                                       if(cr[i].equals(_byteAtom)) {
-                                               // Found it, so replace, then all done
-                                               cr[i] = _charAtom;
-                                               break;
-                                       }
-                               }
-
-                               // Flag the change
-                               _byteAtom = null;
-                               _isUnicode = true;
-                       }
-               }
-        /**
-         * If TextSpecInfoAtom is present, we must update the text size in it,
-         * otherwise the ppt will be corrupted
-         */
-        if(_records != null) for (int i = 0; i < _records.length; i++) {
-            if(_records[i] instanceof TextSpecInfoAtom){
-                TextSpecInfoAtom specAtom = (TextSpecInfoAtom)_records[i];
-                if((s.length() + 1) != specAtom.getCharactersCovered()){
-                    specAtom.reset(s.length() + 1);
-                }
-            }
-        }
-       }
-
-       /**
-        * Handles an update to the text stored in one of the Rich Text Runs
-        * @param run
-        * @param s
-        */
-       public void changeTextInRichTextRun(RichTextRun run, String s) {
-               // Figure out which run it is
-               int runID = -1;
-               for(int i=0; i<_rtRuns.length; i++) {
-                       if(run.equals(_rtRuns[i])) {
-                               runID = i;
-                       }
-               }
-               if(runID == -1) {
-                       throw new IllegalArgumentException("Supplied RichTextRun wasn't from this TextRun");
-               }
-
-               // Ensure a StyleTextPropAtom is present, adding if required
-               ensureStyleAtomPresent();
-
-               // Update the text length for its Paragraph and Character stylings
-               // If it's shared:
-               //   * calculate the new length based on the run's old text
-               //   * this should leave in any +1's for the end of block if needed
-               // If it isn't shared:
-               //   * reset the length, to the new string's length
-               //   * add on +1 if the last block
-               // The last run needs its stylings to be 1 longer than the raw
-               //  text is. This is to define the stylings that any new text
-               //  that is added will inherit
-               TextPropCollection pCol = run._getRawParagraphStyle();
-               TextPropCollection cCol = run._getRawCharacterStyle();
-               int newSize = s.length();
-               if(runID == _rtRuns.length-1) {
-                       newSize++;
-               }
-
-               if(run._isParagraphStyleShared()) {
-                       pCol.updateTextSize( pCol.getCharactersCovered() - run.getLength() + s.length() );
-               } else {
-                       pCol.updateTextSize(newSize);
-               }
-               if(run._isCharacterStyleShared()) {
-                       cCol.updateTextSize( cCol.getCharactersCovered() - run.getLength() + s.length() );
-               } else {
-                       cCol.updateTextSize(newSize);
-               }
-
-               // Build up the new text
-               // As we go through, update the start position for all subsequent runs
-               // The building relies on the old text still being present
-               StringBuffer newText = new StringBuffer();
-               for(int i=0; i<_rtRuns.length; i++) {
-                       int newStartPos = newText.length();
-
-                       // Build up the new text
-                       if(i != runID) {
-                               // Not the affected run, so keep old text
-                               newText.append(_rtRuns[i].getRawText());
-                       } else {
-                               // Affected run, so use new text
-                               newText.append(s);
-                       }
-
-                       // Do we need to update the start position of this run?
-                       // (Need to get the text before we update the start pos)
-                       if(i <= runID) {
-                               // Change is after this, so don't need to change start position
-                       } else {
-                               // Change has occured, so update start position
-                               _rtRuns[i].updateStartPosition(newStartPos);
-                       }
-               }
-
-               // Now we can save the new text
-               storeText(newText.toString());
-       }
-
-       /**
-        * Changes the text, and sets it all to have the same styling
-        *  as the the first character has.
-        * If you care about styling, do setText on a RichTextRun instead
-        */
-       public void setRawText(String s) {
-               // Save the new text to the atoms
-               storeText(s);
-               RichTextRun fst = _rtRuns[0];
-
-               // Finally, zap and re-do the RichTextRuns
-               for(int i=0; i<_rtRuns.length; i++) { _rtRuns[i] = null; }
-               _rtRuns = new RichTextRun[1];
-        _rtRuns[0] = fst;
-
-               // Now handle record stylings:
-               // If there isn't styling
-               //  no change, stays with no styling
-               // If there is styling:
-               //  everthing gets the same style that the first block has
-        // Update the lengths +1 for since these will be the only runs
-               if(_styleAtom != null) {
-                       LinkedList<TextPropCollection> pStyles = _styleAtom.getParagraphStyles();
-                       while(pStyles.size() > 1) { pStyles.removeLast(); }
-
-            if (!pStyles.isEmpty()) {
-                pStyles.getFirst().updateTextSize( s.length()+1 );
-            }
-
-                       LinkedList<TextPropCollection> cStyles = _styleAtom.getCharacterStyles();
-                       while(cStyles.size() > 1) { cStyles.removeLast(); }
-            
-            if (!cStyles.isEmpty()) {
-                cStyles.getFirst().updateTextSize( s.length()+1 );
-            }
-                       
-                       _rtRuns[0].setText(s);
-               } else {
-                       // Recreate rich text run with no styling
-                       _rtRuns[0] = new RichTextRun(this,0,s.length());
-               }
-
-       }
-
-    /**
-     * Changes the text.
-     * Converts '\r' into '\n'
-     */
-    public void setText(String s) {
-        String text = normalize(s);
-        setRawText(text);
-    }
-
-    /**
-        * Ensure a StyleTextPropAtom is present for this run,
-        *  by adding if required. Normally for internal TextRun use.
-        */
-       public void ensureStyleAtomPresent() {
-               if(_styleAtom != null) {
-                       // All there
-                       return;
-               }
-
-               // Create a new one at the right size
-               _styleAtom = new StyleTextPropAtom(getRawText().length() + 1);
-
-               // Use the TextHeader atom to get at the parent
-               RecordContainer runAtomsParent = _headerAtom.getParentRecord();
-
-               // Add the new StyleTextPropAtom after the TextCharsAtom / TextBytesAtom
-               Record addAfter = _byteAtom;
-               if(_byteAtom == null) { addAfter = _charAtom; }
-               runAtomsParent.addChildAfter(_styleAtom, addAfter);
-
-               // Feed this to our sole rich text run
-               if(_rtRuns.length != 1) {
-                       throw new IllegalStateException("Needed to add StyleTextPropAtom when had many rich text runs");
-               }
-               // These are the only styles for now
-               _rtRuns[0].supplyTextProps(
-                               _styleAtom.getParagraphStyles().get(0),
-                               _styleAtom.getCharacterStyles().get(0),
-                               false,
-                               false
-               );
-       }
-
-       // Accesser methods follow
-
-       /**
-        * Returns the text content of the run, which has been made safe
-        * for printing and other use.
-        */
-       public String getText() {
-               String rawText = getRawText();
-
-               // PowerPoint seems to store files with \r as the line break
-               // The messes things up on everything but a Mac, so translate
-               //  them to \n
-               String text = rawText.replace('\r','\n');
-
-        int type = _headerAtom == null ? 0 : _headerAtom.getTextType();
-        if(type == TextHeaderAtom.TITLE_TYPE || type == TextHeaderAtom.CENTER_TITLE_TYPE){
-            //0xB acts like cariage return in page titles and like blank in the others
-            text = text.replace((char) 0x0B, '\n');
-        } else {
-            text = text.replace((char) 0x0B, ' ');
-        }
-               return text;
-       }
-
-       /**
-       * Returns the raw text content of the run. This hasn't had any
-       *  changes applied to it, and so is probably unlikely to print
-       *  out nicely.
-       */
-       public String getRawText() {
-               if(_isUnicode) {
-                       return _charAtom.getText();
-               }
-               return _byteAtom.getText();
-       }
-
-       /**
-        * Fetch the rich text runs (runs of text with the same styling) that
-        *  are contained within this block of text
-        */
-       public RichTextRun[] getRichTextRuns() {
-               return  _rtRuns;
-       }
-
-       /**
-       * Returns the type of the text, from the TextHeaderAtom.
-       * Possible values can be seen from TextHeaderAtom
-       * @see org.apache.poi.hslf.record.TextHeaderAtom
-       */
-       public int getRunType() {
-               return _headerAtom.getTextType();
-       }
-
-       /**
-       * Changes the type of the text. Values should be taken
-       *  from TextHeaderAtom. No checking is done to ensure you
-       *  set this to a valid value!
-       * @see org.apache.poi.hslf.record.TextHeaderAtom
-       */
-       public void setRunType(int type) {
-               _headerAtom.setTextType(type);
-       }
-
-       /**
-        * Supply the SlideShow we belong to.
-        * Also passes it on to our child RichTextRuns
-        */
-       public void supplySlideShow(SlideShow ss) {
-               slideShow = ss;
-               if(_rtRuns != null) {
-                       for(int i=0; i<_rtRuns.length; i++) {
-                               _rtRuns[i].supplySlideShow(slideShow);
-                       }
-               }
-       }
-
-    public void setSheet(Sheet sheet){
-        this._sheet = sheet;
-    }
-
-    public Sheet getSheet(){
-        return this._sheet;
-    }
-
-    /**
-     * @return  Shape ID
-     */
-    protected int getShapeId(){
-        return shapeId;
-    }
-
-    /**
-     *  @param id Shape ID
-     */
-    protected void setShapeId(int id){
-        shapeId = id;
-    }
-
-    /**
-     * @return  0-based index of the text run in the SLWT container
-     */
-    protected int getIndex(){
-        return slwtIndex;
-    }
-
-    /**
-     *  @param id 0-based index of the text run in the SLWT container
-     */
-    protected void setIndex(int id){
-        slwtIndex = id;
-    }
-    
-    /**
-     * Is this Text Run one from a {@link PPDrawing}, or is it
-     *  one from the {@link SlideListWithText}?
-     */
-    public boolean isDrawingBased() {
-        return (slwtIndex == -1);
-    }
-
-    /**
-     * Returns the array of all hyperlinks in this text run
-     *
-     * @return the array of all hyperlinks in this text run
-     * or <code>null</code> if not found.
-     */
-    public Hyperlink[] getHyperlinks(){
-        return Hyperlink.find(this);
-    }
-
-    /**
-     * Fetch RichTextRun at a given position
-     *
-     * @param pos 0-based index in the text
-     * @return RichTextRun or null if not found
-     */
-    public RichTextRun getRichTextRunAt(int pos){
-        for (int i = 0; i < _rtRuns.length; i++) {
-            int start = _rtRuns[i].getStartIndex();
-            int end = _rtRuns[i].getEndIndex();
-            if(pos >= start && pos < end) return _rtRuns[i];
-        }
-        return null;
-    }
-
-    public TextRulerAtom getTextRuler(){
-        if(_ruler == null){
-            if(_records != null) for (int i = 0; i < _records.length; i++) {
-                if(_records[i] instanceof TextRulerAtom) {
-                    _ruler = (TextRulerAtom)_records[i];
-                    break;
-                }
-            }
-
-        }
-        return _ruler;
-
-    }
-
-    public TextRulerAtom createTextRuler(){
-        _ruler = getTextRuler();
-        if(_ruler == null){
-            _ruler = TextRulerAtom.getParagraphInstance();
-            _headerAtom.getParentRecord().appendChildRecord(_ruler);
-        }
-        return _ruler;
-    }
-
-    /**
-     * Returns a new string with line breaks converted into internal ppt representation
-     */
-    public String normalize(String s){
-        String ns = s.replaceAll("\\r?\\n", "\r");
-        return ns;
-    }
-
-    /**
-     * Returns records that make up this text run
-     *
-     * @return text run records
-     */
-    public Record[] getRecords(){
-        return _records;
-    }
-    /** Numbered List info */
-       public void setStyleTextProp9Atom(final StyleTextProp9Atom styleTextProp9Atom) {
-               this.styleTextProp9Atom = styleTextProp9Atom;
-       }
-    /** Numbered List info */
-       public StyleTextProp9Atom getStyleTextProp9Atom() {
-               return this.styleTextProp9Atom;
-       }
-
-    /** Characters covered */
-       public StyleTextPropAtom getStyleTextPropAtom() {
-               return this._styleAtom;         
-       }
-
-}
diff --git a/src/scratchpad/src/org/apache/poi/hslf/model/TextShape.java b/src/scratchpad/src/org/apache/poi/hslf/model/TextShape.java
deleted file mode 100644 (file)
index 3f47ae6..0000000
+++ /dev/null
@@ -1,641 +0,0 @@
-/* ====================================================================
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-==================================================================== */
-
-package org.apache.poi.hslf.model;
-
-import java.awt.Font;
-import java.awt.Graphics2D;
-import java.awt.Rectangle;
-import java.awt.font.FontRenderContext;
-import java.awt.font.TextLayout;
-import java.awt.geom.AffineTransform;
-import java.awt.geom.Rectangle2D;
-import java.io.IOException;
-
-import org.apache.poi.ddf.EscherContainerRecord;
-import org.apache.poi.ddf.EscherOptRecord;
-import org.apache.poi.ddf.EscherProperties;
-import org.apache.poi.ddf.EscherSimpleProperty;
-import org.apache.poi.ddf.EscherSpRecord;
-import org.apache.poi.ddf.EscherTextboxRecord;
-import org.apache.poi.hslf.exceptions.HSLFException;
-import org.apache.poi.hslf.record.EscherTextboxWrapper;
-import org.apache.poi.hslf.record.InteractiveInfo;
-import org.apache.poi.hslf.record.InteractiveInfoAtom;
-import org.apache.poi.hslf.record.OEPlaceholderAtom;
-import org.apache.poi.hslf.record.OutlineTextRefAtom;
-import org.apache.poi.hslf.record.PPDrawing;
-import org.apache.poi.hslf.record.Record;
-import org.apache.poi.hslf.record.RecordTypes;
-import org.apache.poi.hslf.record.RoundTripHFPlaceholder12;
-import org.apache.poi.hslf.record.StyleTextPropAtom;
-import org.apache.poi.hslf.record.TextBytesAtom;
-import org.apache.poi.hslf.record.TextCharsAtom;
-import org.apache.poi.hslf.record.TextHeaderAtom;
-import org.apache.poi.hslf.record.TxInteractiveInfoAtom;
-import org.apache.poi.hslf.usermodel.RichTextRun;
-import org.apache.poi.sl.usermodel.ShapeContainer;
-import org.apache.poi.util.POILogger;
-
-/**
- * A common superclass of all shapes that can hold text.
- *
- * @author Yegor Kozlov
- */
-public abstract class TextShape extends SimpleShape {
-
-    /**
-     * How to anchor the text
-     */
-    public static final int AnchorTop = 0;
-    public static final int AnchorMiddle = 1;
-    public static final int AnchorBottom = 2;
-    public static final int AnchorTopCentered = 3;
-    public static final int AnchorMiddleCentered = 4;
-    public static final int AnchorBottomCentered = 5;
-    public static final int AnchorTopBaseline = 6;
-    public static final int AnchorBottomBaseline = 7;
-    public static final int AnchorTopCenteredBaseline = 8;
-    public static final int AnchorBottomCenteredBaseline = 9;
-
-    /**
-     * How to wrap the text
-     */
-    public static final int WrapSquare = 0;
-    public static final int WrapByPoints = 1;
-    public static final int WrapNone = 2;
-    public static final int WrapTopBottom = 3;
-    public static final int WrapThrough = 4;
-
-    /**
-     * How to align the text
-     */
-    public static final int AlignLeft = 0;
-    public static final int AlignCenter = 1;
-    public static final int AlignRight = 2;
-    public static final int AlignJustify = 3;
-
-    /**
-     * TextRun object which holds actual text and format data
-     */
-    protected TextRun _txtrun;
-
-    /**
-     * Escher container which holds text attributes such as
-     * TextHeaderAtom, TextBytesAtom ot TextCharsAtom, StyleTextPropAtom etc.
-     */
-    protected EscherTextboxWrapper _txtbox;
-
-    /**
-     * Used to calculate text bounds
-     */
-    protected static final FontRenderContext _frc = new FontRenderContext(null, true, true);
-
-    /**
-     * Create a TextBox object and initialize it from the supplied Record container.
-     *
-     * @param escherRecord       <code>EscherSpContainer</code> container which holds information about this shape
-     * @param parent    the parent of the shape
-     */
-   protected TextShape(EscherContainerRecord escherRecord, ShapeContainer<HSLFShape> parent){
-        super(escherRecord, parent);
-
-    }
-
-    /**
-     * Create a new TextBox. This constructor is used when a new shape is created.
-     *
-     * @param parent    the parent of this Shape. For example, if this text box is a cell
-     * in a table then the parent is Table.
-     */
-    public TextShape(ShapeContainer<HSLFShape> parent){
-        super(null, parent);
-        _escherContainer = createSpContainer(parent instanceof HSLFGroupShape);
-    }
-
-    /**
-     * Create a new TextBox. This constructor is used when a new shape is created.
-     *
-     */
-    public TextShape(){
-        this(null);
-    }
-
-    public TextRun createTextRun(){
-        _txtbox = getEscherTextboxWrapper();
-        if(_txtbox == null) _txtbox = new EscherTextboxWrapper();
-
-        _txtrun = getTextRun();
-        if(_txtrun == null){
-            TextHeaderAtom tha = new TextHeaderAtom();
-            tha.setParentRecord(_txtbox);
-            _txtbox.appendChildRecord(tha);
-
-            TextCharsAtom tca = new TextCharsAtom();
-            _txtbox.appendChildRecord(tca);
-
-            StyleTextPropAtom sta = new StyleTextPropAtom(0);
-            _txtbox.appendChildRecord(sta);
-
-            _txtrun = new TextRun(tha,tca,sta);
-            _txtrun._records = new Record[]{tha, tca, sta};
-            _txtrun.setText("");
-
-            _escherContainer.addChildRecord(_txtbox.getEscherRecord());
-
-            setDefaultTextProperties(_txtrun);
-        }
-
-        return _txtrun;
-    }
-
-    /**
-     * Set default properties for the  TextRun.
-     * Depending on the text and shape type the defaults are different:
-     *   TextBox: align=left, valign=top
-     *   AutoShape: align=center, valign=middle
-     *
-     */
-    protected void setDefaultTextProperties(TextRun _txtrun){
-
-    }
-
-    /**
-     * Returns the text contained in this text frame.
-     *
-     * @return the text string for this textbox.
-     */
-     public String getText(){
-        TextRun tx = getTextRun();
-        return tx == null ? null : tx.getText();
-    }
-
-    /**
-     * Sets the text contained in this text frame.
-     *
-     * @param text the text string used by this object.
-     */
-    public void setText(String text){
-        TextRun tx = getTextRun();
-        if(tx == null){
-            tx = createTextRun();
-        }
-        tx.setText(text);
-        setTextId(text.hashCode());
-    }
-
-    /**
-     * When a textbox is added to  a sheet we need to tell upper-level
-     * <code>PPDrawing</code> about it.
-     *
-     * @param sh the sheet we are adding to
-     */
-    protected void afterInsert(Sheet sh){
-        super.afterInsert(sh);
-
-        EscherTextboxWrapper _txtbox = getEscherTextboxWrapper();
-        if(_txtbox != null){
-            PPDrawing ppdrawing = sh.getPPDrawing();
-            ppdrawing.addTextboxWrapper(_txtbox);
-            // Ensure the escher layer knows about the added records
-            try {
-                _txtbox.writeOut(null);
-            } catch (IOException e){
-                throw new HSLFException(e);
-            }
-            if(getAnchor().equals(new Rectangle()) && !"".equals(getText())) resizeToFitText();
-        }
-        if(_txtrun != null) {
-            _txtrun.setShapeId(getShapeId());
-            sh.onAddTextShape(this);
-        }
-    }
-
-    protected EscherTextboxWrapper getEscherTextboxWrapper(){
-        if(_txtbox == null){
-            EscherTextboxRecord textRecord = getEscherChild(EscherTextboxRecord.RECORD_ID);
-            if(textRecord != null) _txtbox = new EscherTextboxWrapper(textRecord);
-        }
-        return _txtbox;
-    }
-    /**
-     * Adjust the size of the TextShape so it encompasses the text inside it.
-     *
-     * @return a <code>Rectangle2D</code> that is the bounds of this <code>TextShape</code>.
-     */
-    public Rectangle2D resizeToFitText(){
-        String txt = getText();
-        if(txt == null || txt.length() == 0) return new Rectangle2D.Float();
-
-        RichTextRun rt = getTextRun().getRichTextRuns()[0];
-        int size = rt.getFontSize();
-        int style = 0;
-        if (rt.isBold()) style |= Font.BOLD;
-        if (rt.isItalic()) style |= Font.ITALIC;
-        String fntname = rt.getFontName();
-        Font font = new Font(fntname, style, size);
-
-        float width = 0, height = 0, leading = 0;
-        String[] lines = txt.split("\n");
-        for (int i = 0; i < lines.length; i++) {
-            if(lines[i].length() == 0) continue;
-
-            TextLayout layout = new TextLayout(lines[i], font, _frc);
-
-            leading = Math.max(leading, layout.getLeading());
-            width = Math.max(width, layout.getAdvance());
-            height = Math.max(height, (height + (layout.getDescent() + layout.getAscent())));
-        }
-
-        // add one character to width
-        Rectangle2D charBounds = font.getMaxCharBounds(_frc);
-        width += getMarginLeft() + getMarginRight() + charBounds.getWidth();
-
-        // add leading to height
-        height += getMarginTop() + getMarginBottom() + leading;
-
-        Rectangle2D anchor = getAnchor2D();
-        anchor.setRect(anchor.getX(), anchor.getY(), width, height);
-        setAnchor(anchor);
-
-        return anchor;
-    }
-
-    /**
-     * Returns the type of vertical alignment for the text.
-     * One of the <code>Anchor*</code> constants defined in this class.
-     *
-     * @return the type of alignment
-     */
-    public int getVerticalAlignment(){
-        EscherOptRecord opt = getEscherOptRecord();
-        EscherSimpleProperty prop = getEscherProperty(opt, EscherProperties.TEXT__ANCHORTEXT);
-        int valign = TextShape.AnchorTop;
-        if (prop == null){
-            /**
-             * If vertical alignment was not found in the shape properties then try to
-             * fetch the master shape and search for the align property there.
-             */
-            int type = getTextRun().getRunType();
-            MasterSheet master = getSheet().getMasterSheet();
-            if(master != null){
-                TextShape masterShape = master.getPlaceholderByTextType(type);
-                if(masterShape != null) valign = masterShape.getVerticalAlignment();
-            } else {
-                //not found in the master sheet. Use the hardcoded defaults.
-                switch (type){
-                     case TextHeaderAtom.TITLE_TYPE:
-                     case TextHeaderAtom.CENTER_TITLE_TYPE:
-                         valign = TextShape.AnchorMiddle;
-                         break;
-                     default:
-                         valign = TextShape.AnchorTop;
-                         break;
-                 }
-            }
-        } else {
-            valign = prop.getPropertyValue();
-        }
-        return valign;
-    }
-
-    /**
-     * Sets the type of vertical alignment for the text.
-     * One of the <code>Anchor*</code> constants defined in this class.
-     *
-     * @param align - the type of alignment
-     */
-    public void setVerticalAlignment(int align){
-        setEscherProperty(EscherProperties.TEXT__ANCHORTEXT, align);
-    }
-
-    /**
-     * Sets the type of horizontal alignment for the text.
-     * One of the <code>Align*</code> constants defined in this class.
-     *
-     * @param align - the type of horizontal alignment
-     */
-    public void setHorizontalAlignment(int align){
-        TextRun tx = getTextRun();
-        if(tx != null) tx.getRichTextRuns()[0].setAlignment(align);
-    }
-
-    /**
-     * Gets the type of horizontal alignment for the text.
-     * One of the <code>Align*</code> constants defined in this class.
-     *
-     * @return align - the type of horizontal alignment
-     */
-    public int getHorizontalAlignment(){
-        TextRun tx = getTextRun();
-        return tx == null ? -1 : tx.getRichTextRuns()[0].getAlignment();
-    }
-
-    /**
-     * Returns the distance (in points) between the bottom of the text frame
-     * and the bottom of the inscribed rectangle of the shape that contains the text.
-     * Default value is 1/20 inch.
-     *
-     * @return the botom margin
-     */
-    public float getMarginBottom(){
-        EscherOptRecord opt = getEscherOptRecord();
-        EscherSimpleProperty prop = getEscherProperty(opt, EscherProperties.TEXT__TEXTBOTTOM);
-        int val = prop == null ? EMU_PER_INCH/20 : prop.getPropertyValue();
-        return (float)val/EMU_PER_POINT;
-    }
-
-    /**
-     * Sets the botom margin.
-     * @see #getMarginBottom()
-     *
-     * @param margin    the bottom margin
-     */
-    public void setMarginBottom(float margin){
-        setEscherProperty(EscherProperties.TEXT__TEXTBOTTOM, (int)(margin*EMU_PER_POINT));
-    }
-
-    /**
-     *  Returns the distance (in points) between the left edge of the text frame
-     *  and the left edge of the inscribed rectangle of the shape that contains
-     *  the text.
-     *  Default value is 1/10 inch.
-     *
-     * @return the left margin
-     */
-    public float getMarginLeft(){
-        EscherOptRecord opt = getEscherOptRecord();
-        EscherSimpleProperty prop = getEscherProperty(opt, EscherProperties.TEXT__TEXTLEFT);
-        int val = prop == null ? EMU_PER_INCH/10 : prop.getPropertyValue();
-        return (float)val/EMU_PER_POINT;
-    }
-
-    /**
-     * Sets the left margin.
-     * @see #getMarginLeft()
-     *
-     * @param margin    the left margin
-     */
-    public void setMarginLeft(float margin){
-        setEscherProperty(EscherProperties.TEXT__TEXTLEFT, (int)(margin*EMU_PER_POINT));
-    }
-
-    /**
-     *  Returns the distance (in points) between the right edge of the
-     *  text frame and the right edge of the inscribed rectangle of the shape
-     *  that contains the text.
-     *  Default value is 1/10 inch.
-     *
-     * @return the right margin
-     */
-    public float getMarginRight(){
-        EscherOptRecord opt = getEscherOptRecord();
-        EscherSimpleProperty prop = getEscherProperty(opt, EscherProperties.TEXT__TEXTRIGHT);
-        int val = prop == null ? EMU_PER_INCH/10 : prop.getPropertyValue();
-        return (float)val/EMU_PER_POINT;
-    }
-
-    /**
-     * Sets the right margin.
-     * @see #getMarginRight()
-     *
-     * @param margin    the right margin
-     */
-    public void setMarginRight(float margin){
-        setEscherProperty(EscherProperties.TEXT__TEXTRIGHT, (int)(margin*EMU_PER_POINT));
-    }
-
-     /**
-     *  Returns the distance (in points) between the top of the text frame
-     *  and the top of the inscribed rectangle of the shape that contains the text.
-     *  Default value is 1/20 inch.
-     *
-     * @return the top margin
-     */
-    public float getMarginTop(){
-        EscherOptRecord opt = getEscherOptRecord();
-        EscherSimpleProperty prop = getEscherProperty(opt, EscherProperties.TEXT__TEXTTOP);
-        int val = prop == null ? EMU_PER_INCH/20 : prop.getPropertyValue();
-        return (float)val/EMU_PER_POINT;
-    }
-
-   /**
-     * Sets the top margin.
-     * @see #getMarginTop()
-     *
-     * @param margin    the top margin
-     */
-    public void setMarginTop(float margin){
-        setEscherProperty(EscherProperties.TEXT__TEXTTOP, (int)(margin*EMU_PER_POINT));
-    }
-
-
-    /**
-     * Returns the value indicating word wrap.
-     *
-     * @return the value indicating word wrap.
-     *  Must be one of the <code>Wrap*</code> constants defined in this class.
-     */
-    public int getWordWrap(){
-        EscherOptRecord opt = getEscherOptRecord();
-        EscherSimpleProperty prop = getEscherProperty(opt, EscherProperties.TEXT__WRAPTEXT);
-        return prop == null ? WrapSquare : prop.getPropertyValue();
-    }
-
-    /**
-     *  Specifies how the text should be wrapped
-     *
-     * @param wrap  the value indicating how the text should be wrapped.
-     *  Must be one of the <code>Wrap*</code> constants defined in this class.
-     */
-    public void setWordWrap(int wrap){
-        setEscherProperty(EscherProperties.TEXT__WRAPTEXT, wrap);
-    }
-
-    /**
-     * @return id for the text.
-     */
-    public int getTextId(){
-        EscherOptRecord opt = getEscherOptRecord();
-        EscherSimpleProperty prop = getEscherProperty(opt, EscherProperties.TEXT__TEXTID);
-        return prop == null ? 0 : prop.getPropertyValue();
-    }
-
-    /**
-     * Sets text ID
-     *
-     * @param id of the text
-     */
-    public void setTextId(int id){
-        setEscherProperty(EscherProperties.TEXT__TEXTID, id);
-    }
-
-    /**
-      * @return the TextRun object for this text box
-      */
-    public TextRun getTextRun(){
-       if (null == this._txtrun) initTextRun();
-       if (null == this._txtrun && null != this._txtbox) {
-          TextHeaderAtom    tha = null; 
-          TextBytesAtom     tba = null;
-          TextCharsAtom     tca = null;
-          StyleTextPropAtom sta = null;
-          Record[] childRecords = this._txtbox.getChildRecords();
-          for (Record r : childRecords) {
-             if (r instanceof TextHeaderAtom) {
-                tha = (TextHeaderAtom) r;
-             } else if (r instanceof TextBytesAtom) {
-                tba = (TextBytesAtom) r;
-             } else if (r instanceof TextCharsAtom) {
-                tca = (TextCharsAtom) r;
-             } else if (r instanceof StyleTextPropAtom) {
-                sta = (StyleTextPropAtom) r;
-             }
-          }
-          if (tba != null) {
-             this._txtrun = new TextRun(tha, tba, sta);
-          } else if (tca != null) {
-             this._txtrun = new TextRun(tha, tca, sta);
-          }
-       }
-       return _txtrun;
-    }
-
-    public void setSheet(Sheet sheet) {
-        _sheet = sheet;
-
-        // Initialize _txtrun object.
-        // (We can't do it in the constructor because the sheet
-        //  is not assigned then, it's only built once we have
-        //  all the records)
-        TextRun tx = getTextRun();
-        if (tx != null) {
-            // Supply the sheet to our child RichTextRuns
-            tx.setSheet(_sheet);
-            RichTextRun[] rt = tx.getRichTextRuns();
-            for (int i = 0; i < rt.length; i++) {
-                rt[i].supplySlideShow(_sheet.getSlideShow());
-            }
-        }
-
-    }
-
-    protected void initTextRun(){
-        EscherTextboxWrapper txtbox = getEscherTextboxWrapper();
-        Sheet sheet = getSheet();
-
-        if(sheet == null || txtbox == null) return;
-
-        OutlineTextRefAtom ota = null;
-
-        Record[] child = txtbox.getChildRecords();
-        for (int i = 0; i < child.length; i++) {
-            if (child[i] instanceof OutlineTextRefAtom) {
-                ota = (OutlineTextRefAtom)child[i];
-                break;
-            }
-        }
-
-        TextRun[] runs = _sheet.getTextRuns();
-        if (ota != null) {
-            int idx = ota.getTextIndex();
-            for (int i = 0; i < runs.length; i++) {
-                if(runs[i].getIndex() == idx){
-                    _txtrun = runs[i];
-                    break;
-                }
-            }
-            if(_txtrun == null) {
-                logger.log(POILogger.WARN, "text run not found for OutlineTextRefAtom.TextIndex=" + idx);
-            }
-        } else {
-            EscherSpRecord escherSpRecord = getEscherChild(EscherSpRecord.RECORD_ID);
-            int shapeId = escherSpRecord.getShapeId();
-            if(runs != null) for (int i = 0; i < runs.length; i++) {
-                if(runs[i].getShapeId() == shapeId){
-                    _txtrun = runs[i];
-                    break;
-                }
-            }
-        }
-        // ensure the same references child records of TextRun
-        if(_txtrun != null) for (int i = 0; i < child.length; i++) {
-            for (Record r : _txtrun.getRecords()) {
-                if (child[i].getRecordType() == r.getRecordType()) {
-                    child[i] = r;
-                }
-            }
-        }
-    }
-
-    public void draw(Graphics2D graphics){
-        AffineTransform at = graphics.getTransform();
-        ShapePainter.paint(this, graphics);
-        new TextPainter(this).paint(graphics);
-        graphics.setTransform(at);
-    }
-
-    /**
-     * Return <code>OEPlaceholderAtom</code>, the atom that describes a placeholder.
-     *
-     * @return <code>OEPlaceholderAtom</code> or <code>null</code> if not found
-     */
-    public OEPlaceholderAtom getPlaceholderAtom(){
-        return getClientDataRecord(RecordTypes.OEPlaceholderAtom.typeID);
-    }
-
-    /**
-     *
-     * Assigns a hyperlink to this text shape
-     *
-     * @param linkId    id of the hyperlink, @see org.apache.poi.hslf.usermodel.SlideShow#addHyperlink(Hyperlink)
-     * @param      beginIndex   the beginning index, inclusive.
-     * @param      endIndex     the ending index, exclusive.
-     * @see org.apache.poi.hslf.usermodel.SlideShow#addHyperlink(Hyperlink)
-     */
-    public void setHyperlink(int linkId, int beginIndex, int endIndex){
-        //TODO validate beginIndex and endIndex and throw IllegalArgumentException
-
-        InteractiveInfo info = new InteractiveInfo();
-        InteractiveInfoAtom infoAtom = info.getInteractiveInfoAtom();
-        infoAtom.setAction(InteractiveInfoAtom.ACTION_HYPERLINK);
-        infoAtom.setHyperlinkType(InteractiveInfoAtom.LINK_Url);
-        infoAtom.setHyperlinkID(linkId);
-
-        _txtbox.appendChildRecord(info);
-
-        TxInteractiveInfoAtom txiatom = new TxInteractiveInfoAtom();
-        txiatom.setStartIndex(beginIndex);
-        txiatom.setEndIndex(endIndex);
-        _txtbox.appendChildRecord(txiatom);
-
-    }
-
-    @Override
-    public boolean isPlaceholder() {
-        OEPlaceholderAtom oep = getPlaceholderAtom();
-        if (oep != null) return true;
-
-        //special case for files saved in Office 2007
-        RoundTripHFPlaceholder12 hldr = getClientDataRecord(RecordTypes.RoundTripHFPlaceholder12.typeID);
-        if (hldr != null) return true;
-
-        return false;
-    }
-
-    
-}
index 843f1238900a120cf4446fb3382278e8bc3a5d49..8184c030fa446f5d6f00730d99da9f78ec21e166 100644 (file)
@@ -25,8 +25,8 @@ import org.apache.poi.hslf.record.*;
  *
  * @author Yegor Kozlov
  */
-public final class TitleMaster extends MasterSheet {
-    private TextRun[] _runs;
+public final class TitleMaster extends HSLFMasterSheet {
+    private HSLFTextParagraph[] _runs;
 
     /**
      * Constructs a TitleMaster
@@ -42,7 +42,7 @@ public final class TitleMaster extends MasterSheet {
     /**
      * Returns an array of all the TextRuns found
      */
-    public TextRun[] getTextRuns() {
+    public HSLFTextParagraph[] getTextRuns() {
         return _runs;
     }
 
@@ -50,14 +50,14 @@ public final class TitleMaster extends MasterSheet {
      * Delegate the call to the underlying slide master.
      */
     public TextProp getStyleAttribute(int txtype, int level, String name, boolean isCharacter) {
-        MasterSheet master = getMasterSheet();
+        HSLFMasterSheet master = getMasterSheet();
         return master == null ? null : master.getStyleAttribute(txtype, level, name, isCharacter);
     }
 
     /**
      * Returns the slide master for this title master.
      */
-    public MasterSheet getMasterSheet(){
+    public HSLFMasterSheet getMasterSheet(){
         SlideMaster[] master = getSlideShow().getSlidesMasters();
         SlideAtom sa = ((org.apache.poi.hslf.record.Slide)getSheetContainer()).getSlideAtom();
         int masterId = sa.getMasterID();
diff --git a/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFObjectData.java b/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFObjectData.java
new file mode 100644 (file)
index 0000000..f02ddbe
--- /dev/null
@@ -0,0 +1,70 @@
+/* ====================================================================
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+==================================================================== */
+package org.apache.poi.hslf.usermodel;
+
+import java.io.InputStream;
+import java.io.IOException;
+
+import org.apache.poi.hslf.record.ExOleObjStg;
+
+/**
+ * A class that represents object data embedded in a slide show.
+ *
+ * @author Daniel Noll
+ */
+public class HSLFObjectData {
+    /**
+     * The record that contains the object data.
+     */
+    private ExOleObjStg storage;
+
+    /**
+     * Creates the object data wrapping the record that contains the object data.
+     *
+     * @param storage the record that contains the object data.
+     */
+    public HSLFObjectData(ExOleObjStg storage) {
+        this.storage = storage;
+    }
+
+    /**
+     * Gets an input stream which returns the binary of the embedded data.
+     *
+     * @return the input stream which will contain the binary of the embedded data.
+     */
+    public InputStream getData() {
+        return storage.getData();
+    }
+
+    /**
+     * Sets the embedded data.
+     *
+     * @param data the embedded data.
+     */
+     public void setData(byte[] data) throws IOException {
+        storage.setData(data);    
+    }
+
+    /**
+     * Return the record that contains the object data.
+     *
+     * @return the record that contains the object data.
+     */
+    public ExOleObjStg getExOleObjStg() {
+        return storage;
+    }
+}
diff --git a/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFPictureData.java b/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFPictureData.java
new file mode 100644 (file)
index 0000000..9d9b0dc
--- /dev/null
@@ -0,0 +1,264 @@
+/* ====================================================================
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+==================================================================== */
+
+package org.apache.poi.hslf.usermodel;
+
+import java.awt.Graphics2D;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.security.MessageDigest;
+
+import org.apache.poi.hslf.blip.BitmapPainter;
+import org.apache.poi.hslf.blip.DIB;
+import org.apache.poi.hslf.blip.EMF;
+import org.apache.poi.hslf.blip.ImagePainter;
+import org.apache.poi.hslf.blip.JPEG;
+import org.apache.poi.hslf.blip.PICT;
+import org.apache.poi.hslf.blip.PNG;
+import org.apache.poi.hslf.blip.WMF;
+import org.apache.poi.hslf.model.HSLFPictureShape;
+import org.apache.poi.poifs.crypt.CryptoFunctions;
+import org.apache.poi.poifs.crypt.HashAlgorithm;
+import org.apache.poi.util.LittleEndian;
+import org.apache.poi.util.POILogFactory;
+import org.apache.poi.util.POILogger;
+
+/**
+ * A class that represents image data contained in a slide show.
+ *
+ *  @author Yegor Kozlov
+ */
+public abstract class HSLFPictureData {
+
+    protected POILogger logger = POILogFactory.getLogger(this.getClass());
+
+    /**
+     * Size of the image checksum calculated using MD5 algorithm.
+     */
+    protected static final int CHECKSUM_SIZE = 16;
+
+    /**
+    * Binary data of the picture
+    */
+    private byte[] rawdata;
+    /**
+     * The offset to the picture in the stream
+     */
+    protected int offset;
+
+    /**
+     * Returns type of this picture.
+     * Must be one of the static constants defined in the <code>Picture<code> class.
+     *
+     * @return type of this picture.
+     */
+    public abstract int getType();
+
+
+    /**
+     * Returns content type (mime type) of this picture.
+     *
+     * @return content type of this picture.
+     */
+    public abstract String getContentType();
+    
+    /**
+     * Returns the binary data of this Picture
+     * @return picture data
+     */
+    public abstract byte[] getData();
+
+    /**
+     *  Set picture data
+     */
+    public abstract void setData(byte[] data) throws IOException;
+
+    /**
+     * Blip signature.
+     */
+    protected abstract int getSignature();
+
+    protected static final ImagePainter[] painters = new ImagePainter[8];
+    static {
+        HSLFPictureData.setImagePainter(HSLFPictureShape.PNG, new BitmapPainter());
+        HSLFPictureData.setImagePainter(HSLFPictureShape.JPEG, new BitmapPainter());
+        HSLFPictureData.setImagePainter(HSLFPictureShape.DIB, new BitmapPainter());
+    }
+
+    /**
+     * Returns the raw binary data of this Picture excluding the first 8 bytes
+     * which hold image signature and size of the image data.
+     *
+     * @return picture data
+     */
+    public byte[] getRawData(){
+        return rawdata;
+    }
+
+    public void setRawData(byte[] data){
+        rawdata = data;
+    }
+
+    /**
+     * File offset in the 'Pictures' stream
+     *
+     * @return offset in the 'Pictures' stream
+     */
+    public int getOffset(){
+        return offset;
+    }
+
+    /**
+     * Set offset of this picture in the 'Pictures' stream.
+     * We need to set it when a new picture is created.
+     *
+     * @param offset in the 'Pictures' stream
+     */
+    public void setOffset(int offset){
+        this.offset = offset;
+    }
+
+    /**
+     * Returns 16-byte checksum of this picture
+     */
+    public byte[] getUID(){
+        byte[] uid = new byte[16];
+        System.arraycopy(rawdata, 0, uid, 0, uid.length);
+        return uid;
+    }
+
+
+    /**
+     * Compute 16-byte checksum of this picture using MD5 algorithm.
+     */
+    public static byte[] getChecksum(byte[] data) {
+        MessageDigest md5 = CryptoFunctions.getMessageDigest(HashAlgorithm.md5);
+        md5.update(data);
+        return md5.digest();
+    }
+
+    /**
+     * Write this picture into <code>OutputStream</code>
+     */
+    public void write(OutputStream out) throws IOException {
+        byte[] data;
+
+        data = new byte[LittleEndian.SHORT_SIZE];
+        LittleEndian.putUShort(data, 0, getSignature());
+        out.write(data);
+
+        data = new byte[LittleEndian.SHORT_SIZE];
+        LittleEndian.putUShort(data, 0, getType() + 0xF018);
+        out.write(data);
+
+        byte[] rawdata = getRawData();
+
+        data = new byte[LittleEndian.INT_SIZE];
+        LittleEndian.putInt(data, 0, rawdata.length);
+        out.write(data);
+
+        out.write(rawdata);
+    }
+
+    /**
+     * Create an instance of <code>PictureData</code> by type.
+     *
+     * @param type type of the picture data.
+     * Must be one of the static constants defined in the <code>Picture<code> class.
+     * @return concrete instance of <code>PictureData</code>
+     */
+     public static HSLFPictureData create(int type){
+        HSLFPictureData pict;
+        switch (type){
+            case HSLFPictureShape.EMF:
+                pict = new EMF();
+                break;
+            case HSLFPictureShape.WMF:
+                pict = new WMF();
+                break;
+            case HSLFPictureShape.PICT:
+                pict = new PICT();
+                break;
+            case HSLFPictureShape.JPEG:
+                pict = new JPEG();
+                break;
+            case HSLFPictureShape.PNG:
+                pict = new PNG();
+                break;
+            case HSLFPictureShape.DIB:
+                pict = new DIB();
+                break;
+            default:
+                throw new IllegalArgumentException("Unsupported picture type: " + type);
+        }
+        return pict;
+    }
+
+    /**
+     * Return 24 byte header which preceeds the actual picture data.
+     * <p>
+     * The header consists of 2-byte signature, 2-byte type,
+     * 4-byte image size and 16-byte checksum of the image data.
+     * </p>
+     *
+     * @return the 24 byte header which preceeds the actual picture data.
+     */
+    public byte[] getHeader() {
+        byte[] header = new byte[16 + 8];
+        LittleEndian.putInt(header, 0, getSignature());
+        LittleEndian.putInt(header, 4, getRawData().length);
+        System.arraycopy(rawdata, 0, header, 8, 16);
+        return header;
+    }
+
+    /**
+    * Return image size in bytes
+    *
+    *  @return the size of the picture in bytes
+     * @deprecated Use <code>getData().length</code> instead.
+    */
+    public int getSize(){
+        return getData().length;
+    }
+
+    public void draw(Graphics2D graphics, HSLFPictureShape parent){
+        ImagePainter painter = painters[getType()];
+        if(painter != null) painter.paint(graphics, this, parent);
+        else logger.log(POILogger.WARN, "Rendering is not supported: " + getClass().getName());
+    }
+
+    /**
+     * Register ImagePainter for the specified image type
+     *
+     * @param type  image type, must be one of the static constants defined in the <code>Picture<code> class.
+     * @param painter
+     */
+    public static void setImagePainter(int type, ImagePainter painter){
+        painters[type] = painter;
+    }
+
+    /**
+     * Return ImagePainter for the specified image type
+     *
+     * @param type blip type, must be one of the static constants defined in the <code>Picture<code> class.
+     * @return ImagePainter for the specified image type
+     */
+    public static ImagePainter getImagePainter(int type){
+        return painters[type];
+    }
+
+}
diff --git a/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlideShow.java b/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlideShow.java
new file mode 100644 (file)
index 0000000..1f9f6ca
--- /dev/null
@@ -0,0 +1,1163 @@
+/* ====================================================================
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+==================================================================== */
+
+package org.apache.poi.hslf.usermodel;
+
+import java.awt.Dimension;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.poi.ddf.EscherBSERecord;
+import org.apache.poi.ddf.EscherContainerRecord;
+import org.apache.poi.ddf.EscherOptRecord;
+import org.apache.poi.ddf.EscherRecord;
+import org.apache.poi.hpsf.ClassID;
+import org.apache.poi.hslf.exceptions.CorruptPowerPointFileException;
+import org.apache.poi.hslf.exceptions.HSLFException;
+import org.apache.poi.hslf.model.*;
+import org.apache.poi.hslf.record.Document;
+import org.apache.poi.hslf.record.DocumentAtom;
+import org.apache.poi.hslf.record.ExAviMovie;
+import org.apache.poi.hslf.record.ExControl;
+import org.apache.poi.hslf.record.ExEmbed;
+import org.apache.poi.hslf.record.ExEmbedAtom;
+import org.apache.poi.hslf.record.ExHyperlink;
+import org.apache.poi.hslf.record.ExHyperlinkAtom;
+import org.apache.poi.hslf.record.ExMCIMovie;
+import org.apache.poi.hslf.record.ExObjList;
+import org.apache.poi.hslf.record.ExObjListAtom;
+import org.apache.poi.hslf.record.ExOleObjAtom;
+import org.apache.poi.hslf.record.ExOleObjStg;
+import org.apache.poi.hslf.record.ExVideoContainer;
+import org.apache.poi.hslf.record.FontCollection;
+import org.apache.poi.hslf.record.FontEntityAtom;
+import org.apache.poi.hslf.record.HeadersFootersContainer;
+import org.apache.poi.hslf.record.PersistPtrHolder;
+import org.apache.poi.hslf.record.PositionDependentRecord;
+import org.apache.poi.hslf.record.PositionDependentRecordContainer;
+import org.apache.poi.hslf.record.Record;
+import org.apache.poi.hslf.record.RecordContainer;
+import org.apache.poi.hslf.record.RecordTypes;
+import org.apache.poi.hslf.record.SlideListWithText;
+import org.apache.poi.hslf.record.SlideListWithText.SlideAtomsSet;
+import org.apache.poi.hslf.record.SlidePersistAtom;
+import org.apache.poi.hslf.record.UserEditAtom;
+import org.apache.poi.poifs.filesystem.DirectoryNode;
+import org.apache.poi.poifs.filesystem.POIFSFileSystem;
+import org.apache.poi.sl.usermodel.SlideShow;
+import org.apache.poi.util.POILogFactory;
+import org.apache.poi.util.POILogger;
+
+/**
+ * This class is a friendly wrapper on top of the more scary HSLFSlideShow.
+ *
+ * TODO: - figure out how to match notes to their correct sheet (will involve
+ * understanding DocSlideList and DocNotesList) - handle Slide creation cleaner
+ *
+ * @author Nick Burch
+ * @author Yegor kozlov
+ */
+public final class HSLFSlideShow implements SlideShow {
+       // What we're based on
+       private HSLFSlideShowImpl _hslfSlideShow;
+
+       // Pointers to the most recent versions of the core records
+       // (Document, Notes, Slide etc)
+       private Record[] _mostRecentCoreRecords;
+       // Lookup between the PersitPtr "sheet" IDs, and the position
+       // in the mostRecentCoreRecords array
+       private Map<Integer,Integer> _sheetIdToCoreRecordsLookup;
+
+       // Records that are interesting
+       private Document _documentRecord;
+
+       // Friendly objects for people to deal with
+       private SlideMaster[] _masters;
+       private TitleMaster[] _titleMasters;
+       private HSLFSlide[] _slides;
+       private HSLFNotes[] _notes;
+       private FontCollection _fonts;
+
+       // For logging
+       private POILogger logger = POILogFactory.getLogger(this.getClass());
+
+
+       /* ===============================================================
+        *                       Setup Code
+        * ===============================================================
+        */
+
+
+       /**
+        * Constructs a Powerpoint document from the underlying
+        * HSLFSlideShow object. Finds the model stuff from this
+        *
+        * @param hslfSlideShow the HSLFSlideShow to base on
+        */
+       public HSLFSlideShow(HSLFSlideShowImpl hslfSlideShow) {
+           // Get useful things from our base slideshow
+           _hslfSlideShow = hslfSlideShow;
+
+               // Handle Parent-aware Records
+               for (Record record : _hslfSlideShow.getRecords()) {
+                       if(record instanceof RecordContainer){
+                RecordContainer.handleParentAwareRecords((RecordContainer)record);
+            }
+               }
+
+               // Find the versions of the core records we'll want to use
+               findMostRecentCoreRecords();
+
+               // Build up the model level Slides and Notes
+               buildSlidesAndNotes();
+       }
+
+       /**
+        * Constructs a new, empty, Powerpoint document.
+        */
+       public HSLFSlideShow() {
+               this(HSLFSlideShowImpl.create());
+       }
+
+       /**
+        * Constructs a Powerpoint document from an input stream.
+        */
+       public HSLFSlideShow(InputStream inputStream) throws IOException {
+               this(new HSLFSlideShowImpl(inputStream));
+       }
+
+       /**
+        * Use the PersistPtrHolder entries to figure out what is the "most recent"
+        * version of all the core records (Document, Notes, Slide etc), and save a
+        * record of them. Do this by walking from the oldest PersistPtr to the
+        * newest, overwriting any references found along the way with newer ones
+        */
+       private void findMostRecentCoreRecords() {
+               // To start with, find the most recent in the byte offset domain
+               Map<Integer,Integer> mostRecentByBytes = new HashMap<Integer,Integer>();
+               for (Record record : _hslfSlideShow.getRecords()) {
+                       if (record instanceof PersistPtrHolder) {
+                               PersistPtrHolder pph = (PersistPtrHolder) record;
+
+                               // If we've already seen any of the "slide" IDs for this
+                               // PersistPtr, remove their old positions
+                               int[] ids = pph.getKnownSlideIDs();
+                               for (int id : ids) {
+                                       if (mostRecentByBytes.containsKey(id)) {
+                                               mostRecentByBytes.remove(id);
+                                       }
+                               }
+
+                               // Now, update the byte level locations with their latest values
+                               Map<Integer,Integer> thisSetOfLocations = pph.getSlideLocationsLookup();
+                               for (int id : ids) {
+                                       mostRecentByBytes.put(id, thisSetOfLocations.get(id));
+                               }
+                       }
+               }
+
+               // We now know how many unique special records we have, so init
+               // the array
+               _mostRecentCoreRecords = new Record[mostRecentByBytes.size()];
+
+               // We'll also want to be able to turn the slide IDs into a position
+               // in this array
+               _sheetIdToCoreRecordsLookup = new HashMap<Integer,Integer>();
+               Integer[] allIDs = mostRecentByBytes.keySet().toArray(new Integer[mostRecentByBytes.size()]); 
+               Arrays.sort(allIDs);
+               for (int i = 0; i < allIDs.length; i++) {
+                       _sheetIdToCoreRecordsLookup.put(allIDs[i], i);
+               }
+
+               Map<Integer,Integer> mostRecentByBytesRev = new HashMap<Integer,Integer>(mostRecentByBytes.size());
+               for (Map.Entry<Integer,Integer> me : mostRecentByBytes.entrySet()) {
+                   mostRecentByBytesRev.put(me.getValue(), me.getKey());
+               }
+               
+               // Now convert the byte offsets back into record offsets
+               for (Record record : _hslfSlideShow.getRecords()) {
+                       if (!(record instanceof PositionDependentRecord)) continue;
+                       
+                       PositionDependentRecord pdr = (PositionDependentRecord) record;
+                       int recordAt = pdr.getLastOnDiskOffset();
+
+                       Integer thisID = mostRecentByBytesRev.get(recordAt);
+                       
+                       if (thisID == null) continue;
+                       
+                       // Bingo. Now, where do we store it?
+                       int storeAt = _sheetIdToCoreRecordsLookup.get(thisID);
+
+                       // Tell it its Sheet ID, if it cares
+                       if (pdr instanceof PositionDependentRecordContainer) {
+                               PositionDependentRecordContainer pdrc = (PositionDependentRecordContainer) record;
+                               pdrc.setSheetId(thisID);
+                       }
+
+                       // Finally, save the record
+                       _mostRecentCoreRecords[storeAt] = record;
+               }
+
+               // Now look for the interesting records in there
+               for (Record record : _mostRecentCoreRecords) {
+                       // Check there really is a record at this number
+                       if (record != null) {
+                               // Find the Document, and interesting things in it
+                               if (record.getRecordType() == RecordTypes.Document.typeID) {
+                                       _documentRecord = (Document) record;
+                                       _fonts = _documentRecord.getEnvironment().getFontCollection();
+                               }
+                       } else {
+                               // No record at this number
+                               // Odd, but not normally a problem
+                       }
+               }
+       }
+
+       /**
+        * For a given SlideAtomsSet, return the core record, based on the refID
+        * from the SlidePersistAtom
+        */
+       private Record getCoreRecordForSAS(SlideAtomsSet sas) {
+               SlidePersistAtom spa = sas.getSlidePersistAtom();
+               int refID = spa.getRefID();
+               return getCoreRecordForRefID(refID);
+       }
+
+       /**
+        * For a given refID (the internal, 0 based numbering scheme), return the
+        * core record
+        *
+        * @param refID
+        *            the refID
+        */
+       private Record getCoreRecordForRefID(int refID) {
+               Integer coreRecordId = _sheetIdToCoreRecordsLookup.get(refID);
+               if (coreRecordId != null) {
+                       Record r = _mostRecentCoreRecords[coreRecordId];
+                       return r;
+               }
+               logger.log(POILogger.ERROR,
+                               "We tried to look up a reference to a core record, but there was no core ID for reference ID "
+                                               + refID);
+               return null;
+       }
+
+       /**
+        * Build up model level Slide and Notes objects, from the underlying
+        * records.
+        */
+       private void buildSlidesAndNotes() {
+               // Ensure we really found a Document record earlier
+               // If we didn't, then the file is probably corrupt
+               if (_documentRecord == null) {
+                       throw new CorruptPowerPointFileException(
+                                       "The PowerPoint file didn't contain a Document Record in its PersistPtr blocks. It is probably corrupt.");
+               }
+
+               // Fetch the SlideListWithTexts in the most up-to-date Document Record
+               //
+               // As far as we understand it:
+               // * The first SlideListWithText will contain a SlideAtomsSet
+               // for each of the master slides
+               // * The second SlideListWithText will contain a SlideAtomsSet
+               // for each of the slides, in their current order
+               // These SlideAtomsSets will normally contain text
+               // * The third SlideListWithText (if present), will contain a
+               // SlideAtomsSet for each Notes
+               // These SlideAtomsSets will not normally contain text
+               //
+               // Having indentified the masters, slides and notes + their orders,
+               // we have to go and find their matching records
+               // We always use the latest versions of these records, and use the
+               // SlideAtom/NotesAtom to match them with the StyleAtomSet
+
+               SlideListWithText masterSLWT = _documentRecord.getMasterSlideListWithText();
+               SlideListWithText slidesSLWT = _documentRecord.getSlideSlideListWithText();
+               SlideListWithText notesSLWT = _documentRecord.getNotesSlideListWithText();
+
+               // Find master slides
+               // These can be MainMaster records, but oddly they can also be
+               // Slides or Notes, and possibly even other odd stuff....
+               // About the only thing you can say is that the master details are in
+               // the first SLWT.
+               SlideAtomsSet[] masterSets = new SlideAtomsSet[0];
+               if (masterSLWT != null) {
+                       masterSets = masterSLWT.getSlideAtomsSets();
+
+                       ArrayList<SlideMaster> mmr = new ArrayList<SlideMaster>();
+                       ArrayList<TitleMaster> tmr = new ArrayList<TitleMaster>();
+
+                       for (SlideAtomsSet sas : masterSets) {
+                               Record r = getCoreRecordForSAS(sas);
+                               int sheetNo = sas.getSlidePersistAtom().getSlideIdentifier();
+                               if (r instanceof org.apache.poi.hslf.record.Slide) {
+                                       TitleMaster master = new TitleMaster((org.apache.poi.hslf.record.Slide) r,
+                                                       sheetNo);
+                                       master.setSlideShow(this);
+                                       tmr.add(master);
+                               } else if (r instanceof org.apache.poi.hslf.record.MainMaster) {
+                                       SlideMaster master = new SlideMaster((org.apache.poi.hslf.record.MainMaster) r,
+                                                       sheetNo);
+                                       master.setSlideShow(this);
+                                       mmr.add(master);
+                               }
+                       }
+
+                       _masters = mmr.toArray(new SlideMaster[mmr.size()]);
+                       _titleMasters = tmr.toArray(new TitleMaster[tmr.size()]);
+               }
+
+               // Having sorted out the masters, that leaves the notes and slides
+
+               // Start by finding the notes records to go with the entries in
+               // notesSLWT
+               org.apache.poi.hslf.record.Notes[] notesRecords;
+               SlideAtomsSet[] notesSets = new SlideAtomsSet[0];
+               Map<Integer,Integer> slideIdToNotes = new HashMap<Integer,Integer>();
+               if (notesSLWT == null) {
+                       // None
+                       notesRecords = new org.apache.poi.hslf.record.Notes[0];
+               } else {
+                       // Match up the records and the SlideAtomSets
+                       notesSets = notesSLWT.getSlideAtomsSets();
+                       List<org.apache.poi.hslf.record.Notes> notesRecordsL = 
+                          new ArrayList<org.apache.poi.hslf.record.Notes>();
+                       for (int i = 0; i < notesSets.length; i++) {
+                               // Get the right core record
+                               Record r = getCoreRecordForSAS(notesSets[i]);
+
+                               // Ensure it really is a notes record
+                               if (r == null || r instanceof org.apache.poi.hslf.record.Notes) {
+                                   if (r == null) {
+                           logger.log(POILogger.WARN, "A Notes SlideAtomSet at " + i
+                                   + " said its record was at refID "
+                                   + notesSets[i].getSlidePersistAtom().getRefID()
+                                   + ", but that record didn't exist - record ignored.");
+                                   }
+                                   // we need to add also null-records, otherwise the index references to other existing
+                                   // don't work anymore
+                                       org.apache.poi.hslf.record.Notes notesRecord = (org.apache.poi.hslf.record.Notes) r;
+                                       notesRecordsL.add(notesRecord);
+
+                                       // Record the match between slide id and these notes
+                                       SlidePersistAtom spa = notesSets[i].getSlidePersistAtom();
+                                       int slideId = spa.getSlideIdentifier();
+                                       slideIdToNotes.put(slideId, i);
+                               } else {
+                                       logger.log(POILogger.ERROR, "A Notes SlideAtomSet at " + i
+                                                       + " said its record was at refID "
+                                                       + notesSets[i].getSlidePersistAtom().getRefID()
+                                                       + ", but that was actually a " + r);
+                               }
+                       }
+                       notesRecords = new org.apache.poi.hslf.record.Notes[notesRecordsL.size()];
+                       notesRecords = notesRecordsL.toArray(notesRecords);
+               }
+
+               // Now, do the same thing for our slides
+               org.apache.poi.hslf.record.Slide[] slidesRecords;
+               SlideAtomsSet[] slidesSets = new SlideAtomsSet[0];
+               if (slidesSLWT == null) {
+                       // None
+                       slidesRecords = new org.apache.poi.hslf.record.Slide[0];
+               } else {
+                       // Match up the records and the SlideAtomSets
+                       slidesSets = slidesSLWT.getSlideAtomsSets();
+                       slidesRecords = new org.apache.poi.hslf.record.Slide[slidesSets.length];
+                       for (int i = 0; i < slidesSets.length; i++) {
+                               // Get the right core record
+                               Record r = getCoreRecordForSAS(slidesSets[i]);
+
+                               // Ensure it really is a slide record
+                               if (r instanceof org.apache.poi.hslf.record.Slide) {
+                                       slidesRecords[i] = (org.apache.poi.hslf.record.Slide) r;
+                               } else {
+                                       logger.log(POILogger.ERROR, "A Slide SlideAtomSet at " + i
+                                                       + " said its record was at refID "
+                                                       + slidesSets[i].getSlidePersistAtom().getRefID()
+                                                       + ", but that was actually a " + r);
+                               }
+                       }
+               }
+
+               // Finally, generate model objects for everything
+               // Notes first
+               _notes = new HSLFNotes[notesRecords.length];
+               for (int i = 0; i < _notes.length; i++) {
+                   if (notesRecords[i] != null) {
+                   _notes[i] = new HSLFNotes(notesRecords[i]);
+                       _notes[i].setSlideShow(this);
+                   }
+               }
+               // Then slides
+               _slides = new HSLFSlide[slidesRecords.length];
+               for (int i = 0; i < _slides.length; i++) {
+                       SlideAtomsSet sas = slidesSets[i];
+                       int slideIdentifier = sas.getSlidePersistAtom().getSlideIdentifier();
+
+                       // Do we have a notes for this?
+                       HSLFNotes notes = null;
+                       // Slide.SlideAtom.notesId references the corresponding notes slide.
+                       // 0 if slide has no notes.
+                       int noteId = slidesRecords[i].getSlideAtom().getNotesID();
+                       if (noteId != 0) {
+                               Integer notesPos = slideIdToNotes.get(noteId);
+                               if (notesPos != null) {
+                                       notes = _notes[notesPos];
+                               } else {
+                                       logger.log(POILogger.ERROR, "Notes not found for noteId=" + noteId);
+                               }
+                       }
+
+                       // Now, build our slide
+                       _slides[i] = new HSLFSlide(slidesRecords[i], notes, sas, slideIdentifier, (i + 1));
+                       _slides[i].setSlideShow(this);
+               }
+       }
+
+       /**
+        * Writes out the slideshow file the is represented by an instance of this
+        * class
+        *
+        * @param out
+        *            The OutputStream to write to.
+        * @throws IOException
+        *             If there is an unexpected IOException from the passed in
+        *             OutputStream
+        */
+       public void write(OutputStream out) throws IOException {
+               _hslfSlideShow.write(out);
+       }
+
+       /*
+        * ===============================================================
+        *                         Accessor Code
+        * ===============================================================
+        */
+
+       /**
+        * Returns an array of the most recent version of all the interesting
+        * records
+        */
+       public Record[] getMostRecentCoreRecords() {
+               return _mostRecentCoreRecords;
+       }
+
+       /**
+        * Returns an array of all the normal Slides found in the slideshow
+        */
+       public HSLFSlide[] getSlides() {
+               return _slides;
+       }
+
+       /**
+        * Returns an array of all the normal Notes found in the slideshow
+        */
+       public HSLFNotes[] getNotes() {
+               return _notes;
+       }
+
+       /**
+        * Returns an array of all the normal Slide Masters found in the slideshow
+        */
+       public SlideMaster[] getSlidesMasters() {
+               return _masters;
+       }
+
+       /**
+        * Returns an array of all the normal Title Masters found in the slideshow
+        */
+       public TitleMaster[] getTitleMasters() {
+               return _titleMasters;
+       }
+
+       /**
+        * Returns the data of all the pictures attached to the SlideShow
+        */
+       public HSLFPictureData[] getPictureData() {
+               return _hslfSlideShow.getPictures();
+       }
+
+       /**
+        * Returns the data of all the embedded OLE object in the SlideShow
+        */
+       public HSLFObjectData[] getEmbeddedObjects() {
+               return _hslfSlideShow.getEmbeddedObjects();
+       }
+
+       /**
+        * Returns the data of all the embedded sounds in the SlideShow
+        */
+       public HSLFSoundData[] getSoundData() {
+               return HSLFSoundData.find(_documentRecord);
+       }
+
+       /**
+        * Return the current page size
+        */
+       public Dimension getPageSize() {
+               DocumentAtom docatom = _documentRecord.getDocumentAtom();
+               int pgx = (int) docatom.getSlideSizeX() * HSLFShape.POINT_DPI / HSLFShape.MASTER_DPI;
+               int pgy = (int) docatom.getSlideSizeY() * HSLFShape.POINT_DPI / HSLFShape.MASTER_DPI;
+               return new Dimension(pgx, pgy);
+       }
+
+       /**
+        * Change the current page size
+        *
+        * @param pgsize
+        *            page size (in points)
+        */
+       public void setPageSize(Dimension pgsize) {
+               DocumentAtom docatom = _documentRecord.getDocumentAtom();
+               docatom.setSlideSizeX(pgsize.width * HSLFShape.MASTER_DPI / HSLFShape.POINT_DPI);
+               docatom.setSlideSizeY(pgsize.height * HSLFShape.MASTER_DPI / HSLFShape.POINT_DPI);
+       }
+
+       /**
+        * Helper method for usermodel: Get the font collection
+        */
+       protected FontCollection getFontCollection() {
+               return _fonts;
+       }
+
+       /**
+        * Helper method for usermodel and model: Get the document record
+        */
+       public Document getDocumentRecord() {
+               return _documentRecord;
+       }
+
+       /*
+        * ===============================================================
+        * Re-ordering Code
+        * ===============================================================
+        */
+
+       /**
+        * Re-orders a slide, to a new position.
+        *
+        * @param oldSlideNumber
+        *            The old slide number (1 based)
+        * @param newSlideNumber
+        *            The new slide number (1 based)
+        */
+       public void reorderSlide(int oldSlideNumber, int newSlideNumber) {
+               // Ensure these numbers are valid
+               if (oldSlideNumber < 1 || newSlideNumber < 1) {
+                       throw new IllegalArgumentException("Old and new slide numbers must be greater than 0");
+               }
+               if (oldSlideNumber > _slides.length || newSlideNumber > _slides.length) {
+                       throw new IllegalArgumentException(
+                                       "Old and new slide numbers must not exceed the number of slides ("
+                                                       + _slides.length + ")");
+               }
+
+               // The order of slides is defined by the order of slide atom sets in the
+               // SlideListWithText container.
+               SlideListWithText slwt = _documentRecord.getSlideSlideListWithText();
+               SlideAtomsSet[] sas = slwt.getSlideAtomsSets();
+
+               SlideAtomsSet tmp = sas[oldSlideNumber - 1];
+               sas[oldSlideNumber - 1] = sas[newSlideNumber - 1];
+               sas[newSlideNumber - 1] = tmp;
+
+               ArrayList<Record> lst = new ArrayList<Record>();
+               for (int i = 0; i < sas.length; i++) {
+                       lst.add(sas[i].getSlidePersistAtom());
+                       Record[] r = sas[i].getSlideRecords();
+                       for (int j = 0; j < r.length; j++) {
+                               lst.add(r[j]);
+                       }
+                       _slides[i].setSlideNumber(i + 1);
+               }
+               Record[] r = lst.toArray(new Record[lst.size()]);
+               slwt.setChildRecord(r);
+       }
+
+       /**
+        * Removes the slide at the given index (0-based).
+        * <p>
+        * Shifts any subsequent slides to the left (subtracts one from their slide
+        * numbers).
+        * </p>
+        *
+        * @param index
+        *            the index of the slide to remove (0-based)
+        * @return the slide that was removed from the slide show.
+        */
+       public HSLFSlide removeSlide(int index) {
+               int lastSlideIdx = _slides.length - 1;
+               if (index < 0 || index > lastSlideIdx) {
+                       throw new IllegalArgumentException("Slide index (" + index + ") is out of range (0.."
+                                       + lastSlideIdx + ")");
+               }
+
+               SlideListWithText slwt = _documentRecord.getSlideSlideListWithText();
+               SlideAtomsSet[] sas = slwt.getSlideAtomsSets();
+
+               HSLFSlide removedSlide = null;
+               ArrayList<Record> records = new ArrayList<Record>();
+               ArrayList<SlideAtomsSet> sa = new ArrayList<SlideAtomsSet>();
+               ArrayList<HSLFSlide> sl = new ArrayList<HSLFSlide>();
+
+               ArrayList<HSLFNotes> nt = new ArrayList<HSLFNotes>();
+               for (HSLFNotes notes : getNotes())
+                       nt.add(notes);
+
+               for (int i = 0, num = 0; i < _slides.length; i++) {
+                       if (i != index) {
+                               sl.add(_slides[i]);
+                               sa.add(sas[i]);
+                               _slides[i].setSlideNumber(num++);
+                               records.add(sas[i].getSlidePersistAtom());
+                               records.addAll(Arrays.asList(sas[i].getSlideRecords()));
+                       } else {
+                               removedSlide = _slides[i];
+                               nt.remove(_slides[i].getNotesSheet());
+                       }
+               }
+               if (sa.size() == 0) {
+                       _documentRecord.removeSlideListWithText(slwt);
+               } else {
+                       slwt.setSlideAtomsSets(sa.toArray(new SlideAtomsSet[sa.size()]));
+                       slwt.setChildRecord(records.toArray(new Record[records.size()]));
+               }
+               _slides = sl.toArray(new HSLFSlide[sl.size()]);
+
+               // if the removed slide had notes - remove references to them too
+
+               if (removedSlide != null) {
+                       int notesId = removedSlide.getSlideRecord().getSlideAtom().getNotesID();
+                       if (notesId != 0) {
+                               SlideListWithText nslwt = _documentRecord.getNotesSlideListWithText();
+                               records = new ArrayList<Record>();
+                               ArrayList<SlideAtomsSet> na = new ArrayList<SlideAtomsSet>();
+                               for (SlideAtomsSet ns : nslwt.getSlideAtomsSets()) {
+                                       if (ns.getSlidePersistAtom().getSlideIdentifier() != notesId) {
+                                               na.add(ns);
+                                               records.add(ns.getSlidePersistAtom());
+                                               if (ns.getSlideRecords() != null)
+                                                       records.addAll(Arrays.asList(ns.getSlideRecords()));
+                                       }
+                               }
+                               if (na.size() == 0) {
+                                       _documentRecord.removeSlideListWithText(nslwt);
+                               } else {
+                                       nslwt.setSlideAtomsSets(na.toArray(new SlideAtomsSet[na.size()]));
+                                       nslwt.setChildRecord(records.toArray(new Record[records.size()]));
+                               }
+
+                       }
+               }
+               _notes = nt.toArray(new HSLFNotes[nt.size()]);
+
+               return removedSlide;
+       }
+
+       /*
+        * ===============================================================
+        *  Addition Code
+        * ===============================================================
+        */
+
+       /**
+        * Create a blank <code>Slide</code>.
+        *
+        * @return the created <code>Slide</code>
+        */
+       public HSLFSlide createSlide() {
+               SlideListWithText slist = null;
+
+               // We need to add the records to the SLWT that deals
+               // with Slides.
+               // Add it, if it doesn't exist
+               slist = _documentRecord.getSlideSlideListWithText();
+               if (slist == null) {
+                       // Need to add a new one
+                       slist = new SlideListWithText();
+                       slist.setInstance(SlideListWithText.SLIDES);
+                       _documentRecord.addSlideListWithText(slist);
+               }
+
+               // Grab the SlidePersistAtom with the highest Slide Number.
+               // (Will stay as null if no SlidePersistAtom exists yet in
+               // the slide, or only master slide's ones do)
+               SlidePersistAtom prev = null;
+               for (SlideAtomsSet sas : slist.getSlideAtomsSets()) {
+                       SlidePersistAtom spa = sas.getSlidePersistAtom();
+                       if (spa.getSlideIdentifier() < 0) {
+                               // This is for a master slide
+                               // Odd, since we only deal with the Slide SLWT
+                       } else {
+                               // Must be for a real slide
+                               if (prev == null) {
+                                       prev = spa;
+                               }
+                               if (prev.getSlideIdentifier() < spa.getSlideIdentifier()) {
+                                       prev = spa;
+                               }
+                       }
+               }
+
+               // Set up a new SlidePersistAtom for this slide
+               SlidePersistAtom sp = new SlidePersistAtom();
+
+               // First slideId is always 256
+               sp.setSlideIdentifier(prev == null ? 256 : (prev.getSlideIdentifier() + 1));
+
+               // Add this new SlidePersistAtom to the SlideListWithText
+               slist.addSlidePersistAtom(sp);
+
+               // Create a new Slide
+               HSLFSlide slide = new HSLFSlide(sp.getSlideIdentifier(), sp.getRefID(), _slides.length + 1);
+               slide.setSlideShow(this);
+               slide.onCreate();
+
+               // Add in to the list of Slides
+               HSLFSlide[] s = new HSLFSlide[_slides.length + 1];
+               System.arraycopy(_slides, 0, s, 0, _slides.length);
+               s[_slides.length] = slide;
+               _slides = s;
+               logger.log(POILogger.INFO, "Added slide " + _slides.length + " with ref " + sp.getRefID()
+                               + " and identifier " + sp.getSlideIdentifier());
+
+               // Add the core records for this new Slide to the record tree
+               org.apache.poi.hslf.record.Slide slideRecord = slide.getSlideRecord();
+               int psrId = addPersistentObject(slideRecord);
+               sp.setRefID(psrId);
+               slideRecord.setSheetId(psrId);
+               
+               slide.setMasterSheet(_masters[0]);
+               // All done and added
+               return slide;
+       }
+
+       /**
+        * Adds a picture to this presentation and returns the associated index.
+        *
+        * @param data
+        *            picture data
+        * @param format
+        *            the format of the picture. One of constans defined in the
+        *            <code>Picture</code> class.
+        * @return the index to this picture (1 based).
+        */
+       public int addPicture(byte[] data, int format) throws IOException {
+               byte[] uid = HSLFPictureData.getChecksum(data);
+
+               EscherContainerRecord bstore;
+
+               EscherContainerRecord dggContainer = _documentRecord.getPPDrawingGroup().getDggContainer();
+               bstore = (EscherContainerRecord) HSLFShape.getEscherChild(dggContainer,
+                               EscherContainerRecord.BSTORE_CONTAINER);
+               if (bstore == null) {
+                       bstore = new EscherContainerRecord();
+                       bstore.setRecordId(EscherContainerRecord.BSTORE_CONTAINER);
+
+                       dggContainer.addChildBefore(bstore, EscherOptRecord.RECORD_ID);
+               } else {
+                       Iterator<EscherRecord> iter = bstore.getChildIterator();
+                       for (int i = 0; iter.hasNext(); i++) {
+                               EscherBSERecord bse = (EscherBSERecord) iter.next();
+                               if (Arrays.equals(bse.getUid(), uid)) {
+                                       return i + 1;
+                               }
+                       }
+               }
+
+               HSLFPictureData pict = HSLFPictureData.create(format);
+               pict.setData(data);
+
+               int offset = _hslfSlideShow.addPicture(pict);
+
+               EscherBSERecord bse = new EscherBSERecord();
+               bse.setRecordId(EscherBSERecord.RECORD_ID);
+               bse.setOptions((short) (0x0002 | (format << 4)));
+               bse.setSize(pict.getRawData().length + 8);
+               bse.setUid(uid);
+
+               bse.setBlipTypeMacOS((byte) format);
+               bse.setBlipTypeWin32((byte) format);
+
+               if (format == HSLFPictureShape.EMF)
+                       bse.setBlipTypeMacOS((byte) HSLFPictureShape.PICT);
+               else if (format == HSLFPictureShape.WMF)
+                       bse.setBlipTypeMacOS((byte) HSLFPictureShape.PICT);
+               else if (format == HSLFPictureShape.PICT)
+                       bse.setBlipTypeWin32((byte) HSLFPictureShape.WMF);
+
+               bse.setRef(0);
+               bse.setOffset(offset);
+               bse.setRemainingData(new byte[0]);
+
+               bstore.addChildRecord(bse);
+               int count = bstore.getChildRecords().size();
+               bstore.setOptions((short) ((count << 4) | 0xF));
+
+               return count;
+       }
+
+       /**
+        * Adds a picture to this presentation and returns the associated index.
+        *
+        * @param pict
+        *            the file containing the image to add
+        * @param format
+        *            the format of the picture. One of constans defined in the
+        *            <code>Picture</code> class.
+        * @return the index to this picture (1 based).
+        */
+       public int addPicture(File pict, int format) throws IOException {
+               int length = (int) pict.length();
+               byte[] data = new byte[length];
+        FileInputStream is = null;
+        try {
+                       is = new FileInputStream(pict);
+                       is.read(data);
+               } finally {
+            if(is != null) is.close();
+        }
+               return addPicture(data, format);
+       }
+
+       /**
+        * Add a font in this presentation
+        *
+        * @param font
+        *            the font to add
+        * @return 0-based index of the font
+        */
+       public int addFont(PPFont font) {
+               FontCollection fonts = getDocumentRecord().getEnvironment().getFontCollection();
+               int idx = fonts.getFontIndex(font.getFontName());
+               if (idx == -1) {
+                       idx = fonts.addFont(font.getFontName(), font.getCharSet(), font.getFontFlags(), font
+                                       .getFontType(), font.getPitchAndFamily());
+               }
+               return idx;
+       }
+
+       /**
+        * Get a font by index
+        *
+        * @param idx
+        *            0-based index of the font
+        * @return of an instance of <code>PPFont</code> or <code>null</code> if not
+        *         found
+        */
+       public PPFont getFont(int idx) {
+               FontCollection fonts = getDocumentRecord().getEnvironment().getFontCollection();
+               for (Record ch : fonts.getChildRecords()) {
+                       if (ch instanceof FontEntityAtom) {
+                               FontEntityAtom atom = (FontEntityAtom) ch;
+                               if (atom.getFontIndex() == idx) {
+                                       return new PPFont(atom);
+                               }
+                       }
+               }
+               return null;
+       }
+
+       /**
+        * get the number of fonts in the presentation
+        *
+        * @return number of fonts
+        */
+       public int getNumberOfFonts() {
+               return getDocumentRecord().getEnvironment().getFontCollection().getNumberOfFonts();
+       }
+
+       /**
+        * Return Header / Footer settings for slides
+        *
+        * @return Header / Footer settings for slides
+        */
+       public HeadersFooters getSlideHeadersFooters() {
+               // detect if this ppt was saved in Office2007
+               String tag = getSlidesMasters()[0].getProgrammableTag();
+               boolean ppt2007 = "___PPT12".equals(tag);
+
+               HeadersFootersContainer hdd = null;
+               for (Record ch : _documentRecord.getChildRecords()) {
+                       if (ch instanceof HeadersFootersContainer
+                               && ((HeadersFootersContainer) ch).getOptions() == HeadersFootersContainer.SlideHeadersFootersContainer) {
+                               hdd = (HeadersFootersContainer) ch;
+                               break;
+                       }
+               }
+               boolean newRecord = false;
+               if (hdd == null) {
+                       hdd = new HeadersFootersContainer(HeadersFootersContainer.SlideHeadersFootersContainer);
+                       newRecord = true;
+               }
+               return new HeadersFooters(hdd, this, newRecord, ppt2007);
+       }
+
+       /**
+        * Return Header / Footer settings for notes
+        *
+        * @return Header / Footer settings for notes
+        */
+       public HeadersFooters getNotesHeadersFooters() {
+               // detect if this ppt was saved in Office2007
+               String tag = getSlidesMasters()[0].getProgrammableTag();
+               boolean ppt2007 = "___PPT12".equals(tag);
+
+               HeadersFootersContainer hdd = null;
+               for (Record ch : _documentRecord.getChildRecords()) {
+                       if (ch instanceof HeadersFootersContainer
+                                       && ((HeadersFootersContainer) ch).getOptions() == HeadersFootersContainer.NotesHeadersFootersContainer) {
+                               hdd = (HeadersFootersContainer) ch;
+                               break;
+                       }
+               }
+               boolean newRecord = false;
+               if (hdd == null) {
+                       hdd = new HeadersFootersContainer(HeadersFootersContainer.NotesHeadersFootersContainer);
+                       newRecord = true;
+               }
+               if (ppt2007 && _notes.length > 0) {
+                       return new HeadersFooters(hdd, _notes[0], newRecord, ppt2007);
+               }
+               return new HeadersFooters(hdd, this, newRecord, ppt2007);
+       }
+
+       /**
+        * Add a movie in this presentation
+        *
+        * @param path
+        *            the path or url to the movie
+        * @return 0-based index of the movie
+        */
+       public int addMovie(String path, int type) {
+               ExMCIMovie mci;
+               switch (type) {
+                       case MovieShape.MOVIE_MPEG:
+                               mci = new ExMCIMovie();
+                               break;
+                       case MovieShape.MOVIE_AVI:
+                               mci = new ExAviMovie();
+                               break;
+                       default:
+                               throw new IllegalArgumentException("Unsupported Movie: " + type);
+               }
+
+               ExVideoContainer exVideo = mci.getExVideo();
+               exVideo.getExMediaAtom().setMask(0xE80000);
+               exVideo.getPathAtom().setText(path);
+
+               int objectId = addToObjListAtom(mci);
+               exVideo.getExMediaAtom().setObjectId(objectId);
+               
+               return objectId;
+       }
+
+       /**
+        * Add a control in this presentation
+        *
+        * @param name
+        *            name of the control, e.g. "Shockwave Flash Object"
+        * @param progId
+        *            OLE Programmatic Identifier, e.g.
+        *            "ShockwaveFlash.ShockwaveFlash.9"
+        * @return 0-based index of the control
+        */
+       public int addControl(String name, String progId) {
+               ExControl ctrl = new ExControl();
+               ctrl.setProgId(progId);
+               ctrl.setMenuName(name);
+               ctrl.setClipboardName(name);
+               
+               ExOleObjAtom oleObj = ctrl.getExOleObjAtom();
+               oleObj.setDrawAspect(ExOleObjAtom.DRAW_ASPECT_VISIBLE);
+               oleObj.setType(ExOleObjAtom.TYPE_CONTROL);
+               oleObj.setSubType(ExOleObjAtom.SUBTYPE_DEFAULT);
+               
+               int objectId = addToObjListAtom(ctrl);
+               oleObj.setObjID(objectId);
+               return objectId;
+       }
+
+       /**
+        * Add a hyperlink to this presentation
+        *
+        * @return 0-based index of the hyperlink
+        */
+       public int addHyperlink(Hyperlink link) {
+               ExHyperlink ctrl = new ExHyperlink();
+               ExHyperlinkAtom obj = ctrl.getExHyperlinkAtom();
+        if(link.getType() == Hyperlink.LINK_SLIDENUMBER) {
+            ctrl.setLinkURL(link.getAddress(), 0x30);
+        } else {
+            ctrl.setLinkURL(link.getAddress());
+        }
+               ctrl.setLinkTitle(link.getTitle());
+
+               int objectId = addToObjListAtom(ctrl);
+               link.setId(objectId);
+               obj.setNumber(objectId);
+
+               return objectId;
+       }
+
+       /**
+        * Add a embedded object to this presentation
+        *
+        * @return 0-based index of the embedded object
+        */
+       public int addEmbed(POIFSFileSystem poiData) {
+        DirectoryNode root = poiData.getRoot();
+        
+        // prepare embedded data
+        if (new ClassID().equals(root.getStorageClsid())) {
+               // need to set class id
+               Map<String,ClassID> olemap = getOleMap();
+               ClassID classID = null;
+               for (Map.Entry<String,ClassID> entry : olemap.entrySet()) {
+                       if (root.hasEntry(entry.getKey())) {
+                               classID = entry.getValue();
+                               break;
+                       }
+               }
+               if (classID == null) {
+                       throw new IllegalArgumentException("Unsupported embedded document");                    
+               }
+               
+               root.setStorageClsid(classID);
+        }
+        
+               ExEmbed exEmbed = new ExEmbed();
+        // remove unneccessary infos, so we don't need to specify the type
+        // of the ole object multiple times
+        Record children[] = exEmbed.getChildRecords();
+        exEmbed.removeChild(children[2]);
+        exEmbed.removeChild(children[3]);
+        exEmbed.removeChild(children[4]);
+
+        ExEmbedAtom eeEmbed = exEmbed.getExEmbedAtom();
+        eeEmbed.setCantLockServerB(true);
+
+        ExOleObjAtom eeAtom = exEmbed.getExOleObjAtom();
+        eeAtom.setDrawAspect(ExOleObjAtom.DRAW_ASPECT_VISIBLE);
+        eeAtom.setType(ExOleObjAtom.TYPE_EMBEDDED);
+        // eeAtom.setSubType(ExOleObjAtom.SUBTYPE_EXCEL);
+        // should be ignored?!?, see MS-PPT ExOleObjAtom, but Libre Office sets it ...
+        eeAtom.setOptions(1226240);
+
+        ExOleObjStg exOleObjStg = new ExOleObjStg();
+        try {
+               final String OLESTREAM_NAME = "\u0001Ole";
+               if (!root.hasEntry(OLESTREAM_NAME)) {
+                   // the following data was taken from an example libre office document
+                   // beside this "\u0001Ole" record there were several other records, e.g. CompObj,
+                   // OlePresXXX, but it seems, that they aren't neccessary
+                   byte oleBytes[] = { 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
+                   poiData.createDocument(new ByteArrayInputStream(oleBytes), OLESTREAM_NAME);
+               }        
+
+               ByteArrayOutputStream bos = new ByteArrayOutputStream();
+               poiData.writeFilesystem(bos);
+               exOleObjStg.setData(bos.toByteArray());
+        } catch (IOException e) {
+               throw new HSLFException(e);
+        }
+        
+        int psrId = addPersistentObject(exOleObjStg);
+        exOleObjStg.setPersistId(psrId);
+        eeAtom.setObjStgDataRef(psrId);
+        
+               int objectId = addToObjListAtom(exEmbed);
+               eeAtom.setObjID(objectId);
+               return objectId;
+       }
+
+       protected int addToObjListAtom(RecordContainer exObj) {
+               ExObjList lst = (ExObjList) _documentRecord.findFirstOfType(RecordTypes.ExObjList.typeID);
+               if (lst == null) {
+                       lst = new ExObjList();
+                       _documentRecord.addChildAfter(lst, _documentRecord.getDocumentAtom());
+               }
+               ExObjListAtom objAtom = lst.getExObjListAtom();
+               // increment the object ID seed
+               int objectId = (int) objAtom.getObjectIDSeed() + 1;
+               objAtom.setObjectIDSeed(objectId);
+
+               lst.addChildAfter(exObj, objAtom);
+               
+               return objectId;
+       }
+
+    protected static Map<String,ClassID> getOleMap() {
+       Map<String,ClassID> olemap = new HashMap<String,ClassID>();
+       olemap.put("PowerPoint Document", ClassID.PPT_SHOW);
+       olemap.put("Workbook", ClassID.EXCEL97); // as per BIFF8 spec
+       olemap.put("WORKBOOK", ClassID.EXCEL97); // Typically from third party programs
+       olemap.put("BOOK", ClassID.EXCEL97); // Typically odd Crystal Reports exports
+       // ... to be continued
+       return olemap;
+    }
+
+    protected int addPersistentObject(PositionDependentRecord slideRecord) {
+       slideRecord.setLastOnDiskOffset(HSLFSlideShowImpl.UNSET_OFFSET);
+               _hslfSlideShow.appendRootLevelRecord((Record)slideRecord);
+
+        // For position dependent records, hold where they were and now are
+        // As we go along, update, and hand over, to any Position Dependent
+        // records we happen across
+               Map<RecordTypes.Type,PositionDependentRecord> interestingRecords =
+                new HashMap<RecordTypes.Type,PositionDependentRecord>();
+
+               try {
+            _hslfSlideShow.updateAndWriteDependantRecords(null,interestingRecords);
+        } catch (IOException e) {
+            throw new HSLFException(e);
+        }
+               
+               PersistPtrHolder ptr = (PersistPtrHolder)interestingRecords.get(RecordTypes.PersistPtrIncrementalBlock);
+               UserEditAtom usr = (UserEditAtom)interestingRecords.get(RecordTypes.UserEditAtom);
+
+               // persist ID is UserEditAtom.maxPersistWritten + 1
+               int psrId = usr.getMaxPersistWritten() + 1;
+
+               // Last view is now of the slide
+               usr.setLastViewType((short) UserEditAtom.LAST_VIEW_SLIDE_VIEW);
+               // increment the number of persistent objects
+               usr.setMaxPersistWritten(psrId);
+
+               // Add the new slide into the last PersistPtr
+               // (Also need to tell it where it is)
+               int slideOffset = slideRecord.getLastOnDiskOffset();
+               slideRecord.setLastOnDiskOffset(slideOffset);
+               ptr.addSlideLookup(psrId, slideOffset);
+               logger.log(POILogger.INFO, "New slide/object ended up at " + slideOffset);
+
+               return psrId;
+    }
+}
diff --git a/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSoundData.java b/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSoundData.java
new file mode 100644 (file)
index 0000000..7750b25
--- /dev/null
@@ -0,0 +1,94 @@
+/* ====================================================================
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+==================================================================== */
+
+package org.apache.poi.hslf.usermodel;
+
+import org.apache.poi.hslf.record.*;
+
+import java.util.ArrayList;
+
+/**
+ * A class that represents sound data embedded in a slide show.
+ *
+ * @author Yegor Kozlov
+ */
+public final class HSLFSoundData {
+    /**
+     * The record that contains the object data.
+     */
+    private Sound _container;
+
+    /**
+     * Creates the object data wrapping the record that contains the sound data.
+     *
+     * @param container the record that contains the sound data.
+     */
+    public HSLFSoundData(Sound container) {
+        this._container = container;
+    }
+
+    /**
+     * Name of the sound (e.g. "crash")
+     *
+     * @return name of the sound
+     */
+    public String getSoundName(){
+        return _container.getSoundName();
+    }
+
+    /**
+     * Type of the sound (e.g. ".wav")
+     *
+     * @return type of the sound
+     */
+    public String getSoundType(){
+        return _container.getSoundType();
+    }
+
+    /**
+     * Gets an input stream which returns the binary of the sound data.
+     *
+     * @return the input stream which will contain the binary of the sound data.
+     */
+    public byte[] getData() {
+        return _container.getSoundData();
+    }
+
+    /**
+     * Find all sound records in the supplied Document records
+     *
+     * @param document the document to find in
+     * @return the array with the sound data
+     */
+    public static HSLFSoundData[] find(Document document){
+        ArrayList<HSLFSoundData> lst = new ArrayList<HSLFSoundData>();
+        Record[] ch = document.getChildRecords();
+        for (int i = 0; i < ch.length; i++) {
+            if(ch[i].getRecordType() == RecordTypes.SoundCollection.typeID){
+                RecordContainer col = (RecordContainer)ch[i];
+                Record[] sr = col.getChildRecords();
+                for (int j = 0; j < sr.length; j++) {
+                    if(sr[j] instanceof Sound){
+                        lst.add(new HSLFSoundData((Sound)sr[j]));
+                    }
+                }
+            }
+
+        }
+        return lst.toArray(new HSLFSoundData[lst.size()]);
+    }
+}
diff --git a/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFTextRun.java b/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFTextRun.java
new file mode 100644 (file)
index 0000000..06980e9
--- /dev/null
@@ -0,0 +1,793 @@
+/* ====================================================================
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+==================================================================== */
+
+package org.apache.poi.hslf.usermodel;
+
+import java.awt.Color;
+
+import org.apache.poi.hslf.model.*;
+import org.apache.poi.hslf.model.textproperties.BitMaskTextProp;
+import org.apache.poi.hslf.model.textproperties.CharFlagsTextProp;
+import org.apache.poi.hslf.model.textproperties.ParagraphFlagsTextProp;
+import org.apache.poi.hslf.model.textproperties.TextProp;
+import org.apache.poi.hslf.model.textproperties.TextPropCollection;
+import org.apache.poi.hslf.record.ColorSchemeAtom;
+import org.apache.poi.sl.usermodel.TextRun;
+import org.apache.poi.util.POILogFactory;
+import org.apache.poi.util.POILogger;
+
+
+/**
+ * Represents a run of text, all with the same style
+ *
+ */
+public final class HSLFTextRun implements TextRun {
+       protected POILogger logger = POILogFactory.getLogger(this.getClass());
+
+       /** The TextRun we belong to */
+       private HSLFTextParagraph parentParagraph;
+       /** The SlideShow we belong to */
+       // private SlideShow slideShow;
+
+       /** Where in the parent TextRun we start from */
+       private int startPos;
+
+       /** How long a string (in the parent TextRun) we represent */
+       private int length;
+
+       private String _fontname;
+       /**
+        * Our paragraph and character style.
+        * Note - we may share these styles with other RichTextRuns
+        */
+       private TextPropCollection paragraphStyle;
+       private TextPropCollection characterStyle;
+       private boolean sharingParagraphStyle;
+       private boolean sharingCharacterStyle;
+
+       /**
+        * Create a new wrapper around a (currently not)
+        *  rich text string
+        * @param parent
+        * @param startAt
+        * @param len
+        */
+       public HSLFTextRun(HSLFTextParagraph parent, int startAt, int len) {
+               this(parent, startAt, len, null, null, false, false);
+       }
+       /**
+        * Create a new wrapper around a rich text string
+        * @param parent The parent TextRun
+        * @param startAt The start position of this run
+        * @param len The length of this run
+        * @param pStyle The paragraph style property collection
+        * @param cStyle The character style property collection
+        * @param pShared The paragraph styles are shared with other runs
+        * @param cShared The character styles are shared with other runs
+        */
+       public HSLFTextRun(HSLFTextParagraph parent, int startAt, int len,
+       TextPropCollection pStyle,  TextPropCollection cStyle,
+       boolean pShared, boolean cShared) {
+               parentParagraph = parent;
+               startPos = startAt;
+               length = len;
+               paragraphStyle = pStyle;
+               characterStyle = cStyle;
+               sharingParagraphStyle = pShared;
+               sharingCharacterStyle = cShared;
+       }
+
+       /**
+        * Supply (normally default) textprops, and if they're shared,
+        *  when a run gets them
+        */
+       public void supplyTextProps(TextPropCollection pStyle,  TextPropCollection cStyle, boolean pShared, boolean cShared) {
+               if(paragraphStyle != null || characterStyle != null) {
+                       throw new IllegalStateException("Can't call supplyTextProps if run already has some");
+               }
+               paragraphStyle = pStyle;
+               characterStyle = cStyle;
+               sharingParagraphStyle = pShared;
+               sharingCharacterStyle = cShared;
+       }
+       /**
+        * Supply the SlideShow we belong to
+        */
+       public void updateSheet() {
+               if (_fontname != null) {
+                       setFontName(_fontname);
+                       _fontname = null;
+               }
+       }
+
+       /**
+        * Get the length of the text
+        */
+       public int getLength() {
+               return length;
+       }
+
+       /**
+        * The beginning index, inclusive.
+        *
+        * @return the beginning index, inclusive.
+        */
+       public int getStartIndex(){
+               return startPos;
+       }
+
+       /**
+        *  The ending index, exclusive.
+        *
+        * @return the ending index, exclusive.
+        */
+       public int getEndIndex(){
+               return startPos + length;
+       }
+
+       /**
+        * Fetch the text, in output suitable form
+        */
+       public String getText() {
+               return parentParagraph.getText().substring(startPos, startPos+length);
+       }
+       /**
+        * Fetch the text, in raw storage form
+        */
+       public String getRawText() {
+               return parentParagraph.getRawText().substring(startPos, startPos+length);
+       }
+
+       /**
+        * Change the text
+        */
+       public void setText(String text) {
+               String s = parentParagraph.normalize(text);
+               setRawText(s);
+       }
+
+       /**
+        * Change the text
+        */
+       public void setRawText(String text) {
+               length = text.length();
+               parentParagraph.changeTextInRichTextRun(this,text);
+       }
+
+       /**
+        * Tells the RichTextRun its new position in the parent TextRun
+        * @param startAt
+        */
+       public void updateStartPosition(int startAt) {
+               startPos = startAt;
+       }
+
+
+       // --------------- Internal helpers on rich text properties -------
+
+       /**
+        * Fetch the value of the given flag in the CharFlagsTextProp.
+        * Returns false if the CharFlagsTextProp isn't present, since the
+        *  text property won't be set if there's no CharFlagsTextProp.
+        */
+       private boolean isCharFlagsTextPropVal(int index) {
+               return getFlag(true, index);
+       }
+
+       private boolean getFlag(boolean isCharacter, int index) {
+               TextPropCollection props;
+               String propname;
+               if (isCharacter){
+                       props = characterStyle;
+                       propname = CharFlagsTextProp.NAME;
+               } else {
+                       props = paragraphStyle;
+                       propname = ParagraphFlagsTextProp.NAME;
+               }
+
+               BitMaskTextProp prop = null;
+               if (props != null){
+                       prop = (BitMaskTextProp)props.findByName(propname);
+               }
+               if (prop == null){
+                       HSLFSheet sheet = parentParagraph.getSheet();
+                       if(sheet != null){
+                               int txtype = parentParagraph.getRunType();
+                               HSLFMasterSheet master = sheet.getMasterSheet();
+                               if (master != null){
+                                       prop = (BitMaskTextProp)master.getStyleAttribute(txtype, getIndentLevel(), propname, isCharacter);
+                               }
+                       } else {
+                               logger.log(POILogger.WARN, "MasterSheet is not available");
+                       }
+               }
+
+               return prop == null ? false : prop.getSubValue(index);
+       }
+
+       /**
+        * Set the value of the given flag in the CharFlagsTextProp, adding
+        *  it if required.
+        */
+       private void setCharFlagsTextPropVal(int index, boolean value) {
+               if(getFlag(true, index) != value) setFlag(true, index, value);
+       }
+
+       public void setFlag(boolean isCharacter, int index, boolean value) {
+               TextPropCollection props;
+               String propname;
+               if (isCharacter){
+                       props = characterStyle;
+                       propname = CharFlagsTextProp.NAME;
+               } else {
+                       props = paragraphStyle;
+                       propname = ParagraphFlagsTextProp.NAME;
+               }
+
+               // Ensure we have the StyleTextProp atom we're going to need
+               if(props == null) {
+                       parentParagraph.ensureStyleAtomPresent();
+                       props = isCharacter ? characterStyle : paragraphStyle;
+               }
+
+               BitMaskTextProp prop = (BitMaskTextProp) fetchOrAddTextProp(props, propname);
+               prop.setSubValue(value,index);
+       }
+
+       /**
+        * Returns the named TextProp, either by fetching it (if it exists) or adding it
+        *  (if it didn't)
+        * @param textPropCol The TextPropCollection to fetch from / add into
+        * @param textPropName The name of the TextProp to fetch/add
+        */
+       private TextProp fetchOrAddTextProp(TextPropCollection textPropCol, String textPropName) {
+               // Fetch / Add the TextProp
+               TextProp tp = textPropCol.findByName(textPropName);
+               if(tp == null) {
+                       tp = textPropCol.addWithName(textPropName);
+               }
+               return tp;
+       }
+
+       /**
+        * Fetch the value of the given Character related TextProp.
+        * Returns -1 if that TextProp isn't present.
+        * If the TextProp isn't present, the value from the appropriate
+        *  Master Sheet will apply.
+        */
+       private int getCharTextPropVal(String propName) {
+               TextProp prop = null;
+               if (characterStyle != null){
+                       prop = characterStyle.findByName(propName);
+               }
+
+               if (prop == null){
+                       HSLFSheet sheet = parentParagraph.getSheet();
+                       int txtype = parentParagraph.getRunType();
+                       HSLFMasterSheet master = sheet.getMasterSheet();
+                       if (master != null)
+                               prop = master.getStyleAttribute(txtype, getIndentLevel(), propName, true);
+               }
+               return prop == null ? -1 : prop.getValue();
+       }
+       /**
+        * Fetch the value of the given Paragraph related TextProp.
+        * Returns -1 if that TextProp isn't present.
+        * If the TextProp isn't present, the value from the appropriate
+        *  Master Sheet will apply.
+        */
+       private int getParaTextPropVal(String propName) {
+               TextProp prop = null;
+               boolean hardAttribute = false;
+               if (paragraphStyle != null){
+                       prop = paragraphStyle.findByName(propName);
+
+                       BitMaskTextProp maskProp = (BitMaskTextProp)paragraphStyle.findByName(ParagraphFlagsTextProp.NAME);
+                       hardAttribute = maskProp != null && maskProp.getValue() == 0;
+               }
+               if (prop == null && !hardAttribute){
+                       HSLFSheet sheet = parentParagraph.getSheet();
+                       int txtype = parentParagraph.getRunType();
+                       HSLFMasterSheet master = sheet.getMasterSheet();
+                       if (master != null)
+                               prop = master.getStyleAttribute(txtype, getIndentLevel(), propName, false);
+               }
+
+               return prop == null ? -1 : prop.getValue();
+       }
+
+       /**
+        * Sets the value of the given Character TextProp, add if required
+        * @param propName The name of the Character TextProp
+        * @param val The value to set for the TextProp
+        */
+       public void setParaTextPropVal(String propName, int val) {
+               // Ensure we have the StyleTextProp atom we're going to need
+               if(paragraphStyle == null) {
+                       parentParagraph.ensureStyleAtomPresent();
+                       // paragraphStyle will now be defined
+               }
+
+        assert(paragraphStyle!=null);
+               TextProp tp = fetchOrAddTextProp(paragraphStyle, propName);
+               tp.setValue(val);
+       }
+       /**
+        * Sets the value of the given Paragraph TextProp, add if required
+        * @param propName The name of the Paragraph TextProp
+        * @param val The value to set for the TextProp
+        */
+       public void setCharTextPropVal(String propName, int val) {
+               // Ensure we have the StyleTextProp atom we're going to need
+               if(characterStyle == null) {
+                       parentParagraph.ensureStyleAtomPresent();
+                       // characterStyle will now be defined
+               }
+
+               assert(characterStyle!=null);
+               TextProp tp = fetchOrAddTextProp(characterStyle, propName);
+               tp.setValue(val);
+       }
+
+
+       // --------------- Friendly getters / setters on rich text properties -------
+
+       /**
+        * Is the text bold?
+        */
+       public boolean isBold() {
+               return isCharFlagsTextPropVal(CharFlagsTextProp.BOLD_IDX);
+       }
+
+       /**
+        * Is the text bold?
+        */
+       public void setBold(boolean bold) {
+               setCharFlagsTextPropVal(CharFlagsTextProp.BOLD_IDX, bold);
+       }
+
+       /**
+        * Is the text italic?
+        */
+       public boolean isItalic() {
+               return isCharFlagsTextPropVal(CharFlagsTextProp.ITALIC_IDX);
+       }
+
+       /**
+        * Is the text italic?
+        */
+       public void setItalic(boolean italic) {
+               setCharFlagsTextPropVal(CharFlagsTextProp.ITALIC_IDX, italic);
+       }
+
+       /**
+        * Is the text underlined?
+        */
+       public boolean isUnderline() {
+               return isCharFlagsTextPropVal(CharFlagsTextProp.UNDERLINE_IDX);
+       }
+
+       /**
+        * Is the text underlined?
+        */
+       public void setUnderline(boolean underlined) {
+               setCharFlagsTextPropVal(CharFlagsTextProp.UNDERLINE_IDX, underlined);
+       }
+
+       /**
+        * Does the text have a shadow?
+        */
+       public boolean isShadowed() {
+               return isCharFlagsTextPropVal(CharFlagsTextProp.SHADOW_IDX);
+       }
+
+       /**
+        * Does the text have a shadow?
+        */
+       public void setShadowed(boolean flag) {
+               setCharFlagsTextPropVal(CharFlagsTextProp.SHADOW_IDX, flag);
+       }
+
+       /**
+        * Is this text embossed?
+        */
+        public boolean isEmbossed() {
+               return isCharFlagsTextPropVal(CharFlagsTextProp.RELIEF_IDX);
+       }
+
+       /**
+        * Is this text embossed?
+        */
+        public void setEmbossed(boolean flag) {
+               setCharFlagsTextPropVal(CharFlagsTextProp.RELIEF_IDX, flag);
+       }
+
+       /**
+        * Gets the strikethrough flag
+        */
+       public boolean isStrikethrough() {
+               return isCharFlagsTextPropVal(CharFlagsTextProp.STRIKETHROUGH_IDX);
+       }
+
+       /**
+        * Sets the strikethrough flag
+        */
+       public void setStrikethrough(boolean flag) {
+               setCharFlagsTextPropVal(CharFlagsTextProp.STRIKETHROUGH_IDX, flag);
+       }
+
+       /**
+        * Gets the subscript/superscript option
+        *
+        * @return the percentage of the font size. If the value is positive, it is superscript, otherwise it is subscript
+        */
+       public int getSuperscript() {
+               int val = getCharTextPropVal("superscript");
+               return val == -1 ? 0 : val;
+       }
+
+       /**
+        * Sets the subscript/superscript option
+        *
+        * @param val the percentage of the font size. If the value is positive, it is superscript, otherwise it is subscript
+        */
+       public void setSuperscript(int val) {
+               setCharTextPropVal("superscript", val);
+       }
+
+       /**
+        * Gets the font size
+        */
+       public int getFontSize() {
+               return getCharTextPropVal("font.size");
+       }
+
+
+       /**
+        * Sets the font size
+        */
+       public void setFontSize(int fontSize) {
+               setCharTextPropVal("font.size", fontSize);
+       }
+
+       /**
+        * Gets the font index
+        */
+       public int getFontIndex() {
+               return getCharTextPropVal("font.index");
+       }
+
+       /**
+        * Sets the font index
+        */
+       public void setFontIndex(int idx) {
+               setCharTextPropVal("font.index", idx);
+       }
+
+
+       /**
+        * Sets the font name to use
+        */
+       public void setFontName(String fontName) {
+           HSLFSheet sheet = parentParagraph.getSheet();
+           HSLFSlideShowImpl slideShow = (sheet == null) ? null : sheet.getSlideShow();
+               if (sheet == null || slideShow == null) {
+                       //we can't set font since slideshow is not assigned yet
+                       _fontname = fontName;
+                       return;
+               }
+               // Get the index for this font (adding if needed)
+               int fontIdx = slideShow.getFontCollection().addFont(fontName);
+               setCharTextPropVal("font.index", fontIdx);
+       }
+
+       /**
+        * Gets the font name
+        */
+       public String getFontName() {
+        HSLFSheet sheet = parentParagraph.getSheet();
+        HSLFSlideShowImpl slideShow = (sheet == null) ? null : sheet.getSlideShow();
+               if (sheet == null || slideShow == null) {
+                       return _fontname;
+               }
+               int fontIdx = getCharTextPropVal("font.index");
+               if(fontIdx == -1) { return null; }
+               return slideShow.getFontCollection().getFontWithId(fontIdx);
+       }
+
+       /**
+        * @return font color as RGB value
+        * @see java.awt.Color
+        */
+       public Color getFontColor() {
+               int rgb = getCharTextPropVal("font.color");
+
+               int cidx = rgb >> 24;
+               if (rgb % 0x1000000 == 0){
+                       ColorSchemeAtom ca = parentParagraph.getSheet().getColorScheme();
+                       if(cidx >= 0 && cidx <= 7) rgb = ca.getColor(cidx);
+               }
+               Color tmp = new Color(rgb, true);
+               return new Color(tmp.getBlue(), tmp.getGreen(), tmp.getRed());
+       }
+
+       /**
+        * Sets color of the text, as a int bgr.
+        * (PowerPoint stores as BlueGreenRed, not the more
+        *  usual RedGreenBlue)
+        * @see java.awt.Color
+        */
+       public void setFontColor(int bgr) {
+               setCharTextPropVal("font.color", bgr);
+       }
+
+       /**
+        * Sets color of the text, as a java.awt.Color
+        */
+       public void setFontColor(Color color) {
+               // In PowerPont RGB bytes are swapped, as BGR
+               int rgb = new Color(color.getBlue(), color.getGreen(), color.getRed(), 254).getRGB();
+               setFontColor(rgb);
+       }
+
+       /**
+        * Sets the type of horizontal alignment for the text.
+        * One of the <code>Align*</code> constants defined in the <code>TextBox</code> class.
+        *
+        * @param align - the type of alignment
+        */
+       public void setAlignment(int align) {
+               setParaTextPropVal("alignment", align);
+       }
+       /**
+        * Returns the type of horizontal alignment for the text.
+        * One of the <code>Align*</code> constants defined in the <code>TextBox</class> class.
+        *
+        * @return the type of alignment
+        */
+       public int getAlignment() {
+               return getParaTextPropVal("alignment");
+       }
+
+       /**
+        *
+        * @return indentation level
+        */
+       public int getIndentLevel() {
+               return paragraphStyle == null ? 0 : paragraphStyle.getReservedField();
+       }
+
+       /**
+        * Sets indentation level
+        *
+        * @param level indentation level. Must be in the range [0, 4]
+        */
+       public void setIndentLevel(int level) {
+               if(paragraphStyle != null ) paragraphStyle.setReservedField((short)level);
+       }
+
+       /**
+        * Sets whether this rich text run has bullets
+        */
+       public void setBullet(boolean flag) {
+               setFlag(false, ParagraphFlagsTextProp.BULLET_IDX, flag);
+       }
+
+       /**
+        * Returns whether this rich text run has bullets
+        */
+       public boolean isBullet() {
+               return getFlag(false, ParagraphFlagsTextProp.BULLET_IDX);
+       }
+
+       /**
+        * Returns whether this rich text run has bullets
+        */
+       public boolean isBulletHard() {
+               return getFlag(false, ParagraphFlagsTextProp.BULLET_IDX);
+       }
+
+       /**
+        * Sets the bullet character
+        */
+       public void setBulletChar(char c) {
+               setParaTextPropVal("bullet.char", c);
+       }
+
+       /**
+        * Returns the bullet character
+        */
+       public char getBulletChar() {
+               return (char)getParaTextPropVal("bullet.char");
+       }
+
+       /**
+        * Sets the bullet offset
+        */
+       public void setBulletOffset(int offset) {
+               setParaTextPropVal("bullet.offset", offset*HSLFShape.MASTER_DPI/HSLFShape.POINT_DPI);
+       }
+
+       /**
+        * Returns the bullet offset
+        */
+       public int getBulletOffset() {
+               return getParaTextPropVal("bullet.offset")*HSLFShape.POINT_DPI/HSLFShape.MASTER_DPI;
+       }
+
+       /**
+        * Sets the text offset
+        */
+       public void setTextOffset(int offset) {
+               setParaTextPropVal("text.offset", offset*HSLFShape.MASTER_DPI/HSLFShape.POINT_DPI);
+       }
+
+       /**
+        * Returns the text offset
+        */
+       public int getTextOffset() {
+               return getParaTextPropVal("text.offset")*HSLFShape.POINT_DPI/HSLFShape.MASTER_DPI;
+       }
+
+       /**
+        * Sets the bullet size
+        */
+       public void setBulletSize(int size) {
+               setParaTextPropVal("bullet.size", size);
+       }
+
+       /**
+        * Returns the bullet size
+        */
+       public int getBulletSize() {
+               return getParaTextPropVal("bullet.size");
+       }
+
+       /**
+        * Sets the bullet color
+        */
+       public void setBulletColor(Color color) {
+               int rgb = new Color(color.getBlue(), color.getGreen(), color.getRed(), 254).getRGB();
+               setParaTextPropVal("bullet.color", rgb);
+       }
+
+       /**
+        * Returns the bullet color
+        */
+       public Color getBulletColor() {
+               int rgb = getParaTextPropVal("bullet.color");
+               if(rgb == -1) return getFontColor();
+
+               int cidx = rgb >> 24;
+               if (rgb % 0x1000000 == 0){
+                       ColorSchemeAtom ca = parentParagraph.getSheet().getColorScheme();
+                       if(cidx >= 0 && cidx <= 7) rgb = ca.getColor(cidx);
+               }
+               Color tmp = new Color(rgb, true);
+               return new Color(tmp.getBlue(), tmp.getGreen(), tmp.getRed());
+       }
+
+       /**
+        * Sets the bullet font
+        */
+       public void setBulletFont(int idx) {
+               setParaTextPropVal("bullet.font", idx);
+               setFlag(false, ParagraphFlagsTextProp.BULLET_HARDFONT_IDX, true);
+       }
+
+       /**
+        * Returns the bullet font
+        */
+       public int getBulletFont() {
+               return getParaTextPropVal("bullet.font");
+       }
+
+       /**
+        * Sets the line spacing.
+        * <p>
+        * If linespacing >= 0, then linespacing is a percentage of normal line height.
+        * If linespacing < 0, the absolute value of linespacing is the spacing in master coordinates.
+        * </p>
+        */
+       public void setLineSpacing(int val) {
+               setParaTextPropVal("linespacing", val);
+       }
+
+       /**
+        * Returns the line spacing
+        * <p>
+        * If linespacing >= 0, then linespacing is a percentage of normal line height.
+        * If linespacing < 0, the absolute value of linespacing is the spacing in master coordinates.
+        * </p>
+        *
+        * @return the spacing between lines
+        */
+       public int getLineSpacing() {
+               int val = getParaTextPropVal("linespacing");
+               return val == -1 ? 0 : val;
+       }
+
+       /**
+        * Sets spacing before a paragraph.
+        * <p>
+        * If spacebefore >= 0, then spacebefore is a percentage of normal line height.
+        * If spacebefore < 0, the absolute value of spacebefore is the spacing in master coordinates.
+        * </p>
+        */
+       public void setSpaceBefore(int val) {
+               setParaTextPropVal("spacebefore", val);
+       }
+
+       /**
+        * Returns spacing before a paragraph
+        * <p>
+        * If spacebefore >= 0, then spacebefore is a percentage of normal line height.
+        * If spacebefore < 0, the absolute value of spacebefore is the spacing in master coordinates.
+        * </p>
+        *
+        * @return the spacing before a paragraph
+        */
+       public int getSpaceBefore() {
+               int val = getParaTextPropVal("spacebefore");
+               return val == -1 ? 0 : val;
+       }
+
+       /**
+        * Sets spacing after a paragraph.
+        * <p>
+        * If spaceafter >= 0, then spaceafter is a percentage of normal line height.
+        * If spaceafter < 0, the absolute value of spaceafter is the spacing in master coordinates.
+        * </p>
+        */
+       public void setSpaceAfter(int val) {
+               setParaTextPropVal("spaceafter", val);
+       }
+
+       /**
+        * Returns spacing after a paragraph
+        * <p>
+        * If spaceafter >= 0, then spaceafter is a percentage of normal line height.
+        * If spaceafter < 0, the absolute value of spaceafter is the spacing in master coordinates.
+        * </p>
+        *
+        * @return the spacing before a paragraph
+        */
+       public int getSpaceAfter() {
+               int val = getParaTextPropVal("spaceafter");
+               return val == -1 ? 0 : val;
+       }
+       // --------------- Internal HSLF methods, not intended for end-user use! -------
+
+       /**
+        * Internal Use Only - get the underlying paragraph style collection.
+        * For normal use, use the friendly setters and getters
+        */
+       public TextPropCollection _getRawParagraphStyle() { return paragraphStyle; }
+       /**
+        * Internal Use Only - get the underlying character style collection.
+        * For normal use, use the friendly setters and getters
+        */
+       public TextPropCollection _getRawCharacterStyle() { return characterStyle; }
+       /**
+        * Internal Use Only - are the Paragraph styles shared?
+        */
+       public boolean _isParagraphStyleShared() { return sharingParagraphStyle; }
+       /**
+        * Internal Use Only - are the Character styles shared?
+        */
+       public boolean _isCharacterStyleShared() { return sharingCharacterStyle; }
+}
diff --git a/src/scratchpad/src/org/apache/poi/hslf/usermodel/ObjectData.java b/src/scratchpad/src/org/apache/poi/hslf/usermodel/ObjectData.java
deleted file mode 100644 (file)
index bbef87a..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-/* ====================================================================
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-==================================================================== */
-package org.apache.poi.hslf.usermodel;
-
-import java.io.InputStream;
-import java.io.IOException;
-
-import org.apache.poi.hslf.record.ExOleObjStg;
-
-/**
- * A class that represents object data embedded in a slide show.
- *
- * @author Daniel Noll
- */
-public class ObjectData {
-    /**
-     * The record that contains the object data.
-     */
-    private ExOleObjStg storage;
-
-    /**
-     * Creates the object data wrapping the record that contains the object data.
-     *
-     * @param storage the record that contains the object data.
-     */
-    public ObjectData(ExOleObjStg storage) {
-        this.storage = storage;
-    }
-
-    /**
-     * Gets an input stream which returns the binary of the embedded data.
-     *
-     * @return the input stream which will contain the binary of the embedded data.
-     */
-    public InputStream getData() {
-        return storage.getData();
-    }
-
-    /**
-     * Sets the embedded data.
-     *
-     * @param data the embedded data.
-     */
-     public void setData(byte[] data) throws IOException {
-        storage.setData(data);    
-    }
-
-    /**
-     * Return the record that contains the object data.
-     *
-     * @return the record that contains the object data.
-     */
-    public ExOleObjStg getExOleObjStg() {
-        return storage;
-    }
-}
diff --git a/src/scratchpad/src/org/apache/poi/hslf/usermodel/PictureData.java b/src/scratchpad/src/org/apache/poi/hslf/usermodel/PictureData.java
deleted file mode 100644 (file)
index 857ad54..0000000
+++ /dev/null
@@ -1,256 +0,0 @@
-/* ====================================================================
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-==================================================================== */
-
-package org.apache.poi.hslf.usermodel;
-
-import java.awt.Graphics2D;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.security.MessageDigest;
-
-import org.apache.poi.hslf.blip.BitmapPainter;
-import org.apache.poi.hslf.blip.DIB;
-import org.apache.poi.hslf.blip.EMF;
-import org.apache.poi.hslf.blip.ImagePainter;
-import org.apache.poi.hslf.blip.JPEG;
-import org.apache.poi.hslf.blip.PICT;
-import org.apache.poi.hslf.blip.PNG;
-import org.apache.poi.hslf.blip.WMF;
-import org.apache.poi.hslf.model.Picture;
-import org.apache.poi.poifs.crypt.CryptoFunctions;
-import org.apache.poi.poifs.crypt.HashAlgorithm;
-import org.apache.poi.util.LittleEndian;
-import org.apache.poi.util.POILogFactory;
-import org.apache.poi.util.POILogger;
-
-/**
- * A class that represents image data contained in a slide show.
- *
- *  @author Yegor Kozlov
- */
-public abstract class PictureData {
-
-    protected POILogger logger = POILogFactory.getLogger(this.getClass());
-
-    /**
-     * Size of the image checksum calculated using MD5 algorithm.
-     */
-    protected static final int CHECKSUM_SIZE = 16;
-
-    /**
-    * Binary data of the picture
-    */
-    private byte[] rawdata;
-    /**
-     * The offset to the picture in the stream
-     */
-    protected int offset;
-
-    /**
-     * Returns type of this picture.
-     * Must be one of the static constants defined in the <code>Picture<code> class.
-     *
-     * @return type of this picture.
-     */
-    public abstract int getType();
-
-    /**
-     * Returns the binary data of this Picture
-     * @return picture data
-     */
-    public abstract byte[] getData();
-
-    /**
-     *  Set picture data
-     */
-    public abstract void setData(byte[] data) throws IOException;
-
-    /**
-     * Blip signature.
-     */
-    protected abstract int getSignature();
-
-    protected static final ImagePainter[] painters = new ImagePainter[8];
-    static {
-        PictureData.setImagePainter(Picture.PNG, new BitmapPainter());
-        PictureData.setImagePainter(Picture.JPEG, new BitmapPainter());
-        PictureData.setImagePainter(Picture.DIB, new BitmapPainter());
-    }
-
-    /**
-     * Returns the raw binary data of this Picture excluding the first 8 bytes
-     * which hold image signature and size of the image data.
-     *
-     * @return picture data
-     */
-    public byte[] getRawData(){
-        return rawdata;
-    }
-
-    public void setRawData(byte[] data){
-        rawdata = data;
-    }
-
-    /**
-     * File offset in the 'Pictures' stream
-     *
-     * @return offset in the 'Pictures' stream
-     */
-    public int getOffset(){
-        return offset;
-    }
-
-    /**
-     * Set offset of this picture in the 'Pictures' stream.
-     * We need to set it when a new picture is created.
-     *
-     * @param offset in the 'Pictures' stream
-     */
-    public void setOffset(int offset){
-        this.offset = offset;
-    }
-
-    /**
-     * Returns 16-byte checksum of this picture
-     */
-    public byte[] getUID(){
-        byte[] uid = new byte[16];
-        System.arraycopy(rawdata, 0, uid, 0, uid.length);
-        return uid;
-    }
-
-
-    /**
-     * Compute 16-byte checksum of this picture using MD5 algorithm.
-     */
-    public static byte[] getChecksum(byte[] data) {
-        MessageDigest md5 = CryptoFunctions.getMessageDigest(HashAlgorithm.md5);
-        md5.update(data);
-        return md5.digest();
-    }
-
-    /**
-     * Write this picture into <code>OutputStream</code>
-     */
-    public void write(OutputStream out) throws IOException {
-        byte[] data;
-
-        data = new byte[LittleEndian.SHORT_SIZE];
-        LittleEndian.putUShort(data, 0, getSignature());
-        out.write(data);
-
-        data = new byte[LittleEndian.SHORT_SIZE];
-        LittleEndian.putUShort(data, 0, getType() + 0xF018);
-        out.write(data);
-
-        byte[] rawdata = getRawData();
-
-        data = new byte[LittleEndian.INT_SIZE];
-        LittleEndian.putInt(data, 0, rawdata.length);
-        out.write(data);
-
-        out.write(rawdata);
-    }
-
-    /**
-     * Create an instance of <code>PictureData</code> by type.
-     *
-     * @param type type of the picture data.
-     * Must be one of the static constants defined in the <code>Picture<code> class.
-     * @return concrete instance of <code>PictureData</code>
-     */
-     public static PictureData create(int type){
-        PictureData pict;
-        switch (type){
-            case Picture.EMF:
-                pict = new EMF();
-                break;
-            case Picture.WMF:
-                pict = new WMF();
-                break;
-            case Picture.PICT:
-                pict = new PICT();
-                break;
-            case Picture.JPEG:
-                pict = new JPEG();
-                break;
-            case Picture.PNG:
-                pict = new PNG();
-                break;
-            case Picture.DIB:
-                pict = new DIB();
-                break;
-            default:
-                throw new IllegalArgumentException("Unsupported picture type: " + type);
-        }
-        return pict;
-    }
-
-    /**
-     * Return 24 byte header which preceeds the actual picture data.
-     * <p>
-     * The header consists of 2-byte signature, 2-byte type,
-     * 4-byte image size and 16-byte checksum of the image data.
-     * </p>
-     *
-     * @return the 24 byte header which preceeds the actual picture data.
-     */
-    public byte[] getHeader() {
-        byte[] header = new byte[16 + 8];
-        LittleEndian.putInt(header, 0, getSignature());
-        LittleEndian.putInt(header, 4, getRawData().length);
-        System.arraycopy(rawdata, 0, header, 8, 16);
-        return header;
-    }
-
-    /**
-    * Return image size in bytes
-    *
-    *  @return the size of the picture in bytes
-     * @deprecated Use <code>getData().length</code> instead.
-    */
-    public int getSize(){
-        return getData().length;
-    }
-
-    public void draw(Graphics2D graphics, Picture parent){
-        ImagePainter painter = painters[getType()];
-        if(painter != null) painter.paint(graphics, this, parent);
-        else logger.log(POILogger.WARN, "Rendering is not supported: " + getClass().getName());
-    }
-
-    /**
-     * Register ImagePainter for the specified image type
-     *
-     * @param type  image type, must be one of the static constants defined in the <code>Picture<code> class.
-     * @param painter
-     */
-    public static void setImagePainter(int type, ImagePainter painter){
-        painters[type] = painter;
-    }
-
-    /**
-     * Return ImagePainter for the specified image type
-     *
-     * @param type blip type, must be one of the static constants defined in the <code>Picture<code> class.
-     * @return ImagePainter for the specified image type
-     */
-    public static ImagePainter getImagePainter(int type){
-        return painters[type];
-    }
-
-}
diff --git a/src/scratchpad/src/org/apache/poi/hslf/usermodel/RichTextRun.java b/src/scratchpad/src/org/apache/poi/hslf/usermodel/RichTextRun.java
deleted file mode 100644 (file)
index 878f8c1..0000000
+++ /dev/null
@@ -1,792 +0,0 @@
-/* ====================================================================
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-==================================================================== */
-
-package org.apache.poi.hslf.usermodel;
-
-import java.awt.Color;
-
-import org.apache.poi.hslf.model.MasterSheet;
-import org.apache.poi.hslf.model.HSLFShape;
-import org.apache.poi.hslf.model.Sheet;
-import org.apache.poi.hslf.model.TextRun;
-import org.apache.poi.hslf.model.textproperties.BitMaskTextProp;
-import org.apache.poi.hslf.model.textproperties.CharFlagsTextProp;
-import org.apache.poi.hslf.model.textproperties.ParagraphFlagsTextProp;
-import org.apache.poi.hslf.model.textproperties.TextProp;
-import org.apache.poi.hslf.model.textproperties.TextPropCollection;
-import org.apache.poi.hslf.record.ColorSchemeAtom;
-import org.apache.poi.util.POILogFactory;
-import org.apache.poi.util.POILogger;
-
-
-/**
- * Represents a run of text, all with the same style
- *
- */
-public final class RichTextRun {
-       protected POILogger logger = POILogFactory.getLogger(this.getClass());
-
-       /** The TextRun we belong to */
-       private TextRun parentRun;
-       /** The SlideShow we belong to */
-       private SlideShow slideShow;
-
-       /** Where in the parent TextRun we start from */
-       private int startPos;
-
-       /** How long a string (in the parent TextRun) we represent */
-       private int length;
-
-       private String _fontname;
-       /**
-        * Our paragraph and character style.
-        * Note - we may share these styles with other RichTextRuns
-        */
-       private TextPropCollection paragraphStyle;
-       private TextPropCollection characterStyle;
-       private boolean sharingParagraphStyle;
-       private boolean sharingCharacterStyle;
-
-       /**
-        * Create a new wrapper around a (currently not)
-        *  rich text string
-        * @param parent
-        * @param startAt
-        * @param len
-        */
-       public RichTextRun(TextRun parent, int startAt, int len) {
-               this(parent, startAt, len, null, null, false, false);
-       }
-       /**
-        * Create a new wrapper around a rich text string
-        * @param parent The parent TextRun
-        * @param startAt The start position of this run
-        * @param len The length of this run
-        * @param pStyle The paragraph style property collection
-        * @param cStyle The character style property collection
-        * @param pShared The paragraph styles are shared with other runs
-        * @param cShared The character styles are shared with other runs
-        */
-       public RichTextRun(TextRun parent, int startAt, int len,
-       TextPropCollection pStyle,  TextPropCollection cStyle,
-       boolean pShared, boolean cShared) {
-               parentRun = parent;
-               startPos = startAt;
-               length = len;
-               paragraphStyle = pStyle;
-               characterStyle = cStyle;
-               sharingParagraphStyle = pShared;
-               sharingCharacterStyle = cShared;
-       }
-
-       /**
-        * Supply (normally default) textprops, and if they're shared,
-        *  when a run gets them
-        */
-       public void supplyTextProps(TextPropCollection pStyle,  TextPropCollection cStyle, boolean pShared, boolean cShared) {
-               if(paragraphStyle != null || characterStyle != null) {
-                       throw new IllegalStateException("Can't call supplyTextProps if run already has some");
-               }
-               paragraphStyle = pStyle;
-               characterStyle = cStyle;
-               sharingParagraphStyle = pShared;
-               sharingCharacterStyle = cShared;
-       }
-       /**
-        * Supply the SlideShow we belong to
-        */
-       public void supplySlideShow(SlideShow ss) {
-               slideShow = ss;
-               if (_fontname != null) {
-                       setFontName(_fontname);
-                       _fontname = null;
-               }
-       }
-
-       /**
-        * Get the length of the text
-        */
-       public int getLength() {
-               return length;
-       }
-
-       /**
-        * The beginning index, inclusive.
-        *
-        * @return the beginning index, inclusive.
-        */
-       public int getStartIndex(){
-               return startPos;
-       }
-
-       /**
-        *  The ending index, exclusive.
-        *
-        * @return the ending index, exclusive.
-        */
-       public int getEndIndex(){
-               return startPos + length;
-       }
-
-       /**
-        * Fetch the text, in output suitable form
-        */
-       public String getText() {
-               return parentRun.getText().substring(startPos, startPos+length);
-       }
-       /**
-        * Fetch the text, in raw storage form
-        */
-       public String getRawText() {
-               return parentRun.getRawText().substring(startPos, startPos+length);
-       }
-
-       /**
-        * Change the text
-        */
-       public void setText(String text) {
-               String s = parentRun.normalize(text);
-               setRawText(s);
-       }
-
-       /**
-        * Change the text
-        */
-       public void setRawText(String text) {
-               length = text.length();
-               parentRun.changeTextInRichTextRun(this,text);
-       }
-
-       /**
-        * Tells the RichTextRun its new position in the parent TextRun
-        * @param startAt
-        */
-       public void updateStartPosition(int startAt) {
-               startPos = startAt;
-       }
-
-
-       // --------------- Internal helpers on rich text properties -------
-
-       /**
-        * Fetch the value of the given flag in the CharFlagsTextProp.
-        * Returns false if the CharFlagsTextProp isn't present, since the
-        *  text property won't be set if there's no CharFlagsTextProp.
-        */
-       private boolean isCharFlagsTextPropVal(int index) {
-               return getFlag(true, index);
-       }
-
-       private boolean getFlag(boolean isCharacter, int index) {
-               TextPropCollection props;
-               String propname;
-               if (isCharacter){
-                       props = characterStyle;
-                       propname = CharFlagsTextProp.NAME;
-               } else {
-                       props = paragraphStyle;
-                       propname = ParagraphFlagsTextProp.NAME;
-               }
-
-               BitMaskTextProp prop = null;
-               if (props != null){
-                       prop = (BitMaskTextProp)props.findByName(propname);
-               }
-               if (prop == null){
-                       Sheet sheet = parentRun.getSheet();
-                       if(sheet != null){
-                               int txtype = parentRun.getRunType();
-                               MasterSheet master = sheet.getMasterSheet();
-                               if (master != null){
-                                       prop = (BitMaskTextProp)master.getStyleAttribute(txtype, getIndentLevel(), propname, isCharacter);
-                               }
-                       } else {
-                               logger.log(POILogger.WARN, "MasterSheet is not available");
-                       }
-               }
-
-               return prop == null ? false : prop.getSubValue(index);
-       }
-
-       /**
-        * Set the value of the given flag in the CharFlagsTextProp, adding
-        *  it if required.
-        */
-       private void setCharFlagsTextPropVal(int index, boolean value) {
-               if(getFlag(true, index) != value) setFlag(true, index, value);
-       }
-
-       public void setFlag(boolean isCharacter, int index, boolean value) {
-               TextPropCollection props;
-               String propname;
-               if (isCharacter){
-                       props = characterStyle;
-                       propname = CharFlagsTextProp.NAME;
-               } else {
-                       props = paragraphStyle;
-                       propname = ParagraphFlagsTextProp.NAME;
-               }
-
-               // Ensure we have the StyleTextProp atom we're going to need
-               if(props == null) {
-                       parentRun.ensureStyleAtomPresent();
-                       props = isCharacter ? characterStyle : paragraphStyle;
-               }
-
-               BitMaskTextProp prop = (BitMaskTextProp) fetchOrAddTextProp(props, propname);
-               prop.setSubValue(value,index);
-       }
-
-       /**
-        * Returns the named TextProp, either by fetching it (if it exists) or adding it
-        *  (if it didn't)
-        * @param textPropCol The TextPropCollection to fetch from / add into
-        * @param textPropName The name of the TextProp to fetch/add
-        */
-       private TextProp fetchOrAddTextProp(TextPropCollection textPropCol, String textPropName) {
-               // Fetch / Add the TextProp
-               TextProp tp = textPropCol.findByName(textPropName);
-               if(tp == null) {
-                       tp = textPropCol.addWithName(textPropName);
-               }
-               return tp;
-       }
-
-       /**
-        * Fetch the value of the given Character related TextProp.
-        * Returns -1 if that TextProp isn't present.
-        * If the TextProp isn't present, the value from the appropriate
-        *  Master Sheet will apply.
-        */
-       private int getCharTextPropVal(String propName) {
-               TextProp prop = null;
-               if (characterStyle != null){
-                       prop = characterStyle.findByName(propName);
-               }
-
-               if (prop == null){
-                       Sheet sheet = parentRun.getSheet();
-                       int txtype = parentRun.getRunType();
-                       MasterSheet master = sheet.getMasterSheet();
-                       if (master != null)
-                               prop = master.getStyleAttribute(txtype, getIndentLevel(), propName, true);
-               }
-               return prop == null ? -1 : prop.getValue();
-       }
-       /**
-        * Fetch the value of the given Paragraph related TextProp.
-        * Returns -1 if that TextProp isn't present.
-        * If the TextProp isn't present, the value from the appropriate
-        *  Master Sheet will apply.
-        */
-       private int getParaTextPropVal(String propName) {
-               TextProp prop = null;
-               boolean hardAttribute = false;
-               if (paragraphStyle != null){
-                       prop = paragraphStyle.findByName(propName);
-
-                       BitMaskTextProp maskProp = (BitMaskTextProp)paragraphStyle.findByName(ParagraphFlagsTextProp.NAME);
-                       hardAttribute = maskProp != null && maskProp.getValue() == 0;
-               }
-               if (prop == null && !hardAttribute){
-                       Sheet sheet = parentRun.getSheet();
-                       int txtype = parentRun.getRunType();
-                       MasterSheet master = sheet.getMasterSheet();
-                       if (master != null)
-                               prop = master.getStyleAttribute(txtype, getIndentLevel(), propName, false);
-               }
-
-               return prop == null ? -1 : prop.getValue();
-       }
-
-       /**
-        * Sets the value of the given Character TextProp, add if required
-        * @param propName The name of the Character TextProp
-        * @param val The value to set for the TextProp
-        */
-       public void setParaTextPropVal(String propName, int val) {
-               // Ensure we have the StyleTextProp atom we're going to need
-               if(paragraphStyle == null) {
-                       parentRun.ensureStyleAtomPresent();
-                       // paragraphStyle will now be defined
-               }
-
-        assert(paragraphStyle!=null);
-               TextProp tp = fetchOrAddTextProp(paragraphStyle, propName);
-               tp.setValue(val);
-       }
-       /**
-        * Sets the value of the given Paragraph TextProp, add if required
-        * @param propName The name of the Paragraph TextProp
-        * @param val The value to set for the TextProp
-        */
-       public void setCharTextPropVal(String propName, int val) {
-               // Ensure we have the StyleTextProp atom we're going to need
-               if(characterStyle == null) {
-                       parentRun.ensureStyleAtomPresent();
-                       // characterStyle will now be defined
-               }
-
-               assert(characterStyle!=null);
-               TextProp tp = fetchOrAddTextProp(characterStyle, propName);
-               tp.setValue(val);
-       }
-
-
-       // --------------- Friendly getters / setters on rich text properties -------
-
-       /**
-        * Is the text bold?
-        */
-       public boolean isBold() {
-               return isCharFlagsTextPropVal(CharFlagsTextProp.BOLD_IDX);
-       }
-
-       /**
-        * Is the text bold?
-        */
-       public void setBold(boolean bold) {
-               setCharFlagsTextPropVal(CharFlagsTextProp.BOLD_IDX, bold);
-       }
-
-       /**
-        * Is the text italic?
-        */
-       public boolean isItalic() {
-               return isCharFlagsTextPropVal(CharFlagsTextProp.ITALIC_IDX);
-       }
-
-       /**
-        * Is the text italic?
-        */
-       public void setItalic(boolean italic) {
-               setCharFlagsTextPropVal(CharFlagsTextProp.ITALIC_IDX, italic);
-       }
-
-       /**
-        * Is the text underlined?
-        */
-       public boolean isUnderlined() {
-               return isCharFlagsTextPropVal(CharFlagsTextProp.UNDERLINE_IDX);
-       }
-
-       /**
-        * Is the text underlined?
-        */
-       public void setUnderlined(boolean underlined) {
-               setCharFlagsTextPropVal(CharFlagsTextProp.UNDERLINE_IDX, underlined);
-       }
-
-       /**
-        * Does the text have a shadow?
-        */
-       public boolean isShadowed() {
-               return isCharFlagsTextPropVal(CharFlagsTextProp.SHADOW_IDX);
-       }
-
-       /**
-        * Does the text have a shadow?
-        */
-       public void setShadowed(boolean flag) {
-               setCharFlagsTextPropVal(CharFlagsTextProp.SHADOW_IDX, flag);
-       }
-
-       /**
-        * Is this text embossed?
-        */
-        public boolean isEmbossed() {
-               return isCharFlagsTextPropVal(CharFlagsTextProp.RELIEF_IDX);
-       }
-
-       /**
-        * Is this text embossed?
-        */
-        public void setEmbossed(boolean flag) {
-               setCharFlagsTextPropVal(CharFlagsTextProp.RELIEF_IDX, flag);
-       }
-
-       /**
-        * Gets the strikethrough flag
-        */
-       public boolean isStrikethrough() {
-               return isCharFlagsTextPropVal(CharFlagsTextProp.STRIKETHROUGH_IDX);
-       }
-
-       /**
-        * Sets the strikethrough flag
-        */
-       public void setStrikethrough(boolean flag) {
-               setCharFlagsTextPropVal(CharFlagsTextProp.STRIKETHROUGH_IDX, flag);
-       }
-
-       /**
-        * Gets the subscript/superscript option
-        *
-        * @return the percentage of the font size. If the value is positive, it is superscript, otherwise it is subscript
-        */
-       public int getSuperscript() {
-               int val = getCharTextPropVal("superscript");
-               return val == -1 ? 0 : val;
-       }
-
-       /**
-        * Sets the subscript/superscript option
-        *
-        * @param val the percentage of the font size. If the value is positive, it is superscript, otherwise it is subscript
-        */
-       public void setSuperscript(int val) {
-               setCharTextPropVal("superscript", val);
-       }
-
-       /**
-        * Gets the font size
-        */
-       public int getFontSize() {
-               return getCharTextPropVal("font.size");
-       }
-
-
-       /**
-        * Sets the font size
-        */
-       public void setFontSize(int fontSize) {
-               setCharTextPropVal("font.size", fontSize);
-       }
-
-       /**
-        * Gets the font index
-        */
-       public int getFontIndex() {
-               return getCharTextPropVal("font.index");
-       }
-
-       /**
-        * Sets the font index
-        */
-       public void setFontIndex(int idx) {
-               setCharTextPropVal("font.index", idx);
-       }
-
-
-       /**
-        * Sets the font name to use
-        */
-       public void setFontName(String fontName) {
-               if (slideShow == null) {
-                       //we can't set font since slideshow is not assigned yet
-                       _fontname = fontName;
-               } else {
-                       // Get the index for this font (adding if needed)
-                       int fontIdx = slideShow.getFontCollection().addFont(fontName);
-                       setCharTextPropVal("font.index", fontIdx);
-               }
-       }
-
-       /**
-        * Gets the font name
-        */
-       public String getFontName() {
-               if (slideShow == null) {
-                       return _fontname;
-               }
-               int fontIdx = getCharTextPropVal("font.index");
-               if(fontIdx == -1) { return null; }
-               return slideShow.getFontCollection().getFontWithId(fontIdx);
-       }
-
-       /**
-        * @return font color as RGB value
-        * @see java.awt.Color
-        */
-       public Color getFontColor() {
-               int rgb = getCharTextPropVal("font.color");
-
-               int cidx = rgb >> 24;
-               if (rgb % 0x1000000 == 0){
-                       ColorSchemeAtom ca = parentRun.getSheet().getColorScheme();
-                       if(cidx >= 0 && cidx <= 7) rgb = ca.getColor(cidx);
-               }
-               Color tmp = new Color(rgb, true);
-               return new Color(tmp.getBlue(), tmp.getGreen(), tmp.getRed());
-       }
-
-       /**
-        * Sets color of the text, as a int bgr.
-        * (PowerPoint stores as BlueGreenRed, not the more
-        *  usual RedGreenBlue)
-        * @see java.awt.Color
-        */
-       public void setFontColor(int bgr) {
-               setCharTextPropVal("font.color", bgr);
-       }
-
-       /**
-        * Sets color of the text, as a java.awt.Color
-        */
-       public void setFontColor(Color color) {
-               // In PowerPont RGB bytes are swapped, as BGR
-               int rgb = new Color(color.getBlue(), color.getGreen(), color.getRed(), 254).getRGB();
-               setFontColor(rgb);
-       }
-
-       /**
-        * Sets the type of horizontal alignment for the text.
-        * One of the <code>Align*</code> constants defined in the <code>TextBox</code> class.
-        *
-        * @param align - the type of alignment
-        */
-       public void setAlignment(int align) {
-               setParaTextPropVal("alignment", align);
-       }
-       /**
-        * Returns the type of horizontal alignment for the text.
-        * One of the <code>Align*</code> constants defined in the <code>TextBox</class> class.
-        *
-        * @return the type of alignment
-        */
-       public int getAlignment() {
-               return getParaTextPropVal("alignment");
-       }
-
-       /**
-        *
-        * @return indentation level
-        */
-       public int getIndentLevel() {
-               return paragraphStyle == null ? 0 : paragraphStyle.getReservedField();
-       }
-
-       /**
-        * Sets indentation level
-        *
-        * @param level indentation level. Must be in the range [0, 4]
-        */
-       public void setIndentLevel(int level) {
-               if(paragraphStyle != null ) paragraphStyle.setReservedField((short)level);
-       }
-
-       /**
-        * Sets whether this rich text run has bullets
-        */
-       public void setBullet(boolean flag) {
-               setFlag(false, ParagraphFlagsTextProp.BULLET_IDX, flag);
-       }
-
-       /**
-        * Returns whether this rich text run has bullets
-        */
-       public boolean isBullet() {
-               return getFlag(false, ParagraphFlagsTextProp.BULLET_IDX);
-       }
-
-       /**
-        * Returns whether this rich text run has bullets
-        */
-       public boolean isBulletHard() {
-               return getFlag(false, ParagraphFlagsTextProp.BULLET_IDX);
-       }
-
-       /**
-        * Sets the bullet character
-        */
-       public void setBulletChar(char c) {
-               setParaTextPropVal("bullet.char", c);
-       }
-
-       /**
-        * Returns the bullet character
-        */
-       public char getBulletChar() {
-               return (char)getParaTextPropVal("bullet.char");
-       }
-
-       /**
-        * Sets the bullet offset
-        */
-       public void setBulletOffset(int offset) {
-               setParaTextPropVal("bullet.offset", offset*HSLFShape.MASTER_DPI/HSLFShape.POINT_DPI);
-       }
-
-       /**
-        * Returns the bullet offset
-        */
-       public int getBulletOffset() {
-               return getParaTextPropVal("bullet.offset")*HSLFShape.POINT_DPI/HSLFShape.MASTER_DPI;
-       }
-
-       /**
-        * Sets the text offset
-        */
-       public void setTextOffset(int offset) {
-               setParaTextPropVal("text.offset", offset*HSLFShape.MASTER_DPI/HSLFShape.POINT_DPI);
-       }
-
-       /**
-        * Returns the text offset
-        */
-       public int getTextOffset() {
-               return getParaTextPropVal("text.offset")*HSLFShape.POINT_DPI/HSLFShape.MASTER_DPI;
-       }
-
-       /**
-        * Sets the bullet size
-        */
-       public void setBulletSize(int size) {
-               setParaTextPropVal("bullet.size", size);
-       }
-
-       /**
-        * Returns the bullet size
-        */
-       public int getBulletSize() {
-               return getParaTextPropVal("bullet.size");
-       }
-
-       /**
-        * Sets the bullet color
-        */
-       public void setBulletColor(Color color) {
-               int rgb = new Color(color.getBlue(), color.getGreen(), color.getRed(), 254).getRGB();
-               setParaTextPropVal("bullet.color", rgb);
-       }
-
-       /**
-        * Returns the bullet color
-        */
-       public Color getBulletColor() {
-               int rgb = getParaTextPropVal("bullet.color");
-               if(rgb == -1) return getFontColor();
-
-               int cidx = rgb >> 24;
-               if (rgb % 0x1000000 == 0){
-                       ColorSchemeAtom ca = parentRun.getSheet().getColorScheme();
-                       if(cidx >= 0 && cidx <= 7) rgb = ca.getColor(cidx);
-               }
-               Color tmp = new Color(rgb, true);
-               return new Color(tmp.getBlue(), tmp.getGreen(), tmp.getRed());
-       }
-
-       /**
-        * Sets the bullet font
-        */
-       public void setBulletFont(int idx) {
-               setParaTextPropVal("bullet.font", idx);
-               setFlag(false, ParagraphFlagsTextProp.BULLET_HARDFONT_IDX, true);
-       }
-
-       /**
-        * Returns the bullet font
-        */
-       public int getBulletFont() {
-               return getParaTextPropVal("bullet.font");
-       }
-
-       /**
-        * Sets the line spacing.
-        * <p>
-        * If linespacing >= 0, then linespacing is a percentage of normal line height.
-        * If linespacing < 0, the absolute value of linespacing is the spacing in master coordinates.
-        * </p>
-        */
-       public void setLineSpacing(int val) {
-               setParaTextPropVal("linespacing", val);
-       }
-
-       /**
-        * Returns the line spacing
-        * <p>
-        * If linespacing >= 0, then linespacing is a percentage of normal line height.
-        * If linespacing < 0, the absolute value of linespacing is the spacing in master coordinates.
-        * </p>
-        *
-        * @return the spacing between lines
-        */
-       public int getLineSpacing() {
-               int val = getParaTextPropVal("linespacing");
-               return val == -1 ? 0 : val;
-       }
-
-       /**
-        * Sets spacing before a paragraph.
-        * <p>
-        * If spacebefore >= 0, then spacebefore is a percentage of normal line height.
-        * If spacebefore < 0, the absolute value of spacebefore is the spacing in master coordinates.
-        * </p>
-        */
-       public void setSpaceBefore(int val) {
-               setParaTextPropVal("spacebefore", val);
-       }
-
-       /**
-        * Returns spacing before a paragraph
-        * <p>
-        * If spacebefore >= 0, then spacebefore is a percentage of normal line height.
-        * If spacebefore < 0, the absolute value of spacebefore is the spacing in master coordinates.
-        * </p>
-        *
-        * @return the spacing before a paragraph
-        */
-       public int getSpaceBefore() {
-               int val = getParaTextPropVal("spacebefore");
-               return val == -1 ? 0 : val;
-       }
-
-       /**
-        * Sets spacing after a paragraph.
-        * <p>
-        * If spaceafter >= 0, then spaceafter is a percentage of normal line height.
-        * If spaceafter < 0, the absolute value of spaceafter is the spacing in master coordinates.
-        * </p>
-        */
-       public void setSpaceAfter(int val) {
-               setParaTextPropVal("spaceafter", val);
-       }
-
-       /**
-        * Returns spacing after a paragraph
-        * <p>
-        * If spaceafter >= 0, then spaceafter is a percentage of normal line height.
-        * If spaceafter < 0, the absolute value of spaceafter is the spacing in master coordinates.
-        * </p>
-        *
-        * @return the spacing before a paragraph
-        */
-       public int getSpaceAfter() {
-               int val = getParaTextPropVal("spaceafter");
-               return val == -1 ? 0 : val;
-       }
-       // --------------- Internal HSLF methods, not intended for end-user use! -------
-
-       /**
-        * Internal Use Only - get the underlying paragraph style collection.
-        * For normal use, use the friendly setters and getters
-        */
-       public TextPropCollection _getRawParagraphStyle() { return paragraphStyle; }
-       /**
-        * Internal Use Only - get the underlying character style collection.
-        * For normal use, use the friendly setters and getters
-        */
-       public TextPropCollection _getRawCharacterStyle() { return characterStyle; }
-       /**
-        * Internal Use Only - are the Paragraph styles shared?
-        */
-       public boolean _isParagraphStyleShared() { return sharingParagraphStyle; }
-       /**
-        * Internal Use Only - are the Character styles shared?
-        */
-       public boolean _isCharacterStyleShared() { return sharingCharacterStyle; }
-}
diff --git a/src/scratchpad/src/org/apache/poi/hslf/usermodel/SlideShow.java b/src/scratchpad/src/org/apache/poi/hslf/usermodel/SlideShow.java
deleted file mode 100644 (file)
index d6829b4..0000000
+++ /dev/null
@@ -1,1172 +0,0 @@
-/* ====================================================================
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-==================================================================== */
-
-package org.apache.poi.hslf.usermodel;
-
-import java.awt.Dimension;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.poi.ddf.EscherBSERecord;
-import org.apache.poi.ddf.EscherContainerRecord;
-import org.apache.poi.ddf.EscherOptRecord;
-import org.apache.poi.ddf.EscherRecord;
-import org.apache.poi.hpsf.ClassID;
-import org.apache.poi.hslf.HSLFSlideShow;
-import org.apache.poi.hslf.exceptions.CorruptPowerPointFileException;
-import org.apache.poi.hslf.exceptions.HSLFException;
-import org.apache.poi.hslf.model.HeadersFooters;
-import org.apache.poi.hslf.model.Hyperlink;
-import org.apache.poi.hslf.model.MovieShape;
-import org.apache.poi.hslf.model.Notes;
-import org.apache.poi.hslf.model.PPFont;
-import org.apache.poi.hslf.model.Picture;
-import org.apache.poi.hslf.model.HSLFShape;
-import org.apache.poi.hslf.model.Slide;
-import org.apache.poi.hslf.model.SlideMaster;
-import org.apache.poi.hslf.model.TitleMaster;
-import org.apache.poi.hslf.record.Document;
-import org.apache.poi.hslf.record.DocumentAtom;
-import org.apache.poi.hslf.record.ExAviMovie;
-import org.apache.poi.hslf.record.ExControl;
-import org.apache.poi.hslf.record.ExEmbed;
-import org.apache.poi.hslf.record.ExEmbedAtom;
-import org.apache.poi.hslf.record.ExHyperlink;
-import org.apache.poi.hslf.record.ExHyperlinkAtom;
-import org.apache.poi.hslf.record.ExMCIMovie;
-import org.apache.poi.hslf.record.ExObjList;
-import org.apache.poi.hslf.record.ExObjListAtom;
-import org.apache.poi.hslf.record.ExOleObjAtom;
-import org.apache.poi.hslf.record.ExOleObjStg;
-import org.apache.poi.hslf.record.ExVideoContainer;
-import org.apache.poi.hslf.record.FontCollection;
-import org.apache.poi.hslf.record.FontEntityAtom;
-import org.apache.poi.hslf.record.HeadersFootersContainer;
-import org.apache.poi.hslf.record.PersistPtrHolder;
-import org.apache.poi.hslf.record.PositionDependentRecord;
-import org.apache.poi.hslf.record.PositionDependentRecordContainer;
-import org.apache.poi.hslf.record.Record;
-import org.apache.poi.hslf.record.RecordContainer;
-import org.apache.poi.hslf.record.RecordTypes;
-import org.apache.poi.hslf.record.SlideListWithText;
-import org.apache.poi.hslf.record.SlideListWithText.SlideAtomsSet;
-import org.apache.poi.hslf.record.SlidePersistAtom;
-import org.apache.poi.hslf.record.UserEditAtom;
-import org.apache.poi.poifs.filesystem.DirectoryNode;
-import org.apache.poi.poifs.filesystem.POIFSFileSystem;
-import org.apache.poi.util.POILogFactory;
-import org.apache.poi.util.POILogger;
-
-/**
- * This class is a friendly wrapper on top of the more scary HSLFSlideShow.
- *
- * TODO: - figure out how to match notes to their correct sheet (will involve
- * understanding DocSlideList and DocNotesList) - handle Slide creation cleaner
- *
- * @author Nick Burch
- * @author Yegor kozlov
- */
-public final class SlideShow {
-       // What we're based on
-       private HSLFSlideShow _hslfSlideShow;
-
-       // Pointers to the most recent versions of the core records
-       // (Document, Notes, Slide etc)
-       private Record[] _mostRecentCoreRecords;
-       // Lookup between the PersitPtr "sheet" IDs, and the position
-       // in the mostRecentCoreRecords array
-       private Map<Integer,Integer> _sheetIdToCoreRecordsLookup;
-
-       // Records that are interesting
-       private Document _documentRecord;
-
-       // Friendly objects for people to deal with
-       private SlideMaster[] _masters;
-       private TitleMaster[] _titleMasters;
-       private Slide[] _slides;
-       private Notes[] _notes;
-       private FontCollection _fonts;
-
-       // For logging
-       private POILogger logger = POILogFactory.getLogger(this.getClass());
-
-
-       /* ===============================================================
-        *                       Setup Code
-        * ===============================================================
-        */
-
-
-       /**
-        * Constructs a Powerpoint document from the underlying
-        * HSLFSlideShow object. Finds the model stuff from this
-        *
-        * @param hslfSlideShow the HSLFSlideShow to base on
-        */
-       public SlideShow(HSLFSlideShow hslfSlideShow) {
-           // Get useful things from our base slideshow
-           _hslfSlideShow = hslfSlideShow;
-
-               // Handle Parent-aware Records
-               for (Record record : _hslfSlideShow.getRecords()) {
-                       if(record instanceof RecordContainer){
-                RecordContainer.handleParentAwareRecords((RecordContainer)record);
-            }
-               }
-
-               // Find the versions of the core records we'll want to use
-               findMostRecentCoreRecords();
-
-               // Build up the model level Slides and Notes
-               buildSlidesAndNotes();
-       }
-
-       /**
-        * Constructs a new, empty, Powerpoint document.
-        */
-       public SlideShow() {
-               this(HSLFSlideShow.create());
-       }
-
-       /**
-        * Constructs a Powerpoint document from an input stream.
-        */
-       public SlideShow(InputStream inputStream) throws IOException {
-               this(new HSLFSlideShow(inputStream));
-       }
-
-       /**
-        * Use the PersistPtrHolder entries to figure out what is the "most recent"
-        * version of all the core records (Document, Notes, Slide etc), and save a
-        * record of them. Do this by walking from the oldest PersistPtr to the
-        * newest, overwriting any references found along the way with newer ones
-        */
-       private void findMostRecentCoreRecords() {
-               // To start with, find the most recent in the byte offset domain
-               Map<Integer,Integer> mostRecentByBytes = new HashMap<Integer,Integer>();
-               for (Record record : _hslfSlideShow.getRecords()) {
-                       if (record instanceof PersistPtrHolder) {
-                               PersistPtrHolder pph = (PersistPtrHolder) record;
-
-                               // If we've already seen any of the "slide" IDs for this
-                               // PersistPtr, remove their old positions
-                               int[] ids = pph.getKnownSlideIDs();
-                               for (int id : ids) {
-                                       if (mostRecentByBytes.containsKey(id)) {
-                                               mostRecentByBytes.remove(id);
-                                       }
-                               }
-
-                               // Now, update the byte level locations with their latest values
-                               Map<Integer,Integer> thisSetOfLocations = pph.getSlideLocationsLookup();
-                               for (int id : ids) {
-                                       mostRecentByBytes.put(id, thisSetOfLocations.get(id));
-                               }
-                       }
-               }
-
-               // We now know how many unique special records we have, so init
-               // the array
-               _mostRecentCoreRecords = new Record[mostRecentByBytes.size()];
-
-               // We'll also want to be able to turn the slide IDs into a position
-               // in this array
-               _sheetIdToCoreRecordsLookup = new HashMap<Integer,Integer>();
-               Integer[] allIDs = mostRecentByBytes.keySet().toArray(new Integer[mostRecentByBytes.size()]); 
-               Arrays.sort(allIDs);
-               for (int i = 0; i < allIDs.length; i++) {
-                       _sheetIdToCoreRecordsLookup.put(allIDs[i], i);
-               }
-
-               Map<Integer,Integer> mostRecentByBytesRev = new HashMap<Integer,Integer>(mostRecentByBytes.size());
-               for (Map.Entry<Integer,Integer> me : mostRecentByBytes.entrySet()) {
-                   mostRecentByBytesRev.put(me.getValue(), me.getKey());
-               }
-               
-               // Now convert the byte offsets back into record offsets
-               for (Record record : _hslfSlideShow.getRecords()) {
-                       if (!(record instanceof PositionDependentRecord)) continue;
-                       
-                       PositionDependentRecord pdr = (PositionDependentRecord) record;
-                       int recordAt = pdr.getLastOnDiskOffset();
-
-                       Integer thisID = mostRecentByBytesRev.get(recordAt);
-                       
-                       if (thisID == null) continue;
-                       
-                       // Bingo. Now, where do we store it?
-                       int storeAt = _sheetIdToCoreRecordsLookup.get(thisID);
-
-                       // Tell it its Sheet ID, if it cares
-                       if (pdr instanceof PositionDependentRecordContainer) {
-                               PositionDependentRecordContainer pdrc = (PositionDependentRecordContainer) record;
-                               pdrc.setSheetId(thisID);
-                       }
-
-                       // Finally, save the record
-                       _mostRecentCoreRecords[storeAt] = record;
-               }
-
-               // Now look for the interesting records in there
-               for (Record record : _mostRecentCoreRecords) {
-                       // Check there really is a record at this number
-                       if (record != null) {
-                               // Find the Document, and interesting things in it
-                               if (record.getRecordType() == RecordTypes.Document.typeID) {
-                                       _documentRecord = (Document) record;
-                                       _fonts = _documentRecord.getEnvironment().getFontCollection();
-                               }
-                       } else {
-                               // No record at this number
-                               // Odd, but not normally a problem
-                       }
-               }
-       }
-
-       /**
-        * For a given SlideAtomsSet, return the core record, based on the refID
-        * from the SlidePersistAtom
-        */
-       private Record getCoreRecordForSAS(SlideAtomsSet sas) {
-               SlidePersistAtom spa = sas.getSlidePersistAtom();
-               int refID = spa.getRefID();
-               return getCoreRecordForRefID(refID);
-       }
-
-       /**
-        * For a given refID (the internal, 0 based numbering scheme), return the
-        * core record
-        *
-        * @param refID
-        *            the refID
-        */
-       private Record getCoreRecordForRefID(int refID) {
-               Integer coreRecordId = _sheetIdToCoreRecordsLookup.get(refID);
-               if (coreRecordId != null) {
-                       Record r = _mostRecentCoreRecords[coreRecordId];
-                       return r;
-               }
-               logger.log(POILogger.ERROR,
-                               "We tried to look up a reference to a core record, but there was no core ID for reference ID "
-                                               + refID);
-               return null;
-       }
-
-       /**
-        * Build up model level Slide and Notes objects, from the underlying
-        * records.
-        */
-       private void buildSlidesAndNotes() {
-               // Ensure we really found a Document record earlier
-               // If we didn't, then the file is probably corrupt
-               if (_documentRecord == null) {
-                       throw new CorruptPowerPointFileException(
-                                       "The PowerPoint file didn't contain a Document Record in its PersistPtr blocks. It is probably corrupt.");
-               }
-
-               // Fetch the SlideListWithTexts in the most up-to-date Document Record
-               //
-               // As far as we understand it:
-               // * The first SlideListWithText will contain a SlideAtomsSet
-               // for each of the master slides
-               // * The second SlideListWithText will contain a SlideAtomsSet
-               // for each of the slides, in their current order
-               // These SlideAtomsSets will normally contain text
-               // * The third SlideListWithText (if present), will contain a
-               // SlideAtomsSet for each Notes
-               // These SlideAtomsSets will not normally contain text
-               //
-               // Having indentified the masters, slides and notes + their orders,
-               // we have to go and find their matching records
-               // We always use the latest versions of these records, and use the
-               // SlideAtom/NotesAtom to match them with the StyleAtomSet
-
-               SlideListWithText masterSLWT = _documentRecord.getMasterSlideListWithText();
-               SlideListWithText slidesSLWT = _documentRecord.getSlideSlideListWithText();
-               SlideListWithText notesSLWT = _documentRecord.getNotesSlideListWithText();
-
-               // Find master slides
-               // These can be MainMaster records, but oddly they can also be
-               // Slides or Notes, and possibly even other odd stuff....
-               // About the only thing you can say is that the master details are in
-               // the first SLWT.
-               SlideAtomsSet[] masterSets = new SlideAtomsSet[0];
-               if (masterSLWT != null) {
-                       masterSets = masterSLWT.getSlideAtomsSets();
-
-                       ArrayList<SlideMaster> mmr = new ArrayList<SlideMaster>();
-                       ArrayList<TitleMaster> tmr = new ArrayList<TitleMaster>();
-
-                       for (SlideAtomsSet sas : masterSets) {
-                               Record r = getCoreRecordForSAS(sas);
-                               int sheetNo = sas.getSlidePersistAtom().getSlideIdentifier();
-                               if (r instanceof org.apache.poi.hslf.record.Slide) {
-                                       TitleMaster master = new TitleMaster((org.apache.poi.hslf.record.Slide) r,
-                                                       sheetNo);
-                                       master.setSlideShow(this);
-                                       tmr.add(master);
-                               } else if (r instanceof org.apache.poi.hslf.record.MainMaster) {
-                                       SlideMaster master = new SlideMaster((org.apache.poi.hslf.record.MainMaster) r,
-                                                       sheetNo);
-                                       master.setSlideShow(this);
-                                       mmr.add(master);
-                               }
-                       }
-
-                       _masters = mmr.toArray(new SlideMaster[mmr.size()]);
-                       _titleMasters = tmr.toArray(new TitleMaster[tmr.size()]);
-               }
-
-               // Having sorted out the masters, that leaves the notes and slides
-
-               // Start by finding the notes records to go with the entries in
-               // notesSLWT
-               org.apache.poi.hslf.record.Notes[] notesRecords;
-               SlideAtomsSet[] notesSets = new SlideAtomsSet[0];
-               Map<Integer,Integer> slideIdToNotes = new HashMap<Integer,Integer>();
-               if (notesSLWT == null) {
-                       // None
-                       notesRecords = new org.apache.poi.hslf.record.Notes[0];
-               } else {
-                       // Match up the records and the SlideAtomSets
-                       notesSets = notesSLWT.getSlideAtomsSets();
-                       List<org.apache.poi.hslf.record.Notes> notesRecordsL = 
-                          new ArrayList<org.apache.poi.hslf.record.Notes>();
-                       for (int i = 0; i < notesSets.length; i++) {
-                               // Get the right core record
-                               Record r = getCoreRecordForSAS(notesSets[i]);
-
-                               // Ensure it really is a notes record
-                               if (r == null || r instanceof org.apache.poi.hslf.record.Notes) {
-                                   if (r == null) {
-                           logger.log(POILogger.WARN, "A Notes SlideAtomSet at " + i
-                                   + " said its record was at refID "
-                                   + notesSets[i].getSlidePersistAtom().getRefID()
-                                   + ", but that record didn't exist - record ignored.");
-                                   }
-                                   // we need to add also null-records, otherwise the index references to other existing
-                                   // don't work anymore
-                                       org.apache.poi.hslf.record.Notes notesRecord = (org.apache.poi.hslf.record.Notes) r;
-                                       notesRecordsL.add(notesRecord);
-
-                                       // Record the match between slide id and these notes
-                                       SlidePersistAtom spa = notesSets[i].getSlidePersistAtom();
-                                       int slideId = spa.getSlideIdentifier();
-                                       slideIdToNotes.put(slideId, i);
-                               } else {
-                                       logger.log(POILogger.ERROR, "A Notes SlideAtomSet at " + i
-                                                       + " said its record was at refID "
-                                                       + notesSets[i].getSlidePersistAtom().getRefID()
-                                                       + ", but that was actually a " + r);
-                               }
-                       }
-                       notesRecords = new org.apache.poi.hslf.record.Notes[notesRecordsL.size()];
-                       notesRecords = notesRecordsL.toArray(notesRecords);
-               }
-
-               // Now, do the same thing for our slides
-               org.apache.poi.hslf.record.Slide[] slidesRecords;
-               SlideAtomsSet[] slidesSets = new SlideAtomsSet[0];
-               if (slidesSLWT == null) {
-                       // None
-                       slidesRecords = new org.apache.poi.hslf.record.Slide[0];
-               } else {
-                       // Match up the records and the SlideAtomSets
-                       slidesSets = slidesSLWT.getSlideAtomsSets();
-                       slidesRecords = new org.apache.poi.hslf.record.Slide[slidesSets.length];
-                       for (int i = 0; i < slidesSets.length; i++) {
-                               // Get the right core record
-                               Record r = getCoreRecordForSAS(slidesSets[i]);
-
-                               // Ensure it really is a slide record
-                               if (r instanceof org.apache.poi.hslf.record.Slide) {
-                                       slidesRecords[i] = (org.apache.poi.hslf.record.Slide) r;
-                               } else {
-                                       logger.log(POILogger.ERROR, "A Slide SlideAtomSet at " + i
-                                                       + " said its record was at refID "
-                                                       + slidesSets[i].getSlidePersistAtom().getRefID()
-                                                       + ", but that was actually a " + r);
-                               }
-                       }
-               }
-
-               // Finally, generate model objects for everything
-               // Notes first
-               _notes = new Notes[notesRecords.length];
-               for (int i = 0; i < _notes.length; i++) {
-                   if (notesRecords[i] != null) {
-                   _notes[i] = new Notes(notesRecords[i]);
-                       _notes[i].setSlideShow(this);
-                   }
-               }
-               // Then slides
-               _slides = new Slide[slidesRecords.length];
-               for (int i = 0; i < _slides.length; i++) {
-                       SlideAtomsSet sas = slidesSets[i];
-                       int slideIdentifier = sas.getSlidePersistAtom().getSlideIdentifier();
-
-                       // Do we have a notes for this?
-                       Notes notes = null;
-                       // Slide.SlideAtom.notesId references the corresponding notes slide.
-                       // 0 if slide has no notes.
-                       int noteId = slidesRecords[i].getSlideAtom().getNotesID();
-                       if (noteId != 0) {
-                               Integer notesPos = slideIdToNotes.get(noteId);
-                               if (notesPos != null) {
-                                       notes = _notes[notesPos];
-                               } else {
-                                       logger.log(POILogger.ERROR, "Notes not found for noteId=" + noteId);
-                               }
-                       }
-
-                       // Now, build our slide
-                       _slides[i] = new Slide(slidesRecords[i], notes, sas, slideIdentifier, (i + 1));
-                       _slides[i].setSlideShow(this);
-               }
-       }
-
-       /**
-        * Writes out the slideshow file the is represented by an instance of this
-        * class
-        *
-        * @param out
-        *            The OutputStream to write to.
-        * @throws IOException
-        *             If there is an unexpected IOException from the passed in
-        *             OutputStream
-        */
-       public void write(OutputStream out) throws IOException {
-               _hslfSlideShow.write(out);
-       }
-
-       /*
-        * ===============================================================
-        *                         Accessor Code
-        * ===============================================================
-        */
-
-       /**
-        * Returns an array of the most recent version of all the interesting
-        * records
-        */
-       public Record[] getMostRecentCoreRecords() {
-               return _mostRecentCoreRecords;
-       }
-
-       /**
-        * Returns an array of all the normal Slides found in the slideshow
-        */
-       public Slide[] getSlides() {
-               return _slides;
-       }
-
-       /**
-        * Returns an array of all the normal Notes found in the slideshow
-        */
-       public Notes[] getNotes() {
-               return _notes;
-       }
-
-       /**
-        * Returns an array of all the normal Slide Masters found in the slideshow
-        */
-       public SlideMaster[] getSlidesMasters() {
-               return _masters;
-       }
-
-       /**
-        * Returns an array of all the normal Title Masters found in the slideshow
-        */
-       public TitleMaster[] getTitleMasters() {
-               return _titleMasters;
-       }
-
-       /**
-        * Returns the data of all the pictures attached to the SlideShow
-        */
-       public PictureData[] getPictureData() {
-               return _hslfSlideShow.getPictures();
-       }
-
-       /**
-        * Returns the data of all the embedded OLE object in the SlideShow
-        */
-       public ObjectData[] getEmbeddedObjects() {
-               return _hslfSlideShow.getEmbeddedObjects();
-       }
-
-       /**
-        * Returns the data of all the embedded sounds in the SlideShow
-        */
-       public SoundData[] getSoundData() {
-               return SoundData.find(_documentRecord);
-       }
-
-       /**
-        * Return the current page size
-        */
-       public Dimension getPageSize() {
-               DocumentAtom docatom = _documentRecord.getDocumentAtom();
-               int pgx = (int) docatom.getSlideSizeX() * HSLFShape.POINT_DPI / HSLFShape.MASTER_DPI;
-               int pgy = (int) docatom.getSlideSizeY() * HSLFShape.POINT_DPI / HSLFShape.MASTER_DPI;
-               return new Dimension(pgx, pgy);
-       }
-
-       /**
-        * Change the current page size
-        *
-        * @param pgsize
-        *            page size (in points)
-        */
-       public void setPageSize(Dimension pgsize) {
-               DocumentAtom docatom = _documentRecord.getDocumentAtom();
-               docatom.setSlideSizeX(pgsize.width * HSLFShape.MASTER_DPI / HSLFShape.POINT_DPI);
-               docatom.setSlideSizeY(pgsize.height * HSLFShape.MASTER_DPI / HSLFShape.POINT_DPI);
-       }
-
-       /**
-        * Helper method for usermodel: Get the font collection
-        */
-       protected FontCollection getFontCollection() {
-               return _fonts;
-       }
-
-       /**
-        * Helper method for usermodel and model: Get the document record
-        */
-       public Document getDocumentRecord() {
-               return _documentRecord;
-       }
-
-       /*
-        * ===============================================================
-        * Re-ordering Code
-        * ===============================================================
-        */
-
-       /**
-        * Re-orders a slide, to a new position.
-        *
-        * @param oldSlideNumber
-        *            The old slide number (1 based)
-        * @param newSlideNumber
-        *            The new slide number (1 based)
-        */
-       public void reorderSlide(int oldSlideNumber, int newSlideNumber) {
-               // Ensure these numbers are valid
-               if (oldSlideNumber < 1 || newSlideNumber < 1) {
-                       throw new IllegalArgumentException("Old and new slide numbers must be greater than 0");
-               }
-               if (oldSlideNumber > _slides.length || newSlideNumber > _slides.length) {
-                       throw new IllegalArgumentException(
-                                       "Old and new slide numbers must not exceed the number of slides ("
-                                                       + _slides.length + ")");
-               }
-
-               // The order of slides is defined by the order of slide atom sets in the
-               // SlideListWithText container.
-               SlideListWithText slwt = _documentRecord.getSlideSlideListWithText();
-               SlideAtomsSet[] sas = slwt.getSlideAtomsSets();
-
-               SlideAtomsSet tmp = sas[oldSlideNumber - 1];
-               sas[oldSlideNumber - 1] = sas[newSlideNumber - 1];
-               sas[newSlideNumber - 1] = tmp;
-
-               ArrayList<Record> lst = new ArrayList<Record>();
-               for (int i = 0; i < sas.length; i++) {
-                       lst.add(sas[i].getSlidePersistAtom());
-                       Record[] r = sas[i].getSlideRecords();
-                       for (int j = 0; j < r.length; j++) {
-                               lst.add(r[j]);
-                       }
-                       _slides[i].setSlideNumber(i + 1);
-               }
-               Record[] r = lst.toArray(new Record[lst.size()]);
-               slwt.setChildRecord(r);
-       }
-
-       /**
-        * Removes the slide at the given index (0-based).
-        * <p>
-        * Shifts any subsequent slides to the left (subtracts one from their slide
-        * numbers).
-        * </p>
-        *
-        * @param index
-        *            the index of the slide to remove (0-based)
-        * @return the slide that was removed from the slide show.
-        */
-       public Slide removeSlide(int index) {
-               int lastSlideIdx = _slides.length - 1;
-               if (index < 0 || index > lastSlideIdx) {
-                       throw new IllegalArgumentException("Slide index (" + index + ") is out of range (0.."
-                                       + lastSlideIdx + ")");
-               }
-
-               SlideListWithText slwt = _documentRecord.getSlideSlideListWithText();
-               SlideAtomsSet[] sas = slwt.getSlideAtomsSets();
-
-               Slide removedSlide = null;
-               ArrayList<Record> records = new ArrayList<Record>();
-               ArrayList<SlideAtomsSet> sa = new ArrayList<SlideAtomsSet>();
-               ArrayList<Slide> sl = new ArrayList<Slide>();
-
-               ArrayList<Notes> nt = new ArrayList<Notes>();
-               for (Notes notes : getNotes())
-                       nt.add(notes);
-
-               for (int i = 0, num = 0; i < _slides.length; i++) {
-                       if (i != index) {
-                               sl.add(_slides[i]);
-                               sa.add(sas[i]);
-                               _slides[i].setSlideNumber(num++);
-                               records.add(sas[i].getSlidePersistAtom());
-                               records.addAll(Arrays.asList(sas[i].getSlideRecords()));
-                       } else {
-                               removedSlide = _slides[i];
-                               nt.remove(_slides[i].getNotesSheet());
-                       }
-               }
-               if (sa.size() == 0) {
-                       _documentRecord.removeSlideListWithText(slwt);
-               } else {
-                       slwt.setSlideAtomsSets(sa.toArray(new SlideAtomsSet[sa.size()]));
-                       slwt.setChildRecord(records.toArray(new Record[records.size()]));
-               }
-               _slides = sl.toArray(new Slide[sl.size()]);
-
-               // if the removed slide had notes - remove references to them too
-
-               if (removedSlide != null) {
-                       int notesId = removedSlide.getSlideRecord().getSlideAtom().getNotesID();
-                       if (notesId != 0) {
-                               SlideListWithText nslwt = _documentRecord.getNotesSlideListWithText();
-                               records = new ArrayList<Record>();
-                               ArrayList<SlideAtomsSet> na = new ArrayList<SlideAtomsSet>();
-                               for (SlideAtomsSet ns : nslwt.getSlideAtomsSets()) {
-                                       if (ns.getSlidePersistAtom().getSlideIdentifier() != notesId) {
-                                               na.add(ns);
-                                               records.add(ns.getSlidePersistAtom());
-                                               if (ns.getSlideRecords() != null)
-                                                       records.addAll(Arrays.asList(ns.getSlideRecords()));
-                                       }
-                               }
-                               if (na.size() == 0) {
-                                       _documentRecord.removeSlideListWithText(nslwt);
-                               } else {
-                                       nslwt.setSlideAtomsSets(na.toArray(new SlideAtomsSet[na.size()]));
-                                       nslwt.setChildRecord(records.toArray(new Record[records.size()]));
-                               }
-
-                       }
-               }
-               _notes = nt.toArray(new Notes[nt.size()]);
-
-               return removedSlide;
-       }
-
-       /*
-        * ===============================================================
-        *  Addition Code
-        * ===============================================================
-        */
-
-       /**
-        * Create a blank <code>Slide</code>.
-        *
-        * @return the created <code>Slide</code>
-        */
-       public Slide createSlide() {
-               SlideListWithText slist = null;
-
-               // We need to add the records to the SLWT that deals
-               // with Slides.
-               // Add it, if it doesn't exist
-               slist = _documentRecord.getSlideSlideListWithText();
-               if (slist == null) {
-                       // Need to add a new one
-                       slist = new SlideListWithText();
-                       slist.setInstance(SlideListWithText.SLIDES);
-                       _documentRecord.addSlideListWithText(slist);
-               }
-
-               // Grab the SlidePersistAtom with the highest Slide Number.
-               // (Will stay as null if no SlidePersistAtom exists yet in
-               // the slide, or only master slide's ones do)
-               SlidePersistAtom prev = null;
-               for (SlideAtomsSet sas : slist.getSlideAtomsSets()) {
-                       SlidePersistAtom spa = sas.getSlidePersistAtom();
-                       if (spa.getSlideIdentifier() < 0) {
-                               // This is for a master slide
-                               // Odd, since we only deal with the Slide SLWT
-                       } else {
-                               // Must be for a real slide
-                               if (prev == null) {
-                                       prev = spa;
-                               }
-                               if (prev.getSlideIdentifier() < spa.getSlideIdentifier()) {
-                                       prev = spa;
-                               }
-                       }
-               }
-
-               // Set up a new SlidePersistAtom for this slide
-               SlidePersistAtom sp = new SlidePersistAtom();
-
-               // First slideId is always 256
-               sp.setSlideIdentifier(prev == null ? 256 : (prev.getSlideIdentifier() + 1));
-
-               // Add this new SlidePersistAtom to the SlideListWithText
-               slist.addSlidePersistAtom(sp);
-
-               // Create a new Slide
-               Slide slide = new Slide(sp.getSlideIdentifier(), sp.getRefID(), _slides.length + 1);
-               slide.setSlideShow(this);
-               slide.onCreate();
-
-               // Add in to the list of Slides
-               Slide[] s = new Slide[_slides.length + 1];
-               System.arraycopy(_slides, 0, s, 0, _slides.length);
-               s[_slides.length] = slide;
-               _slides = s;
-               logger.log(POILogger.INFO, "Added slide " + _slides.length + " with ref " + sp.getRefID()
-                               + " and identifier " + sp.getSlideIdentifier());
-
-               // Add the core records for this new Slide to the record tree
-               org.apache.poi.hslf.record.Slide slideRecord = slide.getSlideRecord();
-               int psrId = addPersistentObject(slideRecord);
-               sp.setRefID(psrId);
-               slideRecord.setSheetId(psrId);
-               
-               slide.setMasterSheet(_masters[0]);
-               // All done and added
-               return slide;
-       }
-
-       /**
-        * Adds a picture to this presentation and returns the associated index.
-        *
-        * @param data
-        *            picture data
-        * @param format
-        *            the format of the picture. One of constans defined in the
-        *            <code>Picture</code> class.
-        * @return the index to this picture (1 based).
-        */
-       public int addPicture(byte[] data, int format) throws IOException {
-               byte[] uid = PictureData.getChecksum(data);
-
-               EscherContainerRecord bstore;
-
-               EscherContainerRecord dggContainer = _documentRecord.getPPDrawingGroup().getDggContainer();
-               bstore = (EscherContainerRecord) HSLFShape.getEscherChild(dggContainer,
-                               EscherContainerRecord.BSTORE_CONTAINER);
-               if (bstore == null) {
-                       bstore = new EscherContainerRecord();
-                       bstore.setRecordId(EscherContainerRecord.BSTORE_CONTAINER);
-
-                       dggContainer.addChildBefore(bstore, EscherOptRecord.RECORD_ID);
-               } else {
-                       Iterator<EscherRecord> iter = bstore.getChildIterator();
-                       for (int i = 0; iter.hasNext(); i++) {
-                               EscherBSERecord bse = (EscherBSERecord) iter.next();
-                               if (Arrays.equals(bse.getUid(), uid)) {
-                                       return i + 1;
-                               }
-                       }
-               }
-
-               PictureData pict = PictureData.create(format);
-               pict.setData(data);
-
-               int offset = _hslfSlideShow.addPicture(pict);
-
-               EscherBSERecord bse = new EscherBSERecord();
-               bse.setRecordId(EscherBSERecord.RECORD_ID);
-               bse.setOptions((short) (0x0002 | (format << 4)));
-               bse.setSize(pict.getRawData().length + 8);
-               bse.setUid(uid);
-
-               bse.setBlipTypeMacOS((byte) format);
-               bse.setBlipTypeWin32((byte) format);
-
-               if (format == Picture.EMF)
-                       bse.setBlipTypeMacOS((byte) Picture.PICT);
-               else if (format == Picture.WMF)
-                       bse.setBlipTypeMacOS((byte) Picture.PICT);
-               else if (format == Picture.PICT)
-                       bse.setBlipTypeWin32((byte) Picture.WMF);
-
-               bse.setRef(0);
-               bse.setOffset(offset);
-               bse.setRemainingData(new byte[0]);
-
-               bstore.addChildRecord(bse);
-               int count = bstore.getChildRecords().size();
-               bstore.setOptions((short) ((count << 4) | 0xF));
-
-               return count;
-       }
-
-       /**
-        * Adds a picture to this presentation and returns the associated index.
-        *
-        * @param pict
-        *            the file containing the image to add
-        * @param format
-        *            the format of the picture. One of constans defined in the
-        *            <code>Picture</code> class.
-        * @return the index to this picture (1 based).
-        */
-       public int addPicture(File pict, int format) throws IOException {
-               int length = (int) pict.length();
-               byte[] data = new byte[length];
-        FileInputStream is = null;
-        try {
-                       is = new FileInputStream(pict);
-                       is.read(data);
-               } finally {
-            if(is != null) is.close();
-        }
-               return addPicture(data, format);
-       }
-
-       /**
-        * Add a font in this presentation
-        *
-        * @param font
-        *            the font to add
-        * @return 0-based index of the font
-        */
-       public int addFont(PPFont font) {
-               FontCollection fonts = getDocumentRecord().getEnvironment().getFontCollection();
-               int idx = fonts.getFontIndex(font.getFontName());
-               if (idx == -1) {
-                       idx = fonts.addFont(font.getFontName(), font.getCharSet(), font.getFontFlags(), font
-                                       .getFontType(), font.getPitchAndFamily());
-               }
-               return idx;
-       }
-
-       /**
-        * Get a font by index
-        *
-        * @param idx
-        *            0-based index of the font
-        * @return of an instance of <code>PPFont</code> or <code>null</code> if not
-        *         found
-        */
-       public PPFont getFont(int idx) {
-               FontCollection fonts = getDocumentRecord().getEnvironment().getFontCollection();
-               for (Record ch : fonts.getChildRecords()) {
-                       if (ch instanceof FontEntityAtom) {
-                               FontEntityAtom atom = (FontEntityAtom) ch;
-                               if (atom.getFontIndex() == idx) {
-                                       return new PPFont(atom);
-                               }
-                       }
-               }
-               return null;
-       }
-
-       /**
-        * get the number of fonts in the presentation
-        *
-        * @return number of fonts
-        */
-       public int getNumberOfFonts() {
-               return getDocumentRecord().getEnvironment().getFontCollection().getNumberOfFonts();
-       }
-
-       /**
-        * Return Header / Footer settings for slides
-        *
-        * @return Header / Footer settings for slides
-        */
-       public HeadersFooters getSlideHeadersFooters() {
-               // detect if this ppt was saved in Office2007
-               String tag = getSlidesMasters()[0].getProgrammableTag();
-               boolean ppt2007 = "___PPT12".equals(tag);
-
-               HeadersFootersContainer hdd = null;
-               for (Record ch : _documentRecord.getChildRecords()) {
-                       if (ch instanceof HeadersFootersContainer
-                               && ((HeadersFootersContainer) ch).getOptions() == HeadersFootersContainer.SlideHeadersFootersContainer) {
-                               hdd = (HeadersFootersContainer) ch;
-                               break;
-                       }
-               }
-               boolean newRecord = false;
-               if (hdd == null) {
-                       hdd = new HeadersFootersContainer(HeadersFootersContainer.SlideHeadersFootersContainer);
-                       newRecord = true;
-               }
-               return new HeadersFooters(hdd, this, newRecord, ppt2007);
-       }
-
-       /**
-        * Return Header / Footer settings for notes
-        *
-        * @return Header / Footer settings for notes
-        */
-       public HeadersFooters getNotesHeadersFooters() {
-               // detect if this ppt was saved in Office2007
-               String tag = getSlidesMasters()[0].getProgrammableTag();
-               boolean ppt2007 = "___PPT12".equals(tag);
-
-               HeadersFootersContainer hdd = null;
-               for (Record ch : _documentRecord.getChildRecords()) {
-                       if (ch instanceof HeadersFootersContainer
-                                       && ((HeadersFootersContainer) ch).getOptions() == HeadersFootersContainer.NotesHeadersFootersContainer) {
-                               hdd = (HeadersFootersContainer) ch;
-                               break;
-                       }
-               }
-               boolean newRecord = false;
-               if (hdd == null) {
-                       hdd = new HeadersFootersContainer(HeadersFootersContainer.NotesHeadersFootersContainer);
-                       newRecord = true;
-               }
-               if (ppt2007 && _notes.length > 0) {
-                       return new HeadersFooters(hdd, _notes[0], newRecord, ppt2007);
-               }
-               return new HeadersFooters(hdd, this, newRecord, ppt2007);
-       }
-
-       /**
-        * Add a movie in this presentation
-        *
-        * @param path
-        *            the path or url to the movie
-        * @return 0-based index of the movie
-        */
-       public int addMovie(String path, int type) {
-               ExMCIMovie mci;
-               switch (type) {
-                       case MovieShape.MOVIE_MPEG:
-                               mci = new ExMCIMovie();
-                               break;
-                       case MovieShape.MOVIE_AVI:
-                               mci = new ExAviMovie();
-                               break;
-                       default:
-                               throw new IllegalArgumentException("Unsupported Movie: " + type);
-               }
-
-               ExVideoContainer exVideo = mci.getExVideo();
-               exVideo.getExMediaAtom().setMask(0xE80000);
-               exVideo.getPathAtom().setText(path);
-
-               int objectId = addToObjListAtom(mci);
-               exVideo.getExMediaAtom().setObjectId(objectId);
-               
-               return objectId;
-       }
-
-       /**
-        * Add a control in this presentation
-        *
-        * @param name
-        *            name of the control, e.g. "Shockwave Flash Object"
-        * @param progId
-        *            OLE Programmatic Identifier, e.g.
-        *            "ShockwaveFlash.ShockwaveFlash.9"
-        * @return 0-based index of the control
-        */
-       public int addControl(String name, String progId) {
-               ExControl ctrl = new ExControl();
-               ctrl.setProgId(progId);
-               ctrl.setMenuName(name);
-               ctrl.setClipboardName(name);
-               
-               ExOleObjAtom oleObj = ctrl.getExOleObjAtom();
-               oleObj.setDrawAspect(ExOleObjAtom.DRAW_ASPECT_VISIBLE);
-               oleObj.setType(ExOleObjAtom.TYPE_CONTROL);
-               oleObj.setSubType(ExOleObjAtom.SUBTYPE_DEFAULT);
-               
-               int objectId = addToObjListAtom(ctrl);
-               oleObj.setObjID(objectId);
-               return objectId;
-       }
-
-       /**
-        * Add a hyperlink to this presentation
-        *
-        * @return 0-based index of the hyperlink
-        */
-       public int addHyperlink(Hyperlink link) {
-               ExHyperlink ctrl = new ExHyperlink();
-               ExHyperlinkAtom obj = ctrl.getExHyperlinkAtom();
-        if(link.getType() == Hyperlink.LINK_SLIDENUMBER) {
-            ctrl.setLinkURL(link.getAddress(), 0x30);
-        } else {
-            ctrl.setLinkURL(link.getAddress());
-        }
-               ctrl.setLinkTitle(link.getTitle());
-
-               int objectId = addToObjListAtom(ctrl);
-               link.setId(objectId);
-               obj.setNumber(objectId);
-
-               return objectId;
-       }
-
-       /**
-        * Add a embedded object to this presentation
-        *
-        * @return 0-based index of the embedded object
-        */
-       public int addEmbed(POIFSFileSystem poiData) {
-        DirectoryNode root = poiData.getRoot();
-        
-        // prepare embedded data
-        if (new ClassID().equals(root.getStorageClsid())) {
-               // need to set class id
-               Map<String,ClassID> olemap = getOleMap();
-               ClassID classID = null;
-               for (Map.Entry<String,ClassID> entry : olemap.entrySet()) {
-                       if (root.hasEntry(entry.getKey())) {
-                               classID = entry.getValue();
-                               break;
-                       }
-               }
-               if (classID == null) {
-                       throw new IllegalArgumentException("Unsupported embedded document");                    
-               }
-               
-               root.setStorageClsid(classID);
-        }
-        
-               ExEmbed exEmbed = new ExEmbed();
-        // remove unneccessary infos, so we don't need to specify the type
-        // of the ole object multiple times
-        Record children[] = exEmbed.getChildRecords();
-        exEmbed.removeChild(children[2]);
-        exEmbed.removeChild(children[3]);
-        exEmbed.removeChild(children[4]);
-
-        ExEmbedAtom eeEmbed = exEmbed.getExEmbedAtom();
-        eeEmbed.setCantLockServerB(true);
-
-        ExOleObjAtom eeAtom = exEmbed.getExOleObjAtom();
-        eeAtom.setDrawAspect(ExOleObjAtom.DRAW_ASPECT_VISIBLE);
-        eeAtom.setType(ExOleObjAtom.TYPE_EMBEDDED);
-        // eeAtom.setSubType(ExOleObjAtom.SUBTYPE_EXCEL);
-        // should be ignored?!?, see MS-PPT ExOleObjAtom, but Libre Office sets it ...
-        eeAtom.setOptions(1226240);
-
-        ExOleObjStg exOleObjStg = new ExOleObjStg();
-        try {
-               final String OLESTREAM_NAME = "\u0001Ole";
-               if (!root.hasEntry(OLESTREAM_NAME)) {
-                   // the following data was taken from an example libre office document
-                   // beside this "\u0001Ole" record there were several other records, e.g. CompObj,
-                   // OlePresXXX, but it seems, that they aren't neccessary
-                   byte oleBytes[] = { 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-                   poiData.createDocument(new ByteArrayInputStream(oleBytes), OLESTREAM_NAME);
-               }        
-
-               ByteArrayOutputStream bos = new ByteArrayOutputStream();
-               poiData.writeFilesystem(bos);
-               exOleObjStg.setData(bos.toByteArray());
-        } catch (IOException e) {
-               throw new HSLFException(e);
-        }
-        
-        int psrId = addPersistentObject(exOleObjStg);
-        exOleObjStg.setPersistId(psrId);
-        eeAtom.setObjStgDataRef(psrId);
-        
-               int objectId = addToObjListAtom(exEmbed);
-               eeAtom.setObjID(objectId);
-               return objectId;
-       }
-
-       protected int addToObjListAtom(RecordContainer exObj) {
-               ExObjList lst = (ExObjList) _documentRecord.findFirstOfType(RecordTypes.ExObjList.typeID);
-               if (lst == null) {
-                       lst = new ExObjList();
-                       _documentRecord.addChildAfter(lst, _documentRecord.getDocumentAtom());
-               }
-               ExObjListAtom objAtom = lst.getExObjListAtom();
-               // increment the object ID seed
-               int objectId = (int) objAtom.getObjectIDSeed() + 1;
-               objAtom.setObjectIDSeed(objectId);
-
-               lst.addChildAfter(exObj, objAtom);
-               
-               return objectId;
-       }
-
-    protected static Map<String,ClassID> getOleMap() {
-       Map<String,ClassID> olemap = new HashMap<String,ClassID>();
-       olemap.put("PowerPoint Document", ClassID.PPT_SHOW);
-       olemap.put("Workbook", ClassID.EXCEL97); // as per BIFF8 spec
-       olemap.put("WORKBOOK", ClassID.EXCEL97); // Typically from third party programs
-       olemap.put("BOOK", ClassID.EXCEL97); // Typically odd Crystal Reports exports
-       // ... to be continued
-       return olemap;
-    }
-
-    protected int addPersistentObject(PositionDependentRecord slideRecord) {
-       slideRecord.setLastOnDiskOffset(HSLFSlideShow.UNSET_OFFSET);
-               _hslfSlideShow.appendRootLevelRecord((Record)slideRecord);
-
-        // For position dependent records, hold where they were and now are
-        // As we go along, update, and hand over, to any Position Dependent
-        // records we happen across
-               Map<RecordTypes.Type,PositionDependentRecord> interestingRecords =
-                new HashMap<RecordTypes.Type,PositionDependentRecord>();
-
-               try {
-            _hslfSlideShow.updateAndWriteDependantRecords(null,interestingRecords);
-        } catch (IOException e) {
-            throw new HSLFException(e);
-        }
-               
-               PersistPtrHolder ptr = (PersistPtrHolder)interestingRecords.get(RecordTypes.PersistPtrIncrementalBlock);
-               UserEditAtom usr = (UserEditAtom)interestingRecords.get(RecordTypes.UserEditAtom);
-
-               // persist ID is UserEditAtom.maxPersistWritten + 1
-               int psrId = usr.getMaxPersistWritten() + 1;
-
-               // Last view is now of the slide
-               usr.setLastViewType((short) UserEditAtom.LAST_VIEW_SLIDE_VIEW);
-               // increment the number of persistent objects
-               usr.setMaxPersistWritten(psrId);
-
-               // Add the new slide into the last PersistPtr
-               // (Also need to tell it where it is)
-               int slideOffset = slideRecord.getLastOnDiskOffset();
-               slideRecord.setLastOnDiskOffset(slideOffset);
-               ptr.addSlideLookup(psrId, slideOffset);
-               logger.log(POILogger.INFO, "New slide/object ended up at " + slideOffset);
-
-               return psrId;
-    }
-}
diff --git a/src/scratchpad/src/org/apache/poi/hslf/usermodel/SoundData.java b/src/scratchpad/src/org/apache/poi/hslf/usermodel/SoundData.java
deleted file mode 100644 (file)
index 9fd85e1..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-/* ====================================================================
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-==================================================================== */
-
-package org.apache.poi.hslf.usermodel;
-
-import org.apache.poi.hslf.record.*;
-
-import java.util.ArrayList;
-
-/**
- * A class that represents sound data embedded in a slide show.
- *
- * @author Yegor Kozlov
- */
-public final class SoundData {
-    /**
-     * The record that contains the object data.
-     */
-    private Sound _container;
-
-    /**
-     * Creates the object data wrapping the record that contains the sound data.
-     *
-     * @param container the record that contains the sound data.
-     */
-    public SoundData(Sound container) {
-        this._container = container;
-    }
-
-    /**
-     * Name of the sound (e.g. "crash")
-     *
-     * @return name of the sound
-     */
-    public String getSoundName(){
-        return _container.getSoundName();
-    }
-
-    /**
-     * Type of the sound (e.g. ".wav")
-     *
-     * @return type of the sound
-     */
-    public String getSoundType(){
-        return _container.getSoundType();
-    }
-
-    /**
-     * Gets an input stream which returns the binary of the sound data.
-     *
-     * @return the input stream which will contain the binary of the sound data.
-     */
-    public byte[] getData() {
-        return _container.getSoundData();
-    }
-
-    /**
-     * Find all sound records in the supplied Document records
-     *
-     * @param document the document to find in
-     * @return the array with the sound data
-     */
-    public static SoundData[] find(Document document){
-        ArrayList<SoundData> lst = new ArrayList<SoundData>();
-        Record[] ch = document.getChildRecords();
-        for (int i = 0; i < ch.length; i++) {
-            if(ch[i].getRecordType() == RecordTypes.SoundCollection.typeID){
-                RecordContainer col = (RecordContainer)ch[i];
-                Record[] sr = col.getChildRecords();
-                for (int j = 0; j < sr.length; j++) {
-                    if(sr[j] instanceof Sound){
-                        lst.add(new SoundData((Sound)sr[j]));
-                    }
-                }
-            }
-
-        }
-        return lst.toArray(new SoundData[lst.size()]);
-    }
-}
index f28c2cbfd4a5f1dc7e11e876e2daf44f3823f56e..f9fc966575a60cd7f0470314ffed6b88a73f48e6 100644 (file)
@@ -3,7 +3,7 @@ package org.apache.poi.sl.draw;
 import org.apache.poi.sl.usermodel.*;\r
 \r
 \r
-public class DrawAutoShape<T extends AutoShape<? extends TextParagraph>> extends DrawTextShape<T> {\r
+public class DrawAutoShape<T extends AutoShape<? extends TextParagraph<? extends TextRun>>> extends DrawTextShape<T> {\r
     public DrawAutoShape(T shape) {\r
         super(shape);\r
     }\r
index 80b95ee5f6cc402f19c2790d3280d6bbfa189a80..bf82208cdc66fefe09cb6223739d4346cf988201 100644 (file)
@@ -45,7 +45,7 @@ public class DrawFactory {
         boolean isHint = false;\r
         if (graphics != null) {\r
             factory = (DrawFactory)graphics.getRenderingHint(DRAW_FACTORY);\r
-            isHint = true;\r
+            isHint = (factory != null);\r
         }\r
         // secondly try the thread local default\r
         if (factory == null) {\r
@@ -76,25 +76,25 @@ public class DrawFactory {
         } else if (shape instanceof Background) {\r
             return getDrawable((Background)shape);\r
         } else if (shape instanceof Slide) {\r
-            return getDrawable((Slide<? extends Shape>)shape);\r
+            return getDrawable((Slide<? extends Shape, ? extends SlideShow>)shape);\r
         } else if (shape instanceof MasterSheet) {\r
-            return getDrawable((MasterSheet<? extends Shape>)shape);\r
+            return getDrawable((MasterSheet<? extends Shape, ? extends SlideShow>)shape);\r
         } else if (shape instanceof Sheet) {\r
-            return getDrawable((Sheet<? extends Shape>)shape);\r
+            return getDrawable((Sheet<? extends Shape, ? extends SlideShow>)shape);\r
         }\r
 \r
         throw new IllegalArgumentException("Unsupported shape type: "+shape.getClass());\r
     }\r
 \r
-    public <T extends Slide<? extends Shape>> DrawSlide<T> getDrawable(T sheet) {\r
+    public <T extends Slide<? extends Shape, ? extends SlideShow>> DrawSlide<T> getDrawable(T sheet) {\r
         return new DrawSlide<T>(sheet);\r
     }\r
 \r
-    public <T extends Sheet<? extends Shape>> DrawSheet<T> getDrawable(T sheet) {\r
+    public <T extends Sheet<? extends Shape, ? extends SlideShow>> DrawSheet<T> getDrawable(T sheet) {\r
         return new DrawSheet<T>(sheet);\r
     }\r
 \r
-    public <T extends MasterSheet<? extends Shape>> DrawMasterSheet<T> getDrawable(T sheet) {\r
+    public <T extends MasterSheet<? extends Shape, ? extends SlideShow>> DrawMasterSheet<T> getDrawable(T sheet) {\r
         return new DrawMasterSheet<T>(sheet);\r
     }\r
 \r
index 7a89828edea653526026aea86d04828b4ffad473..452704a757bdede56562dd855c20c3c85a9d3c05 100644 (file)
@@ -3,7 +3,7 @@ package org.apache.poi.sl.draw;
 import org.apache.poi.sl.usermodel.*;\r
 \r
 \r
-public class DrawMasterSheet<T extends MasterSheet<? extends Shape>> extends DrawSheet<T> {\r
+public class DrawMasterSheet<T extends MasterSheet<? extends Shape, ? extends SlideShow>> extends DrawSheet<T> {\r
 \r
     public DrawMasterSheet(T sheet) {\r
         super(sheet);\r
index 77a0da740a4f5bf0de286b67aec1671aff5822bf..ca2346b2072278f97306b6387b803327b63c025b 100644 (file)
@@ -17,6 +17,7 @@
 \r
 package org.apache.poi.sl.draw;\r
 \r
+import static org.apache.poi.sl.usermodel.PaintStyle.TRANSPARENT_PAINT;\r
 import java.awt.*;\r
 import java.awt.MultipleGradientPaint.ColorSpaceType;\r
 import java.awt.MultipleGradientPaint.CycleMethod;\r
@@ -35,7 +36,7 @@ import org.apache.poi.util.POILogger;
 \r
 \r
 public class DrawPaint {\r
-    public final static Color NO_PAINT = new Color(0xFF, 0xFF, 0xFF, 0);\r
+    \r
     private final static POILogger LOG = POILogFactory.getLogger(DrawPaint.class);\r
 \r
     protected PlaceableShape shape;\r
@@ -43,6 +44,21 @@ public class DrawPaint {
     public DrawPaint(PlaceableShape shape) {\r
         this.shape = shape;\r
     }\r
+\r
+    public static SolidPaint createSolidPaint(final Color color) {\r
+        return new SolidPaint() {\r
+            public ColorStyle getSolidColor() {\r
+                return new ColorStyle(){\r
+                    public Color getColor() { return color; }\r
+                    public int getAlpha() { return -1; }\r
+                    public int getLumOff() { return -1; }\r
+                    public int getLumMod() { return -1; }\r
+                    public int getShade() { return -1; }\r
+                    public int getTint() { return -1; }\r
+                };\r
+            }\r
+        };\r
+    }\r
     \r
     public Paint getPaint(Graphics2D graphics, PaintStyle paint) {\r
         if (paint instanceof SolidPaint) {\r
@@ -74,7 +90,7 @@ public class DrawPaint {
 \r
     protected Paint getTexturePaint(TexturePaint fill, Graphics2D graphics) {\r
         InputStream is = fill.getImageData();\r
-        if (is == null) return NO_PAINT;\r
+        if (is == null) return TRANSPARENT_PAINT.getSolidColor().getColor();\r
         assert(graphics != null);\r
         \r
         ImageRenderer renderer = (ImageRenderer)graphics.getRenderingHint(Drawable.IMAGE_RENDERER);\r
@@ -84,7 +100,7 @@ public class DrawPaint {
             renderer.loadImage(fill.getImageData(), fill.getContentType());\r
         } catch (IOException e) {\r
             LOG.log(POILogger.ERROR, "Can't load image data - using transparent color", e);\r
-            return NO_PAINT;\r
+            return TRANSPARENT_PAINT.getSolidColor().getColor();\r
         }\r
 \r
         int alpha = fill.getAlpha();\r
@@ -105,7 +121,9 @@ public class DrawPaint {
     public static Color applyColorTransform(ColorStyle color){\r
         Color result = color.getColor();\r
 \r
-        if (result == null || color.getAlpha() == 100) return NO_PAINT;\r
+        if (result == null || color.getAlpha() == 100) {\r
+            return TRANSPARENT_PAINT.getSolidColor().getColor();\r
+        }\r
         \r
         result = applyAlpha(result, color);\r
         result = applyLuminanace(result, color);\r
index 238bb1a1163d1c374981c9b9dbe7a182d5f23bed..ceda9280c4aaffc052dc4f6ee6e4c6e2cdf89503 100644 (file)
@@ -7,17 +7,12 @@ import java.awt.geom.Rectangle2D;
 import org.apache.poi.sl.usermodel.*;\r
 \r
 \r
-public class DrawShapeGroup<T extends ShapeGroup<? extends Shape>> implements Drawable {\r
+public class DrawShapeGroup<T extends ShapeGroup<? extends Shape>> extends DrawShape<T> implements Drawable {\r
 \r
-    protected final T shape;\r
-    \r
     public DrawShapeGroup(T shape) {\r
-        this.shape = shape;\r
+        super(shape);\r
     }\r
     \r
-    public void applyTransform(Graphics2D context) {\r
-    }\r
-\r
     public void draw(Graphics2D graphics) {\r
 \r
         // the coordinate system of this group of shape\r
@@ -54,7 +49,4 @@ public class DrawShapeGroup<T extends ShapeGroup<? extends Shape>> implements Dr
         graphics.setRenderingHint(Drawable.GROUP_TRANSFORM, tx0);\r
         \r
     }\r
-\r
-    public void drawContent(Graphics2D context) {\r
-    }\r
 }\r
index d3901b39b34ae9d4382377773986beeb30cea228..d0026f31dcef1ad8d7dc21fd4e807daaa2f90ad3 100644 (file)
@@ -6,7 +6,7 @@ import java.awt.geom.AffineTransform;
 import org.apache.poi.sl.usermodel.*;\r
 \r
 \r
-public class DrawSheet<T extends Sheet<? extends Shape>> implements Drawable {\r
+public class DrawSheet<T extends Sheet<? extends Shape, ? extends SlideShow>> implements Drawable {\r
 \r
     protected final T sheet;\r
     \r
@@ -14,14 +14,9 @@ public class DrawSheet<T extends Sheet<? extends Shape>> implements Drawable {
         this.sheet = sheet;\r
     }\r
     \r
-    public void applyTransform(Graphics2D context) {\r
-        // TODO Auto-generated method stub\r
-        \r
-    }\r
-\r
     public void draw(Graphics2D graphics) {\r
         DrawFactory drawFact = DrawFactory.getInstance(graphics);\r
-        MasterSheet<? extends Shape> master = sheet.getMasterSheet();\r
+        MasterSheet<? extends Shape, ? extends SlideShow> master = sheet.getMasterSheet();\r
         \r
         if(sheet.getFollowMasterGraphics() && master != null) {\r
             Drawable drawer = drawFact.getDrawable(master);\r
@@ -53,9 +48,10 @@ public class DrawSheet<T extends Sheet<? extends Shape>> implements Drawable {
         }\r
     }\r
 \r
+    public void applyTransform(Graphics2D context) {\r
+    }\r
+\r
     public void drawContent(Graphics2D context) {\r
-        // TODO Auto-generated method stub\r
-        \r
     }\r
 \r
     /**\r
index c5e5b4244cb24ba177f0b9e437e72a84cd39c7fd..4ff0034eba640b76f5b8313375a776cc3c359642 100644 (file)
@@ -18,7 +18,7 @@ import org.apache.poi.sl.draw.geom.*;
 import org.apache.poi.sl.usermodel.*;\r
 import org.apache.poi.sl.usermodel.LineDecoration.DecorationSize;\r
 import org.apache.poi.sl.usermodel.PaintStyle.SolidPaint;\r
-import org.apache.poi.sl.usermodel.StrokeStyle.LineDash;\r
+import org.apache.poi.sl.usermodel.StrokeStyle.*;\r
 import org.apache.poi.util.Units;\r
 \r
 \r
@@ -223,15 +223,22 @@ public class DrawSimpleShape<T extends SimpleShape> extends DrawShape<T> {
         if (lineWidth == 0.0f) lineWidth = 0.25f; // Both PowerPoint and OOo draw zero-length lines as 0.25pt\r
 \r
         LineDash lineDash = strokeStyle.getLineDash();\r
+        if (lineDash == null) {\r
+               lineDash = LineDash.SOLID;\r
+               lineWidth = 0.0f;\r
+        }\r
+\r
         int dashPatI[] = lineDash.pattern;\r
         float[] dashPatF = new float[dashPatI.length];\r
         final float dash_phase = 0;\r
         for (int i=0; i<dashPatI.length; i++) {\r
-            dashPatF[i] = dashPatI[i]*lineWidth;\r
+            dashPatF[i] = dashPatI[i]*Math.max(1, lineWidth);\r
         }\r
 \r
+        LineCap lineCapE = strokeStyle.getLineCap();\r
+        if (lineCapE == null) lineCapE = LineCap.FLAT;\r
         int lineCap;\r
-        switch (strokeStyle.getLineCap()) {\r
+        switch (lineCapE) {\r
             case ROUND:\r
                 lineCap = BasicStroke.CAP_ROUND;\r
                 break;\r
@@ -246,7 +253,7 @@ public class DrawSimpleShape<T extends SimpleShape> extends DrawShape<T> {
 \r
         int lineJoin = BasicStroke.JOIN_ROUND;\r
 \r
-        return new BasicStroke(lineWidth, lineCap, lineJoin, Math.max(1, lineWidth), dashPatF, dash_phase);\r
+        return new BasicStroke(lineWidth, lineCap, lineJoin, lineWidth, dashPatF, dash_phase);\r
     }\r
 \r
     protected void drawShadow(\r
index 8bc4eaf6867730fd979789e2b3afd01676601201..cada314ece62d870324551615d61a0eb42af615e 100644 (file)
@@ -5,7 +5,7 @@ import java.awt.Graphics2D;
 import org.apache.poi.sl.usermodel.*;\r
 \r
 \r
-public class DrawSlide<T extends Slide<? extends Shape>> extends DrawSheet<T> {\r
+public class DrawSlide<T extends Slide<? extends Shape, ? extends SlideShow>> extends DrawSheet<T> {\r
 \r
     public DrawSlide(T slide) {\r
         super(slide);\r
index c9bf1f408547eda8b09cafc8543fb01578d2d367..4b2c79e37834ffbe29a8c6da66ae36aff391117b 100644 (file)
@@ -4,8 +4,6 @@ import java.awt.Graphics2D;
 import java.awt.font.TextLayout;\r
 import java.text.*;\r
 \r
-import org.apache.poi.xslf.usermodel.XSLFRenderingHint;\r
-\r
 public class DrawTextFragment implements Drawable  {\r
     final TextLayout layout;\r
     final AttributedString str;\r
@@ -29,8 +27,8 @@ public class DrawTextFragment implements Drawable  {
 \r
         double yBaseline = y + layout.getAscent();\r
 \r
-        Integer textMode = (Integer)graphics.getRenderingHint(XSLFRenderingHint.TEXT_RENDERING_MODE);\r
-        if(textMode != null && textMode == XSLFRenderingHint.TEXT_AS_SHAPES){\r
+        Integer textMode = (Integer)graphics.getRenderingHint(Drawable.TEXT_RENDERING_MODE);\r
+        if(textMode != null && textMode == Drawable.TEXT_AS_SHAPES){\r
             layout.draw(graphics, (float)x, (float)yBaseline);\r
         } else {\r
             graphics.drawString(str.getIterator(), (float)x, (float)yBaseline );\r
@@ -38,13 +36,9 @@ public class DrawTextFragment implements Drawable  {
     }\r
 \r
     public void applyTransform(Graphics2D graphics) {\r
-        // TODO Auto-generated method stub\r
-        \r
     }\r
 \r
     public void drawContent(Graphics2D graphics) {\r
-        // TODO Auto-generated method stub\r
-        \r
     }\r
     \r
     public TextLayout getLayout() {\r
index cda6a1a88fb1b4a42d1f483c5aa748ed666cba64..f0b4ff42b345ac3c898414ca2db57df753e9ede7 100644 (file)
@@ -8,7 +8,7 @@ import java.util.Iterator;
 \r
 import org.apache.poi.sl.usermodel.*;\r
 \r
-public class DrawTextShape<T extends TextShape<? extends TextParagraph>> extends DrawSimpleShape<T> {\r
+public class DrawTextShape<T extends TextShape<? extends TextParagraph<? extends TextRun>>> extends DrawSimpleShape<T> {\r
 \r
     public DrawTextShape(T shape) {\r
         super(shape);\r
@@ -26,7 +26,7 @@ public class DrawTextShape<T extends TextShape<? extends TextParagraph>> extends
 \r
         // Transform of text in flipped shapes is special.\r
         // At this point the flip and rotation transform is already applied\r
-        // (see XSLFShape#applyTransform ), but we need to restore it to avoid painting "upside down".\r
+        // (see DrawShape#applyTransform ), but we need to restore it to avoid painting "upside down".\r
         // See Bugzilla 54210.\r
 \r
         if(shape.getFlipVertical()){\r
@@ -84,12 +84,12 @@ public class DrawTextShape<T extends TextShape<? extends TextParagraph>> extends
         Insets2D shapePadding = shape.getInsets();\r
 \r
         double y0 = y;\r
-        Iterator<? extends TextParagraph> paragraphs = shape.iterator();\r
+        Iterator<? extends TextParagraph<? extends TextRun>> paragraphs = shape.iterator();\r
         \r
         boolean isFirstLine = true;\r
         while (paragraphs.hasNext()){\r
-            TextParagraph p = paragraphs.next();\r
-            DrawTextParagraph dp = fact.getDrawable(p);\r
+            TextParagraph<? extends TextRun> p = paragraphs.next();\r
+            DrawTextParagraph<? extends TextRun> dp = fact.getDrawable(p);\r
             dp.setInsets(shapePadding);\r
             dp.breakText(graphics);\r
 \r
index d876d1512ac9e98d7efdaf1e2097ab56b3a2bf45..736dc0d66877edc3b2be2a0c6224c4a61c11d980 100644 (file)
@@ -45,7 +45,7 @@ public class PresetGeometries extends LinkedHashMap<String, CustomGeometry> {
 
     @SuppressWarnings("unused")
     public void init(InputStream is) throws XMLStreamException, JAXBException {
-        Reader xml = new InputStreamReader( is, Charset.forName("UTF-8") );
+        // Reader xml = new InputStreamReader( is, Charset.forName("UTF-8") );
         
 
         // StAX:
@@ -58,7 +58,7 @@ public class PresetGeometries extends LinkedHashMap<String, CustomGeometry> {
         
         long cntElem = 0;
         XMLInputFactory staxFactory = XMLInputFactory.newInstance();
-        XMLEventReader staxReader = staxFactory.createXMLEventReader(xml);
+        XMLEventReader staxReader = staxFactory.createXMLEventReader(is);
         XMLEventReader staxFiltRd = staxFactory.createFilteredReader(staxReader, startElementFilter);
         // ignore StartElement:
         XMLEvent evDoc = staxFiltRd.nextEvent();
index 21c3a507fd049803cf094774849bfbd3ee673c9b..1bf073dfbb70df97c695f1db0da7bfeb9fb530ef 100644 (file)
@@ -17,5 +17,5 @@
 
 package org.apache.poi.sl.usermodel;
 
-public interface AutoShape<T extends TextParagraph> extends TextShape<T> {
+public interface AutoShape<T extends TextParagraph<? extends TextRun>> extends TextShape<T> {
 }
index 09d61989df277faaaa0d508265ad2d2ed3446c42..e0843a11a18e209471395af3485f6bc270e67b39 100644 (file)
@@ -17,6 +17,6 @@
 \r
 package org.apache.poi.sl.usermodel;\r
 \r
-public interface FreeformShape<T extends TextParagraph> extends AutoShape<T> {\r
+public interface FreeformShape<T extends TextParagraph<? extends TextRun>> extends AutoShape<T> {\r
 \r
 }\r
index 8ba80156bdf9126431969d287a0e4c5a90c304ce..727217d3fac04fdc8784e60769e105944f1d389d 100644 (file)
@@ -17,6 +17,6 @@
 
 package org.apache.poi.sl.usermodel;
 
-public interface MasterSheet<T extends Shape> extends Sheet<T> {
+public interface MasterSheet<T extends Shape, SS extends SlideShow> extends Sheet<T,SS> {
 
 }
index c16774c29857f4db71282a506db28de181fb3d49..08f023cd9fbb0af7f530b49ccaa1b56ae0a002ea 100644 (file)
@@ -17,6 +17,8 @@
 
 package org.apache.poi.sl.usermodel;
 
-public interface Notes<T extends Shape> extends Sheet<T> {
-       public TextRun getTextRun();
+import java.util.List;
+
+public interface Notes<T extends Shape, SS extends SlideShow> extends Sheet<T,SS> {
+       List<? extends TextParagraph<? extends TextRun>> getTextParagraphs();
 }
index 9dcd495e409b5b373ce016079590c554b97398c2..2551201692e865f93bb2d541669b94d5c688bdc8 100644 (file)
 
 package org.apache.poi.sl.usermodel;
 
+import java.awt.Color;
 import java.io.InputStream;
 
+import org.apache.poi.sl.draw.DrawPaint;
+
 
 
 public interface PaintStyle {
@@ -55,4 +58,6 @@ public interface PaintStyle {
          */
         int getAlpha();
     }
+
+    SolidPaint TRANSPARENT_PAINT = DrawPaint.createSolidPaint(new Color(0xFF, 0xFF, 0xFF, 0));
 }
index 6ad149b489c22a71f2b648352bb1ae18d3a0387d..4de645d41f41ae8c66f2a507a49d1dbd1ef0902f 100644 (file)
@@ -19,14 +19,11 @@ package org.apache.poi.sl.usermodel;
 
 
 public interface Shape {
-       ShapeContainer getParent();
+       ShapeContainer<? extends Shape> getParent();
        
     /**
     *
     * @return the sheet this shape belongs to
     */
-   Sheet getSheet();
-       
-
-       
+   Sheet<? extends Shape, ? extends SlideShow> getSheet();
 }
index 8de1dbcb06c895e862772544e84dab2af50d32db..7bd940c36c2bf504c11d49e696cb8519c899934e 100644 (file)
@@ -19,6 +19,6 @@ package org.apache.poi.sl.usermodel;
 
 import java.awt.geom.Rectangle2D;
 
-public interface ShapeGroup<T extends Shape> extends ShapeContainer<T>, PlaceableShape {
+public interface ShapeGroup<T extends Shape> extends Shape, ShapeContainer<T>, PlaceableShape {
     Rectangle2D getInteriorAnchor();
 }
index 64b53a3014ef9ce5551eb6fb891f758731b0dc49..6f4ba0ac678c62fbd99d2584ece720a938d81426 100644 (file)
@@ -21,8 +21,8 @@ package org.apache.poi.sl.usermodel;
 /**
  * Common parent of Slides, Notes and Masters
  */
-public interface Sheet<T extends Shape> extends ShapeContainer<T> {
-       SlideShow getSlideShow();
+public interface Sheet<T extends Shape, SS extends SlideShow> extends ShapeContainer<T> {
+       SS getSlideShow();
 
     /**
      * @return whether shapes on the master sheet should be shown. By default master graphics is turned off.
@@ -31,7 +31,7 @@ public interface Sheet<T extends Shape> extends ShapeContainer<T> {
      */
        boolean getFollowMasterGraphics();
        
-       MasterSheet<T> getMasterSheet();
+       MasterSheet<T,SS> getMasterSheet();
 
        Background getBackground();
 }
index 243d9a8174ddeaa6392b4e94efa543a2080ab6ed..b2027c182c45f03bb558a6526f8c8952d14865eb 100644 (file)
@@ -17,9 +17,9 @@
 
 package org.apache.poi.sl.usermodel;
 
-public interface Slide<T extends Shape> extends Sheet<T> {
-       public Notes<T> getNotes();
-       public void setNotes(Notes<T> notes);
+public interface Slide<T extends Shape, SS extends SlideShow> extends Sheet<T, SS> {
+       public Notes<T,SS> getNotes();
+       public void setNotes(Notes<T,SS> notes);
 
        public boolean getFollowMasterBackground();
        public void setFollowMasterBackground(boolean follow);
index 4505ca58436deb5a41618a424160b14516e96413..e3007f6c1780b2d576467c2e4605f523e7880b30 100644 (file)
@@ -21,11 +21,11 @@ import java.awt.Dimension;
 import java.io.IOException;
 
 public interface SlideShow {
-       Slide createSlide() throws IOException;
-       MasterSheet createMasterSheet() throws IOException;
+       Slide<? extends Shape, ? extends SlideShow> createSlide() throws IOException;
+       MasterSheet<? extends Shape, ? extends SlideShow> createMasterSheet() throws IOException;
 
-       Slide[] getSlides();
-       MasterSheet[] getMasterSheet();
+       Slide<? extends Shape, ? extends SlideShow>[] getSlides();
+       MasterSheet<? extends Shape, ? extends SlideShow>[] getMasterSheet();
 
        Resources getResources();
 
index c02e1a33f9b061b2a9d8e590556ad6c67e40ca75..a55317740ad1df52de0a208ef0b82e0aa2118191 100644 (file)
@@ -33,27 +33,75 @@ public interface StrokeStyle {
      * with actual line width
      */
     enum LineDash {
-        SOLID(1),
-        DOT(1,1),
-        DASH(3,4),
-        LG_DASH(8,3),
-        DASH_DOT(4,3,1,3),
-        LG_DASH_DOT(8,3,1,3),
-        LG_DASH_DOT_DOT(8,3,1,3,1,3),
-        SYS_DASH(2,2),
-        SYS_DOT(1,1),
-        SYS_DASH_DOT,
-        SYS_DASH_DOT_DOT;
-
-        public int pattern[];
-        
-        LineDash(int... pattern) {
+        /** Solid (continuous) pen - native 1 */
+        SOLID(1, 1),
+        /** square dot style - native 6 */
+        DOT(6, 1,1),
+        /** dash style - native 7 */
+        DASH(7, 3,4),
+        /** dash short dash - native 9*/
+        DASH_DOT(9, 4,3,1,3),
+        /** long dash style - native 8 */
+        LG_DASH(8, 8,3),
+        /** long dash short dash - native 10 */
+        LG_DASH_DOT(10, 8,3,1,3),
+        /** long dash short dash short dash - native 11 */
+        LG_DASH_DOT_DOT(11, 8,3,1,3,1,3),
+        /** PS_DASH system dash style - native 2 */
+        SYS_DASH(2, 2,2),
+        /** PS_DOT system dash style - native 3 */
+        SYS_DOT(3, 1,1),
+        /** PS_DASHDOT system dash style - native 4 */
+        SYS_DASH_DOT(4, 2,2,1,1),
+        /** PS_DASHDOTDOT system dash style / native 5 */
+        SYS_DASH_DOT_DOT(5, 2,2,1,1,1,1);
+
+        public final int pattern[];
+        public final int nativeId;
+
+        LineDash(int nativeId, int... pattern) {
+            this.nativeId = nativeId;
             this.pattern = (pattern == null || pattern.length == 0) ? new int[]{1} : pattern;
         }
+
+        public static LineDash fromNativeId(int nativeId) {
+            for (LineDash ld : values()) {
+                if (ld.nativeId == nativeId) return ld;
+            }
+            return null;
+        }
+    }
+
+    enum LineCompound {
+        /** Single line (of width lineWidth) - native 0 / ooxml default */
+        SINGLE(0),
+        /** Double lines of equal width - native 1 / ooxml "dbl" */
+        DOUBLE(1),
+        /** Double lines, one thick, one thin - native 2 / ooxml "thickThin" */
+        THICK_THIN(2),
+        /** Double lines, reverse order - native 3 / ooxml "thinThick" */
+        THIN_THICK(3),
+        /** Three lines, thin, thick, thin - native 4 / ooxml "tri" */
+        TRIPLE(4);
+        
+        public final int nativeId;
+        
+        LineCompound(int nativeId) {
+            this.nativeId = nativeId;
+        }
+
+        public static LineCompound fromNativeId(int nativeId) {
+            for (LineCompound lc : values()) {
+                if (lc.nativeId == nativeId) return lc;
+            }
+            return null;
+        }
     }
-    
+
+
     PaintStyle getPaint();
     LineCap getLineCap();
     LineDash getLineDash();
+    LineCompound getLineCompound();
     double getLineWidth();
 }
index 9ac61d526ae578fdd9e7b21c3d2ec4c9b3d08e7c..3fa3bbe20d3ab3a3467f0d1a43c6c312af049396 100644 (file)
@@ -17,5 +17,5 @@
 
 package org.apache.poi.sl.usermodel;
 
-public interface TextBox<T extends TextParagraph> extends AutoShape<T> {
+public interface TextBox<T extends TextParagraph<? extends TextRun>> extends AutoShape<T> {
 }
index f9b1833610d35462c35c6e9f168e8a34e06010fd..a6a53fe1bdd63e9111911b20ad178ab0f06f84db 100644 (file)
@@ -19,7 +19,7 @@ package org.apache.poi.sl.usermodel;
 \r
 \r
 \r
-public interface TextShape<T extends TextParagraph<?>> extends SimpleShape, Iterable<T>  {\r
+public interface TextShape<T extends TextParagraph<? extends TextRun>> extends SimpleShape, Iterable<T>  {\r
     /**\r
      * Vertical Text Types\r
      */\r
index b3f91236ec994854252e85703a3467fbd2b247e7..134f3e8ac0188d9eeffba8124044961b39a8e1e7 100644 (file)
@@ -22,9 +22,10 @@ package org.apache.poi;
 
 
 import junit.framework.TestCase;
+
 import java.io.*;
 
-import org.apache.poi.hslf.HSLFSlideShow;
+import org.apache.poi.hslf.model.HSLFSlideShowImpl;
 import org.apache.poi.hwpf.HWPFTestDataSamples;
 import org.apache.poi.poifs.filesystem.*;
 
@@ -47,7 +48,7 @@ public final class TestPOIDocumentScratchpad extends TestCase {
         *  a Word Document for our testing
         */
        public void setUp() throws Exception {
-               doc = new HSLFSlideShow(POIDataSamples.getSlideShowInstance().openResourceAsStream("basic_test_ppt_file.ppt"));
+               doc = new HSLFSlideShowImpl(POIDataSamples.getSlideShowInstance().openResourceAsStream("basic_test_ppt_file.ppt"));
 
                doc2 = HWPFTestDataSamples.openSampleFile("test2.doc");
        }
index 674070879255645a4ea2029d026c531497098b30..6207a4597d518fa4c0e4f06af2c4d2b7c009e92a 100644 (file)
@@ -24,7 +24,8 @@ import java.io.IOException;
 import java.io.InputStream;
 
 import org.apache.poi.POIDataSamples;
-import org.apache.poi.hslf.usermodel.SlideShow;
+import org.apache.poi.hslf.model.HSLFSlideShowImpl;
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;
 
 public class HSLFTestDataSamples {
 
@@ -45,12 +46,12 @@ public class HSLFTestDataSamples {
         * from a <tt>ByteArrayInputStream</tt>.<p/>
         * Useful for verifying that the serialisation round trip
         */
-       public static HSLFSlideShow writeOutAndReadBack(HSLFSlideShow original) {
+       public static HSLFSlideShowImpl writeOutAndReadBack(HSLFSlideShowImpl original) {
                try {
                        ByteArrayOutputStream baos = new ByteArrayOutputStream(4096);
                        original.write(baos);
                        ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
-                       return new HSLFSlideShow(bais);
+                       return new HSLFSlideShowImpl(bais);
                } catch (IOException e) {
                        throw new RuntimeException(e);
                }
@@ -61,12 +62,12 @@ public class HSLFTestDataSamples {
         * from a <tt>ByteArrayInputStream</tt>.<p/>
         * Useful for verifying that the serialisation round trip
         */
-       public static SlideShow writeOutAndReadBack(SlideShow original) {
+       public static HSLFSlideShow writeOutAndReadBack(HSLFSlideShow original) {
                try {
                        ByteArrayOutputStream baos = new ByteArrayOutputStream(4096);
                        original.write(baos);
                        ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
-                       return new SlideShow(bais);
+                       return new HSLFSlideShow(bais);
                } catch (IOException e) {
                        throw new RuntimeException(e);
                }
index da07810b86207e9f016ed267cfb05c75be111e33..3de6032ae55dbcacae844dc3a168b2a9e8abe145 100644 (file)
@@ -21,6 +21,7 @@ package org.apache.poi.hslf;
 import junit.framework.TestCase;
 
 import org.apache.poi.hslf.exceptions.EncryptedPowerPointFileException;
+import org.apache.poi.hslf.model.HSLFSlideShowImpl;
 import org.apache.poi.POIDataSamples;
 
 /**
@@ -32,28 +33,28 @@ public final class TestEncryptedFile extends TestCase {
     private static POIDataSamples slTests = POIDataSamples.getSlideShowInstance();
 
        public void testLoadNonEncrypted() throws Exception {
-               HSLFSlideShow hss = new HSLFSlideShow(slTests.openResourceAsStream("basic_test_ppt_file.ppt"));
+               HSLFSlideShowImpl hss = new HSLFSlideShowImpl(slTests.openResourceAsStream("basic_test_ppt_file.ppt"));
 
                assertNotNull(hss);
        }
 
        public void testLoadEncrypted() throws Exception {
                try {
-            new HSLFSlideShow(slTests.openResourceAsStream("Password_Protected-hello.ppt"));
+            new HSLFSlideShowImpl(slTests.openResourceAsStream("Password_Protected-hello.ppt"));
                        fail();
                } catch(EncryptedPowerPointFileException e) {
                        // Good
                }
 
                try {
-            new HSLFSlideShow(slTests.openResourceAsStream("Password_Protected-np-hello.ppt"));
+            new HSLFSlideShowImpl(slTests.openResourceAsStream("Password_Protected-np-hello.ppt"));
                        fail();
                } catch(EncryptedPowerPointFileException e) {
                        // Good
                }
 
                try {
-            new HSLFSlideShow(slTests.openResourceAsStream("Password_Protected-56-hello.ppt"));
+            new HSLFSlideShowImpl(slTests.openResourceAsStream("Password_Protected-56-hello.ppt"));
                        fail();
                } catch(EncryptedPowerPointFileException e) {
                        // Good
index 1398e747e13a13ad49145965e136089207c6f192..ae64b3614d2fd81358b18cde3857bd9b24ed8d80 100644 (file)
@@ -25,7 +25,8 @@ import java.io.FileNotFoundException;
 import junit.framework.TestCase;
 
 import org.apache.poi.POIDataSamples;
-import org.apache.poi.hslf.usermodel.SlideShow;
+import org.apache.poi.hslf.model.HSLFSlideShowImpl;
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;
 import org.apache.poi.poifs.filesystem.DocumentEntry;
 import org.apache.poi.poifs.filesystem.POIFSFileSystem;
 
@@ -37,9 +38,9 @@ import org.apache.poi.poifs.filesystem.POIFSFileSystem;
  */
 public final class TestReWrite extends TestCase {
        // HSLFSlideShow primed on the test data
-       private HSLFSlideShow hssA;
-       private HSLFSlideShow hssB;
-       private HSLFSlideShow hssC;
+       private HSLFSlideShowImpl hssA;
+       private HSLFSlideShowImpl hssB;
+       private HSLFSlideShowImpl hssC;
        // POIFS primed on the test data
        private POIFSFileSystem pfsA;
        private POIFSFileSystem pfsB;
@@ -50,20 +51,20 @@ public final class TestReWrite extends TestCase {
         POIDataSamples slTests = POIDataSamples.getSlideShowInstance();
         
                pfsA = new POIFSFileSystem(slTests.openResourceAsStream("basic_test_ppt_file.ppt"));
-               hssA = new HSLFSlideShow(pfsA);
+               hssA = new HSLFSlideShowImpl(pfsA);
 
         pfsB = new POIFSFileSystem(slTests.openResourceAsStream("ParagraphStylesShorterThanCharStyles.ppt"));
-               hssB = new HSLFSlideShow(pfsB);
+               hssB = new HSLFSlideShowImpl(pfsB);
 
         pfsC = new POIFSFileSystem(slTests.openResourceAsStream("WithMacros.ppt"));
-               hssC = new HSLFSlideShow(pfsC);
+               hssC = new HSLFSlideShowImpl(pfsC);
     }
 
     public void testWritesOutTheSame() throws Exception {
        assertWritesOutTheSame(hssA, pfsA);
        assertWritesOutTheSame(hssB, pfsB);
     }
-    public void assertWritesOutTheSame(HSLFSlideShow hss, POIFSFileSystem pfs) throws Exception {
+    public void assertWritesOutTheSame(HSLFSlideShowImpl hss, POIFSFileSystem pfs) throws Exception {
                // Write out to a byte array
                ByteArrayOutputStream baos = new ByteArrayOutputStream();
                hss.write(baos);
@@ -129,9 +130,9 @@ public final class TestReWrite extends TestCase {
        // We need to identify and fix that first
        //assertSlideShowWritesOutTheSame(hssB, pfsB);
     }
-    public void assertSlideShowWritesOutTheSame(HSLFSlideShow hss, POIFSFileSystem pfs) throws Exception {
+    public void assertSlideShowWritesOutTheSame(HSLFSlideShowImpl hss, POIFSFileSystem pfs) throws Exception {
        // Create a slideshow covering it
-       SlideShow ss = new SlideShow(hss);
+       HSLFSlideShow ss = new HSLFSlideShow(hss);
        ss.getSlides();
        ss.getNotes();
 
@@ -163,7 +164,7 @@ public final class TestReWrite extends TestCase {
        }
     
     public void test48593() throws Exception {
-               SlideShow slideShow = new SlideShow();
+               HSLFSlideShow slideShow = new HSLFSlideShow();
                slideShow.createSlide();
                slideShow = HSLFTestDataSamples.writeOutAndReadBack(slideShow);
                slideShow.createSlide();
index ae76116a413563c29f2d9ee7658dae94b6553277..31a80ae3068eb84d9dbbe4c6fc3aa016b3002682 100644 (file)
@@ -19,8 +19,11 @@ package org.apache.poi.hslf;
 
 
 import junit.framework.TestCase;
+
 import java.io.*;
 import java.util.*;
+
+import org.apache.poi.hslf.model.HSLFSlideShowImpl;
 import org.apache.poi.hslf.record.*;
 import org.apache.poi.poifs.filesystem.*;
 import org.apache.poi.POIDataSamples;
@@ -33,14 +36,14 @@ import org.apache.poi.POIDataSamples;
  */
 public final class TestReWriteSanity extends TestCase {
        // HSLFSlideShow primed on the test data
-       private HSLFSlideShow ss;
+       private HSLFSlideShowImpl ss;
        // POIFS primed on the test data
        private POIFSFileSystem pfs;
 
     public TestReWriteSanity() throws Exception {
         POIDataSamples slTests = POIDataSamples.getSlideShowInstance();
                pfs = new POIFSFileSystem(slTests.openResourceAsStream("basic_test_ppt_file.ppt"));
-               ss = new HSLFSlideShow(pfs);
+               ss = new HSLFSlideShowImpl(pfs);
     }
 
        public void testUserEditAtomsRight() throws Exception {
@@ -52,7 +55,7 @@ public final class TestReWriteSanity extends TestCase {
                ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
 
                // Create a new one from that
-               HSLFSlideShow wss = new HSLFSlideShow(bais);
+               HSLFSlideShowImpl wss = new HSLFSlideShowImpl(bais);
 
                // Find the location of the PersistPtrIncrementalBlocks and
                // UserEditAtoms
index 5d509b620315843ade69eb779f080d1b744d2d55..732f609381b80da7c52f3727460d0aca23869bfe 100644 (file)
@@ -19,6 +19,8 @@ package org.apache.poi.hslf;
 
 
 import junit.framework.TestCase;
+
+import org.apache.poi.hslf.model.HSLFSlideShowImpl;
 import org.apache.poi.hslf.record.*;
 import org.apache.poi.POIDataSamples;
 
@@ -30,11 +32,11 @@ import org.apache.poi.POIDataSamples;
  */
 public final class TestRecordCounts extends TestCase {
        // HSLFSlideShow primed on the test data
-       private HSLFSlideShow ss;
+       private HSLFSlideShowImpl ss;
 
        public TestRecordCounts() throws Exception {
         POIDataSamples slTests = POIDataSamples.getSlideShowInstance();
-               ss = new HSLFSlideShow(slTests.openResourceAsStream("basic_test_ppt_file.ppt"));
+               ss = new HSLFSlideShowImpl(slTests.openResourceAsStream("basic_test_ppt_file.ppt"));
        }
 
        public void testSheetsCount() {
index 7fc234f8ef506ae045f9d3a92ea8ca1eca267810..a00d75d03edc38a780a22ff2f6e55a46e1831c84 100644 (file)
@@ -23,9 +23,9 @@ import java.util.List;
 
 import org.apache.poi.POIDataSamples;
 import org.apache.poi.POITestCase;
-import org.apache.poi.hslf.HSLFSlideShow;
+import org.apache.poi.hslf.model.HSLFSlideShowImpl;
 import org.apache.poi.hslf.model.OLEShape;
-import org.apache.poi.hslf.usermodel.SlideShow;
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.apache.poi.hwpf.HWPFDocument;
 import org.apache.poi.poifs.filesystem.DirectoryNode;
@@ -140,7 +140,7 @@ public final class TestExtractor extends POITestCase {
          POIFSFileSystem fs = new POIFSFileSystem(
              POIDataSamples.getSpreadSheetInstance().openResourceAsStream("excel_with_embeded.xls")
          );
-         HSLFSlideShow ss;
+         HSLFSlideShowImpl ss;
 
          DirectoryNode dirA = (DirectoryNode)
              fs.getRoot().getEntry("MBD0000A3B6");
@@ -151,14 +151,14 @@ public final class TestExtractor extends POITestCase {
          assertNotNull(dirB.getEntry("PowerPoint Document"));
 
          // Check the first file
-         ss = new HSLFSlideShow(dirA);
+         ss = new HSLFSlideShowImpl(dirA);
          ppe = new PowerPointExtractor(ss);
          assertEquals("Sample PowerPoint file\nThis is the 1st file\nNot much too it\n",
                  ppe.getText(true, false)
          );
 
          // And the second
-         ss = new HSLFSlideShow(dirB);
+         ss = new HSLFSlideShowImpl(dirB);
          ppe = new PowerPointExtractor(ss);
          assertEquals("Sample PowerPoint file\nThis is the 2nd file\nNot much too it either\n",
                  ppe.getText(true, false)
@@ -186,7 +186,7 @@ public final class TestExtractor extends POITestCase {
                  num_doc++;
              } else if ("Presentation".equals(name)) {
                  num_ppt++;
-                 SlideShow ppt = new SlideShow(data);
+                 HSLFSlideShow ppt = new HSLFSlideShow(data);
              }
          }
          assertEquals("Expected 2 embedded Word Documents", 2, num_doc);
@@ -241,8 +241,8 @@ public final class TestExtractor extends POITestCase {
        String  text;
 
        // With a header on the notes
-       HSLFSlideShow hslf = new HSLFSlideShow(slTests.openResourceAsStream("45537_Header.ppt"));
-       SlideShow ss = new SlideShow(hslf);
+       HSLFSlideShowImpl hslf = new HSLFSlideShowImpl(slTests.openResourceAsStream("45537_Header.ppt"));
+       HSLFSlideShow ss = new HSLFSlideShow(hslf);
        assertNotNull(ss.getNotesHeadersFooters());
        assertEquals("testdoc test phrase", ss.getNotesHeadersFooters().getHeaderText());
 
@@ -259,8 +259,8 @@ public final class TestExtractor extends POITestCase {
 
 
        // And with a footer, also on notes
-       hslf = new HSLFSlideShow(slTests.openResourceAsStream("45537_Footer.ppt"));
-       ss = new SlideShow(hslf);
+       hslf = new HSLFSlideShowImpl(slTests.openResourceAsStream("45537_Footer.ppt"));
+       ss = new HSLFSlideShow(hslf);
        assertNotNull(ss.getNotesHeadersFooters());
        assertEquals("testdoc test phrase", ss.getNotesHeadersFooters().getFooterText());
 
@@ -281,7 +281,7 @@ public final class TestExtractor extends POITestCase {
       String masterTitleText = "This is the Master Title";
       String masterRandomText = "This text comes from the Master Slide";
       String masterFooterText = "Footer from the master slide";
-      HSLFSlideShow hslf = new HSLFSlideShow(slTests.openResourceAsStream("WithMaster.ppt"));
+      HSLFSlideShowImpl hslf = new HSLFSlideShowImpl(slTests.openResourceAsStream("WithMaster.ppt"));
       
       ppe = new PowerPointExtractor(hslf);
       
@@ -309,7 +309,7 @@ public final class TestExtractor extends POITestCase {
        // Now with another file only containing master text
        // Will always show up
        String masterText = "Footer from the master slide";
-       HSLFSlideShow hslf = new HSLFSlideShow(slTests.openResourceAsStream("WithMaster.ppt"));
+       HSLFSlideShowImpl hslf = new HSLFSlideShowImpl(slTests.openResourceAsStream("WithMaster.ppt"));
        
        ppe = new PowerPointExtractor(hslf);
        
@@ -322,7 +322,7 @@ public final class TestExtractor extends POITestCase {
      * Bug #54880 Chinese text not extracted properly
      */
     public void testChineseText() throws Exception {
-       HSLFSlideShow hslf = new HSLFSlideShow(slTests.openResourceAsStream("54880_chinese.ppt"));
+       HSLFSlideShowImpl hslf = new HSLFSlideShowImpl(slTests.openResourceAsStream("54880_chinese.ppt"));
        ppe = new PowerPointExtractor(hslf);
        
        String text = ppe.getText();
@@ -360,7 +360,7 @@ public final class TestExtractor extends POITestCase {
 
        // Open via a HWPFDocument
        for(DirectoryNode dir : files) {
-          HSLFSlideShow slideshow = new HSLFSlideShow(dir);
+          HSLFSlideShowImpl slideshow = new HSLFSlideShowImpl(dir);
           PowerPointExtractor extractor = new PowerPointExtractor(slideshow);
           assertEquals(expectText, extractor.getText());
        }
index 88385615012a8f4b85ecbd8b5a0421400de9191d..0d1cfd9e09ab2d6242b27f872015adc4dd6da2e4 100644 (file)
@@ -32,9 +32,8 @@ import org.apache.poi.ddf.EscherOptRecord;
 import org.apache.poi.ddf.EscherProperties;
 import org.apache.poi.ddf.EscherRecord;
 import org.apache.poi.ddf.EscherSimpleProperty;
-import org.apache.poi.hslf.HSLFSlideShow;
 import org.apache.poi.hslf.record.Document;
-import org.apache.poi.hslf.usermodel.SlideShow;
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;
 import org.apache.poi.sl.usermodel.ShapeType;
 import org.junit.Test;
 
@@ -52,16 +51,16 @@ public final class TestBackground {
      */
     @Test
     public void defaults() {
-        SlideShow ppt = new SlideShow();
+        HSLFSlideShow ppt = new HSLFSlideShow();
 
-        assertEquals(Fill.FILL_SOLID, ppt.getSlidesMasters()[0].getBackground().getFill().getFillType());
+        assertEquals(HSLFFill.FILL_SOLID, ppt.getSlidesMasters()[0].getBackground().getFill().getFillType());
 
-        Slide slide = ppt.createSlide();
+        HSLFSlide slide = ppt.createSlide();
         assertTrue(slide.getFollowMasterBackground());
-        assertEquals(Fill.FILL_SOLID, slide.getBackground().getFill().getFillType());
+        assertEquals(HSLFFill.FILL_SOLID, slide.getBackground().getFill().getFillType());
 
-        HSLFShape shape = new AutoShape(ShapeType.RECT);
-        assertEquals(Fill.FILL_SOLID, shape.getFill().getFillType());
+        HSLFShape shape = new HSLFAutoShape(ShapeType.RECT);
+        assertEquals(HSLFFill.FILL_SOLID, shape.getFill().getFillType());
     }
 
     /**
@@ -69,31 +68,31 @@ public final class TestBackground {
      */
     @Test
     public void readBackground() throws Exception {
-        SlideShow ppt = new SlideShow(_slTests.openResourceAsStream("backgrounds.ppt"));
-        Fill fill;
+        HSLFSlideShow ppt = new HSLFSlideShow(_slTests.openResourceAsStream("backgrounds.ppt"));
+        HSLFFill fill;
         HSLFShape shape;
 
-        Slide[] slide = ppt.getSlides();
+        HSLFSlide[] slide = ppt.getSlides();
 
         fill = slide[0].getBackground().getFill();
-        assertEquals(Fill.FILL_PICTURE, fill.getFillType());
+        assertEquals(HSLFFill.FILL_PICTURE, fill.getFillType());
         shape = slide[0].getShapes()[0];
-        assertEquals(Fill.FILL_SOLID, shape.getFill().getFillType());
+        assertEquals(HSLFFill.FILL_SOLID, shape.getFill().getFillType());
 
         fill = slide[1].getBackground().getFill();
-        assertEquals(Fill.FILL_PATTERN, fill.getFillType());
+        assertEquals(HSLFFill.FILL_PATTERN, fill.getFillType());
         shape = slide[1].getShapes()[0];
-        assertEquals(Fill.FILL_BACKGROUND, shape.getFill().getFillType());
+        assertEquals(HSLFFill.FILL_BACKGROUND, shape.getFill().getFillType());
 
         fill = slide[2].getBackground().getFill();
-        assertEquals(Fill.FILL_TEXTURE, fill.getFillType());
+        assertEquals(HSLFFill.FILL_TEXTURE, fill.getFillType());
         shape = slide[2].getShapes()[0];
-        assertEquals(Fill.FILL_PICTURE, shape.getFill().getFillType());
+        assertEquals(HSLFFill.FILL_PICTURE, shape.getFill().getFillType());
 
         fill = slide[3].getBackground().getFill();
-        assertEquals(Fill.FILL_SHADE_CENTER, fill.getFillType());
+        assertEquals(HSLFFill.FILL_SHADE_CENTER, fill.getFillType());
         shape = slide[3].getShapes()[0];
-        assertEquals(Fill.FILL_SHADE, shape.getFill().getFillType());
+        assertEquals(HSLFFill.FILL_SHADE, shape.getFill().getFillType());
     }
 
     /**
@@ -101,9 +100,9 @@ public final class TestBackground {
      */
     @Test
     public void backgroundPicture() throws Exception {
-        SlideShow ppt = new SlideShow();
-        Slide slide;
-        Fill fill;
+        HSLFSlideShow ppt = new HSLFSlideShow();
+        HSLFSlide slide;
+        HSLFFill fill;
         HSLFShape shape;
         int idx;
 
@@ -111,45 +110,45 @@ public final class TestBackground {
         slide = ppt.createSlide();
         slide.setFollowMasterBackground(false);
         fill = slide.getBackground().getFill();
-        idx = ppt.addPicture(_slTests.readFile("tomcat.png"), Picture.PNG);
-        fill.setFillType(Fill.FILL_PICTURE);
+        idx = ppt.addPicture(_slTests.readFile("tomcat.png"), HSLFPictureShape.PNG);
+        fill.setFillType(HSLFFill.FILL_PICTURE);
         fill.setPictureData(idx);
 
-        shape = new AutoShape(ShapeType.RECT);
+        shape = new HSLFAutoShape(ShapeType.RECT);
         shape.setAnchor(new java.awt.Rectangle(100, 100, 200, 200));
         fill = shape.getFill();
-        fill.setFillType(Fill.FILL_SOLID);
+        fill.setFillType(HSLFFill.FILL_SOLID);
         slide.addShape(shape);
 
         //slide 2
         slide = ppt.createSlide();
         slide.setFollowMasterBackground(false);
         fill = slide.getBackground().getFill();
-        idx = ppt.addPicture(_slTests.readFile("tomcat.png"), Picture.PNG);
-        fill.setFillType(Fill.FILL_PATTERN);
+        idx = ppt.addPicture(_slTests.readFile("tomcat.png"), HSLFPictureShape.PNG);
+        fill.setFillType(HSLFFill.FILL_PATTERN);
         fill.setPictureData(idx);
         fill.setBackgroundColor(Color.green);
         fill.setForegroundColor(Color.red);
 
-        shape = new AutoShape(ShapeType.RECT);
+        shape = new HSLFAutoShape(ShapeType.RECT);
         shape.setAnchor(new java.awt.Rectangle(100, 100, 200, 200));
         fill = shape.getFill();
-        fill.setFillType(Fill.FILL_BACKGROUND);
+        fill.setFillType(HSLFFill.FILL_BACKGROUND);
         slide.addShape(shape);
 
         //slide 3
         slide = ppt.createSlide();
         slide.setFollowMasterBackground(false);
         fill = slide.getBackground().getFill();
-        idx = ppt.addPicture(_slTests.readFile("tomcat.png"), Picture.PNG);
-        fill.setFillType(Fill.FILL_TEXTURE);
+        idx = ppt.addPicture(_slTests.readFile("tomcat.png"), HSLFPictureShape.PNG);
+        fill.setFillType(HSLFFill.FILL_TEXTURE);
         fill.setPictureData(idx);
 
-        shape = new AutoShape(ShapeType.RECT);
+        shape = new HSLFAutoShape(ShapeType.RECT);
         shape.setAnchor(new java.awt.Rectangle(100, 100, 200, 200));
         fill = shape.getFill();
-        fill.setFillType(Fill.FILL_PICTURE);
-        idx = ppt.addPicture(_slTests.readFile("clock.jpg"), Picture.JPEG);
+        fill.setFillType(HSLFFill.FILL_PICTURE);
+        idx = ppt.addPicture(_slTests.readFile("clock.jpg"), HSLFPictureShape.JPEG);
         fill.setPictureData(idx);
         slide.addShape(shape);
 
@@ -157,14 +156,14 @@ public final class TestBackground {
         slide = ppt.createSlide();
         slide.setFollowMasterBackground(false);
         fill = slide.getBackground().getFill();
-        fill.setFillType(Fill.FILL_SHADE_CENTER);
+        fill.setFillType(HSLFFill.FILL_SHADE_CENTER);
         fill.setBackgroundColor(Color.white);
         fill.setForegroundColor(Color.darkGray);
 
-        shape = new AutoShape(ShapeType.RECT);
+        shape = new HSLFAutoShape(ShapeType.RECT);
         shape.setAnchor(new java.awt.Rectangle(100, 100, 200, 200));
         fill = shape.getFill();
-        fill.setFillType(Fill.FILL_SHADE);
+        fill.setFillType(HSLFFill.FILL_SHADE);
         fill.setBackgroundColor(Color.red);
         fill.setForegroundColor(Color.green);
         slide.addShape(shape);
@@ -174,42 +173,42 @@ public final class TestBackground {
         ppt.write(out);
         out.close();
 
-        ppt = new SlideShow(new HSLFSlideShow(new ByteArrayInputStream(out.toByteArray())));
-        Slide[] slides = ppt.getSlides();
+        ppt = new HSLFSlideShow(new HSLFSlideShowImpl(new ByteArrayInputStream(out.toByteArray())));
+        HSLFSlide[] slides = ppt.getSlides();
 
         fill = slides[0].getBackground().getFill();
-        assertEquals(Fill.FILL_PICTURE, fill.getFillType());
+        assertEquals(HSLFFill.FILL_PICTURE, fill.getFillType());
         assertEquals(3, getFillPictureRefCount(slides[0].getBackground(), fill));
         shape = slides[0].getShapes()[0];
-        assertEquals(Fill.FILL_SOLID, shape.getFill().getFillType());
+        assertEquals(HSLFFill.FILL_SOLID, shape.getFill().getFillType());
 
         fill = slides[1].getBackground().getFill();
-        assertEquals(Fill.FILL_PATTERN, fill.getFillType());
+        assertEquals(HSLFFill.FILL_PATTERN, fill.getFillType());
         shape = slides[1].getShapes()[0];
-        assertEquals(Fill.FILL_BACKGROUND, shape.getFill().getFillType());
+        assertEquals(HSLFFill.FILL_BACKGROUND, shape.getFill().getFillType());
 
         fill = slides[2].getBackground().getFill();
-        assertEquals(Fill.FILL_TEXTURE, fill.getFillType());
+        assertEquals(HSLFFill.FILL_TEXTURE, fill.getFillType());
         assertEquals(3, getFillPictureRefCount(slides[2].getBackground(), fill));
         shape = slides[2].getShapes()[0];
-        assertEquals(Fill.FILL_PICTURE, shape.getFill().getFillType());
+        assertEquals(HSLFFill.FILL_PICTURE, shape.getFill().getFillType());
         assertEquals(1, getFillPictureRefCount(shape, fill));
 
         fill = slides[3].getBackground().getFill();
-        assertEquals(Fill.FILL_SHADE_CENTER, fill.getFillType());
+        assertEquals(HSLFFill.FILL_SHADE_CENTER, fill.getFillType());
         shape = slides[3].getShapes()[0];
-        assertEquals(Fill.FILL_SHADE, shape.getFill().getFillType());
+        assertEquals(HSLFFill.FILL_SHADE, shape.getFill().getFillType());
 
     }
 
-    private int getFillPictureRefCount(HSLFShape shape, Fill fill) {
+    private int getFillPictureRefCount(HSLFShape shape, HSLFFill fill) {
         EscherOptRecord opt = shape.getEscherOptRecord();
         EscherSimpleProperty p = HSLFShape.getEscherProperty(opt, EscherProperties.FILL__PATTERNTEXTURE);
         if(p != null) {
             int idx = p.getPropertyValue();
 
-            Sheet sheet = shape.getSheet();
-            SlideShow ppt = sheet.getSlideShow();
+            HSLFSheet sheet = shape.getSheet();
+            HSLFSlideShow ppt = sheet.getSlideShow();
             Document doc = ppt.getDocumentRecord();
             EscherContainerRecord dggContainer = doc.getPPDrawingGroup().getDggContainer();
             EscherContainerRecord bstore = HSLFShape.getEscherChild(dggContainer, EscherContainerRecord.BSTORE_CONTAINER);
index 6ff487038669f4845c73e14b2fdd6915864b3508..6d1365efbe8b300f910809903725948fb7d51fee 100644 (file)
@@ -43,7 +43,7 @@ public final class TestFreeform extends TestCase {
         path1.lineTo(100, 200);
         path1.closePath();
 
-        Freeform p = new Freeform();
+        HSLFFreeformShape p = new HSLFFreeformShape();
         p.setPath(path1);
 
         java.awt.Shape path2 = p.getOutline();
@@ -54,7 +54,7 @@ public final class TestFreeform extends TestCase {
 
         GeneralPath path1 = new GeneralPath(new Line2D.Double(100, 100, 200, 100));
 
-        Freeform p = new Freeform();
+        HSLFFreeformShape p = new HSLFFreeformShape();
         p.setPath(path1);
 
         java.awt.Shape path2 = p.getOutline();
@@ -65,7 +65,7 @@ public final class TestFreeform extends TestCase {
 
         GeneralPath path1 = new GeneralPath(new Rectangle2D.Double(100, 100, 200, 50));
 
-        Freeform p = new Freeform();
+        HSLFFreeformShape p = new HSLFFreeformShape();
         p.setPath(path1);
 
         java.awt.Shape path2 = p.getOutline();
@@ -78,7 +78,7 @@ public final class TestFreeform extends TestCase {
      */
     public void test54188() {
 
-        Freeform p = new Freeform();
+        HSLFFreeformShape p = new HSLFFreeformShape();
         GeneralPath path = (GeneralPath)p.getOutline();
         GeneralPath emptyPath = new GeneralPath();
         assertEquals(emptyPath.getBounds2D(), path.getBounds2D());
index 1e86b8c3af4df9fefda576724189aaade8c9a21b..8239a359d51b7acbf9050dc564c26cda4114359f 100644 (file)
@@ -18,7 +18,7 @@
 package org.apache.poi.hslf.model;
 
 import java.io.*;
-import org.apache.poi.hslf.usermodel.SlideShow;
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;
 import org.apache.poi.POIDataSamples;
 
 import junit.framework.TestCase;
@@ -33,7 +33,7 @@ public final class TestHeadersFooters extends TestCase
 
     public void testRead() throws Exception
     {
-        SlideShow ppt = new SlideShow(_slTests.openResourceAsStream("headers_footers.ppt"));
+        HSLFSlideShow ppt = new HSLFSlideShow(_slTests.openResourceAsStream("headers_footers.ppt"));
 
         HeadersFooters slideHdd = ppt.getSlideHeadersFooters();
         assertTrue(slideHdd.isFooterVisible());
@@ -53,7 +53,7 @@ public final class TestHeadersFooters extends TestCase
         assertTrue(notesHdd.isUserDateVisible());
         assertNull(notesHdd.getDateTimeText());
 
-        Slide[] slide = ppt.getSlides();
+        HSLFSlide[] slide = ppt.getSlides();
         //the first slide uses presentation-scope headers / footers
         HeadersFooters hd1 = slide[0].getHeadersFooters();
         assertEquals(slideHdd.isFooterVisible(), hd1.isFooterVisible());
@@ -77,7 +77,7 @@ public final class TestHeadersFooters extends TestCase
      */
     public void testReadNoHeadersFooters() throws Exception
     {
-        SlideShow ppt = new SlideShow(_slTests.openResourceAsStream("basic_test_ppt_file.ppt"));
+        HSLFSlideShow ppt = new HSLFSlideShow(_slTests.openResourceAsStream("basic_test_ppt_file.ppt"));
 
         HeadersFooters slideHdd = ppt.getSlideHeadersFooters();
         assertFalse(slideHdd.isFooterVisible());
@@ -97,7 +97,7 @@ public final class TestHeadersFooters extends TestCase
         assertFalse(notesHdd.isUserDateVisible());
         assertNull(notesHdd.getDateTimeText());
 
-        Slide[] slide = ppt.getSlides();
+        HSLFSlide[] slide = ppt.getSlides();
         for(int i=0 ; i < slide.length; i++){
             HeadersFooters hd1 = slide[i].getHeadersFooters();
             assertFalse(hd1.isFooterVisible());
@@ -114,7 +114,7 @@ public final class TestHeadersFooters extends TestCase
      */
     public void testRead2007() throws Exception
     {
-        SlideShow ppt = new SlideShow(_slTests.openResourceAsStream("headers_footers_2007.ppt"));
+        HSLFSlideShow ppt = new HSLFSlideShow(_slTests.openResourceAsStream("headers_footers_2007.ppt"));
 
         HeadersFooters slideHdd = ppt.getSlideHeadersFooters();
         assertTrue(slideHdd.isFooterVisible());
@@ -137,7 +137,7 @@ public final class TestHeadersFooters extends TestCase
         //assertEquals("08/12/08", notesHdd.getDateTimeText());
 
         //per-slide headers / footers
-        Slide[] slide = ppt.getSlides();
+        HSLFSlide[] slide = ppt.getSlides();
         //the first slide uses presentation-scope headers / footers
         HeadersFooters hd1 = slide[0].getHeadersFooters();
         assertTrue(hd1.isFooterVisible());
@@ -174,7 +174,7 @@ public final class TestHeadersFooters extends TestCase
 
     public void testCreateSlideFooters() throws Exception
     {
-        SlideShow ppt = new SlideShow();
+        HSLFSlideShow ppt = new HSLFSlideShow();
         HeadersFooters hdd = ppt.getSlideHeadersFooters();
         hdd.setFootersText("My slide footer");
         hdd.setSlideNumberVisible(true);
@@ -183,7 +183,7 @@ public final class TestHeadersFooters extends TestCase
         ppt.write(out);
         byte[] b = out.toByteArray();
 
-        SlideShow ppt2 = new SlideShow(new ByteArrayInputStream(b));
+        HSLFSlideShow ppt2 = new HSLFSlideShow(new ByteArrayInputStream(b));
         HeadersFooters hdd2 = ppt2.getSlideHeadersFooters();
         assertTrue(hdd2.isSlideNumberVisible());
         assertTrue(hdd2.isFooterVisible());
@@ -192,7 +192,7 @@ public final class TestHeadersFooters extends TestCase
 
     public void testCreateNotesFooters() throws Exception
     {
-        SlideShow ppt = new SlideShow();
+        HSLFSlideShow ppt = new HSLFSlideShow();
         HeadersFooters hdd = ppt.getNotesHeadersFooters();
         hdd.setFootersText("My notes footer");
         hdd.setHeaderText("My notes header");
@@ -202,7 +202,7 @@ public final class TestHeadersFooters extends TestCase
         ppt.write(out);
         byte[] b = out.toByteArray();
 
-        SlideShow ppt2 = new SlideShow(new ByteArrayInputStream(b));
+        HSLFSlideShow ppt2 = new HSLFSlideShow(new ByteArrayInputStream(b));
         HeadersFooters hdd2 = ppt2.getNotesHeadersFooters();
         assertTrue(hdd2.isSlideNumberVisible());
         assertTrue(hdd2.isFooterVisible());
index 6f9f9eb8b460ac517216a3935bbafc8ba9a2e844..83e6ca65825fa75d719566c5d7745d38797cf365 100644 (file)
@@ -19,7 +19,7 @@ package org.apache.poi.hslf.model;
 
 import junit.framework.TestCase;
 
-import org.apache.poi.hslf.usermodel.SlideShow;
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;
 import org.apache.poi.POIDataSamples;
 
 /**
@@ -31,10 +31,10 @@ public final class TestHyperlink extends TestCase {
     private static POIDataSamples _slTests = POIDataSamples.getSlideShowInstance();
 
     public void testTextRunHyperlinks() throws Exception {
-        SlideShow ppt = new SlideShow(_slTests.openResourceAsStream("WithLinks.ppt"));
+        HSLFSlideShow ppt = new HSLFSlideShow(_slTests.openResourceAsStream("WithLinks.ppt"));
 
-        TextRun[] run;
-        Slide slide;
+        HSLFTextParagraph[] run;
+        HSLFSlide slide;
         slide = ppt.getSlides()[0];
         run = slide.getTextRuns();
         for (int i = 0; i < run.length; i++) {
index 9de8cad43ef06dff49e4415b491e69cebd17996a..11a64f63794345dc052271ec69f74a383d91fb3d 100644 (file)
@@ -23,7 +23,7 @@ import junit.framework.TestCase;
 
 import org.apache.poi.hslf.blip.BitmapPainter;
 import org.apache.poi.hslf.blip.ImagePainter;
-import org.apache.poi.hslf.usermodel.PictureData;
+import org.apache.poi.hslf.usermodel.HSLFPictureData;
 
 /**
  * Test Picture shape.
@@ -36,19 +36,19 @@ public final class TestImagePainter extends TestCase {
         public CustomImagePainter() {
             // no fields to initialise
         }
-        public void paint(Graphics2D graphics, PictureData pict, Picture parent){
+        public void paint(Graphics2D graphics, HSLFPictureData pict, HSLFPictureShape parent){
             //do noting
         }
     }
 
     public void testImagePainter() {
 
-        ImagePainter pntr = PictureData.getImagePainter(Picture.PNG);
-        assertTrue(PictureData.getImagePainter(Picture.PNG) instanceof BitmapPainter);
-        assertTrue(PictureData.getImagePainter(Picture.JPEG) instanceof BitmapPainter);
-        assertTrue(PictureData.getImagePainter(Picture.DIB) instanceof BitmapPainter);
+        ImagePainter pntr = HSLFPictureData.getImagePainter(HSLFPictureShape.PNG);
+        assertTrue(HSLFPictureData.getImagePainter(HSLFPictureShape.PNG) instanceof BitmapPainter);
+        assertTrue(HSLFPictureData.getImagePainter(HSLFPictureShape.JPEG) instanceof BitmapPainter);
+        assertTrue(HSLFPictureData.getImagePainter(HSLFPictureShape.DIB) instanceof BitmapPainter);
 
-        PictureData.setImagePainter(Picture.WMF, new CustomImagePainter());
-        assertTrue(PictureData.getImagePainter(Picture.WMF) instanceof CustomImagePainter);
+        HSLFPictureData.setImagePainter(HSLFPictureShape.WMF, new CustomImagePainter());
+        assertTrue(HSLFPictureData.getImagePainter(HSLFPictureShape.WMF) instanceof CustomImagePainter);
     }
 }
index 735fa30466a6d42a9d14ec77eda934b40fc659f5..413ff8ebe8d5ceb52f81d5a8bd63a42e0dc38f0d 100644 (file)
@@ -21,7 +21,7 @@ import java.awt.Color;
 
 import junit.framework.TestCase;
 
-import org.apache.poi.hslf.usermodel.SlideShow;
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;
 
 /**
  * Test Line shape.
@@ -31,9 +31,9 @@ import org.apache.poi.hslf.usermodel.SlideShow;
 public final class TestLine extends TestCase {
 
     public void testCreateLines() {
-        SlideShow ppt = new SlideShow();
+        HSLFSlideShow ppt = new HSLFSlideShow();
 
-        Slide slide = ppt.createSlide();
+        HSLFSlide slide = ppt.createSlide();
 
         slide.addTitle().setText("Lines tester");
 
index 9460642bb47c6af878502573a1e7e759fe2dbd47..1b5bbd32985e3cc28146c4188dc82226af1d19c5 100644 (file)
@@ -23,7 +23,7 @@ import java.io.ByteArrayOutputStream;
 
 import junit.framework.TestCase;
 
-import org.apache.poi.hslf.usermodel.SlideShow;
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;
 import org.apache.poi.POIDataSamples;
 
 /**
@@ -36,13 +36,13 @@ public final class TestMovieShape extends TestCase {
     private static POIDataSamples _slTests = POIDataSamples.getSlideShowInstance();
 
     public void testCreate() throws Exception {
-        SlideShow ppt = new SlideShow();
+        HSLFSlideShow ppt = new HSLFSlideShow();
 
-        Slide slide = ppt.createSlide();
+        HSLFSlide slide = ppt.createSlide();
 
         String path = "/test-movie.mpg";
         int movieIdx = ppt.addMovie(path, MovieShape.MOVIE_MPEG);
-        int thumbnailIdx = ppt.addPicture(_slTests.readFile("tomcat.png"), Picture.PNG);
+        int thumbnailIdx = ppt.addPicture(_slTests.readFile("tomcat.png"), HSLFPictureShape.PNG);
 
         MovieShape shape = new MovieShape(movieIdx, thumbnailIdx);
         shape.setAnchor(new Rectangle2D.Float(300,225,120,90));
@@ -56,7 +56,7 @@ public final class TestMovieShape extends TestCase {
         ByteArrayOutputStream out = new ByteArrayOutputStream();
         ppt.write(out);
 
-        ppt = new SlideShow(new ByteArrayInputStream(out.toByteArray()));
+        ppt = new HSLFSlideShow(new ByteArrayInputStream(out.toByteArray()));
         slide = ppt.getSlides()[0];
         shape = (MovieShape)slide.getShapes()[0];
         assertEquals(path, shape.getPath());
index 249c4ee964676cb5978de1b35c25dbfe6bc0d412..410f48226ac891aae376ef760697e40a5e5d7365 100644 (file)
@@ -28,10 +28,9 @@ import java.io.InputStream;
 import junit.framework.TestCase;
 
 import org.apache.poi.POIDataSamples;
-import org.apache.poi.hslf.HSLFSlideShow;
-import org.apache.poi.hslf.usermodel.ObjectData;
-import org.apache.poi.hslf.usermodel.PictureData;
-import org.apache.poi.hslf.usermodel.SlideShow;
+import org.apache.poi.hslf.usermodel.HSLFObjectData;
+import org.apache.poi.hslf.usermodel.HSLFPictureData;
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;
 import org.apache.poi.hssf.usermodel.HSSFSheet;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.apache.poi.hwpf.HWPFDocument;
@@ -46,31 +45,31 @@ public final class TestOleEmbedding extends TestCase {
      * @throws Exception if an error occurs.
      */
     public void testOleEmbedding2003() throws Exception {
-        HSLFSlideShow slideShow = new HSLFSlideShow(_slTests.openResourceAsStream("ole2-embedding-2003.ppt"));
+        HSLFSlideShowImpl slideShow = new HSLFSlideShowImpl(_slTests.openResourceAsStream("ole2-embedding-2003.ppt"));
         // Placeholder EMFs for clients that don't support the OLE components.
-        PictureData[] pictures = slideShow.getPictures();
+        HSLFPictureData[] pictures = slideShow.getPictures();
         assertEquals("Should be two pictures", 2, pictures.length);
         //assertDigestEquals("Wrong data for picture 1", "8d1fbadf4814f321bb1ccdd056e3c788", pictures[0].getData());
         //assertDigestEquals("Wrong data for picture 2", "987a698e83559cf3d38a0deeba1cc63b", pictures[1].getData());
 
         // Actual embedded objects.
-        ObjectData[] objects = slideShow.getEmbeddedObjects();
+        HSLFObjectData[] objects = slideShow.getEmbeddedObjects();
         assertEquals("Should be two objects", 2, objects.length);
         //assertDigestEquals("Wrong data for objecs 1", "0d1fcc61a83de5c4894dc0c88e9a019d", objects[0].getData());
         //assertDigestEquals("Wrong data for object 2", "b323604b2003a7299c77c2693b641495", objects[1].getData());
     }
 
     public void testOLEShape() throws Exception {
-        SlideShow ppt = new SlideShow(_slTests.openResourceAsStream("ole2-embedding-2003.ppt"));
+        HSLFSlideShow ppt = new HSLFSlideShow(_slTests.openResourceAsStream("ole2-embedding-2003.ppt"));
 
-        Slide slide = ppt.getSlides()[0];
+        HSLFSlide slide = ppt.getSlides()[0];
         HSLFShape[] sh = slide.getShapes();
         int cnt = 0;
         for (int i = 0; i < sh.length; i++) {
             if(sh[i] instanceof OLEShape){
                 cnt++;
                 OLEShape ole = (OLEShape)sh[i];
-                ObjectData data = ole.getObjectData();
+                HSLFObjectData data = ole.getObjectData();
                 if("Worksheet".equals(ole.getInstanceName())){
                     //Voila! we created a workbook from the embedded OLE data
                     HSSFWorkbook wb = new HSSFWorkbook(data.getData());
@@ -94,11 +93,11 @@ public final class TestOleEmbedding extends TestCase {
     }
     
     public void testEmbedding() throws Exception {
-       HSLFSlideShow _hslfSlideShow = HSLFSlideShow.create();
-       SlideShow ppt = new SlideShow(_hslfSlideShow);
+       HSLFSlideShowImpl _hslfSlideShow = HSLFSlideShowImpl.create();
+       HSLFSlideShow ppt = new HSLFSlideShow(_hslfSlideShow);
        
        File pict = POIDataSamples.getSlideShowInstance().getFile("clock.jpg");
-       int pictId = ppt.addPicture(pict, Picture.JPEG);
+       int pictId = ppt.addPicture(pict, HSLFPictureShape.JPEG);
        
        InputStream is = POIDataSamples.getSpreadSheetInstance().openResourceAsStream("Employee.xls");
        POIFSFileSystem poiData1 = new POIFSFileSystem(is);
@@ -106,14 +105,14 @@ public final class TestOleEmbedding extends TestCase {
        
        int oleObjectId1 = ppt.addEmbed(poiData1);
        
-       Slide slide1 = ppt.createSlide();
+       HSLFSlide slide1 = ppt.createSlide();
        OLEShape oleShape1 = new OLEShape(pictId);
        oleShape1.setObjectID(oleObjectId1);
        slide1.addShape(oleShape1);
        oleShape1.setAnchor(new Rectangle2D.Double(100,100,100,100));
        
        // add second slide with different order in object creation
-       Slide slide2 = ppt.createSlide();
+       HSLFSlide slide2 = ppt.createSlide();
        OLEShape oleShape2 = new OLEShape(pictId);
 
         is = POIDataSamples.getSpreadSheetInstance().openResourceAsStream("SimpleWithImages.xls");
@@ -129,7 +128,7 @@ public final class TestOleEmbedding extends TestCase {
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        ppt.write(bos);
        
-       ppt = new SlideShow(new ByteArrayInputStream(bos.toByteArray()));
+       ppt = new HSLFSlideShow(new ByteArrayInputStream(bos.toByteArray()));
        OLEShape comp = (OLEShape)ppt.getSlides()[0].getShapes()[0];
        byte compData[] = IOUtils.toByteArray(comp.getObjectData().getData());
        
index aff848dfc5e11becc7da87e6730dc64aaa11f8e2..fb04ccf5dded1218c0b275d0ac96aa943545a75f 100644 (file)
@@ -18,7 +18,7 @@
 package org.apache.poi.hslf.model;
 
 import junit.framework.TestCase;
-import org.apache.poi.hslf.usermodel.SlideShow;
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;
 
 /**
  * Test adding fonts to the presenataion resources
@@ -28,7 +28,7 @@ import org.apache.poi.hslf.usermodel.SlideShow;
 public final class TestPPFont extends TestCase{
 
     public void testCreate() {
-        SlideShow ppt = new SlideShow();
+        HSLFSlideShow ppt = new HSLFSlideShow();
         assertEquals(1, ppt.getNumberOfFonts());
         assertEquals("Arial", ppt.getFont(0).getFontName());
 
index b58dbadecf9e508349c1ca2995758cfef9ba0c9e..b71ce010359738a630fa951c559076a41d1899b1 100644 (file)
 package org.apache.poi.hslf.model;
 
 import junit.framework.TestCase;
-import org.apache.poi.hslf.usermodel.SlideShow;
-import org.apache.poi.hslf.HSLFSlideShow;
+
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;
 import org.apache.poi.POIDataSamples;
 
 import java.awt.*;
-import java.awt.Rectangle;
 import java.io.ByteArrayOutputStream;
 import java.io.ByteArrayInputStream;
 
@@ -34,10 +33,10 @@ import java.io.ByteArrayInputStream;
  */
 public final class TestPPGraphics2D extends TestCase {
     private static POIDataSamples _slTests = POIDataSamples.getSlideShowInstance();
-    private SlideShow ppt;
+    private HSLFSlideShow ppt;
 
     protected void setUp() throws Exception {
-               ppt = new SlideShow(_slTests.openResourceAsStream("empty.ppt"));
+               ppt = new HSLFSlideShow(_slTests.openResourceAsStream("empty.ppt"));
     }
 
     public void testGraphics() throws Exception {
@@ -45,7 +44,7 @@ public final class TestPPGraphics2D extends TestCase {
        assertEquals(0, ppt.getSlides().length);
 
        // Add a slide
-        Slide slide = ppt.createSlide();
+        HSLFSlide slide = ppt.createSlide();
        assertEquals(1, ppt.getSlides().length);
 
        // Add some stuff into it
@@ -73,7 +72,7 @@ public final class TestPPGraphics2D extends TestCase {
         out.close();
 
         // And read it back in
-        ppt = new SlideShow(new HSLFSlideShow(new ByteArrayInputStream(out.toByteArray())));
+        ppt = new HSLFSlideShow(new HSLFSlideShowImpl(new ByteArrayInputStream(out.toByteArray())));
         assertEquals(1, ppt.getSlides().length);
 
         slide = ppt.getSlides()[0];
index fabf63beeeeec89f36e4558e9303a58f38e278aa..08077f0e0054927bf8ba37e7bba4afdda8be90ec 100644 (file)
@@ -36,9 +36,8 @@ import javax.imageio.ImageIO;
 
 import org.apache.poi.POIDataSamples;
 import org.apache.poi.ddf.EscherBSERecord;
-import org.apache.poi.hslf.HSLFSlideShow;
-import org.apache.poi.hslf.usermodel.PictureData;
-import org.apache.poi.hslf.usermodel.SlideShow;
+import org.apache.poi.hslf.usermodel.HSLFPictureData;
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;
 import org.apache.poi.util.JvmBugs;
 import org.junit.Ignore;
 import org.junit.Test;
@@ -58,16 +57,16 @@ public final class TestPicture {
      */
     @Test
     public void multiplePictures() throws Exception {
-        SlideShow ppt = new SlideShow();
+        HSLFSlideShow ppt = new HSLFSlideShow();
 
-        Slide s = ppt.createSlide();
-        Slide s2 = ppt.createSlide();
-        Slide s3 = ppt.createSlide();
+        HSLFSlide s = ppt.createSlide();
+        HSLFSlide s2 = ppt.createSlide();
+        HSLFSlide s3 = ppt.createSlide();
 
-        int idx = ppt.addPicture(_slTests.readFile("clock.jpg"), Picture.JPEG);
-        Picture pict = new Picture(idx);
-        Picture pict2 = new Picture(idx);
-        Picture pict3 = new Picture(idx);
+        int idx = ppt.addPicture(_slTests.readFile("clock.jpg"), HSLFPictureShape.JPEG);
+        HSLFPictureShape pict = new HSLFPictureShape(idx);
+        HSLFPictureShape pict2 = new HSLFPictureShape(idx);
+        HSLFPictureShape pict3 = new HSLFPictureShape(idx);
 
         pict.setAnchor(new Rectangle(10,10,100,100));
         s.addShape(pict);
@@ -93,12 +92,12 @@ public final class TestPicture {
      */
     @Test
     public void bug46122() {
-        SlideShow ppt = new SlideShow();
-        Slide slide = ppt.createSlide();
+        HSLFSlideShow ppt = new HSLFSlideShow();
+        HSLFSlide slide = ppt.createSlide();
 
-        Picture pict = new Picture(-1); //index to non-existing picture data
+        HSLFPictureShape pict = new HSLFPictureShape(-1); //index to non-existing picture data
         pict.setSheet(slide);
-        PictureData data = pict.getPictureData();
+        HSLFPictureData data = pict.getPictureData();
         assertNull(data);
 
         BufferedImage img = new BufferedImage(100, 100, BufferedImage.TYPE_INT_RGB);
@@ -108,9 +107,9 @@ public final class TestPicture {
 
     @Test
     public void macImages() throws Exception {
-        HSLFSlideShow hss = new HSLFSlideShow(_slTests.openResourceAsStream("53446.ppt"));
+        HSLFSlideShowImpl hss = new HSLFSlideShowImpl(_slTests.openResourceAsStream("53446.ppt"));
 
-        PictureData[] pictures = hss.getPictures();
+        HSLFPictureData[] pictures = hss.getPictures();
         assertEquals(15, pictures.length);
 
         int[][] expectedSizes = {
@@ -134,7 +133,7 @@ public final class TestPicture {
         for (int i = 0; i < pictures.length; i++) {
             BufferedImage image = ImageIO.read(new ByteArrayInputStream(pictures[i].getData()));
 
-            if (pictures[i].getType() != Picture.WMF && pictures[i].getType() != Picture.EMF) {
+            if (pictures[i].getType() != HSLFPictureShape.WMF && pictures[i].getType() != HSLFPictureShape.EMF) {
                 assertNotNull(image);
 
                 int[] dimensions = expectedSizes[i];
@@ -163,12 +162,12 @@ public final class TestPicture {
 //        System.out.println("########################");
         
         InputStream is = _slTests.openResourceAsStream("54541_cropped_bitmap.ppt");
-        SlideShow ss = new SlideShow(is);
+        HSLFSlideShow ss = new HSLFSlideShow(is);
         is.close();
         
         Dimension pg = ss.getPageSize();
         int i=1;
-        for(Slide slide : ss.getSlides()) {
+        for(HSLFSlide slide : ss.getSlides()) {
             BufferedImage img = new BufferedImage(pg.width, pg.height, BufferedImage.TYPE_INT_RGB);
             Graphics2D graphics = img.createGraphics();
             fixFonts(graphics);
index 23b798fd6f2ea8bb1f2a9481f07af1f9c8b3dbd5..e1703626ca42871acb2d4b68b9d1e7ca8d5112e5 100644 (file)
@@ -18,9 +18,9 @@
 package org.apache.poi.hslf.model;
 
 import junit.framework.TestCase;
-import org.apache.poi.hslf.usermodel.SlideShow;
-import org.apache.poi.hslf.usermodel.RichTextRun;
-import org.apache.poi.hslf.HSLFSlideShow;
+
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;
+import org.apache.poi.hslf.usermodel.HSLFTextRun;
 
 import java.io.ByteArrayOutputStream;
 import java.io.ByteArrayInputStream;
@@ -36,15 +36,15 @@ public final class TestSetBoldItalic extends TestCase {
      * and set some of the style attributes
      */
     public void testTextBoxWrite() throws Exception {
-        SlideShow ppt = new SlideShow();
-        Slide sl = ppt.createSlide();
-        RichTextRun rt;
+        HSLFSlideShow ppt = new HSLFSlideShow();
+        HSLFSlide sl = ppt.createSlide();
+        HSLFTextRun rt;
 
         String val = "Hello, World!";
 
         // Create a new textbox, and give it lots of properties
-        TextBox txtbox = new TextBox();
-        rt = txtbox.getTextRun().getRichTextRuns()[0];
+        HSLFTextBox txtbox = new HSLFTextBox();
+        rt = txtbox.getTextParagraph().getRichTextRuns()[0];
         txtbox.setText(val);
         rt.setFontSize(42);
         rt.setBold(true);
@@ -53,7 +53,7 @@ public final class TestSetBoldItalic extends TestCase {
         sl.addShape(txtbox);
 
         // Check it before save
-        rt = txtbox.getTextRun().getRichTextRuns()[0];
+        rt = txtbox.getTextParagraph().getRichTextRuns()[0];
         assertEquals(val, rt.getText());
         assertEquals(42, rt.getFontSize());
         assertTrue(rt.isBold());
@@ -64,11 +64,11 @@ public final class TestSetBoldItalic extends TestCase {
         ppt.write(out);
         out.close();
 
-        ppt = new SlideShow(new HSLFSlideShow(new ByteArrayInputStream(out.toByteArray())));
+        ppt = new HSLFSlideShow(new HSLFSlideShowImpl(new ByteArrayInputStream(out.toByteArray())));
         sl = ppt.getSlides()[0];
 
-        txtbox = (TextBox)sl.getShapes()[0];
-        rt = txtbox.getTextRun().getRichTextRuns()[0];
+        txtbox = (HSLFTextBox)sl.getShapes()[0];
+        rt = txtbox.getTextParagraph().getRichTextRuns()[0];
 
         // Check after save
         assertEquals(val, rt.getText());
index 700b758a1e1f5c7d3fef691f4798d5f3c9f028e1..9456c211f8627b71d430956bf3fa714cce44378b 100644 (file)
@@ -38,9 +38,8 @@ import org.apache.poi.ddf.EscherDggRecord;
 import org.apache.poi.ddf.EscherOptRecord;
 import org.apache.poi.ddf.EscherProperties;
 import org.apache.poi.ddf.EscherSimpleProperty;
-import org.apache.poi.hslf.HSLFSlideShow;
-import org.apache.poi.hslf.usermodel.RichTextRun;
-import org.apache.poi.hslf.usermodel.SlideShow;
+import org.apache.poi.hslf.usermodel.HSLFTextRun;
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;
 import org.apache.poi.sl.usermodel.ShapeType;
 import org.junit.Before;
 import org.junit.Test;
@@ -53,17 +52,17 @@ import org.junit.Test;
 public final class TestShapes {
     private static POIDataSamples _slTests = POIDataSamples.getSlideShowInstance();
 
-    private SlideShow ppt;
-    private SlideShow pptB;
+    private HSLFSlideShow ppt;
+    private HSLFSlideShow pptB;
 
     @Before
     public void setUp() throws Exception {
         InputStream is1 = null, is2 = null;
         try {
             is1 = _slTests.openResourceAsStream("empty.ppt");
-            ppt = new SlideShow(is1);
+            ppt = new HSLFSlideShow(is1);
             is2 = _slTests.openResourceAsStream("empty_textbox.ppt");
-            pptB = new SlideShow(is2);
+            pptB = new HSLFSlideShow(is2);
         } finally {
             is1.close();
             is2.close();
@@ -72,7 +71,7 @@ public final class TestShapes {
 
     @Test
     public void graphics() throws Exception {
-        Slide slide = ppt.createSlide();
+        HSLFSlide slide = ppt.createSlide();
 
         Line line = new Line();
         java.awt.Rectangle lineAnchor = new java.awt.Rectangle(100, 200, 50, 60);
@@ -82,7 +81,7 @@ public final class TestShapes {
         line.setLineColor(Color.red);
         slide.addShape(line);
 
-        AutoShape ellipse = new AutoShape(ShapeType.ELLIPSE);
+        HSLFAutoShape ellipse = new HSLFAutoShape(ShapeType.ELLIPSE);
         java.awt.Rectangle ellipseAnchor = new Rectangle(320, 154, 55, 111);
         ellipse.setAnchor(ellipseAnchor);
         ellipse.setLineWidth(2);
@@ -97,7 +96,7 @@ public final class TestShapes {
 
         //read ppt from byte array
 
-        ppt = new SlideShow(new HSLFSlideShow(new ByteArrayInputStream(out.toByteArray())));
+        ppt = new HSLFSlideShow(new HSLFSlideShowImpl(new ByteArrayInputStream(out.toByteArray())));
         assertEquals(1, ppt.getSlides().length);
 
         slide = ppt.getSlides()[0];
@@ -107,7 +106,7 @@ public final class TestShapes {
         assertTrue(shape[0] instanceof Line); //group shape
         assertEquals(lineAnchor, shape[0].getAnchor()); //group shape
 
-        assertTrue(shape[1] instanceof AutoShape); //group shape
+        assertTrue(shape[1] instanceof HSLFAutoShape); //group shape
         assertEquals(ellipseAnchor, shape[1].getAnchor()); //group shape
     }
 
@@ -117,17 +116,17 @@ public final class TestShapes {
      */
     @Test
     public void textBoxRead() throws Exception {
-        ppt = new SlideShow(_slTests.openResourceAsStream("with_textbox.ppt"));
-        Slide sl = ppt.getSlides()[0];
+        ppt = new HSLFSlideShow(_slTests.openResourceAsStream("with_textbox.ppt"));
+        HSLFSlide sl = ppt.getSlides()[0];
         HSLFShape[] sh = sl.getShapes();
         for (int i = 0; i < sh.length; i++) {
-            assertTrue(sh[i] instanceof TextBox);
-            TextBox txtbox = (TextBox)sh[i];
+            assertTrue(sh[i] instanceof HSLFTextBox);
+            HSLFTextBox txtbox = (HSLFTextBox)sh[i];
             String text = txtbox.getText();
             assertNotNull(text);
 
-            assertEquals(txtbox.getTextRun().getRichTextRuns().length, 1);
-            RichTextRun rt = txtbox.getTextRun().getRichTextRuns()[0];
+            assertEquals(txtbox.getTextParagraph().getRichTextRuns().length, 1);
+            HSLFTextRun rt = txtbox.getTextParagraph().getRichTextRuns()[0];
 
             if (text.equals("Hello, World!!!")){
                 assertEquals(32, rt.getFontSize());
@@ -153,15 +152,15 @@ public final class TestShapes {
      */
     @Test
     public void textBoxWriteBytes() throws Exception {
-        ppt = new SlideShow();
-        Slide sl = ppt.createSlide();
-        RichTextRun rt;
+        ppt = new HSLFSlideShow();
+        HSLFSlide sl = ppt.createSlide();
+        HSLFTextRun rt;
 
         String val = "Hello, World!";
 
         // Create a new textbox, and give it lots of properties
-        TextBox txtbox = new TextBox();
-        rt = txtbox.getTextRun().getRichTextRuns()[0];
+        HSLFTextBox txtbox = new HSLFTextBox();
+        rt = txtbox.getTextParagraph().getRichTextRuns()[0];
         txtbox.setText(val);
         rt.setFontName("Arial");
         rt.setFontSize(42);
@@ -172,7 +171,7 @@ public final class TestShapes {
         sl.addShape(txtbox);
 
         // Check it before save
-        rt = txtbox.getTextRun().getRichTextRuns()[0];
+        rt = txtbox.getTextParagraph().getRichTextRuns()[0];
         assertEquals(val, rt.getText());
         assertEquals(42, rt.getFontSize());
         assertTrue(rt.isBold());
@@ -186,11 +185,11 @@ public final class TestShapes {
         ppt.write(out);
         out.close();
 
-        ppt = new SlideShow(new HSLFSlideShow(new ByteArrayInputStream(out.toByteArray())));
+        ppt = new HSLFSlideShow(new HSLFSlideShowImpl(new ByteArrayInputStream(out.toByteArray())));
         sl = ppt.getSlides()[0];
 
-        txtbox = (TextBox)sl.getShapes()[0];
-        rt = txtbox.getTextRun().getRichTextRuns()[0];
+        txtbox = (HSLFTextBox)sl.getShapes()[0];
+        rt = txtbox.getTextParagraph().getRichTextRuns()[0];
 
         // Check after save
         assertEquals(val, rt.getText());
@@ -208,8 +207,8 @@ public final class TestShapes {
     @Test
     public void emptyTextBox() {
        assertEquals(2, pptB.getSlides().length);
-       Slide s1 = pptB.getSlides()[0];
-       Slide s2 = pptB.getSlides()[1];
+       HSLFSlide s1 = pptB.getSlides()[0];
+       HSLFSlide s2 = pptB.getSlides()[1];
 
        // Check we can get the shapes count
        assertEquals(2, s1.getShapes().length);
@@ -231,11 +230,11 @@ public final class TestShapes {
     }
 
     private void textBoxSet(String filename) throws Exception {
-        SlideShow ppt = new SlideShow(_slTests.openResourceAsStream(filename));
-        Slide[] sl = ppt.getSlides();
+        HSLFSlideShow ppt = new HSLFSlideShow(_slTests.openResourceAsStream(filename));
+        HSLFSlide[] sl = ppt.getSlides();
         for (int k = 0; k < sl.length; k++) {
             ArrayList<String> lst1 = new ArrayList<String>();
-            TextRun[] txt = sl[k].getTextRuns();
+            HSLFTextParagraph[] txt = sl[k].getTextRuns();
             for (int i = 0; i < txt.length; i++) {
                 lst1.add(txt[i].getText());
             }
@@ -243,8 +242,8 @@ public final class TestShapes {
             ArrayList<String> lst2 = new ArrayList<String>();
             HSLFShape[] sh = sl[k].getShapes();
             for (int i = 0; i < sh.length; i++) {
-                if (sh[i] instanceof TextShape){
-                    TextShape tbox = (TextShape)sh[i];
+                if (sh[i] instanceof HSLFTextShape){
+                    HSLFTextShape tbox = (HSLFTextShape)sh[i];
                     lst2.add(tbox.getText());
                 }
             }
@@ -258,9 +257,9 @@ public final class TestShapes {
      */
     @Test
     public void shapeGroup() throws Exception {
-        SlideShow ppt = new SlideShow();
+        HSLFSlideShow ppt = new HSLFSlideShow();
 
-        Slide slide = ppt.createSlide();
+        HSLFSlide slide = ppt.createSlide();
         Dimension pgsize = ppt.getPageSize();
 
         HSLFGroupShape group = new HSLFGroupShape();
@@ -268,8 +267,8 @@ public final class TestShapes {
         group.setAnchor(new Rectangle(0, 0, (int)pgsize.getWidth(), (int)pgsize.getHeight()));
         slide.addShape(group);
 
-        int idx = ppt.addPicture(_slTests.readFile("clock.jpg"), Picture.JPEG);
-        Picture pict = new Picture(idx, group);
+        int idx = ppt.addPicture(_slTests.readFile("clock.jpg"), HSLFPictureShape.JPEG);
+        HSLFPictureShape pict = new HSLFPictureShape(idx, group);
         pict.setAnchor(new Rectangle(0, 0, 200, 200));
         group.addShape(pict);
 
@@ -283,7 +282,7 @@ public final class TestShapes {
         out.close();
 
         ByteArrayInputStream is = new ByteArrayInputStream(out.toByteArray());
-        ppt = new SlideShow(is);
+        ppt = new HSLFSlideShow(is);
         is.close();
 
         slide = ppt.getSlides()[0];
@@ -295,10 +294,10 @@ public final class TestShapes {
         group = (HSLFGroupShape)shape[0];
         HSLFShape[] grshape = group.getShapes();
         assertEquals(2, grshape.length);
-        assertTrue(grshape[0] instanceof Picture);
+        assertTrue(grshape[0] instanceof HSLFPictureShape);
         assertTrue(grshape[1] instanceof Line);
 
-        pict = (Picture)grshape[0];
+        pict = (HSLFPictureShape)grshape[0];
         assertEquals(new Rectangle(0, 0, 200, 200), pict.getAnchor());
 
         line = (Line)grshape[1];
@@ -311,8 +310,8 @@ public final class TestShapes {
     @Test
     public void removeShapes() throws IOException {
         String file = "with_textbox.ppt";
-        SlideShow ppt = new SlideShow(_slTests.openResourceAsStream(file));
-        Slide sl = ppt.getSlides()[0];
+        HSLFSlideShow ppt = new HSLFSlideShow(_slTests.openResourceAsStream(file));
+        HSLFSlide sl = ppt.getSlides()[0];
         HSLFShape[] sh = sl.getShapes();
         assertEquals("expected four shaped in " + file, 4, sh.length);
         //remove all
@@ -328,30 +327,30 @@ public final class TestShapes {
         ppt.write(out);
         out.close();
 
-        ppt = new SlideShow(new ByteArrayInputStream(out.toByteArray()));
+        ppt = new HSLFSlideShow(new ByteArrayInputStream(out.toByteArray()));
         sl = ppt.getSlides()[0];
         assertEquals("expected 0 shaped in " + file, 0, sl.getShapes().length);
     }
 
     @Test
     public void lineWidth() {
-        SimpleShape sh = new AutoShape(ShapeType.RT_TRIANGLE);
+        HSLFSimpleShape sh = new HSLFAutoShape(ShapeType.RT_TRIANGLE);
 
         EscherOptRecord opt = sh.getEscherOptRecord();
-        EscherSimpleProperty prop = SimpleShape.getEscherProperty(opt, EscherProperties.LINESTYLE__LINEWIDTH);
+        EscherSimpleProperty prop = HSLFSimpleShape.getEscherProperty(opt, EscherProperties.LINESTYLE__LINEWIDTH);
         assertNull(prop);
-        assertEquals(SimpleShape.DEFAULT_LINE_WIDTH, sh.getLineWidth(), 0);
+        assertEquals(HSLFSimpleShape.DEFAULT_LINE_WIDTH, sh.getLineWidth(), 0);
 
         sh.setLineWidth(1.0);
-        prop = SimpleShape.getEscherProperty(opt, EscherProperties.LINESTYLE__LINEWIDTH);
+        prop = HSLFSimpleShape.getEscherProperty(opt, EscherProperties.LINESTYLE__LINEWIDTH);
         assertNotNull(prop);
         assertEquals(1.0, sh.getLineWidth(), 0);
     }
 
     @Test
     public void shapeId() {
-        SlideShow ppt = new SlideShow();
-        Slide slide = ppt.createSlide();
+        HSLFSlideShow ppt = new HSLFSlideShow();
+        HSLFSlide slide = ppt.createSlide();
         HSLFShape shape = null;
 
         //EscherDgg is a document-level record which keeps track of the drawing groups
@@ -400,25 +399,25 @@ public final class TestShapes {
 
     @Test
     public void lineColor() throws IOException {
-        SlideShow ppt = new SlideShow(_slTests.openResourceAsStream("51731.ppt"));
+        HSLFSlideShow ppt = new HSLFSlideShow(_slTests.openResourceAsStream("51731.ppt"));
         HSLFShape[] shape = ppt.getSlides()[0].getShapes();
 
         assertEquals(4, shape.length);
 
-        TextShape sh1 = (TextShape)shape[0];
+        HSLFTextShape sh1 = (HSLFTextShape)shape[0];
         assertEquals("Hello Apache POI", sh1.getText());
         assertNull(sh1.getLineColor());
 
-        TextShape sh2 = (TextShape)shape[1];
+        HSLFTextShape sh2 = (HSLFTextShape)shape[1];
         assertEquals("Why are you showing this border?", sh2.getText());
         assertNull(sh2.getLineColor());
 
-        TextShape sh3 = (TextShape)shape[2];
+        HSLFTextShape sh3 = (HSLFTextShape)shape[2];
         assertEquals("Text in a black border", sh3.getText());
         assertEquals(Color.black, sh3.getLineColor());
         assertEquals(0.75, sh3.getLineWidth(), 0);
 
-        TextShape sh4 = (TextShape)shape[3];
+        HSLFTextShape sh4 = (HSLFTextShape)shape[3];
         assertEquals("Border width is 5 pt", sh4.getText());
         assertEquals(Color.black, sh4.getLineColor());
         assertEquals(5.0, sh4.getLineWidth(), 0);
index a22e7eb3f94306b3025502f25372fb81a34dabdb..60b8ca42e2346990f224d68f24f53ab227d63404 100644 (file)
@@ -23,7 +23,7 @@ import junit.framework.TestCase;
 import org.apache.poi.hslf.exceptions.EncryptedPowerPointFileException;
 import org.apache.poi.hslf.record.ColorSchemeAtom;
 import org.apache.poi.hslf.record.PPDrawing;
-import org.apache.poi.hslf.usermodel.SlideShow;
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;
 import org.apache.poi.POIDataSamples;
 
 /**
@@ -42,7 +42,7 @@ public final class TestSheet extends TestCase {
         String[] tests = {"SampleShow.ppt", "backgrounds.ppt", "text_shapes.ppt", "pictures.ppt"};
         for (String file : tests) {
             try {
-                SlideShow ppt = new SlideShow(_slTests.openResourceAsStream(file));
+                HSLFSlideShow ppt = new HSLFSlideShow(_slTests.openResourceAsStream(file));
                 doSlideShow(ppt);
             } catch (EncryptedPowerPointFileException e){
                 ; //skip encrypted ppt
@@ -50,21 +50,21 @@ public final class TestSheet extends TestCase {
         }
     }
 
-    private void doSlideShow(SlideShow ppt) {
-        Slide[] slide = ppt.getSlides();
+    private void doSlideShow(HSLFSlideShow ppt) {
+        HSLFSlide[] slide = ppt.getSlides();
         for (int i = 0; i < slide.length; i++) {
             verify(slide[i]);
 
-            Notes notes = slide[i].getNotesSheet();
+            HSLFNotes notes = slide[i].getNotesSheet();
             if(notes != null) verify(notes);
 
-            MasterSheet master = slide[i].getMasterSheet();
+            HSLFMasterSheet master = slide[i].getMasterSheet();
             assertNotNull(master);
             verify(master);
         }
     }
 
-    private void verify(Sheet sheet){
+    private void verify(HSLFSheet sheet){
         assertNotNull(sheet.getSlideShow());
 
         ColorSchemeAtom colorscheme = sheet.getColorScheme();
@@ -73,13 +73,13 @@ public final class TestSheet extends TestCase {
         PPDrawing ppdrawing = sheet.getPPDrawing();
         assertNotNull(ppdrawing);
 
-        Background background = sheet.getBackground();
+        HSLFBackground background = sheet.getBackground();
         assertNotNull(background);
 
         assertTrue(sheet._getSheetNumber() != 0);
         assertTrue(sheet._getSheetRefId() != 0);
 
-        TextRun[] txt = sheet.getTextRuns();
+        HSLFTextParagraph[] txt = sheet.getTextRuns();
         if (txt == null) {
             throw new AssertionFailedError("no text runs");
         }
index 71c95f87b7b0ca84f16d27da707c24766927ebb1..2d4fe151310e133a05f5afc827a47d53edb3d715 100644 (file)
@@ -20,9 +20,8 @@ package org.apache.poi.hslf.model;
 
 import junit.framework.TestCase;
 
-import org.apache.poi.hslf.HSLFSlideShow;
 import org.apache.poi.hslf.record.SlideAtom;
-import org.apache.poi.hslf.usermodel.SlideShow;
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;
 import org.apache.poi.POIDataSamples;
 
 /**
@@ -32,16 +31,16 @@ import org.apache.poi.POIDataSamples;
  */
 public final class TestSlideChangeNotes extends TestCase {
        // SlideShow primed on the test data
-       private SlideShow ss;
+       private HSLFSlideShow ss;
 
        public TestSlideChangeNotes() throws Exception {
         POIDataSamples _slTests = POIDataSamples.getSlideShowInstance();
-               HSLFSlideShow hss = new HSLFSlideShow(_slTests.openResourceAsStream("basic_test_ppt_file.ppt"));
-               ss = new SlideShow(hss);
+               HSLFSlideShowImpl hss = new HSLFSlideShowImpl(_slTests.openResourceAsStream("basic_test_ppt_file.ppt"));
+               ss = new HSLFSlideShow(hss);
        }
 
        public void testSetToNone() {
-               Slide slideOne = ss.getSlides()[0];
+               HSLFSlide slideOne = ss.getSlides()[0];
                SlideAtom sa = slideOne.getSlideRecord().getSlideAtom();
 
                slideOne.setNotes(null);
@@ -50,8 +49,8 @@ public final class TestSlideChangeNotes extends TestCase {
        }
 
        public void testSetToSomething() {
-               Slide slideOne = ss.getSlides()[0];
-               Notes notesOne = ss.getNotes()[1];
+               HSLFSlide slideOne = ss.getSlides()[0];
+               HSLFNotes notesOne = ss.getNotes()[1];
                SlideAtom sa = slideOne.getSlideRecord().getSlideAtom();
 
                slideOne.setNotes(notesOne);
index 45c3c0c2bccdef85823a3e2ef55c4e50571f2885..ffb6563da5b20fd8a39d0953628bc5dc9b32a20b 100644 (file)
@@ -22,12 +22,11 @@ import java.io.ByteArrayOutputStream;
 
 import junit.framework.TestCase;
 
-import org.apache.poi.hslf.HSLFSlideShow;
 import org.apache.poi.hslf.model.textproperties.CharFlagsTextProp;
 import org.apache.poi.hslf.record.Environment;
 import org.apache.poi.hslf.record.TextHeaderAtom;
-import org.apache.poi.hslf.usermodel.RichTextRun;
-import org.apache.poi.hslf.usermodel.SlideShow;
+import org.apache.poi.hslf.usermodel.HSLFTextRun;
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;
 import org.apache.poi.POIDataSamples;
 
 /**
@@ -43,7 +42,7 @@ public final class TestSlideMaster extends TestCase{
      * Check we can read their attributes.
      */
     public void testSlideMaster() throws Exception {
-        SlideShow ppt = new SlideShow(_slTests.openResourceAsStream("slide_master.ppt"));
+        HSLFSlideShow ppt = new HSLFSlideShow(_slTests.openResourceAsStream("slide_master.ppt"));
 
         Environment env = ppt.getDocumentRecord().getEnvironment();
 
@@ -83,7 +82,7 @@ public final class TestSlideMaster extends TestCase{
      * Test we can read default text attributes for a title master sheet
      */
     public void testTitleMasterTextAttributes() throws Exception {
-        SlideShow ppt = new SlideShow(_slTests.openResourceAsStream("slide_master.ppt"));
+        HSLFSlideShow ppt = new HSLFSlideShow(_slTests.openResourceAsStream("slide_master.ppt"));
         TitleMaster[] master = ppt.getTitleMasters();
         assertEquals(1, master.length);
 
@@ -104,14 +103,14 @@ public final class TestSlideMaster extends TestCase{
      * Slide 3 has title layout and follows the TitleMaster. Verify that.
      */
     public void testTitleMaster() throws Exception {
-        SlideShow ppt = new SlideShow(_slTests.openResourceAsStream("slide_master.ppt"));
-        Slide slide = ppt.getSlides()[2];
-        MasterSheet masterSheet = slide.getMasterSheet();
+        HSLFSlideShow ppt = new HSLFSlideShow(_slTests.openResourceAsStream("slide_master.ppt"));
+        HSLFSlide slide = ppt.getSlides()[2];
+        HSLFMasterSheet masterSheet = slide.getMasterSheet();
         assertTrue(masterSheet instanceof TitleMaster);
 
-        TextRun[] txt = slide.getTextRuns();
+        HSLFTextParagraph[] txt = slide.getTextRuns();
         for (int i = 0; i < txt.length; i++) {
-            RichTextRun rt = txt[i].getRichTextRuns()[0];
+            HSLFTextRun rt = txt[i].getRichTextRuns()[0];
             switch(txt[i].getRunType()){
                 case TextHeaderAtom.CENTER_TITLE_TYPE:
                     assertEquals("Arial", rt.getFontName());
@@ -133,20 +132,20 @@ public final class TestSlideMaster extends TestCase{
      * If a style attribute is not set ensure it is read from the master
      */
     public void testMasterAttributes() throws Exception {
-        SlideShow ppt = new SlideShow(_slTests.openResourceAsStream("slide_master.ppt"));
-        Slide[] slide = ppt.getSlides();
+        HSLFSlideShow ppt = new HSLFSlideShow(_slTests.openResourceAsStream("slide_master.ppt"));
+        HSLFSlide[] slide = ppt.getSlides();
         assertEquals(3, slide.length);
-        TextRun[] trun;
+        HSLFTextParagraph[] trun;
 
         trun = slide[0].getTextRuns();
         for (int i = 0; i < trun.length; i++) {
             if (trun[i].getRunType() == TextHeaderAtom.TITLE_TYPE){
-                RichTextRun rt = trun[i].getRichTextRuns()[0];
+                HSLFTextRun rt = trun[i].getRichTextRuns()[0];
                 assertEquals(40, rt.getFontSize());
                 assertEquals(true, rt.isUnderlined());
                 assertEquals("Arial", rt.getFontName());
             } else if (trun[i].getRunType() == TextHeaderAtom.BODY_TYPE){
-                RichTextRun rt;
+                HSLFTextRun rt;
                 rt = trun[i].getRichTextRuns()[0];
                 assertEquals(0, rt.getIndentLevel());
                 assertEquals(32, rt.getFontSize());
@@ -163,12 +162,12 @@ public final class TestSlideMaster extends TestCase{
         trun = slide[1].getTextRuns();
         for (int i = 0; i < trun.length; i++) {
             if (trun[i].getRunType() == TextHeaderAtom.TITLE_TYPE){
-                RichTextRun rt = trun[i].getRichTextRuns()[0];
+                HSLFTextRun rt = trun[i].getRichTextRuns()[0];
                 assertEquals(48, rt.getFontSize());
                 assertEquals(true, rt.isItalic());
                 assertEquals("Georgia", rt.getFontName());
             } else if (trun[i].getRunType() == TextHeaderAtom.BODY_TYPE){
-                RichTextRun rt;
+                HSLFTextRun rt;
                 rt = trun[i].getRichTextRuns()[0];
                 assertEquals(0, rt.getIndentLevel());
                 assertEquals(32, rt.getFontSize());
@@ -182,9 +181,9 @@ public final class TestSlideMaster extends TestCase{
      * Check we can dynamically assign a slide master to a slide.
      */
     public void testChangeSlideMaster() throws Exception {
-        SlideShow ppt = new SlideShow(_slTests.openResourceAsStream("slide_master.ppt"));
+        HSLFSlideShow ppt = new HSLFSlideShow(_slTests.openResourceAsStream("slide_master.ppt"));
         SlideMaster[] master = ppt.getSlidesMasters();
-        Slide[] slide = ppt.getSlides();
+        HSLFSlide[] slide = ppt.getSlides();
         int sheetNo;
 
         //each slide uses its own master
@@ -203,7 +202,7 @@ public final class TestSlideMaster extends TestCase{
         ppt.write(out);
         out.close();
 
-        ppt = new SlideShow(new HSLFSlideShow(new ByteArrayInputStream(out.toByteArray())));
+        ppt = new HSLFSlideShow(new HSLFSlideShowImpl(new ByteArrayInputStream(out.toByteArray())));
         master = ppt.getSlidesMasters();
         slide = ppt.getSlides();
         for (int i = 0; i < slide.length; i++) {
@@ -216,19 +215,19 @@ public final class TestSlideMaster extends TestCase{
      * (typical for the "bullted body" placeholder)
      */
     public void testIndentation() throws Exception {
-        SlideShow ppt = new SlideShow(_slTests.openResourceAsStream("slide_master.ppt"));
-        Slide slide = ppt.getSlides()[0];
-        TextRun[] trun;
+        HSLFSlideShow ppt = new HSLFSlideShow(_slTests.openResourceAsStream("slide_master.ppt"));
+        HSLFSlide slide = ppt.getSlides()[0];
+        HSLFTextParagraph[] trun;
 
         trun = slide.getTextRuns();
         for (int i = 0; i < trun.length; i++) {
             if (trun[i].getRunType() == TextHeaderAtom.TITLE_TYPE){
-                RichTextRun rt = trun[i].getRichTextRuns()[0];
+                HSLFTextRun rt = trun[i].getRichTextRuns()[0];
                 assertEquals(40, rt.getFontSize());
                 assertEquals(true, rt.isUnderlined());
                 assertEquals("Arial", rt.getFontName());
             } else if (trun[i].getRunType() == TextHeaderAtom.BODY_TYPE){
-                RichTextRun[] rt = trun[i].getRichTextRuns();
+                HSLFTextRun[] rt = trun[i].getRichTextRuns();
                 for (int j = 0; j < rt.length; j++) {
                     int indent = rt[j].getIndentLevel();
                     switch (indent){
index 11889f440958633fc4bc6456fdeceb6e64f01695..f5e0abef594b63f6536df84fa5c649243ebe2a50 100644 (file)
@@ -18,8 +18,8 @@
 package org.apache.poi.hslf.model;
 
 import junit.framework.TestCase;
-import org.apache.poi.hslf.HSLFSlideShow;
-import org.apache.poi.hslf.usermodel.SlideShow;
+
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;
 import org.apache.poi.POIDataSamples;
 
 import java.io.ByteArrayOutputStream;
@@ -39,10 +39,10 @@ public final class TestSlides extends TestCase {
      * @throws Exception
      */
     public void testAddSlides1() throws Exception {
-        SlideShow ppt = new SlideShow(new HSLFSlideShow( TestSlides.class.getResourceAsStream("/org/apache/poi/hslf/data/empty.ppt") ));
+        HSLFSlideShow ppt = new HSLFSlideShow(new HSLFSlideShowImpl( TestSlides.class.getResourceAsStream("/org/apache/poi/hslf/data/empty.ppt") ));
         assertTrue(ppt.getSlides().length == 0);
 
-        Slide s1 = ppt.createSlide();
+        HSLFSlide s1 = ppt.createSlide();
         assertTrue(ppt.getSlides().length == 1);
         assertEquals(3, s1._getSheetRefId());
         assertEquals(256, s1._getSheetNumber());
@@ -53,7 +53,7 @@ public final class TestSlides extends TestCase {
         ppt.write(out);
         out.close();
 
-        ppt = new SlideShow(new HSLFSlideShow(new ByteArrayInputStream(out.toByteArray())));
+        ppt = new HSLFSlideShow(new HSLFSlideShowImpl(new ByteArrayInputStream(out.toByteArray())));
         assertTrue(ppt.getSlides().length == 1);
     }
 
@@ -62,16 +62,16 @@ public final class TestSlides extends TestCase {
      * @throws Exception
      */
     public void testAddSlides2() throws Exception {
-        SlideShow ppt = new SlideShow(new HSLFSlideShow( TestSlides.class.getResourceAsStream("/org/apache/poi/hslf/data/empty.ppt") ));
+        HSLFSlideShow ppt = new HSLFSlideShow(new HSLFSlideShowImpl( TestSlides.class.getResourceAsStream("/org/apache/poi/hslf/data/empty.ppt") ));
         assertTrue(ppt.getSlides().length == 0);
 
-        Slide s1 = ppt.createSlide();
+        HSLFSlide s1 = ppt.createSlide();
         assertTrue(ppt.getSlides().length == 1);
         assertEquals(3, s1._getSheetRefId());
         assertEquals(256, s1._getSheetNumber());
         assertEquals(1, s1.getSlideNumber());
 
-        Slide s2 = ppt.createSlide();
+        HSLFSlide s2 = ppt.createSlide();
         assertTrue(ppt.getSlides().length == 2);
         assertEquals(4, s2._getSheetRefId());
         assertEquals(257, s2._getSheetNumber());
@@ -82,7 +82,7 @@ public final class TestSlides extends TestCase {
         ppt.write(out);
         out.close();
 
-        ppt = new SlideShow(new HSLFSlideShow(new ByteArrayInputStream(out.toByteArray())));
+        ppt = new HSLFSlideShow(new HSLFSlideShowImpl(new ByteArrayInputStream(out.toByteArray())));
         assertTrue(ppt.getSlides().length == 2);
     }
 
@@ -91,22 +91,22 @@ public final class TestSlides extends TestCase {
      * @throws Exception
      */
     public void testAddSlides3() throws Exception {
-        SlideShow ppt = new SlideShow(new HSLFSlideShow( TestSlides.class.getResourceAsStream("/org/apache/poi/hslf/data/empty.ppt") ));
+        HSLFSlideShow ppt = new HSLFSlideShow(new HSLFSlideShowImpl( TestSlides.class.getResourceAsStream("/org/apache/poi/hslf/data/empty.ppt") ));
         assertTrue(ppt.getSlides().length == 0);
 
-        Slide s1 = ppt.createSlide();
+        HSLFSlide s1 = ppt.createSlide();
         assertTrue(ppt.getSlides().length == 1);
         assertEquals(3, s1._getSheetRefId());
         assertEquals(256, s1._getSheetNumber());
         assertEquals(1, s1.getSlideNumber());
 
-        Slide s2 = ppt.createSlide();
+        HSLFSlide s2 = ppt.createSlide();
         assertTrue(ppt.getSlides().length == 2);
         assertEquals(4, s2._getSheetRefId());
         assertEquals(257, s2._getSheetNumber());
         assertEquals(2, s2.getSlideNumber());
 
-        Slide s3 = ppt.createSlide();
+        HSLFSlide s3 = ppt.createSlide();
         assertTrue(ppt.getSlides().length == 3);
         assertEquals(5, s3._getSheetRefId());
         assertEquals(258, s3._getSheetNumber());
@@ -118,7 +118,7 @@ public final class TestSlides extends TestCase {
         ppt.write(out);
         out.close();
 
-        ppt = new SlideShow(new HSLFSlideShow(new ByteArrayInputStream(out.toByteArray())));
+        ppt = new HSLFSlideShow(new HSLFSlideShowImpl(new ByteArrayInputStream(out.toByteArray())));
         assertTrue(ppt.getSlides().length == 3);
 
         // Check IDs are still right
@@ -139,22 +139,22 @@ public final class TestSlides extends TestCase {
      */
     public void testAddSlides2to3() throws Exception {
         POIDataSamples slTests = POIDataSamples.getSlideShowInstance();
-        SlideShow ppt = new SlideShow(slTests.openResourceAsStream("basic_test_ppt_file.ppt"));
+        HSLFSlideShow ppt = new HSLFSlideShow(slTests.openResourceAsStream("basic_test_ppt_file.ppt"));
 
         assertTrue(ppt.getSlides().length == 2);
 
         // First slide is 256 / 4
-        Slide s1 = ppt.getSlides()[0];
+        HSLFSlide s1 = ppt.getSlides()[0];
         assertEquals(256, s1._getSheetNumber());
         assertEquals(4, s1._getSheetRefId());
 
         // Last slide is 257 / 6
-        Slide s2 = ppt.getSlides()[1];
+        HSLFSlide s2 = ppt.getSlides()[1];
         assertEquals(257, s2._getSheetNumber());
         assertEquals(6, s2._getSheetRefId());
 
         // Add another slide, goes in at the end
-        Slide s3 = ppt.createSlide();
+        HSLFSlide s3 = ppt.createSlide();
         assertTrue(ppt.getSlides().length == 3);
         assertEquals(258, s3._getSheetNumber());
         assertEquals(8, s3._getSheetRefId());
@@ -165,7 +165,7 @@ public final class TestSlides extends TestCase {
         ppt.write(out);
         out.close();
 
-        ppt = new SlideShow(new HSLFSlideShow(new ByteArrayInputStream(out.toByteArray())));
+        ppt = new HSLFSlideShow(new HSLFSlideShowImpl(new ByteArrayInputStream(out.toByteArray())));
         assertTrue(ppt.getSlides().length == 3);
 
 
index 480fd8ab65fe94dc296475a4f22c445c830427c8..d3fb354063b18688de3cf01066ebbad1eb10f0cc 100644 (file)
@@ -23,7 +23,7 @@ import java.io.ByteArrayOutputStream;
 import junit.framework.TestCase;
 
 import org.apache.poi.hslf.record.TextHeaderAtom;
-import org.apache.poi.hslf.usermodel.SlideShow;
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;
 
 /**
  * Test <code>Table</code> object.
@@ -36,16 +36,16 @@ public final class TestTable extends TestCase {
      * Test that ShapeFactory works properly and returns <code>Table</code>
      */
     public void testShapeFactory() throws Exception {
-        SlideShow ppt = new SlideShow();
+        HSLFSlideShow ppt = new HSLFSlideShow();
 
-        Slide slide = ppt.createSlide();
+        HSLFSlide slide = ppt.createSlide();
 
         Table tbl = new Table(2, 5);
         slide.addShape(tbl);
 
         TableCell cell = tbl.getCell(0, 0);
         //table cells have type=TextHeaderAtom.OTHER_TYPE, see bug #46033
-        assertEquals(TextHeaderAtom.OTHER_TYPE, cell.getTextRun().getRunType());
+        assertEquals(TextHeaderAtom.OTHER_TYPE, cell.getTextParagraph().getRunType());
 
         assertTrue(slide.getShapes()[0] instanceof Table);
         Table tbl2 = (Table)slide.getShapes()[0];
@@ -56,7 +56,7 @@ public final class TestTable extends TestCase {
         ppt.write(out);
         out.close();
 
-        ppt = new SlideShow(new ByteArrayInputStream(out.toByteArray()));
+        ppt = new HSLFSlideShow(new ByteArrayInputStream(out.toByteArray()));
         slide = ppt.getSlides()[0];
         assertTrue(slide.getShapes()[0] instanceof Table);
         Table tbl3 = (Table)slide.getShapes()[0];
@@ -68,8 +68,8 @@ public final class TestTable extends TestCase {
      * Error constructing Table when rownum=1
      */
     public void test45889(){
-        SlideShow ppt = new SlideShow();
-        Slide slide = ppt.createSlide();
+        HSLFSlideShow ppt = new HSLFSlideShow();
+        HSLFSlide slide = ppt.createSlide();
         HSLFShape[] shapes;
         Table tbl1 = new Table(1, 5);
         assertEquals(5, tbl1.getNumberOfColumns());
index 1b0119307a657a86031b2d1745714dcc8d126458..01ce6a05349eb45492ea6c73c9fe572ca9f34826 100644 (file)
@@ -30,8 +30,8 @@ import org.apache.poi.hslf.record.Record;
 import org.apache.poi.hslf.record.TextBytesAtom;
 import org.apache.poi.hslf.record.TextCharsAtom;
 import org.apache.poi.hslf.record.TextHeaderAtom;
-import org.apache.poi.hslf.usermodel.RichTextRun;
-import org.apache.poi.hslf.usermodel.SlideShow;
+import org.apache.poi.hslf.usermodel.HSLFTextRun;
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;
 import org.apache.poi.POIDataSamples;
 
 /**
@@ -43,24 +43,24 @@ public final class TestTextRun extends TestCase {
     private static POIDataSamples _slTests = POIDataSamples.getSlideShowInstance();
 
        // SlideShow primed on the test data
-       private SlideShow ss;
-       private SlideShow ssRich;
+       private HSLFSlideShow ss;
+       private HSLFSlideShow ssRich;
 
        protected void setUp() throws IOException {
 
                // Basic (non rich) test file
-               ss = new SlideShow(_slTests.openResourceAsStream("basic_test_ppt_file.ppt"));
+               ss = new HSLFSlideShow(_slTests.openResourceAsStream("basic_test_ppt_file.ppt"));
 
                // Rich test file
-               ssRich = new SlideShow(_slTests.openResourceAsStream("Single_Coloured_Page.ppt"));
+               ssRich = new HSLFSlideShow(_slTests.openResourceAsStream("Single_Coloured_Page.ppt"));
        }
 
        /**
         * Test to ensure that getting the text works correctly
         */
        public void testGetText() {
-               Slide slideOne = ss.getSlides()[0];
-               TextRun[] textRuns = slideOne.getTextRuns();
+               HSLFSlide slideOne = ss.getSlides()[0];
+               HSLFTextParagraph[] textRuns = slideOne.getTextRuns();
 
                assertEquals(2, textRuns.length);
 
@@ -74,8 +74,8 @@ public final class TestTextRun extends TestCase {
 
 
                // Now check on a rich text run
-               Slide slideOneR = ssRich.getSlides()[0];
-               TextRun[] textRunsR = slideOneR.getTextRuns();
+               HSLFSlide slideOneR = ssRich.getSlides()[0];
+               HSLFTextParagraph[] textRunsR = slideOneR.getTextRuns();
 
                assertEquals(2, textRunsR.length);
                assertEquals("This is a title, it\u2019s in black", textRunsR[0].getText());
@@ -88,9 +88,9 @@ public final class TestTextRun extends TestCase {
         * Test to ensure changing non rich text bytes->bytes works correctly
         */
        public void testSetText() {
-               Slide slideOne = ss.getSlides()[0];
-               TextRun[] textRuns = slideOne.getTextRuns();
-               TextRun run = textRuns[0];
+               HSLFSlide slideOne = ss.getSlides()[0];
+               HSLFTextParagraph[] textRuns = slideOne.getTextRuns();
+               HSLFTextParagraph run = textRuns[0];
 
                // Check current text
                assertEquals("This is a test title", run.getText());
@@ -110,8 +110,8 @@ public final class TestTextRun extends TestCase {
         *  chars works correctly
         */
        public void testAdvancedSetText() {
-               Slide slideOne = ss.getSlides()[0];
-               TextRun run = slideOne.getTextRuns()[0];
+               HSLFSlide slideOne = ss.getSlides()[0];
+               HSLFTextParagraph run = slideOne.getTextRuns()[0];
 
                TextHeaderAtom tha = run._headerAtom;
                TextBytesAtom tba = run._byteAtom;
@@ -171,19 +171,19 @@ public final class TestTextRun extends TestCase {
         *  set up for it
         */
        public void testGetRichTextNonRich() {
-               Slide slideOne = ss.getSlides()[0];
-               TextRun[] textRuns = slideOne.getTextRuns();
+               HSLFSlide slideOne = ss.getSlides()[0];
+               HSLFTextParagraph[] textRuns = slideOne.getTextRuns();
 
                assertEquals(2, textRuns.length);
 
-               TextRun trA = textRuns[0];
-               TextRun trB = textRuns[1];
+               HSLFTextParagraph trA = textRuns[0];
+               HSLFTextParagraph trB = textRuns[1];
 
                assertEquals(1, trA.getRichTextRuns().length);
                assertEquals(1, trB.getRichTextRuns().length);
 
-               RichTextRun rtrA = trA.getRichTextRuns()[0];
-               RichTextRun rtrB = trB.getRichTextRuns()[0];
+               HSLFTextRun rtrA = trA.getRichTextRuns()[0];
+               HSLFTextRun rtrB = trB.getRichTextRuns()[0];
 
                assertEquals(trA.getText(), rtrA.getText());
                assertEquals(trB.getText(), rtrB.getText());
@@ -198,21 +198,21 @@ public final class TestTextRun extends TestCase {
         * Tests to ensure that the rich text runs are built up correctly
         */
        public void testGetRichText() {
-               Slide slideOne = ssRich.getSlides()[0];
-               TextRun[] textRuns = slideOne.getTextRuns();
+               HSLFSlide slideOne = ssRich.getSlides()[0];
+               HSLFTextParagraph[] textRuns = slideOne.getTextRuns();
 
                assertEquals(2, textRuns.length);
 
-               TextRun trA = textRuns[0];
-               TextRun trB = textRuns[1];
+               HSLFTextParagraph trA = textRuns[0];
+               HSLFTextParagraph trB = textRuns[1];
 
                assertEquals(1, trA.getRichTextRuns().length);
                assertEquals(3, trB.getRichTextRuns().length);
 
-               RichTextRun rtrA = trA.getRichTextRuns()[0];
-               RichTextRun rtrB = trB.getRichTextRuns()[0];
-               RichTextRun rtrC = trB.getRichTextRuns()[1];
-               RichTextRun rtrD = trB.getRichTextRuns()[2];
+               HSLFTextRun rtrA = trA.getRichTextRuns()[0];
+               HSLFTextRun rtrB = trB.getRichTextRuns()[0];
+               HSLFTextRun rtrC = trB.getRichTextRuns()[1];
+               HSLFTextRun rtrD = trB.getRichTextRuns()[2];
 
                assertEquals(trA.getText(), rtrA.getText());
 
@@ -244,12 +244,12 @@ public final class TestTextRun extends TestCase {
         *  ensuring that everything stays with the same default styling
         */
        public void testSetTextWhereNotRich() {
-               Slide slideOne = ss.getSlides()[0];
-               TextRun[] textRuns = slideOne.getTextRuns();
-               TextRun trB = textRuns[1];
+               HSLFSlide slideOne = ss.getSlides()[0];
+               HSLFTextParagraph[] textRuns = slideOne.getTextRuns();
+               HSLFTextParagraph trB = textRuns[1];
                assertEquals(1, trB.getRichTextRuns().length);
 
-               RichTextRun rtrB = trB.getRichTextRuns()[0];
+               HSLFTextRun rtrB = trB.getRichTextRuns()[0];
                assertEquals(trB.getText(), rtrB.getText());
                assertNull(rtrB._getRawCharacterStyle());
                assertNull(rtrB._getRawParagraphStyle());
@@ -268,14 +268,14 @@ public final class TestTextRun extends TestCase {
         *  sets everything to the same styling
         */
        public void testSetTextWhereRich() {
-               Slide slideOne = ssRich.getSlides()[0];
-               TextRun[] textRuns = slideOne.getTextRuns();
-               TextRun trB = textRuns[1];
+               HSLFSlide slideOne = ssRich.getSlides()[0];
+               HSLFTextParagraph[] textRuns = slideOne.getTextRuns();
+               HSLFTextParagraph trB = textRuns[1];
                assertEquals(3, trB.getRichTextRuns().length);
 
-               RichTextRun rtrB = trB.getRichTextRuns()[0];
-               RichTextRun rtrC = trB.getRichTextRuns()[1];
-               RichTextRun rtrD = trB.getRichTextRuns()[2];
+               HSLFTextRun rtrB = trB.getRichTextRuns()[0];
+               HSLFTextRun rtrC = trB.getRichTextRuns()[1];
+               HSLFTextRun rtrD = trB.getRichTextRuns()[2];
                TextPropCollection tpBP = rtrB._getRawParagraphStyle();
                TextPropCollection tpBC = rtrB._getRawCharacterStyle();
                TextPropCollection tpCP = rtrC._getRawParagraphStyle();
@@ -316,12 +316,12 @@ public final class TestTextRun extends TestCase {
         *  in a rich text run, that doesn't happen to actually be rich
         */
        public void testChangeTextInRichTextRunNonRich() {
-               Slide slideOne = ss.getSlides()[0];
-               TextRun[] textRuns = slideOne.getTextRuns();
-               TextRun trB = textRuns[1];
+               HSLFSlide slideOne = ss.getSlides()[0];
+               HSLFTextParagraph[] textRuns = slideOne.getTextRuns();
+               HSLFTextParagraph trB = textRuns[1];
                assertEquals(1, trB.getRichTextRuns().length);
 
-               RichTextRun rtrB = trB.getRichTextRuns()[0];
+               HSLFTextRun rtrB = trB.getRichTextRuns()[0];
                assertEquals(trB.getText(), rtrB.getText());
                assertNull(rtrB._getRawCharacterStyle());
                assertNull(rtrB._getRawParagraphStyle());
@@ -341,16 +341,16 @@ public final class TestTextRun extends TestCase {
         *  correctly
         */
        public void testChangeTextInRichTextRun() {
-               Slide slideOne = ssRich.getSlides()[0];
-               TextRun[] textRuns = slideOne.getTextRuns();
-               TextRun trB = textRuns[1];
+               HSLFSlide slideOne = ssRich.getSlides()[0];
+               HSLFTextParagraph[] textRuns = slideOne.getTextRuns();
+               HSLFTextParagraph trB = textRuns[1];
                assertEquals(3, trB.getRichTextRuns().length);
 
                // We start with 3 text runs, each with their own set of styles,
                //  but all sharing the same paragraph styles
-               RichTextRun rtrB = trB.getRichTextRuns()[0];
-               RichTextRun rtrC = trB.getRichTextRuns()[1];
-               RichTextRun rtrD = trB.getRichTextRuns()[2];
+               HSLFTextRun rtrB = trB.getRichTextRuns()[0];
+               HSLFTextRun rtrC = trB.getRichTextRuns()[1];
+               HSLFTextRun rtrD = trB.getRichTextRuns()[2];
                TextPropCollection tpBP = rtrB._getRawParagraphStyle();
                TextPropCollection tpBC = rtrB._getRawCharacterStyle();
                TextPropCollection tpCP = rtrC._getRawParagraphStyle();
@@ -421,11 +421,11 @@ public final class TestTextRun extends TestCase {
         *
         */
        public void testBug41015() throws IOException {
-               RichTextRun[] rt;
+               HSLFTextRun[] rt;
 
-               SlideShow ppt = new SlideShow(_slTests.openResourceAsStream("bug-41015.ppt"));
-               Slide sl = ppt.getSlides()[0];
-               TextRun[] txt = sl.getTextRuns();
+               HSLFSlideShow ppt = new HSLFSlideShow(_slTests.openResourceAsStream("bug-41015.ppt"));
+               HSLFSlide sl = ppt.getSlides()[0];
+               HSLFTextParagraph[] txt = sl.getTextRuns();
                assertEquals(2, txt.length);
 
                rt = txt[0].getRichTextRuns();
@@ -448,24 +448,24 @@ public final class TestTextRun extends TestCase {
         * Test creation of TextRun objects.
         */
        public void testAddTextRun() {
-               SlideShow ppt = new SlideShow();
-               Slide slide = ppt.createSlide();
+               HSLFSlideShow ppt = new HSLFSlideShow();
+               HSLFSlide slide = ppt.createSlide();
 
                assertNull(slide.getTextRuns());
 
-               TextBox shape1 = new TextBox();
-               TextRun run1 = shape1.getTextRun();
+               HSLFTextBox shape1 = new HSLFTextBox();
+               HSLFTextParagraph run1 = shape1.getTextParagraph();
                assertSame(run1, shape1.createTextRun());
                run1.setText("Text 1");
                slide.addShape(shape1);
 
                //The array of Slide's text runs must be updated when new text shapes are added.
-               TextRun[] runs = slide.getTextRuns();
+               HSLFTextParagraph[] runs = slide.getTextRuns();
                assertNotNull(runs);
                assertSame(run1, runs[0]);
 
-               TextBox shape2 = new TextBox();
-               TextRun run2 = shape2.getTextRun();
+               HSLFTextBox shape2 = new HSLFTextBox();
+               HSLFTextParagraph run2 = shape2.getTextParagraph();
                assertSame(run2, shape2.createTextRun());
                run2.setText("Text 2");
                slide.addShape(shape2);
@@ -479,14 +479,14 @@ public final class TestTextRun extends TestCase {
                //as getShapes()
                HSLFShape[] sh = slide.getShapes();
                assertEquals(2, sh.length);
-               assertTrue(sh[0] instanceof TextBox);
-               TextBox box1 = (TextBox)sh[0];
-               assertSame(run1, box1.getTextRun());
-               TextBox box2 = (TextBox)sh[1];
-               assertSame(run2, box2.getTextRun());
+               assertTrue(sh[0] instanceof HSLFTextBox);
+               HSLFTextBox box1 = (HSLFTextBox)sh[0];
+               assertSame(run1, box1.getTextParagraph());
+               HSLFTextBox box2 = (HSLFTextBox)sh[1];
+               assertSame(run2, box2.getTextParagraph());
 
                //test Table - a complex group of shapes containing text objects
-               Slide slide2 = ppt.createSlide();
+               HSLFSlide slide2 = ppt.createSlide();
                assertNull(slide2.getTextRuns());
                Table table = new Table(2, 2);
                slide2.addShape(table);
@@ -496,12 +496,12 @@ public final class TestTextRun extends TestCase {
        }
 
     public void test48916() throws IOException {
-        SlideShow ppt = new SlideShow(_slTests.openResourceAsStream("SampleShow.ppt"));
-        for(Slide slide : ppt.getSlides()){
+        HSLFSlideShow ppt = new HSLFSlideShow(_slTests.openResourceAsStream("SampleShow.ppt"));
+        for(HSLFSlide slide : ppt.getSlides()){
             for(HSLFShape sh : slide.getShapes()){
-                if(sh instanceof TextShape){
-                    TextShape tx = (TextShape)sh;
-                    TextRun run = tx.getTextRun();
+                if(sh instanceof HSLFTextShape){
+                    HSLFTextShape tx = (HSLFTextShape)sh;
+                    HSLFTextParagraph run = tx.getTextParagraph();
                     //verify that records cached in  TextRun and EscherTextboxWrapper are the same
                     Record[] runChildren = run.getRecords();
                     Record[] txboxChildren = tx.getEscherTextboxWrapper().getChildRecords();
@@ -517,13 +517,13 @@ public final class TestTextRun extends TestCase {
         }
         ByteArrayOutputStream out = new ByteArrayOutputStream();
         ppt.write(out);
-        ppt = new SlideShow(new ByteArrayInputStream(out.toByteArray()));
-        for(Slide slide : ppt.getSlides()){
+        ppt = new HSLFSlideShow(new ByteArrayInputStream(out.toByteArray()));
+        for(HSLFSlide slide : ppt.getSlides()){
             for(HSLFShape sh : slide.getShapes()){
-                if(sh instanceof TextShape){
-                    TextShape tx = (TextShape)sh;
-                    TextRun run = tx.getTextRun();
-                    RichTextRun rt = run.getRichTextRuns()[0];
+                if(sh instanceof HSLFTextShape){
+                    HSLFTextShape tx = (HSLFTextShape)sh;
+                    HSLFTextParagraph run = tx.getTextParagraph();
+                    HSLFTextRun rt = run.getRichTextRuns()[0];
                     assertTrue(rt.isBold());
                     assertEquals(rt.getFontColor(), Color.RED);
                 }
@@ -533,9 +533,9 @@ public final class TestTextRun extends TestCase {
     }
 
     public void test52244() throws IOException {
-        SlideShow ppt = new SlideShow(_slTests.openResourceAsStream("52244.ppt"));
-        Slide slide = ppt.getSlides()[0];
-        TextRun[] runs = slide.getTextRuns();
+        HSLFSlideShow ppt = new HSLFSlideShow(_slTests.openResourceAsStream("52244.ppt"));
+        HSLFSlide slide = ppt.getSlides()[0];
+        HSLFTextParagraph[] runs = slide.getTextRuns();
 
         assertEquals("Arial", runs[0].getRichTextRuns()[0].getFontName());
         assertEquals(36, runs[0].getRichTextRuns()[0].getFontSize());
index db55a2c0522dc4b5f72077977d02c6556a03379c..c5a01341ae03a4cea8fd14d953e2bac2c9c309f3 100644 (file)
@@ -19,11 +19,11 @@ package org.apache.poi.hslf.model;
 
 
 import junit.framework.TestCase;
+
 import java.io.*;
 
-import org.apache.poi.hslf.HSLFSlideShow;
-import org.apache.poi.hslf.usermodel.RichTextRun;
-import org.apache.poi.hslf.usermodel.SlideShow;
+import org.apache.poi.hslf.usermodel.HSLFTextRun;
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;
 import org.apache.poi.poifs.filesystem.*;
 import org.apache.poi.POIDataSamples;
 
@@ -36,9 +36,9 @@ import org.apache.poi.POIDataSamples;
  */
 public final class TestTextRunReWrite extends TestCase {
        // HSLFSlideShow primed on the test data
-       private HSLFSlideShow hss;
+       private HSLFSlideShowImpl hss;
        // HSLFSlideShow primed on the test data
-       private SlideShow ss;
+       private HSLFSlideShow ss;
        // POIFS primed on the test data
        private POIFSFileSystem pfs;
 
@@ -49,14 +49,14 @@ public final class TestTextRunReWrite extends TestCase {
         POIDataSamples slTests = POIDataSamples.getSlideShowInstance();
                String filename = "Single_Coloured_Page_With_Fonts_and_Alignments.ppt";
                pfs = new POIFSFileSystem(slTests.openResourceAsStream(filename));
-               hss = new HSLFSlideShow(pfs);
-               ss = new SlideShow(hss);
+               hss = new HSLFSlideShowImpl(pfs);
+               ss = new HSLFSlideShow(hss);
     }
 
     public void testWritesOutTheSameNonRich() throws Exception {
        // Grab the first text run on the first sheet
-       TextRun tr1 = ss.getSlides()[0].getTextRuns()[0];
-       TextRun tr2 = ss.getSlides()[0].getTextRuns()[1];
+       HSLFTextParagraph tr1 = ss.getSlides()[0].getTextRuns()[0];
+       HSLFTextParagraph tr2 = ss.getSlides()[0].getTextRuns()[1];
 
        // Ensure the text lengths are as we'd expect to start with
        assertEquals(1, ss.getSlides().length);
@@ -112,10 +112,10 @@ public final class TestTextRunReWrite extends TestCase {
 
     public void testWritesOutTheSameRich() throws Exception {
        // Grab the first text run on the first sheet
-       TextRun tr1 = ss.getSlides()[0].getTextRuns()[0];
+       HSLFTextParagraph tr1 = ss.getSlides()[0].getTextRuns()[0];
 
        // Get the first rich text run
-       RichTextRun rtr1 = tr1.getRichTextRuns()[0];
+       HSLFTextRun rtr1 = tr1.getRichTextRuns()[0];
 
 
        // Check that the text sizes are as expected
index 542d608d8e63cec816ac6ffaa85c78b519ffff27..5666b8db0e133e7fa004f0c224bcdb111f5a4699 100644 (file)
@@ -34,7 +34,7 @@ import java.util.Map;
 
 import org.apache.poi.POIDataSamples;
 import org.apache.poi.hslf.record.TextHeaderAtom;
-import org.apache.poi.hslf.usermodel.SlideShow;
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;
 import org.apache.poi.sl.usermodel.ShapeType;
 import org.junit.Test;
 
@@ -48,14 +48,14 @@ public final class TestTextShape {
 
     @Test
     public void createAutoShape(){
-        TextShape shape = new AutoShape(ShapeType.TRAPEZOID);
-        assertNull(shape.getTextRun());
+        HSLFTextShape shape = new HSLFAutoShape(ShapeType.TRAPEZOID);
+        assertNull(shape.getTextParagraph());
         assertNull(shape.getText());
         assertNull(shape.getEscherTextboxWrapper());
 
-        TextRun run = shape.createTextRun();
+        HSLFTextParagraph run = shape.createTextRun();
         assertNotNull(run);
-        assertNotNull(shape.getTextRun());
+        assertNotNull(shape.getTextParagraph());
         assertNotNull(shape.getEscherTextboxWrapper());
         assertEquals("", shape.getText());
         assertSame(run, shape.createTextRun());
@@ -64,14 +64,14 @@ public final class TestTextShape {
 
     @Test
     public void createTextBox(){
-        TextShape shape = new TextBox();
-        TextRun run = shape.getTextRun();
+        HSLFTextShape shape = new HSLFTextBox();
+        HSLFTextParagraph run = shape.getTextParagraph();
         assertNotNull(run);
         assertNotNull(shape.getText());
         assertNotNull(shape.getEscherTextboxWrapper());
 
         assertSame(run, shape.createTextRun());
-        assertNotNull(shape.getTextRun());
+        assertNotNull(shape.getTextParagraph());
         assertNotNull(shape.getEscherTextboxWrapper());
         assertEquals("", shape.getText());
 
@@ -85,15 +85,15 @@ public final class TestTextShape {
      */
     @Test
     public void read() throws IOException {
-        SlideShow ppt = new SlideShow(_slTests.openResourceAsStream("text_shapes.ppt"));
+        HSLFSlideShow ppt = new HSLFSlideShow(_slTests.openResourceAsStream("text_shapes.ppt"));
 
         List<String> lst1 = new ArrayList<String>();
-        Slide slide = ppt.getSlides()[0];
+        HSLFSlide slide = ppt.getSlides()[0];
         HSLFShape[] shape = slide.getShapes();
         for (int i = 0; i < shape.length; i++) {
-            assertTrue("Expected TextShape but found " + shape[i].getClass().getName(), shape[i] instanceof TextShape);
-            TextShape tx = (TextShape)shape[i];
-            TextRun run = tx.getTextRun();
+            assertTrue("Expected TextShape but found " + shape[i].getClass().getName(), shape[i] instanceof HSLFTextShape);
+            HSLFTextShape tx = (HSLFTextShape)shape[i];
+            HSLFTextParagraph run = tx.getTextParagraph();
             assertNotNull(run);
             int runType = run.getRunType();
 
@@ -125,7 +125,7 @@ public final class TestTextShape {
         }
 
         List<String> lst2 = new ArrayList<String>();
-        TextRun[] run = slide.getTextRuns();
+        HSLFTextParagraph[] run = slide.getTextRuns();
         for (int i = 0; i < run.length; i++) {
             lst2.add(run[i].getText());
         }
@@ -135,18 +135,18 @@ public final class TestTextShape {
 
     @Test
     public void readWrite() throws IOException {
-        SlideShow ppt = new SlideShow();
-        Slide slide =  ppt.createSlide();
+        HSLFSlideShow ppt = new HSLFSlideShow();
+        HSLFSlide slide =  ppt.createSlide();
 
-        TextShape shape1 = new TextBox();
-        TextRun run1 = shape1.createTextRun();
+        HSLFTextShape shape1 = new HSLFTextBox();
+        HSLFTextParagraph run1 = shape1.createTextRun();
         run1.setText("Hello, World!");
         slide.addShape(shape1);
 
         shape1.moveTo(100, 100);
 
-        TextShape shape2 = new AutoShape(ShapeType.RIGHT_ARROW);
-        TextRun run2 = shape2.createTextRun();
+        HSLFTextShape shape2 = new HSLFAutoShape(ShapeType.RIGHT_ARROW);
+        HSLFTextParagraph run2 = shape2.createTextRun();
         run2.setText("Testing TextShape");
         slide.addShape(shape2);
         shape2.moveTo(300, 300);
@@ -155,37 +155,37 @@ public final class TestTextShape {
         ppt.write(out);
         out.close();
 
-        ppt = new SlideShow(new ByteArrayInputStream(out.toByteArray()));
+        ppt = new HSLFSlideShow(new ByteArrayInputStream(out.toByteArray()));
         slide = ppt.getSlides()[0];
         HSLFShape[] shape = slide.getShapes();
 
-        assertTrue(shape[0] instanceof TextShape);
-        shape1 = (TextShape)shape[0];
+        assertTrue(shape[0] instanceof HSLFTextShape);
+        shape1 = (HSLFTextShape)shape[0];
         assertEquals(ShapeType.TEXT_BOX, shape1.getShapeType());
-        assertEquals("Hello, World!", shape1.getTextRun().getText());
+        assertEquals("Hello, World!", shape1.getTextParagraph().getText());
 
-        assertTrue(shape[1] instanceof TextShape);
-        shape1 = (TextShape)shape[1];
+        assertTrue(shape[1] instanceof HSLFTextShape);
+        shape1 = (HSLFTextShape)shape[1];
         assertEquals(ShapeType.RIGHT_ARROW, shape1.getShapeType());
-        assertEquals("Testing TextShape", shape1.getTextRun().getText());
+        assertEquals("Testing TextShape", shape1.getTextParagraph().getText());
     }
 
     @Test
     public void margins() throws IOException {
-        SlideShow ppt = new SlideShow(_slTests.openResourceAsStream("text-margins.ppt"));
+        HSLFSlideShow ppt = new HSLFSlideShow(_slTests.openResourceAsStream("text-margins.ppt"));
 
-        Slide slide = ppt.getSlides()[0];
+        HSLFSlide slide = ppt.getSlides()[0];
 
-        Map<String,TextShape> map = new HashMap<String,TextShape>();
+        Map<String,HSLFTextShape> map = new HashMap<String,HSLFTextShape>();
         HSLFShape[] shape = slide.getShapes();
         for (int i = 0; i < shape.length; i++) {
-            if(shape[i] instanceof TextShape){
-                TextShape tx = (TextShape)shape[i];
+            if(shape[i] instanceof HSLFTextShape){
+                HSLFTextShape tx = (HSLFTextShape)shape[i];
                 map.put(tx.getText(), tx);
             }
         }
 
-        TextShape tx;
+        HSLFTextShape tx;
 
         tx = map.get("TEST1");
         assertEquals(0.1, tx.getMarginLeft()*HSLFShape.EMU_PER_POINT/HSLFShape.EMU_PER_INCH, 0.01);
@@ -214,22 +214,22 @@ public final class TestTextShape {
 
     @Test
     public void bug52599() throws IOException {
-        SlideShow ppt = new SlideShow(_slTests.openResourceAsStream("52599.ppt"));
+        HSLFSlideShow ppt = new HSLFSlideShow(_slTests.openResourceAsStream("52599.ppt"));
 
-        Slide slide = ppt.getSlides()[0];
+        HSLFSlide slide = ppt.getSlides()[0];
         HSLFShape[] sh = slide.getShapes();
         assertEquals(3, sh.length);
 
-        TextShape sh0 = (TextShape)sh[0];
+        HSLFTextShape sh0 = (HSLFTextShape)sh[0];
         assertEquals(null, sh0.getText());
-        assertEquals(null, sh0.getTextRun());
+        assertEquals(null, sh0.getTextParagraph());
 
-        TextShape sh1 = (TextShape)sh[1];
+        HSLFTextShape sh1 = (HSLFTextShape)sh[1];
         assertEquals(null, sh1.getText());
-        assertEquals(null, sh1.getTextRun());
+        assertEquals(null, sh1.getTextParagraph());
 
-        TextShape sh2 = (TextShape)sh[2];
+        HSLFTextShape sh2 = (HSLFTextShape)sh[2];
         assertEquals("this box should be shown just once", sh2.getText());
-        assertEquals(-1, sh2.getTextRun().getIndex());
+        assertEquals(-1, sh2.getTextParagraph().getIndex());
     }
 }
index 7db3ca6c8e30f68f52643804fee09df6d20fa760..7e37b47a439172b4e70b61693bcba49ad5fc7deb 100644 (file)
@@ -19,7 +19,7 @@ package org.apache.poi.hslf.model;
 import org.apache.poi.hslf.record.StyleTextPropAtom;
 import org.apache.poi.hslf.record.TextCharsAtom;
 import org.apache.poi.hslf.record.TextHeaderAtom;
-import org.apache.poi.hslf.usermodel.SlideShow;
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;
 import org.apache.poi.hssf.usermodel.DummyGraphics2d;
 import org.junit.Test;
 
@@ -27,22 +27,22 @@ import org.junit.Test;
 public class TextPainterTest {
     @Test
     public void testTextPainter() {
-        TextShape shape = new Polygon();
+        HSLFTextShape shape = new Polygon();
         TextPainter painter = new TextPainter(shape);
-        painter.getAttributedString(new TextRun(null, new TextCharsAtom(), null));
+        painter.getAttributedString(new HSLFTextParagraph(null, new TextCharsAtom(), null));
         painter.paint(new DummyGraphics2d());
         painter.getTextElements((float)1.0, null);
     }
 
     @Test
     public void testTextPainterWithText() {
-        TextShape shape = new Polygon();
+        HSLFTextShape shape = new Polygon();
         TextPainter painter = new TextPainter(shape);
         TextCharsAtom tca = new TextCharsAtom();
         tca.setText("some text to read");
-        TextRun txrun = new TextRun(new TextHeaderAtom(), tca, new StyleTextPropAtom(10));
-        Slide sheet = new Slide(1, 1, 1);
-        sheet.setSlideShow(new SlideShow());
+        HSLFTextParagraph txrun = new HSLFTextParagraph(new TextHeaderAtom(), tca, new StyleTextPropAtom(10));
+        HSLFSlide sheet = new HSLFSlide(1, 1, 1);
+        sheet.setSlideShow(new HSLFSlideShow());
         txrun.setSheet(sheet);
 
         painter.getAttributedString(txrun, new DummyGraphics2d());
index 05478e3374b14d00ec88864851cfdb0f9c491921..60aee0f49d951acdf6a926f05658655c083d2558 100644 (file)
@@ -24,8 +24,8 @@ import java.io.ByteArrayOutputStream;
 import java.io.InputStream;
 
 import org.apache.poi.POIDataSamples;
-import org.apache.poi.hslf.HSLFSlideShow;
 import org.apache.poi.hslf.exceptions.EncryptedPowerPointFileException;
+import org.apache.poi.hslf.model.HSLFSlideShowImpl;
 import org.apache.poi.poifs.filesystem.DocumentEntry;
 import org.apache.poi.poifs.filesystem.POIFSFileSystem;
 import org.junit.Test;
@@ -72,7 +72,7 @@ public final class TestCurrentUserAtom {
                new CurrentUserAtom(fs);
                assertTrue(true); // not yet failed
                
-               new HSLFSlideShow(fs);
+               new HSLFSlideShowImpl(fs);
        }
 
        @Test
index 114a41da8dfd8edff6b97ee08694bc9a603928a4..d7de61c8777c9017656223fb728d93ef30191fe6 100644 (file)
@@ -19,7 +19,7 @@ package org.apache.poi.hslf.record;
 
 import junit.framework.TestCase;
 
-import org.apache.poi.hslf.HSLFSlideShow;
+import org.apache.poi.hslf.model.HSLFSlideShowImpl;
 import org.apache.poi.poifs.filesystem.*;
 import org.apache.poi.POIDataSamples;
 
@@ -30,14 +30,14 @@ import org.apache.poi.POIDataSamples;
  */
 public final class TestDocument extends TestCase {
        // HSLFSlideShow primed on the test data
-       private HSLFSlideShow ss;
+       private HSLFSlideShowImpl ss;
        // POIFS primed on the test data
        private POIFSFileSystem pfs;
 
        public TestDocument() throws Exception {
         POIDataSamples slTests = POIDataSamples.getSlideShowInstance();
                pfs = new POIFSFileSystem(slTests.openResourceAsStream("basic_test_ppt_file.ppt"));
-               ss = new HSLFSlideShow(pfs);
+               ss = new HSLFSlideShowImpl(pfs);
        }
 
        private Document getDocRecord() {
index d9e3717842de17154804b8e0f69b348c1b9b6d75..12c114b3444b8caa3e0e480b674f318b3cacbacc 100644 (file)
@@ -33,11 +33,11 @@ import org.apache.poi.hpsf.DocumentSummaryInformation;
 import org.apache.poi.hpsf.PropertySet;\r
 import org.apache.poi.hpsf.PropertySetFactory;\r
 import org.apache.poi.hpsf.SummaryInformation;\r
-import org.apache.poi.hslf.HSLFSlideShow;\r
 import org.apache.poi.hslf.exceptions.EncryptedPowerPointFileException;\r
-import org.apache.poi.hslf.model.Slide;\r
-import org.apache.poi.hslf.usermodel.PictureData;\r
-import org.apache.poi.hslf.usermodel.SlideShow;\r
+import org.apache.poi.hslf.model.HSLFSlide;\r
+import org.apache.poi.hslf.model.HSLFSlideShowImpl;\r
+import org.apache.poi.hslf.usermodel.HSLFPictureData;\r
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;\r
 import org.apache.poi.hssf.record.crypto.Biff8EncryptionKey;\r
 import org.apache.poi.poifs.crypt.CryptoFunctions;\r
 import org.apache.poi.poifs.crypt.EncryptionInfo;\r
@@ -71,8 +71,8 @@ public class TestDocumentEncryption {
         for (String pptFile : encPpts) {\r
             try {\r
                 NPOIFSFileSystem fs = new NPOIFSFileSystem(slTests.getFile(pptFile), true);\r
-                HSLFSlideShow hss = new HSLFSlideShow(fs);\r
-                new SlideShow(hss);\r
+                HSLFSlideShowImpl hss = new HSLFSlideShowImpl(fs);\r
+                new HSLFSlideShow(hss);\r
                 fs.close();\r
             } catch (EncryptedPowerPointFileException e) {\r
                 fail(pptFile+" can't be decrypted");\r
@@ -85,9 +85,9 @@ public class TestDocumentEncryption {
         String pptFile = "cryptoapi-proc2356.ppt";\r
         Biff8EncryptionKey.setCurrentUserPassword("crypto");\r
         NPOIFSFileSystem fs = new NPOIFSFileSystem(slTests.getFile(pptFile), true);\r
-        HSLFSlideShow hss = new HSLFSlideShow(fs);\r
+        HSLFSlideShowImpl hss = new HSLFSlideShowImpl(fs);\r
         // need to cache data (i.e. read all data) before changing the key size\r
-        PictureData picsExpected[] = hss.getPictures();\r
+        HSLFPictureData picsExpected[] = hss.getPictures();\r
         hss.getDocumentSummaryInformation();\r
         EncryptionInfo ei = hss.getDocumentEncryptionAtom().getEncryptionInfo();\r
         ((CryptoAPIEncryptionHeader)ei.getHeader()).setKeySize(0x78);\r
@@ -97,8 +97,8 @@ public class TestDocumentEncryption {
         fs.close();\r
         \r
         fs = new NPOIFSFileSystem(new ByteArrayInputStream(bos.toByteArray()));\r
-        hss = new HSLFSlideShow(fs);\r
-        PictureData picsActual[] = hss.getPictures();\r
+        hss = new HSLFSlideShowImpl(fs);\r
+        HSLFPictureData picsActual[] = hss.getPictures();\r
         fs.close();\r
         \r
         assertEquals(picsExpected.length, picsActual.length);\r
@@ -112,7 +112,7 @@ public class TestDocumentEncryption {
         /* documents with multiple edits need to be normalized for encryption */\r
         String pptFile = "57272_corrupted_usereditatom.ppt";\r
         NPOIFSFileSystem fs = new NPOIFSFileSystem(slTests.getFile(pptFile), true);\r
-        HSLFSlideShow hss = new HSLFSlideShow(fs);\r
+        HSLFSlideShowImpl hss = new HSLFSlideShowImpl(fs);\r
         hss.normalizeRecords();\r
         \r
         // normalized ppt\r
@@ -128,7 +128,7 @@ public class TestDocumentEncryption {
         // decrypted\r
         ByteArrayInputStream bis = new ByteArrayInputStream(encrypted.toByteArray());\r
         fs = new NPOIFSFileSystem(bis);\r
-        hss = new HSLFSlideShow(fs);\r
+        hss = new HSLFSlideShowImpl(fs);\r
         Biff8EncryptionKey.setCurrentUserPassword(null);\r
         ByteArrayOutputStream actual = new ByteArrayOutputStream();\r
         hss.write(actual);\r
@@ -143,10 +143,10 @@ public class TestDocumentEncryption {
         // http://blogs.msdn.com/b/openspecification/archive/2009/05/08/dominic-salemno.aspx\r
         Biff8EncryptionKey.setCurrentUserPassword("crypto");\r
         NPOIFSFileSystem fs = new NPOIFSFileSystem(slTests.getFile("cryptoapi-proc2356.ppt"));\r
-        HSLFSlideShow hss = new HSLFSlideShow(fs);\r
-        SlideShow ss = new SlideShow(hss);\r
+        HSLFSlideShowImpl hss = new HSLFSlideShowImpl(fs);\r
+        HSLFSlideShow ss = new HSLFSlideShow(hss);\r
         \r
-        Slide slide = ss.getSlides()[0];\r
+        HSLFSlide slide = ss.getSlides()[0];\r
         assertEquals("Dominic Salemno", slide.getTextRuns()[0].getText());\r
 \r
         String picCmp[][] = {\r
@@ -160,9 +160,9 @@ public class TestDocumentEncryption {
         };\r
         \r
         MessageDigest md = CryptoFunctions.getMessageDigest(HashAlgorithm.sha1);\r
-        PictureData pd[] = hss.getPictures();\r
+        HSLFPictureData pd[] = hss.getPictures();\r
         int i = 0;\r
-        for (PictureData p : pd) {\r
+        for (HSLFPictureData p : pd) {\r
             byte hash[] = md.digest(p.getData());\r
             assertEquals(Integer.parseInt(picCmp[i][0]), p.getOffset());\r
             assertEquals(picCmp[i][1], Base64.encodeBase64String(hash));\r
index fff9d7286ee74ae814ceadeb1d5b6311f2b942e0..f712e20a6d49824510e9ab8582f602ac63f1bb90 100644 (file)
@@ -25,8 +25,8 @@ import java.util.List;
 import junit.framework.AssertionFailedError;
 import junit.framework.TestCase;
 
-import org.apache.poi.hslf.HSLFSlideShow;
-import org.apache.poi.hslf.usermodel.SlideShow;
+import org.apache.poi.hslf.model.HSLFSlideShowImpl;
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;
 import org.apache.poi.POIDataSamples;
 
 /**
@@ -99,8 +99,8 @@ public final class TestExHyperlink extends TestCase {
 
        public void testRealFile() throws Exception {
         POIDataSamples slTests = POIDataSamples.getSlideShowInstance();
-               HSLFSlideShow hss = new HSLFSlideShow(slTests.openResourceAsStream("WithLinks.ppt"));
-               SlideShow ss = new SlideShow(hss);
+               HSLFSlideShowImpl hss = new HSLFSlideShowImpl(slTests.openResourceAsStream("WithLinks.ppt"));
+               HSLFSlideShow ss = new HSLFSlideShow(hss);
 
                // Get the document
                Document doc = ss.getDocumentRecord();
index d3739ec3b8830aee440d2b0511a6d3d49496d8d9..836016666e620c98384918f8160f8772d4ba370a 100644 (file)
@@ -20,8 +20,8 @@ package org.apache.poi.hslf.record;
 
 import junit.framework.TestCase;
 
-import org.apache.poi.hslf.HSLFSlideShow;
-import org.apache.poi.hslf.usermodel.SlideShow;
+import org.apache.poi.hslf.model.HSLFSlideShowImpl;
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;
 import org.apache.poi.POIDataSamples;
 
 /**
@@ -32,8 +32,8 @@ import org.apache.poi.POIDataSamples;
 public class TestExObjList extends TestCase {
        public void testRealFile() throws Exception {
         POIDataSamples slTests = POIDataSamples.getSlideShowInstance();
-               HSLFSlideShow hss = new HSLFSlideShow(slTests.openResourceAsStream("WithLinks.ppt"));
-               SlideShow ss = new SlideShow(hss);
+               HSLFSlideShowImpl hss = new HSLFSlideShowImpl(slTests.openResourceAsStream("WithLinks.ppt"));
+               HSLFSlideShow ss = new HSLFSlideShow(hss);
 
                // Get the document
                Document doc = ss.getDocumentRecord();
index 8481cbc70f703301507cb90acb009241cdbe8ea9..cecf3ee31981d1b888b1510831968cf5511ee7e9 100644 (file)
@@ -20,7 +20,7 @@ package org.apache.poi.hslf.record;
 
 import junit.framework.TestCase;
 
-import org.apache.poi.hslf.HSLFSlideShow;
+import org.apache.poi.hslf.model.HSLFSlideShowImpl;
 import org.apache.poi.POIDataSamples;
 
 /**
@@ -149,7 +149,7 @@ public final class TestRecordContainer extends TestCase {
 
                // Find a real RecordContainer record
         POIDataSamples slTests = POIDataSamples.getSlideShowInstance();
-               HSLFSlideShow hss = new HSLFSlideShow(slTests.openResourceAsStream("basic_test_ppt_file.ppt"));
+               HSLFSlideShowImpl hss = new HSLFSlideShowImpl(slTests.openResourceAsStream("basic_test_ppt_file.ppt"));
 
                Record[] r = hss.getRecords();
                for(int i=0; i<r.length; i++) {
index 26e608bc37c82eec5ce6ac5c9bc1bc280d82d59d..4b1ef6c9885bee88a67d881470795e80704ea09e 100644 (file)
@@ -24,7 +24,7 @@ import java.io.FileOutputStream;
 import junit.framework.TestCase;
 
 import org.apache.poi.hslf.record.SlideAtom.SSlideLayoutAtom;
-import org.apache.poi.hslf.usermodel.SlideShow;
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;
 
 /**
  * Tests that SlideAtom works properly
@@ -77,14 +77,14 @@ public final class TestSlideAtom extends TestCase {
        }
        
        public void testSSSlideInfoAtom() throws Exception {
-               SlideShow ss = new SlideShow();
-               org.apache.poi.hslf.model.Slide slide1 = ss.createSlide(), slide2 = ss.createSlide();
+               HSLFSlideShow ss = new HSLFSlideShow();
+               org.apache.poi.hslf.model.HSLFSlide     slide1 = ss.createSlide(), slide2 = ss.createSlide();
                slide2.setHidden(true);
 
                ByteArrayOutputStream bos = new ByteArrayOutputStream(4096);
                ss.write(bos);
                ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
-               ss = new SlideShow(bis);
+               ss = new HSLFSlideShow(bis);
                slide1 = ss.getSlides()[0];
                slide2 = ss.getSlides()[1];
                assertFalse(slide1.getHidden());
index 630b355850b226b7b0e8b925b384b4c5f4c4265d..e31ae98177395a1c0a5596fb0359316472a51b37 100644 (file)
@@ -22,7 +22,7 @@ import junit.framework.AssertionFailedError;
 import junit.framework.TestCase;
 
 import org.apache.poi.POIDataSamples;
-import org.apache.poi.hslf.usermodel.SlideShow;
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;
 
 /**
  * Tests Sound-related records: SoundCollection(2020), Sound(2022) and
@@ -34,7 +34,7 @@ public final class TestSound extends TestCase {
        public void testRealFile() throws Exception {
         POIDataSamples slTests = POIDataSamples.getSlideShowInstance();
 
-               SlideShow ppt = new SlideShow(slTests.openResourceAsStream("sound.ppt"));
+               HSLFSlideShow ppt = new HSLFSlideShow(slTests.openResourceAsStream("sound.ppt"));
 
                // Get the document
                Document doc = ppt.getDocumentRecord();
index 52bf6b2dc7fe1f83231a7b3a181fdb03ed24cd09..6a66b234db040dbf2e3855f962b5ab859f470d18 100644 (file)
@@ -25,7 +25,7 @@ import junit.framework.TestCase;
 
 import org.apache.poi.hslf.model.textproperties.TextProp;
 import org.apache.poi.hslf.model.textproperties.TextPropCollection;
-import org.apache.poi.hslf.usermodel.SlideShow;
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;
 
 
 /**
@@ -36,10 +36,10 @@ import org.apache.poi.hslf.usermodel.SlideShow;
  * @author Yegor Kozlov
  */
 public final class TestTxMasterStyleAtom extends TestCase {
-    protected SlideShow _ppt;
+    protected HSLFSlideShow _ppt;
 
     public void setUp() {
-        _ppt = new SlideShow();
+        _ppt = new HSLFSlideShow();
     }
 
     public void testDefaultStyles()  {
index b78ecb2128e11063f1d443ce7b1d716faa98c7fd..5778beac2c3dca6d8035e42a519c6600f82d349a 100644 (file)
@@ -22,6 +22,7 @@ import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 
 import junit.framework.TestCase;
+
 import org.apache.poi.hslf.*;
 import org.apache.poi.hslf.record.Record;
 import org.apache.poi.hslf.record.RecordTypes;
@@ -37,31 +38,31 @@ import org.apache.poi.POIDataSamples;
  */
 public final class TestAddingSlides extends TestCase {
        // An empty SlideShow
-       private HSLFSlideShow hss_empty;
-       private SlideShow ss_empty;
+       private HSLFSlideShowImpl hss_empty;
+       private HSLFSlideShow ss_empty;
 
        // A SlideShow with one slide
-       private HSLFSlideShow hss_one;
-       private SlideShow ss_one;
+       private HSLFSlideShowImpl hss_one;
+       private HSLFSlideShow ss_one;
 
        // A SlideShow with two slides
-       private HSLFSlideShow hss_two;
-       private SlideShow ss_two;
+       private HSLFSlideShowImpl hss_two;
+       private HSLFSlideShow ss_two;
 
        /**
         * Create/open the slideshows
         */
        public void setUp() throws Exception {
-               hss_empty = HSLFSlideShow.create();
-               ss_empty = new SlideShow(hss_empty);
+               hss_empty = HSLFSlideShowImpl.create();
+               ss_empty = new HSLFSlideShow(hss_empty);
 
         POIDataSamples slTests = POIDataSamples.getSlideShowInstance();
 
-               hss_one = new HSLFSlideShow(slTests.openResourceAsStream("Single_Coloured_Page.ppt"));
-               ss_one = new SlideShow(hss_one);
+               hss_one = new HSLFSlideShowImpl(slTests.openResourceAsStream("Single_Coloured_Page.ppt"));
+               ss_one = new HSLFSlideShow(hss_one);
 
-               hss_two = new HSLFSlideShow(slTests.openResourceAsStream("basic_test_ppt_file.ppt"));
-               ss_two = new SlideShow(hss_two);
+               hss_two = new HSLFSlideShowImpl(slTests.openResourceAsStream("basic_test_ppt_file.ppt"));
+               ss_two = new HSLFSlideShow(hss_two);
        }
 
        /**
@@ -86,7 +87,7 @@ public final class TestAddingSlides extends TestCase {
        assertNotNull(usredit);
 
                // Add one
-               Slide slide = ss_empty.createSlide();
+               HSLFSlide slide = ss_empty.createSlide();
                assertEquals(1, ss_empty.getSlides().length);
                assertEquals(256, slide._getSheetNumber());
                assertEquals(3, slide._getSheetRefId());
@@ -98,8 +99,8 @@ public final class TestAddingSlides extends TestCase {
                hss_empty.write(baos);
                ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
 
-               HSLFSlideShow hss_read = new HSLFSlideShow(bais);
-               SlideShow ss_read = new SlideShow(hss_read);
+               HSLFSlideShowImpl hss_read = new HSLFSlideShowImpl(bais);
+               HSLFSlideShow ss_read = new HSLFSlideShow(hss_read);
 
                // Check it now has a slide
                assertEquals(1, ss_read.getSlides().length);
@@ -120,7 +121,7 @@ public final class TestAddingSlides extends TestCase {
        public void testAddSlideToExisting() throws Exception {
                // Has one slide
                assertEquals(1, ss_one.getSlides().length);
-               Slide s1 = ss_one.getSlides()[0];
+               HSLFSlide s1 = ss_one.getSlides()[0];
 
                // Should have two SLTWs
                assertEquals(2, ss_one.getDocumentRecord().getSlideListWithTexts().length);
@@ -131,7 +132,7 @@ public final class TestAddingSlides extends TestCase {
                assertEquals(1, s1.getSlideNumber());
 
                // Add a second one
-               Slide s2 = ss_one.createSlide();
+               HSLFSlide s2 = ss_one.createSlide();
                assertEquals(2, ss_one.getSlides().length);
                assertEquals(257, s2._getSheetNumber());
                assertEquals(4, s2._getSheetRefId());
@@ -142,8 +143,8 @@ public final class TestAddingSlides extends TestCase {
                hss_one.write(baos);
                ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
 
-               HSLFSlideShow hss_read = new HSLFSlideShow(bais);
-               SlideShow ss_read = new SlideShow(hss_read);
+               HSLFSlideShowImpl hss_read = new HSLFSlideShowImpl(bais);
+               HSLFSlideShow ss_read = new HSLFSlideShow(hss_read);
 
                // Check it now has two slides
                assertEquals(2, ss_read.getSlides().length);
@@ -180,8 +181,8 @@ public final class TestAddingSlides extends TestCase {
 
                // Has two slides
                assertEquals(2, ss_two.getSlides().length);
-               Slide s1 = ss_two.getSlides()[0];
-               Slide s2 = ss_two.getSlides()[1];
+               HSLFSlide s1 = ss_two.getSlides()[0];
+               HSLFSlide s2 = ss_two.getSlides()[1];
 
                // Check slide 1 is as expected
                assertEquals(256, s1._getSheetNumber());
@@ -193,7 +194,7 @@ public final class TestAddingSlides extends TestCase {
                assertEquals(2, s2.getSlideNumber());
 
                // Add a third one
-               Slide s3 = ss_two.createSlide();
+               HSLFSlide s3 = ss_two.createSlide();
                assertEquals(3, ss_two.getSlides().length);
                assertEquals(258, s3._getSheetNumber());
                assertEquals(8, s3._getSheetRefId()); // lots of notes before us
@@ -205,8 +206,8 @@ public final class TestAddingSlides extends TestCase {
                hss_two.write(baos);
                ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
 
-               HSLFSlideShow hss_read = new HSLFSlideShow(bais);
-               SlideShow ss_read = new SlideShow(hss_read);
+               HSLFSlideShowImpl hss_read = new HSLFSlideShowImpl(bais);
+               HSLFSlideShow ss_read = new HSLFSlideShow(hss_read);
 
                // Check it now has three slides
                assertEquals(3, ss_read.getSlides().length);
@@ -230,11 +231,11 @@ public final class TestAddingSlides extends TestCase {
      * Test SlideShow#removeSlide
      */
     public void testRemoving() throws Exception {
-        SlideShow ppt = new SlideShow();
-        Slide slide1 = ppt.createSlide();
-        Slide slide2 = ppt.createSlide();
+        HSLFSlideShow ppt = new HSLFSlideShow();
+        HSLFSlide slide1 = ppt.createSlide();
+        HSLFSlide slide2 = ppt.createSlide();
 
-        Slide[] s1 = ppt.getSlides();
+        HSLFSlide[] s1 = ppt.getSlides();
         assertEquals(2, s1.length);
         try {
             ppt.removeSlide(-1);
@@ -252,8 +253,8 @@ public final class TestAddingSlides extends TestCase {
 
         assertEquals(1, slide1.getSlideNumber());
 
-        Slide removedSlide = ppt.removeSlide(0);
-        Slide[] s2 = ppt.getSlides();
+        HSLFSlide removedSlide = ppt.removeSlide(0);
+        HSLFSlide[] s2 = ppt.getSlides();
         assertEquals(1, s2.length);
         assertSame(slide1, removedSlide);
         assertSame(slide2, s2[0]);
@@ -263,17 +264,17 @@ public final class TestAddingSlides extends TestCase {
         ByteArrayOutputStream out = new ByteArrayOutputStream();
         ppt.write(out);
 
-        ppt = new SlideShow(new ByteArrayInputStream(out.toByteArray()));
+        ppt = new HSLFSlideShow(new ByteArrayInputStream(out.toByteArray()));
 
-        Slide[] s3 = ppt.getSlides();
+        HSLFSlide[] s3 = ppt.getSlides();
         assertEquals(1, s3.length);
     }
 
 
     public void test47261() throws Exception {
         POIDataSamples slTests = POIDataSamples.getSlideShowInstance();
-        SlideShow ppt = new SlideShow(slTests.openResourceAsStream("47261.ppt"));
-        Slide[] slides = ppt.getSlides();
+        HSLFSlideShow ppt = new HSLFSlideShow(slTests.openResourceAsStream("47261.ppt"));
+        HSLFSlide[] slides = ppt.getSlides();
         Document doc = ppt.getDocumentRecord();
         assertNotNull(doc.getSlideSlideListWithText());
         assertEquals(14, ppt.getSlides().length);
index b834792d5f80d3fef1b51d6b707597ee0d631200..42fbf9113d672c18895653d490dd008c607e9bdc 100644 (file)
@@ -41,24 +41,9 @@ import org.apache.poi.ddf.EscherArrayProperty;
 import org.apache.poi.ddf.EscherColorRef;
 import org.apache.poi.ddf.EscherOptRecord;
 import org.apache.poi.ddf.EscherProperties;
-import org.apache.poi.hslf.HSLFSlideShow;
 import org.apache.poi.hslf.HSLFTestDataSamples;
 import org.apache.poi.hslf.exceptions.OldPowerPointFormatException;
-import org.apache.poi.hslf.model.AutoShape;
-import org.apache.poi.hslf.model.Background;
-import org.apache.poi.hslf.model.Fill;
-import org.apache.poi.hslf.model.HeadersFooters;
-import org.apache.poi.hslf.model.MasterSheet;
-import org.apache.poi.hslf.model.Notes;
-import org.apache.poi.hslf.model.Picture;
-import org.apache.poi.hslf.model.HSLFShape;
-import org.apache.poi.hslf.model.HSLFGroupShape;
-import org.apache.poi.hslf.model.Slide;
-import org.apache.poi.hslf.model.SlideMaster;
-import org.apache.poi.hslf.model.TextBox;
-import org.apache.poi.hslf.model.TextRun;
-import org.apache.poi.hslf.model.TextShape;
-import org.apache.poi.hslf.model.TitleMaster;
+import org.apache.poi.hslf.model.*;
 import org.apache.poi.hslf.record.Document;
 import org.apache.poi.hslf.record.Record;
 import org.apache.poi.hslf.record.SlideListWithText;
@@ -83,17 +68,17 @@ public final class TestBugs {
      */
     @Test
     public void bug41384() throws Exception {
-        HSLFSlideShow hslf = new HSLFSlideShow(_slTests.openResourceAsStream("41384.ppt"));
+        HSLFSlideShowImpl hslf = new HSLFSlideShowImpl(_slTests.openResourceAsStream("41384.ppt"));
 
-        SlideShow ppt = new SlideShow(hslf);
+        HSLFSlideShow ppt = new HSLFSlideShow(hslf);
         assertTrue("No Exceptions while reading file", true);
 
         assertEquals(1, ppt.getSlides().length);
 
-        PictureData[] pict = ppt.getPictureData();
+        HSLFPictureData[] pict = ppt.getPictureData();
         assertEquals(2, pict.length);
-        assertEquals(Picture.JPEG, pict[0].getType());
-        assertEquals(Picture.JPEG, pict[1].getType());
+        assertEquals(HSLFPictureShape.JPEG, pict[0].getType());
+        assertEquals(HSLFPictureShape.JPEG, pict[1].getType());
     }
 
     /**
@@ -102,14 +87,14 @@ public final class TestBugs {
      */
     @Test
     public void bug42474_1() throws Exception {
-        HSLFSlideShow hslf = new HSLFSlideShow(_slTests.openResourceAsStream("42474-1.ppt"));
+        HSLFSlideShowImpl hslf = new HSLFSlideShowImpl(_slTests.openResourceAsStream("42474-1.ppt"));
 
-        SlideShow ppt = new SlideShow(hslf);
+        HSLFSlideShow ppt = new HSLFSlideShow(hslf);
         assertTrue("No Exceptions while reading file", true);
         assertEquals(2, ppt.getSlides().length);
 
-        TextRun txrun;
-        Notes notes;
+        HSLFTextParagraph txrun;
+        HSLFNotes notes;
 
         notes = ppt.getSlides()[0].getNotesSheet();
         assertNotNull(notes);
@@ -131,9 +116,9 @@ public final class TestBugs {
      */
     @Test
     public void bug42474_2() throws Exception {
-        HSLFSlideShow hslf = new HSLFSlideShow(_slTests.openResourceAsStream("42474-2.ppt"));
+        HSLFSlideShowImpl hslf = new HSLFSlideShowImpl(_slTests.openResourceAsStream("42474-2.ppt"));
 
-        SlideShow ppt = new SlideShow(hslf);
+        HSLFSlideShow ppt = new HSLFSlideShow(hslf);
 
         //map slide number and starting phrase of its notes
         Map<Integer, String> notesMap = new HashMap<Integer, String>();
@@ -143,10 +128,10 @@ public final class TestBugs {
         notesMap.put(Integer.valueOf(7), "Although multiply and square root are easier");
         notesMap.put(Integer.valueOf(8), "The bus Z is split into Z_H and Z_L");
 
-        Slide[] slide = ppt.getSlides();
+        HSLFSlide[] slide = ppt.getSlides();
         for (int i = 0; i < slide.length; i++) {
             Integer slideNumber = Integer.valueOf(slide[i].getSlideNumber());
-            Notes notes = slide[i].getNotesSheet();
+            HSLFNotes notes = slide[i].getNotesSheet();
             if (notesMap.containsKey(slideNumber)){
                 assertNotNull(notes);
                 String text = notes.getTextRuns()[0].getRawText();
@@ -162,18 +147,18 @@ public final class TestBugs {
      */
     @Test
     public void bug42485 () throws Exception {
-        HSLFSlideShow hslf = new HSLFSlideShow(_slTests.openResourceAsStream("42485.ppt"));
+        HSLFSlideShowImpl hslf = new HSLFSlideShowImpl(_slTests.openResourceAsStream("42485.ppt"));
 
-        SlideShow ppt = new SlideShow(hslf);
+        HSLFSlideShow ppt = new HSLFSlideShow(hslf);
         HSLFShape[] shape = ppt.getSlides()[0].getShapes();
         for (int i = 0; i < shape.length; i++) {
             if(shape[i] instanceof HSLFGroupShape){
                 HSLFGroupShape  group = (HSLFGroupShape)shape[i];
                 HSLFShape[] sh = group.getShapes();
                 for (int j = 0; j < sh.length; j++) {
-                    if( sh[j] instanceof TextBox){
-                        TextBox txt = (TextBox)sh[j];
-                        assertNotNull(txt.getTextRun());
+                    if( sh[j] instanceof HSLFTextBox){
+                        HSLFTextBox txt = (HSLFTextBox)sh[j];
+                        assertNotNull(txt.getTextParagraph());
                     }
                 }
             }
@@ -185,9 +170,9 @@ public final class TestBugs {
      */
     @Test
     public void bug42484 () throws Exception {
-        HSLFSlideShow hslf = new HSLFSlideShow(_slTests.openResourceAsStream("42485.ppt"));
+        HSLFSlideShowImpl hslf = new HSLFSlideShowImpl(_slTests.openResourceAsStream("42485.ppt"));
 
-        SlideShow ppt = new SlideShow(hslf);
+        HSLFSlideShow ppt = new HSLFSlideShow(hslf);
         HSLFShape[] shape = ppt.getSlides()[0].getShapes();
         for (int i = 0; i < shape.length; i++) {
             if(shape[i] instanceof HSLFGroupShape){
@@ -207,16 +192,16 @@ public final class TestBugs {
      */
     @Test
     public void bug41381() throws Exception {
-        HSLFSlideShow hslf = new HSLFSlideShow(_slTests.openResourceAsStream("alterman_security.ppt"));
+        HSLFSlideShowImpl hslf = new HSLFSlideShowImpl(_slTests.openResourceAsStream("alterman_security.ppt"));
 
-        SlideShow ppt = new SlideShow(hslf);
+        HSLFSlideShow ppt = new HSLFSlideShow(hslf);
         assertTrue("No Exceptions while reading file", true);
 
         assertEquals(1, ppt.getSlidesMasters().length);
         assertEquals(1, ppt.getTitleMasters().length);
-        Slide[] slide = ppt.getSlides();
+        HSLFSlide[] slide = ppt.getSlides();
         for (int i = 0; i < slide.length; i++) {
-            MasterSheet master = slide[i].getMasterSheet();
+            HSLFMasterSheet master = slide[i].getMasterSheet();
             if (i == 0) assertTrue(master instanceof TitleMaster); //the first slide follows TitleMaster
             else assertTrue(master instanceof SlideMaster);
         }
@@ -227,10 +212,10 @@ public final class TestBugs {
      */
     @Test
     public void bug42486 () throws Exception {
-        HSLFSlideShow hslf = new HSLFSlideShow(_slTests.openResourceAsStream("42486.ppt"));
+        HSLFSlideShowImpl hslf = new HSLFSlideShowImpl(_slTests.openResourceAsStream("42486.ppt"));
 
-        SlideShow ppt = new SlideShow(hslf);
-        Slide[] slide = ppt.getSlides();
+        HSLFSlideShow ppt = new HSLFSlideShow(hslf);
+        HSLFSlide[] slide = ppt.getSlides();
         for (int i = 0; i < slide.length; i++) {
             @SuppressWarnings("unused")
             HSLFShape[] shape = slide[i].getShapes();
@@ -244,11 +229,11 @@ public final class TestBugs {
      */
     @Test
     public void bug42524 () throws Exception {
-        HSLFSlideShow hslf = new HSLFSlideShow(_slTests.openResourceAsStream("42486.ppt"));
+        HSLFSlideShowImpl hslf = new HSLFSlideShowImpl(_slTests.openResourceAsStream("42486.ppt"));
 
-        SlideShow ppt = new SlideShow(hslf);
+        HSLFSlideShow ppt = new HSLFSlideShow(hslf);
         //walk down the tree and see if there were no errors while reading
-        Slide[] slide = ppt.getSlides();
+        HSLFSlide[] slide = ppt.getSlides();
         for (int i = 0; i < slide.length; i++) {
             HSLFShape[] shape = slide[i].getShapes();
             for (int j = 0; j < shape.length; j++) {
@@ -272,17 +257,17 @@ public final class TestBugs {
      */
     @Test
     public void bug42520 () throws Exception {
-        HSLFSlideShow hslf = new HSLFSlideShow(_slTests.openResourceAsStream("42520.ppt"));
+        HSLFSlideShowImpl hslf = new HSLFSlideShowImpl(_slTests.openResourceAsStream("42520.ppt"));
 
-        SlideShow ppt = new SlideShow(hslf);
+        HSLFSlideShow ppt = new HSLFSlideShow(hslf);
 
         //test case from the bug report
         HSLFGroupShape shapeGroup = (HSLFGroupShape)ppt.getSlides()[11].getShapes()[10];
-        Picture picture = (Picture)shapeGroup.getShapes()[0];
+        HSLFPictureShape picture = (HSLFPictureShape)shapeGroup.getShapes()[0];
         picture.getPictureData();
 
         //walk down the tree and see if there were no errors while reading
-        Slide[] slide = ppt.getSlides();
+        HSLFSlide[] slide = ppt.getSlides();
         for (int i = 0; i < slide.length; i++) {
             HSLFShape[] shape = slide[i].getShapes();
             for (int j = 0; j < shape.length; j++) {
@@ -291,9 +276,9 @@ public final class TestBugs {
                     HSLFShape[] comps = group.getShapes();
                     for (int k = 0; k < comps.length; k++) {
                         HSLFShape comp = comps[k];
-                        if (comp instanceof Picture){
+                        if (comp instanceof HSLFPictureShape){
                             @SuppressWarnings("unused")
-                            PictureData pict = ((Picture)comp).getPictureData();
+                            HSLFPictureData pict = ((HSLFPictureShape)comp).getPictureData();
                         }
                     }
                 }
@@ -310,13 +295,13 @@ public final class TestBugs {
      */
     @Test
     public void bug38256 () throws Exception {
-        SlideShow ppt = new SlideShow(_slTests.openResourceAsStream("38256.ppt"));
+        HSLFSlideShow ppt = new HSLFSlideShow(_slTests.openResourceAsStream("38256.ppt"));
 
         assertTrue("No Exceptions while reading file", true);
 
-        Slide[] slide = ppt.getSlides();
+        HSLFSlide[] slide = ppt.getSlides();
         assertEquals(1, slide.length);
-        TextRun[] runs = slide[0].getTextRuns();
+        HSLFTextParagraph[] runs = slide[0].getTextRuns();
         assertEquals(4, runs.length);
 
         Set<String> txt = new HashSet<String>();
@@ -338,13 +323,13 @@ public final class TestBugs {
      */
     @Test
     public void bug43781 () throws Exception {
-        SlideShow ppt = new SlideShow(_slTests.openResourceAsStream("43781.ppt"));
+        HSLFSlideShow ppt = new HSLFSlideShow(_slTests.openResourceAsStream("43781.ppt"));
 
         assertTrue("No Exceptions while reading file", true);
 
         // Check the first slide
-        Slide slide = ppt.getSlides()[0];
-        TextRun[] slTr = slide.getTextRuns();
+        HSLFSlide slide = ppt.getSlides()[0];
+        HSLFTextParagraph[] slTr = slide.getTextRuns();
         
         // Has two text runs, one from slide text, one from drawing
         assertEquals(2, slTr.length);
@@ -354,11 +339,11 @@ public final class TestBugs {
         assertEquals("Second run", slTr[1].getText());
 
         // Check the shape based text runs
-        List<TextRun> lst = new ArrayList<TextRun>();
+        List<HSLFTextParagraph> lst = new ArrayList<HSLFTextParagraph>();
         HSLFShape[] shape = slide.getShapes();
         for (int i = 0; i < shape.length; i++) {
-            if( shape[i] instanceof TextShape){
-                TextRun textRun = ((TextShape)shape[i]).getTextRun();
+            if( shape[i] instanceof HSLFTextShape){
+                HSLFTextParagraph textRun = ((HSLFTextShape)shape[i]).getTextParagraph();
                 if(textRun != null) {
                     lst.add(textRun);
                 }
@@ -377,17 +362,17 @@ public final class TestBugs {
      */
     @Test
     public void bug44296  () throws Exception {
-        SlideShow ppt = new SlideShow(_slTests.openResourceAsStream("44296.ppt"));
+        HSLFSlideShow ppt = new HSLFSlideShow(_slTests.openResourceAsStream("44296.ppt"));
 
-        Slide slide = ppt.getSlides()[0];
+        HSLFSlide slide = ppt.getSlides()[0];
 
-        Background b = slide.getBackground();
-        Fill f = b.getFill();
-        assertEquals(Fill.FILL_PICTURE, f.getFillType());
+        HSLFBackground b = slide.getBackground();
+        HSLFFill f = b.getFill();
+        assertEquals(HSLFFill.FILL_PICTURE, f.getFillType());
 
-        PictureData pict = f.getPictureData();
+        HSLFPictureData pict = f.getPictureData();
         assertNotNull(pict);
-        assertEquals(Picture.JPEG, pict.getType());
+        assertEquals(HSLFPictureShape.JPEG, pict.getType());
     }
 
     /**
@@ -396,7 +381,7 @@ public final class TestBugs {
     @Test
     public void bug44770() throws Exception {
         try {
-             new SlideShow(_slTests.openResourceAsStream("44770.ppt"));
+             new HSLFSlideShow(_slTests.openResourceAsStream("44770.ppt"));
         } catch (RuntimeException e) {
             if (e.getMessage().equals("Couldn't instantiate the class for type with id 1036 on class class org.apache.poi.hslf.record.PPDrawing")) {
                 throw new AssertionFailedError("Identified bug 44770");
@@ -410,16 +395,16 @@ public final class TestBugs {
      */
     @Test
     public void bug41071() throws Exception {
-        SlideShow ppt = new SlideShow(_slTests.openResourceAsStream("41071.ppt"));
+        HSLFSlideShow ppt = new HSLFSlideShow(_slTests.openResourceAsStream("41071.ppt"));
 
-        Slide slide = ppt.getSlides()[0];
+        HSLFSlide slide = ppt.getSlides()[0];
         HSLFShape[] sh = slide.getShapes();
         assertEquals(1, sh.length);
-        assertTrue(sh[0] instanceof TextShape);
-        TextShape tx = (TextShape)sh[0];
-        assertEquals("Fundera, planera och involvera.", tx.getTextRun().getText());
+        assertTrue(sh[0] instanceof HSLFTextShape);
+        HSLFTextShape tx = (HSLFTextShape)sh[0];
+        assertEquals("Fundera, planera och involvera.", tx.getTextParagraph().getText());
 
-        TextRun[] run = slide.getTextRuns();
+        HSLFTextParagraph[] run = slide.getTextRuns();
         assertEquals(1, run.length);
         assertEquals("Fundera, planera och involvera.", run[0].getText());
     }
@@ -431,10 +416,10 @@ public final class TestBugs {
     @Test(expected=OldPowerPointFormatException.class)
     public void bug41711() throws Exception {
        // New file is fine
-        new SlideShow(_slTests.openResourceAsStream("SampleShow.ppt"));
+        new HSLFSlideShow(_slTests.openResourceAsStream("SampleShow.ppt"));
 
         // PowerPoint 95 gives an old format exception
-       new SlideShow(_slTests.openResourceAsStream("PPT95.ppt"));
+       new HSLFSlideShow(_slTests.openResourceAsStream("PPT95.ppt"));
     }
     
     /**
@@ -442,9 +427,9 @@ public final class TestBugs {
      */
     @Test
     public void bug49648() throws Exception {
-       SlideShow ppt = new SlideShow(_slTests.openResourceAsStream("49648.ppt"));
-       for(Slide slide : ppt.getSlides()) {
-          for(TextRun run : slide.getTextRuns()) {
+       HSLFSlideShow ppt = new HSLFSlideShow(_slTests.openResourceAsStream("49648.ppt"));
+       for(HSLFSlide slide : ppt.getSlides()) {
+          for(HSLFTextParagraph run : slide.getTextRuns()) {
              String text = run.getRawText();
              text.replace("{txtTot}", "With \u0123\u1234\u5678 unicode");
              run.setRawText(text);
@@ -458,10 +443,10 @@ public final class TestBugs {
     @Test
     public void bug41246a() throws Exception {
         InputStream fis = _slTests.openResourceAsStream("41246-1.ppt");
-        HSLFSlideShow hslf = new HSLFSlideShow(fis);
+        HSLFSlideShowImpl hslf = new HSLFSlideShowImpl(fis);
         fis.close();
 
-        SlideShow ppt = new SlideShow(hslf);
+        HSLFSlideShow ppt = new HSLFSlideShow(hslf);
         assertTrue("No Exceptions while reading file", true);
 
         ppt = HSLFTestDataSamples.writeOutAndReadBack(ppt);
@@ -471,10 +456,10 @@ public final class TestBugs {
     @Test
     public void bug41246b() throws Exception {
         InputStream fis = _slTests.openResourceAsStream("41246-2.ppt");
-        HSLFSlideShow hslf = new HSLFSlideShow(fis);
+        HSLFSlideShowImpl hslf = new HSLFSlideShowImpl(fis);
         fis.close();
 
-        SlideShow ppt = new SlideShow(hslf);
+        HSLFSlideShow ppt = new HSLFSlideShow(hslf);
         assertTrue("No Exceptions while reading file", true);
 
         ppt = HSLFTestDataSamples.writeOutAndReadBack(ppt);
@@ -487,14 +472,14 @@ public final class TestBugs {
     @Test
     public void bug45776() throws Exception {
         InputStream is = _slTests.openResourceAsStream("45776.ppt");
-        SlideShow ppt = new SlideShow(new HSLFSlideShow(is));
+        HSLFSlideShow ppt = new HSLFSlideShow(new HSLFSlideShowImpl(is));
         is.close();
 
         // get slides
-        for (Slide slide : ppt.getSlides()) {
+        for (HSLFSlide slide : ppt.getSlides()) {
             for (HSLFShape shape : slide.getShapes()) {
-                if (!(shape instanceof TextBox)) continue;
-                TextBox tb = (TextBox) shape;
+                if (!(shape instanceof HSLFTextBox)) continue;
+                HSLFTextBox tb = (HSLFTextBox) shape;
                 // work with TextBox
                 String str = tb.getText();
 
@@ -502,7 +487,7 @@ public final class TestBugs {
                 str = str.replace("$$DATE$$", new Date().toString());
                 tb.setText(str);
                 
-                TextRun tr = tb.getTextRun();
+                HSLFTextParagraph tr = tb.getTextParagraph();
                 assertEquals(str.length()+1,tr.getStyleTextPropAtom().getParagraphStyles().getFirst().getCharactersCovered());
                 assertEquals(str.length()+1,tr.getStyleTextPropAtom().getCharacterStyles().getFirst().getCharactersCovered());
             }
@@ -513,12 +498,12 @@ public final class TestBugs {
     public void bug55732() throws Exception {
         File file = _slTests.getFile("bug55732.ppt");
         
-        HSLFSlideShow ss = new HSLFSlideShow(file.getAbsolutePath());
-        SlideShow _show = new SlideShow(ss);
-        Slide[] _slides = _show.getSlides();
+        HSLFSlideShowImpl ss = new HSLFSlideShowImpl(file.getAbsolutePath());
+        HSLFSlideShow _show = new HSLFSlideShow(ss);
+        HSLFSlide[] _slides = _show.getSlides();
 
         /* Iterate over slides and extract text */
-        for( Slide slide : _slides ) {
+        for( HSLFSlide slide : _slides ) {
             HeadersFooters hf = slide.getHeadersFooters();
             /*boolean visible =*/ hf.isHeaderVisible(); // exception happens here
         }
@@ -529,9 +514,9 @@ public final class TestBugs {
     public void bug56260() throws Exception {
         File file = _slTests.getFile("56260.ppt");
         
-        HSLFSlideShow ss = new HSLFSlideShow(file.getAbsolutePath());
-        SlideShow _show = new SlideShow(ss);
-        Slide[] _slides = _show.getSlides();
+        HSLFSlideShowImpl ss = new HSLFSlideShowImpl(file.getAbsolutePath());
+        HSLFSlideShow _show = new HSLFSlideShow(ss);
+        HSLFSlide[] _slides = _show.getSlides();
         assertEquals(13, _slides.length);
         
         // Check the number of TextHeaderAtoms on Slide 1
@@ -553,7 +538,7 @@ public final class TestBugs {
         // Check the number of text runs based on the slide (not textbox)
         // Will have skipped the empty one
         int str = 0;
-        for (TextRun tr : _slides[0].getTextRuns()) {
+        for (HSLFTextParagraph tr : _slides[0].getTextRuns()) {
             if (! tr.isDrawingBased()) str++;
         }
         assertEquals(1, str);
@@ -563,10 +548,10 @@ public final class TestBugs {
     public void bug37625() throws IOException {
         InputStream inputStream = new FileInputStream(_slTests.getFile("37625.ppt"));
         try {
-            SlideShow slideShow = new SlideShow(inputStream);
+            HSLFSlideShow slideShow = new HSLFSlideShow(inputStream);
             assertEquals(29, slideShow.getSlides().length);
             
-            SlideShow slideBack = HSLFTestDataSamples.writeOutAndReadBack(slideShow);
+            HSLFSlideShow slideBack = HSLFTestDataSamples.writeOutAndReadBack(slideShow);
             assertNotNull(slideBack);
             assertEquals(29, slideBack.getSlides().length);
         } finally {
@@ -578,10 +563,10 @@ public final class TestBugs {
     public void bug57272() throws Exception {
         InputStream inputStream = new FileInputStream(_slTests.getFile("57272_corrupted_usereditatom.ppt"));
         try {
-            SlideShow slideShow = new SlideShow(inputStream);
+            HSLFSlideShow slideShow = new HSLFSlideShow(inputStream);
             assertEquals(6, slideShow.getSlides().length);
 
-            SlideShow slideBack = HSLFTestDataSamples.writeOutAndReadBack(slideShow);
+            HSLFSlideShow slideBack = HSLFTestDataSamples.writeOutAndReadBack(slideShow);
             assertNotNull(slideBack);
             assertEquals(6, slideBack.getSlides().length);
         } finally {
@@ -593,10 +578,10 @@ public final class TestBugs {
     public void bug49541() throws Exception {
         InputStream inputStream = new FileInputStream(_slTests.getFile("49541_symbol_map.ppt"));
         try {
-            SlideShow slideShow = new SlideShow(inputStream);
-            Slide slide = slideShow.getSlides()[0];
+            HSLFSlideShow slideShow = new HSLFSlideShow(inputStream);
+            HSLFSlide slide = slideShow.getSlides()[0];
             HSLFGroupShape sg = (HSLFGroupShape)slide.getShapes()[0];
-            TextBox tb = (TextBox)sg.getShapes()[0];
+            HSLFTextBox tb = (HSLFTextBox)sg.getShapes()[0];
             String text = StringUtil.mapMsCodepointString(tb.getText());
             assertEquals("\u226575 years", text);
         } finally {
@@ -608,7 +593,7 @@ public final class TestBugs {
     public void bug47261() throws Exception {
         InputStream inputStream = new FileInputStream(_slTests.getFile("bug47261.ppt"));
         try {
-            SlideShow slideShow = new SlideShow(inputStream);
+            HSLFSlideShow slideShow = new HSLFSlideShow(inputStream);
             slideShow.removeSlide(0);
             slideShow.createSlide();
             ByteArrayOutputStream bos = new ByteArrayOutputStream();
@@ -622,7 +607,7 @@ public final class TestBugs {
     public void bug56240() throws Exception {
         InputStream inputStream = new FileInputStream(_slTests.getFile("bug56240.ppt"));
         try {
-            SlideShow slideShow = new SlideShow(inputStream);
+            HSLFSlideShow slideShow = new HSLFSlideShow(inputStream);
             int slideCnt = slideShow.getSlides().length;
             assertEquals(105, slideCnt);
             ByteArrayOutputStream bos = new ByteArrayOutputStream();
@@ -637,8 +622,8 @@ public final class TestBugs {
     public void bug46441() throws Exception {
         InputStream inputStream = new FileInputStream(_slTests.getFile("bug46441.ppt"));
         try {
-            SlideShow slideShow = new SlideShow(inputStream);
-            AutoShape as = (AutoShape)slideShow.getSlides()[0].getShapes()[0];
+            HSLFSlideShow slideShow = new HSLFSlideShow(inputStream);
+            HSLFAutoShape as = (HSLFAutoShape)slideShow.getSlides()[0].getShapes()[0];
             EscherOptRecord opt = as.getEscherOptRecord();
             EscherArrayProperty ep = HSLFShape.getEscherProperty(opt, EscherProperties.FILL__SHADECOLORS);
             double exp[][] = {
index eb84e7711a975f519424e1075354987e0b942cc7..dbee82742fa0d0fb4b8a779b8aea1c2657de1aab 100644 (file)
@@ -19,6 +19,7 @@ package org.apache.poi.hslf.usermodel;
 
 
 import junit.framework.TestCase;
+
 import org.apache.poi.hslf.*;
 import org.apache.poi.hslf.model.*;
 import org.apache.poi.POIDataSamples;
@@ -30,16 +31,16 @@ import org.apache.poi.POIDataSamples;
  */
 public final class TestCounts extends TestCase {
        // SlideShow primed on the test data
-       private SlideShow ss;
+       private HSLFSlideShow ss;
 
        public TestCounts() throws Exception {
         POIDataSamples slTests = POIDataSamples.getSlideShowInstance();
-               HSLFSlideShow hss = new HSLFSlideShow(slTests.openResourceAsStream("basic_test_ppt_file.ppt"));
-               ss = new SlideShow(hss);
+               HSLFSlideShowImpl hss = new HSLFSlideShowImpl(slTests.openResourceAsStream("basic_test_ppt_file.ppt"));
+               ss = new HSLFSlideShow(hss);
        }
 
        public void testSheetsCount() {
-               Slide[] slides = ss.getSlides();
+               HSLFSlide[] slides = ss.getSlides();
                // Two sheets - master sheet is separate
                assertEquals(2, slides.length);
 
@@ -57,7 +58,7 @@ public final class TestCounts extends TestCase {
        }
 
        public void testNotesCount() {
-               Notes[] notes = ss.getNotes();
+               HSLFNotes[] notes = ss.getNotes();
                // Two sheets -> two notes
                // Note: there are also notes on the slide master
                //assertEquals(3, notes.length); // When we do slide masters
index a6fa77005985ada85d20d10a9cc6f6c8dec250c8..37b7bb696539e46500255c2c51535a5f658e07a7 100644 (file)
@@ -39,7 +39,7 @@ import java.util.Map;
 import javax.imageio.ImageIO;\r
 \r
 import org.apache.poi.POIDataSamples;\r
-import org.apache.poi.hslf.model.Slide;\r
+import org.apache.poi.hslf.model.HSLFSlide;\r
 import org.apache.poi.hslf.model.TextPainter;\r
 import org.apache.poi.util.TempFile;\r
 import org.junit.Ignore;\r
@@ -82,12 +82,12 @@ public class TestFontRendering {
         }\r
         \r
         InputStream is = slTests.openResourceAsStream("bug55902-mixedFontChineseCharacters.ppt");\r
-        SlideShow ss = new SlideShow(is);\r
+        HSLFSlideShow ss = new HSLFSlideShow(is);\r
         is.close();\r
         \r
         Dimension pgsize = ss.getPageSize();\r
         \r
-        Slide slide = ss.getSlides()[0];\r
+        HSLFSlide slide = ss.getSlides()[0];\r
         \r
         // render it\r
         double zoom = 1;\r
index ce68b7a2d800c13aa9f5e4ce39adac806362d0b6..088dbb0cee547e7f1e3b0a6842c01ad8cc853fbd 100644 (file)
@@ -19,7 +19,9 @@ package org.apache.poi.hslf.usermodel;
 
 
 import junit.framework.TestCase;
+
 import org.apache.poi.hslf.*;
+import org.apache.poi.hslf.model.HSLFSlideShowImpl;
 import org.apache.poi.hslf.record.*;
 import org.apache.poi.POIDataSamples;
 
@@ -30,14 +32,14 @@ import org.apache.poi.POIDataSamples;
  */
 public final class TestMostRecentRecords extends TestCase {
        // HSLFSlideShow primed on the test data
-       private HSLFSlideShow hss;
+       private HSLFSlideShowImpl hss;
        // SlideShow primed on the test data
-       private SlideShow ss;
+       private HSLFSlideShow ss;
 
        public TestMostRecentRecords() throws Exception {
         POIDataSamples slTests = POIDataSamples.getSlideShowInstance();
-               hss = new HSLFSlideShow(slTests.openResourceAsStream("basic_test_ppt_file.ppt"));
-               ss = new SlideShow(hss);
+               hss = new HSLFSlideShowImpl(slTests.openResourceAsStream("basic_test_ppt_file.ppt"));
+               ss = new HSLFSlideShow(hss);
        }
 
        public void testCount() {
index 3def468f9eaad53d314a335de6fc00fa7af5d18c..22b40a22e2c3853d08676156454d908a6b7bfb53 100644 (file)
@@ -19,6 +19,7 @@ package org.apache.poi.hslf.usermodel;
 
 
 import junit.framework.TestCase;
+
 import org.apache.poi.hslf.*;
 import org.apache.poi.hslf.model.*;
 import org.apache.poi.POIDataSamples;
@@ -30,16 +31,16 @@ import org.apache.poi.POIDataSamples;
  */
 public final class TestNotesText extends TestCase {
        // SlideShow primed on the test data
-       private SlideShow ss;
+       private HSLFSlideShow ss;
 
        public TestNotesText() throws Exception {
         POIDataSamples slTests = POIDataSamples.getSlideShowInstance();
-               HSLFSlideShow hss = new HSLFSlideShow(slTests.openResourceAsStream("basic_test_ppt_file.ppt"));
-               ss = new SlideShow(hss);
+               HSLFSlideShowImpl hss = new HSLFSlideShowImpl(slTests.openResourceAsStream("basic_test_ppt_file.ppt"));
+               ss = new HSLFSlideShow(hss);
        }
 
        public void testNotesOne() {
-               Notes notes = ss.getNotes()[0];
+               HSLFNotes notes = ss.getNotes()[0];
 
                String[] expectText = new String[] {"These are the notes for page 1"};
                assertEquals(expectText.length, notes.getTextRuns().length);
@@ -49,7 +50,7 @@ public final class TestNotesText extends TestCase {
        }
 
        public void testNotesTwo() {
-               Notes notes = ss.getNotes()[1];
+               HSLFNotes notes = ss.getNotes()[1];
                String[] expectText = new String[] {"These are the notes on page two, again lacking formatting"};
                assertEquals(expectText.length, notes.getTextRuns().length);
                for(int i=0; i<expectText.length; i++) {
index e7fec8a6b0bd3a3a9d46d64656db9de993ffab07..9f8d5f3ff281410d040649730f0b50c7f291184c 100644 (file)
@@ -23,8 +23,8 @@ import java.util.List;
 
 import junit.framework.TestCase;
 
-import org.apache.poi.hslf.model.Slide;
-import org.apache.poi.hslf.model.TextRun;
+import org.apache.poi.hslf.model.HSLFSlide;
+import org.apache.poi.hslf.model.HSLFTextParagraph;
 import org.apache.poi.hslf.model.textproperties.TextPFException9;
 import org.apache.poi.hslf.model.textproperties.TextPropCollection;
 import org.apache.poi.hslf.record.EscherTextboxWrapper;
@@ -46,15 +46,15 @@ public final class TestNumberedList extends TestCase {
        }
 
        public void testNumberedList() throws Exception {
-               SlideShow ppt = new SlideShow(_slTests.openResourceAsStream("numbers.ppt"));
+               HSLFSlideShow ppt = new HSLFSlideShow(_slTests.openResourceAsStream("numbers.ppt"));
                assertTrue("No Exceptions while reading file", true);
 
-               final Slide[] slides = ppt.getSlides();
+               final HSLFSlide[] slides = ppt.getSlides();
                assertEquals(2, slides.length);
                checkSlide0(slides[0]);
                checkSlide1(slides[1]);
        }
-       private void checkSlide0(final Slide s) {
+       private void checkSlide0(final HSLFSlide s) {
                final StyleTextProp9Atom[] numberedListArray = s.getNumberedListInfo();
                assertNotNull(numberedListArray);
                assertEquals(1, numberedListArray.length);//Just one text box here
@@ -70,10 +70,10 @@ public final class TestNumberedList extends TestCase {
                assertNull(autoNumbers[1].getAutoNumberScheme());
                assertTrue(TextAutoNumberSchemeEnum.ANM_AlphaLcParenRight == autoNumbers[2].getAutoNumberScheme());
                        
-               TextRun[] textRuns = s.getTextRuns();
+               HSLFTextParagraph[] textRuns = s.getTextRuns();
                assertEquals(2, textRuns.length);
 
-               RichTextRun textRun = textRuns[0].getRichTextRuns()[0];
+               HSLFTextRun textRun = textRuns[0].getRichTextRuns()[0];
                assertEquals("titTe", textRun.getRawText());
                assertEquals(1, textRuns[0].getRichTextRuns().length);
                assertFalse(textRun.isBullet());
@@ -90,7 +90,7 @@ public final class TestNumberedList extends TestCase {
                assertEquals(34, props[1].getCharactersCovered());
                assertEquals(68, props[2].getCharactersCovered());
        }
-       private void checkSlide1(final Slide s) {
+       private void checkSlide1(final HSLFSlide s) {
                final StyleTextProp9Atom[] numberedListArray = s.getNumberedListInfo();
                assertNotNull(numberedListArray);
                assertEquals(1, numberedListArray.length);//Just one text box here
@@ -106,10 +106,10 @@ public final class TestNumberedList extends TestCase {
                assertNull(autoNumbers[1].getAutoNumberScheme());
                assertTrue(TextAutoNumberSchemeEnum.ANM_AlphaUcPeriod == autoNumbers[2].getAutoNumberScheme());
 
-               final TextRun[] textRuns = s.getTextRuns();
+               final HSLFTextParagraph[] textRuns = s.getTextRuns();
                assertEquals(2, textRuns.length);
 
-               RichTextRun textRun = textRuns[0].getRichTextRuns()[0];
+               HSLFTextRun textRun = textRuns[0].getRichTextRuns()[0];
                assertEquals("Second Slide Title", textRun.getRawText());
                assertEquals(1, textRuns[0].getRichTextRuns().length);
                assertFalse(textRun.isBullet());
index 264a90bb8c1d74de00239a41a908cc2162908d93..60c0e908014ab0931be02bc0d54675715a7a300e 100644 (file)
@@ -23,8 +23,8 @@ import java.util.List;
 
 import junit.framework.TestCase;
 
-import org.apache.poi.hslf.model.Slide;
-import org.apache.poi.hslf.model.TextRun;
+import org.apache.poi.hslf.model.HSLFSlide;
+import org.apache.poi.hslf.model.HSLFTextParagraph;
 import org.apache.poi.hslf.model.textproperties.TextPFException9;
 import org.apache.poi.hslf.model.textproperties.TextPropCollection;
 import org.apache.poi.hslf.record.EscherTextboxWrapper;
@@ -49,15 +49,15 @@ public final class TestNumberedList2 extends TestCase {
        }
 
        public void testNumberedList() throws Exception {
-               SlideShow ppt = new SlideShow(_slTests.openResourceAsStream("numbers2.ppt"));
+               HSLFSlideShow ppt = new HSLFSlideShow(_slTests.openResourceAsStream("numbers2.ppt"));
                assertTrue("No Exceptions while reading file", true);
 
-               final Slide[] slides = ppt.getSlides();
+               final HSLFSlide[] slides = ppt.getSlides();
                assertEquals(2, slides.length);
                checkSlide0(slides[0]);
                checkSlide1(slides[1]);
        }
-       private void checkSlide0(final Slide s) {
+       private void checkSlide0(final HSLFSlide s) {
                final StyleTextProp9Atom[] numberedListArray = s.getNumberedListInfo();
                assertNotNull(numberedListArray);
                assertEquals(2, numberedListArray.length);
@@ -75,10 +75,10 @@ public final class TestNumberedList2 extends TestCase {
                assertTrue(TextAutoNumberSchemeEnum.ANM_ArabicPeriod == autoNumbersOfTextBox1[0].getAutoNumberScheme());
 
                
-               TextRun[] textRuns = s.getTextRuns();
+               HSLFTextParagraph[] textRuns = s.getTextRuns();
                assertEquals(2, textRuns.length);
 
-               RichTextRun textRun = textRuns[0].getRichTextRuns()[0];
+               HSLFTextRun textRun = textRuns[0].getRichTextRuns()[0];
                assertEquals("List Item One\rList Item Two\rList Item Three", textRun.getRawText());
                assertEquals(1, textRuns[0].getRichTextRuns().length);
                assertTrue(textRun.isBullet());
@@ -90,7 +90,7 @@ public final class TestNumberedList2 extends TestCase {
                checkSingleRunWrapper(44, styleAtoms[0]);
                checkSingleRunWrapper(130, styleAtoms[1]);
        }
-       private void checkSlide1(final Slide s) {
+       private void checkSlide1(final HSLFSlide s) {
                final StyleTextProp9Atom[] numberedListArray = s.getNumberedListInfo();
                assertNotNull(numberedListArray);
                assertEquals(1, numberedListArray.length);
@@ -101,10 +101,10 @@ public final class TestNumberedList2 extends TestCase {
                assertEquals(Short.valueOf((short)1), autoNumbersOfTextBox[0].getAutoNumberStartNumber());//Default value = 1 will be used 
                assertTrue(TextAutoNumberSchemeEnum.ANM_ArabicPeriod == autoNumbersOfTextBox[0].getAutoNumberScheme());
                        
-               TextRun[] textRuns = s.getTextRuns();
+               HSLFTextParagraph[] textRuns = s.getTextRuns();
                assertEquals(3, textRuns.length);
 
-               RichTextRun textRun = textRuns[0].getRichTextRuns()[0];
+               HSLFTextRun textRun = textRuns[0].getRichTextRuns()[0];
                assertEquals("Bulleted list\rMore bullets", textRun.getRawText());
                assertEquals(1, textRuns[0].getRichTextRuns().length);
                assertTrue(textRun.isBullet());
index b10bccd96be883cd6b69018ebe32bf0e156825da..e9a01459f3454c76a5b144a1e6d63e57023da909 100644 (file)
@@ -23,8 +23,8 @@ import java.util.List;
 
 import junit.framework.TestCase;
 
-import org.apache.poi.hslf.model.Slide;
-import org.apache.poi.hslf.model.TextRun;
+import org.apache.poi.hslf.model.HSLFSlide;
+import org.apache.poi.hslf.model.HSLFTextParagraph;
 import org.apache.poi.hslf.model.textproperties.TextPFException9;
 import org.apache.poi.hslf.model.textproperties.TextPropCollection;
 import org.apache.poi.hslf.record.EscherTextboxWrapper;
@@ -49,15 +49,15 @@ public final class TestNumberedList3 extends TestCase {
        }
 
        public void testNumberedList() throws Exception {
-               SlideShow ppt = new SlideShow(_slTests.openResourceAsStream("numbers3.ppt"));
+               HSLFSlideShow ppt = new HSLFSlideShow(_slTests.openResourceAsStream("numbers3.ppt"));
                assertTrue("No Exceptions while reading file", true);
 
-               final Slide[] slides = ppt.getSlides();
+               final HSLFSlide[] slides = ppt.getSlides();
                assertEquals(1, slides.length);
-               final Slide slide = slides[0];
+               final HSLFSlide slide = slides[0];
                checkSlide(slide);
        }
-       private void checkSlide(final Slide s) {
+       private void checkSlide(final HSLFSlide s) {
                final StyleTextProp9Atom[] numberedListArray = s.getNumberedListInfo();
                assertNotNull(numberedListArray);
                assertEquals(1, numberedListArray.length);
@@ -68,7 +68,7 @@ public final class TestNumberedList3 extends TestCase {
                assertEquals(Short.valueOf((short)1), autoNumbersOfTextBox0[0].getAutoNumberStartNumber());//Default value = 1 will be used 
                assertTrue(TextAutoNumberSchemeEnum.ANM_ArabicPeriod == autoNumbersOfTextBox0[0].getAutoNumberScheme());
                
-               final TextRun[] textRuns = s.getTextRuns();
+               final HSLFTextParagraph[] textRuns = s.getTextRuns();
                assertEquals(3, textRuns.length);
                assertEquals("Bulleted list\rMore bullets\rNo bullets here", textRuns[0].getRawText());
                assertEquals("Numbered list between two bulleted lists\rSecond numbered list item", textRuns[1].getRawText());
@@ -91,7 +91,7 @@ public final class TestNumberedList3 extends TestCase {
                assertEquals(67, textProp.getCharactersCovered());
                
                
-               RichTextRun textRun = textRuns[0].getRichTextRuns()[0];
+               HSLFTextRun textRun = textRuns[0].getRichTextRuns()[0];
                assertTrue(textRun.isBullet());
 
                
index ff25f34aa114d0c6fffe4fc0b89989eed7e5f475..25f61e1b10a8652937a5da754a24d3b0d73f36b4 100644 (file)
@@ -26,16 +26,13 @@ import java.net.URL;
 import junit.framework.TestCase;
 
 import org.apache.poi.POIDataSamples;
-import org.apache.poi.hslf.HSLFSlideShow;
 import org.apache.poi.hslf.blip.DIB;
 import org.apache.poi.hslf.blip.EMF;
 import org.apache.poi.hslf.blip.JPEG;
 import org.apache.poi.hslf.blip.PICT;
 import org.apache.poi.hslf.blip.PNG;
 import org.apache.poi.hslf.blip.WMF;
-import org.apache.poi.hslf.model.Picture;
-import org.apache.poi.hslf.model.HSLFShape;
-import org.apache.poi.hslf.model.Slide;
+import org.apache.poi.hslf.model.*;
 
 /**
  * Test adding/reading pictures
@@ -51,12 +48,12 @@ public final class TestPictures extends TestCase{
      * Test read/write Macintosh PICT
      */
     public void testPICT() throws Exception {
-        SlideShow ppt = new SlideShow();
+        HSLFSlideShow ppt = new HSLFSlideShow();
 
-        Slide slide = ppt.createSlide();
+        HSLFSlide slide = ppt.createSlide();
         byte[] src_bytes = slTests.readFile("cow.pict");
-        int idx = ppt.addPicture(src_bytes, Picture.PICT);
-        Picture pict = new Picture(idx);
+        int idx = ppt.addPicture(src_bytes, HSLFPictureShape.PICT);
+        HSLFPictureShape pict = new HSLFPictureShape(idx);
         assertEquals(idx, pict.getPictureIndex());
         slide.addShape(pict);
 
@@ -65,21 +62,21 @@ public final class TestPictures extends TestCase{
         ppt.write(out);
         out.close();
 
-        ppt = new SlideShow(new HSLFSlideShow(new ByteArrayInputStream(out.toByteArray())));
+        ppt = new HSLFSlideShow(new HSLFSlideShowImpl(new ByteArrayInputStream(out.toByteArray())));
 
         //make sure we can read this picture shape and it refers to the correct picture data
         HSLFShape[] sh = ppt.getSlides()[0].getShapes();
         assertEquals(1, sh.length);
-        pict = (Picture)sh[0];
+        pict = (HSLFPictureShape)sh[0];
         assertEquals(idx, pict.getPictureIndex());
 
         //check picture data
-        PictureData[] pictures = ppt.getPictureData();
+        HSLFPictureData[] pictures = ppt.getPictureData();
         //the Picture shape refers to the PictureData object in the Presentation
         assertEquals(pict.getPictureData(), pictures[0]);
 
         assertEquals(1, pictures.length);
-        assertEquals(Picture.PICT, pictures[0].getType());
+        assertEquals(HSLFPictureShape.PICT, pictures[0].getType());
         assertTrue(pictures[0] instanceof PICT);
         //compare the content of the initial file with what is stored in the PictureData
         byte[] ppt_bytes = pictures[0].getData();
@@ -96,12 +93,12 @@ public final class TestPictures extends TestCase{
      * Test read/write WMF
      */
     public void testWMF() throws Exception {
-        SlideShow ppt = new SlideShow();
+        HSLFSlideShow ppt = new HSLFSlideShow();
 
-        Slide slide = ppt.createSlide();
+        HSLFSlide slide = ppt.createSlide();
         byte[] src_bytes = slTests.readFile("santa.wmf");
-        int idx = ppt.addPicture(src_bytes, Picture.WMF);
-        Picture pict = new Picture(idx);
+        int idx = ppt.addPicture(src_bytes, HSLFPictureShape.WMF);
+        HSLFPictureShape pict = new HSLFPictureShape(idx);
         assertEquals(idx, pict.getPictureIndex());
         slide.addShape(pict);
 
@@ -110,21 +107,21 @@ public final class TestPictures extends TestCase{
         ppt.write(out);
         out.close();
 
-        ppt = new SlideShow(new HSLFSlideShow(new ByteArrayInputStream(out.toByteArray())));
+        ppt = new HSLFSlideShow(new HSLFSlideShowImpl(new ByteArrayInputStream(out.toByteArray())));
 
         //make sure we can read this picture shape and it refers to the correct picture data
         HSLFShape[] sh = ppt.getSlides()[0].getShapes();
         assertEquals(1, sh.length);
-        pict = (Picture)sh[0];
+        pict = (HSLFPictureShape)sh[0];
         assertEquals(idx, pict.getPictureIndex());
 
         //check picture data
-        PictureData[] pictures = ppt.getPictureData();
+        HSLFPictureData[] pictures = ppt.getPictureData();
         //the Picture shape refers to the PictureData object in the Presentation
         assertEquals(pict.getPictureData(), pictures[0]);
 
         assertEquals(1, pictures.length);
-        assertEquals(Picture.WMF, pictures[0].getType());
+        assertEquals(HSLFPictureShape.WMF, pictures[0].getType());
         assertTrue(pictures[0] instanceof WMF);
         //compare the content of the initial file with what is stored in the PictureData
         byte[] ppt_bytes = pictures[0].getData();
@@ -141,13 +138,13 @@ public final class TestPictures extends TestCase{
      * Test read/write EMF
      */
     public void testEMF() throws Exception {
-        SlideShow ppt = new SlideShow();
+        HSLFSlideShow ppt = new HSLFSlideShow();
 
-        Slide slide = ppt.createSlide();
+        HSLFSlide slide = ppt.createSlide();
         byte[] src_bytes = slTests.readFile("wrench.emf");
-        int idx = ppt.addPicture(src_bytes, Picture.EMF);
+        int idx = ppt.addPicture(src_bytes, HSLFPictureShape.EMF);
 
-        Picture pict = new Picture(idx);
+        HSLFPictureShape pict = new HSLFPictureShape(idx);
         assertEquals(idx, pict.getPictureIndex());
         slide.addShape(pict);
 
@@ -156,21 +153,21 @@ public final class TestPictures extends TestCase{
         ppt.write(out);
         out.close();
 
-        ppt = new SlideShow(new HSLFSlideShow(new ByteArrayInputStream(out.toByteArray())));
+        ppt = new HSLFSlideShow(new HSLFSlideShowImpl(new ByteArrayInputStream(out.toByteArray())));
 
         //make sure we can get this picture shape and it refers to the correct picture data
         HSLFShape[] sh = ppt.getSlides()[0].getShapes();
         assertEquals(1, sh.length);
-        pict = (Picture)sh[0];
+        pict = (HSLFPictureShape)sh[0];
         assertEquals(idx, pict.getPictureIndex());
 
         //check picture data
-        PictureData[] pictures = ppt.getPictureData();
+        HSLFPictureData[] pictures = ppt.getPictureData();
         //the Picture shape refers to the PictureData object in the Presentation
         assertEquals(pict.getPictureData(), pictures[0]);
 
         assertEquals(1, pictures.length);
-        assertEquals(Picture.EMF, pictures[0].getType());
+        assertEquals(HSLFPictureShape.EMF, pictures[0].getType());
         assertTrue(pictures[0] instanceof EMF);
         //compare the content of the initial file with what is stored in the PictureData
         byte[] ppt_bytes = pictures[0].getData();
@@ -181,12 +178,12 @@ public final class TestPictures extends TestCase{
      * Test read/write PNG
      */
     public void testPNG() throws Exception {
-        SlideShow ppt = new SlideShow();
+        HSLFSlideShow ppt = new HSLFSlideShow();
 
-        Slide slide = ppt.createSlide();
+        HSLFSlide slide = ppt.createSlide();
         byte[] src_bytes = slTests.readFile("tomcat.png");
-        int idx = ppt.addPicture(src_bytes, Picture.PNG);
-        Picture pict = new Picture(idx);
+        int idx = ppt.addPicture(src_bytes, HSLFPictureShape.PNG);
+        HSLFPictureShape pict = new HSLFPictureShape(idx);
         assertEquals(idx, pict.getPictureIndex());
         slide.addShape(pict);
 
@@ -195,21 +192,21 @@ public final class TestPictures extends TestCase{
         ppt.write(out);
         out.close();
 
-        ppt = new SlideShow(new HSLFSlideShow(new ByteArrayInputStream(out.toByteArray())));
+        ppt = new HSLFSlideShow(new HSLFSlideShowImpl(new ByteArrayInputStream(out.toByteArray())));
 
         //make sure we can read this picture shape and it refers to the correct picture data
         HSLFShape[] sh = ppt.getSlides()[0].getShapes();
         assertEquals(1, sh.length);
-        pict = (Picture)sh[0];
+        pict = (HSLFPictureShape)sh[0];
         assertEquals(idx, pict.getPictureIndex());
 
         //check picture data
-        PictureData[] pictures = ppt.getPictureData();
+        HSLFPictureData[] pictures = ppt.getPictureData();
         //the Picture shape refers to the PictureData object in the Presentation
         assertEquals(pict.getPictureData(), pictures[0]);
 
         assertEquals(1, pictures.length);
-        assertEquals(Picture.PNG, pictures[0].getType());
+        assertEquals(HSLFPictureShape.PNG, pictures[0].getType());
         assertTrue(pictures[0] instanceof PNG);
         //compare the content of the initial file with what is stored in the PictureData
         byte[] ppt_bytes = pictures[0].getData();
@@ -220,13 +217,13 @@ public final class TestPictures extends TestCase{
      * Test read/write JPEG
      */
     public void testJPEG() throws Exception {
-        SlideShow ppt = new SlideShow();
+        HSLFSlideShow ppt = new HSLFSlideShow();
 
-        Slide slide = ppt.createSlide();
+        HSLFSlide slide = ppt.createSlide();
         byte[] src_bytes = slTests.readFile("clock.jpg");
-        int idx = ppt.addPicture(src_bytes, Picture.JPEG);
+        int idx = ppt.addPicture(src_bytes, HSLFPictureShape.JPEG);
 
-        Picture pict = new Picture(idx);
+        HSLFPictureShape pict = new HSLFPictureShape(idx);
         assertEquals(idx, pict.getPictureIndex());
         slide.addShape(pict);
 
@@ -235,21 +232,21 @@ public final class TestPictures extends TestCase{
         ppt.write(out);
         out.close();
 
-        ppt = new SlideShow(new HSLFSlideShow(new ByteArrayInputStream(out.toByteArray())));
+        ppt = new HSLFSlideShow(new HSLFSlideShowImpl(new ByteArrayInputStream(out.toByteArray())));
 
         //make sure we can read this picture shape and it refers to the correct picture data
         HSLFShape[] sh = ppt.getSlides()[0].getShapes();
         assertEquals(1, sh.length);
-        pict = (Picture)sh[0];
+        pict = (HSLFPictureShape)sh[0];
         assertEquals(idx, pict.getPictureIndex());
 
         //check picture data
-        PictureData[] pictures = ppt.getPictureData();
+        HSLFPictureData[] pictures = ppt.getPictureData();
         //the Picture shape refers to the PictureData object in the Presentation
         assertEquals(pict.getPictureData(), pictures[0]);
 
         assertEquals(1, pictures.length);
-        assertEquals(Picture.JPEG, pictures[0].getType());
+        assertEquals(HSLFPictureShape.JPEG, pictures[0].getType());
         assertTrue(pictures[0] instanceof JPEG);
         //compare the content of the initial file with what is stored in the PictureData
         byte[] ppt_bytes = pictures[0].getData();
@@ -260,12 +257,12 @@ public final class TestPictures extends TestCase{
      * Test read/write DIB
      */
     public void testDIB() throws Exception {
-        SlideShow ppt = new SlideShow();
+        HSLFSlideShow ppt = new HSLFSlideShow();
 
-        Slide slide = ppt.createSlide();
+        HSLFSlide slide = ppt.createSlide();
         byte[] src_bytes = slTests.readFile("clock.dib");
-        int idx = ppt.addPicture(src_bytes, Picture.DIB);
-        Picture pict = new Picture(idx);
+        int idx = ppt.addPicture(src_bytes, HSLFPictureShape.DIB);
+        HSLFPictureShape pict = new HSLFPictureShape(idx);
         assertEquals(idx, pict.getPictureIndex());
         slide.addShape(pict);
 
@@ -274,21 +271,21 @@ public final class TestPictures extends TestCase{
         ppt.write(out);
         out.close();
 
-        ppt = new SlideShow(new HSLFSlideShow(new ByteArrayInputStream(out.toByteArray())));
+        ppt = new HSLFSlideShow(new HSLFSlideShowImpl(new ByteArrayInputStream(out.toByteArray())));
 
         //make sure we can read this picture shape and it refers to the correct picture data
         HSLFShape[] sh = ppt.getSlides()[0].getShapes();
         assertEquals(1, sh.length);
-        pict = (Picture)sh[0];
+        pict = (HSLFPictureShape)sh[0];
         assertEquals(idx, pict.getPictureIndex());
 
         //check picture data
-        PictureData[] pictures = ppt.getPictureData();
+        HSLFPictureData[] pictures = ppt.getPictureData();
         //the Picture shape refers to the PictureData object in the Presentation
         assertEquals(pict.getPictureData(), pictures[0]);
 
         assertEquals(1, pictures.length);
-        assertEquals(Picture.DIB, pictures[0].getType());
+        assertEquals(HSLFPictureShape.DIB, pictures[0].getType());
         assertTrue(pictures[0] instanceof DIB);
         //compare the content of the initial file with what is stored in the PictureData
         byte[] ppt_bytes = pictures[0].getData();
@@ -301,34 +298,34 @@ public final class TestPictures extends TestCase{
     public void testReadPictures() throws Exception {
 
         byte[] src_bytes, ppt_bytes, b1, b2;
-        Picture pict;
-        PictureData pdata;
+        HSLFPictureShape pict;
+        HSLFPictureData pdata;
 
-        SlideShow ppt = new SlideShow(slTests.openResourceAsStream("pictures.ppt"));
-        Slide[] slides = ppt.getSlides();
-        PictureData[] pictures = ppt.getPictureData();
+        HSLFSlideShow ppt = new HSLFSlideShow(slTests.openResourceAsStream("pictures.ppt"));
+        HSLFSlide[] slides = ppt.getSlides();
+        HSLFPictureData[] pictures = ppt.getPictureData();
         assertEquals(5, pictures.length);
 
-        pict = (Picture)slides[0].getShapes()[0]; //the first slide contains JPEG
+        pict = (HSLFPictureShape)slides[0].getShapes()[0]; //the first slide contains JPEG
         pdata = pict.getPictureData();
         assertTrue(pdata instanceof JPEG);
-        assertEquals(Picture.JPEG, pdata.getType());
+        assertEquals(HSLFPictureShape.JPEG, pdata.getType());
         src_bytes = pdata.getData();
         ppt_bytes = slTests.readFile("clock.jpg");
         assertArrayEquals(src_bytes, ppt_bytes);
 
-        pict = (Picture)slides[1].getShapes()[0]; //the second slide contains PNG
+        pict = (HSLFPictureShape)slides[1].getShapes()[0]; //the second slide contains PNG
         pdata = pict.getPictureData();
         assertTrue(pdata instanceof PNG);
-        assertEquals(Picture.PNG, pdata.getType());
+        assertEquals(HSLFPictureShape.PNG, pdata.getType());
         src_bytes = pdata.getData();
         ppt_bytes = slTests.readFile("tomcat.png");
         assertArrayEquals(src_bytes, ppt_bytes);
 
-        pict = (Picture)slides[2].getShapes()[0]; //the third slide contains WMF
+        pict = (HSLFPictureShape)slides[2].getShapes()[0]; //the third slide contains WMF
         pdata = pict.getPictureData();
         assertTrue(pdata instanceof WMF);
-        assertEquals(Picture.WMF, pdata.getType());
+        assertEquals(HSLFPictureShape.WMF, pdata.getType());
         src_bytes = pdata.getData();
         ppt_bytes = slTests.readFile("santa.wmf");
         assertEquals(src_bytes.length, ppt_bytes.length);
@@ -339,10 +336,10 @@ public final class TestPictures extends TestCase{
         System.arraycopy(ppt_bytes, 22, b2, 0, b2.length);
         assertArrayEquals(b1, b2);
 
-        pict = (Picture)slides[3].getShapes()[0]; //the forth slide contains PICT
+        pict = (HSLFPictureShape)slides[3].getShapes()[0]; //the forth slide contains PICT
         pdata = pict.getPictureData();
         assertTrue(pdata instanceof PICT);
-        assertEquals(Picture.PICT, pdata.getType());
+        assertEquals(HSLFPictureShape.PICT, pdata.getType());
         src_bytes = pdata.getData();
         ppt_bytes = slTests.readFile("cow.pict");
         assertEquals(src_bytes.length, ppt_bytes.length);
@@ -353,10 +350,10 @@ public final class TestPictures extends TestCase{
         System.arraycopy(ppt_bytes, 512, b2, 0, b2.length);
         assertArrayEquals(b1, b2);
 
-        pict = (Picture)slides[4].getShapes()[0]; //the fifth slide contains EMF
+        pict = (HSLFPictureShape)slides[4].getShapes()[0]; //the fifth slide contains EMF
         pdata = pict.getPictureData();
         assertTrue(pdata instanceof EMF);
-        assertEquals(Picture.EMF, pdata.getType());
+        assertEquals(HSLFPictureShape.EMF, pdata.getType());
         src_bytes = pdata.getData();
         ppt_bytes = slTests.readFile("wrench.emf");
         assertArrayEquals(src_bytes, ppt_bytes);
@@ -368,33 +365,33 @@ public final class TestPictures extends TestCase{
         *  crazy pictures of type 0, we do our best.
         */
        public void testZeroPictureType() throws Exception {
-               HSLFSlideShow hslf = new HSLFSlideShow(slTests.openResourceAsStream("PictureTypeZero.ppt"));
+               HSLFSlideShowImpl hslf = new HSLFSlideShowImpl(slTests.openResourceAsStream("PictureTypeZero.ppt"));
 
                // Should still have 2 real pictures
                assertEquals(2, hslf.getPictures().length);
                // Both are real pictures, both WMF
-               assertEquals(Picture.WMF, hslf.getPictures()[0].getType());
-               assertEquals(Picture.WMF, hslf.getPictures()[1].getType());
+               assertEquals(HSLFPictureShape.WMF, hslf.getPictures()[0].getType());
+               assertEquals(HSLFPictureShape.WMF, hslf.getPictures()[1].getType());
 
                // Now test what happens when we use the SlideShow interface
-               SlideShow ppt = new SlideShow(hslf);
-        Slide[] slides = ppt.getSlides();
-        PictureData[] pictures = ppt.getPictureData();
+               HSLFSlideShow ppt = new HSLFSlideShow(hslf);
+        HSLFSlide[] slides = ppt.getSlides();
+        HSLFPictureData[] pictures = ppt.getPictureData();
         assertEquals(12, slides.length);
         assertEquals(2, pictures.length);
 
-               Picture pict;
-               PictureData pdata;
+               HSLFPictureShape pict;
+               HSLFPictureData pdata;
 
-        pict = (Picture)slides[0].getShapes()[1]; // 2nd object on 1st slide
+        pict = (HSLFPictureShape)slides[0].getShapes()[1]; // 2nd object on 1st slide
         pdata = pict.getPictureData();
         assertTrue(pdata instanceof WMF);
-        assertEquals(Picture.WMF, pdata.getType());
+        assertEquals(HSLFPictureShape.WMF, pdata.getType());
 
-        pict = (Picture)slides[0].getShapes()[2]; // 3rd object on 1st slide
+        pict = (HSLFPictureShape)slides[0].getShapes()[2]; // 3rd object on 1st slide
         pdata = pict.getPictureData();
         assertTrue(pdata instanceof WMF);
-        assertEquals(Picture.WMF, pdata.getType());
+        assertEquals(HSLFPictureShape.WMF, pdata.getType());
        }
 
     /**
@@ -404,42 +401,42 @@ public final class TestPictures extends TestCase{
        public void disabled_testZeroPictureLength() throws Exception {
         // take the data from www instead of test directory
         URL url = new URL("http://www.cs.sfu.ca/~anoop/courses/CMPT-882-Fall-2002/chris.ppt");
-               HSLFSlideShow hslf = new HSLFSlideShow(url.openStream());
+               HSLFSlideShowImpl hslf = new HSLFSlideShowImpl(url.openStream());
 
                // Should still have 2 real pictures
                assertEquals(2, hslf.getPictures().length);
                // Both are real pictures, both WMF
-               assertEquals(Picture.WMF, hslf.getPictures()[0].getType());
-               assertEquals(Picture.WMF, hslf.getPictures()[1].getType());
+               assertEquals(HSLFPictureShape.WMF, hslf.getPictures()[0].getType());
+               assertEquals(HSLFPictureShape.WMF, hslf.getPictures()[1].getType());
 
                // Now test what happens when we use the SlideShow interface
-               SlideShow ppt = new SlideShow(hslf);
-        Slide[] slides = ppt.getSlides();
-        PictureData[] pictures = ppt.getPictureData();
+               HSLFSlideShow ppt = new HSLFSlideShow(hslf);
+        HSLFSlide[] slides = ppt.getSlides();
+        HSLFPictureData[] pictures = ppt.getPictureData();
         assertEquals(27, slides.length);
         assertEquals(2, pictures.length);
 
-               Picture pict;
-               PictureData pdata;
+               HSLFPictureShape pict;
+               HSLFPictureData pdata;
 
-        pict = (Picture)slides[6].getShapes()[13];
+        pict = (HSLFPictureShape)slides[6].getShapes()[13];
         pdata = pict.getPictureData();
         assertTrue(pdata instanceof WMF);
-        assertEquals(Picture.WMF, pdata.getType());
+        assertEquals(HSLFPictureShape.WMF, pdata.getType());
 
-        pict = (Picture)slides[7].getShapes()[13];
+        pict = (HSLFPictureShape)slides[7].getShapes()[13];
         pdata = pict.getPictureData();
         assertTrue(pdata instanceof WMF);
-        assertEquals(Picture.WMF, pdata.getType());
+        assertEquals(HSLFPictureShape.WMF, pdata.getType());
 
         //add a new picture, it should be correctly appended to the Pictures stream
         ByteArrayOutputStream out = new ByteArrayOutputStream();
-        for(PictureData p : pictures) p.write(out);
+        for(HSLFPictureData p : pictures) p.write(out);
         out.close();
 
         int streamSize = out.size();
 
-        PictureData data = PictureData.create(Picture.JPEG);
+        HSLFPictureData data = HSLFPictureData.create(HSLFPictureShape.JPEG);
         data.setData(new byte[100]);
         int offset = hslf.addPicture(data);
         assertEquals(streamSize, offset);
@@ -448,20 +445,20 @@ public final class TestPictures extends TestCase{
     }
 
     public void testGetPictureName() throws Exception {
-        SlideShow ppt = new SlideShow(slTests.openResourceAsStream("ppt_with_png.ppt"));
-        Slide slide = ppt.getSlides()[0];
+        HSLFSlideShow ppt = new HSLFSlideShow(slTests.openResourceAsStream("ppt_with_png.ppt"));
+        HSLFSlide slide = ppt.getSlides()[0];
 
-        Picture p = (Picture)slide.getShapes()[0]; //the first slide contains JPEG
+        HSLFPictureShape p = (HSLFPictureShape)slide.getShapes()[0]; //the first slide contains JPEG
         assertEquals("test", p.getPictureName());
     }
 
     public void testSetPictureName() throws Exception {
-        SlideShow ppt = new SlideShow();
+        HSLFSlideShow ppt = new HSLFSlideShow();
 
-        Slide slide = ppt.createSlide();
+        HSLFSlide slide = ppt.createSlide();
         byte[] img = slTests.readFile("tomcat.png");
-        int idx = ppt.addPicture(img, Picture.PNG);
-        Picture pict = new Picture(idx);
+        int idx = ppt.addPicture(img, HSLFPictureShape.PNG);
+        HSLFPictureShape pict = new HSLFPictureShape(idx);
         pict.setPictureName("tomcat.png");
         slide.addShape(pict);
 
@@ -470,9 +467,9 @@ public final class TestPictures extends TestCase{
         ppt.write(out);
         out.close();
 
-        ppt = new SlideShow(new ByteArrayInputStream(out.toByteArray()));
+        ppt = new HSLFSlideShow(new ByteArrayInputStream(out.toByteArray()));
 
-        Picture p = (Picture)ppt.getSlides()[0].getShapes()[0];
+        HSLFPictureShape p = (HSLFPictureShape)ppt.getSlides()[0].getShapes()[0];
         assertEquals("tomcat.png", p.getPictureName());
     }
 }
index ef8280d786f3524216b5aeac76ba33335ff82cc1..270e01caa3a2dca94ff6316018402caff6d623ae 100644 (file)
@@ -22,6 +22,7 @@ import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 
 import junit.framework.TestCase;
+
 import org.apache.poi.hslf.*;
 import org.apache.poi.hslf.model.*;
 import org.apache.poi.POIDataSamples;
@@ -33,16 +34,16 @@ import org.apache.poi.POIDataSamples;
  */
 public final class TestReOrderingSlides extends TestCase {
        // A SlideShow with one slide
-       private HSLFSlideShow hss_one;
-       private SlideShow ss_one;
+       private HSLFSlideShowImpl hss_one;
+       private HSLFSlideShow ss_one;
 
        // A SlideShow with two slides
-       private HSLFSlideShow hss_two;
-       private SlideShow ss_two;
+       private HSLFSlideShowImpl hss_two;
+       private HSLFSlideShow ss_two;
 
        // A SlideShow with three slides
-       private HSLFSlideShow hss_three;
-       private SlideShow ss_three;
+       private HSLFSlideShowImpl hss_three;
+       private HSLFSlideShow ss_three;
 
        /**
         * Create/open the slideshows
@@ -50,14 +51,14 @@ public final class TestReOrderingSlides extends TestCase {
        public void setUp() throws Exception {
         POIDataSamples slTests = POIDataSamples.getSlideShowInstance();
 
-               hss_one = new HSLFSlideShow(slTests.openResourceAsStream("Single_Coloured_Page.ppt"));
-               ss_one = new SlideShow(hss_one);
+               hss_one = new HSLFSlideShowImpl(slTests.openResourceAsStream("Single_Coloured_Page.ppt"));
+               ss_one = new HSLFSlideShow(hss_one);
 
-               hss_two = new HSLFSlideShow(slTests.openResourceAsStream("basic_test_ppt_file.ppt"));
-               ss_two = new SlideShow(hss_two);
+               hss_two = new HSLFSlideShowImpl(slTests.openResourceAsStream("basic_test_ppt_file.ppt"));
+               ss_two = new HSLFSlideShow(hss_two);
 
-               hss_three = new HSLFSlideShow(slTests.openResourceAsStream("incorrect_slide_order.ppt"));
-               ss_three = new SlideShow(hss_three);
+               hss_three = new HSLFSlideShowImpl(slTests.openResourceAsStream("incorrect_slide_order.ppt"));
+               ss_three = new HSLFSlideShow(hss_three);
        }
 
        /**
@@ -66,7 +67,7 @@ public final class TestReOrderingSlides extends TestCase {
        public void testReOrder1() throws Exception {
                // Has one slide
                assertEquals(1, ss_one.getSlides().length);
-               Slide s1 = ss_one.getSlides()[0];
+               HSLFSlide s1 = ss_one.getSlides()[0];
 
                // Check slide 1 is as expected
                assertEquals(256, s1._getSheetNumber());
@@ -81,8 +82,8 @@ public final class TestReOrderingSlides extends TestCase {
                hss_one.write(baos);
                ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
 
-               HSLFSlideShow hss_read = new HSLFSlideShow(bais);
-               SlideShow ss_read = new SlideShow(hss_read);
+               HSLFSlideShowImpl hss_read = new HSLFSlideShowImpl(bais);
+               HSLFSlideShow ss_read = new HSLFSlideShow(hss_read);
 
                // Check it still has 1 slide
                assertEquals(1, ss_read.getSlides().length);
@@ -101,8 +102,8 @@ public final class TestReOrderingSlides extends TestCase {
        public void testReOrder2() throws Exception {
                // Has two slides
                assertEquals(2, ss_two.getSlides().length);
-               Slide s1 = ss_two.getSlides()[0];
-               Slide s2 = ss_two.getSlides()[1];
+               HSLFSlide s1 = ss_two.getSlides()[0];
+               HSLFSlide s2 = ss_two.getSlides()[1];
 
                // Check slide 1 is as expected
                assertEquals(256, s1._getSheetNumber());
@@ -121,8 +122,8 @@ public final class TestReOrderingSlides extends TestCase {
                hss_two.write(baos);
                ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
 
-               HSLFSlideShow hss_read = new HSLFSlideShow(bais);
-               SlideShow ss_read = new SlideShow(hss_read);
+               HSLFSlideShowImpl hss_read = new HSLFSlideShowImpl(bais);
+               HSLFSlideShow ss_read = new HSLFSlideShow(hss_read);
 
                // Check it still has 2 slides
                assertEquals(2, ss_read.getSlides().length);
@@ -144,8 +145,8 @@ public final class TestReOrderingSlides extends TestCase {
        public void testReOrder2swap() throws Exception {
                // Has two slides
                assertEquals(2, ss_two.getSlides().length);
-               Slide s1 = ss_two.getSlides()[0];
-               Slide s2 = ss_two.getSlides()[1];
+               HSLFSlide s1 = ss_two.getSlides()[0];
+               HSLFSlide s2 = ss_two.getSlides()[1];
 
                // Check slide 1 is as expected
                assertEquals(256, s1._getSheetNumber());
@@ -164,8 +165,8 @@ public final class TestReOrderingSlides extends TestCase {
                hss_two.write(baos);
                ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
 
-               HSLFSlideShow hss_read = new HSLFSlideShow(bais);
-               SlideShow ss_read = new SlideShow(hss_read);
+               HSLFSlideShowImpl hss_read = new HSLFSlideShowImpl(bais);
+               HSLFSlideShow ss_read = new HSLFSlideShow(hss_read);
 
                // Check it still has 2 slides
                assertEquals(2, ss_read.getSlides().length);
@@ -188,9 +189,9 @@ public final class TestReOrderingSlides extends TestCase {
        public void testReOrder3() throws Exception {
                // Has three slides
                assertEquals(3, ss_three.getSlides().length);
-               Slide s1 = ss_three.getSlides()[0];
-               Slide s2 = ss_three.getSlides()[1];
-               Slide s3 = ss_three.getSlides()[2];
+               HSLFSlide s1 = ss_three.getSlides()[0];
+               HSLFSlide s2 = ss_three.getSlides()[1];
+               HSLFSlide s3 = ss_three.getSlides()[2];
 
                // Check slide 1 is as expected
                assertEquals(256, s1._getSheetNumber());
@@ -213,8 +214,8 @@ public final class TestReOrderingSlides extends TestCase {
                hss_three.write(baos);
                ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
 
-               HSLFSlideShow hss_read = new HSLFSlideShow(bais);
-               SlideShow ss_read = new SlideShow(hss_read);
+               HSLFSlideShowImpl hss_read = new HSLFSlideShowImpl(bais);
+               HSLFSlideShow ss_read = new HSLFSlideShow(hss_read);
 
                // Check it still has 3 slides
                assertEquals(3, ss_read.getSlides().length);
@@ -241,9 +242,9 @@ public final class TestReOrderingSlides extends TestCase {
        public void testReOrder3swap() throws Exception {
                // Has three slides
                assertEquals(3, ss_three.getSlides().length);
-               Slide s1 = ss_three.getSlides()[0];
-               Slide s2 = ss_three.getSlides()[1];
-               Slide s3 = ss_three.getSlides()[2];
+               HSLFSlide s1 = ss_three.getSlides()[0];
+               HSLFSlide s2 = ss_three.getSlides()[1];
+               HSLFSlide s3 = ss_three.getSlides()[2];
 
                // Check slide 1 is as expected
                assertEquals(256, s1._getSheetNumber());
@@ -267,16 +268,16 @@ public final class TestReOrderingSlides extends TestCase {
                hss_three.write(baos);
                ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
 
-               HSLFSlideShow hss_read = new HSLFSlideShow(bais);
-               SlideShow ss_read = new SlideShow(hss_read);
+               HSLFSlideShowImpl hss_read = new HSLFSlideShowImpl(bais);
+               HSLFSlideShow ss_read = new HSLFSlideShow(hss_read);
 
                // Check it still has 3 slides
                assertEquals(3, ss_read.getSlides().length);
 
                // And check it's as expected
-               Slide _s1 = ss_read.getSlides()[0];
-               Slide _s2 = ss_read.getSlides()[1];
-               Slide _s3 = ss_read.getSlides()[2];
+               HSLFSlide _s1 = ss_read.getSlides()[0];
+               HSLFSlide _s2 = ss_read.getSlides()[1];
+               HSLFSlide _s3 = ss_read.getSlides()[2];
 
         // 1 --> 3
         assertEquals(s1._getSheetNumber(), _s3._getSheetNumber());
index 5475dae9c18e009256487bbde3385143fcfc3e64..c15bacd1f21a6b24d95c64fa371302e9de108fb6 100644 (file)
@@ -19,7 +19,9 @@ package org.apache.poi.hslf.usermodel;
 
 
 import junit.framework.TestCase;
+
 import org.apache.poi.hslf.*;
+import org.apache.poi.hslf.model.HSLFSlideShowImpl;
 import org.apache.poi.hslf.record.ParentAwareRecord;
 import org.apache.poi.hslf.record.Record;
 import org.apache.poi.hslf.record.RecordContainer;
@@ -34,13 +36,13 @@ import org.apache.poi.POIDataSamples;
  */
 public final class TestRecordSetup extends TestCase {
        // SlideShow primed on the test data
-       private SlideShow ss;
-       private HSLFSlideShow hss;
+       private HSLFSlideShow ss;
+       private HSLFSlideShowImpl hss;
 
        public TestRecordSetup() throws Exception {
         POIDataSamples slTests = POIDataSamples.getSlideShowInstance();
-               hss = new HSLFSlideShow(slTests.openResourceAsStream("basic_test_ppt_file.ppt"));
-               ss = new SlideShow(hss);
+               hss = new HSLFSlideShowImpl(slTests.openResourceAsStream("basic_test_ppt_file.ppt"));
+               ss = new HSLFSlideShow(hss);
        }
 
        public void testHandleParentAwareRecords() {
index a71b72a28bcbbfa144234357be6c2cf0867e0925..267e9ec7a431105f8ce8c71c4d83525ae8cc1caf 100644 (file)
@@ -23,10 +23,7 @@ import java.io.FileInputStream;
 
 import org.apache.poi.POIDataSamples;
 import org.apache.poi.POITestCase;
-import org.apache.poi.hslf.HSLFSlideShow;
-import org.apache.poi.hslf.model.Slide;
-import org.apache.poi.hslf.model.TextBox;
-import org.apache.poi.hslf.model.TextRun;
+import org.apache.poi.hslf.model.*;
 import org.apache.poi.hslf.record.Record;
 import org.apache.poi.hslf.record.SlideListWithText;
 
@@ -39,40 +36,40 @@ public final class TestRichTextRun extends POITestCase {
    private static POIDataSamples _slTests = POIDataSamples.getSlideShowInstance();
 
    // SlideShow primed on the test data
-   private SlideShow ss;
-   private SlideShow ssRichA;
-   private SlideShow ssRichB;
-   private SlideShow ssRichC;
-   private SlideShow ssChinese;
-   private HSLFSlideShow hss;
-   private HSLFSlideShow hssRichA;
-   private HSLFSlideShow hssRichB;
-   private HSLFSlideShow hssRichC;
-   private HSLFSlideShow hssChinese;
+   private HSLFSlideShow ss;
+   private HSLFSlideShow ssRichA;
+   private HSLFSlideShow ssRichB;
+   private HSLFSlideShow ssRichC;
+   private HSLFSlideShow ssChinese;
+   private HSLFSlideShowImpl hss;
+   private HSLFSlideShowImpl hssRichA;
+   private HSLFSlideShowImpl hssRichB;
+   private HSLFSlideShowImpl hssRichC;
+   private HSLFSlideShowImpl hssChinese;
    private static String filenameC;
 
    protected void setUp() throws Exception {
       // Basic (non rich) test file
-      hss = new HSLFSlideShow(_slTests.openResourceAsStream("basic_test_ppt_file.ppt"));
-      ss = new SlideShow(hss);
+      hss = new HSLFSlideShowImpl(_slTests.openResourceAsStream("basic_test_ppt_file.ppt"));
+      ss = new HSLFSlideShow(hss);
 
                // Rich test file A
-               hssRichA = new HSLFSlideShow(_slTests.openResourceAsStream("Single_Coloured_Page.ppt"));
-               ssRichA = new SlideShow(hssRichA);
+               hssRichA = new HSLFSlideShowImpl(_slTests.openResourceAsStream("Single_Coloured_Page.ppt"));
+               ssRichA = new HSLFSlideShow(hssRichA);
 
                // Rich test file B
-               hssRichB = new HSLFSlideShow(_slTests.openResourceAsStream("Single_Coloured_Page_With_Fonts_and_Alignments.ppt"));
-               ssRichB = new SlideShow(hssRichB);
+               hssRichB = new HSLFSlideShowImpl(_slTests.openResourceAsStream("Single_Coloured_Page_With_Fonts_and_Alignments.ppt"));
+               ssRichB = new HSLFSlideShow(hssRichB);
 
                // Rich test file C - has paragraph styles that run out before
                //   the character ones do
                filenameC = "ParagraphStylesShorterThanCharStyles.ppt";
-        hssRichC = new HSLFSlideShow(_slTests.openResourceAsStream(filenameC));
-               ssRichC = new SlideShow(hssRichC);
+        hssRichC = new HSLFSlideShowImpl(_slTests.openResourceAsStream(filenameC));
+               ssRichC = new HSLFSlideShow(hssRichC);
                
                // Rich test file with Chinese + English text in it
-      hssChinese = new HSLFSlideShow(_slTests.openResourceAsStream("54880_chinese.ppt"));
-      ssChinese = new SlideShow(hssChinese);
+      hssChinese = new HSLFSlideShowImpl(_slTests.openResourceAsStream("54880_chinese.ppt"));
+      ssChinese = new HSLFSlideShow(hssChinese);
        }
 
        /**
@@ -80,9 +77,9 @@ public final class TestRichTextRun extends POITestCase {
         *  on a non rich text run
         */
        public void testBoldNonRich() {
-               Slide slideOne = ss.getSlides()[0];
-               TextRun[] textRuns = slideOne.getTextRuns();
-               RichTextRun rtr = textRuns[0].getRichTextRuns()[0];
+               HSLFSlide slideOne = ss.getSlides()[0];
+               HSLFTextParagraph[] textRuns = slideOne.getTextRuns();
+               HSLFTextRun rtr = textRuns[0].getRichTextRuns()[0];
 
                assertNull(rtr._getRawCharacterStyle());
                assertNull(rtr._getRawParagraphStyle());
@@ -108,9 +105,9 @@ public final class TestRichTextRun extends POITestCase {
         *  on a rich text run
         */
        public void testBoldRich() {
-               Slide slideOneR = ssRichA.getSlides()[0];
-               TextRun[] textRunsR = slideOneR.getTextRuns();
-               RichTextRun[] rtrs = textRunsR[1].getRichTextRuns();
+               HSLFSlide slideOneR = ssRichA.getSlides()[0];
+               HSLFTextParagraph[] textRunsR = slideOneR.getTextRuns();
+               HSLFTextRun[] rtrs = textRunsR[1].getRichTextRuns();
                assertEquals(3, rtrs.length);
 
                assertTrue(rtrs[0].isBold());
@@ -136,15 +133,15 @@ public final class TestRichTextRun extends POITestCase {
         */
        public void testFontSize() {
 
-               Slide slideOne = ss.getSlides()[0];
-               TextRun[] textRuns = slideOne.getTextRuns();
-               RichTextRun rtr = textRuns[0].getRichTextRuns()[0];
+               HSLFSlide slideOne = ss.getSlides()[0];
+               HSLFTextParagraph[] textRuns = slideOne.getTextRuns();
+               HSLFTextRun rtr = textRuns[0].getRichTextRuns()[0];
 
-               Slide slideOneR = ssRichB.getSlides()[0];
-               TextRun[] textRunsR = slideOneR.getTextRuns();
-               RichTextRun rtrRa = textRunsR[0].getRichTextRuns()[0];
-               RichTextRun rtrRb = textRunsR[1].getRichTextRuns()[0];
-               RichTextRun rtrRc = textRunsR[1].getRichTextRuns()[3];
+               HSLFSlide slideOneR = ssRichB.getSlides()[0];
+               HSLFTextParagraph[] textRunsR = slideOneR.getTextRuns();
+               HSLFTextRun rtrRa = textRunsR[0].getRichTextRuns()[0];
+               HSLFTextRun rtrRb = textRunsR[1].getRichTextRuns()[0];
+               HSLFTextRun rtrRc = textRunsR[1].getRichTextRuns()[3];
 
                String defaultFont = "Arial";
 
@@ -195,14 +192,14 @@ public final class TestRichTextRun extends POITestCase {
        }
 
        public void testChangeWriteRead() throws Exception {
-               HSLFSlideShow[] h = new HSLFSlideShow[] { hss, hssRichA, hssRichB };
-               Slide[] s = new Slide[] { ss.getSlides()[0], ssRichA.getSlides()[0], ssRichB.getSlides()[0] };
+               HSLFSlideShowImpl[] h = new HSLFSlideShowImpl[] { hss, hssRichA, hssRichB };
+               HSLFSlide[] s = new HSLFSlide[] { ss.getSlides()[0], ssRichA.getSlides()[0], ssRichB.getSlides()[0] };
 
                for(int i=0; i<h.length; i++) {
                        // Change
-                       Slide slideOne = s[i];
-                       TextRun[] textRuns = slideOne.getTextRuns();
-                       RichTextRun rtr = textRuns[0].getRichTextRuns()[0];
+                       HSLFSlide slideOne = s[i];
+                       HSLFTextParagraph[] textRuns = slideOne.getTextRuns();
+                       HSLFTextRun rtr = textRuns[0].getRichTextRuns()[0];
 
                        rtr.setBold(true);
                        rtr.setFontSize(18);
@@ -218,8 +215,8 @@ public final class TestRichTextRun extends POITestCase {
                        h[i].write(baos);
                        ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
 
-                       HSLFSlideShow readHSLF = new HSLFSlideShow(bais);
-                       SlideShow readS = new SlideShow(readHSLF);
+                       HSLFSlideShowImpl readHSLF = new HSLFSlideShowImpl(bais);
+                       HSLFSlideShow readS = new HSLFSlideShow(readHSLF);
 
                        // Tweak existing one again, to ensure really worked
                        rtr.setBold(false);
@@ -234,9 +231,9 @@ public final class TestRichTextRun extends POITestCase {
 
                        // Now, look at the one we changed, wrote out, and read back in
                        // Ensure it does contain our original modifications
-                       Slide slideOneRR = readS.getSlides()[0];
-                       TextRun[] textRunsRR = slideOneRR.getTextRuns();
-                       RichTextRun rtrRRa = textRunsRR[0].getRichTextRuns()[0];
+                       HSLFSlide slideOneRR = readS.getSlides()[0];
+                       HSLFTextParagraph[] textRunsRR = slideOneRR.getTextRuns();
+                       HSLFTextRun rtrRRa = textRunsRR[0].getRichTextRuns()[0];
 
                        assertEquals(true, rtrRRa.isBold());
                        assertEquals(18, rtrRRa.getFontSize());
@@ -250,12 +247,12 @@ public final class TestRichTextRun extends POITestCase {
         */
        public void testParagraphStylesShorterTheCharStyles() {
                // Check we have the right number of sheets
-               Slide[] slides = ssRichC.getSlides();
+               HSLFSlide[] slides = ssRichC.getSlides();
                assertEquals(14, slides.length);
 
                // Check the number of text runs on interesting sheets
-               Slide slideThreeC = ssRichC.getSlides()[2];
-               Slide slideSevenC = ssRichC.getSlides()[6];
+               HSLFSlide slideThreeC = ssRichC.getSlides()[2];
+               HSLFSlide slideSevenC = ssRichC.getSlides()[6];
                assertEquals(3, slideThreeC.getTextRuns().length);
                assertEquals(5, slideSevenC.getTextRuns().length);
 
@@ -269,10 +266,10 @@ public final class TestRichTextRun extends POITestCase {
                //   Illustrative Example
                //   .
 
-               TextRun[] s3tr = slideThreeC.getTextRuns();
-               RichTextRun[] s3rtr0 = s3tr[0].getRichTextRuns();
-               RichTextRun[] s3rtr1 = s3tr[1].getRichTextRuns();
-               RichTextRun[] s3rtr2 = s3tr[2].getRichTextRuns();
+               HSLFTextParagraph[] s3tr = slideThreeC.getTextRuns();
+               HSLFTextRun[] s3rtr0 = s3tr[0].getRichTextRuns();
+               HSLFTextRun[] s3rtr1 = s3tr[1].getRichTextRuns();
+               HSLFTextRun[] s3rtr2 = s3tr[2].getRichTextRuns();
 
                assertEquals(2, s3rtr0.length);
                assertEquals(1, s3rtr1.length);
@@ -303,10 +300,10 @@ public final class TestRichTextRun extends POITestCase {
                //  <ps>(text a)</ps><ps>(text a)(text b)</ps>
                // TR:
                //  (text)
-               TextRun[] s7tr = slideSevenC.getTextRuns();
-               RichTextRun[] s7rtr0 = s7tr[0].getRichTextRuns();
-               RichTextRun[] s7rtr1 = s7tr[1].getRichTextRuns();
-               RichTextRun[] s7rtr2 = s7tr[2].getRichTextRuns();
+               HSLFTextParagraph[] s7tr = slideSevenC.getTextRuns();
+               HSLFTextRun[] s7rtr0 = s7tr[0].getRichTextRuns();
+               HSLFTextRun[] s7rtr1 = s7tr[1].getRichTextRuns();
+               HSLFTextRun[] s7rtr2 = s7tr[2].getRichTextRuns();
 
                assertEquals(1, s7rtr0.length);
                assertEquals(3, s7rtr1.length);
@@ -334,11 +331,11 @@ public final class TestRichTextRun extends POITestCase {
                assertMatchesSLTWC(ssRichC);
                assertMatchesFileC(ssRichC);
 
-               Slide slideSevenC = ssRichC.getSlides()[6];
-               TextRun[] s7tr = slideSevenC.getTextRuns();
-               RichTextRun[] s7rtr0 = s7tr[0].getRichTextRuns();
-               RichTextRun[] s7rtr1 = s7tr[1].getRichTextRuns();
-               RichTextRun[] s7rtr2 = s7tr[2].getRichTextRuns();
+               HSLFSlide slideSevenC = ssRichC.getSlides()[6];
+               HSLFTextParagraph[] s7tr = slideSevenC.getTextRuns();
+               HSLFTextRun[] s7rtr0 = s7tr[0].getRichTextRuns();
+               HSLFTextRun[] s7rtr1 = s7tr[1].getRichTextRuns();
+               HSLFTextRun[] s7rtr2 = s7tr[2].getRichTextRuns();
 
                String oldText;
 
@@ -374,9 +371,9 @@ public final class TestRichTextRun extends POITestCase {
         *  contents.
         * @param s
         */
-       private void assertMatchesSLTWC(SlideShow s) throws Exception {
+       private void assertMatchesSLTWC(HSLFSlideShow s) throws Exception {
                // Grab a new copy of slideshow C
-               SlideShow refC = new SlideShow(_slTests.openResourceAsStream(filenameC));
+               HSLFSlideShow refC = new HSLFSlideShow(_slTests.openResourceAsStream(filenameC));
 
                // Write out the 2nd SLWT in the active document
                SlideListWithText refSLWT = refC.getDocumentRecord().getSlideListWithTexts()[1];
@@ -411,7 +408,7 @@ public final class TestRichTextRun extends POITestCase {
         * Checks that the supplied slideshow still matches the bytes
         *  of slideshow c
         */
-       private static void assertMatchesFileC(SlideShow s) throws Exception {
+       private static void assertMatchesFileC(HSLFSlideShow s) throws Exception {
                if (true) { // TODO - test is disabled, pending fix of bug #39800
                        // System.err.println("Skipping test, as would be marked as failed due to bug #39800"); //
                        return;
@@ -450,12 +447,12 @@ if(false) {
        }
 
        public void testIndentationLevel() throws Exception {
-               SlideShow ppt = new SlideShow(_slTests.openResourceAsStream("ParagraphStylesShorterThanCharStyles.ppt"));
-               Slide[] sl = ppt.getSlides();
+               HSLFSlideShow ppt = new HSLFSlideShow(_slTests.openResourceAsStream("ParagraphStylesShorterThanCharStyles.ppt"));
+               HSLFSlide[] sl = ppt.getSlides();
                for (int i = 0; i < sl.length; i++) {
-                       TextRun[] txt = sl[i].getTextRuns();
+                       HSLFTextParagraph[] txt = sl[i].getTextRuns();
                        for (int j = 0; j < txt.length; j++) {
-                               RichTextRun[] rt = txt[j].getRichTextRuns();
+                               HSLFTextRun[] rt = txt[j].getRichTextRuns();
                                for (int k = 0; k < rt.length; k++) {
                                        int indent = rt[k].getIndentLevel();
                                        assertTrue(indent >= 0 && indent <= 4 );
@@ -466,12 +463,12 @@ if(false) {
        }
 
        public void testReadParagraphStyles() throws Exception {
-               SlideShow ppt = new SlideShow(_slTests.openResourceAsStream("bullets.ppt"));
+               HSLFSlideShow ppt = new HSLFSlideShow(_slTests.openResourceAsStream("bullets.ppt"));
                assertTrue("No Exceptions while reading file", true);
 
-               RichTextRun rt;
-               TextRun[] txt;
-               Slide[] slide = ppt.getSlides();
+               HSLFTextRun rt;
+               HSLFTextParagraph[] txt;
+               HSLFSlide[] slide = ppt.getSlides();
                assertEquals(2, slide.length);
 
                txt = slide[0].getTextRuns();
@@ -516,12 +513,12 @@ if(false) {
        }
 
        public void testSetParagraphStyles() throws Exception {
-               SlideShow ppt = new SlideShow();
+               HSLFSlideShow ppt = new HSLFSlideShow();
 
-               Slide slide = ppt.createSlide();
+               HSLFSlide slide = ppt.createSlide();
 
-               TextBox shape = new TextBox();
-               RichTextRun rt = shape.getTextRun().getRichTextRuns()[0];
+               HSLFTextBox shape = new HSLFTextBox();
+               HSLFTextRun rt = shape.getTextParagraph().getRichTextRuns()[0];
                shape.setText(
                                "Hello, World!\r" +
                                "This should be\r" +
@@ -547,10 +544,10 @@ if(false) {
                ppt.write(out);
                out.close();
 
-               ppt = new SlideShow(new ByteArrayInputStream(out.toByteArray()));
+               ppt = new HSLFSlideShow(new ByteArrayInputStream(out.toByteArray()));
                slide = ppt.getSlides()[0];
-               shape = (TextBox)slide.getShapes()[0];
-               rt = shape.getTextRun().getRichTextRuns()[0];
+               shape = (HSLFTextBox)slide.getShapes()[0];
+               rt = shape.getTextParagraph().getRichTextRuns()[0];
                assertEquals(42, rt.getFontSize());
                assertEquals(true, rt.isBullet());
                assertEquals(50, rt.getTextOffset());
@@ -559,12 +556,12 @@ if(false) {
        }
 
        public void testAddText() throws Exception {
-               SlideShow ppt = new SlideShow(_slTests.openResourceAsStream("bullets.ppt"));
+               HSLFSlideShow ppt = new HSLFSlideShow(_slTests.openResourceAsStream("bullets.ppt"));
                assertTrue("No Exceptions while reading file", true);
 
-               RichTextRun rt;
-               TextRun[] txt;
-               Slide[] slides = ppt.getSlides();
+               HSLFTextRun rt;
+               HSLFTextParagraph[] txt;
+               HSLFSlide[] slides = ppt.getSlides();
 
                assertEquals(2, slides.length);
                txt = slides[0].getTextRuns();
@@ -605,7 +602,7 @@ if(false) {
                ppt.write(out);
                out.close();
 
-               ppt = new SlideShow(new ByteArrayInputStream(out.toByteArray()));
+               ppt = new HSLFSlideShow(new ByteArrayInputStream(out.toByteArray()));
                slides = ppt.getSlides();
 
                assertEquals(2, slides.length);
@@ -628,10 +625,10 @@ if(false) {
        }
        
        public void testChineseParagraphs() throws Exception {
-      RichTextRun[] rts;
-      RichTextRun rt;
-      TextRun[] txt;
-      Slide[] slides = ssChinese.getSlides();
+      HSLFTextRun[] rts;
+      HSLFTextRun rt;
+      HSLFTextParagraph[] txt;
+      HSLFSlide[] slides = ssChinese.getSlides();
 
       // One slide
       assertEquals(1, slides.length);
index cb27d3ee924171e12fcd2dbce871b057106022a8..fda2aba0d06260a9023db518ad1bd02b9432ed4d 100644 (file)
@@ -19,6 +19,7 @@ package org.apache.poi.hslf.usermodel;
 
 
 import junit.framework.TestCase;
+
 import org.apache.poi.hslf.*;
 import org.apache.poi.hslf.model.*;
 import org.apache.poi.POIDataSamples;
@@ -30,16 +31,16 @@ import org.apache.poi.POIDataSamples;
  */
 public final class TestSheetText extends TestCase {
        // SlideShow primed on the test data
-       private SlideShow ss;
+       private HSLFSlideShow ss;
 
        public TestSheetText() throws Exception {
         POIDataSamples slTests = POIDataSamples.getSlideShowInstance();
-               HSLFSlideShow hss = new HSLFSlideShow(slTests.openResourceAsStream("basic_test_ppt_file.ppt"));
-               ss = new SlideShow(hss);
+               HSLFSlideShowImpl hss = new HSLFSlideShowImpl(slTests.openResourceAsStream("basic_test_ppt_file.ppt"));
+               ss = new HSLFSlideShow(hss);
        }
 
        public void testSheetOne() {
-               Sheet slideOne = ss.getSlides()[0];
+               HSLFSheet slideOne = ss.getSlides()[0];
 
                String[] expectText = new String[] {"This is a test title","This is a test subtitle\nThis is on page 1"};
                assertEquals(expectText.length, slideOne.getTextRuns().length);
@@ -49,7 +50,7 @@ public final class TestSheetText extends TestCase {
        }
 
        public void testSheetTwo() {
-               Sheet slideTwo = ss.getSlides()[1];
+               HSLFSheet slideTwo = ss.getSlides()[1];
                String[] expectText = new String[] {"This is the title on page 2","This is page two\nIt has several blocks of text\nNone of them have formatting"};
                assertEquals(expectText.length, slideTwo.getTextRuns().length);
                for(int i=0; i<expectText.length; i++) {
@@ -64,15 +65,15 @@ public final class TestSheetText extends TestCase {
         */
        public void testWithShortTextPropData() throws Exception {
         POIDataSamples slTests = POIDataSamples.getSlideShowInstance();
-               HSLFSlideShow hss = new HSLFSlideShow(slTests.openResourceAsStream("iisd_report.ppt"));
-               SlideShow sss = new SlideShow(hss);
+               HSLFSlideShowImpl hss = new HSLFSlideShowImpl(slTests.openResourceAsStream("iisd_report.ppt"));
+               HSLFSlideShow sss = new HSLFSlideShow(hss);
 
                // Should come out with 10 slides, no notes
                assertEquals(10, sss.getSlides().length);
                assertEquals(0, sss.getNotes().length);
 
                // Check text on first slide
-               Slide s = sss.getSlides()[0];
+               HSLFSlide s = sss.getSlides()[0];
                String exp =
                        "Realizing the Development Dividend:\n" +
                        "Community Capacity Building and CDM.\n" +
index 373ec339b40a8cb990d3b37050d07be948badcc3..35c2fdcdbcdf1621db48f6228646c28a00c21d61 100644 (file)
@@ -18,6 +18,7 @@
 package org.apache.poi.hslf.usermodel;
 
 import junit.framework.TestCase;
+
 import org.apache.poi.hslf.*;
 import org.apache.poi.hslf.model.*;
 import org.apache.poi.POIDataSamples;
@@ -31,16 +32,16 @@ public final class TestSlideOrdering extends TestCase {
     private static POIDataSamples slTests = POIDataSamples.getSlideShowInstance();
 
        // Simple slideshow, record order matches slide order
-       private SlideShow ssA;
+       private HSLFSlideShow ssA;
        // Complex slideshow, record order doesn't match slide order
-       private SlideShow ssB;
+       private HSLFSlideShow ssB;
 
        public TestSlideOrdering() throws Exception {
-               HSLFSlideShow hssA = new HSLFSlideShow(slTests.openResourceAsStream("basic_test_ppt_file.ppt"));
-               ssA = new SlideShow(hssA);
+               HSLFSlideShowImpl hssA = new HSLFSlideShowImpl(slTests.openResourceAsStream("basic_test_ppt_file.ppt"));
+               ssA = new HSLFSlideShow(hssA);
 
-               HSLFSlideShow hssB = new HSLFSlideShow(slTests.openResourceAsStream("incorrect_slide_order.ppt"));
-               ssB = new SlideShow(hssB);
+               HSLFSlideShowImpl hssB = new HSLFSlideShowImpl(slTests.openResourceAsStream("incorrect_slide_order.ppt"));
+               ssB = new HSLFSlideShow(hssB);
        }
 
        /**
@@ -49,8 +50,8 @@ public final class TestSlideOrdering extends TestCase {
        public void testSimpleCase() {
                assertEquals(2, ssA.getSlides().length);
 
-               Slide s1 = ssA.getSlides()[0];
-               Slide s2 = ssA.getSlides()[1];
+               HSLFSlide s1 = ssA.getSlides()[0];
+               HSLFSlide s2 = ssA.getSlides()[1];
 
                String[] firstTRs = new String[] { "This is a test title", "This is the title on page 2" };
 
@@ -64,9 +65,9 @@ public final class TestSlideOrdering extends TestCase {
        public void testComplexCase() {
                assertEquals(3, ssB.getSlides().length);
 
-               Slide s1 = ssB.getSlides()[0];
-               Slide s2 = ssB.getSlides()[1];
-               Slide s3 = ssB.getSlides()[2];
+               HSLFSlide s1 = ssB.getSlides()[0];
+               HSLFSlide s2 = ssB.getSlides()[1];
+               HSLFSlide s3 = ssB.getSlides()[2];
 
                String[] firstTRs = new String[] { "Slide 1", "Slide 2", "Slide 3" };
 
@@ -86,8 +87,8 @@ public final class TestSlideOrdering extends TestCase {
        protected void assertSlideOrdering(String filename, String[] titles) throws Exception {
         POIDataSamples slTests = POIDataSamples.getSlideShowInstance();
 
-        SlideShow ppt = new SlideShow(slTests.openResourceAsStream(filename));
-               Slide[] slide = ppt.getSlides();
+        HSLFSlideShow ppt = new HSLFSlideShow(slTests.openResourceAsStream(filename));
+               HSLFSlide[] slide = ppt.getSlides();
 
                assertEquals(titles.length, slide.length);
                for (int i = 0; i < slide.length; i++) {
index 529555594a88687360ba7f5afe99ce2521cfda1a..9bbec5a24a9fffb9004fd70ec5ae1a8f5b3f2ec2 100644 (file)
@@ -37,9 +37,9 @@ public final class TestSoundData extends TestCase{
         //read the reference sound file
         byte[] ref_data = slTests.readFile("ringin.wav");
 
-        SlideShow ppt = new SlideShow(slTests.openResourceAsStream("sound.ppt"));
+        HSLFSlideShow ppt = new HSLFSlideShow(slTests.openResourceAsStream("sound.ppt"));
 
-        SoundData[] sound = ppt.getSoundData();
+        HSLFSoundData[] sound = ppt.getSoundData();
         assertEquals("Expected 1 sound", 1, sound.length);
 
         assertArrayEquals(ref_data, sound[0].getData());
index 24d5d6f55420cd6faecd23a1f79776cee38e51df..4f42af81daeb69c50affaa9aeca40c66346d4db7 100644 (file)
@@ -22,9 +22,9 @@ package org.apache.poi.hslf.usermodel;
 import junit.framework.TestCase;
 
 import org.apache.poi.hslf.model.HSLFShape;
-import org.apache.poi.hslf.model.Slide;
+import org.apache.poi.hslf.model.HSLFSlide;
 import org.apache.poi.hslf.model.Table;
-import org.apache.poi.hslf.model.TextRun;
+import org.apache.poi.hslf.model.HSLFTextParagraph;
 import org.apache.poi.POIDataSamples;
 
 
@@ -40,18 +40,18 @@ public final class TestTable extends TestCase {
        }
 
        public void testTable() throws Exception {
-               SlideShow ppt = new SlideShow(_slTests.openResourceAsStream("54111.ppt"));
+               HSLFSlideShow ppt = new HSLFSlideShow(_slTests.openResourceAsStream("54111.ppt"));
                assertTrue("No Exceptions while reading file", true);
 
-               final Slide[] slides = ppt.getSlides();
+               final HSLFSlide[] slides = ppt.getSlides();
                assertEquals(1, slides.length);
                checkSlide(slides[0]);
        }
-       private void checkSlide(final Slide s) {
-               TextRun[] textRuns = s.getTextRuns();
+       private void checkSlide(final HSLFSlide s) {
+               HSLFTextParagraph[] textRuns = s.getTextRuns();
                assertEquals(2, textRuns.length);
 
-               RichTextRun textRun = textRuns[0].getRichTextRuns()[0];
+               HSLFTextRun textRun = textRuns[0].getRichTextRuns()[0];
                assertEquals("Table sample", textRun.getRawText().trim());
                assertEquals(1, textRuns[0].getRichTextRuns().length);
                assertFalse(textRun.isBullet());
@@ -66,7 +66,7 @@ public final class TestTable extends TestCase {
                assertEquals(4, table.getNumberOfColumns());
                assertEquals(6, table.getNumberOfRows());
                for (int x = 0; x < 4; x ++) {
-                       assertEquals("TH Cell " + (x + 1), table.getCell(0, x).getTextRun().getRawText());
+                       assertEquals("TH Cell " + (x + 1), table.getCell(0, x).getTextParagraph().getRawText());
                        for (int y = 1; y < 6; y++) {
                                assertEquals("Row " + y + ", Cell " + (x + 1), table.getCell(y, x).getText());
                        }