function $AdfObject$$() {
  this.Init()
}
$goog$exportSymbol$$("AdfObject", $AdfObject$$);
$AdfObject$$.$superclass$ = $JSCompiler_alias_NULL$$;
$goog$exportSymbol$$("AdfObject.superclass", $AdfObject$$.$superclass$);
$AdfObject$$.$_GET_FUNCTION_NAME_REGEXP$ = /function\s+([\w\$][\w\$\d]*)\s*\(/;
$AdfObject$$.prototype = {};
$AdfObject$$.prototype.constructor = $AdfObject$$;
$AdfObject$$.$createSubclass$ = function $$AdfObject$$$$createSubclass$$($extendingClass$$, $baseClass$$, $typeName$$, $classInitializationState$$) {
  $AdfAssert$$.$assertFunction$($extendingClass$$);
  $AdfAssert$$.$assertFunctionOrNull$($baseClass$$);
  $AdfAssert$$.$assertStringOrNull$($typeName$$);
  $baseClass$$ == $JSCompiler_alias_VOID$$ && ($baseClass$$ = $AdfObject$$);
  $AdfAssert$$.assert($extendingClass$$ != $baseClass$$, "Class can't extend itself");
  var $tempConstructor$$ = $AdfObject$$.$_tempSubclassConstructor$;
  $tempConstructor$$.prototype = $baseClass$$.prototype;
  $extendingClass$$.prototype = new $tempConstructor$$;
  $extendingClass$$.prototype.constructor = $extendingClass$$;
  $extendingClass$$.$superclass$ = $extendingClass$$.superclass = $baseClass$$.prototype;
  $typeName$$ && ($extendingClass$$.$_typeName$ = $typeName$$);
  $classInitializationState$$ !== $JSCompiler_alias_VOID$$ && ($extendingClass$$.$_classInitializationState$ = $classInitializationState$$)
};
$goog$exportSymbol$$("AdfObject.createSubclass", $AdfObject$$.$createSubclass$);
$AdfObject$$.$_tempSubclassConstructor$ = $JSCompiler_emptyFn$$();
$AdfObject$$.$exportPrototypeSymbol$ = function $$AdfObject$$$$exportPrototypeSymbol$$($name$$60$$, $valueMapping$$) {
  var $renamed$$ = $JSCompiler_alias_NULL$$, $val$$11$$ = $JSCompiler_alias_NULL$$, $constructor_prop$$4$$;
  for($constructor_prop$$4$$ in $valueMapping$$) {
    $renamed$$ = $constructor_prop$$4$$;
    $val$$11$$ = $valueMapping$$[$constructor_prop$$4$$];
    break
  }
  var $original_tokens$$1$$ = $name$$60$$.split(".");
  $constructor_prop$$4$$ = window[$original_tokens$$1$$[0]];
  $original_tokens$$1$$ = $original_tokens$$1$$[2];
  if(!($renamed$$ == $original_tokens$$1$$ || $renamed$$ == $JSCompiler_alias_NULL$$)) {
    var $renameMap$$ = $constructor_prop$$4$$.$_r2o$;
    $renameMap$$ || ($renameMap$$ = {}, $constructor_prop$$4$$.$_r2o$ = $renameMap$$);
    $renameMap$$[$renamed$$] = $original_tokens$$1$$;
    $goog$exportSymbol$$($name$$60$$, $val$$11$$)
  }
};
$goog$exportSymbol$$("AdfObject.exportPrototypeSymbol", $AdfObject$$.$exportPrototypeSymbol$);
$AdfObject$$.prototype.$getClass$ = function $$AdfObject$$$$$getClass$$($otherInstance$$) {
  if($otherInstance$$ == $JSCompiler_alias_VOID$$) {
    $otherInstance$$ = this
  }else {
    if($otherInstance$$ == $JSCompiler_alias_NULL$$) {
      return $JSCompiler_alias_NULL$$
    }
  }
  return $otherInstance$$.constructor
};
$AdfObject$$.$exportPrototypeSymbol$("AdfObject.prototype.getClass", {$getClass$:$AdfObject$$.prototype.$getClass$});
$AdfObject$$.prototype.$adopt$ = function $$AdfObject$$$$$adopt$$($theRawObject$$) {
  $AdfCollections$$.$copyInto$(this, $theRawObject$$)
};
$AdfObject$$.$exportPrototypeSymbol$("AdfObject.prototype.adopt", {$adopt$:$AdfObject$$.prototype.$adopt$});
$AdfObject$$.prototype.$clone$ = function $$AdfObject$$$$$clone$$() {
  var $clone$$2$$ = new this.constructor;
  $AdfCollections$$.$copyInto$($clone$$2$$, this);
  return $clone$$2$$
};
$AdfObject$$.$exportPrototypeSymbol$("AdfObject.prototype.clone", {$clone$:$AdfObject$$.prototype.$clone$});
$AdfObject$$.prototype.toString = function $$AdfObject$$$$toString$() {
  return this.$toDebugString$()
};
$AdfObject$$.$exportPrototypeSymbol$("AdfObject.prototype.toString", {toString:$AdfObject$$.prototype.toString});
$AdfObject$$.prototype.$toDebugString$ = function $$AdfObject$$$$$toDebugString$$() {
  return this.$getTypeName$() + " Object"
};
$AdfObject$$.$exportPrototypeSymbol$("AdfObject.prototype.toDebugString", {$toDebugString$:$AdfObject$$.prototype.$toDebugString$});
$AdfObject$$.$getTypeName$ = function $$AdfObject$$$$getTypeName$$($clazz$$) {
  $AdfAssert$$.$assertFunction$($clazz$$);
  var $typeName$$1$$ = $clazz$$.$_typeName$;
  $typeName$$1$$ == $JSCompiler_alias_NULL$$ && ($typeName$$1$$ = $AdfObject$$.$_GET_FUNCTION_NAME_REGEXP$.exec($clazz$$.toString())[1], $clazz$$.$_typeName$ = $typeName$$1$$);
  return $typeName$$1$$
};
$goog$exportSymbol$$("AdfObject.getTypeName", $AdfObject$$.$getTypeName$);
$AdfObject$$.prototype.$getTypeName$ = function $$AdfObject$$$$$getTypeName$$() {
  return $AdfObject$$.$getTypeName$(this.constructor)
};
$AdfObject$$.$exportPrototypeSymbol$("AdfObject.prototype.getTypeName", {$getTypeName$:$AdfObject$$.prototype.$getTypeName$});
$AdfObject$$.prototype.Init = function $$AdfObject$$$$Init$() {
  $AdfAssert$$.$DEBUG$ && $AdfAssert$$.assert(this.getTypeName, "Not an AdfObject");
  var $currClass$$ = this.constructor;
  $currClass$$.$_initialized$ || $AdfObject$$.$_initClasses$($currClass$$)
};
$AdfObject$$.$exportPrototypeSymbol$("AdfObject.prototype.Init", {Init:$AdfObject$$.prototype.Init});
$AdfObject$$.$ensureClassInitialization$ = function $$AdfObject$$$$ensureClassInitialization$$($clazz$$1$$) {
  $AdfAssert$$.$assertFunction$($clazz$$1$$);
  $clazz$$1$$.$_initialized$ || $AdfObject$$.$_initClasses$($clazz$$1$$)
};
$goog$exportSymbol$$("AdfObject.ensureClassInitialization", $AdfObject$$.$ensureClassInitialization$);
$AdfObject$$.prototype.$GetLazyMapProperty$ = function $$AdfObject$$$$$GetLazyMapProperty$$($propName$$3$$, $createIfNonexistent$$, $otherInstance$$1$$) {
  $otherInstance$$1$$ == $JSCompiler_alias_VOID$$ && ($otherInstance$$1$$ = this);
  var $property$$4$$ = $otherInstance$$1$$[$propName$$3$$];
  $property$$4$$ == $JSCompiler_alias_VOID$$ && $createIfNonexistent$$ && ($property$$4$$ = {}, $otherInstance$$1$$[$propName$$3$$] = $property$$4$$);
  return $property$$4$$
};
$AdfObject$$.$exportPrototypeSymbol$("AdfObject.prototype.GetLazyMapProperty", {$GetLazyMapProperty$:$AdfObject$$.prototype.$GetLazyMapProperty$});
$AdfObject$$.prototype.$GetLazyArrayProperty$ = function $$AdfObject$$$$$GetLazyArrayProperty$$($propName$$4$$, $createIfNonexistent$$1$$, $otherInstance$$2$$) {
  $otherInstance$$2$$ == $JSCompiler_alias_VOID$$ && ($otherInstance$$2$$ = this);
  var $property$$5$$ = $otherInstance$$2$$[$propName$$4$$];
  $property$$5$$ == $JSCompiler_alias_VOID$$ && $createIfNonexistent$$1$$ && ($property$$5$$ = [], $otherInstance$$2$$[$propName$$4$$] = $property$$5$$);
  return $property$$5$$
};
$AdfObject$$.$exportPrototypeSymbol$("AdfObject.prototype.GetLazyArrayProperty", {$GetLazyArrayProperty$:$AdfObject$$.prototype.$GetLazyArrayProperty$});
$AdfObject$$.prototype.$equals$ = function $$AdfObject$$$$$equals$$($object$$6$$) {
  return this === $object$$6$$
};
$AdfObject$$.$exportPrototypeSymbol$("AdfObject.prototype.equals", {$equals$:$AdfObject$$.prototype.$equals$});
$AdfObject$$.prototype.$createCallback$ = function $$AdfObject$$$$$createCallback$$($func$$6$$) {
  $AdfAssert$$.$assertFunction$($func$$6$$);
  $AdfAssert$$.$assertString$($func$$6$$[$AdfAssert$$.$FUNC_NAME_PROPERTY$]);
  var $proxyFunction$$ = new Function("var f\x3darguments.callee; return f._func.apply(f._owner, arguments);");
  $proxyFunction$$._owner = this;
  $proxyFunction$$._func = $func$$6$$;
  return $proxyFunction$$
};
$AdfObject$$.$exportPrototypeSymbol$("AdfObject.prototype.createCallback", {$createCallback$:$AdfObject$$.prototype.$createCallback$});
$AdfObject$$.$createInitializedObject$ = function $$AdfObject$$$$createInitializedObject$$() {
  var $argCount$$1$$ = arguments.length;
  $AdfAssert$$.assert(0 == $argCount$$1$$ % 2, "every key must have a value");
  for(var $newObject$$ = {}, $i$$26$$ = 0;$i$$26$$ < $argCount$$1$$;$i$$26$$++) {
    var $currKey$$1$$ = arguments[$i$$26$$];
    $AdfAssert$$.$assertString$($currKey$$1$$);
    $i$$26$$++;
    $newObject$$[$currKey$$1$$] = arguments[$i$$26$$]
  }
  return $newObject$$
};
$goog$exportSymbol$$("AdfObject.createInitializedObject", $AdfObject$$.$createInitializedObject$);
$AdfObject$$.$_applyFunctionProperties$ = function $$AdfObject$$$$_applyFunctionProperties$$($target$$68$$, $className$$6$$) {
  var $funcNameProperty$$ = $AdfAssert$$.$FUNC_NAME_PROPERTY$, $classNameProperty$$ = $AdfAssert$$.$CLASS_NAME_PROPERTY$;
  for(currPropName in $target$$68$$) {
    var $currProp$$1$$ = $target$$68$$[currPropName];
    "function" == typeof $currProp$$1$$ && !$currProp$$1$$.hasOwnProperty($funcNameProperty$$) && ($currProp$$1$$[$funcNameProperty$$] = currPropName, $currProp$$1$$[$classNameProperty$$] = $className$$6$$)
  }
};
$AdfObject$$.$_initClasses$ = function $$AdfObject$$$$_initClasses$$($currClass$$1$$) {
  $AdfAssert$$.$DEBUG$ && ($AdfAssert$$.$assertFunction$($currClass$$1$$), $AdfAssert$$.assert(!$currClass$$1$$.$_initialized$));
  $currClass$$1$$.$_initialized$ = $JSCompiler_alias_TRUE$$;
  var $superclass_superclassConstructor_typeName$$2$$ = $currClass$$1$$.$superclass$;
  $superclass_superclassConstructor_typeName$$2$$ && (($superclass_superclassConstructor_typeName$$2$$ = $superclass_superclassConstructor_typeName$$2$$.constructor) && !$superclass_superclassConstructor_typeName$$2$$.$_initialized$ && $AdfObject$$.$_initClasses$($superclass_superclassConstructor_typeName$$2$$), $AdfObject$$.$_applyRenamesToSubclass$($currClass$$1$$));
  $superclass_superclassConstructor_typeName$$2$$ = $AdfObject$$.$getTypeName$($currClass$$1$$);
  try {
    var $InitClassFunc$$ = $currClass$$1$$.$InitClass$;
    $InitClassFunc$$ || ($InitClassFunc$$ = $currClass$$1$$.InitClass);
    if($InitClassFunc$$) {
      var $initializationState$$ = $currClass$$1$$.$_classInitializationState$;
      $InitClassFunc$$.call($currClass$$1$$, $initializationState$$);
      $initializationState$$ !== $JSCompiler_alias_VOID$$ && delete $currClass$$1$$.$_classInitializationState$
    }
  }finally {
    $AdfAssert$$.$DEBUG$ && ($AdfObject$$.$_applyFunctionProperties$($currClass$$1$$.prototype, $superclass_superclassConstructor_typeName$$2$$), $AdfObject$$.$_applyFunctionProperties$($currClass$$1$$, "static " + $superclass_superclassConstructor_typeName$$2$$))
  }
};
$AdfObject$$.$_applyRenamesToSubclass$ = function $$AdfObject$$$$_applyRenamesToSubclass$$($currClass$$2$$) {
  if($AdfObject$$.$_r2o$) {
    var $ancestor$$ = $currClass$$2$$.$superclass$;
    $AdfObject$$.$_applyRenamesFromChain$($currClass$$2$$, $ancestor$$, $ancestor$$)
  }
};
$AdfObject$$.$_applyRenamesFromChain$ = function $$AdfObject$$$$_applyRenamesFromChain$$($currClass$$3$$, $ancestor$$1_renameMap$$1_superclass$$1$$, $immediateSuperclass$$) {
  if($ancestor$$1_renameMap$$1_superclass$$1$$ && ($ancestor$$1_renameMap$$1_superclass$$1$$ = $ancestor$$1_renameMap$$1_superclass$$1$$.constructor, $AdfObject$$.$_applyRenamesFromChain$($currClass$$3$$, $ancestor$$1_renameMap$$1_superclass$$1$$.$superclass$, $immediateSuperclass$$), $ancestor$$1_renameMap$$1_superclass$$1$$ = $ancestor$$1_renameMap$$1_superclass$$1$$.$_r2o$)) {
    for(var $alias$$ in $ancestor$$1_renameMap$$1_superclass$$1$$) {
      var $orig$$ = $ancestor$$1_renameMap$$1_superclass$$1$$[$alias$$];
      if($alias$$ != $orig$$) {
        var $prot$$ = $currClass$$3$$.prototype;
        !$AdfObject$$.$_isPrototypePropertyLocallySet$($prot$$, $immediateSuperclass$$, $alias$$) && $AdfObject$$.$_isPrototypePropertyLocallySet$($prot$$, $immediateSuperclass$$, $orig$$) ? $prot$$[$alias$$] = $prot$$[$orig$$] : !$AdfObject$$.$_isPrototypePropertyLocallySet$($prot$$, $immediateSuperclass$$, $orig$$) && $AdfObject$$.$_isPrototypePropertyLocallySet$($prot$$, $immediateSuperclass$$, $alias$$) && ($prot$$[$orig$$] = $prot$$[$alias$$])
      }
    }
  }
};
$AdfObject$$.$_isPrototypePropertyLocallySet$ = function $$AdfObject$$$$_isPrototypePropertyLocallySet$$($currClassPrototype$$, $superclassPrototype$$, $prop$$5$$) {
  return $currClassPrototype$$[$prop$$5$$] && $currClassPrototype$$[$prop$$5$$] !== $superclassPrototype$$[$prop$$5$$]
};
