bug 1053814: update product details when shipping releases. r=rail
authorBen Hearsum <bhearsum@mozilla.com>
Mon, 16 Mar 2015 16:23:40 -0400
changeset 5538 14908102eb038ca29cf2b2ddcd0263e301ea94af
parent 5537 6d2d9dc52e21c4028a2f36fbc7d4de408f4f374a
child 5539 400096530186534ff13de7420f0889e3a63938e1
push id4127
push userbhearsum@mozilla.com
push dateMon, 16 Mar 2015 20:23:49 +0000
reviewersrail
bugs1053814
bug 1053814: update product details when shipping releases. r=rail
lib/python/mozilla_buildtools/test/product-details.svn/FIREFOX_AURORA.php
lib/python/mozilla_buildtools/test/product-details.svn/FIREFOX_ESR.php
lib/python/mozilla_buildtools/test/product-details.svn/FIREFOX_ESR_NEXT.php
lib/python/mozilla_buildtools/test/product-details.svn/LATEST_FIREFOX_DEVEL_VERSION.php
lib/python/mozilla_buildtools/test/product-details.svn/LATEST_FIREFOX_OLDER_VERSION.php
lib/python/mozilla_buildtools/test/product-details.svn/LATEST_FIREFOX_RELEASED_DEVEL_VERSION.php
lib/python/mozilla_buildtools/test/product-details.svn/LATEST_FIREFOX_RELEASED_VERSION.php
lib/python/mozilla_buildtools/test/product-details.svn/LATEST_FIREFOX_VERSION.php
lib/python/mozilla_buildtools/test/product-details.svn/LATEST_THUNDERBIRD_VERSION.php
lib/python/mozilla_buildtools/test/product-details.svn/README
lib/python/mozilla_buildtools/test/product-details.svn/export_json.php
lib/python/mozilla_buildtools/test/product-details.svn/firefoxDetails.class.php
lib/python/mozilla_buildtools/test/product-details.svn/history/firefoxHistory.class.php
lib/python/mozilla_buildtools/test/product-details.svn/history/mobileHistory.class.php
lib/python/mozilla_buildtools/test/product-details.svn/history/productHistory.class.php
lib/python/mozilla_buildtools/test/product-details.svn/history/thunderbirdHistory.class.php
lib/python/mozilla_buildtools/test/product-details.svn/json/.gitignore
lib/python/mozilla_buildtools/test/product-details.svn/json/firefox_beta_builds.json
lib/python/mozilla_buildtools/test/product-details.svn/json/firefox_history_development_releases.json
lib/python/mozilla_buildtools/test/product-details.svn/json/firefox_history_major_releases.json
lib/python/mozilla_buildtools/test/product-details.svn/json/firefox_history_stability_releases.json
lib/python/mozilla_buildtools/test/product-details.svn/json/firefox_primary_builds.json
lib/python/mozilla_buildtools/test/product-details.svn/json/firefox_versions.json
lib/python/mozilla_buildtools/test/product-details.svn/json/languages.json
lib/python/mozilla_buildtools/test/product-details.svn/json/mobile_details.json
lib/python/mozilla_buildtools/test/product-details.svn/json/mobile_history_development_releases.json
lib/python/mozilla_buildtools/test/product-details.svn/json/mobile_history_major_releases.json
lib/python/mozilla_buildtools/test/product-details.svn/json/mobile_history_stability_releases.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/af.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/ak.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/ar.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/as.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/ast.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/be.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/bg.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/bn-BD.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/bn-IN.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/br.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/ca.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/cs.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/cy.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/da.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/de.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/el.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/en-GB.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/en-US.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/en-ZA.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/eo.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/es-AR.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/es-CL.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/es-ES.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/es-MX.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/et.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/eu.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/fa.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/fi.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/fr.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/fy-NL.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/ga-IE.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/gd.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/gl.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/gu-IN.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/he.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/hi-IN.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/hr.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/hu.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/hy-AM.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/id.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/is.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/it.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/ka.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/kk.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/kn.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/ko.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/ku.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/lg.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/lt.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/lv.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/mai.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/mk.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/ml.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/mn.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/mr.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/nb-NO.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/nl.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/nn-NO.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/nso.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/oc.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/or.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/pa-IN.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/pl.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/pt-BR.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/pt-PT.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/rm.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/ro.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/ru.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/si.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/sk.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/sl.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/son.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/sq.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/sr.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/sv-SE.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/ta-LK.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/ta.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/te.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/th.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/tr.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/uk.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/vi.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/zh-CN.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/zh-TW.json
lib/python/mozilla_buildtools/test/product-details.svn/json/regions/zu.json
lib/python/mozilla_buildtools/test/product-details.svn/json/thunderbird_beta_builds.json
lib/python/mozilla_buildtools/test/product-details.svn/json/thunderbird_history_development_releases.json
lib/python/mozilla_buildtools/test/product-details.svn/json/thunderbird_history_major_releases.json
lib/python/mozilla_buildtools/test/product-details.svn/json/thunderbird_history_stability_releases.json
lib/python/mozilla_buildtools/test/product-details.svn/json/thunderbird_primary_builds.json
lib/python/mozilla_buildtools/test/product-details.svn/json/thunderbird_versions.json
lib/python/mozilla_buildtools/test/product-details.svn/localeDetails.class.php
lib/python/mozilla_buildtools/test/product-details.svn/mobileDetails.class.php
lib/python/mozilla_buildtools/test/product-details.svn/mobile_alpha_version.php
lib/python/mozilla_buildtools/test/product-details.svn/mobile_beta_version.php
lib/python/mozilla_buildtools/test/product-details.svn/mobile_latest_version.php
lib/python/mozilla_buildtools/test/product-details.svn/productDetails.class.php
lib/python/mozilla_buildtools/test/product-details.svn/regionDetails.class.php
lib/python/mozilla_buildtools/test/product-details.svn/regions/af.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/ak.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/ar.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/as.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/ast.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/be.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/bg.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/bn-BD.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/bn-IN.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/br.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/ca.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/cs.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/cy.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/da.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/de.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/el.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/en-GB.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/en-US.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/en-ZA.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/eo.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/es-AR.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/es-CL.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/es-ES.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/es-MX.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/et.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/eu.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/fa.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/fi.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/fr.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/fy-NL.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/ga-IE.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/gd.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/gl.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/gu-IN.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/he.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/hi-IN.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/hr.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/hu.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/hy-AM.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/id.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/is.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/it.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/ka.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/kk.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/kn.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/ko.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/ku.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/lg.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/lt.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/lv.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/mai.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/mk.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/ml.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/mn.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/mr.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/nb-NO.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/nl.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/nn-NO.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/nso.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/oc.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/or.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/pa-IN.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/pl.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/pt-BR.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/pt-PT.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/rm.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/ro.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/ru.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/si.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/sk.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/sl.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/son.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/sq.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/sr.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/sv-SE.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/ta-LK.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/ta.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/te.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/th.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/tr.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/uk.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/vi.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/zh-CN.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/zh-TW.properties
lib/python/mozilla_buildtools/test/product-details.svn/regions/zu.properties
lib/python/mozilla_buildtools/test/product-details.svn/sanity_check.php
lib/python/mozilla_buildtools/test/product-details.svn/templates/FIREFOX_AURORA.php.tpl
lib/python/mozilla_buildtools/test/product-details.svn/templates/FIREFOX_ESR.php.tpl
lib/python/mozilla_buildtools/test/product-details.svn/templates/FIREFOX_ESR_NEXT.php.tpl
lib/python/mozilla_buildtools/test/product-details.svn/templates/LATEST_FIREFOX_DEVEL_VERSION.php.tpl
lib/python/mozilla_buildtools/test/product-details.svn/templates/LATEST_FIREFOX_OLDER_VERSION.php.tpl
lib/python/mozilla_buildtools/test/product-details.svn/templates/LATEST_FIREFOX_RELEASED_DEVEL_VERSION.php.tpl
lib/python/mozilla_buildtools/test/product-details.svn/templates/LATEST_FIREFOX_RELEASED_VERSION.php.tpl
lib/python/mozilla_buildtools/test/product-details.svn/templates/LATEST_FIREFOX_VERSION.php.tpl
lib/python/mozilla_buildtools/test/product-details.svn/templates/LATEST_THUNDERBIRD_VERSION.php.tpl
lib/python/mozilla_buildtools/test/product-details.svn/templates/mobile_alpha_version.php.tpl
lib/python/mozilla_buildtools/test/product-details.svn/templates/mobile_beta_version.php.tpl
lib/python/mozilla_buildtools/test/product-details.svn/templates/mobile_latest_version.php.tpl
lib/python/mozilla_buildtools/test/product-details.svn/thunderbirdBuildDetails.php
lib/python/mozilla_buildtools/test/product-details.svn/thunderbirdDetails.class.php
lib/python/mozilla_buildtools/test/test_product_detail.py
lib/python/release/product_details_update.py
lib/python/util/svn.py
scripts/release/stage-tasks.py
setup.py
new file mode 100644
--- /dev/null
+++ b/lib/python/mozilla_buildtools/test/product-details.svn/FIREFOX_AURORA.php
@@ -0,0 +1,2 @@
+<?php
+const FIREFOX_AURORA = '34.0a2';
new file mode 100644
--- /dev/null
+++ b/lib/python/mozilla_buildtools/test/product-details.svn/FIREFOX_ESR.php
@@ -0,0 +1,2 @@
+<?php
+const FIREFOX_ESR = '24.8.1esr';
new file mode 100644
--- /dev/null
+++ b/lib/python/mozilla_buildtools/test/product-details.svn/FIREFOX_ESR_NEXT.php
@@ -0,0 +1,2 @@
+<?php
+const FIREFOX_ESR_NEXT = '31.1.1esr';
new file mode 100644
--- /dev/null
+++ b/lib/python/mozilla_buildtools/test/product-details.svn/LATEST_FIREFOX_DEVEL_VERSION.php
@@ -0,0 +1,2 @@
+<?php
+const LATEST_FIREFOX_DEVEL_VERSION = '33.0b8';
new file mode 100644
--- /dev/null
+++ b/lib/python/mozilla_buildtools/test/product-details.svn/LATEST_FIREFOX_OLDER_VERSION.php
@@ -0,0 +1,2 @@
+<?php
+const LATEST_FIREFOX_OLDER_VERSION = '3.6.28';
new file mode 100644
--- /dev/null
+++ b/lib/python/mozilla_buildtools/test/product-details.svn/LATEST_FIREFOX_RELEASED_DEVEL_VERSION.php
@@ -0,0 +1,2 @@
+<?php
+const LATEST_FIREFOX_RELEASED_DEVEL_VERSION = '33.0b8';
new file mode 100644
--- /dev/null
+++ b/lib/python/mozilla_buildtools/test/product-details.svn/LATEST_FIREFOX_RELEASED_VERSION.php
@@ -0,0 +1,2 @@
+<?php
+const LATEST_FIREFOX_RELEASED_VERSION = '32.0.3';
new file mode 100644
--- /dev/null
+++ b/lib/python/mozilla_buildtools/test/product-details.svn/LATEST_FIREFOX_VERSION.php
@@ -0,0 +1,2 @@
+<?php
+const LATEST_FIREFOX_VERSION = '32.0.3';
new file mode 100644
--- /dev/null
+++ b/lib/python/mozilla_buildtools/test/product-details.svn/LATEST_THUNDERBIRD_VERSION.php
@@ -0,0 +1,2 @@
+<?php
+const LATEST_THUNDERBIRD_VERSION = '31.1.2';
new file mode 100644
--- /dev/null
+++ b/lib/python/mozilla_buildtools/test/product-details.svn/README
@@ -0,0 +1,37 @@
+Project-Details
+---------------
+
+This is a library that is designed to be checked out as an SVN External for your
+project.  When checking out, use a specific revision instead of HEAD as there are no
+trunk/tag versions.
+
+This library holds information about the current builds of Firefox and Thunderbird
+that Mozilla ships including:
+
+    - Latest version numbers for all builds
+    - English and Native names for all languages we support
+
+To use this library, include either firefoxDetails.class.php or thunderbirdDetails.class.php
+and create an instance of the class.  This should get you started at least:
+
+    echo $firefoxDetails->getDownloadBlockForLocale('en-US');
+
+If you don't like PHP, there are also JSON files available containing the raw data
+from the arrays in the PHP files. Note: Whenever the php files change, export_json.php
+will need to be called to update the JSON files as well.
+
+
+I wouldn't be sad if this library got replaced by a dynamic feed coming out of
+Bouncer at some point. :)
+
+Questions?
+    Email clouserw at mozilla
+
+Bugs?
+    Bugs for this lib can be filed on bugzilla.mozilla.org in the
+        Websites :: www.mozilla.com
+    component.
+
+Looking for SeaMonkey?
+    The SeaMonkey team has a JSON feed for its latest product versions available at:
+        http://www.seamonkey-project.org/seamonkey_versions.json
new file mode 100644
--- /dev/null
+++ b/lib/python/mozilla_buildtools/test/product-details.svn/export_json.php
@@ -0,0 +1,157 @@
+#!/usr/bin/env php
+<?php
+   /**
+    * command line program.
+    * From the various datastructure, generates some json files which are going
+    * to be used by other Mozilla applications
+    *
+    * @author Release management <release-mgmt@mozilla.com>
+    */
+define('JSONDIR', dirname(__FILE__).'/json/');
+
+
+/**
+ * Write a JSON file
+ *
+ * @param string $filename the name of the json file
+ * @param Array  $data     the datastructure which is going to be exported in
+ * the file
+ *
+ * @return void
+ */
+function writefile($filename, $data)
+{
+    file_put_contents(JSONDIR.$filename, json_encode($data, JSON_PRETTY_PRINT));
+}
+
+/** Locale Details */
+require_once 'localeDetails.class.php';
+$ld = new localeDetails();
+writefile('languages.json', $ld->languages);
+
+/** Product Details */
+// Firefox Versions
+require_once 'firefoxDetails.class.php';
+$fx_constants = array('LATEST_FIREFOX_VERSION',
+                      'LATEST_FIREFOX_DEVEL_VERSION',
+                      'LATEST_FIREFOX_RELEASED_DEVEL_VERSION',
+                      'LATEST_FIREFOX_OLDER_VERSION',
+                      'FIREFOX_AURORA',
+                      'FIREFOX_ESR',
+                      'FIREFOX_ESR_NEXT'
+                      );
+$versiondata = array();
+foreach ($fx_constants as $fx_c) {
+    $versiondata[$fx_c] = constant($fx_c);
+}
+writefile('firefox_versions.json', $versiondata);
+
+/**
+ * Generate the list of filesize. Values are useless but some code might
+ * expect it
+ * { 'Windows': { 'filesize': '9.0' }, 'OS X': { ... etc ... } }
+ *
+ * @param Array $builds the declaration array
+ *
+ * @return Array the datastructure with the filesize inside
+*/
+function fillFileSize($builds)
+{
+
+    /* Create the filesize data structure which is going to be
+     * duplicated
+    */
+    $filesize = [
+        'Windows' => ['filesize' => 0],
+        'OS X'    => ['filesize' => 0],
+        'Linux'   => ['filesize' => 0],
+        ];
+
+    /*
+    *  For each locales and version, insert the filesize
+    */
+    $newBuild=array();
+    foreach ($builds as $locale => $build) {
+        foreach ($build as $version) {
+            $newBuild[$locale][$version] = $filesize;
+        }
+    }
+
+    return $newBuild;
+}
+
+// Firefox Primary Builds
+$fxd = new firefoxDetails();
+$builds = array('primary_builds', 'beta_builds');
+foreach ($builds as $build) {
+    $buildArray = fillFileSize($fxd->$build);
+    writefile("firefox_{$build}.json", $buildArray);
+}
+
+// Firefox History
+require_once 'history/firefoxHistory.class.php';
+$fxh = new firefoxHistory();
+$releases = array('major_releases', 'stability_releases', 'development_releases');
+foreach ($releases as $release) {
+    writefile("firefox_history_{$release}.json", $fxh->$release);
+}
+
+// Thunderbird Versions
+require_once 'thunderbirdDetails.class.php';
+$tb_constants = array('LATEST_THUNDERBIRD_VERSION',
+                      );
+$versiondata = array();
+foreach ($tb_constants as $tb_c) {
+    $versiondata[$tb_c] = constant($tb_c);
+}
+writefile('thunderbird_versions.json', $versiondata);
+
+// Firefox Primary Builds
+$tbd = new thunderbirdDetails();
+$builds = array('primary_builds', 'beta_builds');
+foreach ($builds as $build) {
+    writefile("thunderbird_{$build}.json", $tbd->$build);
+}
+
+// Thunderbird History
+require_once 'history/thunderbirdHistory.class.php';
+$tbh = new thunderbirdHistory();
+$releases = array('major_releases', 'stability_releases', 'development_releases');
+foreach ($releases as $release) {
+    writefile("thunderbird_history_{$release}.json", $tbh->$release);
+}
+
+// Mobile Details
+require_once 'mobileDetails.class.php';
+$mobile = array(
+    'version' => mobileDetails::latest_version,
+    'beta_version' => mobileDetails::beta_version,
+    'alpha_version' => mobileDetails::alpha_version,
+    'builds'  => mobileDetails::primary_builds(false),
+    'beta_builds' => mobileDetails::beta_builds(false),
+    'alpha_builds' => mobileDetails::alpha_builds(false),
+);
+writefile('mobile_details.json', $mobile);
+
+// Mobile History
+require_once 'history/mobileHistory.class.php';
+$mobh = new mobileHistory();
+$releases = array('major_releases', 'stability_releases', 'development_releases');
+foreach ($releases as $release) {
+    writefile("mobile_history_{$release}.json", $mobh->$release);
+}
+
+// Region details
+require_once 'regionDetails.class.php';
+
+if (!file_exists(JSONDIR."regions")) {
+    mkdir(JSONDIR."regions");
+}
+
+$rd = new regionDetails();
+foreach ($ld->languages as $lang => $names) {
+    $names = $rd->getRegionNames($lang);
+    if (!empty($names)) {
+        writefile("regions/$lang.json", $names);
+    }
+}
new file mode 100644
--- /dev/null
+++ b/lib/python/mozilla_buildtools/test/product-details.svn/firefoxDetails.class.php
@@ -0,0 +1,1715 @@
+<?php
+
+// LATEST_FIREFOX_RELEASED_VERSION and LATEST_FIREFOX_RELEASED_DEVEL_VERSION
+// are only used by SUMO. Only update when builds are truly released.
+require_once "LATEST_FIREFOX_VERSION.php";
+require_once "LATEST_FIREFOX_RELEASED_VERSION.php";
+require_once "LATEST_FIREFOX_DEVEL_VERSION.php";
+require_once "LATEST_FIREFOX_RELEASED_DEVEL_VERSION.php";
+require_once "LATEST_FIREFOX_OLDER_VERSION.php";
+require_once "FIREFOX_AURORA.php";
+require_once "FIREFOX_ESR.php";
+// About once per year, we have 2 cycles during which we have two ESR
+// FIREFOX_ESR_NEXT is used during the two cycles. Once _NEXT replace the
+// "old" ESR, this line should be commented and the value moved to FIREFOX_ESR
+require_once "FIREFOX_ESR_NEXT.php";
+
+require_once dirname(__FILE__).'/productDetails.class.php';
+
+/**
+ * Holds data related to the current version of Firefox.
+ *
+ * Q: We're releasing a new version of Firefox - what should I do?
+ * A:
+ *      There is no single answer for this, because there are so many languages
+ *      we support.  Use common sense.  A potential scenario is outlined below:
+ *
+ *      1) Update the LATEST_FIREFOX_VERSION define to the latest version
+ *      2) For each language which has the new version, update the filesizes in
+ *          the LATEST_FIREFOX_VERSION array
+ *      3) For each language which does not have the new version, replace
+ *          LATEST_FIREFOX_VERSION with the previous version for that language.
+ *      4) Edit history/firefoxHistory.class.php to reflect the new version and
+ *          date
+ *
+ *
+ * @author Wil Clouser <clouserw@mozilla.com>
+ *
+ */
+class firefoxDetails extends productDetails {
+
+        /**
+         * Array holding information about current available builds.  Filesize
+         * is in megabytes. If you add a new language here, make sure it exists in
+         * localeDetails::languages too.
+         *
+         *  If you don't want a download button to appear for a certain platform, just don't put that platform in the array
+         *
+         *  If you want "Not Yet Available" to appear for the locale, set the version to null.  If getDownloadBlockForLocale()
+         *  is called, it will offer the most recent version that actually has a value.
+         *
+         * @var array
+         */
+
+
+        var $primary_builds = array(
+            'ach'   => array(
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                LATEST_FIREFOX_VERSION,
+                ),
+
+            'af'    => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'an'    => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                ),
+
+            'ar'    => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'as'    => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'ast'   => array(
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'az'    => array(
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                ),
+
+            'be'    => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'bg'    => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'bn-BD' => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'bn-IN' => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'br'    => array(
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'bs'    => array(
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'ca'    => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'cs'    => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'csb'    => array(
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'cy'    => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'da'    => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'de'    => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'dsb'    => array(
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                LATEST_FIREFOX_VERSION,
+                ),
+
+            'el'    => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'en-GB' => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'en-US' => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'en-ZA' => array(
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'eo'    => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'es-AR' => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'es-CL' => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'es-ES' => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'es-MX' => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'et'    => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'eu'    => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'fa'    => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'ff'    => array(
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                LATEST_FIREFOX_VERSION,
+                ),
+
+            'fi'    => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'fr'    => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'fy-NL' => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'ga-IE' => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'gd'    => array(
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'gl'    => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'gu-IN' => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'he'    => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'hi-IN' => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'hr'    => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'hsb'    => array(
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                LATEST_FIREFOX_VERSION,
+                ),
+
+            'hu'    => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'hy-AM' => array(
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'id'    => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'is'    => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'it'    => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'ja'    => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'ka'    => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                ),
+
+            'kk'    => array(
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                ),
+
+            'km'    => array(
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                LATEST_FIREFOX_VERSION,
+                ),
+
+            'kn'    => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'ko'    => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'lij'   => array(
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                ),
+
+            'lt'    => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'lv'    => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'mai'   => array(
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'mk'    => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'ml'    => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'mr'    => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'ms'    => array(
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                LATEST_FIREFOX_VERSION,
+                ),
+
+            'my'    => array(
+                FIREFOX_AURORA,
+                ),
+
+            'nb-NO' => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'nl'    => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'nn-NO' => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'oc'    => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                // LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                // LATEST_FIREFOX_VERSION,
+                ),
+
+            'or'    => array(
+                // LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'pa-IN' => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'pl'    => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'pt-BR' => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'pt-PT' => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'rm'    => array(
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'ro'    => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'ru'    => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'si'    => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'sk'    => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'sl'    => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'sq'    => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'sr'    => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'sv-SE' => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'sw'    => array(
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA         ,
+                ),
+            'ta'    => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+            'te'    => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'th'    => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'tr'    => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'uk'    => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'uz'    => array(
+                FIREFOX_AURORA,
+                ),
+
+            'vi'    => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'xh'    => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                // FIREFOX_ESR,
+                ),
+
+            'zh-CN' => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                ),
+
+            'zh-TW' => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_VERSION,
+                FIREFOX_ESR,
+                FIREFOX_ESR_NEXT,
+                            ),
+
+        );
+
+        /**
+         * Array holding information about currently available beta builds.  Beta builds, in this case, means localizations that are still in beta.  If you're looking for
+         * Firefox betas look for the LATEST_FIREFOX_DEVEL_VERSION in the $primary_builds array.
+         *
+         * @var array
+         */
+        var $beta_builds = array(
+
+
+            'ku'    => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                FIREFOX_AURORA,
+                FIREFOX_ESR,
+                ),
+
+            'rm'    => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                ),
+
+
+            'or'    => array(
+                LATEST_FIREFOX_OLDER_VERSION,
+                ),
+
+            'sw'    => array(
+                FIREFOX_AURORA,
+                LATEST_FIREFOX_DEVEL_VERSION,
+                ),
+
+
+        );
+
+        /**
+         * Constructor.
+         */
+        function firefoxDetails() {
+            parent::productDetails();
+        }
+
+        /**
+         * Returns an HTML block with links for a certain locale
+         *
+         * @param string locale
+         * @param array optional parameters to adjust return value:
+         *      devel_version: boolean, return a development release.  Default: false
+         * @return string HTML block
+         */
+        function getAncillaryLinksForLocale($locale, $options=array()) {
+            $_devel_version            = array_key_exists('devel_version', $options) ? $options['devel_version'] : false;
+
+            if ($_devel_version) {
+                $_current_version = $this->getDevelVersionForLocaleFromBuildArray($locale, $this->primary_builds);
+                $_all_page_link = 'all-beta.html';
+            } else {
+                $_current_version = $this->getNewestVersionForLocale($locale);
+                $_all_page_link = 'all.html';
+            }
+
+            $_release_notes = ___('Release Notes');
+            $_privacy_policy              = ___('Privacy');
+            $_other_systems_and_languages = ___('Systems &amp; Languages');
+
+            $_return = <<<HTML_RETURN
+            <p class="download-other">
+                <a class="ancillaryLink" href="http://www.mozilla.org/{$locale}/firefox/{$_all_page_link}">{$_other_systems_and_languages}</a> |
+                <a class="ancillaryLink" href="http://www.mozilla.org/{$locale}/firefox/{$_current_version}/releasenotes/">{$_release_notes}</a> |
+                <a class="ancillaryLink" href="http://www.mozilla.org/{$locale}/legal/privacy/firefox.html">{$_privacy_policy}</a>
+            </p>
+HTML_RETURN;
+
+            return $_return;
+        }
+
+        /**
+         * Overload parent function.  See parent for details.
+         *
+         */
+        function getDownloadBlockForLocale($locale, $options=array()) {
+
+            $options['product'] = array_key_exists('product', $options) ? $options['product'] : 'firefox';
+            # Used on the sidebar only
+            $options['download_title'] = array_key_exists('download_title', $options) ? $options['download_title'] : ___('Free Download');
+            $options['android_version'] = array_key_exists('android_version', $options) ? $options['android_version'] : true;
+
+            return parent::getDownloadBlockForLocale($locale, $options);
+        }
+
+        /**
+         * Convenience function to return a <table> of Firefox primary builds
+         *
+         * @param array options (more detail in getDownloadBlockForLocale())
+         * @return string HTML block
+         */
+        function getDownloadTableForPrimaryBuilds($options=array()) {
+
+            $options['product']        = array_key_exists('product', $options) ? $options['product'] : 'firefox';
+            $options['latest_version'] = LATEST_FIREFOX_VERSION;
+            $options['product_version'] = 'newest';
+            $options['hide_empty_rows'] = true;
+
+
+            $builds = array();
+
+            foreach($this->primary_builds as $key => $val) {
+                if( array_key_exists(LATEST_FIREFOX_VERSION, $val) ) {
+                    $builds[$key] = $this->primary_builds[$key];
+                }
+            }
+
+
+            return $this->tweakString($this->_getDownloadTableFromBuildArray($builds, $options), $options);
+        }
+
+        /**
+         * Convenience function to return a <table> of Firefox primary builds
+         * filtered by the specified keywords on the language names
+         *
+         * @param array options (more detail in getDownloadBlockForLocale())
+         * @param string keywords; will be dropped in a regex expression
+         * @return string HTML block
+         */
+        function getFilteredDownloadTableForPrimaryBuilds($options = array(), $keywords = '') {
+
+            $options['product']         = array_key_exists('product', $options) ? $options['product'] : 'firefox';
+            $options['hide_empty_rows'] = array_key_exists('hide_empty_rows', $options) ? $options['hide_empty_rows'] : true;
+            $options['latest_version']  = array_key_exists('latest_version', $options) ? $options['latest_version'] : LATEST_FIREFOX_VERSION;
+
+            $_builds = $this->_getFilteredBuilds($this->primary_builds, $keywords);
+            return $this->tweakString($this->_getDownloadTableFromBuildArray($_builds, $options), $options);
+        }
+
+        /**
+         * Convenience function to return a <table> of Firefox beta builds
+         * filtered by the specified keywords on the language names
+         *
+         * @param array options (more detail in getDownloadBlockForLocale())
+         * @param string keywords; will be dropped in a regex expression
+         * @return string HTML block
+         */
+        function getFilteredDownloadTableForBetaBuilds($options = array(), $keywords = '') {
+
+            $options['product']         = array_key_exists('product', $options) ? $options['product'] : 'firefox';
+            $options['hide_empty_rows'] = array_key_exists('hide_empty_rows', $options) ? $options['hide_empty_rows'] : true;
+            $options['latest_version']  = array_key_exists('latest_version', $options) ? $options['latest_version'] : LATEST_FIREFOX_VERSION;
+
+            $_builds = $this->_getFilteredBuilds($this->beta_builds, $keywords);
+            return $this->tweakString($this->_getDownloadTableFromBuildArray($_builds, $options), $options);
+        }
+
+
+        /**
+         * Convenience function to return a <table> of Firefox primary ESR builds
+         *
+         * @param array options (more detail in getDownloadBlockForLocale())
+         * @return string HTML block
+         */
+        function getDownloadTableForESRPrimaryBuilds($options=array()) {
+
+            $options['product']        = array_key_exists('product', $options) ? $options['product'] : 'firefox';
+            $options['latest_version'] = FIREFOX_ESR;
+            $options['product_version'] = 'esr';
+            $options['hide_empty_rows'] = true;
+
+
+            $builds = array();
+
+            foreach($this->primary_builds as $key => $val) {
+                if( array_key_exists(FIREFOX_ESR, $val) ) {
+                    $builds[$key] = $this->primary_builds[$key];
+                }
+            }
+
+
+            return $this->tweakString($this->_getDownloadTableFromBuildArray($builds, $options), $options);
+        }
+
+        /**
+         * Convenience function to return a <table> of Firefox ESR primary builds
+         * filtered by the specified keywords on the language names
+         *
+         * @param array options (more detail in getDownloadBlockForLocale())
+         * @param string keywords; will be dropped in a regex expression
+         * @return string HTML block
+         */
+        function getFilteredDownloadTableForESRPrimaryBuilds($options = array(), $keywords = '') {
+
+            $options['product']         = array_key_exists('product', $options) ? $options['product'] : 'firefox';
+            $options['hide_empty_rows'] = array_key_exists('hide_empty_rows', $options) ? $options['hide_empty_rows'] : true;
+            $options['latest_version']  = array_key_exists('latest_version', $options) ? $options['latest_version'] : FIREFOX_ESR;
+            $options['product_version'] = 'esr';
+
+            $_builds = $this->_getFilteredBuilds($this->primary_builds, $keywords);
+            return $this->tweakString($this->_getDownloadTableFromBuildArray($_builds, $options), $options);
+        }
+
+        /**
+         * Convenience function to return a <table> of Firefox ESR beta builds
+         * filtered by the specified keywords on the language names
+         *
+         * @param array options (more detail in getDownloadBlockForLocale())
+         * @param string keywords; will be dropped in a regex expression
+         * @return string HTML block
+         */
+        function getFilteredDownloadTableForESRBetaBuilds($options = array(), $keywords = '') {
+
+            $options['product']         = array_key_exists('product', $options) ? $options['product'] : 'firefox';
+            $options['hide_empty_rows'] = array_key_exists('hide_empty_rows', $options) ? $options['hide_empty_rows'] : true;
+            $options['latest_version']  = array_key_exists('latest_version', $options) ? $options['latest_version'] : FIREFOX_ESR;
+            $options['product_version'] = 'esr';
+
+            $_builds = $this->_getFilteredBuilds($this->beta_builds, $keywords);
+            return $this->tweakString($this->_getDownloadTableFromBuildArray($_builds, $options), $options);
+        }
+
+        /**
+         * Convenience function to return a <table> of Firefox Aurora builds
+         * filtered by the specified keywords on the language names
+         *
+         * @param array options (more detail in getDownloadBlockForLocale())
+         * @param string keywords; will be dropped in a regex expression
+         * @return string HTML block
+         */
+        function getFilteredDownloadTableForDevelBuilds($options = array(), $keywords = '') {
+
+            $options['product']         = array_key_exists('product', $options) ? $options['product'] : 'firefox';
+            $options['hide_empty_rows'] = array_key_exists('hide_empty_rows', $options) ? $options['hide_empty_rows'] : true;
+            $options['latest_version']  = LATEST_FIREFOX_DEVEL_VERSION;
+            $options['product_version'] = 'devel';
+            $options['tweaks'] = array('/<td class="curVersion" >(\d+\.\d+)b\d+<\/td>/' => '<td class="curVersion">$1</td>');
+
+            $all_builds = $this->primary_builds + $this->beta_builds;
+
+            $_builds = $this->_getFilteredBuilds($all_builds, $keywords);
+            return $this->tweakString($this->_getDownloadTableFromBuildArray($_builds, $options), $options);
+        }
+
+
+        /**
+         * Convenience function to return a <table> of Firefox Aurora builds
+         * filtered by the specified keywords on the language names
+         *
+         * @param array options (more detail in getDownloadBlockForLocale())
+         * @param string keywords; will be dropped in a regex expression
+         * @return string HTML block
+         */
+        function getFilteredDownloadTableForAuroraBuilds($options = array(), $keywords = '') {
+
+            $options['product']         = array_key_exists('product', $options) ? $options['product'] : 'firefox';
+            $options['hide_empty_rows'] = array_key_exists('hide_empty_rows', $options) ? $options['hide_empty_rows'] : true;
+            $options['latest_version']  = FIREFOX_AURORA;
+            $options['product_version'] = 'aurora';
+            $all_builds = $this->primary_builds + $this->beta_builds;
+
+            $_builds = $this->_getFilteredBuilds($all_builds, $keywords);
+            return $this->tweakString($this->_getDownloadTableFromBuildArray($_builds, $options), $options);
+        }
+
+        /**
+         * Filters a build list by the specified keywords on the language names
+         * (English and native)
+         *
+         * @param array builds array to filter.
+         * @param string keywords; will be dropped in a regex expression
+         * @return array the filtered builds array.
+         */
+        function _getFilteredBuilds($builds, $keywords) {
+
+            $_builds = array();
+
+            // filter the builds
+            foreach ($builds as $_locale => $_build) {
+
+                $_native   = $this->localeDetails->languages[$_locale]['native'];
+                $_english  = $this->localeDetails->languages[$_locale]['English'];
+                $_keywords = preg_quote($keywords, '/');
+                $_pattern  = '/(?:^' . $_keywords . '|[ (]' . $_keywords . ')/i';
+
+                // words are matched at the start of string or at the beginning of a word
+                if (preg_match($_pattern, $_native) || preg_match($_pattern, $_english)) {
+                    $_builds[$_locale] = $_build;
+                }
+            }
+
+            return $_builds;
+        }
+
+        /**
+         * Builds an unordered list of download links separated into sublists by geographic subregion
+         *
+         * This is used on the All-2.html page for selecting a localized build.
+         *
+         * @param string continent name or id.
+         * @param array options (more detail in getDownloadBlockForLocale())
+         * @return string HTML block
+         */
+        function getDownloadListForContinent($continent, $options = array()) {
+            $_product         = array_key_exists('product', $options) ? $options['product'] : 'firefox';
+            $_latest_version  = array_key_exists('latest_version', $options) ? $options['latest_version'] : LATEST_FIREFOX_VERSION;
+            $_product_version = array_key_exists('product_version', $options) ?  $options['product_version'] : 'newest';
+            $_product_version = in_array($_product_version, array('newest', 'devel', 'oldest')) ? $_product_version : 'newest';
+
+            $_text_new_localized_builds_note = ___('beta translation; may still contain translation errors');
+
+            // get continent sub-regions
+            $_regions = array();
+
+            foreach ($this->localeDetails->continents as $_continent => $_regions) {
+                $_continent_id = strtolower($_continent);
+                $_continent_id = preg_replace('/[^a-z ]/', '', $_continent_id);
+                $_continent_id = str_replace(' ', '-', $_continent_id);
+                $_continent_id = preg_replace('/-+/', '-', $_continent_id);
+
+                // match continent by id or by full title
+                if ($continent == $_continent || $continent == $_continent_id) {
+                    break;
+                }
+            }
+
+            // no sub-regions, return early
+            if (empty($_regions)) {
+                return '';
+            }
+
+            // add beta flag to beta builds
+            $_beta_builds = array();
+            foreach ($this->beta_builds as $_locale => $_build) {
+                foreach ($_build as $_version => $_platforms) {
+                    foreach ($_platforms as $_platform => $_details) {
+                        $_details['beta'] = true;
+                        $_platforms[$_platform] = $_details;
+                    }
+                    $_build[$_version] = $_platforms;
+                }
+                $_beta_builds[$_locale] = $_build;
+            }
+
+            // full builds array, will be filtered by sub-region later
+            $_builds = array_merge($this->primary_builds, $_beta_builds);
+
+            $_platform_titles = array(
+                'Windows' => 'Windows',
+                'OS X'    => 'Mac OS X',
+                'Linux'   => 'Linux'
+            );
+
+            $_platform_classes = array(
+                'Windows' => 'windows',
+                'OS X'    => 'osx-uni',
+                'Linux'   => 'linux'
+            );
+
+            $_platform_ids = array(
+                'Windows' => 'win',
+                'OS X'    => 'osx',
+                'Linux'   => 'linux'
+            );
+
+            ob_start();
+
+            foreach ($_regions as $_region) {
+
+                // get build information for current region
+                $_region_builds = array();
+
+                foreach ($this->localeDetails->locations[$_region]['primary'] as $_locale) {
+                    if (array_key_exists($_locale, $_builds)) {
+                        $_region_builds[$_locale] = $_builds[$_locale];//[$_latest_version];
+                    }
+                }
+                foreach ($this->localeDetails->locations[$_region]['secondary'] as $_locale) {
+                    if (array_key_exists($_locale, $_builds)) {
+                        $_region_builds[$_locale] = $_builds[$_locale];//[$_latest_version];
+                    }
+                }
+
+                if (empty($_region_builds)) {
+                    continue;
+                }
+
+                // sort build information
+                $_region_builds = $this->_sortBuildArrayByEnglishName($_region_builds);
+
+                $_region_id    = strtolower($_region);
+                $_region_id    = preg_replace('/[^a-z ]/', '', $_region_id);
+                $_region_id    = str_replace(' ', '-', $_region_id);
+                $_region_id    = preg_replace('/-+/', '-', $_region_id);
+                $_region_title = htmlspecialchars($_region);
+                $_region_image = '/img/tignish/firefox/all-1/region-'.$_region_id.'.png';
+
+                // display region header and image
+                echo "<div class=\"region\">\n";
+                echo "<img src=\"", $_region_image, "\" width=\"225\" height=\"225\" alt=\"", $_region_title, "\" class=\"region-map\" />\n";
+                echo "<h2>Firefox ", $_latest_version, "</h2>\n";
+                echo "<ul class=\"locales\">\n";
+
+                // display locales for region
+                $_count = 0;
+                foreach ($_region_builds as $_locale => $_versions) {
+
+                    switch ($_product_version) {
+                        case 'oldest':
+                            $_build_version = $this->getOldestVersionForLocaleFromBuildArray($_locale, $_region_builds);
+                            break;
+                        case 'devel':
+                            $_build_version = $this->getDevelVersionForLocaleFromBuildArray($_locale, $_region_builds);
+                            break;
+                        case 'newest':
+                        default:
+                            $_build_version = $this->getNewestVersionForLocaleFromBuildArray($_locale, $_region_builds);
+                            break;
+                    }
+
+                    if ($_build_version === '') {
+                        continue;
+                    }
+
+                    $_build_info = $_versions[$_build_version];
+
+                    echo "<li class=\"locale\">\n";
+                    echo "<h3 lang=\"", $_locale, "\">", $this->localeDetails->languages[$_locale]['native'], "</h3>\n";
+                    echo "<span class=\"english\">", $this->localeDetails->languages[$_locale]['English'], "</span>\n";
+
+                    $_beta = false;
+                    foreach ($_build_info as $_info) {
+                        if (array_key_exists('beta', $_info) && $_info['beta']) {
+                            $_beta = true;
+                            break;
+                        }
+                    }
+
+                    if ($_beta) {
+                        echo "<span class=\"note\">", $_text_new_localized_builds_note, "</span>\n";
+                    }
+
+                    // display platform builds
+                    echo "<ul>\n";
+                    foreach ($_build_info as $_platform => $_info) {
+
+                        // special case for OS X and Japanese
+                        if ($_platform_ids[$_platform] == 'osx' && $_locale == 'ja') {
+                            $_the_locale = 'ja-JP-mac';
+                        } else {
+                            $_the_locale = $_locale;
+                        }
+
+                        $_download_link = $this->download_base_url_direct.'?product='.$_product.'-'.$_build_version.'&amp;os='.$_platform_ids[$_platform].'&amp;lang='.$_the_locale;
+
+                        echo "<li class=\"", $_platform_classes[$_platform], "\">";
+                        echo "<a href=\"", $_download_link, "\">", $_platform_titles[$_platform], "</a>";
+                        echo "</li>";
+                    }
+                    echo "</ul>\n";
+
+                    echo "</li>\n";
+
+                    $_count++; // counter for clearing list items
+
+                    if ($_count % 3 === 0) {
+                        echo "<li class=\"clear\"> </li>\n";
+                        $_class = 'locale';
+                    }
+                }
+
+                echo "</ul>\n";
+                echo "</div>\n";
+            }
+
+            return ob_get_clean();
+        }
+
+        function getDownloadTablesByContinent($options = array()) {
+            $options['product']         = array_key_exists('product', $options) ? $options['product'] : 'firefox';
+            $options['hide_empty_rows'] = array_key_exists('hide_empty_rows', $options) ? $options['hide_empty_rows'] : true;
+            $options['latest_version']  = array_key_exists('latest_version', $options) ? $options['latest_version'] : LATEST_FIREFOX_VERSION;
+
+            $_text_fully_localized_versions  = ___('Fully Localized Versions');
+            $_text_new_localized_builds      = ___('New Localized Builds');
+            $_text_new_localized_builds_note = ___('These localized builds are in beta and may contain translation errors.');
+
+            $_text_summaries = array(
+                'africa' => array(
+                    'stable' => ___('African Firefox builds available for download.'),
+                    'beta'   => ___('African beta localizations of Firefox available for download.')
+                    ),
+                'asia' => array(
+                    'stable' => ___('Asian Firefox builds available for download.'),
+                    'beta'   => ___('Asian beta localizations Firefox available for download.')
+                    ),
+                'australia-oceania' => array(
+                    'stable' => ___('Australian and Oceanian Firefox builds available for download.'),
+                    'beta'   => ___('Australian and Oceanian beta localizations of Firefox available for download.')
+                    ),
+                'europe' => array(
+                    'stable' => ___('European Firefox builds available for download.'),
+                    'beta'   => ___('European beta localizations of Firefox available for download.')
+                    ),
+                'north-america' => array(
+                    'stable' => ___('North American Firefox builds available for download.'),
+                    'beta'   => ___('North American beta localizations of Firefox available for download.')
+                    ),
+                'south-america' => array(
+                    'stable' => ___('South American Firefox builds available for download.'),
+                    'beta'   => ___('South American beta localizations of Firefox available for download.')
+                    )
+                );
+
+            // build list of locales-by-continent
+            $_continents = array();
+            foreach ($this->localeDetails->continents as $_continent => $_locations) {
+                $_continents[$_continent] = array();
+                foreach ($_locations as $_location) {
+                    if (array_key_exists($_location, $this->localeDetails->locations)) {
+                        foreach ($this->localeDetails->locations[$_location]['primary'] as $_locale) {
+                            $_continents[$_continent][] = $_locale;
+                        }
+                        foreach ($this->localeDetails->locations[$_location]['secondary'] as $_locale) {
+                            $_continents[$_continent][] = $_locale;
+                        }
+                    }
+                }
+                $_continents[$_continent] = array_unique($_continents[$_continent]);
+            }
+
+            ob_start();
+
+            $_count = 0;
+            foreach ($_continents as $_continent => $_locales) {
+                $_count++;
+
+                $_continent_title = htmlspecialchars($_continent);
+
+                $_continent_id = strtolower($_continent);
+                $_continent_id = preg_replace('/[^a-z ]/', '', $_continent_id);
+                $_continent_id = str_replace(' ', '-', $_continent_id);
+                $_continent_id = preg_replace('/-+/', '-', $_continent_id);
+
+                if ($_count % 2 == 0) {
+                    $_expander_class = 'expander';
+                } else {
+                    $_expander_class = 'expander expander-odd';
+                }
+
+                echo "<div class=\"{$_expander_class}\" id=\"{$_continent_id}\">\n";
+                echo "<h3 class=\"expander-header\">{$_continent_title}</h3>\n";
+                echo "<div class=\"expander-content\">\n";
+
+                // display locales for the current continent
+                echo "<div class=\"full-languages\">\n";
+                echo "<h4>{$_text_fully_localized_versions}</h4>";
+
+                $_builds = array();
+
+                // filter the builds by locale
+                foreach ($_locales as $_locale) {
+                    if (array_key_exists($_locale, $this->primary_builds)) {
+                        $_builds[$_locale] = $this->primary_builds[$_locale];
+                    }
+                }
+
+                $options['download_table_summary'] = $_text_summaries[$_continent_id]['stable'];
+
+                echo $this->tweakString($this->_getDownloadTableFromBuildArray($_builds, $options), $options);
+                echo "</div>";
+                // done displaying locales
+
+                // display beta locales for the current continent (if they exist)
+                $options['beta'] = true;
+                $options['download_table_summary'] = $_text_summaries[$_continent_id]['beta'];
+
+                $_builds = array();
+
+                // filter the builds by locale
+                foreach ($_locales as $_locale) {
+                    if (array_key_exists($_locale, $this->beta_builds)) {
+                        $_builds[$_locale] = $this->beta_builds[$_locale];
+                    }
+                }
+
+                $_beta_table = $this->tweakString($this->_getDownloadTableFromBuildArray($_builds, $options), $options);
+                if (!empty($_beta_table)) {
+                    echo "<div class=\"beta-languages\">\n";
+                    echo "<h4>{$_text_new_localized_builds}</h4>\n";
+                    echo "<p>{$_text_new_localized_builds_note}</p>\n";
+                    echo $_beta_table;
+                    echo "</div>\n";
+                }
+                // done displaying beta locales
+
+                $_primary_builds = $this->_getJavaScriptBuildArray($this->primary_builds, array('continent' => $_continent));
+                $_beta_builds    = $this->_getJavaScriptBuildArray($this->beta_builds,    array('continent' => $_continent));
+                $_data           = '[' . $_primary_builds . ', ' . $_beta_builds . ']';
+                $_id             = "'" . escapeForJavaScript($_continent_id) . "'";
+                $_version        = "'" . LATEST_FIREFOX_VERSION . "'";
+                echo "<script type=\"text/javascript\">// <![CDATA[\n";
+                echo "var platform_switcher_{$_count} = new Mozilla.PlatformSwitcher({$_id}, {$_data}, {$_version});\n";
+                echo "// ]]></script>\n";
+
+                echo "</div>";
+                echo "</div>";
+            }
+
+            return $this->tweakString(ob_get_clean(), $options);
+        }
+
+        /**
+         * Gets a JavaScript structure for localized Firefox builds. NOTE: ***This requires the escapeForJavaScript() function
+         * but it isn't defined in this library!  Since this is a function for a specific part of mozilla.com I'm leaving
+         * the function out of the library but if this becomes used elsewhere we should copy it in.  If you need the function
+         * you can find it at moz.com/includes/functions.inc.php.***
+         *
+         * This stucture is used for JavaScript searching on the 'All Languages'
+         * page and for JavaScript platform switching on the same page.
+         *
+         * Structured as:
+         * [
+         *  [
+         *   $locale_id,
+         *   $english,
+         *   $native,
+         *   { 'Windows': { 'filesize': '9.0' }, 'OS X': { ... etc ... } }
+         *  ],
+         *  ... etc ...
+         * ]
+         *
+         * @param array options
+         * @return string JavaScript structure.
+         */
+        function _getJavaScriptBuildArray($build_array, $options = array()) {
+
+            $options['latest_version'] = array_key_exists('latest_version', $options) ? $options['latest_version'] : LATEST_FIREFOX_VERSION;
+
+            $_languages = array();
+
+            if (array_key_exists('continent', $options)) {
+                // if continent is specified, get build info for the specified continent only
+                $_build_array = array();
+                if (array_key_exists($options['continent'], $this->localeDetails->continents)) {
+                    foreach ($this->localeDetails->continents[$options['continent']] as $_location) {
+                        if (array_key_exists($_location, $this->localeDetails->locations)) {
+                            foreach ($this->localeDetails->locations[$_location]['primary'] as $_locale) {
+                                if (array_key_exists($_locale, $build_array)) {
+                                    $_build_array[$_locale] = $build_array[$_locale];
+                                }
+                            }
+                            foreach ($this->localeDetails->locations[$_location]['secondary'] as $_locale) {
+                                if (array_key_exists($_locale, $build_array)) {
+                                    $_build_array[$_locale] = $build_array[$_locale];
+                                }
+                            }
+                        }
+                    }
+                }
+            } else {
+                // no continent specified, use all build info
+                $_build_array = $build_array;
+            }
+
+            $_build_array = $this->_sortBuildArrayByEnglishName($_build_array);
+
+            foreach ($_build_array as $_locale => $_build_info) {
+                $_build_info     = $_build_info[$options['latest_version']];
+                $_locale_details = $this->localeDetails->languages[$_locale];
+
+                // skip languages that don't have a FF3 release
+                if (empty($_build_info)) {
+                    continue;
+                }
+
+                $_language = array();
+
+                // [0] locale-id field
+                $_language[] = "'" . escapeForJavaScript($_locale) . "'";
+
+                // [1] English language version field
+                $_language[] = "'" . escapeForJavaScript($_locale_details['English']) . "'";
+
+                // [2] localized version field
+                $_language[] = "'" . escapeForJavaScript($_locale_details['native']) . "'";
+
+                $_builds = '{';
+
+                foreach ($_build_info as $_system => $_build) {
+                    $_builds .= "'" . escapeForJavaScript($_system) . "': ";
+                    $_builds .= '{';
+                    foreach ($_build as $_name => $_value) {
+                        $_builds .= "'" . escapeForJavaScript($_name) . "': ";
+                        $_builds .= "'" . escapeForJavaScript($_value) . "', ";
+                    }
+                    $_builds  = substr($_builds, 0, -2);
+                    $_builds .= '}, ';
+                }
+
+                $_builds  = substr($_builds, 0, -2);
+                $_builds .= '}';
+
+                // [3] builds structure field
+                $_language[] = $_builds;
+
+                $_language = '[' . implode(', ', $_language) . ']';
+                $_languages[] = $_language;
+            }
+
+            $_javascript = "[" . implode(",\n ", $_languages) . "]\n";
+            return $_javascript;
+        }
+
+        /**
+         * Convenience function to gets JavaScript array structure for all builds (primary and beta)
+         *
+         * @param array options
+         * @return string JavaScript structure.
+         */
+        function getJavaScriptArrayForAllBuilds($options = array()) {
+
+            // add beta flag to beta builds
+            $_beta_builds = array();
+            foreach ($this->beta_builds as $_locale => $_build) {
+                foreach ($_build as $_version => $_platforms) {
+                    foreach ($_platforms as $_platform => $_details) {
+                        $_details['beta'] = true;
+                        $_platforms[$_platform] = $_details;
+                    }
+                    $_build[$_version] = $_platforms;
+                }
+                $_beta_builds[$_locale] = $_build;
+            }
+
+            $_builds = array_merge($this->primary_builds, $_beta_builds);
+
+            $options['latest_version'] = array_key_exists('latest_version', $options) ? $options['latest_version'] : LATEST_FIREFOX_VERSION;
+
+            return $this->_getJavaScriptBuildArray($_builds, $options);
+        }
+
+        /**
+         * Convenience function to return a <table> of Beta development (not beta locales) builds
+         *
+         * @param array options (more detail in getDownloadBlockForLocale())
+         * @return string HTML block
+         */
+        function getDownloadTableForDevelBuilds($options=array()) {
+
+            $options['product']         = array_key_exists('product', $options) ? $options['product'] : 'firefox';
+            $options['latest_version']  = LATEST_FIREFOX_DEVEL_VERSION;
+            $options['product_version'] = 'devel';
+            $options['tweaks'] = array('/<td class="curVersion" >(\d+\.\d+)b\d+<\/td>/' => '<td class="curVersion">$1</td>');
+
+            $all_builds = $this->primary_builds + $this->beta_builds;
+            return $this->tweakString($this->_getDownloadTableFromBuildArray($all_builds, $options), $options);
+        }
+
+        /**
+         * Convenience function to return a <table> of Firefox beta builds for beta locales
+         *
+         * @param array options (more detail in getDownloadBlockForLocale())
+         * @return string HTML block
+         */
+        function getDownloadTableForUpcomingLocales($options=array()) {
+
+            $options['product']         = array_key_exists('product', $options) ? $options['product'] : 'firefox';
+            $options['latest_version']  = LATEST_FIREFOX_DEVEL_VERSION;
+            $options['product_version'] = 'devel';
+
+            $builds = array();
+
+            foreach($this->beta_builds as $key => $val) {
+                if( array_key_exists(LATEST_FIREFOX_DEVEL_VERSION, $val) ) {
+                    $builds[$key] = $this->beta_builds[$key];
+                }
+            }
+
+            foreach($this->primary_builds as $key => $val) {
+                if( array_key_exists(LATEST_FIREFOX_DEVEL_VERSION, $val) && !array_key_exists(LATEST_FIREFOX_VERSION, $val) ) {
+                    $builds[$key] = $this->primary_builds[$key];
+                }
+            }
+
+            return $this->_getDownloadTableFromBuildArray($builds, $options);
+        }
+
+        /**
+         * Convenience function to return a <table> of Firefox Aurora builds
+         *
+         * @param array options (more detail in getDownloadBlockForLocale())
+         * @return string HTML block
+         */
+        function getDownloadTableForAuroraBuilds($options=array()) {
+
+            $options['product']         = array_key_exists('product', $options) ? $options['product'] : 'firefox';
+            $options['latest_version']  = FIREFOX_AURORA;
+            $options['product_version'] = 'aurora';
+            $all_builds = $this->primary_builds + $this->beta_builds;
+            return $this->tweakString($this->_getDownloadTableFromBuildArray($all_builds, $options), $options);
+        }
+
+        /**
+         * Convenience function to return a <table> of Firefox beta builds
+         *
+         * @param array options (more detail in getDownloadBlockForLocale())
+         * @return string HTML block
+         */
+        function getDownloadTableForBetaBuilds($options=array()) {
+
+            $options['product']        = array_key_exists('product', $options) ? $options['product'] : 'firefox';
+            $options['latest_version'] = LATEST_FIREFOX_VERSION;
+            $options['beta']           = true;
+
+            $_text_new_localized_builds_summary = ___('Firefox localized beta builds available for download.');
+
+            if (!array_key_exists('download_table_summary', $options)) {
+                $options['download_table_summary'] = $_text_new_localized_builds_summary;
+            }
+
+            return $this->tweakString($this->_getDownloadTableFromBuildArray($this->beta_builds, $options), $options);
+        }
+
+        /**
+         * Convenience function to return a <table> of Firefox ESR beta locales builds
+         *
+         * @param array options (more detail in getDownloadBlockForLocale())
+         * @return string HTML block
+         */
+        function getDownloadTableForESRBetaBuilds($options=array()) {
+
+            $options['product']         = array_key_exists('product', $options) ? $options['product'] : 'firefox';
+            $options['latest_version']  = FIREFOX_ESR;
+            $options['product_version'] = 'esr';
+            $options['beta']            = true;
+
+            $_text_new_localized_builds_summary = ___('Firefox localized beta builds available for download.');
+
+            if (!array_key_exists('download_table_summary', $options)) {
+                $options['download_table_summary'] = $_text_new_localized_builds_summary;
+            }
+
+            return $this->tweakString($this->_getDownloadTableFromBuildArray($this->beta_builds, $options), $options);
+        }
+
+        /**
+         * Return a <table> with the links to the older versions of all locales with
+         * primary builds.  We keep links to a single previous version.
+         *
+         * @return string HTML block
+         */
+        function getDownloadTableForOlderPrimaryBuilds($options=array()) {
+
+            $options['product']         = array_key_exists('product', $options) ? $options['product'] : 'firefox';
+            $options['latest_version']  = LATEST_FIREFOX_VERSION;
+            $options['product_version'] = 'oldest';
+
+            return $this->tweakString($this->_getDownloadTableFromBuildArray($this->primary_builds, $options), $options);
+        }
+
+        /**
+         * Return a <table> with the links to the older versions of all locales with
+         * beta builds.  We keep links to a single previous version.
+         *
+         * @return string HTML block
+         */
+        function getDownloadTableForOlderBetaBuilds($options=array()) {
+
+            $options['product']         = array_key_exists('product', $options) ? $options['product'] : 'firefox';
+            $options['latest_version']  = LATEST_FIREFOX_VERSION;
+            $options['product_version'] = 'oldest';
+
+            return $this->tweakString($this->_getDownloadTableFromBuildArray($this->beta_builds, $options), $options);
+        }
+
+        /**
+         * TEMPORARY CODE
+         *          20070827_TEMP
+         * Overload parent function.  See parent for details.
+         *
+         */
+        function getNoScriptBlockForLocale($locale, $options=array()) {
+
+            $options['product'] = array_key_exists('product', $options) ? $options['product'] : 'firefox';
+
+            return parent::getNoScriptBlockForLocale($locale, $options);
+        }
+
+}
+?>
new file mode 100644
--- /dev/null
+++ b/lib/python/mozilla_buildtools/test/product-details.svn/history/firefoxHistory.class.php
@@ -0,0 +1,505 @@
+<?php
+require_once dirname(__FILE__).'/productHistory.class.php';
+
+/**
+ * Dates of release for certain Firefox versions, mostly obtained from
+ * http://en.wikipedia.org/wiki/History_of_Mozilla_Firefox#Release_history
+ */
+class firefoxHistory extends productHistory {
+    // Major releases
+    var $major_releases = array(
+            '1.0' => '2004-11-09',
+            '1.5' => '2005-11-29',
+            '2.0' => '2006-10-24',
+            '3.0' => '2008-06-17',
+            '3.5' => '2009-06-30',
+            '3.6' => '2010-01-21',
+            '4.0' => '2011-03-22',
+            '5.0' => '2011-06-21',
+            '6.0' => '2011-08-16',
+            '7.0' => '2011-09-27',
+            '8.0' => '2011-11-08',
+            '9.0' => '2011-12-20',
+            '10.0' => '2012-01-31',
+            '11.0' => '2012-03-13',
+            '12.0' => '2012-04-24',
+            '13.0' => '2012-06-05',
+            '14.0.1' => '2012-07-17',
+            '15.0' => '2012-08-28',
+            '16.0' => '2012-10-09',
+            '17.0' => '2012-11-20',
+            '18.0' => '2013-01-08',
+            '19.0' => '2013-02-19',
+            '20.0' => '2013-04-02',
+            '21.0' => '2013-05-14',
+            '22.0' => '2013-06-25',
+            '23.0' => '2013-08-06',
+            '24.0' => '2013-09-17',
+            '25.0' => '2013-10-29',
+            '26.0' => '2013-12-10',
+            '27.0' => '2014-02-04',
+            '28.0' => '2014-03-18',
+            '29.0' => '2014-04-29',
+            '30.0' => '2014-06-10',
+            '31.0' => '2014-07-22',
+            '32.0' => '2014-09-02',
+            // NEXT_MAJOR
+            );
+            // Do not remove NEXT_MAJOR
+
+    // Security and stability releases
+    var $stability_releases = array(
+            '1.0.1'    => '2005-02-24',
+            '1.0.2'    => '2005-03-23',
+            '1.0.3'    => '2005-04-15',
+            '1.0.4'    => '2005-05-11',
+            '1.0.5'    => '2005-07-12',
+            '1.0.6'    => '2005-07-19',
+            '1.0.7'    => '2005-09-20',
+            '1.0.8'    => '2006-04-13',
+            '1.5.0.1'  => '2006-02-01',
+            '1.5.0.2'  => '2006-04-13',
+            '1.5.0.3'  => '2006-05-02',
+            '1.5.0.4'  => '2006-06-01',
+            '1.5.0.5'  => '2006-07-26',
+            '1.5.0.6'  => '2006-08-02',
+            '1.5.0.7'  => '2006-09-14',
+            '1.5.0.8'  => '2006-11-07',
+            '1.5.0.9'  => '2006-12-19',
+            '1.5.0.10' => '2007-02-23',
+            '1.5.0.11' => '2007-03-20',
+            '1.5.0.12' => '2007-05-30',
+            '2.0.0.1'  => '2006-12-19',
+            '2.0.0.2'  => '2007-02-23',
+            '2.0.0.3'  => '2007-03-20',
+            '2.0.0.4'  => '2007-05-30',
+            '2.0.0.5'  => '2007-07-17',
+            '2.0.0.6'  => '2007-07-30',
+            '2.0.0.7'  => '2007-09-18',
+            '2.0.0.8'  => '2007-10-18',
+            '2.0.0.9'  => '2007-11-01',
+            '2.0.0.10' => '2007-11-26',
+            '2.0.0.11' => '2007-11-30',
+            '2.0.0.12' => '2008-02-07',
+            '2.0.0.13' => '2008-03-25',
+            '2.0.0.14' => '2008-04-16',
+            '2.0.0.15' => '2008-07-01',
+            '2.0.0.16' => '2008-07-15',
+            '2.0.0.17' => '2008-09-23',
+            '2.0.0.18' => '2008-11-12',
+            '2.0.0.19' => '2008-12-16',
+            '2.0.0.20' => '2008-12-18',
+            '3.0.1'    => '2008-07-16',
+            '3.0.2'    => '2008-09-23',
+            '3.0.3'    => '2008-09-26',
+            '3.0.4'    => '2008-11-12',
+            '3.0.5'    => '2008-12-16',
+            '3.0.6'    => '2009-02-03',
+            '3.0.7'    => '2009-03-04',
+            '3.0.8'    => '2009-03-27',
+            '3.0.9'    => '2009-04-21',
+            '3.0.10'   => '2009-04-27',
+            '3.0.11'   => '2009-06-11',
+            '3.0.12'   => '2009-07-21',
+            '3.0.13'   => '2009-08-03',
+            '3.0.14'   => '2009-09-09',
+            '3.0.15'   => '2009-10-27',
+            '3.0.16'   => '2009-12-15',
+            '3.0.17'   => '2010-01-05',
+            '3.0.18'   => '2010-02-17',
+            '3.0.19'   => '2010-03-30',
+            '3.5.1'    => '2009-07-17',
+            '3.5.2'    => '2009-08-03',
+            '3.5.3'    => '2009-09-09',
+            '3.5.4'    => '2009-10-27',
+            '3.5.5'    => '2009-11-05',
+            '3.5.6'    => '2009-12-15',
+            '3.5.7'    => '2010-01-05',
+            '3.5.8'    => '2010-02-17',
+            '3.5.9'    => '2010-03-30',
+            '3.5.10'   => '2010-06-22',
+            '3.5.11'   => '2010-07-20',
+            '3.5.12'   => '2010-09-07',
+            '3.5.13'   => '2010-09-15',
+            '3.5.14'   => '2010-10-19',
+            '3.5.15'   => '2010-10-27',
+            '3.5.16'   => '2010-12-09',
+            '3.5.17'   => '2011-03-01',
+            '3.5.18'   => '2011-03-22',
+            '3.5.19'   => '2011-04-28',
+            '3.6.2'    => '2010-03-22',
+            '3.6.3'    => '2010-04-01',
+            '3.6.4'    => '2010-06-22',
+            '3.6.6'    => '2010-06-26',
+            '3.6.7'    => '2010-07-20',
+            '3.6.8'    => '2010-07-23',
+            '3.6.9'    => '2010-09-07',
+            '3.6.10'   => '2010-09-15',
+            '3.6.11'   => '2010-10-19',
+            '3.6.12'   => '2010-10-27',
+            '3.6.13'   => '2010-12-09',
+            '3.6.14'   => '2011-03-01',
+            '3.6.15'   => '2011-03-04',
+            '3.6.16'   => '2011-03-22',
+            '3.6.17'   => '2011-04-28',
+            '3.6.18'   => '2011-06-21',
+            '3.6.19'   => '2011-07-11',
+            '3.6.20'   => '2011-08-16',
+            '3.6.21'   => '2011-08-30',
+            '3.6.22'   => '2011-09-06',
+            '3.6.23'   => '2011-09-27',
+            '3.6.24'   => '2011-11-08',
+            '3.6.25'   => '2011-12-20',
+            '4.0.1'    => '2011-04-28',
+            '5.0.1'    => '2011-07-11',
+            '6.0.1'    => '2011-08-30',
+            '6.0.2'    => '2011-09-06',
+            '7.0.1'    => '2011-09-29',
+            '8.0.1'    => '2011-11-21',
+            '9.0.1'    => '2011-12-21',
+            '3.6.26'   => '2012-01-31',
+            '10.0.1'    => '2012-02-10',
+            '10.0.2'    => '2012-02-16',
+            '3.6.27'   => '2012-02-17',
+            '10.0.3'    => '2012-03-13',
+            '3.6.28'   => '2012-03-13',
+            '10.0.4'    => '2012-04-24',
+            '10.0.5'    => '2012-06-05',
+            '13.0.1'    => '2012-06-15',
+            '10.0.6'    => '2012-07-17',
+            '10.0.7'    => '2012-08-28',
+            '15.0.1'    => '2012-09-06',
+            '10.0.8'    => '2012-10-09',
+            '16.0.1'    => '2012-10-11',
+            '10.0.9'    => '2012-10-12',
+            '16.0.2'    => '2012-10-26',
+            '10.0.10'   => '2012-10-26',
+            '10.0.11'   => '2012-11-20',
+            '17.0.1'    => '2012-11-30',
+            '10.0.12'   => '2013-01-08',
+            '17.0.2'    => '2013-01-08',
+            '18.0.1' => '2013-01-18',
+            '18.0.2' => '2013-02-05',
+            '17.0.3' => '2013-02-19',
+            '19.0.1' => '2013-02-27',
+            '17.0.4' => '2013-03-07',
+            '19.0.2' => '2013-03-07',
+            '17.0.5' => '2013-04-02',
+            '20.0.1' => '2013-04-11',
+            '17.0.6' => '2013-05-14',
+            '17.0.7' => '2013-06-25',
+            '17.0.8' => '2013-08-06',
+            '23.0.1' => '2013-08-16',
+            '17.0.9' => '2013-09-17',
+            '17.0.10' => '2013-10-29',
+            '24.1.0'  =>  '2013-10-29',
+            '25.0.1' => '2013-11-15',
+            '24.1.1' => '2013-11-15',
+            '17.0.11' => '2013-11-15',
+            '24.2.0' => '2013-12-10',
+            '24.3.0' => '2014-02-04',
+            '27.0.1' => '2014-02-14',
+            '24.4.0' => '2014-03-18',
+            '24.5.0' => '2014-04-29',
+            '29.0.1' => '2014-05-09',
+            '24.6.0' => '2014-06-10',
+            '24.7.0' => '2014-07-22',
+            '24.8.0' => '2014-09-02',
+            '31.1.0' => '2014-09-02',
+            '32.0.1' => '2014-09-12',
+            '32.0.2' => '2014-09-18',
+            '32.0.3' => '2014-09-24',
+            '31.1.1' => '2014-09-24',
+            '24.8.0' => '2014-09-24',
+            // NEXT_STABILITY
+            );
+            // Do not remove NEXT_STABILITY
+
+    // Development releases - betas and release candidates only
+    var $development_releases = array(
+            '1.0rc1' => '2004-10-27',
+            '1.0rc2' => '2004-11-03',
+            '1.5rc1' => '2005-11-01',
+            '1.5rc2' => '2005-11-10',
+            '1.5rc3' => '2005-11-17',
+            '2.0b1'  => '2006-07-12',
+            '2.0b2'  => '2006-08-31',
+            '2.0rc1' => '2006-09-26',
+            '2.0rc2' => '2006-10-06',
+            '2.0rc3' => '2007-10-16',
+            '3.0b1'  => '2007-11-19',
+            '3.0b2'  => '2007-12-18',
+            '3.0b3'  => '2008-02-12',
+            '3.0b4'  => '2008-03-10',
+            '3.0b5'  => '2008-04-02',
+            '3.0rc1' => '2008-05-16',
+            '3.0rc2' => '2008-06-03',
+            '3.1b1'  => '2008-08-14',
+            '3.1b2'  => '2008-12-08',
+            '3.1b3'  => '2009-03-12',
+            '3.5b4'  => '2009-04-27',
+            '3.5rc2' => '2009-06-19',
+            '3.5rc3' => '2009-06-24',
+            /* Missing some versions here */
+            '3.6b1' => '2009-10-30',
+            '3.6b2' => '2009-11-10',
+            '3.6b3' => '2009-11-17',
+            '3.6b4' => '2009-11-26',
+            '3.6b5' => '2009-12-17',
+            '3.6rc1' => '2010-01-08',
+            '3.6rc2' => '2010-01-17',
+            '3.6.3plugin1' => '2010-04-08',
+            '3.6.4build1' => '2010-04-20',
+            '3.6.4build3' => '2010-05-04',
+            '3.6.4build4' => '2010-05-14',
+            '3.6.4build5' => '2010-05-26',
+            '3.6.4build6' => '2010-05-28',
+            '3.6.4build7' => '2010-06-14',
+            '3.6.7build1' => '2010-07-02',
+            '4.0b1' => '2010-07-06',
+            '4.0b2' => '2010-07-27',
+            '4.0b3' => '2010-08-11',
+            '4.0b4' => '2010-08-24',
+            '4.0b5' => '2010-09-07',
+            '4.0b6' => '2010-09-14',
+            '4.0b7' => '2010-11-10',
+            '4.0b8' => '2010-12-22',
+            '4.0b9' => '2011-01-14',
+            '4.0b10' => '2011-01-25',
+            '4.0b11' => '2011-02-08',
+            '4.0b12' => '2011-02-25',
+            '4.0rc1' => '2011-03-09',
+            '4.0rc2' => '2011-03-18',
+            // 5.0 b1 was "fake" / just a snapshot of Aurora
+            // Going to set the date to b2, which was the first "real"
+            // beta
+            '5.0b1' => '2011-05-20',
+            '5.0b2' => '2011-05-20',
+            '5.0b3' => '2011-06-01',
+            // No b4
+            '5.0b5' => '2011-06-09',
+            '5.0b6' => '2011-06-14',
+            '5.0b7' => '2011-06-15',
+            '6.0b1' => '2011-07-08',
+            '6.0b2' => '2011-07-15',
+            '6.0b3' => '2011-07-25',
+            '6.0b4' => '2011-08-01',
+            '6.0b5' => '2011-08-05',
+            '7.0b1' => '2011-08-18',
+            '7.0b2' => '2011-08-26',
+            // No b3 released
+            '7.0b4' => '2011-09-06',
+            '7.0b5' => '2011-09-09',
+            '7.0b6' => '2011-09-19',
+            '8.0b1' => '2011-09-29',
+            '8.0b2' => '2011-10-10',
+            '8.0b3' => '2011-10-14',
+            '8.0b4' => '2011-10-21',
+            '8.0b5' => '2011-10-28',
+            '8.0b6' => '2011-11-03',
+            '9.0b1' => '2011-11-10',
+            '9.0b2' => '2011-11-17',
+            '9.0b3' => '2011-11-25',
+            '9.0b4' => '2011-12-02',
+            '9.0b5' => '2011-12-09',
+            '9.0b6' => '2011-12-15',
+            '10.0b1' => '2011-12-22',
+            '10.0b2' => '2011-12-30',
+            '10.0b3' => '2012-01-06',
+            '10.0b4' => '2012-01-13',
+            '10.0b5' => '2012-01-20',
+            '10.0b6' => '2012-01-26',
+            '11.0b1' => '2012-02-03',
+            '11.0b2' => '2012-02-10',
+            '11.0b3' => '2012-02-17',
+            '11.0b4' => '2012-02-24',
+            '11.0b5' => '2012-03-02',
+            '11.0b6' => '2012-03-07',
+            '11.0b7' => '2012-03-09',
+            '11.0b8' => '2012-03-11',
+            '12.0b1' => '2012-03-16',
+            '12.0b2' => '2012-03-22',
+            '12.0b3' => '2012-03-30',
+            '12.0b4' => '2012-04-05',
+            '12.0b5' => '2012-04-13',
+            '12.0b6' => '2012-04-19',
+            '13.0b1' => '2012-04-26',
+            '13.0b2' => '2012-05-03',
+            '13.0b3' => '2012-05-11',
+            '13.0b4' => '2012-05-18',
+            '13.0b5' => '2012-05-25',
+            '13.0b6' => '2012-05-29',
+            '13.0b7' => '2012-06-01',
+            '14.0b6' => '2012-06-07',
+            '14.0b7' => '2012-06-14',
+            '14.0b8' => '2012-06-21',
+            '14.0b9' => '2012-06-25',
+            '14.0b10' => '2012-06-29',
+            '14.0b11' => '2012-07-06',
+            '14.0b12' => '2012-07-11',
+            '15.0b1' => '2012-07-19',
+            '15.0b2' => '2012-07-27',
+            '15.0b3' => '2012-08-02',
+            '15.0b4' => '2012-08-10',
+            '15.0b5' => '2012-08-17',
+            '15.0b6' => '2012-08-22',
+            '16.0b1' => '2012-08-30',
+            '16.0b2' => '2012-09-07',
+            '16.0b3' => '2012-09-13',
+            '16.0b4' => '2012-09-21',
+            '16.0b5' => '2012-09-27',
+            '16.0b6' => '2012-10-03',
+            '17.0b1' => '2012-10-11',
+            '17.0b2' => '2012-10-22',
+            '17.0b3' => '2012-10-24',
+            '17.0b4' => '2012-11-02',
+            '17.0b5' => '2012-11-08',
+            '17.0b6' => '2012-11-14',
+            '18.0b1' => '2012-11-26',
+            '18.0b2' => '2012-11-29',
+            '18.0b3' => '2012-12-06',
+            '18.0b4' => '2012-12-14',
+            '18.0b5' => '2012-12-21',
+            '18.0b6' => '2012-12-28',
+            '18.0b7' => '2013-01-02',
+            '19.0b1' => '2013-01-10',
+            '19.0b2' => '2013-01-17',
+            '19.0b3' => '2013-01-25',
+            '19.0b4' => '2013-01-31',
+            '19.0b5' => '2013-02-07',
+            '19.0b6' => '2013-02-13',
+            '20.0b1' => '2013-02-22',
+            '20.0b2' => '2013-02-28',
+            '20.0b3' => '2013-03-06',
+            '20.0b4' => '2013-03-08',
+            '20.0b5' => '2013-03-14',
+            '20.0b6' => '2013-03-21',
+            '21.0b1' => '2013-04-04',
+            '21.0b2' => '2013-04-09',
+            '21.0b3' => '2013-04-18',
+            '21.0b4' => '2013-04-25',
+            '21.0b5' => '2013-04-29',
+            '21.0b6' => '2013-05-02',
+            '21.0b7' => '2013-05-08',
+            '22.0b1' => '2013-05-16',
+            '22.0b2' => '2013-05-23',
+            '22.0b3' => '2013-05-30',
+            '22.0b4' => '2013-06-06',
+            '22.0b5' => '2013-06-13',
+            '22.0b6' => '2013-06-19',
+            '23.0b1' => '2013-06-27',
+            '23.0b2' => '2013-07-02',
+            '23.0b3' => '2013-07-04',
+            '23.0b4' => '2013-07-09',
+            '23.0b5' => '2013-07-12',
+            '23.0b6' => '2013-07-16',
+            '23.0b7' => '2013-07-19',
+            '23.0b8' => '2013-07-23',
+            '23.0b9' => '2013-07-26',
+            '23.0b10' => '2013-07-30',
+            '24.0b1' => '2013-08-09',
+            '24.0b2' => '2013-08-13',
+            '24.0b3' => '2013-08-16',
+            '24.0b4' => '2013-08-20',
+            '24.0b5' => '2013-08-23',
+            '24.0b6' => '2013-08-27',
+            '24.0b7' => '2013-08-30',
+            '24.0b8' => '2013-09-03',
+            '24.0b9' => '2013-09-06',
+            '24.0b10' => '2013-09-10',
+            '25.0b1' => '2013-09-18',
+            '25.0.1' => '2013-11-14',
+            '25.0b2' => '2013-09-24',
+            '25.0.1' => '2013-11-14',
+            '25.0b3' => '2013-09-27',
+            '25.0.1' => '2013-11-14',
+            '25.0b4' => '2013-10-02',
+            '25.0.1' => '2013-11-14',
+            '25.0b6' => '2013-10-08',
+            '25.0.1' => '2013-11-14',
+            '25.0b7' => '2013-10-11',
+            '25.0.1' => '2013-11-14',
+            '25.0b8' => '2013-10-15',
+            '25.0.1' => '2013-11-14',
+            '25.0b9' => '2013-10-18',
+            '25.0.1' => '2013-11-14',
+            '25.0b10' => '2013-10-22',
+            '25.0.1' => '2013-11-14',
+            '25.0b11' => '2013-10-24',
+            '25.0.1' => '2013-11-14',
+            '25.0b12' => '2013-10-26',
+            '25.0.1' => '2013-11-14',
+            '26.0b1' => '2013-10-31',
+            '26.0b2' => '2013-11-05',
+            '26.0b3' => '2013-11-08',
+            '26.0b4' => '2013-11-12',
+            '26.0b5' => '2013-11-15',
+            '26.0b6' => '2013-11-19',
+            '26.0b7' => '2013-11-23',
+            '26.0b8' => '2013-11-26',
+            '26.0b10' => '2013-12-03',
+            '27.0b1' => '2013-12-12',
+            '27.0b2' => '2013-12-17',
+            '27.0b4' => '2014-01-07',
+            '27.0b5' => '2014-01-10',
+            '27.0b6' => '2014-01-14',
+            '27.0b7' => '2014-01-17',
+            '27.0b8' => '2014-01-21',
+            '27.0b9' => '2014-01-24',
+            '28.0b1' => '2014-02-06',
+            '28.0b2' => '2014-02-11',
+            '28.0b3' => '2014-02-14',
+            '28.0b4' => '2014-02-19',
+            '28.0b6' => '2014-02-25',
+            '28.0b7' => '2014-02-28',
+            '28.0b8' => '2014-03-04',
+            '28.0b9' => '2014-03-07',
+            '29.0b1' => '2014-03-20',
+            '29.0b2' => '2014-03-25',
+            '29.0b3' => '2014-03-28',
+            '29.0b4' => '2014-04-01',
+            '29.0b5' => '2014-04-04',
+            '29.0b6' => '2014-04-08',
+            '29.0b7' => '2014-04-11',
+            '29.0b8' => '2014-04-15',
+            '29.0b9' => '2014-04-18',
+            '30.0b1' => '2014-05-01',
+            '30.0b2' => '2014-05-06',
+            '30.0b3' => '2014-05-09',
+            '30.0b4' => '2014-05-14',
+            '30.0b5' => '2014-05-16',
+            '30.0b6' => '2014-05-21',
+            '30.0b7' => '2014-05-23',
+            '30.0b8' => '2014-05-28',
+            '30.0b9' => '2014-05-30',
+            '31.0b1' => '2014-06-12',
+            '31.0b2' => '2014-06-18',
+            '31.0b4' => '2014-06-24',
+            '31.0b5' => '2014-06-27',
+            '31.0b6' => '2014-07-01',
+            '31.0b7' => '2014-07-04',
+            '31.0b8' => '2014-07-08',
+            '31.0b9' => '2014-07-11',
+            '32.0b1' => '2014-07-24',
+            '32.0b2' => '2014-07-29',
+            '32.0b3' => '2014-08-01',
+            '32.0b4' => '2014-08-05',
+            '32.0b5' => '2014-08-08',
+            '32.0b6' => '2014-08-12',
+            '32.0b7' => '2014-08-15',
+            '32.0b8' => '2014-08-19',
+            '32.0b9' => '2014-08-22',
+            '33.0b1' => '2014-09-04',
+            '33.0b2' => '2014-09-09',
+            '33.0b3' => '2014-09-12',
+            '33.0b4' => '2014-09-17',
+            '33.0b5' => '2014-09-19',
+            '33.0b6' => '2014-09-23',
+            '33.0b7' => '2014-09-24',
+            '33.0b8' => '2014-09-30',
+            // NEXT_DEVELOPMENT
+            );
+            // Do not remove NEXT_DEVELOPMENT
+}
+
+?>
new file mode 100644
--- /dev/null
+++ b/lib/python/mozilla_buildtools/test/product-details.svn/history/mobileHistory.class.php
@@ -0,0 +1,259 @@
+<?php
+    require_once dirname(__FILE__).'/productHistory.class.php';
+
+    /**
+     * Dates of release for certain Firefox Mobile versions
+     */
+    class mobileHistory extends productHistory {
+        // Major releases
+        var $major_releases = array(
+                '1.0' => '2010-01-28',
+                '1.1' => '2010-07-01',
+                '4.0' => '2011-03-29',
+                '5.0' => '2011-06-21',
+                '6.0' => '2011-08-16',
+                '7.0' => '2011-09-27',
+                '8.0' => '2011-11-08',
+                '9.0' => '2011-12-20',
+                '10.0' => '2012-01-31',
+                '14.0' => '2012-06-26',
+                '14.0.1' => '2012-07-17',
+                '15.0' => '2012-08-28',
+                '16.0' => '2012-10-09',
+                '17.0' => '2012-11-19',
+                '18.0' => '2013-01-08',
+                '19.0' => '2013-02-19',
+                '20.0' => '2013-04-02',
+                '21.0' => '2013-05-14',
+                '22.0' => '2013-06-25',
+                '23.0' => '2013-08-06',
+                '24.0' => '2013-09-17',
+                '25.0' => '2013-10-29',
+                '26.0' => '2013-12-10',
+                '27.0' => '2014-02-04',
+                '28.0' => '2014-03-18',
+                '29.0' => '2014-04-29',
+                '30.0' => '2014-06-10',
+                '31.0' => '2014-07-22',
+                '32.0' => '2014-09-02',
+                // NEXT_MAJOR
+                );
+                // Do not remove NEXT_MAJOR
+
+        // Security and stability releases
+        var $stability_releases = array(
+                '1.0.1'    => '2010-04-13',
+                '4.0.1'    => '2011-04-28',
+                // No 5.0.1 as it was a respin for a non-mobile platform
+                // No 6.0.1 as we got new info before it was released, prompting 6.0.2
+                '6.0.2'    => '2011-09-06',
+                '7.0.1'    => '2011-09-29',
+                '10.0.1'    => '2012-02-10',
+                '10.0.2'    => '2012-02-16',
+                '10.0.3'    => '2012-03-13',
+                '10.0.4'    => '2012-04-24',
+                '10.0.5'    => '2012-06-05',
+                '14.0.1'    => '2012-07-17',
+                '15.0.1'    => '2012-09-06',
+                '16.0.1'    => '2012-10-11',
+                '16.0.2'    => '2012-10-26',
+                '18.0.2'    => '2012-02-07',
+                '19.0.2'    => '2013-03-07',
+                '20.0.1'    => '2013-04-11',
+                '25.0.1'    => '2013-11-15',
+                '26.0.1'    => '2013-12-20',
+                '28.0.1'    => '2014-03-24',
+                '29.0.1'    => '2014-05-09',
+                '32.0.1'    => '2014-09-10',
+                // No 32.0.2 as this was a desktop stability release
+                '32.0.3'    => '2014-09-24',
+                '31.1.1'    => '2014-09-24',
+                // NEXT_STABILITY
+                );
+                // Do not remove NEXT_STABILITY
+
+        // Development releases - betas and release candidates only
+        var $development_releases = array(
+                '1.1b1' => '2010-04-28',
+                '1.1rc1' => '2010-06-16',
+                '4.0b1' => '2010-10-06',
+                '4.0b2' => '2010-11-04',
+                '4.0b3' => '2010-12-22',
+                '4.0b4' => '2011-02-01',
+                '4.0b5' => '2011-02-23',
+                '4.0rc1' => '2011-03-21',
+                '5.0b1' => '2011-05-20',
+                '5.0b4' => '2011-06-07',
+                '5.0b7' => '2011-06-15',
+                '6.0b1' => '2011-07-08',
+                '6.0b2' => '2011-07-15',
+                '6.0b3' => '2011-07-25',
+                '6.0b4' => '2011-08-01',
+                '6.0b5' => '2011-08-05',
+                '7.0b1' => '2011-08-18',
+                '7.0b2' => '2011-08-26',
+                // No b3
+                '7.0b4' => '2011-09-06',
+                '7.0b5' => '2011-09-09',
+                '7.0b6' => '2011-09-19',
+                '8.0b1' => '2011-09-29',
+                '8.0b2' => '2011-10-10',
+                '8.0b3' => '2011-10-14',
+                '8.0b4' => '2011-10-21',
+                '8.0b5' => '2011-10-28',
+                '8.0b6' => '2011-11-03',
+                '9.0b1' => '2011-11-10',
+                '9.0b2' => '2011-11-17',
+                '9.0b3' => '2011-11-25',
+                '9.0b4' => '2011-12-02',
+                '9.0b5' => '2011-12-09',
+                '9.0b6' => '2011-12-15',
+                '10.0b1' => '2011-12-22',
+                '10.0b2' => '2011-12-30',
+                '10.0b3' => '2012-01-06',
+                '10.0b4' => '2012-01-13',
+                '10.0b5' => '2012-01-20',
+                '10.0b6' => '2012-01-26',
+                '11.0b3' => '2012-02-17',
+                '11.0b4' => '2012-02-24',
+                '11.0b5' => '2012-03-02',
+                '11.0b6' => '2012-03-07',
+                '12.0b1' => '2012-03-16',
+                '12.0b2' => '2012-03-23',
+                '12.0b3' => '2012-03-30',
+                '12.0b4' => '2012-04-05',
+                '12.0b5' => '2012-04-13',
+                '12.0b6' => '2012-04-19',
+                '13.0b1' => '2012-04-27',
+                '13.0b2' => '2012-05-03',
+                '14.0b1' => '2012-05-15',
+                '14.0b2' => '2012-05-18',
+                '14.0b3' => '2012-05-25',
+                '14.0b4' => '2012-06-01',
+                '14.0b5' => '2012-06-01',
+                '14.0b6' => '2012-06-07',
+                '14.0b7' => '2012-06-13',
+                '14.0b8' => '2012-06-21',
+                // no b9
+                '14.0b10' => '2012-06-29',
+                '14.0b11' => '2012-07-06',
+                '14.0b12' => '2012-07-11',
+                '15.0b1' => '2012-07-19',
+                '15.0b2' => '2012-07-27',
+                '15.0b3' => '2012-08-02',
+                '15.0b4' => '2012-08-10',
+                '15.0b5' => '2012-08-17',
+                '15.0b6' => '2012-08-22',
+                '15.0b7' => '2012-08-24',
+                '16.0b1' => '2012-08-30',
+                '16.0b2' => '2012-09-07',
+                '16.0b3' => '2012-09-14',
+                '16.0b4' => '2012-09-21',
+                '16.0b5' => '2012-09-27',
+                '16.0b6' => '2012-10-03',
+                '17.0b1' => '2012-10-11',
+                '17.0b2' => '2012-10-19',
+                '17.0b3' => '2012-10-24',
+                '17.0b4' => '2012-11-02',
+                '17.0b5' => '2012-11-08',
+                '17.0b6' => '2012-11-14',
+                '17.0b7' => '2012-11-16',
+                '18.0b1' => '2012-11-26',
+                '18.0b2' => '2012-11-29',
+                '18.0b3' => '2012-12-06',
+                '18.0b4' => '2012-12-14',
+                '18.0b5' => '2012-12-21',
+                '18.0b6' => '2012-12-28',
+                '18.0b7' => '2013-01-02',
+                '19.0b1' => '2013-01-10',
+                '19.0b2' => '2013-01-18',
+                '19.0b3' => '2013-01-25',
+                '19.0b4' => '2013-02-01',
+                '19.0b5' => '2013-02-07',
+                '19.0b6' => '2013-02-13',
+                '20.0b1' => '2013-02-25',
+                '20.0b2' => '2013-03-01',
+                '20.0b4' => '2013-03-08',
+                '20.0b5' => '2013-03-15',
+                '20.0b6' => '2013-03-22',
+                '21.0b1' => '2013-04-04',
+                '21.0b2' => '2013-04-11',
+                '21.0b3' => '2013-04-19',
+                '21.0b4' => '2013-04-25',
+                '21.0b6' => '2013-05-02',
+                '21.0b7' => '2013-05-07',
+                '22.0b1' => '2013-05-16',
+                '22.0b2' => '2013-05-23',
+                '22.0b3' => '2013-05-30',
+                '22.0b4' => '2013-06-07',
+                '22.0b5' => '2013-06-14',
+				'22.0b6' => '2013-06-19',
+				'23.0b1' => '2013-06-27',
+				'23.0b2' => '2013-07-02',
+                '23.0b4' => '2013-07-10',
+                '23.0b6' => '2013-07-17',
+                '23.0b8' => '2013-07-24',
+                '23.0b10' => '2013-07-31',
+                '24.0b1' => '2013-08-09',
+                '24.0b4' => '2013-08-20',
+                '24.0b8' => '2013-09-06',
+                '24.0b10' => '2013-09-11',
+                '25.0b1' => '2013-09-18',
+                '25.0b2' => '2013-09-24',
+                '25.0b4' => '2013-10-02',
+                '25.0b6' => '2013-10-09',
+                '25.0b8' => '2013-10-16',
+                '25.0b10' => '2013-10-22',
+                '26.0b1' => '2013-10-31',
+                '26.0b2' => '2013-11-06',
+                '26.0b4' => '2013-11-14',
+                '26.0b6' => '2013-11-20',
+                '26.0b8' => '2013-11-27',
+                '26.0b10' => '2013-12-04',
+                '27.0b1' => '2013-12-12',
+                '27.0b2' => '2013-12-18',
+                '27.0b4' => '2014-01-08',
+                '27.0b6' => '2014-01-14',
+                '27.0b8' => '2014-01-22',
+                '27.0b9' => '2014-01-24',
+                '28.0b1' => '2014-02-06',
+                '28.0b2' => '2014-02-11',
+                '28.0b4' => '2014-02-20',
+                '28.0b6' => '2014-02-26',
+                '28.0b8' => '2014-03-05',
+                '29.0b1' => '2014-03-20',
+                '29.0b2' => '2014-03-26',
+                '29.0b4' => '2014-04-02',
+                '29.0b6' => '2014-04-08',
+                '29.0b8' => '2014-04-15',
+                '29.0b10' => '2014-04-23',
+                '30.0b1' => '2014-05-01',
+                '30.0b2' => '2014-05-07',
+                '30.0b4' => '2014-05-14',
+                '30.0b6' => '2014-05-21',
+                '30.0b8' => '2014-05-28',
+                '30.0b10' => '2014-06-04',
+                '31.0b1' => '2014-06-12',
+                '31.0b2' => '2014-06-17',
+                '31.0b4' => '2014-06-26',
+                '31.0b6' => '2014-07-01',
+                '31.0b8' => '2014-07-08',
+                '31.0b10' => '2014-07-15',
+                '31.0b11' => '2014-07-17',
+                '32.0b1' => '2014-07-24',
+                '32.0b2' => '2014-07-29',
+                '32.0b4' => '2014-08-06',
+                '32.0b6' => '2014-08-13',
+                '32.0b8' => '2014-08-20',
+                '32.0b10' => '2014-08-26',
+                '33.0b1' => '2014-09-05',
+                '33.0b2' => '2014-09-09',
+                '33.0b4' => '2014-09-17',
+		'33.0b6' => '2014-09-23',
+                '33.0b7' => '2014-09-24',
+                // NEXT_DEVELOPMENT
+                );
+                // Do not remove NEXT_DEVELOPMENT
+    }
+
+?>
new file mode 100644
--- /dev/null
+++ b/lib/python/mozilla_buildtools/test/product-details.svn/history/productHistory.class.php
@@ -0,0 +1,58 @@
+<?php
+    /**
+     * Functions used by all product history classes. Instead of including this
+     * class or calling its methods, include the class of the product of which
+     * you need release history.
+     *
+     * @author Justin Scott <fligtar@mozilla.com>
+     */
+    class productHistory {
+
+        /**
+         * Returns an array with release version numbers as keys and their release
+         * date as values.
+         *
+         * Example usage:
+         *      include_once('product-details/history/firefoxHistory.class.php');
+         *      $firefoxHistory = new firefoxHistory();
+         *      $releases = $firefoxHistory->getReleaseDates(array('major'), 'version');
+         *
+         * @param $release_types array The type of releases to get. Can include
+         *                              'major', 'stability', and 'development'.
+         *                              Defaults to all available.
+         * @param $sort_by string The sort order. Can be 'date' or 'version'.
+         *                              Defaults to date.
+         * @returns array
+         */
+        function getReleaseDates($release_types = array(), $sort_by = 'date') {
+            // Set default release types if none passed
+            if (empty($release_types))
+                $release_types = array('major', 'stability', 'development');
+
+            $releases = array();
+
+            // Add major releases if requested
+            if (in_array('major', $release_types))
+                $releases = array_merge($releases, $this->major_releases);
+
+            // Add stability releases if requested
+            if (in_array('stability', $release_types))
+                $releases = array_merge($releases, $this->stability_releases);
+
+            // Add development releases if requested
+            if (in_array('development', $release_types))
+                $releases = array_merge($releases, $this->development_releases);
+
+
+            // Sort array as requested
+            if ($sort_by == 'date')
+                asort($releases);
+            elseif ($sort_by == 'version')
+                ksort($releases);
+
+            return $releases;
+        }
+
+    }
+
+?>
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/lib/python/mozilla_buildtools/test/product-details.svn/history/thunderbirdHistory.class.php
@@ -0,0 +1,169 @@
+<?php
+    require_once dirname(__FILE__).'/productHistory.class.php';
+
+    /**
+     * Dates of release for certain Thunderbird versions, mostly obtained from
+     * http://en.wikipedia.org/wiki/History_of_Mozilla_Thunderbird#Release_history
+     */
+    class thunderbirdHistory extends productHistory {
+        // Major releases
+        var $major_releases = array(
+                '1.0' => '2004-12-07',
+                '1.5' => '2006-01-11',
+                '2.0' => '2007-04-18',
+                '3.0' => '2009-12-08',
+                '3.1' => '2010-06-24',
+                '5.0' => '2011-06-28',
+                '6.0' => '2011-08-16',
+                '7.0' => '2011-09-27',
+                '8.0' => '2011-11-08',
+                '9.0' => '2011-12-20',
+                '10.0' => '2012-01-31',
+                '11.0' => '2012-03-13',
+                '12.0' => '2012-04-24',
+                '13.0' => '2012-06-05',
+                '14.0' => '2012-07-17',
+                '15.0' => '2012-08-28',
+                '16.0' => '2012-10-09',
+                '17.0' => '2012-11-20',
+                '24.0' => '2013-09-17',
+                '31.0' => '2014-07-22',
+                // NEXT_MAJOR
+                );
+                // Do not remove NEXT_MAJOR
+
+        // Security and stability releases
+        var $stability_releases = array(
+                '1.0.2'    => '2005-03-21',
+                '1.0.5'    => '2005-07-13',
+                '1.0.6'    => '2005-07-19',
+                '1.0.7'    => '2005-09-29',
+                '1.0.8'    => '2006-04-21',
+                '1.5.0.2'  => '2006-04-21',
+                '1.5.0.4'  => '2006-06-01',
+                '1.5.0.5'  => '2006-07-27',
+                '1.5.0.7'  => '2006-09-14',
+                '1.5.0.8'  => '2006-11-08',
+                '1.5.0.9'  => '2006-12-19',
+                '1.5.0.10' => '2007-03-01',
+                '1.5.0.12' => '2007-05-30',
+                '1.5.0.13' => '2007-08-23',
+                '2.0.0.4'  => '2007-06-14',
+                '2.0.0.5'  => '2007-07-19',
+                '2.0.0.6'  => '2007-08-01',
+                '2.0.0.9'  => '2007-11-14',
+                '2.0.0.12' => '2008-02-26',
+                '2.0.0.14' => '2008-05-01',
+                '2.0.0.16' => '2008-07-23',
+                '2.0.0.17' => '2008-09-25',
+                '2.0.0.18' => '2008-11-19',
+                '2.0.0.19' => '2008-12-30',
+                '2.0.0.21' => '2009-03-18',
+                '2.0.0.22' => '2009-06-22',
+                '2.0.0.23' => '2009-08-20',
+                '2.0.0.24' => '2010-03-16',
+                '3.0.1' => '2010-01-20',
+                '3.0.2' => '2010-02-25',
+                '3.0.3' => '2010-03-01',
+                '3.0.4' => '2010-03-30',
+                '3.0.5' => '2010-06-17',
+                '3.0.6' => '2010-07-20',
+                '3.0.7' => '2010-09-07',
+                '3.0.8' => '2010-09-16',
+                '3.0.9' => '2010-10-19',
+                '3.0.10' => '2010-10-27',
+                '3.0.11' => '2010-12-09',
+                '3.1.1' => '2010-07-20',
+                '3.1.2' => '2010-08-05',
+                '3.1.3' => '2010-09-07',
+                '3.1.4' => '2010-09-16',
+                '3.1.5' => '2010-10-19',
+                '3.1.6' => '2010-10-27',
+                '3.1.7' => '2010-12-09',
+                '3.1.8' => '2011-03-01',
+                '3.1.9' => '2011-03-04',
+                '3.1.10' => '2011-04-28',
+                '3.1.11' => '2011-06-21',
+                '3.1.12' => '2011-08-24',
+                '3.1.13' => '2011-08-31',
+                '3.1.14' => '2011-09-06',
+                '3.1.15' => '2011-09-27',
+                '3.1.16' => '2011-11-08',
+                '3.1.17' => '2011-12-20',
+                '3.1.18' => '2012-01-31',
+                '3.1.19' => '2012-02-16',
+                '3.1.20' => '2012-03-13',
+                '6.0.1' => '2011-08-31',
+                '6.0.2' => '2011-09-06',
+                '7.0.1' => '2011-09-30',
+                '9.0.1' => '2011-12-23',
+                '10.0.1' => '2012-02-12',
+                '10.0.2' => '2012-02-16',
+                '11.0.1' => '2012-03-28',
+                '12.0.1' => '2012-04-30',
+                '13.0.1' => '2012-06-15',
+                '15.0.1' => '2012-09-10',
+                '16.0.1' => '2012-10-11',
+                '16.0.2' => '2012-10-29',
+                '17.0.2' => '2013-01-08',
+                '17.0.3' => '2013-02-19',
+                '17.0.4' => '2013-03-11',
+                '17.0.5' => '2013-04-02',
+                '17.0.6' => '2013-05-14',
+                '17.0.7' => '2013-06-25',
+                '17.0.8' => '2013-08-06',
+                '17.0.9' => '2013-09-17',
+                '17.0.10' => '2013-10-29',
+                '24.0.1' => '2013-10-11',
+                '24.1.0' => '2013-10-29',
+                '24.1.1' => '2013-11-19',
+                '24.2.0' => '2013-12-10',
+                '24.3.0' => '2014-02-04',
+                '24.4.0' => '2014-03-18',
+                '24.5.0' => '2014-04-29',
+                '24.6.0' => '2014-04-29',
+                '24.7.0' => '2014-07-28',
+                '24.8.0' => '2014-09-02',
+                '31.1.0' => '2041-09-02',
+                '31.1.1' => '2041-09-10',
+                '31.1.2' => '2041-09-24',
+                // NEXT_STABILITY
+                );
+                // Do not remove NEXT_STABILITY
+
+        // Development releases - betas and release candidates only
+        var $development_releases = array(
+                '1.0rc1' => '2004-12-01',
+                '1.5b1'  => '2005-09-09',
+                '1.5b2'  => '2005-10-07',
+                '1.5rc1' => '2005-11-05',
+                '1.5rc2' => '2005-12-21',
+                '2.0b1'  => '2006-12-12',
+                '2.0b2'  => '2007-01-23',
+                '2.0rc1' => '2007-04-06',
+                '3.0a1'  => '2008-05-12',
+                '3.0a2'  => '2008-07-13',
+                '3.0a3'  => '2008-10-14',
+                '3.0b1'  => '2008-12-09',
+                '3.0b2'  => '2009-02-26',
+                '3.0b3'  => '2009-07-21',
+                '3.0b4'  => '2009-10-22',
+                '3.0rc1' => '2009-11-24',
+                '3.0rc2' => '2009-12-01',
+                '3.1a1'  => '2010-02-03',
+                '3.1b1'  => '2010-03-10',
+                '3.1rc1' => '2010-05-27',
+                '3.1rc2' => '2010-06-09',
+                '3.3a1'  => '2010-11-23',
+                '3.3a2'  => '2011-01-20',
+                '3.3a3'  => '2011-03-15',
+                '5.0b1'  => '2011-06-02',
+                '6.0b1' => '2011-07-20',
+                '6.0b2' => '2011-08-02',
+                '6.0b3' => '2011-08-10',
+                // NEXT_DEVELOPMENT
+                );
+                // Do not remove NEXT_DEVELOPMENT
+    }
+
+?>
new file mode 100644
new file mode 100644
--- /dev/null
+++ b/lib/python/mozilla_buildtools/test/product-details.svn/json/firefox_beta_builds.json
@@ -0,0 +1,98 @@
+{
+    "ku": {
+        "3.6.28": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "24.8.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "rm": {
+        "3.6.28": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "or": {
+        "3.6.28": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "sw": {
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    }
+}
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/lib/python/mozilla_buildtools/test/product-details.svn/json/firefox_history_development_releases.json
@@ -0,0 +1,266 @@
+{
+    "1.0rc1": "2004-10-27",
+    "1.0rc2": "2004-11-03",
+    "1.5rc1": "2005-11-01",
+    "1.5rc2": "2005-11-10",
+    "1.5rc3": "2005-11-17",
+    "2.0b1": "2006-07-12",
+    "2.0b2": "2006-08-31",
+    "2.0rc1": "2006-09-26",
+    "2.0rc2": "2006-10-06",
+    "2.0rc3": "2007-10-16",
+    "3.0b1": "2007-11-19",
+    "3.0b2": "2007-12-18",
+    "3.0b3": "2008-02-12",
+    "3.0b4": "2008-03-10",
+    "3.0b5": "2008-04-02",
+    "3.0rc1": "2008-05-16",
+    "3.0rc2": "2008-06-03",
+    "3.1b1": "2008-08-14",
+    "3.1b2": "2008-12-08",
+    "3.1b3": "2009-03-12",
+    "3.5b4": "2009-04-27",
+    "3.5rc2": "2009-06-19",
+    "3.5rc3": "2009-06-24",
+    "3.6b1": "2009-10-30",
+    "3.6b2": "2009-11-10",
+    "3.6b3": "2009-11-17",
+    "3.6b4": "2009-11-26",
+    "3.6b5": "2009-12-17",
+    "3.6rc1": "2010-01-08",
+    "3.6rc2": "2010-01-17",
+    "3.6.3plugin1": "2010-04-08",
+    "3.6.4build1": "2010-04-20",
+    "3.6.4build3": "2010-05-04",
+    "3.6.4build4": "2010-05-14",
+    "3.6.4build5": "2010-05-26",
+    "3.6.4build6": "2010-05-28",
+    "3.6.4build7": "2010-06-14",
+    "3.6.7build1": "2010-07-02",
+    "4.0b1": "2010-07-06",
+    "4.0b2": "2010-07-27",
+    "4.0b3": "2010-08-11",
+    "4.0b4": "2010-08-24",
+    "4.0b5": "2010-09-07",
+    "4.0b6": "2010-09-14",
+    "4.0b7": "2010-11-10",
+    "4.0b8": "2010-12-22",
+    "4.0b9": "2011-01-14",
+    "4.0b10": "2011-01-25",
+    "4.0b11": "2011-02-08",
+    "4.0b12": "2011-02-25",
+    "4.0rc1": "2011-03-09",
+    "4.0rc2": "2011-03-18",
+    "5.0b1": "2011-05-20",
+    "5.0b2": "2011-05-20",
+    "5.0b3": "2011-06-01",
+    "5.0b5": "2011-06-09",
+    "5.0b6": "2011-06-14",
+    "5.0b7": "2011-06-15",
+    "6.0b1": "2011-07-08",
+    "6.0b2": "2011-07-15",
+    "6.0b3": "2011-07-25",
+    "6.0b4": "2011-08-01",
+    "6.0b5": "2011-08-05",
+    "7.0b1": "2011-08-18",
+    "7.0b2": "2011-08-26",
+    "7.0b4": "2011-09-06",
+    "7.0b5": "2011-09-09",
+    "7.0b6": "2011-09-19",
+    "8.0b1": "2011-09-29",
+    "8.0b2": "2011-10-10",
+    "8.0b3": "2011-10-14",
+    "8.0b4": "2011-10-21",
+    "8.0b5": "2011-10-28",
+    "8.0b6": "2011-11-03",
+    "9.0b1": "2011-11-10",
+    "9.0b2": "2011-11-17",
+    "9.0b3": "2011-11-25",
+    "9.0b4": "2011-12-02",
+    "9.0b5": "2011-12-09",
+    "9.0b6": "2011-12-15",
+    "10.0b1": "2011-12-22",
+    "10.0b2": "2011-12-30",
+    "10.0b3": "2012-01-06",
+    "10.0b4": "2012-01-13",
+    "10.0b5": "2012-01-20",
+    "10.0b6": "2012-01-26",
+    "11.0b1": "2012-02-03",
+    "11.0b2": "2012-02-10",
+    "11.0b3": "2012-02-17",
+    "11.0b4": "2012-02-24",
+    "11.0b5": "2012-03-02",
+    "11.0b6": "2012-03-07",
+    "11.0b7": "2012-03-09",
+    "11.0b8": "2012-03-11",
+    "12.0b1": "2012-03-16",
+    "12.0b2": "2012-03-22",
+    "12.0b3": "2012-03-30",
+    "12.0b4": "2012-04-05",
+    "12.0b5": "2012-04-13",
+    "12.0b6": "2012-04-19",
+    "13.0b1": "2012-04-26",
+    "13.0b2": "2012-05-03",
+    "13.0b3": "2012-05-11",
+    "13.0b4": "2012-05-18",
+    "13.0b5": "2012-05-25",
+    "13.0b6": "2012-05-29",
+    "13.0b7": "2012-06-01",
+    "14.0b6": "2012-06-07",
+    "14.0b7": "2012-06-14",
+    "14.0b8": "2012-06-21",
+    "14.0b9": "2012-06-25",
+    "14.0b10": "2012-06-29",
+    "14.0b11": "2012-07-06",
+    "14.0b12": "2012-07-11",
+    "15.0b1": "2012-07-19",
+    "15.0b2": "2012-07-27",
+    "15.0b3": "2012-08-02",
+    "15.0b4": "2012-08-10",
+    "15.0b5": "2012-08-17",
+    "15.0b6": "2012-08-22",
+    "16.0b1": "2012-08-30",
+    "16.0b2": "2012-09-07",
+    "16.0b3": "2012-09-13",
+    "16.0b4": "2012-09-21",
+    "16.0b5": "2012-09-27",
+    "16.0b6": "2012-10-03",
+    "17.0b1": "2012-10-11",
+    "17.0b2": "2012-10-22",
+    "17.0b3": "2012-10-24",
+    "17.0b4": "2012-11-02",
+    "17.0b5": "2012-11-08",
+    "17.0b6": "2012-11-14",
+    "18.0b1": "2012-11-26",
+    "18.0b2": "2012-11-29",
+    "18.0b3": "2012-12-06",
+    "18.0b4": "2012-12-14",
+    "18.0b5": "2012-12-21",
+    "18.0b6": "2012-12-28",
+    "18.0b7": "2013-01-02",
+    "19.0b1": "2013-01-10",
+    "19.0b2": "2013-01-17",
+    "19.0b3": "2013-01-25",
+    "19.0b4": "2013-01-31",
+    "19.0b5": "2013-02-07",
+    "19.0b6": "2013-02-13",
+    "20.0b1": "2013-02-22",
+    "20.0b2": "2013-02-28",
+    "20.0b3": "2013-03-06",
+    "20.0b4": "2013-03-08",
+    "20.0b5": "2013-03-14",
+    "20.0b6": "2013-03-21",
+    "21.0b1": "2013-04-04",
+    "21.0b2": "2013-04-09",
+    "21.0b3": "2013-04-18",
+    "21.0b4": "2013-04-25",
+    "21.0b5": "2013-04-29",
+    "21.0b6": "2013-05-02",
+    "21.0b7": "2013-05-08",
+    "22.0b1": "2013-05-16",
+    "22.0b2": "2013-05-23",
+    "22.0b3": "2013-05-30",
+    "22.0b4": "2013-06-06",
+    "22.0b5": "2013-06-13",
+    "22.0b6": "2013-06-19",
+    "23.0b1": "2013-06-27",
+    "23.0b2": "2013-07-02",
+    "23.0b3": "2013-07-04",
+    "23.0b4": "2013-07-09",
+    "23.0b5": "2013-07-12",
+    "23.0b6": "2013-07-16",
+    "23.0b7": "2013-07-19",
+    "23.0b8": "2013-07-23",
+    "23.0b9": "2013-07-26",
+    "23.0b10": "2013-07-30",
+    "24.0b1": "2013-08-09",
+    "24.0b2": "2013-08-13",
+    "24.0b3": "2013-08-16",
+    "24.0b4": "2013-08-20",
+    "24.0b5": "2013-08-23",
+    "24.0b6": "2013-08-27",
+    "24.0b7": "2013-08-30",
+    "24.0b8": "2013-09-03",
+    "24.0b9": "2013-09-06",
+    "24.0b10": "2013-09-10",
+    "25.0b1": "2013-09-18",
+    "25.0.1": "2013-11-14",
+    "25.0b2": "2013-09-24",
+    "25.0b3": "2013-09-27",
+    "25.0b4": "2013-10-02",
+    "25.0b6": "2013-10-08",
+    "25.0b7": "2013-10-11",
+    "25.0b8": "2013-10-15",
+    "25.0b9": "2013-10-18",
+    "25.0b10": "2013-10-22",
+    "25.0b11": "2013-10-24",
+    "25.0b12": "2013-10-26",
+    "26.0b1": "2013-10-31",
+    "26.0b2": "2013-11-05",
+    "26.0b3": "2013-11-08",
+    "26.0b4": "2013-11-12",
+    "26.0b5": "2013-11-15",
+    "26.0b6": "2013-11-19",
+    "26.0b7": "2013-11-23",
+    "26.0b8": "2013-11-26",
+    "26.0b10": "2013-12-03",
+    "27.0b1": "2013-12-12",
+    "27.0b2": "2013-12-17",
+    "27.0b4": "2014-01-07",
+    "27.0b5": "2014-01-10",
+    "27.0b6": "2014-01-14",
+    "27.0b7": "2014-01-17",
+    "27.0b8": "2014-01-21",
+    "27.0b9": "2014-01-24",
+    "28.0b1": "2014-02-06",
+    "28.0b2": "2014-02-11",
+    "28.0b3": "2014-02-14",
+    "28.0b4": "2014-02-19",
+    "28.0b6": "2014-02-25",
+    "28.0b7": "2014-02-28",
+    "28.0b8": "2014-03-04",
+    "28.0b9": "2014-03-07",
+    "29.0b1": "2014-03-20",
+    "29.0b2": "2014-03-25",
+    "29.0b3": "2014-03-28",
+    "29.0b4": "2014-04-01",
+    "29.0b5": "2014-04-04",
+    "29.0b6": "2014-04-08",
+    "29.0b7": "2014-04-11",
+    "29.0b8": "2014-04-15",
+    "29.0b9": "2014-04-18",
+    "30.0b1": "2014-05-01",
+    "30.0b2": "2014-05-06",
+    "30.0b3": "2014-05-09",
+    "30.0b4": "2014-05-14",
+    "30.0b5": "2014-05-16",
+    "30.0b6": "2014-05-21",
+    "30.0b7": "2014-05-23",
+    "30.0b8": "2014-05-28",
+    "30.0b9": "2014-05-30",
+    "31.0b1": "2014-06-12",
+    "31.0b2": "2014-06-18",
+    "31.0b4": "2014-06-24",
+    "31.0b5": "2014-06-27",
+    "31.0b6": "2014-07-01",
+    "31.0b7": "2014-07-04",
+    "31.0b8": "2014-07-08",
+    "31.0b9": "2014-07-11",
+    "32.0b1": "2014-07-24",
+    "32.0b2": "2014-07-29",
+    "32.0b3": "2014-08-01",
+    "32.0b4": "2014-08-05",
+    "32.0b5": "2014-08-08",
+    "32.0b6": "2014-08-12",
+    "32.0b7": "2014-08-15",
+    "32.0b8": "2014-08-19",
+    "32.0b9": "2014-08-22",
+    "33.0b1": "2014-09-04",
+    "33.0b2": "2014-09-09",
+    "33.0b3": "2014-09-12",
+    "33.0b4": "2014-09-17",
+    "33.0b5": "2014-09-19",
+    "33.0b6": "2014-09-23",
+    "33.0b7": "2014-09-24",
+    "33.0b8": "2014-09-30"
+}
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/lib/python/mozilla_buildtools/test/product-details.svn/json/firefox_history_major_releases.json
@@ -0,0 +1,37 @@
+{
+    "1.0": "2004-11-09",
+    "1.5": "2005-11-29",
+    "2.0": "2006-10-24",
+    "3.0": "2008-06-17",
+    "3.5": "2009-06-30",
+    "3.6": "2010-01-21",
+    "4.0": "2011-03-22",
+    "5.0": "2011-06-21",
+    "6.0": "2011-08-16",
+    "7.0": "2011-09-27",
+    "8.0": "2011-11-08",
+    "9.0": "2011-12-20",
+    "10.0": "2012-01-31",
+    "11.0": "2012-03-13",
+    "12.0": "2012-04-24",
+    "13.0": "2012-06-05",
+    "14.0.1": "2012-07-17",
+    "15.0": "2012-08-28",
+    "16.0": "2012-10-09",
+    "17.0": "2012-11-20",
+    "18.0": "2013-01-08",
+    "19.0": "2013-02-19",
+    "20.0": "2013-04-02",
+    "21.0": "2013-05-14",
+    "22.0": "2013-06-25",
+    "23.0": "2013-08-06",
+    "24.0": "2013-09-17",
+    "25.0": "2013-10-29",
+    "26.0": "2013-12-10",
+    "27.0": "2014-02-04",
+    "28.0": "2014-03-18",
+    "29.0": "2014-04-29",
+    "30.0": "2014-06-10",
+    "31.0": "2014-07-22",
+    "32.0": "2014-09-02"
+}
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/lib/python/mozilla_buildtools/test/product-details.svn/json/firefox_history_stability_releases.json
@@ -0,0 +1,163 @@
+{
+    "1.0.1": "2005-02-24",
+    "1.0.2": "2005-03-23",
+    "1.0.3": "2005-04-15",
+    "1.0.4": "2005-05-11",
+    "1.0.5": "2005-07-12",
+    "1.0.6": "2005-07-19",
+    "1.0.7": "2005-09-20",
+    "1.0.8": "2006-04-13",
+    "1.5.0.1": "2006-02-01",
+    "1.5.0.2": "2006-04-13",
+    "1.5.0.3": "2006-05-02",
+    "1.5.0.4": "2006-06-01",
+    "1.5.0.5": "2006-07-26",
+    "1.5.0.6": "2006-08-02",
+    "1.5.0.7": "2006-09-14",
+    "1.5.0.8": "2006-11-07",
+    "1.5.0.9": "2006-12-19",
+    "1.5.0.10": "2007-02-23",
+    "1.5.0.11": "2007-03-20",
+    "1.5.0.12": "2007-05-30",
+    "2.0.0.1": "2006-12-19",
+    "2.0.0.2": "2007-02-23",
+    "2.0.0.3": "2007-03-20",
+    "2.0.0.4": "2007-05-30",
+    "2.0.0.5": "2007-07-17",
+    "2.0.0.6": "2007-07-30",
+    "2.0.0.7": "2007-09-18",
+    "2.0.0.8": "2007-10-18",
+    "2.0.0.9": "2007-11-01",
+    "2.0.0.10": "2007-11-26",
+    "2.0.0.11": "2007-11-30",
+    "2.0.0.12": "2008-02-07",
+    "2.0.0.13": "2008-03-25",
+    "2.0.0.14": "2008-04-16",
+    "2.0.0.15": "2008-07-01",
+    "2.0.0.16": "2008-07-15",
+    "2.0.0.17": "2008-09-23",
+    "2.0.0.18": "2008-11-12",
+    "2.0.0.19": "2008-12-16",
+    "2.0.0.20": "2008-12-18",
+    "3.0.1": "2008-07-16",
+    "3.0.2": "2008-09-23",
+    "3.0.3": "2008-09-26",
+    "3.0.4": "2008-11-12",
+    "3.0.5": "2008-12-16",
+    "3.0.6": "2009-02-03",
+    "3.0.7": "2009-03-04",
+    "3.0.8": "2009-03-27",
+    "3.0.9": "2009-04-21",
+    "3.0.10": "2009-04-27",
+    "3.0.11": "2009-06-11",
+    "3.0.12": "2009-07-21",
+    "3.0.13": "2009-08-03",
+    "3.0.14": "2009-09-09",
+    "3.0.15": "2009-10-27",
+    "3.0.16": "2009-12-15",
+    "3.0.17": "2010-01-05",
+    "3.0.18": "2010-02-17",
+    "3.0.19": "2010-03-30",
+    "3.5.1": "2009-07-17",
+    "3.5.2": "2009-08-03",
+    "3.5.3": "2009-09-09",
+    "3.5.4": "2009-10-27",
+    "3.5.5": "2009-11-05",
+    "3.5.6": "2009-12-15",
+    "3.5.7": "2010-01-05",
+    "3.5.8": "2010-02-17",
+    "3.5.9": "2010-03-30",
+    "3.5.10": "2010-06-22",
+    "3.5.11": "2010-07-20",
+    "3.5.12": "2010-09-07",
+    "3.5.13": "2010-09-15",
+    "3.5.14": "2010-10-19",
+    "3.5.15": "2010-10-27",
+    "3.5.16": "2010-12-09",
+    "3.5.17": "2011-03-01",
+    "3.5.18": "2011-03-22",
+    "3.5.19": "2011-04-28",
+    "3.6.2": "2010-03-22",
+    "3.6.3": "2010-04-01",
+    "3.6.4": "2010-06-22",
+    "3.6.6": "2010-06-26",
+    "3.6.7": "2010-07-20",
+    "3.6.8": "2010-07-23",
+    "3.6.9": "2010-09-07",
+    "3.6.10": "2010-09-15",
+    "3.6.11": "2010-10-19",
+    "3.6.12": "2010-10-27",
+    "3.6.13": "2010-12-09",
+    "3.6.14": "2011-03-01",
+    "3.6.15": "2011-03-04",
+    "3.6.16": "2011-03-22",
+    "3.6.17": "2011-04-28",
+    "3.6.18": "2011-06-21",
+    "3.6.19": "2011-07-11",
+    "3.6.20": "2011-08-16",
+    "3.6.21": "2011-08-30",
+    "3.6.22": "2011-09-06",
+    "3.6.23": "2011-09-27",
+    "3.6.24": "2011-11-08",
+    "3.6.25": "2011-12-20",
+    "4.0.1": "2011-04-28",
+    "5.0.1": "2011-07-11",
+    "6.0.1": "2011-08-30",
+    "6.0.2": "2011-09-06",
+    "7.0.1": "2011-09-29",
+    "8.0.1": "2011-11-21",
+    "9.0.1": "2011-12-21",
+    "3.6.26": "2012-01-31",
+    "10.0.1": "2012-02-10",
+    "10.0.2": "2012-02-16",
+    "3.6.27": "2012-02-17",
+    "10.0.3": "2012-03-13",
+    "3.6.28": "2012-03-13",
+    "10.0.4": "2012-04-24",
+    "10.0.5": "2012-06-05",
+    "13.0.1": "2012-06-15",
+    "10.0.6": "2012-07-17",
+    "10.0.7": "2012-08-28",
+    "15.0.1": "2012-09-06",
+    "10.0.8": "2012-10-09",
+    "16.0.1": "2012-10-11",
+    "10.0.9": "2012-10-12",
+    "16.0.2": "2012-10-26",
+    "10.0.10": "2012-10-26",
+    "10.0.11": "2012-11-20",
+    "17.0.1": "2012-11-30",
+    "10.0.12": "2013-01-08",
+    "17.0.2": "2013-01-08",
+    "18.0.1": "2013-01-18",
+    "18.0.2": "2013-02-05",
+    "17.0.3": "2013-02-19",
+    "19.0.1": "2013-02-27",
+    "17.0.4": "2013-03-07",
+    "19.0.2": "2013-03-07",
+    "17.0.5": "2013-04-02",
+    "20.0.1": "2013-04-11",
+    "17.0.6": "2013-05-14",
+    "17.0.7": "2013-06-25",
+    "17.0.8": "2013-08-06",
+    "23.0.1": "2013-08-16",
+    "17.0.9": "2013-09-17",
+    "17.0.10": "2013-10-29",
+    "24.1.0": "2013-10-29",
+    "25.0.1": "2013-11-15",
+    "24.1.1": "2013-11-15",
+    "17.0.11": "2013-11-15",
+    "24.2.0": "2013-12-10",
+    "24.3.0": "2014-02-04",
+    "27.0.1": "2014-02-14",
+    "24.4.0": "2014-03-18",
+    "24.5.0": "2014-04-29",
+    "29.0.1": "2014-05-09",
+    "24.6.0": "2014-06-10",
+    "24.7.0": "2014-07-22",
+    "24.8.0": "2014-09-24",
+    "31.1.0": "2014-09-02",
+    "32.0.1": "2014-09-12",
+    "32.0.2": "2014-09-18",
+    "32.0.3": "2014-09-24",
+    "31.1.1": "2014-09-24"
+}
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/lib/python/mozilla_buildtools/test/product-details.svn/json/firefox_primary_builds.json
@@ -0,0 +1,5611 @@
+{
+    "ach": {
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "af": {
+        "3.6.28": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "24.8.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "31.1.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "an": {
+        "3.6.28": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "ar": {
+        "3.6.28": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "24.8.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "31.1.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "as": {
+        "3.6.28": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "24.8.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "31.1.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "ast": {
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "24.8.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "31.1.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "az": {
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "be": {
+        "3.6.28": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "24.8.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "31.1.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "bg": {
+        "3.6.28": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "24.8.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "31.1.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "bn-BD": {
+        "3.6.28": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "24.8.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "31.1.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "bn-IN": {
+        "3.6.28": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "24.8.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "31.1.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "br": {
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "24.8.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "31.1.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "bs": {
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "24.8.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "31.1.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "ca": {
+        "3.6.28": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "24.8.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "31.1.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "cs": {
+        "3.6.28": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "24.8.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "31.1.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "csb": {
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "24.8.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "31.1.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "cy": {
+        "3.6.28": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "24.8.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "31.1.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "da": {
+        "3.6.28": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "24.8.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "31.1.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "de": {
+        "3.6.28": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "24.8.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "31.1.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "dsb": {
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "el": {
+        "3.6.28": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "24.8.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "31.1.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "en-GB": {
+        "3.6.28": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "24.8.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "31.1.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "en-US": {
+        "3.6.28": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "24.8.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "31.1.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "en-ZA": {
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "24.8.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "31.1.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "eo": {
+        "3.6.28": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "24.8.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "31.1.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "es-AR": {
+        "3.6.28": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "24.8.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "31.1.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "es-CL": {
+        "3.6.28": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "24.8.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "31.1.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "es-ES": {
+        "3.6.28": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "24.8.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "31.1.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "es-MX": {
+        "3.6.28": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "24.8.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "31.1.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "et": {
+        "3.6.28": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "24.8.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "31.1.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "eu": {
+        "3.6.28": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "24.8.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "31.1.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "fa": {
+        "3.6.28": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "24.8.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "31.1.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "ff": {
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "fi": {
+        "3.6.28": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "24.8.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "31.1.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "fr": {
+        "3.6.28": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "24.8.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "31.1.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "fy-NL": {
+        "3.6.28": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "24.8.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "31.1.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "ga-IE": {
+        "3.6.28": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "24.8.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "31.1.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "gd": {
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "24.8.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "31.1.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "gl": {
+        "3.6.28": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "24.8.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "31.1.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "gu-IN": {
+        "3.6.28": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "24.8.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "31.1.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "he": {
+        "3.6.28": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "24.8.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "31.1.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "hi-IN": {
+        "3.6.28": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "24.8.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "31.1.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "hr": {
+        "3.6.28": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "24.8.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "31.1.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "hsb": {
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "hu": {
+        "3.6.28": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "24.8.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "31.1.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "hy-AM": {
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "24.8.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "31.1.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "id": {
+        "3.6.28": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "24.8.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "31.1.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "is": {
+        "3.6.28": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "24.8.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "31.1.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "it": {
+        "3.6.28": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "24.8.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "31.1.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "ja": {
+        "3.6.28": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "24.8.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "31.1.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "ka": {
+        "3.6.28": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "kk": {
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "km": {
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "kn": {
+        "3.6.28": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "24.8.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "31.1.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "ko": {
+        "3.6.28": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "24.8.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "31.1.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "lij": {
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "lt": {
+        "3.6.28": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "24.8.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "31.1.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "lv": {
+        "3.6.28": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "24.8.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "31.1.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "mai": {
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "24.8.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "31.1.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "mk": {
+        "3.6.28": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "24.8.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "31.1.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "ml": {
+        "3.6.28": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "24.8.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "31.1.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "mr": {
+        "3.6.28": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "24.8.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "31.1.1esr": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "ms": {
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "my": {
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        }
+    },
+    "nb-NO": {
+        "3.6.28": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "33.0b8": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "34.0a2": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {
+                "filesize": 0
+            }
+        },
+        "32.0.3": {
+            "Windows": {
+                "filesize": 0
+            },
+            "OS X": {
+                "filesize": 0
+            },
+            "Linux": {