 {
     include "../core/Version.as";
 
+	//--------------------------------------------------------------------------
+    //
+    //  Class variables
+    //
+    //--------------------------------------------------------------------------
+	    
+    // We can re-use single instances of a few FTE classes over and over,
+    // since they just serve as a factory for the TextLines that we care about.
+    
+    /**
+	 *  @private
+	 */
+	private static var staticTextBlock:TextBlock = new TextBlock();
+
+	/**
+	 *  @private
+	 */
+	private static var staticTextElement:TextElement = new TextElement();
+
+    /**
+     *  @private
+     */
+    private static var staticSpaceJustifier:SpaceJustifier =
+        new SpaceJustifier();
+
+    /**
+     *  @private
+     */
+    private static var staticEastAsianJustifier:EastAsianJustifier =
+        new EastAsianJustifier();
+
     //--------------------------------------------------------------------------
     //
     //  Class methods

            elementFormat.trackingRight = value;
    }

    /**
     *  @private
     */
    private function setTabStops(textBlockComposer:TextBlockComposer):void
    {
        var value:* = getStyle("tabStops");
        var tabStops:Vector.<TabStop>;
        
        if (value is Vector.<TabStop>)
        {
            tabStops = value;
        }
        else if (value is Array)
        {
            var n:int = value.length;
            tabStops = new Vector.<TabStop>(n);
            for (var i:int = 0; i < n; i++)
            {
                tabStops[i] = value[i];
            }
        }
        else
        {
            tabStops = new Vector.<TabStop>();
        }   

        textBlockComposer.tabStops = tabStops;
    }
}

}

        s = getStyle("typographicCase");
        if (s != null)
        	elementFormat.typographicCase = s;

		return elementFormat;
	}

    /**
     *  @private
