Mercurial > hg > Game > Cerium
changeset 360:4430f0bff5cb draft
add vacuum "-sg 16"
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TaskManager/Test/test_render/game_over.cpp Fri Jul 17 22:50:06 2009 +0900 @@ -0,0 +1,42 @@ +#include "SceneGraphRoot.h" +#include "vacuum.h" +#include "SGList.h" + + +void +gameover_scene(int w,int h,SceneGraphPtr node) +{ + + SceneGraphPtr over; + + over = sgroot->createSceneGraph(GAMEOVER); + over->xyz[0] = w/2; + over->xyz[1] = h/2; + over->set_move_collision(gameover_idle,gameover_collision); + node->addBrother(over); +} + +void +gameover_idle(SceneGraphPtr node,int screen_w,int screen_h) +{ +} + +void +gameover_collision(SceneGraphPtr node,int screen_w,int screen_h,SceneGraphPtr tree) +{ + + Pad *pad = sgroot->getController(); + + if(pad->start.isPush()) { + + SceneGraphPtr title; + + title = sgroot->createSceneGraph(TITLE); + title->xyz[0] = screen_w/2; + title->xyz[1] = screen_h/2; + title->set_move_collision(no_move_idle, title_collision); + sgroot->setSceneData(title); + + } + +}
--- a/TaskManager/Test/test_render/task/DrawSpan.cpp Fri Jul 17 17:16:42 2009 +0900 +++ b/TaskManager/Test/test_render/task/DrawSpan.cpp Fri Jul 17 22:50:06 2009 +0900 @@ -132,67 +132,32 @@ return hash->get(addr); } -void +TilePtr DrawSpan::set_rgb(uint32 *addr, int tag) { TilePtr tile; -#if 0 - if (isAvailableTile(addr)) { - return; - } -#endif tile = tileList->nextTile(); + uint32 *old_addr = tile->texture_addr; + smanager->dma_load(tile->pixel, (uint32)addr, + sizeof(uint32)*TEXTURE_BLOCK_SIZE, tag); /** * FIFO なので、もし前のが残っていれば削除 */ - hash->remove(tile->texture_addr); + + hash->remove(old_addr); tile->texture_addr = addr; hash->put(tile->texture_addr, tile); - smanager->dma_load(tile->pixel, (uint32)addr, - sizeof(uint32)*TEXTURE_BLOCK_SIZE, tag); + + return tile; } -#if 0 -/** - * - */ -void -DrawSpan::set_rgbs(uint32 *cur_addr, uint32 *max_addr, int wait_tag) +uint32 +DrawSpan::get_rgb(int tx, int ty, TilePtr tile) { - uint32 curp = (uint32)cur_addr; - uint32 maxp = (uint32)max_addr; - uint32 startp = curp; - uint32 diff = sizeof(int)*TEXTURE_BLOCK_SIZE; - int length = (int)maxp-(int)curp; - - int cmp = (length < 0); - -#if 1 - length += cmp*(-1)*length*2; - startp = cmp*maxp + !cmp*curp; -#else - if (length < 0) { - length = -length; - startp = maxp; - } -#endif - - for (int i = 0; i <= length; i += diff) { - set_rgb((uint32*)(startp + i), wait_tag); - } -} -#endif - -uint32 -DrawSpan::get_rgb(int tx, int ty, uint32 *addr) -{ - TilePtr tile; - - tile = hash->get(addr); return tile->pixel[(TEXTURE_SPLIT_PIXEL)*ty+tx]; } @@ -269,10 +234,10 @@ */ void DrawSpan::updateBuffer(float zpos, int rangex, int x, int y, int tex_x, int tex_y, - float normal_x, float normal_y, float normal_z, uint32 *tex_addr) + float normal_x, float normal_y, float normal_z, TilePtr tile) { - int color = get_rgb(tex_x, tex_y, tex_addr); + int color = get_rgb(tex_x, tex_y, tile); /*下位4bitを抽出*/ int alpha = color & 0x000F; /*完全に透けているか判断*/ @@ -337,15 +302,16 @@ tex_localx = tex_xpos % TEXTURE_SPLIT_PIXEL; tex_localy = tex_ypos % TEXTURE_SPLIT_PIXEL; - if (!isAvailableTile(tex_addr)) { - set_rgb(tex_addr, wait_tag); + TilePtr tile; + if (!(tile = isAvailableTile(tex_addr))) { + tile = set_rgb(tex_addr, wait_tag); smanager->dma_wait(wait_tag); //return startx; } updateBuffer(zpos, rangex, localx, localy, tex_localx, tex_localy, - normal_x,normal_y,normal_z,tex_addr); + normal_x,normal_y,normal_z,tile); } return -1; @@ -438,118 +404,21 @@ tex_localx = tex_xpos % TEXTURE_SPLIT_PIXEL; tex_localy = tex_ypos % TEXTURE_SPLIT_PIXEL; - if (!isAvailableTile(tex_addr)) { -#if 0 - // span が必要とするであろう tile を予想紙 - // set_rgbs で複数同時に load しようとしている図 - // まあ上手くいかなかったんだけど。。 - tex_x = tex1*(x_len-1-js)/(x_len-1) + tex2*js/(x_len-1); - if (tex_x > 1) tex_x = 1; - if (tex_x < 0) tex_x = 0; - tex_xpos = (int)((span->tex_width-1) * tex_x); - - uint32 *max_addr = getTile(tex_xpos, tex_ypos, - span->tex_width, span->tex_addr); - - set_rgbs(tex_addr, max_addr, wait_tag); - return js; -#else - set_rgb(tex_addr, wait_tag); + TilePtr tile; + if (!(tile = isAvailableTile(tex_addr))) { + tile = set_rgb(tex_addr, wait_tag); smanager->dma_wait(wait_tag); -#endif } updateBuffer(tex_z, rangex, localx, localy, tex_localx, tex_localy, - normal_x, normal_y, normal_z,tex_addr); + normal_x, normal_y, normal_z, tile); } } return ret; } -/** - * 長さが 1 より大きい Span の描画 (2段階目) - * - * 上にあるように、drawLine2 は今は動いてないです - * 正確には、js が startx ~ endx 範囲外にあり開始されないってところ - * - * @param span Span - * @param startx 描画開始範囲 - * @param endx 描画終了範囲 - * @param js 前回(drawLine1) で span のどこまで終わっているか - */ -void -DrawSpan::drawLine2(SpanPtr span, int startx, int endx, int js, int wait_tag) -{ - int x = span->x; - int rangex = endx - startx + 1; - int x_len = span->length_x; - - float normal_x = span->normal_x; - float normal_y = span->normal_y; - float normal_z = span->normal_z; - - - //int js = startx; - int je = (x + x_len > endx) ? endx - x : x_len; - - /* span->x に対応する Texture の座標 (tex_xpos, tex_ypos) */ - int tex_xpos, tex_ypos; - - // span の始点に対応する座標 (tex1, tey1) - float tex1 = span->tex_x1; - float tey1 = span->tex_y1; - - // span の終点に対応する座標 (tex2, tey2) - float tex2 = span->tex_x2; - float tey2 = span->tex_y2; - - // span の始点、終点に対応する z 座標 - float zpos1 = span->start_z; - float zpos2 = span->end_z; - - // Tile 内での座標 - int localx, localy = getLocalY(span->y-1); - - // (tex_xpos, tex_ypos) の、Tile 内(上の図参照)での座標と - // そのブロックのアドレス(MainMemory) - int tex_localx; - int tex_localy; - uint32 *tex_addr; - - float tex_x, tex_y, tex_z; - - smanager->dma_wait(wait_tag); - - for (int j = js; j <= je; j++) { - localx = getLocalX(x-1+j); - - tex_z = zpos1*(x_len-1-j)/(x_len-1) + zpos2*j/(x_len-1); - - tex_x = tex1*(x_len-1-j)/(x_len-1) + tex2*j/(x_len-1); - tex_y = tey1*(x_len-1-j)/(x_len-1) + tey2*j/(x_len-1); - if (tex_x > 1) tex_x = 1; - if (tex_x < 0) tex_x = 0; - if (tex_y > 1) tex_y = 1; - if (tex_y < 0) tex_y = 0; - tex_xpos = (int)((span->tex_width-1) * tex_x); - tex_ypos = (int)((span->tex_height-1) * tex_y); - - if (tex_z < zRow[localx + (rangex*localy)]) { - tex_addr = getTile(tex_xpos, tex_ypos, - span->tex_width, span->tex_addr); - tex_localx = tex_xpos % TEXTURE_SPLIT_PIXEL; - tex_localy = tex_ypos % TEXTURE_SPLIT_PIXEL; - - updateBuffer(tex_z, rangex, localx, localy, - tex_localx, tex_localy, - normal_x, normal_y, normal_z,tex_addr); - } - } -} - - int DrawSpan::infinity_light_calc(int color,float normal_x, float normal_y, float normal_z) { @@ -599,10 +468,6 @@ &DrawSpan::drawDot1, &DrawSpan::drawLine1 }; - void (DrawSpan::*drawFunc2[2])(SpanPtr, int, int, int, int) = { - &DrawSpan::drawDot2, &DrawSpan::drawLine2 - }; - uint32 display = smanager->get_param(0); int screen_width = smanager->get_param(1); int rangex_start = smanager->get_param(2); @@ -657,10 +522,6 @@ span, rangex_start, rangex_end, tl_tag[tl_tag_flg1]); next_span = span; - (this->*drawFunc2[(resume_span->length_x != 1)])( - resume_span, rangex_start, rangex_end, resume_span_x, - tl_tag[tl_tag_flg2]); - resume_span = next_span; resume_span_x = next_span_x;
--- a/TaskManager/Test/test_render/task/DrawSpan.h Fri Jul 17 17:16:42 2009 +0900 +++ b/TaskManager/Test/test_render/task/DrawSpan.h Fri Jul 17 22:50:06 2009 +0900 @@ -33,16 +33,16 @@ int* linebuf_init(int width, int height, int rgb); float* zRow_init(int width, int height); - void set_rgb(uint32 *addr, int wait_tag); + TilePtr set_rgb(uint32 *addr, int wait_tag); void set_rgbs(uint32 *addr, uint32 *max_addr, int wait_tag); - uint32 get_rgb(int tx, int ty, uint32 *addr); + uint32 get_rgb(int tx, int ty, TilePtr tile); TilePtr isAvailableTile(uint32 *addr); uint32* getTile(int tx, int ty, int tw, uint32 *tex_addr_top); int getTexBlock(int tx, int ty, int twidth); void writebuffer(unsigned int display, int width, int height, int screen_width); void updateBuffer(float zpos, int rangex, int x, int y, - int tex_x, int tex_y, float normal_x, float nomral_x, float normal_z, uint32 *tex_addr); + int tex_x, int tex_y, float normal_x, float nomral_x, float normal_z, TilePtr tile); void reboot(SpanPackPtr spack, int cur_span_x);
--- a/TaskManager/Test/test_render/task/DrawSpanRenew.cpp Fri Jul 17 17:16:42 2009 +0900 +++ b/TaskManager/Test/test_render/task/DrawSpanRenew.cpp Fri Jul 17 22:50:06 2009 +0900 @@ -138,12 +138,13 @@ tex_localx = tex_xpos % TEXTURE_SPLIT_PIXEL; tex_localy = tex_ypos % TEXTURE_SPLIT_PIXEL; - if (!isAvailableTile(tex_addr)) { - set_rgb(tex_addr, 0); + TilePtr tile; + if (!(tile = isAvailableTile(tex_addr))) { + tile = set_rgb(tex_addr, 0); smanager->dma_wait(0); } - rgb = get_rgb(tex_localx, tex_localy, tex_addr); + rgb = get_rgb(tex_localx, tex_localy, tile); zRow[localx + (rangex*localy)] = zpos; linebuf[localx + (rangex*localy)] = rgb; @@ -181,21 +182,14 @@ tex_localx = tex_xpos % TEXTURE_SPLIT_PIXEL; tex_localy = tex_ypos % TEXTURE_SPLIT_PIXEL; - if (!isAvailableTile(tex_addr)) { + TilePtr tile; + if (!(tile = isAvailableTile(tex_addr))) { spack->info.start = t; -#if 0 - set_rgbs(tex_addr, - getTile(span->tex_width-1, tex_ypos, - span->tex_width, span->tex_addr)); - reboot(spack, j); - goto FINISH; -#else - set_rgb(tex_addr, TEX_LOAD); + tile = set_rgb(tex_addr, TEX_LOAD); smanager->dma_wait(TEX_LOAD); -#endif } - rgb = get_rgb(tex_localx, tex_localy, tex_addr); + rgb = get_rgb(tex_localx, tex_localy, tile); zRow[localx + (rangex*localy)] = tex_z; linebuf[localx + (rangex*localy)] = rgb;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TaskManager/Test/test_render/title.cpp Fri Jul 17 22:50:06 2009 +0900 @@ -0,0 +1,28 @@ +#include "SceneGraphRoot.h" +#include "vacuum.h" +#include "SGList.h" + +void +title_collision(SceneGraphPtr node, int w, int h,SceneGraphPtr tree) +{ + + Pad *pad = sgroot->getController(); + + if(pad->start.isPush()) { + + SceneGraphPtr vacuum; + SceneGraphPtr back = sgroot->createSceneGraph(); + + vacuum = sgroot->createSceneGraph(BIGCUBE); + vacuum->xyz[0] = w/2; + vacuum->xyz[1] = h*0.8; + vacuum->set_move_collision(vacuum_move, vacuum_coll); + + back->addChild(vacuum); + + add_cubecollision_object(REDCUBE,vacuum,w,h); + + sgroot->setSceneData(back); + + } +}
--- a/TaskManager/Test/test_render/vacuum.cpp Fri Jul 17 17:16:42 2009 +0900 +++ b/TaskManager/Test/test_render/vacuum.cpp Fri Jul 17 22:50:06 2009 +0900 @@ -1,220 +1,174 @@ #include <math.h> +#include "vacuum.h" #include "SceneGraphRoot.h" #include "SGList.h" +#define ENCOUNT 55 +using namespace std; -static void cube_move_left(SceneGraphPtr node, int screen_w, int screen_h); -static void cube_move_right(SceneGraphPtr node, int screen_w, int screen_h); -static void cube_move_idle(SceneGraphPtr node, int screen_w, int screen_h); -static void cube_collision(SceneGraphPtr node, int screen_w, int screen_h, - SceneGraphPtr tree); -static void cube_split(SceneGraphPtr root); +static float vacuum_speed = 10.0f; + -static void vacuum_move(SceneGraphPtr node, int w, int h); -//static void vacuum_coll(SceneGraphPtr node, int w, int h); +/*オブジェクト毎にファイルを分けてみた + * + * + */ -static float vacuum_speed = 3.0f; + -static void -cube_move_left(SceneGraphPtr node, int screen_w, int screen_h) +void +no_move_idle(SceneGraphPtr node, int screen_w, int screen_h) { - node->xyz[0] -= node->stack_xyz[0]; -#if 0 - node->xyz[1] -= node->stack_xyz[0] * node->stack_xyz[1]; - node->xyz[2] -= node->stack_xyz[0] * node->stack_xyz[2]; -#else - node->xyz[1] += node->stack_xyz[1]; - //node->xyz[2] -= node->stack_xyz[2]; -#endif - if (node->xyz[0] < 0) { - node->set_move_collision(cube_move_right, cube_collision); - } - - if (node->xyz[1] < 0 || node->xyz[1] > screen_h) { - node->stack_xyz[1] = -node->stack_xyz[1]; - } - - //node->angle[0] += 2.0f; - //node->angle[1] += 2.0f * node->stack_xyz[1]; - //node->angle[2] += 2.0f * node->stack_xyz[2]; - - if (++node->frame > 60) { - cube_split(node); - } } -static void -cube_move_right(SceneGraphPtr node, int screen_w, int screen_h) +void +no_collision_idle(SceneGraphPtr node, int screen_w, int screen_h,SceneGraphPtr tree) { - node->xyz[0] += node->stack_xyz[0]; -#if 0 - node->xyz[1] -= node->stack_xyz[0] * node->stack_xyz[1]; - node->xyz[2] -= node->stack_xyz[0] * node->stack_xyz[2]; -#else - node->xyz[1] += node->stack_xyz[1]; -#endif - - if (node->xyz[0] > screen_w) { - node->set_move_collision(cube_move_left, cube_collision); - } - if (node->xyz[1] < 0 || node->xyz[1] > screen_h) { - node->stack_xyz[1] = -node->stack_xyz[1]; - } - - //node->angle[0] += 2.0f; - //node->angle[1] += 2.0f * node->stack_xyz[1]; - //node->angle[2] += 2.0f * node->stack_xyz[2]; - - if (++node->frame > 60) { - cube_split(node); - } } -static void -cube_split(SceneGraphPtr root) -{ - SceneGraphPtr p = root->clone(); - root->addBrother(p); - - root->set_move_collision(cube_move_left, cube_collision); - p->set_move_collision(cube_move_right, cube_collision); - - root->frame = 0; - p->frame = 0; - - p->xyz[0] = root->xyz[0] + 2; - p->xyz[1] = root->xyz[1]; - p->xyz[2] = root->xyz[2]; - - p->stack_xyz[0] = 2.0f; - p->stack_xyz[1] = random()%3-1; - p->stack_xyz[2] = random()%3-1; - - root->xyz[0] -= 2; - root->stack_xyz[0] = 2.0f; - root->stack_xyz[1] = random()%3-1; - root->stack_xyz[2] = 0.0f; - //root->stack_xyz[2] = random()%3-1; -} - - -static void -cube_move_idle(SceneGraphPtr node, int screen_w, int screen_h) +void +vacuum_coll(SceneGraphPtr node, int screen_w, int screen_h, + SceneGraphPtr tree) { Pad *pad = sgroot->getController(); - if (pad->circle.isPush()) { - cube_split(node); + if(node->frame%ENCOUNT == ENCOUNT-1) { + if(random()%2) { + add_cubecollision_object(REDCUBE,node,screen_w,screen_h); + } + else { + add_cubecollision_object(ENEMY,node,screen_w,screen_h); + } + } + + if (pad->cross.isHold()) { + SceneGraphIteratorPtr it = sgroot->getIterator(tree); + collision_red(it,node); + it = sgroot->getIterator(tree); + collision_purple(it,node,screen_w,screen_h); + } + + else if(pad->circle.isHold()) { + SceneGraphIteratorPtr it = sgroot->getIterator(tree); + lock_attack(node,it); + } + +} + +void +lock_attack(SceneGraphPtr node,SceneGraphIteratorPtr it) +{ + + SceneGraphPtr enemy; + SceneGraphPtr near_enemy = NULL; + float dx,dy,r,range = 100; + // Pad *pad = sgroot->getController(); + + for(;it->hasNext(ENEMY);) { + + it->next(ENEMY); + enemy = it->get(); + dx = enemy->xyz[0] - node->xyz[0]; + dy = enemy->xyz[1] - node->xyz[1]; + r = sqrt(dx*dx+dy*dy); + + if(range > r && enemy->stack_xyz[2] == 0) { + range = r; + near_enemy = enemy; + } + } + + + if(near_enemy != NULL) { + /*stack_xyz[2]をlockonフラグとして使うかな?*/ + SceneGraphPtr lockon; + SceneGraphPtr near_enemy_common_move = near_enemy->parent; + near_enemy->stack_xyz[2] = 1; + lockon = sgroot->createSceneGraph(LOCK); + lockon->set_move_collision(no_move_idle,lockon_collision); + //near_enemy_common_move->addChild(lockon); + near_enemy->addChild(lockon); + } + +} + +void +lockon_collision(SceneGraphPtr node,int w,int h,SceneGraphPtr tree) { + + Pad *pad = sgroot->getController(); + SceneGraphPtr lockon_enemy = node->parent; + + /* node->angle[0] = -lockon_enemy->angle[0]; + node->angle[1] = -lockon_enemy->angle[1]; + node->angle[2] = -lockon_enemy->angle[2];*/ + + if(pad->circle.isRelease()) { + lockon_enemy->remove(); + } + +} + + +void +vacuum_move(SceneGraphPtr node , int w, int h) +{ + Pad *pad = sgroot->getController(); + + if (pad->right.isHold() && w > node->xyz[0]) { + node->xyz[0] += vacuum_speed; + node->angle[0] += 2; + } else if (pad->left.isHold() && 0 < node->xyz[0]) { + node->xyz[0] -= vacuum_speed; + node->angle[0] -= 2; + } + + if (pad->up.isHold() && 0 < node->xyz[1]) { + node->xyz[1] -= vacuum_speed; + node->angle[1] -= 2; + } else if (pad->down.isHold() && h > node->xyz[1]) { + node->xyz[1] += vacuum_speed; + node->angle[1] += 2; + } + + if (pad->start.isPush()) { + node->xyz[0] = w/2; + node->xyz[1] = h*0.8; } } -static void -cube_collision(SceneGraphPtr node, int screen_w, int screen_h, - SceneGraphPtr tree) + + +/*cubeをランダムな場所に生成*/ +void +add_cubecollision_object(int id,SceneGraphPtr root,int w,int h) { + SceneGraphPtr object; + SceneGraphPtr common_move; + + common_move = sgroot->createSceneGraph(); + object = sgroot->createSceneGraph(id); + object->xyz[0] = random()%w; + object->xyz[1] = random()%h; + object->set_move_collision(no_move_idle,cube_collision); + //common_move->addChild(object); + root->addBrother(object); } -static void -vacuum_coll(SceneGraphPtr node, int screen_w, int screen_h, - SceneGraphPtr tree) -{ - SceneGraphIteratorPtr it = sgroot->getIterator(); - //xSceneGraphPtr bigm; - Pad *pad = sgroot->getController(); - float dx, dy, r; - float q = 0; - - if (pad->cross.isRelease()) { - return; - } - - return; - - for (; it->hasNext(MCUBE);) { - it->next(MCUBE); - SceneGraphPtr mcube = it->get(); - - dx = node->xyz[0] - mcube->xyz[0]; - dy = node->xyz[1] - mcube->xyz[1]; - - r = sqrt(dx*dx + dy*dy); - - if (r >= 1) q = 300/r; - - if (r < 50.0f) { - mcube->remove(); - continue; - } - - if (dx == 0) { - if(mcube->xyz[1] > node->xyz[1]) { - mcube->xyz[1] -= q; - } else if(mcube->xyz[1] < node->xyz[1]) { - mcube->xyz[1] += q; - } - } else { - if(mcube->xyz[0] > node->xyz[0]) { - mcube->xyz[0] -= q*cos(atan(dy/dx)); - mcube->xyz[1] -= q*sin(atan(dy/dx)); - mcube->stack_xyz[0] = -q*cos(atan(dy/dx)); - mcube->stack_xyz[1] = -q*sin(atan(dy/dx)); - } else if(mcube->xyz[0] < mcube->xyz[0]) { - mcube->xyz[0] += q*cos(atan(dy/dx)); - mcube->xyz[1] += q*sin(atan(dy/dx)); - mcube->stack_xyz[0] = -q*cos(atan(dy/dx)); - mcube->stack_xyz[1] = -q*sin(atan(dy/dx)); - } - } - } -} - -static void -vacuum_move(SceneGraphPtr node , int w, int h) -{ - Pad *pad = sgroot->getController(); - - if (pad->right.isHold()) { - node->xyz[0] += vacuum_speed; - } else if (pad->left.isHold()) { - node->xyz[0] -= vacuum_speed; - } - - if (pad->up.isHold()) { - node->xyz[1] -= vacuum_speed; - } else if (pad->down.isHold()) { - node->xyz[1] += vacuum_speed; - } - - if (pad->start.isPush()) { - node->xyz[0] = w/2; - node->xyz[1] = h*0.8; - } -} void -vacuum_init(int w, int h) +vacuum_init2(int w, int h) { - SceneGraphPtr cube; - SceneGraphPtr vacuum; - SceneGraphPtr back; + SceneGraphPtr title; - sgroot->createFromXMLfile("xml_file/mcube.xml"); + sgroot->createFromXMLfile("xml_file/gamecube.xml"); + sgroot->createFromXMLfile("xml_file/title.xml"); + sgroot->createFromXMLfile("xml_file/gameover.xml"); - cube = sgroot->createSceneGraph(MCUBE); - cube->xyz[0] = w/2; - cube->xyz[1] = h/2; - cube->xyz[2] = 0.0f; - cube->set_move_collision(cube_move_idle, cube_collision); + title = sgroot->createSceneGraph(TITLE); + title->xyz[0] = w/2; + title->xyz[1] = h/2; + title->set_move_collision(no_move_idle, title_collision); - vacuum = sgroot->createSceneGraph(BIGMCUBE); - vacuum->xyz[0] = w/2; - vacuum->xyz[1] = h*0.8; - vacuum->set_move_collision(vacuum_move, vacuum_coll); - - back = sgroot->createSceneGraph(); - back->addChild(vacuum); - back->addChild(cube); - - sgroot->setSceneData(back); + sgroot->setSceneData(title); }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TaskManager/Test/test_render/vacuum.h Fri Jul 17 22:50:06 2009 +0900 @@ -0,0 +1,24 @@ +#include "SGList.h" +#include "SceneGraphRoot.h" + +void cube_move_left(SceneGraphPtr node, int screen_w, int screen_h); +void cube_move_right(SceneGraphPtr node, int screen_w, int screen_h); +void no_move_idle(SceneGraphPtr node, int screen_w, int screen_h); +void cube_collision_idle(SceneGraphPtr node, int screen_w, int screen_h,SceneGraphPtr tree); +void cube_collision(SceneGraphPtr node, int screen_w, int screen_h,SceneGraphPtr tree); +void cube_split(SceneGraphPtr root,SceneGraphPtr tree); +void vacuum_move(SceneGraphPtr node, int w, int h); +void vacuum_coll(SceneGraphPtr node, int w, int h,SceneGraphPtr tree); +void title_idle(SceneGraphPtr node, int screen_w, int screen_h); +void title_collision(SceneGraphPtr node, int screen_w, int screen_h,SceneGraphPtr tree); +void scene_change(int w,int h,SceneGraphPtr node); +void gameover_idle(SceneGraphPtr node, int screen_w, int screen_h); +void gameover_collision(SceneGraphPtr node, int screen_w, int screen_h,SceneGraphPtr tree); +void collision_red(SceneGraphIteratorPtr it,SceneGraphPtr node); +void collision_purple(SceneGraphIteratorPtr it,SceneGraphPtr node,int w,int h); +void gameover_scene(int w,int h, SceneGraphPtr node); +void add_cubecollision_object(int id,SceneGraphPtr root,int w,int h); +void lock_attack(SceneGraphPtr node,SceneGraphIteratorPtr it); +void lockon_collision(SceneGraphPtr node,int w,int h,SceneGraphPtr tree); +void cube_rotate(SceneGraphPtr node,int w,int h); +
--- a/TaskManager/Test/test_render/viewer.cpp Fri Jul 17 17:16:42 2009 +0900 +++ b/TaskManager/Test/test_render/viewer.cpp Fri Jul 17 22:50:06 2009 +0900 @@ -92,10 +92,12 @@ extern void lcube_init(int, int); extern void direction_init(void); extern void init_position(int, int); -extern void vacuum_init(int w, int h); +//extern void vacuum_init(int w, int h); extern void untitled_init(void); extern void boss1_init(int w, int h); extern void init_gaplant(int w, int h); +extern void vacuum_init2(int w, int h); +extern void init_miku(int w, int h); void Viewer::run_init(const char *xml, int sg_number) @@ -139,7 +141,7 @@ init_position(this->width, this->height); break; case 11: - vacuum_init(this->width, this->height); + //vacuum_init(this->width, this->height); break; case 12: untitled_init(); @@ -150,6 +152,12 @@ case 14: init_gaplant(this->width, this->height); break; + case 15: + vacuum_init2(this->width, this->height); + break; + case 16: + init_miku(this->width, this->height); + break; default: node_init(); break;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TaskManager/Test/test_render/xml_file/gamecube.h Fri Jul 17 22:50:06 2009 +0900 @@ -0,0 +1,4 @@ +#define LOCK scene_graph +#define ENEMY scene_graph->next +#define REDCUBE scene_graph->next->next +#define BIGCUBE scene_graph->next->next->next
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TaskManager/Test/test_render/xml_file/gamecube.xml Fri Jul 17 22:50:06 2009 +0900 @@ -0,0 +1,1003 @@ +<?xml version="1.0"?> +<OBJECT-3D> + <surface name="LOCK" size="192" prim="Triangle" parent="NULL"> + <coordinate> + 4.642349 4.642349 0.000000 + 3.955683 3.955668 -0.000000 + 4.651387 3.107948 -0.000000 + 4.651387 3.107948 -0.000000 + 5.458826 3.647470 0.000000 + 4.642349 4.642349 0.000000 + 5.458826 3.647470 0.000000 + 4.651387 3.107948 -0.000000 + 5.168340 2.140790 -0.000000 + 5.168340 2.140790 -0.000000 + 6.065522 2.512421 0.000000 + 5.458826 3.647470 0.000000 + 6.065522 2.512421 0.000000 + 5.168340 2.140790 -0.000000 + 5.486679 1.091363 -0.000000 + 5.486679 1.091363 -0.000000 + 6.439124 1.280820 0.000000 + 6.065522 2.512421 0.000000 + 6.439124 1.280820 0.000000 + 5.486679 1.091363 -0.000000 + 5.594167 -0.000004 -0.000000 + 5.594167 -0.000004 -0.000000 + 6.565274 -0.000001 0.000000 + 6.439124 1.280820 0.000000 + 6.565274 -0.000001 0.000000 + 5.594167 -0.000004 -0.000000 + 5.486673 -1.091368 -0.000000 + 5.486673 -1.091368 -0.000000 + 6.439125 -1.280823 0.000000 + 6.565274 -0.000001 0.000000 + 6.439125 -1.280823 0.000000 + 5.486673 -1.091368 -0.000000 + 5.168334 -2.140791 -0.000000 + 5.168334 -2.140791 -0.000000 + 6.065522 -2.512423 0.000000 + 6.439125 -1.280823 0.000000 + 6.065522 -2.512423 0.000000 + 5.168334 -2.140791 -0.000000 + 4.651378 -3.107945 -0.000000 + 4.651378 -3.107945 -0.000000 + 5.458826 -3.647474 0.000000 + 6.065522 -2.512423 0.000000 + 5.458826 -3.647474 0.000000 + 4.651378 -3.107945 -0.000000 + 3.955672 -3.955662 -0.000000 + 3.955672 -3.955662 -0.000000 + 4.642349 -4.642354 0.000000 + 5.458826 -3.647474 0.000000 + 4.642349 -4.642354 0.000000 + 3.955672 -3.955662 -0.000000 + 3.107955 -4.651366 -0.000000 + 3.107955 -4.651366 -0.000000 + 3.647470 -5.458830 0.000000 + 4.642349 -4.642354 0.000000 + 3.647470 -5.458830 0.000000 + 3.107955 -4.651366 -0.000000 + 2.140800 -5.168321 -0.000000 + 2.140800 -5.168321 -0.000000 + 2.512419 -6.065526 0.000000 + 3.647470 -5.458830 0.000000 + 2.512419 -6.065526 0.000000 + 2.140800 -5.168321 -0.000000 + 1.091377 -5.486660 -0.000000 + 1.091377 -5.486660 -0.000000 + 1.280818 -6.439128 0.000000 + 2.512419 -6.065526 0.000000 + 1.280818 -6.439128 0.000000 + 1.091377 -5.486660 -0.000000 + 0.000013 -5.594151 -0.000000 + 0.000013 -5.594151 -0.000000 + -0.000004 -6.565279 0.000000 + 1.280818 -6.439128 0.000000 + -0.000004 -6.565279 0.000000 + 0.000013 -5.594151 -0.000000 + -1.091351 -5.486662 -0.000000 + -1.091351 -5.486662 -0.000000 + -1.280826 -6.439127 0.000000 + -0.000004 -6.565279 0.000000 + -1.280826 -6.439127 0.000000 + -1.091351 -5.486662 -0.000000 + -2.140775 -5.168325 -0.000000 + -2.140775 -5.168325 -0.000000 + -2.512427 -6.065525 0.000000 + -1.280826 -6.439127 0.000000 + -2.512427 -6.065525 0.000000 + -2.140775 -5.168325 -0.000000 + -3.107931 -4.651372 -0.000000 + -3.107931 -4.651372 -0.000000 + -3.647477 -5.458827 0.000000 + -2.512427 -6.065525 0.000000 + -3.647477 -5.458827 0.000000 + -3.107931 -4.651372 -0.000000 + -3.955651 -3.955670 -0.000000 + -3.955651 -3.955670 -0.000000 + -4.642356 -4.642350 0.000000 + -3.647477 -5.458827 0.000000 + -4.642356 -4.642350 0.000000 + -3.955651 -3.955670 -0.000000 + -4.651357 -3.107953 -0.000000 + -4.651357 -3.107953 -0.000000 + -5.458833 -3.647470 0.000000 + -4.642356 -4.642350 0.000000 + -5.458833 -3.647470 0.000000 + -4.651357 -3.107953 -0.000000 + -5.168314 -2.140800 -0.000000 + -5.168314 -2.140800 -0.000000 + -6.065528 -2.512419 0.000000 + -5.458833 -3.647470 0.000000 + -6.065528 -2.512419 0.000000 + -5.168314 -2.140800 -0.000000 + -5.486657 -1.091378 -0.000000 + -5.486657 -1.091378 -0.000000 + -6.439129 -1.280818 0.000000 + -6.065528 -2.512419 0.000000 + -6.439129 -1.280818 0.000000 + -5.486657 -1.091378 -0.000000 + -5.594152 -0.000015 -0.000000 + -5.594152 -0.000015 -0.000000 + -6.565278 0.000004 0.000000 + -6.439129 -1.280818 0.000000 + -6.565278 0.000004 0.000000 + -5.594152 -0.000015 -0.000000 + -5.486666 1.091350 -0.000000 + -5.486666 1.091350 -0.000000 + -6.439126 1.280827 0.000000 + -6.565278 0.000004 0.000000 + -6.439126 1.280827 0.000000 + -5.486666 1.091350 -0.000000 + -5.168332 2.140775 -0.000000 + -5.168332 2.140775 -0.000000 + -6.065523 2.512427 0.000000 + -6.439126 1.280827 0.000000 + -6.065523 2.512427 0.000000 + -5.168332 2.140775 -0.000000 + -4.651383 3.107932 -0.000000 + -4.651383 3.107932 -0.000000 + -5.458825 3.647477 0.000000 + -6.065523 2.512427 0.000000 + -5.458825 3.647477 0.000000 + -4.651383 3.107932 -0.000000 + -3.955683 3.955653 -0.000000 + -3.955683 3.955653 -0.000000 + -4.642347 4.642355 0.000000 + -5.458825 3.647477 0.000000 + -4.642347 4.642355 0.000000 + -3.955683 3.955653 -0.000000 + -3.107969 4.651362 -0.000000 + -3.107969 4.651362 -0.000000 + -3.647466 5.458830 0.000000 + -4.642347 4.642355 0.000000 + -3.647466 5.458830 0.000000 + -3.107969 4.651362 -0.000000 + -2.140818 5.168323 -0.000000 + -2.140818 5.168323 -0.000000 + -2.512415 6.065526 0.000000 + -3.647466 5.458830 0.000000 + -2.512415 6.065526 0.000000 + -2.140818 5.168323 -0.000000 + -1.091396 5.486670 -0.000000 + -1.091396 5.486670 -0.000000 + -1.280814 6.439126 0.000000 + -2.512415 6.065526 0.000000 + -1.280814 6.439126 0.000000 + -1.091396 5.486670 -0.000000 + -0.000033 5.594167 -0.000000 + -0.000033 5.594167 -0.000000 + 0.000009 6.565275 0.000000 + -1.280814 6.439126 0.000000 + 0.000009 6.565275 0.000000 + -0.000033 5.594167 -0.000000 + 1.091332 5.486685 -0.000000 + 1.091332 5.486685 -0.000000 + 1.280831 6.439122 0.000000 + 0.000009 6.565275 0.000000 + 1.280831 6.439122 0.000000 + 1.091332 5.486685 -0.000000 + 2.140758 5.168354 -0.000000 + 2.140758 5.168354 -0.000000 + 2.512431 6.065518 0.000000 + 1.280831 6.439122 0.000000 + 2.512431 6.065518 0.000000 + 2.140758 5.168354 -0.000000 + 3.107916 4.651407 -0.000000 + 3.107916 4.651407 -0.000000 + 3.647480 5.458819 0.000000 + 2.512431 6.065518 0.000000 + 3.955683 3.955668 -0.000000 + 4.642349 4.642349 0.000000 + 3.647480 5.458819 0.000000 + 3.647480 5.458819 0.000000 + 3.107916 4.651407 -0.000000 + 3.955683 3.955668 -0.000000 + </coordinate> + <normal> + -0.000000 -0.000000 1.000000 + -0.000000 -0.000000 1.000000 + -0.000000 -0.000000 1.000000 + -0.000000 -0.000000 1.000000 + -0.000000 -0.000000 1.000000 + -0.000000 -0.000000 1.000000 + -0.000000 -0.000000 1.000000 + -0.000000 -0.000000 1.000000 + -0.000000 -0.000000 1.000000 + -0.000000 -0.000000 1.000000 + -0.000000 -0.000000 1.000000 + -0.000000 -0.000000 1.000000 + -0.000000 -0.000000 1.000000 + -0.000000 -0.000000 1.000000 + -0.000000 -0.000000 1.000000 + -0.000000 -0.000000 1.000000 + -0.000000 -0.000000 1.000000 + -0.000000 -0.000000 1.000000 + -0.000000 -0.000000 1.000000 + -0.000000 -0.000000 1.000000 + -0.000000 -0.000000 1.000000 + -0.000000 -0.000000 1.000000 + -0.000000 -0.000000 1.000000 + -0.000000 -0.000000 1.000000 + -0.000000 -0.000000 1.000000 + -0.000000 -0.000000 1.000000 + -0.000000 0.000000 1.000000 + -0.000000 0.000000 1.000000 + -0.000000 0.000000 1.000000 + -0.000000 -0.000000 1.000000 + -0.000000 0.000000 1.000000 + -0.000000 0.000000 1.000000 + -0.000000 0.000000 1.000000 + -0.000000 0.000000 1.000000 + -0.000000 0.000000 1.000000 + -0.000000 0.000000 1.000000 + -0.000000 0.000000 1.000000 + -0.000000 0.000000 1.000000 + -0.000000 0.000000 1.000000 + -0.000000 0.000000 1.000000 + -0.000000 0.000000 1.000000 + -0.000000 0.000000 1.000000 + -0.000000 0.000000 1.000000 + -0.000000 0.000000 1.000000 + -0.000000 0.000000 1.000000 + -0.000000 0.000000 1.000000 + -0.000000 0.000000 1.000000 + -0.000000 0.000000 1.000000 + -0.000000 0.000000 1.000000 + -0.000000 0.000000 1.000000 + -0.000000 0.000000 1.000000 + -0.000000 0.000000 1.000000 + -0.000000 0.000000 1.000000 + -0.000000 0.000000 1.000000 + -0.000000 0.000000 1.000000 + -0.000000 0.000000 1.000000 + -0.000000 0.000000 1.000000 + -0.000000 0.000000 1.000000 + -0.000000 0.000000 1.000000 + -0.000000 0.000000 1.000000 + -0.000000 0.000000 1.000000 + -0.000000 0.000000 1.000000 + -0.000000 0.000000 1.000000 + -0.000000 0.000000 1.000000 + -0.000000 0.000000 1.000000 + -0.000000 0.000000 1.000000 + -0.000000 0.000000 1.000000 + -0.000000 0.000000 1.000000 + -0.000000 0.000000 1.000000 + -0.000000 0.000000 1.000000 + -0.000000 0.000000 1.000000 + -0.000000 0.000000 1.000000 + -0.000000 0.000000 1.000000 + -0.000000 0.000000 1.000000 + 0.000000 0.000000 1.000000 + 0.000000 0.000000 1.000000 + 0.000000 0.000000 1.000000 + -0.000000 0.000000 1.000000 + 0.000000 0.000000 1.000000 + 0.000000 0.000000 1.000000 + 0.000000 0.000000 1.000000 + 0.000000 0.000000 1.000000 + 0.000000 0.000000 1.000000 + 0.000000 0.000000 1.000000 + 0.000000 0.000000 1.000000 + 0.000000 0.000000 1.000000 + 0.000000 0.000000 1.000000 + 0.000000 0.000000 1.000000 + 0.000000 0.000000 1.000000 + 0.000000 0.000000 1.000000 + 0.000000 0.000000 1.000000 + 0.000000 0.000000 1.000000 + 0.000000 0.000000 1.000000 + 0.000000 0.000000 1.000000 + 0.000000 0.000000 1.000000 + 0.000000 0.000000 1.000000 + 0.000000 0.000000 1.000000 + 0.000000 0.000000 1.000000 + 0.000000 0.000000 1.000000 + 0.000000 0.000000 1.000000 + 0.000000 0.000000 1.000000 + 0.000000 0.000000 1.000000 + 0.000000 0.000000 1.000000 + 0.000000 0.000000 1.000000 + 0.000000 0.000000 1.000000 + 0.000000 0.000000 1.000000 + 0.000000 0.000000 1.000000 + 0.000000 0.000000 1.000000 + 0.000000 0.000000 1.000000 + 0.000000 0.000000 1.000000 + 0.000000 0.000000 1.000000 + 0.000000 0.000000 1.000000 + 0.000000 0.000000 1.000000 + 0.000000 0.000000 1.000000 + 0.000000 0.000000 1.000000 + 0.000000 0.000000 1.000000 + 0.000000 0.000000 1.000000 + 0.000000 0.000000 1.000000 + 0.000000 0.000000 1.000000 + 0.000000 0.000000 1.000000 + 0.000000 0.000000 1.000000 + 0.000000 0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + -0.000000 -0.000000 1.000000 + -0.000000 -0.000000 1.000000 + -0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + -0.000000 -0.000000 1.000000 + -0.000000 -0.000000 1.000000 + -0.000000 -0.000000 1.000000 + -0.000000 -0.000000 1.000000 + -0.000000 -0.000000 1.000000 + -0.000000 -0.000000 1.000000 + -0.000000 -0.000000 1.000000 + -0.000000 -0.000000 1.000000 + -0.000000 -0.000000 1.000000 + -0.000000 -0.000000 1.000000 + -0.000000 -0.000000 1.000000 + -0.000000 -0.000000 1.000000 + -0.000000 -0.000000 1.000000 + -0.000000 -0.000000 1.000000 + -0.000000 -0.000000 1.000000 + -0.000000 -0.000000 1.000000 + -0.000000 -0.000000 1.000000 + -0.000000 -0.000000 1.000000 + </normal> + <model> + 0.000000 0.000000 0.000000 + </model> + <texture> + 0.766492 0.122795 + 0.749968 0.137163 + 0.704672 0.096116 + 0.704672 0.096116 + 0.718163 0.077790 + 0.766492 0.122795 + 0.718163 0.077790 + 0.704672 0.096116 + 0.645394 0.060597 + 0.645394 0.060597 + 0.655999 0.038120 + 0.718163 0.077790 + 0.655999 0.038120 + 0.645394 0.060597 + 0.574637 0.037054 + 0.574637 0.037054 + 0.580570 0.010792 + 0.655999 0.038120 + 0.580570 0.010792 + 0.574637 0.037054 + 0.495012 0.028871 + 0.495012 0.028871 + 0.495185 0.000000 + 0.580570 0.010792 + 0.495185 0.000000 + 0.495012 0.028871 + 0.409520 0.038351 + 0.409520 0.038351 + 0.403600 0.007900 + 0.495185 0.000000 + 0.403600 0.007900 + 0.409520 0.038351 + 0.320057 0.063817 + 0.320057 0.063817 + 0.308050 0.033304 + 0.403600 0.007900 + 0.308050 0.033304 + 0.320057 0.063817 + 0.234908 0.108360 + 0.234908 0.108360 + 0.216127 0.080143 + 0.308050 0.033304 + 0.216127 0.080143 + 0.234908 0.108360 + 0.159643 0.171481 + 0.159643 0.171481 + 0.134686 0.147549 + 0.216127 0.080143 + 0.134686 0.147549 + 0.159643 0.171481 + 0.099045 0.250626 + 0.099045 0.250626 + 0.069077 0.232507 + 0.134686 0.147549 + 0.069077 0.232507 + 0.099045 0.250626 + 0.056783 0.342006 + 0.056783 0.342006 + 0.023312 0.330781 + 0.069077 0.232507 + 0.023312 0.330781 + 0.056783 0.342006 + 0.035269 0.441057 + 0.035269 0.441057 + 0.000000 0.437298 + 0.023312 0.330781 + 0.000000 0.437298 + 0.035269 0.441057 + 0.035611 0.543253 + 0.035611 0.543253 + 0.000000 0.546952 + 0.000000 0.437298 + 0.000000 0.546952 + 0.035611 0.543253 + 0.056495 0.644088 + 0.056495 0.644088 + 0.022466 0.655099 + 0.000000 0.546952 + 0.022466 0.655099 + 0.056495 0.644088 + 0.098007 0.737408 + 0.098007 0.737408 + 0.067479 0.755226 + 0.022466 0.655099 + 0.067479 0.755226 + 0.098007 0.737408 + 0.157860 0.818793 + 0.157860 0.818793 + 0.132079 0.842106 + 0.067479 0.755226 + 0.132079 0.842106 + 0.157860 0.818793 + 0.231017 0.885415 + 0.231017 0.885415 + 0.211031 0.912547 + 0.132079 0.842106 + 0.211031 0.912547 + 0.231017 0.885415 + 0.312158 0.933726 + 0.312158 0.933726 + 0.298941 0.963195 + 0.211031 0.912547 + 0.298941 0.963195 + 0.312158 0.933726 + 0.398187 0.962145 + 0.398187 0.962145 + 0.391984 0.992440 + 0.298941 0.963195 + 0.391984 0.992440 + 0.398187 0.962145 + 0.484350 0.970720 + 0.484350 0.970720 + 0.484891 1.000000 + 0.391984 0.992440 + 0.484891 1.000000 + 0.484350 0.970720 + 0.565768 0.960990 + 0.565768 0.960990 + 0.571952 0.987511 + 0.484891 1.000000 + 0.571952 0.987511 + 0.565768 0.960990 + 0.636642 0.937348 + 0.636642 0.937348 + 0.647250 0.959634 + 0.571952 0.987511 + 0.647250 0.959634 + 0.636642 0.937348 + 0.695101 0.902238 + 0.695101 0.902238 + 0.708387 0.920126 + 0.647250 0.959634 + 0.708387 0.920126 + 0.695101 0.902238 + 0.739082 0.862159 + 0.739082 0.862159 + 0.755134 0.875905 + 0.708387 0.920126 + 0.755134 0.875905 + 0.739082 0.862159 + 0.772225 0.810802 + 0.772225 0.810802 + 0.792763 0.822154 + 0.755134 0.875905 + 0.792763 0.822154 + 0.772225 0.810802 + 0.803727 0.738503 + 0.803727 0.738503 + 0.830558 0.748989 + 0.792763 0.822154 + 0.830558 0.748989 + 0.803727 0.738503 + 0.829648 0.650315 + 0.829648 0.650315 + 0.861227 0.657547 + 0.830558 0.748989 + 0.861227 0.657547 + 0.829648 0.650315 + 0.842978 0.552000 + 0.842978 0.552000 + 0.876982 0.555021 + 0.861227 0.657547 + 0.876982 0.555021 + 0.842978 0.552000 + 0.845096 0.448683 + 0.845096 0.448683 + 0.879575 0.448238 + 0.876982 0.555021 + 0.879575 0.448238 + 0.845096 0.448683 + 0.839755 0.351352 + 0.839755 0.351352 + 0.871398 0.346250 + 0.879575 0.448238 + 0.871398 0.346250 + 0.839755 0.351352 + 0.818768 0.264597 + 0.818768 0.264597 + 0.845880 0.254663 + 0.871398 0.346250 + 0.845880 0.254663 + 0.818768 0.264597 + 0.784719 0.190496 + 0.784719 0.190496 + 0.806418 0.178562 + 0.845880 0.254663 + 0.749968 0.137163 + 0.766492 0.122795 + 0.806418 0.178562 + 0.806418 0.178562 + 0.784719 0.190496 + 0.749968 0.137163 + </texture> + <image name=" lock.png"> + iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAL + EwAACxMBAJqcGAAAAAd0SU1FB9kFBQ4eFbXZbjsAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRo + IEdJTVBXgQ4XAAAB/ElEQVR42u3TMQ0AAAjAMMAw/i+40UArYclyOuCtkgADgAHAAGAAMAAYAAwA + BgADgAHAAGAAMAAYAAwABgADgAHAAGAAMAAYAAwABgADgAHAAGAAMAAYAAwABgADgAHAAGAAMAAY + AAwABgADgAHAAGAAMAAYAAwABgADgAHAABgADAAGAAOAAcAAYAAwABgADAAGAAOAAcAAYAAwABgA + DAAGAAOAAcAAYAAwABgADAAGAAOAAcAAYAAwABgADAAGAAOAAcAAYAAwABgADAAGAAOAAcAAYAAw + ABgADAAGAANgADAAGAAMAAYAA4ABwABgADAAGAAMAAYAA4ABwABgADAAGAAMAAYAA4ABwABgADAA + GAAMAAYAA4ABwABgADAAGAAMAAYAA4ABwABgADAAGAAMAAYAA4ABwABgADAAGAADgAHAAGAAMAAY + AAwABgADgAHAAGAAMAAYAAwABgADgAHAAGAAMAAYAAwABgADgAHAAGAAMAAYAAwABgADgAHAAGAA + MAAYAAwABgADgAHAAGAAMAAYAAwABgADgAHAAGAADAAGAAOAAcAAYAAwABgADAAGAAOAAcAAYAAw + ABgADAAGAAOAAcAAYAAwABgADAAGAAOAAcAAYAAwABgADAAGAAOAAcAAYAAwABgADAAGAAOAAcAA + YAAwABgArgXaxANuZkr2IQAAAABJRU5ErkJggg== + </image> + </surface> + <surface name="ENEMY" size="36" prim="Triangle" parent="NULL"> + <coordinate> + 3.002246 3.002246 -3.002246 + 3.002246 -3.002246 -3.002246 + -3.002246 -3.002246 -3.002246 + -3.002246 -3.002246 -3.002246 + -3.002245 3.002247 -3.002246 + 3.002246 3.002246 -3.002246 + 3.002248 3.002244 3.002246 + -3.002246 3.002246 3.002246 + -3.002247 -3.002245 3.002246 + -3.002247 -3.002245 3.002246 + 3.002244 -3.002248 3.002246 + 3.002248 3.002244 3.002246 + 3.002246 3.002246 -3.002246 + 3.002248 3.002244 3.002246 + 3.002244 -3.002248 3.002246 + 3.002244 -3.002248 3.002246 + 3.002246 -3.002246 -3.002246 + 3.002246 3.002246 -3.002246 + 3.002246 -3.002246 -3.002246 + 3.002244 -3.002248 3.002246 + -3.002247 -3.002245 3.002246 + -3.002247 -3.002245 3.002246 + -3.002246 -3.002246 -3.002246 + 3.002246 -3.002246 -3.002246 + -3.002246 -3.002246 -3.002246 + -3.002247 -3.002245 3.002246 + -3.002246 3.002246 3.002246 + -3.002246 3.002246 3.002246 + -3.002245 3.002247 -3.002246 + -3.002246 -3.002246 -3.002246 + 3.002248 3.002244 3.002246 + 3.002246 3.002246 -3.002246 + -3.002245 3.002247 -3.002246 + -3.002245 3.002247 -3.002246 + -3.002246 3.002246 3.002246 + 3.002248 3.002244 3.002246 + </coordinate> + <normal> + 0.000000 0.000000 -1.000000 + 0.000000 0.000000 -1.000000 + 0.000000 0.000000 -1.000000 + 0.000000 0.000000 -1.000000 + 0.000000 0.000000 -1.000000 + 0.000000 0.000000 -1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 1.000000 -0.000000 0.000000 + 1.000000 -0.000000 0.000000 + 1.000000 -0.000000 0.000000 + 1.000000 -0.000000 0.000000 + 1.000000 -0.000000 0.000000 + 1.000000 -0.000000 0.000000 + -0.000000 -1.000000 -0.000000 + -0.000000 -1.000000 -0.000000 + -0.000000 -1.000000 -0.000000 + -0.000000 -1.000000 -0.000000 + -0.000000 -1.000000 -0.000000 + -0.000000 -1.000000 -0.000000 + -1.000000 0.000000 -0.000000 + -1.000000 0.000000 -0.000000 + -1.000000 0.000000 -0.000000 + -1.000000 0.000000 -0.000000 + -1.000000 0.000000 -0.000000 + -1.000000 0.000000 -0.000000 + 0.000000 1.000000 0.000000 + 0.000000 1.000000 0.000000 + 0.000000 1.000000 0.000000 + 0.000000 1.000000 0.000000 + 0.000000 1.000000 0.000000 + 0.000000 1.000000 0.000000 + </normal> + <model> + 0.000000 0.000000 0.000000 + </model> + <texture> + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + </texture> + <image name="enemy.png"> + iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAL + EwAACxMBAJqcGAAAAAd0SU1FB9kFBAUsHeKbOvwAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRo + IEdJTVBXgQ4XAAACDUlEQVR42u3csQkAMAgAwRjcf2WzQBqbIOSuthIeO6NWLfjVtgIEAAIAAYAA + QAAgABAACAAEAAIAAYAAQAAgABAACAAEAAIAAYAAYKrsjfsgwVjhAoAAQAAgABAACAAEAAIAAYAA + QAAIAAQAAgABgABAACAAEAAIAAQAAgABgABAACAAEAAIAAQAAgABgABAACAAEAAIAAQAAgABgABA + ACAAEAAIAAQAAgABgABAACAAEAAIAAQAAgABgABAACAAEAAIAAQAAgABIAAQAAgABAACAAGAAEAA + IAAQAAgABAACAAGAAEAAIAAQAAgABAACAAGAAEAAIAAQAAgABAACAAGAAEAAIAAQAAgABAACAAGA + AEAAIAAQAAgABAACAAGAAEAAIAAQAAgAAYAAQAAgABAACAAEAAIAAYAAQAAgABAACAAEAAIAAYAA + QAAgABAACAAEAAIAAYAAQAAgABAACAAEAAIAAYAAQAAgABAACAAEAAIAAYAAQAAgABAACAAEAAIA + AYAAQAAgAAQAAgABgABAACAAEAAIAAQAAgABgABAACAAEAAIAAQAAgABgABAACAAEAAIAAQAAgAB + gABAACAAEAAIAAQAAgABgABAACAAEAAIAAQAAgABgABAACAAEABcZG88bAwXAAQAAgABgABAACAA + EAAIAAQAAgABgABAACAAEAAIAAQAAoC3DpXTBQMWxYNLAAAAAElFTkSuQmCC + </image> + </surface> + <surface name="REDCUBE" size="36" prim="Triangle" parent="NULL"> + <coordinate> + 3.022205 3.022204 -3.022205 + 3.022205 -3.022205 -3.022205 + -3.022205 -3.022204 -3.022205 + -3.022205 -3.022204 -3.022205 + -3.022203 3.022205 -3.022205 + 3.022205 3.022204 -3.022205 + 3.022206 3.022203 3.022205 + -3.022204 3.022204 3.022205 + -3.022206 -3.022203 3.022205 + -3.022206 -3.022203 3.022205 + 3.022203 -3.022206 3.022205 + 3.022206 3.022203 3.022205 + 3.022205 3.022204 -3.022205 + 3.022206 3.022203 3.022205 + 3.022203 -3.022206 3.022205 + 3.022203 -3.022206 3.022205 + 3.022205 -3.022205 -3.022205 + 3.022205 3.022204 -3.022205 + 3.022205 -3.022205 -3.022205 + 3.022203 -3.022206 3.022205 + -3.022206 -3.022203 3.022205 + -3.022206 -3.022203 3.022205 + -3.022205 -3.022204 -3.022205 + 3.022205 -3.022205 -3.022205 + -3.022205 -3.022204 -3.022205 + -3.022206 -3.022203 3.022205 + -3.022204 3.022204 3.022205 + -3.022204 3.022204 3.022205 + -3.022203 3.022205 -3.022205 + -3.022205 -3.022204 -3.022205 + 3.022206 3.022203 3.022205 + 3.022205 3.022204 -3.022205 + -3.022203 3.022205 -3.022205 + -3.022203 3.022205 -3.022205 + -3.022204 3.022204 3.022205 + 3.022206 3.022203 3.022205 + </coordinate> + <normal> + 0.000000 0.000000 -1.000000 + 0.000000 0.000000 -1.000000 + 0.000000 0.000000 -1.000000 + 0.000000 0.000000 -1.000000 + 0.000000 0.000000 -1.000000 + 0.000000 0.000000 -1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 1.000000 -0.000000 0.000000 + 1.000000 -0.000000 0.000000 + 1.000000 -0.000000 0.000000 + 1.000000 -0.000000 0.000000 + 1.000000 -0.000000 0.000000 + 1.000000 -0.000000 0.000000 + -0.000000 -1.000000 -0.000000 + -0.000000 -1.000000 -0.000000 + -0.000000 -1.000000 -0.000000 + -0.000000 -1.000000 -0.000000 + -0.000000 -1.000000 -0.000000 + -0.000000 -1.000000 -0.000000 + -1.000000 0.000000 -0.000000 + -1.000000 0.000000 -0.000000 + -1.000000 0.000000 -0.000000 + -1.000000 0.000000 -0.000000 + -1.000000 0.000000 -0.000000 + -1.000000 0.000000 -0.000000 + 0.000000 1.000000 0.000000 + 0.000000 1.000000 0.000000 + 0.000000 1.000000 0.000000 + 0.000000 1.000000 0.000000 + 0.000000 1.000000 0.000000 + 0.000000 1.000000 0.000000 + </normal> + <model> + 0.000000 0.000000 0.000000 + </model> + <texture> + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + </texture> + <image name="rcube.png"> + iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAL + EwAACxMBAJqcGAAAAAd0SU1FB9kFAwUzI3N3EXAAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRo + IEdJTVBXgQ4XAAACC0lEQVR42u3cMQoAIAwEQU/8/5fjF0wXcKa3OVjSmVrwr20CBAACAAGAAEAA + IAAQAAgABAACAAGAAEAAIAAQAAgABAACAAGAAGCq035R/pFgqsQFAAGAAEAAIAAQAAgABAACAAEg + ABAACAAEAAIAAYAAQAAgABAACAAEAAIAAYAAQAAgABAACAAEAAIAAYAAQAAgABAACAAEAAIAAYAA + QAAgABAACAAEAAIAAYAAQAAgABAACAAEAAIAAYAAQAAgABAACAAEgABAACAAEAAIAAQAAgABgABA + ACAAEAAIAAQAAgABgABAACAAEAAIAAQAAgABgABAACAAEAAIAAQAAgABgABAACAAEAAIAAQAAgAB + gABAACAAEAAIAAQAAgABgABAACAABGACBAACAAGAAEAAIAAQAAgABAACAAGAAEAAIAAQAAgABAAC + AAGAAEAAIAAQAAgABAACAAGAAEAAIAAQAAgABAACAAGAAEAAIAAQAAgABAACAAGAAEAAIAAQAAgA + BAACAAEgABAACAAEAAIAAYAAQAAgABAACAAEAAIAAYAAQAAgABAACAAEAAIAAYAAQAAgABAACAAE + AAIAAYAAQAAgABAACAAEAAIAAYAAQAAgABAACABepWyACwACAAGAAEAAIAAQAAgABAACAAGAAEAA + IAAQAAgABAACAAGAAEAAIAAQAAgABrgZmgX/O7XQMAAAAABJRU5ErkJggg== + </image> + </surface> + <surface name="BIGCUBE" size="36" prim="Triangle" parent="NULL"> + <coordinate> + 7.737503 7.737504 -7.737503 + 7.737503 -7.737503 -7.737503 + -7.737503 -7.737503 -7.737503 + -7.737503 -7.737503 -7.737503 + -7.737503 7.737504 -7.737503 + 7.737503 7.737504 -7.737503 + 7.737503 7.737504 7.737503 + -7.737503 7.737504 7.737503 + -7.737503 -7.737502 7.737503 + -7.737503 -7.737502 7.737503 + 7.737503 -7.737503 7.737503 + 7.737503 7.737504 7.737503 + 7.737503 7.737504 -7.737503 + 7.737503 7.737504 7.737503 + 7.737503 -7.737503 7.737503 + 7.737503 -7.737503 7.737503 + 7.737503 -7.737503 -7.737503 + 7.737503 7.737504 -7.737503 + 7.737503 -7.737503 -7.737503 + 7.737503 -7.737503 7.737503 + -7.737503 -7.737502 7.737503 + -7.737503 -7.737502 7.737503 + -7.737503 -7.737503 -7.737503 + 7.737503 -7.737503 -7.737503 + -7.737503 -7.737503 -7.737503 + -7.737503 -7.737502 7.737503 + -7.737503 7.737504 7.737503 + -7.737503 7.737504 7.737503 + -7.737503 7.737504 -7.737503 + -7.737503 -7.737503 -7.737503 + 7.737503 7.737504 7.737503 + 7.737503 7.737504 -7.737503 + -7.737503 7.737504 -7.737503 + -7.737503 7.737504 -7.737503 + -7.737503 7.737504 7.737503 + 7.737503 7.737504 7.737503 + </coordinate> + <normal> + 0.000000 0.000000 -1.000000 + 0.000000 0.000000 -1.000000 + 0.000000 0.000000 -1.000000 + 0.000000 0.000000 -1.000000 + 0.000000 0.000000 -1.000000 + 0.000000 0.000000 -1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 1.000000 -0.000000 0.000000 + 1.000000 -0.000000 0.000000 + 1.000000 -0.000000 0.000000 + 1.000000 -0.000000 0.000000 + 1.000000 -0.000000 0.000000 + 1.000000 -0.000000 0.000000 + -0.000000 -1.000000 0.000000 + -0.000000 -1.000000 0.000000 + -0.000000 -1.000000 0.000000 + -0.000000 -1.000000 0.000000 + -0.000000 -1.000000 0.000000 + -0.000000 -1.000000 0.000000 + -1.000000 -0.000000 0.000000 + -1.000000 -0.000000 0.000000 + -1.000000 -0.000000 0.000000 + -1.000000 -0.000000 0.000000 + -1.000000 -0.000000 0.000000 + -1.000000 -0.000000 0.000000 + -0.000000 1.000000 0.000000 + -0.000000 1.000000 0.000000 + -0.000000 1.000000 0.000000 + -0.000000 1.000000 0.000000 + -0.000000 1.000000 0.000000 + -0.000000 1.000000 0.000000 + </normal> + <model> + 0.000000 0.000000 0.000000 + </model> + <texture> + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + </texture> + <image name="cube.png"> + iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAL + EwAACxMBAJqcGAAAAAd0SU1FB9kFAwUnJMO9U4YAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRo + IEdJTVBXgQ4XAAACDElEQVR42u3asQ0AIAwDQQex/8phA2oU7lo6S680VDrwrWUCBAACAAGAAEAA + IAAQAAgABAACAAHACPv+3P7KMUWlXAAQAAgABIAAQAAgABAACAAEAAIAAYAAQAAgABAACAAEAAIA + AYAAQAAgABAACAAEAAIAAYAAQAAgABAACAAEAAIAAYAAQAAgABAACAAEAAIAAYAAQAAgABAACAAE + AAIAAYAAQAAgABAAAgABgABAACAAEAAIAAQAAgABgABAACAAEAAIAAQAAgABgABAACAAEAAIAAQA + AgABgABAACAAEAAIAAQAAgABgABAACAAEAAIAAQAAgABgABAACAAEAAIAAQAAgABgAAQgAkQAAgA + BAACAAGAAEAAIAAQAAgABAACAAGAAEAAIAAQAAgABAACAAGAAEAAIAAQAAgABAACAAGAAEAAIAAQ + AAgABAACAAGAAEAAIAAQAAgABAACAAGAAEAAIAAQAAgABIAAQAAgABAACAAEAAIAAYAAQAAgABAA + CAAEAAIAAYAAQAAgABAACAAEAAIAAYAAQAAgABAACAAEAAIAAYAAQAAgABAACAAEAAIAAYAAQAAg + ABAACAAEAAIAAYAAQAAgABAAAgABgABAACAAEAAIAAQAAgABgABAACAAEAAIAAQAAgABgABAACAA + EAAIAN5RaSPgAoAAQAAgABAACAAEAEMd2Z0F/1NveSwAAAAASUVORK5CYII= + </image> + </surface> +</OBJECT-3D> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TaskManager/Test/test_render/xml_file/gameover.h Fri Jul 17 22:50:06 2009 +0900 @@ -0,0 +1,1 @@ +#define GAMEOVER scene_graph
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TaskManager/Test/test_render/xml_file/gameover.xml Fri Jul 17 22:50:06 2009 +0900 @@ -0,0 +1,216 @@ +<?xml version="1.0"?> +<OBJECT-3D> + <surface name="GAMEOVER" size="6" prim="Triangle" parent="NULL"> + <coordinate> + 258.234375 258.234192 0.000000 + -258.234192 258.234436 0.000000 + -258.234436 -258.234375 0.000000 + -258.234436 -258.234375 0.000000 + 258.234375 -258.234375 0.000000 + 258.234375 258.234192 0.000000 + </coordinate> + <normal> + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + </normal> + <model> + 0.000000 0.000000 0.000000 + </model> + <texture> + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + </texture> + <image name=" gameover.png"> + iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A + /wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kFBAQpJi8lTaoAAAAZdEVYdENv + bW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAgAElEQVR42u3dd7gW5Z038N+Bg3TpHQSVpmIQ + 0FXRGAwaiVFEliUooCgGxWxWV6NA3MSCrmu5bGtdvYIVK7gawUqwAHYBG0VRONgoIk06Z94/3ldf + Ipxz5nnOcwrw+VzXXInMzD33zDNz5jsz99wTAQDsdvL+3/8mNgUA7D6q2AQAIAAAAAIAACAAAAAC + AAAgAAAAAgAAIAAAAAIAACAAAAACAAAgAAAAAgAAIAAAAAIAACAAAAACAAAgAACAAAAACAAAgAAA + AAgAAIAAAAAIAACAAAAACAAAgAAAAAgAAIAAAAAIAACAAAAACAAAgAAAAAgAAIAAAAACAAAgAAAA + AgAAIAAAAAIAACAAAAACAAAgAAAAAgAAIAAAAAIAACAAAAACAAAgAAAAAgAAIAAAAAIAAAgAAIAA + AAAIAACAAAAACAAAgAAAAAgAAIAAAAAIAACAAAAACAAAgAAAAAgAAIAAAAAIAACAAAAACAAAIAAA + AAIAACAAAAACAAAgAAAAAgAAIAAAAAIAACAAAAACAAAgAAAAAgAAIAAAAAIAACAAAAACAAAgAACA + AGATAIAAAAAIAACAAAAACAAAgAAAAAgAAIAAAAAIAACAAAAACAAAgAAAAORUvk2QW82aNYvDDz88 + unfvHvvvv3+0bt06WrVqFXXq1ImaNWtG1apVY+3atbFmzZpYu3ZtfPvttzF//vyYO3duzJ07N2bN + mhWLFy+2IdmttG/fPnr27BmHHHJIdOjQIdq2bRtNmjSJWrVqRfXq1WPjxo2xbt26WLZsWRQUFMQn + n3wSb731VsyYMSM+/fRTGxBKITFkP7Ru3Tr585//nLzzzjtJYWFhUlrz5s1Lbr311qRfv35JzZo1 + y7TuY8eOzbh+48aNy3k9svH9998n9erVy8nyx48fn1Udhg0bVqbrWFqV+bhp1apVcsUVVyRz5swp + 1TrOmTMnGTt2bNK6deuM63DNNdekXk7Pnj1zvg3atm2b+m/Ggw8+uNPtV6VVWFiYbNiwIVmxYkXy + 6aefJq+99lpy//33JxdddFFy1FFHJdWqVXMOKt0gAGQ7dOnSJZkwYUKyZcuWMjvQVq5cmdx6663J + z372s5zXPy8vL1m4cGHGdVq9enVSq1atCg8ASZIk5513XqmX3axZs2Tjxo0CQDkG5vvuuy/ZvHlz + Ttd18+bNyX333ZdRENh///1Tl3/77bfnfFv86U9/Sr38Y489drcLAGn+Fo0bNy7p3r27c5IAUD5D + vXr1krvvvjvZunVruR50Z511Vk7X4+ijj866LkOGDKkUAWDu3LlJXl5eqZb9H//xH1kvXwDILHBe + cMEFybp168p0ndetW5dccMEFqfeLt99+O1W5y5cvz/kV50cffZRq2V988UVSpUoVAaAY48ePTxo1 + auQcJQCU3XDkkUcmBQUFFXLQnX/++Tldl3vvvTfrurz44ouVIgAkSZIcc8wxWS+3atWqyeLFiwWA + Mh7q1q2bTJo0qVzXfdKkSUndunVLrNu//uu/pi6zb9++Odsm3bt3T73cq6++eqfcr8rbhx9+mDRv + 3ty5SgDI/TBkyJCsbxVXtgBQu3btZM2aNVnXZevWrVk9cy2LPxQTJ07Mern9+/cv1bIFgJKHJk2a + JO+++26FrP8777yTNGnSpNj6NWrUKPVx/dhjj+Vsu9xwww2p16Nz584CQAZ3BXP9iHJXHbwGmNIZ + Z5wR999/f+yxxx67xPr88z//c9SpUyfr+atUqRJDhw6tFOvSt2/faN26dVbz/v73v7dzl6HatWvH + s88+G927d6+Q5ffo0SMmT54ctWvXLnKab7/9NiZNmpSqvBNPPDHq1atX6npVqVIlBg0alGrat956 + K+bOnWtnSqlTp04xZswYGyLNfmgTpDvo77777sjLy9tl1un000+vFGXkQtWqVePss8/OeL799tsv + fvnLX9rBy9CDDz4YPXr0qNA6HHzwwfHAAw8UO819992XqqwaNWrEgAEDSl2n3r17R4sWLVJNm7Zu + /H8XXXRRNGnSxIYQAEqnXbt2cd9990XVqlUznnf9+vXx/PPPx+jRo+Ooo46KTp06RePGjSM/Pz9q + 164dLVu2jEMOOSQGDx4c1113XbzxxhuxZcuWMl+nvfbaK44++uicJO1DDz20UvxOZ511VlSrVi2j + ec4991w7eBn63e9+F/369ct4vhkzZsS///u/R48ePaJly5ZRvXr1aNmyZRx88MFx4YUXxuuvv55x + mSeffHIMHz68yPGTJ0+O5cuXpypryJAhpd42acvYtGlTPPLII3amDFWvXj2OP/54GyIlz0OKGP7+ + 979n9WrK1VdfnTRu3DirNwyGDh2aTJ48ebu3DHLVBuCSSy7J2fO2XL0alQuDBg1Kvbw6deokq1at + KvUyy6INQCZlVtahcePGGW/fBQsWFPmq20+HPn36ZPwK68qVK4ttJX7zzTenfje9NO1fatasmaxe + vTrVsp544omder8qTd2qVauWNGrUKDn00EOTiy66KPnkk08y+r1z2V4jNALc/YaBAwdmfEJ48803 + k5YtW+Zk+XvttVdy/fXX/9hYL1cBYN68eTkLACtWrEiqV69eKQLAq6++mnp5I0eOzMkyBYDSnUy3 + PW7StNj/aVjOtHHhjTfemJNW+aNGjcp625xyyimpl3PiiSfutgHgp0P16tWTxx9/PHWZs2fPdh4T + ALJ/Z/njjz/OOHHWqFEj53Vp2LBhcsMNNyTnnHNOqcs6/PDDU61LQUFB6rsfAwYMqBQBIEmSpEuX + LqmW9+GHHwoAZTQ0aNAgo3f958yZkzRs2DDrOw3z589Pvazvv/8+qV+/fpHlffDBB6nK+eCDD7Le + Pmlfh1yyZEmSn58vAPzkddJly5alKvPrr792LvMWQHb69OkT++23X+rpZ82aFaeddlps2LAh53VZ + sWJFXHDBBXHnnXeWuqy0Dfcef/zxeOyxx3JaZi58+eWXxY5P06q/V69eccABB2S9DIp32mmnRc2a + NVNPf/bZZ8eKFSuyWtby5ctj5MiRqaevVatWsftr2gZ3Xbp0iYMOOijj+jZp0iR+9atfpZp2/Pjx + 5dImaGeyZs2aePrpp1NN26hRIxusBAJAEYYNG5Z62nXr1sWAAQPK5OSf64Yxv/3tb1NN+9hjj8WE + CRNi69atqcJS06ZNy2Ud7rnnnigsLCxy/JAhQ2LPPfcsVUi46667HAClkHYf+2E/e/XVV0u1vClT + psSECRNSTz9w4MAixz300EOp9vkf9rVstk1+frpvsGn9v2Mffvhhqukq+99jAaCSqlGjRkYtSMeN + GxcLFiyo9Ot10kknRf369UucbuHChfHmm2/GsmXL4uWXXy5x+vz8/Bg8eHC5rMPChQtj8uTJRY6v + U6dOnHbaaUWOb9myZbEt0zdv3hx33323gyBLTZo0yejNkNtvvz0ny73jjjtST3vYYYdF48aNdzju + 66+/jhdeeCFVOaecckpUqZLZn9C0oeH999+PWbNm2aF2YO3atamm+/bbb20sASBzhx9+eOpOcrZu + 3Ro33HDDTrFeaW/Vb3vrvzI+BrjtttuKHV/cLeGzzz672CuwCRMmxDfffOMgyNKRRx6Z+qS4ePHi + Ul/9/2Dq1KmpH91UqVIljjjiiFJfebds2TKjfiTat2+fOhy5+i9agwYNcnqnQABguyuEtN544434 + 7LPPKv06NW/ePI477riMA8DEiRNTPYfs2rVrdO3atVzW5fnnny/2G/D7779/9OrVa7t/r1atWowY + MaJU4YLiZdLpz/PPPx//t1fZ0issLIznnnsuJ/V86qmnYtWqVanKyaQ3zLRX/1u2bImHHnrIzlTK + fWz69Ok2lgCQuZ/97Gepp502bdpOsU6DBw9O1ZnRggUL4t133/3xv5cvXx5Tp06tVHcBkiQpsUHk + jp7z9+/fP5o3b17kPO+//36l+D3HjRsXSZKUeqgIxTWu/Klc3+KePXt26mm7dOlS5LgNGzakvvN1 + 8sknp27wmPYx2QsvvBBLliyxX+1Aq1atom/fvqkC4fjx453MBIDM7b333rtcACjuuXhRV//F/duO + nHrqqakbOOXij9n69euLHN+vX7/tulotqfFfrp5H78722muvMjlh57q8Nm3aFDs+7S34unXrpurt + 8NBDD4327dunKtPt/x1r2bJlPPnkk1GjRo0Sp33ooYeioKDARitBvk2Q+R+HbS1cuDCjsvfZZ5+M + Gw79VHG3v3fkoIMOSn1X49FHH93u35588sm44447Sjy5N2vWLI477rjUH1YpjRUrVsTDDz8cZ555 + 5o537Pz8GDFiRFx++eUREXHggQfGz3/+8yLLW7VqVTz44IN2/hz8kU7rq6++yumyMymvVatWxY6f + Pn16fPrpp6lO2kOGDImHH364xGnSWLlyZerX3HYlTZs23W5bV6tWLerWrRsdOnSIo48+OgYOHBh1 + 69YtsawlS5bExRdf7GDMgE4RthnSdtOZJEnGvf6tXbu23D/xeuONN6b+jGZRZTz//PNl2v1mNh2G + lNRz25dffvljRyp33nlnsdPefPPNZd65yu7wKeBMPjGdTVfZxQ1NmzZNvexVq1aVWN6f//znVGVt + 3rw5adq0aZHl5OfnJ0uXLk1V1p133llhnWiVxX5V3latWpUccsghzmM6AspeJp2YZNuBSbnd4snP + j1NPPTXr2/+ZPgbo27dv6la6pfXee+/FG2+8UezVaL9+/aJevXrFXoElSeL2fwUcO6tXr87psjMp + L009H3jggVTPvPPz84v9tO9xxx2X+st0bv9nb+7cuXHYYYfF22+/bWOkJACU9tZJBTeKKcmvf/3r + 1J307Oj2/7aPATZv3lxiGZl0NpQLJZ24f//738ewYcOK/R783//+95g3b56deSdXXAdRP5Xm094L + Fy6MV155JVV5xQXMtLf/58+fn9WXDnd3S5YsiYsuuii6du0ac+bMsUEEgNIprnHZT5XX1W620rbM + //jjj+Ojjz4q9k7HlClTcrrMXHjssceK/Yxrr169YvTo0cWW4dW/ijl2SuqxMVP16tVLPe26dety + ekV+yCGHRMeOHbf79zp16qRqtR4Rcf/999uBMjRz5sw45phj4vrrr49NmzbZIAJA6a1Zs2aXCAAN + GzaME088sdRX/9uebNM47LDDdvjHsCxs3Lgx7rnnnmKnKe7Vv8WLF++Wja7KStpe2soiAGRS3vff + f59quieeeCL1tDu60u/fv3/UqlWrxHmTJIkHHnjADpShbt26xezZs+Oee+5J1UAQAaBEX3zxRepp + 27ZtW2nXY9CgQbHHHnukvpIuSdrHAOV9F+DOO+/M6Pbvtu66667Ufb+XlzPOOCPy8vJKPVSETFri + //Q1zdLK5A2EtL0Grl27NiZOnJh1AEh7+3/q1Kll/trazrxfFXsSq1Ilhg8fHq+++mqRXTwjAKT2 + +eefp562Z8+elXY90p6E33///Zg7d26J061cuTJefPHFVGUOHTq01K87prVo0aJ45plnMp5v06ZN + +v3PscWLF6eeNpuv6eWqvEzqmfYxwN577/0PXQy3aNEidVfBGv/l5vd/6qmnUl/0IAAUeUIsqwBQ + p06dHabqM844I6fr0Llz5/inf/qnVNO+8sor0b59+1RD2u4127RpE0cffXS5/WbZtOKfMGFCLF26 + 1A6fQ8W1IynrAJBJV9Qff/xx6mmnTp2aOjBse8V/yimnpOp9c+3atRl9zXBXtO3diapVq0aDBg2i + Z8+e8V//9V8Zvd3Rs2fPuOKKKxyIGfJO5DZD7969U793umnTpqRFixalXuawYcNy+h7u1VdfnVS0 + +++/v0z7Adh2yMvLSz755JOM6nfEEUeUWX3Kq8zKNvTv3z/1ehYUFCR5eXm5eZ+5SpXkiy++SL3s + fv36ZVT+VVddlarc5cuXJ9WqVUsiInn33XdTzXPvvfeWat0r836Vi7q1bNky9bZMkiTZsmVL0rVr + V+cy/QBkZ8aMGakb/lSrVq3ELmbL/bZOlSpZfas81/r375/6q4qlTrAZvss/e/ZsHwspA9OmTUv9 + amybNm3iqKOOyslyjz766BJ79/tBYWFhxr992lv0jRo1iuOPPz7222+/6N69u9v/OfDVV1/Fcccd + l/rRbNWqVeOmm26y4TwCyM769esz+rLYyJEjo1mzZpWm/r17947WrVtXeD1q164dAwYMKLfljRs3 + LvXrXV79KxtLly6Nt956K/X05557bk6Wm0k5b775Zixbtiyj8ufPn19sp1PbGjp0aOoAvmjRonj5 + 5ZftOCVYvnx5nH766anDZa9evaJ37942nACQnUxSecOGDeO+++6rNC1ky7MFfmWqy8qVK1N9AWzl + ypU+t1qG0rxS+oOBAweW+i5A7969o3///qmnT/s6a7Z/E0444YTUH99K29sgEa+99lpG3+u47LLL + bLSUPA/JwTPl6667LutnmrlqA1C3bt3k+++/TyqLwsLCpG3btuX2HPOggw4qsYwbb7yxQp6r7g5t + ACIiadiwYbJ+/frU6ztnzpykQYMGWS2rcePGyfz581Mva926dVkvq0GDBsmGDRtyenx06NChUjxn + j0rcBmDboW3btsnGjRtTl3vUUUc5n2kDkEUiSpKME+Qf//jHGD9+fKrPVZaVf/mXf0nV8Uh5ycvL + S301lAuzZs0qtjvVJEnijjvusIOXoRUrVpTYOdO2OnfuHM8++2zGHbnsueee8dxzz0WHDh1Sz3P3 + 3XfHd999l9V6fffddzntNGrGjBnxySef2GEysGjRoozuzl5yySU2mjsA2d8FmDFjRsapfuHChcmZ + Z57545foyvMOwCuvvJJUNp988km5XikMGjQoWbly5Q6Hp59+usKuqirCZZddViHHTpMmTTL6qmaS + JMmCBQuSY445JlX5ffr0ST7//POMvxRX2i8QnnDCCTn7bc4+++xyvcquiP2qLI6jdu3aJZs3b05d + do8ePZzPih4EgOKGjh07ZvSJ059+jnbcuHHJ4MGDk65duyatW7dOatSokeTn5yd77rln0rFjx+SE + E05IrrrqqoweNxR3YBQWFqYq44orrij1tjn99NNT17lnz5471W1MAaD0wznnnJNVnadNm5b827/9 + W9KtW7ekWbNmSbVq1ZLmzZsn3bt3T84///ysQnmSJMmIESNKvU75+fnJkiVLSv27bNiwIalfv74A + kOVx/de//jV12RMnTnQuEwCyHwYNGpT6xFqR3+P+y1/+krqMzp07l3q77Lnnnqmf9d51110CwG4W + ACIiefrppyvFMfPUU0/lbJ1uuOGGUtfn0UcfLfd9dVcKAPvuu2+yZcuW1O2QDjjgAOcybQCy88gj + j8SFF15Y6euZ9ln7zJkzU3X9W5LVq1fH5MmTU007cODACm0bQcU49dRTY9asWRVah5kzZ8bgwYNz + Vl4u3tv37n/pLFiwINUbPz+0QxozZoyNtgMCQEo33nhjnHfeeVl/dKasHXnkkbHvvvummjbtgZPG + ww8/nGq6+vXrx0knnWRH2s2sXbs2+vTpE7Nnz66Q5c+aNSt+/etfZ/SVwpLMnj27VOvzzTffxPPP + P2/nKKWrrroq9d/jQYMGxT777GOjCQDZu+WWW+Lkk0/OuhVxWUr7vn1hYWE88sgjOVvupEmTUn8+ + uTL1T0D5WbJkSfziF7+IF154oVyX+8ILL0SvXr1iyZIlOS+7NFfwDz30UKX7AuXOaN68ean7nKha + tWqMGjXKRhMASufpp5+OLl26xKRJk8p1uYWFhfHkk0/GYYcdtt24mjVrxsCBA1OV89prr2X0ueOS + rF+/Pv73f/831bS/+tWvonnz5nai3dCqVauiT58+MWrUqNiwYUOZLmvDhg0xatSo6NOnT6xatapM + lvHQQw/Fli1byj088I+uvPLK1HcBhg0blrq7aAGAIn311VdxwgknxDHHHFPsO+e5sHDhwhg7dmzs + s88+0b9//3jzzTe3m6Zfv36x5557piovl7f/f5D2MUDVqlUrxTcKqBhJksS1114bnTp1KpOr4K1b + t8b48eOjU6dOce2115ZpD3tLly7NqLvwH8ycOTM++OADO0OOfPzxx6m/pLjHHnvEH//4RxttG/k2 + QfamTJkSU6ZMiW7dusXw4cPjpJNOKnUf/Fu2bIm33347XnrppXj66afjnXfeSXUVfvnll6cq//HH + H8/5dnjxxRfj0ksvjSpVSs6Tu/PndytLV9EVraCgIIYMGRJjxoyJs88+OwYMGBCdOnXKurx58+bF + hAkT4q677oqCgoJyW4+xY8fGu+++m9E8r732mv2qDH6HAQMGpNoOI0aMiKuuuiqWL1/uQIyIH7aY + zqhz5MADD4xDDz00unfvHu3bt482bdpEkyZNombNmlGjRo3YunVrbNy4MVavXh1Lly6Nr776KhYs + WBDz5s2LmTNnxqxZs1J/0AZ2FR07dowjjjgiDj744OjQoUO0bds2GjduHLVq1Yrq1avHxo0bY926 + dbF8+fIoKCiI+fPnxzvvvBPTp0+P+fPn24AgAAAAaWgDAAACAAAgAAAAAgAAIAAAAAIAACAAAAAC + AAAgAAAAAgAAIAAAAAIAACAAAAACAAAgAAAAAgAAIAAAAAIAAAgAAIAAAAAIAACAAAAACAAAgAAA + AAgAAIAAAAAIAACAAAAACAAAgAAAAAgAAIAAAAAIAACAAAAACAAAIAAAAAIAACAAAAACAAAgAAAA + AgAAIAAAAAIAACAAAAACAAAgAAAAAgAAIAAAAAIAACAAAAACAAAgAACAAAAACAAAgAAAAAgAAIAA + AAAIAACAAAAACAAAgAAAAAgAAIAAAAAIAACAAAAACAAAgAAAAAgAAIAAAAACAAAgAAAAAgAAIAAA + AAIAACAAAAACAAAgAAAAAgAAIAAAAAIAACAAAAACAAAgAAAAAgAAIAAAAAIAACAAAIAAAAAIAACA + AAAACAAAgAAAAAgAAIAAAAAIAACAAAAACAAAgAAAAAgAAIAAAAAIAACAAAAACAAAgAAAAAIAACAA + AAACAAAgAAAAAgAAIAAAAAIAACAAAAACAAAgAAAAAgAAIAAAAAIAACAAAAACAAAgAAAAAgAACAAA + gAAAAAgAAIAAAAAIAACAAAAACAAAgAAAAAgAAIAAAAAIAACAAAAACAAAgAAAAAgAAIAAAPATSZIU + OYwePXq3qwe7l3ybgB/+AGVi3bp1sXbt2vjuu+9i7ty58eGHH8Zzzz0X06dPz7gsANwBYCdRq1at + aNq0aXTq1ClOOumkuOSSS+K1116LgoKCOOOMMyIvL6/S1n306NHFXnFRuVWW389+hAAA22jdunX8 + 9a9/jYkTJ8Yee+xhgwAIAOxO+vXrF7feeqsNASAAsLs566yzolu3bjYEQCWkESAluvbaa+OOO+74 + 8b9r1aoVe+21V5x44okxYsSIyM/f8W6Ul5cXgwcPjpkzZ9qIVEqVua0KCABUuO+++y4WLlz4D//2 + 8ccfx3PPPReTJk2KSZMmFTnvL3/5SxsQQABgVzN58uSYNm1aHHnkkTsc36pVq1KV36lTp+jSpUs0 + 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 + tl0Bp/mtohJ0Z1yaIZe/X2nqXxnqUd7HjmHXGrwFQE7853/+ZwwfPrzI3t9GjhwZ1157bSxdunS7 + cb/97W/j9ddfL7Zzk3r16kXv3r1zUtdFixbFzJkzo1u3bqUu6+GHH46rr746atSoUeQ0nTt3js6d + O/9j4k4Sr1pVgt9vZ69HeR87eAQA2/n666/j9ttvL3J8cW0BCgoKok+fPlFQUFBu9f3LX/6Ss9vA + 11xzTcbzXXjhhXaaSvD77ez1qIhjBwEAtnPNNdcU2z3syJEji+xi9IMPPoiuXbvG+PHjS9XBTGFh + Ybz00kvx5ptvFjvdM888E3/4wx+K7egmrbFjx8aECRNSTbthw4Y488wz48Ybb7TDlEIuf7+dvR7l + fewgAMB2li1bFrfccktWdwEiIlauXBmDBw+O/fbbL2699dbUX61bvnx5TJgwIc4999xo3bp1HHvs + sTFz5swS57v11lujQ4cOcemll8aUKVPi66+/Lva1vqJs3bo1Bg4cGBdccEGRHbRs3bo1Jk6cGAcd + dFCMGzfOzpIDufr9doV6lPexw67hh4eQ+vSkUmrVqlX06NEjGjduHA0aNIiaNWvG2rVrY9WqVVFQ + UBBz5syJr776qtLUt1q1atGzZ8/o0qVLNGjQIDZu3BifffZZvPrqqznvphd2pWMHAQAAKAceAQCA + AAAACAAAgAAAAAgAAIAAAAAIAACAAAAACAAAgAAAAAgAAIAAAAAIAACAAAAACAAAgAAAAAgAAIAA + AAACAAAgAAAAAgAAIAAAAAIAACAAAAACAAAgAAAAAgAAIAAAAAIAACAAAAACAAAgAAAAAgAAIAAA + AAIAAAgAAIAAAAAIAACAAAAACAAAgAAAAAgAAIAAAAAIAACAAAAACAAAgAAAAAgAAIAAAAAIAACA + AAAACAAAIAAAAAIAACAAAAACAAAgAAAAAgAAIAAAAAIAACAAAAACAAAgAAAAAgAAIAAAAAIAACAA + AAACAAAgAACAAAAACAAAgAAAAAgAAIAAAAAIAACAAAAACAAAgAAAAAgAAIAAAAAIAACAAAAACAAA + gAAAAAgAAIAAAAAIAAAgAAAAAgAAIAAAAAIAACAAAAACAAAgAAAAAgAAIAAAAAIAACAAAAACAAAg + AAAAAgAAIAAAAAIAACAAAIAAAAAIAACAAAAACAAAgAAAAAgAAIAAAAAIAACAAAAACAAAgAAAAAgA + AIAAAAAIAACAAAAACAAAgAAAAAIAACAAAAACAAAgAAAAAgAAIAAAAAIAACAAAAACAAAgAAAAAgAA + IAAAAAIAACAAAAACAAAgAAAAAgAACAAAgAAAAAgAAIAAAAAIAACAAAAACAAAgAAAAAgAAIAAAAAI + AACAAAAACAAAgAAAAAgAAIAAAAAIAAAgAAAAAgAAIAAAAAIAACAAAAACAAAgAAAAAgAAIAAAAAIA + ACAAAAACAAAgAAAAAgAAIAAAAAIAACAAAAACAAAIAACAAAAACAAAgAAAAAgAAIAAAAAIAACAAAAA + CAAAgAAAAAgAAIAAAAAIAACAAAAACAAAgAAAAAgAACAAAAACAAAgAAAAAgAAIAAAAAIAACAAAAAC + AABQsf4PGIoDzv6Zh0wAAAAASUVORK5CYII= + </image> + </surface> +</OBJECT-3D> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TaskManager/Test/test_render/xml_file/title.xml Fri Jul 17 22:50:06 2009 +0900 @@ -0,0 +1,243 @@ +<?xml version="1.0"?> +<OBJECT-3D> + <surface name="TITLE" size="6" prim="Triangle" parent="NULL"> + <coordinate> + 258.234375 258.234192 0.000000 + -258.234192 258.234436 0.000000 + -258.234436 -258.234375 0.000000 + -258.234436 -258.234375 0.000000 + 258.234375 -258.234375 0.000000 + 258.234375 258.234192 0.000000 + </coordinate> + <normal> + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + 0.000000 -0.000000 1.000000 + </normal> + <model> + 0.000000 0.000000 0.000000 + </model> + <texture> + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + </texture> + <image name="title.png"> + iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A + /wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kFAwoQISiMQAAAAAAZdEVYdENv + bW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAgAElEQVR42u3deVwW573//w+L7AgqAgq41F1U + JCpI6pI0WnesosZo0qY5Vj1NbNRHtJqmqX2c5GiO8aGtibFKTsw51i0YMHpM4naMicuRqFFwgaAR + FZAIAgKyc/3+yNf+GuW+uWfuuW9ubl7Px2P+0HuWay6umXnPNZuLiCgBAAAtiitVAAAAAQAAABAA + AAAAAQAAABAAAAAAAQAAABAAAAAAAQAAABAAAAAAAQAAABAAAAAAAQAAABAAAAAAAQAAABAAAAAA + AQAAABAAAAAAAQAAAAIAAAAgAAAAAAIAAAAgAAAAAAIAAAAgAAAAAAIAAAAgAAAAAAIAAAAgAAAA + AAIAAAAgAAAAAAIAAAAgAAAAAAIAAAAgAAAAAAIAAAAEAAAAQAAAAAAEAAAAQAAAAAAEAAAAQAAA + AAAEAAAAQAAAAAAEAAAAQAAAAAAEAAAAQAAAAAAEAAAAQAAAAAAEAAAAQAAAAAAEAAAACAAAAIAA + AAAACAAAAIAAAAAACAAAAIAAAAAACAAAAIAAAAAACAAAAIAAAAAACAAAAIAAAAAACAAAAIAAAAAA + CAAAAIAAAAAACAAAABAAAAAAAQAAABAAAAAAAQAAABAAAAAAAQAAABAAAAAAAQAAABAAAAAAAQAA + ABAAAAAAAQAAABAAAAAAAQAAABAAAAAAAQAAABAAAAAgAFAFAAAQAAAAAAEAAAAQAAAAAAEAAAAQ + AAAAQDPhThUAlvH395fY2FgZOnSo9OjRQ7p27SoRERHi7+8vPj4+4unpKVVVVVJZWSnl5eVy+/Zt + yc3NlevXr8ulS5fk4sWLcubMGamoqKAyATQ5FxFRVINpPj4+smTJEnFxcdE0XUlJiaxdu9amZevT + p488/fTTmqfbtm2bZGZm8se1QKdOnSQhIUESEhIkLi5OXF2t6zSrqamRc+fOyYEDB+Tjjz+Wc+fO + 6Z7XihUrNI1fWVkpq1atMrR+7FGGlrKeIiJK6d8dV1ZWSkREhBQUFBi+Hbz00kuyfv16XdOWlJRI + YGAgOxMHpRjMD+fOnVN6dO/e3ablevfddzWXqaKiQgUEBBhajjFjxihrzJs3z+H+5iNHjlTJycmq + rq5O2VJGRoZasmSJCgoK0lxGrYqLiw2vJ3uUoaWsp57lPOy1114zfN1dXV3Vt99+q7tMtvh7MBg2 + UAmNDYsWLXKYjfHB4ObmpvLz8zWXaceOHYaXZdu2bVbttI4fP+4wf+sBAwaoQ4cOKXu7f/+++tvf + /qZ69uzJgZEAoFteXp7y8PAwdN3j4+OtKhMBgADQrIeQkBBVW1urueGnp6fbrEyjR4/WtTFOmDDB + 0HK0bt1a3b9/3+odV48ePZr0b9yqVSv11ltv2fyMvzF1dXXqN7/5DQdGAoBuv/zlLw1d9yNHjhAA + nHTgKQAL5Ofny4EDBzRPFxkZKf3797dJmZ555hld6/H5558bWo4ZM2aIt7e31fP55S9/2aTX+U+c + OCFLly61+hq/tVxdXSUsLIyNDrotWrTIsHlFRUXJk08+SaU6KQKAhf7rv/5L13QzZ840vCweHh4y + ZcoUzdNt375damtrDS3Lr371K0Pm89xzz2m+0dIIffv2lePHj8vgwYNp5HAKAwcOlCeeeMKQeS1c + uJAKJQBgz549cu/ePc3T6blLvzFjx47VdVftf//3fxtajm7dusmwYcMMmVfnzp0N22lZqnfv3nLs + 2DEJDw+ngYNegIeEhITo6mkEAcDpVFRUSFJSkq6DZExMjKFl0bNRXrx4Uc6ePWtoOYzutjeqN8ES + wcHBsn//fmnXrh2NG05n4sSJ0r17d6vm8dvf/lY8PT2pTAIArDmDNvIygI+Pj0yaNKnJz/5dXFzk + ueeeM3SeCQkJ4uvra/tG7+oqu3btkq5du9Ko4Zw7dldXefnll3VP7+npKfPnz6ciCQB44IsvvpDs + 7GzN082YMcOwm8vi4+M1HyTr6+tl69athtbF8OHDDT+A+vn5ydSpU23+d1y8eLGMHDnSkHmdO3dO + 1qxZIxMmTJC+fftK+/btxcPDQ4KDg6Vv374ya9Ys2bRpk+Tk5LABwa6ef/553S/gmT17tgQHB1OJ + LQCPQ2gY3njjDV2PwowcOdKQ5aekpGhe9sGDBw2vh/fff98mj8EdOnTIpn+/Ll26qMrKSqvKWF9f + r7Zv364iIyM1vbdh8uTJ6vDhw43Of8WKFTwex2OAhnjllVd0leP8+fOGlYHHAHkPgNMMvXr10rUR + vPfee1YvOyAgQNfBy+jngn18fNS9e/ds9hx8RESEzf5+1r60KCcnRz311FNWleGpp55SZ8+eJQAQ + AGweALKzs5Wbm5vm9mkkAgDvAXAaGRkZcvr0ac3TTZs2Tdzdrfv20tSpUzXflFNeXi67d+82tA6m + TJki/v7+Nrt2afS9BQ/079/fqvsxLly4IDExMXL48GGrynH48GEZMmSILF26VCorK9moYDMPvmWh + hZHvEYBjIwDooOeGuqCgIBk1apRVy9Vz8EpOTpby8nJD19/Wd+vb6qVACxYs0P2ugaysLBk1apRh + 1/Lr6upk9erVEhsbKxkZGWxUsBktB/SePXvK+PHjqbQWhK4QjUO7du1UdXW15q6wLVu26F5m+/bt + VU1NjeZljh492tB1DwsL0/y63CtXrmgud2xsrKHlDgwMVOXl5bq6MKuqqlRUVJTN2pO/v79KTk7m + EgCXAGz2iumhQ4fa7ANjXALgEkCLUlhYKPv379fVda73udrp06drvoSQk5NjdXf1w5599llNTzSU + lZXpepzI6F6GyZMni4+Pj65p33rrLTl//rzN2lNpaalMnTpV3nzzTSksLJT79++zkcHuvQCBgYF2 + fRcH6AFotkNCQoKuNDxlyhRdyzt27JjmZf3Hf/yH4et96dIlTWXYtm2bEhF17do1TdPdvXtXeXp6 + Glbujz/+WNff686dO8rPz88h2yA9APQAWKq2tlZ16tTJ7LKXLl1qk2XTA0APgNPZt2+fFBUVaZ5O + z3X88PBwXa/c1fv9AlOGDBkiffr00TTNzp07RURk165dmqZr06aNrhceNcTd3V1+/vOf65p248aN + UlZWRoOHQyorK5Pbt283Op6bm5ssWLDA7Dby0ksvNTqfrKwsKt2JEAB0qqqq0nxQE/nhFZ1aX+Tz + 9NNPa7557ZtvvpH09HRD11lr9+C9e/fks88++1EQsOXyTBkwYIDuNwy+//77NHY4rLq6Otm8ebNF + 486ZM8fkdpCQkCARERGNzmPDhg1UupOhK0Tn8Pjjj+vqEps1a5am5aSmpmpexqJFiwxdVw8PD1VQ + UKCpDB9++OGP5pGZmalp+pqaGhUcHGx12efPn6/r73Tu3DmHbn9cAuASQHFxsQoLC7P4BuGXXnqp + weWeOnWq0WnLy8tVYGAglwC4BAARkRMnTujqEtNyGaBbt26aP1VbV1cn27ZtM3RdJ0yYoPnDOQ+f + 9WvtBXB3d5dZs2ZZXfb+/fvrmu7YsWM0cji8nJwcSUlJsWjcl19++ZGbeIcOHSqxsbGNTvv3v/9d + iouLqXAnQgCwkp537I8ZM0batGlj0bh6vvx34MAByc/PN3Q9tXbHFxUVycGDB60KAHqW25DOnTvr + mu7rr7+mgaNZeOeddywar3v37jJx4sQf/Z+l7wmwdBloXugKsWL4yU9+oqt7+V/+5V8smn96errm + ec+cOdPQdQwKCtL83oPExMQG53Xx4kXN6zNgwACryp+WlqbrbxQXF8clAC4BOPwlAK3t/H//93// + MU1ERIRFlw++/PJLh/p7MHAJwCFcu3ZNjh8/rnk6S87s+/fvL5GRkZrme+/ePdmzZ4+h6zhr1ixp + 1aqVpmlMne03RS9AUFCQrulu3bpFA0ez8e6771o03hNPPCEDBw4UkR/ejmnJ+0U4+6cHgMHEMHfu + XF3P5YaEhJid75tvvql5vu+//77h63fmzBlNZfj+++9NfoBEz8eUbt++rdzd3XWXv6SkRFcPgL+/ + Pz0A9AA0mx4APz8/VVxcbPENur6+vqqoqKjRcXNzc1WrVq3oAaAHAA3ZtWuXVFVVaZrGzc1Npk+f + bnacp59+WnNZjH72PzIyUh577DFN0+zevVvq6uoa/C0jI0PzW/VCQkJkzJgxutdB7xsAKyoqaNxo + NsrKyuTDDz+0aNyZM2fK8uXLJTAwsNFxN23aJDU1NVSwEyIAGKC4uFj27t2reTpzlwFiYmKkW7du + muaXnZ1t+J3rerrfG+vm13MZwJoPBOn9AJBSisaNZmXDhg0WtVsPDw/5wx/+0Oh4NTU1smnTJiqW + AACjz7zj4uKkU6dOJhO6Vlu3bjX0oOXm5ibPPvuspmny8vIaDSF6XqAUHx9v0dmKkWfy3t7eNGw0 + KxkZGXLo0CHD5pecnCy5ublULAEA5nz22Wdy584dzWemDXXzu7q6yowZMzSXQc9nis0ZPXq0dOjQ + QdM0SUlJUl9fb3acq1evan7EzsvLS9clERHR/XEdPz8/GjaaHUtvBrT3vEAAcFo1NTWyY8cOzdM1 + dBlg+PDhEhYWpmk+p0+fNvy78rbo/tc6nrXlEREpKSnRNZ0lr0YFHM3evXslOzvb6vmkpaXxMiwC + AGx5Bh4dHS09e/b80f/p6f43+uw/ICBAfvGLX2ia5tatW3LixAmLxt21a5fmyxVxcXGP1JUlbt68 + qasOunTpQqNGs1NfXy8bN27k7B8EAHtKTU2Vy5cva57unw/47u7uMm3aNM29D9u3bzd0XWbMmCFe + Xl6aptFyUL9x44acOnVKc7n03Ayo92xo0KBBNGo0S4mJiZqfTPpnJSUlut5yCgIAvQBWBIBRo0Zp + fnHN/v37pbCw0ND10HOg1Xpzn57LAM8++6zmu/q//fZbXXXw05/+1Lk2dldXh54f62mcgoICXdvX + A1u2bJHy8nJ26C0AL0QwcOjUqZOqr6/X/LKMqKgoJSJqy5YtmqdNSEgwdB26deumHNmTTz6paX1G + jx6tazl1dXWqQ4cODtvWtLazuro65eLiYtjy9XwZrrCwkPW00wuHYmJidLX7+vp61bNnT4d+MRMD + LwJySDdu3JCjR4/q6gXw9PTUfN29qKhI9u3b1+Rn//ak9WbAr7/+Wtfjka6urvLcc885bD1ofbzR + 1dVV/P39DVt+QECA5mn0PJHRUtbTaKdPn5bU1FTN0x08eFAyMzPZmbcABAAb0HsZYPz48Zp3Nnre + QmiOi4uLwweAhIQE8fX11RSStL598IGXX35ZPD09HbIeysrKNE/TvXt3w5bftWtXu5S5paynLei5 + kY+b/wgAsEJSUpLmM4AuXbrIypUrNS/L6Ff/jhgxwuHvfvfz85OEhARN0yQnJ+taVseOHWXx4sV2 + Wa9nnnlGbty4YfHycnJyNC9jyJAhhpVXz7z0fGCppaynLezYsUMKCgosHv/69euG9yiCANCilJaW + SkpKiubpevXqpWn8rKwsix+7s5S1X96zF63l3L17t+5lvfbaa9K7d2+brYuLi4usWLFC/v73v0tE + RIS0bt3a4p21VuPHjzes3KNGjdI8zXfffad5mpaynrZQVVUl77//vsXjb9y4sdEXecG5cDOEDYax + Y8fa/Ga4P/3pT4aW2cfHR927d081B3V1dSoiIkLT+h0/flz38tLT01WbNm0Mbyft2rVTe/fu/dGy + VqxYYdG0f/zjH3V9hTI8PNzqcnfv3l3Xza7/+q//qnlZLWU9xUY32HXu3FnV1dU1Oq+KigrVrl27 + ZvF1RgZjBnfyj20cPHhQbt++LaGhoTZbhtEv/5kyZYqhN0/ZtOvq/92g9+///u8WT7Nu3Tp5/PHH + dS0vMjJSPv/8c5k4caJ8//33hqzDxIkTZePGjZrf+viAnt4fNzc3WbduneZ3TTzs7bff1vWRJT1l + binraSvZ2dnyzjvvNPpei6NHjxr+ODHoAWixw5o1a2x2BvzVV18ZXt4DBw6o5iQjI0PT+rm5uamL + Fy9atcwbN25ofgzx4aFHjx4qKSnJ5DIs7QHw9PRUJSUlutZj6dKlusv/2muv6a47PY/ntZT1bC5n + 1/QAONVAJdhqiIqKstnBb+7cuYaWNSwszKJuQkczdOhQu1+aqa+vVzt37lQDBw7UtOzBgwerzZs3 + q5qaGrPztzQAiM73Rjzwn//5n5recxAeHq62bdume3lr1qzR3T5bynoSABgIAE40nD9/3vCDXmVl + pQoMDDS0nMuWLdNcjq1btxpahu+++05zGd577z3Ny0lOTjbsb5GWlqb++te/qmnTpqm+ffuq9u3b + q1atWqm2bduqnj17qilTpqg1a9aotLQ0i+epJQAMGjTI6ra0detWNWfOHNW/f38VEhKiPD09lZeX + l+rQoYOKjo5W8+bNUzt37lTV1dW6l1NbW6u6du2qu220lPUkADAQAJxoeOWVVwwPAB999JHh5bx0 + 6ZLmckyaNMnQMrz11luay3D37l3l6empaTlBQUEqJyfHYXs1tAQAEVGffvqpw/fUfPjhh1a3j5aw + ngQABgKAEw0dOnRQtbW1hu5kjD7wDhkyRHMZioqKlIeHh6HleOyxx3TVx7Rp0zQva8SIEaqystIp + AkDPnj0ddl0etJWQkBCr20dLWE8CAIM9B94DYGN5eXly+PBhw+Z3584d+eyzzwwto55n/1NSUqS6 + utrQcpw9e1aysrLsUv5jx47J7NmzneKZ58zMTFmyZInDlm/+/PmSn5/PegI8BdDyhtmzZxt2lvHX + v/7V0LJ5eHiowsJCzeUYO3asTerqjTfe0FyWmpoaFRwcrGt5s2bNUlVVVc26B+DBkJiY6HBnxW++ + +abhbcSZ15MeAAYuATjZ4OPjo0pLSw3Z0QwePNjQsk2dOlVzGQoKCpS7u7tN6qpfv3666mXRokW6 + lzly5EhVUFDQ7AOAq6ur+uCDDxxmPd566y3bdFs68XoSABgIAE44WPMY0wOXLl0yvFx79uzRXI7N + mzfbtK70PKv/zTffWH2vxv79+5v8YFJSUqLrnoYHg4uLi1q2bJnh951oUVFRoebMmWPTNuKs60kA + YCAAOOHws5/9zOodzvLlyw0tU/v27XU98jRq1Cib1tXrr7+uq36ioqKsXvYzzzyjrl69aveDybVr + 19TChQuVv7+/IXUYGxurzp49a/f1OHr0qIqMjLTbduVs60kAYCAAOOPdlq6u6saNG7p3OPX19apT + p06Glul3v/ud5nLk5+crNzc3m9ZVr169dNWRNS9gefi+iLlz59rkHQ7/rLa2Vu3bt0/Fx8crV1dX + m7S52bNn23w9lFLq+PHjKj4+vsm2LWdZTwIAAwHASYeVK1fq3vEcOXLE8PKcOXNGczk2bNhgl7o6 + d+6c5rLdvn3b8HsThg4dqt5++22VkZFhyAGksLBQJSUlqRdeeEEFBQXZ9Ux57dq1Kisry7CDYXp6 + ulq5cqUaMGCAw2xjzX09CQAM9hxcHqQAtCw+Pj6yZMkSzR862bVrl1y6dMnm5RszZozExcVpnm7T + pk2Sm5trkzJFRETIkCFDZNCgQdKjRw/p1KmThIWFiZ+fn/j4+IiHh4fU1dVJdXW1lJWVyd27dyUn + J0cyMzPl7NmzkpqaKhcuXGjyRw/Dw8MlLi5OIiMjpXfv3hIeHi6hoaHSpk0b8fb2Fk9PT1FKSVVV + lVRWVkpBQYHk5+fLzZs35fLly5Keni4nTpww7KNIrCfQNAgAAAC0QLwICAAAAgAAACAAAAAAAgAA + ACAAAAAAAgAAACAAAAAAAgAAACAAAAAAAgAAACAAAAAAAgAAACAAAAAAAgAAACAAAAAAAgAAACAA + AAAAAgAAAAQAAABAAAAAAAQAAABAAAAAAAQAAABAAAAAAAQAAABAAAAAAAQAAABAAAAAAAQAAABA + AAAAAAQAAABAAAAAAAQAAABAAAAAAAQAAAAIAAAAgAAAAAAIAAAAgAAAAAAIAAAAgAAAAAAIAAAA + gAAAAAAIAAAAgAAAAAAIAAAAgAAAAAAIAAAAgAAAAAAIAAAAgAAAAAAIAAAAEAAAAAABAAAAEAAA + AAABAAAAEAAAAAABAAAAEAAAAAABAAAAEAAAAAABAAAAEAAAAAABAAAAEAAAAAABAAAAEAAAAAAB + AAAAEAAAACAAAAAAAgAAACAAAAAAAgAAACAAAAAAAgAAACAAAAAAAgAAACAAAAAAAgAAACAAAAAA + AgAAACAAAAAAAgAAACAAAAAAAgAAACAAAAAAAgAAAAQAAABAAAAAAAQAAABAAAAAAAQAAABAAAAA + AAQAAABAAAAAAAQAAABAAAAAAAQAAABAAAAAAAQAAABAAAAAAAQAAABAAAAAAAQAAAAIAAAAgAAA + AAAIAAAAgAAAAAAIAAAAgAAAAAAIAAAAgAAAAAAIAAAAgAAAAAAIAAAAgAAAAAAIAAAAgAAAAAAI + AAAAgAAAAAAIAAAAEAAAAAABAAAAEAAAAAABAAAAEAAAAAABAAAAEAAAAAABAAAAEAAAAAABAAAA + EAAAAAABAAAAEAAAAAABAAAAEAAAAAABAAAAEAAAACAAAAAAAgAAACAAAAAAAgAAACAAAAAAAgAA + ACAAAAAAAgAAACAAAAAAAgAAACAAAAAAAgAAACAAAAAAAgAAACAAAAAAAgAAACAAAABAAAAAAAQA + AABAAAAAAAQAAABAAAAAAAQAAABAAAAAAAQAAABAAAAAAAQAAABAAAAAAAQAAABAAAAAAAQAAABA + AAAAAAQAAABAAAAAAAQAAAAIAAAAgAAAAAAIAAAAgAAAAAAIAAAAgAAAAAAIAAAAgAAAAAAIAAAA + gAAAAAAIAAAAgAAAAAAIAAAAgAAAAAAIAAAAgAAAAAAIAAAAEAAAAAABAAAAEAAAAAABAAAAEAAA + AAABAAAAEAAAAAABAAAAEAAAAAABAAAAEAAAAAABAAAAEAAAAAABAAAAEAAAAAABAAAAEAAAACAA + AAAAAgAAACAAAAAAAgAAACAAAAAAAgAAACAAAAAAAgAAACAAAAAAAgAAACAAAAAAAgAAACAAAAAA + AgAAACAAAAAAAgAAACAAAABAAAAAAAQAAABAAAAAAAQAAABAAAAAAAQAAABAAGjU5s2bRSnV4BAb + G/uP8bp162ZyvOTkZP6SACxmal+ilJJly5ZRQWgRx7UmDwB5eXkmf8vNzdU8HmBu5653WLFiBRUL + wKmOa+5NXVGmVlIpJbdv3/7Hv+/fvy8lJSUSEBCgqbLtwdzB4dChQ/LVV1+1mIZPXVDPcM52Qptz + vuOawwaAgoICqampeWRcRwwAf/rTn0z+VllZ2aI2DOqCeoZzthPanPMd1xz2EkBDFahlXAAAOK45 + cAAwtZIN/b+pcZu6BwAAgOZ2XGvyAHD79m2pr6+3aOUJAAAAR9dcjmtNHgDq6urkzp07FlVKQxVS + W1vb4PRAQ5YvXy4uLi6aB54CAOBsxzV3R6is3NxcCQkJabSiGvq//Pz8BpOWOS4uLtKtWzfp06eP + hIeHS0BAgHh4eEh1dbUUFRXJrVu35PLly3Lt2rUmrRdfX1/p2rWrdOnSRTp27Ci+vr7i6+srIj/c + dFNcXCy5ubmSlZUlWVlZmusB9uXm5iaDBg2SgQMHSlBQkCilJCcnR06dOiWZmZkOV14PDw/p16+f + 9OrVS0JDQ8XX11fq6+ultLRUcnJyJD093SHLbfhO0t1dfvrTn0q3bt0kODhYysvLJScnR7744gsp + LCykYRuobdu2EhMTI6GhodK2bVvx8vKSu3fvyt27d+XKlSuSnp5u0/2ckduovY9reqmmHvbt26ce + 9otf/OKR8YYNG/bIeKmpqRYvJyYmRiUmJqr8/HxliYKCApWUlKR+/etfq4CAgB/NywgNlfHVV19V + e/bsUdevX1f19fUWz6u4uFjt3r1bxcfHKxcXF4vqw5xly5b9YzwXFxc1ZswYtWXLFnX16lVVU1Oj + lFJqxYoVNq0LvYOl62WvZfn6+qpXX31V5ebmmhz31KlTKi4uTveyjKpnFxcXNWnSJJWSkqLKysoa + nV9ubq5as2aNioiIsGubs8ffrWPHjmr9+vWqqKiowfFqampUSkqK6tKli03bpNZpjWwn9mhzrVu3 + VkuWLFFpaWmN7vOKiorUrl271NChQx1yG22K45qVQ9MHgM2bNz9SATExMY+M161bt0fG27NnT6Pz + 79Chg0pJSbGqEd+9e9cuO2MjnDx50rCd0pAhQ9SZM2caHIcA0Piy4uPj1a1btyyqg9raWvXss882 + WQAYNGiQyb91YyoqKtTChQvt1uZs+Xf7wx/+oJYuXaoqKiosWvfy8nI1atQoAoCONjdnzhxVUlKi + a76fffaZCgkJcaht1J7HNacJAH/+858fqYDw8PBHxvP29n5kvI0bN5qd94ABA1ReXp7VjbiysrLZ + BACllLp586YKDQ21asNYtmzZP868CADal3X9+nXN9VBdXa2ioqLsHgB+/etfq+rqaqvnv2bNGru0 + OVv+3e7fv695vcvKytTAgQMJABa2OVdXV/XBBx9YPe/c3Fw1aNAgh9lG7XVcc6oAYKuhbdu2Kicn + x5BG3NwCgFJK7dixQ/eGcefOnUbn3xwDgB7mDjq2sHfvXrsGgF/96leaLjc1ZtasWTZvc47WRh50 + EZu6/EYA+PGwdu1aw+o9Ly+vwQNrU2yjzW1wiJsAbeX3v/+9dOzY0eTvlZWV8sUXX8jly5eltLRU + vL29JSwsTKKioqRPnz7i4uLS5Otw+fJlOXv2rNy6dUtqamrE19dXwsLCZMiQIdK1a1ez006bNk2C + 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 + </image> + </surface> +</OBJECT-3D> \ No newline at end of file