| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 | 
							- (function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.brikz = f()}})(function(){var define,module,exports;
 
- function Brikz(api, apiKey, initKey) {
 
-     var brikz = this, backup = {};
 
-     apiKey = apiKey || 'exports';
 
-     initKey = initKey || '__init__';
 
-     function mixin(src, target, what) {
 
-         for (var keys = Object.keys(what || src), l = keys.length, i = 0; i < l; ++i) {
 
-             if (src == null) {
 
-                 target[keys[i]] = undefined;
 
-             } else {
 
-                 var value = src[keys[i]];
 
-                 if (typeof value !== "undefined") {
 
-                     target[keys[i]] = value;
 
-                 }
 
-             }
 
-         }
 
-         return target;
 
-     }
 
-     Object.defineProperties(this, {
 
-         rebuild: {value: null, enumerable: false, configurable: true, writable: true}
 
-     });
 
-     var exclude = mixin(this, {});
 
-     this.rebuild = function () {
 
-         Object.keys(backup).forEach(function (key) {
 
-             mixin(null, api, (backup[key] || 0)[apiKey] || {});
 
-         });
 
-         var oapi = mixin(api, {}), order = [], chk = {};
 
-         function ensure(key) {
 
-             if (key in exclude) {
 
-                 return null;
 
-             }
 
-             var b = brikz[key], bak = backup[key];
 
-             mixin(null, api, api);
 
-             while (typeof b === "function") {
 
-                 (b.deps || []).forEach(ensure);
 
-                 b = new b(brikz, api, bak);
 
-             }
 
-             brikz[key] = b;
 
-             if (b && !chk[key]) {
 
-                 chk[key] = true;
 
-                 order.push(b);
 
-             }
 
-             if (b && !b[apiKey]) {
 
-                 b[apiKey] = mixin(api, {});
 
-             }
 
-         }
 
-         Object.keys(brikz).forEach(ensure);
 
-         mixin(oapi, mixin(null, api, api));
 
-         order.forEach(function (brik) {
 
-             mixin(brik[apiKey] || {}, api);
 
-         });
 
-         order.forEach(function (brik) {
 
-             if (brik[initKey]) {
 
-                 brik[initKey]();
 
-                 if (brik[initKey].once) {
 
-                     delete brik[initKey];
 
-                 }
 
-             }
 
-         });
 
-         backup = mixin(brikz, {});
 
-     };
 
- }
 
- return Brikz;
 
- });
 
 
  |