You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by qu...@apache.org on 2015/06/01 00:26:44 UTC

[2/6] git commit: [flex-utilities] [refs/heads/develop] - Added ApacheURLLoader component that extends URLLoader. This new component is only different from URLLoader in that it looks for https connections and uses as3httpclient for these connections to b

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/bd083afa/installer/src/InstallApacheFlex.mxml
----------------------------------------------------------------------
diff --git a/installer/src/InstallApacheFlex.mxml b/installer/src/InstallApacheFlex.mxml
index 830a223..6c91555 100644
--- a/installer/src/InstallApacheFlex.mxml
+++ b/installer/src/InstallApacheFlex.mxml
@@ -101,7 +101,7 @@ variables are not required because the locations of these pieces are known.
     <fx:Script><![CDATA[
         import flash.globalization.LocaleID;
         import flash.globalization.StringTools;
-        
+
         import mx.collections.ArrayCollection;
         import mx.core.IFlexDisplayObject;
         import mx.events.FlexEvent;
@@ -113,15 +113,19 @@ variables are not required because the locations of these pieces are known.
         import mx.rpc.events.ResultEvent;
         import mx.rpc.http.HTTPService;
         import mx.utils.StringUtil;
-        
+
+        import org.apache.flex.packageflexsdk.util.ApacheURLLoader;
+
         import spark.events.IndexChangeEvent;
         import spark.events.TextOperationEvent;
-        
+
         // This force-links all of the ant task handlers into the Installer.
         // The Installer doesn't use most of them directly but some script
         // it runs might.
-        import AntClasses; AntClasses;
-         
+        import AntClasses;
+
+        AntClasses;
+
         import org.apache.flex.ant.Ant;
         import org.apache.flex.ant.tags.Checksum;
         import org.apache.flex.ant.tags.Copy;
@@ -144,16 +148,16 @@ variables are not required because the locations of these pieces are known.
         import org.as3commons.zip.ZipEvent;
         import org.as3commons.zip.ZipFile;
         import org.osmf.utils.OSMFStrings;
-        
+
         import ws.tink.spark.controls.StepItem;
         import ws.tink.spark.skins.controls.InstallApacheFlexSkin;
-        
+
         // embed us strings so we can always have them if we can't get to the locale files
         [Embed(source="properties/en_US.properties", mimeType="application/octet-stream")]
         private var en_US_Properties:Class;
-        
+
         private var cleanedUp:Boolean;
-        
+
         private var _mirrorURLCGI:String;
         private var _useMirror:Boolean = true;
         private var _latestVersion:String;
@@ -170,21 +174,21 @@ variables are not required because the locations of these pieces are known.
         private var nocache:Boolean = true;
         private var wasAborted:Boolean;
         private var newSDKSelected:Boolean = true;
-        
+
         public var installerAppPath:String;
         public var installerAppFileName:String;
-        
+
         // loader needs to be in instance var otherwise it can get GC'd.
         // We only load one thing at a time, so we can all share this
         // var
-        private var loader:URLLoader;
-        
+        private var loader:ApacheURLLoader;
+
         /**
          * Utility Singleton Instances
          */
         private var _md5CompareUtil:MD5CompareUtil = MD5CompareUtil.instance;
         private var _mirrorURLUtil:MirrorURLUtil = MirrorURLUtil.instance;
-        
+
         /**
          * Apache Flex binary distribution
          *
@@ -197,16 +201,19 @@ variables are not required because the locations of these pieces are known.
         private var APACHE_FLEX_BIN_DISTRO_FILE_SHORT:String;
         private var APACHE_FLEX_BIN_DISTRO_URL:String;
         private var APACHE_FLEX_BIN_INSTALLER_URL:String;
-        [Bindable] private var APACHE_FLEX_BIN_DISTRO_VERSION:String = "";
-        [Bindable] private var APACHE_FLEX_BIN_DISTRO_VERSION_DISPLAY:String = "";
-        
+        [Bindable]
+        private var APACHE_FLEX_BIN_DISTRO_VERSION:String = "";
+        [Bindable]
+        private var APACHE_FLEX_BIN_DISTRO_VERSION_DISPLAY:String = "";
+
         /**
          * Adobe AIR SDK
          *
          * Values stored in sdk-installer-config.xml edit file to change
          *
          */
-        [Bindable] private var AIR_VERSIONS:ArrayCollection = new ArrayCollection();
+        [Bindable]
+        private var AIR_VERSIONS:ArrayCollection = new ArrayCollection();
         private var AIR_VERSION:String = "14.0";
         private var ADOBE_AIR_SDK_WIN_FILE:String;
         private var ADOBE_AIR_SDK_WIN_URL:String;
@@ -214,27 +221,29 @@ variables are not required because the locations of these pieces are known.
         private var ADOBE_AIR_SDK_MAC_URL:String;
         private var ADOBE_AIR_SDK_LINUX_FILE:String;
         private var ADOBE_AIR_SDK_LINUX_URL:String;
-        
+
         /**
          * Adobe Flash Player
          *
          * Values stored in sdk-installer-config.xml edit file to change
          *
          */
-        [Bindable] private var FLASH_PLAYER_VERSIONS:ArrayCollection = new ArrayCollection();
+        [Bindable]
+        private var FLASH_PLAYER_VERSIONS:ArrayCollection = new ArrayCollection();
         private var FLASH_PLAYER_VERSION:String = "11.1";
         private var FLASH_PLAYER_SWF_VERSION:String = "14";
         private var ADOBE_FB_GLOBALPLAYER_SWC_FILE:String;
         private var ADOBE_FB_GLOBALPLAYER_SWC_URL:String;
-        
+
         /**
          * Apache Flex
          *
          * Values stored in sdk-installer-config.xml edit file to change
          *
          */
-        [Bindable] private var FLEX_VERSIONS:ArrayCollection = new ArrayCollection();
-        
+        [Bindable]
+        private var FLEX_VERSIONS:ArrayCollection = new ArrayCollection();
+
         /**
          *
          * SwfObject
@@ -242,7 +251,7 @@ variables are not required because the locations of these pieces are known.
          */
         private var SWF_OBJECT_FILE:String;
         private var SWF_OBJECT_URL:String;
-        
+
         /**
          * Optional installs
          *
@@ -250,10 +259,10 @@ variables are not required because the locations of these pieces are known.
         private var OSMF_SWC_FILE:String;
         private var OSMF_SWC_URL:String;
         private var OSMF_SWF_FILE:String = "osmf.swf";
-        
+
         private var BLAZEDS_FILE:String;
         private var BLAZEDS_URL:String;
-        
+
         private var AFE_FILE:String;
         private var AFE_URL:String;
         private var AGLJ40_FILE:String;
@@ -262,7 +271,7 @@ variables are not required because the locations of these pieces are known.
         private var FLEX_FONTKIT_URL:String;
         private var RIDEAU_FILE:String;
         private var RIDEAU_URL:String;
-        
+
         [Bindable]
         private var _flexHome:String;
         private var _flexTemp:String;
@@ -279,21 +288,21 @@ variables are not required because the locations of these pieces are known.
         private var _rideauJarFile:File;
         private var _osmfSWCFile:File;
         private var _osmfSWFFile:File;
-        
+
         private var _os:OS = new OS();
-        private var _loader:URLLoader;
+        private var _loader:ApacheURLLoader;
         private var _process:NativeProcess;
         private var _previousDisplayedPercent:int = 0;
         private var _fileUnzipErrorFunction:Function;
         private var _numOptionalComponents:int = 4;
         private var _numOptionalComponentsPermissions:int = 0;
         private var _useOSMF2:Boolean = true;
-        
+
         private var languageOverride:String;
         private var configOverride:String = "";
         private var stepsOverride:String = "";
         private var installOverride:String = "";
-        
+
         private var overlaying:Boolean;
         private var usingXML:Object;
         private var additionalProps:Object = {};
@@ -304,14 +313,14 @@ variables are not required because the locations of these pieces are known.
         private var stepIDs:Vector.<String> = new Vector.<String>();
         private var stepLabels:Vector.<String> = new Vector.<String>();
         private var currentStep:int = 0;
-        
+
         private var lastLicenseItemSelected:int = 0;
-        
+
         private var customMenuItem1:ContextMenuItem = new ContextMenuItem("Show Dev Builds");
         private var customMenuItem2:ContextMenuItem = new ContextMenuItem("Configure Download Cache...");
         private var customMenuItem3:ContextMenuItem = new ContextMenuItem("Enable Verbose Logging");
         private var customMenuItem4:ContextMenuItem = new ContextMenuItem("Enable Progress Logging");
-        
+
         [Bindable]
         private var _viewResourceConstants:ViewResourceConstants;
         [Bindable]
@@ -326,14 +335,14 @@ variables are not required because the locations of these pieces are known.
         private var _currentLicenseLabel:String;
         [Bindable]
         public var _messages:ArrayCollection = new ArrayCollection();
-        
+
         private var _lastTag:String;
         private var _lastPublicMessage:String;
         public function set lastPublicMessage(s:String):void
         {
             var tag:String;
             var c:int;
-            
+
             c = s.indexOf("[");
             if (c != -1)
             {
@@ -345,56 +354,68 @@ variables are not required because the locations of these pieces are known.
                 }
             }
             if (tag && tag == _lastTag && tag == "get")
+            {
                 _lastPublicMessage += "\n" + s;
+            }
             else
+            {
                 _lastPublicMessage = s;
+            }
             _lastTag = tag;
             dispatchEvent(new Event("messageChanged"));
         }
-        
+
         [Bindable("messageChanged")]
         public function get lastFilteredPublicMessage():String
         {
             return _lastPublicMessage;
         }
-        
+
         private function getInvoke():void
         {
             var nativeApplication:NativeApplication = NativeApplication.nativeApplication;
             nativeApplication.addEventListener(InvokeEvent.INVOKE, parseArgs);
         }
-        
-        [Bindable] private var _standardButtonWidth:Number = 88;
-        
+
+        [Bindable]
+        private var _standardButtonWidth:Number = 88;
+
         public function setButtonWidths():void
         {
             var calc:CalcButtonWidth = new CalcButtonWidth(hiddenButton);
-            
+
             calc.buttonWidth(installLogBtn);
             calc.buttonWidth(openApacheFlexFolderBtn);
-            
+
             _standardButtonWidth = calc.maxButtonWidth([installBtn, browseBtn, closeBtn, nextBtn, firstStepBackBtn, secondStepBackBtn]);
         }
-        
+
         private function parseArgs(event:InvokeEvent):void
         {
-            for each (var s:String in event.arguments) {
-                if (s.indexOf("-language=") == 0) {
+            for each (var s:String in event.arguments)
+            {
+                if (s.indexOf("-language=") == 0)
+                {
                     languageOverride = s.substring(10);
                 }
-                if (s.indexOf("-config=") == 0) {
+                if (s.indexOf("-config=") == 0)
+                {
                     configOverride = s.substring(8);
                 }
-                if (s.indexOf("-install=") == 0) {
+                if (s.indexOf("-install=") == 0)
+                {
                     installOverride = s.substring(9);
                 }
-                if (s.indexOf("-steps=") == 0) {
+                if (s.indexOf("-steps=") == 0)
+                {
                     stepsOverride = s.substring(7);
                 }
-                if (s.indexOf("-debug") == 0) {
+                if (s.indexOf("-debug") == 0)
+                {
                     debugMode = true;
                 }
-                if (s.indexOf("-log=") == 0) {
+                if (s.indexOf("-log=") == 0)
+                {
                     debugMode = true;
                     logFile = s.substring(5);
                 }
@@ -404,7 +425,7 @@ variables are not required because the locations of these pieces are known.
             downloadCacheFolder = so.data.downloadCacheFolder;
             userDefaultLanguage = so.data.userDefaultLanguage;
         }
-        
+
         protected function handleApplicationComplete(event:FlexEvent):void
         {
             CursorManager.setBusyCursor();
@@ -432,11 +453,13 @@ variables are not required because the locations of these pieces are known.
                 abortInstallation("Internet connection unavailable.");
             }
         }
-        
+
         private function uncaughtErrorHandler(event:UncaughtErrorEvent):void
         {
             if (currentStep > 0)
+            {
                 updateActivityStep(stepLabels[currentStep - 1], StepItem.ERROR);
+            }
             if (event.error is Error)
             {
                 var error:Error = event.error as Error;
@@ -457,7 +480,7 @@ variables are not required because the locations of these pieces are known.
                 abortInstallation(event.toString());
             }
         }
-        
+
         /**
          * Define on ResourceManager all keys for translation.
          * If some key is not present on any other language selected by user, the default value will be displayed
@@ -467,7 +490,7 @@ variables are not required because the locations of these pieces are known.
         {
             selectDefaultLanguage();
         }
-        
+
         private function getIndexOfEnUS():int
         {
             for (var i:int = 0; i < _langSelect.dataProvider.length; i++)
@@ -479,24 +502,26 @@ variables are not required because the locations of these pieces are known.
             }
             return -1;
         }
-        
+
         private function updateWindowTitle():void
         {
             if (_viewResourceConstants)
+            {
                 this.nativeWindow.title = StringUtil.substitute(_viewResourceConstants.INFO_WINDOW_TITLE, [APACHE_FLEX_BIN_DISTRO_VERSION_DISPLAY]);
+            }
         }
-        
+
         protected function selectDefaultLanguageInEmergency():void
         {
             loadLanguage("en_US", loadUSInEmergencyComplete);
         }
-        
+
         private function loadUSInEmergencyComplete():void
         {
             _viewResourceConstants = ViewResourceConstants.instance;
             _viewResourceConstants.update();
         }
-        
+
         protected function selectDefaultLanguage():void
         {
             loadLanguage("en_US", loadUSComplete);
@@ -505,7 +530,7 @@ variables are not required because the locations of these pieces are known.
         private function loadUSComplete():void
         {
             var userLocale:String;
-            
+
             if (userDefaultLanguage)
             {
                 userLocale = userDefaultLanguage;
@@ -514,28 +539,30 @@ variables are not required because the locations of these pieces are known.
             {
                 userLocale = new StringTools(LocaleID.DEFAULT).actualLocaleIDName.replace("-", "_");
             }
-            
+
             if (languageOverride)
             {
                 userLocale = languageOverride;
             }
-            
+
             loadDefaultLanguage(userLocale);
         }
-        
+
         private function loadDefaultLanguage(userLocale:String):void
         {
             loadLanguage(userLocale, defaultLanguageLoaded);
         }
-        
+
         private var languageURL:String;
         private var languageID:String;
-        
+
         private function loadLanguage(userLocale:String, completeFunction:Function):void
         {
             if (languageURL && loader) // busy loading another language
+            {
                 loader.close();
-            
+            }
+
             if (userLocale == "en_US")
             {
                 var ba:ByteArray = new en_US_Properties() as ByteArray;
@@ -545,16 +572,19 @@ variables are not required because the locations of these pieces are known.
                 return;
             }
             var n:int = supportedLanguages.length;
-            for (var i:int = 0; i < n; i++) {
-                if (supportedLanguages[i].data == userLocale) {
+            for (var i:int = 0; i < n; i++)
+            {
+                if (supportedLanguages[i].data == userLocale)
+                {
                     languageID = userLocale;
                     languageURL = supportedLanguages[i].path;
                     var url:URLRequest = new URLRequest(languageURL);
-                    loader = new URLLoader();
+                    loader = new ApacheURLLoader();
                     loader.dataFormat = URLLoaderDataFormat.TEXT;
                     loader.addEventListener(IOErrorEvent.IO_ERROR, languageLoadErrorHandler);
                     loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, languageLoadErrorHandler);
-                    loader.addEventListener(Event.COMPLETE, function(e:Event):void {
+                    loader.addEventListener(Event.COMPLETE, function (e:Event):void
+                    {
                         languageURL = null;
                         installLanguage(userLocale, loader.data);
                         completeFunction();
@@ -565,47 +595,55 @@ variables are not required because the locations of these pieces are known.
             }
             completeFunction();
         }
-        
+
         private function installLanguage(userLocale:String, data:String):void
         {
             var resource:ResourceBundle = new ResourceBundle(userLocale, ViewResourceConstants.BUNDLE_NAME);
             var variables:Array;
             if (data.indexOf("\r\n") != -1)
+            {
                 variables = data.split("\r\n");
+            }
             else
+            {
                 variables = data.split("\n");
+            }
             for each (var p:String in variables)
             {
                 if (p.charAt(0) == "#")
+                {
                     continue;
-                
+                }
+
                 var c:int = p.indexOf("=");
                 if (c != -1)
                 {
                     var key:String = p.substr(0, c);
-                    var value:String = p.substr(c+1);
+                    var value:String = p.substr(c + 1);
                     while (value.indexOf("\\n") != -1)
+                    {
                         value = value.replace("\\n", "\n");
+                    }
                     resource.content[key] = value;
                 }
             }
-            
+
             resourceManager.addResourceBundle(resource);
         }
-        
+
         private function languageLoadErrorHandler(event:Event):void
         {
             log("Unable to load language file " + languageURL);
             log(event.toString());
             abortInstallation("Unable to load language file " + languageURL);
         }
-        
+
         private function defaultLanguageLoaded():void
         {
-            resourceManager.localeChain = [ ViewResourceConstants.DEFAULT_LANGUAGE ];
-            
+            resourceManager.localeChain = [ViewResourceConstants.DEFAULT_LANGUAGE];
+
             var userLocale:String;
-            
+
             if (userDefaultLanguage)
             {
                 userLocale = userDefaultLanguage;
@@ -614,79 +652,85 @@ variables are not required because the locations of these pieces are known.
             {
                 userLocale = new StringTools(LocaleID.DEFAULT).actualLocaleIDName.replace("-", "_");
             }
-            
+
             if (languageOverride)
             {
                 userLocale = languageOverride;
             }
             log("Using Locale: " + userLocale);
-            
+
             var n:int = supportedLanguages.length;
             for (var i:int = 0; i < n; i++)
             {
                 if (supportedLanguages[i].data == userLocale)
                 {
                     _langSelect.selectedIndex = i;
-                    
-                    resourceManager.localeChain = [ userLocale, "en_US" ];
-                    
+
+                    resourceManager.localeChain = [userLocale, "en_US"];
+
                     break;
                 }
             }
             _viewResourceConstants = ViewResourceConstants.instance;
-            
+
             resourceManager.addEventListener(Event.CHANGE, _viewResourceConstants.update);
-            
+
             _viewResourceConstants.update();
             setButtonWidths();
             directoryBtn.enabled = true;
-            
+
             updateWindow();
-            
+
             _mirrorURLUtil.logMessages = new LogMessagesVO(_viewResourceConstants.FETCH_MIRROR_CGI, _viewResourceConstants.FETCH_MIRROR_CGI_DONE,
                     _viewResourceConstants.FETCH_MIRROR_CGI_ERROR);
-            
+
             _mirrorURLUtil.getMirrorURL(Constants.APACHE_FLEX_URL + _mirrorURLCGI, getMirrorURLResultHandler);
             CursorManager.removeBusyCursor();
-            
+
             checkValidOS();
         }
-        
+
         protected function updateWindow():void
         {
             updateWindowTitle();
-            
+
             this.nativeWindow.x = Screen.mainScreen.bounds.width / 2 - this.nativeWindow.width / 2;
             this.nativeWindow.y = Screen.mainScreen.bounds.height / 2 - this.nativeWindow.height / 2;
         }
-        
+
         protected function loadXML():void
         {
             var request:URLRequest;
-            
-            if (configOverride != "") {
+
+            if (configOverride != "")
+            {
                 request = new URLRequest(configOverride);
-            } else {
+            }
+            else
+            {
                 request = new URLRequest(Constants.APACHE_FLEX_URL + Constants.CONFIG_XML_NAME);
                 //request = new URLRequest(Constants.CONFIG_XML_NAME);
             }
-            
-            _loader = new URLLoader();
-            
-            try {
+
+            _loader = new ApacheURLLoader();
+
+            try
+            {
                 _loader.load(request);
-            } catch (error:Error) {
+            }
+            catch (error:Error)
+            {
                 selectDefaultLanguageInEmergency();
                 log("Unable to load " + Constants.APACHE_FLEX_URL + Constants.CONFIG_XML_NAME);
                 log(_viewResourceConstants.ERROR_CONFIG_XML_LOAD + error.errorID + " " + error.message);
                 abortInstallation("Unable to load " + Constants.APACHE_FLEX_URL + Constants.CONFIG_XML_NAME);
             }
-            
+
             _loader.addEventListener(HTTPStatusEvent.HTTP_RESPONSE_STATUS, xmlLoadStatus, false, 0, true);
             _loader.addEventListener(IOErrorEvent.IO_ERROR, xmlError, false, 0, true);
             _loader.addEventListener(Event.COMPLETE, xmlLoaded, false, 0, true);
         }
-        
+
         protected function xmlLoadStatus(event:HTTPStatusEvent):void
         {
             if (event.status >= 400)
@@ -695,7 +739,7 @@ variables are not required because the locations of these pieces are known.
                 log("\tServer Status: " + event.status);
             }
         }
-        
+
         protected function xmlError(event:IOErrorEvent):void
         {
             selectDefaultLanguageInEmergency();
@@ -703,40 +747,43 @@ variables are not required because the locations of these pieces are known.
             log(_viewResourceConstants.ERROR_CONFIG_XML_LOAD + event.errorID);
             abortInstallation("Unable to load " + Constants.APACHE_FLEX_URL + Constants.CONFIG_XML_NAME + " " + event.toString());
         }
-        
+
         protected function xmlLoaded(event:Event):void
         {
-            if (setXMLVariables()) {
+            if (setXMLVariables())
+            {
                 _langSelect.dataProvider = supportedLanguages;
                 _langSelect.selectedIndex = getIndexOfEnUS();
                 _langSelect.enabled = true;
                 defineResourceManagerDefaultLanguage();
             }
         }
-        
+
         protected function checkValidOS():void
         {
             if (_os.isOther())
+            {
                 log(_viewResourceConstants.ERROR_UNSUPPORTED_OPERATING_SYSTEM);
+            }
         }
-        
+
         private function devBuildFilterFunction(o:Object):Boolean
         {
             return !o.devBuild;
         }
-        
+
         private function debugModeHandler(event:Event):void
         {
             debugMode = true;
             customMenuItem3.caption = "Verbose Logging Enabled";
         }
-        
+
         private function debugProgressHandler(event:Event):void
         {
             logProgressEvents = true;
             customMenuItem4.caption = "Logging Progress Events";
         }
-        
+
         private function devBuildShowHandler(event:Event):void
         {
             var item:Object = flexVersion.selectedItem;
@@ -745,7 +792,7 @@ variables are not required because the locations of these pieces are known.
             flexVersion.selectedItem = item;
             customMenuItem1.caption = "Showing Dev Builds";
         }
-        
+
         private function downloadCacheHandler(event:Event):void
         {
             var dlg:CacheDialog = new CacheDialog();
@@ -755,7 +802,7 @@ variables are not required because the locations of these pieces are known.
             dlg.cb.selected = usingDownloadCache;
             dlg.folder.text = downloadCacheFolder;
         }
-        
+
         private function updateDownloadCache(event:Event):void
         {
             downloadCacheFolder = event.target.folder.text;
@@ -765,13 +812,13 @@ variables are not required because the locations of these pieces are known.
             so.data.downloadCacheFolder = downloadCacheFolder;
             so.flush();
         }
-        
+
         protected function setXMLVariables():Boolean
         {
-            try 
+            try
             {
                 var data:XML = XML(_loader.data);
-            } 
+            }
             catch (e:Error)
             {
                 log("Error parsing configuration file");
@@ -782,57 +829,67 @@ variables are not required because the locations of these pieces are known.
             if (firstTime)
             {
                 firstTime = false;
-                
+
                 _latestVersion = data.version.latest.toString();
-                
+
                 installerAppPath = data.installer.(@name == 'SDKInstallerApp').@path.toString();
                 installerAppFileName = data.installer.(@name == 'SDKInstallerApp').@file.toString();
-                
+
                 _mirrorURLCGI = data.mirror.(@name == 'MirrorURLCGI').@file.toString();
-                
+
                 customMenuItem1.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, devBuildShowHandler);
                 customMenuItem2.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, downloadCacheHandler);
                 customMenuItem3.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, debugModeHandler);
                 customMenuItem4.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, debugProgressHandler);
-                
+
                 var contextMenuCustomItems:Array = ContextMenu(contextMenu).customItems;
                 contextMenuCustomItems.push(customMenuItem1);
                 contextMenuCustomItems.push(customMenuItem2);
                 contextMenuCustomItems.push(customMenuItem3);
                 contextMenuCustomItems.push(customMenuItem4);
-                
+
                 var name:String;
                 var versionString:String;
                 var versionID:String;
-                
+
                 var languages:XMLList = data.languages.children();
                 for each (var lang:XML in languages)
                 {
-                    var item:Object = {label: lang.@name.toString(), data: lang.@id.toString(), path: lang.@path.toString() };
+                    var item:Object = {
+                        label: lang.@name.toString(),
+                        data: lang.@id.toString(),
+                        path: lang.@path.toString()
+                    };
                     supportedLanguages.addItem(item);
                 }
-                
+
                 var airData:XMLList = data.airsdk[_os.os].versions;
                 var airVersionList:XMLList = airData[0].children();
                 var airVersions:Array = [];
                 var selected:String = airData[0]["@default"].toString();
-                for each (var airVersion:XML in airVersionList) {
+                for each (var airVersion:XML in airVersionList)
+                {
                     var displayVersion:String = airVersion.@displayVersion.toString();
                     versionString = airVersion.@version.toString();
                     versionID = null;
                     if (airVersion.@versionID.length() > 0)
+                    {
                         versionID = airVersion.@versionID.toString();
+                    }
                     airVersions.push(versionString);
                     var airPath:String = airVersion.path.toString();
                     var airFile:String = airVersion.file.toString();
-                    AIR_VERSIONS.addItem({label:"AIR " + displayVersion, version: versionString, versionID: versionID, 
-                        path: airPath, file: airFile});
+                    AIR_VERSIONS.addItem({
+                        label: "AIR " + displayVersion, version: versionString, versionID: versionID,
+                        path: airPath, file: airFile
+                    });
                 }
-                
-                if (this.airVersion.selectedIndex == -1) {
+
+                if (this.airVersion.selectedIndex == -1)
+                {
                     this.airVersion.selectedIndex = airVersions.indexOf(selected);
                 }
-                
+
                 var flexData:XMLList = data.products.children();
                 var selectedFlexVersion:int;
                 for each (var productData:XML in flexData)
@@ -844,7 +901,8 @@ variables are not required because the locations of these pieces are known.
                     var needsAIR:Boolean = productData.@needsAIR.toString() != "false";
                     var needsFlash:Boolean = productData.@needsFlash.toString() != "false";
                     var icon:String = productData.@icon.toString();
-                    for each (var productVersion:XML in productVersionList) {
+                    for each (var productVersion:XML in productVersionList)
+                    {
                         var shortName:String = productVersion.@file.toString();
                         var fileName:String = shortName + (_os.isWindows() ? Constants.ARCHIVE_EXTENSION_WIN : Constants.ARCHIVE_EXTENSION_MAC);
                         versionString = productVersion.@version.toString();
@@ -855,92 +913,109 @@ variables are not required because the locations of these pieces are known.
                         var legacy:Boolean = productVersion.@legacy.toString() == "true";
                         var nocache:Boolean = productVersion.@nocache.toString() == "true";
                         if (productVersion["@default"].length() == 1)
+                        {
                             selectedFlexVersion = FLEX_VERSIONS.length;
-                        FLEX_VERSIONS.addItem({shortName: shortName, fileName:fileName,label:label, version:ver,
-                            path:path, overlay: isOverlay, prefix: productPrefix, legacy: legacy, nocache: nocache,
-                            needsAIR: needsAIR, needsFlash: needsFlash, devBuild: devBuild, icon: icon});
+                        }
+                        FLEX_VERSIONS.addItem({
+                            shortName: shortName, fileName: fileName, label: label, version: ver,
+                            path: path, overlay: isOverlay, prefix: productPrefix, legacy: legacy, nocache: nocache,
+                            needsAIR: needsAIR, needsFlash: needsFlash, devBuild: devBuild, icon: icon
+                        });
                     }
                 }
-                
+
                 FLEX_VERSIONS.filterFunction = devBuildFilterFunction;
                 FLEX_VERSIONS.refresh();
                 flexVersion.validateNow();
-                
-                if (this.flexVersion.selectedIndex == -1) {
+
+                if (this.flexVersion.selectedIndex == -1)
+                {
                     this.flexVersion.selectedIndex = selectedFlexVersion;
                 }
-                
+
                 var selectedFlexVersionObject:Object = this.flexVersion.selectedItem;
                 updateFlexVersionStrings(selectedFlexVersionObject);
-                
-                if (!APACHE_FLEX_BIN_DISTRO_FILE || !APACHE_FLEX_BIN_DISTRO_PATH) {
+
+                if (!APACHE_FLEX_BIN_DISTRO_FILE || !APACHE_FLEX_BIN_DISTRO_PATH)
+                {
                     log(_viewResourceConstants.ERROR_INVALID_SDK_URL);
                     keepGoing = false;
                 }
-                
+
                 var flashData:XMLList = data.flashsdk.versions;
                 var flashVersionList:XMLList = flashData[0].children();
                 var flashPlayerVersions:Array = [];
                 selected = flashData[0]["@default"].toString();
-                for each (var flashVersion:XML in flashVersionList) {
+                for each (var flashVersion:XML in flashVersionList)
+                {
                     displayVersion = flashVersion.@displayVersion.toString();
                     versionString = flashVersion.@version.toString();
                     versionID = null;
                     if (flashVersion.@versionID.length() > 0)
+                    {
                         versionID = flashVersion.@versionID.toString();
+                    }
                     flashPlayerVersions.push(versionString);
-                    if (!_os.isLinux() || Number(versionString) <= 11.2) {
+                    if (!_os.isLinux() || Number(versionString) <= 11.2)
+                    {
                         var swfVersion:String = flashVersion.swfversion.toString();
                         var flashPath:String = flashVersion.path.toString();
                         var flashFile:String = flashVersion.file.toString();
-                        FLASH_PLAYER_VERSIONS.addItem({label:"Flash Player " + displayVersion, version:versionString, swfVersion:swfVersion,
-                            versionID: versionID, path: flashPath, file: flashFile});
+                        FLASH_PLAYER_VERSIONS.addItem({
+                            label: "Flash Player " + displayVersion, version: versionString, swfVersion: swfVersion,
+                            versionID: versionID, path: flashPath, file: flashFile
+                        });
                     }
                 }
-                
-                if (this.flashPlayerVersion.selectedIndex == -1) {
+
+                if (this.flashPlayerVersion.selectedIndex == -1)
+                {
                     this.flashPlayerVersion.selectedIndex = flashPlayerVersions.indexOf(selected);
                 }
             }
-            
-            ADOBE_AIR_SDK_WIN_FILE = data.airsdk.windows.versions.children().(@version==AIR_VERSION).file.toString();
-            ADOBE_AIR_SDK_WIN_URL = data.airsdk.windows.versions.children().(@version==AIR_VERSION).path.toString();
-            if (_os.isWindows() && (!ADOBE_AIR_SDK_WIN_FILE || !ADOBE_AIR_SDK_WIN_URL)) {
+
+            ADOBE_AIR_SDK_WIN_FILE = data.airsdk.windows.versions.children().(@version == AIR_VERSION).file.toString();
+            ADOBE_AIR_SDK_WIN_URL = data.airsdk.windows.versions.children().(@version == AIR_VERSION).path.toString();
+            if (_os.isWindows() && (!ADOBE_AIR_SDK_WIN_FILE || !ADOBE_AIR_SDK_WIN_URL))
+            {
                 log(_viewResourceConstants.ERROR_INVALID_AIR_SDK_URL_WINDOWS);
                 keepGoing = false;
             }
             ADOBE_AIR_SDK_WIN_URL += ADOBE_AIR_SDK_WIN_FILE;
-            
-            ADOBE_AIR_SDK_MAC_FILE = data.airsdk.mac.versions.children().(@version==AIR_VERSION).file.toString();
-            ADOBE_AIR_SDK_MAC_URL = data.airsdk.mac.versions.children().(@version==AIR_VERSION).path.toString();
-            if (_os.isMac() && (!ADOBE_AIR_SDK_MAC_FILE || !ADOBE_AIR_SDK_MAC_URL)) {
+
+            ADOBE_AIR_SDK_MAC_FILE = data.airsdk.mac.versions.children().(@version == AIR_VERSION).file.toString();
+            ADOBE_AIR_SDK_MAC_URL = data.airsdk.mac.versions.children().(@version == AIR_VERSION).path.toString();
+            if (_os.isMac() && (!ADOBE_AIR_SDK_MAC_FILE || !ADOBE_AIR_SDK_MAC_URL))
+            {
                 log(_viewResourceConstants.ERROR_INVALID_AIR_SDK_URL_MAC);
                 keepGoing = false;
             }
             ADOBE_AIR_SDK_MAC_URL += ADOBE_AIR_SDK_MAC_FILE;
-            
-            ADOBE_AIR_SDK_LINUX_FILE = data.airsdk.linux.versions.children().(@version==AIR_VERSION).file.toString();
-            ADOBE_AIR_SDK_LINUX_URL = data.airsdk.linux.versions.children().(@version==AIR_VERSION).path.toString();
-            if (_os.isLinux() && (!ADOBE_AIR_SDK_LINUX_FILE || !ADOBE_AIR_SDK_LINUX_URL)) {
+
+            ADOBE_AIR_SDK_LINUX_FILE = data.airsdk.linux.versions.children().(@version == AIR_VERSION).file.toString();
+            ADOBE_AIR_SDK_LINUX_URL = data.airsdk.linux.versions.children().(@version == AIR_VERSION).path.toString();
+            if (_os.isLinux() && (!ADOBE_AIR_SDK_LINUX_FILE || !ADOBE_AIR_SDK_LINUX_URL))
+            {
                 log(_viewResourceConstants.ERROR_INVALID_AIR_SDK_URL_LINUX);
                 keepGoing = false;
             }
             ADOBE_AIR_SDK_LINUX_URL += ADOBE_AIR_SDK_LINUX_FILE;
-            
-            ADOBE_FB_GLOBALPLAYER_SWC_FILE = data.flashsdk.versions.children().(@version==FLASH_PLAYER_VERSION).file.toString();
-            ADOBE_FB_GLOBALPLAYER_SWC_URL = data.flashsdk.versions.children().(@version==FLASH_PLAYER_VERSION).path.toString();
-            FLASH_PLAYER_SWF_VERSION = data.flashsdk.versions.children().(@version==FLASH_PLAYER_VERSION).swfversion.toString();
-            if (!ADOBE_FB_GLOBALPLAYER_SWC_FILE || !ADOBE_FB_GLOBALPLAYER_SWC_URL) {
+
+            ADOBE_FB_GLOBALPLAYER_SWC_FILE = data.flashsdk.versions.children().(@version == FLASH_PLAYER_VERSION).file.toString();
+            ADOBE_FB_GLOBALPLAYER_SWC_URL = data.flashsdk.versions.children().(@version == FLASH_PLAYER_VERSION).path.toString();
+            FLASH_PLAYER_SWF_VERSION = data.flashsdk.versions.children().(@version == FLASH_PLAYER_VERSION).swfversion.toString();
+            if (!ADOBE_FB_GLOBALPLAYER_SWC_FILE || !ADOBE_FB_GLOBALPLAYER_SWC_URL)
+            {
                 log(_viewResourceConstants.ERROR_INVALID_FLASH_PLAYER_SWC_URL);
                 keepGoing = false;
             }
             ADOBE_FB_GLOBALPLAYER_SWC_URL += ADOBE_FB_GLOBALPLAYER_SWC_FILE;
-            
+
             SWF_OBJECT_FILE = data.swfobject.@file.toString();
             SWF_OBJECT_URL = data.swfobject.@path.toString();
-            
+
             //Supporting OSMF 2.0 from 4.11 onwards.  
-            if(APACHE_FLEX_BIN_DISTRO_VERSION == "4.9.1" || APACHE_FLEX_BIN_DISTRO_VERSION == "4.10.0" )
+            if (APACHE_FLEX_BIN_DISTRO_VERSION == "4.9.1" || APACHE_FLEX_BIN_DISTRO_VERSION == "4.10.0")
             {
                 OSMF_SWC_FILE = data.OSMF_SWC.@file.toString();
                 OSMF_SWC_URL = data.OSMF_SWC.@path.toString();
@@ -952,40 +1027,41 @@ variables are not required because the locations of these pieces are known.
                 OSMF_SWC_URL = data["OSMF_SWC_2.0"].@path.toString();
                 _useOSMF2 = true;
             }
-            
+
             BLAZEDS_FILE = data.BlazeDS.@file.toString();
             BLAZEDS_URL = data.BlazeDS.@path.toString();
-            
+
             AFE_FILE = data.fontswf.afe.@file.toString();
             AFE_URL = data.fontswf.afe.@path.toString();
-            
+
             AGLJ40_FILE = data.fontswf.aglj40.@file.toString();
             AGLJ40_URL = data.fontswf.aglj40.@path.toString();
-            
+
             FLEX_FONTKIT_FILE = data.fontswf["flex-fontkit"].@file.toString();
             FLEX_FONTKIT_URL = data.fontswf["flex-fontkit"].@path.toString();
-            
+
             RIDEAU_FILE = data.fontswf.rideau.@file.toString();
             RIDEAU_URL = data.fontswf.rideau.@path.toString();
-            
-            
+
+
             return keepGoing;
         }
-        
+
         protected function updateFlexVersionStrings(selectedFlexVersionObject:Object):void
         {
             APACHE_FLEX_BIN_DISTRO_FILE_SHORT = selectedFlexVersionObject.shortName;
             APACHE_FLEX_BIN_DISTRO_VERSION = selectedFlexVersionObject.version;
             APACHE_FLEX_BIN_DISTRO_VERSION_DISPLAY = selectedFlexVersionObject.label;
-            
+
             APACHE_FLEX_BIN_DISTRO_FILE = selectedFlexVersionObject.fileName;
             APACHE_FLEX_BIN_DISTRO_PATH = selectedFlexVersionObject.path;
-            legacy =  selectedFlexVersionObject.legacy;
+            legacy = selectedFlexVersionObject.legacy;
             nocache = selectedFlexVersionObject.nocache;
             APACHE_FLEX_BIN_INSTALLER_FILE = selectedFlexVersionObject.prefix + "installer-config.xml";
-            
+
             // ApacheFlex is full URL so download directly and dont use mirror useful for testing release candidates
-            if (APACHE_FLEX_BIN_DISTRO_PATH.indexOf("http") == 0) {
+            if (APACHE_FLEX_BIN_DISTRO_PATH.indexOf("http") == 0)
+            {
                 _useMirror = false;
             }
             else
@@ -995,69 +1071,85 @@ variables are not required because the locations of these pieces are known.
 
             newSDKSelected = true;
         }
-        
+
         private function useMirrorPath(path:String):String
         {
-            if (_useMirror) {
+            if (_useMirror)
+            {
                 return path;
             }
-            
+
             return "";
         }
-        
+
         private function getMirrorURLResultHandler():void
         {
             var logMessages:ArrayCollection = ILog(_mirrorURLUtil).log;
             var i:int;
             var n:int = logMessages.length;
-            for (i = 0; i < n; i++) {
+            for (i = 0; i < n; i++)
+            {
                 log(String(logMessages.getItemAt(i)));
             }
-            
-            if (_mirrorURLUtil.errorOccurred) {
+
+            if (_mirrorURLUtil.errorOccurred)
+            {
                 abortInstallation("mirrorURLUtil.errorOccurred");
                 main();
-            } else {
+            }
+            else
+            {
                 updatePaths();
             }
-            
+
         }
-        
+
         protected function updatePaths():void
         {
             if (APACHE_FLEX_BIN_DISTRO_PATH.substr(0, Constants.URL_PREFIX.length) == Constants.URL_PREFIX
-                || APACHE_FLEX_BIN_DISTRO_PATH.substr(0, Constants.FILE_PREFIX.length) == Constants.FILE_PREFIX
-                || APACHE_FLEX_BIN_DISTRO_PATH.substr(0, Constants.HTTPS_PREFIX.length) == Constants.HTTPS_PREFIX) {
+                    || APACHE_FLEX_BIN_DISTRO_PATH.substr(0, Constants.FILE_PREFIX.length) == Constants.FILE_PREFIX
+                    || APACHE_FLEX_BIN_DISTRO_PATH.substr(0, Constants.HTTPS_PREFIX.length) == Constants.HTTPS_PREFIX)
+            {
                 APACHE_FLEX_BIN_DISTRO_URL = APACHE_FLEX_BIN_DISTRO_PATH + APACHE_FLEX_BIN_DISTRO_FILE;
-                if (stepsOverride != "") {
+                if (stepsOverride != "")
+                {
                     APACHE_FLEX_BIN_INSTALLER_URL = stepsOverride;
-                } else {
+                }
+                else
+                {
                     APACHE_FLEX_BIN_INSTALLER_URL = APACHE_FLEX_BIN_DISTRO_PATH + APACHE_FLEX_BIN_INSTALLER_FILE;
                 }
-            } else {
+            }
+            else
+            {
                 APACHE_FLEX_BIN_DISTRO_URL = useMirrorPath(_mirrorURLUtil.mirrorURL) + APACHE_FLEX_BIN_DISTRO_PATH + APACHE_FLEX_BIN_DISTRO_FILE;
-                if (stepsOverride != "") {
+                if (stepsOverride != "")
+                {
                     APACHE_FLEX_BIN_INSTALLER_URL = stepsOverride;
-                } else {
+                }
+                else
+                {
                     APACHE_FLEX_BIN_INSTALLER_URL = MD5CompareUtil.MD5_DOMAIN + APACHE_FLEX_BIN_DISTRO_PATH + APACHE_FLEX_BIN_INSTALLER_FILE;
                 }
             }
-            
-            if (installerAppPath.substr(0, Constants.URL_PREFIX.length) != Constants.URL_PREFIX) {
+
+            if (installerAppPath.substr(0, Constants.URL_PREFIX.length) != Constants.URL_PREFIX)
+            {
                 installerAppPath = useMirrorPath(_mirrorURLUtil.mirrorURL) + installerAppPath;
             }
-            
+
             main();
         }
-        
+
         protected function main():void
         {
-            
-            if (shouldUpdate()) {
+
+            if (shouldUpdate())
+            {
                 doUpdate();
             }
         }
-        
+
         private function logVersion():void
         {
             if (!loggedVersion)
@@ -1066,13 +1158,13 @@ variables are not required because the locations of these pieces are known.
                 var applicationDescriptor:XML = NativeApplication.nativeApplication.applicationDescriptor;
                 var xmlns:Namespace = new Namespace(applicationDescriptor.namespace());
                 var currentVersion:String = applicationDescriptor.xmlns::versionNumber.toString();
-                
+
                 // Log the Installer version to help with any support issues that arise.
                 log("Installer version " + currentVersion + " (" + _os.os + ")", 0);
                 loggedVersion = true;
             }
         }
-        
+
         protected function shouldUpdate():Boolean
         {
             var shouldUpdate:Boolean = false;
@@ -1080,27 +1172,34 @@ variables are not required because the locations of these pieces are known.
             var applicationDescriptor:XML = NativeApplication.nativeApplication.applicationDescriptor;
             var xmlns:Namespace = new Namespace(applicationDescriptor.namespace());
             var currentVersion:String = applicationDescriptor.xmlns::versionNumber.toString();
-            
+
             logVersion();
-            
+
             var availBuildNumbers:Array = _latestVersion.split(".");
             var currentBuildNumbers:Array = currentVersion.split(".");
-            
-            if (parseInt(availBuildNumbers[0]) > parseInt(currentBuildNumbers[0])) {
+
+            if (parseInt(availBuildNumbers[0]) > parseInt(currentBuildNumbers[0]))
+            {
                 return true;
-            } else if (parseInt(availBuildNumbers[0]) == parseInt(currentBuildNumbers[0])) {
-                if (parseInt(availBuildNumbers[1]) > parseInt(currentBuildNumbers[1])) {
+            }
+            else if (parseInt(availBuildNumbers[0]) == parseInt(currentBuildNumbers[0]))
+            {
+                if (parseInt(availBuildNumbers[1]) > parseInt(currentBuildNumbers[1]))
+                {
                     return true;
-                } else if (parseInt(availBuildNumbers[1]) == parseInt(currentBuildNumbers[1])) {
-                    if (parseInt(availBuildNumbers[2]) > parseInt(currentBuildNumbers[2])) {
+                }
+                else if (parseInt(availBuildNumbers[1]) == parseInt(currentBuildNumbers[1]))
+                {
+                    if (parseInt(availBuildNumbers[2]) > parseInt(currentBuildNumbers[2]))
+                    {
                         return true;
                     }
                 }
             }
             return false;
-            
+
         }
-        
+
         protected function doUpdate():void
         {
             var updaterDialog:UpdaterDialog = UpdaterDialog(PopUpManager.createPopUp(this, UpdaterDialog, true));
@@ -1108,38 +1207,49 @@ variables are not required because the locations of these pieces are known.
             updaterDialog.latestVersion = _latestVersion;
             PopUpManager.centerPopUp(updaterDialog);
         }
-        
+
         protected function handleUpdaterDialogClose(event:Event):void
         {
             PopUpManager.removePopUp(IFlexDisplayObject(event.target));
         }
-        
+
         protected function handleInstallBtnClick(event:MouseEvent):void
         {
             var airVersionID:String = airVersion.selectedItem.versionID;
             var flashVersionID:String = flashPlayerVersion.selectedItem.versionID;
-            
+
             log("SDK version " + APACHE_FLEX_BIN_DISTRO_VERSION_DISPLAY);
-            
+
             if (flexVersion.selectedItem.needsAIR)
             {
                 if (airVersionID)
+                {
                     log("AIR version " + airVersionID);
+                }
                 else
+                {
                     log("AIR version " + AIR_VERSION);
+                }
             }
-            
+
             if (flexVersion.selectedItem.needsFlash)
             {
                 if (flashVersionID)
+                {
                     log("Flash Player version " + flashVersionID);
+                }
                 else
+                {
                     log("Flash Player version " + FLASH_PLAYER_VERSION);
+                }
             }
-            
-            if (flexSDKTxtInput.text == "") {
+
+            if (flexSDKTxtInput.text == "")
+            {
                 log(_viewResourceConstants.INFO_ENTER_VALID_FLEX_SDK_PATH);
-            } else {
+            }
+            else
+            {
                 _langSelect.enabled = false;
                 _flexHome = flexSDKTxtInput.text;
                 resetInstallStepsActivity();
@@ -1148,30 +1258,30 @@ variables are not required because the locations of these pieces are known.
                 install();
             }
         }
-        
+
         protected function handleZeroStepNextBtnClick(event:MouseEvent):void
         {
             directoryBtn.enabled = false;
-            
+
             AIR_VERSION = airVersion.selectedItem.version;
             var airVersionID:String = airVersion.selectedItem.versionID;
             FLASH_PLAYER_VERSION = flashPlayerVersion.selectedItem.version;
             var flashVersionID:String = flashPlayerVersion.selectedItem.versionID;
-            
+
             setXMLVariables(); // as AIR and Flash version may of changed
-            
+
             if (!legacy)
             {
                 if (newSDKSelected)
                 {
-                var req:URLRequest = new URLRequest(APACHE_FLEX_BIN_INSTALLER_URL);
-                loader = new URLLoader();
-                loader.dataFormat = URLLoaderDataFormat.TEXT;
-                loader.addEventListener(Event.COMPLETE, handleInstallerXMLLoaded);
-                loader.addEventListener(ErrorEvent.ERROR, handleInstallerXMLError);
-                loader.addEventListener(IOErrorEvent.IO_ERROR, handleInstallerXMLError);
-                
-                loader.load(req);
+                    var req:URLRequest = new URLRequest(APACHE_FLEX_BIN_INSTALLER_URL);
+                    loader = new ApacheURLLoader();
+                    loader.dataFormat = URLLoaderDataFormat.TEXT;
+                    loader.addEventListener(Event.COMPLETE, handleInstallerXMLLoaded);
+                    loader.addEventListener(ErrorEvent.ERROR, handleInstallerXMLError);
+                    loader.addEventListener(IOErrorEvent.IO_ERROR, handleInstallerXMLError);
+
+                    loader.load(req);
                 }
             }
             else
@@ -1179,34 +1289,37 @@ variables are not required because the locations of these pieces are known.
                 showDirectoryState();
             }
         }
-        
+
         protected function handleFirstStepBackBtnClick(event:MouseEvent):void
         {
             showDefaultState();
         }
-        
+
         protected function handleSecondStepBackBtnClick(event:MouseEvent):void
         {
             showDirectoryState();
         }
-        
+
         protected function handleFirstStepNextBtnClick(event:MouseEvent):void
         {
             // Quick check to see if the selected directory is writable
-            try {
+            try
+            {
                 var f:File = new File(_flexHome + File.separator + "flex.txt");
                 checkDirWritable(f);
-            } catch (e:Error) {
+            }
+            catch (e:Error)
+            {
                 log(_viewResourceConstants.ERROR_UNABLE_TO_CREATE_TEMP_DIRECTORY);
                 flexSDKTxtInput.errorString = _viewResourceConstants.ERROR_DIR_REQUIRE_ADMIN_RIGHTS;
                 flexSDKTxtInput.prompt = _viewResourceConstants.ERROR_DIR_REQUIRE_ADMIN_RIGHTS;
                 updateActivityStep(_viewResourceConstants.STEP_CREATE_DIRECTORIES, StepItem.ERROR);
                 return;
             }
-            
+
             showOptionsState();
         }
-        
+
         protected function handleInstallerXMLLoaded(event:Event):void
         {
             var data:XML = XML(event.target.data);
@@ -1216,9 +1329,9 @@ variables are not required because the locations of these pieces are known.
             for each (var comp:XML in compList)
             {
                 var vo:InstallerComponentVO = new InstallerComponentVO(getLocalizedString(comp, "label"),
-                    getLocalizedString(comp, "message"), getLocalizedString(comp, "license"),
-                    getLocalizedString(comp, "licenseURL"),
-                    comp.@id.toString(), comp.@required.toString() == "true");
+                        getLocalizedString(comp, "message"), getLocalizedString(comp, "license"),
+                        getLocalizedString(comp, "licenseURL"),
+                        comp.@id.toString(), comp.@required.toString() == "true");
                 licensePropertyMap[comp.@property.toString()] = vo;
                 _installerComponentsDataProvider.addItem(vo);
             }
@@ -1245,7 +1358,7 @@ variables are not required because the locations of these pieces are known.
             currentState = "directoryState";
             System.disposeXML(data);
         }
-        
+
         private function getLocalizedString(xml:XML, propName:String):String
         {
             var compBundle:XMLList;
@@ -1266,26 +1379,28 @@ variables are not required because the locations of these pieces are known.
                     {
                         var s:String = compBundle[0].toString();
                         if (s.length > 0)
+                        {
                             return s;
+                        }
                     }
                 }
             }
             return "";
         }
-        
+
         protected function handleInstallerXMLError(event:Event):void
         {
             log("Unable to load " + APACHE_FLEX_BIN_INSTALLER_URL);
             abortInstallation("Unable to load " + APACHE_FLEX_BIN_INSTALLER_URL);
         }
-        
+
         protected function showDefaultState():void
         {
             zeroStepGroup.visible = true;
             directoryBtn.enabled = true;
             currentState = "default";
         }
-        
+
         protected function showDirectoryState():void
         {
             initiateInstallStepsActivity();
@@ -1295,17 +1410,17 @@ variables are not required because the locations of these pieces are known.
             }
             currentState = "directoryState";
         }
-        
+
         protected function showOptionsState():void
         {
             currentState = "optionsState";
             checkIfAllRequiredComponentsPromptsAnswered();
         }
-        
+
         protected function initiateInstallStepsActivity():void
         {
             _installationSteps = new ArrayCollection();
-            
+
             _installationSteps.addItem(new StepItem(_viewResourceConstants.STEP_CREATE_DIRECTORIES));
             _installationSteps.addItem(new StepItem(_viewResourceConstants.STEP_REQUIRED_INSTALL_APACHE_FLEX_SDK));
             _installationSteps.addItem(new StepItem(_viewResourceConstants.STEP_VERIFY_FLEX_SDK));
@@ -1317,26 +1432,28 @@ variables are not required because the locations of these pieces are known.
             _installationSteps.addItem(new StepItem(_viewResourceConstants.STEP_REQUIRED_INSTALL_SWFOBJECT));
             _installationSteps.addItem(new StepItem(_viewResourceConstants.STEP_REQUIRED_INSTALL_OSMF));
         }
-        
+
         protected function resetInstallStepsActivity():void
         {
-            for each(var step:StepItem in _installationSteps) {
+            for each(var step:StepItem in _installationSteps)
+            {
                 step.status = StepItem.NORMAL;
             }
         }
-        
+
         protected function addOptionalComponentsToInstallSteps():void
         {
             if (usingXML)
             {
                 _installationSteps = new ArrayCollection();
-                
+
                 _installationSteps.addItem(new StepItem(_viewResourceConstants.STEP_CREATE_DIRECTORIES));
                 _installationSteps.addItem(new StepItem(_viewResourceConstants.STEP_REQUIRED_INSTALL_APACHE_FLEX_SDK));
                 _installationSteps.addItem(new StepItem(_viewResourceConstants.STEP_VERIFY_FLEX_SDK));
                 _installationSteps.addItem(new StepItem(_viewResourceConstants.STEP_UNZIP_FLEX_SDK));
-                
-                for each (var stepData:XML in installStepsData) {
+
+                for each (var stepData:XML in installStepsData)
+                {
                     var propName:String = stepData.@property.toString();
                     if (!propName || InstallerComponentVO(licensePropertyMap[propName]).selected)
                     {
@@ -1348,13 +1465,15 @@ variables are not required because the locations of these pieces are known.
                 }
                 return;
             }
-            for each (var obj:InstallerComponentVO in _installerComponentsDataProvider) {
-                if (!obj.required && obj.selected) {
+            for each (var obj:InstallerComponentVO in _installerComponentsDataProvider)
+            {
+                if (!obj.required && obj.selected)
+                {
                     _installationSteps.addItem(new StepItem(obj.label));
                 }
             }
         }
-        
+
         protected function initializeInstallerComponentsDataProvider():void
         {
             var versionNum:int = int(APACHE_FLEX_BIN_DISTRO_VERSION.split('.').join(''));
@@ -1377,40 +1496,40 @@ variables are not required because the locations of these pieces are known.
             }
             else
             {
-            _installerComponentsDataProvider.addItem(new InstallerComponentVO(_viewResourceConstants.STEP_REQUIRED_INSTALL_APACHE_FLEX_SDK,
-                    _viewResourceConstants.ASK_APACHE_FLEX, _viewResourceConstants.LICENSE_APACHE_V2,
-                    _viewResourceConstants.LICENSE_URL_APACHE_V2,
-                    "STEP_REQUIRED_INSTALL_APACHE_FLEX_SDK", true));
-            _installerComponentsDataProvider.addItem(new InstallerComponentVO(_viewResourceConstants.STEP_REQUIRED_INSTALL_ADOBE_AIR_SDK,
-                    _viewResourceConstants.ASK_ADOBE_AIR_SDK,
-                    _viewResourceConstants.LICENSE_ADOBE_AIR_SDK,
-                    _viewResourceConstants.LICENSE_URL_ADOBE_AIR_SDK,
-                    "STEP_REQUIRED_INSTALL_ADOBE_AIR_SDK", true));
-            _installerComponentsDataProvider.addItem(new InstallerComponentVO(_viewResourceConstants.STEP_REQUIRED_INSTALL_FLASH_PLAYER_GLOBAL_SWC,
-                    _viewResourceConstants.ASK_ADOBE_FLASH_PLAYER_GLOBAL_SWC,
-                    _viewResourceConstants.LICENSE_ADOBE_SDK,
-                    _viewResourceConstants.LICENSE_URL_ADOBE_SDK,
-                    "STEP_REQUIRED_INSTALL_FLASH_PLAYER_GLOBAL_SWC", true));
-            _installerComponentsDataProvider.addItem(new InstallerComponentVO(_viewResourceConstants.STEP_REQUIRED_INSTALL_SWFOBJECT,
-                    _viewResourceConstants.ASK_SWFOBJECT,
-                    _viewResourceConstants.LICENSE_SWFOBJECT,
-                    _viewResourceConstants.LICENSE_URL_SWFOBJECT,
-                    "STEP_REQUIRED_INSTALL_SWFOBJECT", true));
-            _installerComponentsDataProvider.addItem(new InstallerComponentVO(_viewResourceConstants.STEP_REQUIRED_INSTALL_OSMF,
-                    _viewResourceConstants.ASK_OSMF,
-                    _viewResourceConstants.LICENSE_OSMF,
-                    _viewResourceConstants.LICENSE_URL_OSMF,
-                    "STEP_REQUIRED_INSTALL_OSMF", true));
+                _installerComponentsDataProvider.addItem(new InstallerComponentVO(_viewResourceConstants.STEP_REQUIRED_INSTALL_APACHE_FLEX_SDK,
+                        _viewResourceConstants.ASK_APACHE_FLEX, _viewResourceConstants.LICENSE_APACHE_V2,
+                        _viewResourceConstants.LICENSE_URL_APACHE_V2,
+                        "STEP_REQUIRED_INSTALL_APACHE_FLEX_SDK", true));
+                _installerComponentsDataProvider.addItem(new InstallerComponentVO(_viewResourceConstants.STEP_REQUIRED_INSTALL_ADOBE_AIR_SDK,
+                        _viewResourceConstants.ASK_ADOBE_AIR_SDK,
+                        _viewResourceConstants.LICENSE_ADOBE_AIR_SDK,
+                        _viewResourceConstants.LICENSE_URL_ADOBE_AIR_SDK,
+                        "STEP_REQUIRED_INSTALL_ADOBE_AIR_SDK", true));
+                _installerComponentsDataProvider.addItem(new InstallerComponentVO(_viewResourceConstants.STEP_REQUIRED_INSTALL_FLASH_PLAYER_GLOBAL_SWC,
+                        _viewResourceConstants.ASK_ADOBE_FLASH_PLAYER_GLOBAL_SWC,
+                        _viewResourceConstants.LICENSE_ADOBE_SDK,
+                        _viewResourceConstants.LICENSE_URL_ADOBE_SDK,
+                        "STEP_REQUIRED_INSTALL_FLASH_PLAYER_GLOBAL_SWC", true));
+                _installerComponentsDataProvider.addItem(new InstallerComponentVO(_viewResourceConstants.STEP_REQUIRED_INSTALL_SWFOBJECT,
+                        _viewResourceConstants.ASK_SWFOBJECT,
+                        _viewResourceConstants.LICENSE_SWFOBJECT,
+                        _viewResourceConstants.LICENSE_URL_SWFOBJECT,
+                        "STEP_REQUIRED_INSTALL_SWFOBJECT", true));
+                _installerComponentsDataProvider.addItem(new InstallerComponentVO(_viewResourceConstants.STEP_REQUIRED_INSTALL_OSMF,
+                        _viewResourceConstants.ASK_OSMF,
+                        _viewResourceConstants.LICENSE_OSMF,
+                        _viewResourceConstants.LICENSE_URL_OSMF,
+                        "STEP_REQUIRED_INSTALL_OSMF", true));
                 _installerComponentsDataProvider.addItem(new InstallerComponentVO(_viewResourceConstants.STEP_OPTIONAL_INSTALL_BLAZEDS,
                         _viewResourceConstants.ASK_BLAZEDS,
                         _viewResourceConstants.LICENSE_BLAZEDS,
                         _viewResourceConstants.LICENSE_URL_BLAZEDS,
                         "STEP_OPTIONAL_INSTALL_BLAZEDS", false));
-            _installerComponentsDataProvider.addItem(new InstallerComponentVO(_viewResourceConstants.STEP_OPTIONAL_INSTALL_FONTSWF,
-                    _viewResourceConstants.ASK_FONTSWF,
-                    _viewResourceConstants.LICENSE_FONTSWF,
-                    _viewResourceConstants.LICENSE_URL_FONTSWF,
-                    "STEP_OPTIONAL_INSTALL_FONTSWF", false));
+                _installerComponentsDataProvider.addItem(new InstallerComponentVO(_viewResourceConstants.STEP_OPTIONAL_INSTALL_FONTSWF,
+                        _viewResourceConstants.ASK_FONTSWF,
+                        _viewResourceConstants.LICENSE_FONTSWF,
+                        _viewResourceConstants.LICENSE_URL_FONTSWF,
+                        "STEP_OPTIONAL_INSTALL_FONTSWF", false));
 //              _installerComponentsDataProvider.addItem(new InstallerComponentVO(_viewResourceConstants.STEP_REQUIRED_INSTALL_OFL_FONTS,
 //                      _viewResourceConstants.ASK_OFL_FONTS,
 //                      _viewResourceConstants.LICENSE_OFL_FONTS,
@@ -1418,38 +1537,40 @@ variables are not required because the locations of these pieces are known.
 //                      "STEP_REQUIRED_INSTALL_OFL_FONTS", true));
             }
         }
-        
+
         protected function install():void
         {
             createDirectories();
         }
-        
+
         protected function handleAirVersionChange(event:Event):void
         {
             AIR_VERSION = airVersion.selectedItem.version;
-            
+
             // Match AIR and Flash versions
-            if (flashPlayerVersion.selectedIndex != airVersion.selectedIndex) {
+            if (flashPlayerVersion.selectedIndex != airVersion.selectedIndex)
+            {
                 flashPlayerVersion.selectedIndex = airVersion.selectedIndex;
                 FLASH_PLAYER_VERSION = FLASH_PLAYER_VERSIONS[airVersion.selectedIndex].version;
             }
         }
-        
+
         protected function handleFlashPlayerVersionChange(event:Event):void
         {
             FLASH_PLAYER_VERSION = flashPlayerVersion.selectedItem.version;
-            
+
             // Match AIR and Flash versions
-            if (airVersion.selectedIndex != flashPlayerVersion.selectedIndex) {
+            if (airVersion.selectedIndex != flashPlayerVersion.selectedIndex)
+            {
                 airVersion.selectedIndex = flashPlayerVersion.selectedIndex;
                 AIR_VERSION = AIR_VERSIONS[flashPlayerVersion.selectedIndex].version;
             }
         }
-        
+
         protected function handleFlexVersionChange(event:Event):void
         {
             /*APACHE_FLEX_BIN_DISTRO_VERSION =  flexVersion.selectedItem.version;
-            APACHE_FLEX_BIN_DISTRO_VERSION_DISPLAY = flexVersion.selectedItem.label;*/
+             APACHE_FLEX_BIN_DISTRO_VERSION_DISPLAY = flexVersion.selectedItem.label;*/
             var item:Object = flexVersion.selectedItem;
             airVersion.enabled = item.needsAIR;
             flashPlayerVersion.enabled = item.needsFlash;
@@ -1458,15 +1579,15 @@ variables are not required because the locations of these pieces are known.
             updateWindowTitle();
             InstallApacheFlexSkin(skin).textIcon.source = item.icon;
         }
-        
+
         protected function browseForSDK(event:MouseEvent):void
         {
             var file:File = new File();
-            
+
             file.addEventListener(Event.SELECT, flexSDKDirSelected, false, 0, true);
             file.browseForDirectory(_viewResourceConstants.INFO_SELECT_DIRECTORY);
         }
-        
+
         protected function checkDirWritable(file:File):void
         {
             var ba:ByteArray = new ByteArray();
@@ -1474,17 +1595,20 @@ variables are not required because the locations of these pieces are known.
             writeFileToDirectory(file, ba);
             file.deleteFile();
         }
-        
+
         protected function flexSDKDirSelected(event:Event):void
         {
             var selectedDir:File = File(event.target);
             var overlay:Boolean = flexVersion.selectedItem.overlay;
-            
+
             // Quick check to see if the selected directory is writable
-            try {
+            try
+            {
                 var f:File = new File(selectedDir.nativePath + File.separator + "flex.txt");
                 checkDirWritable(f);
-            } catch (e:Error) {
+            }
+            catch (e:Error)
+            {
                 log(_viewResourceConstants.ERROR_UNABLE_TO_CREATE_TEMP_DIRECTORY);
                 log(_viewResourceConstants.ERROR_DIR_REQUIRE_ADMIN_RIGHTS);
                 flexSDKTxtInput.text = selectedDir.nativePath;
@@ -1493,18 +1617,21 @@ variables are not required because the locations of these pieces are known.
                 updateActivityStep(_viewResourceConstants.STEP_CREATE_DIRECTORIES, StepItem.ERROR);
                 return;
             }
-           
+
             overlaying = overlay;
             if (!overlay)
             {
-                if (isDirectoryEmpty(selectedDir)) {
+                if (isDirectoryEmpty(selectedDir))
+                {
                     _flexHome = selectedDir.nativePath;
                     flexSDKTxtInput.text = _flexHome;
                     nextBtn.enabled = true;
                     _langSelect.enabled = true;
                     flexSDKTxtInput.errorString = "";
                     flexSDKTxtInput.prompt = _viewResourceConstants.SELECT_PATH_PROMPT;
-                } else {
+                }
+                else
+                {
                     nextBtn.enabled = false;
                     flexSDKTxtInput.text = selectedDir.nativePath;
                     flexSDKTxtInput.errorString = _viewResourceConstants.ERROR_DIR_NOT_EMPTY + " : " + selectedDir.nativePath;
@@ -1521,153 +1648,194 @@ variables are not required because the locations of these pieces are known.
                 flexSDKTxtInput.prompt = _viewResourceConstants.SELECT_PATH_PROMPT;
             }
         }
-        
+
         protected function handleFlexSDXTxtInputChange(event:TextOperationEvent):void
         {
             var tempDir:File;
             var path:String = flexSDKTxtInput.text;
-            
-            try {
+
+            try
+            {
                 tempDir = new File(path);
-                
-                if (isDirectoryEmpty(tempDir)) {
+
+                if (isDirectoryEmpty(tempDir))
+                {
                     flexSDKTxtInput.errorString = "";
                     _flexHome = path;
                     nextBtn.enabled = true;
                     _langSelect.enabled = true;
-                } else {
+                }
+                else
+                {
                     flexSDKTxtInput.errorString = _viewResourceConstants.ERROR_INVALID_FLEX_SDK_DIRECTORY;
                     nextBtn.enabled = false;
                 }
-            } catch (e:Error) {
+            }
+            catch (e:Error)
+            {
                 flexSDKTxtInput.errorString = _viewResourceConstants.ERROR_INVALID_FLEX_SDK_DIRECTORY;
                 nextBtn.enabled = false;
             }
         }
-        
+
         protected function createDirectories():void
         {
             updateActivityStep(_viewResourceConstants.STEP_CREATE_DIRECTORIES, StepItem.ACTIVE);
-            
-            try {
+
+            try
+            {
                 if (!overlaying)
+                {
                     log(_viewResourceConstants.INFO_CREATING_FLEX_HOME);
+                }
                 _flexHomeDir = createFolder(_flexHome);
                 log(_viewResourceConstants.INFO_CREATING_TEMP_DIR);
                 _flexTemp = _flexHome + File.separator + "temp";
                 _flexTempDir = createFolder(_flexTemp);
                 updateActivityStep(_viewResourceConstants.STEP_CREATE_DIRECTORIES, StepItem.COMPLETE);
                 downloadApacheFlexSDK();
-            } catch (e:Error) {
+            }
+            catch (e:Error)
+            {
                 updateActivityStep(_viewResourceConstants.STEP_CREATE_DIRECTORIES, StepItem.ERROR);
                 log(_viewResourceConstants.ERROR_UNABLE_TO_CREATE_TEMP_DIRECTORY);
                 abortInstallation(_viewResourceConstants.ERROR_UNABLE_TO_CREATE_TEMP_DIRECTORY);
             }
         }
-        
+
         protected function downloadApacheFlexSDK():void
         {
             updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_APACHE_FLEX_SDK, StepItem.ACTIVE);
-            
-            try {
+
+            try
+            {
                 log(_viewResourceConstants.INFO_DOWNLOADING_FLEX_SDK + APACHE_FLEX_BIN_DISTRO_URL);
                 _apacheFlexSDKCompressedFile = File.userDirectory.resolvePath(_flexTemp + File.separator + APACHE_FLEX_BIN_DISTRO_FILE);
                 copyOrDownload(APACHE_FLEX_BIN_DISTRO_URL, handleApacheFlexSDKDownload, _apacheFlexSDKCompressedFile, handleApacheFlexSDKDownloadError, nocache);
-            } catch (e:Error) {
+            }
+            catch (e:Error)
+            {
                 updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_APACHE_FLEX_SDK, StepItem.ERROR);
                 log(_viewResourceConstants.ERROR_UNABLE_TO_CREATE_TEMP_DIRECTORY + "(error: " + e.message);
                 abortInstallation(_viewResourceConstants.ERROR_UNABLE_TO_CREATE_TEMP_DIRECTORY + "(error: " + e.message);
             }
-            
+
         }
-        
+
         protected function handleApacheFlexSDKDownload(event:Event):void
         {
-            try {
+            try
+            {
                 writeFileToDirectory(_apacheFlexSDKCompressedFile, event.target.data);
-            } catch (e:Error) {
+            }
+            catch (e:Error)
+            {
                 updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_APACHE_FLEX_SDK, StepItem.ERROR);
                 abortInstallation("handleApacheFlexSDKDownload " + e.message);
             }
-            
+
             updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_APACHE_FLEX_SDK, StepItem.COMPLETE);
-            
+
             updateActivityStep(_viewResourceConstants.STEP_VERIFY_FLEX_SDK, StepItem.ACTIVE);
-            
+
             log(_viewResourceConstants.STEP_VERIFY_FLEX_SDK);
-            
+
             _md5CompareUtil.addEventListener(ProgressEvent.PROGRESS, md5VerificationProgressHandler);
             _md5CompareUtil.verifyMD5(_apacheFlexSDKCompressedFile, APACHE_FLEX_BIN_DISTRO_PATH + APACHE_FLEX_BIN_DISTRO_FILE, uncompressApacheFlexSDK);
         }
-        
+
         protected function md5VerificationProgressHandler(event:ProgressEvent):void
         {
             if (logProgressEvents)
+            {
                 log("md5 progress " + event.bytesLoaded + "  " + event.bytesTotal, -1, false);
+            }
             if (event.bytesTotal > 0)
+            {
                 progressBar.percent = Math.round((event.bytesLoaded / event.bytesTotal) * 100);
+            }
         }
-        
+
         protected function handleApacheFlexSDKDownloadError(event:* = null):void
         {
             updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_APACHE_FLEX_SDK, StepItem.ERROR);
             log(_viewResourceConstants.ERROR_UNABLE_TO_DOWNLOAD_FLEX_SDK);
             abortInstallation(_viewResourceConstants.ERROR_UNABLE_TO_DOWNLOAD_FLEX_SDK);
         }
-        
+
         protected function uncompressApacheFlexSDK():void
         {
-            if (_md5CompareUtil.validMD5) {
-                if (!_md5CompareUtil.fileIsVerified) {
+            if (_md5CompareUtil.validMD5)
+            {
+                if (!_md5CompareUtil.fileIsVerified)
+                {
                     updateActivityStep(_viewResourceConstants.STEP_VERIFY_FLEX_SDK, StepItem.ERROR);
-                    
+
                     log(_viewResourceConstants.ERROR_VERIFY_FLEX_SDK);
-                    
+
                     abortInstallation(_viewResourceConstants.ERROR_VERIFY_FLEX_SDK);
                     return;
-				} else {
-	                updateActivityStep(_viewResourceConstants.STEP_VERIFY_FLEX_SDK, StepItem.COMPLETE);      
-	                log(_viewResourceConstants.INFO_VERIFY_FLEX_SDK_DONE);
-				}
-            } else {
+                }
+                else
+                {
+                    updateActivityStep(_viewResourceConstants.STEP_VERIFY_FLEX_SDK, StepItem.COMPLETE);
+                    log(_viewResourceConstants.INFO_VERIFY_FLEX_SDK_DONE);
+                }
+            }
+            else
+            {
                 updateActivityStep(_viewResourceConstants.STEP_VERIFY_FLEX_SDK, StepItem.COMPLETE);
-                
+
                 log(_viewResourceConstants.INFO_VERIFY_FLEX_SDK_DONE);
             }
-            
+
             updateActivityStep(_viewResourceConstants.STEP_UNZIP_FLEX_SDK, StepItem.ACTIVE);
-            
-            try {
+
+            try
+            {
                 log(_viewResourceConstants.INFO_UNZIPPING + _apacheFlexSDKCompressedFile.nativePath);
-                
-                if (_os.isWindows()) {
+
+                if (_os.isWindows())
+                {
                     unzip(_apacheFlexSDKCompressedFile, handleApacheFlexSDKZipFileUnzipComplete, handleApacheFlexSDKZipFileUnzipError);
-                } else {
+                }
+                else
+                {
                     untar(_apacheFlexSDKCompressedFile, _flexTempDir, handleApacheFlexSDKZipFileUnzipComplete, handleApacheFlexSDKZipFileUnzipError);
                 }
-            } catch (e:Error) {
+            }
+            catch (e:Error)
+            {
                 updateActivityStep(_viewResourceConstants.STEP_UNZIP_FLEX_SDK, StepItem.ERROR);
                 abortInstallation(_viewResourceConstants.STEP_UNZIP_FLEX_SDK + " " + e.message);
             }
         }
-        
+
         protected function handleApacheFlexSDKZipFileUnzipComplete(event:Event):void
         {
             log(_viewResourceConstants.INFO_FINISHED_UNZIPPING + _apacheFlexSDKCompressedFile.nativePath);
             updateActivityStep(_viewResourceConstants.STEP_UNZIP_FLEX_SDK, StepItem.COMPLETE);
-            
-            if (_os.isWindows()) {
+
+            if (_os.isWindows())
+            {
                 if (usingXML)
+                {
                     runInstallerScript();
+                }
                 else
+                {
                     downloadAIRRuntimeKitForWindows();
-            } else {
+                }
+            }
+            else
+            {
                 if (!overlaying)
                 {
                     /* Copy all files from the unarchived directory to the root */
                     var directory:File = _flexTempDir.resolvePath(APACHE_FLEX_BIN_DISTRO_FILE_SHORT);
                     var files:Array = directory.getDirectoryListing();
-                    for each(var file:File in files) {
+                    for each(var file:File in files)
+                    {
                         file.copyTo(_flexHomeDir.resolvePath(file.name));
                     }
                 }
@@ -1677,52 +1845,59 @@ variables are not required because the locations of these pieces are known.
                 }
                 else
                 {
-                    if (_os.isMac()) {
+                    if (_os.isMac())
+                    {
                         downloadAIRRuntimeKitForMac();
                     }
-                    else {
+                    else
+                    {
                         downloadAIRRuntimeKitForLinux();
                     }
                 }
             }
         }
-        
+
         protected function handleApacheFlexSDKZipFileUnzipError(error:ErrorEvent = null):void
         {
             updateActivityStep(_viewResourceConstants.STEP_UNZIP_FLEX_SDK, StepItem.ERROR);
             abortInstallation(_viewResourceConstants.STEP_UNZIP_FLEX_SDK + " " + error.toString());
         }
-        
+
         protected function runInstallerScript():void
         {
             ant = new Ant();
             ant.output = output;
-            
+
             var file:File;
-            if (installOverride != "") {
+            if (installOverride != "")
+            {
                 file = new File(installOverride);
             }
             else if (overlaying)
             {
                 var directory:File = _flexTempDir.resolvePath(APACHE_FLEX_BIN_DISTRO_FILE_SHORT);
-                if (_os.isWindows()) {
+                if (_os.isWindows())
+                {
                     file = _flexTempDir.resolvePath("installer.xml");
                 }
-                else {
+                else
+                {
                     file = directory.resolvePath("installer.xml");
                 }
             }
-            else {
+            else
+            {
                 file = _flexHomeDir.resolvePath("installer.xml");
             }
             addEventListener(Event.ENTER_FRAME, enterFrameHandler);
-            var context:Object = { installer: true };
+            var context:Object = {installer: true};
             if (usingDownloadCache)
             {
                 context["usingDownloadCache"] = usingDownloadCache;
                 context["downloadCacheFolder"] = downloadCacheFolder;
             }
-            if (configOverride != "") {
+            if (configOverride != "")
+            {
                 context["xml.properties"] = configOverride;
             }
             if (resourceManager.localeChain.length > 1)
@@ -1732,58 +1907,74 @@ variables are not required because the locations of these pieces are known.
             for (var p:String in licensePropertyMap)
             {
                 if (InstallerComponentVO(licensePropertyMap[p]).selected)
+                {
                     context[p] = true;
+                }
             }
             for (p in additionalProps)
+            {
                 context[p] = additionalProps[p];
-            
+            }
+
             context["air.sdk.version"] = AIR_VERSION;
             if (airVersion.selectedItem.versionID)
+            {
                 context["air.sdk.versionID"] = airVersion.selectedItem.versionID;
+            }
             context["air.sdk.url.path"] = airVersion.selectedItem.path;
             context["air.sdk.url.file"] = airVersion.selectedItem.file;
             context["flash.sdk.version"] = FLASH_PLAYER_VERSION;
             if (flashPlayerVersion.selectedItem.versionID)
+            {
                 context["flash.sdk.versionID"] = flashPlayerVersion.selectedItem.versionID;
+            }
             if (debugMode)
+            {
                 context["verbose"] = true;
+            }
             if (flashPlayerVersion.selectedItem.path)
             {
                 context["flash.sdk.url.path"] = flashPlayerVersion.selectedItem.path;
                 context["flash.sdk.url.file"] = flashPlayerVersion.selectedItem.file;
             }
-            
+
             if (file.exists && !ant.processXMLFile(file, context, true))
             {
                 ant.addEventListener(Event.COMPLETE, completeHandler);
                 ant.addEventListener(ProgressEvent.PROGRESS, progressEventHandler);
             }
             else
+            {
                 completeHandler(null);
+            }
         }
-        
+
         private function progressEventHandler(event:ProgressEvent):void
         {
             if (logProgressEvents)
-                log("progress " + event.bytesLoaded + "  " + event.bytesTotal, -1, false);
-            if (event.bytesTotal > 0)
-                progressBar.percent = Math.round((event.bytesLoaded / event.bytesTotal) * 100);
-            /*
-            if (ant.progressClass is Copy)
-            {
-            progressBar.label = getLocalizedString(progressLabels, "Copy");
-            }
-            else if (ant.progressClass is Get)
             {
-            progressBar.label = getLocalizedString(progressLabels, "Get");
+                log("progress " + event.bytesLoaded + "  " + event.bytesTotal, -1, false);
             }
-            else if (ant.progressClass is Checksum)
+            if (event.bytesTotal > 0)
             {
-            progressBar.label = getLocalizedString(progressLabels, "Checksum");
+                progressBar.percent = Math.round((event.bytesLoaded / event.bytesTotal) * 100);
             }
-            */
+            /*
+             if (ant.progressClass is Copy)
+             {
+             progressBar.label = getLocalizedString(progressLabels, "Copy");
+             }
+             else if (ant.progressClass is Get)
+             {
+             progressBar.label = getLocalizedString(progressLabels, "Get");
+             }
+             else if (ant.progressClass is Checksum)
+             {
+             progressBar.label = getLocalizedString(progressLabels, "Checksum");
+             }
+             */
         }
-        
+
         private function completeHandler(event:Event):void
         {
             if (Ant.currentAnt && !Ant.currentAnt.project.status)
@@ -1791,26 +1982,38 @@ variables are not required because the locations of these pieces are known.
                 var msg:String = Ant.currentAnt.project.failureMessage;
                 log(msg ? msg : "no failure message provided");
                 if (currentStep > 0)
+                {
                     updateActivityStep(stepLabels[currentStep - 1], StepItem.ERROR);
+                }
             }
             else if (currentStep == stepLabels.length && currentStep > 0)
+            {
                 updateActivityStep(stepLabels[currentStep - 1], StepItem.COMPLETE);
-            
-            if (Ant.currentAnt) {
+            }
+
+            if (Ant.currentAnt)
+            {
                 if (Ant.currentAnt.project.status)
+                {
                     tracker.trackInstallerSuccess(APACHE_FLEX_BIN_DISTRO_VERSION_DISPLAY, APACHE_FLEX_BIN_DISTRO_VERSION, _os.os);
+                }
                 if (Ant.currentAnt.project.failureMessage)
+                {
                     cleanup(!Ant.currentAnt.project.status, "&info=" + escape(Ant.currentAnt.project.failureMessage));
+                }
                 else
+                {
                     cleanup(!Ant.currentAnt.project.status);
+                }
             }
-            else {
+            else
+            {
                 cleanup();
             }
         }
-        
+
         private var ant:Ant;
-        
+
         private function output(s:String):void
         {
             var isPublic:Boolean = false;
@@ -1821,9 +2024,13 @@ variables are not required because the locations of these pieces are known.
                 if (currentStep < stepLabels.length && "\n" + stepIDs[currentStep] + ":" == s)
                 {
                     if (currentStep > 0)
+                    {
                         updateActivityStep(stepLabels[currentStep - 1], StepItem.COMPLETE);
+                    }
                     if (currentStep < stepLabels.length)
+                    {
                         updateActivityStep(stepLabels[currentStep++], StepItem.ACTIVE);
+                    }
                 }
                 isPublic = false;
             }
@@ -1841,205 +2048,235 @@ variables are not required because the locations of these pieces are known.
             }
             log(s, -1, isPublic, skipLog);
         }
-        
+
         private function enterFrameHandler(event:Event):void
         {
             ant.doCallback();
         }
-        
+
         protected function downloadAIRRuntimeKitForWindows():void
         {
             updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_ADOBE_AIR_SDK, StepItem.ACTIVE);
-            
-            try {
+
+            try
+            {
                 log(_viewResourceConstants.INFO_DOWNLOADING_AIR_RUNTIME_KIT_WINDOWS + ADOBE_AIR_SDK_WIN_URL);
                 _adobeAIRSDKZipFile = File.userDirectory.resolvePath(_flexTemp + File.separator + ADOBE_AIR_SDK_WIN_FILE);
                 copyOrDownload(ADOBE_AIR_SDK_WIN_URL, handleAIRSDKDownload, _adobeAIRSDKZipFile, handleAIRSDKDownloadError);
-            } catch (e:Error) {
+            }
+            catch (e:Error)
+            {
                 updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_ADOBE_AIR_SDK, StepItem.ERROR);
                 abortInstallation();
             }
         }
-        
+
         protected function downloadAIRRuntimeKitForMac():void
         {
             updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_ADOBE_AIR_SDK, StepItem.ACTIVE);
-            
-            try {
+
+            try
+            {
                 log(_viewResourceConstants.INFO_DOWNLOADING_AIR_RUNTIME_KIT_MAC + ADOBE_AIR_SDK_MAC_URL);
                 _adobeAIRSDKZipFile = File.userDirectory.resolvePath(_flexTemp + File.separator + ADOBE_AIR_SDK_MAC_FILE);
                 copyOrDownload(ADOBE_AIR_SDK_MAC_URL, handleAIRSDKDownload, _adobeAIRSDKZipFile, handleAIRSDKDownloadError);
-            } catch (e:Error) {
+            }
+            catch (e:Error)
+            {
 

<TRUNCATED>