const C3 = self.C3;
self.C3_GetObjectRefTable = function () {
	return [
		C3.Plugins.Sprite,
		C3.Behaviors.Physics,
		C3.Behaviors.Tween,
		C3.Behaviors.Sin,
		C3.Plugins.Text,
		C3.Behaviors.destroy,
		C3.Plugins.Particles,
		C3.Plugins.TiledBg,
		C3.Plugins.Touch,
		C3.Plugins.LocalStorage,
		C3.Plugins.Audio,
		C3.Plugins.System.Cnds.IsGroupActive,
		C3.Plugins.System.Cnds.OnLayoutStart,
		C3.Plugins.LocalStorage.Acts.SetItem,
		C3.JavaScriptInEvents.GameEvent_Event2_Act3,
		C3.Plugins.LocalStorage.Cnds.OnItemExists,
		C3.Plugins.System.Acts.SetVar,
		C3.Plugins.LocalStorage.Exps.ItemValue,
		C3.Plugins.Sprite.Acts.SetAnimFrame,
		C3.Plugins.System.Cnds.CompareVar,
		C3.Plugins.Audio.Acts.SetSilent,
		C3.Plugins.System.Cnds.Else,
		C3.Plugins.Touch.Cnds.OnTapGestureObject,
		C3.Plugins.Audio.Acts.Play,
		C3.Behaviors.Tween.Acts.TweenTwoProperties,
		C3.Plugins.System.Acts.Wait,
		C3.Plugins.System.Acts.RestartLayout,
		C3.Behaviors.Physics.Acts.SetWorldGravity,
		C3.Plugins.Sprite.Acts.Destroy,
		C3.Plugins.Text.Acts.Destroy,
		C3.Plugins.Particles.Acts.Destroy,
		C3.Plugins.Text.Acts.SetVisible,
		C3.Plugins.System.Cnds.EveryTick,
		C3.Plugins.Text.Cnds.IsVisible,
		C3.Plugins.Text.Acts.SetText,
		C3.Plugins.Sprite.Cnds.OnCollision,
		C3.Behaviors.Physics.Acts.ApplyImpulseAtAngle,
		C3.Plugins.Touch.Cnds.OnTouchStart,
		C3.Plugins.Touch.Cnds.IsTouchingObject,
		C3.Behaviors.Physics.Acts.SetVelocity,
		C3.Plugins.Sprite.Cnds.CompareY,
		C3.Plugins.Sprite.Exps.Y,
		C3.Plugins.System.Acts.AddVar,
		C3.Plugins.Sprite.Acts.Spawn,
		C3.Plugins.Particles.Acts.SetAngle,
		C3.Behaviors.Tween.Acts.TweenOneProperty,
		C3.JavaScriptInEvents.GameEvent_Event24_Act8,
		C3.Plugins.Sprite.Cnds.PickParent,
		C3.Plugins.Sprite.Cnds.OnDestroyed,
		C3.Plugins.System.Acts.CreateObject,
		C3.Plugins.System.Exps.random,
		C3.Plugins.Sprite.Acts.SetMirrored,
		C3.Plugins.Sprite.Acts.ZMoveToObject
	];
};
self.C3_JsPropNameTable = [
	{Physics: 0},
	{Tween: 0},
	{Sine: 0},
	{basket_bg: 0},
	{basket_collision: 0},
	{basket_wall_collision: 0},
	{tx_plus_score: 0},
	{basket_line: 0},
	{DestroyOutsideLayout: 0},
	{ball: 0},
	{ground: 0},
	{part_basket: 0},
	{tx_score: 0},
	{tx_hint: 0},
	{bg_tb: 0},
	{bg_obj: 0},
	{shadow_ball: 0},
	{bg_visual: 0},
	{Touch: 0},
	{LocalStorage: 0},
	{Audio: 0},
	{b_sound: 0},
	{b_restart: 0},
	{sound: 0},
	{apiHandler: 0},
	{score: 0},
	{score_best: 0},
	{side: 0},
	{jump_power: 0}
];

self.InstanceType = {
	basket_bg: class extends self.ISpriteInstance {},
	basket_collision: class extends self.ISpriteInstance {},
	basket_wall_collision: class extends self.ISpriteInstance {},
	tx_plus_score: class extends self.ITextInstance {},
	basket_line: class extends self.ISpriteInstance {},
	ball: class extends self.ISpriteInstance {},
	ground: class extends self.ISpriteInstance {},
	part_basket: class extends self.IParticlesInstance {},
	tx_score: class extends self.ITextInstance {},
	tx_hint: class extends self.ITextInstance {},
	bg_tb: class extends self.ITiledBackgroundInstance {},
	bg_obj: class extends self.ISpriteInstance {},
	shadow_ball: class extends self.ISpriteInstance {},
	bg_visual: class extends self.ISpriteInstance {},
	Touch: class extends self.IInstance {},
	LocalStorage: class extends self.IInstance {},
	Audio: class extends self.IInstance {},
	b_sound: class extends self.ISpriteInstance {},
	b_restart: class extends self.ISpriteInstance {}
}