diff --git a/DataQuality/DQDefects/python/data/attribution.txt b/DataQuality/DQDefects/python/data/attribution.txt
deleted file mode 100644
index d0dc37f6aedd2b22a8efaff83767ea2526fa3e22..0000000000000000000000000000000000000000
--- a/DataQuality/DQDefects/python/data/attribution.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-Woofunction: (user icons)
-    http://www.woothemes.com/2009/09/woofunction-178-amazing-web-design-icons/
-
-Bricks and traffic lights:
-    http://www.fatcow.com/free-icons
-    
-Robot: 
-    http://www.iconshock.com/
diff --git a/DataQuality/DQDefects/python/data/brick.png b/DataQuality/DQDefects/python/data/brick.png
deleted file mode 100644
index b67b1b461e051cfa68850b7722a11d392e0734a4..0000000000000000000000000000000000000000
Binary files a/DataQuality/DQDefects/python/data/brick.png and /dev/null differ
diff --git a/DataQuality/DQDefects/python/data/bricks.png b/DataQuality/DQDefects/python/data/bricks.png
deleted file mode 100644
index a453ca0f5cb947a87492f7d76531a656cd1c58b8..0000000000000000000000000000000000000000
Binary files a/DataQuality/DQDefects/python/data/bricks.png and /dev/null differ
diff --git a/DataQuality/DQDefects/python/data/jquery.ba-hashchange.js b/DataQuality/DQDefects/python/data/jquery.ba-hashchange.js
deleted file mode 100644
index 47105f4abcf1ff07d21229fe868896cafa228d43..0000000000000000000000000000000000000000
--- a/DataQuality/DQDefects/python/data/jquery.ba-hashchange.js
+++ /dev/null
@@ -1,390 +0,0 @@
-/*!
- * jQuery hashchange event - v1.3 - 7/21/2010
- * http://benalman.com/projects/jquery-hashchange-plugin/
- * 
- * Copyright (c) 2010 "Cowboy" Ben Alman
- * Dual licensed under the MIT and GPL licenses.
- * http://benalman.com/about/license/
- */
-
-// Script: jQuery hashchange event
-//
-// *Version: 1.3, Last updated: 7/21/2010*
-// 
-// Project Home - http://benalman.com/projects/jquery-hashchange-plugin/
-// GitHub       - http://github.com/cowboy/jquery-hashchange/
-// Source       - http://github.com/cowboy/jquery-hashchange/raw/master/jquery.ba-hashchange.js
-// (Minified)   - http://github.com/cowboy/jquery-hashchange/raw/master/jquery.ba-hashchange.min.js (0.8kb gzipped)
-// 
-// About: License
-// 
-// Copyright (c) 2010 "Cowboy" Ben Alman,
-// Dual licensed under the MIT and GPL licenses.
-// http://benalman.com/about/license/
-// 
-// About: Examples
-// 
-// These working examples, complete with fully commented code, illustrate a few
-// ways in which this plugin can be used.
-// 
-// hashchange event - http://benalman.com/code/projects/jquery-hashchange/examples/hashchange/
-// document.domain - http://benalman.com/code/projects/jquery-hashchange/examples/document_domain/
-// 
-// About: Support and Testing
-// 
-// Information about what version or versions of jQuery this plugin has been
-// tested with, what browsers it has been tested in, and where the unit tests
-// reside (so you can test it yourself).
-// 
-// jQuery Versions - 1.2.6, 1.3.2, 1.4.1, 1.4.2
-// Browsers Tested - Internet Explorer 6-8, Firefox 2-4, Chrome 5-6, Safari 3.2-5,
-//                   Opera 9.6-10.60, iPhone 3.1, Android 1.6-2.2, BlackBerry 4.6-5.
-// Unit Tests      - http://benalman.com/code/projects/jquery-hashchange/unit/
-// 
-// About: Known issues
-// 
-// While this jQuery hashchange event implementation is quite stable and
-// robust, there are a few unfortunate browser bugs surrounding expected
-// hashchange event-based behaviors, independent of any JavaScript
-// window.onhashchange abstraction. See the following examples for more
-// information:
-// 
-// Chrome: Back Button - http://benalman.com/code/projects/jquery-hashchange/examples/bug-chrome-back-button/
-// Firefox: Remote XMLHttpRequest - http://benalman.com/code/projects/jquery-hashchange/examples/bug-firefox-remote-xhr/
-// WebKit: Back Button in an Iframe - http://benalman.com/code/projects/jquery-hashchange/examples/bug-webkit-hash-iframe/
-// Safari: Back Button from a different domain - http://benalman.com/code/projects/jquery-hashchange/examples/bug-safari-back-from-diff-domain/
-// 
-// Also note that should a browser natively support the window.onhashchange 
-// event, but not report that it does, the fallback polling loop will be used.
-// 
-// About: Release History
-// 
-// 1.3   - (7/21/2010) Reorganized IE6/7 Iframe code to make it more
-//         "removable" for mobile-only development. Added IE6/7 document.title
-//         support. Attempted to make Iframe as hidden as possible by using
-//         techniques from http://www.paciellogroup.com/blog/?p=604. Added 
-//         support for the "shortcut" format $(window).hashchange( fn ) and
-//         $(window).hashchange() like jQuery provides for built-in events.
-//         Renamed jQuery.hashchangeDelay to <jQuery.fn.hashchange.delay> and
-//         lowered its default value to 50. Added <jQuery.fn.hashchange.domain>
-//         and <jQuery.fn.hashchange.src> properties plus document-domain.html
-//         file to address access denied issues when setting document.domain in
-//         IE6/7.
-// 1.2   - (2/11/2010) Fixed a bug where coming back to a page using this plugin
-//         from a page on another domain would cause an error in Safari 4. Also,
-//         IE6/7 Iframe is now inserted after the body (this actually works),
-//         which prevents the page from scrolling when the event is first bound.
-//         Event can also now be bound before DOM ready, but it won't be usable
-//         before then in IE6/7.
-// 1.1   - (1/21/2010) Incorporated document.documentMode test to fix IE8 bug
-//         where browser version is incorrectly reported as 8.0, despite
-//         inclusion of the X-UA-Compatible IE=EmulateIE7 meta tag.
-// 1.0   - (1/9/2010) Initial Release. Broke out the jQuery BBQ event.special
-//         window.onhashchange functionality into a separate plugin for users
-//         who want just the basic event & back button support, without all the
-//         extra awesomeness that BBQ provides. This plugin will be included as
-//         part of jQuery BBQ, but also be available separately.
-
-(function($,window,undefined){
-  '$:nomunge'; // Used by YUI compressor.
-  
-  // Reused string.
-  var str_hashchange = 'hashchange',
-    
-    // Method / object references.
-    doc = document,
-    fake_onhashchange,
-    special = $.event.special,
-    
-    // Does the browser support window.onhashchange? Note that IE8 running in
-    // IE7 compatibility mode reports true for 'onhashchange' in window, even
-    // though the event isn't supported, so also test document.documentMode.
-    doc_mode = doc.documentMode,
-    supports_onhashchange = 'on' + str_hashchange in window && ( doc_mode === undefined || doc_mode > 7 );
-  
-  // Get location.hash (or what you'd expect location.hash to be) sans any
-  // leading #. Thanks for making this necessary, Firefox!
-  function get_fragment( url ) {
-    url = url || location.href;
-    return '#' + url.replace( /^[^#]*#?(.*)$/, '$1' );
-  };
-  
-  // Method: jQuery.fn.hashchange
-  // 
-  // Bind a handler to the window.onhashchange event or trigger all bound
-  // window.onhashchange event handlers. This behavior is consistent with
-  // jQuery's built-in event handlers.
-  // 
-  // Usage:
-  // 
-  // > jQuery(window).hashchange( [ handler ] );
-  // 
-  // Arguments:
-  // 
-  //  handler - (Function) Optional handler to be bound to the hashchange
-  //    event. This is a "shortcut" for the more verbose form:
-  //    jQuery(window).bind( 'hashchange', handler ). If handler is omitted,
-  //    all bound window.onhashchange event handlers will be triggered. This
-  //    is a shortcut for the more verbose
-  //    jQuery(window).trigger( 'hashchange' ). These forms are described in
-  //    the <hashchange event> section.
-  // 
-  // Returns:
-  // 
-  //  (jQuery) The initial jQuery collection of elements.
-  
-  // Allow the "shortcut" format $(elem).hashchange( fn ) for binding and
-  // $(elem).hashchange() for triggering, like jQuery does for built-in events.
-  $.fn[ str_hashchange ] = function( fn ) {
-    return fn ? this.bind( str_hashchange, fn ) : this.trigger( str_hashchange );
-  };
-  
-  // Property: jQuery.fn.hashchange.delay
-  // 
-  // The numeric interval (in milliseconds) at which the <hashchange event>
-  // polling loop executes. Defaults to 50.
-  
-  // Property: jQuery.fn.hashchange.domain
-  // 
-  // If you're setting document.domain in your JavaScript, and you want hash
-  // history to work in IE6/7, not only must this property be set, but you must
-  // also set document.domain BEFORE jQuery is loaded into the page. This
-  // property is only applicable if you are supporting IE6/7 (or IE8 operating
-  // in "IE7 compatibility" mode).
-  // 
-  // In addition, the <jQuery.fn.hashchange.src> property must be set to the
-  // path of the included "document-domain.html" file, which can be renamed or
-  // modified if necessary (note that the document.domain specified must be the
-  // same in both your main JavaScript as well as in this file).
-  // 
-  // Usage:
-  // 
-  // jQuery.fn.hashchange.domain = document.domain;
-  
-  // Property: jQuery.fn.hashchange.src
-  // 
-  // If, for some reason, you need to specify an Iframe src file (for example,
-  // when setting document.domain as in <jQuery.fn.hashchange.domain>), you can
-  // do so using this property. Note that when using this property, history
-  // won't be recorded in IE6/7 until the Iframe src file loads. This property
-  // is only applicable if you are supporting IE6/7 (or IE8 operating in "IE7
-  // compatibility" mode).
-  // 
-  // Usage:
-  // 
-  // jQuery.fn.hashchange.src = 'path/to/file.html';
-  
-  $.fn[ str_hashchange ].delay = 50;
-  /*
-  $.fn[ str_hashchange ].domain = null;
-  $.fn[ str_hashchange ].src = null;
-  */
-  
-  // Event: hashchange event
-  // 
-  // Fired when location.hash changes. In browsers that support it, the native
-  // HTML5 window.onhashchange event is used, otherwise a polling loop is
-  // initialized, running every <jQuery.fn.hashchange.delay> milliseconds to
-  // see if the hash has changed. In IE6/7 (and IE8 operating in "IE7
-  // compatibility" mode), a hidden Iframe is created to allow the back button
-  // and hash-based history to work.
-  // 
-  // Usage as described in <jQuery.fn.hashchange>:
-  // 
-  // > // Bind an event handler.
-  // > jQuery(window).hashchange( function(e) {
-  // >   var hash = location.hash;
-  // >   ...
-  // > });
-  // > 
-  // > // Manually trigger the event handler.
-  // > jQuery(window).hashchange();
-  // 
-  // A more verbose usage that allows for event namespacing:
-  // 
-  // > // Bind an event handler.
-  // > jQuery(window).bind( 'hashchange', function(e) {
-  // >   var hash = location.hash;
-  // >   ...
-  // > });
-  // > 
-  // > // Manually trigger the event handler.
-  // > jQuery(window).trigger( 'hashchange' );
-  // 
-  // Additional Notes:
-  // 
-  // * The polling loop and Iframe are not created until at least one handler
-  //   is actually bound to the 'hashchange' event.
-  // * If you need the bound handler(s) to execute immediately, in cases where
-  //   a location.hash exists on page load, via bookmark or page refresh for
-  //   example, use jQuery(window).hashchange() or the more verbose 
-  //   jQuery(window).trigger( 'hashchange' ).
-  // * The event can be bound before DOM ready, but since it won't be usable
-  //   before then in IE6/7 (due to the necessary Iframe), recommended usage is
-  //   to bind it inside a DOM ready handler.
-  
-  // Override existing $.event.special.hashchange methods (allowing this plugin
-  // to be defined after jQuery BBQ in BBQ's source code).
-  special[ str_hashchange ] = $.extend( special[ str_hashchange ], {
-    
-    // Called only when the first 'hashchange' event is bound to window.
-    setup: function() {
-      // If window.onhashchange is supported natively, there's nothing to do..
-      if ( supports_onhashchange ) { return false; }
-      
-      // Otherwise, we need to create our own. And we don't want to call this
-      // until the user binds to the event, just in case they never do, since it
-      // will create a polling loop and possibly even a hidden Iframe.
-      $( fake_onhashchange.start );
-    },
-    
-    // Called only when the last 'hashchange' event is unbound from window.
-    teardown: function() {
-      // If window.onhashchange is supported natively, there's nothing to do..
-      if ( supports_onhashchange ) { return false; }
-      
-      // Otherwise, we need to stop ours (if possible).
-      $( fake_onhashchange.stop );
-    }
-    
-  });
-  
-  // fake_onhashchange does all the work of triggering the window.onhashchange
-  // event for browsers that don't natively support it, including creating a
-  // polling loop to watch for hash changes and in IE 6/7 creating a hidden
-  // Iframe to enable back and forward.
-  fake_onhashchange = (function(){
-    var self = {},
-      timeout_id,
-      
-      // Remember the initial hash so it doesn't get triggered immediately.
-      last_hash = get_fragment(),
-      
-      fn_retval = function(val){ return val; },
-      history_set = fn_retval,
-      history_get = fn_retval;
-    
-    // Start the polling loop.
-    self.start = function() {
-      timeout_id || poll();
-    };
-    
-    // Stop the polling loop.
-    self.stop = function() {
-      timeout_id && clearTimeout( timeout_id );
-      timeout_id = undefined;
-    };
-    
-    // This polling loop checks every $.fn.hashchange.delay milliseconds to see
-    // if location.hash has changed, and triggers the 'hashchange' event on
-    // window when necessary.
-    function poll() {
-      var hash = get_fragment(),
-        history_hash = history_get( last_hash );
-      
-      if ( hash !== last_hash ) {
-        history_set( last_hash = hash, history_hash );
-        
-        $(window).trigger( str_hashchange );
-        
-      } else if ( history_hash !== last_hash ) {
-        location.href = location.href.replace( /#.*/, '' ) + history_hash;
-      }
-      
-      timeout_id = setTimeout( poll, $.fn[ str_hashchange ].delay );
-    };
-    
-    // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
-    // vvvvvvvvvvvvvvvvvvv REMOVE IF NOT SUPPORTING IE6/7/8 vvvvvvvvvvvvvvvvvvv
-    // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
-    $.browser.msie && !supports_onhashchange && (function(){
-      // Not only do IE6/7 need the "magical" Iframe treatment, but so does IE8
-      // when running in "IE7 compatibility" mode.
-      
-      var iframe,
-        iframe_src;
-      
-      // When the event is bound and polling starts in IE 6/7, create a hidden
-      // Iframe for history handling.
-      self.start = function(){
-        if ( !iframe ) {
-          iframe_src = $.fn[ str_hashchange ].src;
-          iframe_src = iframe_src && iframe_src + get_fragment();
-          
-          // Create hidden Iframe. Attempt to make Iframe as hidden as possible
-          // by using techniques from http://www.paciellogroup.com/blog/?p=604.
-          iframe = $('<iframe tabindex="-1" title="empty"/>').hide()
-            
-            // When Iframe has completely loaded, initialize the history and
-            // start polling.
-            .one( 'load', function(){
-              iframe_src || history_set( get_fragment() );
-              poll();
-            })
-            
-            // Load Iframe src if specified, otherwise nothing.
-            .attr( 'src', iframe_src || 'javascript:0' )
-            
-            // Append Iframe after the end of the body to prevent unnecessary
-            // initial page scrolling (yes, this works).
-            .insertAfter( 'body' )[0].contentWindow;
-          
-          // Whenever `document.title` changes, update the Iframe's title to
-          // prettify the back/next history menu entries. Since IE sometimes
-          // errors with "Unspecified error" the very first time this is set
-          // (yes, very useful) wrap this with a try/catch block.
-          doc.onpropertychange = function(){
-            try {
-              if ( event.propertyName === 'title' ) {
-                iframe.document.title = doc.title;
-              }
-            } catch(e) {}
-          };
-          
-        }
-      };
-      
-      // Override the "stop" method since an IE6/7 Iframe was created. Even
-      // if there are no longer any bound event handlers, the polling loop
-      // is still necessary for back/next to work at all!
-      self.stop = fn_retval;
-      
-      // Get history by looking at the hidden Iframe's location.hash.
-      history_get = function() {
-        return get_fragment( iframe.location.href );
-      };
-      
-      // Set a new history item by opening and then closing the Iframe
-      // document, *then* setting its location.hash. If document.domain has
-      // been set, update that as well.
-      history_set = function( hash, history_hash ) {
-        var iframe_doc = iframe.document,
-          domain = $.fn[ str_hashchange ].domain;
-        
-        if ( hash !== history_hash ) {
-          // Update Iframe with any initial `document.title` that might be set.
-          iframe_doc.title = doc.title;
-          
-          // Opening the Iframe's document after it has been closed is what
-          // actually adds a history entry.
-          iframe_doc.open();
-          
-          // Set document.domain for the Iframe document as well, if necessary.
-          domain && iframe_doc.write( '<script>document.domain="' + domain + '"</script>' );
-          
-          iframe_doc.close();
-          
-          // Update the Iframe's hash, for great justice.
-          iframe.location.hash = hash;
-        }
-      };
-      
-    })();
-    // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-    // ^^^^^^^^^^^^^^^^^^^ REMOVE IF NOT SUPPORTING IE6/7/8 ^^^^^^^^^^^^^^^^^^^
-    // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-    
-    return self;
-  })();
-  
-})(jQuery,this);
diff --git a/DataQuality/DQDefects/python/data/jquery.fixedtableheader.js b/DataQuality/DQDefects/python/data/jquery.fixedtableheader.js
deleted file mode 100644
index 511fe44e2db25d76f6a8272e8626aec39baa0bae..0000000000000000000000000000000000000000
--- a/DataQuality/DQDefects/python/data/jquery.fixedtableheader.js
+++ /dev/null
@@ -1,119 +0,0 @@
-/* Copyright (c) 2009 Mustafa OZCAN (http://www.mustafaozcan.net)
- * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
- * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
- * Version: 1.0.2
- * Requires: jquery.1.3+
- * Heavily enhanced by Peter Waller <peter.waller@cern.ch> (Oct 2010)
- */
-jQuery.fn.fixedtableheader = function (options) {
-    var settings = jQuery.extend({
-        first_column: false,
-        fixed_class: "fixedtableheader"
-    }, options);
-    
-    function fix_table_position(from, to, fix_left) {
-        if (jQuery.browser.msie) 
-            to.css({
-                "position": "absolute",
-                "top" : fix_left ? from.offset().top      : $(window).scrollTop(),
-                "left": fix_left ? $(window).scrollLeft() : from.offset().left
-            });
-        else 
-            to.css({
-                "position": "fixed",
-                "top" : fix_left ? from.offset().top - $(window).scrollTop() : "0",
-                "left": fix_left ? "0" : from.offset().left - $(window).scrollLeft()
-            });
-    }
-    
-    function fix_element_sizes(from, to, force) {
-        var force = typeof(force) != 'undefined' ? force : false;
-        
-        var header_elements = settings.first_column ? from.find("tr") : from.find("th,td");
-        var new_header_elements = settings.first_column ? to.find("tr") : to.find("th,td");
-        
-        // Check if the table changed size
-        if (settings.first_column && (to.outerHeight() != from.outerHeight() || force)) {        
-            new_header_elements.each(function (index) {
-                $(this).css("height", header_elements.eq(index).height())
-            });
-            to.height(from.outerHeight());
-            
-        } else if (!settings.first_column && (to.outerWidth() != from.outerWidth() || force)) {
-            new_header_elements.each(function (index) {
-                $(this).css("width", header_elements.eq(index).width())
-            });
-            to.width (from.outerWidth() );
-        }
-        if (settings.first_column)
-            to.css("top",  from.offset().top );
-        else
-            to.css("left", from.offset().left);            
-    }
-    
-    function clone_column(header_elements) {
-        // Need a special clone function to pick out a <tr> with just the first <td>
-        var new_thead = $("<thead />");
-        var new_tbody = $("<tbody />");
-        
-        colspans = header_elements.map(function() { return $(this).attr("colspan"); });
-        widest_colspan = Math.max.apply(Math, colspans.toArray())
-        
-        header_elements.each(function () {
-            self = $(this).clone();
-            self_in_tr = $(this).parent().clone().empty().append(self);
-            if (self.attr("colspan") < widest_colspan)
-                self_in_tr.append($("<td />").attr("colspan", widest_colspan - self.attr("colspan")));
-            if (self[0].nodeName == "TH")
-                new_thead.append(self_in_tr);
-            else
-                new_tbody.append(self_in_tr);
-        });
-        return new_thead.before(new_tbody);
-    }
-    
-    var original_table = $(this).parents("table");
-    if (original_table.length != 1)
-        throw new Error("Invalid selector for fixedtableheader - should be heading")
-    
-    var original_header_elements = $(this);
-    
-    var header_elements = original_header_elements.find("th,td");
-    var new_header_elements = settings.first_column 
-        ? clone_column(original_header_elements) 
-        : original_header_elements.clone();
-    
-    // No header elements. 
-    if (!header_elements) return;
-    
-    var fixed_header_table = original_table.clone().empty()
-        .append(new_header_elements)
-        .addClass(settings.fixed_class)
-        .hide(false)
-        .appendTo($("body"));
-    
-    fix_table_position(original_header_elements, fixed_header_table, settings.first_column);
-    fix_element_sizes (original_header_elements, fixed_header_table, true);
-    
-    function determine_hidden() {
-        var scroll_pos = settings.first_column ? $(window).scrollLeft() : $(window).scrollTop();
-        var elm_pos = settings.first_column ? original_header_elements.offset().left : original_header_elements.offset().top;
-        var elm_size = settings.first_column
-            ? original_table.width()  - original_header_elements.find("td:not([colspan]").width()
-            : original_table.height() - original_header_elements.height();
-        
-        if (scroll_pos > elm_pos && scroll_pos <= (elm_pos + elm_size))
-            fixed_header_table.show();
-        else 
-            fixed_header_table.hide();
-    }
-
-    $(window).scroll(function () {
-        fix_table_position(original_table, fixed_header_table, settings.first_column);
-        determine_hidden();
-    });
-    
-    $(window).resize(function () {
-        fix_element_sizes(original_table, fixed_header_table);
-    });
-};
diff --git a/DataQuality/DQDefects/python/data/jquery.tablesorter.min.js b/DataQuality/DQDefects/python/data/jquery.tablesorter.min.js
deleted file mode 100644
index b8605df1e7277e2f88237eb7bee7c7e38d80a232..0000000000000000000000000000000000000000
--- a/DataQuality/DQDefects/python/data/jquery.tablesorter.min.js
+++ /dev/null
@@ -1,4 +0,0 @@
-
-(function($){$.extend({tablesorter:new
-function(){var parsers=[],widgets=[];this.defaults={cssHeader:"header",cssAsc:"headerSortUp",cssDesc:"headerSortDown",cssChildRow:"expand-child",sortInitialOrder:"asc",sortMultiSortKey:"shiftKey",sortForce:null,sortAppend:null,sortLocaleCompare:true,textExtraction:"simple",parsers:{},widgets:[],widgetZebra:{css:["even","odd"]},headers:{},widthFixed:false,cancelSelection:true,sortList:[],headerList:[],dateFormat:"us",decimal:'/\.|\,/g',onRenderHeader:null,selectorHeaders:'thead th',debug:false};function benchmark(s,d){log(s+","+(new Date().getTime()-d.getTime())+"ms");}this.benchmark=benchmark;function log(s){if(typeof console!="undefined"&&typeof console.debug!="undefined"){console.log(s);}else{alert(s);}}function buildParserCache(table,$headers){if(table.config.debug){var parsersDebug="";}if(table.tBodies.length==0)return;var rows=table.tBodies[0].rows;if(rows[0]){var list=[],cells=rows[0].cells,l=cells.length;for(var i=0;i<l;i++){var p=false;if($.metadata&&($($headers[i]).metadata()&&$($headers[i]).metadata().sorter)){p=getParserById($($headers[i]).metadata().sorter);}else if((table.config.headers[i]&&table.config.headers[i].sorter)){p=getParserById(table.config.headers[i].sorter);}if(!p){p=detectParserForColumn(table,rows,-1,i);}if(table.config.debug){parsersDebug+="column:"+i+" parser:"+p.id+"\n";}list.push(p);}}if(table.config.debug){log(parsersDebug);}return list;};function detectParserForColumn(table,rows,rowIndex,cellIndex){var l=parsers.length,node=false,nodeValue=false,keepLooking=true;while(nodeValue==''&&keepLooking){rowIndex++;if(rows[rowIndex]){node=getNodeFromRowAndCellIndex(rows,rowIndex,cellIndex);nodeValue=trimAndGetNodeText(table.config,node);if(table.config.debug){log('Checking if value was empty on row:'+rowIndex);}}else{keepLooking=false;}}for(var i=1;i<l;i++){if(parsers[i].is(nodeValue,table,node)){return parsers[i];}}return parsers[0];}function getNodeFromRowAndCellIndex(rows,rowIndex,cellIndex){return rows[rowIndex].cells[cellIndex];}function trimAndGetNodeText(config,node){return $.trim(getElementText(config,node));}function getParserById(name){var l=parsers.length;for(var i=0;i<l;i++){if(parsers[i].id.toLowerCase()==name.toLowerCase()){return parsers[i];}}return false;}function buildCache(table){if(table.config.debug){var cacheTime=new Date();}var totalRows=(table.tBodies[0]&&table.tBodies[0].rows.length)||0,totalCells=(table.tBodies[0].rows[0]&&table.tBodies[0].rows[0].cells.length)||0,parsers=table.config.parsers,cache={row:[],normalized:[]};for(var i=0;i<totalRows;++i){var c=$(table.tBodies[0].rows[i]),cols=[];if(c.hasClass(table.config.cssChildRow)){cache.row[cache.row.length-1]=cache.row[cache.row.length-1].add(c);continue;}cache.row.push(c);for(var j=0;j<totalCells;++j){cols.push(parsers[j].format(getElementText(table.config,c[0].cells[j]),table,c[0].cells[j]));}cols.push(cache.normalized.length);cache.normalized.push(cols);cols=null;};if(table.config.debug){benchmark("Building cache for "+totalRows+" rows:",cacheTime);}return cache;};function getElementText(config,node){var text="";if(!node)return"";if(!config.supportsTextContent)config.supportsTextContent=node.textContent||false;if(config.textExtraction=="simple"){if(config.supportsTextContent){text=node.textContent;}else{if(node.childNodes[0]&&node.childNodes[0].hasChildNodes()){text=node.childNodes[0].innerHTML;}else{text=node.innerHTML;}}}else{if(typeof(config.textExtraction)=="function"){text=config.textExtraction(node);}else{text=$(node).text();}}return text;}function appendToTable(table,cache){if(table.config.debug){var appendTime=new Date()}var c=cache,r=c.row,n=c.normalized,totalRows=n.length,checkCell=(n[0].length-1),tableBody=$(table.tBodies[0]),rows=[];for(var i=0;i<totalRows;i++){var pos=n[i][checkCell];rows.push(r[pos]);if(!table.config.appender){var l=r[pos].length;for(var j=0;j<l;j++){tableBody[0].appendChild(r[pos][j]);}}}if(table.config.appender){table.config.appender(table,rows);}rows=null;if(table.config.debug){benchmark("Rebuilt table:",appendTime);}applyWidget(table);setTimeout(function(){$(table).trigger("sortEnd");},0);};function buildHeaders(table){if(table.config.debug){var time=new Date();}var meta=($.metadata)?true:false;var header_index=computeTableHeaderCellIndexes(table);$tableHeaders=$(table.config.selectorHeaders,table).each(function(index){this.column=header_index[this.parentNode.rowIndex+"-"+this.cellIndex];this.order=formatSortingOrder(table.config.sortInitialOrder);this.count=this.order;if(checkHeaderMetadata(this)||checkHeaderOptions(table,index))this.sortDisabled=true;if(checkHeaderOptionsSortingLocked(table,index))this.order=this.lockedOrder=checkHeaderOptionsSortingLocked(table,index);if(!this.sortDisabled){var $th=$(this).addClass(table.config.cssHeader);if(table.config.onRenderHeader)table.config.onRenderHeader.apply($th);}table.config.headerList[index]=this;});if(table.config.debug){benchmark("Built headers:",time);log($tableHeaders);}return $tableHeaders;};function computeTableHeaderCellIndexes(t){var matrix=[];var lookup={};var thead=t.getElementsByTagName('THEAD')[0];var trs=thead.getElementsByTagName('TR');for(var i=0;i<trs.length;i++){var cells=trs[i].cells;for(var j=0;j<cells.length;j++){var c=cells[j];var rowIndex=c.parentNode.rowIndex;var cellId=rowIndex+"-"+c.cellIndex;var rowSpan=c.rowSpan||1;var colSpan=c.colSpan||1
-var firstAvailCol;if(typeof(matrix[rowIndex])=="undefined"){matrix[rowIndex]=[];}for(var k=0;k<matrix[rowIndex].length+1;k++){if(typeof(matrix[rowIndex][k])=="undefined"){firstAvailCol=k;break;}}lookup[cellId]=firstAvailCol;for(var k=rowIndex;k<rowIndex+rowSpan;k++){if(typeof(matrix[k])=="undefined"){matrix[k]=[];}var matrixrow=matrix[k];for(var l=firstAvailCol;l<firstAvailCol+colSpan;l++){matrixrow[l]="x";}}}}return lookup;}function checkCellColSpan(table,rows,row){var arr=[],r=table.tHead.rows,c=r[row].cells;for(var i=0;i<c.length;i++){var cell=c[i];if(cell.colSpan>1){arr=arr.concat(checkCellColSpan(table,headerArr,row++));}else{if(table.tHead.length==1||(cell.rowSpan>1||!r[row+1])){arr.push(cell);}}}return arr;};function checkHeaderMetadata(cell){if(($.metadata)&&($(cell).metadata().sorter===false)){return true;};return false;}function checkHeaderOptions(table,i){if((table.config.headers[i])&&(table.config.headers[i].sorter===false)){return true;};return false;}function checkHeaderOptionsSortingLocked(table,i){if((table.config.headers[i])&&(table.config.headers[i].lockedOrder))return table.config.headers[i].lockedOrder;return false;}function applyWidget(table){var c=table.config.widgets;var l=c.length;for(var i=0;i<l;i++){getWidgetById(c[i]).format(table);}}function getWidgetById(name){var l=widgets.length;for(var i=0;i<l;i++){if(widgets[i].id.toLowerCase()==name.toLowerCase()){return widgets[i];}}};function formatSortingOrder(v){if(typeof(v)!="Number"){return(v.toLowerCase()=="desc")?1:0;}else{return(v==1)?1:0;}}function isValueInArray(v,a){var l=a.length;for(var i=0;i<l;i++){if(a[i][0]==v){return true;}}return false;}function setHeadersCss(table,$headers,list,css){$headers.removeClass(css[0]).removeClass(css[1]);var h=[];$headers.each(function(offset){if(!this.sortDisabled){h[this.column]=$(this);}});var l=list.length;for(var i=0;i<l;i++){h[list[i][0]].addClass(css[list[i][1]]);}}function fixColumnWidth(table,$headers){var c=table.config;if(c.widthFixed){var colgroup=$('<colgroup>');$("tr:first td",table.tBodies[0]).each(function(){colgroup.append($('<col>').css('width',$(this).width()));});$(table).prepend(colgroup);};}function updateHeaderSortCount(table,sortList){var c=table.config,l=sortList.length;for(var i=0;i<l;i++){var s=sortList[i],o=c.headerList[s[0]];o.count=s[1];o.count++;}}function multisort(table,sortList,cache){if(table.config.debug){var sortTime=new Date();}var dynamicExp="var sortWrapper = function(a,b) {",l=sortList.length;for(var i=0;i<l;i++){var c=sortList[i][0];var order=sortList[i][1];var s=(table.config.parsers[c].type=="text")?((order==0)?makeSortFunction("text","asc",c):makeSortFunction("text","desc",c)):((order==0)?makeSortFunction("numeric","asc",c):makeSortFunction("numeric","desc",c));var e="e"+i;dynamicExp+="var "+e+" = "+s;dynamicExp+="if("+e+") { return "+e+"; } ";dynamicExp+="else { ";}var orgOrderCol=cache.normalized[0].length-1;dynamicExp+="return a["+orgOrderCol+"]-b["+orgOrderCol+"];";for(var i=0;i<l;i++){dynamicExp+="}; ";}dynamicExp+="return 0; ";dynamicExp+="}; ";if(table.config.debug){benchmark("Evaling expression:"+dynamicExp,new Date());}eval(dynamicExp);cache.normalized.sort(sortWrapper);if(table.config.debug){benchmark("Sorting on "+sortList.toString()+" and dir "+order+" time:",sortTime);}return cache;};function makeSortFunction(type,direction,index){var a="a["+index+"]",b="b["+index+"]";if(type=='text'&&direction=='asc'){return"("+a+" == "+b+" ? 0 : ("+a+" === null ? Number.POSITIVE_INFINITY : ("+b+" === null ? Number.NEGATIVE_INFINITY : ("+a+" < "+b+") ? -1 : 1 )));";}else if(type=='text'&&direction=='desc'){return"("+a+" == "+b+" ? 0 : ("+a+" === null ? Number.POSITIVE_INFINITY : ("+b+" === null ? Number.NEGATIVE_INFINITY : ("+b+" < "+a+") ? -1 : 1 )));";}else if(type=='numeric'&&direction=='asc'){return"("+a+" === null && "+b+" === null) ? 0 :("+a+" === null ? Number.POSITIVE_INFINITY : ("+b+" === null ? Number.NEGATIVE_INFINITY : "+a+" - "+b+"));";}else if(type=='numeric'&&direction=='desc'){return"("+a+" === null && "+b+" === null) ? 0 :("+a+" === null ? Number.POSITIVE_INFINITY : ("+b+" === null ? Number.NEGATIVE_INFINITY : "+b+" - "+a+"));";}};function makeSortText(i){return"((a["+i+"] < b["+i+"]) ? -1 : ((a["+i+"] > b["+i+"]) ? 1 : 0));";};function makeSortTextDesc(i){return"((b["+i+"] < a["+i+"]) ? -1 : ((b["+i+"] > a["+i+"]) ? 1 : 0));";};function makeSortNumeric(i){return"a["+i+"]-b["+i+"];";};function makeSortNumericDesc(i){return"b["+i+"]-a["+i+"];";};function sortText(a,b){if(table.config.sortLocaleCompare)return a.localeCompare(b);return((a<b)?-1:((a>b)?1:0));};function sortTextDesc(a,b){if(table.config.sortLocaleCompare)return b.localeCompare(a);return((b<a)?-1:((b>a)?1:0));};function sortNumeric(a,b){return a-b;};function sortNumericDesc(a,b){return b-a;};function getCachedSortType(parsers,i){return parsers[i].type;};this.construct=function(settings){return this.each(function(){if(!this.tHead||!this.tBodies)return;var $this,$document,$headers,cache,config,shiftDown=0,sortOrder;this.config={};config=$.extend(this.config,$.tablesorter.defaults,settings);$this=$(this);$.data(this,"tablesorter",config);$headers=buildHeaders(this);this.config.parsers=buildParserCache(this,$headers);cache=buildCache(this);var sortCSS=[config.cssDesc,config.cssAsc];fixColumnWidth(this);$headers.click(function(e){var totalRows=($this[0].tBodies[0]&&$this[0].tBodies[0].rows.length)||0;if(!this.sortDisabled&&totalRows>0){$this.trigger("sortStart");var $cell=$(this);var i=this.column;this.order=this.count++%2;if(this.lockedOrder)this.order=this.lockedOrder;if(!e[config.sortMultiSortKey]){config.sortList=[];if(config.sortForce!=null){var a=config.sortForce;for(var j=0;j<a.length;j++){if(a[j][0]!=i){config.sortList.push(a[j]);}}}config.sortList.push([i,this.order]);}else{if(isValueInArray(i,config.sortList)){for(var j=0;j<config.sortList.length;j++){var s=config.sortList[j],o=config.headerList[s[0]];if(s[0]==i){o.count=s[1];o.count++;s[1]=o.count%2;}}}else{config.sortList.push([i,this.order]);}};setTimeout(function(){setHeadersCss($this[0],$headers,config.sortList,sortCSS);appendToTable($this[0],multisort($this[0],config.sortList,cache));},1);return false;}}).mousedown(function(){if(config.cancelSelection){this.onselectstart=function(){return false};return false;}});$this.bind("update",function(){var me=this;setTimeout(function(){me.config.parsers=buildParserCache(me,$headers);cache=buildCache(me);},1);}).bind("updateCell",function(e,cell){var config=this.config;var pos=[(cell.parentNode.rowIndex-1),cell.cellIndex];cache.normalized[pos[0]][pos[1]]=config.parsers[pos[1]].format(getElementText(config,cell),cell);}).bind("sorton",function(e,list){$(this).trigger("sortStart");config.sortList=list;var sortList=config.sortList;updateHeaderSortCount(this,sortList);setHeadersCss(this,$headers,sortList,sortCSS);appendToTable(this,multisort(this,sortList,cache));}).bind("appendCache",function(){appendToTable(this,cache);}).bind("applyWidgetId",function(e,id){getWidgetById(id).format(this);}).bind("applyWidgets",function(){applyWidget(this);});if($.metadata&&($(this).metadata()&&$(this).metadata().sortlist)){config.sortList=$(this).metadata().sortlist;}if(config.sortList.length>0){$this.trigger("sorton",[config.sortList]);}applyWidget(this);});};this.addParser=function(parser){var l=parsers.length,a=true;for(var i=0;i<l;i++){if(parsers[i].id.toLowerCase()==parser.id.toLowerCase()){a=false;}}if(a){parsers.push(parser);};};this.addWidget=function(widget){widgets.push(widget);};this.formatFloat=function(s){var i=parseFloat(s);return(isNaN(i))?0:i;};this.formatInt=function(s){var i=parseInt(s);return(isNaN(i))?0:i;};this.isDigit=function(s,config){return/^[-+]?\d*$/.test($.trim(s.replace(/[,.']/g,'')));};this.clearTableBody=function(table){if($.browser.msie){function empty(){while(this.firstChild)this.removeChild(this.firstChild);}empty.apply(table.tBodies[0]);}else{table.tBodies[0].innerHTML="";}};}});$.fn.extend({tablesorter:$.tablesorter.construct});var ts=$.tablesorter;ts.addParser({id:"text",is:function(s){return true;},format:function(s){return $.trim(s.toLocaleLowerCase());},type:"text"});ts.addParser({id:"digit",is:function(s,table){var c=table.config;return $.tablesorter.isDigit(s,c);},format:function(s){return $.tablesorter.formatFloat(s);},type:"numeric"});ts.addParser({id:"currency",is:function(s){return/^[£$€?.]/.test(s);},format:function(s){return $.tablesorter.formatFloat(s.replace(new RegExp(/[£$€]/g),""));},type:"numeric"});ts.addParser({id:"ipAddress",is:function(s){return/^\d{2,3}[\.]\d{2,3}[\.]\d{2,3}[\.]\d{2,3}$/.test(s);},format:function(s){var a=s.split("."),r="",l=a.length;for(var i=0;i<l;i++){var item=a[i];if(item.length==2){r+="0"+item;}else{r+=item;}}return $.tablesorter.formatFloat(r);},type:"numeric"});ts.addParser({id:"url",is:function(s){return/^(https?|ftp|file):\/\/$/.test(s);},format:function(s){return jQuery.trim(s.replace(new RegExp(/(https?|ftp|file):\/\//),''));},type:"text"});ts.addParser({id:"isoDate",is:function(s){return/^\d{4}[\/-]\d{1,2}[\/-]\d{1,2}$/.test(s);},format:function(s){return $.tablesorter.formatFloat((s!="")?new Date(s.replace(new RegExp(/-/g),"/")).getTime():"0");},type:"numeric"});ts.addParser({id:"percent",is:function(s){return/\%$/.test($.trim(s));},format:function(s){return $.tablesorter.formatFloat(s.replace(new RegExp(/%/g),""));},type:"numeric"});ts.addParser({id:"usLongDate",is:function(s){return s.match(new RegExp(/^[A-Za-z]{3,10}\.? [0-9]{1,2}, ([0-9]{4}|'?[0-9]{2}) (([0-2]?[0-9]:[0-5][0-9])|([0-1]?[0-9]:[0-5][0-9]\s(AM|PM)))$/));},format:function(s){return $.tablesorter.formatFloat(new Date(s).getTime());},type:"numeric"});ts.addParser({id:"shortDate",is:function(s){return/\d{1,2}[\/\-]\d{1,2}[\/\-]\d{2,4}/.test(s);},format:function(s,table){var c=table.config;s=s.replace(/\-/g,"/");if(c.dateFormat=="us"){s=s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{4})/,"$3/$1/$2");}else if(c.dateFormat=="uk"){s=s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{4})/,"$3/$2/$1");}else if(c.dateFormat=="dd/mm/yy"||c.dateFormat=="dd-mm-yy"){s=s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{2})/,"$1/$2/$3");}return $.tablesorter.formatFloat(new Date(s).getTime());},type:"numeric"});ts.addParser({id:"time",is:function(s){return/^(([0-2]?[0-9]:[0-5][0-9])|([0-1]?[0-9]:[0-5][0-9]\s(am|pm)))$/.test(s);},format:function(s){return $.tablesorter.formatFloat(new Date("2000/01/01 "+s).getTime());},type:"numeric"});ts.addParser({id:"metadata",is:function(s){return false;},format:function(s,table,cell){var c=table.config,p=(!c.parserMetadataName)?'sortValue':c.parserMetadataName;return $(cell).metadata()[p];},type:"numeric"});ts.addWidget({id:"zebra",format:function(table){if(table.config.debug){var time=new Date();}var $tr,row=-1,odd;$("tr:visible",table.tBodies[0]).each(function(i){$tr=$(this);if(!$tr.hasClass(table.config.cssChildRow))row++;odd=(row%2==0);$tr.removeClass(table.config.widgetZebra.css[odd?0:1]).addClass(table.config.widgetZebra.css[odd?1:0])});if(table.config.debug){$.tablesorter.benchmark("Applying Zebra widget",time);}}});})(jQuery);
\ No newline at end of file
diff --git a/DataQuality/DQDefects/python/data/jquery.tooltip.js b/DataQuality/DQDefects/python/data/jquery.tooltip.js
deleted file mode 100644
index 0e5f22006ffbbd0082b1374379d88ddddb579580..0000000000000000000000000000000000000000
--- a/DataQuality/DQDefects/python/data/jquery.tooltip.js
+++ /dev/null
@@ -1,299 +0,0 @@
-/*
- * jQuery Tooltip plugin 1.3
- *
- * http://bassistance.de/jquery-plugins/jquery-plugin-tooltip/
- * http://docs.jquery.com/Plugins/Tooltip
- *
- * Copyright (c) 2006 - 2008 Jörn Zaefferer
- *
- * $Id: jquery.tooltip.js 5741 2008-06-21 15:22:16Z joern.zaefferer $
- * 
- * Dual licensed under the MIT and GPL licenses:
- *   http://www.opensource.org/licenses/mit-license.php
- *   http://www.gnu.org/licenses/gpl.html
- */
- 
-;(function($) {
-	
-		// the tooltip element
-	var helper = {},
-		// the current tooltipped element
-		current,
-		// the title of the current element, used for restoring
-		title,
-		// timeout id for delayed tooltips
-		tID,
-		// IE 5.5 or 6
-		IE = $.browser.msie && /MSIE\s(5\.5|6\.)/.test(navigator.userAgent),
-		// flag for mouse tracking
-		track = false;
-	
-	$.tooltip = {
-		blocked: false,
-		defaults: {
-			delay: 200,
-			fade: false,
-			showURL: true,
-			extraClass: "",
-			top: 15,
-			left: 15,
-			id: "tooltip"
-		},
-		block: function() {
-			$.tooltip.blocked = !$.tooltip.blocked;
-		}
-	};
-	
-	$.fn.extend({
-		tooltip: function(settings) {
-			settings = $.extend({}, $.tooltip.defaults, settings);
-			createHelper(settings);
-			return this.each(function() {
-					$.data(this, "tooltip", settings);
-					this.tOpacity = helper.parent.css("opacity");
-					// copy tooltip into its own expando and remove the title
-					this.tooltipText = this.title;
-					$(this).removeAttr("title");
-					// also remove alt attribute to prevent default tooltip in IE
-					this.alt = "";
-				})
-				.mouseover(save)
-				.mouseout(hide)
-				.click(hide);
-		},
-		fixPNG: IE ? function() {
-			return this.each(function () {
-				var image = $(this).css('backgroundImage');
-				if (image.match(/^url\(["']?(.*\.png)["']?\)$/i)) {
-					image = RegExp.$1;
-					$(this).css({
-						'backgroundImage': 'none',
-						'filter': "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=crop, src='" + image + "')"
-					}).each(function () {
-						var position = $(this).css('position');
-						if (position != 'absolute' && position != 'relative')
-							$(this).css('position', 'relative');
-					});
-				}
-			});
-		} : function() { return this; },
-		unfixPNG: IE ? function() {
-			return this.each(function () {
-				$(this).css({'filter': '', backgroundImage: ''});
-			});
-		} : function() { return this; },
-		hideWhenEmpty: function() {
-			return this.each(function() {
-				$(this)[ $(this).html() ? "show" : "hide" ]();
-			});
-		},
-		url: function() {
-			return this.attr('href') || this.attr('src');
-		}
-	});
-	
-	function createHelper(settings) {
-		// there can be only one tooltip helper
-		if( helper.parent )
-			return;
-		// create the helper, h3 for title, div for url
-		helper.parent = $('<div id="' + settings.id + '"><h3></h3><div class="body"></div><div class="url"></div></div>')
-			// add to document
-			.appendTo(document.body)
-			// hide it at first
-			.hide();
-			
-		// apply bgiframe if available
-		if ( $.fn.bgiframe )
-			helper.parent.bgiframe();
-		
-		// save references to title and url elements
-		helper.title = $('h3', helper.parent);
-		helper.body = $('div.body', helper.parent);
-		helper.url = $('div.url', helper.parent);
-	}
-	
-	function settings(element) {
-		return $.data(element, "tooltip");
-	}
-	
-	// main event handler to start showing tooltips
-	function handle(event) {
-		// show helper, either with timeout or on instant
-		if( settings(this).delay )
-			tID = setTimeout(show, settings(this).delay);
-		else
-			show();
-		
-		// if selected, update the helper position when the mouse moves
-		track = !!settings(this).track;
-		$(document.body).bind('mousemove', update);
-			
-		// update at least once
-		update(event);
-	}
-	
-	// save elements title before the tooltip is displayed
-	function save() {
-		// if this is the current source, or it has no title (occurs with click event), stop
-		if ( $.tooltip.blocked || this == current || (!this.tooltipText && !settings(this).bodyHandler) )
-			return;
-
-		// save current
-		current = this;
-		title = this.tooltipText;
-		
-		if ( settings(this).bodyHandler ) {
-			helper.title.hide();
-			var bodyContent = settings(this).bodyHandler.call(this);
-			if (bodyContent)
-			{
-			    if (bodyContent.nodeType || bodyContent.jquery) {
-				    helper.body.empty().append(bodyContent)
-			    } else {
-				    helper.body.html( bodyContent );
-			    }
-			    helper.body.show();
-			} else
-			    return;
-
-		} else if ( settings(this).showBody ) {
-			var parts = title.split(settings(this).showBody);
-			helper.title.html(parts.shift()).show();
-			helper.body.empty();
-			for(var i = 0, part; (part = parts[i]); i++) {
-				if(i > 0)
-					helper.body.append("<br/>");
-				helper.body.append(part);
-			}
-			helper.body.hideWhenEmpty();
-		} else {
-			helper.title.html(title).show();
-			helper.body.hide();
-		}
-		
-		// if element has href or src, add and show it, otherwise hide it
-		if( settings(this).showURL && $(this).url() )
-			helper.url.html( $(this).url().replace('http://', '') ).show();
-		else 
-			helper.url.hide();
-		
-		// add an optional class for this tip
-		helper.parent.addClass(settings(this).extraClass);
-
-		// fix PNG background for IE
-		if (settings(this).fixPNG )
-			helper.parent.fixPNG();
-			
-		handle.apply(this, arguments);
-	}
-	
-	// delete timeout and show helper
-	function show() {
-		tID = null;
-		if ((!IE || !$.fn.bgiframe) && settings(current).fade) {
-			if (helper.parent.is(":animated"))
-				helper.parent.stop().show().fadeTo(settings(current).fade, current.tOpacity);
-			else
-				helper.parent.is(':visible') ? helper.parent.fadeTo(settings(current).fade, current.tOpacity) : helper.parent.fadeIn(settings(current).fade);
-		} else {
-			helper.parent.show();
-		}
-		update();
-	}
-	
-	/**
-	 * callback for mousemove
-	 * updates the helper position
-	 * removes itself when no current element
-	 */
-	function update(event)	{
-		if($.tooltip.blocked)
-			return;
-		
-		if (event && event.target.tagName == "OPTION") {
-			return;
-		}
-		
-		// stop updating when tracking is disabled and the tooltip is visible
-		if ( !track && helper.parent.is(":visible")) {
-			$(document.body).unbind('mousemove', update)
-		}
-		
-		// if no current element is available, remove this listener
-		if( current == null ) {
-			$(document.body).unbind('mousemove', update);
-			return;	
-		}
-		
-		// remove position helper classes
-		helper.parent.removeClass("viewport-right").removeClass("viewport-bottom");
-		
-		var left = helper.parent[0].offsetLeft;
-		var top = helper.parent[0].offsetTop;
-		if (event) {
-			// position the helper 15 pixel to bottom right, starting from mouse position
-			left = event.pageX + settings(current).left;
-			top = event.pageY + settings(current).top;
-			var right='auto';
-			if (settings(current).positionLeft) {
-				right = $(window).width() - left;
-				left = 'auto';
-			}
-			helper.parent.css({
-				left: left,
-				//right: right,
-				top: top
-			});
-		}
-		
-		var v = viewport(),
-			h = helper.parent[0];
-		// check horizontal position
-		if (v.x + v.cx < h.offsetLeft + h.offsetWidth) {
-			left -= h.offsetWidth + 20 + settings(current).left;
-			helper.parent.css({left: left + 'px'}).addClass("viewport-right");
-		}
-		// check vertical position
-		if (v.y + v.cy < h.offsetTop + h.offsetHeight) {
-			top -= h.offsetHeight + 20 + settings(current).top;
-			helper.parent.css({top: top + 'px'}).addClass("viewport-bottom");
-		}
-	}
-	
-	function viewport() {
-		return {
-			x: $(window).scrollLeft(),
-			y: $(window).scrollTop(),
-			cx: $(window).width(),
-			cy: $(window).height()
-		};
-	}
-	
-	// hide helper and restore added classes and the title
-	function hide(event) {
-		if($.tooltip.blocked)
-			return;
-		// clear timeout if possible
-		if(tID)
-			clearTimeout(tID);
-		// no more current element
-		current = null;
-		
-		var tsettings = settings(this);
-		function complete() {
-			helper.parent.removeClass( tsettings.extraClass ).hide().css("opacity", "");
-		}
-		if ((!IE || !$.fn.bgiframe) && tsettings.fade) {
-			if (helper.parent.is(':animated'))
-				helper.parent.stop().fadeTo(tsettings.fade, 0, complete);
-			else
-				helper.parent.stop().fadeOut(tsettings.fade, complete);
-		} else
-			complete();
-		
-		if( settings(this).fixPNG )
-			helper.parent.unfixPNG();
-	}
-	
-})(jQuery);
diff --git a/DataQuality/DQDefects/python/data/robot.png b/DataQuality/DQDefects/python/data/robot.png
deleted file mode 100644
index abf6712dcf48cb5cf4ee4ec1fd3a07616fc93b4a..0000000000000000000000000000000000000000
Binary files a/DataQuality/DQDefects/python/data/robot.png and /dev/null differ
diff --git a/DataQuality/DQDefects/python/data/table.css b/DataQuality/DQDefects/python/data/table.css
deleted file mode 100644
index 8196c4750520cd4cb11983c58297a7a332a2d808..0000000000000000000000000000000000000000
--- a/DataQuality/DQDefects/python/data/table.css
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
-Tema: Blue - Minimalist design in blue
-Author: Newton de Góes Horta
-Site: http://www.nghorta.com
-Country Origin: Brazil
-*/
-
-table {
- font-size: 95%;
- font-family: 'Lucida Grande', Helvetica, verdana, sans-serif;
- background-color:#fff;
- border-collapse: collapse;
- width: 100%;
- line-height: 1.2em;
-}
-caption {
- font-size: 30px;
- font-weight: bold;
- color: #002084;
- text-align: left;
- padding: 10px 0px;
- margin-bottom: 2px;
- text-transform: capitalize;
-}
-thead th {
- border-right: 2px solid #fff;
- color:#fff;
- text-align:center;
- padding:2px;
- height:25px;
- background-color: #004080;
-}
-tfoot {
- color:#002084;
- padding:2px;
- text-transform:uppercase;
- font-size:1.2em; 
- font-weigth: bold;
- margin-top:6px;
- border-top: 6px solid #004080;
- border-bottom: 6px solid #004080;
-}
-tbody tr {
- background-color:#fff;
- border-bottom: 2px solid #c0c0c0;
-}
-tbody td {
- color:#002084;
- padding:5px;
- text-align:left;
-}
-tbody th {
- text-align:left;
- padding: 2px;
-}
-tbody td a, tbody th a {
- color:#002084;
- text-decoration:underline;
- font-weight:normal; 
-}
-tbody td a:hover, tbody th a:hover {
- text-decoration:none;
-}
diff --git a/DataQuality/DQDefects/python/data/table.html b/DataQuality/DQDefects/python/data/table.html
deleted file mode 100644
index c3e6dd3664635b4f711b6ab84eb4a333b8577098..0000000000000000000000000000000000000000
--- a/DataQuality/DQDefects/python/data/table.html
+++ /dev/null
@@ -1,110 +0,0 @@
-<!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml"
-      xmlns:py="http://genshi.edgewall.org/">
-  <head>
-    <title>DQDefects defect list</title>
-    <link rel="stylesheet" href="extern/table.css" type="text/css" />
-    <style type="text/css">
-      #tooltip {
-        position: absolute;
-        z-index: 3000;
-        border: 1px solid #111;
-        background-color: #eee;
-        padding: 5px;
-        opacity: 0.85;
-      }
-      #tooltip h3, #tooltip div { margin: 0; }
-      td { 
-        height: 38px;
-        width: 8px;
-      }
-      .icon > span { display: none; }
-      td.virtual { background: url(extern/bricks.png) no-repeat center; }
-      td.primary { background: url(extern/brick.png) no-repeat center; }
-      td.tolerable   { background: url(extern/traffic_lights_yellow.png) no-repeat center; }
-      td.intolerable { background: url(extern/traffic_lights_red.png) no-repeat center; }
-      td.user { background: url(extern/user.png) no-repeat center; }
-      td.users { background: url(extern/users.png) no-repeat center; }
-      td.bots { background: url(extern/robot.png) no-repeat center; }
-    </style>
-    <script type="text/javascript" src="extern/jquery.js"></script>
-    <script type="text/javascript" src="extern/jquery.tablesorter.min.js"></script>
-    <script type="text/javascript" src="extern/jquery.fixedtableheader.js"></script>
-    <script type="text/javascript" src="extern/jquery.tooltip.js"></script>
-    <script type="text/javascript">
-        $(function () {
-            $(".filterable tr:has(td)").each(function(){
-                var t = $(this).text().toLowerCase();
-                $('<td class="indexColumn"></td>').hide().text(t).appendTo(this);
-            });
-            function UpdateFilter(box) {
-                //alert("Updating.");
-                var s = $(box).val().toLowerCase().split(" ");
-                $(".filterable tr:hidden").show();
-                $.each(s, function(){
-                    $(".filterable tr:visible .indexColumn:not(:contains('"+ this + "'))").parent().hide();
-                });
-            }
-            $('#FilterTextBox')
-              .data('timeout', null)
-              .keyup(function(){
-                  if ($(this).val().length > 3) {
-                      clearTimeout($(this).data('timeout'));
-                      var arg = this;
-                      $(this).data('timeout', setTimeout(function () { UpdateFilter(arg); }, 1000));
-                  }
-              });
-              
-            // Sorting currently broken
-            //$(".fixedtableheader").tablesorter({ sortList: [[0,0],[2,0]] });
-            $(".fixedtableheader thead").fixedtableheader();
-            
-            $('td.virtual').tooltip({delay: 0, fade: 250, track: true, showURL: false, 
-                bodyHandler: function() {return "Virtual";},
-            });
-            $('td.primary').tooltip({delay: 0, fade: 250, track: true, showURL: false, 
-                bodyHandler: function() {return "Primary";},
-            });
-            $('td.intolerable').tooltip({delay: 0, fade: 250, track: true, showURL: false, 
-                bodyHandler: function() {return "Intolerable";},
-            });
-            $('td.tolerable').tooltip({delay: 0, fade: 250, track: true, showURL: false, 
-                bodyHandler: function() {return "Tolerable";},
-            });
-            $('td.bots').tooltip({delay: 0, fade: 250, track: true, showURL: false,
-                bodyHandler: function() {
-                    return "Robots: " + $(this).find("span").text();
-                },
-            });
-            $('td.user').tooltip({delay: 0, fade: 250, track: true, showURL: false,
-                bodyHandler: function() {
-                    return "One User: " + $(this).find("span").text();
-                },
-            });
-            $('td.users').tooltip({delay: 0, fade: 250, track: true, showURL: false,
-                bodyHandler: function() {
-                    return "Many Users: " + $(this).find("span").text();
-                },
-            });
-        });
-    </script>
-  </head>
-  <body>
-    <?python
-        from datetime import datetime
-    ?>
-    <p>Page last generated: ${datetime.now()}</p>
-    <p>Filter:</p>
-    <input type="text" id="FilterTextBox" />
-    <table class="filterable fixedtableheader">
-      <thead>
-        <th py:for="heading in headings">$heading</th>
-      </thead>
-      <tbody>
-        <tr py:for="defect in defects">${HTML(defect.content)}
-        </tr>
-      </tbody>
-    </table>
-  </body>
-</html>
-
diff --git a/DataQuality/DQDefects/python/data/traffic_lights_red.png b/DataQuality/DQDefects/python/data/traffic_lights_red.png
deleted file mode 100644
index fd00be29e74da07a198a59c068659d27d4ea1406..0000000000000000000000000000000000000000
Binary files a/DataQuality/DQDefects/python/data/traffic_lights_red.png and /dev/null differ
diff --git a/DataQuality/DQDefects/python/data/traffic_lights_yellow.png b/DataQuality/DQDefects/python/data/traffic_lights_yellow.png
deleted file mode 100644
index 54034fc0d3e5ac50258bfbdeff5c3871dd75095d..0000000000000000000000000000000000000000
Binary files a/DataQuality/DQDefects/python/data/traffic_lights_yellow.png and /dev/null differ
diff --git a/DataQuality/DQDefects/python/data/user.png b/DataQuality/DQDefects/python/data/user.png
deleted file mode 100644
index d20bc7997f6a031281d536293910cf4d791b8a96..0000000000000000000000000000000000000000
Binary files a/DataQuality/DQDefects/python/data/user.png and /dev/null differ
diff --git a/DataQuality/DQDefects/python/data/users.png b/DataQuality/DQDefects/python/data/users.png
deleted file mode 100644
index 8bb48254781581fb93ff76f487a0575b7dd368ca..0000000000000000000000000000000000000000
Binary files a/DataQuality/DQDefects/python/data/users.png and /dev/null differ
diff --git a/Event/EventContainers/src/ID_ContainerTest.h b/Event/EventContainers/src/ID_ContainerTest.h
old mode 100755
new mode 100644