function $AdfObject$$() {
  this.Init();
}
$goog$exportSymbol$$("AdfObject", $AdfObject$$);
$AdfObject$$.$superclass$ = 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$$);
  void 0 == $baseClass$$ && ($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$$);
  void 0 !== $classInitializationState$$ && ($extendingClass$$.$_classInitializationState$ = $classInitializationState$$);
};
$goog$exportSymbol$$("AdfObject.createSubclass", $AdfObject$$.$createSubclass$);
$AdfObject$$.$_tempSubclassConstructor$ = function $$AdfObject$$$$_tempSubclassConstructor$$() {
};
$AdfObject$$.$exportPrototypeSymbol$ = function $$AdfObject$$$$exportPrototypeSymbol$$($name$$76$$, $valueMapping$$) {
  var $renamed$$ = null, $val$$11$$ = null, $constructor_prop$$4$$;
  for ($constructor_prop$$4$$ in $valueMapping$$) {
    $renamed$$ = $constructor_prop$$4$$;
    $val$$11$$ = $valueMapping$$[$constructor_prop$$4$$];
    break;
  }
  var $original_tokens$$7$$ = $name$$76$$.split(".");
  $constructor_prop$$4$$ = window[$original_tokens$$7$$[0]];
  $original_tokens$$7$$ = $original_tokens$$7$$[2];
  if ($renamed$$ != $original_tokens$$7$$ && null != $renamed$$) {
    var $renameMap$$ = $constructor_prop$$4$$.$_r2o$;
    $renameMap$$ || ($renameMap$$ = {}, $constructor_prop$$4$$.$_r2o$ = $renameMap$$);
    $renameMap$$[$renamed$$] = $original_tokens$$7$$;
    $goog$exportSymbol$$($name$$76$$, $val$$11$$);
  }
};
$goog$exportSymbol$$("AdfObject.exportPrototypeSymbol", $AdfObject$$.$exportPrototypeSymbol$);
$AdfObject$$.prototype.$getClass$ = function $$AdfObject$$$$$getClass$$($otherInstance$$) {
  if (void 0 == $otherInstance$$) {
    $otherInstance$$ = this;
  } else {
    if (null == $otherInstance$$) {
      return 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$;
  null == $typeName$$1$$ && ($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$$5$$, $createIfNonexistent$$, $otherInstance$$1$$) {
  void 0 == $otherInstance$$1$$ && ($otherInstance$$1$$ = this);
  var $property$$5$$ = $otherInstance$$1$$[$propName$$5$$];
  void 0 == $property$$5$$ && $createIfNonexistent$$ && ($property$$5$$ = {}, $otherInstance$$1$$[$propName$$5$$] = $property$$5$$);
  return $property$$5$$;
};
$AdfObject$$.$exportPrototypeSymbol$("AdfObject.prototype.GetLazyMapProperty", {$GetLazyMapProperty$:$AdfObject$$.prototype.$GetLazyMapProperty$});
$AdfObject$$.prototype.$GetLazyArrayProperty$ = function $$AdfObject$$$$$GetLazyArrayProperty$$($propName$$6$$, $createIfNonexistent$$1$$, $otherInstance$$2$$) {
  void 0 == $otherInstance$$2$$ && ($otherInstance$$2$$ = this);
  var $property$$6$$ = $otherInstance$$2$$[$propName$$6$$];
  void 0 == $property$$6$$ && $createIfNonexistent$$1$$ && ($property$$6$$ = [], $otherInstance$$2$$[$propName$$6$$] = $property$$6$$);
  return $property$$6$$;
};
$AdfObject$$.$exportPrototypeSymbol$("AdfObject.prototype.GetLazyArrayProperty", {$GetLazyArrayProperty$:$AdfObject$$.prototype.$GetLazyArrayProperty$});
$AdfObject$$.prototype.$equals$ = function $$AdfObject$$$$$equals$$($object$$8$$) {
  return this === $object$$8$$;
};
$AdfObject$$.$exportPrototypeSymbol$("AdfObject.prototype.equals", {$equals$:$AdfObject$$.prototype.$equals$});
$AdfObject$$.prototype.$createCallback$ = function $$AdfObject$$$$$createCallback$$($func$$6$$) {
  function $proxyFunction$$() {
    var $func$$6$$ = arguments.callee;
    return $func$$6$$.$_func$.apply($func$$6$$.$_owner$, arguments);
  }
  $AdfAssert$$.$assertFunction$($func$$6$$);
  $AdfAssert$$.$assertString$($func$$6$$[$AdfAssert$$.$FUNC_NAME_PROPERTY$]);
  $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$$33$$ = 0;$i$$33$$ < $argCount$$1$$;$i$$33$$++) {
    var $currKey$$1$$ = arguments[$i$$33$$];
    $AdfAssert$$.$assertString$($currKey$$1$$);
    $i$$33$$++;
    $newObject$$[$currKey$$1$$] = arguments[$i$$33$$];
  }
  return $newObject$$;
};
$goog$exportSymbol$$("AdfObject.createInitializedObject", $AdfObject$$.$createInitializedObject$);
$AdfObject$$.$_applyFunctionProperties$ = function $$AdfObject$$$$_applyFunctionProperties$$($target$$81$$, $className$$7$$) {
  var $funcNameProperty$$ = $AdfAssert$$.$FUNC_NAME_PROPERTY$, $classNameProperty$$ = $AdfAssert$$.$CLASS_NAME_PROPERTY$;
  for (currPropName in $target$$81$$) {
    var $currProp$$1$$ = $target$$81$$[currPropName];
    "function" != typeof $currProp$$1$$ || $currProp$$1$$.hasOwnProperty($funcNameProperty$$) || ($currProp$$1$$[$funcNameProperty$$] = currPropName, $currProp$$1$$[$classNameProperty$$] = $className$$7$$);
  }
};
$AdfObject$$.$_initClasses$ = function $$AdfObject$$$$_initClasses$$($currClass$$1$$) {
  $AdfAssert$$.$DEBUG$ && ($AdfAssert$$.$assertFunction$($currClass$$1$$), $AdfAssert$$.assert(!$currClass$$1$$.$_initialized$));
  $currClass$$1$$.$_initialized$ = !0;
  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$$);
      void 0 !== $initializationState$$ && 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$$];
};
