function AdfObject(){this.Init()}AdfObject.superclass=null;AdfObject._GET_FUNCTION_NAME_REGEXP=/function\s+([\w\$][\w\$\d]*)\s*\(/;AdfObject.prototype={};AdfObject.prototype.constructor=AdfObject;
AdfObject.createSubclass=function(a,b,c,d){AdfAssert.assertFunction(a);AdfAssert.assertFunctionOrNull(b);AdfAssert.assertStringOrNull(c);void 0==b&&(b=AdfObject);AdfAssert.assert(a!=b,"Class can't extend itself");var e=AdfObject._tempSubclassConstructor;e.prototype=b.prototype;a.prototype=new e;a.prototype.constructor=a;a.superclass=a.superclass=b.prototype;c&&(a._typeName=c);void 0!==d&&(a._classInitializationState=d)};AdfObject._tempSubclassConstructor=function(){};
AdfObject.exportPrototypeSymbol=function(a,b){var c=null,d=null,e;for(e in b){c=e;d=b[e];break}var f=a.split(".");e=window[f[0]];f=f[2];if(c!=f&&null!=c){var g=e._r2o;g||(g={},e._r2o=g);g[c]=f;goog.exportSymbol(a,d)}};AdfObject.prototype.getClass=function(a){if(void 0==a)a=this;else if(null==a)return null;return a.constructor};AdfObject.prototype.adopt=function(a){AdfCollections.copyInto(this,a)};AdfObject.prototype.clone=function(){var a=new this.constructor;AdfCollections.copyInto(a,this);return a};
AdfObject.prototype.toString=function(){return this.toDebugString()};AdfObject.prototype.toDebugString=function(){return this.getTypeName()+" Object"};AdfObject.getTypeName=function(a){AdfAssert.assertFunction(a);var b=a._typeName;null==b&&(b=AdfObject._GET_FUNCTION_NAME_REGEXP.exec(a.toString())[1],a._typeName=b);return b};AdfObject.prototype.getTypeName=function(){return AdfObject.getTypeName(this.constructor)};
AdfObject.prototype.Init=function(){AdfAssert.DEBUG&&AdfAssert.assert(this.getTypeName,"Not an AdfObject");var a=this.constructor;a._initialized||AdfObject._initClasses(a)};AdfObject.ensureClassInitialization=function(a){AdfAssert.assertFunction(a);a._initialized||AdfObject._initClasses(a)};AdfObject.prototype.GetLazyMapProperty=function(a,b,c){void 0==c&&(c=this);var d=c[a];void 0==d&&b&&(d={},c[a]=d);return d};
AdfObject.prototype.GetLazyArrayProperty=function(a,b,c){void 0==c&&(c=this);var d=c[a];void 0==d&&b&&(d=[],c[a]=d);return d};AdfObject.prototype.equals=function(a){return this===a};AdfObject.prototype.createCallback=function(a){AdfAssert.assertFunction(a);AdfAssert.assertString(a[AdfAssert.FUNC_NAME_PROPERTY]);var b=function(){var a=arguments.callee;return a._func.apply(a._owner,arguments)};b._owner=this;b._func=a;return b};
AdfObject.createInitializedObject=function(){var a=arguments.length;AdfAssert.assert(0==a%2,"every key must have a value");for(var b={},c=0;c<a;c++){var d=arguments[c];AdfAssert.assertString(d);c++;b[d]=arguments[c]}return b};AdfObject._applyFunctionProperties=function(a,b){var c=AdfAssert.FUNC_NAME_PROPERTY,d=AdfAssert.CLASS_NAME_PROPERTY;for(currPropName in a){var e=a[currPropName];"function"!=typeof e||e.hasOwnProperty(c)||(e[c]=currPropName,e[d]=b)}};
AdfObject._initClasses=function(a){AdfAssert.DEBUG&&(AdfAssert.assertFunction(a),AdfAssert.assert(!a._initialized));a._initialized=!0;var b=a.superclass;b&&((b=b.constructor)&&!b._initialized&&AdfObject._initClasses(b),AdfObject._applyRenamesToSubclass(a));b=AdfObject.getTypeName(a);try{var c=a.InitClass;c||(c=a.InitClass);if(c){var d=a._classInitializationState;c.call(a,d);void 0!==d&&delete a._classInitializationState}}finally{AdfAssert.DEBUG&&(AdfObject._applyFunctionProperties(a.prototype,b),
AdfObject._applyFunctionProperties(a,"static "+b))}};AdfObject._applyRenamesToSubclass=function(a){if(AdfObject._r2o){var b=a.superclass;AdfObject._applyRenamesFromChain(a,b,b)}};
AdfObject._applyRenamesFromChain=function(a,b,c){if(b&&(b=b.constructor,AdfObject._applyRenamesFromChain(a,b.superclass,c),b=b._r2o))for(var d in b){var e=b[d];if(d!=e){var f=a.prototype;!AdfObject._isPrototypePropertyLocallySet(f,c,d)&&AdfObject._isPrototypePropertyLocallySet(f,c,e)?f[d]=f[e]:!AdfObject._isPrototypePropertyLocallySet(f,c,e)&&AdfObject._isPrototypePropertyLocallySet(f,c,d)&&(f[e]=f[d])}}};AdfObject._isPrototypePropertyLocallySet=function(a,b,c){return a[c]&&a[c]!==b[c]};