NS=function(){var a=0.1;var c=Class.$extend({__classvars__:{version:a,ns:"__global__::Namespace"},pkg:null,clearNS:null,alias:null,fullQualifiedClassName:null,__init__:function(d){if(!d){d=this.__classvars__.ns}var e=d.replace(/(::|[.])/gi," ").split(" ");if(e.length>1){this.alias=e.pop();this.pkg=e.join(".");this.clearNS=this.pkg+"::"+this.alias;this.fullQualifiedClassName=this.pkg+"."+this.alias}else{this.alias=e.pop();this.pkg="";this.clearNS=this.fullQualifiedClassName=this.alias}},toString:function(){return"[Object "+this.alias+" > "+this.clearNS+"]"}});var b=c.$extend({__classvars__:{$ns:{},version:a,ns:"__global__::Namespaces",register:function(f,j){if(!!j){if(typeof j==="function"){j=j.constructor;j.constructor.ns=f}}else{if(f instanceof Class){j=f;f=f.$class.ns}else{if(typeof f==="function"){j=f.constructor;f=j.ns}else{throw new Error("should give an object for namespace association...")}}}f=new c(f);f.obj=j;if(f.pkg!=""){var h=f.pkg.split(".");var g=b.$ns;for(var e=0,d=h.length;e<d;e++){var k=h[e];if(!g[k]){g[k]={}}g=g[k]}g[f.alias]=b.$ns[f.fullQualifiedClassName]=b.$ns[f.clearNS]=j}else{b.$ns[f.alias]=j}return j},retrieve:function(d){return b.$ns[d]},toString:function(){return"[class "+this.ns+" v."+this.version}}});b.register("Namespace",b.register(c()));b.register("Namespaces",b.register(b()));return function(e,d){if(!!d){return b.register(e,d)}else{if(typeof e==="string"){return b.retrieve(e)}else{return b.register(e)}}}}();
