	let onBoss = false;
	let stars = 0;
	task StartBossSystem(numstars) {
		onBoss = true;
		stars = numstars;
		while(GetEventStepEx!=2) { yield; }
		if(GetCommonDataDefaultEx("Config", "Boss Effects", true)) {
			StartBossCircles;
		}
		while(OnEventEx) { yield; }
		if(GetCommonDataDefaultEx("Config", "Boss Effects", true)) {
			StartBossName;
			StartBossStars;
			StartBossAura;
			StartBossTimer;
		}
		StartBossLifebarWhite;
		CreateBossMarker;
	}
	task StartBossName {
		let obj = Obj_Create(OBJ_EFFECT);
		Obj_SetPosition(obj, GetClipMinX+4, GetClipMinY+12);
		ObjEffect_SetPrimitiveType(obj, PRIMITIVE_TRIANGLELIST);
		ObjEffect_SetLayer(obj, 7);
		ObjEffect_SetTexture(obj, hudenemy);
		ObjEffect_CreateVertex(obj, 12);
		ascent(i in 0..2) {
			ObjEffect_SetVertexUV(obj, 0+i*6, 0, 0+i*16);
			ObjEffect_SetVertexUV(obj, 1+i*6, 128, 0+i*16);
			ObjEffect_SetVertexUV(obj, 2+i*6, 128, 16+i*16);
			ObjEffect_SetVertexUV(obj, 3+i*6, 0, 0+i*16);
			ObjEffect_SetVertexUV(obj, 4+i*6, 0, 16+i*16);
			ObjEffect_SetVertexUV(obj, 5+i*6, 128, 16+i*16);
			ObjEffect_SetVertexXY(obj, 0+i*6, 0, 0+i*12);
			ObjEffect_SetVertexXY(obj, 1+i*6, 128, 0+i*12);
			ObjEffect_SetVertexXY(obj, 2+i*6, 128, 16+i*12);
			ObjEffect_SetVertexXY(obj, 3+i*6, 0, 0+i*12);
			ObjEffect_SetVertexXY(obj, 4+i*6, 0, 16+i*12);
			ObjEffect_SetVertexXY(obj, 5+i*6, 128, 16+i*12);
		}
		task HandleAlpha {
			ascent(i in 0..61) {
				ascent(j in 0..12) { ObjEffect_SetVertexColor(obj, j, 255*i/60, 255, 255, 255); }
				yield;
			}
			while(onBoss) { yield; }
			descent(i in 0..30) {
				ascent(j in 0..12) { ObjEffect_SetVertexColor(obj, j, 255*i/30, 255, 255, 255); }
				yield;
			}
			Obj_Delete(obj);
		} HandleAlpha;
		task Move {
			while(!Obj_BeDeleted(obj)) {
				Obj_SetX(obj, Obj_GetX(obj)+([36, -64][GetCommonDataDefault("Being Koishi", false)]-Obj_GetX(obj))/4);
				yield;
			}
		} Move;
	}
	task StartBossStars {
		let obj = Obj_Create(OBJ_EFFECT);
		Obj_SetPosition(obj, GetClipMinX+4, GetClipMinY+12+24);
		ObjEffect_SetPrimitiveType(obj, PRIMITIVE_TRIANGLELIST);
		ObjEffect_SetLayer(obj, 7);
		ObjEffect_SetTexture(obj, numbers);
		ObjEffect_CreateVertex(obj, 3);
		task HandleNumberOfStars { while(onBoss) {
			ObjEffect_ResizeVertexCount(obj, stars*6);
			ascent(i in 0..stars) {
				ObjEffect_SetVertexUV(obj, 0+i*6, 160, 0);
				ObjEffect_SetVertexUV(obj, 1+i*6, 176, 0);
				ObjEffect_SetVertexUV(obj, 2+i*6, 176, 16);
				ObjEffect_SetVertexUV(obj, 3+i*6, 160, 0);
				ObjEffect_SetVertexUV(obj, 4+i*6, 160, 16);
				ObjEffect_SetVertexUV(obj, 5+i*6, 176, 16);
				ObjEffect_SetVertexXY(obj, 0+i*6, 0+12*i, 0);
				ObjEffect_SetVertexXY(obj, 1+i*6, 16+12*i, 0);
				ObjEffect_SetVertexXY(obj, 2+i*6, 16+12*i, 16);
				ObjEffect_SetVertexXY(obj, 3+i*6, 0+12*i, 0);
				ObjEffect_SetVertexXY(obj, 4+i*6, 0+12*i, 16);
				ObjEffect_SetVertexXY(obj, 5+i*6, 16+12*i, 16);
			}
			yield;
		} } HandleNumberOfStars;
		task HandleAlpha {
			ascent(i in 0..61) {
				ascent(j in 0..stars*6) { ObjEffect_SetVertexColor(obj, j, 255*i/60, 255, 255, 255); }
				yield;
			}
			while(onBoss) { yield; }
			Obj_Delete(obj);
		} HandleAlpha;
		task Move {
			while(!Obj_BeDeleted(obj)) {
				Obj_SetX(obj, Obj_GetX(obj)+([36, -64][GetCommonDataDefault("Being Koishi", false)]-Obj_GetX(obj))/4);
				yield;
			}
		} Move;
	}
	task StartBossLifebarBase {
		let obj = Obj_Create(OBJ_EFFECT);
		Obj_SetPosition(obj, GetCenterX, GetClipMinY);
		ObjEffect_SetPrimitiveType(obj, PRIMITIVE_TRIANGLEFAN);
		ObjEffect_SetLayer(obj, 7);
		ObjEffect_SetTexture(obj, lifebarbase);
		ObjEffect_CreateVertex(obj, 4);
			ObjEffect_SetVertexUV(obj, 0, 0, 0);
			ObjEffect_SetVertexUV(obj, 1, 384, 0);
			ObjEffect_SetVertexUV(obj, 2, 384, 16);
			ObjEffect_SetVertexUV(obj, 3, 0, 16);
			ObjEffect_SetVertexXY(obj, 0, -192, 0);
			ObjEffect_SetVertexXY(obj, 1, 192, 0);
			ObjEffect_SetVertexXY(obj, 2, 192, 16);
			ObjEffect_SetVertexXY(obj, 3, -192, 16);
		task HandleAlpha {
			ascent(i in 0..61) {
				ascent(j in 0..4) { ObjEffect_SetVertexColor(obj, j, 255*i/60, 255, 255, 255); }
				yield;
			}
			while(onBoss) { yield; }
			descent(i in 0..30) {
				ObjEffect_SetScale(obj, i/30, 1);
				yield;
			}
			Obj_Delete(obj);
		} HandleAlpha;
	}
	task StartBossLifebarWhite {
		let obj2 = Obj_Create(OBJ_EFFECT);
		Obj_SetPosition(obj2, GetClipMinX+12, GetClipMinY+6);
		ObjEffect_SetTexture(obj2, lifebarwhite);
		ObjEffect_SetLayer(obj2, 7);
		ObjEffect_SetPrimitiveType(obj2, PRIMITIVE_TRIANGLEFAN);
		ObjEffect_CreateVertex(obj2, 4);
		ascent(i in 0..4) { ObjEffect_SetVertexColor(obj2, i, 255, 100, 100, 100); }
		let obj = Obj_Create(OBJ_EFFECT);
		Obj_SetPosition(obj, GetClipMinX+10, GetClipMinY+4);
		ObjEffect_SetTexture(obj, lifebarwhite);
		ObjEffect_SetLayer(obj, 7);
		ObjEffect_SetPrimitiveType(obj, PRIMITIVE_TRIANGLEFAN);
		ObjEffect_CreateVertex(obj, 4);
		let s = 0;
		function lifeReserve {
			alternative(GetCommonData("Life Type"))
			case(0) {
				alternative(GetCommonData("Life Type Current"))
				case(0) { return 48/364; }
				others { return 0/364; }
			}
			others {
				return 0/364;
			}
		}
		function lifeCurrent {
			alternative(GetCommonData("Life Type"))
			case(0) {
				alternative(GetCommonData("Life Type Current"))
				case(0) { return 316/364; }
				others { return 48/364; }
			}
			others {
				return 364/364;
			}
		}
		while(onBoss) {
			ObjEffect_SetVertexUV(obj, 0, 0, 0+8*GetCommonData("Life Type"));
			ObjEffect_SetVertexUV(obj, 3, 0, 4+8*GetCommonData("Life Type"));
			ObjEffect_SetVertexXY(obj, 0, 0, 0);
			ObjEffect_SetVertexXY(obj, 3, 0, 4);
			ObjEffect_SetVertexUV(obj2, 0, 0, 24+0);
			ObjEffect_SetVertexUV(obj2, 3, 0, 24+4);
			ObjEffect_SetVertexXY(obj2, 0, 0, 0);
			ObjEffect_SetVertexXY(obj2, 3, 0, 4);
			let ratio = [GetCommonData("Life Master")/GetCommonData("Life Master Max"),GetCommonData("Boss Timer")/GetCommonData("Boss Timer Max")][GetCommonData("Life Type")==2];
			let lR = lifeReserve+lifeCurrent*ratio;
			ObjEffect_SetVertexUV(obj, 1, 364*s*lR, 0+8*GetCommonData("Life Type"));
			ObjEffect_SetVertexUV(obj, 2, 364*s*lR, 4+8*GetCommonData("Life Type"));
			ObjEffect_SetVertexXY(obj, 1, 364*s*lR, 0);
			ObjEffect_SetVertexXY(obj, 2, 364*s*lR, 4);
			ObjEffect_SetVertexUV(obj2, 1, 364*s*lR, 24+0);
			ObjEffect_SetVertexUV(obj2, 2, 364*s*lR, 24+4);
			ObjEffect_SetVertexXY(obj2, 1, 364*s*lR, 0);
			ObjEffect_SetVertexXY(obj2, 2, 364*s*lR, 4);
			if(s < 1 && GetCommonData("Life Type Current") == 0) { s+=1/60; } else { s = 1; }
			if(GetCommonData("Lifebar Length Reset")==1) { s=0; SetCommonData("Lifebar Length Reset", 0); }
			yield;
		}
		Obj_Delete(obj);
		Obj_Delete(obj2);
	}
	task StartBossCircles {
		let obj = Obj_Create(OBJ_EFFECT);
		Obj_SetPosition(obj, 0, 0);
		ObjEffect_SetPrimitiveType(obj, PRIMITIVE_TRIANGLELIST);
		ObjEffect_SetLayer(obj, 1);
		ObjEffect_SetTexture(obj, magicCircle);
		ObjEffect_CreateVertex(obj, 12);
		ascent(i in 0..2) {
			ObjEffect_SetVertexUV(obj, 0+i*6, 0, 0);
			ObjEffect_SetVertexUV(obj, 1+i*6, 128, 0);
			ObjEffect_SetVertexUV(obj, 2+i*6, 128, 128);
			ObjEffect_SetVertexUV(obj, 3+i*6, 0, 0);
			ObjEffect_SetVertexUV(obj, 4+i*6, 0, 128);
			ObjEffect_SetVertexUV(obj, 5+i*6, 128, 128);
		}
		let rad = 0;
		let angle = 0;
		let alpha = 1;
		task HandleSpinning {
			descent(i in 0..60) { rad = 2*cos(i*90/60); angle=360*(cos(i*90/60)-1); yield; }
			let angles = 0;
			let angler = 0;
			while(onBoss) {
				angle+=9*angles;
				angler+=3*angles;
				rad=2+3/4*sin(angler);
				if(angles < 1) { angles+=1/60; } else { angles = 1; }
			yield; }
			descent(i in 0..60) { rad=(2+3/4*sin(angler))*i/60; alpha = i/60; angle+=9; angler+=3; yield; }
			Obj_Delete(obj);
		} HandleSpinning;
		let x1 = GetCommonData("X Satori");
		let y1 = GetCommonData("Y Satori");
		let x2 = GetCommonData("X Koishi");
		let y2 = GetCommonData("Y Koishi");
		while(!Obj_BeDeleted(obj)) {
			let angle2 = angle-135;
			ascent(i in 0..2) {
				let x = [x1, x2][i];
				let y = [y1, y2][i];
				ObjEffect_SetVertexXY(obj, 0+i*6, x+64*rad*cos(angle2), y+64*rad*sin(angle2));
				ObjEffect_SetVertexXY(obj, 1+i*6, x+64*rad*cos(angle2+90), y+64*rad*sin(angle2+90));
				ObjEffect_SetVertexXY(obj, 2+i*6, x+64*rad*cos(angle2+180), y+64*rad*sin(angle2+180));
				ObjEffect_SetVertexXY(obj, 3+i*6, x+64*rad*cos(angle2), y+64*rad*sin(angle2));
				ObjEffect_SetVertexXY(obj, 4+i*6, x+64*rad*cos(angle2+270), y+64*rad*sin(angle2+270));
				ObjEffect_SetVertexXY(obj, 5+i*6, x+64*rad*cos(angle2+180), y+64*rad*sin(angle2+180));
			}
			x1+=(GetCommonData("X Satori")-x1)/4;
			y1+=(GetCommonData("Y Satori")-y1)/4;
			if(!GetCommonDataDefault("Being Koishi", false)) {
				x2+=(GetCommonData("X Koishi")-x2)/4;
				y2+=(GetCommonData("Y Koishi")-y2)/4;
			} else {
				x2+=(GetPlayerX-x2)/4;
				y2+=(GetPlayerY-y2)/4;
			}
			ascent(i in 0..12) { ObjEffect_SetVertexColor(obj, i, 155*alpha, 255, 255, 255); }
			yield;
		}
	}
	task StartBossAura {
		while(onBoss) {
			CreateAura01;
			loop(2) {
				CreateAura02;
				yield;
			}
		}
	}
	task CreateAura01 {
		let obj = Obj_Create(OBJ_EFFECT); ObjEffect_SetPrimitiveType(obj, PRIMITIVE_TRIANGLEFAN);
		ObjEffect_SetRenderState(obj, ADD); ObjEffect_SetLayer(obj, 1);
		ObjEffect_SetTexture(obj, hudenemy); ObjEffect_CreateVertex(obj, 4);
		ObjEffect_SetVertexUV(obj, 0, 128, 0); ObjEffect_SetVertexUV(obj, 1, 176, 0);
		ObjEffect_SetVertexUV(obj, 2, 176, 47); ObjEffect_SetVertexUV(obj, 3, 128, 47);
		ObjEffect_SetVertexXY(obj, 0, -24, -48); ObjEffect_SetVertexXY(obj, 1, 24, -48);
		ObjEffect_SetVertexXY(obj, 2, 16, 0); ObjEffect_SetVertexXY(obj, 3, -16, 0);
		ObjEffect_SetAngle(obj, 0, 0, rand(-10,10));
		let obj2 = Obj_Create(OBJ_EFFECT); ObjEffect_SetPrimitiveType(obj2, PRIMITIVE_TRIANGLEFAN);
		ObjEffect_SetRenderState(obj2, ADD); ObjEffect_SetLayer(obj2, 1);
		ObjEffect_SetTexture(obj2, hudenemy); ObjEffect_CreateVertex(obj2, 4);
		ObjEffect_SetVertexUV(obj2, 0, 128, 0); ObjEffect_SetVertexUV(obj2, 1, 176, 0);
		ObjEffect_SetVertexUV(obj2, 2, 176, 47); ObjEffect_SetVertexUV(obj2, 3, 128, 47);
		ObjEffect_SetVertexXY(obj2, 0, -24, -48); ObjEffect_SetVertexXY(obj2, 1, 24, -48);
		ObjEffect_SetVertexXY(obj2, 2, 16, 0); ObjEffect_SetVertexXY(obj2, 3, -16, 0);
		ObjEffect_SetAngle(obj2, 0, 0, rand(-10,10));
		descent(i in 0..20) {
			ObjEffect_SetScale(obj, 2-i/20, 2.3-i/20);
			ObjEffect_SetScale(obj2, 2-i/20, 2.3-i/20);
			ascent(j in 0..4) {
				let alpha = sin(i*90/20);
				ObjEffect_SetVertexColor(obj, j, 255*alpha, 255*alpha, 0*alpha, 255*alpha);
				ObjEffect_SetVertexColor(obj2, j, 255*alpha, 0*alpha, 255*alpha, 0*alpha);
			}
			Obj_SetPosition(obj, GetCommonData("X Satori"), GetCommonData("Y Satori")+20);
			if(!GetCommonDataDefault("Being Koishi", false)) {
				Obj_SetPosition(obj2, GetCommonData("X Koishi"), GetCommonData("Y Koishi")+20);
			} else {
				Obj_SetPosition(obj2, GetPlayerX, GetPlayerY+20);
			}
			yield;
		}
		Obj_Delete(obj);
		Obj_Delete(obj2);
	}
	task CreateAura02 {
		let obj = Obj_Create(OBJ_EFFECT); ObjEffect_SetPrimitiveType(obj, PRIMITIVE_TRIANGLEFAN);
		ObjEffect_SetRenderState(obj, ADD); ObjEffect_SetLayer(obj, 1);
		ObjEffect_SetTexture(obj, hudenemy); ObjEffect_CreateVertex(obj, 4);
		ObjEffect_SetVertexUV(obj, 0, 176, 0); ObjEffect_SetVertexUV(obj, 1, 224, 0);
		ObjEffect_SetVertexUV(obj, 2, 224, 47); ObjEffect_SetVertexUV(obj, 3, 176, 47);
		ObjEffect_SetVertexXY(obj, 0, -24, -32); ObjEffect_SetVertexXY(obj, 1, 24, -32);
		ObjEffect_SetVertexXY(obj, 2, 24, 16); ObjEffect_SetVertexXY(obj, 3, -24, 16);
		ObjEffect_SetAngle(obj, 0, 0, rand(0,360));
		let obj2 = Obj_Create(OBJ_EFFECT); ObjEffect_SetPrimitiveType(obj2, PRIMITIVE_TRIANGLEFAN);
		ObjEffect_SetRenderState(obj2, ADD); ObjEffect_SetLayer(obj2, 1);
		ObjEffect_SetTexture(obj2, hudenemy); ObjEffect_CreateVertex(obj2, 4);
		ObjEffect_SetVertexUV(obj2, 0, 176, 0); ObjEffect_SetVertexUV(obj2, 1, 224, 0);
		ObjEffect_SetVertexUV(obj2, 2, 224, 47); ObjEffect_SetVertexUV(obj2, 3, 176, 47);
		ObjEffect_SetVertexXY(obj2, 0, -24, -32); ObjEffect_SetVertexXY(obj2, 1, 24, -32);
		ObjEffect_SetVertexXY(obj2, 2, 24, 16); ObjEffect_SetVertexXY(obj2, 3, -24, 16);
		ObjEffect_SetAngle(obj2, 0, 0, rand(0,360));
		descent(i in 0..20) {
			ObjEffect_SetScale(obj, 2-i/20, 2.3-i/20);
			ObjEffect_SetScale(obj2, 2-i/20, 2.3-i/20);
			ascent(j in 0..4) {
				let alpha = sin(i*90/20);
				ObjEffect_SetVertexColor(obj, j, 255*alpha, 255*alpha, 0*alpha, 255*alpha);
				ObjEffect_SetVertexColor(obj2, j, 255*alpha, 0*alpha, 255*alpha, 0*alpha);
			}
			Obj_SetPosition(obj, GetCommonData("X Satori"), GetCommonData("Y Satori")+8);
			if(!GetCommonDataDefault("Being Koishi", false)) {
				Obj_SetPosition(obj2, GetCommonData("X Koishi"), GetCommonData("Y Koishi")+8);
			} else {
				Obj_SetPosition(obj2, GetPlayerX, GetPlayerY+8);
			}
			yield;
		}
		Obj_Delete(obj);
		Obj_Delete(obj2);
	}
	
	task StartBossTimer {
		function IntString(let number) { let str = ToString(number); let str2 = ""; let i = 0; while (str[i] != '.') { str2 = str2 ~ [str[i]]; i++; } return str2; }
		function CharToNum(let number, let place) {
			alternative(IntString(number)[place])
			case('0') { return 0; } case('1') { return 1; } case('2') { return 2; } case('3') { return 3; } case('4') { return 4; }
			case('5') { return 5; } case('6') { return 6; } case('7') { return 7; } case('8') { return 8; } case('9') { return 9; }
			others { RaiseError("CharToNum is getting an invalid digit", "CharToNum error"); }
		}
		function GetNumberValue { return [GetCommonData("Boss Timer")/60, 99][GetCommonData("Boss Timer")/60 >= 99]; }
		let obj = Obj_Create(OBJ_EFFECT);
		ObjEffect_SetPrimitiveType(obj, PRIMITIVE_TRIANGLELIST);
		ObjEffect_SetLayer(obj, 7);
		ObjEffect_SetTexture(obj, numbers);
		ObjEffect_CreateVertex(obj, 4);
		Obj_SetY(obj, GetClipMinY+16);
		while(onBoss) {
			let tempnum = length(IntString(GetNumberValue));
			ObjEffect_ResizeVertexCount(obj, 6*tempnum);
			Obj_SetX(obj, GetClipMaxX-16-12*tempnum);
			ascent(i in 0..tempnum) {
				let tempnum2 = CharToNum(GetNumberValue, i)*16;
				ObjEffect_SetVertexUV(obj, i*6+0, 0+tempnum2, 0);
				ObjEffect_SetVertexUV(obj, i*6+1, 16+tempnum2, 0);
				ObjEffect_SetVertexUV(obj, i*6+2, 16+tempnum2, 16);
				ObjEffect_SetVertexUV(obj, i*6+3, 0+tempnum2, 0);
				ObjEffect_SetVertexUV(obj, i*6+4, 16+tempnum2, 16);
				ObjEffect_SetVertexUV(obj, i*6+5, 0+tempnum2, 16);
				ObjEffect_SetVertexXY(obj, i*6+0, 0+12*i, 0);
				ObjEffect_SetVertexXY(obj, i*6+1, 16+12*i, 0);
				ObjEffect_SetVertexXY(obj, i*6+2, 16+12*i, 16);
				ObjEffect_SetVertexXY(obj, i*6+3, 0+12*i, 0);
				ObjEffect_SetVertexXY(obj, i*6+4, 16+12*i, 16);
				ObjEffect_SetVertexXY(obj, i*6+5, 0+12*i, 16);
			}
			yield;
		}
		Obj_Delete(obj);
	}
	task CreateBossMarker {
		let obj = Obj_Create(OBJ_EFFECT);
		ObjEffect_SetPrimitiveType(obj, PRIMITIVE_TRIANGLEFAN);
		ObjEffect_SetLayer(obj, 8);
		ObjEffect_SetTexture(obj, hudenemy);
		ObjEffect_CreateVertex(obj, 4);
			ObjEffect_SetVertexUV(obj, 0, 0, 48);
			ObjEffect_SetVertexUV(obj, 1, 48, 48);
			ObjEffect_SetVertexUV(obj, 2, 48, 64);
			ObjEffect_SetVertexUV(obj, 3, 0, 64);
			ObjEffect_SetVertexXY(obj, 0, -24, 0);
			ObjEffect_SetVertexXY(obj, 1, 24, 0);
			ObjEffect_SetVertexXY(obj, 2, 24, 16);
			ObjEffect_SetVertexXY(obj, 3, -24, 16);
		let obj2 = Obj_Create(OBJ_EFFECT);
		ObjEffect_SetPrimitiveType(obj2, PRIMITIVE_TRIANGLEFAN);
		ObjEffect_SetLayer(obj2, 8);
		ObjEffect_SetTexture(obj2, hudenemy);
		ObjEffect_CreateVertex(obj2, 4);
			ObjEffect_SetVertexUV(obj2, 0, 0, 48);
			ObjEffect_SetVertexUV(obj2, 1, 48, 48);
			ObjEffect_SetVertexUV(obj2, 2, 48, 64);
			ObjEffect_SetVertexUV(obj2, 3, 0, 64);
			ObjEffect_SetVertexXY(obj2, 0, -24, 0);
			ObjEffect_SetVertexXY(obj2, 1, 24, 0);
			ObjEffect_SetVertexXY(obj2, 2, 24, 16);
			ObjEffect_SetVertexXY(obj2, 3, -24, 16);
		while(onBoss) {
			let cond;
			let x;
			let y;
			x = GetCommonData("X Satori"); y = GetCommonData("Y Satori");
			cond = (x > GetClipMinX && x < GetClipMaxX && y > GetClipMinY && y < GetClipMaxY);
			Obj_SetPosition(obj, x, GetClipMaxY+[16,0][cond]);
			if(!GetCommonDataDefault("Being Koishi", false)) {
				x = GetCommonData("X Koishi"); y = GetCommonData("Y Koishi");
			} else {
				x = GetPlayerX; y = GetPlayerY;
			}
			cond = (x > GetClipMinX && x < GetClipMaxX && y > GetClipMinY && y < GetClipMaxY);
			Obj_SetPosition(obj2, x, GetClipMaxY+[16,0][cond]);
			yield;
		}
		Obj_Delete(obj);
		Obj_Delete(obj2);
	}