// Unnamed AMD module definition which needs to be manually configured through
// a "requirejs" configuration whenever this module should be loaded.
define(function() {
  // Just an empty definition. Nothing to assert here.
});
