Make apsc stats importer nondestructive
Make apsc stats importer nondestructive


Former-commit-id: 1eae8d1c89fabed230ce5d3f02595c29a41b7f5e

--- a/.gitmodules
+++ b/.gitmodules
@@ -4,9 +4,6 @@
 [submodule "couchdb/settee"]
 	path = couchdb/settee
 	url = https://github.com/inadarei/settee.git
-[submodule "lib/springy"]
-	path = lib/springy
-	url = https://github.com/dhotson/springy.git
 [submodule "lib/php-diff"]
 	path = lib/php-diff
 	url = https://github.com/chrisboulton/php-diff.git
@@ -16,4 +13,13 @@
 [submodule "javascripts/flotr2"]
 	path = javascripts/flotr2
 	url = https://github.com/HumbleSoftware/Flotr2.git
+[submodule "lib/phpquery"]
+	path = lib/phpquery
+	url = https://github.com/TobiaszCudnik/phpquery.git
+[submodule "javascripts/sigma"]
+	path = javascripts/sigma
+	url = https://github.com/jacomyal/sigma.js.git
+[submodule "javascripts/bubbletree"]
+	path = javascripts/bubbletree
+	url = https://github.com/okfn/bubbletree.git
 

--- a/admin/exportEmployees.csv.php
+++ b/admin/exportEmployees.csv.php
@@ -22,6 +22,7 @@
         if (isset($row->value->statistics->employees)) {
 
             $headers = array_unique(array_merge($headers, array_keys(object_to_array($row->value->statistics->employees))));
+
         }
     }
 } catch (SetteeRestClientException $e) {

--- /dev/null
+++ b/admin/exportScore.csv.php
@@ -1,1 +1,73 @@
+<?php
 
+include_once("../include/common.inc.php");
+
+$db = $server->get_db('disclosr-agencies');
+$format = "csv";
+//$format = "json";
+if (isset($_REQUEST['format']))  $format = $_REQUEST['format'];
+
+setlocale(LC_CTYPE, 'C');
+
+    $headers = Array();
+
+$fp = fopen('php://output', 'w');
+if ($fp && $db) {
+    if ($format == "csv") {
+        header('Content-Type: text/csv; charset=utf-8');
+        header('Content-Disposition: attachment; filename="export.score.' . date("c") . '.csv"');
+    }
+    header('Pragma: no-cache');
+    header('Expires: 0');
+    
+    try {
+        $agencies = $db->get_view("score", "score", null, true)->rows;
+        //print_r($agencies);
+        $first = true;
+        if ($format == "json") {
+        echo '"data" : ['.PHP_EOL;
+        
+        }
+        foreach ($agencies as $agency) {
+            $agencyArray = object_to_array($agency->value);
+            if ($first) {
+                $headers  = array_keys($agencyArray);
+if ($format == "csv") {
+        fputcsv($fp, $headers);
+    } else if ($format == "json") {
+        echo '{
+            "labels" : ["' . implode('","', $headers) . '"],'.PHP_EOL;
+    }
+            }
+                      $row = Array();
+            
+                foreach ($headers as $i => $fieldName) {
+                    if (isset($agencyArray[$fieldName])) {
+                        $row[] = $agencyArray[$fieldName];
+                    } else {
+                        $row[] = '';
+                    }
+                }
+                if ($format == "csv") {
+                    fputcsv($fp, array_values($row));
+                } else if ($format == "json") {
+                    if (!$first) echo ",";
+                    echo '{"data" : [' . implode(",", array_values($row)) . '], "label": "'.$agency->value->name.'", "lines" : { "show" : true }, "points" : { "show" : true }}'.PHP_EOL;
+                   
+                }
+                 $first = false;
+            }
+        
+        if ($format == "json") {
+        echo ']
+            }'.PHP_EOL;
+        
+        }
+    } catch (SetteeRestClientException $e) {
+        setteErrorHandler($e);
+    }
+
+    die;
+}
+?>
+

--- a/admin/importAPSCEmployees.php
+++ b/admin/importAPSCEmployees.php
@@ -32,23 +32,35 @@
                 @$sums[$id][$timePeriod] += $data[1];
             } else {
                 echo "<br>ERROR NAME MISSING FROM ID LIST<br><bR>" . PHP_EOL;
-                
+
                 die();
-               
             }
         }
         fclose($handle);
     }
 }
 foreach ($sums as $id => $sum) {
-    echo $id. "<br>" . PHP_EOL;
+    echo $id . "<br>" . PHP_EOL;
     $doc = $db->get($id);
-   // print_r($doc);
-    if (isset($doc->statistics)) $doc->statistics = Array();
+     echo $doc->name . "<br>" . PHP_EOL;
+    // print_r($doc);
+    $changed = false;
+    if (!isset($doc->statistics)) {
+        $changed = true;
+        $doc->statistics = Array();
+    }
     foreach ($sum as $timePeriod => $value) {
-        $doc->statistics["employees"][$timePeriod] = Array("value"=>$value, "source"=>"http://apsc.gov.au/stateoftheservice/");
+        if (!isset($doc->statistics->employees->$timePeriod->value) 
+                || $doc->statistics->employees->$timePeriod->value != $value) {
+            $changed = true;
+            $doc->statistics["employees"][$timePeriod] = Array("value" => $value, "source" => "http://apsc.gov.au/stateoftheservice/");
+        }
     }
-    $db->save($doc);
+    if ($changed) {
+        $db->save($doc);
+    } else {
+        echo "not changed" . "<br>" . PHP_EOL;
+    }
 }
 // employees: timeperiod, source = apsc state of service, value 
 ?>

--- /dev/null
+++ b/admin/importAustraliaGovAuGov2.php
@@ -1,1 +1,61 @@
+<?php
 
+require_once '../include/common.inc.php';
+
+$db = $server->get_db('disclosr-agencies');
+$rows = $db->get_view("app", "byName")->rows;
+$nametoid = Array();
+$accounts = Array();
+foreach ($rows as $row) {
+    $nametoid[trim($row->key)] = $row->value;
+}
+
+function extractCSVAccounts($url, $nameField, $accountField, $filter) {
+    global $accounts, $nametoid;
+    $request = Requests::get($url);
+    $Data = str_getcsv($request->body, "\n"); //parse the rows 
+    $headers = Array();
+    foreach ($Data as $num => $line) {
+        $Row = str_getcsv($line, ",");
+        if ($num == 0) {
+            
+        } else if ($num == 1) {
+            $headers = $Row;
+            //print_r($headers);
+        } else {
+            if (isset($Row[array_search($nameField, $headers)])) {
+                $agencyName = $Row[array_search($nameField, $headers)];
+                if (!$filter || $Row[array_search("State", $headers)] == "NAT") {
+                    if (!in_array(trim($agencyName), array_keys($nametoid))) {
+                        echo "$agencyName missing" . PHP_EOL;
+                    } else {
+                        // echo $Row[array_search($nameField, $headers)] . PHP_EOL;
+                    }
+                }
+            } else {
+                //echo "error finding agency" . $line . PHP_EOL;
+            }
+        }
+    }
+}
+
+// http://agimo.govspace.gov.au/page/gov2register/
+// twitter
+//extractCSVAccounts("https://docs.google.com/spreadsheet/pub?key=0Ap1exl80wB8OdHNKVmQ5RVlvQWpibDAxNHkzcU1nV2c&single=true&gid=0&output=csv", "Agency/Body/Event", "", true);
+// RSS
+// https://docs.google.com/spreadsheet/pub?hl=en_GB&hl=en_GB&key=0Ah41IAK0HzSTdGJxandJREhLSGlWWUZfZ2xKOTNHZ0E&output=csv
+// facebook 
+extractCSVAccounts("https://docs.google.com/spreadsheet/pub?hl=en_GB&hl=en_GB&key=0Ah41IAK0HzSTdGtjcW9vOXdyZ3pOV21vQU51VmhzQnc&single=true&gid=0&output=csv","Agency","Name");
+
+/*
+ * http://australia.gov.au/news-and-media/media-release-rss-feeds
+ * http://australia.gov.au/news-and-media/social-media/blogs
+ * http://australia.gov.au/news-and-media/social-media/twitter
+ * http://australia.gov.au/news-and-media/social-media/facebook
+ * http://australia.gov.au/news-and-media/social-media/youtube
+ * http://australia.gov.au/news-and-media/social-media/flickr
+ * http://australia.gov.au/news-and-media/social-media/apps http://www.harmony.gov.au/get-involved/app-downloads.htm http://www.em.gov.au/Resources/Pages/Before-the-Storm-phone-game.aspx
+ * http://australia.gov.au/news-and-media/social-media/podcasts
+ */
+?>
+

--- a/admin/importDirectoryUUIDs.php
+++ b/admin/importDirectoryUUIDs.php
@@ -1,13 +1,37 @@
 <?php
+
 // http://gold.gov.au/reports/department/index.xml
 require_once '../include/common.inc.php';
-try {
-    $server->create_db('disclosr-agencies');
-} catch (SetteeRestClientException $e) {
-    setteErrorHandler($e);
+$db = $server->get_db('disclosr-agencies');
+$rows = $db->get_view("app", "byName")->rows;
+$nametoid = Array();
+$sums = Array();
+foreach ($rows as $row) {
+    $nametoid[trim($row->key)] = $row->value;
 }
-$db = $server->get_db('disclosr-agencies');
-createAgencyDesignDoc();
 
+if (file_exists('index.xml')) {
+    $xml = simplexml_load_file('index.xml');
+
+    foreach ($xml as $agency) {
+        $names = Array();
+        $names[] = "".$agency->name;
+        
+        if (isset($agency->shortName)) {
+             $names[] = "".$agency->shortName;
+        }
+       foreach ($names as $name) {
+           if (!in_array($name, array_keys($nametoid))) {
+               echo "$name missing".PHP_EOL;
+               print_r($names);
+               echo $agency->dn;
+               echo PHP_EOL;
+               echo PHP_EOL;
+           }
+       }
+    }
+} else {
+    exit('Failed to open test.xml.');
+}
 ?>
 

--- a/admin/importGov2RegisterRSSFacebookTwitter.php
+++ b/admin/importGov2RegisterRSSFacebookTwitter.php
@@ -1,16 +1,100 @@
 <?php
 
 require_once '../include/common.inc.php';
-try {
-    $server->create_db('disclosr-agencies');
-} catch (SetteeRestClientException $e) {
-    setteErrorHandler($e);
+require($basePath . 'lib/phpquery/phpQuery/phpQuery.php');
+
+$db = $server->get_db('disclosr-agencies');
+$rows = $db->get_view("app", "byName")->rows;
+$nametoid = Array();
+$accounts = Array();
+foreach ($rows as $row) {
+    $nametoid[trim($row->key)] = $row->value;
 }
-$db = $server->get_db('disclosr-agencies');
-createAgencyDesignDoc();
 
-// twitter https://docs.google.com/spreadsheet/fm?id=tsJVd9EYoAjbl014y3qMgWg.03918275400592898296.8568379511161083736&hl=en&fmcmd=5&gid=0
-// RSS https://docs.google.com/spreadsheet/fm?id=tbqjwIDHKHiVYF_glJ93GgA.03918275400592898296.8789688748524615194&authkey=CJDP-uQG&hl=en_GB&fmcmd=5&gid=0
-// facebook https://docs.google.com/spreadsheet/fm?id=tkcqoo9wrgzNWmoANuVhsBw.03918275400592898296.3040387705062056060&authkey=CKzl7r0I&hl=en_GB&fmcmd=5&gid=0
+function extractHTMLAccounts($url, $accountType) {
+    global $accounts, $nametoid;
+    $request = Requests::get($url);
+    $doc = phpQuery::newDocumentHTML($request->body);
+    phpQuery::selectDocument($doc);
+    foreach (pq('tr')->elements as $tr) {
+        //echo $tr->nodeValue.PHP_EOL;
+        $agency = "";
+        $url = "";
+        foreach ($tr->childNodes as $td) {
+            $class = $td->getAttribute("class");
+            //echo "cccc $class ".$td->nodeValue.PHP_EOL;
+            if ($class == "s11" || $class == "s10" || $class == "s7") {
+                $agency = $td->nodeValue;
+            } else if ($class == "s6" || $class == "s9") {
+                $url = $td->nodeValue;
+                foreach ($td->childNodes as $a) {
+                    $href = $a->getAttribute("href");
+                    if ($href != "") {
+                        $url = $href;
+                    }
+                }
+            }
+        }
+        if ($agency != "" && $url != "") {
+            if (!in_array(trim($agency), array_keys($nametoid))) {
+                echo trim($agency) . " missing" . PHP_EOL;
+            } else {
+                //   echo $agency." = ".$url.PHP_EOL;
+                $accounts[$nametoid[trim($agency)]][$accountType][] = $url;
+            }
+        }
+    }
+}
+
+function extractCSVAccounts($url, $accountType, $nameField, $accountField, $filter) {
+    global $accounts, $nametoid;
+    $request = Requests::get($url);
+    $Data = str_getcsv($request->body, "\n"); //parse the rows 
+    $headers = Array();
+    foreach ($Data as $num => $line) {
+        $Row = str_getcsv($line, ",", '"');
+        if ($num == 0) {
+            
+        } else if ($num == 1) {
+            $headers = $Row;
+            //print_r($headers);
+        } else {
+            if (isset($Row[array_search($nameField, $headers)])) {
+                $agencyName = $Row[array_search($nameField, $headers)];
+                if (!$filter || $Row[array_search("State", $headers)] == "NAT") {
+                    if (!in_array(trim($agencyName), array_keys($nametoid))) {
+                        echo trim($agencyName) . " missing" . PHP_EOL;
+                    } else {
+                        // echo $Row[array_search($nameField, $headers)] . PHP_EOL;
+                        $accounts[$nametoid[trim($agencyName)]][$accountType][] = $Row[array_search($accountField, $headers)];
+                    }
+                }
+            } else {
+                //echo "error finding agency" . $line . PHP_EOL;
+            }
+        }
+    }
+}
+
+// http://agimo.govspace.gov.au/page/gov2register/
+// twitter
+extractCSVAccounts("https://docs.google.com/spreadsheet/pub?key=0Ap1exl80wB8OdHNKVmQ5RVlvQWpibDAxNHkzcU1nV2c&single=true&gid=0&output=csv", "Twitter", "Agency/Body/Event", "", true);
+// RSS
+extractHTMLAccounts("https://docs.google.com/spreadsheet/pub?hl=en_GB&hl=en_GB&key=0Ah41IAK0HzSTdGJxandJREhLSGlWWUZfZ2xKOTNHZ0E&output=html", "RSS");
+// facebook 
+extractHTMLAccounts("https://docs.google.com/spreadsheet/pub?hl=en_GB&hl=en_GB&key=0Ah41IAK0HzSTdGtjcW9vOXdyZ3pOV21vQU51VmhzQnc&single=true&gid=0&output=html", "Facebook");
+foreach ($accounts as $id => $accountTypes) {
+    echo $id . "<br>" . PHP_EOL;
+    $doc = object_to_array($db->get($id));
+    // print_r($doc);
+
+    foreach ($accountTypes as $accountType => $accounts) {
+        if (!isset($doc["has" . $accountType]) || !is_array($doc["has" . $accountType])) {
+            $doc["has" . $accountType] = Array();
+        }
+        $doc["has" . $accountType] = array_unique(array_merge($doc["has" . $accountType], $accounts));
+    }
+    $db->save($doc);
+}
 ?>
 

file:b/admin/index.xml (new)
--- /dev/null
+++ b/admin/index.xml
@@ -1,1 +1,2607 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<entryList>
+<department>
+<reportURI><![CDATA[http://www.directory.gov.au/reports/department/subreport321.rtf]]></reportURI>
+<websiteURI><![CDATA[/directory?ea0_lfz99_120.&&a581ffe4-b532-4d81-bae3-9e937c6104e8]]></websiteURI>
+<dn><![CDATA[ou=Aboriginal Hostels Limited (AHL),ou=Other Portfolio Bodies\, Committees\, Boards and Councils,o=Families\, Housing\, Community Services and Indigenous Affairs,o=Portfolios,o=Commonwealth of Australia,c=AU]]></dn>
+<name><![CDATA[Aboriginal Hostels Limited (AHL)]]></name>
+<phone><![CDATA[(02) 6212 2000]]></phone>
+<email><![CDATA[ahlmarketing@ahl.gov.au]]></email>
+<postalAddress><![CDATA[PO Box 30, Woden ACT 2606]]></postalAddress>
+<id><![CDATA[a581ffe4-b532-4d81-bae3-9e937c6104e8]]></id>
+<category>A</category>
+<lastModified><![CDATA[20101119150641.646+1100]]></lastModified>
+</department>
+<department>
+<reportURI><![CDATA[http://www.directory.gov.au/reports/department/subreport322.rtf]]></reportURI>
+<websiteURI><![CDATA[/directory?ea0_lfz99_120.&&e4471b59-3866-4e0e-bbca-260114348e3f]]></websiteURI>
+<dn><![CDATA[ou=Aboriginal Studies Press (ASP),ou=Australian Institute of Aboriginal and Torres Strait Islander Studies,ou=Other Portfolio Bodies\, Committees\, Boards and Councils,o=Innovation And Industry,o=Portfolios,o=Commonwealth of Australia,c=AU]]></dn>
+<name><![CDATA[Aboriginal Studies Press (ASP)]]></name>
+<phone><![CDATA[(02) 6246 1186]]></phone>
+<email><![CDATA[asp@aiatsis.gov.au]]></email>
+<postalAddress><![CDATA[GPO Box 553, Canberra ACT 2601]]></postalAddress>
+<id><![CDATA[e4471b59-3866-4e0e-bbca-260114348e3f]]></id>
+<category>A</category>
+<lastModified><![CDATA[20101007150855.716+1100]]></lastModified>
+</department>
+<department>
+<reportURI><![CDATA[http://www.directory.gov.au/reports/department/subreport323.rtf]]></reportURI>
+<websiteURI><![CDATA[/directory?ea0_lfz99_120.&&2410b559-3606-43f6-ba4d-5819b5d44dd8]]></websiteURI>
+<dn><![CDATA[ou=Administrative Appeals Tribunal,ou=Other Portfolio Bodies\, Committees\, Boards and Councils,o=Attorney-General,o=Portfolios,o=Commonwealth of Australia,c=AU]]></dn>
+<name><![CDATA[Administrative Appeals Tribunal]]></name>
+<shortName><![CDATA[AAT]]></shortName>
+<phone><![CDATA[1300 366 700]]></phone>
+<postalAddress><![CDATA[GPO Box 9955, Sydney NSW 2001]]></postalAddress>
+<id><![CDATA[2410b559-3606-43f6-ba4d-5819b5d44dd8]]></id>
+<category>A</category>
+<lastModified><![CDATA[20110322172221.506+1100]]></lastModified>
+</department>
+<department>
+<reportURI><![CDATA[http://www.directory.gov.au/reports/department/subreport324.rtf]]></reportURI>
+<websiteURI><![CDATA[/directory?ea0_lfz99_120.&&9a72269b-2d86-4213-9809-b310d8fb8242]]></websiteURI>
+<dn><![CDATA[ou=Aged Care Standards and Accreditation Agency Ltd,ou=Other Portfolio Bodies\, Committees\, Boards and Councils,o=Health and Ageing,o=Portfolios,o=Commonwealth of Australia,c=AU]]></dn>
+<name><![CDATA[Aged Care Standards and Accreditation Agency Ltd]]></name>
+<phone><![CDATA[(02) 9633 1711]]></phone>
+<email><![CDATA[national@accreditation.org.au]]></email>
+<postalAddress><![CDATA[PO Box 773, Parramatta NSW 2124]]></postalAddress>
+<id><![CDATA[9a72269b-2d86-4213-9809-b310d8fb8242]]></id>
+<category>A</category>
+<lastModified><![CDATA[20110316162117.955+1100]]></lastModified>
+</department>
+<department>
+<reportURI><![CDATA[http://www.directory.gov.au/reports/department/subreport325.rtf]]></reportURI>
+<websiteURI><![CDATA[/directory?ea0_lfz99_120.&&f6c7b75c-199a-4a83-873c-06aa2ff80b79]]></websiteURI>
+<dn><![CDATA[ou=Air Force Headquarters,ou=Department of Defence,o=Defence,o=Portfolios,o=Commonwealth of Australia,c=AU]]></dn>
+<name><![CDATA[Air Force Headquarters]]></name>
+<id><![CDATA[f6c7b75c-199a-4a83-873c-06aa2ff80b79]]></id>
+<category>A</category>
+<lastModified><![CDATA[20110927141313.630+1000]]></lastModified>
+</department>
+<department>
+<reportURI><![CDATA[http://www.directory.gov.au/reports/department/subreport326.rtf]]></reportURI>
+<websiteURI><![CDATA[/directory?ea0_lfz99_120.&&3abaa317-dfc0-4469-a07c-3d69e9bb1c38]]></websiteURI>
+<dn><![CDATA[ou=Airservices Australia,ou=Other Portfolio Bodies\, Committees\, Boards and Councils,o=Infrastructure and Transport,o=Portfolios,o=Commonwealth of Australia,c=AU]]></dn>
+<name><![CDATA[Airservices Australia]]></name>
+<shortName><![CDATA[Airservices]]></shortName>
+<phone><![CDATA[(02) 6268 4111]]></phone>
+<postalAddress><![CDATA[Airservices Australia, GPO Box 367, Canberra ACT 2601]]></postalAddress>
+<id><![CDATA[3abaa317-dfc0-4469-a07c-3d69e9bb1c38]]></id>
+<category>A</category>
+<lastModified><![CDATA[20100624173807.346+1000]]></lastModified>
+</department>
+<department>
+<reportURI><![CDATA[http://www.directory.gov.au/reports/department/subreport327.rtf]]></reportURI>
+<websiteURI><![CDATA[/directory?ea0_lfz99_120.&&0269409f-9ffb-4d37-adfd-d98d4f75c30a]]></websiteURI>
+<dn><![CDATA[ou=Albury-Wodonga Corporation,ou=Other Portfolio Bodies\, Committees\, Boards and Councils,o=Finance and Deregulation,o=Portfolios,o=Commonwealth of Australia,c=AU]]></dn>
+<name><![CDATA[Albury-Wodonga Corporation]]></name>
+<shortName><![CDATA[AWC]]></shortName>
+<phone><![CDATA[(02) 6023 8000]]></phone>
+<email><![CDATA[awc@awc.gov.au]]></email>
+<postalAddress><![CDATA[PO Box 913, Albury NSW 2640]]></postalAddress>
+<id><![CDATA[0269409f-9ffb-4d37-adfd-d98d4f75c30a]]></id>
+<category>A</category>
+<lastModified><![CDATA[20120118093718.197+1100]]></lastModified>
+</department>
+<department>
+<reportURI><![CDATA[http://www.directory.gov.au/reports/department/subreport328.rtf]]></reportURI>
+<websiteURI><![CDATA[/directory?ea0_lfz99_120.&&47820771-fcb1-4277-9423-96c18c715c7e]]></websiteURI>
+<dn><![CDATA[ou=AMC Search Ltd,ou=Australian Maritime College,ou=Other Portfolio Bodies\, Committees\, Boards and Councils,o=Infrastructure and Transport,o=Portfolios,o=Commonwealth of Australia,c=AU]]></dn>
+<name><![CDATA[AMC Search Ltd]]></name>
+<phone><![CDATA[(03) 6335 4850]]></phone>
+<postalAddress><![CDATA[AMC Search Ltd, Australian Maritime College, PO Box 986, Launceston TAS 7250]]></postalAddress>
+<id><![CDATA[47820771-fcb1-4277-9423-96c18c715c7e]]></id>
+<category>A</category>
+<lastModified><![CDATA[20080613122607.525+1000]]></lastModified>
+</department>
+<department>
+<reportURI><![CDATA[http://www.directory.gov.au/reports/department/subreport329.rtf]]></reportURI>
+<websiteURI><![CDATA[/directory?ea0_lfz99_120.&&364e2973-e795-47b2-90f2-76bb9819207b]]></websiteURI>
+<dn><![CDATA[ou=Army Headquarters,ou=Department of Defence,o=Defence,o=Portfolios,o=Commonwealth of Australia,c=AU]]></dn>
+<name><![CDATA[Army Headquarters]]></name>
+<id><![CDATA[364e2973-e795-47b2-90f2-76bb9819207b]]></id>
+<category>A</category>
+<lastModified><![CDATA[20100624173848.550+1000]]></lastModified>
+</department>
+<department>
+<reportURI><![CDATA[http://www.directory.gov.au/reports/department/subreport330.rtf]]></reportURI>
+<websiteURI><![CDATA[/directory?ea0_lfz99_120.&&e4ea2b3c-40ce-4ab5-aead-1b1af78f5035]]></websiteURI>
+<dn><![CDATA[ou=ASC Pty Ltd,ou=Other Portfolio Bodies\, Committees\, Boards and Councils,o=Finance and Deregulation,o=Portfolios,o=Commonwealth of Australia,c=AU]]></dn>
+<name><![CDATA[ASC Pty Ltd]]></name>
+<phone><![CDATA[(08) 8348 7000]]></phone>
+<postalAddress><![CDATA[GPO Box 2472, ADELAIDE, SA 5001]]></postalAddress>
+<id><![CDATA[e4ea2b3c-40ce-4ab5-aead-1b1af78f5035]]></id>
+<category>A</category>
+<lastModified><![CDATA[20110401145040.388+1100]]></lastModified>
+</department>
+<department>
+<reportURI><![CDATA[http://www.directory.gov.au/reports/department/subreport331.rtf]]></reportURI>
+<websiteURI><![CDATA[/directory?ea0_lfz99_120.&&d227a935-064f-4089-a469-0614efa1352f]]></websiteURI>
+<dn><![CDATA[ou=Attorney-General's Department,o=Attorney-General,o=Portfolios,o=Commonwealth of Australia,c=AU]]></dn>
+<name><![CDATA[Attorney-General's Department]]></name>
+<shortName><![CDATA[AGD]]></shortName>
+<phone><![CDATA[(02) 6141 6666]]></phone>
+<id><![CDATA[d227a935-064f-4089-a469-0614efa1352f]]></id>
+<category>A</category>
+<lastModified><![CDATA[20120116101325.717+1100]]></lastModified>
+</department>
+<department>
+<reportURI><![CDATA[http://www.directory.gov.au/reports/department/subreport332.rtf]]></reportURI>
+<websiteURI><![CDATA[/directory?ea0_lfz99_120.&&b79d7f58-1533-4dc4-8fab-d7b83fe6b41f]]></websiteURI>
+<dn><![CDATA[ou=AusIndustry,ou=Central Office,ou=Department of Industry\, Innovation\, Science\, Research and Tertiary Education,o=Innovation And Industry,o=Portfolios,o=Commonwealth of Australia,c=AU]]></dn>
+<name><![CDATA[AusIndustry]]></name>
+<phone><![CDATA[AusIndustry Hotline 13 28 46]]></phone>
+<postalAddress><![CDATA[GPO Box 9839, Canberra ACT 2601]]></postalAddress>
+<id><![CDATA[b79d7f58-1533-4dc4-8fab-d7b83fe6b41f]]></id>
+<category>A</category>
+<lastModified><![CDATA[20111219104922.932+1100]]></lastModified>
+</department>
+<department>
+<reportURI><![CDATA[http://www.directory.gov.au/reports/department/subreport333.rtf]]></reportURI>
+<websiteURI><![CDATA[/directory?ea0_lfz99_120.&&1a071feb-53e0-48ba-ad51-6e98c2c48e85]]></websiteURI>
+<dn><![CDATA[ou=AusIndustry Hotline,ou=AusIndustry,ou=Central Office,ou=Department of Industry\, Innovation\, Science\, Research and Tertiary Education,o=Innovation And Industry,o=Portfolios,o=Commonwealth of Australia,c=AU]]></dn>
+<name><![CDATA[AusIndustry Hotline]]></name>
+<phone><![CDATA[13 2846 - 8.00am - 6.00pm (AEST)]]></phone>
+<email><![CDATA[hotline@ausindustry.gov.au]]></email>
+<id><![CDATA[1a071feb-53e0-48ba-ad51-6e98c2c48e85]]></id>
+<category>A</category>
+<lastModified><![CDATA[20111219105059.015+1100]]></lastModified>
+</department>
+<department>
+<reportURI><![CDATA[http://www.directory.gov.au/reports/department/subreport334.rtf]]></reportURI>
+<websiteURI><![CDATA[/directory?ea0_lfz99_120.&&14e9ae65-9958-441c-b1b2-b2c906f8a9e3]]></websiteURI>
+<dn><![CDATA[ou=Australia Telescope National Facility,ou=Information Sciences,ou=Research Groups,ou=Commonwealth Scientific and Industrial Research Organisation (CSIRO),ou=Other Portfolio Bodies\, Committees\, Boards and Councils,o=Innovation And Industry,o=Portfolios,o=Commonwealth of Australia,c=AU]]></dn>
+<name><![CDATA[Australia Telescope National Facility]]></name>
+<phone><![CDATA[(02) 9372 4100]]></phone>
+<postalAddress><![CDATA[PO Box 76, Epping NSW 1710]]></postalAddress>
+<id><![CDATA[14e9ae65-9958-441c-b1b2-b2c906f8a9e3]]></id>
+<category>A</category>
+<lastModified><![CDATA[20100222170235.683+1100]]></lastModified>
+</department>
+<department>
+<reportURI><![CDATA[http://www.directory.gov.au/reports/department/subreport335.rtf]]></reportURI>
+<websiteURI><![CDATA[/directory?ea0_lfz99_120.&&ed906056-af2b-4d53-bf0e-573c34d71784]]></websiteURI>
+<dn><![CDATA[ou=Australian Agency for International Development (AusAID),ou=Other Portfolio Bodies\, Committees\, Boards and Councils,o=Foreign Affairs and Trade,o=Portfolios,o=Commonwealth of Australia,c=AU]]></dn>
+<name><![CDATA[Australian Agency for International Development (AusAID)]]></name>
+<shortName><![CDATA[AusAID]]></shortName>
+<phone><![CDATA[(02) 6206 4000]]></phone>
+<postalAddress><![CDATA[GPO Box 887, Canberra ACT 2601]]></postalAddress>
+<id><![CDATA[ed906056-af2b-4d53-bf0e-573c34d71784]]></id>
+<category>A</category>
+<lastModified><![CDATA[20110208120656.851+1100]]></lastModified>
+</department>
+<department>
+<reportURI><![CDATA[http://www.directory.gov.au/reports/department/subreport336.rtf]]></reportURI>
+<websiteURI><![CDATA[/directory?ea0_lfz99_120.&&4556722d-45f5-40f5-a039-6a0da1374eb4]]></websiteURI>
+<dn><![CDATA[ou=Australian Astronomical Observatory,ou=Central Office,ou=Department of Industry\, Innovation\, Science\, Research and Tertiary Education,o=Innovation And Industry,o=Portfolios,o=Commonwealth of Australia,c=AU]]></dn>
+<name><![CDATA[Australian Astronomical Observatory]]></name>
+<shortName><![CDATA[AAO]]></shortName>
+<phone><![CDATA[(02) 9372 4800]]></phone>
+<postalAddress><![CDATA[PO Box 296, Epping NSW 1710]]></postalAddress>
+<id><![CDATA[4556722d-45f5-40f5-a039-6a0da1374eb4]]></id>
+<category>A</category>
+<lastModified><![CDATA[20110113133740.552+1100]]></lastModified>
+</department>
+<department>
+<reportURI><![CDATA[http://www.directory.gov.au/reports/department/subreport337.rtf]]></reportURI>
+<websiteURI><![CDATA[/directory?ea0_lfz99_120.&&8caaf9d1-17f1-4e68-9bf3-8cfa04503a5a]]></websiteURI>
+<dn><![CDATA[ou=Australian Broadcasting Corporation (ABC),ou=Other Portfolio Bodies\, Committees\, Boards and Councils,o=Broadband\, Communications and the Digital Economy,o=Portfolios,o=Commonwealth of Australia,c=AU]]></dn>
+<name><![CDATA[Australian Broadcasting Corporation (ABC)]]></name>
+<shortName><![CDATA[ABC]]></shortName>
+<phone><![CDATA[(02) 8333 1500]]></phone>
+<postalAddress><![CDATA[GPO Box 9994, Sydney NSW 2001]]></postalAddress>
+<id><![CDATA[8caaf9d1-17f1-4e68-9bf3-8cfa04503a5a]]></id>
+<category>A</category>
+<lastModified><![CDATA[20110317113926.470+1100]]></lastModified>
+</department>
+<department>
+<reportURI><![CDATA[http://www.directory.gov.au/reports/department/subreport338.rtf]]></reportURI>
+<websiteURI><![CDATA[/directory?ea0_lfz99_120.&&269a027d-8d7e-4bfb-acf6-e0052512f162]]></websiteURI>
+<dn><![CDATA[ou=Australian Bureau of Agricultural and Resource Economics and Sciences,ou=Department of Agriculture\, Fisheries and Forestry,o=Agriculture\, Fisheries and Forestry,o=Portfolios,o=Commonwealth of Australia,c=AU]]></dn>
+<name><![CDATA[Australian Bureau of Agricultural and Resource Economics and Sciences]]></name>
+<shortName><![CDATA[ABARES]]></shortName>
+<phone><![CDATA[(02) 6272 2000]]></phone>
+<postalAddress><![CDATA[GPO Box 1563, Canberra ACT 2601]]></postalAddress>
+<id><![CDATA[269a027d-8d7e-4bfb-acf6-e0052512f162]]></id>
+<category>A</category>
+<lastModified><![CDATA[20111123085639.454+1100]]></lastModified>
+</department>
+<department>
+<reportURI><![CDATA[http://www.directory.gov.au/reports/department/subreport339.rtf]]></reportURI>
+<websiteURI><![CDATA[/directory?ea0_lfz99_120.&&5474218a-dd86-4cfb-9c83-ae92f29bfb56]]></websiteURI>
+<dn><![CDATA[ou=Australian Bureau of Statistics,ou=Other Portfolio Bodies\, Committees\, Boards and Councils,o=Treasury,o=Portfolios,o=Commonwealth of Australia,c=AU]]></dn>
+<name><![CDATA[Australian Bureau of Statistics]]></name>
+<shortName><![CDATA[ABS]]></shortName>
+<phone><![CDATA[(02) 6252 5000]]></phone>
+<postalAddress><![CDATA[Locked Bag 10, Belconnen ACT 2616]]></postalAddress>
+<id><![CDATA[5474218a-dd86-4cfb-9c83-ae92f29bfb56]]></id>
+<category>A</category>
+<lastModified><![CDATA[20100624173756.051+1000]]></lastModified>
+</department>
+<department>
+<reportURI><![CDATA[http://www.directory.gov.au/reports/department/subreport340.rtf]]></reportURI>
+<websiteURI><![CDATA[/directory?ea0_lfz99_120.&&3c6f8fa6-80fd-4652-942a-362290a97cc2]]></websiteURI>
+<dn><![CDATA[ou=Australian Centre for International Agricultural Research (ACIAR),ou=Other Portfolio Bodies\, Committees\, Boards and Councils,o=Foreign Affairs and Trade,o=Portfolios,o=Commonwealth of Australia,c=AU]]></dn>
+<name><![CDATA[Australian Centre for International Agricultural Research (ACIAR)]]></name>
+<shortName><![CDATA[ACIAR]]></shortName>
+<phone><![CDATA[(02) 6217 0500]]></phone>
+<email><![CDATA[aciar@aciar.gov.au]]></email>
+<postalAddress><![CDATA[GPO Box 1571, Canberra ACT 2601]]></postalAddress>
+<id><![CDATA[3c6f8fa6-80fd-4652-942a-362290a97cc2]]></id>
+<category>A</category>
+<lastModified><![CDATA[20110330162044.458+1100]]></lastModified>
+</department>
+<department>
+<reportURI><![CDATA[http://www.directory.gov.au/reports/department/subreport341.rtf]]></reportURI>
+<websiteURI><![CDATA[/directory?ea0_lfz99_120.&&9d6e20ab-f0e1-422c-a248-ee031c4bd1a2]]></websiteURI>
+<dn><![CDATA[ou=Australian Commission for Law Enforcement Integrity,ou=Other Portfolio Bodies\, Committees\, Boards and Councils,o=Attorney-General,o=Portfolios,o=Commonwealth of Australia,c=AU]]></dn>
+<name><![CDATA[Australian Commission for Law Enforcement Integrity]]></name>
+<shortName><![CDATA[ACLEI]]></shortName>
+<phone><![CDATA[(02) 6229 9300]]></phone>
+<email><![CDATA[contact@aclei.gov.au]]></email>
+<postalAddress><![CDATA[GPO Box 305, Canberra, ACT 2601]]></postalAddress>
+<id><![CDATA[9d6e20ab-f0e1-422c-a248-ee031c4bd1a2]]></id>
+<category>A</category>
+<lastModified><![CDATA[20110712095234.680+1000]]></lastModified>
+</department>
+<department>
+<reportURI><![CDATA[http://www.directory.gov.au/reports/department/subreport342.rtf]]></reportURI>
+<websiteURI><![CDATA[/directory?ea0_lfz99_120.&&b3c7ffa9-03a0-4237-84ee-c93e729e8bee]]></websiteURI>
+<dn><![CDATA[ou=Australian Communications and Media Authority (ACMA),ou=Other Portfolio Bodies\, Committees\, Boards and Councils,o=Broadband\, Communications and the Digital Economy,o=Portfolios,o=Commonwealth of Australia,c=AU]]></dn>
+<name><![CDATA[Australian Communications and Media Authority (ACMA)]]></name>
+<shortName><![CDATA[The ACM