define(function(n,i,u){"use strict";var t=n("./util"),l=n("./events"),p=function(){};return t.mix(p.prototype,l),t.mix(p.prototype,{plug:function(n){var i=this;if(n&&n.pluginId){i.__plugins||(i.__plugins=[]);var u=i.getPlugin(n.pluginId);return u&&i.unplug(n.pluginId),n.pluginInitializer(i),i.__plugins.push(n),i}},unplug:function(n){var i=this;if(n&&i.__plugins){var u="string"==typeof n?i.getPlugin(n):n;u.pluginDestructor(i);for(var t=0,l=i.__plugins.length;t1?u:u[0]||null}}}),"object"==typeof u&&u.exports?void(u.exports=p):p});