Search Distribution Census Experiment.
authorGregg Lind <glind@mozilla.com>
Fri, 07 Mar 2014 11:42:17 -0600
changeset 1028 7e90829a490f
parent 1027 33b88c932233
child 1029 085f85b64626
push id859
push userglind@mozilla.com
push dateFri, 07 Mar 2014 17:44:44 +0000
Search Distribution Census Experiment.
testcases/index.json
testcases/search-distribution-census/README.html
testcases/search-distribution-census/README.md
testcases/search-distribution-census/deploy.txt
testcases/search-distribution-census/search-distribution-census.jar
testcases/search-distribution-census/search-distribution-census.js
--- a/testcases/index.json
+++ b/testcases/index.json
@@ -1,211 +1,219 @@
 {
-  "maintain_experiments": [],
+  "maintain_experiments": [], 
   "legacy": [
     {
-      "url": "https://testpilot.mozillalabs.com/testcases/searchui",
-      "id": "8",
-      "thumbnail": "https://testpilot.mozillalabs.com/testcases/search/searchbar-thumbnail.png",
-      "name": "Search",
+      "url": "https://testpilot.mozillalabs.com/testcases/searchui", 
+      "thumbnail": "https://testpilot.mozillalabs.com/testcases/search/searchbar-thumbnail.png", 
+      "id": "8", 
+      "name": "Search", 
       "summary": "What are the most used interfaces to access search engines through Firefox?"
-    },
+    }, 
     {
-      "url": "https://testpilot.mozillalabs.com/testcases/betaui.html",
-      "id": "100",
-      "thumbnail": "http://hg.mozilla.org/labs/testpilot/raw-file/269edaf8034d/extension/skin/all/badge-default.png",
-      "name": "Firefox 4 Beta Interface",
+      "url": "https://testpilot.mozillalabs.com/testcases/betaui.html", 
+      "thumbnail": "http://hg.mozilla.org/labs/testpilot/raw-file/269edaf8034d/extension/skin/all/badge-default.png", 
+      "id": "100", 
+      "name": "Firefox 4 Beta Interface", 
       "summary": "We are studying how the changes to the toolbar and menu bar in the Firefox 4 beta affect usage of the interface."
-    },
+    }, 
     {
-      "url": "https://testpilot.mozillalabs.com/testcases/betaui2",
-      "id": "101",
-      "thumbnail": "http://hg.mozilla.org/labs/testpilot/raw-file/269edaf8034d/extension/skin/all/badge-default.png",
-      "name": "Beta UI Survey 2",
+      "url": "https://testpilot.mozillalabs.com/testcases/betaui2", 
+      "thumbnail": "http://hg.mozilla.org/labs/testpilot/raw-file/269edaf8034d/extension/skin/all/badge-default.png", 
+      "id": "101", 
+      "name": "Beta UI Survey 2", 
       "summary": "We are studying how the changes to the toolbar and menu bar in the Firefox 4 beta affect usage of the interface."
-    },
+    }, 
     {
-      "url": "https://testpilot.mozillalabs.com/testcases/toolbar",
-      "id": "6",
-      "thumbnail": "https://testpilot.mozillalabs.com/testcases/toolbars/toolbar-study-thumbnail.png",
-      "name": "Toolbar Study",
+      "url": "https://testpilot.mozillalabs.com/testcases/toolbar", 
+      "thumbnail": "https://testpilot.mozillalabs.com/testcases/toolbars/toolbar-study-thumbnail.png", 
+      "id": "6", 
+      "name": "Toolbar Study", 
       "summary": "We would like to have a better understanding of how Firefox's current toolbar is commonly used. How often do people click on the Back  button, how often do people switch search engines? The study data will be directly used to improve the toolbar design for Firefox 4."
-    },
+    }, 
     {
-      "url": "https://testpilot.mozillalabs.com/testcases/tab-open-close.html",
-      "id": "1",
-      "thumbnail": "https://testpilot.mozillalabs.com/testcases/tab-open-close/tab-study-thumbnail.png",
-      "name": "Tab Open/Close Study",
+      "url": "https://testpilot.mozillalabs.com/testcases/tab-open-close.html", 
+      "thumbnail": "https://testpilot.mozillalabs.com/testcases/tab-open-close/tab-study-thumbnail.png", 
+      "id": "1", 
+      "name": "Tab Open/Close Study", 
       "summary": "Tabbed browsing is offered by all major web browsers. The first question we want to explore: what would be the best default browser behavior after users close or open a tab when many tabs are open?"
-    },
+    }, 
     {
-      "url": "https://testpilot.mozillalabs.com/testcases/tab-switch-study",
-      "id": "5",
-      "thumbnail": "https://testpilot.mozillalabs.com/testcases/tab-open-close/tab-switch-thumbnail.png",
-      "name": "Tab Switch Study",
+      "url": "https://testpilot.mozillalabs.com/testcases/tab-switch-study", 
+      "thumbnail": "https://testpilot.mozillalabs.com/testcases/tab-open-close/tab-switch-thumbnail.png", 
+      "id": "5", 
+      "name": "Tab Switch Study", 
       "summary": "This 5-day study aims to understand how people switch between tabs. The result of this study will help Firefox team design better ways for people to manage their tabs. "
-    },
+    }, 
     {
-      "url": "https://testpilot.mozillalabs.com/testcases/menuitemusage",
-      "id": "4",
-      "thumbnail": "https://testpilot.mozillalabs.com/testcases/menu-item-usage/menu-study-thumbnail.png",
-      "name": "Menu Item Usage Study",
+      "url": "https://testpilot.mozillalabs.com/testcases/menuitemusage", 
+      "thumbnail": "https://testpilot.mozillalabs.com/testcases/menu-item-usage/menu-study-thumbnail.png", 
+      "id": "4", 
+      "name": "Menu Item Usage Study", 
       "summary": "Remembering which username/password combination to use on a given site can be very frustrating. Firefox tries to help solve a part of this  problem with the Password Manager feature. Can it be more helpful? "
-    },
+    }, 
     {
-      "url": "https://testpilot.mozillalabs.com/testcases/account-password.html",
-      "id": "3",
-      "thumbnail": "https://testpilot.mozillalabs.com/testcases/password-distribution/account-password-study-thumbnail.png",
-      "name": "Accounts and Passwords Study",
+      "url": "https://testpilot.mozillalabs.com/testcases/account-password.html", 
+      "thumbnail": "https://testpilot.mozillalabs.com/testcases/password-distribution/account-password-study-thumbnail.png", 
+      "id": "3", 
+      "name": "Accounts and Passwords Study", 
       "summary": "Remembering which username/password combination to use on a given site can be very frustrating. Firefox tries to help solve a part of this  problem with the Password Manager feature. Can it be more helpful? "
-    },
+    }, 
     {
-      "url": "https://testpilot.mozillalabs.com/testcases/account-password.html",
-      "id": "account_password_survey",
-      "thumbnail": "https://testpilot.mozillalabs.com/testcases/pilot-survey-thumbnail.png",
-      "name": "Accounts and Passwords Survey",
+      "url": "https://testpilot.mozillalabs.com/testcases/account-password.html", 
+      "thumbnail": "https://testpilot.mozillalabs.com/testcases/pilot-survey-thumbnail.png", 
+      "id": "account_password_survey", 
+      "name": "Accounts and Passwords Survey", 
       "summary": ""
-    },
+    }, 
     {
-      "url": "https://testpilot.mozillalabs.com/testcases/perception",
-      "id": "beta_perception_survey_1",
-      "thumbnail": "https://testpilot.mozillalabs.com/testcases/pilot-survey-thumbnail.png",
-      "name": "How Do You Feel About Your Firefox Browser",
+      "url": "https://testpilot.mozillalabs.com/testcases/perception", 
+      "thumbnail": "https://testpilot.mozillalabs.com/testcases/pilot-survey-thumbnail.png", 
+      "id": "beta_perception_survey_1", 
+      "name": "How Do You Feel About Your Firefox Browser", 
       "summary": "The aim of this survey is to understand users' perception on their Firefox browser in general over time. We will follow up a similar survey in a month to understand the change of user perception."
     }
-  ],
+  ], 
   "new_experiments": [
     {
       "default": {
-        "hash": "c2fea1669f36ca3af16a8e19027c6944ca45a988ce9351dc8c368aa0c85e69ad",
-        "name": "Dependencies",
+        "hash": "c2fea1669f36ca3af16a8e19027c6944ca45a988ce9351dc8c368aa0c85e69ad", 
+        "name": "Dependencies", 
         "jarfile": "base_classes.jar"
       }
-    },
+    }, 
     {
       "default": {
-        "studyfile": "research_installer.js",
-        "hash": "7bd8e381e08afc18e2d7b0bd28be97b341699e9dc9f8689009bce1adb719f7c4",
-        "name": "Firefox Personalization Study",
+        "studyfile": "research_installer.js", 
+        "hash": "7bd8e381e08afc18e2d7b0bd28be97b341699e9dc9f8689009bce1adb719f7c4", 
+        "name": "Firefox Personalization Study", 
         "jarfile": "up-research/research_installer-1.jar"
       }
+    }, 
+    {
+      "default": {
+        "studyfile": "search-distribution-census.js", 
+        "hash": "e7325dc6cd2b7e7927a750adcced55779b3299881477e0c3b2ae5c22837fc7f2", 
+        "name": "Search Distribution Census", 
+        "jarfile": "search-distribution-census/search-distribution-census.jar"
+      }
     }
-  ],
+  ], 
   "results": [
     {
-      "title": "Min and Max Tabs",
-      "url": "https://testpilot.mozillalabs.com/testcases/tab-open-close/results.html#minmax",
-      "studyId": "1",
-      "thumbnail": "https://testpilot.mozillalabs.com/testcases/tab-open-close/graphs/min-max-avg-tabs-open-thumb.png",
-      "date": "Thu Oct 15 2009",
-      "summary": "How many tabs do users have open at a time?",
+      "title": "Min and Max Tabs", 
+      "url": "https://testpilot.mozillalabs.com/testcases/tab-open-close/results.html#minmax", 
+      "studyId": "1", 
+      "thumbnail": "https://testpilot.mozillalabs.com/testcases/tab-open-close/graphs/min-max-avg-tabs-open-thumb.png", 
+      "date": "Thu Oct 15 2009", 
+      "summary": "How many tabs do users have open at a time?", 
       "id": "1_results_min_max"
-    },
+    }, 
     {
-      "title": "Tab Lifespans",
-      "url": "https://testpilot.mozillalabs.com/testcases/tab-open-close/results.html#lifespans",
-      "studyId": "1",
-      "thumbnail": "https://testpilot.mozillalabs.com/testcases/tab-open-close/graphs/tab-lifespans-thumb.png",
-      "date": "Thu Oct 15 2009",
-      "summary": "How long does an individual tab stay open on average?",
+      "title": "Tab Lifespans", 
+      "url": "https://testpilot.mozillalabs.com/testcases/tab-open-close/results.html#lifespans", 
+      "studyId": "1", 
+      "thumbnail": "https://testpilot.mozillalabs.com/testcases/tab-open-close/graphs/tab-lifespans-thumb.png", 
+      "date": "Thu Oct 15 2009", 
+      "summary": "How long does an individual tab stay open on average?", 
       "id": "1_results_lifespans"
-    },
+    }, 
     {
-      "title": "Switching on Tab Closure",
-      "url": "https://testpilot.mozillalabs.com/testcases/tab-open-close/results.html#close-switch",
-      "studyId": "1",
-      "thumbnail": "https://testpilot.mozillalabs.com/testcases/tab-open-close/graphs/close-switch-stats-thumb.png",
-      "date": "Thu Oct 15 2009",
-      "summary": "When a user closes a tab, Firefox automatically switches to another tab (call it the 'default' tab). Is this default tab usually the one that the user wants or not?",
+      "title": "Switching on Tab Closure", 
+      "url": "https://testpilot.mozillalabs.com/testcases/tab-open-close/results.html#close-switch", 
+      "studyId": "1", 
+      "thumbnail": "https://testpilot.mozillalabs.com/testcases/tab-open-close/graphs/close-switch-stats-thumb.png", 
+      "date": "Thu Oct 15 2009", 
+      "summary": "When a user closes a tab, Firefox automatically switches to another tab (call it the 'default' tab). Is this default tab usually the one that the user wants or not?", 
       "id": "1_results_switch_on_close"
-    },
+    }, 
     {
-      "title": "Bookmarks",
-      "url": "https://testpilot.mozillalabs.com/testcases/a-week-life/results.html#bookmark",
-      "studyId": "2",
-      "thumbnail": "https://testpilot.mozillalabs.com/testcases/a-week-life/graphs/bookmark-density.png",
-      "date": "Thu Jan 14 2010",
-      "summary": "How many bookmarks do people use?",
+      "title": "Bookmarks", 
+      "url": "https://testpilot.mozillalabs.com/testcases/a-week-life/results.html#bookmark", 
+      "studyId": "2", 
+      "thumbnail": "https://testpilot.mozillalabs.com/testcases/a-week-life/graphs/bookmark-density.png", 
+      "date": "Thu Jan 14 2010", 
+      "summary": "How many bookmarks do people use?", 
       "id": "2_results_num_bookmarks"
-    },
+    }, 
     {
-      "title": "Bookmark  Folders",
-      "url": "https://testpilot.mozillalabs.com/testcases/a-week-life/results.html#folder",
-      "studyId": "2",
-      "thumbnail": "https://testpilot.mozillalabs.com/testcases/a-week-life/graphs/folder-count.png",
-      "date": "Thu Jan 14 2010",
-      "summary": "How many folders do people use to manage their bookmarks?",
+      "title": "Bookmark  Folders", 
+      "url": "https://testpilot.mozillalabs.com/testcases/a-week-life/results.html#folder", 
+      "studyId": "2", 
+      "thumbnail": "https://testpilot.mozillalabs.com/testcases/a-week-life/graphs/folder-count.png", 
+      "date": "Thu Jan 14 2010", 
+      "summary": "How many folders do people use to manage their bookmarks?", 
       "id": "2_results_bookmark_folders"
-    },
+    }, 
     {
-      "title": "Bookmark Levels",
-      "url": "https://testpilot.mozillalabs.com/testcases/a-week-life/results.html#depth",
-      "studyId": "2",
-      "thumbnail": "https://testpilot.mozillalabs.com/testcases/a-week-life/graphs/folder-depth.png",
-      "date": "Thu Jan 14 2010",
-      "summary": "How deep are those folders that people use to manage their bookmarks?",
+      "title": "Bookmark Levels", 
+      "url": "https://testpilot.mozillalabs.com/testcases/a-week-life/results.html#depth", 
+      "studyId": "2", 
+      "thumbnail": "https://testpilot.mozillalabs.com/testcases/a-week-life/graphs/folder-depth.png", 
+      "date": "Thu Jan 14 2010", 
+      "summary": "How deep are those folders that people use to manage their bookmarks?", 
       "id": "2_results_folder_levels"
-    },
+    }, 
     {
-      "title": "Computer Sharing",
-      "url": "https://testpilot.mozillalabs.com/testcases/password-distribution/results.html#sharecomputer",
-      "studyId": "3",
-      "thumbnail": "https://testpilot.mozillalabs.com/testcases/password-distribution/graphs/sharecomputer.jpg",
-      "date": "Thu Jan 28 2010",
-      "summary": "Do people share their computer?",
+      "title": "Computer Sharing", 
+      "url": "https://testpilot.mozillalabs.com/testcases/password-distribution/results.html#sharecomputer", 
+      "studyId": "3", 
+      "thumbnail": "https://testpilot.mozillalabs.com/testcases/password-distribution/graphs/sharecomputer.jpg", 
+      "date": "Thu Jan 28 2010", 
+      "summary": "Do people share their computer?", 
       "id": "3_results_computer_share"
-    },
+    }, 
     {
-      "title": "Password Amount",
-      "url": "https://testpilot.mozillalabs.com/testcases/password-distribution/results.html#passwordcount",
-      "studyId": "3",
-      "thumbnail": "https://testpilot.mozillalabs.com/testcases/password-distribution/graphs/passwordcount.png",
-      "date": "Thu Jan 28 2010",
-      "summary": "How many passwords do people use?",
+      "title": "Password Amount", 
+      "url": "https://testpilot.mozillalabs.com/testcases/password-distribution/results.html#passwordcount", 
+      "studyId": "3", 
+      "thumbnail": "https://testpilot.mozillalabs.com/testcases/password-distribution/graphs/passwordcount.png", 
+      "date": "Thu Jan 28 2010", 
+      "summary": "How many passwords do people use?", 
       "id": "3_results_num_passwords"
-    },
+    }, 
     {
-      "title": "Satisfaction: Accounts and Passwords Management",
-      "url": "https://testpilot.mozillalabs.com/testcases/password-distribution/results.html#feelhappy",
-      "studyId": "3",
-      "thumbnail": "https://testpilot.mozillalabs.com/testcases/password-distribution/graphs/feelhappy.png",
-      "date": "Thu Jan 28 2010",
-      "summary": "How happy do people feel with current ways of managing accounts and passwords?",
+      "title": "Satisfaction: Accounts and Passwords Management", 
+      "url": "https://testpilot.mozillalabs.com/testcases/password-distribution/results.html#feelhappy", 
+      "studyId": "3", 
+      "thumbnail": "https://testpilot.mozillalabs.com/testcases/password-distribution/graphs/feelhappy.png", 
+      "date": "Thu Jan 28 2010", 
+      "summary": "How happy do people feel with current ways of managing accounts and passwords?", 
       "id": "3_results_satisfaction"
-    },
+    }, 
     {
-      "title": "Password Reuse",
-      "url": "https://testpilot.mozillalabs.com/testcases/password-distribution/results.html#repeat",
-      "studyId": "3",
-      "thumbnail": "https://testpilot.mozillalabs.com/testcases/password-distribution/graphs/repeat_pw.png",
-      "date": "Thu Jan 28 2010",
-      "summary": "Do people repeat the same password on different sites?",
+      "title": "Password Reuse", 
+      "url": "https://testpilot.mozillalabs.com/testcases/password-distribution/results.html#repeat", 
+      "studyId": "3", 
+      "thumbnail": "https://testpilot.mozillalabs.com/testcases/password-distribution/graphs/repeat_pw.png", 
+      "date": "Thu Jan 28 2010", 
+      "summary": "Do people repeat the same password on different sites?", 
       "id": "3_results_password_reuse"
-    },
+    }, 
     {
-      "title": "Most Used Menu Items",
-      "url": "https://testpilot.mozillalabs.com/testcases/menu-item-usage/results.html#Q1",
-      "studyId": "4",
-      "thumbnail": "https://testpilot.mozillalabs.com/testcases/menu-item-usage/graphs/itemid_all.png",
-      "date": "Thu Mar 11 2010",
-      "summary": " Which menu items are the most or the least commonly used?",
+      "title": "Most Used Menu Items", 
+      "url": "https://testpilot.mozillalabs.com/testcases/menu-item-usage/results.html#Q1", 
+      "studyId": "4", 
+      "thumbnail": "https://testpilot.mozillalabs.com/testcases/menu-item-usage/graphs/itemid_all.png", 
+      "date": "Thu Mar 11 2010", 
+      "summary": " Which menu items are the most or the least commonly used?", 
       "id": "4_results_most_used_items"
-    },
+    }, 
     {
-      "title": "Most Used Menu Items by Mouse Interaction",
-      "url": "https://testpilot.mozillalabs.com/testcases/menu-item-usage/results.html#Q2",
-      "studyId": "4",
-      "thumbnail": "https://testpilot.mozillalabs.com/testcases/menu-item-usage/graphs/menu_graphic.png",
-      "date": "Thu Mar 11 2010",
-      "summary": " What are most and least used Firefox menu items by only mouse interactions?",
+      "title": "Most Used Menu Items by Mouse Interaction", 
+      "url": "https://testpilot.mozillalabs.com/testcases/menu-item-usage/results.html#Q2", 
+      "studyId": "4", 
+      "thumbnail": "https://testpilot.mozillalabs.com/testcases/menu-item-usage/graphs/menu_graphic.png", 
+      "date": "Thu Mar 11 2010", 
+      "summary": " What are most and least used Firefox menu items by only mouse interactions?", 
       "id": "4_results_most_used_mouse"
-    },
+    }, 
     {
-      "title": "Most Used Menu Items by Mouse or Keyboard Shortcut",
-      "url": "https://testpilot.mozillalabs.com/testcases/menu-item-usage/results.html#Q3",
-      "studyId": "4",
-      "thumbnail": "https://testpilot.mozillalabs.com/testcases/menu-item-usage/graphs/itemid_all_mouse_ordered.png",
-      "date": "Thu Mar 11 2010",
-      "summary": " Which menu items are the most or the least commonly used, by mouse click or keyboard shortcut?",
+      "title": "Most Used Menu Items by Mouse or Keyboard Shortcut", 
+      "url": "https://testpilot.mozillalabs.com/testcases/menu-item-usage/results.html#Q3", 
+      "studyId": "4", 
+      "thumbnail": "https://testpilot.mozillalabs.com/testcases/menu-item-usage/graphs/itemid_all_mouse_ordered.png", 
+      "date": "Thu Mar 11 2010", 
+      "summary": " Which menu items are the most or the least commonly used, by mouse click or keyboard shortcut?", 
       "id": "4_results_most_used_keyboard"
     }
   ]
-}
+}
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/testcases/search-distribution-census/README.html
@@ -0,0 +1,790 @@
+<!DOCTYPE html><html><head><meta charset="utf-8"><style>body
+{
+  font-size:15px;
+  line-height:1.7;
+  overflow-x:hidden;
+
+    background-color: white;
+    border-radius: 3px;
+    border: 3px solid #EEE;
+    box-shadow: inset 0 0 0 1px #CECECE;
+    font-family: Helvetica, arial, freesans, clean, sans-serif;
+    width: 912px;
+    padding: 30px;
+    margin: 2em auto;
+
+    color:#333333;
+}
+
+
+.body-classic{
+  color:#444;
+  font-family:Georgia, Palatino, 'Palatino Linotype', Times, 'Times New Roman', "Hiragino Sans GB", "STXihei", "微软雅黑", serif;
+  font-size:16px;
+  line-height:1.5em;
+  background:#fefefe;
+  width: 45em;
+  margin: 10px auto;
+  padding: 1em;
+  outline: 1300px solid #FAFAFA;
+}
+
+body>:first-child
+{
+  margin-top:0!important;
+}
+
+body>:last-child
+{
+  margin-bottom:0!important;
+}
+
+blockquote,dl,ol,p,pre,table,ul {
+  border: 0;
+  margin: 15px 0;
+  padding: 0;
+}
+
+body a {
+  color: #4183c4;
+  text-decoration: none;
+}
+
+body a:hover {
+  text-decoration: underline;
+}
+
+body a.absent
+{
+  color:#c00;
+}
+
+body a.anchor
+{
+  display:block;
+  padding-left:30px;
+  margin-left:-30px;
+  cursor:pointer;
+  position:absolute;
+  top:0;
+  left:0;
+  bottom:0
+}
+
+/*h4,h5,h6{ font-weight: bold; }*/
+
+.octicon{
+  font:normal normal 16px sans-serif;
+  width: 1em;
+  height: 1em;
+  line-height:1;
+  display:inline-block;
+  text-decoration:none;
+  -webkit-font-smoothing:antialiased
+}
+
+.octicon-link {
+  background: url("data:image/svg+xml;utf8,<?xml version='1.0' standalone='no'?> <!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'> <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 832'> <metadata>Copyright (C) 2013 by GitHub</metadata> <!-- scale(0.01565557729941) --> <path transform='' d='M768 64h-192s-254 0-256 256c0 22 3 43 8 64h137c-11-19-18-41-18-64 0-128 128-128 128-128h192s128 0 128 128-128 128-128 128 0 64-64 128h64s256 0 256-256-256-256-256-256z m-72 192h-137c11 19 18 41 18 64 0 128-128 128-128 128h-192s-128 0-128-128 128-128 128-128-4-65 66-128h-66s-256 0-256 256 256 256 256 256h192s256 0 256-256c0-22-4-44-8-64z'/> </svg>");
+  background-size: contain;
+  background-repeat: no-repeat;
+  background-position: bottom;
+}
+
+.octicon-link:before{
+  content:'\a0';
+}
+
+body h1,body h2,body h3,body h4,body h5,body h6{
+  margin:1em 0 15px;
+  padding:0;
+  font-weight:bold;
+  line-height:1.7;
+  cursor:text;
+  position:relative
+}
+
+body h1 .octicon-link,body h2 .octicon-link,body h3 .octicon-link,body h4 .octicon-link,body h5 .octicon-link,body h6 .octicon-link{
+  display:none;
+  color:#000
+}
+
+body h1:hover a.anchor,body h2:hover a.anchor,body h3:hover a.anchor,body h4:hover a.anchor,body h5:hover a.anchor,body h6:hover a.anchor{
+  text-decoration:none;
+  line-height:1;
+  padding-left:0;
+  margin-left:-22px;
+  top:15%
+}
+
+body h1:hover a.anchor .octicon-link,body h2:hover a.anchor .octicon-link,body h3:hover a.anchor .octicon-link,body h4:hover a.anchor .octicon-link,body h5:hover a.anchor .octicon-link,body h6:hover a.anchor .octicon-link{
+  display:inline-block
+}
+
+body h1 tt,body h1 code,body h2 tt,body h2 code,body h3 tt,body h3 code,body h4 tt,body h4 code,body h5 tt,body h5 code,body h6 tt,body h6 code{
+  font-size:inherit
+}
+
+body h1{
+  font-size:2.5em;
+  border-bottom:1px solid #ddd
+}
+
+body h2{
+  font-size:2em;
+  border-bottom:1px solid #eee
+}
+
+body h3{
+  font-size:1.5em
+}
+
+body h4{
+  font-size:1.2em
+}
+
+body h5{
+  font-size:1em
+}
+
+body h6{
+  color:#777;
+  font-size:1em
+}
+
+body p,body blockquote,body ul,body ol,body dl,body table,body pre{
+  margin:15px 0
+}
+
+body h1 tt,body h1 code,body h2 tt,body h2 code,body h3 tt,body h3 code,body h4 tt,body h4 code,body h5 tt,body h5 code,body h6 tt,body h6 code
+{
+  font-size:inherit;
+}
+
+
+body hr
+{
+  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAECAYAAACtBE5DAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OENDRjNBN0E2NTZBMTFFMEI3QjRBODM4NzJDMjlGNDgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OENDRjNBN0I2NTZBMTFFMEI3QjRBODM4NzJDMjlGNDgiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4Q0NGM0E3ODY1NkExMUUwQjdCNEE4Mzg3MkMyOUY0OCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4Q0NGM0E3OTY1NkExMUUwQjdCNEE4Mzg3MkMyOUY0OCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PqqezsUAAAAfSURBVHjaYmRABcYwBiM2QSA4y4hNEKYDQxAEAAIMAHNGAzhkPOlYAAAAAElFTkSuQmCC);
+  background-repeat: repeat-x;
+  /*background:transparent url(http://overblown.net/files/markdown/dirty-shade.png) repeat-x 0 0;*/
+  background-color: transparent;
+  background-position: 0;
+  border:0 none;
+  color:#ccc;
+  height:4px;
+  margin:15px 0;
+  padding:0;
+}
+
+body li p.first
+{
+  display:inline-block;
+}
+
+body ul,body ol
+{
+  padding-left:30px;
+}
+
+body ul.no-list,body ol.no-list
+{
+  list-style-type:none;
+  padding:0;
+}
+
+body ul ul,body ul ol,body ol ol,body ol ul
+{
+  margin-bottom:0;
+  margin-top:0;
+}
+
+body dl
+{
+  padding:0;
+}
+
+body dl dt
+{
+  font-size:14px;
+  font-style:italic;
+  font-weight:700;
+  margin-top:15px;
+  padding:0;
+}
+
+body dl dd
+{
+  margin-bottom:15px;
+  padding:0 15px;
+}
+
+body blockquote
+{
+  border-left:4px solid #DDD;
+  color:#777;
+  padding:0 15px;
+}
+
+body blockquote>:first-child
+{
+  margin-top:0;
+}
+
+body blockquote>:last-child
+{
+  margin-bottom:0;
+}
+
+body table
+{
+  display:block;
+  overflow:auto;
+  width:100%;
+  border-collapse: collapse;
+  border-spacing: 0;
+  padding: 0;
+}
+
+body table th
+{
+  font-weight:700;
+}
+
+body table th,body table td
+{
+  border:1px solid #ddd;
+  padding:6px 13px;
+}
+
+body table tr
+{
+  background-color:#fff;
+  border-top:1px solid #ccc;
+}
+
+body table tr:nth-child(2n)
+{
+  background-color:#f8f8f8;
+}
+
+body img
+{
+  -moz-box-sizing:border-box;
+  box-sizing:border-box;
+  max-width:100%;
+}
+
+body span.frame
+{
+  display:block;
+  overflow:hidden;
+}
+
+body span.frame>span
+{
+  border:1px solid #ddd;
+  display:block;
+  float:left;
+  margin:13px 0 0;
+  overflow:hidden;
+  padding:7px;
+  width:auto;
+}
+
+body span.frame span img
+{
+  display:block;
+  float:left;
+}
+
+body span.frame span span
+{
+  clear:both;
+  color:#333;
+  display:block;
+  padding:5px 0 0;
+}
+
+body span.align-center
+{
+  clear:both;
+  display:block;
+  overflow:hidden;
+}
+
+body span.align-center>span
+{
+  display:block;
+  margin:13px auto 0;
+  overflow:hidden;
+  text-align:center;
+}
+
+body span.align-center span img
+{
+  margin:0 auto;
+  text-align:center;
+}
+
+body span.align-right
+{
+  clear:both;
+  display:block;
+  overflow:hidden;
+}
+
+body span.align-right>span
+{
+  display:block;
+  margin:13px 0 0;
+  overflow:hidden;
+  text-align:right;
+}
+
+body span.align-right span img
+{
+  margin:0;
+  text-align:right;
+}
+
+body span.float-left
+{
+  display:block;
+  float:left;
+  margin-right:13px;
+  overflow:hidden;
+}
+
+body span.float-left span
+{
+  margin:13px 0 0;
+}
+
+body span.float-right
+{
+  display:block;
+  float:right;
+  margin-left:13px;
+  overflow:hidden;
+}
+
+body span.float-right>span
+{
+  display:block;
+  margin:13px auto 0;
+  overflow:hidden;
+  text-align:right;
+}
+
+body code,body tt
+{
+  background-color:#f8f8f8;
+  border:1px solid #ddd;
+  border-radius:3px;
+  margin:0 2px;
+  padding:0 5px;
+}
+
+body code
+{
+  white-space:nowrap;
+}
+
+
+code,pre{
+  font-family:Consolas, "Liberation Mono", Courier, monospace;
+  font-size:12px
+}
+
+body pre>code
+{
+  background:transparent;
+  border:none;
+  margin:0;
+  padding:0;
+  white-space:pre;
+}
+
+body .highlight pre,body pre
+{
+  background-color:#f8f8f8;
+  border:1px solid #ddd;
+  font-size:13px;
+  line-height:19px;
+  overflow:auto;
+  padding:6px 10px;
+  border-radius:3px
+}
+
+body pre code,body pre tt
+{
+  background-color:transparent;
+  border:none;
+  margin:0;
+  padding:0;
+}
+
+body .task-list{
+  list-style-type:none;
+  padding-left:10px
+}
+
+.task-list-item{
+  padding-left:20px
+}
+
+.task-list-item label{
+  font-weight:normal
+}
+
+.task-list-item.enabled label{
+  cursor:pointer
+}
+
+.task-list-item+.task-list-item{
+  margin-top:5px
+}
+
+.task-list-item-checkbox{
+  float:left;
+  margin-left:-20px;
+  margin-top:7px
+}
+
+
+.highlight{
+  background:#ffffff
+}
+
+.highlight .c{
+  color:#999988;
+  font-style:italic
+}
+
+.highlight .err{
+  color:#a61717;
+  background-color:#e3d2d2
+}
+
+.highlight .k{
+  font-weight:bold
+}
+
+.highlight .o{
+  font-weight:bold
+}
+
+.highlight .cm{
+  color:#999988;
+  font-style:italic
+}
+
+.highlight .cp{
+  color:#999999;
+  font-weight:bold
+}
+
+.highlight .c1{
+  color:#999988;
+  font-style:italic
+}
+
+.highlight .cs{
+  color:#999999;
+  font-weight:bold;
+  font-style:italic
+}
+
+.highlight .gd{
+  color:#000000;
+  background-color:#ffdddd
+}
+
+.highlight .gd .x{
+  color:#000000;
+  background-color:#ffaaaa
+}
+
+.highlight .ge{
+  font-style:italic
+}
+
+.highlight .gr{
+  color:#aa0000
+}
+
+.highlight .gh{
+  color:#999999
+}
+
+.highlight .gi{
+  color:#000000;
+  background-color:#ddffdd
+}
+
+.highlight .gi .x{
+  color:#000000;
+  background-color:#aaffaa
+}
+
+.highlight .go{
+  color:#888888
+}
+
+.highlight .gp{
+  color:#555555
+}
+
+.highlight .gs{
+  font-weight:bold
+}
+
+.highlight .gu{
+  color:#800080;
+  font-weight:bold
+}
+
+.highlight .gt{
+  color:#aa0000
+}
+
+.highlight .kc{
+  font-weight:bold
+}
+
+.highlight .kd{
+  font-weight:bold
+}
+
+.highlight .kn{
+  font-weight:bold
+}
+
+.highlight .kp{
+  font-weight:bold
+}
+
+.highlight .kr{
+  font-weight:bold
+}
+
+.highlight .kt{
+  color:#445588;
+  font-weight:bold
+}
+
+.highlight .m{
+  color:#009999
+}
+
+.highlight .s{
+  color:#d14
+}
+
+.highlight .n{
+  color:#333333
+}
+
+.highlight .na{
+  color:#008080
+}
+
+.highlight .nb{
+  color:#0086B3
+}
+
+.highlight .nc{
+  color:#445588;
+  font-weight:bold
+}
+
+.highlight .no{
+  color:#008080
+}
+
+.highlight .ni{
+  color:#800080
+}
+
+.highlight .ne{
+  color:#990000;
+  font-weight:bold
+}
+
+.highlight .nf{
+  color:#990000;
+  font-weight:bold
+}
+
+.highlight .nn{
+  color:#555555
+}
+
+.highlight .nt{
+  color:#000080
+}
+
+.highlight .nv{
+  color:#008080
+}
+
+.highlight .ow{
+  font-weight:bold
+}
+
+.highlight .w{
+  color:#bbbbbb
+}
+
+.highlight .mf{
+  color:#009999
+}
+
+.highlight .mh{
+  color:#009999
+}
+
+.highlight .mi{
+  color:#009999
+}
+
+.highlight .mo{
+  color:#009999
+}
+
+.highlight .sb{
+  color:#d14
+}
+
+.highlight .sc{
+  color:#d14
+}
+
+.highlight .sd{
+  color:#d14
+}
+
+.highlight .s2{
+  color:#d14
+}
+
+.highlight .se{
+  color:#d14
+}
+
+.highlight .sh{
+  color:#d14
+}
+
+.highlight .si{
+  color:#d14
+}
+
+.highlight .sx{
+  color:#d14
+}
+
+.highlight .sr{
+  color:#009926
+}
+
+.highlight .s1{
+  color:#d14
+}
+
+.highlight .ss{
+  color:#990073
+}
+
+.highlight .bp{
+  color:#999999
+}
+
+.highlight .vc{
+  color:#008080
+}
+
+.highlight .vg{
+  color:#008080
+}
+
+.highlight .vi{
+  color:#008080
+}
+
+.highlight .il{
+  color:#009999
+}
+
+.highlight .gc{
+  color:#999;
+  background-color:#EAF2F5
+}
+
+.type-csharp .highlight .k{
+  color:#0000FF
+}
+
+.type-csharp .highlight .kt{
+  color:#0000FF
+}
+
+.type-csharp .highlight .nf{
+  color:#000000;
+  font-weight:normal
+}
+
+.type-csharp .highlight .nc{
+  color:#2B91AF
+}
+
+.type-csharp .highlight .nn{
+  color:#000000
+}
+
+.type-csharp .highlight .s{
+  color:#A31515
+}
+
+.type-csharp .highlight .sc{
+  color:#A31515
+}</style><title>README</title></head><body><h1>
+<a name="search-distribution-census" class="anchor" href="#search-distribution-census"><span class="octicon octicon-link"></span></a>Search Distribution Census</h1>
+
+<h2>
+<a name="summary" class="anchor" href="#summary"><span class="octicon octicon-link"></span></a>Summary</h2>
+
+<p>Understand Firefox UI search element usage.</p>
+
+<h2>
+<a name="author" class="anchor" href="#author"><span class="octicon octicon-link"></span></a>Author:</h2>
+
+<p>Gregg Lind <a href="file:///Users/glind/gits/search-alternatives/search-distribution-census/experiment/mailto:glind@mozilla.com">glind@mozilla.com</a>, Mozilla Stategy and Insights Team</p>
+
+<h2>
+<a name="what-prompted-mozilla-to-run-this-test" class="anchor" href="#what-prompted-mozilla-to-run-this-test"><span class="octicon octicon-link"></span></a>What prompted Mozilla to run this test?</h2>
+
+<p>Mozilla is always interested in understanding more about how users experience our products, and how different features impact the way they're used. Search is a core activity that users perform on our browser, so we want to know more about anything that interferes with good searching.</p>
+
+<p>In particular:</p>
+
+<ul>
+<li>unexpected search defaults</li>
+<li>understanding primary and secondary searches</li>
+<li>what makes people use the URLBAR and SEARCHBAR for searching</li>
+<li>partner code rewrites</li>
+</ul><h2>
+<a name="what-we-are-collecting" class="anchor" href="#what-we-are-collecting"><span class="octicon octicon-link"></span></a>What we are collecting</h2>
+
+<ul>
+<li>Toolbars (enabled or disabled)</li>
+<li>Summarized search events (NO QUERY TERMS).</li>
+<li>Firefox Health Report Data</li>
+<li>Troubleshooting information from "about:support" page.</li>
+<li>A few preferences (search, homepage, distribution id)</li>
+</ul><h2>
+<a name="we-are-not-collecting" class="anchor" href="#we-are-not-collecting"><span class="octicon octicon-link"></span></a>We are NOT collecting</h2>
+
+<ul>
+<li>specific search terms</li>
+<li>behaviour around web advertising</li>
+</ul></body></html>
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/testcases/search-distribution-census/README.md
@@ -0,0 +1,33 @@
+# Search Distribution Census
+
+## Summary
+
+Understand Firefox UI search element usage.
+
+## Author:
+
+Gregg Lind <glind@mozilla.com>, Mozilla Stategy and Insights Team
+
+## What prompted Mozilla to run this test?
+
+Mozilla is always interested in understanding more about how users experience our products, and how different features impact the way they're used. Search is a core activity that users perform on our browser, so we want to know more about anything that interferes with good searching.
+
+In particular:
+
+- unexpected search defaults
+- understanding primary and secondary searches
+- what makes people use the URLBAR and SEARCHBAR for searching
+- partner code rewrites
+
+## What we are collecting
+
+- Toolbars (enabled or disabled)
+- Summarized search events (NO QUERY TERMS).
+- Firefox Health Report Data
+- Troubleshooting information from "about:support" page.
+- A few preferences (search, homepage, distribution id)
+
+## We are NOT collecting
+
+- specific search terms
+- behaviour around web advertising
new file mode 100644
--- /dev/null
+++ b/testcases/search-distribution-census/deploy.txt
@@ -0,0 +1,3 @@
+Deploying the experiment:
+
+- use the usual "testpilotweb" stuff:  index.json, fab push.
\ No newline at end of file
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..85a091482c865c6247f23c95fa25163c8575b3fb
GIT binary patch
literal 7829
zc$|fq1#DeQldX@LnVB(WW{Q0b$IKK{9LLNUGsn!#%*-*z%*@Qp46$GCucw*hN;A`~
zQg3PZSF5$v(q5`k1VKPz0$_j70?n`DfIkKt01_Z4p(@HKEe~XV8wLO%0E!?O*neJu
z|NkwD|09g~JN^rn6P1?+N~owZ$pLTVMn_~pj7(EVAV&J}(TO@`mRa`AJ$oh@IR<ID
zDW_6Mxa1?e-n0~YQyy&0-F$l2eX0|)Yx^sEu>YugOY#f|{LU@#mwMp8)DeD%vV^F(
zoCK4pqm|_tzmEO3OyawqMB@iOT_<L6X#vE=y_L3bI|5zk&p44!()o}DQztUuh}_Q(
z*eo0E!I@C9qo*e1g)Xc#D(EsIT&jH@hygM2ZtGE_aVgh(S*Z^Z15-`dY~UkpKf=A>
z=Bt<((GBwP7H_04?;MF`^RJKQ3P{Rj?Kz!q=Y~jVVC4w;qdk65s}&q}d=d$hwj#$1
zkdMeNHJ;Flt0P_SbxfSrnalnme;S5iDq$Mlur%wi-^gSZdE}~A&tWRU^izIdCWOXK
zv&f+{^qTChIfI*YgS8}5s6o4;`9kg*shod=K9_4S!uU-MaIccr*Fi>#<L<|3URin=
zl#GC`i1Zcpo|cQ<bQ^8^^U4J280F$P={@OFZ(ba#xAa|Cac*dCzfp_kLWv+$%Wm_~
z&-M6awS07hEw@c^?ch?c;hTxRp$&O?`P$LUSQDd-B7AlWNEKR4Ci%t!D-4)ozv7MR
z5D0UAJV)$}T>eKmbtc}CY)Nyp==X4ar6>lajhbpC!6NS29u;UIK!swf7rd4Kzy)S{
zzxDe|=i8O=`_sky>+h!<;WwmAZf%50rh=9qQVjFSJPprgVv9))K<E$RA~j~1Eb7Jt
z-2pPNyQ2{OV3{|y>8>w7`a4!_M=dqx;O<^UrV-7L1*ku6D{nTdJt@rE6ESx=lal&m
zsB8|%qw>rPg&vvKZ5+spu>DA}8x2ph6O4tsT%=5C3Be8Iq26O$BPIKp7-4h`gbh&I
z{(4)I9e;!W;3TpRE=`lV;|n4p{mjpWHdzWiLLJ!#1J6Z6%$@?s>ie9v*d2nZmdaoQ
zwwSu*N+?p)VX>{2aKa$Plwypox-%Gg+P9M5td!<1gz7?M4%55S9I4QvOX~Z1yr*qn
zeygUZ`stIU3$^k&PF^%?C|=&JB(BW}%MZZdEc4`s*N|u}4?bnt=YbxDIcEWcG}<54
zo2x?$w2!&fq2OFztMJ<h-LSL!p9pkLQ~4bc#YlHtfn=g?UYd~@xT8y`!Yql3rx+P#
z*dRu*DJ@(M>D=s=uU<lPc0OgZKUHFHaAx#37;eCUYxeus+|3f3P9%$7f-1Gwc-Le?
zPL_VK`V*E1r%fLmTkwX#@H`3TFZhrgsrT$Bo`6gX9+tV?Dg<;|R7n<h<C7_9kk*_@
zI!sARUxX0+Wh&1M7qU~cAi4-4AStOsa*gjqgdwoQ*#?bX^i?L+v=Z?i@w63d%lU2e
zCmt6+ltHPEmmy}!(aDaK1?^M{nAqR8TtSu8#!BvBna^yR2z88Fb&1ePi**FaU2BaG
z%haecU{6fU$rNOJh{i$!n2-@MT{kb_9^X%v@TNO6ohCqEROxYJm6bfD8L^`gJE<VO
zQ^QrU_LRt?c)rI9FHlN=NlDXzpaOp-;<n``qP>P__{V&nV3RqLFjOe%y2NuV*<>$d
z`~0EcwIYTpqYU=DUp8q_ZkM3)aB+6EKD7jXl+=fDIhmsaD^hW^1Q}iP64mRLX99}T
zH@m(@<2isj6n&sy?`e(Dh;K!TOO<@5Wz_XnJm7N}k%9Tety?b@kAc6YW9v*O9!0Lw
zrV+DR>1Xgrs;x_?j|jUjOPvN!40zp$R2X`5hpADOfrr}Rl?BGtRbtodCqPb+fXGOi
z8xy|EV|AR~tT+TQ0ahcBKdO4jRTT1RG7(r)UsCZjJ1=H#!P?MJzebOIa`hc+3?jP9
zFM6sMeFCN?{%Gv!c3<q918aLr{Y*MnQ6Kq5#Iz23TpKrIiIQReK0(3b!NZ;G!x*bb
zE0@&6>hI-V`r#y4#Ji2%E<_0zGUZX-!Lc@^N3NB=@gVNLZBb8Z8NtY%)r>jxtRTO=
zccm!_X_m_%6&aGZ>19st6J8}uuDPi6vFN7-3`-}N7XTBPSmwS9Hb=O_w9ew0THpG%
zeAS``x_Q;j%}tmK+1jMMSl>|Afr+bAZW-~X9(0agM9D!{+nt1i_m2x%`OiYS5P`Oa
zMD(MmZN%^hlsQ87XGeXwGG)qSAG3}heighf+|QPD7jfg_S8T<vMJ_6obyr1XuhVmB
zeSC3$e|{=_=TX-;{?xA5E--t-d<O4{H)}I6v2Z^!Q^EV~9EWp^qmwmYuHwbfYH)(F
zz}@B!dq;E%b}KCK>OuR_jLBiQ&^mm!YnH(2`MSJyM<XROYr=s@+eJT>%~M<W?g!(S
zr)(i!SJQZolcSi?&>p4rJD`Qbyc^^DvRMb#xfR9aa%f4Dj>@$9Yt0%XS{F<THid<z
z(ZtRHjT;B;%=lP6BnznhOoOlPWJ$A~lYaqdvslbM;MQz|e6SXDy=)bkn6ZC&cHYo%
z&e`B$(~$10Z(*|rbXzLeYhp^+_-65S&C@Ay4QRC-@~($4W5eB4m!#n`X%oS9ZK}TU
z%+>64oA!2{nTYdEZ(?I<`FXswTu*(k>19Cc%KDSeS_OYu>xGX(0;e0(aNflX;8Gvz
zM@7;_yT%xsD2xMZ;oTg_T@_z&gX#7HB?0-2k_#XxkvYi~WywZTlCa5SgR7l~$TyE|
zaP#x=$*QvA)1^}T!y~PV$4pW~VO_II80lBjGXC=k8N=K5#zSQI5q>qeb9Fcc#to7-
zfhc;Sk?6ZL?IUZo6pONmcm09VHqx_`y|o`u&Xwg^)}wnP*=&Fek+&5MY!Gujf){ue
z*BbTX>f}nooJwmguD=3_*i%tYV~x)}r?p06hWbSfcku&oLeRzX0VkCY=}JfD!pme_
zl=`#f-Do%JX^&BXlH=9Q$D@upi+g?dyUbN(_bBGO^PM}Vrnw>Ew)>NZG3%VB4l8H<
zG3P3}X^6L{qD?3dipeyqnG?eNhlu&%QQ@eMEweVl6_*b<HwAaK;4iWi1c{dpb`?!k
z-5Lr_o|75f8(P%6K`O4%?q`*&!yDX^GB)$yPLP8~f;HNwEE?d~?l?9woHQPKVmvku
zEf0NB^zOd)K@z~-KCj#oqfG0tEL~jF)eIWdD{Wozq~EQO=_cC<yc6eiYSEdVooJK`
z4Q1TVr0=x=`CDu{-{t4uq9YLFx~uiQf4KEgl<AjQ<bBC-o(mSOsHVqlpVyZh3vSXb
zQ$KOE;BI%evKsAJOY_()Z5TZnSTcAs;KXmGa?w=})(FwyYtavYqS8lgS@gG0LCKgh
zkHA7@X=OMom-AZ<NbQ~IPG_CTp(|2h*1S4nj}5%K8wuiD5o`5Ha9Iw@=sH}R){`&X
zEDd)KRg{|vkZ==SH7q{A$c81rp_Z^twE30ZrtwPIHH10rtJ27cKFGkJE_)2a3Va=9
zU5e;^5TR<EYAjJuflN;$XtX`Cq(rqjFj+>9R~!SrP_fE+g5J)E^I=+bYGZhNu&Esr
zpcnI(&)E)i*Y{Ft+0c0ltkTbN#7D|-ndvO#V+HFbp#t;CEx6Kf-1nvpV@WQ+3qO0b
zAti5K@_q31W>{aU>~~MzQja4a@y0%uSM2YtoX{BB%9w;(%Iiz>Khg<I7lse-ZOvVA
z&SBe*V@m#3WP;sN!^lp>tj+av<HG=Xrz|ywC=@XZoL%O0Ye1>9K|udo`Lg~xg^tMv
zWQw*5GM(1A_IBEf<Jj)n?2Szh=7po?qZ~RBdK^^T%2G&h#Yepeg%9^=Rf}f>{c98m
zl!lWgV9b$rr-UDoGdc&juO{7+b#k~2tIrVnY`B3h(eLhq1PzPb!7%rTh-5@hzI`t%
zy>mw8BiL@Zc7=`kXpOAtVlOab%*vp)YDsYp=DLMe?0tUZbW={sXRuBy2uX(BF|dBS
z{Kt-i_XHxI8j7(?uXs2=2fvFtnWio@4%f@8sW)3&>wY8V)r*kvH{|@iAW`&Q_vIo3
z%5zuALaDSfq(YLIBS{ZO%i{B79xX?hZr_?ae>97iLC#LKupz0njP<6%?Xl}jlC5j4
z2sKF%O6%5hW*F|7%6FJlqycEU>MYSB7f0Ejp2D+EmIoaE_~Wa2y(6RunY?2eYZ$2X
zOF~zJbHMOhBTYr&%GF-n^<@}rEU@X2QZ0yZn`=u08ei6ntftm%1))9ThFT2s)`J3%
z`^d<xdtF*>Nmz{gTfO4f_;#*-xN6~@yKA&P`*@H&t%)DK?_Nc_*eAK*kJQ8%4ozI}
z3J@w?b-gB3A(`1$B%cbiUsK6b6!oxG`uvQ7P1%dZ-&}1R!<<W-6x8s#Z=yG)(M|c$
z#*UdEZ7Zc&O!_on=r8G#RLb5zacsMRlQYpB3_nSjGsLx39v?HkSuWh4&Klzk@<L11
zdC5bJt#y~FIw$dzoW^GvACUB&(`u`H%BH$e_;E&qA-H_B4wPJK%A+%QJXJ#F+7*s<
z_yDXXBqFx*#dSAXg2<5^E<KUm@Vwn==u19omFz~F9C@vSA%|9p@xB*%{haH@hvVj(
zy*GQ)Cs@CkUGR08_4VtslH$FR;<=LIx{_k9U!YhGZT=dJ>3rhOOfE<k^oj1&c}2|S
z@qUgNa(!DV=z@6Al^|brqbT=RyjP<`GVfYgu^?(~LV%qYp|Q{tFUN~P<zlz|&%(hr
zp5m4|0qWXB@C?@XQ>dw315B-cL)34$y}X2#J5f7x3&^)8Fwb)kzjj4B?Xt6o554&(
zFV2#s7|(oZVWb}U4c$AEB6fZ)8{in{5QTU4-Lk+6!itUgi?XiKZBNrQsh?@LBdbKr
z&Bg8$EIRZhNNXm*nYnoWVtuquCH85e;lF%=2-5WHl$4lNuh58J2CKX$UO?IEyDZ*I
z$i1!^Yh+^z>KqNc5YUI_@BwwISvcz?wOk&t;dC&J=`*x*#Fxc^!YwUhs)~fVGfkwb
zS5XA`GV8uDt^ltO-srZgp1lN-Hg<U=f+VT+6@)!~?3{+U^~l=}$51Fcz`#j)p&@WQ
zI5*=JRk8!{)6roO#WHpAOKFc+{q_cqKegnZlVFjHLqyW=9O@x0y_CF;NjS>+*53pL
z5n-A~e3xeM(%svk8`9ff6{Is<8!3>%VLSdMif2JsmO8k2Kj=8Dmp_ljf^1gjUu({k
zMDR@NWeqQWyBZJe#bl4mWw>T~)6~IbMJGQR!=2<BZ<bQW!U<6{Z1$_qetwq2PTiq=
zrmUTs+63CE2bu%cR;2JlZ}?)3Cw7z2H_Ansy2a@(-`#JKd(h%Z<f+xY@ol{297x9?
zuq*!uhHsSjDB7=h#ktAHz=|$W5iHiy?@GTIucQ#c1s8R<6QUmZh<pH9%Ue1V0;R=*
z5{Wx#0R!U#B0+TlrhY=0_?e6NqT{QdSMOS|AMvaupbKY)0xoB!;kvsCzf+jEXd;M^
z`}xqdR*w5{pw8CO4l`4uBjSWp6t`xB`S*zSV!773D5KRu+Y-5tPk(jS>hMntr?rJ>
z_{w#Oliz<I+9^V)yj{vR<x!vS>suI^Cy58aVwc*iK}6892oX0SH~KS$dqVCzRGi+J
zl?fnX>4OYchV11kq5+4`IV`X~7r_v|WaMlI<1%kNQ_Ps$paxYGI}@$2VkdP~Xw{_W
z?Nj^w0VH&VcBfrWW*1?|B^(xYi=04*V4y(lt!cGkY+9YS)DprmRZO+y;}AYA^sEr#
zw&!6MoVG3gewrz30uS&rzc61UZ~x}g#1%2dAp!(g=X>lS0dlxw#-l$2={=yzC5kwx
z;tf`?@p-K~$<hx4C7Bx%NC0sM_d)_S+Y2UdK%4^vsCR7f$O^y`V|#A}9YeAqXI!I}
zJv$^BW{C}6=5X~_iQY0V&67?*A*Da_#xp}m8=*mGh;DZU9Re#bg#&?28JoD=1>o<+
zNn$W}=On_mu_!4bG^$~8C{JJD&;+TW^%N7Uk~MTU?^u66`-#{;Nzd9lIc$|@?Ywi|
zb^cRvfvrEi<V6DjK%D<u#RcxaD=t>XpHznAS4B|UUp~m#!b<gc077GBeIO~ZzhLJO
zjyNw_8@lMUhvRh!Rei&S-rFrWQEM-Fj#vNLaeTNOa446OYnNEr8-y9UeH*WChP!wX
zYV_ISimbNcDCugtSz~!sX)&)LNz^hQvpK;Hno0RIy^|qyLvK0p9LYz2g*b}D-<{oa
z;$|3W!{oO5Jy&g)_AJuzX9iN?nNfDbW%P=m3!&MqHE!N4N%G+!4XB3QH#gw1ofcX0
zvFBHBt4KfaiU)FBQ-*{u+{(;W?>i`o+{qf;J3Xc?ayw#CW{|2%<wUiQWn{L#oJ-C>
z5p@-IAYk7(D5eaSS`4>zVhyJr*z?WnQj<<8fku7GQf`(n@<N5R&d!VUu}TGWLH(Mg
zWXoZuBJ0136ZVv)S+^!C7{4p8RjQ1@k+P_CqWdco%^Y<!qaenUL+x0rr^SbazDe0-
zy{EijYjz+SML3P~TV89l6|6F^&dCBXm9`LFu&=)OTyxFDa~)0E-mi&1HVO^yu)Vno
zFVXWD!p-5)&|ry%=%gV6<8QJgOe~HXl^5L_WL@PMC!iqDuSPAWIpA^@7}qbn@b?Io
z>ygjKVY>iVk6hujv^{<84F(eR0|!hJt{3&@U{4TUMwH`Nj8nV|+^3HR>GHu#sW=A&
zGY0HOl#=#%)5X;ohf^cAq6p<fkPnp1a!@Yg_o^m~g`)MAh3Qc^lRn?(+ml`&>)#Zd
zMT`qs=R`4#NH~0z`PT8*NT79^1*N5RZJ<(M`raV^xp=8YSQKL50KgT*|90`<e~0lG
zTT2@^CP!CCqQPz?A5v7vu1+;e*D|QfMzruSBh>FMI5qAV2fPS6l{WPJx1@^%7mhW>
zBtdZ0uPeP`K`Nn*@nu4~MB<D<l>FM7iK1CH@*u3S-DKf^j)BVqhpF&eMB}fDW6-~j
zLG(Kuz8KnnHf1z6b8xgbGjeh?v$1CU{KeYA$$`n-Awk2+hMX7uZM>?O^bEQ-pA2sd
zr`a?LDpo=UAZp*5x597y1Ie{=<-BGM%sKwuOU-#^&6ur4P=eg5bzPTPAz=mQvKb2+
zn|_8Y*f*4Cl|BP-o?>~I5{z9A-nwVdB9B<ypd(N$EJ4Vg{H07YfV0`h9nId%6(JL%
z8JQ0(e4&d}^(bdEWvwR?FM3#vGJMV`L5sLsevuJ9yT9SPTUdanGG2hJpSBkDW!7#N
zgJp$W>zVVm6O4?_GHqSN@-moiy+y-)-`6^<>7UwWWUcC7O`}w0ZGKo_6Etl~o1;9T
zy^DE28Bv|e<DP490@zsUpA4xfI>tMDWCw!tx)Rj+dz`uxhDI-oHQ{&T8r|3Y0?u0I
z*P=48#a~kf0-ex=@w3B+gk5wDK_IRg?VQF^L1ijk?4<41=z=G>Z$${VM*_-WwUkz~
z5nq<!Tfll!keiYMUjk#3Fq=kS$xg=fD((^3Jy6*{H~SJyzJjPZXuz}_H7hS|@t$Wk
z>+BHExJ)8+!{iECB^$N12=WTGi}P!2g^6x2BuAbOt#A2<%NAmKvPNIxwr&l13CGTh
zvJ&f_4xLYFAJ=mQO_SglxVf-uYDIfzG>I;UoyU#y(XVJ0XiMosTsyt_DZReX2D7r&
z@$B;@&5$4$#qGI1cI0=afkw2@3F}x?r42)pE;%}B(BdngXByfh#?k8%$QrrA$c-($
z^);#$B-&xl?l%|ScC8_!RFcPv>ZS<2GMI=h8j^LwUE=$gH1+krHHcz=r&L?!I!-0f
zm^J+gym6LaIFFl#p<W8I2sc!=A(G&Dhkx-q`C9IHgY;qPx`Dn8N^%*8gNdg1@<x!3
z1?=rWTTynvzGBcz*2#XJ=lHD?%yh3DBhl7akH-X;++iF6A`4nlO!+B)=Ug8SBO@UB
z=|ZAZkmN2HCC|Vj4tGsCV$sz;%<yC*0#>D#((u{GJPQ?<V?Qf=6Z?Z@#r-A6_y~sU
z=n!)>o}=+*xEIh|m3t@_D;G(3N-y3F$mN)W;mDU!rqUi)6s*spQrN^o$k=}~g&Oor
z0l^p);F12TXXGQO((h!`f5sQ4sWS;?fy6Je6%=b|ZL`E4e5an3kwI1>GZp9%g^bID
zBF-r=St%4O(eC_7Gvl-+bZRRjQNPZ!1G(~7WPiahLqoQ;-c0lRc7cg~Db4V@37fdp
z<B8w0>Haj`Q~7t6koED(t^>6RG=3?{<E(7?SW&ZMX<>IrO89`#l5muB#peBjCtgk_
z#akp~q$5@IX*3vR&ed~>#(GawYqv)dF#^lT#cg~^Q!`?u{ttF(W=Dbt4IP*oOSBR$
zWSAFok=TMp1U>ADh1vz$EF)y<WMM5d&9u$Gn67aeQjPpl04*>&g<qRZXSsFl$F>2j
z3H_9DT$h%TIFo_n)iqt|Hb8evviHio&QjZTzaPci8D9x9AG}v9SrjEN2p&u<9^uCQ
z9bWH($7E<vgbup6;nH<kTw*Ta4`9#ybfM>G4v_iK_d%+c!2-c1Rrh?z2|Cd_0-gqQ
z?aOw8BF3g15c(|<H{Y|kxAym;`3l(WStF2N&w^y1uOy%QE>7g@4vb!MZayN&ZvQ~T
zP0TmW?EQIH`B8-BmB5ZfKdhD9j`pmVgz*t}(G(I3F>GQp*qkF>xGm0fn_@_qKZ}Q`
z{)G8uSP3g?J38jz03xS1)LlItuSTGQv57k&e)_sT$6rtBmG*^uY#IYK8!l>}*ij=g
z+?vC)*Ej$#hv#~W!wl{Ns2NscAUmL}-z7S?v|!3|-=ytP8fJ$53x^P`EfsRW1`ldT
zuN)>Z4!R#;0R<%9<*LN0R#;{bZ5APe10@%NuD29j1%=ds$~vN$DAva#)C!g;q@0e^
z2Y>SJijk{>s#TCPEtTQYm)pZQ^mGAECGq756KWq6URP|BZm9<A5Nyq@YL_TgUf}(0
z0bRh(3WY{|&_gPw>ey#Mp>E3liibquTmbHVj>9Av18Mion`lkn)i}(nNV!JG1KXpp
z7sD%=9T!dJ0YqgXu^J|d@*;6XG|9rBT_g9EjE}KvHIm>KvD=p~Y{$e26M0n?pA-Ik
zen{>dR#w9GVE^_Ao(wAvJ<s*l&bo4_F55_<N*zBSvMzKLla`l0w>Eo95Cj(#D&X9*
zsnTN1jaSPPw!U4ZH&OR+y^N1}MDQGbYj&b1^5r8%?vzkCJ4NP`bRi$vN2&=ky)7Cq
zyB*T!MP(bBqODfwfiy;H8_IbL`DFp&X$slNGsFlSnve92L0*Kdj5D+un?(o5kkJPK
z@4%%@7Li_D)__ChpBiZG@w5@@qjsmcPs0ZZ)#ok4Mq_x1PGo{bMd~6HFh-tRkr)^r
zFV3bqR;5tVCC_(GH`&`C2{+Iqw$-Le^F^2n;=v@>MBh4NK2W{-@kJu>gf-jMw0HKp
z1k&(<GmjA)@0E$g@h+b}!k_4B4<kEDe<8JB46rqAG}lmH6-Tlo85#3#)3C7FnM|8I
z2yEB-)_FD8wGx~(n2>l^uM0dEb6GW#)MO%XVsr1>W$&Ts9um;1(l~b3kQ)2&;L3cf
zeD)uQ>tKpvk^}<)@T2|nhX(`41pM981phCO3kmpp{M8=)H~MF*67w%i@PBBI{+Zz)
zpYx~nM))g3>)#E|e}jKoC%C^rM)W^?`oFP1tq%NOSRv-0F6&S3A0zbV2PFDi4(tE0
WMT#IO=zlgs|DLvB007E=`2PnSzi-3<
new file mode 100644
--- /dev/null
+++ b/testcases/search-distribution-census/search-distribution-census.js
@@ -0,0 +1,133 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+/*jshint forin:true, noarg:false, noempty:true, eqeqeq:true, bitwise:true,
+  strict:true, undef:true, curly:false, browser:true,
+  unused:true,
+  indent:2, maxerr:50, devel:true, node:true, boss:true, white:true,
+  globalstrict:true, nomen:false, newcap:true, moz: true */
+
+
+dump("starting search-distribution-census\n");
+
+BaseClasses = require("study_base_classes.js");
+
+// Configure throttling
+const LOCALE_REGEX = "";
+
+const RANDOM_DEPLOY_PREFIX = "extensions.testpilot.deploymentRandomizer";
+const RANDOM = "search-distribution-census";
+// Configure the Installer
+const ADDON_ID = "search-distribution-census@s-team.mozilla.com";
+const ADDON_URL = "https://testpilot.mozillalabs.com/addons/search-distribution-census.xpi"; //CHANGE TO PROPER HOST
+
+let modules = {};
+Cu.import("resource://gre/modules/AddonManager.jsm", modules);
+Cu.import("resource://gre/modules/Services.jsm", modules);
+let {AddonManager, Services} = modules;
+
+exports.experimentInfo = {
+  testId: "search-distribution-census@s-team.mozilla.com",
+  testName: "Search Distibution Census",
+  testInfoUrl: "https://testpilot.mozillalabs.com/testcases/search-distribution-census/README.html", //CHANGE TO INFO PAGE
+  summary: "Understand Firefox UI search element usage.",
+  versionNumber: 1,
+  duration: 0.0001, //CHANGE TO NUMBER OF DESIRED DAYS
+  minTPVersion: "1.2.3",
+  minFXVersion: "23.0", //must have fhr!!!
+  optInRequired: false,
+
+  randomDeployment: {
+    minRoll: 0,
+    maxRoll: 0.2,
+    rolloutCode: RANDOM
+  },
+
+  runOrNotFunc: function () {
+    let tid = exports.experimentInfo.testId;
+    dump(tid + " run or not?\n");
+    // Only run if there's no other study running
+    if (studyMutex.checkConflicted(ADDON_ID)) {
+      return false;
+    }
+    let good = true;
+
+    // Target appropriate locale
+    /*
+    let locale = Services.prefs.getCharPref("general.useragent.locale");
+    if (!new RegExp("^" + LOCALE_REGEX, "i").test(locale)) {
+      return false;
+    }
+
+    let rd = Services.prefs.getCharPref(RANDOM_DEPLOY_PREFIX + '.' + RANDOM);
+    dump("random deploy is: " + 1 * rd + "\n");
+    dump("locale is: " + locale + '\n' );
+
+    let good = false;
+    if (locale.toLowerCase().search('de') === 0) {
+      good = (0 <= rd && rd <= 20);  // 30%, smaller sample in DE
+    } else {
+      good = (5 <= rd && rd <= 10); // random deploy, 5 additional! %
+    }
+
+    dump(rd + " is good? " + good + " locale: " + locale + "\n");
+    */
+    // Must be good to run
+    dump(tid + " is good? " + good + "\n");
+    return good;
+  },
+
+  // Wrap runOrNotFunc for newer versions of Test Pilot
+  filter: function (cb) {
+    cb(exports.experimentInfo.runOrNotFunc());
+  },
+};
+
+// Prepare to check and claim the study mutex
+let studyMutex = new BaseClasses.CurrentStudyMutex(ADDON_ID);
+
+// Define a data store as empty as possible
+exports.dataStoreInfo = {
+  fileName: "testpilot_" + exports.experimentInfo.testId + "_empty.sqlite",
+  tableName: "empty",
+  columns: [{
+    property: "empty",
+    type: BaseClasses.TYPE_STRING,
+    displayName: "empty"
+  }]
+};
+
+// Define a handler that just installs an add-on
+function Installer() Installer.baseConstructor.call(this, null)
+BaseClasses.extend(Installer, BaseClasses.GenericGlobalObserver);
+exports.handlers = new Installer();
+Installer.prototype.onExperimentStartup = function (store) {
+  Installer.superClass.onExperimentStartup.call(this, store);
+
+  // Claim the current study
+  studyMutex.claimExclusive(ADDON_ID);
+
+  // Don't use BaseClasses.AddonController, which has different
+  // assumptions!
+  AddonManager.getAllAddons(function (addons) {
+    let installed = false;
+    addons.forEach(function ({id}) {
+      // Remember that it was already installed
+      if (id === ADDON_ID) installed = true;
+    });
+    if (!installed) {
+      AddonManager.getInstallForURL(ADDON_URL, function (install) {
+        install.install();
+      }, "application/x-xpinstall");
+    }
+  });
+};
+
+// Define an empty web content as there's no data to show
+function NoData() NoData.baseConstructor.call(this, exports.experimentInfo)
+BaseClasses.extend(NoData, BaseClasses.GenericWebContent);
+NoData.prototype.__defineGetter__("dataCanvas", function () "");
+exports.webContent = new NoData();
+
+