tolua++-1.0.93/0000755000175000017500000000000011146141660012344 5ustar cesarecesaretolua++-1.0.93/src/0000755000175000017500000000000011146141657013141 5ustar cesarecesaretolua++-1.0.93/src/tests/0000755000175000017500000000000011146141657014303 5ustar cesarecesaretolua++-1.0.93/src/tests/tnamespace.lua0000644000175000017500000000042610343424077017126 0ustar cesarecesare-- test valid access assert(A.a==1) assert(A.B.b==2) assert(A.B.C.c==3) -- test invalid access assert(A.B.a==nil) -- no inheritance assert(A.B.C.a==nil) assert(A.b==nil) -- no access the inner module assert(A.c==nil) assert(A.B.c==nil) print("Namespace test OK") tolua++-1.0.93/src/tests/tdirective.pkg0000644000175000017500000000047310343424077017152 0ustar cesarecesare$#include "lualib.h" $#include "lauxlib.h" $int a; $extern int a; $int main (void) ${ $ lua_State* L = lua_open(); $ luaopen_base(L); $ tolua_tdirective_open(L); $ lua_dofile(L,"tdirective.lua"); $ lua_close(L); $ return 0; $} $pfile "tdirectivepkg.pkg" $< a = 3; $> $[ A = 4 $] $lfile "tdirectivelua.lua" tolua++-1.0.93/src/tests/tnamespace.pkg0000644000175000017500000000015510343424077017125 0ustar cesarecesare $#include "tnamespace.h" namespace A { int a; namespace B { int b; namespace C { int c; } } } tolua++-1.0.93/src/tests/tconstant.lua0000644000175000017500000000031010343424077017013 0ustar cesarecesareassert(FIRST==M.FIRST) assert(FIRST==A.FIRST) assert(SECOND==M.SECOND) assert(SECOND==A.SECOND) assert(ONE==M.ONE) assert(ONE==A.ONE) assert(TWO==M.TWO) assert(TWO==A.TWO) print("Constant test OK") tolua++-1.0.93/src/tests/tvariable.lua0000644000175000017500000000272210343424077016760 0ustar cesarecesareassert(i==1) assert(f==2) assert(d==3) assert(s=="Hello world") assert(n=="Hi there") n = "Hello" assert(n=="Hello") assert(a.i==11) assert(a.f==12) assert(a.d==13) assert(a.s=="Hello world from class") assert(a.n=="Hi there from class") a.n = "Hello from class" assert(a.n=="Hello from class") assert(v==a.v) u.i = 2 assert(u.i==2) u.f = 2 assert(u.f==2) assert(u.i~=2) assert(M.mi==21) assert(M.mf==22) assert(M.md==23) assert(M.ms=="Hello world in module") assert(M.mn=="Hi there in module") M.mn = "Hello in module" assert(M.mn=="Hello in module") assert(M.mv==nil) assert(M.ma.i==31) assert(M.ma.f==32) assert(M.ma.d==33) assert(M.ma.s=="Hello world from class in module") assert(M.ma.n=="Hi there from class in module") M.ma.n = "Hello from class in module" assert(M.ma.n=="Hello from class in module") assert(M.ma.v==nil) assert(a.i==b.a.i) assert(a.f==b.a.f) assert(a.d==b.a.d) assert(a.s==b.a.s) assert(a.v==b.a.v) assert(b.b==nil) assert(M.ma.i==M.mb.a.i) assert(M.ma.f==M.mb.a.f) assert(M.ma.d==M.mb.a.d) assert(M.ma.s==M.mb.a.s) assert(M.ma.v==M.mb.a.v) assert(a.i==M.mb.b.a.i) assert(a.f==M.mb.b.a.f) assert(a.d==M.mb.b.a.d) assert(a.s==M.mb.b.a.s) assert(a.v==M.mb.b.a.v) assert(M.mb.b.b==nil) assert(s~=rawget(_G,"s")) -- because s represents a C variable s = "Hello" assert(s==rawget(_G,"s")) -- because s is mapped as const f = 25.0 assert(f~=rawget(_G,"f")) -- because f represents a C variable b.a.i = 5 assert(b.a.i==M.mb.b.a.i) print("Variable test OK") tolua++-1.0.93/src/tests/tmodule.c0000644000175000017500000000044610343424077016122 0ustar cesarecesare#include "lualib.h" #include "lauxlib.h" #include "tmodule.h" int a = 1; int b = 2; int c = 3; int d = 4; int main () { int tolua_tmodule_open (lua_State*); lua_State* L = lua_open(); luaopen_base(L); tolua_tmodule_open(L); lua_dofile(L,"tmodule.lua"); lua_close(L); return 0; } tolua++-1.0.93/src/tests/tmodule.pkg0000644000175000017500000000022210343424077016451 0ustar cesarecesare $#include "tmodule.h" module A { extern int a; module B { extern int b; module C { extern int c; } } } module A { extern int d; } tolua++-1.0.93/src/tests/tarray.h0000644000175000017500000000051110343424077015751 0ustar cesarecesare typedef struct Point Point; struct Point { float x; float y; }; extern int a[10]; extern Point p[10]; extern Point* pp[10]; extern int ma[10]; extern Point mp[10]; extern Point* mpp[10]; typedef struct Array Array; struct Array { int a[10]; Point p[10]; Point* pp[10]; }; extern Array array; extern Array* parray; tolua++-1.0.93/src/tests/tarray.pkg0000644000175000017500000000050610343424077016307 0ustar cesarecesare$#include "tarray.h" struct Point { float x; float y; }; extern int a[10]; extern const Point p[10]; extern Point* pp[10]; module M { extern int ma[10]@a; extern const Point mp[10]@p; extern Point* mpp[10]@pp; } struct Array { int a[10]; Point p[10]; Point* pp[10]; }; extern Array array; extern Array* parray; tolua++-1.0.93/src/tests/tvariable.c0000644000175000017500000000141310343424077016415 0ustar cesarecesare#include "lualib.h" #include "lauxlib.h" #include "tvariable.h" int i = 1; float f = 2.0f;; double d = 3.0; char* s = "Hello world"; void* v = (void*)1; char n[64] = "Hi there"; A a = {11,12.0f,13.0,"Hello world from class",(void*)1,"Hi there from class"}; B* b; U u; int mi = 21; float mf = 22.0f; double md = 23.0; char* ms = "Hello world in module"; void* mv = NULL; char mn[64] = "Hi there in module"; A ma = {31,32.0f,33.0,"Hello world from class in module", NULL,"Hi there from class in module"}; B* mb; int main (void) { int tolua_tvariable_open (lua_State*); lua_State* L = lua_open(); B bb = {a,NULL}; B bbb = {ma,&bb}; b = &bb; mb = &bbb; luaopen_base(L); tolua_tvariable_open(L); lua_dofile(L,"tvariable.lua"); lua_close(L); return 0; } tolua++-1.0.93/src/tests/tdirective.lua0000644000175000017500000000011110343424077017137 0ustar cesarecesareassert(a==3) assert(A==4) assert(func()==5) print("Directive test OK") tolua++-1.0.93/src/tests/tdirectivepkg.pkg0000644000175000017500000000001710343424077017646 0ustar cesarecesareextern int a; tolua++-1.0.93/src/tests/tarray.lua0000644000175000017500000000107110343424077016305 0ustar cesarecesarefor i=1,10 do assert(a[i]==i) end for i=2,10 do assert(p[i-1].y==p[i].x) end for i=1,10 do assert(M.a[i]==i) end for i=2,10 do assert(M.p[i-1].y==M.p[i].x) end for i=1,10 do assert(pp[i].x==M.p[i].x and p[i].y == M.pp[i].y) end for i=1,10 do assert(array.a[i] == parray.a[i]) assert(array.p[i].x == parray.pp[i].x and array.p[i].y == parray.pp[i].y) end for i=1,10 do array.a[i] = a[10-i+1] M.a[i] = 10-i+1 assert(array.a[i]==M.a[i]) end for i=2,10 do array.p[i] = array.pp[1] assert(array.p[i].x==0 and array.p[i].y==1) end print("Array test OK") tolua++-1.0.93/src/tests/tdirectivebind.c0000644000175000017500000000353010343424077017445 0ustar cesarecesare/* ** Lua binding: tdirective ** Generated automatically by tolua 5.0a-CDLVS2 on 08/08/03 17:06:24. */ #ifndef __cplusplus #include "stdlib.h" #endif #include "string.h" #include "tolua.h" /* Exported function */ TOLUA_API int tolua_tdirective_open (lua_State* tolua_S); #include "lualib.h" #include "lauxlib.h" int a; extern int a; int main (void) { lua_State* L = lua_open(); luaopen_base(L); tolua_tdirective_open(L); lua_dofile(L,"tdirective.lua"); lua_close(L); return 0; } /* function to register type */ static void tolua_reg_types (lua_State* tolua_S) { } /* get function: a */ static int tolua_get_a(lua_State* tolua_S) { tolua_pushnumber(tolua_S,(double)a); return 1; } /* set function: a */ static int tolua_set_a(lua_State* tolua_S) { #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif a = ((int) tolua_tonumber(tolua_S,2,0)); return 0; } /* Open function */ TOLUA_API int tolua_tdirective_open (lua_State* tolua_S) { tolua_open(tolua_S); tolua_reg_types(tolua_S); tolua_module(tolua_S,NULL,1); tolua_beginmodule(tolua_S,NULL); tolua_variable(tolua_S,"a",tolua_get_a,tolua_set_a); { a = 3; } { /* begin embedded lua code */ static unsigned char B[] = { 10, 65, 32, 61, 32, 52,32 }; lua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code"); } /* end of embedded lua code */ { /* begin embedded lua code */ static unsigned char B[] = { 10,102,117,110, 99,116,105,111,110, 32,102,117,110, 99, 32, 40, 41, 10,114,101,116,117,114,110, 32, 53, 10,101,110,100, 32 }; lua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code"); } /* end of embedded lua code */ tolua_endmodule(tolua_S); return 1; } tolua++-1.0.93/src/tests/tmodulebind.c0000644000175000017500000000570310343424077016760 0ustar cesarecesare/* ** Lua binding: tmodule ** Generated automatically by tolua 5.0a-CDLVS2 on 08/08/03 17:06:13. */ #ifndef __cplusplus #include "stdlib.h" #endif #include "string.h" #include "tolua.h" /* Exported function */ TOLUA_API int tolua_tmodule_open (lua_State* tolua_S); #include "tmodule.h" /* function to register type */ static void tolua_reg_types (lua_State* tolua_S) { } /* get function: a */ static int tolua_get_A_a(lua_State* tolua_S) { tolua_pushnumber(tolua_S,(double)a); return 1; } /* set function: a */ static int tolua_set_A_a(lua_State* tolua_S) { #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif a = ((int) tolua_tonumber(tolua_S,2,0)); return 0; } /* get function: b */ static int tolua_get_B_b(lua_State* tolua_S) { tolua_pushnumber(tolua_S,(double)b); return 1; } /* set function: b */ static int tolua_set_B_b(lua_State* tolua_S) { #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif b = ((int) tolua_tonumber(tolua_S,2,0)); return 0; } /* get function: c */ static int tolua_get_C_c(lua_State* tolua_S) { tolua_pushnumber(tolua_S,(double)c); return 1; } /* set function: c */ static int tolua_set_C_c(lua_State* tolua_S) { #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif c = ((int) tolua_tonumber(tolua_S,2,0)); return 0; } /* get function: d */ static int tolua_get_A_d(lua_State* tolua_S) { tolua_pushnumber(tolua_S,(double)d); return 1; } /* set function: d */ static int tolua_set_A_d(lua_State* tolua_S) { #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif d = ((int) tolua_tonumber(tolua_S,2,0)); return 0; } /* Open function */ TOLUA_API int tolua_tmodule_open (lua_State* tolua_S) { tolua_open(tolua_S); tolua_reg_types(tolua_S); tolua_module(tolua_S,NULL,0); tolua_beginmodule(tolua_S,NULL); tolua_module(tolua_S,"A",1); tolua_beginmodule(tolua_S,"A"); tolua_variable(tolua_S,"a",tolua_get_A_a,tolua_set_A_a); tolua_module(tolua_S,"B",1); tolua_beginmodule(tolua_S,"B"); tolua_variable(tolua_S,"b",tolua_get_B_b,tolua_set_B_b); tolua_module(tolua_S,"C",1); tolua_beginmodule(tolua_S,"C"); tolua_variable(tolua_S,"c",tolua_get_C_c,tolua_set_C_c); tolua_endmodule(tolua_S); tolua_endmodule(tolua_S); tolua_endmodule(tolua_S); tolua_module(tolua_S,"A",1); tolua_beginmodule(tolua_S,"A"); tolua_variable(tolua_S,"d",tolua_get_A_d,tolua_set_A_d); tolua_endmodule(tolua_S); tolua_endmodule(tolua_S); return 1; } tolua++-1.0.93/src/tests/tvariable.pkg0000644000175000017500000000073010343424077016755 0ustar cesarecesare$#include "tvariable.h" struct A { int i; float f; double d; char* s; void* v; char n[64]; }; struct B { A a; B* b; }; union U { int i; float f; }; extern int i; extern float f; extern double d; extern const char* s; extern void* v; extern char n[64]; extern A a; extern B* b; extern U u; module M { extern int mi; extern float mf; extern double md; extern const char* ms; extern void* mv; extern const char mn[64]; extern A a; extern A ma; extern B* mb; } tolua++-1.0.93/src/tests/tarray.c0000644000175000017500000000117010343424077015746 0ustar cesarecesare#include "lualib.h" #include "lauxlib.h" #include "tarray.h" int a[10] = {1,2,3,4,5,6,7,8,9,10}; Point p[10] = {{0,1},{1,2},{2,3},{3,4},{4,5},{5,6},{6,7},{7,8},{8,9},{9,10}}; Point* pp[10]; int ma[10]; Point mp[10]; Point* mpp[10]; Array array; Array* parray = &array; int main (void) { int tolua_tarray_open (lua_State*); lua_State* L = lua_open(); int i; for (i=0; i<10; ++i) { pp[i] = &p[i]; ma[i] = a[i]; mp[i] = p[i]; mpp[i] = pp[i]; array.a[i] = a[i]; array.p[i] = p[i]; array.pp[i] = pp[i]; } luaopen_base(L); tolua_tarray_open(L); lua_dofile(L,"tarray.lua"); lua_close(L); return 0; } tolua++-1.0.93/src/tests/tvariablebind.c0000644000175000017500000004250210343424077017256 0ustar cesarecesare/* ** Lua binding: tvariable ** Generated automatically by tolua 5.0a-CDLVS2 on 08/08/03 17:06:18. */ #ifndef __cplusplus #include "stdlib.h" #endif #include "string.h" #include "tolua.h" /* Exported function */ TOLUA_API int tolua_tvariable_open (lua_State* tolua_S); #include "tvariable.h" /* function to register type */ static void tolua_reg_types (lua_State* tolua_S) { tolua_usertype(tolua_S,"A"); tolua_usertype(tolua_S,"U"); tolua_usertype(tolua_S,"B"); } /* get function: i of class A */ static int tolua_get_A_i(lua_State* tolua_S) { A* self = (A*) tolua_tousertype(tolua_S,1,0); #ifndef TOLUA_RELEASE if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'i'",NULL); #endif tolua_pushnumber(tolua_S,(double)self->i); return 1; } /* set function: i of class A */ static int tolua_set_A_i(lua_State* tolua_S) { A* self = (A*) tolua_tousertype(tolua_S,1,0); #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'i'",NULL); if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif self->i = ((int) tolua_tonumber(tolua_S,2,0)); return 0; } /* get function: f of class A */ static int tolua_get_A_f(lua_State* tolua_S) { A* self = (A*) tolua_tousertype(tolua_S,1,0); #ifndef TOLUA_RELEASE if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'f'",NULL); #endif tolua_pushnumber(tolua_S,(double)self->f); return 1; } /* set function: f of class A */ static int tolua_set_A_f(lua_State* tolua_S) { A* self = (A*) tolua_tousertype(tolua_S,1,0); #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'f'",NULL); if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif self->f = ((float) tolua_tonumber(tolua_S,2,0)); return 0; } /* get function: d of class A */ static int tolua_get_A_d(lua_State* tolua_S) { A* self = (A*) tolua_tousertype(tolua_S,1,0); #ifndef TOLUA_RELEASE if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'd'",NULL); #endif tolua_pushnumber(tolua_S,(double)self->d); return 1; } /* set function: d of class A */ static int tolua_set_A_d(lua_State* tolua_S) { A* self = (A*) tolua_tousertype(tolua_S,1,0); #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'd'",NULL); if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif self->d = ((double) tolua_tonumber(tolua_S,2,0)); return 0; } /* get function: s of class A */ static int tolua_get_A_s(lua_State* tolua_S) { A* self = (A*) tolua_tousertype(tolua_S,1,0); #ifndef TOLUA_RELEASE if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 's'",NULL); #endif tolua_pushstring(tolua_S,(const char*)self->s); return 1; } /* set function: s of class A */ static int tolua_set_A_s(lua_State* tolua_S) { A* self = (A*) tolua_tousertype(tolua_S,1,0); #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 's'",NULL); if (!tolua_isstring(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif self->s = ((char*) tolua_tostring(tolua_S,2,0)); return 0; } /* get function: v of class A */ static int tolua_get_A_v(lua_State* tolua_S) { A* self = (A*) tolua_tousertype(tolua_S,1,0); #ifndef TOLUA_RELEASE if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'v'",NULL); #endif tolua_pushuserdata(tolua_S,(void*)self->v); return 1; } /* set function: v of class A */ static int tolua_set_A_v(lua_State* tolua_S) { A* self = (A*) tolua_tousertype(tolua_S,1,0); #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'v'",NULL); if (!tolua_isuserdata(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif self->v = ((void*) tolua_touserdata(tolua_S,2,0)); return 0; } /* get function: n of class A */ static int tolua_get_A_n(lua_State* tolua_S) { A* self = (A*) tolua_tousertype(tolua_S,1,0); #ifndef TOLUA_RELEASE if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'n'",NULL); #endif tolua_pushstring(tolua_S,(const char*)self->n); return 1; } /* set function: n of class A */ static int tolua_set_A_n(lua_State* tolua_S) { A* self = (A*) tolua_tousertype(tolua_S,1,0); #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'n'",NULL); if (!tolua_isstring(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif strncpy(self->n,tolua_tostring(tolua_S,2,0),64-1); return 0; } /* get function: a of class B */ static int tolua_get_B_a(lua_State* tolua_S) { B* self = (B*) tolua_tousertype(tolua_S,1,0); #ifndef TOLUA_RELEASE if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'a'",NULL); #endif tolua_pushusertype(tolua_S,(void*)&self->a,"A"); return 1; } /* set function: a of class B */ static int tolua_set_B_a(lua_State* tolua_S) { B* self = (B*) tolua_tousertype(tolua_S,1,0); #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'a'",NULL); if (!tolua_isusertype(tolua_S,2,"A",0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif self->a = *((A*) tolua_tousertype(tolua_S,2,0)); return 0; } /* get function: b of class B */ static int tolua_get_B_b_ptr(lua_State* tolua_S) { B* self = (B*) tolua_tousertype(tolua_S,1,0); #ifndef TOLUA_RELEASE if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'b'",NULL); #endif tolua_pushusertype(tolua_S,(void*)self->b,"B"); return 1; } /* set function: b of class B */ static int tolua_set_B_b_ptr(lua_State* tolua_S) { B* self = (B*) tolua_tousertype(tolua_S,1,0); #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'b'",NULL); if (!tolua_isusertype(tolua_S,2,"B",0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif self->b = ((B*) tolua_tousertype(tolua_S,2,0)); return 0; } /* get function: i of class U */ static int tolua_get_U_i(lua_State* tolua_S) { U* self = (U*) tolua_tousertype(tolua_S,1,0); #ifndef TOLUA_RELEASE if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'i'",NULL); #endif tolua_pushnumber(tolua_S,(double)self->i); return 1; } /* set function: i of class U */ static int tolua_set_U_i(lua_State* tolua_S) { U* self = (U*) tolua_tousertype(tolua_S,1,0); #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'i'",NULL); if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif self->i = ((int) tolua_tonumber(tolua_S,2,0)); return 0; } /* get function: f of class U */ static int tolua_get_U_f(lua_State* tolua_S) { U* self = (U*) tolua_tousertype(tolua_S,1,0); #ifndef TOLUA_RELEASE if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'f'",NULL); #endif tolua_pushnumber(tolua_S,(double)self->f); return 1; } /* set function: f of class U */ static int tolua_set_U_f(lua_State* tolua_S) { U* self = (U*) tolua_tousertype(tolua_S,1,0); #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'f'",NULL); if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif self->f = ((float) tolua_tonumber(tolua_S,2,0)); return 0; } /* get function: i */ static int tolua_get_i(lua_State* tolua_S) { tolua_pushnumber(tolua_S,(double)i); return 1; } /* set function: i */ static int tolua_set_i(lua_State* tolua_S) { #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif i = ((int) tolua_tonumber(tolua_S,2,0)); return 0; } /* get function: f */ static int tolua_get_f(lua_State* tolua_S) { tolua_pushnumber(tolua_S,(double)f); return 1; } /* set function: f */ static int tolua_set_f(lua_State* tolua_S) { #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif f = ((float) tolua_tonumber(tolua_S,2,0)); return 0; } /* get function: d */ static int tolua_get_d(lua_State* tolua_S) { tolua_pushnumber(tolua_S,(double)d); return 1; } /* set function: d */ static int tolua_set_d(lua_State* tolua_S) { #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif d = ((double) tolua_tonumber(tolua_S,2,0)); return 0; } /* get function: s */ static int tolua_get_s(lua_State* tolua_S) { tolua_pushstring(tolua_S,(const char*)s); return 1; } /* get function: v */ static int tolua_get_v(lua_State* tolua_S) { tolua_pushuserdata(tolua_S,(void*)v); return 1; } /* set function: v */ static int tolua_set_v(lua_State* tolua_S) { #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!tolua_isuserdata(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif v = ((void*) tolua_touserdata(tolua_S,2,0)); return 0; } /* get function: n */ static int tolua_get_n(lua_State* tolua_S) { tolua_pushstring(tolua_S,(const char*)n); return 1; } /* set function: n */ static int tolua_set_n(lua_State* tolua_S) { #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!tolua_isstring(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif strncpy(n,tolua_tostring(tolua_S,2,0),64-1); return 0; } /* get function: a */ static int tolua_get_a(lua_State* tolua_S) { tolua_pushusertype(tolua_S,(void*)&a,"A"); return 1; } /* set function: a */ static int tolua_set_a(lua_State* tolua_S) { #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!tolua_isusertype(tolua_S,2,"A",0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif a = *((A*) tolua_tousertype(tolua_S,2,0)); return 0; } /* get function: b */ static int tolua_get_b_ptr(lua_State* tolua_S) { tolua_pushusertype(tolua_S,(void*)b,"B"); return 1; } /* set function: b */ static int tolua_set_b_ptr(lua_State* tolua_S) { #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!tolua_isusertype(tolua_S,2,"B",0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif b = ((B*) tolua_tousertype(tolua_S,2,0)); return 0; } /* get function: u */ static int tolua_get_u(lua_State* tolua_S) { tolua_pushusertype(tolua_S,(void*)&u,"U"); return 1; } /* set function: u */ static int tolua_set_u(lua_State* tolua_S) { #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!tolua_isusertype(tolua_S,2,"U",0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif u = *((U*) tolua_tousertype(tolua_S,2,0)); return 0; } /* get function: mi */ static int tolua_get_M_mi(lua_State* tolua_S) { tolua_pushnumber(tolua_S,(double)mi); return 1; } /* set function: mi */ static int tolua_set_M_mi(lua_State* tolua_S) { #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif mi = ((int) tolua_tonumber(tolua_S,2,0)); return 0; } /* get function: mf */ static int tolua_get_M_mf(lua_State* tolua_S) { tolua_pushnumber(tolua_S,(double)mf); return 1; } /* set function: mf */ static int tolua_set_M_mf(lua_State* tolua_S) { #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif mf = ((float) tolua_tonumber(tolua_S,2,0)); return 0; } /* get function: md */ static int tolua_get_M_md(lua_State* tolua_S) { tolua_pushnumber(tolua_S,(double)md); return 1; } /* set function: md */ static int tolua_set_M_md(lua_State* tolua_S) { #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif md = ((double) tolua_tonumber(tolua_S,2,0)); return 0; } /* get function: ms */ static int tolua_get_M_ms(lua_State* tolua_S) { tolua_pushstring(tolua_S,(const char*)ms); return 1; } /* get function: mv */ static int tolua_get_M_mv(lua_State* tolua_S) { tolua_pushuserdata(tolua_S,(void*)mv); return 1; } /* set function: mv */ static int tolua_set_M_mv(lua_State* tolua_S) { #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!tolua_isuserdata(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif mv = ((void*) tolua_touserdata(tolua_S,2,0)); return 0; } /* get function: mn */ static int tolua_get_M_mn(lua_State* tolua_S) { tolua_pushstring(tolua_S,(const char*)mn); return 1; } /* get function: a */ static int tolua_get_M_a(lua_State* tolua_S) { tolua_pushusertype(tolua_S,(void*)&a,"A"); return 1; } /* set function: a */ static int tolua_set_M_a(lua_State* tolua_S) { #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!tolua_isusertype(tolua_S,2,"A",0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif a = *((A*) tolua_tousertype(tolua_S,2,0)); return 0; } /* get function: ma */ static int tolua_get_M_ma(lua_State* tolua_S) { tolua_pushusertype(tolua_S,(void*)&ma,"A"); return 1; } /* set function: ma */ static int tolua_set_M_ma(lua_State* tolua_S) { #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!tolua_isusertype(tolua_S,2,"A",0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif ma = *((A*) tolua_tousertype(tolua_S,2,0)); return 0; } /* get function: mb */ static int tolua_get_M_mb_ptr(lua_State* tolua_S) { tolua_pushusertype(tolua_S,(void*)mb,"B"); return 1; } /* set function: mb */ static int tolua_set_M_mb_ptr(lua_State* tolua_S) { #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!tolua_isusertype(tolua_S,2,"B",0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif mb = ((B*) tolua_tousertype(tolua_S,2,0)); return 0; } /* Open function */ TOLUA_API int tolua_tvariable_open (lua_State* tolua_S) { tolua_open(tolua_S); tolua_reg_types(tolua_S); tolua_module(tolua_S,NULL,1); tolua_beginmodule(tolua_S,NULL); tolua_cclass(tolua_S,"A","A","",NULL); tolua_beginmodule(tolua_S,"A"); tolua_variable(tolua_S,"i",tolua_get_A_i,tolua_set_A_i); tolua_variable(tolua_S,"f",tolua_get_A_f,tolua_set_A_f); tolua_variable(tolua_S,"d",tolua_get_A_d,tolua_set_A_d); tolua_variable(tolua_S,"s",tolua_get_A_s,tolua_set_A_s); tolua_variable(tolua_S,"v",tolua_get_A_v,tolua_set_A_v); tolua_variable(tolua_S,"n",tolua_get_A_n,tolua_set_A_n); tolua_endmodule(tolua_S); tolua_cclass(tolua_S,"B","B","",NULL); tolua_beginmodule(tolua_S,"B"); tolua_variable(tolua_S,"a",tolua_get_B_a,tolua_set_B_a); tolua_variable(tolua_S,"b",tolua_get_B_b_ptr,tolua_set_B_b_ptr); tolua_endmodule(tolua_S); tolua_cclass(tolua_S,"U","U","",NULL); tolua_beginmodule(tolua_S,"U"); tolua_variable(tolua_S,"i",tolua_get_U_i,tolua_set_U_i); tolua_variable(tolua_S,"f",tolua_get_U_f,tolua_set_U_f); tolua_endmodule(tolua_S); tolua_variable(tolua_S,"i",tolua_get_i,tolua_set_i); tolua_variable(tolua_S,"f",tolua_get_f,tolua_set_f); tolua_variable(tolua_S,"d",tolua_get_d,tolua_set_d); tolua_variable(tolua_S,"s",tolua_get_s,NULL); tolua_variable(tolua_S,"v",tolua_get_v,tolua_set_v); tolua_variable(tolua_S,"n",tolua_get_n,tolua_set_n); tolua_variable(tolua_S,"a",tolua_get_a,tolua_set_a); tolua_variable(tolua_S,"b",tolua_get_b_ptr,tolua_set_b_ptr); tolua_variable(tolua_S,"u",tolua_get_u,tolua_set_u); tolua_module(tolua_S,"M",1); tolua_beginmodule(tolua_S,"M"); tolua_variable(tolua_S,"mi",tolua_get_M_mi,tolua_set_M_mi); tolua_variable(tolua_S,"mf",tolua_get_M_mf,tolua_set_M_mf); tolua_variable(tolua_S,"md",tolua_get_M_md,tolua_set_M_md); tolua_variable(tolua_S,"ms",tolua_get_M_ms,NULL); tolua_variable(tolua_S,"mv",tolua_get_M_mv,tolua_set_M_mv); tolua_variable(tolua_S,"mn",tolua_get_M_mn,NULL); tolua_variable(tolua_S,"a",tolua_get_M_a,tolua_set_M_a); tolua_variable(tolua_S,"ma",tolua_get_M_ma,tolua_set_M_ma); tolua_variable(tolua_S,"mb",tolua_get_M_mb_ptr,tolua_set_M_mb_ptr); tolua_endmodule(tolua_S); tolua_endmodule(tolua_S); return 1; } tolua++-1.0.93/src/tests/SCsub0000644000175000017500000000072510416424510015240 0ustar cesarecesareImport('env') env_tests = env.Copy() env_tests.LuaBinding('tclassbind.cpp', 'tclass.pkg', 'tclass', use_own=1, use_typeid=1) env_tests.Append(CXXFLAGS='-DTOLUA_API="extern \\\"C\\\""') test_class_so = env_tests.SharedLibrary('tclass', ['tclassbind.cpp'], LIBS=['$tolua_lib']+env['LIBS'], ) env_tests.Append(LIBPATH=".") test_class = env_tests.Program('tclass', ['tclass.cpp'], LIBS=env['LIBS']+['tclass']+['$tolua_lib'], ) env.test_targets = [test_class] tolua++-1.0.93/src/tests/tclass.cpp0000644000175000017500000000074210361360606016276 0ustar cesarecesareextern "C" { #include "lua.h" #include "lualib.h" #include "lauxlib.h" } #include "tclass.h" //Test::Tst_A* Test::Tst_A::last; //Test::Tst_B* Test::Tst_B::last; //Test::Tst_C* Test::Tst_C::last; extern "C" { int tolua_tclass_open (lua_State*); } int main () { Test::Tst_B* b = new Test::Tst_B; // instance used in Lua code lua_State* L = lua_open(); luaL_openlibs(L); tolua_tclass_open(L); luaL_dofile(L,"tclass.lua"); lua_close(L); delete b; return 0; } tolua++-1.0.93/src/tests/tnamespace.h0000644000175000017500000000017010343424077016570 0ustar cesarecesarenamespace A { enum {FIRST=1}; extern int a; namespace B { extern int b; namespace C { extern int c; } } } tolua++-1.0.93/src/tests/tclass.pkg0000644000175000017500000000265510361360606016302 0ustar cesarecesare$#include "tclass.h" $Test::Tst_A* Test::Tst_A::last; $Test::Tst_B* Test::Tst_B::last; $Test::Tst_C* Test::Tst_C::last; $renaming ^Tst_ @ namespace Test { class Tst_Dummy; class Tst_A { static Tst_A* last; Tst_A (); virtual char* a (); class Tst_AA { Tst_AA () {} ~Tst_AA () {} char* aa () { return "AA"; } }; class Tst_BB : public Tst_AA { Tst_BB () {} ~Tst_BB () {} Tst_AA* Base () { return this; } }; tolua_property int number; }; class Tst_E { public: typedef enum{ ONE, TWO, } Pete; Pete pete; float get_t(); void get_pete(Pete p); Tst_E& operator+(const Tst_E& rvalue); void pars(int a=0xa, int b=GetNumber(GetNumber(1,2))); void get_pointer(void* a=NULL); void set_ptr(void* p_ptr) { printf("this is %p, ptr is %p\n", this, p_ptr); ptr = p_ptr; }; void* get_ptr() {return ptr;}; Tst_A a; Tst_E(int); //~Tst_E(); }; class Tst_B : public Tst_A { static Tst_B* last; Tst_B (); virtual char* b (); static Tst_A* create(); static void* create_void() {return new Tst_B;}; }; class Tst_C@luaC : public Tst_B { static Tst_C* last; Tst_C (int n); ~Tst_C (); virtual char* c (); }; Tst_A::Tst_AA* Tst_create_aa (); bool Tst_is_aa (Tst_A::Tst_AA* obj); class Tst_Outside { tolua_outside void outside_func@outside(lua_State* ls); static tolua_outside void outside_func@outside_static(Tst_Outside* instance, lua_State* ls); Tst_Outside() {}; }; }; // end of namespace tolua++-1.0.93/src/tests/tarraybind.c0000644000175000017500000003413610343424077016613 0ustar cesarecesare/* ** Lua binding: tarray ** Generated automatically by tolua 5.0a-CDLVS2 on 08/08/03 17:06:22. */ #ifndef __cplusplus #include "stdlib.h" #endif #include "string.h" #include "tolua.h" /* Exported function */ TOLUA_API int tolua_tarray_open (lua_State* tolua_S); #include "tarray.h" /* function to release collected object via destructor */ #ifdef __cplusplus static int tolua_collect_Point (lua_State* tolua_S) { Point* self = (Point*) tolua_tousertype(tolua_S,1,0); delete self; return 0; } #endif /* function to register type */ static void tolua_reg_types (lua_State* tolua_S) { tolua_usertype(tolua_S,"Array"); tolua_usertype(tolua_S,"Point"); } /* get function: x of class Point */ static int tolua_get_Point_x(lua_State* tolua_S) { Point* self = (Point*) tolua_tousertype(tolua_S,1,0); #ifndef TOLUA_RELEASE if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'x'",NULL); #endif tolua_pushnumber(tolua_S,(double)self->x); return 1; } /* set function: x of class Point */ static int tolua_set_Point_x(lua_State* tolua_S) { Point* self = (Point*) tolua_tousertype(tolua_S,1,0); #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'x'",NULL); if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif self->x = ((float) tolua_tonumber(tolua_S,2,0)); return 0; } /* get function: y of class Point */ static int tolua_get_Point_y(lua_State* tolua_S) { Point* self = (Point*) tolua_tousertype(tolua_S,1,0); #ifndef TOLUA_RELEASE if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'y'",NULL); #endif tolua_pushnumber(tolua_S,(double)self->y); return 1; } /* set function: y of class Point */ static int tolua_set_Point_y(lua_State* tolua_S) { Point* self = (Point*) tolua_tousertype(tolua_S,1,0); #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'y'",NULL); if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif self->y = ((float) tolua_tonumber(tolua_S,2,0)); return 0; } /* get function: a */ static int tolua_get_tarray_a(lua_State* tolua_S) { int tolua_index; #ifndef TOLUA_RELEASE { tolua_Error tolua_err; if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err); } #endif tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1; #ifndef TOLUA_RELEASE if (tolua_index<0 || tolua_index>=10) tolua_error(tolua_S,"array indexing out of range.",NULL); #endif tolua_pushnumber(tolua_S,(double)a[tolua_index]); return 1; } /* set function: a */ static int tolua_set_tarray_a(lua_State* tolua_S) { int tolua_index; #ifndef TOLUA_RELEASE { tolua_Error tolua_err; if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err); } #endif tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1; #ifndef TOLUA_RELEASE if (tolua_index<0 || tolua_index>=10) tolua_error(tolua_S,"array indexing out of range.",NULL); #endif a[tolua_index] = ((int) tolua_tonumber(tolua_S,3,0)); return 0; } /* get function: p */ static int tolua_get_tarray_p(lua_State* tolua_S) { int tolua_index; #ifndef TOLUA_RELEASE { tolua_Error tolua_err; if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err); } #endif tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1; #ifndef TOLUA_RELEASE if (tolua_index<0 || tolua_index>=10) tolua_error(tolua_S,"array indexing out of range.",NULL); #endif tolua_pushusertype(tolua_S,(void*)&p[tolua_index],"const Point"); return 1; } /* get function: pp */ static int tolua_get_tarray_pp(lua_State* tolua_S) { int tolua_index; #ifndef TOLUA_RELEASE { tolua_Error tolua_err; if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err); } #endif tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1; #ifndef TOLUA_RELEASE if (tolua_index<0 || tolua_index>=10) tolua_error(tolua_S,"array indexing out of range.",NULL); #endif tolua_pushusertype(tolua_S,(void*)pp[tolua_index],"Point"); return 1; } /* set function: pp */ static int tolua_set_tarray_pp(lua_State* tolua_S) { int tolua_index; #ifndef TOLUA_RELEASE { tolua_Error tolua_err; if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err); } #endif tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1; #ifndef TOLUA_RELEASE if (tolua_index<0 || tolua_index>=10) tolua_error(tolua_S,"array indexing out of range.",NULL); #endif pp[tolua_index] = ((Point*) tolua_tousertype(tolua_S,3,0)); return 0; } /* get function: ma */ static int tolua_get_tarray_M_ma(lua_State* tolua_S) { int tolua_index; #ifndef TOLUA_RELEASE { tolua_Error tolua_err; if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err); } #endif tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1; #ifndef TOLUA_RELEASE if (tolua_index<0 || tolua_index>=10) tolua_error(tolua_S,"array indexing out of range.",NULL); #endif tolua_pushnumber(tolua_S,(double)ma[tolua_index]); return 1; } /* set function: ma */ static int tolua_set_tarray_M_ma(lua_State* tolua_S) { int tolua_index; #ifndef TOLUA_RELEASE { tolua_Error tolua_err; if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err); } #endif tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1; #ifndef TOLUA_RELEASE if (tolua_index<0 || tolua_index>=10) tolua_error(tolua_S,"array indexing out of range.",NULL); #endif ma[tolua_index] = ((int) tolua_tonumber(tolua_S,3,0)); return 0; } /* get function: mp */ static int tolua_get_tarray_M_mp(lua_State* tolua_S) { int tolua_index; #ifndef TOLUA_RELEASE { tolua_Error tolua_err; if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err); } #endif tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1; #ifndef TOLUA_RELEASE if (tolua_index<0 || tolua_index>=10) tolua_error(tolua_S,"array indexing out of range.",NULL); #endif tolua_pushusertype(tolua_S,(void*)&mp[tolua_index],"const Point"); return 1; } /* get function: mpp */ static int tolua_get_tarray_M_mpp(lua_State* tolua_S) { int tolua_index; #ifndef TOLUA_RELEASE { tolua_Error tolua_err; if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err); } #endif tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1; #ifndef TOLUA_RELEASE if (tolua_index<0 || tolua_index>=10) tolua_error(tolua_S,"array indexing out of range.",NULL); #endif tolua_pushusertype(tolua_S,(void*)mpp[tolua_index],"Point"); return 1; } /* set function: mpp */ static int tolua_set_tarray_M_mpp(lua_State* tolua_S) { int tolua_index; #ifndef TOLUA_RELEASE { tolua_Error tolua_err; if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err); } #endif tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1; #ifndef TOLUA_RELEASE if (tolua_index<0 || tolua_index>=10) tolua_error(tolua_S,"array indexing out of range.",NULL); #endif mpp[tolua_index] = ((Point*) tolua_tousertype(tolua_S,3,0)); return 0; } /* get function: a of class Array */ static int tolua_get_tarray_Array_a(lua_State* tolua_S) { int tolua_index; Array* self; lua_pushstring(tolua_S,".self"); lua_rawget(tolua_S,1); self = (Array*) lua_touserdata(tolua_S,-1); #ifndef TOLUA_RELEASE { tolua_Error tolua_err; if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err); } #endif tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1; #ifndef TOLUA_RELEASE if (tolua_index<0 || tolua_index>=10) tolua_error(tolua_S,"array indexing out of range.",NULL); #endif tolua_pushnumber(tolua_S,(double)self->a[tolua_index]); return 1; } /* set function: a of class Array */ static int tolua_set_tarray_Array_a(lua_State* tolua_S) { int tolua_index; Array* self; lua_pushstring(tolua_S,".self"); lua_rawget(tolua_S,1); self = (Array*) lua_touserdata(tolua_S,-1); #ifndef TOLUA_RELEASE { tolua_Error tolua_err; if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err); } #endif tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1; #ifndef TOLUA_RELEASE if (tolua_index<0 || tolua_index>=10) tolua_error(tolua_S,"array indexing out of range.",NULL); #endif self->a[tolua_index] = ((int) tolua_tonumber(tolua_S,3,0)); return 0; } /* get function: p of class Array */ static int tolua_get_tarray_Array_p(lua_State* tolua_S) { int tolua_index; Array* self; lua_pushstring(tolua_S,".self"); lua_rawget(tolua_S,1); self = (Array*) lua_touserdata(tolua_S,-1); #ifndef TOLUA_RELEASE { tolua_Error tolua_err; if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err); } #endif tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1; #ifndef TOLUA_RELEASE if (tolua_index<0 || tolua_index>=10) tolua_error(tolua_S,"array indexing out of range.",NULL); #endif tolua_pushusertype(tolua_S,(void*)&self->p[tolua_index],"Point"); return 1; } /* set function: p of class Array */ static int tolua_set_tarray_Array_p(lua_State* tolua_S) { int tolua_index; Array* self; lua_pushstring(tolua_S,".self"); lua_rawget(tolua_S,1); self = (Array*) lua_touserdata(tolua_S,-1); #ifndef TOLUA_RELEASE { tolua_Error tolua_err; if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err); } #endif tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1; #ifndef TOLUA_RELEASE if (tolua_index<0 || tolua_index>=10) tolua_error(tolua_S,"array indexing out of range.",NULL); #endif self->p[tolua_index] = *((Point*) tolua_tousertype(tolua_S,3,0)); return 0; } /* get function: pp of class Array */ static int tolua_get_tarray_Array_pp(lua_State* tolua_S) { int tolua_index; Array* self; lua_pushstring(tolua_S,".self"); lua_rawget(tolua_S,1); self = (Array*) lua_touserdata(tolua_S,-1); #ifndef TOLUA_RELEASE { tolua_Error tolua_err; if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err); } #endif tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1; #ifndef TOLUA_RELEASE if (tolua_index<0 || tolua_index>=10) tolua_error(tolua_S,"array indexing out of range.",NULL); #endif tolua_pushusertype(tolua_S,(void*)self->pp[tolua_index],"Point"); return 1; } /* set function: pp of class Array */ static int tolua_set_tarray_Array_pp(lua_State* tolua_S) { int tolua_index; Array* self; lua_pushstring(tolua_S,".self"); lua_rawget(tolua_S,1); self = (Array*) lua_touserdata(tolua_S,-1); #ifndef TOLUA_RELEASE { tolua_Error tolua_err; if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err); } #endif tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1; #ifndef TOLUA_RELEASE if (tolua_index<0 || tolua_index>=10) tolua_error(tolua_S,"array indexing out of range.",NULL); #endif self->pp[tolua_index] = ((Point*) tolua_tousertype(tolua_S,3,0)); return 0; } /* get function: array */ static int tolua_get_array(lua_State* tolua_S) { tolua_pushusertype(tolua_S,(void*)&array,"Array"); return 1; } /* set function: array */ static int tolua_set_array(lua_State* tolua_S) { #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!tolua_isusertype(tolua_S,2,"Array",0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif array = *((Array*) tolua_tousertype(tolua_S,2,0)); return 0; } /* get function: parray */ static int tolua_get_parray_ptr(lua_State* tolua_S) { tolua_pushusertype(tolua_S,(void*)parray,"Array"); return 1; } /* set function: parray */ static int tolua_set_parray_ptr(lua_State* tolua_S) { #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!tolua_isusertype(tolua_S,2,"Array",0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif parray = ((Array*) tolua_tousertype(tolua_S,2,0)); return 0; } /* Open function */ TOLUA_API int tolua_tarray_open (lua_State* tolua_S) { tolua_open(tolua_S); tolua_reg_types(tolua_S); tolua_module(tolua_S,NULL,1); tolua_beginmodule(tolua_S,NULL); #ifdef __cplusplus tolua_cclass(tolua_S,"Point","Point","",tolua_collect_Point); #else tolua_cclass(tolua_S,"Point","Point","",NULL); #endif tolua_beginmodule(tolua_S,"Point"); tolua_variable(tolua_S,"x",tolua_get_Point_x,tolua_set_Point_x); tolua_variable(tolua_S,"y",tolua_get_Point_y,tolua_set_Point_y); tolua_endmodule(tolua_S); tolua_array(tolua_S,"a",tolua_get_tarray_a,tolua_set_tarray_a); tolua_array(tolua_S,"p",tolua_get_tarray_p,NULL); tolua_array(tolua_S,"pp",tolua_get_tarray_pp,tolua_set_tarray_pp); tolua_module(tolua_S,"M",1); tolua_beginmodule(tolua_S,"M"); tolua_array(tolua_S,"a",tolua_get_tarray_M_ma,tolua_set_tarray_M_ma); tolua_array(tolua_S,"p",tolua_get_tarray_M_mp,NULL); tolua_array(tolua_S,"pp",tolua_get_tarray_M_mpp,tolua_set_tarray_M_mpp); tolua_endmodule(tolua_S); tolua_cclass(tolua_S,"Array","Array","",NULL); tolua_beginmodule(tolua_S,"Array"); tolua_array(tolua_S,"a",tolua_get_tarray_Array_a,tolua_set_tarray_Array_a); tolua_array(tolua_S,"p",tolua_get_tarray_Array_p,tolua_set_tarray_Array_p); tolua_array(tolua_S,"pp",tolua_get_tarray_Array_pp,tolua_set_tarray_Array_pp); tolua_endmodule(tolua_S); tolua_variable(tolua_S,"array",tolua_get_array,tolua_set_array); tolua_variable(tolua_S,"parray",tolua_get_parray_ptr,tolua_set_parray_ptr); tolua_endmodule(tolua_S); return 1; } tolua++-1.0.93/src/tests/tmodule.lua0000644000175000017500000000052210343424077016454 0ustar cesarecesare-- test valid access assert(A.a==1) assert(A.B.b==2) assert(A.B.C.c==3) -- test invalid access assert(A.B.a==nil) -- no inheritance assert(A.B.C.a==nil) assert(A.b==nil) -- no access the inner module assert(A.c==nil) assert(A.B.c==nil) -- test variables appended to existing modules assert(A.d==4) print("Module test OK") tolua++-1.0.93/src/tests/tconstant.h0000644000175000017500000000034510343424077016471 0ustar cesarecesare#define FIRST 1 #define SECOND 2 enum { ONE = 1, TWO = 2 }; #define M_FIRST 1 #define M_SECOND 2 enum { M_ONE = 1, M_TWO = 2 }; class A { public: #define FIRST 1 #define SECOND 2 enum { ONE = 1, TWO = 2 }; }; tolua++-1.0.93/src/tests/tdirectivelua.lua0000644000175000017500000000003710343424077017650 0ustar cesarecesarefunction func () return 5 end tolua++-1.0.93/src/tests/tclass.lua0000644000175000017500000000521410361360606016274 0ustar cesarecesareif not Test then local loadlib if not package then loadlib = _G['loadlib'] else loadlib = package.loadlib end f, e, eo = loadlib("./libtclass.so", "luaopen_tclass") if f then f() else print(eo, e) os.exit() end end a = {} rawset(a, ".c_instance", "something") function hello() print("hello world") end rawset(Test.B, "hello", hello) -- type convertion tests --print(Test.A) --print(tolua.type(Test.A.last)) --assert(tolua.type(Test.A.last) == 'Test::Tst_A') -- first time the object is mapped --assert(tolua.type(Test.B.last) == 'Test::Tst_B') -- type convertion to specialized type --assert(tolua.type(Test.A.last) == 'Test::Tst_B') -- no convertion: obj already mapped as B local a = Test.A:new() assert(tolua.type(Test.A.last) == 'Test::Tst_A') -- no type convertion: same type local b = Test.B:new() assert(tolua.type(Test.A.last) == 'Test::Tst_B') -- no convertion: obj already mapped as B local c = Test.luaC:new(0) assert(tolua.type(Test.A.last) == 'Test::Tst_C') -- no convertion: obj already mapped as C assert(tolua.type(Test.luaC.last) == 'Test::Tst_C') local aa = Test.A.AA:new() local bb = Test.A.BB:new() local xx = Test.create_aa() -- method calling tests assert(a:a() == 'A') assert(b:a() == 'A') assert(b:b() == 'B') assert(c:a() == 'A') assert(c:b() == 'B') assert(c:c() == 'C') assert(aa:aa() == 'AA') assert(bb:aa() == bb:Base():aa()) assert(xx:aa() == 'AA') assert(Test.is_aa(bb) == true) -- test ownershipping handling -- should delete objects: 6 7 8 9 10 (it may vary!) local set = {} for i=1,10 do local c = Test.luaC:new(i) if i>5 then tolua.takeownership(c) end --set[i] = c end e = Test.B:new_local() print("e is type "..tolua.type(e)) print("ae is type "..tolua.type(ae)) --e:delete() b:hello() ---------- local out = Test.Outside:new_local() out:outside() Test.Outside:outside_static(nil) print "***** cast" local acast = Test.B:create_void() print("type is "..tolua.type(acast)) local bcast = tolua.cast(acast, "Test::Tst_B") print("bcast is "..tostring(bcast)) print("type is "..tolua.type(bcast)) print(bcast:b()) -- test properies local n = 7 a.number = n assert(a.number == n*2) -- constructors print(getmetatable(Test.A)) print(getmetatable(Test.B)) print(getmetatable(Test.E)) local a = Test.A() local b = Test.B() local e = Test.E(5) --print(e+5) print(tostring(getmetatable(Test.B).__call)) print(tostring(Test.B.__call)) print(tostring(Test.B.__call(Test.B))) print(tolua.type(b)) e:set_ptr(e) local ve = tolua.cast(e:get_ptr(), "Test::Tst_E") ve:set_ptr(ve) print"1" Test.A.pete = {} print"2" table.insert(Test.A.pete, a) print"3" for i=1,100000 do la = {} tolua.inherit(la, a) end print("Class test OK") tolua++-1.0.93/src/tests/tconstant.pkg0000644000175000017500000000044110343424077017020 0ustar cesarecesare$#include "tconstant.h" #define FIRST 1 #define SECOND 2 enum { ONE = 1, TWO = 2 }; module M { #define M_FIRST@FIRST 1 #define M_SECOND@SECOND 2 enum { M_ONE@ONE = 1, M_TWO@TWO = 2 }; } class A { public: #define FIRST 1 #define SECOND 2 enum { ONE = 1, TWO = 2 }; }; tolua++-1.0.93/src/tests/tvariable.h0000644000175000017500000000072010343424077016422 0ustar cesarecesaretypedef struct A A; typedef struct B B; typedef union U U; struct A { int i; float f; double d; char* s; void* v; char n[64]; }; union U { int i; float f; }; struct B { A a; B* b; }; extern int i; extern float f; extern double d; extern char* s; extern void* v; extern char n[64]; extern A a; extern B* b; extern U u; extern int mi; extern float mf; extern double md; extern char* ms; extern void* mv; extern char mn[64]; extern A ma; extern B* mb; tolua++-1.0.93/src/tests/tfunction.pkg0000644000175000017500000000332210343424077017015 0ustar cesarecesare$#include "tfunction.h" typedef enum { FIRST = 1, SECOND = 2 } Order; class Point { enum Error { SUCCESS = 0, ERROR = 1 }; Point (float x=0, float y=0); virtual ~Point (); void set (float x, float y); void set (float v[2]=0); void setpointer (Point* p); void setref (Point& p); void setvalue (Point p); void setconst (const Point* p); void setname (const char* s); void get (float* x=0, float* y=0) const; void get (float v[2]=0) const; Point* getpointer (); Point& getref (); Point getvalue (); const Point* getconst () const; const char* getname () const; Point operator+ (const Point& p) const; Point operator- (const Point& p) const; Point operator* (const Point& p) const; Point operator/ (float n) const; bool operator< (const Point& p) const; bool operator<= (const Point& p) const; bool operator== (const Point& p) const; float operator[] (int i) const; float& operator[] (int i); static Error echo (Error e); }; module alg { Point add (const Point& p1, const Point& p2); Point sub (const Point& p1, const Point& p2); Point mult (const Point& p1, const Point& p2); Point div (const Point& p1, float n); } void getpoint (const Point* p, float* x=0, float* y=0); void setpoint (Point* p, float x=0, float y=0); inline Point average (int n, Point v[n]); inline Point averagepointer (int n, Point* v[n]); inline void copyvector (int n, const Point v[n], Point u[n]=(u+i)); inline Order invert (Order o); $cfile "tfunction.h" /* class ColorPoint : public Point { ColorPoint (float px, float py, float cr=0.0f, float cg=0.0f, float cb=0.0f); virtual ~ColorPoint (); virtual void getcolor (float* red, float *green, float *blue) const; static const Point* MakeRed (float x, float y); }; */ tolua++-1.0.93/src/tests/tfunction.h0000644000175000017500000000621710343424077016471 0ustar cesarecesare#ifndef tfunction_h #define tfunction_h #include #include typedef enum { FIRST = 1, SECOND = 2 } Order; class Point { char m_s[64]; float m_x; float m_y; public: enum Error { SUCCESS = 0, ERROR = 1 }; Point (float x=0, float y=0) : m_x(x), m_y(y) { } virtual ~Point () { } void set (float x, float y) { m_x = x, m_y = y; } void set (float v[2]=0) { m_x = v[0], m_y=v[1]; } void setpointer (Point* p) { *this = *p; } void setref (Point& p) { *this = p; } void setvalue (Point p) { *this = p; } void setconst (const Point* p) { *this = *p; } void setname (const char* s) { strncpy(m_s,s,63); } void get (float* x, float* y) const { *x = m_x, *y = m_y; } void get (float v[2]) const { v[0] = m_x, v[1] = m_y; } Point* getpointer () { return this; } Point& getref () { return *this; } Point getvalue () { return *this; } const Point* getconst () const { return this; } const char* getname () const { return m_s; } Point operator+ (const Point& p) const { return Point(m_x+p.m_x,m_y+p.m_y); } Point operator- (const Point& p) const { return Point(m_x-p.m_x,m_y-p.m_y); } Point operator* (const Point& p) const { return Point(m_x*p.m_x,m_y*p.m_y); } Point operator/ (float n) const { return Point(m_x/n,m_y/n); } bool operator< (const Point& p) const { if (m_x < p.m_x) return true; else if (m_x > p.m_x) return false; else return m_y < p.m_y; } bool operator<= (const Point& p) const { return operator<(p) || operator==(p); } bool operator== (const Point& p) const { return m_x==p.m_x && m_y==p.m_y; } float operator[] (int i) const { return (i==0) ? m_x : m_y; } float& operator[] (int i) { return (i==0) ? m_x : m_y; } static Error echo (Error e) { return e; } }; inline Point add (const Point& p1, const Point& p2) { return p1+p2; } inline Point sub (const Point& p1, const Point& p2) { return p1-p2; } inline Point mult (const Point& p1, const Point& p2) { return p1*p2; } inline Point div (const Point& p1, float n) { return p1/n; } inline void getpoint (const Point* p, float* x, float* y) { p->get(x,y); } inline void setpoint (Point* p, float x=0, float y=0) { p->set(x,y); } inline Point average (int n, Point v[]) { Point p(0,0); for (int i=0; i extern int a; extern int b; extern int c; extern int d; tolua++-1.0.93/src/tests/tfunction.lua0000644000175000017500000000355010343424077017020 0ustar cesarecesarelocal p = Point:new(1,2) local q = Point:new() local x, y = p:get() local c = {}; q:get(c) assert(x==1 and y==2) assert(c[1]==0 and c[2]==0) q:set(4,5) q:setname("mypoint") p:setconst(q) local r = p:getpointer(); x,y = r:get() assert(x==4 and y==5) assert(r:getname()=="mypoint") local s = Point:new() s:setref(r) local t = s:getref() t:set(5,6) -- t is s x,y = s:get() assert(x==5 and y==6) local u = s:getvalue() u:set(4,1) -- u represents a copy of s x,y = s:get() assert(x~=4 and y~=1) local x1,y1 = getpoint(u) local x2,y2 = getpoint(s) local p1 = alg.add(u,s) x,y = p1:get() assert(x==x1+x2 and y==y1+y2) local p2 = alg.sub(u,s) x,y = p2:get() assert(x==x1-x2 and y==y1-y2) local p3 = alg.mult(u,s) x,y = p3:get() assert(x==x1*x2 and y==y1*y2) local p4 = alg.div(s,2) x,y = p4:get() assert(x==x2/2 and y==y2/2) setpoint(p4) x,y = p4:get() assert(x==0 and y==0) local cp = ColorPoint:MakeRed(3,4) local p = cp+cp x,y = p:get() assert(x==6 and y==8) local q = p-cp x,y = q:get() assert(x==3 and y==4) local r = p/2 x,y = r:get() assert(x==3 and y==4) local t = r*cp x,y = t:get() assert(x==9 and y==16) assert(t==r*r) -- assert(q==cp) -- the eq does not deal with different metatables assert(t~=q) assert(qq) assert(t>=q) local p = Point:new(1,2) assert(p[1]==1 and p[2]==2) p[1]=3; p[2] = p[2]+2 local x, y = p:get() assert(x==3 and y==4) local n = 3 local v = {Point:new(0,1), Point:new(2,3), Point:new(4,5)} local m = average(n,v) local c = averagepointer(n,v) local t = {} copyvector(n,v,t) local l = Point:new() for i=1,n do assert(v[i]==t[i]) l[1] = l[1] + v[i][1] l[2] = l[2] + v[i][2] end l = l/n assert(m==l) assert(c==l) assert(Point.SUCCESS==Point:echo(Point.SUCCESS)) assert(Point.ERROR==Point:echo(Point.ERROR)) assert(FIRST==invert(SECOND)) assert(SECOND==invert(FIRST)) print("Function test OK") tolua++-1.0.93/src/tests/tclass.h0000644000175000017500000000340710351404441015737 0ustar cesarecesare#ifndef TCLASS_H #define TCLASS_H #include namespace Test { class Tst_Dummy { }; class Tst_A { int number; public: static Tst_A* last; Tst_A () {last = this;} virtual char* a () { return "A"; } class Tst_AA { public: Tst_AA () {} ~Tst_AA () { } char* aa () { return "AA"; } }; class Tst_BB : public Tst_AA { public: Tst_BB () {} ~Tst_BB () {} Tst_AA* Base () { return this; } }; void set_number(int p_number) { number = p_number;}; int get_number() {return number*2;}; virtual ~Tst_A() {}; }; class Tst_B : public Tst_A { public: static Tst_B* last; Tst_B () {last = this;} virtual char* b () { return "B"; } static Tst_A* create() {return new Tst_B;}; static void* create_void() {return new Tst_B;}; virtual ~Tst_B() {}; }; class Tst_C : public Tst_B { int i; public: static Tst_C* last; Tst_C (int n) : i(n) {last = this;} virtual ~Tst_C () { printf("deleting C: %d\n",i); } virtual char* c () { return "C"; } }; inline Tst_A::Tst_AA* Tst_create_aa () { return new Tst_A::Tst_AA(); } inline bool Tst_is_aa (Tst_A::Tst_AA* obj) { return true; } class Tst_E { void* ptr; public: enum Pete { ONE, TWO, } pete; void get_pete(Pete p) {}; template T get_t() {T a=0; return a;}; Tst_E& operator+(const Tst_E& rvalue) {return *this;}; void pars(int a=0, int b=0) {}; void get_pointer(void* a) {}; Tst_A a; void set_ptr(void* p_ptr) { printf("this is %p, ptr is %p\n", this, p_ptr); ptr = p_ptr; }; void* get_ptr() {return ptr;}; Tst_E(int) {}; }; class Tst_Outside { public: Tst_Outside() {}; }; }; // end of namespace static void outside_func(Test::Tst_Outside* p_out, lua_State* ls) { if (p_out) printf("method!\n"); else printf("static!\n"); //printf("luastate: %i\n", ls); }; #endif tolua++-1.0.93/src/bin/0000755000175000017500000000000011146141660013703 5ustar cesarecesaretolua++-1.0.93/src/bin/toluabind_default.c0000644000175000017500000174576210737300745017570 0ustar cesarecesare/* ** Lua binding: tolua ** Generated automatically by tolua++-1.0.92 on Fri Dec 28 21:37:36 2007. */ #ifndef __cplusplus #include "stdlib.h" #endif #include "string.h" #include "tolua++.h" /* Exported function */ TOLUA_API int tolua_tolua_open (lua_State* tolua_S); /* function to register type */ static void tolua_reg_types (lua_State* tolua_S) { } /* Open function */ TOLUA_API int tolua_tolua_open (lua_State* tolua_S) { tolua_open(tolua_S); tolua_reg_types(tolua_S); tolua_module(tolua_S,NULL,0); tolua_beginmodule(tolua_S,NULL); { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 105,102, 32,115,116,114,105,110,103, 46,102,105,110,100, 40, 95, 86, 69, 82, 83, 73, 79, 78, 44, 32, 34, 53, 37, 46, 48, 34, 41, 32,116,104,101,110, 13, 10, 9,114,101,116,117,114, 110, 13, 10,101,110,100, 13, 10, 13, 10, 45, 45, 32, 34,108, 111, 97,100,102,105,108,101, 34, 13, 10,108,111, 99, 97,108, 32,102,117,110, 99,116,105,111,110, 32,112,112, 95,100,111, 102,105,108,101, 40,112, 97,116,104, 41, 13, 10, 13, 10, 9, 108,111, 99, 97,108, 32,108,111, 97,100,101,100, 32, 61, 32, 102, 97,108,115,101, 13, 10, 9,108,111, 99, 97,108, 32,103, 101,116,102,105,108,101, 32, 61, 32,102,117,110, 99,116,105, 111,110, 40, 41, 13, 10, 13, 10, 9, 9,105,102, 32,108,111, 97,100,101,100, 32,116,104,101,110, 13, 10, 9, 9, 9,114, 101,116,117,114,110, 13, 10, 9, 9,101,108,115,101, 13, 10, 9, 9, 9,108,111, 99, 97,108, 32,102,105,108,101, 44,101, 114,114, 32, 61, 32,105,111, 46,111,112,101,110, 40,112, 97, 116,104, 41, 13, 10, 9, 9, 9,105,102, 32,110,111,116, 32, 102,105,108,101, 32,116,104,101,110, 13, 10, 9, 9, 9, 9, 101,114,114,111,114, 40, 34,101,114,114,111,114, 32,108,111, 97,100,105,110,103, 32,102,105,108,101, 32, 34, 46, 46,112, 97,116,104, 46, 46, 34, 58, 32, 34, 46, 46,101,114,114, 41, 13, 10, 9, 9, 9,101,110,100, 13, 10, 9, 9, 9,108,111, 99, 97,108, 32,114,101,116, 32, 61, 32,102,105,108,101, 58, 114,101, 97,100, 40, 34, 42, 97, 34, 41, 13, 10, 9, 9, 9, 102,105,108,101, 58, 99,108,111,115,101, 40, 41, 13, 10, 13, 10, 9, 9, 9,114,101,116, 32, 61, 32,115,116,114,105,110, 103, 46,103,115,117, 98, 40,114,101,116, 44, 32, 34, 37, 46, 37, 46, 37, 46, 37,115, 42, 37, 41, 34, 44, 32, 34, 46, 46, 46, 41, 32,108,111, 99, 97,108, 32, 97,114,103, 32, 61, 32, 123,110, 61,115,101,108,101, 99,116, 40, 39, 35, 39, 44, 32, 46, 46, 46, 41, 44, 32, 46, 46, 46,125, 59, 34, 41, 13, 10, 13, 10, 9, 9, 9,108,111, 97,100,101,100, 32, 61, 32,116, 114,117,101, 13, 10, 9, 9, 9,114,101,116,117,114,110, 32, 114,101,116, 13, 10, 9, 9,101,110,100, 13, 10, 9,101,110, 100, 13, 10, 13, 10, 9,108,111, 99, 97,108, 32,102, 32, 61, 32,108,111, 97,100, 40,103,101,116,102,105,108,101, 44, 32, 112, 97,116,104, 41, 13, 10, 9,105,102, 32,110,111,116, 32, 102, 32,116,104,101,110, 13, 10, 9, 13, 10, 9, 9,101,114, 114,111,114, 40, 34,101,114,114,111,114, 32,108,111, 97,100, 105,110,103, 32,102,105,108,101, 32, 34, 46, 46,112, 97,116, 104, 41, 13, 10, 9,101,110,100, 13, 10, 9,114,101,116,117, 114,110, 32,102, 40, 41, 13, 10,101,110,100, 13, 10, 13, 10, 111,108,100, 95,100,111,102,105,108,101, 32, 61, 32,100,111, 102,105,108,101, 13, 10,100,111,102,105,108,101, 32, 61, 32, 112,112, 95,100,111,102,105,108,101, 13, 10, 13, 10, 13, 10, 45, 45, 32,115,116,114,105,110,103, 46,103,115,117, 98, 13, 10, 45, 45, 91, 91, 13, 10,108,111, 99, 97,108, 32,111,103, 115,117, 98, 32, 61, 32,115,116,114,105,110,103, 46,103,115, 117, 98, 13, 10,108,111, 99, 97,108, 32,102,117,110, 99,116, 105,111,110, 32, 99,111,109,112,103,115,117, 98, 40, 97, 44, 98, 44, 99, 44,100, 41, 13, 10, 32, 32,105,102, 32,116,121, 112,101, 40, 99, 41, 32, 61, 61, 32, 34,102,117,110, 99,116, 105,111,110, 34, 32,116,104,101,110, 13, 10, 32, 32, 32, 32, 108,111, 99, 97,108, 32,111, 99, 32, 61, 32, 99, 13, 10, 32, 32, 32, 32, 99, 32, 61, 32,102,117,110, 99,116,105,111,110, 32, 40, 46, 46, 46, 41, 32,114,101,116,117,114,110, 32,111, 99, 40, 46, 46, 46, 41, 32,111,114, 32, 39, 39, 32,101,110, 100, 13, 10, 32, 32,101,110,100, 13, 10, 32, 32,114,101,116, 117,114,110, 32,111,103,115,117, 98, 40, 97, 44, 98, 44, 99, 44,100, 41, 13, 10,101,110,100, 13, 10,115,116,114,105,110, 103, 46,114,101,112,108, 32, 61, 32,111,103,115,117, 98, 13, 10, 45, 45, 93, 93, 13, 10, 13, 10, 45, 45,115,116,114,105, 110,103, 46,103,115,117, 98, 32, 61, 32, 99,111,109,112,103, 115,117, 98, 13,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/compat-5.1.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 45, 45, 32, 82,101, 97,108, 32,103,108,111, 98, 97,108,115, 10, 45, 45, 32, 95, 65, 76, 69, 82, 84, 10, 45, 45, 32, 95, 69, 82, 82, 79, 82, 77, 69, 83, 83, 65, 71, 69, 10, 45, 45, 32, 95, 86, 69, 82, 83, 73, 79, 78, 10, 45, 45, 32, 95, 71, 10, 45, 45, 32, 97,115,115, 101,114,116, 10, 45, 45, 32,101,114,114,111,114, 10, 45, 45, 32,109,101,116, 97,116, 97, 98,108,101, 10, 45, 45, 32,110, 101,120,116, 10, 45, 45, 32,112,114,105,110,116, 10, 45, 45, 32,114,101,113,117,105,114,101, 10, 45, 45, 32,116,111,110, 117,109, 98,101,114, 10, 45, 45, 32,116,111,115,116,114,105, 110,103, 10, 45, 45, 32,116,121,112,101, 10, 45, 45, 32,117, 110,112, 97, 99,107, 10, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 45, 45, 32, 99,111,108,108,101, 99,116,103, 97,114, 98, 97, 103,101, 10, 45, 45, 32,103, 99,105,110,102,111, 10, 10, 45, 45, 32,103,108,111, 98, 97,108,115, 10, 10, 45, 45, 32, 99, 97,108,108, 32, 32, 32, 45, 62, 32,112,114,111,116,101, 99, 116, 40,102, 44, 32,101,114,114, 41, 10, 45, 45, 32,108,111, 97,100,102,105,108,101, 10, 45, 45, 32,108,111, 97,100,115, 116,114,105,110,103, 10, 10, 45, 45, 32,114, 97,119,103,101, 116, 10, 45, 45, 32,114, 97,119,115,101,116, 10, 10, 45, 45, 32,103,101,116, 97,114,103,115, 32, 61, 32, 77, 97,105,110, 46,103,101,116, 97,114,103,115, 32, 63, 63, 10, 10,114, 97, 119,116,121,112,101, 32, 61, 32,116,121,112,101, 10, 10,102, 117,110, 99,116,105,111,110, 32,100,111, 95, 32, 40,102, 44, 32,101,114,114, 41, 10, 32, 32,105,102, 32,110,111,116, 32, 102, 32,116,104,101,110, 32,112,114,105,110,116, 40,101,114, 114, 41, 59, 32,114,101,116,117,114,110, 32,101,110,100, 10, 32, 32,108,111, 99, 97,108, 32, 97, 44, 98, 32, 61, 32,112, 99, 97,108,108, 40,102, 41, 10, 32, 32,105,102, 32,110,111, 116, 32, 97, 32,116,104,101,110, 32,112,114,105,110,116, 40, 98, 41, 59, 32,114,101,116,117,114,110, 32,110,105,108, 10, 32, 32,101,108,115,101, 32,114,101,116,117,114,110, 32, 98, 32,111,114, 32,116,114,117,101, 10, 32, 32,101,110,100, 10, 101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,100, 111,115,116,114,105,110,103, 40,115, 41, 32,114,101,116,117, 114,110, 32,100,111, 95, 40,108,111, 97,100,115,116,114,105, 110,103, 40,115, 41, 41, 32,101,110,100, 10, 45, 45, 32,102, 117,110, 99,116,105,111,110, 32,100,111,102,105,108,101, 40, 115, 41, 32,114,101,116,117,114,110, 32,100,111, 95, 40,108, 111, 97,100,102,105,108,101, 40,115, 41, 41, 32,101,110,100, 10, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 45, 45, 32, 84, 97, 98,108,101, 32,108,105, 98,114, 97,114,121, 10,108,111, 99, 97,108, 32,116, 97, 98, 32, 61, 32,116, 97, 98,108,101, 10, 102,111,114,101, 97, 99,104, 32, 61, 32,116, 97, 98, 46,102, 111,114,101, 97, 99,104, 10,102,111,114,101, 97, 99,104,105, 32, 61, 32,116, 97, 98, 46,102,111,114,101, 97, 99,104,105, 10,103,101,116,110, 32, 61, 32,116, 97, 98, 46,103,101,116, 110, 10,116,105,110,115,101,114,116, 32, 61, 32,116, 97, 98, 46,105,110,115,101,114,116, 10,116,114,101,109,111,118,101, 32, 61, 32,116, 97, 98, 46,114,101,109,111,118,101, 10,115, 111,114,116, 32, 61, 32,116, 97, 98, 46,115,111,114,116, 10, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 45, 45, 32, 68,101, 98, 117,103, 32,108,105, 98,114, 97,114,121, 10,108,111, 99, 97, 108, 32,100, 98,103, 32, 61, 32,100,101, 98,117,103, 10,103, 101,116,105,110,102,111, 32, 61, 32,100, 98,103, 46,103,101, 116,105,110,102,111, 10,103,101,116,108,111, 99, 97,108, 32, 61, 32,100, 98,103, 46,103,101,116,108,111, 99, 97,108, 10, 115,101,116, 99, 97,108,108,104,111,111,107, 32, 61, 32,102, 117,110, 99,116,105,111,110, 32, 40, 41, 32,101,114,114,111, 114, 34, 96,115,101,116, 99, 97,108,108,104,111,111,107, 39, 32,105,115, 32,100,101,112,114,101, 99, 97,116,101,100, 34, 32,101,110,100, 10,115,101,116,108,105,110,101,104,111,111, 107, 32, 61, 32,102,117,110, 99,116,105,111,110, 32, 40, 41, 32,101,114,114,111,114, 34, 96,115,101,116,108,105,110,101, 104,111,111,107, 39, 32,105,115, 32,100,101,112,114,101, 99, 97,116,101,100, 34, 32,101,110,100, 10,115,101,116,108,111, 99, 97,108, 32, 61, 32,100, 98,103, 46,115,101,116,108,111, 99, 97,108, 10, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 45, 45, 32,109, 97,116,104, 32,108,105, 98,114, 97,114,121, 10,108, 111, 99, 97,108, 32,109, 97,116,104, 32, 61, 32,109, 97,116, 104, 10, 97, 98,115, 32, 61, 32,109, 97,116,104, 46, 97, 98, 115, 10, 97, 99,111,115, 32, 61, 32,102,117,110, 99,116,105, 111,110, 32, 40,120, 41, 32,114,101,116,117,114,110, 32,109, 97,116,104, 46,100,101,103, 40,109, 97,116,104, 46, 97, 99, 111,115, 40,120, 41, 41, 32,101,110,100, 10, 97,115,105,110, 32, 61, 32,102,117,110, 99,116,105,111,110, 32, 40,120, 41, 32,114,101,116,117,114,110, 32,109, 97,116,104, 46,100,101, 103, 40,109, 97,116,104, 46, 97,115,105,110, 40,120, 41, 41, 32,101,110,100, 10, 97,116, 97,110, 32, 61, 32,102,117,110, 99,116,105,111,110, 32, 40,120, 41, 32,114,101,116,117,114, 110, 32,109, 97,116,104, 46,100,101,103, 40,109, 97,116,104, 46, 97,116, 97,110, 40,120, 41, 41, 32,101,110,100, 10, 97, 116, 97,110, 50, 32, 61, 32,102,117,110, 99,116,105,111,110, 32, 40,120, 44,121, 41, 32,114,101,116,117,114,110, 32,109, 97,116,104, 46,100,101,103, 40,109, 97,116,104, 46, 97,116, 97,110, 50, 40,120, 44,121, 41, 41, 32,101,110,100, 10, 99, 101,105,108, 32, 61, 32,109, 97,116,104, 46, 99,101,105,108, 10, 99,111,115, 32, 61, 32,102,117,110, 99,116,105,111,110, 32, 40,120, 41, 32,114,101,116,117,114,110, 32,109, 97,116, 104, 46, 99,111,115, 40,109, 97,116,104, 46,114, 97,100, 40, 120, 41, 41, 32,101,110,100, 10,100,101,103, 32, 61, 32,109, 97,116,104, 46,100,101,103, 10,101,120,112, 32, 61, 32,109, 97,116,104, 46,101,120,112, 10,102,108,111,111,114, 32, 61, 32,109, 97,116,104, 46,102,108,111,111,114, 10,102,114,101, 120,112, 32, 61, 32,109, 97,116,104, 46,102,114,101,120,112, 10,108,100,101,120,112, 32, 61, 32,109, 97,116,104, 46,108, 100,101,120,112, 10,108,111,103, 32, 61, 32,109, 97,116,104, 46,108,111,103, 10,108,111,103, 49, 48, 32, 61, 32,109, 97, 116,104, 46,108,111,103, 49, 48, 10,109, 97,120, 32, 61, 32, 109, 97,116,104, 46,109, 97,120, 10,109,105,110, 32, 61, 32, 109, 97,116,104, 46,109,105,110, 10,109,111,100, 32, 61, 32, 109, 97,116,104, 46,109,111,100, 10, 80, 73, 32, 61, 32,109, 97,116,104, 46,112,105, 10, 45, 45, 63, 63, 63, 32,112,111, 119, 32, 61, 32,109, 97,116,104, 46,112,111,119, 32, 32, 10, 114, 97,100, 32, 61, 32,109, 97,116,104, 46,114, 97,100, 10, 114, 97,110,100,111,109, 32, 61, 32,109, 97,116,104, 46,114, 97,110,100,111,109, 10,114, 97,110,100,111,109,115,101,101, 100, 32, 61, 32,109, 97,116,104, 46,114, 97,110,100,111,109, 115,101,101,100, 10,115,105,110, 32, 61, 32,102,117,110, 99, 116,105,111,110, 32, 40,120, 41, 32,114,101,116,117,114,110, 32,109, 97,116,104, 46,115,105,110, 40,109, 97,116,104, 46, 114, 97,100, 40,120, 41, 41, 32,101,110,100, 10,115,113,114, 116, 32, 61, 32,109, 97,116,104, 46,115,113,114,116, 10,116, 97,110, 32, 61, 32,102,117,110, 99,116,105,111,110, 32, 40, 120, 41, 32,114,101,116,117,114,110, 32,109, 97,116,104, 46, 116, 97,110, 40,109, 97,116,104, 46,114, 97,100, 40,120, 41, 41, 32,101,110,100, 10, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 45, 45, 32,115,116,114,105,110,103, 32,108,105, 98,114, 97, 114,121, 10,108,111, 99, 97,108, 32,115,116,114, 32, 61, 32, 115,116,114,105,110,103, 10,115,116,114, 98,121,116,101, 32, 61, 32,115,116,114, 46, 98,121,116,101, 10,115,116,114, 99, 104, 97,114, 32, 61, 32,115,116,114, 46, 99,104, 97,114, 10, 115,116,114,102,105,110,100, 32, 61, 32,115,116,114, 46,102, 105,110,100, 10,102,111,114,109, 97,116, 32, 61, 32,115,116, 114, 46,102,111,114,109, 97,116, 10,103,115,117, 98, 32, 61, 32,115,116,114, 46,103,115,117, 98, 10,115,116,114,108,101, 110, 32, 61, 32,115,116,114, 46,108,101,110, 10,115,116,114, 108,111,119,101,114, 32, 61, 32,115,116,114, 46,108,111,119, 101,114, 10,115,116,114,114,101,112, 32, 61, 32,115,116,114, 46,114,101,112, 10,115,116,114,115,117, 98, 32, 61, 32,115, 116,114, 46,115,117, 98, 10,115,116,114,117,112,112,101,114, 32, 61, 32,115,116,114, 46,117,112,112,101,114, 10, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 45, 45, 32,111,115, 32,108,105, 98,114, 97,114,121, 10, 99,108,111, 99,107, 32, 61, 32,111, 115, 46, 99,108,111, 99,107, 10,100, 97,116,101, 32, 61, 32, 111,115, 46,100, 97,116,101, 10,100,105,102,102,116,105,109, 101, 32, 61, 32,111,115, 46,100,105,102,102,116,105,109,101, 10,101,120,101, 99,117,116,101, 32, 61, 32,111,115, 46,101, 120,101, 99,117,116,101, 32, 45, 45, 63, 10,101,120,105,116, 32, 61, 32,111,115, 46,101,120,105,116, 10,103,101,116,101, 110,118, 32, 61, 32,111,115, 46,103,101,116,101,110,118, 10, 114,101,109,111,118,101, 32, 61, 32,111,115, 46,114,101,109, 111,118,101, 10,114,101,110, 97,109,101, 32, 61, 32,111,115, 46,114,101,110, 97,109,101, 10,115,101,116,108,111, 99, 97, 108,101, 32, 61, 32,111,115, 46,115,101,116,108,111, 99, 97, 108,101, 10,116,105,109,101, 32, 61, 32,111,115, 46,116,105, 109,101, 10,116,109,112,110, 97,109,101, 32, 61, 32,111,115, 46,116,109,112,110, 97,109,101, 10, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 45, 45, 32, 99,111,109,112, 97,116,105, 98,105, 108,105,116,121, 32,111,110,108,121, 10,103,101,116,103,108, 111, 98, 97,108, 32, 61, 32,102,117,110, 99,116,105,111,110, 32, 40,110, 41, 32,114,101,116,117,114,110, 32, 95, 71, 91, 110, 93, 32,101,110,100, 10,115,101,116,103,108,111, 98, 97, 108, 32, 61, 32,102,117,110, 99,116,105,111,110, 32, 40,110, 44,118, 41, 32, 95, 71, 91,110, 93, 32, 61, 32,118, 32,101, 110,100, 10, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 10,108,111, 99, 97,108, 32,105,111, 44, 32,116, 97, 98, 32, 61, 32,105, 111, 44, 32,116, 97, 98,108,101, 10, 10, 45, 45, 32, 73, 79, 32,108,105, 98,114, 97,114,121, 32, 40,102,105,108,101,115, 41, 10, 95, 83, 84, 68, 73, 78, 32, 61, 32,105,111, 46,115, 116,100,105,110, 10, 95, 83, 84, 68, 69, 82, 82, 32, 61, 32, 105,111, 46,115,116,100,101,114,114, 10, 95, 83, 84, 68, 79, 85, 84, 32, 61, 32,105,111, 46,115,116,100,111,117,116, 10, 95, 73, 78, 80, 85, 84, 32, 61, 32,105,111, 46,115,116,100, 105,110, 10, 95, 79, 85, 84, 80, 85, 84, 32, 61, 32,105,111, 46,115,116,100,111,117,116, 10,115,101,101,107, 32, 61, 32, 105,111, 46,115,116,100,105,110, 46,115,101,101,107, 32, 32, 32, 45, 45, 32,115,105, 99,107, 32, 59, 45, 41, 10,116,109, 112,102,105,108,101, 32, 61, 32,105,111, 46,116,109,112,102, 105,108,101, 10, 99,108,111,115,101,102,105,108,101, 32, 61, 32,105,111, 46, 99,108,111,115,101, 10,111,112,101,110,102, 105,108,101, 32, 61, 32,105,111, 46,111,112,101,110, 10, 10, 102,117,110, 99,116,105,111,110, 32,102,108,117,115,104, 32, 40,102, 41, 10, 32, 32,105,102, 32,102, 32,116,104,101,110, 32,102, 58,102,108,117,115,104, 40, 41, 10, 32, 32,101,108, 115,101, 32, 95, 79, 85, 84, 80, 85, 84, 58,102,108,117,115, 104, 40, 41, 10, 32, 32,101,110,100, 10,101,110,100, 10, 10, 102,117,110, 99,116,105,111,110, 32,114,101, 97,100,102,114, 111,109, 32, 40,110, 97,109,101, 41, 10, 32, 32,105,102, 32, 110, 97,109,101, 32, 61, 61, 32,110,105,108, 32,116,104,101, 110, 10, 32, 32, 32, 32,108,111, 99, 97,108, 32,102, 44, 32, 101,114,114, 44, 32, 99,111,100, 32, 61, 32,105,111, 46, 99, 108,111,115,101, 40, 95, 73, 78, 80, 85, 84, 41, 10, 32, 32, 32, 32, 95, 73, 78, 80, 85, 84, 32, 61, 32,105,111, 46,115, 116,100,105,110, 10, 32, 32, 32, 32,114,101,116,117,114,110, 32,102, 44, 32,101,114,114, 44, 32, 99,111,100, 10, 32, 32, 101,108,115,101, 10, 32, 32, 32, 32,108,111, 99, 97,108, 32, 102, 44, 32,101,114,114, 44, 32, 99,111,100, 32, 61, 32,105, 111, 46,111,112,101,110, 40,110, 97,109,101, 44, 32, 34,114, 34, 41, 10, 32, 32, 32, 32, 95, 73, 78, 80, 85, 84, 32, 61, 32,102, 32,111,114, 32, 95, 73, 78, 80, 85, 84, 10, 32, 32, 32, 32,114,101,116,117,114,110, 32,102, 44, 32,101,114,114, 44, 32, 99,111,100, 10, 32, 32,101,110,100, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,119,114,105,116, 101,116,111, 32, 40,110, 97,109,101, 41, 10, 32, 32,105,102, 32,110, 97,109,101, 32, 61, 61, 32,110,105,108, 32,116,104, 101,110, 10, 32, 32, 32, 32,108,111, 99, 97,108, 32,102, 44, 32,101,114,114, 44, 32, 99,111,100, 32, 61, 32,105,111, 46, 99,108,111,115,101, 40, 95, 79, 85, 84, 80, 85, 84, 41, 10, 32, 32, 32, 32, 95, 79, 85, 84, 80, 85, 84, 32, 61, 32,105, 111, 46,115,116,100,111,117,116, 10, 32, 32, 32, 32,114,101, 116,117,114,110, 32,102, 44, 32,101,114,114, 44, 32, 99,111, 100, 10, 32, 32,101,108,115,101, 10, 32, 32, 32, 32,108,111, 99, 97,108, 32,102, 44, 32,101,114,114, 44, 32, 99,111,100, 32, 61, 32,105,111, 46,111,112,101,110, 40,110, 97,109,101, 44, 32, 34,119, 34, 41, 10, 32, 32, 32, 32, 95, 79, 85, 84, 80, 85, 84, 32, 61, 32,102, 32,111,114, 32, 95, 79, 85, 84, 80, 85, 84, 10, 32, 32, 32, 32,114,101,116,117,114,110, 32, 102, 44, 32,101,114,114, 44, 32, 99,111,100, 10, 32, 32,101, 110,100, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111, 110, 32, 97,112,112,101,110,100,116,111, 32, 40,110, 97,109, 101, 41, 10, 32, 32,108,111, 99, 97,108, 32,102, 44, 32,101, 114,114, 44, 32, 99,111,100, 32, 61, 32,105,111, 46,111,112, 101,110, 40,110, 97,109,101, 44, 32, 34, 97, 34, 41, 10, 32, 32, 95, 79, 85, 84, 80, 85, 84, 32, 61, 32,102, 32,111,114, 32, 95, 79, 85, 84, 80, 85, 84, 10, 32, 32,114,101,116,117, 114,110, 32,102, 44, 32,101,114,114, 44, 32, 99,111,100, 10, 101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,114, 101, 97,100, 32, 40, 46, 46, 46, 41, 10, 32, 32,108,111, 99, 97,108, 32,102, 32, 61, 32, 95, 73, 78, 80, 85, 84, 10, 32, 32,105,102, 32,114, 97,119,116,121,112,101, 40, 97,114,103, 91, 49, 93, 41, 32, 61, 61, 32, 39,117,115,101,114,100, 97, 116, 97, 39, 32,116,104,101,110, 10, 32, 32, 32, 32,102, 32, 61, 32,116, 97, 98, 46,114,101,109,111,118,101, 40, 97,114, 103, 44, 32, 49, 41, 10, 32, 32,101,110,100, 10, 32, 32,114, 101,116,117,114,110, 32,102, 58,114,101, 97,100, 40,117,110, 112, 97, 99,107, 40, 97,114,103, 41, 41, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,119,114,105,116,101, 32, 40, 46, 46, 46, 41, 10, 32, 32,108,111, 99, 97,108, 32, 102, 32, 61, 32, 95, 79, 85, 84, 80, 85, 84, 10, 32, 32,105, 102, 32,114, 97,119,116,121,112,101, 40, 97,114,103, 91, 49, 93, 41, 32, 61, 61, 32, 39,117,115,101,114,100, 97,116, 97, 39, 32,116,104,101,110, 10, 32, 32, 32, 32,102, 32, 61, 32, 116, 97, 98, 46,114,101,109,111,118,101, 40, 97,114,103, 44, 32, 49, 41, 10, 32, 32,101,110,100, 10, 32, 32,114,101,116, 117,114,110, 32,102, 58,119,114,105,116,101, 40,117,110,112, 97, 99,107, 40, 97,114,103, 41, 41, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/compat.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32, 98, 97,115,105, 99, 32,117,116,105,108,105,116,121, 32,102,117,110, 99,116,105, 111,110,115, 10, 45, 45, 32, 87,114,105,116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114, 32, 67,101,108, 101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 76, 97,115,116, 32,117,112,100, 97,116,101, 58, 32, 65,112,114, 32, 50, 48, 48, 51, 10, 45, 45, 32, 36, 73,100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104, 105,115, 32, 99,111,100,101, 32,105,115, 32,102,114,101,101, 32,115,111,102,116,119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32,114,101,100,105,115,116,114,105, 98,117,116, 101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109,111,100, 105,102,121, 32,105,116, 46, 10, 45, 45, 32, 84,104,101, 32, 115,111,102,116,119, 97,114,101, 32,112,114,111,118,105,100, 101,100, 32,104,101,114,101,117,110,100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97,110,100, 10, 45, 45, 32,116, 104,101, 32, 97,117,116,104,111,114, 32,104, 97,115, 32,110, 111, 32,111, 98,108,105,103, 97,116,105,111,110, 32,116,111, 32,112,114,111,118,105,100,101, 32,109, 97,105,110,116,101, 110, 97,110, 99,101, 44, 32,115,117,112,112,111,114,116, 44, 32,117,112,100, 97,116,101,115, 44, 10, 45, 45, 32,101,110, 104, 97,110, 99,101,109,101,110,116,115, 44, 32,111,114, 32, 109,111,100,105,102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 45, 45, 32, 66, 97,115,105, 99, 32, 67, 32,116,121, 112,101,115, 32, 97,110,100, 32,116,104,101,105,114, 32, 99, 111,114,114,101,115,112,111,110,100,105,110,103, 32, 76,117, 97, 32,116,121,112,101,115, 10, 45, 45, 32, 65,108,108, 32, 111, 99, 99,117,114,114,101,110, 99,101,115, 32,111,102, 32, 34, 99,104, 97,114, 42, 34, 32,119,105,108,108, 32, 98,101, 32,114,101,112,108, 97, 99,101,100, 32, 98,121, 32, 34, 95, 99,115,116,114,105,110,103, 34, 44, 10, 45, 45, 32, 97,110, 100, 32, 97,108,108, 32,111, 99, 99,117,114,114,101,110, 99, 101,115, 32,111,102, 32, 34,118,111,105,100, 42, 34, 32,119, 105,108,108, 32, 98,101, 32,114,101,112,108, 97, 99,101,100, 32, 98,121, 32, 34, 95,117,115,101,114,100, 97,116, 97, 34, 10, 95, 98, 97,115,105, 99, 32, 61, 32,123, 10, 32, 91, 39, 118,111,105,100, 39, 93, 32, 61, 32, 39, 39, 44, 10, 32, 91, 39, 99,104, 97,114, 39, 93, 32, 61, 32, 39,110,117,109, 98, 101,114, 39, 44, 10, 32, 91, 39,105,110,116, 39, 93, 32, 61, 32, 39,110,117,109, 98,101,114, 39, 44, 10, 32, 91, 39,115, 104,111,114,116, 39, 93, 32, 61, 32, 39,110,117,109, 98,101, 114, 39, 44, 10, 32, 91, 39,108,111,110,103, 39, 93, 32, 61, 32, 39,110,117,109, 98,101,114, 39, 44, 10, 32, 91, 39,117, 110,115,105,103,110,101,100, 39, 93, 32, 61, 32, 39,110,117, 109, 98,101,114, 39, 44, 10, 32, 91, 39,102,108,111, 97,116, 39, 93, 32, 61, 32, 39,110,117,109, 98,101,114, 39, 44, 10, 32, 91, 39,100,111,117, 98,108,101, 39, 93, 32, 61, 32, 39, 110,117,109, 98,101,114, 39, 44, 10, 32, 91, 39, 95, 99,115, 116,114,105,110,103, 39, 93, 32, 61, 32, 39,115,116,114,105, 110,103, 39, 44, 10, 32, 91, 39, 95,117,115,101,114,100, 97, 116, 97, 39, 93, 32, 61, 32, 39,117,115,101,114,100, 97,116, 97, 39, 44, 10, 32, 91, 39, 99,104, 97,114, 42, 39, 93, 32, 61, 32, 39,115,116,114,105,110,103, 39, 44, 10, 32, 91, 39, 118,111,105,100, 42, 39, 93, 32, 61, 32, 39,117,115,101,114, 100, 97,116, 97, 39, 44, 10, 32, 91, 39, 98,111,111,108, 39, 93, 32, 61, 32, 39, 98,111,111,108,101, 97,110, 39, 44, 10, 32, 91, 39,108,117, 97, 95, 79, 98,106,101, 99,116, 39, 93, 32, 61, 32, 39,118, 97,108,117,101, 39, 44, 10, 32, 91, 39, 76, 85, 65, 95, 86, 65, 76, 85, 69, 39, 93, 32, 61, 32, 39, 118, 97,108,117,101, 39, 44, 32, 32, 32, 32, 45, 45, 32,102, 111,114, 32, 99,111,109,112, 97,116,105, 98,105,108,105,116, 121, 32,119,105,116,104, 32,116,111,108,117, 97, 32, 52, 46, 48, 10, 32, 91, 39,108,117, 97, 95, 83,116, 97,116,101, 42, 39, 93, 32, 61, 32, 39,115,116, 97,116,101, 39, 44, 10, 32, 91, 39, 95,108,115,116, 97,116,101, 39, 93, 32, 61, 32, 39, 115,116, 97,116,101, 39, 44, 10, 32, 91, 39,108,117, 97, 95, 70,117,110, 99,116,105,111,110, 39, 93, 32, 61, 32, 39,118, 97,108,117,101, 39, 44, 10,125, 10, 10, 95, 98, 97,115,105, 99, 95, 99,116,121,112,101, 32, 61, 32,123, 10, 32,110,117, 109, 98,101,114, 32, 61, 32, 34,108,117, 97, 95, 78,117,109, 98,101,114, 34, 44, 10, 32,115,116,114,105,110,103, 32, 61, 32, 34, 99,111,110,115,116, 32, 99,104, 97,114, 42, 34, 44, 10, 32,117,115,101,114,100, 97,116, 97, 32, 61, 32, 34,118, 111,105,100, 42, 34, 44, 10, 32, 98,111,111,108,101, 97,110, 32, 61, 32, 34, 98,111,111,108, 34, 44, 10, 32,118, 97,108, 117,101, 32, 61, 32, 34,105,110,116, 34, 44, 10, 32,115,116, 97,116,101, 32, 61, 32, 34,108,117, 97, 95, 83,116, 97,116, 101, 42, 34, 44, 10,125, 10, 10, 45, 45, 32,102,117,110, 99, 116,105,111,110,115, 32,116,104,101, 32, 97,114,101, 32,117, 115,101,100, 32,116,111, 32,100,111, 32, 97, 32, 39,114, 97, 119, 32,112,117,115,104, 39, 32,111,102, 32, 98, 97,115,105, 99, 32,116,121,112,101,115, 10, 95, 98, 97,115,105, 99, 95, 114, 97,119, 95,112,117,115,104, 32, 61, 32,123,125, 10, 10, 45, 45, 32, 76,105,115,116, 32,111,102, 32,117,115,101,114, 32,100,101,102,105,110,101,100, 32,116,121,112,101,115, 10, 45, 45, 32, 69, 97, 99,104, 32,116,121,112,101, 32, 99,111, 114,114,101,115,112,111,110,100,115, 32,116,111, 32, 97, 32, 118, 97,114,105, 97, 98,108,101, 32,110, 97,109,101, 32,116, 104, 97,116, 32,115,116,111,114,101,115, 32,105,116,115, 32, 116, 97,103, 32,118, 97,108,117,101, 46, 10, 95,117,115,101, 114,116,121,112,101, 32, 61, 32,123,125, 10, 10, 45, 45, 32, 76,105,115,116, 32,111,102, 32,116,121,112,101,115, 32,116, 104, 97,116, 32,104, 97,118,101, 32,116,111, 32, 98,101, 32, 99,111,108,108,101, 99,116,101,100, 10, 95, 99,111,108,108, 101, 99,116, 32, 61, 32,123,125, 10, 10, 45, 45, 32, 76,105, 115,116, 32,111,102, 32,116,121,112,101,115, 10, 95,103,108, 111, 98, 97,108, 95,116,121,112,101,115, 32, 61, 32,123,110, 61, 48,125, 10, 95,103,108,111, 98, 97,108, 95,116,121,112, 101,115, 95,104, 97,115,104, 32, 61, 32,123,125, 10, 10, 45, 45, 32,108,105,115,116, 32,111,102, 32, 99,108, 97,115,115, 101,115, 10, 95,103,108,111, 98, 97,108, 95, 99,108, 97,115, 115,101,115, 32, 61, 32,123,125, 10, 10, 45, 45, 32, 76,105, 115,116, 32,111,102, 32,101,110,117,109, 32, 99,111,110,115, 116, 97,110,116,115, 10, 95,103,108,111, 98, 97,108, 95,101, 110,117,109,115, 32, 61, 32,123,125, 10, 10, 45, 45, 32, 76, 105,115,116, 32,111,102, 32, 97,117,116,111, 32,114,101,110, 97,109,105,110,103, 10, 95,114,101,110, 97,109,105,110,103, 32, 61, 32,123,125, 10,102,117,110, 99,116,105,111,110, 32, 97,112,112,101,110,100,114,101,110, 97,109,105,110,103, 32, 40,115, 41, 10, 32,108,111, 99, 97,108, 32, 98, 44,101, 44, 111,108,100, 44,110,101,119, 32, 61, 32,115,116,114,102,105, 110,100, 40,115, 44, 34, 37,115, 42, 40, 46, 45, 41, 37,115, 42, 64, 37,115, 42, 40, 46, 45, 41, 37,115, 42, 36, 34, 41, 10, 9,105,102, 32,110,111,116, 32, 98, 32,116,104,101,110, 10, 9, 32,101,114,114,111,114, 40, 34, 35, 73,110,118, 97, 108,105,100, 32,114,101,110, 97,109,105,110,103, 32,115,121, 110,116, 97,120, 59, 32,105,116, 32,115,104,111,117,108,100, 32, 98,101, 32,111,102, 32,116,104,101, 32,102,111,114,109, 58, 32,112, 97,116,116,101,114,110, 64,112, 97,116,116,101, 114,110, 34, 41, 10, 9,101,110,100, 10, 9,116,105,110,115, 101,114,116, 40, 95,114,101,110, 97,109,105,110,103, 44,123, 111,108,100, 61,111,108,100, 44, 32,110,101,119, 61,110,101, 119,125, 41, 10,101,110,100, 10, 10,102,117,110, 99,116,105, 111,110, 32, 97,112,112,108,121,114,101,110, 97,109,105,110, 103, 32, 40,115, 41, 10, 9,102,111,114, 32,105, 61, 49, 44, 103,101,116,110, 40, 95,114,101,110, 97,109,105,110,103, 41, 32,100,111, 10, 9, 32,108,111, 99, 97,108, 32,109, 44,110, 32, 61, 32,103,115,117, 98, 40,115, 44, 95,114,101,110, 97, 109,105,110,103, 91,105, 93, 46,111,108,100, 44, 95,114,101, 110, 97,109,105,110,103, 91,105, 93, 46,110,101,119, 41, 10, 9, 9,105,102, 32,110, 32,126, 61, 32, 48, 32,116,104,101, 110, 10, 9, 9, 32,114,101,116,117,114,110, 32,109, 10, 9, 9,101,110,100, 10, 9,101,110,100, 10, 9,114,101,116,117, 114,110, 32,110,105,108, 10,101,110,100, 10, 10, 45, 45, 32, 69,114,114,111,114, 32,104, 97,110,100,108,101,114, 10,102, 117,110, 99,116,105,111,110, 32,116,111,108,117, 97, 95,101, 114,114,111,114, 32, 40,115, 44,102, 41, 10,105,102, 32, 95, 99,117,114,114, 95, 99,111,100,101, 32,116,104,101,110, 10, 9,112,114,105,110,116, 40, 34, 42, 42, 42, 99,117,114,114, 32, 99,111,100,101, 32,102,111,114, 32,101,114,114,111,114, 32,105,115, 32, 34, 46, 46,116,111,115,116,114,105,110,103, 40, 95, 99,117,114,114, 95, 99,111,100,101, 41, 41, 10, 9, 112,114,105,110,116, 40,100,101, 98,117,103, 46,116,114, 97, 99,101, 98, 97, 99,107, 40, 41, 41, 10,101,110,100, 10, 32, 108,111, 99, 97,108, 32,111,117,116, 32, 61, 32, 95, 79, 85, 84, 80, 85, 84, 10, 32, 95, 79, 85, 84, 80, 85, 84, 32, 61, 32, 95, 83, 84, 68, 69, 82, 82, 10, 32,105,102, 32,115,116, 114,115,117, 98, 40,115, 44, 49, 44, 49, 41, 32, 61, 61, 32, 39, 35, 39, 32,116,104,101,110, 10, 32, 32,119,114,105,116, 101, 40, 34, 92,110, 42, 42, 32,116,111,108,117, 97, 58, 32, 34, 46, 46,115,116,114,115,117, 98, 40,115, 44, 50, 41, 46, 46, 34, 46, 92,110, 92,110, 34, 41, 10, 32, 32,105,102, 32, 95, 99,117,114,114, 95, 99,111,100,101, 32,116,104,101,110, 10, 32, 32, 32,108,111, 99, 97,108, 32, 95, 44, 95, 44,115, 32, 61, 32,115,116,114,102,105,110,100, 40, 95, 99,117,114, 114, 95, 99,111,100,101, 44, 34, 94, 37,115, 42, 40, 46, 45, 92,110, 41, 34, 41, 32, 45, 45, 32,101,120,116,114, 97, 99, 116, 32,102,105,114,115,116, 32,108,105,110,101, 10, 32, 32, 32,105,102, 32,115, 61, 61,110,105,108, 32,116,104,101,110, 32,115, 32, 61, 32, 95, 99,117,114,114, 95, 99,111,100,101, 32,101,110,100, 10, 32, 32, 32,115, 32, 61, 32,103,115,117, 98, 40,115, 44, 34, 95,117,115,101,114,100, 97,116, 97, 34, 44, 34,118,111,105,100, 42, 34, 41, 32, 45, 45, 32,114,101, 116,117,114,110, 32,119,105,116,104, 32, 39,118,111,105,100, 42, 39, 10, 32, 32, 32,115, 32, 61, 32,103,115,117, 98, 40, 115, 44, 34, 95, 99,115,116,114,105,110,103, 34, 44, 34, 99, 104, 97,114, 42, 34, 41, 32, 32, 45, 45, 32,114,101,116,117, 114,110, 32,119,105,116,104, 32, 39, 99,104, 97,114, 42, 39, 10, 32, 32, 32,115, 32, 61, 32,103,115,117, 98, 40,115, 44, 34, 95,108,115,116, 97,116,101, 34, 44, 34,108,117, 97, 95, 83,116, 97,116,101, 42, 34, 41, 32, 32, 45, 45, 32,114,101, 116,117,114,110, 32,119,105,116,104, 32, 39,108,117, 97, 95, 83,116, 97,116,101, 42, 39, 10, 32, 32, 32,119,114,105,116, 101, 40, 34, 67,111,100,101, 32, 98,101,105,110,103, 32,112, 114,111, 99,101,115,115,101,100, 58, 92,110, 34, 46, 46,115, 46, 46, 34, 92,110, 34, 41, 10, 32, 32,101,110,100, 10, 32, 101,108,115,101, 10, 32,105,102, 32,110,111,116, 32,102, 32, 116,104,101,110, 32,102, 32, 61, 32, 34, 40,102, 32,105,115, 32,110,105,108, 41, 34, 32,101,110,100, 10, 32, 32,112,114, 105,110,116, 40, 34, 92,110, 42, 42, 32,116,111,108,117, 97, 32,105,110,116,101,114,110, 97,108, 32,101,114,114,111,114, 58, 32, 34, 46, 46,102, 46, 46,115, 46, 46, 34, 46, 92,110, 92,110, 34, 41, 10, 32, 32,114,101,116,117,114,110, 10, 32, 101,110,100, 10, 32, 95, 79, 85, 84, 80, 85, 84, 32, 61, 32, 111,117,116, 10,101,110,100, 10, 10,102,117,110, 99,116,105, 111,110, 32,119, 97,114,110,105,110,103, 32, 40,109,115,103, 41, 10, 32,105,102, 32,102,108, 97,103,115, 46,113, 32,116, 104,101,110, 32,114,101,116,117,114,110, 32,101,110,100, 10, 32,108,111, 99, 97,108, 32,111,117,116, 32, 61, 32, 95, 79, 85, 84, 80, 85, 84, 10, 32, 95, 79, 85, 84, 80, 85, 84, 32, 61, 32, 95, 83, 84, 68, 69, 82, 82, 10, 32,119,114,105,116, 101, 40, 34, 92,110, 42, 42, 32,116,111,108,117, 97, 32,119, 97,114,110,105,110,103, 58, 32, 34, 46, 46,109,115,103, 46, 46, 34, 46, 92,110, 92,110, 34, 41, 10, 32, 95, 79, 85, 84, 80, 85, 84, 32, 61, 32,111,117,116, 10,101,110,100, 10, 10, 45, 45, 32,114,101,103,105,115,116,101,114, 32, 97,110, 32, 117,115,101,114, 32,100,101,102,105,110,101,100, 32,116,121, 112,101, 58, 32,114,101,116,117,114,110,115, 32,102,117,108, 108, 32,116,121,112,101, 10,102,117,110, 99,116,105,111,110, 32,114,101,103,116,121,112,101, 32, 40,116, 41, 10, 9, 45, 45,105,102, 32,105,115, 98, 97,115,105, 99, 40,116, 41, 32, 116,104,101,110, 10, 9, 45, 45, 9,114,101,116,117,114,110, 32,116, 10, 9, 45, 45,101,110,100, 10, 9,108,111, 99, 97, 108, 32,102,116, 32, 61, 32,102,105,110,100,116,121,112,101, 40,116, 41, 10, 10, 9,105,102, 32,110,111,116, 32, 95,117, 115,101,114,116,121,112,101, 91,102,116, 93, 32,116,104,101, 110, 10, 9, 9,114,101,116,117,114,110, 32, 97,112,112,101, 110,100,117,115,101,114,116,121,112,101, 40,116, 41, 10, 9, 101,110,100, 10, 9,114,101,116,117,114,110, 32,102,116, 10, 101,110,100, 10, 10, 45, 45, 32,114,101,116,117,114,110, 32, 116,121,112,101, 32,110, 97,109,101, 58, 32,114,101,116,117, 114,110,115, 32,102,117,108,108, 32,116,121,112,101, 10,102, 117,110, 99,116,105,111,110, 32,116,121,112,101,118, 97,114, 40,116,121,112,101, 41, 10, 9,105,102, 32,116,121,112,101, 32, 61, 61, 32, 39, 39, 32,111,114, 32,116,121,112,101, 32, 61, 61, 32, 39,118,111,105,100, 39, 32,116,104,101,110, 10, 9, 9,114,101,116,117,114,110, 32,116,121,112,101, 10, 9, 101,108,115,101, 10, 9, 9,108,111, 99, 97,108, 32,102,116, 32, 61, 32,102,105,110,100,116,121,112,101, 40,116,121,112, 101, 41, 10, 9, 9,105,102, 32,102,116, 32,116,104,101,110, 10, 9, 9, 9,114,101,116,117,114,110, 32,102,116, 10, 9, 9,101,110,100, 10, 9, 9, 95,117,115,101,114,116,121,112, 101, 91,116,121,112,101, 93, 32, 61, 32,116,121,112,101, 10, 9, 9,114,101,116,117,114,110, 32,116,121,112,101, 10, 9, 101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 99,104,101, 99,107, 32,105,102, 32, 98, 97,115,105, 99, 32,116,121,112, 101, 10,102,117,110, 99,116,105,111,110, 32,105,115, 98, 97, 115,105, 99, 32, 40,116,121,112,101, 41, 10, 32,108,111, 99, 97,108, 32,116, 32, 61, 32,103,115,117, 98, 40,116,121,112, 101, 44, 39, 99,111,110,115,116, 32, 39, 44, 39, 39, 41, 10, 32,108,111, 99, 97,108, 32,109, 44,116, 32, 61, 32, 97,112, 112,108,121,116,121,112,101,100,101,102, 40, 39, 39, 44, 32, 116, 41, 10, 32,108,111, 99, 97,108, 32, 98, 32, 61, 32, 95, 98, 97,115,105, 99, 91,116, 93, 10, 32,105,102, 32, 98, 32, 116,104,101,110, 10, 32, 32,114,101,116,117,114,110, 32, 98, 44, 95, 98, 97,115,105, 99, 95, 99,116,121,112,101, 91, 98, 93, 10, 32,101,110,100, 10, 32,114,101,116,117,114,110, 32, 110,105,108, 10,101,110,100, 10, 10, 45, 45, 32,115,112,108, 105,116, 32,115,116,114,105,110,103, 32,117,115,105,110,103, 32, 97, 32,116,111,107,101,110, 10,102,117,110, 99,116,105, 111,110, 32,115,112,108,105,116, 32, 40,115, 44,116, 41, 10, 32,108,111, 99, 97,108, 32,108, 32, 61, 32,123,110, 61, 48, 125, 10, 32,108,111, 99, 97,108, 32,102, 32, 61, 32,102,117, 110, 99,116,105,111,110, 32, 40,115, 41, 10, 32, 32,108, 46, 110, 32, 61, 32,108, 46,110, 32, 43, 32, 49, 10, 32, 32,108, 91,108, 46,110, 93, 32, 61, 32,115, 10, 32, 32,114,101,116, 117,114,110, 32, 34, 34, 10, 32,101,110,100, 10, 32,108,111, 99, 97,108, 32,112, 32, 61, 32, 34, 37,115, 42, 40, 46, 45, 41, 37,115, 42, 34, 46, 46,116, 46, 46, 34, 37,115, 42, 34, 10, 32,115, 32, 61, 32,103,115,117, 98, 40,115, 44, 34, 94, 37,115, 43, 34, 44, 34, 34, 41, 10, 32,115, 32, 61, 32,103, 115,117, 98, 40,115, 44, 34, 37,115, 43, 36, 34, 44, 34, 34, 41, 10, 32,115, 32, 61, 32,103,115,117, 98, 40,115, 44,112, 44,102, 41, 10, 32,108, 46,110, 32, 61, 32,108, 46,110, 32, 43, 32, 49, 10, 32,108, 91,108, 46,110, 93, 32, 61, 32,103, 115,117, 98, 40,115, 44, 34, 40, 37,115, 37,115, 42, 41, 36, 34, 44, 34, 34, 41, 10, 32,114,101,116,117,114,110, 32,108, 10,101,110,100, 10, 10, 45, 45, 32,115,112,108,105,116,115, 32, 97, 32,115,116,114,105,110,103, 32,117,115,105,110,103, 32, 97, 32,112, 97,116,116,101,114,110, 44, 32, 99,111,110, 115,105,100,101,114,105,110,103, 32,116,104,101, 32,115,112, 97, 99,105, 97,108, 32, 99, 97,115,101,115, 32,111,102, 32, 67, 32, 99,111,100,101, 32, 40,116,101,109,112,108, 97,116, 101,115, 44, 32,102,117,110, 99,116,105,111,110, 32,112, 97, 114, 97,109,101,116,101,114,115, 44, 32,101,116, 99, 41, 10, 45, 45, 32,112, 97,116,116,101,114,110, 32, 99, 97,110, 39, 116, 32, 99,111,110,116, 97,105,110, 32,116,104,101, 32, 39, 94, 39, 32, 40, 97,115, 32,117,115,101,100, 32,116,111, 32, 105,100,101,110,116,105,102,121, 32,116,104,101, 32, 98,101, 103,105,110,105,110,103, 32,111,102, 32,116,104,101, 32,108, 105,110,101, 41, 10, 45, 45, 32, 97,108,115,111, 32,115,116, 114,105,112,115, 32,119,104,105,116,101,115,112, 97, 99,101, 10,102,117,110, 99,116,105,111,110, 32,115,112,108,105,116, 95, 99, 95,116,111,107,101,110,115, 40,115, 44, 32,112, 97, 116, 41, 10, 10, 9,115, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,115, 44, 32, 34, 94, 37,115, 42, 34, 44, 32, 34, 34, 41, 10, 9,115, 32, 61, 32,115,116,114,105, 110,103, 46,103,115,117, 98, 40,115, 44, 32, 34, 37,115, 42, 36, 34, 44, 32, 34, 34, 41, 10, 10, 9,108,111, 99, 97,108, 32,116,111,107,101,110, 95, 98,101,103,105,110, 32, 61, 32, 49, 10, 9,108,111, 99, 97,108, 32,116,111,107,101,110, 95, 101,110,100, 32, 61, 32, 49, 10, 9,108,111, 99, 97,108, 32, 111,102,115, 32, 61, 32, 49, 10, 9,108,111, 99, 97,108, 32, 114,101,116, 32, 61, 32,123,110, 61, 48,125, 10, 10, 9,102, 117,110, 99,116,105,111,110, 32, 97,100,100, 95,116,111,107, 101,110, 40,111,102,115, 41, 10, 10, 9, 9,108,111, 99, 97, 108, 32,116, 32, 61, 32,115,116,114,105,110,103, 46,115,117, 98, 40,115, 44, 32,116,111,107,101,110, 95, 98,101,103,105, 110, 44, 32,111,102,115, 41, 10, 9, 9,116, 32, 61, 32,115, 116,114,105,110,103, 46,103,115,117, 98, 40,116, 44, 32, 34, 94, 37,115, 42, 34, 44, 32, 34, 34, 41, 10, 9, 9,116, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,116, 44, 32, 34, 37,115, 42, 36, 34, 44, 32, 34, 34, 41, 10, 9, 9,114,101,116, 46,110, 32, 61, 32,114,101,116, 46,110, 32, 43, 32, 49, 10, 9, 9,114,101,116, 91,114,101,116, 46,110, 93, 32, 61, 32,116, 10, 9,101,110,100, 10, 10, 9,119,104, 105,108,101, 32,111,102,115, 32, 60, 61, 32,115,116,114,105, 110,103, 46,108,101,110, 40,115, 41, 32,100,111, 10, 10, 9, 9,108,111, 99, 97,108, 32,115,117, 98, 32, 61, 32,115,116, 114,105,110,103, 46,115,117, 98, 40,115, 44, 32,111,102,115, 44, 32, 45, 49, 41, 10, 9, 9,108,111, 99, 97,108, 32, 98, 44,101, 32, 61, 32,115,116,114,105,110,103, 46,102,105,110, 100, 40,115,117, 98, 44, 32, 34, 94, 34, 46, 46,112, 97,116, 41, 10, 9, 9,105,102, 32, 98, 32,116,104,101,110, 10, 9, 9, 9, 97,100,100, 95,116,111,107,101,110, 40,111,102,115, 45, 49, 41, 10, 9, 9, 9,111,102,115, 32, 61, 32,111,102, 115, 43,101, 10, 9, 9, 9,116,111,107,101,110, 95, 98,101, 103,105,110, 32, 61, 32,111,102,115, 10, 9, 9,101,108,115, 101, 10, 9, 9, 9,108,111, 99, 97,108, 32, 99,104, 97,114, 32, 61, 32,115,116,114,105,110,103, 46,115,117, 98, 40,115, 44, 32,111,102,115, 44, 32,111,102,115, 41, 10, 9, 9, 9, 105,102, 32, 99,104, 97,114, 32, 61, 61, 32, 34, 40, 34, 32, 111,114, 32, 99,104, 97,114, 32, 61, 61, 32, 34, 60, 34, 32, 116,104,101,110, 10, 10, 9, 9, 9, 9,108,111, 99, 97,108, 32, 98,108,111, 99,107, 10, 9, 9, 9, 9,105,102, 32, 99, 104, 97,114, 32, 61, 61, 32, 34, 40, 34, 32,116,104,101,110, 32, 98,108,111, 99,107, 32, 61, 32, 34, 94, 37, 98, 40, 41, 34, 32,101,110,100, 10, 9, 9, 9, 9,105,102, 32, 99,104, 97,114, 32, 61, 61, 32, 34, 60, 34, 32,116,104,101,110, 32, 98,108,111, 99,107, 32, 61, 32, 34, 94, 37, 98, 60, 62, 34, 32,101,110,100, 10, 10, 9, 9, 9, 9, 98, 44,101, 32, 61, 32,115,116,114,105,110,103, 46,102,105,110,100, 40,115,117, 98, 44, 32, 98,108,111, 99,107, 41, 10, 9, 9, 9, 9,105, 102, 32,110,111,116, 32, 98, 32,116,104,101,110, 10, 9, 9, 9, 9, 9, 45, 45, 32,117,110,116,101,114,109,105,110, 97, 116,101,100, 32, 98,108,111, 99,107, 63, 10, 9, 9, 9, 9, 9,111,102,115, 32, 61, 32,111,102,115, 43, 49, 10, 9, 9, 9, 9,101,108,115,101, 10, 9, 9, 9, 9, 9,111,102,115, 32, 61, 32,111,102,115, 32, 43, 32,101, 10, 9, 9, 9, 9, 101,110,100, 10, 10, 9, 9, 9,101,108,115,101, 10, 9, 9, 9, 9,111,102,115, 32, 61, 32,111,102,115, 43, 49, 10, 9, 9, 9,101,110,100, 10, 9, 9,101,110,100, 10, 10, 9,101, 110,100, 10, 9, 97,100,100, 95,116,111,107,101,110, 40,111, 102,115, 41, 10, 9, 45, 45,105,102, 32,114,101,116, 46,110, 32, 61, 61, 32, 48, 32,116,104,101,110, 10, 10, 9, 45, 45, 9,114,101,116, 46,110, 61, 49, 10, 9, 45, 45, 9,114,101, 116, 91, 49, 93, 32, 61, 32, 34, 34, 10, 9, 45, 45,101,110, 100, 10, 10, 9,114,101,116,117,114,110, 32,114,101,116, 10, 10,101,110,100, 10, 10, 45, 45, 32, 99,111,110, 99, 97,116, 101,110, 97,116,101, 32,115,116,114,105,110,103,115, 32,111, 102, 32, 97, 32,116, 97, 98,108,101, 10,102,117,110, 99,116, 105,111,110, 32, 99,111,110, 99, 97,116, 32, 40,116, 44,102, 44,108, 44,106,115,116,114, 41, 10, 9,106,115,116,114, 32, 61, 32,106,115,116,114, 32,111,114, 32, 34, 32, 34, 10, 32, 108,111, 99, 97,108, 32,115, 32, 61, 32, 39, 39, 10, 32,108, 111, 99, 97,108, 32,105, 61,102, 10, 32,119,104,105,108,101, 32,105, 60, 61,108, 32,100,111, 10, 32, 32,115, 32, 61, 32, 115, 46, 46,116, 91,105, 93, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32, 32,105,102, 32,105, 32, 60, 61, 32,108, 32, 116,104,101,110, 32,115, 32, 61, 32,115, 46, 46,106,115,116, 114, 32,101,110,100, 10, 32,101,110,100, 10, 32,114,101,116, 117,114,110, 32,115, 10,101,110,100, 10, 10, 45, 45, 32, 99, 111,110, 99, 97,116,101,110, 97,116,101, 32, 97,108,108, 32, 112, 97,114, 97,109,101,116,101,114,115, 44, 32,102,111,108, 108,111,119,105,110,103, 32,111,117,116,112,117,116, 32,114, 117,108,101,115, 10,102,117,110, 99,116,105,111,110, 32, 99, 111,110, 99, 97,116,112, 97,114, 97,109, 32, 40,108,105,110, 101, 44, 32, 46, 46, 46, 41, 10, 32,108,111, 99, 97,108, 32, 105, 61, 49, 10, 32,119,104,105,108,101, 32,105, 60, 61, 97, 114,103, 46,110, 32,100,111, 10, 32, 32,105,102, 32, 95, 99, 111,110,116, 32, 97,110,100, 32,110,111,116, 32,115,116,114, 102,105,110,100, 40, 95, 99,111,110,116, 44, 39, 91, 37, 40, 44, 34, 93, 39, 41, 32, 97,110,100, 10, 32, 32, 32, 32, 32, 115,116,114,102,105,110,100, 40, 97,114,103, 91,105, 93, 44, 34, 94, 91, 37, 97, 95,126, 93, 34, 41, 32,116,104,101,110, 10, 9, 32, 32, 32, 32,108,105,110,101, 32, 61, 32,108,105, 110,101, 32, 46, 46, 32, 39, 32, 39, 10, 32, 32,101,110,100, 10, 32, 32,108,105,110,101, 32, 61, 32,108,105,110,101, 32, 46, 46, 32, 97,114,103, 91,105, 93, 10, 32, 32,105,102, 32, 97,114,103, 91,105, 93, 32,126, 61, 32, 39, 39, 32,116,104, 101,110, 10, 32, 32, 32, 95, 99,111,110,116, 32, 61, 32,115, 116,114,115,117, 98, 40, 97,114,103, 91,105, 93, 44, 45, 49, 44, 45, 49, 41, 10, 32, 32,101,110,100, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32,105,102, 32, 115,116,114,102,105,110,100, 40, 97,114,103, 91, 97,114,103, 46,110, 93, 44, 34, 91, 37, 47, 37, 41, 37, 59, 37,123, 37, 125, 93, 36, 34, 41, 32,116,104,101,110, 10, 32, 32, 95, 99, 111,110,116, 61,110,105,108, 32,108,105,110,101, 32, 61, 32, 108,105,110,101, 32, 46, 46, 32, 39, 92,110, 39, 10, 32,101, 110,100, 10, 9,114,101,116,117,114,110, 32,108,105,110,101, 10,101,110,100, 10, 10, 45, 45, 32,111,117,116,112,117,116, 32,108,105,110,101, 10,102,117,110, 99,116,105,111,110, 32, 111,117,116,112,117,116, 32, 40, 46, 46, 46, 41, 10, 32,108, 111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105,108,101, 32,105, 60, 61, 97,114,103, 46,110, 32,100,111, 10, 32, 32, 105,102, 32, 95, 99,111,110,116, 32, 97,110,100, 32,110,111, 116, 32,115,116,114,102,105,110,100, 40, 95, 99,111,110,116, 44, 39, 91, 37, 40, 44, 34, 93, 39, 41, 32, 97,110,100, 10, 32, 32, 32, 32, 32,115,116,114,102,105,110,100, 40, 97,114, 103, 91,105, 93, 44, 34, 94, 91, 37, 97, 95,126, 93, 34, 41, 32,116,104,101,110, 10, 9, 32, 32, 32, 32,119,114,105,116, 101, 40, 39, 32, 39, 41, 10, 32, 32,101,110,100, 10, 32, 32, 119,114,105,116,101, 40, 97,114,103, 91,105, 93, 41, 10, 32, 32,105,102, 32, 97,114,103, 91,105, 93, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10, 32, 32, 32, 95, 99,111,110,116, 32, 61, 32,115,116,114,115,117, 98, 40, 97,114,103, 91,105, 93, 44, 45, 49, 44, 45, 49, 41, 10, 32, 32,101,110,100, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32,105,102, 32,115,116,114,102,105,110,100, 40, 97,114,103, 91, 97,114,103, 46,110, 93, 44, 34, 91, 37, 47, 37, 41, 37, 59, 37,123, 37,125, 93, 36, 34, 41, 32,116,104,101,110, 10, 32, 32, 95, 99,111,110,116, 61,110,105,108, 32,119,114,105, 116,101, 40, 39, 92,110, 39, 41, 10, 32,101,110,100, 10,101, 110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,103,101, 116, 95,112,114,111,112,101,114,116,121, 95,109,101,116,104, 111,100,115, 40,112,116,121,112,101, 44, 32,110, 97,109,101, 41, 10, 10, 9,105,102, 32,103,101,116, 95,112,114,111,112, 101,114,116,121, 95,109,101,116,104,111,100,115, 95,104,111, 111,107, 32, 97,110,100, 32,103,101,116, 95,112,114,111,112, 101,114,116,121, 95,109,101,116,104,111,100,115, 95,104,111, 111,107, 40,112,116,121,112,101, 44,110, 97,109,101, 41, 32, 116,104,101,110, 10, 9, 9,114,101,116,117,114,110, 32,103, 101,116, 95,112,114,111,112,101,114,116,121, 95,109,101,116, 104,111,100,115, 95,104,111,111,107, 40,112,116,121,112,101, 44, 32,110, 97,109,101, 41, 10, 9,101,110,100, 10, 10, 9, 105,102, 32,112,116,121,112,101, 32, 61, 61, 32, 34,100,101, 102, 97,117,108,116, 34, 32,116,104,101,110, 32, 45, 45, 32, 103,101,116, 95,110, 97,109,101, 44, 32,115,101,116, 95,110, 97,109,101, 10, 9, 9,114,101,116,117,114,110, 32, 34,103, 101,116, 95, 34, 46, 46,110, 97,109,101, 44, 32, 34,115,101, 116, 95, 34, 46, 46,110, 97,109,101, 10, 9,101,110,100, 10, 10, 9,105,102, 32,112,116,121,112,101, 32, 61, 61, 32, 34, 113,116, 34, 32,116,104,101,110, 32, 45, 45, 32,110, 97,109, 101, 44, 32,115,101,116, 78, 97,109,101, 10, 9, 9,114,101, 116,117,114,110, 32,110, 97,109,101, 44, 32, 34,115,101,116, 34, 46, 46,115,116,114,105,110,103, 46,117,112,112,101,114, 40,115,116,114,105,110,103, 46,115,117, 98, 40,110, 97,109, 101, 44, 32, 49, 44, 32, 49, 41, 41, 46, 46,115,116,114,105, 110,103, 46,115,117, 98, 40,110, 97,109,101, 44, 32, 50, 44, 32, 45, 49, 41, 10, 9,101,110,100, 10, 10, 9,105,102, 32, 112,116,121,112,101, 32, 61, 61, 32, 34,111,118,101,114,108, 111, 97,100, 34, 32,116,104,101,110, 32, 45, 45, 32,110, 97, 109,101, 44, 32,110, 97,109,101, 10, 9, 9,114,101,116,117, 114,110, 32,110, 97,109,101, 44,110, 97,109,101, 10, 9,101, 110,100, 10, 10, 9,114,101,116,117,114,110, 32,110,105,108, 10,101,110,100, 10, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 32,116,104,101, 32,104,111,111,107,115, 10, 10, 45, 45, 32, 99, 97,108,108,101,100, 32,114,105,103, 104,116, 32, 97,102,116,101,114, 32,112,114,111, 99,101,115, 115,105,110,103, 32,116,104,101, 32, 36, 91,105, 99,104,108, 93,102,105,108,101, 32,100,105,114,101, 99,116,105,118,101, 115, 44, 10, 45, 45, 32,114,105,103,104,116, 32, 98,101,102, 111,114,101, 32,112,114,111, 99,101,115,115,105,110,103, 32, 97,110,121,116,104,105,110,103, 32,101,108,115,101, 10, 45, 45, 32,116, 97,107,101,115, 32,116,104,101, 32,112, 97, 99, 107, 97,103,101, 32,111, 98,106,101, 99,116, 32, 97,115, 32, 116,104,101, 32,112, 97,114, 97,109,101,116,101,114, 10,102, 117,110, 99,116,105,111,110, 32,112,114,101,112,114,111, 99, 101,115,115, 95,104,111,111,107, 40,112, 41, 10, 9, 45, 45, 32,112, 46, 99,111,100,101, 32,104, 97,115, 32, 97,108,108, 32,116,104,101, 32,105,110,112,117,116, 32, 99,111,100,101, 32,102,114,111,109, 32,116,104,101, 32,112,107,103, 10,101, 110,100, 10, 10, 10, 45, 45, 32, 99, 97,108,108,101,100, 32, 102,111,114, 32,101,118,101,114,121, 32, 36,105,102,105,108, 101, 32,100,105,114,101, 99,116,105,118,101, 10, 45, 45, 32, 116, 97,107,101,115, 32, 97, 32,116, 97, 98,108,101, 32,119, 105,116,104, 32, 97, 32,115,116,114,105,110,103, 32, 99, 97, 108,108,101,100, 32, 39, 99,111,100,101, 39, 32,105,110,115, 105,100,101, 44, 32,116,104,101, 32,102,105,108,101,110, 97, 109,101, 44, 32, 97,110,100, 32, 97,110,121, 32,101,120,116, 114, 97, 32, 97,114,103,117,109,101,110,116,115, 10, 45, 45, 32,112, 97,115,115,101,100, 32,116,111, 32, 36,105,102,105, 108,101, 46, 32,110,111, 32,114,101,116,117,114,110, 32,118, 97,108,117,101, 10,102,117,110, 99,116,105,111,110, 32,105, 110, 99,108,117,100,101, 95,102,105,108,101, 95,104,111,111, 107, 40,116, 44, 32,102,105,108,101,110, 97,109,101, 44, 32, 46, 46, 46, 41, 10, 10,101,110,100, 10, 10, 45, 45, 32, 99, 97,108,108,101,100, 32, 97,102,116,101,114, 32,112,114,111, 99,101,115,115,105,110,103, 32, 97,110,121,116,104,105,110, 103, 32,116,104, 97,116, 39,115, 32,110,111,116, 32, 99,111, 100,101, 32, 40,108,105,107,101, 32, 39, 36,114,101,110, 97, 109,105,110,103, 39, 44, 32, 99,111,109,109,101,110,116,115, 44, 32,101,116, 99, 41, 10, 45, 45, 32, 97,110,100, 32,114, 105,103,104,116, 32, 98,101,102,111,114,101, 32,112, 97,114, 115,105,110,103, 32,116,104,101, 32, 97, 99,116,117, 97,108, 32, 99,111,100,101, 46, 10, 45, 45, 32,116, 97,107,101,115, 32,116,104,101, 32, 80, 97, 99,107, 97,103,101, 32,111, 98, 106,101, 99,116, 32,119,105,116,104, 32, 97,108,108, 32,116, 104,101, 32, 99,111,100,101, 32,111,110, 32,116,104,101, 32, 39, 99,111,100,101, 39, 32,107,101,121, 46, 32,110,111, 32, 114,101,116,117,114,110, 32,118, 97,108,117,101, 10,102,117, 110, 99,116,105,111,110, 32,112,114,101,112, 97,114,115,101, 95,104,111,111,107, 40,112, 97, 99,107, 97,103,101, 41, 10, 10,101,110,100, 10, 10, 10, 45, 45, 32, 99, 97,108,108,101, 100, 32, 97,102,116,101,114, 32,119,114,105,116,105,110,103, 32, 97,108,108, 32,116,104,101, 32,111,117,116,112,117,116, 46, 10, 45, 45, 32,116, 97,107,101,115, 32,116,104,101, 32, 80, 97, 99,107, 97,103,101, 32,111, 98,106,101, 99,116, 10, 102,117,110, 99,116,105,111,110, 32,112,111,115,116, 95,111, 117,116,112,117,116, 95,104,111,111,107, 40,112, 97, 99,107, 97,103,101, 41, 10, 10,101,110,100, 10, 10, 10, 45, 45, 32, 99, 97,108,108,101,100, 32,102,114,111,109, 32, 39,103,101, 116, 95,112,114,111,112,101,114,116,121, 95,109,101,116,104, 111,100,115, 39, 32,116,111, 32,103,101,116, 32,116,104,101, 32,109,101,116,104,111,100,115, 32,116,111, 32,114,101,116, 114,105,101,118,101, 32, 97, 32,112,114,111,112,101,114,116, 121, 10, 45, 45, 32, 97, 99, 99,111,114,100,105,110,103, 32, 116,111, 32,105,116,115, 32,116,121,112,101, 10,102,117,110, 99,116,105,111,110, 32,103,101,116, 95,112,114,111,112,101, 114,116,121, 95,109,101,116,104,111,100,115, 95,104,111,111, 107, 40,112,114,111,112,101,114,116,121, 95,116,121,112,101, 44, 32,110, 97,109,101, 41, 10, 10,101,110,100, 10, 10, 45, 45, 32, 99, 97,108,108,101,100, 32,102,114,111,109, 32, 67, 108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 58,100, 111,112, 97,114,115,101, 32,119,105,116,104, 32,116,104,101, 32,115,116,114,105,110,103, 32, 98,101,105,110,103, 32,112, 97,114,115,101,100, 10, 45, 45, 32,114,101,116,117,114,110, 32,110,105,108, 44, 32,111,114, 32, 97, 32,115,117, 98,115, 116,114,105,110,103, 10,102,117,110, 99,116,105,111,110, 32, 112, 97,114,115,101,114, 95,104,111,111,107, 40,115, 41, 10, 10, 9,114,101,116,117,114,110, 32,110,105,108, 10,101,110, 100, 10, 10, 45, 45, 32, 99,117,115,116,111,109, 32,112,117, 115,104,101,114,115, 10, 10, 95,112,117,115,104, 95,102,117, 110, 99,116,105,111,110,115, 32, 61, 32,123,125, 10, 95,105, 115, 95,102,117,110, 99,116,105,111,110,115, 32, 61, 32,123, 125, 10, 95,116,111, 95,102,117,110, 99,116,105,111,110,115, 32, 61, 32,123,125, 10, 10, 95, 98, 97,115,101, 95,112,117, 115,104, 95,102,117,110, 99,116,105,111,110,115, 32, 61, 32, 123,125, 10, 95, 98, 97,115,101, 95,105,115, 95,102,117,110, 99,116,105,111,110,115, 32, 61, 32,123,125, 10, 95, 98, 97, 115,101, 95,116,111, 95,102,117,110, 99,116,105,111,110,115, 32, 61, 32,123,125, 10, 10,108,111, 99, 97,108, 32,102,117, 110, 99,116,105,111,110, 32,115,101, 97,114, 99,104, 95, 98, 97,115,101, 40,116, 44, 32,102,117,110, 99,115, 41, 10, 10, 9,108,111, 99, 97,108, 32, 99,108, 97,115,115, 32, 61, 32, 95,103,108,111, 98, 97,108, 95, 99,108, 97,115,115,101,115, 91,116, 93, 10, 10, 9,119,104,105,108,101, 32, 99,108, 97, 115,115, 32,100,111, 10, 9, 9,105,102, 32,102,117,110, 99, 115, 91, 99,108, 97,115,115, 46,116,121,112,101, 93, 32,116, 104,101,110, 10, 9, 9, 9,114,101,116,117,114,110, 32,102, 117,110, 99,115, 91, 99,108, 97,115,115, 46,116,121,112,101, 93, 10, 9, 9,101,110,100, 10, 9, 9, 99,108, 97,115,115, 32, 61, 32, 95,103,108,111, 98, 97,108, 95, 99,108, 97,115, 115,101,115, 91, 99,108, 97,115,115, 46, 98,116,121,112,101, 93, 10, 9,101,110,100, 10, 9,114,101,116,117,114,110, 32, 110,105,108, 10,101,110,100, 10, 10,102,117,110, 99,116,105, 111,110, 32,103,101,116, 95,112,117,115,104, 95,102,117,110, 99,116,105,111,110, 40,116, 41, 10, 9,114,101,116,117,114, 110, 32, 95,112,117,115,104, 95,102,117,110, 99,116,105,111, 110,115, 91,116, 93, 32,111,114, 32,115,101, 97,114, 99,104, 95, 98, 97,115,101, 40,116, 44, 32, 95, 98, 97,115,101, 95, 112,117,115,104, 95,102,117,110, 99,116,105,111,110,115, 41, 32,111,114, 32, 34,116,111,108,117, 97, 95,112,117,115,104, 117,115,101,114,116,121,112,101, 34, 10,101,110,100, 10, 10, 102,117,110, 99,116,105,111,110, 32,103,101,116, 95,116,111, 95,102,117,110, 99,116,105,111,110, 40,116, 41, 10, 9,114, 101,116,117,114,110, 32, 95,116,111, 95,102,117,110, 99,116, 105,111,110,115, 91,116, 93, 32,111,114, 32,115,101, 97,114, 99,104, 95, 98, 97,115,101, 40,116, 44, 32, 95, 98, 97,115, 101, 95,116,111, 95,102,117,110, 99,116,105,111,110,115, 41, 32,111,114, 32, 34,116,111,108,117, 97, 95,116,111,117,115, 101,114,116,121,112,101, 34, 10,101,110,100, 10, 10,102,117, 110, 99,116,105,111,110, 32,103,101,116, 95,105,115, 95,102, 117,110, 99,116,105,111,110, 40,116, 41, 10, 9,114,101,116, 117,114,110, 32, 95,105,115, 95,102,117,110, 99,116,105,111, 110,115, 91,116, 93, 32,111,114, 32,115,101, 97,114, 99,104, 95, 98, 97,115,101, 40,116, 44, 32, 95, 98, 97,115,101, 95, 105,115, 95,102,117,110, 99,116,105,111,110,115, 41, 32,111, 114, 32, 34,116,111,108,117, 97, 95,105,115,117,115,101,114, 116,121,112,101, 34, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/basic.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32, 97, 98,115,116,114, 97, 99,116, 32,102,101, 97,116,117,114,101, 32, 99,108, 97, 115,115, 10, 45, 45, 32, 87,114,105,116,116,101,110, 32, 98, 121, 32, 87, 97,108,100,101,109, 97,114, 32, 67,101,108,101, 115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73,100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111,100,101, 32,105,115, 32, 102,114,101,101, 32,115,111,102,116,119, 97,114,101, 59, 32, 121,111,117, 32, 99, 97,110, 32,114,101,100,105,115,116,114, 105, 98,117,116,101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109,111,100,105,102,121, 32,105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116,119, 97,114,101, 32,112,114, 111,118,105,100,101,100, 32,104,101,114,101,117,110,100,101, 114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32, 105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97,117,116,104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98,108,105,103, 97,116,105,111, 110, 32,116,111, 32,112,114,111,118,105,100,101, 32,109, 97, 105,110,116,101,110, 97,110, 99,101, 44, 32,115,117,112,112, 111,114,116, 44, 32,117,112,100, 97,116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,101,109,101,110,116,115, 44, 32,111,114, 32,109,111,100,105,102,105, 99, 97,116,105,111, 110,115, 46, 10, 10, 10, 45, 45, 32, 70,101, 97,116,117,114, 101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114, 101,115,101,110,116,115, 32,116,104,101, 32, 98, 97,115,101, 32, 99,108, 97,115,115, 32,111,102, 32, 97,108,108, 32,109, 97,112,112,101,100, 32,102,101, 97,116,117,114,101, 46, 10, 99,108, 97,115,115, 70,101, 97,116,117,114,101, 32, 61, 32, 123, 10,125, 10, 99,108, 97,115,115, 70,101, 97,116,117,114, 101, 46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97, 115,115, 70,101, 97,116,117,114,101, 10, 10, 45, 45, 32,119, 114,105,116,101, 32,115,117,112,112,111,114,116, 32, 99,111, 100,101, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97, 115,115, 70,101, 97,116,117,114,101, 58,115,117,112, 99,111, 100,101, 32, 40, 41, 10,101,110,100, 10, 10, 45, 45, 32,111, 117,116,112,117,116, 32,116, 97,103, 10,102,117,110, 99,116, 105,111,110, 32, 99,108, 97,115,115, 70,101, 97,116,117,114, 101, 58,100,101, 99,108,116,121,112,101, 32, 40, 41, 10,101, 110,100, 10, 10, 45, 45, 32,114,101,103,105,115,116,101,114, 32,102,101, 97,116,117,114,101, 10,102,117,110, 99,116,105, 111,110, 32, 99,108, 97,115,115, 70,101, 97,116,117,114,101, 58,114,101,103,105,115,116,101,114, 32, 40,112,114,101, 41, 10,101,110,100, 10, 10, 45, 45, 32,116,114, 97,110,115,108, 97,116,101, 32,118,101,114, 98, 97,116,105,109, 10,102,117, 110, 99,116,105,111,110, 32, 99,108, 97,115,115, 70,101, 97, 116,117,114,101, 58,112,114,101, 97,109, 98,108,101, 32, 40, 41, 10,101,110,100, 10, 10, 45, 45, 32, 99,104,101, 99,107, 32,105,102, 32,105,116, 32,105,115, 32, 97, 32,118, 97,114, 105, 97, 98,108,101, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 70,101, 97,116,117,114,101, 58,105,115, 118, 97,114,105, 97, 98,108,101, 32, 40, 41, 10, 32,114,101, 116,117,114,110, 32,102, 97,108,115,101, 10,101,110,100, 10, 10, 45, 45, 32, 99,104,101, 99,107, 32,105,102, 32,105,116, 32,114,101,113,117,105,114,101,115, 32, 99,111,108,108,101, 99,116,105,111,110, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 70,101, 97,116,117,114,101, 58,114,101, 113,117,105,114,101, 99,111,108,108,101, 99,116,105,111,110, 32, 40,116, 41, 10, 32,114,101,116,117,114,110, 32,102, 97, 108,115,101, 10,101,110,100, 10, 10, 45, 45, 32, 98,117,105, 108,100, 32,110, 97,109,101,115, 10,102,117,110, 99,116,105, 111,110, 32, 99,108, 97,115,115, 70,101, 97,116,117,114,101, 58, 98,117,105,108,100,110, 97,109,101,115, 32, 40, 41, 10, 32,105,102, 32,115,101,108,102, 46,110, 97,109,101, 32, 97, 110,100, 32,115,101,108,102, 46,110, 97,109,101,126, 61, 39, 39, 32,116,104,101,110, 10, 32, 32,108,111, 99, 97,108, 32, 110, 32, 61, 32,115,112,108,105,116, 40,115,101,108,102, 46, 110, 97,109,101, 44, 39, 64, 39, 41, 10, 32, 32,115,101,108, 102, 46,110, 97,109,101, 32, 61, 32,110, 91, 49, 93, 10, 32, 32,115,101,108,102, 46,110, 97,109,101, 32, 61, 32,115,116, 114,105,110,103, 46,103,115,117, 98, 40,115,101,108,102, 46, 110, 97,109,101, 44, 32, 34, 58, 37,100, 42, 36, 34, 44, 32, 34, 34, 41, 10, 32, 32,105,102, 32,110,111,116, 32,110, 91, 50, 93, 32,116,104,101,110, 10, 32, 32, 32,110, 91, 50, 93, 32, 61, 32, 97,112,112,108,121,114,101,110, 97,109,105,110, 103, 40,110, 91, 49, 93, 41, 10, 32, 32,101,110,100, 10, 32, 32,115,101,108,102, 46,108,110, 97,109,101, 32, 61, 32,110, 91, 50, 93, 32,111,114, 32,103,115,117, 98, 40,110, 91, 49, 93, 44, 34, 37, 91, 46, 45, 37, 93, 34, 44, 34, 34, 41, 10, 32, 32,115,101,108,102, 46,108,110, 97,109,101, 32, 61, 32, 115,116,114,105,110,103, 46,103,115,117, 98, 40,115,101,108, 102, 46,108,110, 97,109,101, 44, 32, 34, 58, 37,100, 42, 36, 34, 44, 32, 34, 34, 41, 10, 32, 32,115,101,108,102, 46,111, 114,105,103,105,110, 97,108, 95,110, 97,109,101, 32, 61, 32, 115,101,108,102, 46,110, 97,109,101, 10, 32, 32,115,101,108, 102, 46,108,110, 97,109,101, 32, 61, 32, 99,108,101, 97,110, 95,116,101,109,112,108, 97,116,101, 40,115,101,108,102, 46, 108,110, 97,109,101, 41, 10, 32,101,110,100, 10, 32,105,102, 32,110,111,116, 32,115,101,108,102, 46,105,115, 95,112, 97, 114, 97,109,101,116,101,114, 32,116,104,101,110, 10, 9, 32, 115,101,108,102, 46,110, 97,109,101, 32, 61, 32,103,101,116, 111,110,108,121,110, 97,109,101,115,112, 97, 99,101, 40, 41, 32, 46, 46, 32,115,101,108,102, 46,110, 97,109,101, 10, 32, 101,110,100, 10, 10, 32,108,111, 99, 97,108, 32,112, 97,114, 101,110,116, 32, 61, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 10, 32,105,102, 32, 112, 97,114,101,110,116, 32,116,104,101,110, 10, 32, 9,115, 101,108,102, 46, 97, 99, 99,101,115,115, 32, 61, 32,112, 97, 114,101,110,116, 46, 99,117,114,114, 95,109,101,109, 98,101, 114, 95, 97, 99, 99,101,115,115, 10, 9,115,101,108,102, 46, 103,108,111, 98, 97,108, 95, 97, 99, 99,101,115,115, 32, 61, 32,115,101,108,102, 58, 99,104,101, 99,107, 95,112,117, 98, 108,105, 99, 95, 97, 99, 99,101,115,115, 40, 41, 10, 32,101, 108,115,101, 10, 32,101,110,100, 10,101,110,100, 10, 10,102, 117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 70,101, 97,116,117,114,101, 58, 99,104,101, 99,107, 95,112,117, 98, 108,105, 99, 95, 97, 99, 99,101,115,115, 40, 41, 10, 10, 9, 105,102, 32,116,121,112,101, 40,115,101,108,102, 46,103,108, 111, 98, 97,108, 95, 97, 99, 99,101,115,115, 41, 32, 61, 61, 32, 34, 98,111,111,108,101, 97,110, 34, 32,116,104,101,110, 10, 9, 9,114,101,116,117,114,110, 32,115,101,108,102, 46, 103,108,111, 98, 97,108, 95, 97, 99, 99,101,115,115, 10, 9, 101,110,100, 10, 10, 9,105,102, 32,115,101,108,102, 46, 97, 99, 99,101,115,115, 32, 97,110,100, 32,115,101,108,102, 46, 97, 99, 99,101,115,115, 32,126, 61, 32, 48, 32,116,104,101, 110, 10, 9, 9,114,101,116,117,114,110, 32,102, 97,108,115, 101, 10, 9,101,110,100, 10, 10, 9,108,111, 99, 97,108, 32, 112, 97,114,101,110,116, 32, 61, 32, 99,108, 97,115,115, 67, 111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 10, 9, 119,104,105,108,101, 32,112, 97,114,101,110,116, 32,100,111, 10, 9, 9,105,102, 32,112, 97,114,101,110,116, 46, 97, 99, 99,101,115,115, 32, 97,110,100, 32,112, 97,114,101,110,116, 46, 97, 99, 99,101,115,115, 32,126, 61, 32, 48, 32,116,104, 101,110, 10, 9, 9, 9,114,101,116,117,114,110, 32,102, 97, 108,115,101, 10, 9, 9,101,110,100, 10, 9, 9,112, 97,114, 101,110,116, 32, 61, 32,112, 97,114,101,110,116, 46,112,114, 111,120, 10, 9,101,110,100, 10, 9,114,101,116,117,114,110, 32,116,114,117,101, 10,101,110,100, 10, 10,102,117,110, 99, 116,105,111,110, 32, 99,108,101, 97,110, 95,116,101,109,112, 108, 97,116,101, 40,116, 41, 10, 10, 9,114,101,116,117,114, 110, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,116, 44, 32, 34, 91, 60, 62, 58, 44, 32, 37, 42, 93, 34, 44, 32, 34, 95, 34, 41, 10,101,110,100, 10, 10, 45, 45, 32, 99,104, 101, 99,107, 32,105,102, 32,102,101, 97,116,117,114,101, 32, 105,115, 32,105,110,115,105,100,101, 32, 97, 32, 99,111,110, 116, 97,105,110,101,114, 32,100,101,102,105,110,105,116,105, 111,110, 10, 45, 45, 32,105,116, 32,114,101,116,117,114,110, 115, 32,116,104,101, 32, 99,111,110,116, 97,105,110,101,114, 32, 99,108, 97,115,115, 32,110, 97,109,101, 32,111,114, 32, 110,105,108, 46, 10,102,117,110, 99,116,105,111,110, 32, 99, 108, 97,115,115, 70,101, 97,116,117,114,101, 58,105,110, 99, 111,110,116, 97,105,110,101,114, 32, 40,119,104,105, 99,104, 41, 10, 32,105,102, 32,115,101,108,102, 46,112, 97,114,101, 110,116, 32,116,104,101,110, 10, 32, 32,108,111, 99, 97,108, 32,112, 97,114,101,110,116, 32, 61, 32,115,101,108,102, 46, 112, 97,114,101,110,116, 10, 32, 32,119,104,105,108,101, 32, 112, 97,114,101,110,116, 32,100,111, 10, 32, 32, 32,105,102, 32,112, 97,114,101,110,116, 46, 99,108, 97,115,115,116,121, 112,101, 32, 61, 61, 32,119,104,105, 99,104, 32,116,104,101, 110, 10, 32, 32, 32, 32,114,101,116,117,114,110, 32,112, 97, 114,101,110,116, 46,110, 97,109,101, 10, 32, 32, 32,101,110, 100, 10, 32, 32, 32,112, 97,114,101,110,116, 32, 61, 32,112, 97,114,101,110,116, 46,112, 97,114,101,110,116, 10, 32, 32, 101,110,100, 10, 32,101,110,100, 10, 32,114,101,116,117,114, 110, 32,110,105,108, 10,101,110,100, 10, 10,102,117,110, 99, 116,105,111,110, 32, 99,108, 97,115,115, 70,101, 97,116,117, 114,101, 58,105,110, 99,108, 97,115,115, 32, 40, 41, 10, 32, 114,101,116,117,114,110, 32,115,101,108,102, 58,105,110, 99, 111,110,116, 97,105,110,101,114, 40, 39, 99,108, 97,115,115, 39, 41, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111, 110, 32, 99,108, 97,115,115, 70,101, 97,116,117,114,101, 58, 105,110,109,111,100,117,108,101, 32, 40, 41, 10, 32,114,101, 116,117,114,110, 32,115,101,108,102, 58,105,110, 99,111,110, 116, 97,105,110,101,114, 40, 39,109,111,100,117,108,101, 39, 41, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 70,101, 97,116,117,114,101, 58,105, 110,110, 97,109,101,115,112, 97, 99,101, 32, 40, 41, 10, 32, 114,101,116,117,114,110, 32,115,101,108,102, 58,105,110, 99, 111,110,116, 97,105,110,101,114, 40, 39,110, 97,109,101,115, 112, 97, 99,101, 39, 41, 10,101,110,100, 10, 10, 45, 45, 32, 114,101,116,117,114,110, 32, 67, 32, 98,105,110,100,105,110, 103, 32,102,117,110, 99,116,105,111,110, 32,110, 97,109,101, 32, 98, 97,115,101,100, 32,111,110, 32,110, 97,109,101, 10, 45, 45, 32,116,104,101, 32, 99,108,105,101,110,116, 32,115, 112,101, 99,105,102,105,101,115, 32, 97, 32,112,114,101,102, 105,120, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97, 115,115, 70,101, 97,116,117,114,101, 58, 99,102,117,110, 99, 110, 97,109,101, 32, 40,110, 41, 10, 10, 32,105,102, 32,115, 101,108,102, 46,112, 97,114,101,110,116, 32,116,104,101,110, 10, 32, 32,110, 32, 61, 32,115,101,108,102, 46,112, 97,114, 101,110,116, 58, 99,102,117,110, 99,110, 97,109,101, 40,110, 41, 10, 32,101,110,100, 10, 10, 32,108,111, 99, 97,108, 32, 102,110, 97,109,101, 32, 61, 32,115,101,108,102, 46,108,110, 97,109,101, 10, 32,105,102, 32,110,111,116, 32,102,110, 97, 109,101, 32,111,114, 32,102,110, 97,109,101, 32, 61, 61, 32, 39, 39, 32,116,104,101,110, 10, 32, 9,102,110, 97,109,101, 32, 61, 32,115,101,108,102, 46,110, 97,109,101, 10, 32,101, 110,100, 10, 32, 32,110, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,110, 46, 46, 39, 95, 39, 46, 46, 32, 40,102,110, 97,109,101, 41, 44, 32, 34, 91, 60, 62, 58, 44, 32, 92, 46, 37, 42, 38, 93, 34, 44, 32, 34, 95, 34, 41, 10, 10, 32, 32,114,101,116,117,114,110, 32,110, 10,101,110,100, 32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/feature.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32,118,101,114, 98, 97, 116,105,109, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114, 105,116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73, 100, 58, 32,118,101,114, 98, 97,116,105,109, 46,108,117, 97, 44,118, 32, 49, 46, 51, 32, 50, 48, 48, 48, 47, 48, 49, 47, 50, 52, 32, 50, 48, 58, 52, 49, 58, 49, 54, 32, 99,101,108, 101,115, 32, 69,120,112, 32, 36, 10, 10, 45, 45, 32, 84,104, 105,115, 32, 99,111,100,101, 32,105,115, 32,102,114,101,101, 32,115,111,102,116,119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32,114,101,100,105,115,116,114,105, 98,117,116, 101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109,111,100, 105,102,121, 32,105,116, 46, 10, 45, 45, 32, 84,104,101, 32, 115,111,102,116,119, 97,114,101, 32,112,114,111,118,105,100, 101,100, 32,104,101,114,101,117,110,100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97,110,100, 10, 45, 45, 32,116, 104,101, 32, 97,117,116,104,111,114, 32,104, 97,115, 32,110, 111, 32,111, 98,108,105,103, 97,116,105,111,110, 32,116,111, 32,112,114,111,118,105,100,101, 32,109, 97,105,110,116,101, 110, 97,110, 99,101, 44, 32,115,117,112,112,111,114,116, 44, 32,117,112,100, 97,116,101,115, 44, 10, 45, 45, 32,101,110, 104, 97,110, 99,101,109,101,110,116,115, 44, 32,111,114, 32, 109,111,100,105,102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 10, 45, 45, 32, 86,101,114, 98, 97,116,105,109, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114,101,115, 101,110,116,115, 32, 97, 32,108,105,110,101, 32,116,114, 97, 110,115,108, 97,116,101,100, 32,100,105,114,101, 99,116,101, 100, 32,116,111, 32,116,104,101, 32, 98,105,110,100,105,110, 103, 32,102,105,108,101, 46, 10, 45, 45, 32, 84,104,101, 32, 102,111,108,108,111,119,105,110,103, 32,102,105,108,100,115, 32, 97,114,101, 32,115,116,111,114,101,100, 58, 10, 45, 45, 32, 32, 32,108,105,110,101, 32, 61, 32,108,105,110,101, 32, 116,101,120,116, 10, 99,108, 97,115,115, 86,101,114, 98, 97, 116,105,109, 32, 61, 32,123, 10, 32,108,105,110,101, 32, 61, 32, 39, 39, 44, 10, 9, 99,111,110,100, 32, 61, 32,110,105, 108, 44, 32, 32, 32, 32, 45, 45, 32, 99,111,110,100,105,116, 105,111,110, 58, 32,119,104,101,114,101, 32,116,111, 32,103, 101,110,101,114, 97,116,101, 32,116,104,101, 32, 99,111,100, 101, 32, 40,115, 61,115,117,112,111,114,116, 44, 32,114, 61, 114,101,103,105,115,116,101,114, 41, 10,125, 10, 99,108, 97, 115,115, 86,101,114, 98, 97,116,105,109, 46, 95, 95,105,110, 100,101,120, 32, 61, 32, 99,108, 97,115,115, 86,101,114, 98, 97,116,105,109, 10,115,101,116,109,101,116, 97,116, 97, 98, 108,101, 40, 99,108, 97,115,115, 86,101,114, 98, 97,116,105, 109, 44, 99,108, 97,115,115, 70,101, 97,116,117,114,101, 41, 10, 10, 45, 45, 32,112,114,101, 97,109, 98,108,101, 32,118, 101,114, 98, 97,116,105,109, 10,102,117,110, 99,116,105,111, 110, 32, 99,108, 97,115,115, 86,101,114, 98, 97,116,105,109, 58,112,114,101, 97,109, 98,108,101, 32, 40, 41, 10, 32,105, 102, 32,115,101,108,102, 46, 99,111,110,100, 32, 61, 61, 32, 39, 39, 32,116,104,101,110, 10, 32, 32,119,114,105,116,101, 40,115,101,108,102, 46,108,105,110,101, 41, 10, 32,101,110, 100, 10,101,110,100, 10, 10, 45, 45, 32,115,117,112,112,111, 114,116, 32, 99,111,100,101, 10,102,117,110, 99,116,105,111, 110, 32, 99,108, 97,115,115, 86,101,114, 98, 97,116,105,109, 58,115,117,112, 99,111,100,101, 32, 40, 41, 10, 32,105,102, 32,115,116,114,102,105,110,100, 40,115,101,108,102, 46, 99, 111,110,100, 44, 39,115, 39, 41, 32,116,104,101,110, 10, 32, 32,119,114,105,116,101, 40,115,101,108,102, 46,108,105,110, 101, 41, 10, 32, 32,119,114,105,116,101, 40, 39, 92,110, 39, 41, 10, 32,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 114,101,103,105,115,116,101,114, 32, 99,111,100,101, 10,102, 117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 86,101, 114, 98, 97,116,105,109, 58,114,101,103,105,115,116,101,114, 32, 40,112,114,101, 41, 10, 32,105,102, 32,115,116,114,102, 105,110,100, 40,115,101,108,102, 46, 99,111,110,100, 44, 39, 114, 39, 41, 32,116,104,101,110, 10, 32, 32,119,114,105,116, 101, 40,115,101,108,102, 46,108,105,110,101, 41, 10, 32,101, 110,100, 10,101,110,100, 10, 10, 10, 45, 45, 32, 80,114,105, 110,116, 32,109,101,116,104,111,100, 10,102,117,110, 99,116, 105,111,110, 32, 99,108, 97,115,115, 86,101,114, 98, 97,116, 105,109, 58,112,114,105,110,116, 32, 40,105,100,101,110,116, 44, 99,108,111,115,101, 41, 10, 32,112,114,105,110,116, 40, 105,100,101,110,116, 46, 46, 34, 86,101,114, 98, 97,116,105, 109,123, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101, 110,116, 46, 46, 34, 32,108,105,110,101, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,108,105,110,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110, 116, 46, 46, 34,125, 34, 46, 46, 99,108,111,115,101, 41, 10, 101,110,100, 10, 10, 10, 45, 45, 32, 73,110,116,101,114,110, 97,108, 32, 99,111,110,115,116,114,117, 99,116,111,114, 10, 102,117,110, 99,116,105,111,110, 32, 95, 86,101,114, 98, 97, 116,105,109, 32, 40,116, 41, 10, 32,115,101,116,109,101,116, 97,116, 97, 98,108,101, 40,116, 44, 99,108, 97,115,115, 86, 101,114, 98, 97,116,105,109, 41, 10, 32, 97,112,112,101,110, 100, 40,116, 41, 10, 32,114,101,116,117,114,110, 32,116, 10, 101,110,100, 10, 10, 45, 45, 32, 67,111,110,115,116,114,117, 99,116,111,114, 10, 45, 45, 32, 69,120,112,101, 99,116,115, 32, 97, 32,115,116,114,105,110,103, 32,114,101,112,114,101, 115,101,110,116,105,110,103, 32,116,104,101, 32,116,101,120, 116, 32,108,105,110,101, 10,102,117,110, 99,116,105,111,110, 32, 86,101,114, 98, 97,116,105,109, 32, 40,108, 44, 99,111, 110,100, 41, 10, 32,105,102, 32,115,116,114,115,117, 98, 40, 108, 44, 49, 44, 49, 41, 32, 61, 61, 32, 34, 39, 34, 32,116, 104,101,110, 10, 32, 32,108, 32, 61, 32,115,116,114,115,117, 98, 40,108, 44, 50, 41, 10, 32,101,108,115,101,105,102, 32, 115,116,114,115,117, 98, 40,108, 44, 49, 44, 49, 41, 32, 61, 61, 32, 39, 36, 39, 32,116,104,101,110, 10, 32, 32, 99,111, 110,100, 32, 61, 32, 39,115,114, 39, 32, 32, 32, 32, 32, 32, 32, 45, 45, 32,103,101,110,101,114, 97,116,101,115, 32,105, 110, 32, 98,111,116,104, 32,115,117,112,111,114,116, 32, 97, 110,100, 32,114,101,103,105,115,116,101,114, 32,102,114, 97, 103,109,101,110,116,115, 10, 32, 32,108, 32, 61, 32,115,116, 114,115,117, 98, 40,108, 44, 50, 41, 10, 32,101,110,100, 10, 32,114,101,116,117,114,110, 32, 95, 86,101,114, 98, 97,116, 105,109, 32,123, 10, 32, 32,108,105,110,101, 32, 61, 32,108, 44, 10, 32, 32, 99,111,110,100, 32, 61, 32, 99,111,110,100, 32,111,114, 32, 39, 39, 44, 10, 32,125, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/verbatim.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32, 99,111,100,101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114,105,116,116,101, 110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114, 32, 67, 101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 49, 57, 57, 57, 10, 45, 45, 32, 36, 73,100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111,100,101, 32, 105,115, 32,102,114,101,101, 32,115,111,102,116,119, 97,114, 101, 59, 32,121,111,117, 32, 99, 97,110, 32,114,101,100,105, 115,116,114,105, 98,117,116,101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109,111,100,105,102,121, 32,105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116,119, 97,114,101, 32,112,114,111,118,105,100,101,100, 32,104,101,114,101,117, 110,100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97, 110,100, 10, 45, 45, 32,116,104,101, 32, 97,117,116,104,111, 114, 32,104, 97,115, 32,110,111, 32,111, 98,108,105,103, 97, 116,105,111,110, 32,116,111, 32,112,114,111,118,105,100,101, 32,109, 97,105,110,116,101,110, 97,110, 99,101, 44, 32,115, 117,112,112,111,114,116, 44, 32,117,112,100, 97,116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,101,109,101,110, 116,115, 44, 32,111,114, 32,109,111,100,105,102,105, 99, 97, 116,105,111,110,115, 46, 10, 10, 45, 45, 32,103,108,111, 98, 97,108, 10, 99,111,100,101, 95,110, 32, 61, 32, 49, 10, 10, 45, 45, 32, 67,111,100,101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114,101,115,101,110,116,115, 32, 76,117, 97, 32, 99,111,100,101, 32,116,111, 32, 98,101, 32, 99,111, 109,112,105,108,101,100, 32, 97,110,100, 32,105,110, 99,108, 117,100,101,100, 10, 45, 45, 32,105,110, 32,116,104,101, 32, 105,110,105,116,105, 97,108,105,122, 97,116,105,111,110, 32, 102,117,110, 99,116,105,111,110, 46, 10, 45, 45, 32, 84,104, 101, 32,102,111,108,108,111,119,105,110,103, 32,102,105,101, 108,100,115, 32, 97,114,101, 32,115,116,111,114,101,100, 58, 10, 45, 45, 32, 32, 32,116,101,120,116, 32, 61, 32,116,101, 120,116, 32, 99,111,100,101, 10, 99,108, 97,115,115, 67,111, 100,101, 32, 61, 32,123, 10, 32,116,101,120,116, 32, 61, 32, 39, 39, 44, 10,125, 10, 99,108, 97,115,115, 67,111,100,101, 46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97,115, 115, 67,111,100,101, 10,115,101,116,109,101,116, 97,116, 97, 98,108,101, 40, 99,108, 97,115,115, 67,111,100,101, 44, 99, 108, 97,115,115, 70,101, 97,116,117,114,101, 41, 10, 10, 45, 45, 32,114,101,103,105,115,116,101,114, 32, 99,111,100,101, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67,111,100,101, 58,114,101,103,105,115,116,101,114, 32, 40, 112,114,101, 41, 10, 32,112,114,101, 32, 61, 32,112,114,101, 32,111,114, 32, 39, 39, 10, 32, 45, 45, 32, 99,108,101, 97, 110, 32, 76,117, 97, 32, 99,111,100,101, 10, 32,108,111, 99, 97,108, 32,115, 32, 61, 32, 99,108,101, 97,110, 40,115,101, 108,102, 46,116,101,120,116, 41, 10, 32,105,102, 32,110,111, 116, 32,115, 32,116,104,101,110, 10, 32, 32, 45, 45,112,114, 105,110,116, 40,115,101,108,102, 46,116,101,120,116, 41, 10, 32, 32,101,114,114,111,114, 40, 34,112, 97,114,115,101,114, 32,101,114,114,111,114, 32,105,110, 32,101,109, 98,101,100, 100,101,100, 32, 99,111,100,101, 34, 41, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,103,101,116, 32,102,105,114,115,116, 32,108,105,110,101, 10, 32,108,111, 99, 97,108, 32, 95, 44, 32, 95, 44, 32,102,105,114,115,116, 95,108,105,110,101, 61, 115,116,114,105,110,103, 46,102,105,110,100, 40,115,101,108, 102, 46,116,101,120,116, 44, 32, 34, 94, 40, 91, 94, 92,110, 92,114, 93, 42, 41, 34, 41, 10, 32,105,102, 32,115,116,114, 105,110,103, 46,102,105,110,100, 40,102,105,114,115,116, 95, 108,105,110,101, 44, 32, 34, 94, 37,115, 42, 37, 45, 37, 45, 34, 41, 32,116,104,101,110, 10, 9, 32,105,102, 32,115,116, 114,105,110,103, 46,102,105,110,100, 40,102,105,114,115,116, 95,108,105,110,101, 44, 32, 34, 94, 37, 45, 37, 45, 35, 35, 34, 41, 32,116,104,101,110, 10, 9, 9,102,105,114,115,116, 95,108,105,110,101, 32, 61, 32,115,116,114,105,110,103, 46, 103,115,117, 98, 40,102,105,114,115,116, 95,108,105,110,101, 44, 32, 34, 94, 37, 45, 37, 45, 35, 35, 34, 44, 32, 34, 34, 41, 10, 9, 9,105,102, 32,102,108, 97,103,115, 91, 39, 67, 39, 93, 32,116,104,101,110, 10, 9, 9, 9,115, 32, 61, 32, 115,116,114,105,110,103, 46,103,115,117, 98, 40,115, 44, 32, 34, 94, 37, 45, 37, 45, 35, 35, 91, 94, 92,110, 92,114, 93, 42, 92,110, 34, 44, 32, 34, 34, 41, 10, 9, 9,101,110,100, 10, 9, 32,101,110,100, 10, 32,101,108,115,101, 10, 32, 9, 102,105,114,115,116, 95,108,105,110,101, 32, 61, 32, 34, 34, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32, 99,111,110,118, 101,114,116, 32,116,111, 32, 67, 10, 32,111,117,116,112,117, 116, 40, 39, 92,110, 39, 46, 46,112,114,101, 46, 46, 39,123, 32, 47, 42, 32, 98,101,103,105,110, 32,101,109, 98,101,100, 100,101,100, 32,108,117, 97, 32, 99,111,100,101, 32, 42, 47, 92,110, 39, 41, 10, 32,111,117,116,112,117,116, 40,112,114, 101, 46, 46, 39, 32,105,110,116, 32,116,111,112, 32, 61, 32, 108,117, 97, 95,103,101,116,116,111,112, 40,116,111,108,117, 97, 95, 83, 41, 59, 39, 41, 10, 32,111,117,116,112,117,116, 40,112,114,101, 46, 46, 39, 32,115,116, 97,116,105, 99, 32, 117,110,115,105,103,110,101,100, 32, 99,104, 97,114, 32, 66, 91, 93, 32, 61, 32,123, 92,110, 32, 32, 32, 39, 41, 10, 32, 108,111, 99, 97,108, 32,116, 61,123,110, 61, 48,125, 10, 32, 108,111, 99, 97,108, 32, 98, 32, 61, 32,103,115,117, 98, 40, 115, 44, 39, 40, 46, 41, 39, 44,102,117,110, 99,116,105,111, 110, 32, 40, 99, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,108,111, 99, 97,108, 32,101, 32, 61, 32, 39, 39, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,116, 46,110, 61,116, 46, 110, 43, 49, 32,105,102, 32,116, 46,110, 61, 61, 49, 53, 32, 116,104,101,110, 32,116, 46,110, 61, 48, 32,101, 61, 39, 92, 110, 39, 46, 46,112,114,101, 46, 46, 39, 32, 32, 39, 32,101, 110,100, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,114,101, 116,117,114,110, 32,102,111,114,109, 97,116, 40, 39, 37, 51, 117, 44, 37,115, 39, 44,115,116,114, 98,121,116,101, 40, 99, 41, 44,101, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,101, 110,100, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 41, 10, 32,111,117,116,112,117,116, 40, 98, 46, 46,115,116,114, 98,121,116,101, 40, 34, 32, 34, 41, 41, 10, 32,111,117,116,112,117,116, 40, 39, 92,110, 39, 46, 46,112, 114,101, 46, 46, 39, 32,125, 59, 92,110, 39, 41, 10, 32,105, 102, 32,102,105,114,115,116, 95,108,105,110,101, 32, 97,110, 100, 32,102,105,114,115,116, 95,108,105,110,101, 32,126, 61, 32, 34, 34, 32,116,104,101,110, 10, 32, 9,111,117,116,112, 117,116, 40,112,114,101, 46, 46, 39, 32,116,111,108,117, 97, 95,100,111, 98,117,102,102,101,114, 40,116,111,108,117, 97, 95, 83, 44, 40, 99,104, 97,114, 42, 41, 66, 44,115,105,122, 101,111,102, 40, 66, 41, 44, 34,116,111,108,117, 97, 32,101, 109, 98,101,100,100,101,100, 58, 32, 39, 46, 46,102,105,114, 115,116, 95,108,105,110,101, 46, 46, 39, 34, 41, 59, 39, 41, 10, 32,101,108,115,101, 10, 32, 9,111,117,116,112,117,116, 40,112,114,101, 46, 46, 39, 32,116,111,108,117, 97, 95,100, 111, 98,117,102,102,101,114, 40,116,111,108,117, 97, 95, 83, 44, 40, 99,104, 97,114, 42, 41, 66, 44,115,105,122,101,111, 102, 40, 66, 41, 44, 34,116,111,108,117, 97, 58, 32,101,109, 98,101,100,100,101,100, 32, 76,117, 97, 32, 99,111,100,101, 32, 39, 46, 46, 99,111,100,101, 95,110, 46, 46, 39, 34, 41, 59, 39, 41, 10, 32,101,110,100, 10, 32,111,117,116,112,117, 116, 40,112,114,101, 46, 46, 39, 32,108,117, 97, 95,115,101, 116,116,111,112, 40,116,111,108,117, 97, 95, 83, 44, 32,116, 111,112, 41, 59, 39, 41, 10, 32,111,117,116,112,117,116, 40, 112,114,101, 46, 46, 39,125, 32, 47, 42, 32,101,110,100, 32, 111,102, 32,101,109, 98,101,100,100,101,100, 32,108,117, 97, 32, 99,111,100,101, 32, 42, 47, 92,110, 92,110, 39, 41, 10, 32, 99,111,100,101, 95,110, 32, 61, 32, 99,111,100,101, 95, 110, 32, 43, 49, 10,101,110,100, 10, 10, 10, 45, 45, 32, 80, 114,105,110,116, 32,109,101,116,104,111,100, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67,111,100,101, 58,112,114,105,110,116, 32, 40,105,100,101,110,116, 44, 99, 108,111,115,101, 41, 10, 32,112,114,105,110,116, 40,105,100, 101,110,116, 46, 46, 34, 67,111,100,101,123, 34, 41, 10, 32, 112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 116,101,120,116, 32, 61, 32, 91, 91, 34, 46, 46,115,101,108, 102, 46,116,101,120,116, 46, 46, 34, 93, 93, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 125, 34, 46, 46, 99,108,111,115,101, 41, 10,101,110,100, 10, 10, 10, 45, 45, 32, 73,110,116,101,114,110, 97,108, 32, 99, 111,110,115,116,114,117, 99,116,111,114, 10,102,117,110, 99, 116,105,111,110, 32, 95, 67,111,100,101, 32, 40,116, 41, 10, 32,115,101,116,109,101,116, 97,116, 97, 98,108,101, 40,116, 44, 99,108, 97,115,115, 67,111,100,101, 41, 10, 32, 97,112, 112,101,110,100, 40,116, 41, 10, 32,114,101,116,117,114,110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32, 67,111,110,115, 116,114,117, 99,116,111,114, 10, 45, 45, 32, 69,120,112,101, 99,116,115, 32, 97, 32,115,116,114,105,110,103, 32,114,101, 112,114,101,115,101,110,116,105,110,103, 32,116,104,101, 32, 99,111,100,101, 32,116,101,120,116, 10,102,117,110, 99,116, 105,111,110, 32, 67,111,100,101, 32, 40,108, 41, 10, 32,114, 101,116,117,114,110, 32, 95, 67,111,100,101, 32,123, 10, 32, 32,116,101,120,116, 32, 61, 32,108, 10, 32,125, 10,101,110, 100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/code.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32,116,121,112,101,100, 101,102, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114,105, 116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97, 114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71, 114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73,100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111, 100,101, 32,105,115, 32,102,114,101,101, 32,115,111,102,116, 119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32,114, 101,100,105,115,116,114,105, 98,117,116,101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109,111,100,105,102,121, 32,105, 116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116,119, 97,114,101, 32,112,114,111,118,105,100,101,100, 32,104,101, 114,101,117,110,100,101,114, 32,105,115, 32,111,110, 32, 97, 110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97,117, 116,104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98,108, 105,103, 97,116,105,111,110, 32,116,111, 32,112,114,111,118, 105,100,101, 32,109, 97,105,110,116,101,110, 97,110, 99,101, 44, 32,115,117,112,112,111,114,116, 44, 32,117,112,100, 97, 116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,101, 109,101,110,116,115, 44, 32,111,114, 32,109,111,100,105,102, 105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 10, 45, 45, 32, 84,121,112,101,100,101,102, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114,101,115,101,110,116,115, 32, 97, 32,116,121,112,101, 32,115,121,110,111,110,121,109, 46, 10, 45, 45, 32, 84,104,101, 32, 39,100,101, 32,102, 97, 99,116, 111, 39, 32,116,121,112,101, 32,114,101,112,108, 97, 99,101, 115, 32,116,104,101, 32,116,121,112,101,100,101,102, 32, 98, 101,102,111,114,101, 32,116,104,101, 10, 45, 45, 32,114,101, 109, 97,105,110,105,110,103, 32, 99,111,100,101, 32,105,115, 32,112, 97,114,115,101,100, 46, 10, 45, 45, 32, 84,104,101, 32,102,111,108,108,111,119,105,110,103, 32,102,105,101,108, 100,115, 32, 97,114,101, 32,115,116,111,114,101,100, 58, 10, 45, 45, 32, 32, 32,117,116,121,112,101, 32, 61, 32,116,121, 112,101,100,101,102, 32,110, 97,109,101, 10, 45, 45, 32, 32, 32,116,121,112,101, 32, 61, 32, 39,116,104,101, 32,102, 97, 99,116,111, 39, 32,116,121,112,101, 10, 45, 45, 32, 32, 32, 109,111,100, 32, 61, 32,109,111,100,105,102,105,101,114,115, 32,116,111, 32,116,104,101, 32, 39,100,101, 32,102, 97, 99, 116,111, 39, 32,116,121,112,101, 10, 99,108, 97,115,115, 84, 121,112,101,100,101,102, 32, 61, 32,123, 10, 32,117,116,121, 112,101, 32, 61, 32, 39, 39, 44, 10, 32,109,111,100, 32, 61, 32, 39, 39, 44, 10, 32,116,121,112,101, 32, 61, 32, 39, 39, 10,125, 10, 99,108, 97,115,115, 84,121,112,101,100,101,102, 46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97,115, 115, 84,121,112,101,100,101,102, 10, 10, 45, 45, 32, 80,114, 105,110,116, 32,109,101,116,104,111,100, 10,102,117,110, 99, 116,105,111,110, 32, 99,108, 97,115,115, 84,121,112,101,100, 101,102, 58,112,114,105,110,116, 32, 40,105,100,101,110,116, 44, 99,108,111,115,101, 41, 10, 32,112,114,105,110,116, 40, 105,100,101,110,116, 46, 46, 34, 84,121,112,101,100,101,102, 123, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110, 116, 46, 46, 34, 32,117,116,121,112,101, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,117,116,121,112,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101, 110,116, 46, 46, 34, 32,109,111,100, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,109,111,100, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,116,121,112,101, 32, 61, 32, 39, 34, 46, 46,115, 101,108,102, 46,116,121,112,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34,125, 34, 46, 46, 99,108,111,115,101, 41, 10,101,110,100, 10, 10, 45, 45, 32, 82,101,116,117,114,110, 32,105,116, 39, 115, 32,110,111,116, 32, 97, 32,118, 97,114,105, 97, 98,108, 101, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115, 115, 84,121,112,101,100,101,102, 58,105,115,118, 97,114,105, 97, 98,108,101, 32, 40, 41, 10, 32,114,101,116,117,114,110, 32,102, 97,108,115,101, 10,101,110,100, 10, 10, 45, 45, 32, 73,110,116,101,114,110, 97,108, 32, 99,111,110,115,116,114, 117, 99,116,111,114, 10,102,117,110, 99,116,105,111,110, 32, 95, 84,121,112,101,100,101,102, 32, 40,116, 41, 10, 32,115, 101,116,109,101,116, 97,116, 97, 98,108,101, 40,116, 44, 99, 108, 97,115,115, 84,121,112,101,100,101,102, 41, 10, 32,116, 46,116,121,112,101, 32, 61, 32,114,101,115,111,108,118,101, 95,116,101,109,112,108, 97,116,101, 95,116,121,112,101,115, 40,116, 46,116,121,112,101, 41, 10, 32, 97,112,112,101,110, 100,116,121,112,101,100,101,102, 40,116, 41, 10, 32,114,101, 116,117,114,110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32, 67,111,110,115,116,114,117, 99,116,111,114, 10, 45, 45, 32, 69,120,112,101, 99,116,115, 32,111,110,101, 32,115,116,114, 105,110,103, 32,114,101,112,114,101,115,101,110,116,105,110, 103, 32,116,104,101, 32,116,121,112,101, 32,100,101,102,105, 110,105,116,105,111,110, 46, 10,102,117,110, 99,116,105,111, 110, 32, 84,121,112,101,100,101,102, 32, 40,115, 41, 10, 32, 105,102, 32,115,116,114,102,105,110,100, 40,115,116,114,105, 110,103, 46,103,115,117, 98, 40,115, 44, 32, 39, 37, 98, 60, 62, 39, 44, 32, 39, 39, 41, 44, 39, 91, 37, 42, 38, 93, 39, 41, 32,116,104,101,110, 10, 32, 32,116,111,108,117, 97, 95, 101,114,114,111,114, 40, 34, 35,105,110,118, 97,108,105,100, 32,116,121,112,101,100,101,102, 58, 32,112,111,105,110,116, 101,114,115, 32, 40, 97,110,100, 32,114,101,102,101,114,101, 110, 99,101,115, 41, 32, 97,114,101, 32,110,111,116, 32,115, 117,112,112,111,114,116,101,100, 34, 41, 10, 32,101,110,100, 10, 32,108,111, 99, 97,108, 32,111, 32, 61, 32,123,109,111, 100, 32, 61, 32, 39, 39,125, 10, 32,105,102, 32,115,116,114, 105,110,103, 46,102,105,110,100, 40,115, 44, 32, 34, 91, 60, 62, 93, 34, 41, 32,116,104,101,110, 10, 32, 9, 95, 44, 95, 44,111, 46,116,121,112,101, 44,111, 46,117,116,121,112,101, 32, 61, 32,115,116,114,105,110,103, 46,102,105,110,100, 40, 115, 44, 32, 34, 94, 37,115, 42, 40, 91, 94, 60, 62, 93, 43, 37, 98, 60, 62, 91, 94, 37,115, 93, 42, 41, 37,115, 43, 40, 46, 45, 41, 36, 34, 41, 10, 32,101,108,115,101, 10, 32, 9, 108,111, 99, 97,108, 32,116, 32, 61, 32,115,112,108,105,116, 40,103,115,117, 98, 40,115, 44, 34, 37,115, 37,115, 42, 34, 44, 34, 32, 34, 41, 44, 34, 32, 34, 41, 10, 32, 9,111, 32, 61, 32,123, 10, 9, 32, 32,117,116,121,112,101, 32, 61, 32, 116, 91,116, 46,110, 93, 44, 10, 9, 32, 32,116,121,112,101, 32, 61, 32,116, 91,116, 46,110, 45, 49, 93, 44, 10, 9, 32, 32,109,111,100, 32, 61, 32, 99,111,110, 99, 97,116, 40,116, 44, 49, 44,116, 46,110, 45, 50, 41, 44, 10, 9, 32,125, 10, 32,101,110,100, 10, 32,114,101,116,117,114,110, 32, 95, 84, 121,112,101,100,101,102, 40,111, 41, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/typedef.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32, 99,111,110,116, 97, 105,110,101,114, 32, 97, 98,115,116,114, 97, 99,116, 32, 99, 108, 97,115,115, 10, 45, 45, 32, 87,114,105,116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114, 32, 67,101, 108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73,100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111,100,101, 32,105, 115, 32,102,114,101,101, 32,115,111,102,116,119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32,114,101,100,105,115, 116,114,105, 98,117,116,101, 32,105,116, 32, 97,110,100, 47, 111,114, 32,109,111,100,105,102,121, 32,105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116,119, 97,114,101, 32, 112,114,111,118,105,100,101,100, 32,104,101,114,101,117,110, 100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97, 115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97,110, 100, 10, 45, 45, 32,116,104,101, 32, 97,117,116,104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98,108,105,103, 97,116, 105,111,110, 32,116,111, 32,112,114,111,118,105,100,101, 32, 109, 97,105,110,116,101,110, 97,110, 99,101, 44, 32,115,117, 112,112,111,114,116, 44, 32,117,112,100, 97,116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,101,109,101,110,116, 115, 44, 32,111,114, 32,109,111,100,105,102,105, 99, 97,116, 105,111,110,115, 46, 10, 10, 45, 45, 32,116, 97, 98,108,101, 32,116,111, 32,115,116,111,114,101, 32,110, 97,109,101,115, 112, 97, 99,101,100, 32,116,121,112,101,100,101,102,115, 47, 101,110,117,109,115, 32,105,110, 32,103,108,111, 98, 97,108, 32,115, 99,111,112,101, 10,103,108,111, 98, 97,108, 95,116, 121,112,101,100,101,102,115, 32, 61, 32,123,125, 10,103,108, 111, 98, 97,108, 95,101,110,117,109,115, 32, 61, 32,123,125, 10, 10, 45, 45, 32, 67,111,110,116, 97,105,110,101,114, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114,101,115, 101,110,116,115, 32, 97, 32, 99,111,110,116, 97,105,110,101, 114, 32,111,102, 32,102,101, 97,116,117,114,101,115, 32,116, 111, 32, 98,101, 32, 98,111,117,110,100, 10, 45, 45, 32,116, 111, 32,108,117, 97, 46, 10, 99,108, 97,115,115, 67,111,110, 116, 97,105,110,101,114, 32, 61, 10,123, 10, 32, 99,117,114, 114, 32, 61, 32,110,105,108, 44, 10,125, 10, 99,108, 97,115, 115, 67,111,110,116, 97,105,110,101,114, 46, 95, 95,105,110, 100,101,120, 32, 61, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 10,115,101,116,109,101,116, 97,116, 97, 98,108,101, 40, 99,108, 97,115,115, 67,111,110,116, 97,105, 110,101,114, 44, 99,108, 97,115,115, 70,101, 97,116,117,114, 101, 41, 10, 10, 45, 45, 32,111,117,116,112,117,116, 32,116, 97,103,115, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 58,100,101, 99,108,116,121,112,101, 32, 40, 41, 10, 32,112,117,115,104, 40,115,101,108,102, 41, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105,108,101, 32,115,101,108,102, 91, 105, 93, 32,100,111, 10, 32, 32,115,101,108,102, 91,105, 93, 58,100,101, 99,108,116,121,112,101, 40, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32,112,111, 112, 40, 41, 10,101,110,100, 10, 10, 10, 45, 45, 32,119,114, 105,116,101, 32,115,117,112,112,111,114,116, 32, 99,111,100, 101, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115, 115, 67,111,110,116, 97,105,110,101,114, 58,115,117,112, 99, 111,100,101, 32, 40, 41, 10, 10, 9,105,102, 32,110,111,116, 32,115,101,108,102, 58, 99,104,101, 99,107, 95,112,117, 98, 108,105, 99, 95, 97, 99, 99,101,115,115, 40, 41, 32,116,104, 101,110, 10, 9, 9,114,101,116,117,114,110, 10, 9,101,110, 100, 10, 10, 32,112,117,115,104, 40,115,101,108,102, 41, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105, 108,101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10, 32, 32,105,102, 32,115,101,108,102, 91,105, 93, 58, 99,104,101, 99,107, 95,112,117, 98,108,105, 99, 95, 97, 99, 99,101,115, 115, 40, 41, 32,116,104,101,110, 10, 32, 32, 9,115,101,108, 102, 91,105, 93, 58,115,117,112, 99,111,100,101, 40, 41, 10, 32, 32,101,110,100, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32,112,111,112, 40, 41, 10,101,110, 100, 10, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97, 115,115, 67,111,110,116, 97,105,110,101,114, 58,104, 97,115, 118, 97,114, 32, 40, 41, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105,108,101, 32,115,101,108,102, 91, 105, 93, 32,100,111, 10, 32, 32,105,102, 32,115,101,108,102, 91,105, 93, 58,105,115,118, 97,114,105, 97, 98,108,101, 40, 41, 32,116,104,101,110, 10, 9, 9, 32,114,101,116,117,114, 110, 32, 49, 10, 9, 9,101,110,100, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 9,114,101,116,117, 114,110, 32, 48, 10,101,110,100, 10, 10, 45, 45, 32, 73,110, 116,101,114,110, 97,108, 32, 99,111,110,116, 97,105,110,101, 114, 32, 99,111,110,115,116,114,117, 99,116,111,114, 10,102, 117,110, 99,116,105,111,110, 32, 95, 67,111,110,116, 97,105, 110,101,114, 32, 40,115,101,108,102, 41, 10, 32,115,101,116, 109,101,116, 97,116, 97, 98,108,101, 40,115,101,108,102, 44, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 41, 10, 32,115,101,108,102, 46,110, 32, 61, 32, 48, 10, 32,115, 101,108,102, 46,116,121,112,101,100,101,102,115, 32, 61, 32, 123,116,111,108,117, 97, 95,110, 61, 48,125, 10, 32,115,101, 108,102, 46,117,115,101,114,116,121,112,101,115, 32, 61, 32, 123,125, 10, 32,115,101,108,102, 46,101,110,117,109,115, 32, 61, 32,123,116,111,108,117, 97, 95,110, 61, 48,125, 10, 32, 115,101,108,102, 46,108,110, 97,109,101,115, 32, 61, 32,123, 125, 10, 32,114,101,116,117,114,110, 32,115,101,108,102, 10, 101,110,100, 10, 10, 45, 45, 32,112,117,115,104, 32, 99,111, 110,116, 97,105,110,101,114, 10,102,117,110, 99,116,105,111, 110, 32,112,117,115,104, 32, 40,116, 41, 10, 9,116, 46,112, 114,111,120, 32, 61, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 10, 32, 99,108, 97, 115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114, 114, 32, 61, 32,116, 10,101,110,100, 10, 10, 45, 45, 32,112, 111,112, 32, 99,111,110,116, 97,105,110,101,114, 10,102,117, 110, 99,116,105,111,110, 32,112,111,112, 32, 40, 41, 10, 45, 45,112,114,105,110,116, 40, 34,110, 97,109,101, 34, 44, 99, 108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 46, 99, 117,114,114, 46,110, 97,109,101, 41, 10, 45, 45,102,111,114, 101, 97, 99,104, 40, 99,108, 97,115,115, 67,111,110,116, 97, 105,110,101,114, 46, 99,117,114,114, 46,117,115,101,114,116, 121,112,101,115, 44,112,114,105,110,116, 41, 10, 45, 45,112, 114,105,110,116, 40, 34, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 34, 41, 10, 32, 99,108, 97,115,115, 67, 111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 32, 61, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 46,112,114,111,120, 10,101,110,100, 10, 10, 45, 45, 32,103,101,116, 32, 99,117,114,114,101,110,116, 32,110, 97,109,101,115,112, 97, 99,101, 10,102,117,110, 99, 116,105,111,110, 32,103,101,116, 99,117,114,114,110, 97,109, 101,115,112, 97, 99,101, 32, 40, 41, 10, 9,114,101,116,117, 114,110, 32,103,101,116,110, 97,109,101,115,112, 97, 99,101, 40, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 41, 10,101,110,100, 10, 10, 45, 45, 32, 97,112,112,101,110,100, 32,116,111, 32, 99,117,114,114,101, 110,116, 32, 99,111,110,116, 97,105,110,101,114, 10,102,117, 110, 99,116,105,111,110, 32, 97,112,112,101,110,100, 32, 40, 116, 41, 10, 32,114,101,116,117,114,110, 32, 99,108, 97,115, 115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 58, 97,112,112,101,110,100, 40,116, 41, 10,101,110,100, 10, 10, 45, 45, 32, 97,112,112,101,110,100, 32,116,121,112,101, 100,101,102, 32,116,111, 32, 99,117,114,114,101,110,116, 32, 99,111,110,116, 97,105,110,101,114, 10,102,117,110, 99,116, 105,111,110, 32, 97,112,112,101,110,100,116,121,112,101,100, 101,102, 32, 40,116, 41, 10, 32,114,101,116,117,114,110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 58, 97,112,112,101,110,100,116,121,112,101, 100,101,102, 40,116, 41, 10,101,110,100, 10, 10, 45, 45, 32, 97,112,112,101,110,100, 32,117,115,101,114,116,121,112,101, 32,116,111, 32, 99,117,114,114,101,110,116, 32, 99,111,110, 116, 97,105,110,101,114, 10,102,117,110, 99,116,105,111,110, 32, 97,112,112,101,110,100,117,115,101,114,116,121,112,101, 32, 40,116, 41, 10, 32,114,101,116,117,114,110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117, 114,114, 58, 97,112,112,101,110,100,117,115,101,114,116,121, 112,101, 40,116, 41, 10,101,110,100, 10, 10, 45, 45, 32, 97, 112,112,101,110,100, 32,101,110,117,109, 32,116,111, 32, 99, 117,114,114,101,110,116, 32, 99,111,110,116, 97,105,110,101, 114, 10,102,117,110, 99,116,105,111,110, 32, 97,112,112,101, 110,100,101,110,117,109, 32, 40,116, 41, 10, 32,114,101,116, 117,114,110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105, 110,101,114, 46, 99,117,114,114, 58, 97,112,112,101,110,100, 101,110,117,109, 40,116, 41, 10,101,110,100, 10, 10, 45, 45, 32,115,117, 98,115,116,105,116,117,116,101, 32,116,121,112, 101,100,101,102, 10,102,117,110, 99,116,105,111,110, 32, 97, 112,112,108,121,116,121,112,101,100,101,102, 32, 40,109,111, 100, 44,116,121,112,101, 41, 10, 32,114,101,116,117,114,110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 58, 97,112,112,108,121,116,121,112,101, 100,101,102, 40,109,111,100, 44,116,121,112,101, 41, 10,101, 110,100, 10, 10, 45, 45, 32, 99,104,101, 99,107, 32,105,102, 32,105,115, 32,116,121,112,101, 10,102,117,110, 99,116,105, 111,110, 32,102,105,110,100,116,121,112,101, 32, 40,116,121, 112,101, 41, 10, 32,108,111, 99, 97,108, 32,116, 32, 61, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 58,102,105,110,100,116,121,112,101, 40,116, 121,112,101, 41, 10, 9,114,101,116,117,114,110, 32,116, 10, 101,110,100, 10, 10, 45, 45, 32, 99,104,101, 99,107, 32,105, 102, 32,105,115, 32,116,121,112,101,100,101,102, 10,102,117, 110, 99,116,105,111,110, 32,105,115,116,121,112,101,100,101, 102, 32, 40,116,121,112,101, 41, 10, 32,114,101,116,117,114, 110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101, 114, 46, 99,117,114,114, 58,105,115,116,121,112,101,100,101, 102, 40,116,121,112,101, 41, 10,101,110,100, 10, 10, 45, 45, 32,103,101,116, 32,102,117,108,108,116,121,112,101, 32, 40, 119,105,116,104, 32,110, 97,109,101,115,112, 97, 99,101, 41, 10,102,117,110, 99,116,105,111,110, 32,102,117,108,108,116, 121,112,101, 32, 40,116, 41, 10, 32,108,111, 99, 97,108, 32, 99,117,114,114, 32, 61, 32, 32, 99,108, 97,115,115, 67,111, 110,116, 97,105,110,101,114, 46, 99,117,114,114, 10, 9,119, 104,105,108,101, 32, 99,117,114,114, 32,100,111, 10, 9, 32, 105,102, 32, 99,117,114,114, 32,116,104,101,110, 10, 9, 9, 32,105,102, 32, 99,117,114,114, 46,116,121,112,101,100,101, 102,115, 32, 97,110,100, 32, 99,117,114,114, 46,116,121,112, 101,100,101,102,115, 91,116, 93, 32,116,104,101,110, 10, 9, 9, 32, 32,114,101,116,117,114,110, 32, 99,117,114,114, 46, 116,121,112,101,100,101,102,115, 91,116, 93, 10, 9, 9, 32, 101,108,115,101,105,102, 32, 99,117,114,114, 46,117,115,101, 114,116,121,112,101,115, 32, 97,110,100, 32, 99,117,114,114, 46,117,115,101,114,116,121,112,101,115, 91,116, 93, 32,116, 104,101,110, 10, 9, 9, 32, 32,114,101,116,117,114,110, 32, 99,117,114,114, 46,117,115,101,114,116,121,112,101,115, 91, 116, 93, 10, 9, 9, 9,101,110,100, 10, 9, 9,101,110,100, 10, 9, 32, 99,117,114,114, 32, 61, 32, 99,117,114,114, 46, 112,114,111,120, 10, 9,101,110,100, 10, 9,114,101,116,117, 114,110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32, 99,104, 101, 99,107,115, 32,105,102, 32,105,116, 32,114,101,113,117, 105,114,101,115, 32, 99,111,108,108,101, 99,116,105,111,110, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 58,114,101,113,117,105, 114,101, 99,111,108,108,101, 99,116,105,111,110, 32, 40,116, 41, 10, 32,112,117,115,104, 40,115,101,108,102, 41, 10, 32, 108,111, 99, 97,108, 32,105, 61, 49, 10, 9,108,111, 99, 97, 108, 32,114, 32, 61, 32,102, 97,108,115,101, 10, 32,119,104, 105,108,101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10, 32, 32,114, 32, 61, 32,115,101,108,102, 91,105, 93, 58,114, 101,113,117,105,114,101, 99,111,108,108,101, 99,116,105,111, 110, 40,116, 41, 32,111,114, 32,114, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 9,112,111,112, 40, 41, 10, 9,114,101,116,117,114,110, 32,114, 10,101,110,100, 10, 10, 10, 45, 45, 32,103,101,116, 32,110, 97,109,101,115, 97,112, 99,101, 10,102,117,110, 99,116,105,111,110, 32,103, 101,116,110, 97,109,101,115,112, 97, 99,101, 32, 40, 99,117, 114,114, 41, 10, 9,108,111, 99, 97,108, 32,110, 97,109,101, 115,112, 97, 99,101, 32, 61, 32, 39, 39, 10, 9,119,104,105, 108,101, 32, 99,117,114,114, 32,100,111, 10, 9, 32,105,102, 32, 99,117,114,114, 32, 97,110,100, 10, 9, 9, 32, 32, 32, 40, 32, 99,117,114,114, 46, 99,108, 97,115,115,116,121,112, 101, 32, 61, 61, 32, 39, 99,108, 97,115,115, 39, 32,111,114, 32, 99,117,114,114, 46, 99,108, 97,115,115,116,121,112,101, 32, 61, 61, 32, 39,110, 97,109,101,115,112, 97, 99,101, 39, 41, 10, 9, 9,116,104,101,110, 10, 9, 9, 32,110, 97,109, 101,115,112, 97, 99,101, 32, 61, 32, 40, 99,117,114,114, 46, 111,114,105,103,105,110, 97,108, 95,110, 97,109,101, 32,111, 114, 32, 99,117,114,114, 46,110, 97,109,101, 41, 32, 46, 46, 32, 39, 58, 58, 39, 32, 46, 46, 32,110, 97,109,101,115,112, 97, 99,101, 10, 9, 9, 32, 45, 45,110, 97,109,101,115,112, 97, 99,101, 32, 61, 32, 99,117,114,114, 46,110, 97,109,101, 32, 46, 46, 32, 39, 58, 58, 39, 32, 46, 46, 32,110, 97,109, 101,115,112, 97, 99,101, 10, 9, 9,101,110,100, 10, 9, 32, 99,117,114,114, 32, 61, 32, 99,117,114,114, 46,112,114,111, 120, 10, 9,101,110,100, 10, 9,114,101,116,117,114,110, 32, 110, 97,109,101,115,112, 97, 99,101, 10,101,110,100, 10, 10, 45, 45, 32,103,101,116, 32,110, 97,109,101,115,112, 97, 99, 101, 32, 40,111,110,108,121, 32,110, 97,109,101,115,112, 97, 99,101, 41, 10,102,117,110, 99,116,105,111,110, 32,103,101, 116,111,110,108,121,110, 97,109,101,115,112, 97, 99,101, 32, 40, 41, 10, 32,108,111, 99, 97,108, 32, 99,117,114,114, 32, 61, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101, 114, 46, 99,117,114,114, 10, 9,108,111, 99, 97,108, 32,110, 97,109,101,115,112, 97, 99,101, 32, 61, 32, 39, 39, 10, 9, 119,104,105,108,101, 32, 99,117,114,114, 32,100,111, 10, 9, 9,105,102, 32, 99,117,114,114, 46, 99,108, 97,115,115,116, 121,112,101, 32, 61, 61, 32, 39, 99,108, 97,115,115, 39, 32, 116,104,101,110, 10, 9, 9, 32,114,101,116,117,114,110, 32, 110, 97,109,101,115,112, 97, 99,101, 10, 9, 9,101,108,115, 101,105,102, 32, 99,117,114,114, 46, 99,108, 97,115,115,116, 121,112,101, 32, 61, 61, 32, 39,110, 97,109,101,115,112, 97, 99,101, 39, 32,116,104,101,110, 10, 9, 9, 32,110, 97,109, 101,115,112, 97, 99,101, 32, 61, 32, 99,117,114,114, 46,110, 97,109,101, 32, 46, 46, 32, 39, 58, 58, 39, 32, 46, 46, 32, 110, 97,109,101,115,112, 97, 99,101, 10, 9, 9,101,110,100, 10, 9, 32, 99,117,114,114, 32, 61, 32, 99,117,114,114, 46, 112,114,111,120, 10, 9,101,110,100, 10, 9,114,101,116,117, 114,110, 32,110, 97,109,101,115,112, 97, 99,101, 10,101,110, 100, 10, 10, 45, 45, 32, 99,104,101, 99,107, 32,105,102, 32, 105,115, 32,101,110,117,109, 10,102,117,110, 99,116,105,111, 110, 32,105,115,101,110,117,109, 32, 40,116,121,112,101, 41, 10, 32,114,101,116,117,114,110, 32, 99,108, 97,115,115, 67, 111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 58,105, 115,101,110,117,109, 40,116,121,112,101, 41, 10,101,110,100, 10, 10, 45, 45, 32, 97,112,112,101,110,100, 32,102,101, 97, 116,117,114,101, 32,116,111, 32, 99,111,110,116, 97,105,110, 101,114, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97, 115,115, 67,111,110,116, 97,105,110,101,114, 58, 97,112,112, 101,110,100, 32, 40,116, 41, 10, 32,115,101,108,102, 46,110, 32, 61, 32,115,101,108,102, 46,110, 32, 43, 32, 49, 10, 32, 115,101,108,102, 91,115,101,108,102, 46,110, 93, 32, 61, 32, 116, 10, 32,116, 46,112, 97,114,101,110,116, 32, 61, 32,115, 101,108,102, 10,101,110,100, 10, 10, 45, 45, 32, 97,112,112, 101,110,100, 32,116,121,112,101,100,101,102, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 58, 97,112,112,101,110,100,116,121,112, 101,100,101,102, 32, 40,116, 41, 10, 32,108,111, 99, 97,108, 32,110, 97,109,101,115,112, 97, 99,101, 32, 61, 32,103,101, 116,110, 97,109,101,115,112, 97, 99,101, 40, 99,108, 97,115, 115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 41, 10, 32,115,101,108,102, 46,116,121,112,101,100,101,102, 115, 46,116,111,108,117, 97, 95,110, 32, 61, 32,115,101,108, 102, 46,116,121,112,101,100,101,102,115, 46,116,111,108,117, 97, 95,110, 32, 43, 32, 49, 10, 32,115,101,108,102, 46,116, 121,112,101,100,101,102,115, 91,115,101,108,102, 46,116,121, 112,101,100,101,102,115, 46,116,111,108,117, 97, 95,110, 93, 32, 61, 32,116, 10, 9,115,101,108,102, 46,116,121,112,101, 100,101,102,115, 91,116, 46,117,116,121,112,101, 93, 32, 61, 32,110, 97,109,101,115,112, 97, 99,101, 32, 46, 46, 32,116, 46,117,116,121,112,101, 10, 9,103,108,111, 98, 97,108, 95, 116,121,112,101,100,101,102,115, 91,110, 97,109,101,115,112, 97, 99,101, 46, 46,116, 46,117,116,121,112,101, 93, 32, 61, 32,116, 10, 9,116, 46,102,116,121,112,101, 32, 61, 32,102, 105,110,100,116,121,112,101, 40,116, 46,116,121,112,101, 41, 32,111,114, 32,116, 46,116,121,112,101, 10, 9, 45, 45,112, 114,105,110,116, 40, 34, 97,112,112,101,110,100,105,110,103, 32,116,121,112,101,100,101,102, 32, 34, 46, 46,116, 46,117, 116,121,112,101, 46, 46, 34, 32, 97,115, 32, 34, 46, 46,110, 97,109,101,115,112, 97, 99,101, 46, 46,116, 46,117,116,121, 112,101, 46, 46, 34, 32,119,105,116,104, 32,102,116,121,112, 101, 32, 34, 46, 46,116, 46,102,116,121,112,101, 41, 10, 9, 97,112,112,101,110,100, 95,103,108,111, 98, 97,108, 95,116, 121,112,101, 40,110, 97,109,101,115,112, 97, 99,101, 46, 46, 116, 46,117,116,121,112,101, 41, 10, 9,105,102, 32,116, 46, 102,116,121,112,101, 32, 97,110,100, 32,105,115,101,110,117, 109, 40,116, 46,102,116,121,112,101, 41, 32,116,104,101,110, 10, 10, 9, 9,103,108,111, 98, 97,108, 95,101,110,117,109, 115, 91,110, 97,109,101,115,112, 97, 99,101, 46, 46,116, 46, 117,116,121,112,101, 93, 32, 61, 32,116,114,117,101, 10, 9, 101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 97,112,112, 101,110,100, 32,117,115,101,114,116,121,112,101, 58, 32,114, 101,116,117,114,110, 32,102,117,108,108, 32,116,121,112,101, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 58, 97,112,112,101,110, 100,117,115,101,114,116,121,112,101, 32, 40,116, 41, 10, 9, 108,111, 99, 97,108, 32, 99,111,110,116, 97,105,110,101,114, 10, 9,105,102, 32,116, 32, 61, 61, 32, 40,115,101,108,102, 46,111,114,105,103,105,110, 97,108, 95,110, 97,109,101, 32, 111,114, 32,115,101,108,102, 46,110, 97,109,101, 41, 32,116, 104,101,110, 10, 9, 9, 99,111,110,116, 97,105,110,101,114, 32, 61, 32,115,101,108,102, 46,112,114,111,120, 10, 9,101, 108,115,101, 10, 9, 9, 99,111,110,116, 97,105,110,101,114, 32, 61, 32,115,101,108,102, 10, 9,101,110,100, 10, 9,108, 111, 99, 97,108, 32,102,116, 32, 61, 32,103,101,116,110, 97, 109,101,115,112, 97, 99,101, 40, 99,111,110,116, 97,105,110, 101,114, 41, 32, 46, 46, 32,116, 10, 9, 99,111,110,116, 97, 105,110,101,114, 46,117,115,101,114,116,121,112,101,115, 91, 116, 93, 32, 61, 32,102,116, 10, 9, 95,117,115,101,114,116, 121,112,101, 91,102,116, 93, 32, 61, 32,102,116, 10, 9,114, 101,116,117,114,110, 32,102,116, 10,101,110,100, 10, 10, 45, 45, 32, 97,112,112,101,110,100, 32,101,110,117,109, 10,102, 117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67,111, 110,116, 97,105,110,101,114, 58, 97,112,112,101,110,100,101, 110,117,109, 32, 40,116, 41, 10, 32,108,111, 99, 97,108, 32, 110, 97,109,101,115,112, 97, 99,101, 32, 61, 32,103,101,116, 110, 97,109,101,115,112, 97, 99,101, 40, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 41, 10, 32,115,101,108,102, 46,101,110,117,109,115, 46,116,111, 108,117, 97, 95,110, 32, 61, 32,115,101,108,102, 46,101,110, 117,109,115, 46,116,111,108,117, 97, 95,110, 32, 43, 32, 49, 10, 32,115,101,108,102, 46,101,110,117,109,115, 91,115,101, 108,102, 46,101,110,117,109,115, 46,116,111,108,117, 97, 95, 110, 93, 32, 61, 32,116, 10, 9,103,108,111, 98, 97,108, 95, 101,110,117,109,115, 91,110, 97,109,101,115,112, 97, 99,101, 46, 46,116, 46,110, 97,109,101, 93, 32, 61, 32,116, 10,101, 110,100, 10, 10, 45, 45, 32,100,101,116,101,114,109,105,110, 101, 32,108,117, 97, 32,102,117,110, 99,116,105,111,110, 32, 110, 97,109,101, 32,111,118,101,114,108,111, 97,100, 10,102, 117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67,111, 110,116, 97,105,110,101,114, 58,111,118,101,114,108,111, 97, 100, 32, 40,108,110, 97,109,101, 41, 10, 32,105,102, 32,110, 111,116, 32,115,101,108,102, 46,108,110, 97,109,101,115, 91, 108,110, 97,109,101, 93, 32,116,104,101,110, 10, 32, 32,115, 101,108,102, 46,108,110, 97,109,101,115, 91,108,110, 97,109, 101, 93, 32, 61, 32, 48, 10, 32,101,108,115,101, 10, 32, 32, 115,101,108,102, 46,108,110, 97,109,101,115, 91,108,110, 97, 109,101, 93, 32, 61, 32,115,101,108,102, 46,108,110, 97,109, 101,115, 91,108,110, 97,109,101, 93, 32, 43, 32, 49, 10, 32, 101,110,100, 10, 32,114,101,116,117,114,110, 32,102,111,114, 109, 97,116, 40, 34, 37, 48, 50,100, 34, 44,115,101,108,102, 46,108,110, 97,109,101,115, 91,108,110, 97,109,101, 93, 41, 10,101,110,100, 10, 10, 45, 45, 32, 97,112,112,108,105,101, 115, 32,116,121,112,101,100,101,102, 58, 32,114,101,116,117, 114,110,115, 32,116,104,101, 32, 39,116,104,101, 32,102, 97, 99,116,111, 39, 32,109,111,100,105,102,105,101,114, 32, 97, 110,100, 32,116,121,112,101, 10,102,117,110, 99,116,105,111, 110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101, 114, 58, 97,112,112,108,121,116,121,112,101,100,101,102, 32, 40,109,111,100, 44,116,121,112,101, 41, 10, 9,105,102, 32, 103,108,111, 98, 97,108, 95,116,121,112,101,100,101,102,115, 91,116,121,112,101, 93, 32,116,104,101,110, 10, 9, 9, 45, 45,112,114,105,110,116, 40, 34,102,111,117,110,100, 32,116, 121,112,101,100,101,102, 32, 34, 46, 46,103,108,111, 98, 97, 108, 95,116,121,112,101,100,101,102,115, 91,116,121,112,101, 93, 46,116,121,112,101, 41, 10, 9, 9,108,111, 99, 97,108, 32,109,111,100, 49, 44, 32,116,121,112,101, 49, 32, 61, 32, 103,108,111, 98, 97,108, 95,116,121,112,101,100,101,102,115, 91,116,121,112,101, 93, 46,109,111,100, 44, 32,103,108,111, 98, 97,108, 95,116,121,112,101,100,101,102,115, 91,116,121, 112,101, 93, 46,102,116,121,112,101, 10, 9, 9,108,111, 99, 97,108, 32,109,111,100, 50, 44, 32,116,121,112,101, 50, 32, 61, 32, 97,112,112,108,121,116,121,112,101,100,101,102, 40, 109,111,100, 46, 46, 34, 32, 34, 46, 46,109,111,100, 49, 44, 32,116,121,112,101, 49, 41, 10, 9, 9, 45, 45,114,101,116, 117,114,110, 32,109,111,100, 50, 32, 46, 46, 32, 39, 32, 39, 32, 46, 46, 32,109,111,100, 49, 44, 32,116,121,112,101, 50, 10, 9, 9,114,101,116,117,114,110, 32,109,111,100, 50, 44, 32,116,121,112,101, 50, 10, 9,101,110,100, 10, 9,100,111, 32,114,101,116,117,114,110, 32,109,111,100, 44,116,121,112, 101, 32,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 99, 104,101, 99,107, 32,105,102, 32,105,116, 32,105,115, 32, 97, 32,116,121,112,101,100,101,102, 10,102,117,110, 99,116,105, 111,110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110, 101,114, 58,105,115,116,121,112,101,100,101,102, 32, 40,116, 121,112,101, 41, 10, 32,108,111, 99, 97,108, 32,101,110,118, 32, 61, 32,115,101,108,102, 10, 32,119,104,105,108,101, 32, 101,110,118, 32,100,111, 10, 32, 32,105,102, 32,101,110,118, 46,116,121,112,101,100,101,102,115, 32,116,104,101,110, 10, 32, 32, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32, 32, 32,119,104,105,108,101, 32,101,110,118, 46,116,121,112,101, 100,101,102,115, 91,105, 93, 32,100,111, 10, 32, 32, 32, 32, 105,102, 32,101,110,118, 46,116,121,112,101,100,101,102,115, 91,105, 93, 46,117,116,121,112,101, 32, 61, 61, 32,116,121, 112,101, 32,116,104,101,110, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32,114,101,116,117,114,110, 32,116,121,112,101, 10, 32, 32, 32, 32, 32, 32, 32, 32,101,110,100, 10, 32, 32, 32, 32, 32, 32, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32, 32, 32, 101,110,100, 10, 32, 32,101,110,100, 10, 32, 32,101,110,118, 32, 61, 32,101,110,118, 46,112, 97,114,101,110,116, 10, 32, 101,110,100, 10, 32,114,101,116,117,114,110, 32,110,105,108, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32, 102,105,110,100, 95,101,110,117,109, 95,118, 97,114, 40,118, 97,114, 41, 10, 10, 9,105,102, 32,116,111,110,117,109, 98, 101,114, 40,118, 97,114, 41, 32,116,104,101,110, 32,114,101, 116,117,114,110, 32,118, 97,114, 32,101,110,100, 10, 10, 9, 108,111, 99, 97,108, 32, 99, 32, 61, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 10, 9,119,104,105,108,101, 32, 99, 32,100,111, 10, 9, 9,108, 111, 99, 97,108, 32,110,115, 32, 61, 32,103,101,116,110, 97, 109,101,115,112, 97, 99,101, 40, 99, 41, 10, 9, 9,102,111, 114, 32,107, 44,118, 32,105,110, 32,112, 97,105,114,115, 40, 95,103,108,111, 98, 97,108, 95,101,110,117,109,115, 41, 32, 100,111, 10, 9, 9, 9,105,102, 32,109, 97,116, 99,104, 95, 116,121,112,101, 40,118, 97,114, 44, 32,118, 44, 32,110,115, 41, 32,116,104,101,110, 10, 9, 9, 9, 9,114,101,116,117, 114,110, 32,118, 10, 9, 9, 9,101,110,100, 10, 9, 9,101, 110,100, 10, 9, 9,105,102, 32, 99, 46, 98, 97,115,101, 32, 97,110,100, 32, 99, 46, 98, 97,115,101, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10, 9, 9, 9, 99, 32, 61, 32, 95, 103,108,111, 98, 97,108, 95, 99,108, 97,115,115,101,115, 91, 99, 58,102,105,110,100,116,121,112,101, 40, 99, 46, 98, 97, 115,101, 41, 93, 10, 9, 9,101,108,115,101, 10, 9, 9, 9, 99, 32, 61, 32,110,105,108, 10, 9, 9,101,110,100, 10, 9, 101,110,100, 10, 10, 9,114,101,116,117,114,110, 32,118, 97, 114, 10,101,110,100, 10, 10, 45, 45, 32, 99,104,101, 99,107, 32,105,102, 32,105,115, 32, 97, 32,114,101,103,105,115,116, 101,114,101,100, 32,116,121,112,101, 58, 32,114,101,116,117, 114,110, 32,102,117,108,108, 32,116,121,112,101, 32,111,114, 32,110,105,108, 10,102,117,110, 99,116,105,111,110, 32, 99, 108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 58,102, 105,110,100,116,121,112,101, 32, 40,116, 41, 10, 10, 9,116, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40, 116, 44, 32, 34, 61, 46, 42, 34, 44, 32, 34, 34, 41, 10, 9, 105,102, 32, 95, 98, 97,115,105, 99, 91,116, 93, 32,116,104, 101,110, 10, 9, 32,114,101,116,117,114,110, 32,116, 10, 9, 101,110,100, 10, 10, 9,108,111, 99, 97,108, 32, 95, 44, 95, 44,101,109, 32, 61, 32,115,116,114,105,110,103, 46,102,105, 110,100, 40,116, 44, 32, 34, 40, 91, 38, 37, 42, 93, 41, 37, 115, 42, 36, 34, 41, 10, 9,116, 32, 61, 32,115,116,114,105, 110,103, 46,103,115,117, 98, 40,116, 44, 32, 34, 37,115, 42, 40, 91, 38, 37, 42, 93, 41, 37,115, 42, 36, 34, 44, 32, 34, 34, 41, 10, 9,112, 32, 61, 32,115,101,108,102, 10, 9,119, 104,105,108,101, 32,112, 32, 97,110,100, 32,116,121,112,101, 40,112, 41, 61, 61, 39,116, 97, 98,108,101, 39, 32,100,111, 10, 9, 9,108,111, 99, 97,108, 32,115,116, 32, 61, 32,103, 101,116,110, 97,109,101,115,112, 97, 99,101, 40,112, 41, 10, 10, 9, 9,102,111,114, 32,105, 61, 95,103,108,111, 98, 97, 108, 95,116,121,112,101,115, 46,110, 44, 49, 44, 45, 49, 32, 100,111, 32, 45, 45, 32,105,110, 32,114,101,118,101,114,115, 101, 32,111,114,100,101,114, 10, 10, 9, 9, 9,105,102, 32, 109, 97,116, 99,104, 95,116,121,112,101, 40,116, 44, 32, 95, 103,108,111, 98, 97,108, 95,116,121,112,101,115, 91,105, 93, 44, 32,115,116, 41, 32,116,104,101,110, 10, 9, 9, 9, 9, 114,101,116,117,114,110, 32, 95,103,108,111, 98, 97,108, 95, 116,121,112,101,115, 91,105, 93, 46, 46, 40,101,109, 32,111, 114, 32, 34, 34, 41, 10, 9, 9, 9,101,110,100, 10, 9, 9, 101,110,100, 10, 9, 9,105,102, 32,112, 46, 98, 97,115,101, 32, 97,110,100, 32,112, 46, 98, 97,115,101, 32,126, 61, 32, 39, 39, 32, 97,110,100, 32,112, 46, 98, 97,115,101, 32,126, 61, 32,116, 32,116,104,101,110, 10, 9, 9, 9, 45, 45,112, 114,105,110,116, 40, 34,116,121,112,101, 32,105,115, 32, 34, 46, 46,116, 46, 46, 34, 44, 32,112, 32,105,115, 32, 34, 46, 46,112, 46, 98, 97,115,101, 46, 46, 34, 32,115,101,108,102, 46,116,121,112,101, 32,105,115, 32, 34, 46, 46,115,101,108, 102, 46,116,121,112,101, 46, 46, 34, 32,115,101,108,102, 46, 110, 97,109,101, 32,105,115, 32, 34, 46, 46,115,101,108,102, 46,110, 97,109,101, 41, 10, 9, 9, 9,112, 32, 61, 32, 95, 103,108,111, 98, 97,108, 95, 99,108, 97,115,115,101,115, 91, 112, 58,102,105,110,100,116,121,112,101, 40,112, 46, 98, 97, 115,101, 41, 93, 10, 9, 9,101,108,115,101, 10, 9, 9, 9, 112, 32, 61, 32,110,105,108, 10, 9, 9,101,110,100, 10, 9, 101,110,100, 10, 10, 9,114,101,116,117,114,110, 32,110,105, 108, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32, 97,112,112,101,110,100, 95,103,108,111, 98, 97,108, 95, 116,121,112,101, 40,116, 44, 32, 99,108, 97,115,115, 41, 10, 9, 95,103,108,111, 98, 97,108, 95,116,121,112,101,115, 46, 110, 32, 61, 32, 95,103,108,111, 98, 97,108, 95,116,121,112, 101,115, 46,110, 32, 43, 49, 10, 9, 95,103,108,111, 98, 97, 108, 95,116,121,112,101,115, 91, 95,103,108,111, 98, 97,108, 95,116,121,112,101,115, 46,110, 93, 32, 61, 32,116, 10, 9, 95,103,108,111, 98, 97,108, 95,116,121,112,101,115, 95,104, 97,115,104, 91,116, 93, 32, 61, 32, 49, 10, 9,105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 32, 97,112,112,101, 110,100, 95, 99,108, 97,115,115, 95,116,121,112,101, 40,116, 44, 32, 99,108, 97,115,115, 41, 32,101,110,100, 10,101,110, 100, 10, 10,102,117,110, 99,116,105,111,110, 32, 97,112,112, 101,110,100, 95, 99,108, 97,115,115, 95,116,121,112,101, 40, 116, 44, 99,108, 97,115,115, 41, 10, 9,105,102, 32, 95,103, 108,111, 98, 97,108, 95, 99,108, 97,115,115,101,115, 91,116, 93, 32,116,104,101,110, 10, 9, 9, 99,108, 97,115,115, 46, 102,108, 97,103,115, 32, 61, 32, 95,103,108,111, 98, 97,108, 95, 99,108, 97,115,115,101,115, 91,116, 93, 46,102,108, 97, 103,115, 10, 9, 9, 99,108, 97,115,115, 46,108,110, 97,109, 101,115, 32, 61, 32, 95,103,108,111, 98, 97,108, 95, 99,108, 97,115,115,101,115, 91,116, 93, 46,108,110, 97,109,101,115, 10, 9, 9,105,102, 32, 95,103,108,111, 98, 97,108, 95, 99, 108, 97,115,115,101,115, 91,116, 93, 46, 98, 97,115,101, 32, 97,110,100, 32, 40, 95,103,108,111, 98, 97,108, 95, 99,108, 97,115,115,101,115, 91,116, 93, 46, 98, 97,115,101, 32,126, 61, 32, 39, 39, 41, 32,116,104,101,110, 10, 9, 9, 9, 99, 108, 97,115,115, 46, 98, 97,115,101, 32, 61, 32, 95,103,108, 111, 98, 97,108, 95, 99,108, 97,115,115,101,115, 91,116, 93, 46, 98, 97,115,101, 32,111,114, 32, 99,108, 97,115,115, 46, 98, 97,115,101, 10, 9, 9,101,110,100, 10, 9,101,110,100, 10, 9, 95,103,108,111, 98, 97,108, 95, 99,108, 97,115,115, 101,115, 91,116, 93, 32, 61, 32, 99,108, 97,115,115, 10, 9, 99,108, 97,115,115, 46,102,108, 97,103,115, 32, 61, 32, 99, 108, 97,115,115, 46,102,108, 97,103,115, 32,111,114, 32,123, 125, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,109, 97,116, 99,104, 95,116,121,112,101, 40, 99,104,105, 108,100,116,121,112,101, 44, 32,114,101,103,116,121,112,101, 44, 32,115,116, 41, 10, 45, 45,112,114,105,110,116, 40, 34, 102,105,110,100,116,121,112,101, 32, 34, 46, 46, 99,104,105, 108,100,116,121,112,101, 46, 46, 34, 44, 32, 34, 46, 46,114, 101,103,116,121,112,101, 46, 46, 34, 44, 32, 34, 46, 46,115, 116, 41, 10, 9,108,111, 99, 97,108, 32, 98, 44,101, 32, 61, 32,115,116,114,105,110,103, 46,102,105,110,100, 40,114,101, 103,116,121,112,101, 44, 32, 99,104,105,108,100,116,121,112, 101, 44, 32, 45,115,116,114,105,110,103, 46,108,101,110, 40, 99,104,105,108,100,116,121,112,101, 41, 44, 32,116,114,117, 101, 41, 10, 9,105,102, 32, 98, 32,116,104,101,110, 10, 10, 9, 9,105,102, 32,101, 32, 61, 61, 32,115,116,114,105,110, 103, 46,108,101,110, 40,114,101,103,116,121,112,101, 41, 32, 97,110,100, 10, 9, 9, 9, 9, 40, 98, 32, 61, 61, 32, 49, 32,111,114, 32, 40,115,116,114,105,110,103, 46,115,117, 98, 40,114,101,103,116,121,112,101, 44, 32, 98, 45, 49, 44, 32, 98, 45, 49, 41, 32, 61, 61, 32, 39, 58, 39, 32, 97,110,100, 10, 9, 9, 9, 9,115,116,114,105,110,103, 46,115,117, 98, 40,114,101,103,116,121,112,101, 44, 32, 49, 44, 32, 98, 45, 49, 41, 32, 61, 61, 32,115,116,114,105,110,103, 46,115,117, 98, 40,115,116, 44, 32, 49, 44, 32, 98, 45, 49, 41, 41, 41, 32,116,104,101,110, 10, 9, 9, 9,114,101,116,117,114,110, 32,116,114,117,101, 10, 9, 9,101,110,100, 10, 9,101,110, 100, 10, 10, 9,114,101,116,117,114,110, 32,102, 97,108,115, 101, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,102,105,110,100,116,121,112,101, 95,111,110, 95, 99,104, 105,108,100,115, 40,115,101,108,102, 44, 32,116, 41, 10, 10, 9,108,111, 99, 97,108, 32,116, 99,104,105,108,100, 10, 9, 105,102, 32,115,101,108,102, 46, 99,108, 97,115,115,116,121, 112,101, 32, 61, 61, 32, 39, 99,108, 97,115,115, 39, 32,111, 114, 32,115,101,108,102, 46, 99,108, 97,115,115,116,121,112, 101, 32, 61, 61, 32, 39,110, 97,109,101,115,112, 97, 99,101, 39, 32,116,104,101,110, 10, 9, 9,102,111,114, 32,107, 44, 118, 32,105,110, 32,105,112, 97,105,114,115, 40,115,101,108, 102, 41, 32,100,111, 10, 9, 9, 9,105,102, 32,118, 46, 99, 108, 97,115,115,116,121,112,101, 32, 61, 61, 32, 39, 99,108, 97,115,115, 39, 32,111,114, 32,118, 46, 99,108, 97,115,115, 116,121,112,101, 32, 61, 61, 32, 39,110, 97,109,101,115,112, 97, 99,101, 39, 32,116,104,101,110, 10, 9, 9, 9, 9,105, 102, 32,118, 46,116,121,112,101,100,101,102,115, 32, 97,110, 100, 32,118, 46,116,121,112,101,100,101,102,115, 91,116, 93, 32,116,104,101,110, 10, 9, 9, 9, 9, 32,114,101,116,117, 114,110, 32,118, 46,116,121,112,101,100,101,102,115, 91,116, 93, 10, 9, 9, 9, 9,101,108,115,101,105,102, 32,118, 46, 117,115,101,114,116,121,112,101,115, 32, 97,110,100, 32,118, 46,117,115,101,114,116,121,112,101,115, 91,116, 93, 32,116, 104,101,110, 10, 9, 9, 9, 9, 32,114,101,116,117,114,110, 32,118, 46,117,115,101,114,116,121,112,101,115, 91,116, 93, 10, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9, 9,116, 99, 104,105,108,100, 32, 61, 32,102,105,110,100,116,121,112,101, 95,111,110, 95, 99,104,105,108,100,115, 40,118, 44, 32,116, 41, 10, 9, 9, 9, 9,105,102, 32,116, 99,104,105,108,100, 32,116,104,101,110, 32,114,101,116,117,114,110, 32,116, 99, 104,105,108,100, 32,101,110,100, 10, 9, 9, 9,101,110,100, 10, 9, 9,101,110,100, 10, 9,101,110,100, 10, 9,114,101, 116,117,114,110, 32,110,105,108, 10, 10,101,110,100, 10, 10, 102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67, 111,110,116, 97,105,110,101,114, 58,105,115,101,110,117,109, 32, 40,116,121,112,101, 41, 10, 32,105,102, 32,103,108,111, 98, 97,108, 95,101,110,117,109,115, 91,116,121,112,101, 93, 32,116,104,101,110, 10, 9,114,101,116,117,114,110, 32,116, 121,112,101, 10, 32,101,108,115,101, 10, 32, 9,114,101,116, 117,114,110, 32,102, 97,108,115,101, 10, 32,101,110,100, 10, 10, 32,108,111, 99, 97,108, 32, 98, 97,115,101,116,121,112, 101, 32, 61, 32,103,115,117, 98, 40,116,121,112,101, 44, 34, 94, 46, 42, 58, 58, 34, 44, 34, 34, 41, 10, 32,108,111, 99, 97,108, 32,101,110,118, 32, 61, 32,115,101,108,102, 10, 32, 119,104,105,108,101, 32,101,110,118, 32,100,111, 10, 32, 32, 105,102, 32,101,110,118, 46,101,110,117,109,115, 32,116,104, 101,110, 10, 32, 32, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32, 32, 32,119,104,105,108,101, 32,101,110,118, 46,101, 110,117,109,115, 91,105, 93, 32,100,111, 10, 32, 32, 32, 32, 105,102, 32,101,110,118, 46,101,110,117,109,115, 91,105, 93, 46,110, 97,109,101, 32, 61, 61, 32, 98, 97,115,101,116,121, 112,101, 32,116,104,101,110, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32,114,101,116,117,114,110, 32,116,114,117,101, 10, 32, 32, 32, 32, 32, 32, 32, 32,101,110,100, 10, 32, 32, 32, 32, 32, 32, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32, 32, 32, 101,110,100, 10, 32, 32,101,110,100, 10, 32, 32,101,110,118, 32, 61, 32,101,110,118, 46,112, 97,114,101,110,116, 10, 32, 101,110,100, 10, 32,114,101,116,117,114,110, 32,102, 97,108, 115,101, 10,101,110,100, 10, 10,109,101,116,104,111,100,105, 115,118,105,114,116,117, 97,108, 32, 61, 32,102, 97,108,115, 101, 32, 45, 45, 32, 97, 32,103,108,111, 98, 97,108, 10, 10, 45, 45, 32,112, 97,114,115,101, 32, 99,104,117,110,107, 10, 102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67, 111,110,116, 97,105,110,101,114, 58,100,111,112, 97,114,115, 101, 32, 40,115, 41, 10, 45, 45,112,114,105,110,116, 32, 40, 34,112, 97,114,115,101, 32, 34, 46, 46,115, 41, 10, 10, 32, 45, 45, 32,116,114,121, 32,116,104,101, 32,112, 97,114,115, 101,114, 32,104,111,111,107, 10, 32,100,111, 10, 32, 9,108, 111, 99, 97,108, 32,115,117, 98, 32, 61, 32,112, 97,114,115, 101,114, 95,104,111,111,107, 40,115, 41, 10, 32, 9,105,102, 32,115,117, 98, 32,116,104,101,110, 10, 32, 9, 9,114,101, 116,117,114,110, 32,115,117, 98, 10, 32, 9,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32,116, 104,101, 32,110,117,108,108, 32,115,116, 97,116,101,109,101, 110,116, 10, 32,100,111, 10, 32, 9,108,111, 99, 97,108, 32, 98, 44,101, 44, 99,111,100,101, 32, 61, 32,115,116,114,105, 110,103, 46,102,105,110,100, 40,115, 44, 32, 34, 94, 37,115, 42, 59, 34, 41, 10, 32, 9,105,102, 32, 98, 32,116,104,101, 110, 10, 32, 9, 9,114,101,116,117,114,110, 32,115,116,114, 115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 9,101,110, 100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32,101,109,112,116,121, 32,118,101,114, 98, 97,116,105,109, 32,108,105,110,101, 10, 32,100,111, 10, 32, 9,108,111, 99, 97,108, 32, 98, 44,101, 44, 99,111,100,101, 32, 61, 32,115, 116,114,105,110,103, 46,102,105,110,100, 40,115, 44, 32, 34, 94, 37,115, 42, 36, 92,110, 34, 41, 10, 32, 9,105,102, 32, 98, 32,116,104,101,110, 10, 32, 9, 9,114,101,116,117,114, 110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 9,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32, 76,117, 97, 32, 99,111,100,101, 10, 32,100,111, 10, 32, 32,108,111, 99, 97,108, 32, 98, 44,101, 44, 99,111,100,101, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 40, 37, 98, 92, 49, 92, 50, 41, 34, 41, 10, 32, 32,105,102, 32, 98, 32,116,104,101,110, 10, 32, 32, 32, 67,111,100,101, 40,115,116,114,115,117, 98, 40, 99,111,100,101, 44, 50, 44, 45, 50, 41, 41, 10, 32, 32, 32,114,101,116,117,114,110, 32,115,116,114,115,117, 98, 40, 115, 44,101, 43, 49, 41, 10, 32, 32,101,110,100, 10, 32,101, 110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32, 67, 32, 99, 111,100,101, 10, 32,100,111, 10, 32, 32,108,111, 99, 97,108, 32, 98, 44,101, 44, 99,111,100,101, 32, 61, 32,115,116,114, 102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 40, 37, 98, 92, 51, 92, 52, 41, 34, 41, 10, 32, 32,105,102, 32, 98, 32, 116,104,101,110, 10, 9, 99,111,100,101, 32, 61, 32, 39,123, 39, 46, 46,115,116,114,115,117, 98, 40, 99,111,100,101, 44, 50, 44, 45, 50, 41, 46, 46, 39, 92,110,125, 92,110, 39, 10, 9, 86,101,114, 98, 97,116,105,109, 40, 99,111,100,101, 44, 39,114, 39, 41, 32, 32, 32, 32, 32, 32, 32, 32, 45, 45, 32, 118,101,114, 98, 97,116,105,109, 32, 99,111,100,101, 32,102, 111,114, 32, 39,114, 39,101,103,105,115,116,101,114, 32,102, 114, 97,103,109,101,110,116, 10, 9,114,101,116,117,114,110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32, 67, 32, 99,111,100,101, 32,102,111,114, 32,112,114,101, 97,109, 98,108,101, 32,115,101, 99,116,105, 111,110, 10, 32,100,111, 10, 32, 9,108,111, 99, 97,108, 32, 98, 44,101, 44, 99,111,100,101, 32, 61, 32,115,116,114,105, 110,103, 46,102,105,110,100, 40,115, 44, 32, 34, 94, 37,115, 42, 40, 37, 98, 92, 53, 92, 54, 41, 34, 41, 10, 32, 9,105, 102, 32, 98, 32,116,104,101,110, 10, 32, 9, 9, 99,111,100, 101, 32, 61, 32,115,116,114,105,110,103, 46,115,117, 98, 40, 99,111,100,101, 44, 32, 50, 44, 32, 45, 50, 41, 46, 46, 34, 92,110, 34, 10, 9, 9, 86,101,114, 98, 97,116,105,109, 40, 99,111,100,101, 44, 32, 39, 39, 41, 10, 9, 9,114,101,116, 117,114,110, 32,115,116,114,105,110,103, 46,115,117, 98, 40, 115, 44, 32,101, 43, 49, 41, 10, 32, 9,101,110,100, 10, 32, 101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32,100,101, 102, 97,117,108,116, 95,112,114,111,112,101,114,116,121, 32, 100,105,114,101, 99,116,105,118,101, 10, 32,100,111, 10, 32, 9,108,111, 99, 97,108, 32, 98, 44,101, 44,112,116,121,112, 101, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 32, 34, 94, 37,115, 42, 84, 79, 76, 85, 65, 95, 80, 82, 79, 80, 69, 82, 84, 89, 95, 84, 89, 80, 69, 37,115, 42, 37, 40, 43, 37,115, 42, 40, 91, 94, 37, 41, 37,115, 93, 42, 41, 37,115, 42, 37, 41, 43, 37,115, 42, 59, 63, 34, 41, 10, 32, 9,105, 102, 32, 98, 32,116,104,101,110, 10, 32, 9, 9,105,102, 32, 110,111,116, 32,112,116,121,112,101, 32,111,114, 32,112,116, 121,112,101, 32, 61, 61, 32, 34, 34, 32,116,104,101,110, 10, 32, 9, 9, 9,112,116,121,112,101, 32, 61, 32, 34,100,101, 102, 97,117,108,116, 34, 10, 32, 9, 9,101,110,100, 10, 32, 9, 9,115,101,108,102, 58,115,101,116, 95,112,114,111,112, 101,114,116,121, 95,116,121,112,101, 40,112,116,121,112,101, 41, 10, 9, 32, 9,114,101,116,117,114,110, 32,115,116,114, 115,117, 98, 40,115, 44, 32,101, 43, 49, 41, 10, 32, 9,101, 110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116,114, 121, 32,112,114,111,116,101, 99,116,101,100, 95,100,101,115, 116,114,117, 99,116,111,114, 32,100,105,114,101, 99,116,105, 118,101, 10, 32,100,111, 10, 32, 9,108,111, 99, 97,108, 32, 98, 44,101, 32, 61, 32,115,116,114,105,110,103, 46,102,105, 110,100, 40,115, 44, 32, 34, 94, 37,115, 42, 84, 79, 76, 85, 65, 95, 80, 82, 79, 84, 69, 67, 84, 69, 68, 95, 68, 69, 83, 84, 82, 85, 67, 84, 79, 82, 37,115, 42, 59, 63, 34, 41, 10, 9,105,102, 32, 98, 32,116,104,101,110, 10, 9, 9,105,102, 32,115,101,108,102, 46,115,101,116, 95,112,114,111,116,101, 99,116,101,100, 95,100,101,115,116,114,117, 99,116,111,114, 32,116,104,101,110, 10, 9, 32, 9, 9,115,101,108,102, 58, 115,101,116, 95,112,114,111,116,101, 99,116,101,100, 95,100, 101,115,116,114,117, 99,116,111,114, 40,116,114,117,101, 41, 10, 9, 32, 9,101,110,100, 10, 32, 9, 9,114,101,116,117, 114,110, 32,115,116,114,115,117, 98, 40,115, 44, 32,101, 43, 49, 41, 10, 32, 9,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32, 39,101,120,116,101,114,110, 39, 32,107,101,121,119,111,114,100, 10, 32,100,111, 10, 32, 9,108,111, 99, 97,108, 32, 98, 44,101, 32, 61, 32,115,116, 114,105,110,103, 46,102,105,110,100, 40,115, 44, 32, 34, 94, 37,115, 42,101,120,116,101,114,110, 37,115, 43, 34, 41, 10, 32, 9,105,102, 32, 98, 32,116,104,101,110, 10, 9, 9, 45, 45, 32,100,111, 32,110,111,116,104,105,110,103, 10, 32, 9, 9,114,101,116,117,114,110, 32,115,116,114,115,117, 98, 40, 115, 44, 32,101, 43, 49, 41, 10, 32, 9,101,110,100, 10, 32, 101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32, 39,118, 105,114,116,117, 97,108, 39, 32,107,101,121,119,111,114,107, 100, 10, 32,100,111, 10, 32, 9,108,111, 99, 97,108, 32, 98, 44,101, 32, 61, 32,115,116,114,105,110,103, 46,102,105,110, 100, 40,115, 44, 32, 34, 94, 37,115, 42,118,105,114,116,117, 97,108, 37,115, 43, 34, 41, 10, 32, 9,105,102, 32, 98, 32, 116,104,101,110, 10, 32, 9, 9,109,101,116,104,111,100,105, 115,118,105,114,116,117, 97,108, 32, 61, 32,116,114,117,101, 10, 32, 9, 9,114,101,116,117,114,110, 32,115,116,114,115, 117, 98, 40,115, 44, 32,101, 43, 49, 41, 10, 32, 9,101,110, 100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32,108, 97, 98,101,108,115, 32, 40,112,117, 98,108,105, 99, 44, 32,112,114,105,118, 97,116,101, 44, 32,101,116, 99, 41, 10, 32,100,111, 10, 32, 9,108,111, 99, 97,108, 32, 98, 44, 101, 32, 61, 32,115,116,114,105,110,103, 46,102,105,110,100, 40,115, 44, 32, 34, 94, 37,115, 42, 37,119, 42, 37,115, 42, 58, 91, 94, 58, 93, 34, 41, 10, 32, 9,105,102, 32, 98, 32, 116,104,101,110, 10, 32, 9, 9,114,101,116,117,114,110, 32, 115,116,114,115,117, 98, 40,115, 44, 32,101, 41, 32, 45, 45, 32,112,114,101,115,101,114,118,101, 32,116,104,101, 32, 91, 94, 58, 93, 10, 32, 9,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32,109,111,100,117,108,101, 10, 32,100,111, 10, 32, 32,108,111, 99, 97,108, 32, 98, 44, 101, 44,110, 97,109,101, 44, 98,111,100,121, 32, 61, 32,115, 116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42,109, 111,100,117,108,101, 37,115, 37,115, 42, 40, 91, 95, 37,119, 93, 91, 95, 37,119, 93, 42, 41, 37,115, 42, 40, 37, 98,123, 125, 41, 37,115, 42, 34, 41, 10, 32, 32,105,102, 32, 98, 32, 116,104,101,110, 10, 32, 32, 32, 95, 99,117,114,114, 95, 99, 111,100,101, 32, 61, 32,115,116,114,115,117, 98, 40,115, 44, 98, 44,101, 41, 10, 32, 32, 32, 77,111,100,117,108,101, 40, 110, 97,109,101, 44, 98,111,100,121, 41, 10, 32, 32, 32,114, 101,116,117,114,110, 32,115,116,114,115,117, 98, 40,115, 44, 101, 43, 49, 41, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32,110, 97,109,101,115, 97,112, 99,101, 10, 32,100,111, 10, 32, 32,108,111, 99, 97, 108, 32, 98, 44,101, 44,110, 97,109,101, 44, 98,111,100,121, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42,110, 97,109,101,115,112, 97, 99,101, 37,115, 37, 115, 42, 40, 91, 95, 37,119, 93, 91, 95, 37,119, 93, 42, 41, 37,115, 42, 40, 37, 98,123,125, 41, 37,115, 42, 59, 63, 34, 41, 10, 32, 32,105,102, 32, 98, 32,116,104,101,110, 10, 32, 32, 32, 95, 99,117,114,114, 95, 99,111,100,101, 32, 61, 32, 115,116,114,115,117, 98, 40,115, 44, 98, 44,101, 41, 10, 32, 32, 32, 78, 97,109,101,115,112, 97, 99,101, 40,110, 97,109, 101, 44, 98,111,100,121, 41, 10, 32, 32, 32,114,101,116,117, 114,110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32,100,101,102,105,110,101, 10, 32, 100,111, 10, 32, 32,108,111, 99, 97,108, 32, 98, 44,101, 44, 110, 97,109,101, 32, 61, 32,115,116,114,102,105,110,100, 40, 115, 44, 34, 94, 37,115, 42, 35,100,101,102,105,110,101, 37, 115, 37,115, 42, 40, 91, 94, 37,115, 93, 42, 41, 91, 94, 92, 110, 93, 42, 92,110, 37,115, 42, 34, 41, 10, 32, 32,105,102, 32, 98, 32,116,104,101,110, 10, 32, 32, 32, 95, 99,117,114, 114, 95, 99,111,100,101, 32, 61, 32,115,116,114,115,117, 98, 40,115, 44, 98, 44,101, 41, 10, 32, 32, 32, 68,101,102,105, 110,101, 40,110, 97,109,101, 41, 10, 32, 32, 32,114,101,116, 117,114,110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32,101,110,117,109,101,114, 97, 116,101,115, 10, 10, 32,100,111, 10, 32, 32,108,111, 99, 97, 108, 32, 98, 44,101, 44,110, 97,109,101, 44, 98,111,100,121, 44,118, 97,114,110, 97,109,101, 32, 61, 32,115,116,114,102, 105,110,100, 40,115, 44, 34, 94, 37,115, 42,101,110,117,109, 37,115, 43, 40, 37, 83, 42, 41, 37,115, 42, 40, 37, 98,123, 125, 41, 37,115, 42, 40, 91, 94, 37,115, 59, 93, 42, 41, 37, 115, 42, 59, 63, 37,115, 42, 34, 41, 10, 32, 32,105,102, 32, 98, 32,116,104,101,110, 10, 32, 32, 32, 45, 45,101,114,114, 111,114, 40, 34, 35, 83,111,114,114,121, 44, 32,100,101, 99, 108, 97,114, 97,116,105,111,110, 32,111,102, 32,101,110,117, 109,115, 32, 97,110,100, 32,118, 97,114,105, 97, 98,108,101, 115, 32,111,110, 32,116,104,101, 32,115, 97,109,101, 32,115, 116, 97,116,101,109,101,110,116, 32,105,115, 32,110,111,116, 32,115,117,112,112,111,114,116,101,100, 46, 92,110, 68,101, 99,108, 97,114,101, 32,121,111,117,114, 32,118, 97,114,105, 97, 98,108,101, 32,115,101,112, 97,114, 97,116,101,108,121, 32, 40,101,120, 97,109,112,108,101, 58, 32, 39, 34, 46, 46, 110, 97,109,101, 46, 46, 34, 32, 34, 46, 46,118, 97,114,110, 97,109,101, 46, 46, 34, 59, 39, 41, 34, 41, 10, 32, 32, 32, 95, 99,117,114,114, 95, 99,111,100,101, 32, 61, 32,115,116, 114,115,117, 98, 40,115, 44, 98, 44,101, 41, 10, 32, 32, 32, 69,110,117,109,101,114, 97,116,101, 40,110, 97,109,101, 44, 98,111,100,121, 44,118, 97,114,110, 97,109,101, 41, 10, 32, 32, 32,114,101,116,117,114,110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32,101,110,100, 10, 32, 101,110,100, 10, 10, 45, 45, 32,100,111, 10, 45, 45, 32, 32, 108,111, 99, 97,108, 32, 98, 44,101, 44,110, 97,109,101, 44, 98,111,100,121, 32, 61, 32,115,116,114,102,105,110,100, 40, 115, 44, 34, 94, 37,115, 42,101,110,117,109, 37,115, 43, 40, 37, 83, 42, 41, 37,115, 42, 40, 37, 98,123,125, 41, 37,115, 42, 59, 63, 37,115, 42, 34, 41, 10, 45, 45, 32, 32,105,102, 32, 98, 32,116,104,101,110, 10, 45, 45, 32, 32, 32, 95, 99, 117,114,114, 95, 99,111,100,101, 32, 61, 32,115,116,114,115, 117, 98, 40,115, 44, 98, 44,101, 41, 10, 45, 45, 32, 32, 32, 69,110,117,109,101,114, 97,116,101, 40,110, 97,109,101, 44, 98,111,100,121, 41, 10, 45, 45, 32, 32,114,101,116,117,114, 110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 45, 45, 32, 32,101,110,100, 10, 45, 45, 32,101,110,100, 10, 10, 32,100,111, 10, 32, 32,108,111, 99, 97,108, 32, 98, 44,101, 44, 98,111,100,121, 44,110, 97,109,101, 32, 61, 32, 115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 116,121,112,101,100,101,102, 37,115, 43,101,110,117,109, 91, 94,123, 93, 42, 40, 37, 98,123,125, 41, 37,115, 42, 40, 91, 37,119, 95, 93, 91, 94, 37,115, 93, 42, 41, 37,115, 42, 59, 37,115, 42, 34, 41, 10, 32, 32,105,102, 32, 98, 32,116,104, 101,110, 10, 32, 32, 32, 95, 99,117,114,114, 95, 99,111,100, 101, 32, 61, 32,115,116,114,115,117, 98, 40,115, 44, 98, 44, 101, 41, 10, 32, 32, 32, 69,110,117,109,101,114, 97,116,101, 40,110, 97,109,101, 44, 98,111,100,121, 41, 10, 32, 32, 32, 114,101,116,117,114,110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32,101,110,100, 10, 32,101,110, 100, 10, 10, 32, 45, 45, 32,116,114,121, 32,111,112,101,114, 97,116,111,114, 10, 32,100,111, 10, 32, 32,108,111, 99, 97, 108, 32, 98, 44,101, 44,100,101, 99,108, 44,107,105,110,100, 44, 97,114,103, 44, 99,111,110,115,116, 32, 61, 32,115,116, 114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 40, 91, 95, 37,119, 93, 91, 95, 37,119, 37,115, 37, 42, 38, 58, 60, 62, 44, 93, 45, 37,115, 43,111,112,101,114, 97,116,111,114, 41, 37,115, 42, 40, 91, 94, 37,115, 93, 91, 94, 37,115, 93, 42, 41, 37,115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 40, 99, 63,111, 63,110, 63,115, 63,116, 63, 41, 37,115, 42, 59, 37,115, 42, 34, 41, 10, 32, 32,105,102, 32,110,111,116, 32, 98, 32,116,104,101,110, 10, 9, 9, 32, 45, 45, 32,116,114, 121, 32,105,110,108,105,110,101, 10, 32, 32, 32, 98, 44,101, 44,100,101, 99,108, 44,107,105,110,100, 44, 97,114,103, 44, 99,111,110,115,116, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 40, 91, 95, 37,119, 93, 91, 95, 37,119, 37,115, 37, 42, 38, 58, 60, 62, 44, 93, 45, 37, 115, 43,111,112,101,114, 97,116,111,114, 41, 37,115, 42, 40, 91, 94, 37,115, 93, 91, 94, 37,115, 93, 42, 41, 37,115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 40, 99, 63,111, 63,110, 63,115, 63,116, 63, 41, 91, 37,115, 92,110, 93, 42, 37, 98, 123,125, 37,115, 42, 59, 63, 37,115, 42, 34, 41, 10, 32, 32, 101,110,100, 10, 32, 32,105,102, 32,110,111,116, 32, 98, 32, 116,104,101,110, 10, 32, 32, 9, 45, 45, 32,116,114,121, 32, 99, 97,115,116, 32,111,112,101,114, 97,116,111,114, 10, 32, 32, 9, 98, 44,101, 44,100,101, 99,108, 44,107,105,110,100, 44, 97,114,103, 44, 99,111,110,115,116, 32, 61, 32,115,116, 114,102,105,110,100, 40,115, 44, 32, 34, 94, 37,115, 42, 40, 111,112,101,114, 97,116,111,114, 41, 37,115, 43, 40, 91, 37, 119, 95, 58, 37,100, 60, 62, 37, 42, 37, 38, 37,115, 93, 43, 41, 37,115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 40, 99, 63,111, 63,110, 63,115, 63,116, 63, 41, 34, 41, 59, 10, 32, 32, 9,105,102, 32, 98, 32,116,104,101,110, 10, 32, 32, 9, 9,108,111, 99, 97,108, 32, 95, 44,105,101, 32, 61, 32,115, 116,114,105,110,103, 46,102,105,110,100, 40,115, 44, 32, 34, 94, 37,115, 42, 37, 98,123,125, 34, 44, 32,101, 43, 49, 41, 10, 32, 32, 9, 9,105,102, 32,105,101, 32,116,104,101,110, 10, 32, 32, 9, 9, 9,101, 32, 61, 32,105,101, 10, 32, 32, 9, 9,101,110,100, 10, 32, 32, 9,101,110,100, 10, 32, 32, 101,110,100, 10, 32, 32,105,102, 32, 98, 32,116,104,101,110, 10, 32, 32, 32, 95, 99,117,114,114, 95, 99,111,100,101, 32, 61, 32,115,116,114,115,117, 98, 40,115, 44, 98, 44,101, 41, 10, 32, 32, 32, 79,112,101,114, 97,116,111,114, 40,100,101, 99,108, 44,107,105,110,100, 44, 97,114,103, 44, 99,111,110, 115,116, 41, 10, 32, 32, 32,114,101,116,117,114,110, 32,115, 116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32, 101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116, 114,121, 32,102,117,110, 99,116,105,111,110, 10, 32,100,111, 10, 32, 32, 45, 45,108,111, 99, 97,108, 32, 98, 44,101, 44, 100,101, 99,108, 44, 97,114,103, 44, 99,111,110,115,116, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37, 115, 42, 40, 91,126, 95, 37,119, 93, 91, 95, 64, 37,119, 37, 115, 37, 42, 38, 58, 60, 62, 93, 42, 91, 95, 37,119, 93, 41, 37,115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 40, 99, 63, 111, 63,110, 63,115, 63,116, 63, 41, 37,115, 42, 61, 63, 37, 115, 42, 48, 63, 37,115, 42, 59, 37,115, 42, 34, 41, 10, 32, 32,108,111, 99, 97,108, 32, 98, 44,101, 44,100,101, 99,108, 44, 97,114,103, 44, 99,111,110,115,116, 44,118,105,114,116, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 40, 91, 94, 37, 40, 92,110, 93, 43, 41, 37,115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 40, 99, 63,111, 63, 110, 63,115, 63,116, 63, 41, 37,115, 42, 40, 61, 63, 37,115, 42, 48, 63, 41, 37,115, 42, 59, 37,115, 42, 34, 41, 10, 32, 32,105,102, 32,110,111,116, 32, 98, 32,116,104,101,110, 10, 32, 32, 9, 45, 45, 32,116,114,121, 32,102,117,110, 99,116, 105,111,110, 32,119,105,116,104, 32,116,101,109,112,108, 97, 116,101, 10, 32, 32, 9, 98, 44,101, 44,100,101, 99,108, 44, 97,114,103, 44, 99,111,110,115,116, 32, 61, 32,115,116,114, 102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 40, 91,126, 95, 37,119, 93, 91, 95, 64, 37,119, 37,115, 37, 42, 38, 58, 60, 62, 93, 42, 91, 95, 37,119, 93, 37, 98, 60, 62, 41, 37, 115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 40, 99, 63,111, 63,110, 63,115, 63,116, 63, 41, 37,115, 42, 61, 63, 37,115, 42, 48, 63, 37,115, 42, 59, 37,115, 42, 34, 41, 10, 32, 32, 101,110,100, 10, 32, 32,105,102, 32,110,111,116, 32, 98, 32, 116,104,101,110, 10, 32, 32, 32, 45, 45, 32,116,114,121, 32, 97, 32,115,105,110,103,108,101, 32,108,101,116,116,101,114, 32,102,117,110, 99,116,105,111,110, 32,110, 97,109,101, 10, 32, 32, 32, 98, 44,101, 44,100,101, 99,108, 44, 97,114,103, 44, 99,111,110,115,116, 32, 61, 32,115,116,114,102,105,110, 100, 40,115, 44, 34, 94, 37,115, 42, 40, 91, 95, 37,119, 93, 41, 37,115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 40, 99, 63,111, 63,110, 63,115, 63,116, 63, 41, 37,115, 42, 59, 37, 115, 42, 34, 41, 10, 32, 32,101,110,100, 10, 32, 32,105,102, 32,110,111,116, 32, 98, 32,116,104,101,110, 10, 32, 32, 32, 45, 45, 32,116,114,121, 32,102,117,110, 99,116,105,111,110, 32,112,111,105,110,116,101,114, 10, 32, 32, 32, 98, 44,101, 44,100,101, 99,108, 44, 97,114,103, 44, 99,111,110,115,116, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 40, 91, 94, 37, 40, 59, 92,110, 93, 43, 37, 98, 40, 41, 41, 37,115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 59, 37,115, 42, 34, 41, 10, 32, 32, 32,105,102, 32, 98, 32, 116,104,101,110, 10, 32, 32, 32, 32,100,101, 99,108, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,100,101, 99,108, 44, 32, 34, 37, 40, 37,115, 42, 37, 42, 40, 91, 94, 37, 41, 93, 42, 41, 37,115, 42, 37, 41, 34, 44, 32, 34, 32, 37, 49, 32, 34, 41, 10, 32, 32, 32,101,110,100, 10, 32, 32, 101,110,100, 10, 32, 32,105,102, 32, 98, 32,116,104,101,110, 10, 32, 32, 9,105,102, 32,118,105,114,116, 32, 97,110,100, 32,115,116,114,105,110,103, 46,102,105,110,100, 40,118,105, 114,116, 44, 32, 34, 91, 61, 48, 93, 34, 41, 32,116,104,101, 110, 10, 32, 32, 9, 9,105,102, 32,115,101,108,102, 46,102, 108, 97,103,115, 32,116,104,101,110, 10, 32, 32, 9, 9, 9, 115,101,108,102, 46,102,108, 97,103,115, 46,112,117,114,101, 95,118,105,114,116,117, 97,108, 32, 61, 32,116,114,117,101, 10, 32, 32, 9, 9,101,110,100, 10, 32, 32, 9,101,110,100, 10, 32, 32, 32, 95, 99,117,114,114, 95, 99,111,100,101, 32, 61, 32,115,116,114,115,117, 98, 40,115, 44, 98, 44,101, 41, 10, 32, 32, 32, 70,117,110, 99,116,105,111,110, 40,100,101, 99,108, 44, 97,114,103, 44, 99,111,110,115,116, 41, 10, 32, 32, 32,114,101,116,117,114,110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32,101,110,100, 10, 32, 101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32,105,110, 108,105,110,101, 32,102,117,110, 99,116,105,111,110, 10, 32, 100,111, 10, 32, 32,108,111, 99, 97,108, 32, 98, 44,101, 44, 100,101, 99,108, 44, 97,114,103, 44, 99,111,110,115,116, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37, 115, 42, 40, 91, 94, 37, 40, 92,110, 93, 43, 41, 37,115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 40, 99, 63,111, 63,110, 63,115, 63,116, 63, 41, 91, 94, 59,123, 93, 42, 37, 98,123, 125, 37,115, 42, 59, 63, 37,115, 42, 34, 41, 10, 32, 32, 45, 45,108,111, 99, 97,108, 32, 98, 44,101, 44,100,101, 99,108, 44, 97,114,103, 44, 99,111,110,115,116, 32, 61, 32,115,116, 114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 40, 91, 126, 95, 37,119, 93, 91, 95, 64, 37,119, 37,115, 37, 42, 38, 58, 60, 62, 93, 42, 91, 95, 37,119, 62, 93, 41, 37,115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 40, 99, 63,111, 63,110, 63,115, 63,116, 63, 41, 91, 94, 59, 93, 42, 37, 98,123,125, 37,115, 42, 59, 63, 37,115, 42, 34, 41, 10, 32, 32,105,102, 32,110,111,116, 32, 98, 32,116,104,101,110, 10, 32, 32, 32, 45, 45, 32,116,114,121, 32, 97, 32,115,105,110,103,108,101, 32,108,101,116,116,101,114, 32,102,117,110, 99,116,105,111, 110, 32,110, 97,109,101, 10, 32, 32, 32, 98, 44,101, 44,100, 101, 99,108, 44, 97,114,103, 44, 99,111,110,115,116, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 40, 91, 95, 37,119, 93, 41, 37,115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 40, 99, 63,111, 63,110, 63,115, 63,116, 63, 41, 46, 45, 37, 98,123,125, 37,115, 42, 59, 63, 37,115, 42, 34, 41, 10, 32, 32,101,110,100, 10, 32, 32,105,102, 32, 98, 32,116,104,101,110, 10, 32, 32, 32, 95, 99,117,114,114, 95, 99,111,100,101, 32, 61, 32,115,116,114,115,117, 98, 40, 115, 44, 98, 44,101, 41, 10, 32, 32, 32, 70,117,110, 99,116, 105,111,110, 40,100,101, 99,108, 44, 97,114,103, 44, 99,111, 110,115,116, 41, 10, 32, 32, 32,114,101,116,117,114,110, 32, 115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32, 116,114,121, 32, 99,108, 97,115,115, 10, 32,100,111, 10, 9, 32,108,111, 99, 97,108, 32, 98, 44,101, 44,110, 97,109,101, 44, 98, 97,115,101, 44, 98,111,100,121, 10, 9, 9, 98, 97, 115,101, 32, 61, 32, 39, 39, 32, 98,111,100,121, 32, 61, 32, 39, 39, 10, 9, 9, 98, 44,101, 44,110, 97,109,101, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 99,108, 97,115,115, 37,115, 42, 40, 91, 95, 37,119, 93, 91, 95, 37,119, 64, 93, 42, 41, 37,115, 42, 59, 34, 41, 32, 32, 45, 45, 32,100,117,109,109,121, 32, 99,108, 97,115,115, 10, 9, 9,108,111, 99, 97,108, 32,100,117,109,109,121, 32, 61, 32,102, 97,108,115,101, 10, 9, 9,105,102, 32,110,111, 116, 32, 98, 32,116,104,101,110, 10, 9, 9, 9, 98, 44,101, 44,110, 97,109,101, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42,115,116,114,117, 99,116, 37, 115, 42, 40, 91, 95, 37,119, 93, 91, 95, 37,119, 64, 93, 42, 41, 37,115, 42, 59, 34, 41, 32, 32, 32, 32, 45, 45, 32,100, 117,109,109,121, 32,115,116,114,117, 99,116, 10, 9, 9, 9, 105,102, 32,110,111,116, 32, 98, 32,116,104,101,110, 10, 9, 9, 9, 9, 98, 44,101, 44,110, 97,109,101, 44, 98, 97,115, 101, 44, 98,111,100,121, 32, 61, 32,115,116,114,102,105,110, 100, 40,115, 44, 34, 94, 37,115, 42, 99,108, 97,115,115, 37, 115, 42, 40, 91, 95, 37,119, 93, 91, 95, 37,119, 64, 93, 42, 41, 37,115, 42, 40, 91, 94,123, 93, 45, 41, 37,115, 42, 40, 37, 98,123,125, 41, 37,115, 42, 34, 41, 10, 9, 9, 9, 9, 105,102, 32,110,111,116, 32, 98, 32,116,104,101,110, 10, 9, 9, 9, 9, 9, 98, 44,101, 44,110, 97,109,101, 44, 98, 97, 115,101, 44, 98,111,100,121, 32, 61, 32,115,116,114,102,105, 110,100, 40,115, 44, 34, 94, 37,115, 42,115,116,114,117, 99, 116, 37,115, 43, 40, 91, 95, 37,119, 93, 91, 95, 37,119, 64, 93, 42, 41, 37,115, 42, 40, 91, 94,123, 93, 45, 41, 37,115, 42, 40, 37, 98,123,125, 41, 37,115, 42, 34, 41, 10, 9, 9, 9, 9, 9,105,102, 32,110,111,116, 32, 98, 32,116,104,101, 110, 10, 9, 9, 9, 9, 9, 9, 98, 44,101, 44,110, 97,109, 101, 44, 98, 97,115,101, 44, 98,111,100,121, 32, 61, 32,115, 116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42,117, 110,105,111,110, 37,115, 42, 40, 91, 95, 37,119, 93, 91, 95, 37,119, 64, 93, 42, 41, 37,115, 42, 40, 91, 94,123, 93, 45, 41, 37,115, 42, 40, 37, 98,123,125, 41, 37,115, 42, 34, 41, 10, 9, 9, 9, 9, 9, 9,105,102, 32,110,111,116, 32, 98, 32,116,104,101,110, 10, 9, 9, 9, 9, 9, 9, 9, 98, 97, 115,101, 32, 61, 32, 39, 39, 10, 9, 9, 9, 9, 9, 9, 9, 98, 44,101, 44, 98,111,100,121, 44,110, 97,109,101, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42,116,121,112,101,100,101,102, 37,115, 37,115, 42,115,116, 114,117, 99,116, 37,115, 37,115, 42, 91, 95, 37,119, 93, 42, 37,115, 42, 40, 37, 98,123,125, 41, 37,115, 42, 40, 91, 95, 37,119, 93, 91, 95, 37,119, 64, 93, 42, 41, 37,115, 42, 59, 34, 41, 10, 9, 9, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9,101,108,115,101, 32,100,117,109,109,121, 32, 61, 32, 49, 32,101,110,100, 10, 9, 9,101,108,115,101, 32,100, 117,109,109,121, 32, 61, 32, 49, 32,101,110,100, 10, 9, 9, 105,102, 32, 98, 32,116,104,101,110, 10, 9, 9, 9,105,102, 32, 98, 97,115,101, 32,126, 61, 32, 39, 39, 32,116,104,101, 110, 10, 9, 9, 9, 9, 98, 97,115,101, 32, 61, 32,115,116, 114,105,110,103, 46,103,115,117, 98, 40, 98, 97,115,101, 44, 32, 34, 94, 37,115, 42, 58, 37,115, 42, 34, 44, 32, 34, 34, 41, 10, 9, 9, 9, 9, 98, 97,115,101, 32, 61, 32,115,116, 114,105,110,103, 46,103,115,117, 98, 40, 98, 97,115,101, 44, 32, 34, 37,115, 42,112,117, 98,108,105, 99, 37,115, 42, 34, 44, 32, 34, 34, 41, 10, 9, 9, 9, 9, 98, 97,115,101, 32, 61, 32,115,112,108,105,116, 40, 98, 97,115,101, 44, 32, 34, 44, 34, 41, 10, 9, 9, 9, 9, 45, 45,108,111, 99, 97,108, 32, 98, 44,101, 10, 9, 9, 9, 9, 45, 45, 98, 44,101, 44, 98, 97,115,101, 32, 61, 32,115,116,114,102,105,110,100, 40, 98, 97,115,101, 44, 34, 46, 45, 40, 91, 95, 37,119, 93, 91, 95, 37,119, 60, 62, 44, 58, 93, 42, 41, 36, 34, 41, 10, 9, 9, 9,101,108,115,101, 10, 9, 9, 9, 9, 98, 97,115,101, 32, 61, 32,123,125, 10, 9, 9, 9,101,110,100, 10, 9, 9, 9, 95, 99,117,114,114, 95, 99,111,100,101, 32, 61, 32,115, 116,114,115,117, 98, 40,115, 44, 98, 44,101, 41, 10, 9, 9, 9, 67,108, 97,115,115, 40,110, 97,109,101, 44, 98, 97,115, 101, 44, 98,111,100,121, 41, 10, 9, 9, 9,105,102, 32,110, 111,116, 32,100,117,109,109,121, 32,116,104,101,110, 10, 9, 9, 9, 9,118, 97,114, 98, 44,118, 97,114,101, 44,118, 97, 114,110, 97,109,101, 32, 61, 32,115,116,114,105,110,103, 46, 102,105,110,100, 40,115, 44, 32, 34, 94, 37,115, 42, 40, 91, 95, 37,119, 93, 43, 41, 37,115, 42, 59, 34, 44, 32,101, 43, 49, 41, 10, 9, 9, 9, 9,105,102, 32,118, 97,114, 98, 32, 116,104,101,110, 10, 9, 9, 9, 9, 9, 86, 97,114,105, 97, 98,108,101, 40,110, 97,109,101, 46, 46, 34, 32, 34, 46, 46, 118, 97,114,110, 97,109,101, 41, 10, 9, 9, 9, 9, 9,101, 32, 61, 32,118, 97,114,101, 10, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9,101,110,100, 10, 9, 9, 9,114,101,116,117, 114,110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 9, 9,101,110,100, 10, 9,101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32,116,121,112,101,100,101,102, 10, 32,100,111, 10, 32, 32,108,111, 99, 97,108, 32, 98, 44,101, 44,116,121,112,101,115, 32, 61, 32,115,116,114,102,105,110, 100, 40,115, 44, 34, 94, 37,115, 42,116,121,112,101,100,101, 102, 37,115, 37,115, 42, 40, 46, 45, 41, 37,115, 42, 59, 37, 115, 42, 34, 41, 10, 32, 32,105,102, 32, 98, 32,116,104,101, 110, 10, 32, 32, 32, 95, 99,117,114,114, 95, 99,111,100,101, 32, 61, 32,115,116,114,115,117, 98, 40,115, 44, 98, 44,101, 41, 10, 32, 32, 32, 84,121,112,101,100,101,102, 40,116,121, 112,101,115, 41, 10, 32, 32, 32,114,101,116,117,114,110, 32, 115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32, 116,114,121, 32,118, 97,114,105, 97, 98,108,101, 10, 32,100, 111, 10, 32, 32,108,111, 99, 97,108, 32, 98, 44,101, 44,100, 101, 99,108, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 40, 91, 95, 37,119, 93, 91, 95, 64, 37,115, 37,119, 37,100, 37, 42, 38, 58, 60, 62, 44, 93, 42, 91, 95, 37,119, 37,100, 93, 41, 37,115, 42, 59, 37,115, 42, 34, 41, 10, 32, 32,105,102, 32, 98, 32,116,104,101,110, 10, 32, 32, 32, 95, 99,117,114,114, 95, 99,111,100,101, 32, 61, 32,115,116,114,115,117, 98, 40,115, 44, 98, 44,101, 41, 10, 10, 9,108,111, 99, 97,108, 32,108,105,115,116, 32, 61, 32, 115,112,108,105,116, 95, 99, 95,116,111,107,101,110,115, 40, 100,101, 99,108, 44, 32, 34, 44, 34, 41, 10, 9, 86, 97,114, 105, 97, 98,108,101, 40,108,105,115,116, 91, 49, 93, 41, 10, 9,105,102, 32,108,105,115,116, 46,110, 32, 62, 32, 49, 32, 116,104,101,110, 10, 9, 9,108,111, 99, 97,108, 32, 95, 44, 95, 44,116,121,112,101, 32, 61, 32,115,116,114,102,105,110, 100, 40,108,105,115,116, 91, 49, 93, 44, 32, 34, 40, 46, 45, 41, 37,115, 43, 40, 91, 94, 37,115, 93, 42, 41, 36, 34, 41, 59, 10, 10, 9, 9,108,111, 99, 97,108, 32,105, 32, 61, 50, 59, 10, 9, 9,119,104,105,108,101, 32,108,105,115,116, 91, 105, 93, 32,100,111, 10, 9, 9, 9, 86, 97,114,105, 97, 98, 108,101, 40,116,121,112,101, 46, 46, 34, 32, 34, 46, 46,108, 105,115,116, 91,105, 93, 41, 10, 9, 9, 9,105, 61,105, 43, 49, 10, 9, 9,101,110,100, 10, 9,101,110,100, 10, 32, 32, 32, 45, 45, 86, 97,114,105, 97, 98,108,101, 40,100,101, 99, 108, 41, 10, 32, 32, 32,114,101,116,117,114,110, 32,115,116, 114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32,101, 110,100, 10, 32,101,110,100, 10, 10, 9, 45, 45, 32,116,114, 121, 32,115,116,114,105,110,103, 10, 32,100,111, 10, 32, 32, 108,111, 99, 97,108, 32, 98, 44,101, 44,100,101, 99,108, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37, 115, 42, 40, 91, 95, 37,119, 93, 63, 91, 95, 37,115, 37,119, 37,100, 93, 45, 99,104, 97,114, 37,115, 43, 91, 95, 64, 37, 119, 37,100, 93, 42, 37,115, 42, 37, 91, 37,115, 42, 37, 83, 43, 37,115, 42, 37, 93, 41, 37,115, 42, 59, 37,115, 42, 34, 41, 10, 32, 32,105,102, 32, 98, 32,116,104,101,110, 10, 32, 32, 32, 95, 99,117,114,114, 95, 99,111,100,101, 32, 61, 32, 115,116,114,115,117, 98, 40,115, 44, 98, 44,101, 41, 10, 32, 32, 32, 86, 97,114,105, 97, 98,108,101, 40,100,101, 99,108, 41, 10, 32, 32, 32,114,101,116,117,114,110, 32,115,116,114, 115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32,101,110, 100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32, 97,114,114, 97,121, 10, 32,100,111, 10, 32, 32,108,111, 99, 97,108, 32, 98, 44,101, 44,100,101, 99,108, 32, 61, 32, 115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 40, 91, 95, 37,119, 93, 91, 93, 91, 95, 64, 37,115, 37,119, 37,100, 37, 42, 38, 58, 93, 42, 91, 93, 95, 37,119, 37,100, 93, 41, 37,115, 42, 59, 37,115, 42, 34, 41, 10, 32, 32,105, 102, 32, 98, 32,116,104,101,110, 10, 32, 32, 32, 95, 99,117, 114,114, 95, 99,111,100,101, 32, 61, 32,115,116,114,115,117, 98, 40,115, 44, 98, 44,101, 41, 10, 32, 32, 32, 65,114,114, 97,121, 40,100,101, 99,108, 41, 10, 32, 32, 32,114,101,116, 117,114,110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,110,111, 32,109, 97,116, 99,104,105,110,103, 10, 32,105,102, 32,103,115,117, 98, 40,115, 44, 34, 37,115, 37,115, 42, 34, 44, 34, 34, 41, 32,126, 61, 32, 34, 34, 32, 116,104,101,110, 10, 32, 32, 95, 99,117,114,114, 95, 99,111, 100,101, 32, 61, 32,115, 10, 32, 32,101,114,114,111,114, 40, 34, 35,112, 97,114,115,101, 32,101,114,114,111,114, 34, 41, 10, 32,101,108,115,101, 10, 32, 32,114,101,116,117,114,110, 32, 34, 34, 10, 32,101,110,100, 10, 10,101,110,100, 10, 10, 102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67, 111,110,116, 97,105,110,101,114, 58,112, 97,114,115,101, 32, 40,115, 41, 10, 10, 9, 45, 45,115,101,108,102, 46, 99,117, 114,114, 95,109,101,109, 98,101,114, 95, 97, 99, 99,101,115, 115, 32, 61, 32,110,105,108, 10, 10, 32,119,104,105,108,101, 32,115, 32,126, 61, 32, 39, 39, 32,100,111, 10, 32, 32,115, 32, 61, 32,115,101,108,102, 58,100,111,112, 97,114,115,101, 40,115, 41, 10, 32, 32,109,101,116,104,111,100,105,115,118, 105,114,116,117, 97,108, 32, 61, 32,102, 97,108,115,101, 10, 32,101,110,100, 10,101,110,100, 10, 10, 10, 45, 45, 32,112, 114,111,112,101,114,116,121, 32,116,121,112,101,115, 10, 10, 102,117,110, 99,116,105,111,110, 32,103,101,116, 95,112,114, 111,112,101,114,116,121, 95,116,121,112,101, 40, 41, 10, 10, 9,114,101,116,117,114,110, 32, 99,108, 97,115,115, 67,111, 110,116, 97,105,110,101,114, 46, 99,117,114,114, 58,103,101, 116, 95,112,114,111,112,101,114,116,121, 95,116,121,112,101, 40, 41, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111, 110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101, 114, 58,115,101,116, 95,112,114,111,112,101,114,116,121, 95, 116,121,112,101, 40,112,116,121,112,101, 41, 10, 9,112,116, 121,112,101, 32, 61, 32,115,116,114,105,110,103, 46,103,115, 117, 98, 40,112,116,121,112,101, 44, 32, 34, 94, 37,115, 42, 34, 44, 32, 34, 34, 41, 10, 9,112,116,121,112,101, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,112,116, 121,112,101, 44, 32, 34, 37,115, 42, 36, 34, 44, 32, 34, 34, 41, 10, 10, 9,115,101,108,102, 46,112,114,111,112,101,114, 116,121, 95,116,121,112,101, 32, 61, 32,112,116,121,112,101, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 58, 103,101,116, 95,112,114,111,112,101,114,116,121, 95,116,121, 112,101, 40, 41, 10, 9,114,101,116,117,114,110, 32,115,101, 108,102, 46,112,114,111,112,101,114,116,121, 95,116,121,112, 101, 32,111,114, 32, 40,115,101,108,102, 46,112, 97,114,101, 110,116, 32, 97,110,100, 32,115,101,108,102, 46,112, 97,114, 101,110,116, 58,103,101,116, 95,112,114,111,112,101,114,116, 121, 95,116,121,112,101, 40, 41, 41, 32,111,114, 32, 34,100, 101,102, 97,117,108,116, 34, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/container.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32,112, 97, 99,107, 97, 103,101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114,105, 116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97, 114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71, 114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73,100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111, 100,101, 32,105,115, 32,102,114,101,101, 32,115,111,102,116, 119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32,114, 101,100,105,115,116,114,105, 98,117,116,101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109,111,100,105,102,121, 32,105, 116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116,119, 97,114,101, 32,112,114,111,118,105,100,101,100, 32,104,101, 114,101,117,110,100,101,114, 32,105,115, 32,111,110, 32, 97, 110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97,117, 116,104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98,108, 105,103, 97,116,105,111,110, 32,116,111, 32,112,114,111,118, 105,100,101, 32,109, 97,105,110,116,101,110, 97,110, 99,101, 44, 32,115,117,112,112,111,114,116, 44, 32,117,112,100, 97, 116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,101, 109,101,110,116,115, 44, 32,111,114, 32,109,111,100,105,102, 105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 10, 45, 45, 32, 80, 97, 99,107, 97,103,101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114,101,115,101,110,116,115, 32,116, 104,101, 32,119,104,111,108,101, 32,112, 97, 99,107, 97,103, 101, 32, 98,101,105,110,103, 32, 98,111,117,110,100, 46, 10, 45, 45, 32, 84,104,101, 32,102,111,108,108,111,119,105,110, 103, 32,102,105,101,108,100,115, 32, 97,114,101, 32,115,116, 111,114,101,100, 58, 10, 45, 45, 32, 32, 32, 32,123,105,125, 32, 61, 32,108,105,115,116, 32,111,102, 32,111, 98,106,101, 99,116,115, 32,105,110, 32,116,104,101, 32,112, 97, 99,107, 97,103,101, 46, 10, 99,108, 97,115,115, 80, 97, 99,107, 97, 103,101, 32, 61, 32,123, 10, 32, 99,108, 97,115,115,116,121, 112,101, 32, 61, 32, 39,112, 97, 99,107, 97,103,101, 39, 10, 125, 10, 99,108, 97,115,115, 80, 97, 99,107, 97,103,101, 46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97,115,115, 80, 97, 99,107, 97,103,101, 10,115,101,116,109,101,116, 97, 116, 97, 98,108,101, 40, 99,108, 97,115,115, 80, 97, 99,107, 97,103,101, 44, 99,108, 97,115,115, 67,111,110,116, 97,105, 110,101,114, 41, 10, 10, 45, 45, 32, 80,114,105,110,116, 32, 109,101,116,104,111,100, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 80, 97, 99,107, 97,103,101, 58,112, 114,105,110,116, 32, 40, 41, 10, 32,112,114,105,110,116, 40, 34, 80, 97, 99,107, 97,103,101, 58, 32, 34, 46, 46,115,101, 108,102, 46,110, 97,109,101, 41, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105,108,101, 32,115,101,108, 102, 91,105, 93, 32,100,111, 10, 32, 32,115,101,108,102, 91, 105, 93, 58,112,114,105,110,116, 40, 34, 34, 44, 34, 34, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 80, 97, 99,107, 97,103,101, 58,112,114, 101,112,114,111, 99,101,115,115, 32, 40, 41, 10, 10, 32, 45, 45, 32, 97,118,111,105,100, 32,112,114,101,112,114,111, 99, 101,115,115,105,110,103, 32,101,109, 98,101,100,100,101,100, 32, 76,117, 97, 32, 99,111,100,101, 10, 32,108,111, 99, 97, 108, 32, 76, 32, 61, 32,123,125, 10, 32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108, 102, 46, 99,111,100,101, 44, 34, 92,110, 37,115, 42, 37, 36, 37, 91, 34, 44, 34, 92, 49, 34, 41, 32, 45, 45, 32,100,101, 97,108, 32,119,105,116,104, 32,101,109, 98,101,100,100,101, 100, 32,108,117, 97, 32, 99,111,100,101, 10, 32,115,101,108, 102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115, 101,108,102, 46, 99,111,100,101, 44, 34, 92,110, 37,115, 42, 37, 36, 37, 93, 34, 44, 34, 92, 50, 34, 41, 10, 32,115,101, 108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40, 115,101,108,102, 46, 99,111,100,101, 44, 34, 40, 37, 98, 92, 49, 92, 50, 41, 34, 44, 32, 32, 32, 32, 32, 32, 32,102,117, 110, 99,116,105,111,110, 32, 40, 99, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,116,105, 110,115,101,114,116, 40, 76, 44, 99, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,114,101, 116,117,114,110, 32, 34, 92,110, 35, 91, 34, 46, 46,103,101, 116,110, 40, 76, 41, 46, 46, 34, 93, 35, 34, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,101,110, 100, 41, 10, 32, 45, 45, 32, 97,118,111,105,100, 32,112,114, 101,112,114,111, 99,101,115,115,105,110,103, 32,101,109, 98, 101,100,100,101,100, 32, 67, 32, 99,111,100,101, 10, 32,108, 111, 99, 97,108, 32, 67, 32, 61, 32,123,125, 10, 32,115,101, 108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40, 115,101,108,102, 46, 99,111,100,101, 44, 34, 92,110, 37,115, 42, 37, 36, 37, 60, 34, 44, 34, 92, 51, 34, 41, 32, 45, 45, 32,100,101, 97,108, 32,119,105,116,104, 32,101,109, 98,101, 100,100,101,100, 32, 67, 32, 99,111,100,101, 10, 32,115,101, 108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40, 115,101,108,102, 46, 99,111,100,101, 44, 34, 92,110, 37,115, 42, 37, 36, 37, 62, 34, 44, 34, 92, 52, 34, 41, 10, 32,115, 101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 40, 37, 98, 92, 51, 92, 52, 41, 34, 44, 32, 32, 32, 32, 32, 32, 32,102, 117,110, 99,116,105,111,110, 32, 40, 99, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,116, 105,110,115,101,114,116, 40, 67, 44, 99, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,114, 101,116,117,114,110, 32, 34, 92,110, 35, 60, 34, 46, 46,103, 101,116,110, 40, 67, 41, 46, 46, 34, 62, 35, 34, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,101, 110,100, 41, 10, 32, 45, 45, 32, 97,118,111,105,100, 32,112, 114,101,112,114,111, 99,101,115,115,105,110,103, 32,101,109, 98,101,100,100,101,100, 32, 67, 32, 99,111,100,101, 10, 32, 115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 92,110, 37,115, 42, 37, 36, 37,123, 34, 44, 34, 92, 53, 34, 41, 32, 45, 45, 32,100,101, 97,108, 32,119,105,116,104, 32,101,109, 98,101,100,100,101,100, 32, 67, 32, 99,111,100,101, 10, 32, 115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 92,110, 37,115, 42, 37, 36, 37,125, 34, 44, 34, 92, 54, 34, 41, 10, 32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115, 117, 98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 40, 37, 98, 92, 53, 92, 54, 41, 34, 44, 32, 32, 32, 32, 32, 32, 32,102,117,110, 99,116,105,111,110, 32, 40, 99, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,116,105,110,115,101,114,116, 40, 67, 44, 99, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,114,101,116,117,114,110, 32, 34, 92,110, 35, 60, 34, 46, 46,103,101,116,110, 40, 67, 41, 46, 46, 34, 62, 35, 34, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,101,110,100, 41, 10, 10, 32, 45, 45,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108, 102, 46, 99,111,100,101, 44, 34, 92,110, 37,115, 42, 35, 91, 94,100, 93, 91, 94, 92,110, 93, 42, 92,110, 34, 44, 32, 34, 92,110, 92,110, 34, 41, 32, 45, 45, 32,101,108,105,109,105, 110, 97,116,101, 32,112,114,101,112,114,111, 99,101,115,115, 111,114, 32,100,105,114,101, 99,116,105,118,101,115, 32,116, 104, 97,116, 32,100,111,110, 39,116, 32,115,116, 97,114,116, 32,119,105,116,104, 32, 39,100, 39, 10, 32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101, 108,102, 46, 99,111,100,101, 44, 34, 92,110, 91, 32, 92,116, 93, 42, 35, 91, 32, 92,116, 93, 42, 91, 94,100, 37, 60, 37, 91, 93, 34, 44, 32, 34, 92,110, 47, 47, 34, 41, 32, 45, 45, 32,101,108,105,109,105,110, 97,116,101, 32,112,114,101,112, 114,111, 99,101,115,115,111,114, 32,100,105,114,101, 99,116, 105,118,101,115, 32,116,104, 97,116, 32,100,111,110, 39,116, 32,115,116, 97,114,116, 32,119,105,116,104, 32, 39,100, 39, 10, 10, 32, 45, 45, 32, 97,118,111,105,100, 32,112,114,101, 112,114,111, 99,101,115,115,105,110,103, 32,118,101,114, 98, 97,116,105,109, 32,108,105,110,101,115, 10, 32,108,111, 99, 97,108, 32, 86, 32, 61, 32,123,125, 10, 32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101, 108,102, 46, 99,111,100,101, 44, 34, 92,110, 40, 37,115, 42, 37, 36, 91, 94, 37, 91, 37, 93, 93, 91, 94, 92,110, 93, 42, 41, 34, 44,102,117,110, 99,116,105,111,110, 32, 40,118, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,116,105,110,115,101,114,116, 40, 86, 44,118, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,114,101,116,117,114,110, 32, 34, 92,110, 35, 34, 46, 46,103,101,116,110, 40, 86, 41, 46, 46, 34, 35, 34, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,101,110,100, 41, 10, 10, 32, 45, 45, 32,112,101,114,102, 111,114,109, 32,103,108,111, 98, 97,108, 32,115,117, 98,115, 116,105,116,117,116,105,111,110, 10, 10, 32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101, 108,102, 46, 99,111,100,101, 44, 34, 40, 47, 47, 91, 94, 92, 110, 93, 42, 41, 34, 44, 34, 34, 41, 32, 32, 32, 32, 32, 45, 45, 32,101,108,105,109,105,110, 97,116,101, 32, 67, 43, 43, 32, 99,111,109,109,101,110,116,115, 10, 32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101, 108,102, 46, 99,111,100,101, 44, 34, 47, 37, 42, 34, 44, 34, 92, 49, 34, 41, 10, 32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99,111, 100,101, 44, 34, 37, 42, 47, 34, 44, 34, 92, 50, 34, 41, 10, 32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115, 117, 98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 37, 98, 92, 49, 92, 50, 34, 44, 34, 34, 41, 10, 32,115,101,108, 102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115, 101,108,102, 46, 99,111,100,101, 44, 34, 92, 49, 34, 44, 34, 47, 37, 42, 34, 41, 10, 32,115,101,108,102, 46, 99,111,100, 101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99, 111,100,101, 44, 34, 92, 50, 34, 44, 34, 37, 42, 47, 34, 41, 10, 32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103, 115,117, 98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 37,115, 42, 64, 37,115, 42, 34, 44, 34, 64, 34, 41, 32, 45, 45, 32,101,108,105,109,105,110, 97,116,101, 32,115,112, 97, 99,101,115, 32, 98,101,115,105,100,101, 32, 64, 10, 32,115, 101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 37,115, 63, 105,110,108,105,110,101, 40, 37,115, 41, 34, 44, 34, 37, 49, 34, 41, 32, 45, 45, 32,101,108,105,109,105,110, 97,116,101, 32, 39,105,110,108,105,110,101, 39, 32,107,101,121,119,111, 114,100, 10, 32, 45, 45,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99,111, 100,101, 44, 34, 37,115, 63,101,120,116,101,114,110, 40, 37, 115, 41, 34, 44, 34, 37, 49, 34, 41, 32, 45, 45, 32,101,108, 105,109,105,110, 97,116,101, 32, 39,101,120,116,101,114,110, 39, 32,107,101,121,119,111,114,100, 10, 32, 45, 45,115,101, 108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40, 115,101,108,102, 46, 99,111,100,101, 44, 34, 37,115, 63,118, 105,114,116,117, 97,108, 40, 37,115, 41, 34, 44, 34, 37, 49, 34, 41, 32, 45, 45, 32,101,108,105,109,105,110, 97,116,101, 32, 39,118,105,114,116,117, 97,108, 39, 32,107,101,121,119, 111,114,100, 10, 32, 45, 45,115,101,108,102, 46, 99,111,100, 101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99, 111,100,101, 44, 34,112,117, 98,108,105, 99, 58, 34, 44, 34, 34, 41, 32, 45, 45, 32,101,108,105,109,105,110, 97,116,101, 32, 39,112,117, 98,108,105, 99, 58, 39, 32,107,101,121,119, 111,114,100, 10, 32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99,111,100, 101, 44, 34, 40, 91, 94, 37,119, 95, 93, 41,118,111,105,100, 37,115, 42, 37, 42, 34, 44, 34, 37, 49, 95,117,115,101,114, 100, 97,116, 97, 32, 34, 41, 32, 45, 45, 32,115,117, 98,115, 116,105,116,117,116,101, 32, 39,118,111,105,100, 42, 39, 10, 32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115, 117, 98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 40, 91, 94, 37,119, 95, 93, 41,118,111,105,100, 37,115, 42, 37, 42, 34, 44, 34, 37, 49, 95,117,115,101,114,100, 97,116, 97, 32, 34, 41, 32, 45, 45, 32,115,117, 98,115,116,105,116,117, 116,101, 32, 39,118,111,105,100, 42, 39, 10, 32,115,101,108, 102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115, 101,108,102, 46, 99,111,100,101, 44, 34, 40, 91, 94, 37,119, 95, 93, 41, 99,104, 97,114, 37,115, 42, 37, 42, 34, 44, 34, 37, 49, 95, 99,115,116,114,105,110,103, 32, 34, 41, 32, 32, 45, 45, 32,115,117, 98,115,116,105,116,117,116,101, 32, 39, 99,104, 97,114, 42, 39, 10, 32,115,101,108,102, 46, 99,111, 100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 40, 91, 94, 37,119, 95, 93, 41,108, 117, 97, 95, 83,116, 97,116,101, 37,115, 42, 37, 42, 34, 44, 34, 37, 49, 95,108,115,116, 97,116,101, 32, 34, 41, 32, 32, 45, 45, 32,115,117, 98,115,116,105,116,117,116,101, 32, 39, 108,117, 97, 95, 83,116, 97,116,101, 42, 39, 10, 10, 32, 45, 45, 32,114,101,115,116,111,114,101, 32,101,109, 98,101,100, 100,101,100, 32, 76,117, 97, 32, 99,111,100,101, 10, 32,115, 101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 37, 35, 37, 91, 40, 37,100, 43, 41, 37, 93, 37, 35, 34, 44,102,117,110, 99,116,105,111,110, 32, 40,110, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,114,101,116,117, 114,110, 32, 76, 91,116,111,110,117,109, 98,101,114, 40,110, 41, 93, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,101,110,100, 41, 10, 32, 45, 45, 32,114,101,115,116, 111,114,101, 32,101,109, 98,101,100,100,101,100, 32, 67, 32, 99,111,100,101, 10, 32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99,111, 100,101, 44, 34, 37, 35, 37, 60, 40, 37,100, 43, 41, 37, 62, 37, 35, 34, 44,102,117,110, 99,116,105,111,110, 32, 40,110, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,114,101,116,117,114,110, 32, 67, 91,116,111,110,117, 109, 98,101,114, 40,110, 41, 93, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,101,110,100, 41, 10, 32, 45, 45, 32,114,101,115,116,111,114,101, 32,118,101,114, 98, 97, 116,105,109, 32,108,105,110,101,115, 10, 32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101, 108,102, 46, 99,111,100,101, 44, 34, 37, 35, 40, 37,100, 43, 41, 37, 35, 34, 44,102,117,110, 99,116,105,111,110, 32, 40, 110, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,114, 101,116,117,114,110, 32, 86, 91,116,111,110,117,109, 98,101, 114, 40,110, 41, 93, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,101,110,100, 41, 10, 10, 32,115,101,108,102, 46, 99,111, 100,101, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,115,101,108,102, 46, 99,111,100,101, 44, 32, 34, 92, 110, 37,115, 42, 37, 36, 40, 91, 94, 92,110, 93, 43, 41, 34, 44, 32,102,117,110, 99,116,105,111,110, 32, 40,108, 41, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 86,101,114, 98, 97,116,105,109, 40,108, 46, 46, 34, 92,110, 34, 41, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,114,101,116,117,114, 110, 32, 34, 92,110, 34, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 32, 32,101,110,100, 41, 10,101,110,100, 10, 10, 45, 45, 32,116,114, 97,110,115,108, 97,116,101, 32,118,101,114, 98, 97,116,105,109, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 80, 97, 99,107, 97,103,101, 58,112,114, 101, 97,109, 98,108,101, 32, 40, 41, 10, 32,111,117,116,112, 117,116, 40, 39, 47, 42, 92,110, 39, 41, 10, 32,111,117,116, 112,117,116, 40, 39, 42, 42, 32, 76,117, 97, 32, 98,105,110, 100,105,110,103, 58, 32, 39, 46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46, 39, 92,110, 39, 41, 10, 32,111,117,116, 112,117,116, 40, 39, 42, 42, 32, 71,101,110,101,114, 97,116, 101,100, 32, 97,117,116,111,109, 97,116,105, 99, 97,108,108, 121, 32, 98,121, 32, 39, 46, 46, 84, 79, 76, 85, 65, 95, 86, 69, 82, 83, 73, 79, 78, 46, 46, 39, 32,111,110, 32, 39, 46, 46,100, 97,116,101, 40, 41, 46, 46, 39, 46, 92,110, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39, 42, 47, 92,110, 92, 110, 39, 41, 10, 10, 9,111,117,116,112,117,116, 40, 39, 35, 105,102,110,100,101,102, 32, 95, 95, 99,112,108,117,115,112, 108,117,115, 92,110, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 35,105,110, 99,108,117,100,101, 32, 34,115,116,100, 108,105, 98, 46,104, 34, 92,110, 39, 41, 10, 9,111,117,116, 112,117,116, 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 35,105,110, 99,108, 117,100,101, 32, 34,115,116,114,105,110,103, 46,104, 34, 92, 110, 92,110, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39, 35,105,110, 99,108,117,100,101, 32, 34,116,111,108,117, 97, 43, 43, 46,104, 34, 92,110, 92,110, 39, 41, 10, 10, 32,105, 102, 32,110,111,116, 32,102,108, 97,103,115, 46,104, 32,116, 104,101,110, 10, 32, 32,111,117,116,112,117,116, 40, 39, 47, 42, 32, 69,120,112,111,114,116,101,100, 32,102,117,110, 99, 116,105,111,110, 32, 42, 47, 39, 41, 10, 32, 32,111,117,116, 112,117,116, 40, 39, 84, 79, 76, 85, 65, 95, 65, 80, 73, 32, 105,110,116, 32, 32,116,111,108,117, 97, 95, 39, 46, 46,115, 101,108,102, 46,110, 97,109,101, 46, 46, 39, 95,111,112,101, 110, 32, 40,108,117, 97, 95, 83,116, 97,116,101, 42, 32,116, 111,108,117, 97, 95, 83, 41, 59, 39, 41, 10, 32, 32,111,117, 116,112,117,116, 40, 39, 92,110, 39, 41, 10, 32,101,110,100, 10, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119, 104,105,108,101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10, 32, 32,115,101,108,102, 91,105, 93, 58,112,114,101, 97, 109, 98,108,101, 40, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 10, 9,105,102, 32,115,101,108, 102, 58,114,101,113,117,105,114,101, 99,111,108,108,101, 99, 116,105,111,110, 40, 95, 99,111,108,108,101, 99,116, 41, 32, 116,104,101,110, 10, 9, 9,111,117,116,112,117,116, 40, 39, 92,110, 39, 41, 10, 9, 9,111,117,116,112,117,116, 40, 39, 47, 42, 32,102,117,110, 99,116,105,111,110, 32,116,111, 32, 114,101,108,101, 97,115,101, 32, 99,111,108,108,101, 99,116, 101,100, 32,111, 98,106,101, 99,116, 32,118,105, 97, 32,100, 101,115,116,114,117, 99,116,111,114, 32, 42, 47, 39, 41, 10, 9, 9,111,117,116,112,117,116, 40, 39, 35,105,102,100,101, 102, 32, 95, 95, 99,112,108,117,115,112,108,117,115, 92,110, 39, 41, 10, 9, 9,102,111,114, 32,105, 44,118, 32,105,110, 32,112, 97,105,114,115, 40, 95, 99,111,108,108,101, 99,116, 41, 32,100,111, 10, 9, 9, 32,111,117,116,112,117,116, 40, 39, 92,110,115,116, 97,116,105, 99, 32,105,110,116, 32, 39, 46, 46,118, 46, 46, 39, 32, 40,108,117, 97, 95, 83,116, 97, 116,101, 42, 32,116,111,108,117, 97, 95, 83, 41, 39, 41, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39,123, 39, 41, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32, 39, 46, 46, 105, 46, 46, 39, 42, 32,115,101,108,102, 32, 61, 32, 40, 39, 46, 46,105, 46, 46, 39, 42, 41, 32,116,111,108,117, 97, 95, 116,111,117,115,101,114,116,121,112,101, 40,116,111,108,117, 97, 95, 83, 44, 49, 44, 48, 41, 59, 39, 41, 10, 9, 9, 9, 111,117,116,112,117,116, 40, 39, 9, 77,116,111,108,117, 97, 95,100,101,108,101,116,101, 40,115,101,108,102, 41, 59, 39, 41, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 9,114, 101,116,117,114,110, 32, 48, 59, 39, 41, 10, 9, 9, 9,111, 117,116,112,117,116, 40, 39,125, 39, 41, 10, 9, 9,101,110, 100, 10, 9, 9,111,117,116,112,117,116, 40, 39, 35,101,110, 100,105,102, 92,110, 92,110, 39, 41, 10, 9,101,110,100, 10, 10, 32,111,117,116,112,117,116, 40, 39, 92,110, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39, 47, 42, 32,102,117,110, 99,116,105,111,110, 32,116,111, 32,114,101,103,105,115,116, 101,114, 32,116,121,112,101, 32, 42, 47, 39, 41, 10, 32,111, 117,116,112,117,116, 40, 39,115,116, 97,116,105, 99, 32,118, 111,105,100, 32,116,111,108,117, 97, 95,114,101,103, 95,116, 121,112,101,115, 32, 40,108,117, 97, 95, 83,116, 97,116,101, 42, 32,116,111,108,117, 97, 95, 83, 41, 39, 41, 10, 32,111, 117,116,112,117,116, 40, 39,123, 39, 41, 10, 10, 9,105,102, 32,102,108, 97,103,115, 46,116, 32,116,104,101,110, 10, 9, 9,111,117,116,112,117,116, 40, 34, 35,105,102,110,100,101, 102, 32, 77,116,111,108,117, 97, 95,116,121,112,101,105,100, 92,110, 35,100,101,102,105,110,101, 32, 77,116,111,108,117, 97, 95,116,121,112,101,105,100, 40, 76, 44, 84, 73, 44, 84, 41, 92,110, 35,101,110,100,105,102, 92,110, 34, 41, 10, 9, 101,110,100, 10, 9,102,111,114,101, 97, 99,104, 40, 95,117, 115,101,114,116,121,112,101, 44,102,117,110, 99,116,105,111, 110, 40,110, 44,118, 41, 10, 9, 9,105,102, 32, 40,110,111, 116, 32, 95,103,108,111, 98, 97,108, 95, 99,108, 97,115,115, 101,115, 91,118, 93, 41, 32,111,114, 32, 95,103,108,111, 98, 97,108, 95, 99,108, 97,115,115,101,115, 91,118, 93, 58, 99, 104,101, 99,107, 95,112,117, 98,108,105, 99, 95, 97, 99, 99, 101,115,115, 40, 41, 32,116,104,101,110, 10, 9, 9, 9,111, 117,116,112,117,116, 40, 39, 32,116,111,108,117, 97, 95,117, 115,101,114,116,121,112,101, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 44,118, 44, 39, 34, 41, 59, 39, 41, 10, 9, 9, 9,105,102, 32,102,108, 97,103,115, 46,116, 32,116,104,101, 110, 10, 9, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32, 77,116,111,108,117, 97, 95,116,121,112,101,105,100, 40,116, 111,108,117, 97, 95, 83, 44,116,121,112,101,105,100, 40, 39, 44,118, 44, 39, 41, 44, 32, 34, 39, 44,118, 44, 39, 34, 41, 59, 39, 41, 10, 9, 9, 9,101,110,100, 10, 9, 9,101,110, 100, 10, 9, 32,101,110,100, 41, 10, 32,111,117,116,112,117, 116, 40, 39,125, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39, 92,110, 39, 41, 10,101,110,100, 10, 10, 45, 45, 32,114, 101,103,105,115,116,101,114, 32,112, 97, 99,107, 97,103,101, 10, 45, 45, 32,119,114,105,116,101, 32,112, 97, 99,107, 97, 103,101, 32,111,112,101,110, 32,102,117,110, 99,116,105,111, 110, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115, 115, 80, 97, 99,107, 97,103,101, 58,114,101,103,105,115,116, 101,114, 32, 40,112,114,101, 41, 10, 32,112,114,101, 32, 61, 32,112,114,101, 32,111,114, 32, 39, 39, 10, 32,112,117,115, 104, 40,115,101,108,102, 41, 10, 32,111,117,116,112,117,116, 40,112,114,101, 46, 46, 34, 47, 42, 32, 79,112,101,110, 32, 102,117,110, 99,116,105,111,110, 32, 42, 47, 34, 41, 10, 32, 111,117,116,112,117,116, 40,112,114,101, 46, 46, 34, 84, 79, 76, 85, 65, 95, 65, 80, 73, 32,105,110,116, 32,116,111,108, 117, 97, 95, 34, 46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46, 34, 95,111,112,101,110, 32, 40,108,117, 97, 95, 83, 116, 97,116,101, 42, 32,116,111,108,117, 97, 95, 83, 41, 34, 41, 10, 32,111,117,116,112,117,116, 40,112,114,101, 46, 46, 34,123, 34, 41, 10, 32,111,117,116,112,117,116, 40,112,114, 101, 46, 46, 34, 32,116,111,108,117, 97, 95,111,112,101,110, 40,116,111,108,117, 97, 95, 83, 41, 59, 34, 41, 10, 32,111, 117,116,112,117,116, 40,112,114,101, 46, 46, 34, 32,116,111, 108,117, 97, 95,114,101,103, 95,116,121,112,101,115, 40,116, 111,108,117, 97, 95, 83, 41, 59, 34, 41, 10, 32,111,117,116, 112,117,116, 40,112,114,101, 46, 46, 34, 32,116,111,108,117, 97, 95,109,111,100,117,108,101, 40,116,111,108,117, 97, 95, 83, 44, 78, 85, 76, 76, 44, 34, 44,115,101,108,102, 58,104, 97,115,118, 97,114, 40, 41, 44, 34, 41, 59, 34, 41, 10, 32, 111,117,116,112,117,116, 40,112,114,101, 46, 46, 34, 32,116, 111,108,117, 97, 95, 98,101,103,105,110,109,111,100,117,108, 101, 40,116,111,108,117, 97, 95, 83, 44, 78, 85, 76, 76, 41, 59, 34, 41, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105,108,101, 32,115,101,108,102, 91,105, 93, 32, 100,111, 10, 32, 32,115,101,108,102, 91,105, 93, 58,114,101, 103,105,115,116,101,114, 40,112,114,101, 46, 46, 34, 32, 32, 34, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101, 110,100, 10, 32,111,117,116,112,117,116, 40,112,114,101, 46, 46, 34, 32,116,111,108,117, 97, 95,101,110,100,109,111,100, 117,108,101, 40,116,111,108,117, 97, 95, 83, 41, 59, 34, 41, 10, 32,111,117,116,112,117,116, 40,112,114,101, 46, 46, 34, 32,114,101,116,117,114,110, 32, 49, 59, 34, 41, 10, 32,111, 117,116,112,117,116, 40,112,114,101, 46, 46, 34,125, 34, 41, 10, 10, 32,111,117,116,112,117,116, 40, 34, 92,110, 92,110, 34, 41, 10, 32,111,117,116,112,117,116, 40, 34, 35,105,102, 32,100,101,102,105,110,101,100, 40, 76, 85, 65, 95, 86, 69, 82, 83, 73, 79, 78, 95, 78, 85, 77, 41, 32, 38, 38, 32, 76, 85, 65, 95, 86, 69, 82, 83, 73, 79, 78, 95, 78, 85, 77, 32, 62, 61, 32, 53, 48, 49, 92,110, 34, 41, 59, 10, 32,111,117, 116,112,117,116, 40,112,114,101, 46, 46, 34, 84, 79, 76, 85, 65, 95, 65, 80, 73, 32,105,110,116, 32,108,117, 97,111,112, 101,110, 95, 34, 46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46, 34, 32, 40,108,117, 97, 95, 83,116, 97,116,101, 42, 32,116,111,108,117, 97, 95, 83, 41, 32,123, 34, 41, 10, 32, 111,117,116,112,117,116, 40,112,114,101, 46, 46, 34, 32,114, 101,116,117,114,110, 32,116,111,108,117, 97, 95, 34, 46, 46, 115,101,108,102, 46,110, 97,109,101, 46, 46, 34, 95,111,112, 101,110, 40,116,111,108,117, 97, 95, 83, 41, 59, 34, 41, 10, 32,111,117,116,112,117,116, 40,112,114,101, 46, 46, 34,125, 59, 34, 41, 10, 32,111,117,116,112,117,116, 40, 34, 35,101, 110,100,105,102, 92,110, 92,110, 34, 41, 10, 10, 9,112,111, 112, 40, 41, 10,101,110,100, 10, 10, 45, 45, 32,119,114,105, 116,101, 32,104,101, 97,100,101,114, 32,102,105,108,101, 10, 102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 80, 97, 99,107, 97,103,101, 58,104,101, 97,100,101,114, 32, 40, 41, 10, 32,111,117,116,112,117,116, 40, 39, 47, 42, 92,110, 39, 41, 32,111,117,116,112,117,116, 40, 39, 42, 42, 32, 76, 117, 97, 32, 98,105,110,100,105,110,103, 58, 32, 39, 46, 46, 115,101,108,102, 46,110, 97,109,101, 46, 46, 39, 92,110, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39, 42, 42, 32, 71, 101,110,101,114, 97,116,101,100, 32, 97,117,116,111,109, 97, 116,105, 99, 97,108,108,121, 32, 98,121, 32, 39, 46, 46, 84, 79, 76, 85, 65, 95, 86, 69, 82, 83, 73, 79, 78, 46, 46, 39, 32,111,110, 32, 39, 46, 46,100, 97,116,101, 40, 41, 46, 46, 39, 46, 92,110, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39, 42, 47, 92,110, 92,110, 39, 41, 10, 10, 32,105,102, 32, 110,111,116, 32,102,108, 97,103,115, 46,104, 32,116,104,101, 110, 10, 32, 32,111,117,116,112,117,116, 40, 39, 47, 42, 32, 69,120,112,111,114,116,101,100, 32,102,117,110, 99,116,105, 111,110, 32, 42, 47, 39, 41, 10, 32, 32,111,117,116,112,117, 116, 40, 39, 84, 79, 76, 85, 65, 95, 65, 80, 73, 32,105,110, 116, 32, 32,116,111,108,117, 97, 95, 39, 46, 46,115,101,108, 102, 46,110, 97,109,101, 46, 46, 39, 95,111,112,101,110, 32, 40,108,117, 97, 95, 83,116, 97,116,101, 42, 32,116,111,108, 117, 97, 95, 83, 41, 59, 39, 41, 10, 32, 32,111,117,116,112, 117,116, 40, 39, 92,110, 39, 41, 10, 32,101,110,100, 10,101, 110,100, 10, 10, 45, 45, 32, 73,110,116,101,114,110, 97,108, 32, 99,111,110,115,116,114,117, 99,116,111,114, 10,102,117, 110, 99,116,105,111,110, 32, 95, 80, 97, 99,107, 97,103,101, 32, 40,115,101,108,102, 41, 10, 32,115,101,116,109,101,116, 97,116, 97, 98,108,101, 40,115,101,108,102, 44, 99,108, 97, 115,115, 80, 97, 99,107, 97,103,101, 41, 10, 32,114,101,116, 117,114,110, 32,115,101,108,102, 10,101,110,100, 10, 10, 45, 45, 32, 80, 97,114,115,101, 32, 67, 32,104,101, 97,100,101, 114, 32,102,105,108,101, 32,119,105,116,104, 32,116,111,108, 117, 97, 32,100,105,114,101, 99,116,105,118,101,115, 10, 45, 45, 32, 42, 42, 42, 32, 84,104, 97,110,107,115, 32,116,111, 32, 65,114,105,101,108, 32, 77, 97,110,122,117,114, 32,102, 111,114, 32,102,105,120,105,110,103, 32, 98,117,103,115, 32, 105,110, 32,110,101,115,116,101,100, 32,100,105,114,101, 99, 116,105,118,101,115, 32, 42, 42, 42, 10,102,117,110, 99,116, 105,111,110, 32,101,120,116,114, 97, 99,116, 95, 99,111,100, 101, 40,102,110, 44,115, 41, 10, 9,108,111, 99, 97,108, 32, 99,111,100,101, 32, 61, 32, 39, 92,110, 36, 35,105,110, 99, 108,117,100,101, 32, 34, 39, 46, 46,102,110, 46, 46, 39, 34, 92,110, 39, 10, 9,115, 61, 32, 34, 92,110, 34, 32, 46, 46, 32,115, 32, 46, 46, 32, 34, 92,110, 34, 32, 45, 45, 32, 97, 100,100, 32, 98,108, 97,110,107, 32,108,105,110,101,115, 32, 97,115, 32,115,101,110,116,105,110,101,108,115, 10, 9,108, 111, 99, 97,108, 32, 95, 44,101, 44, 99, 44,116, 32, 61, 32, 115,116,114,102,105,110,100, 40,115, 44, 32, 34, 92,110, 40, 91, 94, 92,110, 93, 45, 41, 91, 84,116, 93, 91, 79,111, 93, 91, 76,108, 93, 91, 85,117, 93, 91, 65, 97, 93, 95, 40, 91, 94, 37,115, 93, 42, 41, 91, 94, 92,110, 93, 42, 92,110, 34, 41, 10, 9,119,104,105,108,101, 32,101, 32,100,111, 10, 9, 9,116, 32, 61, 32,115,116,114,108,111,119,101,114, 40,116, 41, 10, 9, 9,105,102, 32,116, 32, 61, 61, 32, 34, 98,101, 103,105,110, 34, 32,116,104,101,110, 10, 9, 9, 9, 95, 44, 101, 44, 99, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 40, 46, 45, 41, 92,110, 91, 94, 92,110, 93, 42, 91, 84,116, 93, 91, 79,111, 93, 91, 76,108, 93, 91, 85,117, 93, 91, 65, 97, 93, 95, 91, 69,101, 93, 91, 78,110, 93, 91, 68, 100, 93, 91, 94, 92,110, 93, 42, 92,110, 34, 44,101, 41, 10, 9, 9, 9,105,102, 32,110,111,116, 32,101, 32,116,104,101, 110, 10, 9, 9, 9, 32,116,111,108,117, 97, 95,101,114,114, 111,114, 40, 34, 85,110, 98, 97,108, 97,110, 99,101,100, 32, 39,116,111,108,117, 97, 95, 98,101,103,105,110, 39, 32,100, 105,114,101, 99,116,105,118,101, 32,105,110, 32,104,101, 97, 100,101,114, 32,102,105,108,101, 34, 41, 10, 9, 9, 9,101, 110,100, 10, 9, 9,101,110,100, 10, 9, 9, 99,111,100,101, 32, 61, 32, 99,111,100,101, 32, 46, 46, 32, 99, 32, 46, 46, 32, 34, 92,110, 34, 10, 9, 32, 95, 44,101, 44, 99, 44,116, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 32, 34, 92,110, 40, 91, 94, 92,110, 93, 45, 41, 91, 84,116, 93, 91, 79,111, 93, 91, 76,108, 93, 91, 85,117, 93, 91, 65, 97, 93, 95, 40, 91, 94, 37,115, 93, 42, 41, 91, 94, 92,110, 93, 42, 92,110, 34, 44,101, 41, 10, 9,101,110,100, 10, 9,114,101, 116,117,114,110, 32, 99,111,100,101, 10,101,110,100, 10, 10, 45, 45, 32, 67,111,110,115,116,114,117, 99,116,111,114, 10, 45, 45, 32, 69,120,112,101, 99,116,115, 32,116,104,101, 32, 112, 97, 99,107, 97,103,101, 32,110, 97,109,101, 44, 32,116, 104,101, 32,102,105,108,101, 32,101,120,116,101,110,115,105, 111,110, 44, 32, 97,110,100, 32,116,104,101, 32,102,105,108, 101, 32,116,101,120,116, 46, 10,102,117,110, 99,116,105,111, 110, 32, 80, 97, 99,107, 97,103,101, 32, 40,110, 97,109,101, 44,102,110, 41, 10, 32,108,111, 99, 97,108, 32,101,120,116, 32, 61, 32, 34,112,107,103, 34, 10, 10, 32, 45, 45, 32,111, 112,101,110, 32,105,110,112,117,116, 32,102,105,108,101, 44, 32,105,102, 32, 97,110,121, 10, 32,108,111, 99, 97,108, 32, 115,116, 44,109,115,103, 10, 32,105,102, 32,102,110, 32,116, 104,101,110, 10, 32, 32,115,116, 44, 32,109,115,103, 32, 61, 32,114,101, 97,100,102,114,111,109, 40,102,108, 97,103,115, 46,102, 41, 10, 32, 32,105,102, 32,110,111,116, 32,115,116, 32,116,104,101,110, 10, 32, 32, 32,101,114,114,111,114, 40, 39, 35, 39, 46, 46,109,115,103, 41, 10, 32, 32,101,110,100, 10, 32, 32,108,111, 99, 97,108, 32, 95, 59, 32, 95, 44, 32, 95, 44, 32,101,120,116, 32, 61, 32,115,116,114,102,105,110, 100, 40,102,110, 44, 34, 46, 42, 37, 46, 40, 46, 42, 41, 36, 34, 41, 10, 32,101,110,100, 10, 32,108,111, 99, 97,108, 32, 99,111,100,101, 10, 32,105,102, 32,101,120,116, 32, 61, 61, 32, 39,112,107,103, 39, 32,116,104,101,110, 10, 32, 32, 99, 111,100,101, 32, 61, 32,112,114,101,112, 40,115,116, 41, 10, 32,101,108,115,101, 10, 32, 32, 99,111,100,101, 32, 61, 32, 34, 92,110, 34, 32, 46, 46, 32,114,101, 97,100, 40, 39, 42, 97, 39, 41, 10, 32, 32,105,102, 32,101,120,116, 32, 61, 61, 32, 39,104, 39, 32,111,114, 32,101,120,116, 32, 61, 61, 32, 39,104,112,112, 39, 32,116,104,101,110, 10, 32, 32, 32, 99, 111,100,101, 32, 61, 32,101,120,116,114, 97, 99,116, 95, 99, 111,100,101, 40,102,110, 44, 99,111,100,101, 41, 10, 32, 32, 101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32, 99, 108,111,115,101, 32,102,105,108,101, 10, 32,105,102, 32,102, 110, 32,116,104,101,110, 10, 32, 32,114,101, 97,100,102,114, 111,109, 40, 41, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32, 100,101, 97,108, 32,119,105,116,104, 32,105,110, 99,108,117, 100,101, 32,100,105,114,101, 99,116,105,118,101, 10, 32,108, 111, 99, 97,108, 32,110,115,117, 98,115,116, 10, 32,114,101, 112,101, 97,116, 10, 32, 32, 99,111,100,101, 44,110,115,117, 98,115,116, 32, 61, 32,103,115,117, 98, 40, 99,111,100,101, 44, 39, 92,110, 37,115, 42, 37, 36, 40, 46, 41,102,105,108, 101, 37,115, 42, 34, 40, 46, 45, 41, 34, 40, 91, 94, 92,110, 93, 42, 41, 92,110, 39, 44, 10, 9, 9,102,117,110, 99,116, 105,111,110, 32, 40,107,105,110,100, 44,102,110, 44,101,120, 116,114, 97, 41, 10, 9, 9, 9,108,111, 99, 97,108, 32, 95, 44, 32, 95, 44, 32,101,120,116, 32, 61, 32,115,116,114,102, 105,110,100, 40,102,110, 44, 34, 46, 42, 37, 46, 40, 46, 42, 41, 36, 34, 41, 10, 9, 9, 9,108,111, 99, 97,108, 32,102, 112, 44,109,115,103, 32, 61, 32,111,112,101,110,102,105,108, 101, 40,102,110, 44, 39,114, 39, 41, 10, 9, 9, 9,105,102, 32,110,111,116, 32,102,112, 32,116,104,101,110, 10, 9, 9, 9, 9,101,114,114,111,114, 40, 39, 35, 39, 46, 46,109,115, 103, 46, 46, 39, 58, 32, 39, 46, 46,102,110, 41, 10, 9, 9, 9,101,110,100, 10, 9, 9, 9,105,102, 32,107,105,110,100, 32, 61, 61, 32, 39,112, 39, 32,116,104,101,110, 10, 9, 9, 9, 9,108,111, 99, 97,108, 32,115, 32, 61, 32,112,114,101, 112, 40,102,112, 41, 10, 9, 9, 9, 9, 99,108,111,115,101, 102,105,108,101, 40,102,112, 41, 10, 9, 9, 9, 9,114,101, 116,117,114,110, 32,115, 10, 9, 9, 9,101,110,100, 10, 9, 9, 9,108,111, 99, 97,108, 32,115, 32, 61, 32,114,101, 97, 100, 40,102,112, 44, 39, 42, 97, 39, 41, 10, 9, 9, 9, 99, 108,111,115,101,102,105,108,101, 40,102,112, 41, 10, 9, 9, 9,105,102, 32,107,105,110,100, 32, 61, 61, 32, 39, 99, 39, 32,111,114, 32,107,105,110,100, 32, 61, 61, 32, 39,104, 39, 32,116,104,101,110, 10, 9, 9, 9, 9,114,101,116,117,114, 110, 32,101,120,116,114, 97, 99,116, 95, 99,111,100,101, 40, 102,110, 44,115, 41, 10, 9, 9, 9,101,108,115,101,105,102, 32,107,105,110,100, 32, 61, 61, 32, 39,108, 39, 32,116,104, 101,110, 10, 9, 9, 9, 9,114,101,116,117,114,110, 32, 34, 92,110, 36, 91, 45, 45, 35, 35, 34, 46, 46,102,110, 46, 46, 34, 92,110, 34, 32, 46, 46, 32,115, 32, 46, 46, 32, 34, 92, 110, 36, 93, 92,110, 34, 10, 9, 9, 9,101,108,115,101,105, 102, 32,107,105,110,100, 32, 61, 61, 32, 39,105, 39, 32,116, 104,101,110, 10, 9, 9, 9, 9,108,111, 99, 97,108, 32,116, 32, 61, 32,123, 99,111,100,101, 61,115,125, 10, 9, 9, 9, 9,101,120,116,114, 97, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,101,120,116,114, 97, 44, 32, 34, 94, 37,115, 42, 44, 37,115, 42, 34, 44, 32, 34, 34, 41, 10, 9, 9, 9, 9,108,111, 99, 97,108, 32,112, 97,114,115, 32, 61, 32,115,112,108,105,116, 95, 99, 95,116,111,107,101,110,115, 40,101,120,116,114, 97, 44, 32, 34, 44, 34, 41, 10, 9, 9, 9, 9,105,110, 99,108,117,100,101, 95,102,105,108,101, 95, 104,111,111,107, 40,116, 44, 32,102,110, 44, 32,117,110,112, 97, 99,107, 40,112, 97,114,115, 41, 41, 10, 9, 9, 9, 9, 114,101,116,117,114,110, 32, 34, 92,110, 92,110, 34, 32, 46, 46, 32,116, 46, 99,111,100,101, 10, 9, 9, 9,101,108,115, 101, 10, 9, 9, 9, 9,101,114,114,111,114, 40, 39, 35, 73, 110,118, 97,108,105,100, 32,105,110, 99,108,117,100,101, 32, 100,105,114,101, 99,116,105,118,101, 32, 40,117,115,101, 32, 36, 99,102,105,108,101, 44, 32, 36,112,102,105,108,101, 44, 32, 36,108,102,105,108,101, 32,111,114, 32, 36,105,102,105, 108,101, 41, 39, 41, 10, 9, 9, 9,101,110,100, 10, 9, 9, 101,110,100, 41, 10, 32,117,110,116,105,108, 32,110,115,117, 98,115,116, 61, 61, 48, 10, 10, 32, 45, 45, 32,100,101, 97, 108, 32,119,105,116,104, 32,114,101,110, 97,109,105,110,103, 32,100,105,114,101, 99,116,105,118,101, 10, 32,114,101,112, 101, 97,116, 32, 45, 45, 32, 73, 32,100,111,110, 39,116, 32, 107,110,111,119, 32,119,104,121, 32,116,104,105,115, 32,105, 115, 32,110,101, 99,101,115, 97,114,121, 10, 9, 99,111,100, 101, 44,110,115,117, 98,115,116, 32, 61, 32,103,115,117, 98, 40, 99,111,100,101, 44, 39, 92,110, 37,115, 42, 37, 36,114, 101,110, 97,109,105,110,103, 37,115, 42, 40, 46, 45, 41, 37, 115, 42, 92,110, 39, 44, 32,102,117,110, 99,116,105,111,110, 32, 40,114, 41, 32, 97,112,112,101,110,100,114,101,110, 97, 109,105,110,103, 40,114, 41, 32,114,101,116,117,114,110, 32, 34, 92,110, 34, 32,101,110,100, 41, 10, 32,117,110,116,105, 108, 32,110,115,117, 98,115,116, 32, 61, 61, 32, 48, 10, 10, 32,108,111, 99, 97,108, 32,116, 32, 61, 32, 95, 80, 97, 99, 107, 97,103,101, 40, 95, 67,111,110,116, 97,105,110,101,114, 123,110, 97,109,101, 61,110, 97,109,101, 44, 32, 99,111,100, 101, 61, 99,111,100,101,125, 41, 10, 32,112,117,115,104, 40, 116, 41, 10, 32,112,114,101,112,114,111, 99,101,115,115, 95, 104,111,111,107, 40,116, 41, 10, 32,116, 58,112,114,101,112, 114,111, 99,101,115,115, 40, 41, 10, 32,112,114,101,112, 97, 114,115,101, 95,104,111,111,107, 40,116, 41, 10, 32,116, 58, 112, 97,114,115,101, 40,116, 46, 99,111,100,101, 41, 10, 32, 112,111,112, 40, 41, 10, 32,114,101,116,117,114,110, 32,116, 10,101,110,100, 10, 10, 10,115,101,116,109,101,116, 97,116, 97, 98,108,101, 40, 95,101,120,116,114, 97, 95,112, 97,114, 97,109,101,116,101,114,115, 44, 32,123, 32, 95, 95,105,110, 100,101,120, 32, 61, 32, 95, 71, 32,125, 41, 10, 10,102,117, 110, 99,116,105,111,110, 32,112,114,101,112, 40,102,105,108, 101, 41, 10, 10, 32, 32,108,111, 99, 97,108, 32, 99,104,117, 110,107, 32, 61, 32,123, 39,108,111, 99, 97,108, 32, 95, 95, 114,101,116, 32, 61, 32,123, 34, 92, 92,110, 34,125, 92,110, 39,125, 10, 32, 32,102,111,114, 32,108,105,110,101, 32,105, 110, 32,102,105,108,101, 58,108,105,110,101,115, 40, 41, 32, 100,111, 10, 32, 32, 32, 32, 32,105,102, 32,115,116,114,105, 110,103, 46,102,105,110,100, 40,108,105,110,101, 44, 32, 34, 94, 35, 35, 34, 41, 32,116,104,101,110, 10, 32, 32, 32, 32, 32, 32,116, 97, 98,108,101, 46,105,110,115,101,114,116, 40, 99,104,117,110,107, 44, 32,115,116,114,105,110,103, 46,115, 117, 98, 40,108,105,110,101, 44, 32, 51, 41, 32, 46, 46, 32, 34, 92,110, 34, 41, 10, 32, 32, 32, 32, 32,101,108,115,101, 10, 32, 32, 32, 32, 32, 32,108,111, 99, 97,108, 32,108, 97, 115,116, 32, 61, 32, 49, 10, 32, 32, 32, 32, 32, 32,102,111, 114, 32,116,101,120,116, 44, 32,101,120,112,114, 44, 32,105, 110,100,101,120, 32,105,110, 32,115,116,114,105,110,103, 46, 103,102,105,110,100, 40,108,105,110,101, 44, 32, 34, 40, 46, 45, 41, 36, 40, 37, 98, 40, 41, 41, 40, 41, 34, 41, 32,100, 111, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32,108, 97,115,116, 32, 61, 32,105,110,100,101,120, 10, 32, 32, 32, 32, 32, 32, 32, 32,105,102, 32,116,101,120,116, 32,126, 61, 32, 34, 34, 32,116,104,101,110, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,116, 97, 98,108,101, 46,105,110,115,101,114,116, 40, 99, 104,117,110,107, 44, 32,115,116,114,105,110,103, 46,102,111, 114,109, 97,116, 40, 39,116, 97, 98,108,101, 46,105,110,115, 101,114,116, 40, 95, 95,114,101,116, 44, 32, 37,113, 32, 41, 39, 44, 32,116,101,120,116, 41, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32,101,110,100, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 97, 98,108,101, 46,105,110,115,101,114,116, 40, 99,104, 117,110,107, 44, 32,115,116,114,105,110,103, 46,102,111,114, 109, 97,116, 40, 39,116, 97, 98,108,101, 46,105,110,115,101, 114,116, 40, 95, 95,114,101,116, 44, 32, 37,115, 32, 41, 39, 44, 32,101,120,112,114, 41, 41, 10, 32, 32, 32, 32, 32, 32, 101,110,100, 10, 32, 32, 32, 32, 32, 32,116, 97, 98,108,101, 46,105,110,115,101,114,116, 40, 99,104,117,110,107, 44, 32, 115,116,114,105,110,103, 46,102,111,114,109, 97,116, 40, 39, 116, 97, 98,108,101, 46,105,110,115,101,114,116, 40, 95, 95, 114,101,116, 44, 32, 37,113, 41, 92,110, 39, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,115,116,114,105,110,103, 46,115,117, 98, 40,108,105,110,101, 44, 32,108, 97,115,116, 41, 46, 46, 34, 92,110, 34, 41, 41, 10, 32, 32, 32, 32,101, 110,100, 10, 32, 32,101,110,100, 10, 32, 32,116, 97, 98,108, 101, 46,105,110,115,101,114,116, 40, 99,104,117,110,107, 44, 32, 39, 92,110,114,101,116,117,114,110, 32,116, 97, 98,108, 101, 46, 99,111,110, 99, 97,116, 40, 95, 95,114,101,116, 41, 92,110, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32,102, 44, 101, 32, 61, 32,108,111, 97,100,115,116,114,105,110,103, 40, 116, 97, 98,108,101, 46, 99,111,110, 99, 97,116, 40, 99,104, 117,110,107, 41, 41, 10, 32, 32,105,102, 32,101, 32,116,104, 101,110, 10, 32, 32, 9,101,114,114,111,114, 40, 34, 35, 34, 46, 46,101, 41, 10, 32, 32,101,110,100, 10, 32, 32,115,101, 116,102,101,110,118, 40,102, 44, 32, 95,101,120,116,114, 97, 95,112, 97,114, 97,109,101,116,101,114,115, 41, 10, 32, 32, 114,101,116,117,114,110, 32,102, 40, 41, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/package.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32,109,111,100,117,108, 101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114,105,116, 116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74, 117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73,100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111,100, 101, 32,105,115, 32,102,114,101,101, 32,115,111,102,116,119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32,114,101, 100,105,115,116,114,105, 98,117,116,101, 32,105,116, 32, 97, 110,100, 47,111,114, 32,109,111,100,105,102,121, 32,105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116,119, 97, 114,101, 32,112,114,111,118,105,100,101,100, 32,104,101,114, 101,117,110,100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97,117,116, 104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98,108,105, 103, 97,116,105,111,110, 32,116,111, 32,112,114,111,118,105, 100,101, 32,109, 97,105,110,116,101,110, 97,110, 99,101, 44, 32,115,117,112,112,111,114,116, 44, 32,117,112,100, 97,116, 101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,101,109, 101,110,116,115, 44, 32,111,114, 32,109,111,100,105,102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 10, 45, 45, 32, 77,111,100,117,108,101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114,101,115,101,110,116,115, 32,109,111,100, 117,108,101, 46, 10, 45, 45, 32, 84,104,101, 32,102,111,108, 108,111,119,105,110,103, 32,102,105,101,108,100,115, 32, 97, 114,101, 32,115,116,111,114,101,100, 58, 10, 45, 45, 32, 32, 32, 32,123,105,125, 32, 61, 32,108,105,115,116, 32,111,102, 32,111, 98,106,101, 99,116,115, 32,105,110, 32,116,104,101, 32,109,111,100,117,108,101, 46, 10, 99,108, 97,115,115, 77, 111,100,117,108,101, 32, 61, 32,123, 10, 32, 99,108, 97,115, 115,116,121,112,101, 32, 61, 32, 39,109,111,100,117,108,101, 39, 10,125, 10, 99,108, 97,115,115, 77,111,100,117,108,101, 46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97,115, 115, 77,111,100,117,108,101, 10,115,101,116,109,101,116, 97, 116, 97, 98,108,101, 40, 99,108, 97,115,115, 77,111,100,117, 108,101, 44, 99,108, 97,115,115, 67,111,110,116, 97,105,110, 101,114, 41, 10, 10, 45, 45, 32,114,101,103,105,115,116,101, 114, 32,109,111,100,117,108,101, 10,102,117,110, 99,116,105, 111,110, 32, 99,108, 97,115,115, 77,111,100,117,108,101, 58, 114,101,103,105,115,116,101,114, 32, 40,112,114,101, 41, 10, 32,112,114,101, 32, 61, 32,112,114,101, 32,111,114, 32, 39, 39, 10, 32,112,117,115,104, 40,115,101,108,102, 41, 10, 32, 111,117,116,112,117,116, 40,112,114,101, 46, 46, 39,116,111, 108,117, 97, 95,109,111,100,117,108,101, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101,108,102, 46,110, 97, 109,101, 46, 46, 39, 34, 44, 39, 44,115,101,108,102, 58,104, 97,115,118, 97,114, 40, 41, 44, 39, 41, 59, 39, 41, 10, 32, 111,117,116,112,117,116, 40,112,114,101, 46, 46, 39,116,111, 108,117, 97, 95, 98,101,103,105,110,109,111,100,117,108,101, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101, 108,102, 46,110, 97,109,101, 46, 46, 39, 34, 41, 59, 39, 41, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104, 105,108,101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10, 32, 32,115,101,108,102, 91,105, 93, 58,114,101,103,105,115, 116,101,114, 40,112,114,101, 46, 46, 39, 32, 39, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32, 111,117,116,112,117,116, 40,112,114,101, 46, 46, 39,116,111, 108,117, 97, 95,101,110,100,109,111,100,117,108,101, 40,116, 111,108,117, 97, 95, 83, 41, 59, 39, 41, 10, 9,112,111,112, 40, 41, 10,101,110,100, 10, 10, 45, 45, 32, 80,114,105,110, 116, 32,109,101,116,104,111,100, 10,102,117,110, 99,116,105, 111,110, 32, 99,108, 97,115,115, 77,111,100,117,108,101, 58, 112,114,105,110,116, 32, 40,105,100,101,110,116, 44, 99,108, 111,115,101, 41, 10, 32,112,114,105,110,116, 40,105,100,101, 110,116, 46, 46, 34, 77,111,100,117,108,101,123, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101,108, 102, 46,110, 97,109,101, 46, 46, 34, 39, 59, 34, 41, 10, 32, 108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105,108, 101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10, 32, 32, 115,101,108,102, 91,105, 93, 58,112,114,105,110,116, 40,105, 100,101,110,116, 46, 46, 34, 32, 34, 44, 34, 44, 34, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 125, 34, 46, 46, 99,108,111,115,101, 41, 10,101,110,100, 10, 10, 45, 45, 32, 73,110,116,101,114,110, 97,108, 32, 99,111, 110,115,116,114,117, 99,116,111,114, 10,102,117,110, 99,116, 105,111,110, 32, 95, 77,111,100,117,108,101, 32, 40,116, 41, 10, 32,115,101,116,109,101,116, 97,116, 97, 98,108,101, 40, 116, 44, 99,108, 97,115,115, 77,111,100,117,108,101, 41, 10, 32, 97,112,112,101,110,100, 40,116, 41, 10, 32,114,101,116, 117,114,110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32, 67, 111,110,115,116,114,117, 99,116,111,114, 10, 45, 45, 32, 69, 120,112,101, 99,116,115, 32,116,119,111, 32,115,116,114,105, 110,103, 32,114,101,112,114,101,115,101,110,116,105,110,103, 32,116,104,101, 32,109,111,100,117,108,101, 32,110, 97,109, 101, 32, 97,110,100, 32, 98,111,100,121, 46, 10,102,117,110, 99,116,105,111,110, 32, 77,111,100,117,108,101, 32, 40,110, 44, 98, 41, 10, 32,108,111, 99, 97,108, 32,116, 32, 61, 32, 95, 77,111,100,117,108,101, 40, 95, 67,111,110,116, 97,105, 110,101,114,123,110, 97,109,101, 61,110,125, 41, 10, 32,112, 117,115,104, 40,116, 41, 10, 32,116, 58,112, 97,114,115,101, 40,115,116,114,115,117, 98, 40, 98, 44, 50, 44,115,116,114, 108,101,110, 40, 98, 41, 45, 49, 41, 41, 32, 45, 45, 32,101, 108,105,109,105,110, 97,116,101, 32, 98,114, 97, 99,101,115, 10, 32,112,111,112, 40, 41, 10, 32,114,101,116,117,114,110, 32,116, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/module.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32,110, 97,109,101,115, 112, 97, 99,101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87, 114,105,116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101, 109, 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 50, 48, 48, 51, 10, 45, 45, 32, 36, 73,100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111,100,101, 32,105,115, 32,102,114,101,101, 32,115,111, 102,116,119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32,114,101,100,105,115,116,114,105, 98,117,116,101, 32,105, 116, 32, 97,110,100, 47,111,114, 32,109,111,100,105,102,121, 32,105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102, 116,119, 97,114,101, 32,112,114,111,118,105,100,101,100, 32, 104,101,114,101,117,110,100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115, 105,115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97,117,116,104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98,108,105,103, 97,116,105,111,110, 32,116,111, 32,112,114, 111,118,105,100,101, 32,109, 97,105,110,116,101,110, 97,110, 99,101, 44, 32,115,117,112,112,111,114,116, 44, 32,117,112, 100, 97,116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,101,109,101,110,116,115, 44, 32,111,114, 32,109,111,100, 105,102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 45, 45, 32, 78, 97,109,101,115,112, 97, 99,101, 32, 99,108, 97, 115,115, 10, 45, 45, 32, 82,101,112,114,101,115,101,110,116, 115, 32, 97, 32,110, 97,109,101,115, 97,112, 99,101, 32,100, 101,102,105,110,105,116,105,111,110, 46, 10, 45, 45, 32, 83, 116,111,114,101,115, 32,116,104,101, 32,102,111,108,108,111, 119,105,110,103, 32,102,105,101,108,100,115, 58, 10, 45, 45, 32, 32, 32, 32,110, 97,109,101, 32, 61, 32, 99,108, 97,115, 115, 32,110, 97,109,101, 10, 45, 45, 32, 32, 32, 32,123,105, 125, 32, 32, 61, 32,108,105,115,116, 32,111,102, 32,109,101, 109, 98,101,114,115, 10, 99,108, 97,115,115, 78, 97,109,101, 115,112, 97, 99,101, 32, 61, 32,123, 10, 32, 99,108, 97,115, 115,116,121,112,101, 32, 61, 32, 39,110, 97,109,101,115,112, 97, 99,101, 39, 44, 10, 32,110, 97,109,101, 32, 61, 32, 39, 39, 44, 10,125, 10, 99,108, 97,115,115, 78, 97,109,101,115, 112, 97, 99,101, 46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97,115,115, 78, 97,109,101,115,112, 97, 99,101, 10, 115,101,116,109,101,116, 97,116, 97, 98,108,101, 40, 99,108, 97,115,115, 78, 97,109,101,115,112, 97, 99,101, 44, 99,108, 97,115,115, 77,111,100,117,108,101, 41, 10, 10, 45, 45, 32, 80,114,105,110,116, 32,109,101,116,104,111,100, 10,102,117, 110, 99,116,105,111,110, 32, 99,108, 97,115,115, 78, 97,109, 101,115,112, 97, 99,101, 58,112,114,105,110,116, 32, 40,105, 100,101,110,116, 44, 99,108,111,115,101, 41, 10, 32,112,114, 105,110,116, 40,105,100,101,110,116, 46, 46, 34, 78, 97,109, 101,115,112, 97, 99,101,123, 34, 41, 10, 32,112,114,105,110, 116, 40,105,100,101,110,116, 46, 46, 34, 32,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,110, 97,109, 101, 46, 46, 34, 39, 44, 34, 41, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105,108,101, 32,115,101,108, 102, 91,105, 93, 32,100,111, 10, 32, 32,115,101,108,102, 91, 105, 93, 58,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 34, 44, 34, 44, 34, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32,112,114,105,110, 116, 40,105,100,101,110,116, 46, 46, 34,125, 34, 46, 46, 99, 108,111,115,101, 41, 10,101,110,100, 10, 10, 45, 45, 32, 73, 110,116,101,114,110, 97,108, 32, 99,111,110,115,116,114,117, 99,116,111,114, 10,102,117,110, 99,116,105,111,110, 32, 95, 78, 97,109,101,115,112, 97, 99,101, 32, 40,116, 41, 10, 32, 115,101,116,109,101,116, 97,116, 97, 98,108,101, 40,116, 44, 99,108, 97,115,115, 78, 97,109,101,115,112, 97, 99,101, 41, 10, 32, 97,112,112,101,110,100, 40,116, 41, 10, 32,114,101, 116,117,114,110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32, 67,111,110,115,116,114,117, 99,116,111,114, 10, 45, 45, 32, 69,120,112,101, 99,116,115, 32,116,104,101, 32,110, 97,109, 101, 32, 97,110,100, 32,116,104,101, 32, 98,111,100,121, 32, 111,102, 32,116,104,101, 32,110, 97,109,101,115,112, 97, 99, 101, 46, 10,102,117,110, 99,116,105,111,110, 32, 78, 97,109, 101,115,112, 97, 99,101, 32, 40,110, 44, 98, 41, 10, 32,108, 111, 99, 97,108, 32, 99, 32, 61, 32, 95, 78, 97,109,101,115, 112, 97, 99,101, 40, 95, 67,111,110,116, 97,105,110,101,114, 123,110, 97,109,101, 61,110,125, 41, 10, 32,112,117,115,104, 40, 99, 41, 10, 32, 99, 58,112, 97,114,115,101, 40,115,116, 114,115,117, 98, 40, 98, 44, 50, 44,115,116,114,108,101,110, 40, 98, 41, 45, 49, 41, 41, 32, 45, 45, 32,101,108,105,109, 105,110, 97,116,101, 32, 98,114, 97, 99,101,115, 10, 32,112, 111,112, 40, 41, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/namespace.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32,100,101,102,105,110, 101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114,105,116, 116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74, 117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73,100, 58, 32,100,101,102,105,110,101, 46,108,117, 97, 44,118, 32, 49, 46, 50, 32, 49, 57, 57, 57, 47, 48, 55, 47, 50, 56, 32, 50, 50, 58, 50, 49, 58, 48, 56, 32, 99,101,108,101,115, 32, 69, 120,112, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99, 111,100,101, 32,105,115, 32,102,114,101,101, 32,115,111,102, 116,119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32, 114,101,100,105,115,116,114,105, 98,117,116,101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109,111,100,105,102,121, 32, 105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116, 119, 97,114,101, 32,112,114,111,118,105,100,101,100, 32,104, 101,114,101,117,110,100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105, 115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97, 117,116,104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98, 108,105,103, 97,116,105,111,110, 32,116,111, 32,112,114,111, 118,105,100,101, 32,109, 97,105,110,116,101,110, 97,110, 99, 101, 44, 32,115,117,112,112,111,114,116, 44, 32,117,112,100, 97,116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99, 101,109,101,110,116,115, 44, 32,111,114, 32,109,111,100,105, 102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 45, 45, 32, 68,101,102,105,110,101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114,101,115,101,110,116,115, 32, 97, 32, 110,117,109,101,114,105, 99, 32, 99,111,110,115,116, 32,100, 101,102,105,110,105,116,105,111,110, 10, 45, 45, 32, 84,104, 101, 32,102,111,108,108,111,119,105,110,103, 32,102,105,108, 100,115, 32, 97,114,101, 32,115,116,111,114,101,100, 58, 10, 45, 45, 32, 32, 32,110, 97,109,101, 32, 61, 32, 99,111,110, 115,116, 97,110,116, 32,110, 97,109,101, 10, 99,108, 97,115, 115, 68,101,102,105,110,101, 32, 61, 32,123, 10, 32,110, 97, 109,101, 32, 61, 32, 39, 39, 44, 10,125, 10, 99,108, 97,115, 115, 68,101,102,105,110,101, 46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97,115,115, 68,101,102,105,110,101, 10, 115,101,116,109,101,116, 97,116, 97, 98,108,101, 40, 99,108, 97,115,115, 68,101,102,105,110,101, 44, 99,108, 97,115,115, 70,101, 97,116,117,114,101, 41, 10, 10, 45, 45, 32,114,101, 103,105,115,116,101,114, 32,100,101,102,105,110,101, 10,102, 117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 68,101, 102,105,110,101, 58,114,101,103,105,115,116,101,114, 32, 40, 112,114,101, 41, 10, 9,105,102, 32,110,111,116, 32,115,101, 108,102, 58, 99,104,101, 99,107, 95,112,117, 98,108,105, 99, 95, 97, 99, 99,101,115,115, 40, 41, 32,116,104,101,110, 10, 9, 9,114,101,116,117,114,110, 10, 9,101,110,100, 10, 10, 32,112,114,101, 32, 61, 32,112,114,101, 32,111,114, 32, 39, 39, 10, 32,111,117,116,112,117,116, 40,112,114,101, 46, 46, 39,116,111,108,117, 97, 95, 99,111,110,115,116, 97,110,116, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101, 108,102, 46,108,110, 97,109,101, 46, 46, 39, 34, 44, 39, 46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46, 39, 41, 59, 39, 41, 10,101,110,100, 10, 10, 45, 45, 32, 80,114,105,110, 116, 32,109,101,116,104,111,100, 10,102,117,110, 99,116,105, 111,110, 32, 99,108, 97,115,115, 68,101,102,105,110,101, 58, 112,114,105,110,116, 32, 40,105,100,101,110,116, 44, 99,108, 111,115,101, 41, 10, 32,112,114,105,110,116, 40,105,100,101, 110,116, 46, 46, 34, 68,101,102,105,110,101,123, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101,108, 102, 46,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32, 112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 108,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101,108, 102, 46,108,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 125, 34, 46, 46, 99,108,111,115,101, 41, 10,101,110,100, 10, 10, 10, 45, 45, 32, 73,110,116,101,114,110, 97,108, 32, 99, 111,110,115,116,114,117, 99,116,111,114, 10,102,117,110, 99, 116,105,111,110, 32, 95, 68,101,102,105,110,101, 32, 40,116, 41, 10, 32,115,101,116,109,101,116, 97,116, 97, 98,108,101, 40,116, 44, 99,108, 97,115,115, 68,101,102,105,110,101, 41, 10, 32,116, 58, 98,117,105,108,100,110, 97,109,101,115, 40, 41, 10, 10, 32,105,102, 32,116, 46,110, 97,109,101, 32, 61, 61, 32, 39, 39, 32,116,104,101,110, 10, 32, 32,101,114,114, 111,114, 40, 34, 35,105,110,118, 97,108,105,100, 32,100,101, 102,105,110,101, 34, 41, 10, 32,101,110,100, 10, 10, 32, 97, 112,112,101,110,100, 40,116, 41, 10, 32,114,101,116,117,114, 110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32, 67,111,110, 115,116,114,117, 99,116,111,114, 10, 45, 45, 32, 69,120,112, 101, 99,116,115, 32, 97, 32,115,116,114,105,110,103, 32,114, 101,112,114,101,115,101,110,116,105,110,103, 32,116,104,101, 32, 99,111,110,115,116, 97,110,116, 32,110, 97,109,101, 10, 102,117,110, 99,116,105,111,110, 32, 68,101,102,105,110,101, 32, 40,110, 41, 10, 32,114,101,116,117,114,110, 32, 95, 68, 101,102,105,110,101,123, 10, 32, 32,110, 97,109,101, 32, 61, 32,110, 10, 32,125, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/define.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32,101,110,117,109,101, 114, 97,116,101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87, 114,105,116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101, 109, 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73,100, 58, 32,101,110,117,109,101,114, 97,116,101, 46,108, 117, 97, 44,118, 32, 49, 46, 51, 32, 50, 48, 48, 48, 47, 48, 49, 47, 50, 52, 32, 50, 48, 58, 52, 49, 58, 49, 53, 32, 99, 101,108,101,115, 32, 69,120,112, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111,100,101, 32,105,115, 32,102,114, 101,101, 32,115,111,102,116,119, 97,114,101, 59, 32,121,111, 117, 32, 99, 97,110, 32,114,101,100,105,115,116,114,105, 98, 117,116,101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109, 111,100,105,102,121, 32,105,116, 46, 10, 45, 45, 32, 84,104, 101, 32,115,111,102,116,119, 97,114,101, 32,112,114,111,118, 105,100,101,100, 32,104,101,114,101,117,110,100,101,114, 32, 105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97,117,116,104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98,108,105,103, 97,116,105,111,110, 32, 116,111, 32,112,114,111,118,105,100,101, 32,109, 97,105,110, 116,101,110, 97,110, 99,101, 44, 32,115,117,112,112,111,114, 116, 44, 32,117,112,100, 97,116,101,115, 44, 10, 45, 45, 32, 101,110,104, 97,110, 99,101,109,101,110,116,115, 44, 32,111, 114, 32,109,111,100,105,102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 45, 45, 32, 69,110,117,109,101,114, 97,116, 101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114, 101,115,101,110,116,115, 32,101,110,117,109,101,114, 97,116, 105,111,110, 10, 45, 45, 32, 84,104,101, 32,102,111,108,108, 111,119,105,110,103, 32,102,105,101,108,100,115, 32, 97,114, 101, 32,115,116,111,114,101,100, 58, 10, 45, 45, 32, 32, 32, 32,123,105,125, 32, 61, 32,108,105,115,116, 32,111,102, 32, 99,111,110,115,116, 97,110,116, 32,110, 97,109,101,115, 10, 99,108, 97,115,115, 69,110,117,109,101,114, 97,116,101, 32, 61, 32,123, 10,125, 10, 99,108, 97,115,115, 69,110,117,109, 101,114, 97,116,101, 46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97,115,115, 69,110,117,109,101,114, 97,116,101, 10,115,101,116,109,101,116, 97,116, 97, 98,108,101, 40, 99, 108, 97,115,115, 69,110,117,109,101,114, 97,116,101, 44, 99, 108, 97,115,115, 70,101, 97,116,117,114,101, 41, 10, 10, 45, 45, 32,114,101,103,105,115,116,101,114, 32,101,110,117,109, 101,114, 97,116,105,111,110, 10,102,117,110, 99,116,105,111, 110, 32, 99,108, 97,115,115, 69,110,117,109,101,114, 97,116, 101, 58,114,101,103,105,115,116,101,114, 32, 40,112,114,101, 41, 10, 9,105,102, 32,110,111,116, 32,115,101,108,102, 58, 99,104,101, 99,107, 95,112,117, 98,108,105, 99, 95, 97, 99, 99,101,115,115, 40, 41, 32,116,104,101,110, 10, 9, 9,114, 101,116,117,114,110, 10, 9,101,110,100, 10, 32,112,114,101, 32, 61, 32,112,114,101, 32,111,114, 32, 39, 39, 10, 32,108, 111, 99, 97,108, 32,110,115,112, 97, 99,101, 32, 61, 32,103, 101,116,110, 97,109,101,115,112, 97, 99,101, 40, 99,108, 97, 115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114, 114, 41, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32, 119,104,105,108,101, 32,115,101,108,102, 91,105, 93, 32,100, 111, 10, 32, 9,105,102, 32,115,101,108,102, 46,108,110, 97, 109,101,115, 91,105, 93, 32, 97,110,100, 32,115,101,108,102, 46,108,110, 97,109,101,115, 91,105, 93, 32,126, 61, 32, 34, 34, 32,116,104,101,110, 10, 9, 10, 9, 9,111,117,116,112, 117,116, 40,112,114,101, 46, 46, 39,116,111,108,117, 97, 95, 99,111,110,115,116, 97,110,116, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101,108,102, 46,108,110, 97,109, 101,115, 91,105, 93, 46, 46, 39, 34, 44, 39, 46, 46,110,115, 112, 97, 99,101, 46, 46,115,101,108,102, 91,105, 93, 46, 46, 39, 41, 59, 39, 41, 10, 9,101,110,100, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 80,114,105,110,116, 32,109,101,116,104,111, 100, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115, 115, 69,110,117,109,101,114, 97,116,101, 58,112,114,105,110, 116, 32, 40,105,100,101,110,116, 44, 99,108,111,115,101, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 69,110,117,109,101,114, 97,116,101,123, 34, 41, 10, 32, 112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 110, 97,109,101, 32, 61, 32, 34, 46, 46,115,101,108,102, 46, 110, 97,109,101, 41, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105,108,101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10, 32, 32,112,114,105,110,116, 40,105,100, 101,110,116, 46, 46, 34, 32, 39, 34, 46, 46,115,101,108,102, 91,105, 93, 46, 46, 34, 39, 40, 34, 46, 46,115,101,108,102, 46,108,110, 97,109,101,115, 91,105, 93, 46, 46, 34, 41, 44, 34, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101, 110,100, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34,125, 34, 46, 46, 99,108,111,115,101, 41, 10,101, 110,100, 10, 10, 45, 45, 32, 73,110,116,101,114,110, 97,108, 32, 99,111,110,115,116,114,117, 99,116,111,114, 10,102,117, 110, 99,116,105,111,110, 32, 95, 69,110,117,109,101,114, 97, 116,101, 32, 40,116, 44,118, 97,114,110, 97,109,101, 41, 10, 32,115,101,116,109,101,116, 97,116, 97, 98,108,101, 40,116, 44, 99,108, 97,115,115, 69,110,117,109,101,114, 97,116,101, 41, 10, 32, 97,112,112,101,110,100, 40,116, 41, 10, 32, 97, 112,112,101,110,100,101,110,117,109, 40,116, 41, 10, 9, 32, 105,102, 32,118, 97,114,110, 97,109,101, 32, 97,110,100, 32, 118, 97,114,110, 97,109,101, 32,126, 61, 32, 34, 34, 32,116, 104,101,110, 10, 9, 9,105,102, 32,116, 46,110, 97,109,101, 32,126, 61, 32, 34, 34, 32,116,104,101,110, 10, 9, 9, 9, 86, 97,114,105, 97, 98,108,101, 40,116, 46,110, 97,109,101, 46, 46, 34, 32, 34, 46, 46,118, 97,114,110, 97,109,101, 41, 10, 9, 9,101,108,115,101, 10, 9, 9, 9,108,111, 99, 97, 108, 32,110,115, 32, 61, 32,103,101,116, 99,117,114,114,110, 97,109,101,115,112, 97, 99,101, 40, 41, 10, 9, 9, 9,119, 97,114,110,105,110,103, 40, 34, 86, 97,114,105, 97, 98,108, 101, 32, 34, 46, 46,110,115, 46, 46,118, 97,114,110, 97,109, 101, 46, 46, 34, 32,111,102, 32,116,121,112,101, 32, 60, 97, 110,111,110,121,109,111,117,115, 32,101,110,117,109, 62, 32, 105,115, 32,100,101, 99,108, 97,114,101,100, 32, 97,115, 32, 114,101, 97,100, 45,111,110,108,121, 34, 41, 10, 9, 9, 9, 86, 97,114,105, 97, 98,108,101, 40, 34,116,111,108,117, 97, 95,114,101, 97,100,111,110,108,121, 32,105,110,116, 32, 34, 46, 46,118, 97,114,110, 97,109,101, 41, 10, 9, 9,101,110, 100, 10, 9,101,110,100, 10, 9, 32,108,111, 99, 97,108, 32, 112, 97,114,101,110,116, 32, 61, 32, 99,108, 97,115,115, 67, 111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 10, 9, 32,105,102, 32,112, 97,114,101,110,116, 32,116,104,101,110, 10, 9, 9,116, 46, 97, 99, 99,101,115,115, 32, 61, 32,112, 97,114,101,110,116, 46, 99,117,114,114, 95,109,101,109, 98, 101,114, 95, 97, 99, 99,101,115,115, 10, 9, 9,116, 46,103, 108,111, 98, 97,108, 95, 97, 99, 99,101,115,115, 32, 61, 32, 116, 58, 99,104,101, 99,107, 95,112,117, 98,108,105, 99, 95, 97, 99, 99,101,115,115, 40, 41, 10, 9, 32,101,110,100, 10, 114,101,116,117,114,110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32, 67,111,110,115,116,114,117, 99,116,111,114, 10, 45, 45, 32, 69,120,112,101, 99,116,115, 32, 97, 32,115,116,114, 105,110,103, 32,114,101,112,114,101,115,101,110,116,105,110, 103, 32,116,104,101, 32,101,110,117,109,101,114, 97,116,101, 32, 98,111,100,121, 10,102,117,110, 99,116,105,111,110, 32, 69,110,117,109,101,114, 97,116,101, 32, 40,110, 44, 98, 44, 118, 97,114,110, 97,109,101, 41, 10, 9, 98, 32, 61, 32,115, 116,114,105,110,103, 46,103,115,117, 98, 40, 98, 44, 32, 34, 44, 91, 37,115, 92,110, 93, 42,125, 34, 44, 32, 34, 92,110, 125, 34, 41, 32, 45, 45, 32,101,108,105,109,105,110, 97,116, 101, 32,108, 97,115,116, 32, 39, 44, 39, 10, 32,108,111, 99, 97,108, 32,116, 32, 61, 32,115,112,108,105,116, 40,115,116, 114,115,117, 98, 40, 98, 44, 50, 44, 45, 50, 41, 44, 39, 44, 39, 41, 32, 45, 45, 32,101,108,105,109,105,110, 97,116,101, 32, 98,114, 97, 99,101,115, 10, 32,108,111, 99, 97,108, 32, 105, 32, 61, 32, 49, 10, 32,108,111, 99, 97,108, 32,101, 32, 61, 32,123,110, 61, 48,125, 10, 32,119,104,105,108,101, 32, 116, 91,105, 93, 32,100,111, 10, 32, 32,108,111, 99, 97,108, 32,116,116, 32, 61, 32,115,112,108,105,116, 40,116, 91,105, 93, 44, 39, 61, 39, 41, 32, 32, 45, 45, 32,100,105,115, 99, 97,114,100, 32,105,110,105,116,105, 97,108, 32,118, 97,108, 117,101, 10, 32, 32,101, 46,110, 32, 61, 32,101, 46,110, 32, 43, 32, 49, 10, 32, 32,101, 91,101, 46,110, 93, 32, 61, 32, 116,116, 91, 49, 93, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32, 45, 45, 32,115,101,116, 32,108, 117, 97, 32,110, 97,109,101,115, 10, 32,105, 32, 32, 61, 32, 49, 10, 32,101, 46,108,110, 97,109,101,115, 32, 61, 32,123, 125, 10, 32,108,111, 99, 97,108, 32,110,115, 32, 61, 32,103, 101,116, 99,117,114,114,110, 97,109,101,115,112, 97, 99,101, 40, 41, 10, 32,119,104,105,108,101, 32,101, 91,105, 93, 32, 100,111, 10, 32, 32,108,111, 99, 97,108, 32,116, 32, 61, 32, 115,112,108,105,116, 40,101, 91,105, 93, 44, 39, 64, 39, 41, 10, 32, 32,101, 91,105, 93, 32, 61, 32,116, 91, 49, 93, 10, 9, 9,105,102, 32,110,111,116, 32,116, 91, 50, 93, 32,116, 104,101,110, 10, 9, 9, 32,116, 91, 50, 93, 32, 61, 32, 97, 112,112,108,121,114,101,110, 97,109,105,110,103, 40,116, 91, 49, 93, 41, 10, 9, 9,101,110,100, 10, 32, 32,101, 46,108, 110, 97,109,101,115, 91,105, 93, 32, 61, 32,116, 91, 50, 93, 32,111,114, 32,116, 91, 49, 93, 10, 32, 32, 95,103,108,111, 98, 97,108, 95,101,110,117,109,115, 91, 32,110,115, 46, 46, 101, 91,105, 93, 32, 93, 32, 61, 32, 40,110,115, 46, 46,101, 91,105, 93, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 9,101, 46,110, 97,109,101, 32, 61, 32, 110, 10, 9,105,102, 32,110, 32,126, 61, 32, 34, 34, 32,116, 104,101,110, 10, 9, 9, 84,121,112,101,100,101,102, 40, 34, 105,110,116, 32, 34, 46, 46,110, 41, 10, 9,101,110,100, 10, 32,114,101,116,117,114,110, 32, 95, 69,110,117,109,101,114, 97,116,101, 40,101, 44, 32,118, 97,114,110, 97,109,101, 41, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/enumerate.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32,100,101, 99,108, 97, 114, 97,116,105,111,110, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114,105,116,116,101,110, 32, 98,121, 32, 87, 97,108, 100,101,109, 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73,100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105, 115, 32, 99,111,100,101, 32,105,115, 32,102,114,101,101, 32, 115,111,102,116,119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32,114,101,100,105,115,116,114,105, 98,117,116,101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109,111,100,105, 102,121, 32,105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115, 111,102,116,119, 97,114,101, 32,112,114,111,118,105,100,101, 100, 32,104,101,114,101,117,110,100,101,114, 32,105,115, 32, 111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104, 101, 32, 97,117,116,104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98,108,105,103, 97,116,105,111,110, 32,116,111, 32, 112,114,111,118,105,100,101, 32,109, 97,105,110,116,101,110, 97,110, 99,101, 44, 32,115,117,112,112,111,114,116, 44, 32, 117,112,100, 97,116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,101,109,101,110,116,115, 44, 32,111,114, 32,109, 111,100,105,102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 45, 45, 32, 68,101, 99,108, 97,114, 97,116,105,111,110, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114,101, 115,101,110,116,115, 32,118, 97,114,105, 97, 98,108,101, 44, 32,102,117,110, 99,116,105,111,110, 44, 32,111,114, 32, 97, 114,103,117,109,101,110,116, 32,100,101, 99,108, 97,114, 97, 116,105,111,110, 46, 10, 45, 45, 32, 83,116,111,114,101,115, 32,116,104,101, 32,102,111,108,108,111,119,105,110,103, 32, 102,105,101,108,100,115, 58, 10, 45, 45, 32, 32,109,111,100, 32, 32, 61, 32,116,121,112,101, 32,109,111,100,105,102,105, 101,114,115, 10, 45, 45, 32, 32,116,121,112,101, 32, 61, 32, 116,121,112,101, 10, 45, 45, 32, 32,112,116,114, 32, 32, 61, 32, 34, 42, 34, 32,111,114, 32, 34, 38, 34, 44, 32,105,102, 32,114,101,112,114,101,115,101,110,116,105,110,103, 32, 97, 32,112,111,105,110,116,101,114, 32,111,114, 32, 97, 32,114, 101,102,101,114,101,110, 99,101, 10, 45, 45, 32, 32,110, 97, 109,101, 32, 61, 32,110, 97,109,101, 10, 45, 45, 32, 32,100, 105,109, 32, 32, 61, 32,100,105,109,101,110,115,105,111,110, 44, 32,105,102, 32, 97, 32,118,101, 99,116,111,114, 10, 45, 45, 32, 32,100,101,102, 32, 32, 61, 32,100,101,102, 97,117, 108,116, 32,118, 97,108,117,101, 44, 32,105,102, 32, 97,110, 121, 32, 40,111,110,108,121, 32,102,111,114, 32, 97,114,103, 117,109,101,110,116,115, 41, 10, 45, 45, 32, 32,114,101,116, 32, 32, 61, 32, 34, 42, 34, 32,111,114, 32, 34, 38, 34, 44, 32,105,102, 32,118, 97,108,117,101, 32,105,115, 32,116,111, 32, 98,101, 32,114,101,116,117,114,110,101,100, 32, 40,111, 110,108,121, 32,102,111,114, 32, 97,114,103,117,109,101,110, 116,115, 41, 10, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, 32, 61, 32,123, 10, 32,109,111,100, 32, 61, 32, 39, 39, 44, 10, 32,116,121,112,101, 32, 61, 32, 39, 39, 44, 10, 32,112,116,114, 32, 61, 32, 39, 39, 44, 10, 32, 110, 97,109,101, 32, 61, 32, 39, 39, 44, 10, 32,100,105,109, 32, 61, 32, 39, 39, 44, 10, 32,114,101,116, 32, 61, 32, 39, 39, 44, 10, 32,100,101,102, 32, 61, 32, 39, 39, 10,125, 10, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116,105,111, 110, 46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97, 115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, 10,115, 101,116,109,101,116, 97,116, 97, 98,108,101, 40, 99,108, 97, 115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, 44, 99, 108, 97,115,115, 70,101, 97,116,117,114,101, 41, 10, 10, 45, 45, 32, 67,114,101, 97,116,101, 32, 97,110, 32,117,110,105, 113,117,101, 32,118, 97,114,105, 97, 98,108,101, 32,110, 97, 109,101, 10,102,117,110, 99,116,105,111,110, 32, 99,114,101, 97,116,101, 95,118, 97,114,110, 97,109,101, 32, 40, 41, 10, 32,105,102, 32,110,111,116, 32, 95,118, 97,114,110,117,109, 98,101,114, 32,116,104,101,110, 32, 95,118, 97,114,110,117, 109, 98,101,114, 32, 61, 32, 48, 32,101,110,100, 10, 32, 95, 118, 97,114,110,117,109, 98,101,114, 32, 61, 32, 95,118, 97, 114,110,117,109, 98,101,114, 32, 43, 32, 49, 10, 32,114,101, 116,117,114,110, 32, 34,116,111,108,117, 97, 95,118, 97,114, 95, 34, 46, 46, 95,118, 97,114,110,117,109, 98,101,114, 10, 101,110,100, 10, 10, 45, 45, 32, 67,104,101, 99,107, 32,100, 101, 99,108, 97,114, 97,116,105,111,110, 32,110, 97,109,101, 10, 45, 45, 32, 73,116, 32, 97,108,115,111, 32,105,100,101, 110,116,105,102,105,101,115, 32,100,101,102, 97,117,108,116, 32,118, 97,108,117,101,115, 10,102,117,110, 99,116,105,111, 110, 32, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116, 105,111,110, 58, 99,104,101, 99,107,110, 97,109,101, 32, 40, 41, 10, 10, 32,105,102, 32,115,116,114,115,117, 98, 40,115, 101,108,102, 46,110, 97,109,101, 44, 49, 44, 49, 41, 32, 61, 61, 32, 39, 91, 39, 32, 97,110,100, 32,110,111,116, 32,102, 105,110,100,116,121,112,101, 40,115,101,108,102, 46,116,121, 112,101, 41, 32,116,104,101,110, 10, 32, 32,115,101,108,102, 46,110, 97,109,101, 32, 61, 32,115,101,108,102, 46,116,121, 112,101, 46, 46,115,101,108,102, 46,110, 97,109,101, 10, 32, 32,108,111, 99, 97,108, 32,109, 32, 61, 32,115,112,108,105, 116, 40,115,101,108,102, 46,109,111,100, 44, 39, 37,115, 37, 115, 42, 39, 41, 10, 32, 32,115,101,108,102, 46,116,121,112, 101, 32, 61, 32,109, 91,109, 46,110, 93, 10, 32, 32,115,101, 108,102, 46,109,111,100, 32, 61, 32, 99,111,110, 99, 97,116, 40,109, 44, 49, 44,109, 46,110, 45, 49, 41, 10, 32,101,110, 100, 10, 10, 32,108,111, 99, 97,108, 32,116, 32, 61, 32,115, 112,108,105,116, 40,115,101,108,102, 46,110, 97,109,101, 44, 39, 61, 39, 41, 10, 32,105,102, 32,116, 46,110, 61, 61, 50, 32,116,104,101,110, 10, 32, 32,115,101,108,102, 46,110, 97, 109,101, 32, 61, 32,116, 91, 49, 93, 10, 32, 32,115,101,108, 102, 46,100,101,102, 32, 61, 32,102,105,110,100, 95,101,110, 117,109, 95,118, 97,114, 40,116, 91,116, 46,110, 93, 41, 10, 32,101,110,100, 10, 10, 32,108,111, 99, 97,108, 32, 98, 44, 101, 44,100, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 101,108,102, 46,110, 97,109,101, 44, 34, 37, 91, 40, 46, 45, 41, 37, 93, 34, 41, 10, 32,105,102, 32, 98, 32,116,104,101, 110, 10, 32, 32,115,101,108,102, 46,110, 97,109,101, 32, 61, 32,115,116,114,115,117, 98, 40,115,101,108,102, 46,110, 97, 109,101, 44, 49, 44, 98, 45, 49, 41, 10, 32, 32,115,101,108, 102, 46,100,105,109, 32, 61, 32,102,105,110,100, 95,101,110, 117,109, 95,118, 97,114, 40,100, 41, 10, 32,101,110,100, 10, 10, 10, 32,105,102, 32,115,101,108,102, 46,116,121,112,101, 32,126, 61, 32, 39, 39, 32, 97,110,100, 32,115,101,108,102, 46,116,121,112,101, 32,126, 61, 32, 39,118,111,105,100, 39, 32, 97,110,100, 32,115,101,108,102, 46,110, 97,109,101, 32, 61, 61, 32, 39, 39, 32,116,104,101,110, 10, 32, 32,115,101, 108,102, 46,110, 97,109,101, 32, 61, 32, 99,114,101, 97,116, 101, 95,118, 97,114,110, 97,109,101, 40, 41, 10, 32,101,108, 115,101,105,102, 32,115,101,108,102, 46,107,105,110,100, 61, 61, 39,118, 97,114, 39, 32,116,104,101,110, 10, 32, 32,105, 102, 32,115,101,108,102, 46,116,121,112,101, 61, 61, 39, 39, 32, 97,110,100, 32,115,101,108,102, 46,110, 97,109,101,126, 61, 39, 39, 32,116,104,101,110, 10, 32, 32, 32,115,101,108, 102, 46,116,121,112,101, 32, 61, 32,115,101,108,102, 46,116, 121,112,101, 46, 46,115,101,108,102, 46,110, 97,109,101, 10, 32, 32, 32,115,101,108,102, 46,110, 97,109,101, 32, 61, 32, 99,114,101, 97,116,101, 95,118, 97,114,110, 97,109,101, 40, 41, 10, 32, 32,101,108,115,101,105,102, 32,102,105,110,100, 116,121,112,101, 40,115,101,108,102, 46,110, 97,109,101, 41, 32,116,104,101,110, 10, 32, 32, 32,105,102, 32,115,101,108, 102, 46,116,121,112,101, 61, 61, 39, 39, 32,116,104,101,110, 32,115,101,108,102, 46,116,121,112,101, 32, 61, 32,115,101, 108,102, 46,110, 97,109,101, 10, 32, 32, 32,101,108,115,101, 32,115,101,108,102, 46,116,121,112,101, 32, 61, 32,115,101, 108,102, 46,116,121,112,101, 46, 46, 39, 32, 39, 46, 46,115, 101,108,102, 46,110, 97,109,101, 32,101,110,100, 10, 32, 32, 32,115,101,108,102, 46,110, 97,109,101, 32, 61, 32, 99,114, 101, 97,116,101, 95,118, 97,114,110, 97,109,101, 40, 41, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32, 97,100,106,117,115,116, 32,116,121,112,101, 32,111,102, 32,115,116,114,105,110,103, 10, 32,105,102, 32,115,101,108, 102, 46,116,121,112,101, 32, 61, 61, 32, 39, 99,104, 97,114, 39, 32, 97,110,100, 32,115,101,108,102, 46,100,105,109, 32, 126, 61, 32, 39, 39, 32,116,104,101,110, 10, 9, 32,115,101, 108,102, 46,116,121,112,101, 32, 61, 32, 39, 99,104, 97,114, 42, 39, 10, 32,101,110,100, 10, 10, 9,105,102, 32,115,101, 108,102, 46,107,105,110,100, 32, 97,110,100, 32,115,101,108, 102, 46,107,105,110,100, 32, 61, 61, 32, 39,118, 97,114, 39, 32,116,104,101,110, 10, 9, 9,115,101,108,102, 46,110, 97, 109,101, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,115,101,108,102, 46,110, 97,109,101, 44, 32, 34, 58, 46, 42, 36, 34, 44, 32, 34, 34, 41, 32, 45, 45, 32, 63, 63, 63, 10, 9,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 67,104,101, 99,107, 32,100,101, 99,108, 97,114, 97,116,105, 111,110, 32,116,121,112,101, 10, 45, 45, 32, 83,117, 98,115, 116,105,116,117,116,101,115, 32,116,121,112,101,100,101,102, 39,115, 46, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, 58, 99,104,101, 99,107,116,121,112,101, 32, 40, 41, 10, 10, 32, 45, 45, 32, 99,104,101, 99,107, 32,105,102, 32,116,104,101, 114,101, 32,105,115, 32, 97, 32,112,111,105,110,116,101,114, 32,116,111, 32, 98, 97,115,105, 99, 32,116,121,112,101, 10, 32,108,111, 99, 97,108, 32, 98, 97,115,105, 99, 32, 61, 32, 105,115, 98, 97,115,105, 99, 40,115,101,108,102, 46,116,121, 112,101, 41, 10, 32,105,102, 32,115,101,108,102, 46,107,105, 110,100, 32, 61, 61, 32, 39,102,117,110, 99, 39, 32, 97,110, 100, 32, 98, 97,115,105, 99, 61, 61, 39,110,117,109, 98,101, 114, 39, 32, 97,110,100, 32,115,116,114,105,110,103, 46,102, 105,110,100, 40,115,101,108,102, 46,112,116,114, 44, 32, 34, 37, 42, 34, 41, 32,116,104,101,110, 10, 32, 9,115,101,108, 102, 46,116,121,112,101, 32, 61, 32, 39, 95,117,115,101,114, 100, 97,116, 97, 39, 10, 32, 9,115,101,108,102, 46,112,116, 114, 32, 61, 32, 34, 34, 10, 32,101,110,100, 10, 32,105,102, 32, 98, 97,115,105, 99, 32, 97,110,100, 32,115,101,108,102, 46,112,116,114,126, 61, 39, 39, 32,116,104,101,110, 10, 32, 32,115,101,108,102, 46,114,101,116, 32, 61, 32,115,101,108, 102, 46,112,116,114, 10, 32, 32,115,101,108,102, 46,112,116, 114, 32, 61, 32,110,105,108, 10, 32, 32,105,102, 32,105,115, 98, 97,115,105, 99, 40,115,101,108,102, 46,116,121,112,101, 41, 32, 61, 61, 32, 39,110,117,109, 98,101,114, 39, 32,116, 104,101,110, 10, 32, 32, 9,115,101,108,102, 46,114,101,116, 117,114,110, 95,117,115,101,114,100, 97,116, 97, 32, 61, 32, 116,114,117,101, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32, 99,104,101, 99,107, 32,105,102, 32, 116,104,101,114,101, 32,105,115, 32, 97,114,114, 97,121, 32, 116,111, 32, 98,101, 32,114,101,116,117,114,110,101,100, 10, 32,105,102, 32,115,101,108,102, 46,100,105,109,126, 61, 39, 39, 32, 97,110,100, 32,115,101,108,102, 46,114,101,116,126, 61, 39, 39, 32,116,104,101,110, 10, 32, 32, 32,101,114,114, 111,114, 40, 39, 35,105,110,118, 97,108,105,100, 32,112, 97, 114, 97,109,101,116,101,114, 58, 32, 99, 97,110,110,111,116, 32,114,101,116,117,114,110, 32, 97,110, 32, 97,114,114, 97, 121, 32,111,102, 32,118, 97,108,117,101,115, 39, 41, 10, 32, 101,110,100, 10, 32, 45, 45, 32,114,101,115,116,111,114,101, 32, 39,118,111,105,100, 42, 39, 32, 97,110,100, 32, 39,115, 116,114,105,110,103, 42, 39, 10, 32,105,102, 32,115,101,108, 102, 46,116,121,112,101, 32, 61, 61, 32, 39, 95,117,115,101, 114,100, 97,116, 97, 39, 32,116,104,101,110, 32,115,101,108, 102, 46,116,121,112,101, 32, 61, 32, 39,118,111,105,100, 42, 39, 10, 32,101,108,115,101,105,102, 32,115,101,108,102, 46, 116,121,112,101, 32, 61, 61, 32, 39, 95, 99,115,116,114,105, 110,103, 39, 32,116,104,101,110, 32,115,101,108,102, 46,116, 121,112,101, 32, 61, 32, 39, 99,104, 97,114, 42, 39, 10, 32, 101,108,115,101,105,102, 32,115,101,108,102, 46,116,121,112, 101, 32, 61, 61, 32, 39, 95,108,115,116, 97,116,101, 39, 32, 116,104,101,110, 32,115,101,108,102, 46,116,121,112,101, 32, 61, 32, 39,108,117, 97, 95, 83,116, 97,116,101, 42, 39, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,114,101,115,111,108, 118,101, 32,116,121,112,101,115, 32,105,110,115,105,100,101, 32,116,104,101, 32,116,101,109,112,108, 97,116,101,115, 10, 32,105,102, 32,115,101,108,102, 46,116,121,112,101, 32,116, 104,101,110, 10, 9, 32,115,101,108,102, 46,116,121,112,101, 32, 61, 32,114,101,115,111,108,118,101, 95,116,101,109,112, 108, 97,116,101, 95,116,121,112,101,115, 40,115,101,108,102, 46,116,121,112,101, 41, 10, 32,101,110,100, 10, 10, 45, 45, 10, 45, 45, 32, 45, 45, 32,105,102, 32,114,101,116,117,114, 110,105,110,103, 32,118, 97,108,117,101, 44, 32, 97,117,116, 111,109, 97,116,105, 99, 97,108,108,121, 32,115,101,116, 32, 100,101,102, 97,117,108,116, 32,118, 97,108,117,101, 10, 45, 45, 32,105,102, 32,115,101,108,102, 46,114,101,116, 32,126, 61, 32, 39, 39, 32, 97,110,100, 32,115,101,108,102, 46,100, 101,102, 32, 61, 61, 32, 39, 39, 32,116,104,101,110, 10, 45, 45, 32, 32,115,101,108,102, 46,100,101,102, 32, 61, 32, 39, 48, 39, 10, 45, 45, 32,101,110,100, 10, 45, 45, 10, 10,101, 110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,114,101, 115,111,108,118,101, 95,116,101,109,112,108, 97,116,101, 95, 116,121,112,101,115, 40,116,121,112,101, 41, 10, 10, 9,105, 102, 32,105,115, 98, 97,115,105, 99, 40,116,121,112,101, 41, 32,116,104,101,110, 10, 9, 9,114,101,116,117,114,110, 32, 116,121,112,101, 10, 9,101,110,100, 10, 9,108,111, 99, 97, 108, 32, 98, 44, 95, 44,109, 32, 61, 32,115,116,114,105,110, 103, 46,102,105,110,100, 40,116,121,112,101, 44, 32, 34, 40, 37, 98, 60, 62, 41, 34, 41, 10, 9,105,102, 32, 98, 32,116, 104,101,110, 10, 10, 9, 9,109, 32, 61, 32,115,112,108,105, 116, 95, 99, 95,116,111,107,101,110,115, 40,115,116,114,105, 110,103, 46,115,117, 98, 40,109, 44, 32, 50, 44, 32, 45, 50, 41, 44, 32, 34, 44, 34, 41, 10, 9, 9,102,111,114, 32,105, 61, 49, 44, 32,116, 97, 98,108,101, 46,103,101,116,110, 40, 109, 41, 32,100,111, 10, 9, 9, 9,109, 91,105, 93, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,109, 91, 105, 93, 44, 34, 37,115, 42, 40, 91, 37, 42, 38, 93, 41, 34, 44, 32, 34, 37, 49, 34, 41, 10, 9, 9, 9,105,102, 32,110, 111,116, 32,105,115,101,110,117,109, 40,109, 91,105, 93, 41, 32,116,104,101,110, 32, 95, 44, 32,109, 91,105, 93, 32, 61, 32, 97,112,112,108,121,116,121,112,101,100,101,102, 40, 34, 34, 44, 32,109, 91,105, 93, 41, 32,101,110,100, 10, 9, 9, 9,109, 91,105, 93, 32, 61, 32,102,105,110,100,116,121,112, 101, 40,109, 91,105, 93, 41, 32,111,114, 32,109, 91,105, 93, 10, 9, 9, 9,109, 91,105, 93, 32, 61, 32,114,101,115,111, 108,118,101, 95,116,101,109,112,108, 97,116,101, 95,116,121, 112,101,115, 40,109, 91,105, 93, 41, 10, 9, 9,101,110,100, 10, 10, 9, 9,108,111, 99, 97,108, 32, 98, 44,105, 10, 9, 9,116,121,112,101, 44, 98, 44,105, 32, 61, 32, 98,114,101, 97,107, 95,116,101,109,112,108, 97,116,101, 40,116,121,112, 101, 41, 10, 45, 45,112,114,105,110,116, 40, 34, 99,111,110, 99, 97,116, 32,105,115, 32, 34, 44, 99,111,110, 99, 97,116, 40,109, 44, 32, 49, 44, 32,109, 46,110, 41, 41, 10, 9, 9, 108,111, 99, 97,108, 32,116,101,109,112,108, 97,116,101, 95, 112, 97,114,116, 32, 61, 32, 34, 60, 34, 46, 46, 99,111,110, 99, 97,116, 40,109, 44, 32, 49, 44, 32,109, 46,110, 44, 32, 34, 44, 34, 41, 46, 46, 34, 62, 34, 10, 9, 9,116,121,112, 101, 32, 61, 32,114,101, 98,117,105,108,100, 95,116,101,109, 112,108, 97,116,101, 40,116,121,112,101, 44, 32, 98, 44, 32, 116,101,109,112,108, 97,116,101, 95,112, 97,114,116, 41, 10, 9, 9,116,121,112,101, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,116,121,112,101, 44, 32, 34, 62, 62, 34, 44, 32, 34, 62, 32, 62, 34, 41, 10, 9,101,110,100, 10, 9,114,101,116,117,114,110, 32,116,121,112,101, 10,101,110, 100, 10, 10,102,117,110, 99,116,105,111,110, 32, 98,114,101, 97,107, 95,116,101,109,112,108, 97,116,101, 40,115, 41, 10, 9,108,111, 99, 97,108, 32, 98, 44,101, 44,116,105,109,112, 108, 32, 61, 32,115,116,114,105,110,103, 46,102,105,110,100, 40,115, 44, 32, 34, 40, 37, 98, 60, 62, 41, 34, 41, 10, 9, 105,102, 32,116,105,109,112,108, 32,116,104,101,110, 10, 9, 9,115, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,115, 44, 32, 34, 37, 98, 60, 62, 34, 44, 32, 34, 34, 41, 10, 9, 9,114,101,116,117,114,110, 32,115, 44, 32, 98, 44, 32,116,105,109,112,108, 10, 9,101,108,115,101, 10, 9, 9,114,101,116,117,114,110, 32,115, 44, 32, 48, 44, 32,110, 105,108, 10, 9,101,110,100, 10,101,110,100, 10, 10,102,117, 110, 99,116,105,111,110, 32,114,101, 98,117,105,108,100, 95, 116,101,109,112,108, 97,116,101, 40,115, 44, 32, 98, 44, 32, 116,105,109,112,108, 41, 10, 10, 9,105,102, 32, 98, 32, 61, 61, 32, 48, 32,116,104,101,110, 10, 9, 9,114,101,116,117, 114,110, 32,115, 10, 9,101,110,100, 10, 10, 9,114,101,116, 117,114,110, 32,115,116,114,105,110,103, 46,115,117, 98, 40, 115, 44, 32, 49, 44, 32, 98, 45, 49, 41, 46, 46,116,105,109, 112,108, 46, 46,115,116,114,105,110,103, 46,115,117, 98, 40, 115, 44, 32, 98, 44, 32, 45, 49, 41, 10,101,110,100, 10, 10, 45, 45, 32, 80,114,105,110,116, 32,109,101,116,104,111,100, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, 58,112,114,105, 110,116, 32, 40,105,100,101,110,116, 44, 99,108,111,115,101, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 68,101, 99,108, 97,114, 97,116,105,111,110,123, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,109,111,100, 32, 32, 61, 32, 39, 34, 46, 46,115, 101,108,102, 46,109,111,100, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,116,121,112,101, 32, 61, 32, 39, 34, 46, 46,115,101,108, 102, 46,116,121,112,101, 46, 46, 34, 39, 44, 34, 41, 10, 32, 112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 112,116,114, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,112,116,114, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114, 105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,110, 97, 109,101, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105, 110,116, 40,105,100,101,110,116, 46, 46, 34, 32,100,105,109, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,100,105, 109, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,100,101,102, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,100,101,102, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105, 100,101,110,116, 46, 46, 34, 32,114,101,116, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,114,101,116, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101, 110,116, 46, 46, 34,125, 34, 46, 46, 99,108,111,115,101, 41, 10,101,110,100, 10, 10, 45, 45, 32, 99,104,101, 99,107, 32, 105,102, 32, 97,114,114, 97,121, 32,111,102, 32,118, 97,108, 117,101,115, 32, 97,114,101, 32,114,101,116,117,114,110,101, 100, 32,116,111, 32, 76,117, 97, 10,102,117,110, 99,116,105, 111,110, 32, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97, 116,105,111,110, 58,114,101,113,117,105,114,101, 99,111,108, 108,101, 99,116,105,111,110, 32, 40,116, 41, 10, 32,105,102, 32,115,101,108,102, 46,109,111,100, 32,126, 61, 32, 39, 99, 111,110,115,116, 39, 32, 97,110,100, 10, 9, 32, 32, 32, 32, 115,101,108,102, 46,100,105,109, 32, 97,110,100, 32,115,101, 108,102, 46,100,105,109, 32,126, 61, 32, 39, 39, 32, 97,110, 100, 10, 9, 9, 9, 9, 32,110,111,116, 32,105,115, 98, 97, 115,105, 99, 40,115,101,108,102, 46,116,121,112,101, 41, 32, 97,110,100, 10, 9, 9, 9, 9, 32,115,101,108,102, 46,112, 116,114, 32, 61, 61, 32, 39, 39, 32, 97,110,100, 32,115,101, 108,102, 58, 99,104,101, 99,107, 95,112,117, 98,108,105, 99, 95, 97, 99, 99,101,115,115, 40, 41, 32,116,104,101,110, 10, 9, 9,108,111, 99, 97,108, 32,116,121,112,101, 32, 61, 32, 103,115,117, 98, 40,115,101,108,102, 46,116,121,112,101, 44, 34, 37,115, 42, 99,111,110,115,116, 37,115, 43, 34, 44, 34, 34, 41, 10, 9, 9,116, 91,116,121,112,101, 93, 32, 61, 32, 34,116,111,108,117, 97, 95, 99,111,108,108,101, 99,116, 95, 34, 32, 46, 46, 32, 99,108,101, 97,110, 95,116,101,109,112, 108, 97,116,101, 40,116,121,112,101, 41, 10, 9, 9,114,101, 116,117,114,110, 32,116,114,117,101, 10, 9,101,110,100, 10, 9,114,101,116,117,114,110, 32,102, 97,108,115,101, 10,101, 110,100, 10, 10, 45, 45, 32,100,101, 99,108, 97,114,101, 32, 116, 97,103, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, 58, 100,101, 99,108,116,121,112,101, 32, 40, 41, 10, 10, 9,115, 101,108,102, 46,116,121,112,101, 32, 61, 32,116,121,112,101, 118, 97,114, 40,115,101,108,102, 46,116,121,112,101, 41, 10, 9,105,102, 32,115,116,114,102,105,110,100, 40,115,101,108, 102, 46,109,111,100, 44, 39, 99,111,110,115,116, 39, 41, 32, 116,104,101,110, 10, 9, 9,115,101,108,102, 46,116,121,112, 101, 32, 61, 32, 39, 99,111,110,115,116, 32, 39, 46, 46,115, 101,108,102, 46,116,121,112,101, 10, 9, 9,115,101,108,102, 46,109,111,100, 32, 61, 32,103,115,117, 98, 40,115,101,108, 102, 46,109,111,100, 44, 39, 99,111,110,115,116, 37,115, 42, 39, 44, 39, 39, 41, 10, 9,101,110,100, 10,101,110,100, 10, 10, 10, 45, 45, 32,111,117,116,112,117,116, 32,116,121,112, 101, 32, 99,104,101, 99,107,105,110,103, 10,102,117,110, 99, 116,105,111,110, 32, 99,108, 97,115,115, 68,101, 99,108, 97, 114, 97,116,105,111,110, 58,111,117,116, 99,104,101, 99,107, 116,121,112,101, 32, 40,110, 97,114,103, 41, 10, 32,108,111, 99, 97,108, 32,100,101,102, 10, 32,108,111, 99, 97,108, 32, 116, 32, 61, 32,105,115, 98, 97,115,105, 99, 40,115,101,108, 102, 46,116,121,112,101, 41, 10, 32,105,102, 32,115,101,108, 102, 46,100,101,102,126, 61, 39, 39, 32,116,104,101,110, 10, 32, 32,100,101,102, 32, 61, 32, 49, 10, 32,101,108,115,101, 10, 32, 32,100,101,102, 32, 61, 32, 48, 10, 32,101,110,100, 10, 32,105,102, 32,115,101,108,102, 46,100,105,109, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10, 9, 45, 45,105,102, 32,116, 61, 61, 39,115,116,114,105,110,103, 39, 32,116,104, 101,110, 10, 9, 45, 45, 9,114,101,116,117,114,110, 32, 39, 116,111,108,117, 97, 95,105,115,115,116,114,105,110,103, 97, 114,114, 97,121, 40,116,111,108,117, 97, 95, 83, 44, 39, 46, 46,110, 97,114,103, 46, 46, 39, 44, 39, 46, 46,100,101,102, 46, 46, 39, 44, 38,116,111,108,117, 97, 95,101,114,114, 41, 39, 10, 9, 45, 45,101,108,115,101, 10, 9,114,101,116,117, 114,110, 32, 39, 33,116,111,108,117, 97, 95,105,115,116, 97, 98,108,101, 40,116,111,108,117, 97, 95, 83, 44, 39, 46, 46, 110, 97,114,103, 46, 46, 39, 44, 48, 44, 38,116,111,108,117, 97, 95,101,114,114, 41, 39, 10, 32, 9, 45, 45,101,110,100, 10, 32,101,108,115,101,105,102, 32,116, 32,116,104,101,110, 10, 9,114,101,116,117,114,110, 32, 39, 33,116,111,108,117, 97, 95,105,115, 39, 46, 46,116, 46, 46, 39, 40,116,111,108, 117, 97, 95, 83, 44, 39, 46, 46,110, 97,114,103, 46, 46, 39, 44, 39, 46, 46,100,101,102, 46, 46, 39, 44, 38,116,111,108, 117, 97, 95,101,114,114, 41, 39, 10, 32,101,108,115,101, 10, 32, 32,108,111, 99, 97,108, 32,105,115, 95,102,117,110, 99, 32, 61, 32,103,101,116, 95,105,115, 95,102,117,110, 99,116, 105,111,110, 40,115,101,108,102, 46,116,121,112,101, 41, 10, 32, 32,105,102, 32,115,101,108,102, 46,112,116,114, 32, 61, 61, 32, 39, 38, 39, 32,111,114, 32,115,101,108,102, 46,112, 116,114, 32, 61, 61, 32, 39, 39, 32,116,104,101,110, 10, 32, 32, 9,114,101,116,117,114,110, 32, 39, 40,116,111,108,117, 97, 95,105,115,118, 97,108,117,101,110,105,108, 40,116,111, 108,117, 97, 95, 83, 44, 39, 46, 46,110, 97,114,103, 46, 46, 39, 44, 38,116,111,108,117, 97, 95,101,114,114, 41, 32,124, 124, 32, 33, 39, 46, 46,105,115, 95,102,117,110, 99, 46, 46, 39, 40,116,111,108,117, 97, 95, 83, 44, 39, 46, 46,110, 97, 114,103, 46, 46, 39, 44, 34, 39, 46, 46,115,101,108,102, 46, 116,121,112,101, 46, 46, 39, 34, 44, 39, 46, 46,100,101,102, 46, 46, 39, 44, 38,116,111,108,117, 97, 95,101,114,114, 41, 41, 39, 10, 32, 32,101,108,115,101, 10, 9,114,101,116,117, 114,110, 32, 39, 33, 39, 46, 46,105,115, 95,102,117,110, 99, 46, 46, 39, 40,116,111,108,117, 97, 95, 83, 44, 39, 46, 46, 110, 97,114,103, 46, 46, 39, 44, 34, 39, 46, 46,115,101,108, 102, 46,116,121,112,101, 46, 46, 39, 34, 44, 39, 46, 46,100, 101,102, 46, 46, 39, 44, 38,116,111,108,117, 97, 95,101,114, 114, 41, 39, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32, 99, 108, 97,115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, 58, 98,117,105,108,100,100,101, 99,108, 97,114, 97,116,105, 111,110, 32, 40,110, 97,114,103, 44, 32, 99,112,108,117,115, 112,108,117,115, 41, 10, 32,108,111, 99, 97,108, 32, 97,114, 114, 97,121, 32, 61, 32,115,101,108,102, 46,100,105,109, 32, 126, 61, 32, 39, 39, 32, 97,110,100, 32,116,111,110,117,109, 98,101,114, 40,115,101,108,102, 46,100,105,109, 41, 61, 61, 110,105,108, 10, 9,108,111, 99, 97,108, 32,108,105,110,101, 32, 61, 32, 34, 34, 10, 32,108,111, 99, 97,108, 32,112,116, 114, 32, 61, 32, 39, 39, 10, 32,108,111, 99, 97,108, 32,109, 111,100, 10, 32,108,111, 99, 97,108, 32,116,121,112,101, 32, 61, 32,115,101,108,102, 46,116,121,112,101, 10, 32,108,111, 99, 97,108, 32,110, 99,116,121,112,101, 32, 61, 32,103,115, 117, 98, 40,115,101,108,102, 46,116,121,112,101, 44, 39, 99, 111,110,115,116, 37,115, 43, 39, 44, 39, 39, 41, 10, 32,105, 102, 32,115,101,108,102, 46,100,105,109, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10, 9, 32,116,121,112,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46,116,121,112,101, 44, 39, 99,111,110,115,116, 37,115, 43, 39, 44, 39, 39, 41, 32, 32, 45, 45, 32,101,108,105,109,105,110, 97,116,101,115, 32, 99,111,110,115,116, 32,109,111,100,105,102,105,101,114, 32,102,111,114, 32, 97,114,114, 97,121,115, 10, 32,101,110, 100, 10, 32,105,102, 32,115,101,108,102, 46,112,116,114,126, 61, 39, 39, 32, 97,110,100, 32,110,111,116, 32,105,115, 98, 97,115,105, 99, 40,116,121,112,101, 41, 32,116,104,101,110, 32,112,116,114, 32, 61, 32, 39, 42, 39, 32,101,110,100, 10, 32,108,105,110,101, 32, 61, 32, 99,111,110, 99, 97,116,112, 97,114, 97,109, 40,108,105,110,101, 44, 34, 32, 34, 44,115, 101,108,102, 46,109,111,100, 44,116,121,112,101, 44,112,116, 114, 41, 10, 32,105,102, 32, 97,114,114, 97,121, 32,116,104, 101,110, 10, 32, 32,108,105,110,101, 32, 61, 32, 99,111,110, 99, 97,116,112, 97,114, 97,109, 40,108,105,110,101, 44, 39, 42, 39, 41, 10, 32,101,110,100, 10, 32,108,105,110,101, 32, 61, 32, 99,111,110, 99, 97,116,112, 97,114, 97,109, 40,108, 105,110,101, 44,115,101,108,102, 46,110, 97,109,101, 41, 10, 32,105,102, 32,115,101,108,102, 46,100,105,109, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10, 32, 32,105,102, 32,116, 111,110,117,109, 98,101,114, 40,115,101,108,102, 46,100,105, 109, 41,126, 61,110,105,108, 32,116,104,101,110, 10, 32, 32, 32,108,105,110,101, 32, 61, 32, 99,111,110, 99, 97,116,112, 97,114, 97,109, 40,108,105,110,101, 44, 39, 91, 39, 44,115, 101,108,102, 46,100,105,109, 44, 39, 93, 59, 39, 41, 10, 32, 32,101,108,115,101, 10, 9,105,102, 32, 99,112,108,117,115, 112,108,117,115, 32,116,104,101,110, 10, 9, 9,108,105,110, 101, 32, 61, 32, 99,111,110, 99, 97,116,112, 97,114, 97,109, 40,108,105,110,101, 44, 39, 32, 61, 32, 77,116,111,108,117, 97, 95,110,101,119, 40, 40, 39, 44,116,121,112,101, 44,112, 116,114, 44, 39, 41, 91, 39, 46, 46,115,101,108,102, 46,100, 105,109, 46, 46, 39, 93, 41, 59, 39, 41, 10, 9,101,108,115, 101, 10, 9, 9,108,105,110,101, 32, 61, 32, 99,111,110, 99, 97,116,112, 97,114, 97,109, 40,108,105,110,101, 44, 39, 32, 61, 32, 40, 39, 44,116,121,112,101, 44,112,116,114, 44, 39, 42, 41, 39, 44, 10, 9, 9, 39,109, 97,108,108,111, 99, 40, 40, 39, 44,115,101,108,102, 46,100,105,109, 44, 39, 41, 42, 115,105,122,101,111,102, 40, 39, 44,116,121,112,101, 44,112, 116,114, 44, 39, 41, 41, 59, 39, 41, 10, 9,101,110,100, 10, 32, 32,101,110,100, 10, 32,101,108,115,101, 10, 32, 32,108, 111, 99, 97,108, 32,116, 32, 61, 32,105,115, 98, 97,115,105, 99, 40,116,121,112,101, 41, 10, 32, 32,108,105,110,101, 32, 61, 32, 99,111,110, 99, 97,116,112, 97,114, 97,109, 40,108, 105,110,101, 44, 39, 32, 61, 32, 39, 41, 10, 32, 32,105,102, 32,116, 32, 61, 61, 32, 39,115,116, 97,116,101, 39, 32,116, 104,101,110, 10, 32, 32, 9,108,105,110,101, 32, 61, 32, 99, 111,110, 99, 97,116,112, 97,114, 97,109, 40,108,105,110,101, 44, 32, 39,116,111,108,117, 97, 95, 83, 59, 39, 41, 10, 32, 32,101,108,115,101, 10, 32, 32, 9, 45, 45,112,114,105,110, 116, 40, 34,116, 32,105,115, 32, 34, 46, 46,116,111,115,116, 114,105,110,103, 40,116, 41, 46, 46, 34, 44, 32,112,116,114, 32,105,115, 32, 34, 46, 46,116,111,115,116,114,105,110,103, 40,115,101,108,102, 46,112,116,114, 41, 41, 10, 32, 32, 9, 105,102, 32,116, 32, 61, 61, 32, 39,110,117,109, 98,101,114, 39, 32, 97,110,100, 32,115,116,114,105,110,103, 46,102,105, 110,100, 40,115,101,108,102, 46,112,116,114, 44, 32, 34, 37, 42, 34, 41, 32,116,104,101,110, 10, 32, 32, 9, 9,116, 32, 61, 32, 39,117,115,101,114,100, 97,116, 97, 39, 10, 32, 32, 9,101,110,100, 10, 9,105,102, 32,110,111,116, 32,116, 32, 97,110,100, 32,112,116,114, 61, 61, 39, 39, 32,116,104,101, 110, 32,108,105,110,101, 32, 61, 32, 99,111,110, 99, 97,116, 112, 97,114, 97,109, 40,108,105,110,101, 44, 39, 42, 39, 41, 32,101,110,100, 10, 9,108,105,110,101, 32, 61, 32, 99,111, 110, 99, 97,116,112, 97,114, 97,109, 40,108,105,110,101, 44, 39, 40, 40, 39, 44,115,101,108,102, 46,109,111,100, 44,116, 121,112,101, 41, 10, 9,105,102, 32,110,111,116, 32,116, 32, 116,104,101,110, 10, 9, 9,108,105,110,101, 32, 61, 32, 99, 111,110, 99, 97,116,112, 97,114, 97,109, 40,108,105,110,101, 44, 39, 42, 39, 41, 10, 9,101,110,100, 10, 9,108,105,110, 101, 32, 61, 32, 99,111,110, 99, 97,116,112, 97,114, 97,109, 40,108,105,110,101, 44, 39, 41, 32, 39, 41, 10, 9,105,102, 32,105,115,101,110,117,109, 40,110, 99,116,121,112,101, 41, 32,116,104,101,110, 10, 9, 9,108,105,110,101, 32, 61, 32, 99,111,110, 99, 97,116,112, 97,114, 97,109, 40,108,105,110, 101, 44, 39, 40,105,110,116, 41, 32, 39, 41, 10, 9,101,110, 100, 10, 9,108,111, 99, 97,108, 32,100,101,102, 32, 61, 32, 48, 10, 9,105,102, 32,115,101,108,102, 46,100,101,102, 32, 126, 61, 32, 39, 39, 32,116,104,101,110, 10, 9, 9,100,101, 102, 32, 61, 32,115,101,108,102, 46,100,101,102, 10, 9, 9, 105,102, 32, 40,112,116,114, 32, 61, 61, 32, 39, 39, 32,111, 114, 32,115,101,108,102, 46,112,116,114, 32, 61, 61, 32, 39, 38, 39, 41, 32, 97,110,100, 32,110,111,116, 32,116, 32,116, 104,101,110, 10, 9, 9, 9,100,101,102, 32, 61, 32, 34, 40, 118,111,105,100, 42, 41, 38, 40, 99,111,110,115,116, 32, 34, 46, 46,116,121,112,101, 46, 46, 34, 41, 34, 46, 46,100,101, 102, 10, 9, 9,101,110,100, 10, 9,101,110,100, 10, 9,105, 102, 32,116, 32,116,104,101,110, 10, 9, 9,108,105,110,101, 32, 61, 32, 99,111,110, 99, 97,116,112, 97,114, 97,109, 40, 108,105,110,101, 44, 39,116,111,108,117, 97, 95,116,111, 39, 46, 46,116, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 39, 44,110, 97,114,103, 44, 39, 44, 39, 44,100,101,102, 44, 39, 41, 41, 59, 39, 41, 10, 9,101,108,115,101, 10, 9, 9,108, 111, 99, 97,108, 32,116,111, 95,102,117,110, 99, 32, 61, 32, 103,101,116, 95,116,111, 95,102,117,110, 99,116,105,111,110, 40,116,121,112,101, 41, 10, 9, 9,108,105,110,101, 32, 61, 32, 99,111,110, 99, 97,116,112, 97,114, 97,109, 40,108,105, 110,101, 44,116,111, 95,102,117,110, 99, 46, 46, 39, 40,116, 111,108,117, 97, 95, 83, 44, 39, 44,110, 97,114,103, 44, 39, 44, 39, 44,100,101,102, 44, 39, 41, 41, 59, 39, 41, 10, 9, 101,110,100, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 9,114,101,116,117,114,110, 32,108,105,110,101, 10,101,110, 100, 10, 10, 45, 45, 32, 68,101, 99,108, 97,114,101, 32,118, 97,114,105, 97, 98,108,101, 10,102,117,110, 99,116,105,111, 110, 32, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116, 105,111,110, 58,100,101, 99,108, 97,114,101, 32, 40,110, 97, 114,103, 41, 10, 32,105,102, 32,115,101,108,102, 46,100,105, 109, 32,126, 61, 32, 39, 39, 32, 97,110,100, 32,116,111,110, 117,109, 98,101,114, 40,115,101,108,102, 46,100,105,109, 41, 61, 61,110,105,108, 32,116,104,101,110, 10, 9, 32,111,117, 116,112,117,116, 40, 39, 35,105,102,100,101,102, 32, 95, 95, 99,112,108,117,115,112,108,117,115, 92,110, 39, 41, 10, 9, 9,111,117,116,112,117,116, 40,115,101,108,102, 58, 98,117, 105,108,100,100,101, 99,108, 97,114, 97,116,105,111,110, 40, 110, 97,114,103, 44,116,114,117,101, 41, 41, 10, 9, 9,111, 117,116,112,117,116, 40, 39, 35,101,108,115,101, 92,110, 39, 41, 10, 9, 9,111,117,116,112,117,116, 40,115,101,108,102, 58, 98,117,105,108,100,100,101, 99,108, 97,114, 97,116,105, 111,110, 40,110, 97,114,103, 44,102, 97,108,115,101, 41, 41, 10, 9, 32,111,117,116,112,117,116, 40, 39, 35,101,110,100, 105,102, 92,110, 39, 41, 10, 9,101,108,115,101, 10, 9, 9, 111,117,116,112,117,116, 40,115,101,108,102, 58, 98,117,105, 108,100,100,101, 99,108, 97,114, 97,116,105,111,110, 40,110, 97,114,103, 44,102, 97,108,115,101, 41, 41, 10, 9,101,110, 100, 10,101,110,100, 10, 10, 45, 45, 32, 71,101,116, 32,112, 97,114, 97,109,101,116,101,114, 32,118, 97,108,117,101, 10, 102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 68, 101, 99,108, 97,114, 97,116,105,111,110, 58,103,101,116, 97, 114,114, 97,121, 32, 40,110, 97,114,103, 41, 10, 32,105,102, 32,115,101,108,102, 46,100,105,109, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10, 9, 32,108,111, 99, 97,108, 32,116, 121,112,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46,116,121,112,101, 44, 39, 99,111,110,115,116, 32, 39, 44, 39, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32,123, 39, 41, 10, 9, 32,111,117,116,112,117,116, 40, 39, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32,100,101,102, 59, 32,105,102, 32,115,101,108, 102, 46,100,101,102,126, 61, 39, 39, 32,116,104,101,110, 32, 100,101,102, 61, 49, 32,101,108,115,101, 32,100,101,102, 61, 48, 32,101,110,100, 10, 9, 9,108,111, 99, 97,108, 32,116, 32, 61, 32,105,115, 98, 97,115,105, 99, 40,116,121,112,101, 41, 10, 9, 9,105,102, 32, 40,116, 41, 32,116,104,101,110, 10, 9, 9, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32,105,102, 32, 40, 33,116,111,108,117, 97, 95,105,115, 39, 46, 46,116, 46, 46, 39, 97,114,114, 97,121, 40,116,111, 108,117, 97, 95, 83, 44, 39, 44,110, 97,114,103, 44, 39, 44, 39, 44,115,101,108,102, 46,100,105,109, 44, 39, 44, 39, 44, 100,101,102, 44, 39, 44, 38,116,111,108,117, 97, 95,101,114, 114, 41, 41, 39, 41, 10, 9, 9,101,108,115,101, 10, 9, 9, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32,105, 102, 32, 40, 33,116,111,108,117, 97, 95,105,115,117,115,101, 114,116,121,112,101, 97,114,114, 97,121, 40,116,111,108,117, 97, 95, 83, 44, 39, 44,110, 97,114,103, 44, 39, 44, 34, 39, 44,116,121,112,101, 44, 39, 34, 44, 39, 44,115,101,108,102, 46,100,105,109, 44, 39, 44, 39, 44,100,101,102, 44, 39, 44, 38,116,111,108,117, 97, 95,101,114,114, 41, 41, 39, 41, 10, 9, 9,101,110,100, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,103,111,116,111, 32,116,111,108,117, 97, 95,108,101,114,114,111,114, 59, 39, 41, 10, 32, 32,111,117, 116,112,117,116, 40, 39, 32, 32, 32,101,108,115,101, 92,110, 39, 41, 10, 9, 32,111,117,116,112,117,116, 40, 39, 35,101, 110,100,105,102, 92,110, 39, 41, 10, 32, 32,111,117,116,112, 117,116, 40, 39, 32, 32, 32,123, 39, 41, 10, 32, 32,111,117, 116,112,117,116, 40, 39, 32, 32, 32, 32,105,110,116, 32,105, 59, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,102,111,114, 40,105, 61, 48, 59, 32,105, 60, 39, 46, 46,115,101,108,102, 46,100,105,109, 46, 46, 39, 59,105, 43, 43, 41, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32,116, 32, 61, 32,105,115, 98, 97,115,105, 99, 40,116,121,112,101, 41, 10, 32, 32,108,111, 99, 97,108, 32,112,116,114, 32, 61, 32, 39, 39, 10, 32, 32,105,102, 32,115,101,108,102, 46,112, 116,114,126, 61, 39, 39, 32,116,104,101,110, 32,112,116,114, 32, 61, 32, 39, 42, 39, 32,101,110,100, 10, 32, 32,111,117, 116,112,117,116, 40, 39, 32, 32, 32, 39, 44,115,101,108,102, 46,110, 97,109,101, 46, 46, 39, 91,105, 93, 32, 61, 32, 39, 41, 10, 32, 32,105,102, 32,110,111,116, 32,116, 32, 97,110, 100, 32,112,116,114, 61, 61, 39, 39, 32,116,104,101,110, 32, 111,117,116,112,117,116, 40, 39, 42, 39, 41, 32,101,110,100, 10, 32, 32,111,117,116,112,117,116, 40, 39, 40, 40, 39, 44, 116,121,112,101, 41, 10, 32, 32,105,102, 32,110,111,116, 32, 116, 32,116,104,101,110, 10, 32, 32, 32,111,117,116,112,117, 116, 40, 39, 42, 39, 41, 10, 32, 32,101,110,100, 10, 32, 32, 111,117,116,112,117,116, 40, 39, 41, 32, 39, 41, 10, 32, 32, 108,111, 99, 97,108, 32,100,101,102, 32, 61, 32, 48, 10, 32, 32,105,102, 32,115,101,108,102, 46,100,101,102, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 32,100,101,102, 32, 61, 32, 115,101,108,102, 46,100,101,102, 32,101,110,100, 10, 32, 32, 105,102, 32,116, 32,116,104,101,110, 10, 32, 32, 32,111,117, 116,112,117,116, 40, 39,116,111,108,117, 97, 95,116,111,102, 105,101,108,100, 39, 46, 46,116, 46, 46, 39, 40,116,111,108, 117, 97, 95, 83, 44, 39, 44,110, 97,114,103, 44, 39, 44,105, 43, 49, 44, 39, 44,100,101,102, 44, 39, 41, 41, 59, 39, 41, 10, 32, 32,101,108,115,101, 10, 32, 32, 32,111,117,116,112, 117,116, 40, 39,116,111,108,117, 97, 95,116,111,102,105,101, 108,100,117,115,101,114,116,121,112,101, 40,116,111,108,117, 97, 95, 83, 44, 39, 44,110, 97,114,103, 44, 39, 44,105, 43, 49, 44, 39, 44,100,101,102, 44, 39, 41, 41, 59, 39, 41, 10, 32, 32,101,110,100, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32,125, 39, 41, 10, 32, 32,111,117,116,112,117, 116, 40, 39, 32, 32,125, 39, 41, 10, 32,101,110,100, 10,101, 110,100, 10, 10, 45, 45, 32, 71,101,116, 32,112, 97,114, 97, 109,101,116,101,114, 32,118, 97,108,117,101, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, 58,115,101,116, 97,114,114, 97, 121, 32, 40,110, 97,114,103, 41, 10, 32,105,102, 32,110,111, 116, 32,115,116,114,102,105,110,100, 40,115,101,108,102, 46, 116,121,112,101, 44, 39, 99,111,110,115,116, 37,115, 43, 39, 41, 32, 97,110,100, 32,115,101,108,102, 46,100,105,109, 32, 126, 61, 32, 39, 39, 32,116,104,101,110, 10, 9, 32,108,111, 99, 97,108, 32,116,121,112,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46,116,121,112,101, 44, 39, 99,111,110, 115,116, 32, 39, 44, 39, 39, 41, 10, 32, 32,111,117,116,112, 117,116, 40, 39, 32, 32,123, 39, 41, 10, 32, 32,111,117,116, 112,117,116, 40, 39, 32, 32, 32,105,110,116, 32,105, 59, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 102,111,114, 40,105, 61, 48, 59, 32,105, 60, 39, 46, 46,115, 101,108,102, 46,100,105,109, 46, 46, 39, 59,105, 43, 43, 41, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32,116, 44, 99,116, 32, 61, 32,105,115, 98, 97,115,105, 99, 40,116,121,112,101, 41, 10, 32, 32,105,102, 32,116, 32,116,104,101,110, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,116, 111,108,117, 97, 95,112,117,115,104,102,105,101,108,100, 39, 46, 46,116, 46, 46, 39, 40,116,111,108,117, 97, 95, 83, 44, 39, 44,110, 97,114,103, 44, 39, 44,105, 43, 49, 44, 40, 39, 44, 99,116, 44, 39, 41, 39, 44,115,101,108,102, 46,110, 97, 109,101, 44, 39, 91,105, 93, 41, 59, 39, 41, 10, 32, 32,101, 108,115,101, 10, 32, 32, 32,105,102, 32,115,101,108,102, 46, 112,116,114, 32, 61, 61, 32, 39, 39, 32,116,104,101,110, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32,123, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117, 116, 40, 39, 35,105,102,100,101,102, 32, 95, 95, 99,112,108, 117,115,112,108,117,115, 92,110, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,118,111, 105,100, 42, 32,116,111,108,117, 97, 95,111, 98,106, 32, 61, 32, 77,116,111,108,117, 97, 95,110,101,119, 40, 40, 39, 44, 116,121,112,101, 44, 39, 41, 40, 39, 44,115,101,108,102, 46, 110, 97,109,101, 44, 39, 91,105, 93, 41, 41, 59, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,116,111,108,117, 97, 95,112,117,115,104,102,105,101, 108,100,117,115,101,114,116,121,112,101, 95, 97,110,100, 95, 116, 97,107,101,111,119,110,101,114,115,104,105,112, 40,116, 111,108,117, 97, 95, 83, 44, 39, 44,110, 97,114,103, 44, 39, 44,105, 43, 49, 44,116,111,108,117, 97, 95,111, 98,106, 44, 34, 39, 44,116,121,112,101, 44, 39, 34, 41, 59, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 35,101, 108,115,101, 92,110, 39, 41, 10, 32, 32, 32, 32, 32,111,117, 116,112,117,116, 40, 39, 32, 32, 32, 32,118,111,105,100, 42, 32,116,111,108,117, 97, 95,111, 98,106, 32, 61, 32,116,111, 108,117, 97, 95, 99,111,112,121, 40,116,111,108,117, 97, 95, 83, 44, 40,118,111,105,100, 42, 41, 38, 39, 44,115,101,108, 102, 46,110, 97,109,101, 44, 39, 91,105, 93, 44,115,105,122, 101,111,102, 40, 39, 44,116,121,112,101, 44, 39, 41, 41, 59, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,116,111,108,117, 97, 95,112,117,115,104, 102,105,101,108,100,117,115,101,114,116,121,112,101, 40,116, 111,108,117, 97, 95, 83, 44, 39, 44,110, 97,114,103, 44, 39, 44,105, 43, 49, 44,116,111,108,117, 97, 95,111, 98,106, 44, 34, 39, 44,116,121,112,101, 44, 39, 34, 41, 59, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 35,101, 110,100,105,102, 92,110, 39, 41, 10, 32, 32, 32, 32, 32,111, 117,116,112,117,116, 40, 39, 32, 32, 32,125, 39, 41, 10, 32, 32, 32,101,108,115,101, 10, 32, 32, 32, 32,111,117,116,112, 117,116, 40, 39, 32, 32, 32,116,111,108,117, 97, 95,112,117, 115,104,102,105,101,108,100,117,115,101,114,116,121,112,101, 40,116,111,108,117, 97, 95, 83, 44, 39, 44,110, 97,114,103, 44, 39, 44,105, 43, 49, 44, 40,118,111,105,100, 42, 41, 39, 44,115,101,108,102, 46,110, 97,109,101, 44, 39, 91,105, 93, 44, 34, 39, 44,116,121,112,101, 44, 39, 34, 41, 59, 39, 41, 10, 32, 32, 32,101,110,100, 10, 32, 32,101,110,100, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32,125, 39, 41, 10, 32,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 70,114, 101,101, 32,100,121,110, 97,109,105, 99, 97,108,108,121, 32, 97,108,108,111, 99, 97,116,101,100, 32, 97,114,114, 97,121, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, 58,102,114,101, 101, 97,114,114, 97,121, 32, 40, 41, 10, 32,105,102, 32,115, 101,108,102, 46,100,105,109, 32,126, 61, 32, 39, 39, 32, 97, 110,100, 32,116,111,110,117,109, 98,101,114, 40,115,101,108, 102, 46,100,105,109, 41, 61, 61,110,105,108, 32,116,104,101, 110, 10, 9, 32,111,117,116,112,117,116, 40, 39, 35,105,102, 100,101,102, 32, 95, 95, 99,112,108,117,115,112,108,117,115, 92,110, 39, 41, 10, 9, 9,111,117,116,112,117,116, 40, 39, 32, 32, 77,116,111,108,117, 97, 95,100,101,108,101,116,101, 95,100,105,109, 40, 39, 44,115,101,108,102, 46,110, 97,109, 101, 44, 39, 41, 59, 39, 41, 10, 9, 32,111,117,116,112,117, 116, 40, 39, 35,101,108,115,101, 92,110, 39, 41, 10, 32, 32, 111,117,116,112,117,116, 40, 39, 32, 32,102,114,101,101, 40, 39, 44,115,101,108,102, 46,110, 97,109,101, 44, 39, 41, 59, 39, 41, 10, 9, 32,111,117,116,112,117,116, 40, 39, 35,101, 110,100,105,102, 92,110, 39, 41, 10, 32,101,110,100, 10,101, 110,100, 10, 10, 45, 45, 32, 80, 97,115,115, 32,112, 97,114, 97,109,101,116,101,114, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116,105, 111,110, 58,112, 97,115,115,112, 97,114, 32, 40, 41, 10, 32, 105,102, 32,115,101,108,102, 46,112,116,114, 61, 61, 39, 38, 39, 32, 97,110,100, 32,110,111,116, 32,105,115, 98, 97,115, 105, 99, 40,115,101,108,102, 46,116,121,112,101, 41, 32,116, 104,101,110, 10, 32, 32,111,117,116,112,117,116, 40, 39, 42, 39, 46, 46,115,101,108,102, 46,110, 97,109,101, 41, 10, 32, 101,108,115,101,105,102, 32,115,101,108,102, 46,114,101,116, 61, 61, 39, 42, 39, 32,116,104,101,110, 10, 32, 32,111,117, 116,112,117,116, 40, 39, 38, 39, 46, 46,115,101,108,102, 46, 110, 97,109,101, 41, 10, 32,101,108,115,101, 10, 32, 32,111, 117,116,112,117,116, 40,115,101,108,102, 46,110, 97,109,101, 41, 10, 32,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 82,101,116,117,114,110, 32,112, 97,114, 97,109,101,116,101, 114, 32,118, 97,108,117,101, 10,102,117,110, 99,116,105,111, 110, 32, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116, 105,111,110, 58,114,101,116,118, 97,108,117,101, 32, 40, 41, 10, 32,105,102, 32,115,101,108,102, 46,114,101,116, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10, 32, 32,108,111, 99, 97,108, 32,116, 44, 99,116, 32, 61, 32,105,115, 98, 97,115, 105, 99, 40,115,101,108,102, 46,116,121,112,101, 41, 10, 32, 32,105,102, 32,116, 32, 97,110,100, 32,116,126, 61, 39, 39, 32,116,104,101,110, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32,116,111,108,117, 97, 95,112,117,115,104, 39, 46, 46,116, 46, 46, 39, 40,116,111,108,117, 97, 95, 83, 44, 40, 39, 44, 99,116, 44, 39, 41, 39, 46, 46,115,101,108, 102, 46,110, 97,109,101, 46, 46, 39, 41, 59, 39, 41, 10, 32, 32,101,108,115,101, 10, 32, 32, 32,108,111, 99, 97,108, 32, 112,117,115,104, 95,102,117,110, 99, 32, 61, 32,103,101,116, 95,112,117,115,104, 95,102,117,110, 99,116,105,111,110, 40, 115,101,108,102, 46,116,121,112,101, 41, 10, 32, 32, 32,111, 117,116,112,117,116, 40, 39, 32, 32, 32, 39, 44,112,117,115, 104, 95,102,117,110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 40,118,111,105,100, 42, 41, 39, 46, 46,115,101,108, 102, 46,110, 97,109,101, 46, 46, 39, 44, 34, 39, 44,115,101, 108,102, 46,116,121,112,101, 44, 39, 34, 41, 59, 39, 41, 10, 32, 32,101,110,100, 10, 32, 32,114,101,116,117,114,110, 32, 49, 10, 32,101,110,100, 10, 32,114,101,116,117,114,110, 32, 48, 10,101,110,100, 10, 10, 45, 45, 32, 73,110,116,101,114, 110, 97,108, 32, 99,111,110,115,116,114,117, 99,116,111,114, 10,102,117,110, 99,116,105,111,110, 32, 95, 68,101, 99,108, 97,114, 97,116,105,111,110, 32, 40,116, 41, 10, 10, 32,115, 101,116,109,101,116, 97,116, 97, 98,108,101, 40,116, 44, 99, 108, 97,115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, 41, 10, 32,116, 58, 98,117,105,108,100,110, 97,109,101,115, 40, 41, 10, 32,116, 58, 99,104,101, 99,107,110, 97,109,101, 40, 41, 10, 32,116, 58, 99,104,101, 99,107,116,121,112,101, 40, 41, 10, 32,108,111, 99, 97,108, 32,102,116, 32, 61, 32, 102,105,110,100,116,121,112,101, 40,116, 46,116,121,112,101, 41, 32,111,114, 32,116, 46,116,121,112,101, 10, 32,105,102, 32,110,111,116, 32,105,115,101,110,117,109, 40,102,116, 41, 32,116,104,101,110, 10, 9,116, 46,109,111,100, 44, 32,116, 46,116,121,112,101, 32, 61, 32, 97,112,112,108,121,116,121, 112,101,100,101,102, 40,116, 46,109,111,100, 44, 32,102,116, 41, 10, 32,101,110,100, 10, 10, 32,105,102, 32,116, 46,107, 105,110,100, 61, 61, 34,118, 97,114, 34, 32, 97,110,100, 32, 40,115,116,114,105,110,103, 46,102,105,110,100, 40,116, 46, 109,111,100, 44, 32, 34,116,111,108,117, 97, 95,112,114,111, 112,101,114,116,121, 37,115, 34, 41, 32,111,114, 32,115,116, 114,105,110,103, 46,102,105,110,100, 40,116, 46,109,111,100, 44, 32, 34,116,111,108,117, 97, 95,112,114,111,112,101,114, 116,121, 36, 34, 41, 41, 32,116,104,101,110, 10, 32, 9,116, 46,109,111,100, 32, 61, 32,115,116,114,105,110,103, 46,103, 115,117, 98, 40,116, 46,109,111,100, 44, 32, 34,116,111,108, 117, 97, 95,112,114,111,112,101,114,116,121, 34, 44, 32, 34, 116,111,108,117, 97, 95,112,114,111,112,101,114,116,121, 95, 95, 34, 46, 46,103,101,116, 95,112,114,111,112,101,114,116, 121, 95,116,121,112,101, 40, 41, 41, 10, 32,101,110,100, 10, 10, 32,114,101,116,117,114,110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32, 67,111,110,115,116,114,117, 99,116,111,114, 10, 45, 45, 32, 69,120,112,101, 99,116,115, 32,116,104,101, 32,115,116,114,105,110,103, 32,100,101, 99,108, 97,114, 97, 116,105,111,110, 46, 10, 45, 45, 32, 84,104,101, 32,107,105, 110,100, 32,111,102, 32,100,101, 99,108, 97,114, 97,116,105, 111,110, 32, 99, 97,110, 32, 98,101, 32, 34,118, 97,114, 34, 32,111,114, 32, 34,102,117,110, 99, 34, 46, 10,102,117,110, 99,116,105,111,110, 32, 68,101, 99,108, 97,114, 97,116,105, 111,110, 32, 40,115, 44,107,105,110,100, 44,105,115, 95,112, 97,114, 97,109,101,116,101,114, 41, 10, 10, 32, 45, 45, 32, 101,108,105,109,105,110, 97,116,101, 32,115,112, 97, 99,101, 115, 32,105,102, 32,100,101,102, 97,117,108,116, 32,118, 97, 108,117,101, 32,105,115, 32,112,114,111,118,105,100,101,100, 10, 32,115, 32, 61, 32,103,115,117, 98, 40,115, 44, 34, 37, 115, 42, 61, 37,115, 42, 34, 44, 34, 61, 34, 41, 10, 32,115, 32, 61, 32,103,115,117, 98, 40,115, 44, 32, 34, 37,115, 42, 60, 34, 44, 32, 34, 60, 34, 41, 10, 10, 32,108,111, 99, 97, 108, 32,100,101,102, 98, 44,116,109,112,100,101,102, 10, 32, 100,101,102, 98, 44, 95, 44,116,109,112,100,101,102, 32, 61, 32,115,116,114,105,110,103, 46,102,105,110,100, 40,115, 44, 32, 34, 40, 61, 46, 42, 41, 36, 34, 41, 10, 32,105,102, 32, 100,101,102, 98, 32,116,104,101,110, 10, 32, 9,115, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,115, 44, 32, 34, 61, 46, 42, 36, 34, 44, 32, 34, 34, 41, 10, 32,101, 108,115,101, 10, 32, 9,116,109,112,100,101,102, 32, 61, 32, 39, 39, 10, 32,101,110,100, 10, 32,105,102, 32,107,105,110, 100, 32, 61, 61, 32, 34,118, 97,114, 34, 32,116,104,101,110, 10, 32, 32, 45, 45, 32, 99,104,101, 99,107, 32,116,104,101, 32,102,111,114,109, 58, 32,118,111,105,100, 10, 32, 32,105, 102, 32,115, 32, 61, 61, 32, 39, 39, 32,111,114, 32,115, 32, 61, 61, 32, 39,118,111,105,100, 39, 32,116,104,101,110, 10, 32, 32, 32,114,101,116,117,114,110, 32, 95, 68,101, 99,108, 97,114, 97,116,105,111,110,123,116,121,112,101, 32, 61, 32, 39,118,111,105,100, 39, 44, 32,107,105,110,100, 32, 61, 32, 107,105,110,100, 44, 32,105,115, 95,112, 97,114, 97,109,101, 116,101,114, 32, 61, 32,105,115, 95,112, 97,114, 97,109,101, 116,101,114,125, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32, 99,104,101, 99,107, 32,116,104,101, 32,102,111,114,109, 58, 32,109,111,100, 32,116,121,112,101, 42, 38, 32,110, 97,109,101, 10, 32,108,111, 99, 97,108, 32, 116, 32, 61, 32,115,112,108,105,116, 95, 99, 95,116,111,107, 101,110,115, 40,115, 44, 39, 37, 42, 37,115, 42, 38, 39, 41, 10, 32,105,102, 32,116, 46,110, 32, 61, 61, 32, 50, 32,116, 104,101,110, 10, 32, 32,105,102, 32,107,105,110,100, 32, 61, 61, 32, 39,102,117,110, 99, 39, 32,116,104,101,110, 10, 32, 32, 32,101,114,114,111,114, 40, 34, 35,105,110,118, 97,108, 105,100, 32,102,117,110, 99,116,105,111,110, 32,114,101,116, 117,114,110, 32,116,121,112,101, 58, 32, 34, 46, 46,115, 41, 10, 32, 32,101,110,100, 10, 32, 32, 45, 45,108,111, 99, 97, 108, 32,109, 32, 61, 32,115,112,108,105,116, 40,116, 91, 49, 93, 44, 39, 37,115, 37,115, 42, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32,109, 32, 61, 32,115,112,108,105,116, 95, 99, 95,116,111,107,101,110,115, 40,116, 91, 49, 93, 44, 39, 37, 115, 43, 39, 41, 10, 32, 32,114,101,116,117,114,110, 32, 95, 68,101, 99,108, 97,114, 97,116,105,111,110,123, 10, 32, 32, 32,110, 97,109,101, 32, 61, 32,116, 91, 50, 93, 46, 46,116, 109,112,100,101,102, 44, 10, 32, 32, 32,112,116,114, 32, 61, 32, 39, 42, 39, 44, 10, 32, 32, 32,114,101,116, 32, 61, 32, 39, 38, 39, 44, 10, 32, 32, 32, 45, 45,116,121,112,101, 32, 61, 32,114,101, 98,117,105,108,100, 95,116,101,109,112,108, 97,116,101, 40,109, 91,109, 46,110, 93, 44, 32,116, 98, 44, 32,116,105,109,112,108, 41, 44, 10, 32, 32, 32,116,121,112, 101, 32, 61, 32,109, 91,109, 46,110, 93, 44, 10, 32, 32, 32, 109,111,100, 32, 61, 32, 99,111,110, 99, 97,116, 40,109, 44, 49, 44,109, 46,110, 45, 49, 41, 44, 10, 32, 32, 32,105,115, 95,112, 97,114, 97,109,101,116,101,114, 32, 61, 32,105,115, 95,112, 97,114, 97,109,101,116,101,114, 44, 10, 32, 32, 32, 107,105,110,100, 32, 61, 32,107,105,110,100, 10, 32, 32,125, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32, 99,104,101, 99, 107, 32,116,104,101, 32,102,111,114,109, 58, 32,109,111,100, 32,116,121,112,101, 42, 42, 32,110, 97,109,101, 10, 32,116, 32, 61, 32,115,112,108,105,116, 95, 99, 95,116,111,107,101, 110,115, 40,115, 44, 39, 37, 42, 37,115, 42, 37, 42, 39, 41, 10, 32,105,102, 32,116, 46,110, 32, 61, 61, 32, 50, 32,116, 104,101,110, 10, 32, 32,105,102, 32,107,105,110,100, 32, 61, 61, 32, 39,102,117,110, 99, 39, 32,116,104,101,110, 10, 32, 32, 32,101,114,114,111,114, 40, 34, 35,105,110,118, 97,108, 105,100, 32,102,117,110, 99,116,105,111,110, 32,114,101,116, 117,114,110, 32,116,121,112,101, 58, 32, 34, 46, 46,115, 41, 10, 32, 32,101,110,100, 10, 32, 32, 45, 45,108,111, 99, 97, 108, 32,109, 32, 61, 32,115,112,108,105,116, 40,116, 91, 49, 93, 44, 39, 37,115, 37,115, 42, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32,109, 32, 61, 32,115,112,108,105,116, 95, 99, 95,116,111,107,101,110,115, 40,116, 91, 49, 93, 44, 39, 37, 115, 43, 39, 41, 10, 32, 32,114,101,116,117,114,110, 32, 95, 68,101, 99,108, 97,114, 97,116,105,111,110,123, 10, 32, 32, 32,110, 97,109,101, 32, 61, 32,116, 91, 50, 93, 46, 46,116, 109,112,100,101,102, 44, 10, 32, 32, 32,112,116,114, 32, 61, 32, 39, 42, 39, 44, 10, 32, 32, 32,114,101,116, 32, 61, 32, 39, 42, 39, 44, 10, 32, 32, 32, 45, 45,116,121,112,101, 32, 61, 32,114,101, 98,117,105,108,100, 95,116,101,109,112,108, 97,116,101, 40,109, 91,109, 46,110, 93, 44, 32,116, 98, 44, 32,116,105,109,112,108, 41, 44, 10, 32, 32, 32,116,121,112, 101, 32, 61, 32,109, 91,109, 46,110, 93, 44, 10, 32, 32, 32, 109,111,100, 32, 61, 32, 99,111,110, 99, 97,116, 40,109, 44, 49, 44,109, 46,110, 45, 49, 41, 44, 10, 32, 32, 32,105,115, 95,112, 97,114, 97,109,101,116,101,114, 32, 61, 32,105,115, 95,112, 97,114, 97,109,101,116,101,114, 44, 10, 32, 32, 32, 107,105,110,100, 32, 61, 32,107,105,110,100, 10, 32, 32,125, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32, 99,104,101, 99, 107, 32,116,104,101, 32,102,111,114,109, 58, 32,109,111,100, 32,116,121,112,101, 38, 32,110, 97,109,101, 10, 32,116, 32, 61, 32,115,112,108,105,116, 95, 99, 95,116,111,107,101,110, 115, 40,115, 44, 39, 38, 39, 41, 10, 32,105,102, 32,116, 46, 110, 32, 61, 61, 32, 50, 32,116,104,101,110, 10, 32, 32, 45, 45,108,111, 99, 97,108, 32,109, 32, 61, 32,115,112,108,105, 116, 40,116, 91, 49, 93, 44, 39, 37,115, 37,115, 42, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32,109, 32, 61, 32,115,112, 108,105,116, 95, 99, 95,116,111,107,101,110,115, 40,116, 91, 49, 93, 44, 39, 37,115, 43, 39, 41, 10, 32, 32,114,101,116, 117,114,110, 32, 95, 68,101, 99,108, 97,114, 97,116,105,111, 110,123, 10, 32, 32, 32,110, 97,109,101, 32, 61, 32,116, 91, 50, 93, 46, 46,116,109,112,100,101,102, 44, 10, 32, 32, 32, 112,116,114, 32, 61, 32, 39, 38, 39, 44, 10, 32, 32, 32, 45, 45,116,121,112,101, 32, 61, 32,114,101, 98,117,105,108,100, 95,116,101,109,112,108, 97,116,101, 40,109, 91,109, 46,110, 93, 44, 32,116, 98, 44, 32,116,105,109,112,108, 41, 44, 10, 32, 32, 32,116,121,112,101, 32, 61, 32,109, 91,109, 46,110, 93, 44, 10, 32, 32, 32,109,111,100, 32, 61, 32, 99,111,110, 99, 97,116, 40,109, 44, 49, 44,109, 46,110, 45, 49, 41, 44, 10, 32, 32, 32,105,115, 95,112, 97,114, 97,109,101,116,101, 114, 32, 61, 32,105,115, 95,112, 97,114, 97,109,101,116,101, 114, 44, 10, 32, 32, 32,107,105,110,100, 32, 61, 32,107,105, 110,100, 10, 32, 32,125, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32, 99,104,101, 99,107, 32,116,104,101, 32,102,111,114, 109, 58, 32,109,111,100, 32,116,121,112,101, 42, 32,110, 97, 109,101, 10, 32,108,111, 99, 97,108, 32,115, 49, 32, 61, 32, 103,115,117, 98, 40,115, 44, 34, 40, 37, 98, 92, 91, 92, 93, 41, 34, 44,102,117,110, 99,116,105,111,110, 32, 40,110, 41, 32,114,101,116,117,114,110, 32,103,115,117, 98, 40,110, 44, 39, 37, 42, 39, 44, 39, 92, 49, 39, 41, 32,101,110,100, 41, 10, 32,116, 32, 61, 32,115,112,108,105,116, 95, 99, 95,116, 111,107,101,110,115, 40,115, 49, 44, 39, 37, 42, 39, 41, 10, 32,105,102, 32,116, 46,110, 32, 61, 61, 32, 50, 32,116,104, 101,110, 10, 32, 32,116, 91, 50, 93, 32, 61, 32,103,115,117, 98, 40,116, 91, 50, 93, 44, 39, 92, 49, 39, 44, 39, 37, 42, 39, 41, 32, 45, 45, 32,114,101,115,116,111,114,101, 32, 42, 32,105,110, 32,100,105,109,101,110,115,105,111,110, 32,101, 120,112,114,101,115,115,105,111,110, 10, 32, 32, 45, 45,108, 111, 99, 97,108, 32,109, 32, 61, 32,115,112,108,105,116, 40, 116, 91, 49, 93, 44, 39, 37,115, 37,115, 42, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32,109, 32, 61, 32,115,112,108,105, 116, 95, 99, 95,116,111,107,101,110,115, 40,116, 91, 49, 93, 44, 39, 37,115, 43, 39, 41, 10, 32, 32,114,101,116,117,114, 110, 32, 95, 68,101, 99,108, 97,114, 97,116,105,111,110,123, 10, 32, 32, 32,110, 97,109,101, 32, 61, 32,116, 91, 50, 93, 46, 46,116,109,112,100,101,102, 44, 10, 32, 32, 32,112,116, 114, 32, 61, 32, 39, 42, 39, 44, 10, 32, 32, 32,116,121,112, 101, 32, 61, 32,109, 91,109, 46,110, 93, 44, 10, 32, 32, 32, 45, 45,116,121,112,101, 32, 61, 32,114,101, 98,117,105,108, 100, 95,116,101,109,112,108, 97,116,101, 40,109, 91,109, 46, 110, 93, 44, 32,116, 98, 44, 32,116,105,109,112,108, 41, 44, 10, 32, 32, 32,109,111,100, 32, 61, 32, 99,111,110, 99, 97, 116, 40,109, 44, 49, 44,109, 46,110, 45, 49, 41, 32, 32, 32, 44, 10, 32, 32, 32,105,115, 95,112, 97,114, 97,109,101,116, 101,114, 32, 61, 32,105,115, 95,112, 97,114, 97,109,101,116, 101,114, 44, 10, 32, 32, 32,107,105,110,100, 32, 61, 32,107, 105,110,100, 10, 32, 32,125, 10, 32,101,110,100, 10, 10, 32, 105,102, 32,107,105,110,100, 32, 61, 61, 32, 39,118, 97,114, 39, 32,116,104,101,110, 10, 32, 32, 45, 45, 32, 99,104,101, 99,107, 32,116,104,101, 32,102,111,114,109, 58, 32,109,111, 100, 32,116,121,112,101, 32,110, 97,109,101, 10, 32, 32, 45, 45,116, 32, 61, 32,115,112,108,105,116, 40,115, 44, 39, 37, 115, 37,115, 42, 39, 41, 10, 32, 32,116, 32, 61, 32,115,112, 108,105,116, 95, 99, 95,116,111,107,101,110,115, 40,115, 44, 39, 37,115, 43, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32, 118, 10, 32, 32,105,102, 32,102,105,110,100,116,121,112,101, 40,116, 91,116, 46,110, 93, 41, 32,116,104,101,110, 32,118, 32, 61, 32, 99,114,101, 97,116,101, 95,118, 97,114,110, 97, 109,101, 40, 41, 32,101,108,115,101, 32,118, 32, 61, 32,116, 91,116, 46,110, 93, 59, 32,116, 46,110, 32, 61, 32,116, 46, 110, 45, 49, 32,101,110,100, 10, 32, 32,114,101,116,117,114, 110, 32, 95, 68,101, 99,108, 97,114, 97,116,105,111,110,123, 10, 32, 32, 32,110, 97,109,101, 32, 61, 32,118, 46, 46,116, 109,112,100,101,102, 44, 10, 32, 32, 32, 45, 45,116,121,112, 101, 32, 61, 32,114,101, 98,117,105,108,100, 95,116,101,109, 112,108, 97,116,101, 40,116, 91,116, 46,110, 93, 44, 32,116, 98, 44, 32,116,105,109,112,108, 41, 44, 10, 32, 32, 32,116, 121,112,101, 32, 61, 32,116, 91,116, 46,110, 93, 44, 10, 32, 32, 32,109,111,100, 32, 61, 32, 99,111,110, 99, 97,116, 40, 116, 44, 49, 44,116, 46,110, 45, 49, 41, 44, 10, 32, 32, 32, 105,115, 95,112, 97,114, 97,109,101,116,101,114, 32, 61, 32, 105,115, 95,112, 97,114, 97,109,101,116,101,114, 44, 10, 32, 32, 32,107,105,110,100, 32, 61, 32,107,105,110,100, 10, 32, 32,125, 10, 10, 32,101,108,115,101, 32, 45, 45, 32,107,105, 110,100, 32, 61, 61, 32, 34,102,117,110, 99, 34, 10, 10, 32, 32, 45, 45, 32, 99,104,101, 99,107, 32,116,104,101, 32,102, 111,114,109, 58, 32,109,111,100, 32,116,121,112,101, 32,110, 97,109,101, 10, 32, 32, 45, 45,116, 32, 61, 32,115,112,108, 105,116, 40,115, 44, 39, 37,115, 37,115, 42, 39, 41, 10, 32, 32,116, 32, 61, 32,115,112,108,105,116, 95, 99, 95,116,111, 107,101,110,115, 40,115, 44, 39, 37,115, 43, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32,118, 32, 61, 32,116, 91,116, 46, 110, 93, 32, 32, 45, 45, 32,108, 97,115,116, 32,119,111,114, 100, 32,105,115, 32,116,104,101, 32,102,117,110, 99,116,105, 111,110, 32,110, 97,109,101, 10, 32, 32,108,111, 99, 97,108, 32,116,112, 44,109,100, 10, 32, 32,105,102, 32,116, 46,110, 62, 49, 32,116,104,101,110, 10, 32, 32, 32,116,112, 32, 61, 32,116, 91,116, 46,110, 45, 49, 93, 10, 32, 32, 32,109,100, 32, 61, 32, 99,111,110, 99, 97,116, 40,116, 44, 49, 44,116, 46,110, 45, 50, 41, 10, 32, 32,101,110,100, 10, 32, 32, 45, 45,105,102, 32,116,112, 32,116,104,101,110, 32,116,112, 32, 61, 32,114,101, 98,117,105,108,100, 95,116,101,109,112,108, 97,116,101, 40,116,112, 44, 32,116, 98, 44, 32,116,105,109, 112,108, 41, 32,101,110,100, 10, 32, 32,114,101,116,117,114, 110, 32, 95, 68,101, 99,108, 97,114, 97,116,105,111,110,123, 10, 32, 32, 32,110, 97,109,101, 32, 61, 32,118, 44, 10, 32, 32, 32,116,121,112,101, 32, 61, 32,116,112, 44, 10, 32, 32, 32,109,111,100, 32, 61, 32,109,100, 44, 10, 32, 32, 32,105, 115, 95,112, 97,114, 97,109,101,116,101,114, 32, 61, 32,105, 115, 95,112, 97,114, 97,109,101,116,101,114, 44, 10, 32, 32, 32,107,105,110,100, 32, 61, 32,107,105,110,100, 10, 32, 32, 125, 10, 32,101,110,100, 10, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/declaration.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32,118, 97,114,105, 97, 98,108,101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114, 105,116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73, 100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99, 111,100,101, 32,105,115, 32,102,114,101,101, 32,115,111,102, 116,119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32, 114,101,100,105,115,116,114,105, 98,117,116,101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109,111,100,105,102,121, 32, 105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116, 119, 97,114,101, 32,112,114,111,118,105,100,101,100, 32,104, 101,114,101,117,110,100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105, 115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97, 117,116,104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98, 108,105,103, 97,116,105,111,110, 32,116,111, 32,112,114,111, 118,105,100,101, 32,109, 97,105,110,116,101,110, 97,110, 99, 101, 44, 32,115,117,112,112,111,114,116, 44, 32,117,112,100, 97,116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99, 101,109,101,110,116,115, 44, 32,111,114, 32,109,111,100,105, 102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 45, 45, 32, 86, 97,114,105, 97, 98,108,101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114,101,115,101,110,116,115, 32, 97, 32,101,120,116,101,114,110, 32,118, 97,114,105, 97, 98, 108,101, 32,111,114, 32, 97, 32,112,117, 98,108,105, 99, 32, 109,101,109, 98,101,114, 32,111,102, 32, 97, 32, 99,108, 97, 115,115, 46, 10, 45, 45, 32, 83,116,111,114,101,115, 32, 97, 108,108, 32,102,105,101,108,100,115, 32,112,114,101,115,101, 110,116, 32,105,110, 32, 97, 32,100,101, 99,108, 97,114, 97, 116,105,111,110, 46, 10, 99,108, 97,115,115, 86, 97,114,105, 97, 98,108,101, 32, 61, 32,123, 10, 32, 95,103,101,116, 32, 61, 32,123,125, 44, 32, 32, 32, 45, 45, 32,109, 97,112,112, 101,100, 32,103,101,116, 32,102,117,110, 99,116,105,111,110, 115, 10, 32, 95,115,101,116, 32, 61, 32,123,125, 44, 32, 32, 32, 45, 45, 32,109, 97,112,112,101,100, 32,115,101,116, 32, 102,117,110, 99,116,105,111,110,115, 10,125, 10, 99,108, 97, 115,115, 86, 97,114,105, 97, 98,108,101, 46, 95, 95,105,110, 100,101,120, 32, 61, 32, 99,108, 97,115,115, 86, 97,114,105, 97, 98,108,101, 10,115,101,116,109,101,116, 97,116, 97, 98, 108,101, 40, 99,108, 97,115,115, 86, 97,114,105, 97, 98,108, 101, 44, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116, 105,111,110, 41, 10, 10, 45, 45, 32, 80,114,105,110,116, 32, 109,101,116,104,111,100, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 86, 97,114,105, 97, 98,108,101, 58, 112,114,105,110,116, 32, 40,105,100,101,110,116, 44, 99,108, 111,115,101, 41, 10, 32,112,114,105,110,116, 40,105,100,101, 110,116, 46, 46, 34, 86, 97,114,105, 97, 98,108,101,123, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,109,111,100, 32, 32, 61, 32, 39, 34, 46, 46,115, 101,108,102, 46,109,111,100, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,116,121,112,101, 32, 61, 32, 39, 34, 46, 46,115,101,108, 102, 46,116,121,112,101, 46, 46, 34, 39, 44, 34, 41, 10, 32, 112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 112,116,114, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,112,116,114, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114, 105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,110, 97, 109,101, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,105,102, 32, 115,101,108,102, 46,100,105,109, 32,116,104,101,110, 32,112, 114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,100, 105,109, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,100, 105,109, 46, 46, 34, 39, 44, 34, 41, 32,101,110,100, 10, 32, 112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 100,101,102, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,100,101,102, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114, 105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,114,101, 116, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,114, 101,116, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110, 116, 40,105,100,101,110,116, 46, 46, 34,125, 34, 46, 46, 99, 108,111,115,101, 41, 10,101,110,100, 10, 10, 45, 45, 32, 71, 101,110,101,114, 97,116,101,115, 32, 67, 32,102,117,110, 99, 116,105,111,110, 32,110, 97,109,101, 10,102,117,110, 99,116, 105,111,110, 32, 99,108, 97,115,115, 86, 97,114,105, 97, 98, 108,101, 58, 99,102,117,110, 99,110, 97,109,101, 32, 40,112, 114,101,102,105,120, 41, 10, 32,108,111, 99, 97,108, 32,112, 97,114,101,110,116, 32, 61, 32, 34, 34, 10, 32,108,111, 99, 97,108, 32,117,110,115,105,103,110,101,100, 32, 61, 32, 34, 34, 10, 32,108,111, 99, 97,108, 32,112,116,114, 32, 61, 32, 34, 34, 10, 10, 32,108,111, 99, 97,108, 32,112, 32, 61, 32, 115,101,108,102, 58,105,110,109,111,100,117,108,101, 40, 41, 32,111,114, 32,115,101,108,102, 58,105,110,110, 97,109,101, 115,112, 97, 99,101, 40, 41, 32,111,114, 32,115,101,108,102, 58,105,110, 99,108, 97,115,115, 40, 41, 10, 10, 32,105,102, 32,112, 32,116,104,101,110, 10, 32, 9,105,102, 32,115,101, 108,102, 46,112, 97,114,101,110,116, 46, 99,108, 97,115,115, 116,121,112,101, 32, 61, 61, 32, 39, 99,108, 97,115,115, 39, 32,116,104,101,110, 10, 9, 9,112, 97,114,101,110,116, 32, 61, 32, 34, 95, 34, 32, 46, 46, 32,115,101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112,101, 10, 9,101,108,115, 101, 10, 9, 32, 32,112, 97,114,101,110,116, 32, 61, 32, 34, 95, 34, 32, 46, 46, 32,112, 10, 9,101,110,100, 10, 32,101, 110,100, 10, 10, 32,105,102, 32,115,116,114,102,105,110,100, 40,115,101,108,102, 46,109,111,100, 44, 34, 40,117,110,115, 105,103,110,101,100, 41, 34, 41, 32,116,104,101,110, 10, 32, 32,117,110,115,105,103,110,101,100, 32, 61, 32, 34, 95,117, 110,115,105,103,110,101,100, 34, 10, 32,101,110,100, 10, 10, 32,105,102, 32,115,101,108,102, 46,112,116,114, 32, 61, 61, 32, 34, 42, 34, 32,116,104,101,110, 32,112,116,114, 32, 61, 32, 34, 95,112,116,114, 34, 10, 32,101,108,115,101,105,102, 32,115,101,108,102, 46,112,116,114, 32, 61, 61, 32, 34, 38, 34, 32,116,104,101,110, 32,112,116,114, 32, 61, 32, 34, 95, 114,101,102, 34, 10, 32,101,110,100, 10, 10, 32,108,111, 99, 97,108, 32,110, 97,109,101, 32, 61, 32, 32,112,114,101,102, 105,120, 32, 46, 46, 32,112, 97,114,101,110,116, 32, 46, 46, 32,117,110,115,105,103,110,101,100, 32, 46, 46, 32, 34, 95, 34, 32, 46, 46, 32,103,115,117, 98, 40,115,101,108,102, 46, 108,110, 97,109,101, 32,111,114, 32,115,101,108,102, 46,110, 97,109,101, 44, 34, 46, 42, 58, 58, 34, 44, 34, 34, 41, 32, 46, 46, 32,112,116,114, 10, 10, 9,110, 97,109,101, 32, 61, 32, 99,108,101, 97,110, 95,116,101,109,112,108, 97,116,101, 40,110, 97,109,101, 41, 10, 32,114,101,116,117,114,110, 32, 110, 97,109,101, 10, 10,101,110,100, 10, 10, 45, 45, 32, 99, 104,101, 99,107, 32,105,102, 32,105,116, 32,105,115, 32, 97, 32,118, 97,114,105, 97, 98,108,101, 10,102,117,110, 99,116, 105,111,110, 32, 99,108, 97,115,115, 86, 97,114,105, 97, 98, 108,101, 58,105,115,118, 97,114,105, 97, 98,108,101, 32, 40, 41, 10, 32,114,101,116,117,114,110, 32,116,114,117,101, 10, 101,110,100, 10, 10, 45, 45, 32,103,101,116, 32,118, 97,114, 105, 97, 98,108,101, 32,118, 97,108,117,101, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 86, 97,114,105, 97, 98,108,101, 58,103,101,116,118, 97,108,117,101, 32, 40, 99,108, 97,115,115, 44,115,116, 97,116,105, 99, 44, 32,112, 114,111,112, 95,103,101,116, 41, 10, 10, 9,108,111, 99, 97, 108, 32,110, 97,109,101, 10, 9,105,102, 32,112,114,111,112, 95,103,101,116, 32,116,104,101,110, 10, 10, 9, 9,110, 97, 109,101, 32, 61, 32,112,114,111,112, 95,103,101,116, 46, 46, 34, 40, 41, 34, 10, 9,101,108,115,101, 10, 9, 9,110, 97, 109,101, 32, 61, 32,115,101,108,102, 46,110, 97,109,101, 10, 9,101,110,100, 10, 10, 9,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,115,116, 97,116,105, 99, 32,116,104,101, 110, 10, 9, 32,114,101,116,117,114,110, 32,115,101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112,101, 46, 46, 39, 58, 58, 39, 46, 46,110, 97,109,101, 10, 9,101,108,115,101, 105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 10, 9, 32,114,101,116,117,114,110, 32, 39,115,101,108,102, 45, 62, 39, 46, 46,110, 97,109,101, 10, 9,101,108,115,101, 10, 9, 32,114,101,116,117,114,110, 32,110, 97,109,101, 10, 9,101, 110,100, 10,101,110,100, 10, 10, 45, 45, 32,103,101,116, 32, 118, 97,114,105, 97, 98,108,101, 32,112,111,105,110,116,101, 114, 32,118, 97,108,117,101, 10,102,117,110, 99,116,105,111, 110, 32, 99,108, 97,115,115, 86, 97,114,105, 97, 98,108,101, 58,103,101,116,112,111,105,110,116,101,114,118, 97,108,117, 101, 32, 40, 99,108, 97,115,115, 44,115,116, 97,116,105, 99, 41, 10, 32,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,115,116, 97,116,105, 99, 32,116,104,101,110, 10, 32, 32, 114,101,116,117,114,110, 32, 99,108, 97,115,115, 46, 46, 39, 58, 58,112, 39, 10, 32,101,108,115,101,105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 10, 32, 32,114,101,116,117, 114,110, 32, 39,115,101,108,102, 45, 62,112, 39, 10, 32,101, 108,115,101, 10, 32, 32,114,101,116,117,114,110, 32, 39,112, 39, 10, 32,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 87,114,105,116,101, 32, 98,105,110,100,105,110,103, 32,102, 117,110, 99,116,105,111,110,115, 10,102,117,110, 99,116,105, 111,110, 32, 99,108, 97,115,115, 86, 97,114,105, 97, 98,108, 101, 58,115,117,112, 99,111,100,101, 32, 40, 41, 10, 10, 32, 108,111, 99, 97,108, 32, 99,108, 97,115,115, 32, 61, 32,115, 101,108,102, 58,105,110, 99,108, 97,115,115, 40, 41, 10, 10, 9,108,111, 99, 97,108, 32,112,114,111,112, 95,103,101,116, 44,112,114,111,112, 95,115,101,116, 10, 9,105,102, 32,115, 116,114,105,110,103, 46,102,105,110,100, 40,115,101,108,102, 46,109,111,100, 44, 32, 39,116,111,108,117, 97, 95,112,114, 111,112,101,114,116,121, 39, 41, 32,116,104,101,110, 10, 10, 9, 9,108,111, 99, 97,108, 32, 95, 44, 95, 44,116,121,112, 101, 32, 61, 32,115,116,114,105,110,103, 46,102,105,110,100, 40,115,101,108,102, 46,109,111,100, 44, 32, 34,116,111,108, 117, 97, 95,112,114,111,112,101,114,116,121, 95, 95, 40, 91, 94, 37,115, 93, 42, 41, 34, 41, 10, 9, 9,116,121,112,101, 32, 61, 32,116,121,112,101, 32,111,114, 32, 34,100,101,102, 97,117,108,116, 34, 10, 9, 9,112,114,111,112, 95,103,101, 116, 44,112,114,111,112, 95,115,101,116, 32, 61, 32,103,101, 116, 95,112,114,111,112,101,114,116,121, 95,109,101,116,104, 111,100,115, 40,116,121,112,101, 44, 32,115,101,108,102, 46, 110, 97,109,101, 41, 10, 9, 9,115,101,108,102, 46,109,111, 100, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,115,101,108,102, 46,109,111,100, 44, 32, 34,116,111,108, 117, 97, 95,112,114,111,112,101,114,116,121, 91, 94, 37,115, 93, 42, 34, 44, 32, 34, 34, 41, 10, 9,101,110,100, 10, 10, 32, 45, 45, 32,103,101,116, 32,102,117,110, 99,116,105,111, 110, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 32,105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 10, 32, 32,111,117,116,112,117,116, 40, 34, 47, 42, 32,103,101,116, 32,102,117,110, 99,116,105,111, 110, 58, 34, 44,115,101,108,102, 46,110, 97,109,101, 44, 34, 32,111,102, 32, 99,108, 97,115,115, 32, 34, 44, 99,108, 97, 115,115, 44, 34, 32, 42, 47, 34, 41, 10, 32,101,108,115,101, 10, 32, 32,111,117,116,112,117,116, 40, 34, 47, 42, 32,103, 101,116, 32,102,117,110, 99,116,105,111,110, 58, 34, 44,115, 101,108,102, 46,110, 97,109,101, 44, 34, 32, 42, 47, 34, 41, 10, 32,101,110,100, 10, 32,115,101,108,102, 46, 99,103,101, 116,110, 97,109,101, 32, 61, 32,115,101,108,102, 58, 99,102, 117,110, 99,110, 97,109,101, 40, 34,116,111,108,117, 97, 95, 103,101,116, 34, 41, 10, 32,111,117,116,112,117,116, 40, 34, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 95, 34, 46, 46,115,101,108,102, 46, 99,103,101,116,110, 97,109,101, 41, 10, 32,111,117,116,112, 117,116, 40, 34, 92,110,115,116, 97,116,105, 99, 32,105,110, 116, 34, 44,115,101,108,102, 46, 99,103,101,116,110, 97,109, 101, 44, 34, 40,108,117, 97, 95, 83,116, 97,116,101, 42, 32, 116,111,108,117, 97, 95, 83, 41, 34, 41, 10, 32,111,117,116, 112,117,116, 40, 34,123, 34, 41, 10, 10, 32, 45, 45, 32,100, 101, 99,108, 97,114,101, 32,115,101,108,102, 44, 32,105,102, 32,116,104,101, 32, 99, 97,115,101, 10, 32,108,111, 99, 97, 108, 32, 95, 44, 95, 44,115,116, 97,116,105, 99, 32, 61, 32, 115,116,114,102,105,110,100, 40,115,101,108,102, 46,109,111, 100, 44, 39, 94, 37,115, 42, 40,115,116, 97,116,105, 99, 41, 39, 41, 10, 32,105,102, 32, 99,108, 97,115,115, 32, 97,110, 100, 32,115,116, 97,116,105, 99, 61, 61,110,105,108, 32,116, 104,101,110, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 39, 44,115,101,108,102, 46,112, 97,114,101,110,116, 46,116, 121,112,101, 44, 39, 42, 39, 44, 39,115,101,108,102, 32, 61, 32, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 40, 39, 44,115,101,108,102, 46,112, 97,114,101,110,116, 46,116, 121,112,101, 44, 39, 42, 41, 32, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32,116,111, 95,102,117,110, 99, 32, 61, 32,103, 101,116, 95,116,111, 95,102,117,110, 99,116,105,111,110, 40, 115,101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112, 101, 41, 10, 32, 32,111,117,116,112,117,116, 40,116,111, 95, 102,117,110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 49, 44, 48, 41, 59, 39, 41, 10, 32,101,108,115,101,105,102, 32,115,116, 97,116,105, 99, 32,116,104,101,110, 10, 32, 32, 95, 44, 95, 44,115,101,108,102, 46,109,111,100, 32, 61, 32, 115,116,114,102,105,110,100, 40,115,101,108,102, 46,109,111, 100, 44, 39, 94, 37,115, 42,115,116, 97,116,105, 99, 37,115, 37,115, 42, 40, 46, 42, 41, 39, 41, 10, 32,101,110,100, 10, 10, 10, 32, 45, 45, 32, 99,104,101, 99,107, 32,115,101,108, 102, 32,118, 97,108,117,101, 10, 32,105,102, 32, 99,108, 97, 115,115, 32, 97,110,100, 32,115,116, 97,116,105, 99, 61, 61, 110,105,108, 32,116,104,101,110, 10, 9, 32,111,117,116,112, 117,116, 40, 39, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32,105,102, 32, 40, 33,115,101,108,102, 41, 32,116,111,108,117, 97, 95,101, 114,114,111,114, 40,116,111,108,117, 97, 95, 83, 44, 34,105, 110,118, 97,108,105,100, 32, 92, 39,115,101,108,102, 92, 39, 32,105,110, 32, 97, 99, 99,101,115,115,105,110,103, 32,118, 97,114,105, 97, 98,108,101, 32, 92, 39, 39, 46, 46,115,101, 108,102, 46,110, 97,109,101, 46, 46, 39, 92, 39, 34, 44, 78, 85, 76, 76, 41, 59, 39, 41, 59, 10, 9, 9,111,117,116,112, 117,116, 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,114,101,116,117,114, 110, 32,118, 97,108,117,101, 10, 32,105,102, 32,115,116,114, 105,110,103, 46,102,105,110,100, 40,115,101,108,102, 46,109, 111,100, 44, 32, 39,116,111,108,117, 97, 95,105,110,104,101, 114,105,116,115, 39, 41, 32,116,104,101,110, 10, 9,108,111, 99, 97,108, 32,112,117,115,104, 95,102,117,110, 99, 32, 61, 32,103,101,116, 95,112,117,115,104, 95,102,117,110, 99,116, 105,111,110, 40,115,101,108,102, 46,116,121,112,101, 41, 10, 32, 9,111,117,116,112,117,116, 40, 39, 35,105,102,100,101, 102, 32, 95, 95, 99,112,108,117,115,112,108,117,115, 92,110, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 32, 32, 39, 44,112,117,115,104, 95,102,117,110, 99, 44, 39, 40,116,111, 108,117, 97, 95, 83, 44, 40,118,111,105,100, 42, 41,115,116, 97,116,105, 99, 95, 99, 97,115,116, 60, 39, 46, 46,115,101, 108,102, 46,116,121,112,101, 46, 46, 39, 42, 62, 40,115,101, 108,102, 41, 44, 32, 34, 39, 44,115,101,108,102, 46,116,121, 112,101, 44, 39, 34, 41, 59, 39, 41, 10, 9,111,117,116,112, 117,116, 40, 39, 35,101,108,115,101, 92,110, 39, 41, 10, 9, 111,117,116,112,117,116, 40, 39, 32, 32, 39, 44,112,117,115, 104, 95,102,117,110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 40,118,111,105,100, 42, 41, 40, 40, 39, 46, 46,115, 101,108,102, 46,116,121,112,101, 46, 46, 39, 42, 41,115,101, 108,102, 41, 44, 32, 34, 39, 44,115,101,108,102, 46,116,121, 112,101, 44, 39, 34, 41, 59, 39, 41, 10, 9,111,117,116,112, 117,116, 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10, 32,101,108,115,101, 10, 9,108,111, 99, 97,108, 32,116, 44, 99,116, 32, 61, 32,105,115, 98, 97,115,105, 99, 40,115,101, 108,102, 46,116,121,112,101, 41, 10, 9,105,102, 32,116, 32, 116,104,101,110, 10, 9, 9,111,117,116,112,117,116, 40, 39, 32, 32,116,111,108,117, 97, 95,112,117,115,104, 39, 46, 46, 116, 46, 46, 39, 40,116,111,108,117, 97, 95, 83, 44, 40, 39, 44, 99,116, 44, 39, 41, 39, 46, 46,115,101,108,102, 58,103, 101,116,118, 97,108,117,101, 40, 99,108, 97,115,115, 44,115, 116, 97,116,105, 99, 44,112,114,111,112, 95,103,101,116, 41, 46, 46, 39, 41, 59, 39, 41, 10, 9,101,108,115,101, 10, 9, 9,108,111, 99, 97,108, 32,112,117,115,104, 95,102,117,110, 99, 32, 61, 32,103,101,116, 95,112,117,115,104, 95,102,117, 110, 99,116,105,111,110, 40,115,101,108,102, 46,116,121,112, 101, 41, 10, 9, 9,116, 32, 61, 32,115,101,108,102, 46,116, 121,112,101, 10, 9, 9,105,102, 32,115,101,108,102, 46,112, 116,114, 32, 61, 61, 32, 39, 38, 39, 32,111,114, 32,115,101, 108,102, 46,112,116,114, 32, 61, 61, 32, 39, 39, 32,116,104, 101,110, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32, 32, 39, 44,112,117,115,104, 95,102,117,110, 99, 44, 39, 40, 116,111,108,117, 97, 95, 83, 44, 40,118,111,105,100, 42, 41, 38, 39, 46, 46,115,101,108,102, 58,103,101,116,118, 97,108, 117,101, 40, 99,108, 97,115,115, 44,115,116, 97,116,105, 99, 44,112,114,111,112, 95,103,101,116, 41, 46, 46, 39, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10, 9, 9,101,108, 115,101, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32, 32, 39, 44,112,117,115,104, 95,102,117,110, 99, 44, 39, 40, 116,111,108,117, 97, 95, 83, 44, 40,118,111,105,100, 42, 41, 39, 46, 46,115,101,108,102, 58,103,101,116,118, 97,108,117, 101, 40, 99,108, 97,115,115, 44,115,116, 97,116,105, 99, 44, 112,114,111,112, 95,103,101,116, 41, 46, 46, 39, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10, 9, 9,101,110,100, 10, 9,101,110,100, 10, 32,101,110,100, 10, 32,111,117,116, 112,117,116, 40, 39, 32,114,101,116,117,114,110, 32, 49, 59, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39,125, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39, 35,101,110,100,105, 102, 32, 47, 47, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 92,110, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39, 92,110, 39, 41, 10, 10, 32, 45, 45, 32,115,101,116, 32,102,117,110, 99,116,105,111, 110, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 32,105,102, 32,110,111,116, 32, 40, 115,116,114,102,105,110,100, 40,115,101,108,102, 46,116,121, 112,101, 44, 39, 99,111,110,115,116, 37,115, 43, 39, 41, 32, 111,114, 32,115,116,114,105,110,103, 46,102,105,110,100, 40, 115,101,108,102, 46,109,111,100, 44, 32, 39,116,111,108,117, 97, 95,114,101, 97,100,111,110,108,121, 39, 41, 32,111,114, 32,115,116,114,105,110,103, 46,102,105,110,100, 40,115,101, 108,102, 46,109,111,100, 44, 32, 39,116,111,108,117, 97, 95, 105,110,104,101,114,105,116,115, 39, 41, 41, 32, 32,116,104, 101,110, 10, 32, 32,105,102, 32, 99,108, 97,115,115, 32,116, 104,101,110, 10, 32, 32, 32,111,117,116,112,117,116, 40, 34, 47, 42, 32,115,101,116, 32,102,117,110, 99,116,105,111,110, 58, 34, 44,115,101,108,102, 46,110, 97,109,101, 44, 34, 32, 111,102, 32, 99,108, 97,115,115, 32, 34, 44, 99,108, 97,115, 115, 44, 34, 32, 42, 47, 34, 41, 10, 32, 32,101,108,115,101, 10, 32, 32, 32,111,117,116,112,117,116, 40, 34, 47, 42, 32, 115,101,116, 32,102,117,110, 99,116,105,111,110, 58, 34, 44, 115,101,108,102, 46,110, 97,109,101, 44, 34, 32, 42, 47, 34, 41, 10, 32, 32,101,110,100, 10, 32, 32,115,101,108,102, 46, 99,115,101,116,110, 97,109,101, 32, 61, 32,115,101,108,102, 58, 99,102,117,110, 99,110, 97,109,101, 40, 34,116,111,108, 117, 97, 95,115,101,116, 34, 41, 10, 32, 32,111,117,116,112, 117,116, 40, 34, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 95, 34, 46, 46,115, 101,108,102, 46, 99,115,101,116,110, 97,109,101, 41, 10, 32, 32,111,117,116,112,117,116, 40, 34, 92,110,115,116, 97,116, 105, 99, 32,105,110,116, 34, 44,115,101,108,102, 46, 99,115, 101,116,110, 97,109,101, 44, 34, 40,108,117, 97, 95, 83,116, 97,116,101, 42, 32,116,111,108,117, 97, 95, 83, 41, 34, 41, 10, 32, 32,111,117,116,112,117,116, 40, 34,123, 34, 41, 10, 10, 32, 32, 45, 45, 32,100,101, 99,108, 97,114,101, 32,115, 101,108,102, 44, 32,105,102, 32,116,104,101, 32, 99, 97,115, 101, 10, 32, 32,105,102, 32, 99,108, 97,115,115, 32, 97,110, 100, 32,115,116, 97,116,105, 99, 61, 61,110,105,108, 32,116, 104,101,110, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 39, 44,115,101,108,102, 46,112, 97,114,101,110,116, 46, 116,121,112,101, 44, 39, 42, 39, 44, 39,115,101,108,102, 32, 61, 32, 39, 41, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39, 40, 39, 44,115,101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112,101, 44, 39, 42, 41, 32, 39, 41, 10, 32, 32, 32,108,111, 99, 97,108, 32,116,111, 95,102,117,110, 99, 32, 61, 32,103,101,116, 95,116,111, 95,102,117,110, 99,116,105, 111,110, 40,115,101,108,102, 46,112, 97,114,101,110,116, 46, 116,121,112,101, 41, 10, 32, 32, 32,111,117,116,112,117,116, 40,116,111, 95,102,117,110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 49, 44, 48, 41, 59, 39, 41, 10, 32, 32, 32, 45, 45, 32, 99,104,101, 99,107, 32,115,101,108,102, 32,118, 97,108,117,101, 10, 9, 9,101,110,100, 10, 32, 32, 45, 45, 32, 99,104,101, 99,107, 32,116,121,112,101,115, 10, 9, 9, 111,117,116,112,117,116, 40, 39, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92, 110, 39, 41, 10, 9, 9,111,117,116,112,117,116, 40, 39, 32, 32,116,111,108,117, 97, 95, 69,114,114,111,114, 32,116,111, 108,117, 97, 95,101,114,114, 59, 39, 41, 10, 32, 32,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,115,116, 97,116, 105, 99, 61, 61,110,105,108, 32,116,104,101,110, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32,105,102, 32, 40, 33,115,101,108,102, 41, 32,116,111,108,117, 97, 95,101,114, 114,111,114, 40,116,111,108,117, 97, 95, 83, 44, 34,105,110, 118, 97,108,105,100, 32, 92, 39,115,101,108,102, 92, 39, 32, 105,110, 32, 97, 99, 99,101,115,115,105,110,103, 32,118, 97, 114,105, 97, 98,108,101, 32, 92, 39, 39, 46, 46,115,101,108, 102, 46,110, 97,109,101, 46, 46, 39, 92, 39, 34, 44, 78, 85, 76, 76, 41, 59, 39, 41, 59, 10, 32, 32,101,108,115,101,105, 102, 32,115,116, 97,116,105, 99, 32,116,104,101,110, 10, 32, 32, 32, 95, 44, 95, 44,115,101,108,102, 46,109,111,100, 32, 61, 32,115,116,114,102,105,110,100, 40,115,101,108,102, 46, 109,111,100, 44, 39, 94, 37,115, 42,115,116, 97,116,105, 99, 37,115, 37,115, 42, 40, 46, 42, 41, 39, 41, 10, 32, 32,101, 110,100, 10, 10, 32, 32, 45, 45, 32, 99,104,101, 99,107, 32, 118, 97,114,105, 97, 98,108,101, 32,116,121,112,101, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32,105,102, 32, 40, 39, 46, 46,115,101,108,102, 58,111,117,116, 99,104,101, 99, 107,116,121,112,101, 40, 50, 41, 46, 46, 39, 41, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32,116,111, 108,117, 97, 95,101,114,114,111,114, 40,116,111,108,117, 97, 95, 83, 44, 34, 35,118,105,110,118, 97,108,105,100, 32,116, 121,112,101, 32,105,110, 32,118, 97,114,105, 97, 98,108,101, 32, 97,115,115,105,103,110,109,101,110,116, 46, 34, 44, 38, 116,111,108,117, 97, 95,101,114,114, 41, 59, 39, 41, 10, 9, 9,111,117,116,112,117,116, 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10, 10, 32, 32, 45, 45, 32, 97,115,115,105, 103,110, 32,118, 97,108,117,101, 10, 9, 9,108,111, 99, 97, 108, 32,100,101,102, 32, 61, 32, 48, 10, 9, 9,105,102, 32, 115,101,108,102, 46,100,101,102, 32,126, 61, 32, 39, 39, 32, 116,104,101,110, 32,100,101,102, 32, 61, 32,115,101,108,102, 46,100,101,102, 32,101,110,100, 10, 9, 9,105,102, 32,115, 101,108,102, 46,116,121,112,101, 32, 61, 61, 32, 39, 99,104, 97,114, 42, 39, 32, 97,110,100, 32,115,101,108,102, 46,100, 105,109, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 32, 45, 45, 32,105,115, 32,115,116,114,105,110,103, 10, 9, 9, 32, 111,117,116,112,117,116, 40, 39, 32,115,116,114,110, 99,112, 121, 40, 39, 41, 10, 9, 9, 9,105,102, 32, 99,108, 97,115, 115, 32, 97,110,100, 32,115,116, 97,116,105, 99, 32,116,104, 101,110, 10, 9, 9, 9, 9,111,117,116,112,117,116, 40,115, 101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112,101, 46, 46, 39, 58, 58, 39, 46, 46,115,101,108,102, 46,110, 97, 109,101, 41, 10, 9, 9, 9,101,108,115,101,105,102, 32, 99, 108, 97,115,115, 32,116,104,101,110, 10, 9, 9, 9, 9,111, 117,116,112,117,116, 40, 39,115,101,108,102, 45, 62, 39, 46, 46,115,101,108,102, 46,110, 97,109,101, 41, 10, 9, 9, 9, 101,108,115,101, 10, 9, 9, 9, 9,111,117,116,112,117,116, 40,115,101,108,102, 46,110, 97,109,101, 41, 10, 9, 9, 9, 101,110,100, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 44,116,111,108,117, 97, 95,116,111,115,116,114,105,110,103, 40,116,111,108,117, 97, 95, 83, 44, 50, 44, 39, 44,100,101, 102, 44, 39, 41, 44, 39, 44,115,101,108,102, 46,100,105,109, 44, 39, 45, 49, 41, 59, 39, 41, 10, 9, 9,101,108,115,101, 10, 9, 9, 9,108,111, 99, 97,108, 32,112,116,114, 32, 61, 32, 39, 39, 10, 9, 9, 9,105,102, 32,115,101,108,102, 46, 112,116,114,126, 61, 39, 39, 32,116,104,101,110, 32,112,116, 114, 32, 61, 32, 39, 42, 39, 32,101,110,100, 10, 9, 9, 9, 111,117,116,112,117,116, 40, 39, 32, 39, 41, 10, 9, 9, 9, 108,111, 99, 97,108, 32,110, 97,109,101, 32, 61, 32,112,114, 111,112, 95,115,101,116, 32,111,114, 32,115,101,108,102, 46, 110, 97,109,101, 10, 9, 9, 9,105,102, 32, 99,108, 97,115, 115, 32, 97,110,100, 32,115,116, 97,116,105, 99, 32,116,104, 101,110, 10, 9, 9, 9, 9,111,117,116,112,117,116, 40,115, 101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112,101, 46, 46, 39, 58, 58, 39, 46, 46,110, 97,109,101, 41, 10, 9, 9, 9,101,108,115,101,105,102, 32, 99,108, 97,115,115, 32, 116,104,101,110, 10, 9, 9, 9, 9,111,117,116,112,117,116, 40, 39,115,101,108,102, 45, 62, 39, 46, 46,110, 97,109,101, 41, 10, 9, 9, 9,101,108,115,101, 10, 9, 9, 9, 9,111, 117,116,112,117,116, 40,110, 97,109,101, 41, 10, 9, 9, 9, 101,110,100, 10, 9, 9, 9,108,111, 99, 97,108, 32,116, 32, 61, 32,105,115, 98, 97,115,105, 99, 40,115,101,108,102, 46, 116,121,112,101, 41, 10, 9, 9, 9,105,102, 32,112,114,111, 112, 95,115,101,116, 32,116,104,101,110, 10, 9, 9, 9, 9, 111,117,116,112,117,116, 40, 39, 40, 39, 41, 10, 9, 9, 9, 101,108,115,101, 10, 9, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32, 61, 32, 39, 41, 10, 9, 9, 9,101,110,100, 10, 9, 9, 9,105,102, 32,110,111,116, 32,116, 32, 97,110,100, 32,112,116,114, 61, 61, 39, 39, 32,116,104,101,110, 32,111, 117,116,112,117,116, 40, 39, 42, 39, 41, 32,101,110,100, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 40, 40, 39, 44, 115,101,108,102, 46,109,111,100, 44,115,101,108,102, 46,116, 121,112,101, 41, 10, 9, 9, 9,105,102, 32,110,111,116, 32, 116, 32,116,104,101,110, 10, 9, 9, 9, 9,111,117,116,112, 117,116, 40, 39, 42, 39, 41, 10, 9, 9, 9,101,110,100, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 41, 32, 39, 41, 10, 9, 9, 9,105,102, 32,116, 32,116,104,101,110, 10, 9, 9, 9, 9,105,102, 32,105,115,101,110,117,109, 40,115,101, 108,102, 46,116,121,112,101, 41, 32,116,104,101,110, 10, 9, 9, 9, 9, 9,111,117,116,112,117,116, 40, 39, 40,105,110, 116, 41, 32, 39, 41, 10, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9, 9,111,117,116,112,117,116, 40, 39,116,111,108,117, 97, 95,116,111, 39, 46, 46,116, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 50, 44, 39, 44,100,101,102, 44, 39, 41, 41, 39, 41, 10, 9, 9, 9,101,108,115,101, 10, 9, 9, 9, 9, 108,111, 99, 97,108, 32,116,111, 95,102,117,110, 99, 32, 61, 32,103,101,116, 95,116,111, 95,102,117,110, 99,116,105,111, 110, 40,115,101,108,102, 46,116,121,112,101, 41, 10, 9, 9, 9, 9,111,117,116,112,117,116, 40,116,111, 95,102,117,110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 50, 44, 39, 44,100,101,102, 44, 39, 41, 41, 39, 41, 10, 9, 9, 9,101, 110,100, 10, 9, 9, 9,105,102, 32,112,114,111,112, 95,115, 101,116, 32,116,104,101,110, 10, 9, 9, 9, 9,111,117,116, 112,117,116, 40, 34, 41, 34, 41, 10, 9, 9, 9,101,110,100, 10, 9, 9, 9,111,117,116,112,117,116, 40, 34, 59, 34, 41, 10, 9, 9,101,110,100, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32,114,101,116,117,114,110, 32, 48, 59, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39,125, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 35,101,110,100,105,102, 32, 47, 47, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 92,110, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 92,110, 39, 41, 10, 32, 101,110,100, 10, 10,101,110,100, 10, 10,102,117,110, 99,116, 105,111,110, 32, 99,108, 97,115,115, 86, 97,114,105, 97, 98, 108,101, 58,114,101,103,105,115,116,101,114, 32, 40,112,114, 101, 41, 10, 10, 9,105,102, 32,110,111,116, 32,115,101,108, 102, 58, 99,104,101, 99,107, 95,112,117, 98,108,105, 99, 95, 97, 99, 99,101,115,115, 40, 41, 32,116,104,101,110, 10, 9, 9,114,101,116,117,114,110, 10, 9,101,110,100, 10, 32,112, 114,101, 32, 61, 32,112,114,101, 32,111,114, 32, 39, 39, 10, 32,108,111, 99, 97,108, 32,112, 97,114,101,110,116, 32, 61, 32,115,101,108,102, 58,105,110,109,111,100,117,108,101, 40, 41, 32,111,114, 32,115,101,108,102, 58,105,110,110, 97,109, 101,115,112, 97, 99,101, 40, 41, 32,111,114, 32,115,101,108, 102, 58,105,110, 99,108, 97,115,115, 40, 41, 10, 32,105,102, 32,110,111,116, 32,112, 97,114,101,110,116, 32,116,104,101, 110, 10, 32, 32,105,102, 32, 99,108, 97,115,115, 86, 97,114, 105, 97, 98,108,101, 46, 95,119, 97,114,110,105,110,103, 61, 61,110,105,108, 32,116,104,101,110, 10, 32, 32, 32,119, 97, 114,110,105,110,103, 40, 34, 77, 97,112,112,105,110,103, 32, 118, 97,114,105, 97, 98,108,101, 32,116,111, 32,103,108,111, 98, 97,108, 32,109, 97,121, 32,100,101,103,114, 97,100,101, 32,112,101,114,102,111,114,109, 97,110, 99,101, 34, 41, 10, 32, 32, 32, 99,108, 97,115,115, 86, 97,114,105, 97, 98,108, 101, 46, 95,119, 97,114,110,105,110,103, 32, 61, 32, 49, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 32,105,102, 32, 115,101,108,102, 46, 99,115,101,116,110, 97,109,101, 32,116, 104,101,110, 10, 32, 32,111,117,116,112,117,116, 40,112,114, 101, 46, 46, 39,116,111,108,117, 97, 95,118, 97,114,105, 97, 98,108,101, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101,108,102, 46,108,110, 97,109,101, 46, 46, 39, 34, 44, 39, 46, 46,115,101,108,102, 46, 99,103,101,116,110, 97, 109,101, 46, 46, 39, 44, 39, 46, 46,115,101,108,102, 46, 99, 115,101,116,110, 97,109,101, 46, 46, 39, 41, 59, 39, 41, 10, 32,101,108,115,101, 10, 32, 32,111,117,116,112,117,116, 40, 112,114,101, 46, 46, 39,116,111,108,117, 97, 95,118, 97,114, 105, 97, 98,108,101, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101,108,102, 46,108,110, 97,109,101, 46, 46, 39, 34, 44, 39, 46, 46,115,101,108,102, 46, 99,103,101,116, 110, 97,109,101, 46, 46, 39, 44, 78, 85, 76, 76, 41, 59, 39, 41, 10, 32,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 73,110,116,101,114,110, 97,108, 32, 99,111,110,115,116,114, 117, 99,116,111,114, 10,102,117,110, 99,116,105,111,110, 32, 95, 86, 97,114,105, 97, 98,108,101, 32, 40,116, 41, 10, 32, 115,101,116,109,101,116, 97,116, 97, 98,108,101, 40,116, 44, 99,108, 97,115,115, 86, 97,114,105, 97, 98,108,101, 41, 10, 32, 97,112,112,101,110,100, 40,116, 41, 10, 32,114,101,116, 117,114,110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32, 67, 111,110,115,116,114,117, 99,116,111,114, 10, 45, 45, 32, 69, 120,112,101, 99,116,115, 32, 97, 32,115,116,114,105,110,103, 32,114,101,112,114,101,115,101,110,116,105,110,103, 32,116, 104,101, 32,118, 97,114,105, 97, 98,108,101, 32,100,101, 99, 108, 97,114, 97,116,105,111,110, 46, 10,102,117,110, 99,116, 105,111,110, 32, 86, 97,114,105, 97, 98,108,101, 32, 40,115, 41, 10, 32,114,101,116,117,114,110, 32, 95, 86, 97,114,105, 97, 98,108,101, 32, 40, 68,101, 99,108, 97,114, 97,116,105, 111,110, 40,115, 44, 39,118, 97,114, 39, 41, 41, 10,101,110, 100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/variable.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32, 97,114,114, 97,121, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114,105,116,116, 101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97, 102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117, 108, 32, 49, 57, 57, 57, 10, 45, 45, 32, 36, 73,100, 58, 32, 97,114,114, 97,121, 46,108,117, 97, 44,118, 32, 49, 46, 49, 32, 50, 48, 48, 48, 47, 49, 49, 47, 48, 54, 32, 50, 50, 58, 48, 51, 58, 53, 55, 32, 99,101,108,101,115, 32, 69,120,112, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111,100, 101, 32,105,115, 32,102,114,101,101, 32,115,111,102,116,119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32,114,101, 100,105,115,116,114,105, 98,117,116,101, 32,105,116, 32, 97, 110,100, 47,111,114, 32,109,111,100,105,102,121, 32,105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116,119, 97, 114,101, 32,112,114,111,118,105,100,101,100, 32,104,101,114, 101,117,110,100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97,117,116, 104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98,108,105, 103, 97,116,105,111,110, 32,116,111, 32,112,114,111,118,105, 100,101, 32,109, 97,105,110,116,101,110, 97,110, 99,101, 44, 32,115,117,112,112,111,114,116, 44, 32,117,112,100, 97,116, 101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,101,109, 101,110,116,115, 44, 32,111,114, 32,109,111,100,105,102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 45, 45, 32, 65, 114,114, 97,121, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82, 101,112,114,101,115,101,110,116,115, 32, 97, 32,101,120,116, 101,114,110, 32, 97,114,114, 97,121, 32,118, 97,114,105, 97, 98,108,101, 32,111,114, 32, 97, 32,112,117, 98,108,105, 99, 32,109,101,109, 98,101,114, 32,111,102, 32, 97, 32, 99,108, 97,115,115, 46, 10, 45, 45, 32, 83,116,111,114,101,115, 32, 97,108,108, 32,102,105,101,108,100,115, 32,112,114,101,115, 101,110,116, 32,105,110, 32, 97, 32,100,101, 99,108, 97,114, 97,116,105,111,110, 46, 10, 99,108, 97,115,115, 65,114,114, 97,121, 32, 61, 32,123, 10,125, 10, 99,108, 97,115,115, 65, 114,114, 97,121, 46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97,115,115, 65,114,114, 97,121, 10,115,101,116,109, 101,116, 97,116, 97, 98,108,101, 40, 99,108, 97,115,115, 65, 114,114, 97,121, 44, 99,108, 97,115,115, 68,101, 99,108, 97, 114, 97,116,105,111,110, 41, 10, 10, 45, 45, 32, 80,114,105, 110,116, 32,109,101,116,104,111,100, 10,102,117,110, 99,116, 105,111,110, 32, 99,108, 97,115,115, 65,114,114, 97,121, 58, 112,114,105,110,116, 32, 40,105,100,101,110,116, 44, 99,108, 111,115,101, 41, 10, 32,112,114,105,110,116, 40,105,100,101, 110,116, 46, 46, 34, 65,114,114, 97,121,123, 34, 41, 10, 32, 112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 109,111,100, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,109,111,100, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114, 105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,116,121, 112,101, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,116, 121,112,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105, 110,116, 40,105,100,101,110,116, 46, 46, 34, 32,112,116,114, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,112,116, 114, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40, 105,100,101,110,116, 46, 46, 34, 32,100,101,102, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,100,101,102, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100, 101,110,116, 46, 46, 34, 32,100,105,109, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,100,105,109, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110, 116, 46, 46, 34, 32,114,101,116, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,114,101,116, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34,125, 34, 46, 46, 99,108,111,115,101, 41, 10,101,110, 100, 10, 10, 45, 45, 32, 99,104,101, 99,107, 32,105,102, 32, 105,116, 32,105,115, 32, 97, 32,118, 97,114,105, 97, 98,108, 101, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115, 115, 65,114,114, 97,121, 58,105,115,118, 97,114,105, 97, 98, 108,101, 32, 40, 41, 10, 32,114,101,116,117,114,110, 32,116, 114,117,101, 10,101,110,100, 10, 10, 10, 45, 45, 32,103,101, 116, 32,118, 97,114,105, 97, 98,108,101, 32,118, 97,108,117, 101, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115, 115, 65,114,114, 97,121, 58,103,101,116,118, 97,108,117,101, 32, 40, 99,108, 97,115,115, 44,115,116, 97,116,105, 99, 41, 10, 32,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32, 115,116, 97,116,105, 99, 32,116,104,101,110, 10, 32, 32,114, 101,116,117,114,110, 32, 99,108, 97,115,115, 46, 46, 39, 58, 58, 39, 46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46, 39, 91,116,111,108,117, 97, 95,105,110,100,101,120, 93, 39, 10, 32,101,108,115,101,105,102, 32, 99,108, 97,115,115, 32, 116,104,101,110, 10, 32, 32,114,101,116,117,114,110, 32, 39, 115,101,108,102, 45, 62, 39, 46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46, 39, 91,116,111,108,117, 97, 95,105,110, 100,101,120, 93, 39, 10, 32,101,108,115,101, 10, 32, 32,114, 101,116,117,114,110, 32,115,101,108,102, 46,110, 97,109,101, 46, 46, 39, 91,116,111,108,117, 97, 95,105,110,100,101,120, 93, 39, 10, 32,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 87,114,105,116,101, 32, 98,105,110,100,105,110,103, 32, 102,117,110, 99,116,105,111,110,115, 10,102,117,110, 99,116, 105,111,110, 32, 99,108, 97,115,115, 65,114,114, 97,121, 58, 115,117,112, 99,111,100,101, 32, 40, 41, 10, 32,108,111, 99, 97,108, 32, 99,108, 97,115,115, 32, 61, 32,115,101,108,102, 58,105,110, 99,108, 97,115,115, 40, 41, 10, 10, 32, 45, 45, 32,103,101,116, 32,102,117,110, 99,116,105,111,110, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 32,105,102, 32, 99,108, 97,115,115, 32,116,104, 101,110, 10, 32, 32,111,117,116,112,117,116, 40, 34, 47, 42, 32,103,101,116, 32,102,117,110, 99,116,105,111,110, 58, 34, 44,115,101,108,102, 46,110, 97,109,101, 44, 34, 32,111,102, 32, 99,108, 97,115,115, 32, 34, 44, 99,108, 97,115,115, 44, 34, 32, 42, 47, 34, 41, 10, 32,101,108,115,101, 10, 32, 32, 111,117,116,112,117,116, 40, 34, 47, 42, 32,103,101,116, 32, 102,117,110, 99,116,105,111,110, 58, 34, 44,115,101,108,102, 46,110, 97,109,101, 44, 34, 32, 42, 47, 34, 41, 10, 32,101, 110,100, 10, 32,115,101,108,102, 46, 99,103,101,116,110, 97, 109,101, 32, 61, 32,115,101,108,102, 58, 99,102,117,110, 99, 110, 97,109,101, 40, 34,116,111,108,117, 97, 95,103,101,116, 34, 41, 10, 32,111,117,116,112,117,116, 40, 34, 35,105,102, 110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 95, 34, 46, 46,115,101,108,102, 46, 99,103,101, 116,110, 97,109,101, 41, 10, 32,111,117,116,112,117,116, 40, 34, 92,110,115,116, 97,116,105, 99, 32,105,110,116, 34, 44, 115,101,108,102, 46, 99,103,101,116,110, 97,109,101, 44, 34, 40,108,117, 97, 95, 83,116, 97,116,101, 42, 32,116,111,108, 117, 97, 95, 83, 41, 34, 41, 10, 32,111,117,116,112,117,116, 40, 34,123, 34, 41, 10, 32,111,117,116,112,117,116, 40, 34, 32,105,110,116, 32,116,111,108,117, 97, 95,105,110,100,101, 120, 59, 34, 41, 10, 10, 32, 45, 45, 32,100,101, 99,108, 97, 114,101, 32,115,101,108,102, 44, 32,105,102, 32,116,104,101, 32, 99, 97,115,101, 10, 32,108,111, 99, 97,108, 32, 95, 44, 95, 44,115,116, 97,116,105, 99, 32, 61, 32,115,116,114,102, 105,110,100, 40,115,101,108,102, 46,109,111,100, 44, 39, 94, 37,115, 42, 40,115,116, 97,116,105, 99, 41, 39, 41, 10, 32, 105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,115,116, 97,116,105, 99, 61, 61,110,105,108, 32,116,104,101,110, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 39, 44,115,101, 108,102, 46,112, 97,114,101,110,116, 46,116,121,112,101, 44, 39, 42, 39, 44, 39,115,101,108,102, 59, 39, 41, 10, 32, 32, 111,117,116,112,117,116, 40, 39, 32,108,117, 97, 95,112,117, 115,104,115,116,114,105,110,103, 40,116,111,108,117, 97, 95, 83, 44, 34, 46,115,101,108,102, 34, 41, 59, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32,108,117, 97, 95,114, 97,119,103,101,116, 40,116,111,108,117, 97, 95, 83, 44, 49, 41, 59, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32,115,101,108,102, 32, 61, 32, 39, 41, 10, 32, 32,111,117, 116,112,117,116, 40, 39, 40, 39, 44,115,101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112,101, 44, 39, 42, 41, 32, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39,108,117, 97, 95,116,111,117,115,101,114,100, 97,116, 97, 40,116,111, 108,117, 97, 95, 83, 44, 45, 49, 41, 59, 39, 41, 10, 32,101, 108,115,101,105,102, 32,115,116, 97,116,105, 99, 32,116,104, 101,110, 10, 32, 32, 95, 44, 95, 44,115,101,108,102, 46,109, 111,100, 32, 61, 32,115,116,114,102,105,110,100, 40,115,101, 108,102, 46,109,111,100, 44, 39, 94, 37,115, 42,115,116, 97, 116,105, 99, 37,115, 37,115, 42, 40, 46, 42, 41, 39, 41, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32, 99,104,101, 99,107, 32,105,110,100,101,120, 10, 9,111,117,116,112,117,116, 40, 39, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, 9,111,117, 116,112,117,116, 40, 39, 32,123, 39, 41, 10, 9,111,117,116, 112,117,116, 40, 39, 32, 32,116,111,108,117, 97, 95, 69,114, 114,111,114, 32,116,111,108,117, 97, 95,101,114,114, 59, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39, 32, 32,105,102, 32, 40, 33,116,111,108,117, 97, 95,105,115,110,117,109, 98, 101,114, 40,116,111,108,117, 97, 95, 83, 44, 50, 44, 48, 44, 38,116,111,108,117, 97, 95,101,114,114, 41, 41, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32,116,111,108, 117, 97, 95,101,114,114,111,114, 40,116,111,108,117, 97, 95, 83, 44, 34, 35,118,105,110,118, 97,108,105,100, 32,116,121, 112,101, 32,105,110, 32, 97,114,114, 97,121, 32,105,110,100, 101,120,105,110,103, 46, 34, 44, 38,116,111,108,117, 97, 95, 101,114,114, 41, 59, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 32,125, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10, 9,105,102, 32,102,108, 97,103,115, 91, 39, 49, 39, 93, 32,116,104,101, 110, 32, 45, 45, 32,102,111,114, 32, 99,111,109,112, 97,116, 105, 98,105,108,105,116,121, 32,119,105,116,104, 32,116,111, 108,117, 97, 53, 32, 63, 10, 9, 9,111,117,116,112,117,116, 40, 39, 32,116,111,108,117, 97, 95,105,110,100,101,120, 32, 61, 32, 40,105,110,116, 41,116,111,108,117, 97, 95,116,111, 110,117,109, 98,101,114, 40,116,111,108,117, 97, 95, 83, 44, 50, 44, 48, 41, 45, 49, 59, 39, 41, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,112,117,116, 40, 39, 32,116,111,108, 117, 97, 95,105,110,100,101,120, 32, 61, 32, 40,105,110,116, 41,116,111,108,117, 97, 95,116,111,110,117,109, 98,101,114, 40,116,111,108,117, 97, 95, 83, 44, 50, 44, 48, 41, 59, 39, 41, 10, 9,101,110,100, 10, 9,111,117,116,112,117,116, 40, 39, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, 9,105,102, 32,115,101,108,102, 46,100,105,109, 32, 97,110,100, 32,115, 101,108,102, 46,100,105,109, 32,126, 61, 32, 39, 39, 32,116, 104,101,110, 10, 9, 32, 32,111,117,116,112,117,116, 40, 39, 32,105,102, 32, 40,116,111,108,117, 97, 95,105,110,100,101, 120, 60, 48, 32,124,124, 32,116,111,108,117, 97, 95,105,110, 100,101,120, 62, 61, 39, 46, 46,115,101,108,102, 46,100,105, 109, 46, 46, 39, 41, 39, 41, 10, 9,101,108,115,101, 10, 9, 32, 32,111,117,116,112,117,116, 40, 39, 32,105,102, 32, 40, 116,111,108,117, 97, 95,105,110,100,101,120, 60, 48, 41, 39, 41, 10, 9,101,110,100, 10, 32,111,117,116,112,117,116, 40, 39, 32, 32,116,111,108,117, 97, 95,101,114,114,111,114, 40, 116,111,108,117, 97, 95, 83, 44, 34, 97,114,114, 97,121, 32, 105,110,100,101,120,105,110,103, 32,111,117,116, 32,111,102, 32,114, 97,110,103,101, 46, 34, 44, 78, 85, 76, 76, 41, 59, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 35,101,110, 100,105,102, 92,110, 39, 41, 10, 10, 32, 45, 45, 32,114,101, 116,117,114,110, 32,118, 97,108,117,101, 10, 32,108,111, 99, 97,108, 32,116, 44, 99,116, 32, 61, 32,105,115, 98, 97,115, 105, 99, 40,115,101,108,102, 46,116,121,112,101, 41, 10, 32, 108,111, 99, 97,108, 32,112,117,115,104, 95,102,117,110, 99, 32, 61, 32,103,101,116, 95,112,117,115,104, 95,102,117,110, 99,116,105,111,110, 40,116, 41, 10, 32,105,102, 32,116, 32, 116,104,101,110, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32,116,111,108,117, 97, 95,112,117,115,104, 39, 46, 46,116, 46, 46, 39, 40,116,111,108,117, 97, 95, 83, 44, 40, 39, 44, 99,116, 44, 39, 41, 39, 46, 46,115,101,108,102, 58,103,101, 116,118, 97,108,117,101, 40, 99,108, 97,115,115, 44,115,116, 97,116,105, 99, 41, 46, 46, 39, 41, 59, 39, 41, 10, 32,101, 108,115,101, 10, 9, 9,116, 32, 61, 32,115,101,108,102, 46, 116,121,112,101, 10, 32, 32,105,102, 32,115,101,108,102, 46, 112,116,114, 32, 61, 61, 32, 39, 38, 39, 32,111,114, 32,115, 101,108,102, 46,112,116,114, 32, 61, 61, 32, 39, 39, 32,116, 104,101,110, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 39, 44,112,117,115,104, 95,102,117,110, 99, 44, 39, 40, 116,111,108,117, 97, 95, 83, 44, 40,118,111,105,100, 42, 41, 38, 39, 46, 46,115,101,108,102, 58,103,101,116,118, 97,108, 117,101, 40, 99,108, 97,115,115, 44,115,116, 97,116,105, 99, 41, 46, 46, 39, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10, 32, 32,101,108,115,101, 10, 32, 32, 32,111,117,116, 112,117,116, 40, 39, 32, 39, 44,112,117,115,104, 95,102,117, 110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 40,118, 111,105,100, 42, 41, 39, 46, 46,115,101,108,102, 58,103,101, 116,118, 97,108,117,101, 40, 99,108, 97,115,115, 44,115,116, 97,116,105, 99, 41, 46, 46, 39, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10, 32, 32,101,110,100, 10, 32,101,110, 100, 10, 32,111,117,116,112,117,116, 40, 39, 32,114,101,116, 117,114,110, 32, 49, 59, 39, 41, 10, 32,111,117,116,112,117, 116, 40, 39,125, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39, 35,101,110,100,105,102, 32, 47, 47, 35,105,102,110,100, 101,102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 92,110, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39, 92,110, 39, 41, 10, 10, 32, 45, 45, 32,115,101,116, 32,102, 117,110, 99,116,105,111,110, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 32,105,102, 32,110,111,116, 32,115,116,114,102,105,110,100, 40,115,101, 108,102, 46,116,121,112,101, 44, 39, 99,111,110,115,116, 39, 41, 32,116,104,101,110, 10, 32, 32,105,102, 32, 99,108, 97, 115,115, 32,116,104,101,110, 10, 32, 32, 32,111,117,116,112, 117,116, 40, 34, 47, 42, 32,115,101,116, 32,102,117,110, 99, 116,105,111,110, 58, 34, 44,115,101,108,102, 46,110, 97,109, 101, 44, 34, 32,111,102, 32, 99,108, 97,115,115, 32, 34, 44, 99,108, 97,115,115, 44, 34, 32, 42, 47, 34, 41, 10, 32, 32, 101,108,115,101, 10, 32, 32, 32,111,117,116,112,117,116, 40, 34, 47, 42, 32,115,101,116, 32,102,117,110, 99,116,105,111, 110, 58, 34, 44,115,101,108,102, 46,110, 97,109,101, 44, 34, 32, 42, 47, 34, 41, 10, 32, 32,101,110,100, 10, 32, 32,115, 101,108,102, 46, 99,115,101,116,110, 97,109,101, 32, 61, 32, 115,101,108,102, 58, 99,102,117,110, 99,110, 97,109,101, 40, 34,116,111,108,117, 97, 95,115,101,116, 34, 41, 10, 32, 32, 111,117,116,112,117,116, 40, 34, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 95, 34, 46, 46,115,101,108,102, 46, 99,115,101,116,110, 97,109, 101, 41, 10, 32, 32,111,117,116,112,117,116, 40, 34, 92,110, 115,116, 97,116,105, 99, 32,105,110,116, 34, 44,115,101,108, 102, 46, 99,115,101,116,110, 97,109,101, 44, 34, 40,108,117, 97, 95, 83,116, 97,116,101, 42, 32,116,111,108,117, 97, 95, 83, 41, 34, 41, 10, 32, 32,111,117,116,112,117,116, 40, 34, 123, 34, 41, 10, 10, 32, 32, 45, 45, 32,100,101, 99,108, 97, 114,101, 32,105,110,100,101,120, 10, 32, 32,111,117,116,112, 117,116, 40, 39, 32,105,110,116, 32,116,111,108,117, 97, 95, 105,110,100,101,120, 59, 39, 41, 10, 10, 32, 32, 45, 45, 32, 100,101, 99,108, 97,114,101, 32,115,101,108,102, 44, 32,105, 102, 32,116,104,101, 32, 99, 97,115,101, 10, 32, 32,108,111, 99, 97,108, 32, 95, 44, 95, 44,115,116, 97,116,105, 99, 32, 61, 32,115,116,114,102,105,110,100, 40,115,101,108,102, 46, 109,111,100, 44, 39, 94, 37,115, 42, 40,115,116, 97,116,105, 99, 41, 39, 41, 10, 32, 32,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,115,116, 97,116,105, 99, 61, 61,110,105, 108, 32,116,104,101,110, 10, 32, 32, 32,111,117,116,112,117, 116, 40, 39, 32, 39, 44,115,101,108,102, 46,112, 97,114,101, 110,116, 46,116,121,112,101, 44, 39, 42, 39, 44, 39,115,101, 108,102, 59, 39, 41, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32,108,117, 97, 95,112,117,115,104,115,116,114,105, 110,103, 40,116,111,108,117, 97, 95, 83, 44, 34, 46,115,101, 108,102, 34, 41, 59, 39, 41, 10, 32, 32, 32,111,117,116,112, 117,116, 40, 39, 32,108,117, 97, 95,114, 97,119,103,101,116, 40,116,111,108,117, 97, 95, 83, 44, 49, 41, 59, 39, 41, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32,115,101,108, 102, 32, 61, 32, 39, 41, 10, 32, 32, 32,111,117,116,112,117, 116, 40, 39, 40, 39, 44,115,101,108,102, 46,112, 97,114,101, 110,116, 46,116,121,112,101, 44, 39, 42, 41, 32, 39, 41, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39,108,117, 97, 95, 116,111,117,115,101,114,100, 97,116, 97, 40,116,111,108,117, 97, 95, 83, 44, 45, 49, 41, 59, 39, 41, 10, 32, 32,101,108, 115,101,105,102, 32,115,116, 97,116,105, 99, 32,116,104,101, 110, 10, 32, 32, 32, 95, 44, 95, 44,115,101,108,102, 46,109, 111,100, 32, 61, 32,115,116,114,102,105,110,100, 40,115,101, 108,102, 46,109,111,100, 44, 39, 94, 37,115, 42,115,116, 97, 116,105, 99, 37,115, 37,115, 42, 40, 46, 42, 41, 39, 41, 10, 32, 32,101,110,100, 10, 10, 32, 32, 45, 45, 32, 99,104,101, 99,107, 32,105,110,100,101,120, 10, 9, 32,111,117,116,112, 117,116, 40, 39, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, 9, 32,111,117,116,112,117,116, 40, 39, 32,123, 39, 41, 10, 9, 32,111,117,116,112,117,116, 40, 39, 32, 32,116,111,108, 117, 97, 95, 69,114,114,111,114, 32,116,111,108,117, 97, 95, 101,114,114, 59, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32,105,102, 32, 40, 33,116,111,108,117, 97, 95, 105,115,110,117,109, 98,101,114, 40,116,111,108,117, 97, 95, 83, 44, 50, 44, 48, 44, 38,116,111,108,117, 97, 95,101,114, 114, 41, 41, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32,116,111,108,117, 97, 95,101,114,114,111,114, 40,116,111,108,117, 97, 95, 83, 44, 34, 35,118,105,110,118, 97,108,105,100, 32,116,121,112,101, 32,105,110, 32, 97,114, 114, 97,121, 32,105,110,100,101,120,105,110,103, 46, 34, 44, 38,116,111,108,117, 97, 95,101,114,114, 41, 59, 39, 41, 10, 9, 9,111,117,116,112,117,116, 40, 39, 32,125, 39, 41, 10, 9, 9,111,117,116,112,117,116, 40, 39, 35,101,110,100,105, 102, 92,110, 39, 41, 10, 10, 9,105,102, 32,102,108, 97,103, 115, 91, 39, 49, 39, 93, 32,116,104,101,110, 32, 45, 45, 32, 102,111,114, 32, 99,111,109,112, 97,116,105, 98,105,108,105, 116,121, 32,119,105,116,104, 32,116,111,108,117, 97, 53, 32, 63, 10, 9, 9,111,117,116,112,117,116, 40, 39, 32,116,111, 108,117, 97, 95,105,110,100,101,120, 32, 61, 32, 40,105,110, 116, 41,116,111,108,117, 97, 95,116,111,110,117,109, 98,101, 114, 40,116,111,108,117, 97, 95, 83, 44, 50, 44, 48, 41, 45, 49, 59, 39, 41, 10, 9,101,108,115,101, 10, 9, 9,111,117, 116,112,117,116, 40, 39, 32,116,111,108,117, 97, 95,105,110, 100,101,120, 32, 61, 32, 40,105,110,116, 41,116,111,108,117, 97, 95,116,111,110,117,109, 98,101,114, 40,116,111,108,117, 97, 95, 83, 44, 50, 44, 48, 41, 59, 39, 41, 10, 9,101,110, 100, 10, 10, 9, 32,111,117,116,112,117,116, 40, 39, 35,105, 102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, 9,105,102, 32,115,101, 108,102, 46,100,105,109, 32, 97,110,100, 32,115,101,108,102, 46,100,105,109, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10, 9, 32, 32,111,117,116,112,117,116, 40, 39, 32,105,102, 32, 40,116,111,108,117, 97, 95,105,110,100,101,120, 60, 48, 32,124,124, 32,116,111,108,117, 97, 95,105,110,100,101,120, 62, 61, 39, 46, 46,115,101,108,102, 46,100,105,109, 46, 46, 39, 41, 39, 41, 10, 9,101,108,115,101, 10, 9, 32, 32,111, 117,116,112,117,116, 40, 39, 32,105,102, 32, 40,116,111,108, 117, 97, 95,105,110,100,101,120, 60, 48, 41, 39, 41, 10, 9, 101,110,100, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32,116,111,108,117, 97, 95,101,114,114,111,114, 40,116,111, 108,117, 97, 95, 83, 44, 34, 97,114,114, 97,121, 32,105,110, 100,101,120,105,110,103, 32,111,117,116, 32,111,102, 32,114, 97,110,103,101, 46, 34, 44, 78, 85, 76, 76, 41, 59, 39, 41, 10, 9, 9,111,117,116,112,117,116, 40, 39, 35,101,110,100, 105,102, 92,110, 39, 41, 10, 10, 32, 32, 45, 45, 32, 97,115, 115,105,103,110, 32,118, 97,108,117,101, 10, 32, 32,108,111, 99, 97,108, 32,112,116,114, 32, 61, 32, 39, 39, 10, 32, 32, 105,102, 32,115,101,108,102, 46,112,116,114,126, 61, 39, 39, 32,116,104,101,110, 32,112,116,114, 32, 61, 32, 39, 42, 39, 32,101,110,100, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 39, 41, 10, 32, 32,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,115,116, 97,116,105, 99, 32,116,104,101,110, 10, 32, 32, 32,111,117,116,112,117,116, 40, 99,108, 97,115, 115, 46, 46, 39, 58, 58, 39, 46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46, 39, 91,116,111,108,117, 97, 95,105,110, 100,101,120, 93, 39, 41, 10, 32, 32,101,108,115,101,105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 10, 32, 32, 32, 111,117,116,112,117,116, 40, 39,115,101,108,102, 45, 62, 39, 46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46, 39, 91, 116,111,108,117, 97, 95,105,110,100,101,120, 93, 39, 41, 10, 32, 32,101,108,115,101, 10, 32, 32, 32,111,117,116,112,117, 116, 40,115,101,108,102, 46,110, 97,109,101, 46, 46, 39, 91, 116,111,108,117, 97, 95,105,110,100,101,120, 93, 39, 41, 10, 32, 32,101,110,100, 10, 32, 32,108,111, 99, 97,108, 32,116, 32, 61, 32,105,115, 98, 97,115,105, 99, 40,115,101,108,102, 46,116,121,112,101, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 61, 32, 39, 41, 10, 32, 32,105,102, 32,110,111, 116, 32,116, 32, 97,110,100, 32,112,116,114, 61, 61, 39, 39, 32,116,104,101,110, 32,111,117,116,112,117,116, 40, 39, 42, 39, 41, 32,101,110,100, 10, 32, 32,111,117,116,112,117,116, 40, 39, 40, 40, 39, 44,115,101,108,102, 46,109,111,100, 44, 115,101,108,102, 46,116,121,112,101, 41, 10, 32, 32,105,102, 32,110,111,116, 32,116, 32,116,104,101,110, 10, 32, 32, 32, 111,117,116,112,117,116, 40, 39, 42, 39, 41, 10, 32, 32,101, 110,100, 10, 32, 32,111,117,116,112,117,116, 40, 39, 41, 32, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32,100,101,102, 32, 61, 32, 48, 10, 32, 32,105,102, 32,115,101,108,102, 46,100, 101,102, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 32,100, 101,102, 32, 61, 32,115,101,108,102, 46,100,101,102, 32,101, 110,100, 10, 32, 32,105,102, 32,116, 32,116,104,101,110, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39,116,111,108,117, 97, 95,116,111, 39, 46, 46,116, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 51, 44, 39, 44,100,101,102, 44, 39, 41, 41, 59, 39, 41, 10, 32, 32,101,108,115,101, 10, 32, 32, 32,108, 111, 99, 97,108, 32,116,111, 95,102,117,110, 99, 32, 61, 32, 103,101,116, 95,116,111, 95,102,117,110, 99,116,105,111,110, 40,115,101,108,102, 46,116,121,112,101, 41, 10, 32, 32, 32, 111,117,116,112,117,116, 40,116,111, 95,102,117,110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 51, 44, 39, 44,100, 101,102, 44, 39, 41, 41, 59, 39, 41, 10, 32, 32,101,110,100, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32,114,101,116, 117,114,110, 32, 48, 59, 39, 41, 10, 32, 32,111,117,116,112, 117,116, 40, 39,125, 39, 41, 10, 32, 32,111,117,116,112,117, 116, 40, 39, 35,101,110,100,105,102, 32, 47, 47, 35,105,102, 110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 92,110, 39, 41, 10, 32, 32,111,117,116,112,117, 116, 40, 39, 92,110, 39, 41, 10, 32,101,110,100, 10, 10,101, 110,100, 10, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 65,114,114, 97,121, 58,114,101,103,105,115,116, 101,114, 32, 40,112,114,101, 41, 10, 9,105,102, 32,110,111, 116, 32,115,101,108,102, 58, 99,104,101, 99,107, 95,112,117, 98,108,105, 99, 95, 97, 99, 99,101,115,115, 40, 41, 32,116, 104,101,110, 10, 9, 9,114,101,116,117,114,110, 10, 9,101, 110,100, 10, 10, 32,112,114,101, 32, 61, 32,112,114,101, 32, 111,114, 32, 39, 39, 10, 32,105,102, 32,115,101,108,102, 46, 99,115,101,116,110, 97,109,101, 32,116,104,101,110, 10, 32, 32,111,117,116,112,117,116, 40,112,114,101, 46, 46, 39,116, 111,108,117, 97, 95, 97,114,114, 97,121, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101,108,102, 46,108,110, 97,109,101, 46, 46, 39, 34, 44, 39, 46, 46,115,101,108,102, 46, 99,103,101,116,110, 97,109,101, 46, 46, 39, 44, 39, 46, 46,115,101,108,102, 46, 99,115,101,116,110, 97,109,101, 46, 46, 39, 41, 59, 39, 41, 10, 32,101,108,115,101, 10, 32, 32, 111,117,116,112,117,116, 40,112,114,101, 46, 46, 39,116,111, 108,117, 97, 95, 97,114,114, 97,121, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101,108,102, 46,108,110, 97, 109,101, 46, 46, 39, 34, 44, 39, 46, 46,115,101,108,102, 46, 99,103,101,116,110, 97,109,101, 46, 46, 39, 44, 78, 85, 76, 76, 41, 59, 39, 41, 10, 32,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 73,110,116,101,114,110, 97,108, 32, 99,111, 110,115,116,114,117, 99,116,111,114, 10,102,117,110, 99,116, 105,111,110, 32, 95, 65,114,114, 97,121, 32, 40,116, 41, 10, 32,115,101,116,109,101,116, 97,116, 97, 98,108,101, 40,116, 44, 99,108, 97,115,115, 65,114,114, 97,121, 41, 10, 32, 97, 112,112,101,110,100, 40,116, 41, 10, 32,114,101,116,117,114, 110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32, 67,111,110, 115,116,114,117, 99,116,111,114, 10, 45, 45, 32, 69,120,112, 101, 99,116,115, 32, 97, 32,115,116,114,105,110,103, 32,114, 101,112,114,101,115,101,110,116,105,110,103, 32,116,104,101, 32,118, 97,114,105, 97, 98,108,101, 32,100,101, 99,108, 97, 114, 97,116,105,111,110, 46, 10,102,117,110, 99,116,105,111, 110, 32, 65,114,114, 97,121, 32, 40,115, 41, 10, 32,114,101, 116,117,114,110, 32, 95, 65,114,114, 97,121, 32, 40, 68,101, 99,108, 97,114, 97,116,105,111,110, 40,115, 44, 39,118, 97, 114, 39, 41, 41, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/array.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32,102,117,110, 99,116, 105,111,110, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114, 105,116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73, 100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99, 111,100,101, 32,105,115, 32,102,114,101,101, 32,115,111,102, 116,119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32, 114,101,100,105,115,116,114,105, 98,117,116,101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109,111,100,105,102,121, 32, 105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116, 119, 97,114,101, 32,112,114,111,118,105,100,101,100, 32,104, 101,114,101,117,110,100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105, 115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97, 117,116,104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98, 108,105,103, 97,116,105,111,110, 32,116,111, 32,112,114,111, 118,105,100,101, 32,109, 97,105,110,116,101,110, 97,110, 99, 101, 44, 32,115,117,112,112,111,114,116, 44, 32,117,112,100, 97,116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99, 101,109,101,110,116,115, 44, 32,111,114, 32,109,111,100,105, 102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 10, 45, 45, 32, 70,117,110, 99,116,105,111,110, 32, 99,108, 97,115, 115, 10, 45, 45, 32, 82,101,112,114,101,115,101,110,116,115, 32, 97, 32,102,117,110, 99,116,105,111,110, 32,111,114, 32, 97, 32, 99,108, 97,115,115, 32,109,101,116,104,111,100, 46, 10, 45, 45, 32, 84,104,101, 32,102,111,108,108,111,119,105, 110,103, 32,102,105,101,108,100,115, 32, 97,114,101, 32,115, 116,111,114,101,100, 58, 10, 45, 45, 32, 32,109,111,100, 32, 32, 61, 32,116,121,112,101, 32,109,111,100,105,102,105,101, 114,115, 10, 45, 45, 32, 32,116,121,112,101, 32, 61, 32,116, 121,112,101, 10, 45, 45, 32, 32,112,116,114, 32, 32, 61, 32, 34, 42, 34, 32,111,114, 32, 34, 38, 34, 44, 32,105,102, 32, 114,101,112,114,101,115,101,110,116,105,110,103, 32, 97, 32, 112,111,105,110,116,101,114, 32,111,114, 32, 97, 32,114,101, 102,101,114,101,110, 99,101, 10, 45, 45, 32, 32,110, 97,109, 101, 32, 61, 32,110, 97,109,101, 10, 45, 45, 32, 32,108,110, 97,109,101, 32, 61, 32,108,117, 97, 32,110, 97,109,101, 10, 45, 45, 32, 32, 97,114,103,115, 32, 32, 61, 32,108,105,115, 116, 32,111,102, 32, 97,114,103,117,109,101,110,116, 32,100, 101, 99,108, 97,114, 97,116,105,111,110,115, 10, 45, 45, 32, 32, 99,111,110,115,116, 32, 61, 32,105,102, 32,105,116, 32, 105,115, 32, 97, 32,109,101,116,104,111,100, 32,114,101, 99, 101,105,118,105,110,103, 32, 97, 32, 99,111,110,115,116, 32, 34,116,104,105,115, 34, 46, 10, 99,108, 97,115,115, 70,117, 110, 99,116,105,111,110, 32, 61, 32,123, 10, 32,109,111,100, 32, 61, 32, 39, 39, 44, 10, 32,116,121,112,101, 32, 61, 32, 39, 39, 44, 10, 32,112,116,114, 32, 61, 32, 39, 39, 44, 10, 32,110, 97,109,101, 32, 61, 32, 39, 39, 44, 10, 32, 97,114, 103,115, 32, 61, 32,123,110, 61, 48,125, 44, 10, 32, 99,111, 110,115,116, 32, 61, 32, 39, 39, 44, 10,125, 10, 99,108, 97, 115,115, 70,117,110, 99,116,105,111,110, 46, 95, 95,105,110, 100,101,120, 32, 61, 32, 99,108, 97,115,115, 70,117,110, 99, 116,105,111,110, 10,115,101,116,109,101,116, 97,116, 97, 98, 108,101, 40, 99,108, 97,115,115, 70,117,110, 99,116,105,111, 110, 44, 99,108, 97,115,115, 70,101, 97,116,117,114,101, 41, 10, 10, 45, 45, 32,100,101, 99,108, 97,114,101, 32,116, 97, 103,115, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97, 115,115, 70,117,110, 99,116,105,111,110, 58,100,101, 99,108, 116,121,112,101, 32, 40, 41, 10, 32,115,101,108,102, 46,116, 121,112,101, 32, 61, 32,116,121,112,101,118, 97,114, 40,115, 101,108,102, 46,116,121,112,101, 41, 10, 32,105,102, 32,115, 116,114,102,105,110,100, 40,115,101,108,102, 46,109,111,100, 44, 39, 99,111,110,115,116, 39, 41, 32,116,104,101,110, 10, 9, 32,115,101,108,102, 46,116,121,112,101, 32, 61, 32, 39, 99,111,110,115,116, 32, 39, 46, 46,115,101,108,102, 46,116, 121,112,101, 10, 9, 9,115,101,108,102, 46,109,111,100, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46,109,111,100, 44, 39, 99,111,110,115,116, 39, 44, 39, 39, 41, 10, 9,101, 110,100, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32, 119,104,105,108,101, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 32,100,111, 10, 32, 32,115,101,108,102, 46, 97, 114,103,115, 91,105, 93, 58,100,101, 99,108,116,121,112,101, 40, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101, 110,100, 10,101,110,100, 10, 10, 10, 45, 45, 32, 87,114,105, 116,101, 32, 98,105,110,100,105,110,103, 32,102,117,110, 99, 116,105,111,110, 10, 45, 45, 32, 79,117,116,112,117,116,115, 32, 67, 47, 67, 43, 43, 32, 98,105,110,100,105,110,103, 32, 102,117,110, 99,116,105,111,110, 46, 10,102,117,110, 99,116, 105,111,110, 32, 99,108, 97,115,115, 70,117,110, 99,116,105, 111,110, 58,115,117,112, 99,111,100,101, 32, 40,108,111, 99, 97,108, 95, 99,111,110,115,116,114,117, 99,116,111,114, 41, 10, 10, 32,108,111, 99, 97,108, 32,111,118,101,114,108,111, 97,100, 32, 61, 32,115,116,114,115,117, 98, 40,115,101,108, 102, 46, 99,110, 97,109,101, 44, 45, 50, 44, 45, 49, 41, 32, 45, 32, 49, 32, 32, 45, 45, 32,105,110,100,105, 99, 97,116, 101, 32,111,118,101,114,108,111, 97,100,101,100, 32,102,117, 110, 99, 10, 32,108,111, 99, 97,108, 32,110,114,101,116, 32, 61, 32, 48, 32, 32, 32, 32, 32, 32, 45, 45, 32,110,117,109, 98,101,114, 32,111,102, 32,114,101,116,117,114,110,101,100, 32,118, 97,108,117,101,115, 10, 32,108,111, 99, 97,108, 32, 99,108, 97,115,115, 32, 61, 32,115,101,108,102, 58,105,110, 99,108, 97,115,115, 40, 41, 10, 32,108,111, 99, 97,108, 32, 95, 44, 95, 44,115,116, 97,116,105, 99, 32, 61, 32,115,116, 114,102,105,110,100, 40,115,101,108,102, 46,109,111,100, 44, 39, 94, 37,115, 42, 40,115,116, 97,116,105, 99, 41, 39, 41, 10, 32,105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 10, 10, 32, 9,105,102, 32,115,101,108,102, 46,110, 97,109, 101, 32, 61, 61, 32, 39,110,101,119, 39, 32, 97,110,100, 32, 115,101,108,102, 46,112, 97,114,101,110,116, 46,102,108, 97, 103,115, 46,112,117,114,101, 95,118,105,114,116,117, 97,108, 32,116,104,101,110, 10, 32, 9, 9, 45, 45, 32,110,111, 32, 99,111,110,115,116,114,117, 99,116,111,114, 32,102,111,114, 32, 99,108, 97,115,115,101,115, 32,119,105,116,104, 32,112, 117,114,101, 32,118,105,114,116,117, 97,108, 32,109,101,116, 104,111,100,115, 10, 32, 9, 9,114,101,116,117,114,110, 10, 32, 9,101,110,100, 10, 10, 32, 9,105,102, 32,108,111, 99, 97,108, 95, 99,111,110,115,116,114,117, 99,116,111,114, 32, 116,104,101,110, 10, 9, 9,111,117,116,112,117,116, 40, 34, 47, 42, 32,109,101,116,104,111,100, 58, 32,110,101,119, 95, 108,111, 99, 97,108, 32,111,102, 32, 99,108, 97,115,115, 32, 34, 44, 99,108, 97,115,115, 44, 34, 32, 42, 47, 34, 41, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,112,117,116, 40, 34, 47, 42, 32,109,101,116,104,111,100, 58, 34, 44,115,101, 108,102, 46,110, 97,109,101, 44, 34, 32,111,102, 32, 99,108, 97,115,115, 32, 34, 44, 99,108, 97,115,115, 44, 34, 32, 42, 47, 34, 41, 10, 9,101,110,100, 10, 32,101,108,115,101, 10, 32, 32,111,117,116,112,117,116, 40, 34, 47, 42, 32,102,117, 110, 99,116,105,111,110, 58, 34, 44,115,101,108,102, 46,110, 97,109,101, 44, 34, 32, 42, 47, 34, 41, 10, 32,101,110,100, 10, 10, 32,105,102, 32,108,111, 99, 97,108, 95, 99,111,110, 115,116,114,117, 99,116,111,114, 32,116,104,101,110, 10, 32, 32,111,117,116,112,117,116, 40, 34, 35,105,102,110,100,101, 102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 95, 34, 46, 46,115,101,108,102, 46, 99,110, 97,109,101, 46, 46, 34, 95,108,111, 99, 97,108, 34, 41, 10, 32, 32,111,117, 116,112,117,116, 40, 34, 92,110,115,116, 97,116,105, 99, 32, 105,110,116, 34, 44,115,101,108,102, 46, 99,110, 97,109,101, 46, 46, 34, 95,108,111, 99, 97,108, 34, 44, 34, 40,108,117, 97, 95, 83,116, 97,116,101, 42, 32,116,111,108,117, 97, 95, 83, 41, 34, 41, 10, 32,101,108,115,101, 10, 32, 32,111,117, 116,112,117,116, 40, 34, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 95, 34, 46, 46,115,101,108,102, 46, 99,110, 97,109,101, 41, 10, 32, 32, 111,117,116,112,117,116, 40, 34, 92,110,115,116, 97,116,105, 99, 32,105,110,116, 34, 44,115,101,108,102, 46, 99,110, 97, 109,101, 44, 34, 40,108,117, 97, 95, 83,116, 97,116,101, 42, 32,116,111,108,117, 97, 95, 83, 41, 34, 41, 10, 32,101,110, 100, 10, 32,111,117,116,112,117,116, 40, 34,123, 34, 41, 10, 10, 32, 45, 45, 32, 99,104,101, 99,107, 32,116,121,112,101, 115, 10, 9,105,102, 32,111,118,101,114,108,111, 97,100, 32, 60, 32, 48, 32,116,104,101,110, 10, 9, 32,111,117,116,112, 117,116, 40, 39, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, 9,101,110,100, 10, 9,111,117,116,112,117,116, 40, 39, 32, 116,111,108,117, 97, 95, 69,114,114,111,114, 32,116,111,108, 117, 97, 95,101,114,114, 59, 39, 41, 10, 32,111,117,116,112, 117,116, 40, 39, 32,105,102, 32, 40, 92,110, 39, 41, 10, 32, 45, 45, 32, 99,104,101, 99,107, 32,115,101,108,102, 10, 32, 108,111, 99, 97,108, 32,110, 97,114,103, 10, 32,105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 32,110, 97,114,103, 61, 50, 32,101,108,115,101, 32,110, 97,114,103, 61, 49, 32, 101,110,100, 10, 32,105,102, 32, 99,108, 97,115,115, 32,116, 104,101,110, 10, 9, 9,108,111, 99, 97,108, 32,102,117,110, 99, 32, 61, 32,103,101,116, 95,105,115, 95,102,117,110, 99, 116,105,111,110, 40,115,101,108,102, 46,112, 97,114,101,110, 116, 46,116,121,112,101, 41, 10, 9, 9,108,111, 99, 97,108, 32,116,121,112,101, 32, 61, 32,115,101,108,102, 46,112, 97, 114,101,110,116, 46,116,121,112,101, 10, 9, 9,105,102, 32, 115,101,108,102, 46,110, 97,109,101, 61, 61, 39,110,101,119, 39, 32,111,114, 32,115,116, 97,116,105, 99,126, 61,110,105, 108, 32,116,104,101,110, 10, 9, 9, 9,102,117,110, 99, 32, 61, 32, 39,116,111,108,117, 97, 95,105,115,117,115,101,114, 116, 97, 98,108,101, 39, 10, 9, 9, 9,116,121,112,101, 32, 61, 32,115,101,108,102, 46,112, 97,114,101,110,116, 46,116, 121,112,101, 10, 9, 9,101,110,100, 10, 9, 9,105,102, 32, 115,101,108,102, 46, 99,111,110,115,116, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10, 9, 9, 9,116,121,112,101, 32, 61, 32, 34, 99,111,110,115,116, 32, 34, 46, 46,116,121,112, 101, 10, 9, 9,101,110,100, 10, 9, 9,111,117,116,112,117, 116, 40, 39, 32, 32, 32, 32, 32, 33, 39, 46, 46,102,117,110, 99, 46, 46, 39, 40,116,111,108,117, 97, 95, 83, 44, 49, 44, 34, 39, 46, 46,116,121,112,101, 46, 46, 39, 34, 44, 48, 44, 38,116,111,108,117, 97, 95,101,114,114, 41, 32,124,124, 92, 110, 39, 41, 10, 32,101,110,100, 10, 32, 45, 45, 32, 99,104, 101, 99,107, 32, 97,114,103,115, 10, 32,105,102, 32,115,101, 108,102, 46, 97,114,103,115, 91, 49, 93, 46,116,121,112,101, 32,126, 61, 32, 39,118,111,105,100, 39, 32,116,104,101,110, 10, 32, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32, 32, 119,104,105,108,101, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 32,100,111, 10, 32, 32, 32,108,111, 99, 97,108, 32, 98,116,121,112,101, 32, 61, 32,105,115, 98, 97,115,105, 99, 40,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 46, 116,121,112,101, 41, 10, 32, 32, 32,105,102, 32, 98,116,121, 112,101, 32,126, 61, 32, 39,118, 97,108,117,101, 39, 32, 97, 110,100, 32, 98,116,121,112,101, 32,126, 61, 32, 39,115,116, 97,116,101, 39, 32,116,104,101,110, 10, 32, 32, 32, 32,111, 117,116,112,117,116, 40, 39, 32, 32, 32, 32, 32, 39, 46, 46, 115,101,108,102, 46, 97,114,103,115, 91,105, 93, 58,111,117, 116, 99,104,101, 99,107,116,121,112,101, 40,110, 97,114,103, 41, 46, 46, 39, 32,124,124, 92,110, 39, 41, 10, 32, 32, 32, 101,110,100, 10, 32, 32, 32,105,102, 32, 98,116,121,112,101, 32,126, 61, 32, 39,115,116, 97,116,101, 39, 32,116,104,101, 110, 10, 9, 32, 32, 32,110, 97,114,103, 32, 61, 32,110, 97, 114,103, 43, 49, 10, 32, 32, 32,101,110,100, 10, 32, 32, 32, 105, 32, 61, 32,105, 43, 49, 10, 32, 32,101,110,100, 10, 32, 101,110,100, 10, 32, 45, 45, 32, 99,104,101, 99,107, 32,101, 110,100, 32,111,102, 32,108,105,115,116, 10, 32,111,117,116, 112,117,116, 40, 39, 32, 32, 32, 32, 32, 33,116,111,108,117, 97, 95,105,115,110,111,111, 98,106, 40,116,111,108,117, 97, 95, 83, 44, 39, 46, 46,110, 97,114,103, 46, 46, 39, 44, 38, 116,111,108,117, 97, 95,101,114,114, 41, 92,110, 32, 41, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 32, 32,103,111, 116,111, 32,116,111,108,117, 97, 95,108,101,114,114,111,114, 59, 39, 41, 10, 10, 32,111,117,116,112,117,116, 40, 39, 32, 101,108,115,101, 92,110, 39, 41, 10, 9,105,102, 32,111,118, 101,114,108,111, 97,100, 32, 60, 32, 48, 32,116,104,101,110, 10, 9, 32,111,117,116,112,117,116, 40, 39, 35,101,110,100, 105,102, 92,110, 39, 41, 10, 9,101,110,100, 10, 9,111,117, 116,112,117,116, 40, 39, 32,123, 39, 41, 10, 10, 32, 45, 45, 32,100,101, 99,108, 97,114,101, 32,115,101,108,102, 44, 32, 105,102, 32,116,104,101, 32, 99, 97,115,101, 10, 32,108,111, 99, 97,108, 32,110, 97,114,103, 10, 32,105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 32,110, 97,114,103, 61, 50, 32,101,108,115,101, 32,110, 97,114,103, 61, 49, 32,101,110, 100, 10, 32,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,115,101,108,102, 46,110, 97,109,101,126, 61, 39,110,101, 119, 39, 32, 97,110,100, 32,115,116, 97,116,105, 99, 61, 61, 110,105,108, 32,116,104,101,110, 10, 32, 32,111,117,116,112, 117,116, 40, 39, 32, 39, 44,115,101,108,102, 46, 99,111,110, 115,116, 44,115,101,108,102, 46,112, 97,114,101,110,116, 46, 116,121,112,101, 44, 39, 42, 39, 44, 39,115,101,108,102, 32, 61, 32, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 40, 39, 44,115,101,108,102, 46, 99,111,110,115,116, 44,115, 101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112,101, 44, 39, 42, 41, 32, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32,116,111, 95,102,117,110, 99, 32, 61, 32,103,101,116, 95, 116,111, 95,102,117,110, 99,116,105,111,110, 40,115,101,108, 102, 46,112, 97,114,101,110,116, 46,116,121,112,101, 41, 10, 32, 32,111,117,116,112,117,116, 40,116,111, 95,102,117,110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 49, 44, 48, 41, 59, 39, 41, 10, 32,101,108,115,101,105,102, 32,115,116, 97,116,105, 99, 32,116,104,101,110, 10, 32, 32, 95, 44, 95, 44,115,101,108,102, 46,109,111,100, 32, 61, 32,115,116,114, 102,105,110,100, 40,115,101,108,102, 46,109,111,100, 44, 39, 94, 37,115, 42,115,116, 97,116,105, 99, 37,115, 37,115, 42, 40, 46, 42, 41, 39, 41, 10, 32,101,110,100, 10, 32, 45, 45, 32,100,101, 99,108, 97,114,101, 32,112, 97,114, 97,109,101, 116,101,114,115, 10, 32,105,102, 32,115,101,108,102, 46, 97, 114,103,115, 91, 49, 93, 46,116,121,112,101, 32,126, 61, 32, 39,118,111,105,100, 39, 32,116,104,101,110, 10, 32, 32,108, 111, 99, 97,108, 32,105, 61, 49, 10, 32, 32,119,104,105,108, 101, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 32, 100,111, 10, 32, 32, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 58,100,101, 99,108, 97,114,101, 40,110, 97,114, 103, 41, 10, 32, 32, 32,105,102, 32,105,115, 98, 97,115,105, 99, 40,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 46, 116,121,112,101, 41, 32,126, 61, 32, 34,115,116, 97,116,101, 34, 32,116,104,101,110, 10, 9, 32, 32, 32,110, 97,114,103, 32, 61, 32,110, 97,114,103, 43, 49, 10, 32, 32, 32,101,110, 100, 10, 32, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32, 32, 101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32, 99, 104,101, 99,107, 32,115,101,108,102, 10, 32,105,102, 32, 99, 108, 97,115,115, 32, 97,110,100, 32,115,101,108,102, 46,110, 97,109,101,126, 61, 39,110,101,119, 39, 32, 97,110,100, 32, 115,116, 97,116,105, 99, 61, 61,110,105,108, 32,116,104,101, 110, 10, 9, 32,111,117,116,112,117,116, 40, 39, 35,105,102, 110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, 32, 32,111,117,116,112,117, 116, 40, 39, 32, 32,105,102, 32, 40, 33,115,101,108,102, 41, 32,116,111,108,117, 97, 95,101,114,114,111,114, 40,116,111, 108,117, 97, 95, 83, 44, 34,105,110,118, 97,108,105,100, 32, 92, 39,115,101,108,102, 92, 39, 32,105,110, 32,102,117,110, 99,116,105,111,110, 32, 92, 39, 39, 46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46, 39, 92, 39, 34, 44, 78, 85, 76, 76, 41, 59, 39, 41, 59, 10, 9, 32,111,117,116,112,117,116, 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10, 32,101, 110,100, 10, 10, 32, 45, 45, 32,103,101,116, 32, 97,114,114, 97,121, 32,101,108,101,109,101,110,116, 32,118, 97,108,117, 101,115, 10, 32,105,102, 32, 99,108, 97,115,115, 32,116,104, 101,110, 32,110, 97,114,103, 61, 50, 32,101,108,115,101, 32, 110, 97,114,103, 61, 49, 32,101,110,100, 10, 32,105,102, 32, 115,101,108,102, 46, 97,114,103,115, 91, 49, 93, 46,116,121, 112,101, 32,126, 61, 32, 39,118,111,105,100, 39, 32,116,104, 101,110, 10, 32, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32, 32,119,104,105,108,101, 32,115,101,108,102, 46, 97,114, 103,115, 91,105, 93, 32,100,111, 10, 32, 32, 32,115,101,108, 102, 46, 97,114,103,115, 91,105, 93, 58,103,101,116, 97,114, 114, 97,121, 40,110, 97,114,103, 41, 10, 32, 32, 32,110, 97, 114,103, 32, 61, 32,110, 97,114,103, 43, 49, 10, 32, 32, 32, 105, 32, 61, 32,105, 43, 49, 10, 32, 32,101,110,100, 10, 32, 101,110,100, 10, 10, 32,108,111, 99, 97,108, 32,111,117,116, 32, 61, 32,115,116,114,105,110,103, 46,102,105,110,100, 40, 115,101,108,102, 46,109,111,100, 44, 32, 34,116,111,108,117, 97, 95,111,117,116,115,105,100,101, 34, 41, 10, 32, 45, 45, 32, 99, 97,108,108, 32,102,117,110, 99,116,105,111,110, 10, 32,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,115, 101,108,102, 46,110, 97,109,101, 61, 61, 39,100,101,108,101, 116,101, 39, 32,116,104,101,110, 10, 32, 32,111,117,116,112, 117,116, 40, 39, 32, 32, 77,116,111,108,117, 97, 95,100,101, 108,101,116,101, 40,115,101,108,102, 41, 59, 39, 41, 10, 32, 101,108,115,101,105,102, 32, 99,108, 97,115,115, 32, 97,110, 100, 32,115,101,108,102, 46,110, 97,109,101, 32, 61, 61, 32, 39,111,112,101,114, 97,116,111,114, 38, 91, 93, 39, 32,116, 104,101,110, 10, 32, 32,105,102, 32,102,108, 97,103,115, 91, 39, 49, 39, 93, 32,116,104,101,110, 32, 45, 45, 32,102,111, 114, 32, 99,111,109,112, 97,116,105, 98,105,108,105,116,121, 32,119,105,116,104, 32,116,111,108,117, 97, 53, 32, 63, 10, 9,111,117,116,112,117,116, 40, 39, 32, 32,115,101,108,102, 45, 62,111,112,101,114, 97,116,111,114, 91, 93, 40, 39, 44, 115,101,108,102, 46, 97,114,103,115, 91, 49, 93, 46,110, 97, 109,101, 44, 39, 45, 49, 41, 32, 61, 32, 39, 44,115,101,108, 102, 46, 97,114,103,115, 91, 50, 93, 46,110, 97,109,101, 44, 39, 59, 39, 41, 10, 32, 32,101,108,115,101, 10, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32,115,101,108,102, 45, 62,111,112,101,114, 97,116,111,114, 91, 93, 40, 39, 44, 115,101,108,102, 46, 97,114,103,115, 91, 49, 93, 46,110, 97, 109,101, 44, 39, 41, 32, 61, 32, 39, 44,115,101,108,102, 46, 97,114,103,115, 91, 50, 93, 46,110, 97,109,101, 44, 39, 59, 39, 41, 10, 32, 32,101,110,100, 10, 32,101,108,115,101, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32,123, 39, 41, 10, 32, 32,105,102, 32,115,101,108,102, 46,116,121,112,101, 32,126, 61, 32, 39, 39, 32, 97,110,100, 32,115,101,108,102, 46,116,121,112,101, 32,126, 61, 32, 39,118,111,105,100, 39, 32,116,104,101,110, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 39, 44,115,101,108,102, 46,109,111,100, 44, 115,101,108,102, 46,116,121,112,101, 44,115,101,108,102, 46, 112,116,114, 44, 39,116,111,108,117, 97, 95,114,101,116, 32, 61, 32, 39, 41, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39, 40, 39, 44,115,101,108,102, 46,109,111,100, 44,115,101, 108,102, 46,116,121,112,101, 44,115,101,108,102, 46,112,116, 114, 44, 39, 41, 32, 39, 41, 10, 32, 32,101,108,115,101, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 39, 41, 10, 32, 32,101,110,100, 10, 32, 32,105,102, 32, 99,108, 97, 115,115, 32, 97,110,100, 32,115,101,108,102, 46,110, 97,109, 101, 61, 61, 39,110,101,119, 39, 32,116,104,101,110, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39, 77,116,111,108,117, 97, 95,110,101,119, 40, 40, 39, 44,115,101,108,102, 46,116, 121,112,101, 44, 39, 41, 40, 39, 41, 10, 32, 32,101,108,115, 101,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,115, 116, 97,116,105, 99, 32,116,104,101,110, 10, 9,105,102, 32, 111,117,116, 32,116,104,101,110, 10, 9, 9,111,117,116,112, 117,116, 40,115,101,108,102, 46,110, 97,109,101, 44, 39, 40, 39, 41, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,112, 117,116, 40, 99,108, 97,115,115, 46, 46, 39, 58, 58, 39, 46, 46,115,101,108,102, 46,110, 97,109,101, 44, 39, 40, 39, 41, 10, 9,101,110,100, 10, 32, 32,101,108,115,101,105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 10, 9,105,102, 32, 111,117,116, 32,116,104,101,110, 10, 9, 9,111,117,116,112, 117,116, 40,115,101,108,102, 46,110, 97,109,101, 44, 39, 40, 39, 41, 10, 9,101,108,115,101, 10, 9, 32, 32,105,102, 32, 115,101,108,102, 46, 99, 97,115,116, 95,111,112,101,114, 97, 116,111,114, 32,116,104,101,110, 10, 9, 32, 32, 9, 45, 45, 111,117,116,112,117,116, 40, 39,115,116, 97,116,105, 99, 95, 99, 97,115,116, 60, 39, 44,115,101,108,102, 46,109,111,100, 44,115,101,108,102, 46,116,121,112,101, 44,115,101,108,102, 46,112,116,114, 44, 39, 62, 40, 42,115,101,108,102, 39, 41, 10, 9, 9,111,117,116,112,117,116, 40, 39,115,101,108,102, 45, 62,111,112,101,114, 97,116,111,114, 32, 39, 44,115,101, 108,102, 46,109,111,100, 44,115,101,108,102, 46,116,121,112, 101, 44, 39, 40, 39, 41, 10, 9, 32, 32,101,108,115,101, 10, 9, 9,111,117,116,112,117,116, 40, 39,115,101,108,102, 45, 62, 39, 46, 46,115,101,108,102, 46,110, 97,109,101, 44, 39, 40, 39, 41, 10, 9, 32, 32,101,110,100, 10, 9,101,110,100, 10, 32, 32,101,108,115,101, 10, 32, 32, 32,111,117,116,112, 117,116, 40,115,101,108,102, 46,110, 97,109,101, 44, 39, 40, 39, 41, 10, 32, 32,101,110,100, 10, 10, 32, 32,105,102, 32, 111,117,116, 32, 97,110,100, 32,110,111,116, 32,115,116, 97, 116,105, 99, 32,116,104,101,110, 10, 32, 32, 9,111,117,116, 112,117,116, 40, 39,115,101,108,102, 39, 41, 10, 9,105,102, 32,115,101,108,102, 46, 97,114,103,115, 91, 49, 93, 32, 97, 110,100, 32,115,101,108,102, 46, 97,114,103,115, 91, 49, 93, 46,110, 97,109,101, 32,126, 61, 32, 39, 39, 32,116,104,101, 110, 10, 9, 9,111,117,116,112,117,116, 40, 39, 44, 39, 41, 10, 9,101,110,100, 10, 32, 32,101,110,100, 10, 32, 32, 45, 45, 32,119,114,105,116,101, 32,112, 97,114, 97,109,101,116, 101,114,115, 10, 32, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32, 32,119,104,105,108,101, 32,115,101,108,102, 46, 97, 114,103,115, 91,105, 93, 32,100,111, 10, 32, 32, 32,115,101, 108,102, 46, 97,114,103,115, 91,105, 93, 58,112, 97,115,115, 112, 97,114, 40, 41, 10, 32, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32, 32, 32,105,102, 32,115,101,108,102, 46, 97,114, 103,115, 91,105, 93, 32,116,104,101,110, 10, 32, 32, 32, 32, 111,117,116,112,117,116, 40, 39, 44, 39, 41, 10, 32, 32, 32, 101,110,100, 10, 32, 32,101,110,100, 10, 10, 32, 32,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,115,101,108,102, 46,110, 97,109,101, 32, 61, 61, 32, 39,111,112,101,114, 97, 116,111,114, 91, 93, 39, 32, 97,110,100, 32,102,108, 97,103, 115, 91, 39, 49, 39, 93, 32,116,104,101,110, 10, 9,111,117, 116,112,117,116, 40, 39, 45, 49, 41, 59, 39, 41, 10, 32, 32, 101,108,115,101, 10, 9,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,115,101,108,102, 46,110, 97,109,101, 61, 61, 39,110,101,119, 39, 32,116,104,101,110, 10, 9, 9,111,117, 116,112,117,116, 40, 39, 41, 41, 59, 39, 41, 32, 45, 45, 32, 99,108,111,115,101, 32, 77,116,111,108,117, 97, 95,110,101, 119, 40, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,112, 117,116, 40, 39, 41, 59, 39, 41, 10, 9,101,110,100, 10, 32, 32,101,110,100, 10, 10, 32, 32, 45, 45, 32,114,101,116,117, 114,110, 32,118, 97,108,117,101,115, 10, 32, 32,105,102, 32, 115,101,108,102, 46,116,121,112,101, 32,126, 61, 32, 39, 39, 32, 97,110,100, 32,115,101,108,102, 46,116,121,112,101, 32, 126, 61, 32, 39,118,111,105,100, 39, 32,116,104,101,110, 10, 32, 32, 32,110,114,101,116, 32, 61, 32,110,114,101,116, 32, 43, 32, 49, 10, 32, 32, 32,108,111, 99, 97,108, 32,116, 44, 99,116, 32, 61, 32,105,115, 98, 97,115,105, 99, 40,115,101, 108,102, 46,116,121,112,101, 41, 10, 32, 32, 32,105,102, 32, 116, 32,116,104,101,110, 10, 32, 32, 32, 9,105,102, 32,115, 101,108,102, 46, 99, 97,115,116, 95,111,112,101,114, 97,116, 111,114, 32, 97,110,100, 32, 95, 98, 97,115,105, 99, 95,114, 97,119, 95,112,117,115,104, 91,116, 93, 32,116,104,101,110, 10, 9, 9,111,117,116,112,117,116, 40, 39, 32, 32, 32, 39, 44, 95, 98, 97,115,105, 99, 95,114, 97,119, 95,112,117,115, 104, 91,116, 93, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 40, 39, 44, 99,116, 44, 39, 41,116,111,108,117, 97, 95,114, 101,116, 41, 59, 39, 41, 10, 32, 32, 32, 9,101,108,115,101, 10, 9, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32,116,111,108,117, 97, 95,112,117,115,104, 39, 46, 46, 116, 46, 46, 39, 40,116,111,108,117, 97, 95, 83, 44, 40, 39, 44, 99,116, 44, 39, 41,116,111,108,117, 97, 95,114,101,116, 41, 59, 39, 41, 10, 9,101,110,100, 10, 32, 32, 32,101,108, 115,101, 10, 9,116, 32, 61, 32,115,101,108,102, 46,116,121, 112,101, 10, 9,110,101,119, 95,116, 32, 61, 32,115,116,114, 105,110,103, 46,103,115,117, 98, 40,116, 44, 32, 34, 99,111, 110,115,116, 37,115, 43, 34, 44, 32, 34, 34, 41, 10, 9,108, 111, 99, 97,108, 32,111,119,110,101,100, 32, 61, 32,102, 97, 108,115,101, 10, 9,105,102, 32,115,116,114,105,110,103, 46, 102,105,110,100, 40,115,101,108,102, 46,109,111,100, 44, 32, 34,116,111,108,117, 97, 95,111,119,110,101,100, 34, 41, 32, 116,104,101,110, 10, 9, 9,111,119,110,101,100, 32, 61, 32, 116,114,117,101, 10, 9,101,110,100, 10, 32, 32, 32, 32,108, 111, 99, 97,108, 32,112,117,115,104, 95,102,117,110, 99, 32, 61, 32,103,101,116, 95,112,117,115,104, 95,102,117,110, 99, 116,105,111,110, 40,116, 41, 10, 32, 32, 32, 32,105,102, 32, 115,101,108,102, 46,112,116,114, 32, 61, 61, 32, 39, 39, 32, 116,104,101,110, 10, 32, 32, 32, 32, 32,111,117,116,112,117, 116, 40, 39, 32, 32, 32,123, 39, 41, 10, 32, 32, 32, 32, 32, 111,117,116,112,117,116, 40, 39, 35,105,102,100,101,102, 32, 95, 95, 99,112,108,117,115,112,108,117,115, 92,110, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,118,111,105,100, 42, 32,116,111,108,117, 97, 95, 111, 98,106, 32, 61, 32, 77,116,111,108,117, 97, 95,110,101, 119, 40, 40, 39, 44,110,101,119, 95,116, 44, 39, 41, 40,116, 111,108,117, 97, 95,114,101,116, 41, 41, 59, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32, 39, 44,112,117,115,104, 95,102,117,110, 99, 44, 39, 40, 116,111,108,117, 97, 95, 83, 44,116,111,108,117, 97, 95,111, 98,106, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,116,111,108,117, 97, 95,114,101,103,105,115,116,101, 114, 95,103, 99, 40,116,111,108,117, 97, 95, 83, 44,108,117, 97, 95,103,101,116,116,111,112, 40,116,111,108,117, 97, 95, 83, 41, 41, 59, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116, 112,117,116, 40, 39, 35,101,108,115,101, 92,110, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,118,111,105,100, 42, 32,116,111,108,117, 97, 95,111, 98,106, 32, 61, 32,116,111,108,117, 97, 95, 99,111,112,121, 40,116,111,108,117, 97, 95, 83, 44, 40,118,111,105,100, 42, 41, 38,116,111,108,117, 97, 95,114,101,116, 44,115,105,122, 101,111,102, 40, 39, 44,116, 44, 39, 41, 41, 59, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32, 39, 44,112,117,115,104, 95,102,117,110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44,116,111,108,117, 97, 95, 111, 98,106, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,116,111,108,117, 97, 95,114,101,103,105,115,116, 101,114, 95,103, 99, 40,116,111,108,117, 97, 95, 83, 44,108, 117, 97, 95,103,101,116,116,111,112, 40,116,111,108,117, 97, 95, 83, 41, 41, 59, 39, 41, 10, 32, 32, 32, 32, 32,111,117, 116,112,117,116, 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32,125, 39, 41, 10, 32, 32, 32, 32,101,108,115,101, 105,102, 32,115,101,108,102, 46,112,116,114, 32, 61, 61, 32, 39, 38, 39, 32,116,104,101,110, 10, 32, 32, 32, 32, 32,111, 117,116,112,117,116, 40, 39, 32, 32, 32, 39, 44,112,117,115, 104, 95,102,117,110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 40,118,111,105,100, 42, 41, 38,116,111,108,117, 97, 95,114,101,116, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10, 32, 32, 32, 32,101,108,115,101, 10, 9, 32,111,117, 116,112,117,116, 40, 39, 32, 32, 32, 39, 44,112,117,115,104, 95,102,117,110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 40,118,111,105,100, 42, 41,116,111,108,117, 97, 95,114, 101,116, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10, 9, 32,105,102, 32,111,119,110,101,100, 32,111,114, 32,108, 111, 99, 97,108, 95, 99,111,110,115,116,114,117, 99,116,111, 114, 32,116,104,101,110, 10, 32, 32, 32, 32, 32, 32,111,117, 116,112,117,116, 40, 39, 32, 32, 32, 32,116,111,108,117, 97, 95,114,101,103,105,115,116,101,114, 95,103, 99, 40,116,111, 108,117, 97, 95, 83, 44,108,117, 97, 95,103,101,116,116,111, 112, 40,116,111,108,117, 97, 95, 83, 41, 41, 59, 39, 41, 10, 9, 32,101,110,100, 10, 32, 32, 32, 32,101,110,100, 10, 32, 32, 32,101,110,100, 10, 32, 32,101,110,100, 10, 32, 32,108, 111, 99, 97,108, 32,105, 61, 49, 10, 32, 32,119,104,105,108, 101, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 32, 100,111, 10, 32, 32, 32,110,114,101,116, 32, 61, 32,110,114, 101,116, 32, 43, 32,115,101,108,102, 46, 97,114,103,115, 91, 105, 93, 58,114,101,116,118, 97,108,117,101, 40, 41, 10, 32, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32, 32,101,110,100, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32,125, 39, 41, 10, 10, 32, 32, 45, 45, 32,115,101,116, 32, 97,114,114, 97,121, 32,101,108,101,109,101,110,116, 32,118, 97,108,117, 101,115, 10, 32, 32,105,102, 32, 99,108, 97,115,115, 32,116, 104,101,110, 32,110, 97,114,103, 61, 50, 32,101,108,115,101, 32,110, 97,114,103, 61, 49, 32,101,110,100, 10, 32, 32,105, 102, 32,115,101,108,102, 46, 97,114,103,115, 91, 49, 93, 46, 116,121,112,101, 32,126, 61, 32, 39,118,111,105,100, 39, 32, 116,104,101,110, 10, 32, 32, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32, 32, 32,119,104,105,108,101, 32,115,101,108, 102, 46, 97,114,103,115, 91,105, 93, 32,100,111, 10, 32, 32, 32, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 58, 115,101,116, 97,114,114, 97,121, 40,110, 97,114,103, 41, 10, 32, 32, 32, 32,110, 97,114,103, 32, 61, 32,110, 97,114,103, 43, 49, 10, 32, 32, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32, 32, 32,101,110,100, 10, 32, 32,101,110,100, 10, 10, 32, 32, 45, 45, 32,102,114,101,101, 32,100,121,110, 97,109,105, 99, 97,108,108,121, 32, 97,108,108,111, 99, 97,116,101,100, 32, 97,114,114, 97,121, 10, 32, 32,105,102, 32,115,101,108, 102, 46, 97,114,103,115, 91, 49, 93, 46,116,121,112,101, 32, 126, 61, 32, 39,118,111,105,100, 39, 32,116,104,101,110, 10, 32, 32, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32, 32, 32,119,104,105,108,101, 32,115,101,108,102, 46, 97,114,103, 115, 91,105, 93, 32,100,111, 10, 32, 32, 32, 32,115,101,108, 102, 46, 97,114,103,115, 91,105, 93, 58,102,114,101,101, 97, 114,114, 97,121, 40, 41, 10, 32, 32, 32, 32,105, 32, 61, 32, 105, 43, 49, 10, 32, 32, 32,101,110,100, 10, 32, 32,101,110, 100, 10, 32,101,110,100, 10, 10, 32,111,117,116,112,117,116, 40, 39, 32,125, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39, 32,114,101,116,117,114,110, 32, 39, 46, 46,110,114,101, 116, 46, 46, 39, 59, 39, 41, 10, 10, 32, 45, 45, 32, 99, 97, 108,108, 32,111,118,101,114,108,111, 97,100,101,100, 32,102, 117,110, 99,116,105,111,110, 32,111,114, 32,103,101,110,101, 114, 97,116,101, 32,101,114,114,111,114, 10, 9,105,102, 32, 111,118,101,114,108,111, 97,100, 32, 60, 32, 48, 32,116,104, 101,110, 10, 10, 9, 9,111,117,116,112,117,116, 40, 39, 35, 105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, 9, 9,111,117,116, 112,117,116, 40, 39,116,111,108,117, 97, 95,108,101,114,114, 111,114, 58, 92,110, 39, 41, 10, 9, 9,111,117,116,112,117, 116, 40, 39, 32,116,111,108,117, 97, 95,101,114,114,111,114, 40,116,111,108,117, 97, 95, 83, 44, 34, 35,102,101,114,114, 111,114, 32,105,110, 32,102,117,110, 99,116,105,111,110, 32, 92, 39, 39, 46, 46,115,101,108,102, 46,108,110, 97,109,101, 46, 46, 39, 92, 39, 46, 34, 44, 38,116,111,108,117, 97, 95, 101,114,114, 41, 59, 39, 41, 10, 9, 9,111,117,116,112,117, 116, 40, 39, 32,114,101,116,117,114,110, 32, 48, 59, 39, 41, 10, 9, 9,111,117,116,112,117,116, 40, 39, 35,101,110,100, 105,102, 92,110, 39, 41, 10, 9,101,108,115,101, 10, 9, 9, 108,111, 99, 97,108, 32, 95,108,111, 99, 97,108, 32, 61, 32, 34, 34, 10, 9, 9,105,102, 32,108,111, 99, 97,108, 95, 99, 111,110,115,116,114,117, 99,116,111,114, 32,116,104,101,110, 10, 9, 9, 9, 95,108,111, 99, 97,108, 32, 61, 32, 34, 95, 108,111, 99, 97,108, 34, 10, 9, 9,101,110,100, 10, 9, 9, 111,117,116,112,117,116, 40, 39,116,111,108,117, 97, 95,108, 101,114,114,111,114, 58, 92,110, 39, 41, 10, 9, 9,111,117, 116,112,117,116, 40, 39, 32,114,101,116,117,114,110, 32, 39, 46, 46,115,116,114,115,117, 98, 40,115,101,108,102, 46, 99, 110, 97,109,101, 44, 49, 44, 45, 51, 41, 46, 46,102,111,114, 109, 97,116, 40, 34, 37, 48, 50,100, 34, 44,111,118,101,114, 108,111, 97,100, 41, 46, 46, 95,108,111, 99, 97,108, 46, 46, 39, 40,116,111,108,117, 97, 95, 83, 41, 59, 39, 41, 10, 9, 101,110,100, 10, 32,111,117,116,112,117,116, 40, 39,125, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39, 35,101,110,100, 105,102, 32, 47, 47, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 92,110, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39, 92,110, 39, 41, 10, 10, 9, 45, 45, 32,114,101, 99,117,114,115,105,118,101, 32, 99, 97,108,108, 32,116,111, 32,119,114,105,116,101, 32,108, 111, 99, 97,108, 32, 99,111,110,115,116,114,117, 99,116,111, 114, 10, 9,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,115,101,108,102, 46,110, 97,109,101, 61, 61, 39,110,101, 119, 39, 32, 97,110,100, 32,110,111,116, 32,108,111, 99, 97, 108, 95, 99,111,110,115,116,114,117, 99,116,111,114, 32,116, 104,101,110, 10, 10, 9, 9,115,101,108,102, 58,115,117,112, 99,111,100,101, 40, 49, 41, 10, 9,101,110,100, 10, 10,101, 110,100, 10, 10, 10, 45, 45, 32,114,101,103,105,115,116,101, 114, 32,102,117,110, 99,116,105,111,110, 10,102,117,110, 99, 116,105,111,110, 32, 99,108, 97,115,115, 70,117,110, 99,116, 105,111,110, 58,114,101,103,105,115,116,101,114, 32, 40,112, 114,101, 41, 10, 10, 9,105,102, 32,110,111,116, 32,115,101, 108,102, 58, 99,104,101, 99,107, 95,112,117, 98,108,105, 99, 95, 97, 99, 99,101,115,115, 40, 41, 32,116,104,101,110, 10, 9, 9,114,101,116,117,114,110, 10, 9,101,110,100, 10, 10, 32, 9,105,102, 32,115,101,108,102, 46,110, 97,109,101, 32, 61, 61, 32, 39,110,101,119, 39, 32, 97,110,100, 32,115,101, 108,102, 46,112, 97,114,101,110,116, 46,102,108, 97,103,115, 46,112,117,114,101, 95,118,105,114,116,117, 97,108, 32,116, 104,101,110, 10, 32, 9, 9, 45, 45, 32,110,111, 32, 99,111, 110,115,116,114,117, 99,116,111,114, 32,102,111,114, 32, 99, 108, 97,115,115,101,115, 32,119,105,116,104, 32,112,117,114, 101, 32,118,105,114,116,117, 97,108, 32,109,101,116,104,111, 100,115, 10, 32, 9, 9,114,101,116,117,114,110, 10, 32, 9, 101,110,100, 10, 10, 32,111,117,116,112,117,116, 40,112,114, 101, 46, 46, 39,116,111,108,117, 97, 95,102,117,110, 99,116, 105,111,110, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101,108,102, 46,108,110, 97,109,101, 46, 46, 39, 34, 44, 39, 46, 46,115,101,108,102, 46, 99,110, 97,109,101, 46, 46, 39, 41, 59, 39, 41, 10, 32, 32,105,102, 32,115,101,108, 102, 46,110, 97,109,101, 32, 61, 61, 32, 39,110,101,119, 39, 32,116,104,101,110, 10, 9, 32, 32,111,117,116,112,117,116, 40,112,114,101, 46, 46, 39,116,111,108,117, 97, 95,102,117, 110, 99,116,105,111,110, 40,116,111,108,117, 97, 95, 83, 44, 34,110,101,119, 95,108,111, 99, 97,108, 34, 44, 39, 46, 46, 115,101,108,102, 46, 99,110, 97,109,101, 46, 46, 39, 95,108, 111, 99, 97,108, 41, 59, 39, 41, 10, 9, 32, 32,111,117,116, 112,117,116, 40,112,114,101, 46, 46, 39,116,111,108,117, 97, 95,102,117,110, 99,116,105,111,110, 40,116,111,108,117, 97, 95, 83, 44, 34, 46, 99, 97,108,108, 34, 44, 39, 46, 46,115, 101,108,102, 46, 99,110, 97,109,101, 46, 46, 39, 95,108,111, 99, 97,108, 41, 59, 39, 41, 10, 9, 32, 32, 45, 45,111,117, 116,112,117,116, 40, 39, 32,116,111,108,117, 97, 95,115,101, 116, 95, 99, 97,108,108, 95,101,118,101,110,116, 40,116,111, 108,117, 97, 95, 83, 44, 39, 46, 46,115,101,108,102, 46, 99, 110, 97,109,101, 46, 46, 39, 95,108,111, 99, 97,108, 44, 32, 34, 39, 46, 46,115,101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112,101, 46, 46, 39, 34, 41, 59, 39, 41, 10, 32, 32,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 80,114, 105,110,116, 32,109,101,116,104,111,100, 10,102,117,110, 99, 116,105,111,110, 32, 99,108, 97,115,115, 70,117,110, 99,116, 105,111,110, 58,112,114,105,110,116, 32, 40,105,100,101,110, 116, 44, 99,108,111,115,101, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 70,117,110, 99,116,105, 111,110,123, 34, 41, 10, 32,112,114,105,110,116, 40,105,100, 101,110,116, 46, 46, 34, 32,109,111,100, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,109,111,100, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110, 116, 46, 46, 34, 32,116,121,112,101, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,116,121,112,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,112,116,114, 32, 32, 61, 32, 39, 34, 46, 46, 115,101,108,102, 46,112,116,114, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101, 108,102, 46,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,108,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101, 108,102, 46,108,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 99,111,110,115,116, 32, 61, 32, 39, 34, 46, 46,115, 101,108,102, 46, 99,111,110,115,116, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 99,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46, 115,101,108,102, 46, 99,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,108,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,108,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110, 116, 46, 46, 34, 32, 97,114,103,115, 32, 61, 32,123, 34, 41, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104, 105,108,101, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 32,100,111, 10, 32, 32,115,101,108,102, 46, 97,114,103, 115, 91,105, 93, 58,112,114,105,110,116, 40,105,100,101,110, 116, 46, 46, 34, 32, 32, 34, 44, 34, 44, 34, 41, 10, 32, 32, 105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32,112, 114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,125, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34,125, 34, 46, 46, 99,108,111,115,101, 41, 10,101, 110,100, 10, 10, 45, 45, 32, 99,104,101, 99,107, 32,105,102, 32,105,116, 32,114,101,116,117,114,110,115, 32, 97,110, 32, 111, 98,106,101, 99,116, 32, 98,121, 32,118, 97,108,117,101, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 70,117,110, 99,116,105,111,110, 58,114,101,113,117,105,114, 101, 99,111,108,108,101, 99,116,105,111,110, 32, 40,116, 41, 10, 9,108,111, 99, 97,108, 32,114, 32, 61, 32,102, 97,108, 115,101, 10, 9,105,102, 32,115,101,108,102, 46,116,121,112, 101, 32,126, 61, 32, 39, 39, 32, 97,110,100, 32,110,111,116, 32,105,115, 98, 97,115,105, 99, 40,115,101,108,102, 46,116, 121,112,101, 41, 32, 97,110,100, 32,115,101,108,102, 46,112, 116,114, 61, 61, 39, 39, 32,116,104,101,110, 10, 9, 9,108, 111, 99, 97,108, 32,116,121,112,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46,116,121,112,101, 44, 34, 37,115, 42, 99,111,110,115,116, 37,115, 43, 34, 44, 34, 34, 41, 10, 9, 32,116, 91,116,121,112,101, 93, 32, 61, 32, 34,116,111, 108,117, 97, 95, 99,111,108,108,101, 99,116, 95, 34, 32, 46, 46, 32, 99,108,101, 97,110, 95,116,101,109,112,108, 97,116, 101, 40,116,121,112,101, 41, 10, 9, 32,114, 32, 61, 32,116, 114,117,101, 10, 9,101,110,100, 10, 9,108,111, 99, 97,108, 32,105, 61, 49, 10, 9,119,104,105,108,101, 32,115,101,108, 102, 46, 97,114,103,115, 91,105, 93, 32,100,111, 10, 9, 9, 114, 32, 61, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 58,114,101,113,117,105,114,101, 99,111,108,108,101, 99, 116,105,111,110, 40,116, 41, 32,111,114, 32,114, 10, 9, 9, 105, 32, 61, 32,105, 43, 49, 10, 9,101,110,100, 10, 9,114, 101,116,117,114,110, 32,114, 10,101,110,100, 10, 10, 45, 45, 32,100,101,116,101,114,109,105,110,101, 32,108,117, 97, 32, 102,117,110, 99,116,105,111,110, 32,110, 97,109,101, 32,111, 118,101,114,108,111, 97,100, 10,102,117,110, 99,116,105,111, 110, 32, 99,108, 97,115,115, 70,117,110, 99,116,105,111,110, 58,111,118,101,114,108,111, 97,100, 32, 40, 41, 10, 32,114, 101,116,117,114,110, 32,115,101,108,102, 46,112, 97,114,101, 110,116, 58,111,118,101,114,108,111, 97,100, 40,115,101,108, 102, 46,108,110, 97,109,101, 41, 10,101,110,100, 10, 10, 10, 102,117,110, 99,116,105,111,110, 32,112, 97,114, 97,109, 95, 111, 98,106,101, 99,116, 40,112, 97,114, 41, 32, 45, 45, 32, 114,101,116,117,114,110,115, 32,116,114,117,101, 32,105,102, 32,116,104,101, 32,112, 97,114, 97,109,101,116,101,114, 32, 104, 97,115, 32, 97,110, 32,111, 98,106,101, 99,116, 32, 97, 115, 32,105,116,115, 32,100,101,102, 97,117,108,116, 32,118, 97,108,117,101, 10, 10, 9,105,102, 32,110,111,116, 32,115, 116,114,105,110,103, 46,102,105,110,100, 40,112, 97,114, 44, 32, 39, 61, 39, 41, 32,116,104,101,110, 32,114,101,116,117, 114,110, 32,102, 97,108,115,101, 32,101,110,100, 32, 45, 45, 32,105,116, 32,104, 97,115, 32,110,111, 32,100,101,102, 97, 117,108,116, 32,118, 97,108,117,101, 10, 10, 9,108,111, 99, 97,108, 32, 95, 44, 95, 44,100,101,102, 32, 61, 32,115,116, 114,105,110,103, 46,102,105,110,100, 40,112, 97,114, 44, 32, 34, 61, 40, 46, 42, 41, 36, 34, 41, 10, 10, 9,105,102, 32, 115,116,114,105,110,103, 46,102,105,110,100, 40,112, 97,114, 44, 32, 34,124, 34, 41, 32,116,104,101,110, 32, 45, 45, 32, 97, 32,108,105,115,116, 32,111,102, 32,102,108, 97,103,115, 10, 10, 9, 9,114,101,116,117,114,110, 32,116,114,117,101, 10, 9,101,110,100, 10, 10, 9,105,102, 32,115,116,114,105, 110,103, 46,102,105,110,100, 40,112, 97,114, 44, 32, 34, 37, 42, 34, 41, 32,116,104,101,110, 32, 45, 45, 32,105,116, 39, 115, 32, 97, 32,112,111,105,110,116,101,114, 32,119,105,116, 104, 32, 97, 32,100,101,102, 97,117,108,116, 32,118, 97,108, 117,101, 10, 10, 9, 9,105,102, 32,115,116,114,105,110,103, 46,102,105,110,100, 40,112, 97,114, 44, 32, 39, 61, 37,115, 42,110,101,119, 39, 41, 32,111,114, 32,115,116,114,105,110, 103, 46,102,105,110,100, 40,112, 97,114, 44, 32, 34, 37, 40, 34, 41, 32,116,104,101,110, 32, 45, 45, 32,105,116, 39,115, 32, 97, 32,112,111,105,110,116,101,114, 32,119,105,116,104, 32, 97,110, 32,105,110,115,116, 97,110, 99,101, 32, 97,115, 32,100,101,102, 97,117,108,116, 32,112, 97,114, 97,109,101, 116,101,114, 46, 46, 32,105,115, 32,116,104, 97,116, 32,118, 97,108,105,100, 63, 10, 9, 9, 9,114,101,116,117,114,110, 32,116,114,117,101, 10, 9, 9,101,110,100, 10, 9, 9,114, 101,116,117,114,110, 32,102, 97,108,115,101, 32, 45, 45, 32, 100,101,102, 97,117,108,116, 32,118, 97,108,117,101, 32,105, 115, 32, 39, 78, 85, 76, 76, 39, 32,111,114, 32,115,111,109, 101,116,104,105,110,103, 10, 9,101,110,100, 10, 10, 10, 9, 105,102, 32,115,116,114,105,110,103, 46,102,105,110,100, 40, 112, 97,114, 44, 32, 34, 91, 37, 40, 38, 93, 34, 41, 32,116, 104,101,110, 10, 9, 9,114,101,116,117,114,110, 32,116,114, 117,101, 10, 9,101,110,100, 32, 45, 45, 32,100,101,102, 97, 117,108,116, 32,118, 97,108,117,101, 32,105,115, 32, 97, 32, 99,111,110,115,116,114,117, 99,116,111,114, 32, 99, 97,108, 108, 32, 40,109,111,115,116, 32,108,105,107,101,108,121, 32, 102,111,114, 32, 97, 32, 99,111,110,115,116, 32,114,101,102, 101,114,101,110, 99,101, 41, 10, 10, 9, 45, 45,105,102, 32, 115,116,114,105,110,103, 46,102,105,110,100, 40,112, 97,114, 44, 32, 34, 38, 34, 41, 32,116,104,101,110, 10, 10, 9, 45, 45, 9,105,102, 32,115,116,114,105,110,103, 46,102,105,110, 100, 40,100,101,102, 44, 32, 34, 58, 34, 41, 32,111,114, 32, 115,116,114,105,110,103, 46,102,105,110,100, 40,100,101,102, 44, 32, 34, 94, 37,115, 42,110,101,119, 37,115, 43, 34, 41, 32,116,104,101,110, 10, 10, 9, 45, 45, 9, 9, 45, 45, 32, 105,116, 39,115, 32, 97, 32,114,101,102,101,114,101,110, 99, 101, 32,119,105,116,104, 32,100,101,102, 97,117,108,116, 32, 116,111, 32,115,111,109,101,116,104,105,110,103, 32,108,105, 107,101, 32, 67,108, 97,115,115, 58, 58,109,101,109, 98,101, 114, 44, 32,111,114, 32, 39,110,101,119, 32, 67,108, 97,115, 115, 39, 10, 9, 45, 45, 9, 9,114,101,116,117,114,110, 32, 116,114,117,101, 10, 9, 45, 45, 9,101,110,100, 10, 9, 45, 45,101,110,100, 10, 10, 9,114,101,116,117,114,110, 32,102, 97,108,115,101, 32, 45, 45, 32, 63, 10,101,110,100, 10, 10, 102,117,110, 99,116,105,111,110, 32,115,116,114,105,112, 95, 108, 97,115,116, 95, 97,114,103, 40, 97,108,108, 95, 97,114, 103,115, 44, 32,108, 97,115,116, 95, 97,114,103, 41, 32, 45, 45, 32,115,116,114,105,112,115, 32,116,104,101, 32,100,101, 102, 97,117,108,116, 32,118, 97,108,117,101, 32,102,114,111, 109, 32,116,104,101, 32,108, 97,115,116, 32, 97,114,103,117, 109,101,110,116, 10, 10, 9,108,111, 99, 97,108, 32, 95, 44, 95, 44,115, 95, 97,114,103, 32, 61, 32,115,116,114,105,110, 103, 46,102,105,110,100, 40,108, 97,115,116, 95, 97,114,103, 44, 32, 34, 94, 40, 91, 94, 61, 93, 43, 41, 34, 41, 10, 9, 108, 97,115,116, 95, 97,114,103, 32, 61, 32,115,116,114,105, 110,103, 46,103,115,117, 98, 40,108, 97,115,116, 95, 97,114, 103, 44, 32, 34, 40, 91, 37, 37, 37, 40, 37, 41, 93, 41, 34, 44, 32, 34, 37, 37, 37, 49, 34, 41, 59, 10, 9, 97,108,108, 95, 97,114,103,115, 32, 61, 32,115,116,114,105,110,103, 46, 103,115,117, 98, 40, 97,108,108, 95, 97,114,103,115, 44, 32, 34, 37,115, 42, 44, 37,115, 42, 34, 46, 46,108, 97,115,116, 95, 97,114,103, 46, 46, 34, 37,115, 42, 37, 41, 37,115, 42, 36, 34, 44, 32, 34, 41, 34, 41, 10, 9,114,101,116,117,114, 110, 32, 97,108,108, 95, 97,114,103,115, 44, 32,115, 95, 97, 114,103, 10,101,110,100, 10, 10, 10, 10, 45, 45, 32, 73,110, 116,101,114,110, 97,108, 32, 99,111,110,115,116,114,117, 99, 116,111,114, 10,102,117,110, 99,116,105,111,110, 32, 95, 70, 117,110, 99,116,105,111,110, 32, 40,116, 41, 10, 32,115,101, 116,109,101,116, 97,116, 97, 98,108,101, 40,116, 44, 99,108, 97,115,115, 70,117,110, 99,116,105,111,110, 41, 10, 10, 32, 105,102, 32,116, 46, 99,111,110,115,116, 32,126, 61, 32, 39, 99,111,110,115,116, 39, 32, 97,110,100, 32,116, 46, 99,111, 110,115,116, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10, 32, 32,101,114,114,111,114, 40, 34, 35,105,110,118, 97,108, 105,100, 32, 39, 99,111,110,115,116, 39, 32,115,112,101, 99, 105,102,105, 99, 97,116,105,111,110, 34, 41, 10, 32,101,110, 100, 10, 10, 32, 97,112,112,101,110,100, 40,116, 41, 10, 32, 105,102, 32,116, 58,105,110, 99,108, 97,115,115, 40, 41, 32, 116,104,101,110, 10, 32, 45, 45,112,114,105,110,116, 32, 40, 39,116, 46,110, 97,109,101, 32,105,115, 32, 39, 46, 46,116, 46,110, 97,109,101, 46, 46, 39, 44, 32,112, 97,114,101,110, 116, 46,110, 97,109,101, 32,105,115, 32, 39, 46, 46,116, 46, 112, 97,114,101,110,116, 46,110, 97,109,101, 41, 10, 32, 32, 105,102, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40, 116, 46,110, 97,109,101, 44, 32, 34, 37, 98, 60, 62, 34, 44, 32, 34, 34, 41, 32, 61, 61, 32,115,116,114,105,110,103, 46, 103,115,117, 98, 40,116, 46,112, 97,114,101,110,116, 46,111, 114,105,103,105,110, 97,108, 95,110, 97,109,101, 32,111,114, 32,116, 46,112, 97,114,101,110,116, 46,110, 97,109,101, 44, 32, 34, 37, 98, 60, 62, 34, 44, 32, 34, 34, 41, 32,116,104, 101,110, 10, 32, 32, 32,116, 46,110, 97,109,101, 32, 61, 32, 39,110,101,119, 39, 10, 32, 32, 32,116, 46,108,110, 97,109, 101, 32, 61, 32, 39,110,101,119, 39, 10, 32, 32, 32,116, 46, 112, 97,114,101,110,116, 46, 95,110,101,119, 32, 61, 32,116, 114,117,101, 10, 32, 32, 32,116, 46,116,121,112,101, 32, 61, 32,116, 46,112, 97,114,101,110,116, 46,110, 97,109,101, 10, 32, 32, 32,116, 46,112,116,114, 32, 61, 32, 39, 42, 39, 10, 32, 32,101,108,115,101,105,102, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,116, 46,110, 97,109,101, 44, 32, 34, 37, 98, 60, 62, 34, 44, 32, 34, 34, 41, 32, 61, 61, 32, 39, 126, 39, 46, 46,115,116,114,105,110,103, 46,103,115,117, 98, 40,116, 46,112, 97,114,101,110,116, 46,111,114,105,103,105, 110, 97,108, 95,110, 97,109,101, 32,111,114, 32,116, 46,112, 97,114,101,110,116, 46,110, 97,109,101, 44, 32, 34, 37, 98, 60, 62, 34, 44, 32, 34, 34, 41, 32,116,104,101,110, 10, 32, 32, 32,116, 46,110, 97,109,101, 32, 61, 32, 39,100,101,108, 101,116,101, 39, 10, 32, 32, 32,116, 46,108,110, 97,109,101, 32, 61, 32, 39,100,101,108,101,116,101, 39, 10, 32, 32, 32, 116, 46,112, 97,114,101,110,116, 46, 95,100,101,108,101,116, 101, 32, 61, 32,116,114,117,101, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 32,116, 46, 99,110, 97,109,101, 32, 61, 32,116, 58, 99,102,117,110, 99,110, 97,109,101, 40, 34,116, 111,108,117, 97, 34, 41, 46, 46,116, 58,111,118,101,114,108, 111, 97,100, 40,116, 41, 10, 32,114,101,116,117,114,110, 32, 116, 10,101,110,100, 10, 10, 45, 45, 32, 67,111,110,115,116, 114,117, 99,116,111,114, 10, 45, 45, 32, 69,120,112,101, 99, 116,115, 32,116,104,114,101,101, 32,115,116,114,105,110,103, 115, 58, 32,111,110,101, 32,114,101,112,114,101,115,101,110, 116,105,110,103, 32,116,104,101, 32,102,117,110, 99,116,105, 111,110, 32,100,101, 99,108, 97,114, 97,116,105,111,110, 44, 10, 45, 45, 32, 97,110,111,116,104,101,114, 32,114,101,112, 114,101,115,101,110,116,105,110,103, 32,116,104,101, 32, 97, 114,103,117,109,101,110,116, 32,108,105,115,116, 44, 32, 97, 110,100, 32,116,104,101, 32,116,104,105,114,100, 32,114,101, 112,114,101,115,101,110,116,105,110,103, 10, 45, 45, 32,116, 104,101, 32, 34, 99,111,110,115,116, 34, 32,111,114, 32,101, 109,112,116,121, 32,115,116,114,105,110,103, 46, 10,102,117, 110, 99,116,105,111,110, 32, 70,117,110, 99,116,105,111,110, 32, 40,100, 44, 97, 44, 99, 41, 10, 32, 45, 45,108,111, 99, 97,108, 32,116, 32, 61, 32,115,112,108,105,116, 40,115,116, 114,115,117, 98, 40, 97, 44, 50, 44, 45, 50, 41, 44, 39, 44, 39, 41, 32, 45, 45, 32,101,108,105,109,105,110, 97,116,101, 32, 98,114, 97, 99,101,115, 10, 32, 45, 45,108,111, 99, 97, 108, 32,116, 32, 61, 32,115,112,108,105,116, 95,112, 97,114, 97,109,115, 40,115,116,114,115,117, 98, 40, 97, 44, 50, 44, 45, 50, 41, 41, 10, 10, 9,105,102, 32,110,111,116, 32,102, 108, 97,103,115, 91, 39, 87, 39, 93, 32, 97,110,100, 32,115, 116,114,105,110,103, 46,102,105,110,100, 40, 97, 44, 32, 34, 37, 46, 37, 46, 37, 46, 37,115, 42, 37, 41, 34, 41, 32,116, 104,101,110, 10, 10, 9, 9,119, 97,114,110,105,110,103, 40, 34, 70,117,110, 99,116,105,111,110,115, 32,119,105,116,104, 32,118, 97,114,105, 97, 98,108,101, 32, 97,114,103,117,109, 101,110,116,115, 32, 40, 96, 46, 46, 46, 39, 41, 32, 97,114, 101, 32,110,111,116, 32,115,117,112,112,111,114,116,101,100, 46, 32, 73,103,110,111,114,105,110,103, 32, 34, 46, 46,100, 46, 46, 97, 46, 46, 99, 41, 10, 9, 9,114,101,116,117,114, 110, 32,110,105,108, 10, 9,101,110,100, 10, 10, 10, 32,108, 111, 99, 97,108, 32,105, 61, 49, 10, 32,108,111, 99, 97,108, 32,108, 32, 61, 32,123,110, 61, 48,125, 10, 10, 32, 9, 97, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40, 97, 44, 32, 34, 37,115, 42, 40, 91, 37, 40, 37, 41, 93, 41, 37,115, 42, 34, 44, 32, 34, 37, 49, 34, 41, 10, 9,108,111, 99, 97,108, 32,116, 44,115,116,114,105,112, 44,108, 97,115, 116, 32, 61, 32,115,116,114,105,112, 95,112, 97,114,115, 40, 115,116,114,115,117, 98, 40, 97, 44, 50, 44, 45, 50, 41, 41, 59, 10, 9,105,102, 32,115,116,114,105,112, 32,116,104,101, 110, 10, 9, 9, 45, 45,108,111, 99, 97,108, 32,110,115, 32, 61, 32,115,116,114,105,110,103, 46,115,117, 98, 40,115,116, 114,115,117, 98, 40, 97, 44, 49, 44, 45, 50, 41, 44, 32, 49, 44, 32, 45, 40,115,116,114,105,110,103, 46,108,101,110, 40, 108, 97,115,116, 41, 43, 49, 41, 41, 10, 9, 9,108,111, 99, 97,108, 32,110,115, 32, 61, 32,106,111,105,110, 40,116, 44, 32, 34, 44, 34, 44, 32, 49, 44, 32,108, 97,115,116, 45, 49, 41, 10, 10, 9, 9,110,115, 32, 61, 32, 34, 40, 34, 46, 46, 115,116,114,105,110,103, 46,103,115,117, 98, 40,110,115, 44, 32, 34, 37,115, 42, 44, 37,115, 42, 36, 34, 44, 32, 34, 34, 41, 46, 46, 39, 41, 39, 10, 9, 9, 45, 45,110,115, 32, 61, 32,115,116,114,105,112, 95,100,101,102, 97,117,108,116,115, 40,110,115, 41, 10, 10, 9, 9, 70,117,110, 99,116,105,111, 110, 40,100, 44, 32,110,115, 44, 32, 99, 41, 10, 9, 9,102, 111,114, 32,105, 61, 49, 44,108, 97,115,116, 32,100,111, 10, 9, 9, 9,116, 91,105, 93, 32, 61, 32,115,116,114,105,110, 103, 46,103,115,117, 98, 40,116, 91,105, 93, 44, 32, 34, 61, 46, 42, 36, 34, 44, 32, 34, 34, 41, 10, 9, 9,101,110,100, 10, 9,101,110,100, 10, 10, 32,119,104,105,108,101, 32,116, 91,105, 93, 32,100,111, 10, 32, 32,108, 46,110, 32, 61, 32, 108, 46,110, 43, 49, 10, 32, 32,108, 91,108, 46,110, 93, 32, 61, 32, 68,101, 99,108, 97,114, 97,116,105,111,110, 40,116, 91,105, 93, 44, 39,118, 97,114, 39, 44,116,114,117,101, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32,108,111, 99, 97,108, 32,102, 32, 61, 32, 68,101, 99, 108, 97,114, 97,116,105,111,110, 40,100, 44, 39,102,117,110, 99, 39, 41, 10, 32,102, 46, 97,114,103,115, 32, 61, 32,108, 10, 32,102, 46, 99,111,110,115,116, 32, 61, 32, 99, 10, 32, 114,101,116,117,114,110, 32, 95, 70,117,110, 99,116,105,111, 110, 40,102, 41, 10,101,110,100, 10, 10,102,117,110, 99,116, 105,111,110, 32,106,111,105,110, 40,116, 44, 32,115,101,112, 44, 32,102,105,114,115,116, 44, 32,108, 97,115,116, 41, 10, 10, 9,102,105,114,115,116, 32, 61, 32,102,105,114,115,116, 32,111,114, 32, 49, 10, 9,108, 97,115,116, 32, 61, 32,108, 97,115,116, 32,111,114, 32,116, 97, 98,108,101, 46,103,101, 116,110, 40,116, 41, 10, 9,108,111, 99, 97,108, 32,108,115, 101,112, 32, 61, 32, 34, 34, 10, 9,108,111, 99, 97,108, 32, 114,101,116, 32, 61, 32, 34, 34, 10, 9,108,111, 99, 97,108, 32,108,111,111,112, 32, 61, 32,102, 97,108,115,101, 10, 9, 102,111,114, 32,105, 32, 61, 32,102,105,114,115,116, 44,108, 97,115,116, 32,100,111, 10, 10, 9, 9,114,101,116, 32, 61, 32,114,101,116, 46, 46,108,115,101,112, 46, 46,116, 91,105, 93, 10, 9, 9,108,115,101,112, 32, 61, 32,115,101,112, 10, 9, 9,108,111,111,112, 32, 61, 32,116,114,117,101, 10, 9, 101,110,100, 10, 9,105,102, 32,110,111,116, 32,108,111,111, 112, 32,116,104,101,110, 10, 9, 9,114,101,116,117,114,110, 32, 34, 34, 10, 9,101,110,100, 10, 10, 9,114,101,116,117, 114,110, 32,114,101,116, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,115,116,114,105,112, 95,112, 97,114, 115, 40,115, 41, 10, 10, 9,108,111, 99, 97,108, 32,116, 32, 61, 32,115,112,108,105,116, 95, 99, 95,116,111,107,101,110, 115, 40,115, 44, 32, 39, 44, 39, 41, 10, 9,108,111, 99, 97, 108, 32,115,116,114,105,112, 32, 61, 32,102, 97,108,115,101, 10, 9,108,111, 99, 97,108, 32,108, 97,115,116, 10, 10, 9, 102,111,114, 32,105, 61,116, 46,110, 44, 49, 44, 45, 49, 32, 100,111, 10, 10, 9, 9,105,102, 32,110,111,116, 32,115,116, 114,105,112, 32, 97,110,100, 32,112, 97,114, 97,109, 95,111, 98,106,101, 99,116, 40,116, 91,105, 93, 41, 32,116,104,101, 110, 10, 9, 9, 9,108, 97,115,116, 32, 61, 32,105, 10, 9, 9, 9,115,116,114,105,112, 32, 61, 32,116,114,117,101, 10, 9, 9,101,110,100, 10, 9, 9, 45, 45,105,102, 32,115,116, 114,105,112, 32,116,104,101,110, 10, 9, 9, 45, 45, 9,116, 91,105, 93, 32, 61, 32,115,116,114,105,110,103, 46,103,115, 117, 98, 40,116, 91,105, 93, 44, 32, 34, 61, 46, 42, 36, 34, 44, 32, 34, 34, 41, 10, 9, 9, 45, 45,101,110,100, 10, 9, 101,110,100, 10, 10, 9,114,101,116,117,114,110, 32,116, 44, 115,116,114,105,112, 44,108, 97,115,116, 10, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,115,116,114,105, 112, 95,100,101,102, 97,117,108,116,115, 40,115, 41, 10, 10, 9,115, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,115, 44, 32, 34, 94, 37, 40, 34, 44, 32, 34, 34, 41, 10, 9,115, 32, 61, 32,115,116,114,105,110,103, 46,103,115, 117, 98, 40,115, 44, 32, 34, 37, 41, 36, 34, 44, 32, 34, 34, 41, 10, 10, 9,108,111, 99, 97,108, 32,116, 32, 61, 32,115, 112,108,105,116, 95, 99, 95,116,111,107,101,110,115, 40,115, 44, 32, 34, 44, 34, 41, 10, 9,108,111, 99, 97,108, 32,115, 101,112, 44, 32,114,101,116, 32, 61, 32, 34, 34, 44, 34, 34, 10, 9,102,111,114, 32,105, 61, 49, 44,116, 46,110, 32,100, 111, 10, 9, 9,116, 91,105, 93, 32, 61, 32,115,116,114,105, 110,103, 46,103,115,117, 98, 40,116, 91,105, 93, 44, 32, 34, 61, 46, 42, 36, 34, 44, 32, 34, 34, 41, 10, 9, 9,114,101, 116, 32, 61, 32,114,101,116, 46, 46,115,101,112, 46, 46,116, 91,105, 93, 10, 9, 9,115,101,112, 32, 61, 32, 34, 44, 34, 10, 9,101,110,100, 10, 10, 9,114,101,116,117,114,110, 32, 34, 40, 34, 46, 46,114,101,116, 46, 46, 34, 41, 34, 10,101, 110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/function.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32,111,112,101,114, 97, 116,111,114, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114, 105,116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73, 100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99, 111,100,101, 32,105,115, 32,102,114,101,101, 32,115,111,102, 116,119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32, 114,101,100,105,115,116,114,105, 98,117,116,101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109,111,100,105,102,121, 32, 105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116, 119, 97,114,101, 32,112,114,111,118,105,100,101,100, 32,104, 101,114,101,117,110,100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105, 115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97, 117,116,104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98, 108,105,103, 97,116,105,111,110, 32,116,111, 32,112,114,111, 118,105,100,101, 32,109, 97,105,110,116,101,110, 97,110, 99, 101, 44, 32,115,117,112,112,111,114,116, 44, 32,117,112,100, 97,116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99, 101,109,101,110,116,115, 44, 32,111,114, 32,109,111,100,105, 102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 45, 45, 32, 79,112,101,114, 97,116,111,114, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114,101,115,101,110,116,115, 32, 97,110, 32,111,112,101,114, 97,116,111,114, 32,102,117,110, 99,116,105,111,110, 32,111,114, 32, 97, 32, 99,108, 97,115, 115, 32,111,112,101,114, 97,116,111,114, 32,109,101,116,104, 111,100, 46, 10, 45, 45, 32, 73,116, 32,115,116,111,114,101, 115, 32,116,104,101, 32,115, 97,109,101, 32,102,105,101,108, 100,115, 32, 97,115, 32,102,117,110, 99,116,105,111,110,115, 32,100,111, 32,112,108,117,115, 58, 10, 45, 45, 32, 32,107, 105,110,100, 32, 61, 32,115,101,116, 32,111,102, 32, 99,104, 97,114, 97, 99,116,101,114, 32,114,101,112,114,101,115,101, 110,116,105,110,103, 32,116,104,101, 32,111,112,101,114, 97, 116,111,114, 32, 40, 97,115, 32,105,116, 32, 97,112,112,101, 114,115, 32,105,110, 32, 67, 43, 43, 32, 99,111,100,101, 41, 10, 99,108, 97,115,115, 79,112,101,114, 97,116,111,114, 32, 61, 32,123, 10, 32,107,105,110,100, 32, 61, 32, 39, 39, 44, 10,125, 10, 99,108, 97,115,115, 79,112,101,114, 97,116,111, 114, 46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97, 115,115, 79,112,101,114, 97,116,111,114, 10,115,101,116,109, 101,116, 97,116, 97, 98,108,101, 40, 99,108, 97,115,115, 79, 112,101,114, 97,116,111,114, 44, 99,108, 97,115,115, 70,117, 110, 99,116,105,111,110, 41, 10, 10, 45, 45, 32,116, 97, 98, 108,101, 32,116,111, 32,116,114, 97,110,115,102,111,114,109, 32,111,112,101,114, 97,116,111,114, 32,107,105,110,100, 32, 105,110,116,111, 32,116,104,101, 32, 97,112,112,114,111,112, 114,105, 97,116,101, 32,116, 97,103, 32,109,101,116,104,111, 100, 32,110, 97,109,101, 10, 95, 84, 77, 32, 61, 32,123, 91, 39, 43, 39, 93, 32, 61, 32, 39, 97,100,100, 39, 44, 10, 32, 32, 32, 32, 32, 32, 32, 91, 39, 45, 39, 93, 32, 61, 32, 39, 115,117, 98, 39, 44, 10, 32, 32, 32, 32, 32, 32, 32, 91, 39, 42, 39, 93, 32, 61, 32, 39,109,117,108, 39, 44, 10, 32, 32, 32, 32, 32, 32, 32, 91, 39, 47, 39, 93, 32, 61, 32, 39,100, 105,118, 39, 44, 10, 32, 32, 32, 32, 32, 32, 32, 91, 39, 60, 39, 93, 32, 61, 32, 39,108,116, 39, 44, 10, 32, 32, 32, 32, 32, 32, 32, 91, 39, 60, 61, 39, 93, 32, 61, 32, 39,108,101, 39, 44, 10, 32, 32, 32, 32, 32, 32, 32, 91, 39, 61, 61, 39, 93, 32, 61, 32, 39,101,113, 39, 44, 10, 32, 32, 32, 32, 32, 32, 32, 91, 39, 91, 93, 39, 93, 32, 61, 32, 39,103,101,116, 105, 39, 44, 10, 32, 32, 32, 32, 32, 32, 32, 91, 39, 38, 91, 93, 39, 93, 32, 61, 32, 39,115,101,116,105, 39, 44, 10, 32, 32, 32, 32, 32, 32, 32, 45, 45, 91, 39, 45, 62, 39, 93, 32, 61, 32, 39,102,108,101, 99,104,105,116, 97, 39, 44, 10, 32, 32, 32, 32, 32, 32,125, 10, 10, 10, 45, 45, 32, 80,114,105, 110,116, 32,109,101,116,104,111,100, 10,102,117,110, 99,116, 105,111,110, 32, 99,108, 97,115,115, 79,112,101,114, 97,116, 111,114, 58,112,114,105,110,116, 32, 40,105,100,101,110,116, 44, 99,108,111,115,101, 41, 10, 32,112,114,105,110,116, 40, 105,100,101,110,116, 46, 46, 34, 79,112,101,114, 97,116,111, 114,123, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101, 110,116, 46, 46, 34, 32,107,105,110,100, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,107,105,110,100, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101, 110,116, 46, 46, 34, 32,109,111,100, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,109,111,100, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,116,121,112,101, 32, 61, 32, 39, 34, 46, 46, 115,101,108,102, 46,116,121,112,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,112,116,114, 32, 32, 61, 32, 39, 34, 46, 46,115, 101,108,102, 46,112,116,114, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101,108, 102, 46,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32, 112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 99,111,110,115,116, 32, 61, 32, 39, 34, 46, 46,115,101,108, 102, 46, 99,111,110,115,116, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 99,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101, 108,102, 46, 99,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,108,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115, 101,108,102, 46,108,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 97,114,103,115, 32, 61, 32,123, 34, 41, 10, 32, 108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105,108, 101, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 32, 100,111, 10, 32, 32,115,101,108,102, 46, 97,114,103,115, 91, 105, 93, 58,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 32, 34, 44, 34, 44, 34, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32,112,114,105, 110,116, 40,105,100,101,110,116, 46, 46, 34, 32,125, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34,125, 34, 46, 46, 99,108,111,115,101, 41, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115, 115, 79,112,101,114, 97,116,111,114, 58,115,117,112, 99,111, 100,101, 95,116,109,112, 40, 41, 10, 10, 9,105,102, 32,110, 111,116, 32, 95, 84, 77, 91,115,101,108,102, 46,107,105,110, 100, 93, 32,116,104,101,110, 10, 9, 9,114,101,116,117,114, 110, 32, 99,108, 97,115,115, 70,117,110, 99,116,105,111,110, 46,115,117,112, 99,111,100,101, 40,115,101,108,102, 41, 10, 9,101,110,100, 10, 10, 9, 45, 45, 32,110,111, 32,111,118, 101,114,108,111, 97,100, 44, 32,110,111, 32,112, 97,114, 97, 109,101,116,101,114,115, 44, 32, 97,108,119, 97,121,115, 32, 105,110, 99,108, 97,115,115, 10, 9,111,117,116,112,117,116, 40, 34, 47, 42, 32,109,101,116,104,111,100, 58, 34, 44,115, 101,108,102, 46,110, 97,109,101, 44, 34, 32,111,102, 32, 99, 108, 97,115,115, 32, 34, 44,115,101,108,102, 58,105,110, 99, 108, 97,115,115, 40, 41, 44, 34, 32, 42, 47, 34, 41, 10, 10, 9,111,117,116,112,117,116, 40, 34, 35,105,102,110,100,101, 102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 95, 34, 46, 46,115,101,108,102, 46, 99,110, 97,109,101, 41, 10, 9,111,117,116,112,117,116, 40, 34, 92,110,115,116, 97, 116,105, 99, 32,105,110,116, 34, 44,115,101,108,102, 46, 99, 110, 97,109,101, 44, 34, 40,108,117, 97, 95, 83,116, 97,116, 101, 42, 32,116,111,108,117, 97, 95, 83, 41, 34, 41, 10, 10, 9,105,102, 32,111,118,101,114,108,111, 97,100, 32, 60, 32, 48, 32,116,104,101,110, 10, 9, 32,111,117,116,112,117,116, 40, 39, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, 9,101, 110,100, 10, 9,111,117,116,112,117,116, 40, 39, 32,116,111, 108,117, 97, 95, 69,114,114,111,114, 32,116,111,108,117, 97, 95,101,114,114, 59, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 32,105,102, 32, 40, 92,110, 39, 41, 10, 9, 45, 45, 32, 99,104,101, 99,107, 32,115,101,108,102, 10, 9,108,111, 99, 97,108, 32,105,115, 95,102,117,110, 99, 32, 61, 32,103, 101,116, 95,105,115, 95,102,117,110, 99,116,105,111,110, 40, 115,101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112, 101, 41, 10, 9,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32, 32, 33, 39, 46, 46,105,115, 95,102,117,110, 99, 46, 46, 39, 40,116,111,108,117, 97, 95, 83, 44, 49, 44, 34, 39, 46, 46,115,101,108,102, 46,112, 97,114,101,110,116, 46,116,121, 112,101, 46, 46, 39, 34, 44, 48, 44, 38,116,111,108,117, 97, 95,101,114,114, 41, 32,124,124, 92,110, 39, 41, 10, 9,111, 117,116,112,117,116, 40, 39, 32, 32, 32, 32, 32, 33,116,111, 108,117, 97, 95,105,115,110,111,111, 98,106, 40,116,111,108, 117, 97, 95, 83, 44, 50, 44, 38,116,111,108,117, 97, 95,101, 114,114, 41, 92,110, 32, 41, 39, 41, 10, 9,111,117,116,112, 117,116, 40, 39, 32, 32,103,111,116,111, 32,116,111,108,117, 97, 95,108,101,114,114,111,114, 59, 39, 41, 10, 10, 9,111, 117,116,112,117,116, 40, 39, 32,101,108,115,101, 92,110, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 35,101,110,100, 105,102, 92,110, 39, 41, 32, 45, 45, 32,116,111,108,117, 97, 95,114,101,108,101, 97,115,101, 10, 9,111,117,116,112,117, 116, 40, 39, 32,123, 39, 41, 10, 10, 9, 45, 45, 32,100,101, 99,108, 97,114,101, 32,115,101,108,102, 10, 9,111,117,116, 112,117,116, 40, 39, 32, 39, 44,115,101,108,102, 46, 99,111, 110,115,116, 44,115,101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112,101, 44, 39, 42, 39, 44, 39,115,101,108,102, 32, 61, 32, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 40, 39, 44,115,101,108,102, 46, 99,111,110,115,116, 44,115, 101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112,101, 44, 39, 42, 41, 32, 39, 41, 10, 9,108,111, 99, 97,108, 32, 116,111, 95,102,117,110, 99, 32, 61, 32,103,101,116, 95,116, 111, 95,102,117,110, 99, 40,115,101,108,102, 46,112, 97,114, 101,110,116, 46,116,121,112,101, 41, 10, 9,111,117,116,112, 117,116, 40,116,111, 95,102,117,110, 99, 44, 39, 40,116,111, 108,117, 97, 95, 83, 44, 49, 44, 48, 41, 59, 39, 41, 10, 10, 9, 45, 45, 32, 99,104,101, 99,107, 32,115,101,108,102, 10, 9,111,117,116,112,117,116, 40, 39, 35,105,102,110,100,101, 102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 32, 32,105,102, 32, 40, 33,115,101,108,102, 41, 32,116,111,108, 117, 97, 95,101,114,114,111,114, 40,116,111,108,117, 97, 95, 83, 44, 34,105,110,118, 97,108,105,100, 32, 92, 39,115,101, 108,102, 92, 39, 32,105,110, 32,102,117,110, 99,116,105,111, 110, 32, 92, 39, 39, 46, 46,115,101,108,102, 46,110, 97,109, 101, 46, 46, 39, 92, 39, 34, 44, 78, 85, 76, 76, 41, 59, 39, 41, 59, 10, 9,111,117,116,112,117,116, 40, 39, 35,101,110, 100,105,102, 92,110, 39, 41, 10, 10, 9, 45, 45, 32, 99, 97, 115,116, 32,115,101,108,102, 10, 9,111,117,116,112,117,116, 40, 39, 32, 32, 39, 44,115,101,108,102, 46,109,111,100, 44, 115,101,108,102, 46,116,121,112,101, 44,115,101,108,102, 46, 112,116,114, 44, 39,116,111,108,117, 97, 95,114,101,116, 32, 61, 32, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 40, 39, 44,115,101,108,102, 46,109,111,100, 44,115,101,108,102, 46,116,121,112,101, 44,115,101,108,102, 46,112,116,114, 44, 39, 41, 40, 42,115,101,108,102, 41, 59, 39, 41, 10, 10, 9, 45, 45, 32,114,101,116,117,114,110, 32,118, 97,108,117,101, 10, 9,108,111, 99, 97,108, 32,116, 44, 99,116, 32, 61, 32, 105,115, 98, 97,115,105, 99, 40,115,101,108,102, 46,116,121, 112,101, 41, 10, 9,105,102, 32,116, 32,116,104,101,110, 10, 9, 9,111,117,116,112,117,116, 40, 39, 32, 32, 32,116,111, 108,117, 97, 95,112,117,115,104, 39, 46, 46,116, 46, 46, 39, 40,116,111,108,117, 97, 95, 83, 44, 40, 39, 44, 99,116, 44, 39, 41,116,111,108,117, 97, 95,114,101,116, 41, 59, 39, 41, 10, 9,101,108,115,101, 10, 9, 9,116, 32, 61, 32,115,101, 108,102, 46,116,121,112,101, 10, 9, 9,108,111, 99, 97,108, 32,112,117,115,104, 95,102,117,110, 99, 32, 61, 32,103,101, 116, 95,112,117,115,104, 95,102,117,110, 99,116,105,111,110, 40,116, 41, 10, 9, 9,110,101,119, 95,116, 32, 61, 32,115, 116,114,105,110,103, 46,103,115,117, 98, 40,116, 44, 32, 34, 99,111,110,115,116, 37,115, 43, 34, 44, 32, 34, 34, 41, 10, 9, 9,105,102, 32,115,101,108,102, 46,112,116,114, 32, 61, 61, 32, 39, 39, 32,116,104,101,110, 10, 9, 9, 9,111,117, 116,112,117,116, 40, 39, 32, 32, 32,123, 39, 41, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 35,105,102,100,101,102, 32, 95, 95, 99,112,108,117,115,112,108,117,115, 92,110, 39, 41, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,118,111,105,100, 42, 32,116,111,108,117, 97, 95,111, 98,106, 32, 61, 32, 77,116,111,108,117, 97, 95,110,101,119, 40, 40, 39, 44,110,101,119, 95,116, 44, 39, 41, 40,116,111, 108,117, 97, 95,114,101,116, 41, 41, 59, 39, 41, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32, 39, 44, 112,117,115,104, 95,102,117,110, 99, 44, 39, 40,116,111,108, 117, 97, 95, 83, 44,116,111,108,117, 97, 95,111, 98,106, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10, 9, 9, 9, 111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,116,111,108, 117, 97, 95,114,101,103,105,115,116,101,114, 95,103, 99, 40, 116,111,108,117, 97, 95, 83, 44,108,117, 97, 95,103,101,116, 116,111,112, 40,116,111,108,117, 97, 95, 83, 41, 41, 59, 39, 41, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 35,101, 108,115,101, 92,110, 39, 41, 10, 9, 9, 9,111,117,116,112, 117,116, 40, 39, 32, 32, 32, 32,118,111,105,100, 42, 32,116, 111,108,117, 97, 95,111, 98,106, 32, 61, 32,116,111,108,117, 97, 95, 99,111,112,121, 40,116,111,108,117, 97, 95, 83, 44, 40,118,111,105,100, 42, 41, 38,116,111,108,117, 97, 95,114, 101,116, 44,115,105,122,101,111,102, 40, 39, 44,116, 44, 39, 41, 41, 59, 39, 41, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32, 39, 44,112,117,115,104, 95,102,117, 110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44,116,111, 108,117, 97, 95,111, 98,106, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,116,111,108,117, 97, 95,114,101,103,105, 115,116,101,114, 95,103, 99, 40,116,111,108,117, 97, 95, 83, 44,108,117, 97, 95,103,101,116,116,111,112, 40,116,111,108, 117, 97, 95, 83, 41, 41, 59, 39, 41, 10, 9, 9, 9,111,117, 116,112,117,116, 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32, 32, 32,125, 39, 41, 10, 9, 9,101,108,115,101,105,102, 32,115, 101,108,102, 46,112,116,114, 32, 61, 61, 32, 39, 38, 39, 32, 116,104,101,110, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32, 32, 32, 39, 44,112,117,115,104, 95,102,117,110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 40,118,111,105, 100, 42, 41, 38,116,111,108,117, 97, 95,114,101,116, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10, 9, 9,101,108, 115,101, 10, 9, 9, 9,105,102, 32,108,111, 99, 97,108, 95, 99,111,110,115,116,114,117, 99,116,111,114, 32,116,104,101, 110, 10, 9, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32, 32, 32, 39, 44,112,117,115,104, 95,102,117,110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 40,118,111,105,100, 32, 42, 41,116,111,108,117, 97, 95,114,101,116, 44, 34, 39, 44, 116, 44, 39, 34, 41, 59, 39, 41, 10, 9, 9, 9, 9,111,117, 116,112,117,116, 40, 39, 32, 32, 32, 32,116,111,108,117, 97, 95,114,101,103,105,115,116,101,114, 95,103, 99, 40,116,111, 108,117, 97, 95, 83, 44,108,117, 97, 95,103,101,116,116,111, 112, 40,116,111,108,117, 97, 95, 83, 41, 41, 59, 39, 41, 10, 9, 9, 9,101,108,115,101, 10, 9, 9, 9, 9,111,117,116, 112,117,116, 40, 39, 32, 32, 32, 39, 44,112,117,115,104, 95, 102,117,110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 40,118,111,105,100, 42, 41,116,111,108,117, 97, 95,114,101, 116, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10, 9, 9, 9,101,110,100, 10, 9, 9,101,110,100, 10, 9,101,110, 100, 10, 10, 9,111,117,116,112,117,116, 40, 39, 32, 32,125, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 32,114,101, 116,117,114,110, 32, 49, 59, 39, 41, 10, 10, 9,111,117,116, 112,117,116, 40, 39, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39,116,111,108,117, 97, 95,108,101,114,114,111,114, 58, 92,110, 39, 41, 10, 9,111, 117,116,112,117,116, 40, 39, 32,116,111,108,117, 97, 95,101, 114,114,111,114, 40,116,111,108,117, 97, 95, 83, 44, 34, 35, 102,101,114,114,111,114, 32,105,110, 32,102,117,110, 99,116, 105,111,110, 32, 92, 39, 39, 46, 46,115,101,108,102, 46,108, 110, 97,109,101, 46, 46, 39, 92, 39, 46, 34, 44, 38,116,111, 108,117, 97, 95,101,114,114, 41, 59, 39, 41, 10, 9,111,117, 116,112,117,116, 40, 39, 32,114,101,116,117,114,110, 32, 48, 59, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 35,101, 110,100,105,102, 92,110, 39, 41, 10, 10, 10, 9,111,117,116, 112,117,116, 40, 39,125, 39, 41, 10, 9,111,117,116,112,117, 116, 40, 39, 35,101,110,100,105,102, 32, 47, 47, 35,105,102, 110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 92,110, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 92,110, 39, 41, 10,101,110,100, 10, 10, 45, 45, 32, 73,110,116,101,114,110, 97,108, 32, 99,111,110,115,116,114, 117, 99,116,111,114, 10,102,117,110, 99,116,105,111,110, 32, 95, 79,112,101,114, 97,116,111,114, 32, 40,116, 41, 10, 32, 115,101,116,109,101,116, 97,116, 97, 98,108,101, 40,116, 44, 99,108, 97,115,115, 79,112,101,114, 97,116,111,114, 41, 10, 10, 32,105,102, 32,116, 46, 99,111,110,115,116, 32,126, 61, 32, 39, 99,111,110,115,116, 39, 32, 97,110,100, 32,116, 46, 99,111,110,115,116, 32,126, 61, 32, 39, 39, 32,116,104,101, 110, 10, 32, 32,101,114,114,111,114, 40, 34, 35,105,110,118, 97,108,105,100, 32, 39, 99,111,110,115,116, 39, 32,115,112, 101, 99,105,102,105, 99, 97,116,105,111,110, 34, 41, 10, 32, 101,110,100, 10, 10, 32, 97,112,112,101,110,100, 40,116, 41, 10, 32,105,102, 32,110,111,116, 32,116, 58,105,110, 99,108, 97,115,115, 40, 41, 32,116,104,101,110, 10, 32, 32,101,114, 114,111,114, 40, 34, 35,111,112,101,114, 97,116,111,114, 32, 99, 97,110, 32,111,110,108,121, 32, 98,101, 32,100,101,102, 105,110,101,100, 32, 97,115, 32, 99,108, 97,115,115, 32,109, 101,109, 98,101,114, 34, 41, 10, 32,101,110,100, 10, 10, 32, 45, 45,116, 46,110, 97,109,101, 32, 61, 32,116, 46,110, 97, 109,101, 32, 46, 46, 32, 34, 95, 34, 32, 46, 46, 32, 40, 95, 84, 77, 91,116, 46,107,105,110,100, 93, 32,111,114, 32,116, 46,107,105,110,100, 41, 10, 32,116, 46, 99,110, 97,109,101, 32, 61, 32,116, 58, 99,102,117,110, 99,110, 97,109,101, 40, 34,116,111,108,117, 97, 34, 41, 46, 46,116, 58,111,118,101, 114,108,111, 97,100, 40,116, 41, 10, 32,116, 46,110, 97,109, 101, 32, 61, 32, 34,111,112,101,114, 97,116,111,114, 34, 32, 46, 46, 32,116, 46,107,105,110,100, 32, 32, 45, 45, 32,115, 101,116, 32, 97,112,112,114,111,112,114,105, 97,116,101, 32, 99, 97,108,108,105,110,103, 32,110, 97,109,101, 10, 32,114, 101,116,117,114,110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32, 67,111,110,115,116,114,117, 99,116,111,114, 10,102,117, 110, 99,116,105,111,110, 32, 79,112,101,114, 97,116,111,114, 32, 40,100, 44,107, 44, 97, 44, 99, 41, 10, 10, 9,108,111, 99, 97,108, 32,111,112, 95,107, 32, 61, 32,115,116,114,105, 110,103, 46,103,115,117, 98, 40,107, 44, 32, 34, 94, 37,115, 42, 34, 44, 32, 34, 34, 41, 10, 9,111,112, 95,107, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,107, 44, 32, 34, 37,115, 42, 36, 34, 44, 32, 34, 34, 41, 10, 9, 45, 45,105,102, 32,115,116,114,105,110,103, 46,102,105,110,100, 40,107, 44, 32, 34, 94, 91, 37,119, 95, 58, 37,100, 60, 62, 37, 42, 37, 38, 93, 43, 36, 34, 41, 32,116,104,101,110, 10, 9,105,102, 32,100, 32, 61, 61, 32, 34,111,112,101,114, 97, 116,111,114, 34, 32, 97,110,100, 32,107, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10, 10, 9, 9,100, 32, 61, 32,107, 46, 46, 34, 32,111,112,101,114, 97,116,111,114, 34, 10, 9, 101,108,115,101,105,102, 32,110,111,116, 32, 95, 84, 77, 91, 111,112, 95,107, 93, 32,116,104,101,110, 10, 10, 9, 9,105, 102, 32,102,108, 97,103,115, 91, 39, 87, 39, 93, 32,116,104, 101,110, 10, 9, 9, 9,101,114,114,111,114, 40, 34,116,111, 108,117, 97, 58, 32,110,111, 32,115,117,112,112,111,114,116, 32,102,111,114, 32,111,112,101,114, 97,116,111,114, 34, 32, 46, 46, 32,102, 46,107,105,110,100, 41, 10, 9, 9,101,108, 115,101, 10, 9, 9, 9,119, 97,114,110,105,110,103, 40, 34, 78,111, 32,115,117,112,112,111,114,116, 32,102,111,114, 32, 111,112,101,114, 97,116,111,114, 32, 34, 46, 46,111,112, 95, 107, 46, 46, 34, 44, 32,105,103,110,111,114,105,110,103, 34, 41, 10, 9, 9, 9,114,101,116,117,114,110, 32,110,105,108, 10, 9, 9,101,110,100, 10, 9,101,110,100, 10, 10, 9,108, 111, 99, 97,108, 32,114,101,102, 32, 61, 32, 39, 39, 10, 32, 108,111, 99, 97,108, 32,116, 32, 61, 32,115,112,108,105,116, 95, 99, 95,116,111,107,101,110,115, 40,115,116,114,115,117, 98, 40, 97, 44, 50, 44,115,116,114,108,101,110, 40, 97, 41, 45, 49, 41, 44, 39, 44, 39, 41, 32, 45, 45, 32,101,108,105, 109,105,110, 97,116,101, 32, 98,114, 97, 99,101,115, 10, 32, 108,111, 99, 97,108, 32,105, 61, 49, 10, 32,108,111, 99, 97, 108, 32,108, 32, 61, 32,123,110, 61, 48,125, 10, 32,119,104, 105,108,101, 32,116, 91,105, 93, 32,100,111, 10, 32, 32,108, 46,110, 32, 61, 32,108, 46,110, 43, 49, 10, 32, 32,108, 91, 108, 46,110, 93, 32, 61, 32, 68,101, 99,108, 97,114, 97,116, 105,111,110, 40,116, 91,105, 93, 44, 39,118, 97,114, 39, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32,105,102, 32,107, 32, 61, 61, 32, 39, 91, 93, 39, 32, 116,104,101,110, 10, 9, 32,108,111, 99, 97,108, 32, 95, 10, 9, 32, 95, 44, 32, 95, 44, 32,114,101,102, 32, 61, 32,115, 116,114,102,105,110,100, 40,100, 44, 39, 40, 38, 41, 39, 41, 10, 32, 32,100, 32, 61, 32,103,115,117, 98, 40,100, 44, 39, 38, 39, 44, 39, 39, 41, 10, 32,101,108,115,101,105,102, 32, 107, 61, 61, 39, 38, 91, 93, 39, 32,116,104,101,110, 10, 32, 32,108, 46,110, 32, 61, 32,108, 46,110, 43, 49, 10, 32, 32, 108, 91,108, 46,110, 93, 32, 61, 32, 68,101, 99,108, 97,114, 97,116,105,111,110, 40,100, 44, 39,118, 97,114, 39, 41, 10, 32, 32,108, 91,108, 46,110, 93, 46,110, 97,109,101, 32, 61, 32, 39,116,111,108,117, 97, 95,118, 97,108,117,101, 39, 10, 32,101,110,100, 10, 32,108,111, 99, 97,108, 32,102, 32, 61, 32, 68,101, 99,108, 97,114, 97,116,105,111,110, 40,100, 44, 39,102,117,110, 99, 39, 41, 10, 32,105,102, 32,107, 32, 61, 61, 32, 39, 91, 93, 39, 32, 97,110,100, 32, 40,108, 91, 49, 93, 61, 61,110,105,108, 32,111,114, 32,105,115, 98, 97,115, 105, 99, 40,108, 91, 49, 93, 46,116,121,112,101, 41,126, 61, 39,110,117,109, 98,101,114, 39, 41, 32,116,104,101,110, 10, 32, 32,101,114,114,111,114, 40, 39,111,112,101,114, 97,116, 111,114, 91, 93, 32, 99, 97,110, 32,111,110,108,121, 32, 98, 101, 32,100,101,102,105,110,101,100, 32,102,111,114, 32,110, 117,109,101,114,105, 99, 32,105,110,100,101,120, 46, 39, 41, 10, 32,101,110,100, 10, 32,102, 46, 97,114,103,115, 32, 61, 32,108, 10, 32,102, 46, 99,111,110,115,116, 32, 61, 32, 99, 10, 32,102, 46,107,105,110,100, 32, 61, 32,111,112, 95,107, 10, 32,102, 46,108,110, 97,109,101, 32, 61, 32, 34, 46, 34, 46, 46, 40, 95, 84, 77, 91,102, 46,107,105,110,100, 93, 32, 111,114, 32,102, 46,107,105,110,100, 41, 10, 32,105,102, 32, 110,111,116, 32, 95, 84, 77, 91,102, 46,107,105,110,100, 93, 32,116,104,101,110, 10, 32, 9,102, 46, 99, 97,115,116, 95, 111,112,101,114, 97,116,111,114, 32, 61, 32,116,114,117,101, 10, 32,101,110,100, 10, 32,105,102, 32,102, 46,107,105,110, 100, 32, 61, 61, 32, 39, 91, 93, 39, 32, 97,110,100, 32,114, 101,102, 61, 61, 39, 38, 39, 32, 97,110,100, 32,102, 46, 99, 111,110,115,116,126, 61, 39, 99,111,110,115,116, 39, 32,116, 104,101,110, 10, 32, 32, 79,112,101,114, 97,116,111,114, 40, 100, 44, 39, 38, 39, 46, 46,107, 44, 97, 44, 99, 41, 32, 9, 45, 45, 32, 99,114,101, 97,116,101, 32, 99,111,114,114,101, 115,112,111,100,105,110,103, 32,115,101,116, 32,111,112,101, 114, 97,116,111,114, 10, 32,101,110,100, 10, 32,114,101,116, 117,114,110, 32, 95, 79,112,101,114, 97,116,111,114, 40,102, 41, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/operator.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 10, 95,103,108,111, 98, 97,108, 95,116,101,109,112,108, 97, 116,101,115, 32, 61, 32,123,125, 10, 10, 99,108, 97,115,115, 84,101,109,112,108, 97,116,101, 67,108, 97,115,115, 32, 61, 32,123, 10, 10, 9,110, 97,109,101, 32, 61, 32, 39, 39, 44, 10, 9, 98,111,100,121, 32, 61, 32, 39, 39, 44, 10, 9,112, 97,114,101,110,116,115, 32, 61, 32,123,125, 44, 10, 9, 97, 114,103,115, 32, 61, 32,123,125, 44, 32, 45, 45, 32,116,104, 101, 32,116,101,109,112,108, 97,116,101, 32, 97,114,103,117, 109,101,110,116,115, 10,125, 10, 10, 99,108, 97,115,115, 84, 101,109,112,108, 97,116,101, 67,108, 97,115,115, 46, 95, 95, 105,110,100,101,120, 32, 61, 32, 99,108, 97,115,115, 84,101, 109,112,108, 97,116,101, 67,108, 97,115,115, 10, 10, 10,102, 117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 84,101, 109,112,108, 97,116,101, 67,108, 97,115,115, 58,116,104,114, 111,119, 40,116,121,112,101,115, 44, 32,108,111, 99, 97,108, 95,115, 99,111,112,101, 41, 10, 10, 9, 45, 45,105,102, 32, 116, 97, 98,108,101, 46,103,101,116,110, 40,116,121,112,101, 115, 41, 32,126, 61, 32,116, 97, 98,108,101, 46,103,101,116, 110, 40,115,101,108,102, 46, 97,114,103,115, 41, 32,116,104, 101,110, 10, 9, 45, 45, 9,101,114,114,111,114, 40, 34, 35, 105,110,118, 97,108,105,100, 32,112, 97,114, 97,109,101,116, 101,114, 32, 99,111,117,110,116, 34, 41, 10, 9, 45, 45,101, 110,100, 10, 10, 9, 45, 45, 32,114,101,112,108, 97, 99,101, 10, 9,102,111,114, 32,105, 32, 61, 49, 32, 44, 32,116,121, 112,101,115, 46,110, 32,100,111, 10, 10, 9, 9,108,111, 99, 97,108, 32, 73,108, 32, 61, 32,115,112,108,105,116, 95, 99, 95,116,111,107,101,110,115, 40,116,121,112,101,115, 91,105, 93, 44, 32, 34, 32, 34, 41, 10, 9, 9,105,102, 32,116, 97, 98,108,101, 46,103,101,116,110, 40, 73,108, 41, 32,126, 61, 32,116, 97, 98,108,101, 46,103,101,116,110, 40,115,101,108, 102, 46, 97,114,103,115, 41, 32,116,104,101,110, 10, 9, 9, 9,101,114,114,111,114, 40, 34, 35,105,110,118, 97,108,105, 100, 32,112, 97,114, 97,109,101,116,101,114, 32, 99,111,117, 110,116, 32,102,111,114, 32, 34, 46, 46,116,121,112,101,115, 91,105, 93, 41, 10, 9, 9,101,110,100, 10, 9, 9,108,111, 99, 97,108, 32, 98, 73, 32, 61, 32,115,101,108,102, 46, 98, 111,100,121, 10, 9, 9,108,111, 99, 97,108, 32,112, 73, 32, 61, 32,123,125, 10, 9, 9,102,111,114, 32,106, 32, 61, 32, 49, 44,115,101,108,102, 46, 97,114,103,115, 46,110, 32,100, 111, 10, 9, 9, 9, 45, 45, 84,108, 91,106, 93, 32, 61, 32, 102,105,110,100,116,121,112,101, 40, 84,108, 91,106, 93, 41, 32,111,114, 32, 84,108, 91,106, 93, 10, 9, 9, 9, 98, 73, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40, 98, 73, 44, 32, 34, 40, 91, 94, 95, 37,119, 93, 41, 34, 46, 46,115,101,108,102, 46, 97,114,103,115, 91,106, 93, 46, 46, 34, 40, 91, 94, 95, 37,119, 93, 41, 34, 44, 32, 34, 37, 49, 34, 46, 46, 73,108, 91,106, 93, 46, 46, 34, 37, 50, 34, 41, 10, 9, 9, 9,105,102, 32,115,101,108,102, 46,112, 97,114, 101,110,116,115, 32,116,104,101,110, 10, 9, 9, 9, 9,102, 111,114, 32,105, 61, 49, 44,116, 97, 98,108,101, 46,103,101, 116,110, 40,115,101,108,102, 46,112, 97,114,101,110,116,115, 41, 32,100,111, 10, 9, 9, 9, 9, 9,112, 73, 91,105, 93, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40, 115,101,108,102, 46,112, 97,114,101,110,116,115, 91,105, 93, 44, 32, 34, 40, 91, 94, 95, 37,119, 93, 63, 41, 34, 46, 46, 115,101,108,102, 46, 97,114,103,115, 91,106, 93, 46, 46, 34, 40, 91, 94, 95, 37,119, 93, 63, 41, 34, 44, 32, 34, 37, 49, 34, 46, 46, 73,108, 91,106, 93, 46, 46, 34, 37, 50, 34, 41, 10, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9,101,110,100, 10, 9, 9,101,110,100, 10, 9, 9, 45, 45,108,111, 99, 97, 108, 32, 97,112,112,101,110,100, 32, 61, 32, 34, 60, 34, 46, 46,115,116,114,105,110,103, 46,103,115,117, 98, 40,116,121, 112,101,115, 91,105, 93, 44, 32, 34, 37,115, 43, 34, 44, 32, 34, 44, 34, 41, 46, 46, 34, 62, 34, 10, 9, 9,108,111, 99, 97,108, 32, 97,112,112,101,110,100, 32, 61, 32, 34, 60, 34, 46, 46, 99,111,110, 99, 97,116, 40, 73,108, 44, 32, 49, 44, 32,116, 97, 98,108,101, 46,103,101,116,110, 40, 73,108, 41, 44, 32, 34, 44, 34, 41, 46, 46, 34, 62, 34, 10, 9, 9, 97, 112,112,101,110,100, 32, 61, 32,115,116,114,105,110,103, 46, 103,115,117, 98, 40, 97,112,112,101,110,100, 44, 32, 34, 37, 115, 42, 44, 37,115, 42, 34, 44, 32, 34, 44, 34, 41, 10, 9, 9, 97,112,112,101,110,100, 32, 61, 32,115,116,114,105,110, 103, 46,103,115,117, 98, 40, 97,112,112,101,110,100, 44, 32, 34, 62, 62, 34, 44, 32, 34, 62, 32, 62, 34, 41, 10, 9, 9, 102,111,114, 32,105, 61, 49, 44,116, 97, 98,108,101, 46,103, 101,116,110, 40,112, 73, 41, 32,100,111, 10, 9, 9, 9, 45, 45,112, 73, 91,105, 93, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,112, 73, 91,105, 93, 44, 32, 34, 62, 62, 34, 44, 32, 34, 62, 32, 62, 34, 41, 10, 9, 9, 9,112, 73, 91,105, 93, 32, 61, 32,114,101,115,111,108,118,101, 95, 116,101,109,112,108, 97,116,101, 95,116,121,112,101,115, 40, 112, 73, 91,105, 93, 41, 10, 9, 9,101,110,100, 10, 9, 9, 98, 73, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40, 98, 73, 44, 32, 34, 62, 62, 34, 44, 32, 34, 62, 32, 62, 34, 41, 10, 9, 9,108,111, 99, 97,108, 32,110, 32, 61, 32,115,101,108,102, 46,110, 97,109,101, 10, 9, 9,105,102, 32,108,111, 99, 97,108, 95,115, 99,111,112,101, 32,116,104, 101,110, 10, 9, 9, 9,110, 32, 61, 32,115,101,108,102, 46, 108,111, 99, 97,108, 95,110, 97,109,101, 10, 9, 9,101,110, 100, 10, 10, 9, 9, 67,108, 97,115,115, 40,110, 46, 46, 97, 112,112,101,110,100, 44, 32,112, 73, 44, 32, 98, 73, 41, 10, 9,101,110,100, 10,101,110,100, 10, 10, 10,102,117,110, 99, 116,105,111,110, 32, 84,101,109,112,108, 97,116,101, 67,108, 97,115,115, 40,110, 97,109,101, 44, 32,112, 97,114,101,110, 116,115, 44, 32, 98,111,100,121, 44, 32,112, 97,114, 97,109, 101,116,101,114,115, 41, 10, 10, 9,108,111, 99, 97,108, 32, 111, 32, 61, 32,123, 10, 9, 10, 9, 9,112, 97,114,101,110, 116,115, 32, 61, 32,112, 97,114,101,110,116,115, 44, 10, 9, 9, 98,111,100,121, 32, 61, 32, 98,111,100,121, 44, 10, 9, 9, 97,114,103,115, 32, 61, 32,112, 97,114, 97,109,101,116, 101,114,115, 44, 10, 9,125, 10, 9, 10, 9,108,111, 99, 97, 108, 32,111,110, 97,109,101, 32, 61, 32,115,116,114,105,110, 103, 46,103,115,117, 98, 40,110, 97,109,101, 44, 32, 34, 64, 46, 42, 36, 34, 44, 32, 34, 34, 41, 10, 9,111,110, 97,109, 101, 32, 61, 32,103,101,116,110, 97,109,101,115,112, 97, 99, 101, 40, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101, 114, 46, 99,117,114,114, 41, 46, 46,111,110, 97,109,101, 10, 9,111, 46,110, 97,109,101, 32, 61, 32,111,110, 97,109,101, 10, 10, 9,111, 46,108,111, 99, 97,108, 95,110, 97,109,101, 32, 61, 32,110, 97,109,101, 10, 9, 10, 9,115,101,116,109, 101,116, 97,116, 97, 98,108,101, 40,111, 44, 32, 99,108, 97, 115,115, 84,101,109,112,108, 97,116,101, 67,108, 97,115,115, 41, 10, 10, 9,105,102, 32, 95,103,108,111, 98, 97,108, 95, 116,101,109,112,108, 97,116,101,115, 91,111,110, 97,109,101, 93, 32,116,104,101,110, 10, 9, 9,119, 97,114,110,105,110, 103, 40, 34, 68,117,112,108,105, 99, 97,116,101, 32,100,101, 99,108, 97,114, 97,116,105,111,110, 32,111,102, 32,116,101, 109,112,108, 97,116,101, 32, 34, 46, 46,111,110, 97,109,101, 41, 10, 9,101,108,115,101, 10, 9, 9, 95,103,108,111, 98, 97,108, 95,116,101,109,112,108, 97,116,101,115, 91,111,110, 97,109,101, 93, 32, 61, 32,111, 10, 9,101,110,100, 10, 10, 9,114,101,116,117,114,110, 32,111, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/template_class.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32, 99,108, 97,115,115, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114,105,116,116, 101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97, 102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117, 108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73,100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111,100,101, 32,105,115, 32,102,114,101,101, 32,115,111,102,116,119, 97, 114,101, 59, 32,121,111,117, 32, 99, 97,110, 32,114,101,100, 105,115,116,114,105, 98,117,116,101, 32,105,116, 32, 97,110, 100, 47,111,114, 32,109,111,100,105,102,121, 32,105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116,119, 97,114, 101, 32,112,114,111,118,105,100,101,100, 32,104,101,114,101, 117,110,100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97,117,116,104, 111,114, 32,104, 97,115, 32,110,111, 32,111, 98,108,105,103, 97,116,105,111,110, 32,116,111, 32,112,114,111,118,105,100, 101, 32,109, 97,105,110,116,101,110, 97,110, 99,101, 44, 32, 115,117,112,112,111,114,116, 44, 32,117,112,100, 97,116,101, 115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,101,109,101, 110,116,115, 44, 32,111,114, 32,109,111,100,105,102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 45, 45, 32, 67,108, 97,115,115, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101, 112,114,101,115,101,110,116,115, 32, 97, 32, 99,108, 97,115, 115, 32,100,101,102,105,110,105,116,105,111,110, 46, 10, 45, 45, 32, 83,116,111,114,101,115, 32,116,104,101, 32,102,111, 108,108,111,119,105,110,103, 32,102,105,101,108,100,115, 58, 10, 45, 45, 32, 32, 32, 32,110, 97,109,101, 32, 61, 32, 99, 108, 97,115,115, 32,110, 97,109,101, 10, 45, 45, 32, 32, 32, 32, 98, 97,115,101, 32, 61, 32, 99,108, 97,115,115, 32, 98, 97,115,101, 44, 32,105,102, 32, 97,110,121, 32, 40,111,110, 108,121, 32,115,105,110,103,108,101, 32,105,110,104,101,114, 105,116, 97,110, 99,101, 32,105,115, 32,115,117,112,112,111, 114,116,101,100, 41, 10, 45, 45, 32, 32, 32, 32,123,105,125, 32, 32, 61, 32,108,105,115,116, 32,111,102, 32,109,101,109, 98,101,114,115, 10, 99,108, 97,115,115, 67,108, 97,115,115, 32, 61, 32,123, 10, 32, 99,108, 97,115,115,116,121,112,101, 32, 61, 32, 39, 99,108, 97,115,115, 39, 44, 10, 32,110, 97, 109,101, 32, 61, 32, 39, 39, 44, 10, 32, 98, 97,115,101, 32, 61, 32, 39, 39, 44, 10, 32,116,121,112,101, 32, 61, 32, 39, 39, 44, 10, 32, 98,116,121,112,101, 32, 61, 32, 39, 39, 44, 10, 32, 99,116,121,112,101, 32, 61, 32, 39, 39, 44, 10,125, 10, 99,108, 97,115,115, 67,108, 97,115,115, 46, 95, 95,105, 110,100,101,120, 32, 61, 32, 99,108, 97,115,115, 67,108, 97, 115,115, 10,115,101,116,109,101,116, 97,116, 97, 98,108,101, 40, 99,108, 97,115,115, 67,108, 97,115,115, 44, 99,108, 97, 115,115, 67,111,110,116, 97,105,110,101,114, 41, 10, 10, 10, 45, 45, 32,114,101,103,105,115,116,101,114, 32, 99,108, 97, 115,115, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97, 115,115, 67,108, 97,115,115, 58,114,101,103,105,115,116,101, 114, 32, 40,112,114,101, 41, 10, 10, 9,105,102, 32,110,111, 116, 32,115,101,108,102, 58, 99,104,101, 99,107, 95,112,117, 98,108,105, 99, 95, 97, 99, 99,101,115,115, 40, 41, 32,116, 104,101,110, 10, 9, 9,114,101,116,117,114,110, 10, 9,101, 110,100, 10, 10, 32,112,114,101, 32, 61, 32,112,114,101, 32, 111,114, 32, 39, 39, 10, 32,112,117,115,104, 40,115,101,108, 102, 41, 10, 9,105,102, 32, 95, 99,111,108,108,101, 99,116, 91,115,101,108,102, 46,116,121,112,101, 93, 32,116,104,101, 110, 10, 9, 9,111,117,116,112,117,116, 40,112,114,101, 44, 39, 35,105,102,100,101,102, 32, 95, 95, 99,112,108,117,115, 112,108,117,115, 92,110, 39, 41, 10, 32, 32,111,117,116,112, 117,116, 40,112,114,101, 46, 46, 39,116,111,108,117, 97, 95, 99, 99,108, 97,115,115, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101,108,102, 46,108,110, 97,109,101, 46, 46, 39, 34, 44, 34, 39, 46, 46,115,101,108,102, 46,116,121, 112,101, 46, 46, 39, 34, 44, 34, 39, 46, 46,115,101,108,102, 46, 98,116,121,112,101, 46, 46, 39, 34, 44, 39, 46, 46, 95, 99,111,108,108,101, 99,116, 91,115,101,108,102, 46,116,121, 112,101, 93, 46, 46, 39, 41, 59, 39, 41, 10, 9, 9,111,117, 116,112,117,116, 40,112,114,101, 44, 39, 35,101,108,115,101, 92,110, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40,112, 114,101, 46, 46, 39,116,111,108,117, 97, 95, 99, 99,108, 97, 115,115, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46, 115,101,108,102, 46,108,110, 97,109,101, 46, 46, 39, 34, 44, 34, 39, 46, 46,115,101,108,102, 46,116,121,112,101, 46, 46, 39, 34, 44, 34, 39, 46, 46,115,101,108,102, 46, 98,116,121, 112,101, 46, 46, 39, 34, 44, 78, 85, 76, 76, 41, 59, 39, 41, 10, 9, 9,111,117,116,112,117,116, 40,112,114,101, 44, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10, 9,101,108,115, 101, 10, 32, 32,111,117,116,112,117,116, 40,112,114,101, 46, 46, 39,116,111,108,117, 97, 95, 99, 99,108, 97,115,115, 40, 116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101,108, 102, 46,108,110, 97,109,101, 46, 46, 39, 34, 44, 34, 39, 46, 46,115,101,108,102, 46,116,121,112,101, 46, 46, 39, 34, 44, 34, 39, 46, 46,115,101,108,102, 46, 98,116,121,112,101, 46, 46, 39, 34, 44, 78, 85, 76, 76, 41, 59, 39, 41, 10, 9,101, 110,100, 10, 9,105,102, 32,115,101,108,102, 46,101,120,116, 114, 97, 95, 98, 97,115,101,115, 32,116,104,101,110, 10, 9, 9,102,111,114, 32,107, 44, 98, 97,115,101, 32,105,110, 32, 105,112, 97,105,114,115, 40,115,101,108,102, 46,101,120,116, 114, 97, 95, 98, 97,115,101,115, 41, 32,100,111, 10, 9, 9, 9, 45, 45, 32,110,111,116, 32,110,111,119, 10, 32, 32, 32, 45, 45,111,117,116,112,117,116, 40,112,114,101, 46, 46, 39, 32,116,111,108,117, 97, 95, 97,100,100, 98, 97,115,101, 40, 116,111,108,117, 97, 95, 83, 44, 32, 34, 39, 46, 46,115,101, 108,102, 46,116,121,112,101, 46, 46, 39, 34, 44, 32, 34, 39, 46, 46, 98, 97,115,101, 46, 46, 39, 34, 41, 59, 39, 41, 10, 9, 9,101,110,100, 10, 9,101,110,100, 10, 32,111,117,116, 112,117,116, 40,112,114,101, 46, 46, 39,116,111,108,117, 97, 95, 98,101,103,105,110,109,111,100,117,108,101, 40,116,111, 108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101,108,102, 46, 108,110, 97,109,101, 46, 46, 39, 34, 41, 59, 39, 41, 10, 32, 108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105,108, 101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10, 32, 32, 115,101,108,102, 91,105, 93, 58,114,101,103,105,115,116,101, 114, 40,112,114,101, 46, 46, 39, 32, 39, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32,111,117, 116,112,117,116, 40,112,114,101, 46, 46, 39,116,111,108,117, 97, 95,101,110,100,109,111,100,117,108,101, 40,116,111,108, 117, 97, 95, 83, 41, 59, 39, 41, 10, 9,112,111,112, 40, 41, 10,101,110,100, 10, 10, 45, 45, 32,114,101,116,117,114,110, 32, 99,111,108,108,101, 99,116,105,111,110, 32,114,101,113, 117,105,114,101,109,101,110,116, 10,102,117,110, 99,116,105, 111,110, 32, 99,108, 97,115,115, 67,108, 97,115,115, 58,114, 101,113,117,105,114,101, 99,111,108,108,101, 99,116,105,111, 110, 32, 40,116, 41, 10, 9,105,102, 32,115,101,108,102, 46, 102,108, 97,103,115, 46,112,114,111,116,101, 99,116,101,100, 95,100,101,115,116,114,117, 99,116,111,114, 32,111,114, 32, 40,110,111,116, 32,115,101,108,102, 58, 99,104,101, 99,107, 95,112,117, 98,108,105, 99, 95, 97, 99, 99,101,115,115, 40, 41, 41, 32,116,104,101,110, 10, 9, 9,114,101,116,117,114, 110, 32,102, 97,108,115,101, 10, 9,101,110,100, 10, 32,112, 117,115,104, 40,115,101,108,102, 41, 10, 9,108,111, 99, 97, 108, 32,114, 32, 61, 32,102, 97,108,115,101, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105,108,101, 32, 115,101,108,102, 91,105, 93, 32,100,111, 10, 32, 32,114, 32, 61, 32,115,101,108,102, 91,105, 93, 58,114,101,113,117,105, 114,101, 99,111,108,108,101, 99,116,105,111,110, 40,116, 41, 32,111,114, 32,114, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 9,112,111,112, 40, 41, 10, 9, 45, 45, 32,111,110,108,121, 32, 99,108, 97,115,115, 32,116,104, 97,116, 32,101,120,112,111,114,116,115, 32,100,101,115,116, 114,117, 99,116,111,114, 32, 99, 97,110, 32, 98,101, 32, 97, 112,112,114,111,112,114,105, 97,116,101,108,121, 32, 99,111, 108,108,101, 99,116,101,100, 10, 9, 45, 45, 32, 99,108, 97, 115,115,101,115, 32,116,104, 97,116, 32,101,120,112,111,114, 116, 32, 99,111,110,115,116,114,117, 99,116,111,114,115, 32, 110,101,101,100, 32,116,111, 32,104, 97,118,101, 32, 97, 32, 99,111,108,108,101, 99,116,111,114, 32, 40,111,118,101,114, 114,105,100,101,100, 32, 98,121, 32, 45, 68, 32,102,108, 97, 103, 32,111,110, 32, 99,111,109,109, 97,110,100, 32,108,105, 110,101, 41, 10, 9,105,102, 32,115,101,108,102, 46, 95,100, 101,108,101,116,101, 32,111,114, 32, 40, 40,110,111,116, 32, 102,108, 97,103,115, 91, 39, 68, 39, 93, 41, 32, 97,110,100, 32,115,101,108,102, 46, 95,110,101,119, 41, 32,116,104,101, 110, 10, 9, 9, 45, 45,116, 91,115,101,108,102, 46,116,121, 112,101, 93, 32, 61, 32, 34,116,111,108,117, 97, 95, 99,111, 108,108,101, 99,116, 95, 34, 32, 46, 46, 32,103,115,117, 98, 40,115,101,108,102, 46,116,121,112,101, 44, 34, 58, 58, 34, 44, 34, 95, 34, 41, 10, 9, 9,116, 91,115,101,108,102, 46, 116,121,112,101, 93, 32, 61, 32, 34,116,111,108,117, 97, 95, 99,111,108,108,101, 99,116, 95, 34, 32, 46, 46, 32, 99,108, 101, 97,110, 95,116,101,109,112,108, 97,116,101, 40,115,101, 108,102, 46,116,121,112,101, 41, 10, 9, 9,114, 32, 61, 32, 116,114,117,101, 10, 9,101,110,100, 10, 32,114,101,116,117, 114,110, 32,114, 10,101,110,100, 10, 10, 45, 45, 32,111,117, 116,112,117,116, 32,116, 97,103,115, 10,102,117,110, 99,116, 105,111,110, 32, 99,108, 97,115,115, 67,108, 97,115,115, 58, 100,101, 99,108,116,121,112,101, 32, 40, 41, 10, 32,112,117, 115,104, 40,115,101,108,102, 41, 10, 9,115,101,108,102, 46, 116,121,112,101, 32, 61, 32,114,101,103,116,121,112,101, 40, 115,101,108,102, 46,111,114,105,103,105,110, 97,108, 95,110, 97,109,101, 32,111,114, 32,115,101,108,102, 46,110, 97,109, 101, 41, 10, 9,115,101,108,102, 46, 98,116,121,112,101, 32, 61, 32,116,121,112,101,118, 97,114, 40,115,101,108,102, 46, 98, 97,115,101, 41, 10, 9,115,101,108,102, 46, 99,116,121, 112,101, 32, 61, 32, 39, 99,111,110,115,116, 32, 39, 46, 46, 115,101,108,102, 46,116,121,112,101, 10, 9,105,102, 32,115, 101,108,102, 46,101,120,116,114, 97, 95, 98, 97,115,101,115, 32,116,104,101,110, 10, 9, 9,102,111,114, 32,105, 61, 49, 44,116, 97, 98,108,101, 46,103,101,116,110, 40,115,101,108, 102, 46,101,120,116,114, 97, 95, 98, 97,115,101,115, 41, 32, 100,111, 10, 9, 9, 9,115,101,108,102, 46,101,120,116,114, 97, 95, 98, 97,115,101,115, 91,105, 93, 32, 61, 32,116,121, 112,101,118, 97,114, 40,115,101,108,102, 46,101,120,116,114, 97, 95, 98, 97,115,101,115, 91,105, 93, 41, 10, 9, 9,101, 110,100, 10, 9,101,110,100, 10, 32,108,111, 99, 97,108, 32, 105, 61, 49, 10, 32,119,104,105,108,101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10, 32, 32,115,101,108,102, 91,105, 93, 58,100,101, 99,108,116,121,112,101, 40, 41, 10, 32, 32, 105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 9,112, 111,112, 40, 41, 10,101,110,100, 10, 10, 10, 45, 45, 32, 80, 114,105,110,116, 32,109,101,116,104,111,100, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67,108, 97,115, 115, 58,112,114,105,110,116, 32, 40,105,100,101,110,116, 44, 99,108,111,115,101, 41, 10, 32,112,114,105,110,116, 40,105, 100,101,110,116, 46, 46, 34, 67,108, 97,115,115,123, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101, 108,102, 46,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 98, 97,115,101, 32, 61, 32, 39, 34, 46, 46,115,101,108, 102, 46, 98, 97,115,101, 46, 46, 34, 39, 59, 34, 41, 10, 32, 112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 108,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101,108, 102, 46,108,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,116,121,112,101, 32, 61, 32, 39, 34, 46, 46,115,101,108, 102, 46,116,121,112,101, 46, 46, 34, 39, 44, 34, 41, 10, 32, 112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 98,116,121,112,101, 32, 61, 32, 39, 34, 46, 46,115,101,108, 102, 46, 98,116,121,112,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 99,116,121,112,101, 32, 61, 32, 39, 34, 46, 46,115,101, 108,102, 46, 99,116,121,112,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104, 105,108,101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10, 32, 32,115,101,108,102, 91,105, 93, 58,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 34, 44, 34, 44, 34, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110, 100, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34,125, 34, 46, 46, 99,108,111,115,101, 41, 10,101,110, 100, 10, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97, 115,115, 67,108, 97,115,115, 58,115,101,116, 95,112,114,111, 116,101, 99,116,101,100, 95,100,101,115,116,114,117, 99,116, 111,114, 40,112, 41, 10, 9,115,101,108,102, 46,102,108, 97, 103,115, 46,112,114,111,116,101, 99,116,101,100, 95,100,101, 115,116,114,117, 99,116,111,114, 32, 61, 32,115,101,108,102, 46,102,108, 97,103,115, 46,112,114,111,116,101, 99,116,101, 100, 95,100,101,115,116,114,117, 99,116,111,114, 32,111,114, 32,112, 10,101,110,100, 10, 10, 45, 45, 32, 73,110,116,101, 114,110, 97,108, 32, 99,111,110,115,116,114,117, 99,116,111, 114, 10,102,117,110, 99,116,105,111,110, 32, 95, 67,108, 97, 115,115, 32, 40,116, 41, 10, 32,115,101,116,109,101,116, 97, 116, 97, 98,108,101, 40,116, 44, 99,108, 97,115,115, 67,108, 97,115,115, 41, 10, 32,116, 58, 98,117,105,108,100,110, 97, 109,101,115, 40, 41, 10, 32, 97,112,112,101,110,100, 40,116, 41, 10, 32,114,101,116,117,114,110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32, 67,111,110,115,116,114,117, 99,116,111, 114, 10, 45, 45, 32, 69,120,112,101, 99,116,115, 32,116,104, 101, 32,110, 97,109,101, 44, 32,116,104,101, 32, 98, 97,115, 101, 32, 40, 97,114,114, 97,121, 41, 32, 97,110,100, 32,116, 104,101, 32, 98,111,100,121, 32,111,102, 32,116,104,101, 32, 99,108, 97,115,115, 46, 10,102,117,110, 99,116,105,111,110, 32, 67,108, 97,115,115, 32, 40,110, 44,112, 44, 98, 41, 10, 10, 9,105,102, 32,116, 97, 98,108,101, 46,103,101,116,110, 40,112, 41, 32, 62, 32, 49, 32,116,104,101,110, 10, 9, 9, 98, 32, 61, 32,115,116,114,105,110,103, 46,115,117, 98, 40, 98, 44, 32, 49, 44, 32, 45, 50, 41, 10, 9, 9,102,111,114, 32,105, 61, 50, 44,116, 97, 98,108,101, 46,103,101,116,110, 40,112, 41, 44, 49, 32,100,111, 10, 9, 9, 9, 98, 32, 61, 32, 98, 46, 46, 34, 92,110, 32,116,111,108,117, 97, 95,105, 110,104,101,114,105,116,115, 32, 34, 46, 46,112, 91,105, 93, 46, 46, 34, 32, 95, 95, 34, 46, 46,112, 91,105, 93, 46, 46, 34, 95, 95, 59, 92,110, 34, 10, 9, 9,101,110,100, 10, 9, 9, 98, 32, 61, 32, 98, 46, 46, 34, 92,110,125, 34, 10, 9, 101,110,100, 10, 10, 9, 45, 45, 32, 99,104,101, 99,107, 32, 102,111,114, 32,116,101,109,112,108, 97,116,101, 10, 9, 98, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40, 98, 44, 32, 34, 94,123, 37,115, 42, 84, 69, 77, 80, 76, 65, 84, 69, 95, 66, 73, 78, 68, 34, 44, 32, 34,123, 92,110, 84, 79, 76, 85, 65, 95, 84, 69, 77, 80, 76, 65, 84, 69, 95, 66, 73, 78, 68, 34, 41, 10, 9,108,111, 99, 97,108, 32,116, 44, 95, 44, 84, 44, 73, 32, 61, 32,115,116,114,105,110,103, 46, 102,105,110,100, 40, 98, 44, 32, 39, 94,123, 37,115, 42, 84, 79, 76, 85, 65, 95, 84, 69, 77, 80, 76, 65, 84, 69, 95, 66, 73, 78, 68, 37,115, 42, 37, 40, 43, 37,115, 42, 92, 34, 63, 40, 91, 94, 92, 34, 44, 93, 42, 41, 92, 34, 63, 37,115, 42, 44, 37,115, 42, 40, 91, 94, 37, 41, 93, 42, 41, 37,115, 42, 37, 41, 43, 39, 41, 10, 9,105,102, 32,116, 32,116,104,101, 110, 10, 10, 9, 9, 45, 45, 32,114,101,109,111,118,101, 32, 113,117,111,116,101,115, 10, 9, 9, 73, 32, 61, 32,115,116, 114,105,110,103, 46,103,115,117, 98, 40, 73, 44, 32, 34, 92, 34, 34, 44, 32, 34, 34, 41, 10, 9, 9, 84, 32, 61, 32,115, 116,114,105,110,103, 46,103,115,117, 98, 40, 84, 44, 32, 34, 92, 34, 34, 44, 32, 34, 34, 41, 10, 9, 9, 45, 45, 32,103, 101,116, 32,116,121,112,101, 32,108,105,115,116, 10, 9, 9, 108,111, 99, 97,108, 32,116,121,112,101,115, 32, 61, 32,115, 112,108,105,116, 95, 99, 95,116,111,107,101,110,115, 40, 73, 44, 32, 34, 44, 34, 41, 10, 9, 9, 45, 45, 32,114,101,109, 111,118,101, 32, 84, 69, 77, 80, 76, 65, 84, 69, 95, 66, 73, 78, 68, 32,108,105,110,101, 10, 9, 9,108,111, 99, 97,108, 32, 98,115, 32, 61, 32,115,116,114,105,110,103, 46,103,115, 117, 98, 40, 98, 44, 32, 34, 94,123, 37,115, 42, 84, 79, 76, 85, 65, 95, 84, 69, 77, 80, 76, 65, 84, 69, 95, 66, 73, 78, 68, 91, 94, 92,110, 93, 42, 92,110, 34, 44, 32, 34,123, 92, 110, 34, 41, 10, 9, 9, 9, 10, 9, 9,108,111, 99, 97,108, 32, 84,108, 32, 61, 32,115,112,108,105,116, 40, 84, 44, 32, 34, 32, 34, 41, 10, 9, 9,108,111, 99, 97,108, 32,116, 99, 32, 61, 32, 84,101,109,112,108, 97,116,101, 67,108, 97,115, 115, 40,110, 44, 32,112, 44, 32, 98,115, 44, 32, 84,108, 41, 10, 10, 9, 9, 10, 9, 9,116, 99, 58,116,104,114,111,119, 40,116,121,112,101,115, 44, 32,116,114,117,101, 41, 10, 9, 9, 45, 45,102,111,114, 32,105, 61, 49, 44,116,121,112,101, 115, 46,110, 32,100,111, 10, 9, 9, 45, 45, 9,116, 99, 58, 116,104,114,111,119, 40,115,112,108,105,116, 95, 99, 95,116, 111,107,101,110,115, 40,116,121,112,101,115, 91,105, 93, 44, 32, 34, 32, 34, 41, 44, 32,116,114,117,101, 41, 10, 9, 9, 45, 45,101,110,100, 10, 9, 9,114,101,116,117,114,110, 10, 9,101,110,100, 10, 9, 10, 9,108,111, 99, 97,108, 32,109, 98, 97,115,101, 10, 10, 9,105,102, 32,112, 32,116,104,101, 110, 10, 9, 9,109, 98, 97,115,101, 32, 61, 32,116, 97, 98, 108,101, 46,114,101,109,111,118,101, 40,112, 44, 32, 49, 41, 10, 9, 9,105,102, 32,110,111,116, 32,112, 91, 49, 93, 32, 116,104,101,110, 32,112, 32, 61, 32,110,105,108, 32,101,110, 100, 10, 9,101,110,100, 10, 10, 9,109, 98, 97,115,101, 32, 61, 32,109, 98, 97,115,101, 32, 97,110,100, 32,114,101,115, 111,108,118,101, 95,116,101,109,112,108, 97,116,101, 95,116, 121,112,101,115, 40,109, 98, 97,115,101, 41, 10, 10, 9,108, 111, 99, 97,108, 32, 99, 10, 9,108,111, 99, 97,108, 32,111, 110, 97,109,101, 32, 61, 32,115,116,114,105,110,103, 46,103, 115,117, 98, 40,110, 44, 32, 34, 64, 46, 42, 36, 34, 44, 32, 34, 34, 41, 10, 9,111,110, 97,109,101, 32, 61, 32,103,101, 116,110, 97,109,101,115,112, 97, 99,101, 40, 99,108, 97,115, 115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 41, 46, 46,111,110, 97,109,101, 10, 10, 9,105,102, 32, 95, 103,108,111, 98, 97,108, 95, 99,108, 97,115,115,101,115, 91, 111,110, 97,109,101, 93, 32,116,104,101,110, 10, 9, 9, 99, 32, 61, 32, 95,103,108,111, 98, 97,108, 95, 99,108, 97,115, 115,101,115, 91,111,110, 97,109,101, 93, 10, 9, 9,105,102, 32,109, 98, 97,115,101, 32, 97,110,100, 32, 40, 40,110,111, 116, 32, 99, 46, 98, 97,115,101, 41, 32,111,114, 32, 99, 46, 98, 97,115,101, 32, 61, 61, 32, 34, 34, 41, 32,116,104,101, 110, 10, 9, 9, 9, 99, 46, 98, 97,115,101, 32, 61, 32,109, 98, 97,115,101, 10, 9, 9,101,110,100, 10, 9,101,108,115, 101, 10, 9, 9, 99, 32, 61, 32, 95, 67,108, 97,115,115, 40, 95, 67,111,110,116, 97,105,110,101,114,123,110, 97,109,101, 61,110, 44, 32, 98, 97,115,101, 61,109, 98, 97,115,101, 44, 32,101,120,116,114, 97, 95, 98, 97,115,101,115, 61,112,125, 41, 10, 10, 9, 9,108,111, 99, 97,108, 32,102,116, 32, 61, 32,103,101,116,110, 97,109,101,115,112, 97, 99,101, 40, 99, 46,112, 97,114,101,110,116, 41, 46, 46, 99, 46,111,114,105, 103,105,110, 97,108, 95,110, 97,109,101, 10, 9, 9, 97,112, 112,101,110,100, 95,103,108,111, 98, 97,108, 95,116,121,112, 101, 40,102,116, 44, 32, 99, 41, 10, 9,101,110,100, 10, 10, 9,112,117,115,104, 40, 99, 41, 10, 9, 99, 58,112, 97,114, 115,101, 40,115,116,114,115,117, 98, 40, 98, 44, 50, 44,115, 116,114,108,101,110, 40, 98, 41, 45, 49, 41, 41, 32, 45, 45, 32,101,108,105,109,105,110, 97,116,101, 32, 98,114, 97, 99, 101,115, 10, 9,112,111,112, 40, 41, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/class.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,109, 97,114,107, 32,117,112, 32, 99,111,109,109, 101,110,116,115, 32, 97,110,100, 32,115,116,114,105,110,103, 115, 10, 83, 84, 82, 49, 32, 61, 32, 34, 92, 48, 48, 49, 34, 10, 83, 84, 82, 50, 32, 61, 32, 34, 92, 48, 48, 50, 34, 10, 83, 84, 82, 51, 32, 61, 32, 34, 92, 48, 48, 51, 34, 10, 83, 84, 82, 52, 32, 61, 32, 34, 92, 48, 48, 52, 34, 10, 82, 69, 77, 32, 32, 61, 32, 34, 92, 48, 48, 53, 34, 10, 65, 78, 89, 32, 32, 61, 32, 34, 40, 91, 92, 48, 48, 49, 45, 92, 48, 48, 53, 93, 41, 34, 10, 69, 83, 67, 49, 32, 61, 32, 34, 92, 48, 48, 54, 34, 10, 69, 83, 67, 50, 32, 61, 32, 34, 92, 48, 48, 55, 34, 10, 10, 77, 65, 83, 75, 32, 61, 32,123, 32, 45, 45, 32,116,104,101, 32,115,117, 98,115,116,105,116,117,116,105, 111,110, 32,111,114,100,101,114, 32,105,115, 32,105,109,112, 111,114,116, 97,110,116, 10, 32,123, 69, 83, 67, 49, 44, 32, 34, 92, 92, 39, 34,125, 44, 10, 32,123, 69, 83, 67, 50, 44, 32, 39, 92, 92, 34, 39,125, 44, 10, 32,123, 83, 84, 82, 49, 44, 32, 34, 39, 34,125, 44, 10, 32,123, 83, 84, 82, 50, 44, 32, 39, 34, 39,125, 44, 10, 32,123, 83, 84, 82, 51, 44, 32, 34, 37, 91, 37, 91, 34,125, 44, 10, 32,123, 83, 84, 82, 52, 44, 32, 34, 37, 93, 37, 93, 34,125, 44, 10, 32,123, 82, 69, 77, 32, 44, 32, 34, 37, 45, 37, 45, 34,125, 44, 10,125, 10, 10,102,117,110, 99,116,105,111,110, 32,109, 97,115,107, 32, 40,115, 41, 10, 32,102,111,114, 32,105, 32, 61, 32, 49, 44, 103,101,116,110, 40, 77, 65, 83, 75, 41, 32, 32,100,111, 10, 32, 32,115, 32, 61, 32,103,115,117, 98, 40,115, 44, 77, 65, 83, 75, 91,105, 93, 91, 50, 93, 44, 77, 65, 83, 75, 91,105, 93, 91, 49, 93, 41, 10, 32,101,110,100, 10, 32,114,101,116, 117,114,110, 32,115, 10,101,110,100, 10, 10,102,117,110, 99, 116,105,111,110, 32,117,110,109, 97,115,107, 32, 40,115, 41, 10, 32,102,111,114, 32,105, 32, 61, 32, 49, 44,103,101,116, 110, 40, 77, 65, 83, 75, 41, 32, 32,100,111, 10, 32, 32,115, 32, 61, 32,103,115,117, 98, 40,115, 44, 77, 65, 83, 75, 91, 105, 93, 91, 49, 93, 44, 77, 65, 83, 75, 91,105, 93, 91, 50, 93, 41, 10, 32,101,110,100, 10, 32,114,101,116,117,114,110, 32,115, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111, 110, 32, 99,108,101, 97,110, 32, 40,115, 41, 10, 32, 45, 45, 32, 99,104,101, 99,107, 32,102,111,114, 32, 99,111,109,112, 105,108, 97,116,105,111,110, 32,101,114,114,111,114, 10, 32, 108,111, 99, 97,108, 32, 99,111,100,101, 32, 61, 32, 34,114, 101,116,117,114,110, 32,102,117,110, 99,116,105,111,110, 32, 40, 41, 92,110, 34, 32, 46, 46, 32,115, 32, 46, 46, 32, 34, 92,110, 32,101,110,100, 34, 10, 32,105,102, 32,110,111,116, 32,100,111,115,116,114,105,110,103, 40, 99,111,100,101, 41, 32,116,104,101,110, 10, 32, 32,114,101,116,117,114,110, 32, 110,105,108, 10, 32,101,110,100, 10, 10, 32,105,102, 32,102, 108, 97,103,115, 91, 39, 67, 39, 93, 32,116,104,101,110, 10, 32, 9,114,101,116,117,114,110, 32,115, 10, 32,101,110,100, 10, 10, 32,108,111, 99, 97,108, 32, 83, 32, 61, 32, 34, 34, 32, 45, 45, 32,115, 97,118,101,100, 32,115,116,114,105,110, 103, 10, 10, 32,115, 32, 61, 32,109, 97,115,107, 40,115, 41, 10, 10, 32, 45, 45, 32,114,101,109,111,118,101, 32, 98,108, 97,110,107,115, 32, 97,110,100, 32, 99,111,109,109,101,110, 116,115, 10, 32,119,104,105,108,101, 32, 49, 32,100,111, 10, 32, 32,108,111, 99, 97,108, 32, 98, 44,101, 44,100, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 65, 78, 89, 41, 10, 32, 32,105,102, 32, 98, 32,116,104,101,110, 10, 32, 32, 32, 83, 32, 61, 32, 83, 46, 46,115,116,114,115,117, 98, 40, 115, 44, 49, 44, 98, 45, 49, 41, 10, 32, 32, 32,115, 32, 61, 32,115,116,114,115,117, 98, 40,115, 44, 98, 43, 49, 41, 10, 32, 32, 32,105,102, 32,100, 61, 61, 83, 84, 82, 49, 32,111, 114, 32,100, 61, 61, 83, 84, 82, 50, 32,116,104,101,110, 10, 32, 32, 32, 32,101, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44,100, 41, 10, 32, 32, 32, 32, 83, 32, 61, 32, 83, 32, 46, 46,100, 46, 46,115,116,114,115,117, 98, 40,115, 44, 49, 44,101, 41, 10, 32, 32, 32, 32,115, 32, 61, 32,115,116, 114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32, 32, 101,108,115,101,105,102, 32,100, 61, 61, 83, 84, 82, 51, 32, 116,104,101,110, 10, 32, 32, 32, 32,101, 32, 61, 32,115,116, 114,102,105,110,100, 40,115, 44, 83, 84, 82, 52, 41, 10, 32, 32, 32, 32, 83, 32, 61, 32, 83, 46, 46,100, 46, 46,115,116, 114,115,117, 98, 40,115, 44, 49, 44,101, 41, 10, 32, 32, 32, 32,115, 32, 61, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32, 32,101,108,115,101,105,102, 32,100, 61, 61, 82, 69, 77, 32,116,104,101,110, 10, 32, 32, 32, 32, 115, 32, 61, 32,103,115,117, 98, 40,115, 44, 34, 91, 94, 92, 110, 93, 42, 40, 92,110, 63, 41, 34, 44, 34, 37, 49, 34, 44, 49, 41, 10, 32, 32, 32,101,110,100, 10, 32, 32,101,108,115, 101, 10, 32, 32, 32, 83, 32, 61, 32, 83, 46, 46,115, 10, 32, 32, 32, 98,114,101, 97,107, 10, 32, 32,101,110,100, 10, 32, 101,110,100, 10, 32, 45, 45, 32,101,108,105,109,105,110, 97, 116,101, 32,117,110,101, 99,101,115,115, 97,114,121, 32,115, 112, 97, 99,101,115, 10, 32, 83, 32, 61, 32,103,115,117, 98, 40, 83, 44, 34, 91, 32, 92,116, 93, 43, 34, 44, 34, 32, 34, 41, 10, 32, 83, 32, 61, 32,103,115,117, 98, 40, 83, 44, 34, 91, 32, 92,116, 93, 42, 92,110, 91, 32, 92,116, 93, 42, 34, 44, 34, 92,110, 34, 41, 10, 9, 83, 32, 61, 32,103,115,117, 98, 40, 83, 44, 34, 92,110, 43, 34, 44, 34, 92,110, 34, 41, 10, 32, 83, 32, 61, 32,117,110,109, 97,115,107, 40, 83, 41, 10, 32,114,101,116,117,114,110, 32, 83, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/clean.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32, 71,101,110,101,114, 97,116,101, 32, 98,105,110, 100,105,110,103, 32, 99,111,100,101, 10, 45, 45, 32, 87,114, 105,116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 76, 97, 115,116, 32,117,112,100, 97,116,101, 58, 32, 65,112,114, 32, 50, 48, 48, 51, 10, 45, 45, 32, 36, 73,100, 58, 32, 36, 10, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111,100,101, 32, 105,115, 32,102,114,101,101, 32,115,111,102,116,119, 97,114, 101, 59, 32,121,111,117, 32, 99, 97,110, 32,114,101,100,105, 115,116,114,105, 98,117,116,101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109,111,100,105,102,121, 32,105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116,119, 97,114,101, 32,112,114,111,118,105,100,101,100, 32,104,101,114,101,117, 110,100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97, 110,100, 10, 45, 45, 32,116,104,101, 32, 97,117,116,104,111, 114, 32,104, 97,115, 32,110,111, 32,111, 98,108,105,103, 97, 116,105,111,110, 32,116,111, 32,112,114,111,118,105,100,101, 32,109, 97,105,110,116,101,110, 97,110, 99,101, 44, 32,115, 117,112,112,111,114,116, 44, 32,117,112,100, 97,116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,101,109,101,110, 116,115, 44, 32,111,114, 32,109,111,100,105,102,105, 99, 97, 116,105,111,110,115, 46, 10, 10,102,117,110, 99,116,105,111, 110, 32,112, 97,114,115,101, 95,101,120,116,114, 97, 40, 41, 10, 10, 9,102,111,114, 32,107, 44,118, 32,105,110, 32,105, 112, 97,105,114,115, 40, 95,101,120,116,114, 97, 95,112, 97, 114, 97,109,101,116,101,114,115, 32,111,114, 32,123,125, 41, 32,100,111, 10, 9, 9, 10, 9, 9,108,111, 99, 97,108, 32, 98, 44,101, 44,110, 97,109,101, 44,118, 97,108,117,101, 32, 61, 32,115,116,114,105,110,103, 46,102,105,110,100, 40,118, 44, 32, 34, 94, 40, 91, 94, 61, 93, 42, 41, 61, 40, 46, 42, 41, 36, 34, 41, 10, 9, 9,105,102, 32, 98, 32,116,104,101, 110, 10, 9, 9, 9, 95,101,120,116,114, 97, 95,112, 97,114, 97,109,101,116,101,114,115, 91,110, 97,109,101, 93, 32, 61, 32,118, 97,108,117,101, 10, 9, 9,101,108,115,101, 10, 9, 9, 9, 95,101,120,116,114, 97, 95,112, 97,114, 97,109,101, 116,101,114,115, 91,118, 93, 32, 61, 32,116,114,117,101, 10, 9, 9,101,110,100, 10, 9,101,110,100, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,100,111,105,116, 32, 40, 41, 10, 9, 45, 45, 32,100,101,102,105,110,101, 32,112, 97, 99,107, 97,103,101, 32,110, 97,109,101, 44, 32,105,102, 32,110,111,116, 32,112,114,111,118,105,100,101,100, 10, 9, 105,102, 32,110,111,116, 32,102,108, 97,103,115, 46,110, 32, 116,104,101,110, 10, 9, 9,105,102, 32,102,108, 97,103,115, 46,102, 32,116,104,101,110, 10, 9, 9, 9,102,108, 97,103, 115, 46,110, 32, 61, 32,103,115,117, 98, 40,102,108, 97,103, 115, 46,102, 44, 34, 37, 46, 46, 42, 36, 34, 44, 34, 34, 41, 10, 9, 9, 9, 95, 44, 95, 44,102,108, 97,103,115, 46,110, 32, 61, 32,115,116,114,105,110,103, 46,102,105,110,100, 40, 102,108, 97,103,115, 46,110, 44, 32, 34, 40, 91, 94, 47, 92, 92, 93, 42, 41, 36, 34, 41, 10, 9, 9,101,108,115,101, 10, 9, 9, 9,101,114,114,111,114, 40, 34, 35,110,111, 32,112, 97, 99,107, 97,103,101, 32,110, 97,109,101, 32,110,111,114, 32,105,110,112,117,116, 32,102,105,108,101, 32,112,114,111, 118,105,100,101,100, 34, 41, 10, 9, 9,101,110,100, 10, 9, 101,110,100, 10, 10, 9, 45, 45, 32,112, 97,114,115,101, 32, 116, 97, 98,108,101, 32,119,105,116,104, 32,101,120,116,114, 97, 32,112, 97,114, 97,109,116,101,114,115, 10, 9,112, 97, 114,115,101, 95,101,120,116,114, 97, 40, 41, 10, 10, 9, 45, 45, 32,100,111, 32,116,104,105,115, 32, 97,102,116,101,114, 32,115,101,116,116,105,110,103, 32,116,104,101, 32,112, 97, 99,107, 97,103,101, 32,110, 97,109,101, 10, 9,105,102, 32, 102,108, 97,103,115, 91, 39, 76, 39, 93, 32,116,104,101,110, 10, 9, 9,100,111,102,105,108,101, 40,102,108, 97,103,115, 91, 39, 76, 39, 93, 41, 10, 9,101,110,100, 10, 10, 9, 45, 45, 32, 97,100,100, 32, 99,112,112,115,116,114,105,110,103, 10, 9,105,102, 32,110,111,116, 32,102,108, 97,103,115, 91, 39, 83, 39, 93, 32,116,104,101,110, 10, 9, 9, 95, 98, 97, 115,105, 99, 91, 39,115,116,114,105,110,103, 39, 93, 32, 61, 32, 39, 99,112,112,115,116,114,105,110,103, 39, 10, 9, 9, 95, 98, 97,115,105, 99, 91, 39,115,116,100, 58, 58,115,116, 114,105,110,103, 39, 93, 32, 61, 32, 39, 99,112,112,115,116, 114,105,110,103, 39, 10, 9, 9, 95, 98, 97,115,105, 99, 95, 99,116,121,112,101, 46, 99,112,112,115,116,114,105,110,103, 32, 61, 32, 39, 99,111,110,115,116, 32, 99,104, 97,114, 42, 39, 10, 9,101,110,100, 10, 10, 9, 45, 45, 32,112,114,111, 99, 99,101,115,115, 32,112, 97, 99,107, 97,103,101, 10, 9, 108,111, 99, 97,108, 32,112, 32, 32, 61, 32, 80, 97, 99,107, 97,103,101, 40,102,108, 97,103,115, 46,110, 44,102,108, 97, 103,115, 46,102, 41, 10, 10, 9,105,102, 32,102,108, 97,103, 115, 46,112, 32,116,104,101,110, 10, 9, 9,114,101,116,117, 114,110, 32, 32, 32, 32, 32, 32, 32, 32, 45, 45, 32,111,110, 108,121, 32,112, 97,114,115,101, 10, 9,101,110,100, 10, 10, 9,105,102, 32,102,108, 97,103,115, 46,111, 32,116,104,101, 110, 10, 9, 9,108,111, 99, 97,108, 32,115,116, 44,109,115, 103, 32, 61, 32,119,114,105,116,101,116,111, 40,102,108, 97, 103,115, 46,111, 41, 10, 9, 9,105,102, 32,110,111,116, 32, 115,116, 32,116,104,101,110, 10, 9, 9, 9,101,114,114,111, 114, 40, 39, 35, 39, 46, 46,109,115,103, 41, 10, 9, 9,101, 110,100, 10, 9,101,110,100, 10, 10, 9,112, 58,100,101, 99, 108,116,121,112,101, 40, 41, 10, 9,105,102, 32,102,108, 97, 103,115, 46, 80, 32,116,104,101,110, 10, 9, 9,112, 58,112, 114,105,110,116, 40, 41, 10, 9,101,108,115,101, 10, 9, 9, 112, 58,112,114,101, 97,109, 98,108,101, 40, 41, 10, 9, 9, 112, 58,115,117,112, 99,111,100,101, 40, 41, 10, 9, 9,112, 58,114,101,103,105,115,116,101,114, 40, 41, 10, 9, 9,112, 117,115,104, 40,112, 41, 10, 9, 9,112,111,115,116, 95,111, 117,116,112,117,116, 95,104,111,111,107, 40,112, 41, 10, 9, 9,112,111,112, 40, 41, 10, 9,101,110,100, 10, 10, 9,105, 102, 32,102,108, 97,103,115, 46,111, 32,116,104,101,110, 10, 9, 9,119,114,105,116,101,116,111, 40, 41, 10, 9,101,110, 100, 10, 10, 9, 45, 45, 32,119,114,105,116,101, 32,104,101, 97,100,101,114, 32,102,105,108,101, 10, 9,105,102, 32,110, 111,116, 32,102,108, 97,103,115, 46, 80, 32,116,104,101,110, 10, 9, 9,105,102, 32,102,108, 97,103,115, 46, 72, 32,116, 104,101,110, 10, 9, 9, 9,108,111, 99, 97,108, 32,115,116, 44,109,115,103, 32, 61, 32,119,114,105,116,101,116,111, 40, 102,108, 97,103,115, 46, 72, 41, 10, 9, 9, 9,105,102, 32, 110,111,116, 32,115,116, 32,116,104,101,110, 10, 9, 9, 9, 9,101,114,114,111,114, 40, 39, 35, 39, 46, 46,109,115,103, 41, 10, 9, 9, 9,101,110,100, 10, 9, 9, 9,112, 58,104, 101, 97,100,101,114, 40, 41, 10, 9, 9, 9,119,114,105,116, 101,116,111, 40, 41, 10, 9, 9,101,110,100, 10, 9,101,110, 100, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/doit.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 10,108,111, 99, 97,108, 32,101,114,114, 44,109,115,103, 32, 61, 32,112, 99, 97,108,108, 40,100,111,105,116, 41, 10,105, 102, 32,110,111,116, 32,101,114,114, 32,116,104,101,110, 10, 32,108,111, 99, 97,108, 32, 95, 44, 95, 44,108, 97, 98,101, 108, 44,109,115,103, 32, 61, 32,115,116,114,102,105,110,100, 40,109,115,103, 44, 34, 40, 46, 45, 58, 46, 45, 58, 37,115, 42, 41, 40, 46, 42, 41, 34, 41, 10, 32,116,111,108,117, 97, 95,101,114,114,111,114, 40,109,115,103, 44,108, 97, 98,101, 108, 41, 10, 32,112,114,105,110,116, 40,100,101, 98,117,103, 46,116,114, 97, 99,101, 98, 97, 99,107, 40, 41, 41, 10,101, 110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code 23"); lua_settop(tolua_S, top); } /* end of embedded lua code */ tolua_endmodule(tolua_S); return 1; } #if defined(LUA_VERSION_NUM) && LUA_VERSION_NUM >= 501 TOLUA_API int luaopen_tolua (lua_State* tolua_S) { return tolua_tolua_open(tolua_S); }; #endif tolua++-1.0.93/src/bin/toluabind.h0000644000175000017500000000026611146137240016040 0ustar cesarecesare/* ** Lua binding: tolua ** Generated automatically by tolua++-1.0.92 on Sun Feb 15 22:29:48 2009. */ /* Exported function */ TOLUA_API int tolua_tolua_open (lua_State* tolua_S); tolua++-1.0.93/src/bin/toluabind_default.h0000644000175000017500000000027110347412246017544 0ustar cesarecesare/* ** Lua binding: tolua ** Generated automatically by tolua++-1.0.8pre2 on Tue Dec 13 01:43:55 2005. */ /* Exported function */ TOLUA_API int tolua_tolua_open (lua_State* tolua_S); tolua++-1.0.93/src/bin/lua/0000755000175000017500000000000011146141660014464 5ustar cesarecesaretolua++-1.0.93/src/bin/lua/declaration.lua0000644000175000017500000003526011040024674017460 0ustar cesarecesare-- tolua: declaration class -- Written by Waldemar Celes -- TeCGraf/PUC-Rio -- Jul 1998 -- $Id: $ -- This code is free software; you can redistribute it and/or modify it. -- The software provided hereunder is on an "as is" basis, and -- the author has no obligation to provide maintenance, support, updates, -- enhancements, or modifications. -- Declaration class -- Represents variable, function, or argument declaration. -- Stores the following fields: -- mod = type modifiers -- type = type -- ptr = "*" or "&", if representing a pointer or a reference -- name = name -- dim = dimension, if a vector -- def = default value, if any (only for arguments) -- ret = "*" or "&", if value is to be returned (only for arguments) classDeclaration = { mod = '', type = '', ptr = '', name = '', dim = '', ret = '', def = '' } classDeclaration.__index = classDeclaration setmetatable(classDeclaration,classFeature) -- Create an unique variable name function create_varname () if not _varnumber then _varnumber = 0 end _varnumber = _varnumber + 1 return "tolua_var_".._varnumber end -- Check declaration name -- It also identifies default values function classDeclaration:checkname () if strsub(self.name,1,1) == '[' and not findtype(self.type) then self.name = self.type..self.name local m = split(self.mod,'%s%s*') self.type = m[m.n] self.mod = concat(m,1,m.n-1) end local t = split(self.name,'=') if t.n==2 then self.name = t[1] self.def = find_enum_var(t[t.n]) end local b,e,d = strfind(self.name,"%[(.-)%]") if b then self.name = strsub(self.name,1,b-1) self.dim = find_enum_var(d) end if self.type ~= '' and self.type ~= 'void' and self.name == '' then self.name = create_varname() elseif self.kind=='var' then if self.type=='' and self.name~='' then self.type = self.type..self.name self.name = create_varname() elseif findtype(self.name) then if self.type=='' then self.type = self.name else self.type = self.type..' '..self.name end self.name = create_varname() end end -- adjust type of string if self.type == 'char' and self.dim ~= '' then self.type = 'char*' end if self.kind and self.kind == 'var' then self.name = string.gsub(self.name, ":.*$", "") -- ??? end end -- Check declaration type -- Substitutes typedef's. function classDeclaration:checktype () -- check if there is a pointer to basic type local basic = isbasic(self.type) if self.kind == 'func' and basic=='number' and string.find(self.ptr, "%*") then self.type = '_userdata' self.ptr = "" end if basic and self.ptr~='' then self.ret = self.ptr self.ptr = nil if isbasic(self.type) == 'number' then self.return_userdata = true end end -- check if there is array to be returned if self.dim~='' and self.ret~='' then error('#invalid parameter: cannot return an array of values') end -- restore 'void*' and 'string*' if self.type == '_userdata' then self.type = 'void*' elseif self.type == '_cstring' then self.type = 'char*' elseif self.type == '_lstate' then self.type = 'lua_State*' end -- resolve types inside the templates if self.type then self.type = resolve_template_types(self.type) end -- -- -- if returning value, automatically set default value -- if self.ret ~= '' and self.def == '' then -- self.def = '0' -- end -- end function resolve_template_types(type) if isbasic(type) then return type end local b,_,m = string.find(type, "(%b<>)") if b then m = split_c_tokens(string.sub(m, 2, -2), ",") for i=1, table.getn(m) do m[i] = string.gsub(m[i],"%s*([%*&])", "%1") if not isbasic(m[i]) then if not isenum(m[i]) then _, m[i] = applytypedef("", m[i]) end m[i] = findtype(m[i]) or m[i] m[i] = resolve_template_types(m[i]) end end local b,i type,b,i = break_template(type) --print("concat is ",concat(m, 1, m.n)) local template_part = "<"..concat(m, 1, m.n, ",")..">" type = rebuild_template(type, b, template_part) type = string.gsub(type, ">>", "> >") end return type end function break_template(s) local b,e,timpl = string.find(s, "(%b<>)") if timpl then s = string.gsub(s, "%b<>", "") return s, b, timpl else return s, 0, nil end end function rebuild_template(s, b, timpl) if b == 0 then return s end return string.sub(s, 1, b-1)..timpl..string.sub(s, b, -1) end -- Print method function classDeclaration:print (ident,close) print(ident.."Declaration{") print(ident.." mod = '"..self.mod.."',") print(ident.." type = '"..self.type.."',") print(ident.." ptr = '"..self.ptr.."',") print(ident.." name = '"..self.name.."',") print(ident.." dim = '"..self.dim.."',") print(ident.." def = '"..self.def.."',") print(ident.." ret = '"..self.ret.."',") print(ident.."}"..close) end -- check if array of values are returned to Lua function classDeclaration:requirecollection (t) if self.mod ~= 'const' and self.dim and self.dim ~= '' and not isbasic(self.type) and self.ptr == '' and self:check_public_access() then local type = gsub(self.type,"%s*const%s+","") t[type] = "tolua_collect_" .. clean_template(type) return true end return false end -- declare tag function classDeclaration:decltype () self.type = typevar(self.type) if strfind(self.mod,'const') then self.type = 'const '..self.type self.mod = gsub(self.mod,'const%s*','') end end -- output type checking function classDeclaration:outchecktype (narg) local def local t = isbasic(self.type) if self.def~='' then def = 1 else def = 0 end if self.dim ~= '' then --if t=='string' then -- return 'tolua_isstringarray(tolua_S,'..narg..','..def..',&tolua_err)' --else return '!tolua_istable(tolua_S,'..narg..',0,&tolua_err)' --end elseif t then return '!tolua_is'..t..'(tolua_S,'..narg..','..def..',&tolua_err)' else local is_func = get_is_function(self.type) if self.ptr == '&' or self.ptr == '' then return '(tolua_isvaluenil(tolua_S,'..narg..',&tolua_err) || !'..is_func..'(tolua_S,'..narg..',"'..self.type..'",'..def..',&tolua_err))' else return '!'..is_func..'(tolua_S,'..narg..',"'..self.type..'",'..def..',&tolua_err)' end end end function classDeclaration:builddeclaration (narg, cplusplus) local array = self.dim ~= '' and tonumber(self.dim)==nil local line = "" local ptr = '' local mod local type = self.type local nctype = gsub(self.type,'const%s+','') if self.dim ~= '' then type = gsub(self.type,'const%s+','') -- eliminates const modifier for arrays end if self.ptr~='' and not isbasic(type) then ptr = '*' end line = concatparam(line," ",self.mod,type,ptr) if array then line = concatparam(line,'*') end line = concatparam(line,self.name) if self.dim ~= '' then if tonumber(self.dim)~=nil then line = concatparam(line,'[',self.dim,'];') else if cplusplus then line = concatparam(line,' = Mtolua_new_dim(',type,ptr,', '..self.dim..');') else line = concatparam(line,' = (',type,ptr,'*)', 'malloc((',self.dim,')*sizeof(',type,ptr,'));') end end else local t = isbasic(type) line = concatparam(line,' = ') if t == 'state' then line = concatparam(line, 'tolua_S;') else --print("t is "..tostring(t)..", ptr is "..tostring(self.ptr)) if t == 'number' and string.find(self.ptr, "%*") then t = 'userdata' end if not t and ptr=='' then line = concatparam(line,'*') end line = concatparam(line,'((',self.mod,type) if not t then line = concatparam(line,'*') end line = concatparam(line,') ') if isenum(nctype) then line = concatparam(line,'(int) ') end local def = 0 if self.def ~= '' then def = self.def if (ptr == '' or self.ptr == '&') and not t then def = "(void*)&(const "..type..")"..def end end if t then line = concatparam(line,'tolua_to'..t,'(tolua_S,',narg,',',def,'));') else local to_func = get_to_function(type) line = concatparam(line,to_func..'(tolua_S,',narg,',',def,'));') end end end return line end -- Declare variable function classDeclaration:declare (narg) if self.dim ~= '' and tonumber(self.dim)==nil then output('#ifdef __cplusplus\n') output(self:builddeclaration(narg,true)) output('#else\n') output(self:builddeclaration(narg,false)) output('#endif\n') else output(self:builddeclaration(narg,false)) end end -- Get parameter value function classDeclaration:getarray (narg) if self.dim ~= '' then local type = gsub(self.type,'const ','') output(' {') output('#ifndef TOLUA_RELEASE\n') local def; if self.def~='' then def=1 else def=0 end local t = isbasic(type) if (t) then output(' if (!tolua_is'..t..'array(tolua_S,',narg,',',self.dim,',',def,',&tolua_err))') else output(' if (!tolua_isusertypearray(tolua_S,',narg,',"',type,'",',self.dim,',',def,',&tolua_err))') end output(' goto tolua_lerror;') output(' else\n') output('#endif\n') output(' {') output(' int i;') output(' for(i=0; i<'..self.dim..';i++)') local t = isbasic(type) local ptr = '' if self.ptr~='' then ptr = '*' end output(' ',self.name..'[i] = ') if not t and ptr=='' then output('*') end output('((',type) if not t then output('*') end output(') ') local def = 0 if self.def ~= '' then def = self.def end if t then output('tolua_tofield'..t..'(tolua_S,',narg,',i+1,',def,'));') else output('tolua_tofieldusertype(tolua_S,',narg,',i+1,',def,'));') end output(' }') output(' }') end end -- Get parameter value function classDeclaration:setarray (narg) if not strfind(self.type,'const%s+') and self.dim ~= '' then local type = gsub(self.type,'const ','') output(' {') output(' int i;') output(' for(i=0; i<'..self.dim..';i++)') local t,ct = isbasic(type) if t then output(' tolua_pushfield'..t..'(tolua_S,',narg,',i+1,(',ct,')',self.name,'[i]);') else if self.ptr == '' then output(' {') output('#ifdef __cplusplus\n') output(' void* tolua_obj = Mtolua_new((',type,')(',self.name,'[i]));') output(' tolua_pushfieldusertype_and_takeownership(tolua_S,',narg,',i+1,tolua_obj,"',type,'");') output('#else\n') output(' void* tolua_obj = tolua_copy(tolua_S,(void*)&',self.name,'[i],sizeof(',type,'));') output(' tolua_pushfieldusertype(tolua_S,',narg,',i+1,tolua_obj,"',type,'");') output('#endif\n') output(' }') else output(' tolua_pushfieldusertype(tolua_S,',narg,',i+1,(void*)',self.name,'[i],"',type,'");') end end output(' }') end end -- Free dynamically allocated array function classDeclaration:freearray () if self.dim ~= '' and tonumber(self.dim)==nil then output('#ifdef __cplusplus\n') output(' Mtolua_delete_dim(',self.name,');') output('#else\n') output(' free(',self.name,');') output('#endif\n') end end -- Pass parameter function classDeclaration:passpar () if self.ptr=='&' and not isbasic(self.type) then output('*'..self.name) elseif self.ret=='*' then output('&'..self.name) else output(self.name) end end -- Return parameter value function classDeclaration:retvalue () if self.ret ~= '' then local t,ct = isbasic(self.type) if t and t~='' then output(' tolua_push'..t..'(tolua_S,(',ct,')'..self.name..');') else local push_func = get_push_function(self.type) output(' ',push_func,'(tolua_S,(void*)'..self.name..',"',self.type,'");') end return 1 end return 0 end -- Internal constructor function _Declaration (t) setmetatable(t,classDeclaration) t:buildnames() t:checkname() t:checktype() local ft = findtype(t.type) or t.type if not isenum(ft) then t.mod, t.type = applytypedef(t.mod, ft) end if t.kind=="var" and (string.find(t.mod, "tolua_property%s") or string.find(t.mod, "tolua_property$")) then t.mod = string.gsub(t.mod, "tolua_property", "tolua_property__"..get_property_type()) end return t end -- Constructor -- Expects the string declaration. -- The kind of declaration can be "var" or "func". function Declaration (s,kind,is_parameter) -- eliminate spaces if default value is provided s = gsub(s,"%s*=%s*","=") s = gsub(s, "%s*<", "<") local defb,tmpdef defb,_,tmpdef = string.find(s, "(=.*)$") if defb then s = string.gsub(s, "=.*$", "") else tmpdef = '' end if kind == "var" then -- check the form: void if s == '' or s == 'void' then return _Declaration{type = 'void', kind = kind, is_parameter = is_parameter} end end -- check the form: mod type*& name local t = split_c_tokens(s,'%*%s*&') if t.n == 2 then if kind == 'func' then error("#invalid function return type: "..s) end --local m = split(t[1],'%s%s*') local m = split_c_tokens(t[1],'%s+') return _Declaration{ name = t[2]..tmpdef, ptr = '*', ret = '&', --type = rebuild_template(m[m.n], tb, timpl), type = m[m.n], mod = concat(m,1,m.n-1), is_parameter = is_parameter, kind = kind } end -- check the form: mod type** name t = split_c_tokens(s,'%*%s*%*') if t.n == 2 then if kind == 'func' then error("#invalid function return type: "..s) end --local m = split(t[1],'%s%s*') local m = split_c_tokens(t[1],'%s+') return _Declaration{ name = t[2]..tmpdef, ptr = '*', ret = '*', --type = rebuild_template(m[m.n], tb, timpl), type = m[m.n], mod = concat(m,1,m.n-1), is_parameter = is_parameter, kind = kind } end -- check the form: mod type& name t = split_c_tokens(s,'&') if t.n == 2 then --local m = split(t[1],'%s%s*') local m = split_c_tokens(t[1],'%s+') return _Declaration{ name = t[2]..tmpdef, ptr = '&', --type = rebuild_template(m[m.n], tb, timpl), type = m[m.n], mod = concat(m,1,m.n-1), is_parameter = is_parameter, kind = kind } end -- check the form: mod type* name local s1 = gsub(s,"(%b\[\])",function (n) return gsub(n,'%*','\1') end) t = split_c_tokens(s1,'%*') if t.n == 2 then t[2] = gsub(t[2],'\1','%*') -- restore * in dimension expression --local m = split(t[1],'%s%s*') local m = split_c_tokens(t[1],'%s+') return _Declaration{ name = t[2]..tmpdef, ptr = '*', type = m[m.n], --type = rebuild_template(m[m.n], tb, timpl), mod = concat(m,1,m.n-1) , is_parameter = is_parameter, kind = kind } end if kind == 'var' then -- check the form: mod type name --t = split(s,'%s%s*') t = split_c_tokens(s,'%s+') local v if findtype(t[t.n]) then v = create_varname() else v = t[t.n]; t.n = t.n-1 end return _Declaration{ name = v..tmpdef, --type = rebuild_template(t[t.n], tb, timpl), type = t[t.n], mod = concat(t,1,t.n-1), is_parameter = is_parameter, kind = kind } else -- kind == "func" -- check the form: mod type name --t = split(s,'%s%s*') t = split_c_tokens(s,'%s+') local v = t[t.n] -- last word is the function name local tp,md if t.n>1 then tp = t[t.n-1] md = concat(t,1,t.n-2) end --if tp then tp = rebuild_template(tp, tb, timpl) end return _Declaration{ name = v, type = tp, mod = md, is_parameter = is_parameter, kind = kind } end end tolua++-1.0.93/src/bin/lua/typedef.lua0000644000175000017500000000324010343424077016632 0ustar cesarecesare-- tolua: typedef class -- Written by Waldemar Celes -- TeCGraf/PUC-Rio -- Jul 1998 -- $Id: $ -- This code is free software; you can redistribute it and/or modify it. -- The software provided hereunder is on an "as is" basis, and -- the author has no obligation to provide maintenance, support, updates, -- enhancements, or modifications. -- Typedef class -- Represents a type synonym. -- The 'de facto' type replaces the typedef before the -- remaining code is parsed. -- The following fields are stored: -- utype = typedef name -- type = 'the facto' type -- mod = modifiers to the 'de facto' type classTypedef = { utype = '', mod = '', type = '' } classTypedef.__index = classTypedef -- Print method function classTypedef:print (ident,close) print(ident.."Typedef{") print(ident.." utype = '"..self.utype.."',") print(ident.." mod = '"..self.mod.."',") print(ident.." type = '"..self.type.."',") print(ident.."}"..close) end -- Return it's not a variable function classTypedef:isvariable () return false end -- Internal constructor function _Typedef (t) setmetatable(t,classTypedef) t.type = resolve_template_types(t.type) appendtypedef(t) return t end -- Constructor -- Expects one string representing the type definition. function Typedef (s) if strfind(string.gsub(s, '%b<>', ''),'[%*&]') then tolua_error("#invalid typedef: pointers (and references) are not supported") end local o = {mod = ''} if string.find(s, "[<>]") then _,_,o.type,o.utype = string.find(s, "^%s*([^<>]+%b<>[^%s]*)%s+(.-)$") else local t = split(gsub(s,"%s%s*"," ")," ") o = { utype = t[t.n], type = t[t.n-1], mod = concat(t,1,t.n-2), } end return _Typedef(o) end tolua++-1.0.93/src/bin/lua/module.lua0000644000175000017500000000270710343424077016466 0ustar cesarecesare-- tolua: module class -- Written by Waldemar Celes -- TeCGraf/PUC-Rio -- Jul 1998 -- $Id: $ -- This code is free software; you can redistribute it and/or modify it. -- The software provided hereunder is on an "as is" basis, and -- the author has no obligation to provide maintenance, support, updates, -- enhancements, or modifications. -- Module class -- Represents module. -- The following fields are stored: -- {i} = list of objects in the module. classModule = { classtype = 'module' } classModule.__index = classModule setmetatable(classModule,classContainer) -- register module function classModule:register (pre) pre = pre or '' push(self) output(pre..'tolua_module(tolua_S,"'..self.name..'",',self:hasvar(),');') output(pre..'tolua_beginmodule(tolua_S,"'..self.name..'");') local i=1 while self[i] do self[i]:register(pre..' ') i = i+1 end output(pre..'tolua_endmodule(tolua_S);') pop() end -- Print method function classModule:print (ident,close) print(ident.."Module{") print(ident.." name = '"..self.name.."';") local i=1 while self[i] do self[i]:print(ident.." ",",") i = i+1 end print(ident.."}"..close) end -- Internal constructor function _Module (t) setmetatable(t,classModule) append(t) return t end -- Constructor -- Expects two string representing the module name and body. function Module (n,b) local t = _Module(_Container{name=n}) push(t) t:parse(strsub(b,2,strlen(b)-1)) -- eliminate braces pop() return t end tolua++-1.0.93/src/bin/lua/feature.lua0000644000175000017500000000550210711507671016631 0ustar cesarecesare-- tolua: abstract feature class -- Written by Waldemar Celes -- TeCGraf/PUC-Rio -- Jul 1998 -- $Id: $ -- This code is free software; you can redistribute it and/or modify it. -- The software provided hereunder is on an "as is" basis, and -- the author has no obligation to provide maintenance, support, updates, -- enhancements, or modifications. -- Feature class -- Represents the base class of all mapped feature. classFeature = { } classFeature.__index = classFeature -- write support code function classFeature:supcode () end -- output tag function classFeature:decltype () end -- register feature function classFeature:register (pre) end -- translate verbatim function classFeature:preamble () end -- check if it is a variable function classFeature:isvariable () return false end -- check if it requires collection function classFeature:requirecollection (t) return false end -- build names function classFeature:buildnames () if self.name and self.name~='' then local n = split(self.name,'@') self.name = n[1] self.name = string.gsub(self.name, ":%d*$", "") if not n[2] then n[2] = applyrenaming(n[1]) end self.lname = n[2] or gsub(n[1],"%[.-%]","") self.lname = string.gsub(self.lname, ":%d*$", "") self.original_name = self.name self.lname = clean_template(self.lname) end if not self.is_parameter then self.name = getonlynamespace() .. self.name end local parent = classContainer.curr if parent then self.access = parent.curr_member_access self.global_access = self:check_public_access() else end end function classFeature:check_public_access() if type(self.global_access) == "boolean" then return self.global_access end if self.access and self.access ~= 0 then return false end local parent = classContainer.curr while parent do if parent.access and parent.access ~= 0 then return false end parent = parent.prox end return true end function clean_template(t) return string.gsub(t, "[<>:, %*]", "_") end -- check if feature is inside a container definition -- it returns the container class name or nil. function classFeature:incontainer (which) if self.parent then local parent = self.parent while parent do if parent.classtype == which then return parent.name end parent = parent.parent end end return nil end function classFeature:inclass () return self:incontainer('class') end function classFeature:inmodule () return self:incontainer('module') end function classFeature:innamespace () return self:incontainer('namespace') end -- return C binding function name based on name -- the client specifies a prefix function classFeature:cfuncname (n) if self.parent then n = self.parent:cfuncname(n) end local fname = self.lname if not fname or fname == '' then fname = self.name end n = string.gsub(n..'_'.. (fname), "[<>:, \.%*&]", "_") return n end tolua++-1.0.93/src/bin/lua/package.lua0000644000175000017500000002463210711507671016576 0ustar cesarecesare-- tolua: package class -- Written by Waldemar Celes -- TeCGraf/PUC-Rio -- Jul 1998 -- $Id: $ -- This code is free software; you can redistribute it and/or modify it. -- The software provided hereunder is on an "as is" basis, and -- the author has no obligation to provide maintenance, support, updates, -- enhancements, or modifications. -- Package class -- Represents the whole package being bound. -- The following fields are stored: -- {i} = list of objects in the package. classPackage = { classtype = 'package' } classPackage.__index = classPackage setmetatable(classPackage,classContainer) -- Print method function classPackage:print () print("Package: "..self.name) local i=1 while self[i] do self[i]:print("","") i = i+1 end end function classPackage:preprocess () -- avoid preprocessing embedded Lua code local L = {} self.code = gsub(self.code,"\n%s*%$%[","\1") -- deal with embedded lua code self.code = gsub(self.code,"\n%s*%$%]","\2") self.code = gsub(self.code,"(%b\1\2)", function (c) tinsert(L,c) return "\n#["..getn(L).."]#" end) -- avoid preprocessing embedded C code local C = {} self.code = gsub(self.code,"\n%s*%$%<","\3") -- deal with embedded C code self.code = gsub(self.code,"\n%s*%$%>","\4") self.code = gsub(self.code,"(%b\3\4)", function (c) tinsert(C,c) return "\n#<"..getn(C)..">#" end) -- avoid preprocessing embedded C code self.code = gsub(self.code,"\n%s*%$%{","\5") -- deal with embedded C code self.code = gsub(self.code,"\n%s*%$%}","\6") self.code = gsub(self.code,"(%b\5\6)", function (c) tinsert(C,c) return "\n#<"..getn(C)..">#" end) --self.code = gsub(self.code,"\n%s*#[^d][^\n]*\n", "\n\n") -- eliminate preprocessor directives that don't start with 'd' self.code = gsub(self.code,"\n[ \t]*#[ \t]*[^d%<%[]", "\n//") -- eliminate preprocessor directives that don't start with 'd' -- avoid preprocessing verbatim lines local V = {} self.code = gsub(self.code,"\n(%s*%$[^%[%]][^\n]*)",function (v) tinsert(V,v) return "\n#"..getn(V).."#" end) -- perform global substitution self.code = gsub(self.code,"(//[^\n]*)","") -- eliminate C++ comments self.code = gsub(self.code,"/%*","\1") self.code = gsub(self.code,"%*/","\2") self.code = gsub(self.code,"%b\1\2","") self.code = gsub(self.code,"\1","/%*") self.code = gsub(self.code,"\2","%*/") self.code = gsub(self.code,"%s*@%s*","@") -- eliminate spaces beside @ self.code = gsub(self.code,"%s?inline(%s)","%1") -- eliminate 'inline' keyword --self.code = gsub(self.code,"%s?extern(%s)","%1") -- eliminate 'extern' keyword --self.code = gsub(self.code,"%s?virtual(%s)","%1") -- eliminate 'virtual' keyword --self.code = gsub(self.code,"public:","") -- eliminate 'public:' keyword self.code = gsub(self.code,"([^%w_])void%s*%*","%1_userdata ") -- substitute 'void*' self.code = gsub(self.code,"([^%w_])void%s*%*","%1_userdata ") -- substitute 'void*' self.code = gsub(self.code,"([^%w_])char%s*%*","%1_cstring ") -- substitute 'char*' self.code = gsub(self.code,"([^%w_])lua_State%s*%*","%1_lstate ") -- substitute 'lua_State*' -- restore embedded Lua code self.code = gsub(self.code,"%#%[(%d+)%]%#",function (n) return L[tonumber(n)] end) -- restore embedded C code self.code = gsub(self.code,"%#%<(%d+)%>%#",function (n) return C[tonumber(n)] end) -- restore verbatim lines self.code = gsub(self.code,"%#(%d+)%#",function (n) return V[tonumber(n)] end) self.code = string.gsub(self.code, "\n%s*%$([^\n]+)", function (l) Verbatim(l.."\n") return "\n" end) end -- translate verbatim function classPackage:preamble () output('/*\n') output('** Lua binding: '..self.name..'\n') output('** Generated automatically by '..TOLUA_VERSION..' on '..date()..'.\n') output('*/\n\n') output('#ifndef __cplusplus\n') output('#include "stdlib.h"\n') output('#endif\n') output('#include "string.h"\n\n') output('#include "tolua++.h"\n\n') if not flags.h then output('/* Exported function */') output('TOLUA_API int tolua_'..self.name..'_open (lua_State* tolua_S);') output('\n') end local i=1 while self[i] do self[i]:preamble() i = i+1 end if self:requirecollection(_collect) then output('\n') output('/* function to release collected object via destructor */') output('#ifdef __cplusplus\n') for i,v in pairs(_collect) do output('\nstatic int '..v..' (lua_State* tolua_S)') output('{') output(' '..i..'* self = ('..i..'*) tolua_tousertype(tolua_S,1,0);') output(' Mtolua_delete(self);') output(' return 0;') output('}') end output('#endif\n\n') end output('\n') output('/* function to register type */') output('static void tolua_reg_types (lua_State* tolua_S)') output('{') if flags.t then output("#ifndef Mtolua_typeid\n#define Mtolua_typeid(L,TI,T)\n#endif\n") end foreach(_usertype,function(n,v) if (not _global_classes[v]) or _global_classes[v]:check_public_access() then output(' tolua_usertype(tolua_S,"',v,'");') if flags.t then output(' Mtolua_typeid(tolua_S,typeid(',v,'), "',v,'");') end end end) output('}') output('\n') end -- register package -- write package open function function classPackage:register (pre) pre = pre or '' push(self) output(pre.."/* Open function */") output(pre.."TOLUA_API int tolua_"..self.name.."_open (lua_State* tolua_S)") output(pre.."{") output(pre.." tolua_open(tolua_S);") output(pre.." tolua_reg_types(tolua_S);") output(pre.." tolua_module(tolua_S,NULL,",self:hasvar(),");") output(pre.." tolua_beginmodule(tolua_S,NULL);") local i=1 while self[i] do self[i]:register(pre.." ") i = i+1 end output(pre.." tolua_endmodule(tolua_S);") output(pre.." return 1;") output(pre.."}") output("\n\n") output("#if defined(LUA_VERSION_NUM) && LUA_VERSION_NUM >= 501\n"); output(pre.."TOLUA_API int luaopen_"..self.name.." (lua_State* tolua_S) {") output(pre.." return tolua_"..self.name.."_open(tolua_S);") output(pre.."};") output("#endif\n\n") pop() end -- write header file function classPackage:header () output('/*\n') output('** Lua binding: '..self.name..'\n') output('** Generated automatically by '..TOLUA_VERSION..' on '..date()..'.\n') output('*/\n\n') if not flags.h then output('/* Exported function */') output('TOLUA_API int tolua_'..self.name..'_open (lua_State* tolua_S);') output('\n') end end -- Internal constructor function _Package (self) setmetatable(self,classPackage) return self end -- Parse C header file with tolua directives -- *** Thanks to Ariel Manzur for fixing bugs in nested directives *** function extract_code(fn,s) local code = '\n$#include "'..fn..'"\n' s= "\n" .. s .. "\n" -- add blank lines as sentinels local _,e,c,t = strfind(s, "\n([^\n]-)[Tt][Oo][Ll][Uu][Aa]_([^%s]*)[^\n]*\n") while e do t = strlower(t) if t == "begin" then _,e,c = strfind(s,"(.-)\n[^\n]*[Tt][Oo][Ll][Uu][Aa]_[Ee][Nn][Dd][^\n]*\n",e) if not e then tolua_error("Unbalanced 'tolua_begin' directive in header file") end end code = code .. c .. "\n" _,e,c,t = strfind(s, "\n([^\n]-)[Tt][Oo][Ll][Uu][Aa]_([^%s]*)[^\n]*\n",e) end return code end -- Constructor -- Expects the package name, the file extension, and the file text. function Package (name,fn) local ext = "pkg" -- open input file, if any local st,msg if fn then st, msg = readfrom(flags.f) if not st then error('#'..msg) end local _; _, _, ext = strfind(fn,".*%.(.*)$") end local code if ext == 'pkg' then code = prep(st) else code = "\n" .. read('*a') if ext == 'h' or ext == 'hpp' then code = extract_code(fn,code) end end -- close file if fn then readfrom() end -- deal with include directive local nsubst repeat code,nsubst = gsub(code,'\n%s*%$(.)file%s*"(.-)"([^\n]*)\n', function (kind,fn,extra) local _, _, ext = strfind(fn,".*%.(.*)$") local fp,msg = openfile(fn,'r') if not fp then error('#'..msg..': '..fn) end if kind == 'p' then local s = prep(fp) closefile(fp) return s end local s = read(fp,'*a') closefile(fp) if kind == 'c' or kind == 'h' then return extract_code(fn,s) elseif kind == 'l' then return "\n$[--##"..fn.."\n" .. s .. "\n$]\n" elseif kind == 'i' then local t = {code=s} extra = string.gsub(extra, "^%s*,%s*", "") local pars = split_c_tokens(extra, ",") include_file_hook(t, fn, unpack(pars)) return "\n\n" .. t.code else error('#Invalid include directive (use $cfile, $pfile, $lfile or $ifile)') end end) until nsubst==0 -- deal with renaming directive repeat -- I don't know why this is necesary code,nsubst = gsub(code,'\n%s*%$renaming%s*(.-)%s*\n', function (r) appendrenaming(r) return "\n" end) until nsubst == 0 local t = _Package(_Container{name=name, code=code}) push(t) preprocess_hook(t) t:preprocess() preparse_hook(t) t:parse(t.code) pop() return t end setmetatable(_extra_parameters, { __index = _G }) function prep(file) local chunk = {'local __ret = {"\\n"}\n'} for line in file:lines() do if string.find(line, "^##") then table.insert(chunk, string.sub(line, 3) .. "\n") else local last = 1 for text, expr, index in string.gfind(line, "(.-)$(%b())()") do last = index if text ~= "" then table.insert(chunk, string.format('table.insert(__ret, %q )', text)) end table.insert(chunk, string.format('table.insert(__ret, %s )', expr)) end table.insert(chunk, string.format('table.insert(__ret, %q)\n', string.sub(line, last).."\n")) end end table.insert(chunk, '\nreturn table.concat(__ret)\n') local f,e = loadstring(table.concat(chunk)) if e then error("#"..e) end setfenv(f, _extra_parameters) return f() end tolua++-1.0.93/src/bin/lua/define.lua0000644000175000017500000000244510343424077016432 0ustar cesarecesare-- tolua: define class -- Written by Waldemar Celes -- TeCGraf/PUC-Rio -- Jul 1998 -- $Id: define.lua,v 1.2 1999/07/28 22:21:08 celes Exp $ -- This code is free software; you can redistribute it and/or modify it. -- The software provided hereunder is on an "as is" basis, and -- the author has no obligation to provide maintenance, support, updates, -- enhancements, or modifications. -- Define class -- Represents a numeric const definition -- The following filds are stored: -- name = constant name classDefine = { name = '', } classDefine.__index = classDefine setmetatable(classDefine,classFeature) -- register define function classDefine:register (pre) if not self:check_public_access() then return end pre = pre or '' output(pre..'tolua_constant(tolua_S,"'..self.lname..'",'..self.name..');') end -- Print method function classDefine:print (ident,close) print(ident.."Define{") print(ident.." name = '"..self.name.."',") print(ident.." lname = '"..self.lname.."',") print(ident.."}"..close) end -- Internal constructor function _Define (t) setmetatable(t,classDefine) t:buildnames() if t.name == '' then error("#invalid define") end append(t) return t end -- Constructor -- Expects a string representing the constant name function Define (n) return _Define{ name = n } end tolua++-1.0.93/src/bin/lua/clean.lua0000644000175000017500000000247010343424077016260 0ustar cesarecesare-- mark up comments and strings STR1 = "\001" STR2 = "\002" STR3 = "\003" STR4 = "\004" REM = "\005" ANY = "([\001-\005])" ESC1 = "\006" ESC2 = "\007" MASK = { -- the substitution order is important {ESC1, "\\'"}, {ESC2, '\\"'}, {STR1, "'"}, {STR2, '"'}, {STR3, "%[%["}, {STR4, "%]%]"}, {REM , "%-%-"}, } function mask (s) for i = 1,getn(MASK) do s = gsub(s,MASK[i][2],MASK[i][1]) end return s end function unmask (s) for i = 1,getn(MASK) do s = gsub(s,MASK[i][1],MASK[i][2]) end return s end function clean (s) -- check for compilation error local code = "return function ()\n" .. s .. "\n end" if not dostring(code) then return nil end if flags['C'] then return s end local S = "" -- saved string s = mask(s) -- remove blanks and comments while 1 do local b,e,d = strfind(s,ANY) if b then S = S..strsub(s,1,b-1) s = strsub(s,b+1) if d==STR1 or d==STR2 then e = strfind(s,d) S = S ..d..strsub(s,1,e) s = strsub(s,e+1) elseif d==STR3 then e = strfind(s,STR4) S = S..d..strsub(s,1,e) s = strsub(s,e+1) elseif d==REM then s = gsub(s,"[^\n]*(\n?)","%1",1) end else S = S..s break end end -- eliminate unecessary spaces S = gsub(S,"[ \t]+"," ") S = gsub(S,"[ \t]*\n[ \t]*","\n") S = gsub(S,"\n+","\n") S = unmask(S) return S end tolua++-1.0.93/src/bin/lua/doit.lua0000644000175000017500000000342411000003151016106 0ustar cesarecesare-- Generate binding code -- Written by Waldemar Celes -- TeCGraf/PUC-Rio -- Jul 1998 -- Last update: Apr 2003 -- $Id: $ -- This code is free software; you can redistribute it and/or modify it. -- The software provided hereunder is on an "as is" basis, and -- the author has no obligation to provide maintenance, support, updates, -- enhancements, or modifications. function parse_extra() for k,v in ipairs(_extra_parameters or {}) do local b,e,name,value = string.find(v, "^([^=]*)=(.*)$") if b then _extra_parameters[name] = value else _extra_parameters[v] = true end end end function doit () -- define package name, if not provided if not flags.n then if flags.f then flags.n = gsub(flags.f,"%..*$","") _,_,flags.n = string.find(flags.n, "([^/\\]*)$") else error("#no package name nor input file provided") end end -- parse table with extra paramters parse_extra() -- do this after setting the package name if flags['L'] then dofile(flags['L']) end -- add cppstring if not flags['S'] then _basic['string'] = 'cppstring' _basic['std::string'] = 'cppstring' _basic_ctype.cppstring = 'const char*' end -- proccess package local p = Package(flags.n,flags.f) if flags.p then return -- only parse end if flags.o then local st,msg = writeto(flags.o) if not st then error('#'..msg) end end p:decltype() if flags.P then p:print() else push(p) pre_output_hook(p) pop() p:preamble() p:supcode() push(p) pre_register_hook(p) pop() p:register() push(p) post_output_hook(p) pop() end if flags.o then writeto() end -- write header file if not flags.P then if flags.H then local st,msg = writeto(flags.H) if not st then error('#'..msg) end p:header() writeto() end end end tolua++-1.0.93/src/bin/lua/operator.lua0000644000175000017500000001363311106345631017030 0ustar cesarecesare-- tolua: operator class -- Written by Waldemar Celes -- TeCGraf/PUC-Rio -- Jul 1998 -- $Id: $ -- This code is free software; you can redistribute it and/or modify it. -- The software provided hereunder is on an "as is" basis, and -- the author has no obligation to provide maintenance, support, updates, -- enhancements, or modifications. -- Operator class -- Represents an operator function or a class operator method. -- It stores the same fields as functions do plus: -- kind = set of character representing the operator (as it appers in C++ code) classOperator = { kind = '', } classOperator.__index = classOperator setmetatable(classOperator,classFunction) -- table to transform operator kind into the appropriate tag method name _TM = {['+'] = 'add', ['-'] = 'sub', ['*'] = 'mul', ['/'] = 'div', ['<'] = 'lt', ['<='] = 'le', ['=='] = 'eq', ['[]'] = 'geti', ['&[]'] = 'seti', --['->'] = 'flechita', } -- Print method function classOperator:print (ident,close) print(ident.."Operator{") print(ident.." kind = '"..self.kind.."',") print(ident.." mod = '"..self.mod.."',") print(ident.." type = '"..self.type.."',") print(ident.." ptr = '"..self.ptr.."',") print(ident.." name = '"..self.name.."',") print(ident.." const = '"..self.const.."',") print(ident.." cname = '"..self.cname.."',") print(ident.." lname = '"..self.lname.."',") print(ident.." args = {") local i=1 while self.args[i] do self.args[i]:print(ident.." ",",") i = i+1 end print(ident.." }") print(ident.."}"..close) end function classOperator:supcode_tmp() if not _TM[self.kind] then return classFunction.supcode(self) end -- no overload, no parameters, always inclass output("/* method:",self.name," of class ",self:inclass()," */") output("#ifndef TOLUA_DISABLE_"..self.cname) output("\nstatic int",self.cname,"(lua_State* tolua_S)") if overload < 0 then output('#ifndef TOLUA_RELEASE\n') end output(' tolua_Error tolua_err;') output(' if (\n') -- check self local is_func = get_is_function(self.parent.type) output(' !'..is_func..'(tolua_S,1,"'..self.parent.type..'",0,&tolua_err) ||\n') output(' !tolua_isnoobj(tolua_S,2,&tolua_err)\n )') output(' goto tolua_lerror;') output(' else\n') output('#endif\n') -- tolua_release output(' {') -- declare self output(' ',self.const,self.parent.type,'*','self = ') output('(',self.const,self.parent.type,'*) ') local to_func = get_to_func(self.parent.type) output(to_func,'(tolua_S,1,0);') -- check self output('#ifndef TOLUA_RELEASE\n') output(' if (!self) tolua_error(tolua_S,"'..output_error_hook("invalid \'self\' in function \'%s\'", self.name)..'",NULL);'); output('#endif\n') -- cast self output(' ',self.mod,self.type,self.ptr,'tolua_ret = ') output('(',self.mod,self.type,self.ptr,')(*self);') -- return value local t,ct = isbasic(self.type) if t then output(' tolua_push'..t..'(tolua_S,(',ct,')tolua_ret);') else t = self.type local push_func = get_push_function(t) new_t = string.gsub(t, "const%s+", "") if self.ptr == '' then output(' {') output('#ifdef __cplusplus\n') output(' void* tolua_obj = Mtolua_new((',new_t,')(tolua_ret));') output(' ',push_func,'(tolua_S,tolua_obj,"',t,'");') output(' tolua_register_gc(tolua_S,lua_gettop(tolua_S));') output('#else\n') output(' void* tolua_obj = tolua_copy(tolua_S,(void*)&tolua_ret,sizeof(',t,'));') output(' ',push_func,'(tolua_S,tolua_obj,"',t,'");') output(' tolua_register_gc(tolua_S,lua_gettop(tolua_S));') output('#endif\n') output(' }') elseif self.ptr == '&' then output(' ',push_func,'(tolua_S,(void*)&tolua_ret,"',t,'");') else if local_constructor then output(' ',push_func,'(tolua_S,(void *)tolua_ret,"',t,'");') output(' tolua_register_gc(tolua_S,lua_gettop(tolua_S));') else output(' ',push_func,'(tolua_S,(void*)tolua_ret,"',t,'");') end end end output(' }') output(' return 1;') output('#ifndef TOLUA_RELEASE\n') output('tolua_lerror:\n') output(' tolua_error(tolua_S,"'..output_error_hook("#ferror in function \'%s\'.", self.lname)..'",&tolua_err);') output(' return 0;') output('#endif\n') output('}') output('#endif //#ifndef TOLUA_DISABLE\n') output('\n') end -- Internal constructor function _Operator (t) setmetatable(t,classOperator) if t.const ~= 'const' and t.const ~= '' then error("#invalid 'const' specification") end append(t) if not t:inclass() then error("#operator can only be defined as class member") end --t.name = t.name .. "_" .. (_TM[t.kind] or t.kind) t.cname = t:cfuncname("tolua")..t:overload(t) t.name = "operator" .. t.kind -- set appropriate calling name return t end -- Constructor function Operator (d,k,a,c) local op_k = string.gsub(k, "^%s*", "") op_k = string.gsub(k, "%s*$", "") --if string.find(k, "^[%w_:%d<>%*%&]+$") then if d == "operator" and k ~= '' then d = k.." operator" elseif not _TM[op_k] then if flags['W'] then error("tolua: no support for operator" .. f.kind) else warning("No support for operator "..op_k..", ignoring") return nil end end local ref = '' local t = split_c_tokens(strsub(a,2,strlen(a)-1),',') -- eliminate braces local i=1 local l = {n=0} while t[i] do l.n = l.n+1 l[l.n] = Declaration(t[i],'var') i = i+1 end if k == '[]' then local _ _, _, ref = strfind(d,'(&)') d = gsub(d,'&','') elseif k=='&[]' then l.n = l.n+1 l[l.n] = Declaration(d,'var') l[l.n].name = 'tolua_value' end local f = Declaration(d,'func') if k == '[]' and (l[1]==nil or isbasic(l[1].type)~='number') then error('operator[] can only be defined for numeric index.') end f.args = l f.const = c f.kind = op_k f.lname = "."..(_TM[f.kind] or f.kind) if not _TM[f.kind] then f.cast_operator = true end if f.kind == '[]' and ref=='&' and f.const~='const' then Operator(d,'&'..k,a,c) -- create correspoding set operator end return _Operator(f) end tolua++-1.0.93/src/bin/lua/namespace.lua0000644000175000017500000000223410343424077017130 0ustar cesarecesare-- tolua: namespace class -- Written by Waldemar Celes -- TeCGraf/PUC-Rio -- Jul 2003 -- $Id: $ -- This code is free software; you can redistribute it and/or modify it. -- The software provided hereunder is on an "as is" basis, and -- the author has no obligation to provide maintenance, support, updates, -- enhancements, or modifications. -- Namespace class -- Represents a namesapce definition. -- Stores the following fields: -- name = class name -- {i} = list of members classNamespace = { classtype = 'namespace', name = '', } classNamespace.__index = classNamespace setmetatable(classNamespace,classModule) -- Print method function classNamespace:print (ident,close) print(ident.."Namespace{") print(ident.." name = '"..self.name.."',") local i=1 while self[i] do self[i]:print(ident.." ",",") i = i+1 end print(ident.."}"..close) end -- Internal constructor function _Namespace (t) setmetatable(t,classNamespace) append(t) return t end -- Constructor -- Expects the name and the body of the namespace. function Namespace (n,b) local c = _Namespace(_Container{name=n}) push(c) c:parse(strsub(b,2,strlen(b)-1)) -- eliminate braces pop() end tolua++-1.0.93/src/bin/lua/code.lua0000644000175000017500000000473011106345631016105 0ustar cesarecesare-- tolua: code class -- Written by Waldemar Celes -- TeCGraf/PUC-Rio -- Jul 1999 -- $Id: $ -- This code is free software; you can redistribute it and/or modify it. -- The software provided hereunder is on an "as is" basis, and -- the author has no obligation to provide maintenance, support, updates, -- enhancements, or modifications. -- global code_n = 1 -- Code class -- Represents Lua code to be compiled and included -- in the initialization function. -- The following fields are stored: -- text = text code classCode = { text = '', } classCode.__index = classCode setmetatable(classCode,classFeature) -- register code function classCode:register (pre) pre = pre or '' -- clean Lua code local s = clean(self.text) if not s then --print(self.text) error("parser error in embedded code") end -- get first line local _, _, first_line=string.find(self.text, "^([^\n\r]*)") if string.find(first_line, "^%s*%-%-") then if string.find(first_line, "^%-%-##") then first_line = string.gsub(first_line, "^%-%-##", "") if flags['C'] then s = string.gsub(s, "^%-%-##[^\n\r]*\n", "") end end else first_line = "" end -- pad to 16 bytes local npad = 16 - (#s % 16) local spad = "" for i=1,npad do spad = spad .. "-" end s = s..spad -- convert to C output('\n'..pre..'{ /* begin embedded lua code */\n') output(pre..' int top = lua_gettop(tolua_S);') output(pre..' static const unsigned char B[] = {\n ') local t={n=0} local b = gsub(s,'(.)',function (c) local e = '' t.n=t.n+1 if t.n==15 then t.n=0 e='\n'..pre..' ' end return format('%3u,%s',strbyte(c),e) end ) output(b..strbyte(" ")) output('\n'..pre..' };\n') if first_line and first_line ~= "" then output(pre..' tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: '..first_line..'");') else output(pre..' tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code '..code_n..'");') end output(pre..' lua_settop(tolua_S, top);') output(pre..'} /* end of embedded lua code */\n\n') code_n = code_n +1 end -- Print method function classCode:print (ident,close) print(ident.."Code{") print(ident.." text = [["..self.text.."]],") print(ident.."}"..close) end -- Internal constructor function _Code (t) setmetatable(t,classCode) append(t) return t end -- Constructor -- Expects a string representing the code text function Code (l) return _Code { text = l } end tolua++-1.0.93/src/bin/lua/variable.lua0000644000175000017500000001760511106345631016765 0ustar cesarecesare-- tolua: variable class -- Written by Waldemar Celes -- TeCGraf/PUC-Rio -- Jul 1998 -- $Id: $ -- This code is free software; you can redistribute it and/or modify it. -- The software provided hereunder is on an "as is" basis, and -- the author has no obligation to provide maintenance, support, updates, -- enhancements, or modifications. -- Variable class -- Represents a extern variable or a public member of a class. -- Stores all fields present in a declaration. classVariable = { _get = {}, -- mapped get functions _set = {}, -- mapped set functions } classVariable.__index = classVariable setmetatable(classVariable,classDeclaration) -- Print method function classVariable:print (ident,close) print(ident.."Variable{") print(ident.." mod = '"..self.mod.."',") print(ident.." type = '"..self.type.."',") print(ident.." ptr = '"..self.ptr.."',") print(ident.." name = '"..self.name.."',") if self.dim then print(ident.." dim = '"..self.dim.."',") end print(ident.." def = '"..self.def.."',") print(ident.." ret = '"..self.ret.."',") print(ident.."}"..close) end -- Generates C function name function classVariable:cfuncname (prefix) local parent = "" local unsigned = "" local ptr = "" local p = self:inmodule() or self:innamespace() or self:inclass() if p then if self.parent.classtype == 'class' then parent = "_" .. self.parent.type else parent = "_" .. p end end if strfind(self.mod,"(unsigned)") then unsigned = "_unsigned" end if self.ptr == "*" then ptr = "_ptr" elseif self.ptr == "&" then ptr = "_ref" end local name = prefix .. parent .. unsigned .. "_" .. gsub(self.lname or self.name,".*::","") .. ptr name = clean_template(name) return name end -- check if it is a variable function classVariable:isvariable () return true end -- get variable value function classVariable:getvalue (class,static, prop_get) local name if prop_get then name = prop_get.."()" else name = self.name end if class and static then return self.parent.type..'::'..name elseif class then return 'self->'..name else return name end end -- get variable pointer value function classVariable:getpointervalue (class,static) if class and static then return class..'::p' elseif class then return 'self->p' else return 'p' end end -- Write binding functions function classVariable:supcode () local class = self:inclass() local prop_get,prop_set if string.find(self.mod, 'tolua_property') then local _,_,type = string.find(self.mod, "tolua_property__([^%s]*)") type = type or "default" prop_get,prop_set = get_property_methods(type, self.name) self.mod = string.gsub(self.mod, "tolua_property[^%s]*", "") end -- get function ------------------------------------------------ if class then output("/* get function:",self.name," of class ",class," */") else output("/* get function:",self.name," */") end self.cgetname = self:cfuncname("tolua_get") output("#ifndef TOLUA_DISABLE_"..self.cgetname) output("\nstatic int",self.cgetname,"(lua_State* tolua_S)") output("{") -- declare self, if the case local _,_,static = strfind(self.mod,'^%s*(static)') if class and static==nil then output(' ',self.parent.type,'*','self = ') output('(',self.parent.type,'*) ') local to_func = get_to_function(self.parent.type) output(to_func,'(tolua_S,1,0);') elseif static then _,_,self.mod = strfind(self.mod,'^%s*static%s%s*(.*)') end -- check self value if class and static==nil then output('#ifndef TOLUA_RELEASE\n') output(' if (!self) tolua_error(tolua_S,"'..output_error_hook("invalid \'self\' in accessing variable \'%s\'", self.name)..'",NULL);'); output('#endif\n') end -- return value if string.find(self.mod, 'tolua_inherits') then local push_func = get_push_function(self.type) output('#ifdef __cplusplus\n') output(' ',push_func,'(tolua_S,(void*)static_cast<'..self.type..'*>(self), "',self.type,'");') output('#else\n') output(' ',push_func,'(tolua_S,(void*)(('..self.type..'*)self), "',self.type,'");') output('#endif\n') else local t,ct = isbasic(self.type) if t then output(' tolua_push'..t..'(tolua_S,(',ct,')'..self:getvalue(class,static,prop_get)..');') else local push_func = get_push_function(self.type) t = self.type if self.ptr == '&' or self.ptr == '' then output(' ',push_func,'(tolua_S,(void*)&'..self:getvalue(class,static,prop_get)..',"',t,'");') else output(' ',push_func,'(tolua_S,(void*)'..self:getvalue(class,static,prop_get)..',"',t,'");') end end end output(' return 1;') output('}') output('#endif //#ifndef TOLUA_DISABLE\n') output('\n') -- set function ------------------------------------------------ if not (strfind(self.type,'const%s+') or string.find(self.mod, 'tolua_readonly') or string.find(self.mod, 'tolua_inherits')) then if class then output("/* set function:",self.name," of class ",class," */") else output("/* set function:",self.name," */") end self.csetname = self:cfuncname("tolua_set") output("#ifndef TOLUA_DISABLE_"..self.csetname) output("\nstatic int",self.csetname,"(lua_State* tolua_S)") output("{") -- declare self, if the case if class and static==nil then output(' ',self.parent.type,'*','self = ') output('(',self.parent.type,'*) ') local to_func = get_to_function(self.parent.type) output(to_func,'(tolua_S,1,0);') -- check self value end -- check types output('#ifndef TOLUA_RELEASE\n') output(' tolua_Error tolua_err;') if class and static==nil then output(' if (!self) tolua_error(tolua_S,"'..output_error_hook("invalid \'self\' in accessing variable \'%s\'", self.name)..'",NULL);'); elseif static then _,_,self.mod = strfind(self.mod,'^%s*static%s%s*(.*)') end -- check variable type output(' if ('..self:outchecktype(2)..')') output(' tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err);') output('#endif\n') -- assign value local def = 0 if self.def ~= '' then def = self.def end if self.type == 'char*' and self.dim ~= '' then -- is string output(' strncpy((char*)') if class and static then output(self.parent.type..'::'..self.name) elseif class then output('self->'..self.name) else output(self.name) end output(',(const char*)tolua_tostring(tolua_S,2,',def,'),',self.dim,'-1);') else local ptr = '' if self.ptr~='' then ptr = '*' end output(' ') local name = prop_set or self.name if class and static then output(self.parent.type..'::'..name) elseif class then output('self->'..name) else output(name) end local t = isbasic(self.type) if prop_set then output('(') else output(' = ') end if not t and ptr=='' then output('*') end output('((',self.mod,self.type) if not t then output('*') end output(') ') if t then if isenum(self.type) then output('(int) ') end output('tolua_to'..t,'(tolua_S,2,',def,'))') else local to_func = get_to_function(self.type) output(to_func,'(tolua_S,2,',def,'))') end if prop_set then output(")") end output(";") end output(' return 0;') output('}') output('#endif //#ifndef TOLUA_DISABLE\n') output('\n') end end function classVariable:register (pre) if not self:check_public_access() then return end pre = pre or '' local parent = self:inmodule() or self:innamespace() or self:inclass() if not parent then if classVariable._warning==nil then warning("Mapping variable to global may degrade performance") classVariable._warning = 1 end end if self.csetname then output(pre..'tolua_variable(tolua_S,"'..self.lname..'",'..self.cgetname..','..self.csetname..');') else output(pre..'tolua_variable(tolua_S,"'..self.lname..'",'..self.cgetname..',NULL);') end end -- Internal constructor function _Variable (t) setmetatable(t,classVariable) append(t) return t end -- Constructor -- Expects a string representing the variable declaration. function Variable (s) return _Variable (Declaration(s,'var')) end tolua++-1.0.93/src/bin/lua/container.lua0000644000175000017500000004200610777610040017155 0ustar cesarecesare-- tolua: container abstract class -- Written by Waldemar Celes -- TeCGraf/PUC-Rio -- Jul 1998 -- $Id: $ -- This code is free software; you can redistribute it and/or modify it. -- The software provided hereunder is on an "as is" basis, and -- the author has no obligation to provide maintenance, support, updates, -- enhancements, or modifications. -- table to store namespaced typedefs/enums in global scope global_typedefs = {} global_enums = {} -- Container class -- Represents a container of features to be bound -- to lua. classContainer = { curr = nil, } classContainer.__index = classContainer setmetatable(classContainer,classFeature) -- output tags function classContainer:decltype () push(self) local i=1 while self[i] do self[i]:decltype() i = i+1 end pop() end -- write support code function classContainer:supcode () if not self:check_public_access() then return end push(self) local i=1 while self[i] do if self[i]:check_public_access() then self[i]:supcode() end i = i+1 end pop() end function classContainer:hasvar () local i=1 while self[i] do if self[i]:isvariable() then return 1 end i = i+1 end return 0 end -- Internal container constructor function _Container (self) setmetatable(self,classContainer) self.n = 0 self.typedefs = {tolua_n=0} self.usertypes = {} self.enums = {tolua_n=0} self.lnames = {} return self end -- push container function push (t) t.prox = classContainer.curr classContainer.curr = t end -- pop container function pop () --print("name",classContainer.curr.name) --foreach(classContainer.curr.usertypes,print) --print("______________") classContainer.curr = classContainer.curr.prox end -- get current namespace function getcurrnamespace () return getnamespace(classContainer.curr) end -- append to current container function append (t) return classContainer.curr:append(t) end -- append typedef to current container function appendtypedef (t) return classContainer.curr:appendtypedef(t) end -- append usertype to current container function appendusertype (t) return classContainer.curr:appendusertype(t) end -- append enum to current container function appendenum (t) return classContainer.curr:appendenum(t) end -- substitute typedef function applytypedef (mod,type) return classContainer.curr:applytypedef(mod,type) end -- check if is type function findtype (type) local t = classContainer.curr:findtype(type) return t end -- check if is typedef function istypedef (type) return classContainer.curr:istypedef(type) end -- get fulltype (with namespace) function fulltype (t) local curr = classContainer.curr while curr do if curr then if curr.typedefs and curr.typedefs[t] then return curr.typedefs[t] elseif curr.usertypes and curr.usertypes[t] then return curr.usertypes[t] end end curr = curr.prox end return t end -- checks if it requires collection function classContainer:requirecollection (t) push(self) local i=1 local r = false while self[i] do r = self[i]:requirecollection(t) or r i = i+1 end pop() return r end -- get namesapce function getnamespace (curr) local namespace = '' while curr do if curr and ( curr.classtype == 'class' or curr.classtype == 'namespace') then namespace = (curr.original_name or curr.name) .. '::' .. namespace --namespace = curr.name .. '::' .. namespace end curr = curr.prox end return namespace end -- get namespace (only namespace) function getonlynamespace () local curr = classContainer.curr local namespace = '' while curr do if curr.classtype == 'class' then return namespace elseif curr.classtype == 'namespace' then namespace = curr.name .. '::' .. namespace end curr = curr.prox end return namespace end -- check if is enum function isenum (type) return classContainer.curr:isenum(type) end -- append feature to container function classContainer:append (t) self.n = self.n + 1 self[self.n] = t t.parent = self end -- append typedef function classContainer:appendtypedef (t) local namespace = getnamespace(classContainer.curr) self.typedefs.tolua_n = self.typedefs.tolua_n + 1 self.typedefs[self.typedefs.tolua_n] = t self.typedefs[t.utype] = namespace .. t.utype global_typedefs[namespace..t.utype] = t t.ftype = findtype(t.type) or t.type --print("appending typedef "..t.utype.." as "..namespace..t.utype.." with ftype "..t.ftype) append_global_type(namespace..t.utype) if t.ftype and isenum(t.ftype) then global_enums[namespace..t.utype] = true end end -- append usertype: return full type function classContainer:appendusertype (t) local container if t == (self.original_name or self.name) then container = self.prox else container = self end local ft = getnamespace(container) .. t container.usertypes[t] = ft _usertype[ft] = ft return ft end -- append enum function classContainer:appendenum (t) local namespace = getnamespace(classContainer.curr) self.enums.tolua_n = self.enums.tolua_n + 1 self.enums[self.enums.tolua_n] = t global_enums[namespace..t.name] = t end -- determine lua function name overload function classContainer:overload (lname) if not self.lnames[lname] then self.lnames[lname] = 0 else self.lnames[lname] = self.lnames[lname] + 1 end return format("%02d",self.lnames[lname]) end -- applies typedef: returns the 'the facto' modifier and type function classContainer:applytypedef (mod,type) if global_typedefs[type] then --print("found typedef "..global_typedefs[type].type) local mod1, type1 = global_typedefs[type].mod, global_typedefs[type].ftype local mod2, type2 = applytypedef(mod.." "..mod1, type1) --return mod2 .. ' ' .. mod1, type2 return mod2, type2 end do return mod,type end end -- check if it is a typedef function classContainer:istypedef (type) local env = self while env do if env.typedefs then local i=1 while env.typedefs[i] do if env.typedefs[i].utype == type then return type end i = i+1 end end env = env.parent end return nil end function find_enum_var(var) if tonumber(var) then return var end local c = classContainer.curr while c do local ns = getnamespace(c) for k,v in pairs(_global_enums) do if match_type(var, v, ns) then return v end end if c.base and c.base ~= '' then c = _global_classes[c:findtype(c.base)] else c = nil end end return var end -- check if is a registered type: return full type or nil function classContainer:findtype (t) t = string.gsub(t, "=.*", "") if _basic[t] then return t end local _,_,em = string.find(t, "([&%*])%s*$") t = string.gsub(t, "%s*([&%*])%s*$", "") p = self while p and type(p)=='table' do local st = getnamespace(p) for i=_global_types.n,1,-1 do -- in reverse order if match_type(t, _global_types[i], st) then return _global_types[i]..(em or "") end end if p.base and p.base ~= '' and p.base ~= t then --print("type is "..t..", p is "..p.base.." self.type is "..self.type.." self.name is "..self.name) p = _global_classes[p:findtype(p.base)] else p = nil end end return nil end function append_global_type(t, class) _global_types.n = _global_types.n +1 _global_types[_global_types.n] = t _global_types_hash[t] = 1 if class then append_class_type(t, class) end end function append_class_type(t,class) if _global_classes[t] then class.flags = _global_classes[t].flags class.lnames = _global_classes[t].lnames if _global_classes[t].base and (_global_classes[t].base ~= '') then class.base = _global_classes[t].base or class.base end end _global_classes[t] = class class.flags = class.flags or {} end function match_type(childtype, regtype, st) --print("findtype "..childtype..", "..regtype..", "..st) local b,e = string.find(regtype, childtype, -string.len(childtype), true) if b then if e == string.len(regtype) and (b == 1 or (string.sub(regtype, b-1, b-1) == ':' and string.sub(regtype, 1, b-1) == string.sub(st, 1, b-1))) then return true end end return false end function findtype_on_childs(self, t) local tchild if self.classtype == 'class' or self.classtype == 'namespace' then for k,v in ipairs(self) do if v.classtype == 'class' or v.classtype == 'namespace' then if v.typedefs and v.typedefs[t] then return v.typedefs[t] elseif v.usertypes and v.usertypes[t] then return v.usertypes[t] end tchild = findtype_on_childs(v, t) if tchild then return tchild end end end end return nil end function classContainer:isenum (type) if global_enums[type] then return type else return false end local basetype = gsub(type,"^.*::","") local env = self while env do if env.enums then local i=1 while env.enums[i] do if env.enums[i].name == basetype then return true end i = i+1 end end env = env.parent end return false end methodisvirtual = false -- a global -- parse chunk function classContainer:doparse (s) --print ("parse "..s) -- try the parser hook do local sub = parser_hook(s) if sub then return sub end end -- try the null statement do local b,e,code = string.find(s, "^%s*;") if b then return strsub(s,e+1) end end -- try empty verbatim line do local b,e,code = string.find(s, "^%s*$\n") if b then return strsub(s,e+1) end end -- try Lua code do local b,e,code = strfind(s,"^%s*(%b\1\2)") if b then Code(strsub(code,2,-2)) return strsub(s,e+1) end end -- try C code do local b,e,code = strfind(s,"^%s*(%b\3\4)") if b then code = '{'..strsub(code,2,-2)..'\n}\n' Verbatim(code,'r') -- verbatim code for 'r'egister fragment return strsub(s,e+1) end end -- try C code for preamble section do local b,e,code = string.find(s, "^%s*(%b\5\6)") if b then code = string.sub(code, 2, -2).."\n" Verbatim(code, '') return string.sub(s, e+1) end end -- try default_property directive do local b,e,ptype = strfind(s, "^%s*TOLUA_PROPERTY_TYPE%s*%(+%s*([^%)%s]*)%s*%)+%s*;?") if b then if not ptype or ptype == "" then ptype = "default" end self:set_property_type(ptype) return strsub(s, e+1) end end -- try protected_destructor directive do local b,e = string.find(s, "^%s*TOLUA_PROTECTED_DESTRUCTOR%s*;?") if b then if self.set_protected_destructor then self:set_protected_destructor(true) end return strsub(s, e+1) end end -- try 'extern' keyword do local b,e = string.find(s, "^%s*extern%s+") if b then -- do nothing return strsub(s, e+1) end end -- try 'virtual' keyworkd do local b,e = string.find(s, "^%s*virtual%s+") if b then methodisvirtual = true return strsub(s, e+1) end end -- try labels (public, private, etc) do local b,e = string.find(s, "^%s*%w*%s*:[^:]") if b then return strsub(s, e) -- preserve the [^:] end end -- try module do local b,e,name,body = strfind(s,"^%s*module%s%s*([_%w][_%w]*)%s*(%b{})%s*") if b then _curr_code = strsub(s,b,e) Module(name,body) return strsub(s,e+1) end end -- try namesapce do local b,e,name,body = strfind(s,"^%s*namespace%s%s*([_%w][_%w]*)%s*(%b{})%s*;?") if b then _curr_code = strsub(s,b,e) Namespace(name,body) return strsub(s,e+1) end end -- try define do local b,e,name = strfind(s,"^%s*#define%s%s*([^%s]*)[^\n]*\n%s*") if b then _curr_code = strsub(s,b,e) Define(name) return strsub(s,e+1) end end -- try enumerates do local b,e,name,body,varname = strfind(s,"^%s*enum%s+(%S*)%s*(%b{})%s*([^%s;]*)%s*;?%s*") if b then --error("#Sorry, declaration of enums and variables on the same statement is not supported.\nDeclare your variable separately (example: '"..name.." "..varname..";')") _curr_code = strsub(s,b,e) Enumerate(name,body,varname) return strsub(s,e+1) end end -- do -- local b,e,name,body = strfind(s,"^%s*enum%s+(%S*)%s*(%b{})%s*;?%s*") -- if b then -- _curr_code = strsub(s,b,e) -- Enumerate(name,body) -- return strsub(s,e+1) -- end -- end do local b,e,body,name = strfind(s,"^%s*typedef%s+enum[^{]*(%b{})%s*([%w_][^%s]*)%s*;%s*") if b then _curr_code = strsub(s,b,e) Enumerate(name,body) return strsub(s,e+1) end end -- try operator do local b,e,decl,kind,arg,const = strfind(s,"^%s*([_%w][_%w%s%*&:<>,]-%s+operator)%s*([^%s][^%s]*)%s*(%b())%s*(c?o?n?s?t?)%s*;%s*") if not b then -- try inline b,e,decl,kind,arg,const = strfind(s,"^%s*([_%w][_%w%s%*&:<>,]-%s+operator)%s*([^%s][^%s]*)%s*(%b())%s*(c?o?n?s?t?)[%s\n]*%b{}%s*;?%s*") end if not b then -- try cast operator b,e,decl,kind,arg,const = strfind(s, "^%s*(operator)%s+([%w_:%d<>%*%&%s]+)%s*(%b())%s*(c?o?n?s?t?)"); if b then local _,ie = string.find(s, "^%s*%b{}", e+1) if ie then e = ie end end end if b then _curr_code = strsub(s,b,e) Operator(decl,kind,arg,const) return strsub(s,e+1) end end -- try function do --local b,e,decl,arg,const = strfind(s,"^%s*([~_%w][_@%w%s%*&:<>]*[_%w])%s*(%b())%s*(c?o?n?s?t?)%s*=?%s*0?%s*;%s*") local b,e,decl,arg,const,virt = strfind(s,"^%s*([^%(\n]+)%s*(%b())%s*(c?o?n?s?t?)%s*(=?%s*0?)%s*;%s*") if not b then -- try function with template b,e,decl,arg,const = strfind(s,"^%s*([~_%w][_@%w%s%*&:<>]*[_%w]%b<>)%s*(%b())%s*(c?o?n?s?t?)%s*=?%s*0?%s*;%s*") end if not b then -- try a single letter function name b,e,decl,arg,const = strfind(s,"^%s*([_%w])%s*(%b())%s*(c?o?n?s?t?)%s*;%s*") end if not b then -- try function pointer b,e,decl,arg,const = strfind(s,"^%s*([^%(;\n]+%b())%s*(%b())%s*;%s*") if b then decl = string.gsub(decl, "%(%s*%*([^%)]*)%s*%)", " %1 ") end end if b then if virt and string.find(virt, "[=0]") then if self.flags then self.flags.pure_virtual = true end end _curr_code = strsub(s,b,e) Function(decl,arg,const) return strsub(s,e+1) end end -- try inline function do local b,e,decl,arg,const = strfind(s,"^%s*([^%(\n]+)%s*(%b())%s*(c?o?n?s?t?)[^;{]*%b{}%s*;?%s*") --local b,e,decl,arg,const = strfind(s,"^%s*([~_%w][_@%w%s%*&:<>]*[_%w>])%s*(%b())%s*(c?o?n?s?t?)[^;]*%b{}%s*;?%s*") if not b then -- try a single letter function name b,e,decl,arg,const = strfind(s,"^%s*([_%w])%s*(%b())%s*(c?o?n?s?t?).-%b{}%s*;?%s*") end if b then _curr_code = strsub(s,b,e) Function(decl,arg,const) return strsub(s,e+1) end end -- try class do local b,e,name,base,body base = '' body = '' b,e,name = strfind(s,"^%s*class%s*([_%w][_%w@]*)%s*;") -- dummy class local dummy = false if not b then b,e,name = strfind(s,"^%s*struct%s*([_%w][_%w@]*)%s*;") -- dummy struct if not b then b,e,name,base,body = strfind(s,"^%s*class%s*([_%w][_%w@]*)%s*([^{]-)%s*(%b{})%s*") if not b then b,e,name,base,body = strfind(s,"^%s*struct%s+([_%w][_%w@]*)%s*([^{]-)%s*(%b{})%s*") if not b then b,e,name,base,body = strfind(s,"^%s*union%s*([_%w][_%w@]*)%s*([^{]-)%s*(%b{})%s*") if not b then base = '' b,e,body,name = strfind(s,"^%s*typedef%s%s*struct%s%s*[_%w]*%s*(%b{})%s*([_%w][_%w@]*)%s*;") end end end else dummy = 1 end else dummy = 1 end if b then if base ~= '' then base = string.gsub(base, "^%s*:%s*", "") base = string.gsub(base, "%s*public%s*", "") base = split(base, ",") --local b,e --b,e,base = strfind(base,".-([_%w][_%w<>,:]*)$") else base = {} end _curr_code = strsub(s,b,e) Class(name,base,body) if not dummy then varb,vare,varname = string.find(s, "^%s*([_%w]+)%s*;", e+1) if varb then Variable(name.." "..varname) e = vare end end return strsub(s,e+1) end end -- try typedef do local b,e,types = strfind(s,"^%s*typedef%s%s*(.-)%s*;%s*") if b then _curr_code = strsub(s,b,e) Typedef(types) return strsub(s,e+1) end end -- try variable do local b,e,decl = strfind(s,"^%s*([_%w][_@%s%w%d%*&:<>,]*[_%w%d])%s*;%s*") if b then _curr_code = strsub(s,b,e) local list = split_c_tokens(decl, ",") Variable(list[1]) if list.n > 1 then local _,_,type = strfind(list[1], "(.-)%s+([^%s]*)$"); local i =2; while list[i] do Variable(type.." "..list[i]) i=i+1 end end --Variable(decl) return strsub(s,e+1) end end -- try string do local b,e,decl = strfind(s,"^%s*([_%w]?[_%s%w%d]-char%s+[_@%w%d]*%s*%[%s*%S+%s*%])%s*;%s*") if b then _curr_code = strsub(s,b,e) Variable(decl) return strsub(s,e+1) end end -- try array do local b,e,decl = strfind(s,"^%s*([_%w][][_@%s%w%d%*&:<>]*[]_%w%d])%s*;%s*") if b then _curr_code = strsub(s,b,e) Array(decl) return strsub(s,e+1) end end -- no matching if gsub(s,"%s%s*","") ~= "" then _curr_code = s error("#parse error") else return "" end end function classContainer:parse (s) --self.curr_member_access = nil while s ~= '' do s = self:doparse(s) methodisvirtual = false end end -- property types function get_property_type() return classContainer.curr:get_property_type() end function classContainer:set_property_type(ptype) ptype = string.gsub(ptype, "^%s*", "") ptype = string.gsub(ptype, "%s*$", "") self.property_type = ptype end function classContainer:get_property_type() return self.property_type or (self.parent and self.parent:get_property_type()) or "default" end tolua++-1.0.93/src/bin/lua/compat-5.1.lua0000755000175000017500000000165710642363272016774 0ustar cesarecesareif string.find(_VERSION, "5%.0") then return end -- "loadfile" local function pp_dofile(path) local loaded = false local getfile = function() if loaded then return else local file,err = io.open(path) if not file then error("error loading file "..path..": "..err) end local ret = file:read("*a") file:close() ret = string.gsub(ret, "%.%.%.%s*%)", "...) local arg = {n=select('#', ...), ...};") loaded = true return ret end end local f = load(getfile, path) if not f then error("error loading file "..path) end return f() end old_dofile = dofile dofile = pp_dofile -- string.gsub --[[ local ogsub = string.gsub local function compgsub(a,b,c,d) if type(c) == "function" then local oc = c c = function (...) return oc(...) or '' end end return ogsub(a,b,c,d) end string.repl = ogsub --]] --string.gsub = compgsub tolua++-1.0.93/src/bin/lua/all.lua0000644000175000017500000000150410642363272015744 0ustar cesarecesaredofile(path.."compat-5.1.lua") dofile(path.."compat.lua") dofile(path.."basic.lua") dofile(path.."feature.lua") dofile(path.."verbatim.lua") dofile(path.."code.lua") dofile(path.."typedef.lua") dofile(path.."container.lua") dofile(path.."package.lua") dofile(path.."module.lua") dofile(path.."namespace.lua") dofile(path.."define.lua") dofile(path.."enumerate.lua") dofile(path.."declaration.lua") dofile(path.."variable.lua") dofile(path.."array.lua") dofile(path.."function.lua") dofile(path.."operator.lua") dofile(path.."template_class.lua") dofile(path.."class.lua") dofile(path.."clean.lua") --dofile(path.."custom.lua") dofile(path.."doit.lua") local err,msg = xpcall(doit, debug.traceback) if not err then --print("**** msg is "..tostring(msg)) local _,_,label,msg = strfind(msg,"(.-:.-:%s*)(.*)") tolua_error(msg,label) end tolua++-1.0.93/src/bin/lua/compat.lua0000644000175000017500000000777710343424077016500 0ustar cesarecesare------------------------------------------------------------------- -- Real globals -- _ALERT -- _ERRORMESSAGE -- _VERSION -- _G -- assert -- error -- metatable -- next -- print -- require -- tonumber -- tostring -- type -- unpack ------------------------------------------------------------------- -- collectgarbage -- gcinfo -- globals -- call -> protect(f, err) -- loadfile -- loadstring -- rawget -- rawset -- getargs = Main.getargs ?? rawtype = type function do_ (f, err) if not f then print(err); return end local a,b = pcall(f) if not a then print(b); return nil else return b or true end end function dostring(s) return do_(loadstring(s)) end -- function dofile(s) return do_(loadfile(s)) end ------------------------------------------------------------------- -- Table library local tab = table foreach = tab.foreach foreachi = tab.foreachi getn = tab.getn tinsert = tab.insert tremove = tab.remove sort = tab.sort ------------------------------------------------------------------- -- Debug library local dbg = debug getinfo = dbg.getinfo getlocal = dbg.getlocal setcallhook = function () error"`setcallhook' is deprecated" end setlinehook = function () error"`setlinehook' is deprecated" end setlocal = dbg.setlocal ------------------------------------------------------------------- -- math library local math = math abs = math.abs acos = function (x) return math.deg(math.acos(x)) end asin = function (x) return math.deg(math.asin(x)) end atan = function (x) return math.deg(math.atan(x)) end atan2 = function (x,y) return math.deg(math.atan2(x,y)) end ceil = math.ceil cos = function (x) return math.cos(math.rad(x)) end deg = math.deg exp = math.exp floor = math.floor frexp = math.frexp ldexp = math.ldexp log = math.log log10 = math.log10 max = math.max min = math.min mod = math.mod PI = math.pi --??? pow = math.pow rad = math.rad random = math.random randomseed = math.randomseed sin = function (x) return math.sin(math.rad(x)) end sqrt = math.sqrt tan = function (x) return math.tan(math.rad(x)) end ------------------------------------------------------------------- -- string library local str = string strbyte = str.byte strchar = str.char strfind = str.find format = str.format gsub = str.gsub strlen = str.len strlower = str.lower strrep = str.rep strsub = str.sub strupper = str.upper ------------------------------------------------------------------- -- os library clock = os.clock date = os.date difftime = os.difftime execute = os.execute --? exit = os.exit getenv = os.getenv remove = os.remove rename = os.rename setlocale = os.setlocale time = os.time tmpname = os.tmpname ------------------------------------------------------------------- -- compatibility only getglobal = function (n) return _G[n] end setglobal = function (n,v) _G[n] = v end ------------------------------------------------------------------- local io, tab = io, table -- IO library (files) _STDIN = io.stdin _STDERR = io.stderr _STDOUT = io.stdout _INPUT = io.stdin _OUTPUT = io.stdout seek = io.stdin.seek -- sick ;-) tmpfile = io.tmpfile closefile = io.close openfile = io.open function flush (f) if f then f:flush() else _OUTPUT:flush() end end function readfrom (name) if name == nil then local f, err, cod = io.close(_INPUT) _INPUT = io.stdin return f, err, cod else local f, err, cod = io.open(name, "r") _INPUT = f or _INPUT return f, err, cod end end function writeto (name) if name == nil then local f, err, cod = io.close(_OUTPUT) _OUTPUT = io.stdout return f, err, cod else local f, err, cod = io.open(name, "w") _OUTPUT = f or _OUTPUT return f, err, cod end end function appendto (name) local f, err, cod = io.open(name, "a") _OUTPUT = f or _OUTPUT return f, err, cod end function read (...) local f = _INPUT if rawtype(arg[1]) == 'userdata' then f = tab.remove(arg, 1) end return f:read(unpack(arg)) end function write (...) local f = _OUTPUT if rawtype(arg[1]) == 'userdata' then f = tab.remove(arg, 1) end return f:write(unpack(arg)) end tolua++-1.0.93/src/bin/lua/enumerate.lua0000644000175000017500000000473610670106204017162 0ustar cesarecesare-- tolua: enumerate class -- Written by Waldemar Celes -- TeCGraf/PUC-Rio -- Jul 1998 -- $Id: enumerate.lua,v 1.3 2000/01/24 20:41:15 celes Exp $ -- This code is free software; you can redistribute it and/or modify it. -- The software provided hereunder is on an "as is" basis, and -- the author has no obligation to provide maintenance, support, updates, -- enhancements, or modifications. -- Enumerate class -- Represents enumeration -- The following fields are stored: -- {i} = list of constant names classEnumerate = { } classEnumerate.__index = classEnumerate setmetatable(classEnumerate,classFeature) -- register enumeration function classEnumerate:register (pre) if not self:check_public_access() then return end pre = pre or '' local nspace = getnamespace(classContainer.curr) local i=1 while self[i] do if self.lnames[i] and self.lnames[i] ~= "" then output(pre..'tolua_constant(tolua_S,"'..self.lnames[i]..'",'..nspace..self[i]..');') end i = i+1 end end -- Print method function classEnumerate:print (ident,close) print(ident.."Enumerate{") print(ident.." name = "..self.name) local i=1 while self[i] do print(ident.." '"..self[i].."'("..self.lnames[i].."),") i = i+1 end print(ident.."}"..close) end -- Internal constructor function _Enumerate (t,varname) setmetatable(t,classEnumerate) append(t) appendenum(t) if varname and varname ~= "" then if t.name ~= "" then Variable(t.name.." "..varname) else local ns = getcurrnamespace() warning("Variable "..ns..varname.." of type is declared as read-only") Variable("tolua_readonly int "..varname) end end local parent = classContainer.curr if parent then t.access = parent.curr_member_access t.global_access = t:check_public_access() end return t end -- Constructor -- Expects a string representing the enumerate body function Enumerate (n,b,varname) b = string.gsub(b, ",[%s\n]*}", "\n}") -- eliminate last ',' local t = split(strsub(b,2,-2),',') -- eliminate braces local i = 1 local e = {n=0} while t[i] do local tt = split(t[i],'=') -- discard initial value e.n = e.n + 1 e[e.n] = tt[1] i = i+1 end -- set lua names i = 1 e.lnames = {} local ns = getcurrnamespace() while e[i] do local t = split(e[i],'@') e[i] = t[1] if not t[2] then t[2] = applyrenaming(t[1]) end e.lnames[i] = t[2] or t[1] _global_enums[ ns..e[i] ] = (ns..e[i]) i = i+1 end e.name = n if n ~= "" then Typedef("int "..n) end return _Enumerate(e, varname) end tolua++-1.0.93/src/bin/lua/class.lua0000644000175000017500000001154510723176467016317 0ustar cesarecesare-- tolua: class class -- Written by Waldemar Celes -- TeCGraf/PUC-Rio -- Jul 1998 -- $Id: $ -- This code is free software; you can redistribute it and/or modify it. -- The software provided hereunder is on an "as is" basis, and -- the author has no obligation to provide maintenance, support, updates, -- enhancements, or modifications. -- Class class -- Represents a class definition. -- Stores the following fields: -- name = class name -- base = class base, if any (only single inheritance is supported) -- {i} = list of members classClass = { classtype = 'class', name = '', base = '', type = '', btype = '', ctype = '', } classClass.__index = classClass setmetatable(classClass,classContainer) -- register class function classClass:register (pre) if not self:check_public_access() then return end pre = pre or '' push(self) if _collect[self.type] then output(pre,'#ifdef __cplusplus\n') output(pre..'tolua_cclass(tolua_S,"'..self.lname..'","'..self.type..'","'..self.btype..'",'.._collect[self.type]..');') output(pre,'#else\n') output(pre..'tolua_cclass(tolua_S,"'..self.lname..'","'..self.type..'","'..self.btype..'",NULL);') output(pre,'#endif\n') else output(pre..'tolua_cclass(tolua_S,"'..self.lname..'","'..self.type..'","'..self.btype..'",NULL);') end if self.extra_bases then for k,base in ipairs(self.extra_bases) do -- not now --output(pre..' tolua_addbase(tolua_S, "'..self.type..'", "'..base..'");') end end output(pre..'tolua_beginmodule(tolua_S,"'..self.lname..'");') local i=1 while self[i] do self[i]:register(pre..' ') i = i+1 end output(pre..'tolua_endmodule(tolua_S);') pop() end -- return collection requirement function classClass:requirecollection (t) if self.flags.protected_destructor or (not self:check_public_access()) then return false end push(self) local r = false local i=1 while self[i] do r = self[i]:requirecollection(t) or r i = i+1 end pop() -- only class that exports destructor can be appropriately collected -- classes that export constructors need to have a collector (overrided by -D flag on command line) if self._delete or ((not flags['D']) and self._new) then --t[self.type] = "tolua_collect_" .. gsub(self.type,"::","_") t[self.type] = "tolua_collect_" .. clean_template(self.type) r = true end return r end -- output tags function classClass:decltype () push(self) self.type = regtype(self.original_name or self.name) self.btype = typevar(self.base) self.ctype = 'const '..self.type if self.extra_bases then for i=1,table.getn(self.extra_bases) do self.extra_bases[i] = typevar(self.extra_bases[i]) end end local i=1 while self[i] do self[i]:decltype() i = i+1 end pop() end -- Print method function classClass:print (ident,close) print(ident.."Class{") print(ident.." name = '"..self.name.."',") print(ident.." base = '"..self.base.."';") print(ident.." lname = '"..self.lname.."',") print(ident.." type = '"..self.type.."',") print(ident.." btype = '"..self.btype.."',") print(ident.." ctype = '"..self.ctype.."',") local i=1 while self[i] do self[i]:print(ident.." ",",") i = i+1 end print(ident.."}"..close) end function classClass:set_protected_destructor(p) self.flags.protected_destructor = self.flags.protected_destructor or p end -- Internal constructor function _Class (t) setmetatable(t,classClass) t:buildnames() append(t) return t end -- Constructor -- Expects the name, the base (array) and the body of the class. function Class (n,p,b) if table.getn(p) > 1 then b = string.sub(b, 1, -2) for i=2,table.getn(p),1 do b = b.."\n tolua_inherits "..p[i].." __"..p[i].."__;\n" end b = b.."\n}" end -- check for template b = string.gsub(b, "^{%s*TEMPLATE_BIND", "{\nTOLUA_TEMPLATE_BIND") local t,_,T,I = string.find(b, '^{%s*TOLUA_TEMPLATE_BIND%s*%(+%s*\"?([^\",]*)\"?%s*,%s*([^%)]*)%s*%)+') if t then -- remove quotes I = string.gsub(I, "\"", "") T = string.gsub(T, "\"", "") -- get type list local types = split_c_tokens(I, ",") -- remove TEMPLATE_BIND line local bs = string.gsub(b, "^{%s*TOLUA_TEMPLATE_BIND[^\n]*\n", "{\n") local Tl = split(T, " ") local tc = TemplateClass(n, p, bs, Tl) tc:throw(types, true) --for i=1,types.n do -- tc:throw(split_c_tokens(types[i], " "), true) --end return end local mbase if p then mbase = table.remove(p, 1) if not p[1] then p = nil end end mbase = mbase and resolve_template_types(mbase) local c local oname = string.gsub(n, "@.*$", "") oname = getnamespace(classContainer.curr)..oname if _global_classes[oname] then c = _global_classes[oname] if mbase and ((not c.base) or c.base == "") then c.base = mbase end else c = _Class(_Container{name=n, base=mbase, extra_bases=p}) local ft = getnamespace(c.parent)..c.original_name append_global_type(ft, c) end push(c) c:parse(strsub(b,2,strlen(b)-1)) -- eliminate braces pop() end tolua++-1.0.93/src/bin/lua/array.lua0000644000175000017500000001462710563230554016322 0ustar cesarecesare-- tolua: array class -- Written by Waldemar Celes -- TeCGraf/PUC-Rio -- Jul 1999 -- $Id: array.lua,v 1.1 2000/11/06 22:03:57 celes Exp $ -- This code is free software; you can redistribute it and/or modify it. -- The software provided hereunder is on an "as is" basis, and -- the author has no obligation to provide maintenance, support, updates, -- enhancements, or modifications. -- Array class -- Represents a extern array variable or a public member of a class. -- Stores all fields present in a declaration. classArray = { } classArray.__index = classArray setmetatable(classArray,classDeclaration) -- Print method function classArray:print (ident,close) print(ident.."Array{") print(ident.." mod = '"..self.mod.."',") print(ident.." type = '"..self.type.."',") print(ident.." ptr = '"..self.ptr.."',") print(ident.." name = '"..self.name.."',") print(ident.." def = '"..self.def.."',") print(ident.." dim = '"..self.dim.."',") print(ident.." ret = '"..self.ret.."',") print(ident.."}"..close) end -- check if it is a variable function classArray:isvariable () return true end -- get variable value function classArray:getvalue (class,static) if class and static then return class..'::'..self.name..'[tolua_index]' elseif class then return 'self->'..self.name..'[tolua_index]' else return self.name..'[tolua_index]' end end -- Write binding functions function classArray:supcode () local class = self:inclass() -- get function ------------------------------------------------ if class then output("/* get function:",self.name," of class ",class," */") else output("/* get function:",self.name," */") end self.cgetname = self:cfuncname("tolua_get") output("#ifndef TOLUA_DISABLE_"..self.cgetname) output("\nstatic int",self.cgetname,"(lua_State* tolua_S)") output("{") output(" int tolua_index;") -- declare self, if the case local _,_,static = strfind(self.mod,'^%s*(static)') if class and static==nil then output(' ',self.parent.type,'*','self;') output(' lua_pushstring(tolua_S,".self");') output(' lua_rawget(tolua_S,1);') output(' self = ') output('(',self.parent.type,'*) ') output('lua_touserdata(tolua_S,-1);') elseif static then _,_,self.mod = strfind(self.mod,'^%s*static%s%s*(.*)') end -- check index output('#ifndef TOLUA_RELEASE\n') output(' {') output(' tolua_Error tolua_err;') output(' if (!tolua_isnumber(tolua_S,2,0,&tolua_err))') output(' tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err);') output(' }') output('#endif\n') if flags['1'] then -- for compatibility with tolua5 ? output(' tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1;') else output(' tolua_index = (int)tolua_tonumber(tolua_S,2,0);') end output('#ifndef TOLUA_RELEASE\n') if self.dim and self.dim ~= '' then output(' if (tolua_index<0 || tolua_index>='..self.dim..')') else output(' if (tolua_index<0)') end output(' tolua_error(tolua_S,"array indexing out of range.",NULL);') output('#endif\n') -- return value local t,ct = isbasic(self.type) local push_func = get_push_function(t) if t then output(' tolua_push'..t..'(tolua_S,(',ct,')'..self:getvalue(class,static)..');') else t = self.type if self.ptr == '&' or self.ptr == '' then output(' ',push_func,'(tolua_S,(void*)&'..self:getvalue(class,static)..',"',t,'");') else output(' ',push_func,'(tolua_S,(void*)'..self:getvalue(class,static)..',"',t,'");') end end output(' return 1;') output('}') output('#endif //#ifndef TOLUA_DISABLE\n') output('\n') -- set function ------------------------------------------------ if not strfind(self.type,'const') then if class then output("/* set function:",self.name," of class ",class," */") else output("/* set function:",self.name," */") end self.csetname = self:cfuncname("tolua_set") output("#ifndef TOLUA_DISABLE_"..self.csetname) output("\nstatic int",self.csetname,"(lua_State* tolua_S)") output("{") -- declare index output(' int tolua_index;') -- declare self, if the case local _,_,static = strfind(self.mod,'^%s*(static)') if class and static==nil then output(' ',self.parent.type,'*','self;') output(' lua_pushstring(tolua_S,".self");') output(' lua_rawget(tolua_S,1);') output(' self = ') output('(',self.parent.type,'*) ') output('lua_touserdata(tolua_S,-1);') elseif static then _,_,self.mod = strfind(self.mod,'^%s*static%s%s*(.*)') end -- check index output('#ifndef TOLUA_RELEASE\n') output(' {') output(' tolua_Error tolua_err;') output(' if (!tolua_isnumber(tolua_S,2,0,&tolua_err))') output(' tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err);') output(' }') output('#endif\n') if flags['1'] then -- for compatibility with tolua5 ? output(' tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1;') else output(' tolua_index = (int)tolua_tonumber(tolua_S,2,0);') end output('#ifndef TOLUA_RELEASE\n') if self.dim and self.dim ~= '' then output(' if (tolua_index<0 || tolua_index>='..self.dim..')') else output(' if (tolua_index<0)') end output(' tolua_error(tolua_S,"array indexing out of range.",NULL);') output('#endif\n') -- assign value local ptr = '' if self.ptr~='' then ptr = '*' end output(' ') if class and static then output(class..'::'..self.name..'[tolua_index]') elseif class then output('self->'..self.name..'[tolua_index]') else output(self.name..'[tolua_index]') end local t = isbasic(self.type) output(' = ') if not t and ptr=='' then output('*') end output('((',self.mod,self.type) if not t then output('*') end output(') ') local def = 0 if self.def ~= '' then def = self.def end if t then output('tolua_to'..t,'(tolua_S,3,',def,'));') else local to_func = get_to_function(self.type) output(to_func,'(tolua_S,3,',def,'));') end output(' return 0;') output('}') output('#endif //#ifndef TOLUA_DISABLE\n') output('\n') end end function classArray:register (pre) if not self:check_public_access() then return end pre = pre or '' if self.csetname then output(pre..'tolua_array(tolua_S,"'..self.lname..'",'..self.cgetname..','..self.csetname..');') else output(pre..'tolua_array(tolua_S,"'..self.lname..'",'..self.cgetname..',NULL);') end end -- Internal constructor function _Array (t) setmetatable(t,classArray) append(t) return t end -- Constructor -- Expects a string representing the variable declaration. function Array (s) return _Array (Declaration(s,'var')) end tolua++-1.0.93/src/bin/lua/verbatim.lua0000644000175000017500000000320310343424077017002 0ustar cesarecesare-- tolua: verbatim class -- Written by Waldemar Celes -- TeCGraf/PUC-Rio -- Jul 1998 -- $Id: verbatim.lua,v 1.3 2000/01/24 20:41:16 celes Exp $ -- This code is free software; you can redistribute it and/or modify it. -- The software provided hereunder is on an "as is" basis, and -- the author has no obligation to provide maintenance, support, updates, -- enhancements, or modifications. -- Verbatim class -- Represents a line translated directed to the binding file. -- The following filds are stored: -- line = line text classVerbatim = { line = '', cond = nil, -- condition: where to generate the code (s=suport, r=register) } classVerbatim.__index = classVerbatim setmetatable(classVerbatim,classFeature) -- preamble verbatim function classVerbatim:preamble () if self.cond == '' then write(self.line) end end -- support code function classVerbatim:supcode () if strfind(self.cond,'s') then write(self.line) write('\n') end end -- register code function classVerbatim:register (pre) if strfind(self.cond,'r') then write(self.line) end end -- Print method function classVerbatim:print (ident,close) print(ident.."Verbatim{") print(ident.." line = '"..self.line.."',") print(ident.."}"..close) end -- Internal constructor function _Verbatim (t) setmetatable(t,classVerbatim) append(t) return t end -- Constructor -- Expects a string representing the text line function Verbatim (l,cond) if strsub(l,1,1) == "'" then l = strsub(l,2) elseif strsub(l,1,1) == '$' then cond = 'sr' -- generates in both suport and register fragments l = strsub(l,2) end return _Verbatim { line = l, cond = cond or '', } end tolua++-1.0.93/src/bin/lua/template_class.lua0000644000175000017500000000344510723176467020212 0ustar cesarecesare _global_templates = {} classTemplateClass = { name = '', body = '', parents = {}, args = {}, -- the template arguments } classTemplateClass.__index = classTemplateClass function classTemplateClass:throw(types, local_scope) --if table.getn(types) ~= table.getn(self.args) then -- error("#invalid parameter count") --end -- replace for i =1 , types.n do local Il = split_c_tokens(types[i], " ") if table.getn(Il) ~= table.getn(self.args) then error("#invalid parameter count for "..types[i]) end local bI = self.body local pI = {} for j = 1,self.args.n do --Tl[j] = findtype(Tl[j]) or Tl[j] bI = string.gsub(bI, "([^_%w])"..self.args[j].."([^_%w])", "%1"..Il[j].."%2") if self.parents then for i=1,table.getn(self.parents) do pI[i] = string.gsub(self.parents[i], "([^_%w]?)"..self.args[j].."([^_%w]?)", "%1"..Il[j].."%2") end end end --local append = "<"..string.gsub(types[i], "%s+", ",")..">" local append = "<"..concat(Il, 1, table.getn(Il), ",")..">" append = string.gsub(append, "%s*,%s*", ",") append = string.gsub(append, ">>", "> >") for i=1,table.getn(pI) do --pI[i] = string.gsub(pI[i], ">>", "> >") pI[i] = resolve_template_types(pI[i]) end bI = string.gsub(bI, ">>", "> >") local n = self.name if local_scope then n = self.local_name end Class(n..append, pI, bI) end end function TemplateClass(name, parents, body, parameters) local o = { parents = parents, body = body, args = parameters, } local oname = string.gsub(name, "@.*$", "") oname = getnamespace(classContainer.curr)..oname o.name = oname o.local_name = name setmetatable(o, classTemplateClass) if _global_templates[oname] then warning("Duplicate declaration of template "..oname) else _global_templates[oname] = o end return o end tolua++-1.0.93/src/bin/lua/function.lua0000644000175000017500000003367111106345631017026 0ustar cesarecesare-- tolua: function class -- Written by Waldemar Celes -- TeCGraf/PUC-Rio -- Jul 1998 -- $Id: $ -- This code is free software; you can redistribute it and/or modify it. -- The software provided hereunder is on an "as is" basis, and -- the author has no obligation to provide maintenance, support, updates, -- enhancements, or modifications. -- Function class -- Represents a function or a class method. -- The following fields are stored: -- mod = type modifiers -- type = type -- ptr = "*" or "&", if representing a pointer or a reference -- name = name -- lname = lua name -- args = list of argument declarations -- const = if it is a method receiving a const "this". classFunction = { mod = '', type = '', ptr = '', name = '', args = {n=0}, const = '', } classFunction.__index = classFunction setmetatable(classFunction,classFeature) -- declare tags function classFunction:decltype () self.type = typevar(self.type) if strfind(self.mod,'const') then self.type = 'const '..self.type self.mod = gsub(self.mod,'const','') end local i=1 while self.args[i] do self.args[i]:decltype() i = i+1 end end -- Write binding function -- Outputs C/C++ binding function. function classFunction:supcode (local_constructor) local overload = strsub(self.cname,-2,-1) - 1 -- indicate overloaded func local nret = 0 -- number of returned values local class = self:inclass() local _,_,static = strfind(self.mod,'^%s*(static)') if class then if self.name == 'new' and self.parent.flags.pure_virtual then -- no constructor for classes with pure virtual methods return end if local_constructor then output("/* method: new_local of class ",class," */") else output("/* method:",self.name," of class ",class," */") end else output("/* function:",self.name," */") end if local_constructor then output("#ifndef TOLUA_DISABLE_"..self.cname.."_local") output("\nstatic int",self.cname.."_local","(lua_State* tolua_S)") else output("#ifndef TOLUA_DISABLE_"..self.cname) output("\nstatic int",self.cname,"(lua_State* tolua_S)") end output("{") -- check types if overload < 0 then output('#ifndef TOLUA_RELEASE\n') end output(' tolua_Error tolua_err;') output(' if (\n') -- check self local narg if class then narg=2 else narg=1 end if class then local func = get_is_function(self.parent.type) local type = self.parent.type if self.name=='new' or static~=nil then func = 'tolua_isusertable' type = self.parent.type end if self.const ~= '' then type = "const "..type end output(' !'..func..'(tolua_S,1,"'..type..'",0,&tolua_err) ||\n') end -- check args if self.args[1].type ~= 'void' then local i=1 while self.args[i] do local btype = isbasic(self.args[i].type) if btype ~= 'value' and btype ~= 'state' then output(' '..self.args[i]:outchecktype(narg)..' ||\n') end if btype ~= 'state' then narg = narg+1 end i = i+1 end end -- check end of list output(' !tolua_isnoobj(tolua_S,'..narg..',&tolua_err)\n )') output(' goto tolua_lerror;') output(' else\n') if overload < 0 then output('#endif\n') end output(' {') -- declare self, if the case local narg if class then narg=2 else narg=1 end if class and self.name~='new' and static==nil then output(' ',self.const,self.parent.type,'*','self = ') output('(',self.const,self.parent.type,'*) ') local to_func = get_to_function(self.parent.type) output(to_func,'(tolua_S,1,0);') elseif static then _,_,self.mod = strfind(self.mod,'^%s*static%s%s*(.*)') end -- declare parameters if self.args[1].type ~= 'void' then local i=1 while self.args[i] do self.args[i]:declare(narg) if isbasic(self.args[i].type) ~= "state" then narg = narg+1 end i = i+1 end end -- check self if class and self.name~='new' and static==nil then output('#ifndef TOLUA_RELEASE\n') output(' if (!self) tolua_error(tolua_S,"'..output_error_hook("invalid \'self\' in function \'%s\'", self.name)..'", NULL);'); output('#endif\n') end -- get array element values if class then narg=2 else narg=1 end if self.args[1].type ~= 'void' then local i=1 while self.args[i] do self.args[i]:getarray(narg) narg = narg+1 i = i+1 end end pre_call_hook(self) local out = string.find(self.mod, "tolua_outside") -- call function if class and self.name=='delete' then output(' Mtolua_delete(self);') elseif class and self.name == 'operator&[]' then if flags['1'] then -- for compatibility with tolua5 ? output(' self->operator[](',self.args[1].name,'-1) = ',self.args[2].name,';') else output(' self->operator[](',self.args[1].name,') = ',self.args[2].name,';') end else output(' {') if self.type ~= '' and self.type ~= 'void' then output(' ',self.mod,self.type,self.ptr,'tolua_ret = ') output('(',self.mod,self.type,self.ptr,') ') else output(' ') end if class and self.name=='new' then output('Mtolua_new((',self.type,')(') elseif class and static then if out then output(self.name,'(') else output(class..'::'..self.name,'(') end elseif class then if out then output(self.name,'(') else if self.cast_operator then --output('static_cast<',self.mod,self.type,self.ptr,' >(*self') output('self->operator ',self.mod,self.type,'(') else output('self->'..self.name,'(') end end else output(self.name,'(') end if out and not static then output('self') if self.args[1] and self.args[1].name ~= '' then output(',') end end -- write parameters local i=1 while self.args[i] do self.args[i]:passpar() i = i+1 if self.args[i] then output(',') end end if class and self.name == 'operator[]' and flags['1'] then output('-1);') else if class and self.name=='new' then output('));') -- close Mtolua_new( else output(');') end end -- return values if self.type ~= '' and self.type ~= 'void' then nret = nret + 1 local t,ct = isbasic(self.type) if t and self.name ~= "new" then if self.cast_operator and _basic_raw_push[t] then output(' ',_basic_raw_push[t],'(tolua_S,(',ct,')tolua_ret);') else output(' tolua_push'..t..'(tolua_S,(',ct,')tolua_ret);') end else t = self.type new_t = string.gsub(t, "const%s+", "") local owned = false if string.find(self.mod, "tolua_owned") then owned = true end local push_func = get_push_function(t) if self.ptr == '' then output(' {') output('#ifdef __cplusplus\n') output(' void* tolua_obj = Mtolua_new((',new_t,')(tolua_ret));') output(' ',push_func,'(tolua_S,tolua_obj,"',t,'");') output(' tolua_register_gc(tolua_S,lua_gettop(tolua_S));') output('#else\n') output(' void* tolua_obj = tolua_copy(tolua_S,(void*)&tolua_ret,sizeof(',t,'));') output(' ',push_func,'(tolua_S,tolua_obj,"',t,'");') output(' tolua_register_gc(tolua_S,lua_gettop(tolua_S));') output('#endif\n') output(' }') elseif self.ptr == '&' then output(' ',push_func,'(tolua_S,(void*)&tolua_ret,"',t,'");') else output(' ',push_func,'(tolua_S,(void*)tolua_ret,"',t,'");') if owned or local_constructor then output(' tolua_register_gc(tolua_S,lua_gettop(tolua_S));') end end end end local i=1 while self.args[i] do nret = nret + self.args[i]:retvalue() i = i+1 end output(' }') -- set array element values if class then narg=2 else narg=1 end if self.args[1].type ~= 'void' then local i=1 while self.args[i] do self.args[i]:setarray(narg) narg = narg+1 i = i+1 end end -- free dynamically allocated array if self.args[1].type ~= 'void' then local i=1 while self.args[i] do self.args[i]:freearray() i = i+1 end end end post_call_hook(self) output(' }') output(' return '..nret..';') -- call overloaded function or generate error if overload < 0 then output('#ifndef TOLUA_RELEASE\n') output('tolua_lerror:\n') output(' tolua_error(tolua_S,"'..output_error_hook("#ferror in function \'%s\'.", self.lname)..'",&tolua_err);') output(' return 0;') output('#endif\n') else local _local = "" if local_constructor then _local = "_local" end output('tolua_lerror:\n') output(' return '..strsub(self.cname,1,-3)..format("%02d",overload).._local..'(tolua_S);') end output('}') output('#endif //#ifndef TOLUA_DISABLE\n') output('\n') -- recursive call to write local constructor if class and self.name=='new' and not local_constructor then self:supcode(1) end end -- register function function classFunction:register (pre) if not self:check_public_access() then return end if self.name == 'new' and self.parent.flags.pure_virtual then -- no constructor for classes with pure virtual methods return end output(pre..'tolua_function(tolua_S,"'..self.lname..'",'..self.cname..');') if self.name == 'new' then output(pre..'tolua_function(tolua_S,"new_local",'..self.cname..'_local);') output(pre..'tolua_function(tolua_S,".call",'..self.cname..'_local);') --output(' tolua_set_call_event(tolua_S,'..self.cname..'_local, "'..self.parent.type..'");') end end -- Print method function classFunction:print (ident,close) print(ident.."Function{") print(ident.." mod = '"..self.mod.."',") print(ident.." type = '"..self.type.."',") print(ident.." ptr = '"..self.ptr.."',") print(ident.." name = '"..self.name.."',") print(ident.." lname = '"..self.lname.."',") print(ident.." const = '"..self.const.."',") print(ident.." cname = '"..self.cname.."',") print(ident.." lname = '"..self.lname.."',") print(ident.." args = {") local i=1 while self.args[i] do self.args[i]:print(ident.." ",",") i = i+1 end print(ident.." }") print(ident.."}"..close) end -- check if it returns an object by value function classFunction:requirecollection (t) local r = false if self.type ~= '' and not isbasic(self.type) and self.ptr=='' then local type = gsub(self.type,"%s*const%s+","") t[type] = "tolua_collect_" .. clean_template(type) r = true end local i=1 while self.args[i] do r = self.args[i]:requirecollection(t) or r i = i+1 end return r end -- determine lua function name overload function classFunction:overload () return self.parent:overload(self.lname) end function param_object(par) -- returns true if the parameter has an object as its default value if not string.find(par, '=') then return false end -- it has no default value local _,_,def = string.find(par, "=(.*)$") if string.find(par, "|") then -- a list of flags return true end if string.find(par, "%*") then -- it's a pointer with a default value if string.find(par, '=%s*new') or string.find(par, "%(") then -- it's a pointer with an instance as default parameter.. is that valid? return true end return false -- default value is 'NULL' or something end if string.find(par, "[%(&]") then return true end -- default value is a constructor call (most likely for a const reference) --if string.find(par, "&") then -- if string.find(def, ":") or string.find(def, "^%s*new%s+") then -- -- it's a reference with default to something like Class::member, or 'new Class' -- return true -- end --end return false -- ? end function strip_last_arg(all_args, last_arg) -- strips the default value from the last argument local _,_,s_arg = string.find(last_arg, "^([^=]+)") last_arg = string.gsub(last_arg, "([%%%(%)])", "%%%1"); all_args = string.gsub(all_args, "%s*,%s*"..last_arg.."%s*%)%s*$", ")") return all_args, s_arg end -- Internal constructor function _Function (t) setmetatable(t,classFunction) if t.const ~= 'const' and t.const ~= '' then error("#invalid 'const' specification") end append(t) if t:inclass() then --print ('t.name is '..t.name..', parent.name is '..t.parent.name) if string.gsub(t.name, "%b<>", "") == string.gsub(t.parent.original_name or t.parent.name, "%b<>", "") then t.name = 'new' t.lname = 'new' t.parent._new = true t.type = t.parent.name t.ptr = '*' elseif string.gsub(t.name, "%b<>", "") == '~'..string.gsub(t.parent.original_name or t.parent.name, "%b<>", "") then t.name = 'delete' t.lname = 'delete' t.parent._delete = true end end t.cname = t:cfuncname("tolua")..t:overload(t) return t end -- Constructor -- Expects three strings: one representing the function declaration, -- another representing the argument list, and the third representing -- the "const" or empty string. function Function (d,a,c) --local t = split(strsub(a,2,-2),',') -- eliminate braces --local t = split_params(strsub(a,2,-2)) if not flags['W'] and string.find(a, "%.%.%.%s*%)") then warning("Functions with variable arguments (`...') are not supported. Ignoring "..d..a..c) return nil end local i=1 local l = {n=0} a = string.gsub(a, "%s*([%(%)])%s*", "%1") local t,strip,last = strip_pars(strsub(a,2,-2)); if strip then --local ns = string.sub(strsub(a,1,-2), 1, -(string.len(last)+1)) local ns = join(t, ",", 1, last-1) ns = "("..string.gsub(ns, "%s*,%s*$", "")..')' --ns = strip_defaults(ns) local f = Function(d, ns, c) for i=1,last do t[i] = string.gsub(t[i], "=.*$", "") end end while t[i] do l.n = l.n+1 l[l.n] = Declaration(t[i],'var',true) i = i+1 end local f = Declaration(d,'func') f.args = l f.const = c return _Function(f) end function join(t, sep, first, last) first = first or 1 last = last or table.getn(t) local lsep = "" local ret = "" local loop = false for i = first,last do ret = ret..lsep..t[i] lsep = sep loop = true end if not loop then return "" end return ret end function strip_pars(s) local t = split_c_tokens(s, ',') local strip = false local last for i=t.n,1,-1 do if not strip and param_object(t[i]) then last = i strip = true end --if strip then -- t[i] = string.gsub(t[i], "=.*$", "") --end end return t,strip,last end function strip_defaults(s) s = string.gsub(s, "^%(", "") s = string.gsub(s, "%)$", "") local t = split_c_tokens(s, ",") local sep, ret = "","" for i=1,t.n do t[i] = string.gsub(t[i], "=.*$", "") ret = ret..sep..t[i] sep = "," end return "("..ret..")" end tolua++-1.0.93/src/bin/lua/basic.lua0000644000175000017500000002131511106345631016252 0ustar cesarecesare-- tolua: basic utility functions -- Written by Waldemar Celes -- TeCGraf/PUC-Rio -- Jul 1998 -- Last update: Apr 2003 -- $Id: $ -- This code is free software; you can redistribute it and/or modify it. -- The software provided hereunder is on an "as is" basis, and -- the author has no obligation to provide maintenance, support, updates, -- enhancements, or modifications. -- Basic C types and their corresponding Lua types -- All occurrences of "char*" will be replaced by "_cstring", -- and all occurrences of "void*" will be replaced by "_userdata" _basic = { ['void'] = '', ['char'] = 'number', ['int'] = 'number', ['short'] = 'number', ['long'] = 'number', ['unsigned'] = 'number', ['float'] = 'number', ['double'] = 'number', ['_cstring'] = 'string', ['_userdata'] = 'userdata', ['char*'] = 'string', ['void*'] = 'userdata', ['bool'] = 'boolean', ['lua_Object'] = 'value', ['LUA_VALUE'] = 'value', -- for compatibility with tolua 4.0 ['lua_State*'] = 'state', ['_lstate'] = 'state', ['lua_Function'] = 'value', } _basic_ctype = { number = "lua_Number", string = "const char*", userdata = "void*", boolean = "bool", value = "int", state = "lua_State*", } -- functions the are used to do a 'raw push' of basic types _basic_raw_push = {} -- List of user defined types -- Each type corresponds to a variable name that stores its tag value. _usertype = {} -- List of types that have to be collected _collect = {} -- List of types _global_types = {n=0} _global_types_hash = {} -- list of classes _global_classes = {} -- List of enum constants _global_enums = {} -- List of auto renaming _renaming = {} function appendrenaming (s) local b,e,old,new = strfind(s,"%s*(.-)%s*@%s*(.-)%s*$") if not b then error("#Invalid renaming syntax; it should be of the form: pattern@pattern") end tinsert(_renaming,{old=old, new=new}) end function applyrenaming (s) for i=1,getn(_renaming) do local m,n = gsub(s,_renaming[i].old,_renaming[i].new) if n ~= 0 then return m end end return nil end -- Error handler function tolua_error (s,f) if _curr_code then print("***curr code for error is "..tostring(_curr_code)) print(debug.traceback()) end local out = _OUTPUT _OUTPUT = _STDERR if strsub(s,1,1) == '#' then write("\n** tolua: "..strsub(s,2)..".\n\n") if _curr_code then local _,_,s = strfind(_curr_code,"^%s*(.-\n)") -- extract first line if s==nil then s = _curr_code end s = gsub(s,"_userdata","void*") -- return with 'void*' s = gsub(s,"_cstring","char*") -- return with 'char*' s = gsub(s,"_lstate","lua_State*") -- return with 'lua_State*' write("Code being processed:\n"..s.."\n") end else if not f then f = "(f is nil)" end print("\n** tolua internal error: "..f..s..".\n\n") return end _OUTPUT = out end function warning (msg) if flags.q then return end local out = _OUTPUT _OUTPUT = _STDERR write("\n** tolua warning: "..msg..".\n\n") _OUTPUT = out end -- register an user defined type: returns full type function regtype (t) --if isbasic(t) then -- return t --end local ft = findtype(t) if not _usertype[ft] then return appendusertype(t) end return ft end -- return type name: returns full type function typevar(type) if type == '' or type == 'void' then return type else local ft = findtype(type) if ft then return ft end _usertype[type] = type return type end end -- check if basic type function isbasic (type) local t = gsub(type,'const ','') local m,t = applytypedef('', t) local b = _basic[t] if b then return b,_basic_ctype[b] end return nil end -- split string using a token function split (s,t) local l = {n=0} local f = function (s) l.n = l.n + 1 l[l.n] = s return "" end local p = "%s*(.-)%s*"..t.."%s*" s = gsub(s,"^%s+","") s = gsub(s,"%s+$","") s = gsub(s,p,f) l.n = l.n + 1 l[l.n] = gsub(s,"(%s%s*)$","") return l end -- splits a string using a pattern, considering the spacial cases of C code (templates, function parameters, etc) -- pattern can't contain the '^' (as used to identify the begining of the line) -- also strips whitespace function split_c_tokens(s, pat) s = string.gsub(s, "^%s*", "") s = string.gsub(s, "%s*$", "") local token_begin = 1 local token_end = 1 local ofs = 1 local ret = {n=0} function add_token(ofs) local t = string.sub(s, token_begin, ofs) t = string.gsub(t, "^%s*", "") t = string.gsub(t, "%s*$", "") ret.n = ret.n + 1 ret[ret.n] = t end while ofs <= string.len(s) do local sub = string.sub(s, ofs, -1) local b,e = string.find(sub, "^"..pat) if b then add_token(ofs-1) ofs = ofs+e token_begin = ofs else local char = string.sub(s, ofs, ofs) if char == "(" or char == "<" then local block if char == "(" then block = "^%b()" end if char == "<" then block = "^%b<>" end b,e = string.find(sub, block) if not b then -- unterminated block? ofs = ofs+1 else ofs = ofs + e end else ofs = ofs+1 end end end add_token(ofs) --if ret.n == 0 then -- ret.n=1 -- ret[1] = "" --end return ret end -- concatenate strings of a table function concat (t,f,l,jstr) jstr = jstr or " " local s = '' local i=f while i<=l do s = s..t[i] i = i+1 if i <= l then s = s..jstr end end return s end -- concatenate all parameters, following output rules function concatparam (line, ...) local i=1 while i<=arg.n do if _cont and not strfind(_cont,'[%(,"]') and strfind(arg[i],"^[%a_~]") then line = line .. ' ' end line = line .. arg[i] if arg[i] ~= '' then _cont = strsub(arg[i],-1,-1) end i = i+1 end if strfind(arg[arg.n],"[%/%)%;%{%}]$") then _cont=nil line = line .. '\n' end return line end -- output line function output (...) local i=1 while i<=arg.n do if _cont and not strfind(_cont,'[%(,"]') and strfind(arg[i],"^[%a_~]") then write(' ') end write(arg[i]) if arg[i] ~= '' then _cont = strsub(arg[i],-1,-1) end i = i+1 end if strfind(arg[arg.n],"[%/%)%;%{%}]$") then _cont=nil write('\n') end end function get_property_methods(ptype, name) if get_property_methods_hook and get_property_methods_hook(ptype,name) then return get_property_methods_hook(ptype, name) end if ptype == "default" then -- get_name, set_name return "get_"..name, "set_"..name end if ptype == "qt" then -- name, setName return name, "set"..string.upper(string.sub(name, 1, 1))..string.sub(name, 2, -1) end if ptype == "overload" then -- name, name return name,name end return nil end -------------- the hooks -- called right after processing the $[ichl]file directives, -- right before processing anything else -- takes the package object as the parameter function preprocess_hook(p) -- p.code has all the input code from the pkg end -- called for every $ifile directive -- takes a table with a string called 'code' inside, the filename, and any extra arguments -- passed to $ifile. no return value function include_file_hook(t, filename, ...) end -- called after processing anything that's not code (like '$renaming', comments, etc) -- and right before parsing the actual code. -- takes the Package object with all the code on the 'code' key. no return value function preparse_hook(package) end -- called before starting output function pre_output_hook(package) end -- called after writing all the output. -- takes the Package object function post_output_hook(package) end -- called from 'get_property_methods' to get the methods to retrieve a property -- according to its type function get_property_methods_hook(property_type, name) end -- called from ClassContainer:doparse with the string being parsed -- return nil, or a substring function parser_hook(s) return nil end -- called from classFunction:supcode, before the call to the function is output function pre_call_hook(f) end -- called from classFunction:supcode, after the call to the function is output function post_call_hook(f) end -- called before the register code is output function pre_register_hook(package) end -- called to output an error message function output_error_hook(...) return string.format(...) end -- custom pushers _push_functions = {} _is_functions = {} _to_functions = {} _base_push_functions = {} _base_is_functions = {} _base_to_functions = {} local function search_base(t, funcs) local class = _global_classes[t] while class do if funcs[class.type] then return funcs[class.type] end class = _global_classes[class.btype] end return nil end function get_push_function(t) return _push_functions[t] or search_base(t, _base_push_functions) or "tolua_pushusertype" end function get_to_function(t) return _to_functions[t] or search_base(t, _base_to_functions) or "tolua_tousertype" end function get_is_function(t) return _is_functions[t] or search_base(t, _base_is_functions) or "tolua_isusertype" end tolua++-1.0.93/src/bin/lua/custom.lua0000644000175000017500000000255410343424077016513 0ustar cesarecesare function extract_code(fn,s) local code = "" if fn then code = '\n$#include "'..fn..'"\n' end s= "\n" .. s .. "\n" -- add blank lines as sentinels local _,e,c,t = strfind(s, "\n([^\n]-)SCRIPT_([%w_]*)[^\n]*\n") while e do t = strlower(t) if t == "bind_begin" then _,e,c = strfind(s,"(.-)\n[^\n]*SCRIPT_BIND_END[^\n]*\n",e) if not e then tolua_error("Unbalanced 'SCRIPT_BIND_BEGIN' directive in header file") end end if t == "bind_class" or t == "bind_block" then local b _,e,c,b = string.find(s, "([^{]-)(%b{})", e) c = c..'{\n'..extract_code(nil, b)..'\n};\n' end code = code .. c .. "\n" _,e,c,t = strfind(s, "\n([^\n]-)SCRIPT_([%w_]*)[^\n]*\n",e) end return code end function preprocess_hook(p) end function preparse_hook(p) end function include_file_hook(p, filename) do return end --print("FILENAME is "..filename) p.code = string.gsub(p.code, "\n%s*SigC::Signal", "\n\ttolua_readonly SigC::Signal") p.code = string.gsub(p.code, "#ifdef __cplusplus\nextern \"C\" {\n#endif", "") p.code = string.gsub(p.code, "#ifdef __cplusplus\n};?\n#endif", "") p.code = string.gsub(p.code, "DECLSPEC", "") p.code = string.gsub(p.code, "SDLCALL", "") p.code = string.gsub(p.code, "DLLINTERFACE", "") p.code = string.gsub(p.code, "#define[^\n]*_[hH]_?%s*\n", "\n") --print("code is "..p.code) end tolua++-1.0.93/src/bin/tolua_scons.pkg0000644000175000017500000000157410642363272016753 0ustar cesarecesare$lfile "src/bin/lua/compat-5.1.lua" $lfile "src/bin/lua/compat.lua" $lfile "src/bin/lua/basic.lua" $lfile "src/bin/lua/feature.lua" $lfile "src/bin/lua/verbatim.lua" $lfile "src/bin/lua/code.lua" $lfile "src/bin/lua/typedef.lua" $lfile "src/bin/lua/container.lua" $lfile "src/bin/lua/package.lua" $lfile "src/bin/lua/module.lua" $lfile "src/bin/lua/namespace.lua" $lfile "src/bin/lua/define.lua" $lfile "src/bin/lua/enumerate.lua" $lfile "src/bin/lua/declaration.lua" $lfile "src/bin/lua/variable.lua" $lfile "src/bin/lua/array.lua" $lfile "src/bin/lua/function.lua" $lfile "src/bin/lua/operator.lua" $lfile "src/bin/lua/template_class.lua" $lfile "src/bin/lua/class.lua" $lfile "src/bin/lua/clean.lua" $lfile "src/bin/lua/doit.lua" $[ local err,msg = pcall(doit) if not err then local _,_,label,msg = strfind(msg,"(.-:.-:%s*)(.*)") tolua_error(msg,label) print(debug.traceback()) end $] tolua++-1.0.93/src/bin/SCsub0000644000175000017500000000061611002755117014647 0ustar cesarecesareImport('env') src = [ env.Object('tolua.c'), ] toluabind = env.LuaBinding('toluabind.c', 'tolua_scons.pkg', 'tolua', bootstrap = True) env.bin_target = env.Program('#/bin/'+env['tolua_bin'], src + [toluabind], LIBS = ['$tolua_lib'] + env['LIBS']) env.bootstrap_target = env.Program('#/bin/'+env['TOLUAPP_BOOTSTRAP'], src + ['toluabind_default.c', env.lib_target_static], LIBS = env['LIBS']) tolua++-1.0.93/src/bin/toluabind.c0000644000175000017500000175562511146137240016054 0ustar cesarecesare/* ** Lua binding: tolua ** Generated automatically by tolua++-1.0.92 on Sun Feb 15 22:29:47 2009. */ #ifndef __cplusplus #include "stdlib.h" #endif #include "string.h" #include "tolua++.h" /* Exported function */ TOLUA_API int tolua_tolua_open (lua_State* tolua_S); /* function to register type */ static void tolua_reg_types (lua_State* tolua_S) { } /* Open function */ TOLUA_API int tolua_tolua_open (lua_State* tolua_S) { tolua_open(tolua_S); tolua_reg_types(tolua_S); tolua_module(tolua_S,NULL,0); tolua_beginmodule(tolua_S,NULL); { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 105,102, 32,115,116,114,105,110,103, 46,102,105,110,100, 40, 95, 86, 69, 82, 83, 73, 79, 78, 44, 32, 34, 53, 37, 46, 48, 34, 41, 32,116,104,101,110, 13, 10, 9,114,101,116,117,114, 110, 13, 10,101,110,100, 13, 10, 13, 10, 45, 45, 32, 34,108, 111, 97,100,102,105,108,101, 34, 13, 10,108,111, 99, 97,108, 32,102,117,110, 99,116,105,111,110, 32,112,112, 95,100,111, 102,105,108,101, 40,112, 97,116,104, 41, 13, 10, 13, 10, 9, 108,111, 99, 97,108, 32,108,111, 97,100,101,100, 32, 61, 32, 102, 97,108,115,101, 13, 10, 9,108,111, 99, 97,108, 32,103, 101,116,102,105,108,101, 32, 61, 32,102,117,110, 99,116,105, 111,110, 40, 41, 13, 10, 13, 10, 9, 9,105,102, 32,108,111, 97,100,101,100, 32,116,104,101,110, 13, 10, 9, 9, 9,114, 101,116,117,114,110, 13, 10, 9, 9,101,108,115,101, 13, 10, 9, 9, 9,108,111, 99, 97,108, 32,102,105,108,101, 44,101, 114,114, 32, 61, 32,105,111, 46,111,112,101,110, 40,112, 97, 116,104, 41, 13, 10, 9, 9, 9,105,102, 32,110,111,116, 32, 102,105,108,101, 32,116,104,101,110, 13, 10, 9, 9, 9, 9, 101,114,114,111,114, 40, 34,101,114,114,111,114, 32,108,111, 97,100,105,110,103, 32,102,105,108,101, 32, 34, 46, 46,112, 97,116,104, 46, 46, 34, 58, 32, 34, 46, 46,101,114,114, 41, 13, 10, 9, 9, 9,101,110,100, 13, 10, 9, 9, 9,108,111, 99, 97,108, 32,114,101,116, 32, 61, 32,102,105,108,101, 58, 114,101, 97,100, 40, 34, 42, 97, 34, 41, 13, 10, 9, 9, 9, 102,105,108,101, 58, 99,108,111,115,101, 40, 41, 13, 10, 13, 10, 9, 9, 9,114,101,116, 32, 61, 32,115,116,114,105,110, 103, 46,103,115,117, 98, 40,114,101,116, 44, 32, 34, 37, 46, 37, 46, 37, 46, 37,115, 42, 37, 41, 34, 44, 32, 34, 46, 46, 46, 41, 32,108,111, 99, 97,108, 32, 97,114,103, 32, 61, 32, 123,110, 61,115,101,108,101, 99,116, 40, 39, 35, 39, 44, 32, 46, 46, 46, 41, 44, 32, 46, 46, 46,125, 59, 34, 41, 13, 10, 13, 10, 9, 9, 9,108,111, 97,100,101,100, 32, 61, 32,116, 114,117,101, 13, 10, 9, 9, 9,114,101,116,117,114,110, 32, 114,101,116, 13, 10, 9, 9,101,110,100, 13, 10, 9,101,110, 100, 13, 10, 13, 10, 9,108,111, 99, 97,108, 32,102, 32, 61, 32,108,111, 97,100, 40,103,101,116,102,105,108,101, 44, 32, 112, 97,116,104, 41, 13, 10, 9,105,102, 32,110,111,116, 32, 102, 32,116,104,101,110, 13, 10, 9, 13, 10, 9, 9,101,114, 114,111,114, 40, 34,101,114,114,111,114, 32,108,111, 97,100, 105,110,103, 32,102,105,108,101, 32, 34, 46, 46,112, 97,116, 104, 41, 13, 10, 9,101,110,100, 13, 10, 9,114,101,116,117, 114,110, 32,102, 40, 41, 13, 10,101,110,100, 13, 10, 13, 10, 111,108,100, 95,100,111,102,105,108,101, 32, 61, 32,100,111, 102,105,108,101, 13, 10,100,111,102,105,108,101, 32, 61, 32, 112,112, 95,100,111,102,105,108,101, 13, 10, 13, 10, 13, 10, 45, 45, 32,115,116,114,105,110,103, 46,103,115,117, 98, 13, 10, 45, 45, 91, 91, 13, 10,108,111, 99, 97,108, 32,111,103, 115,117, 98, 32, 61, 32,115,116,114,105,110,103, 46,103,115, 117, 98, 13, 10,108,111, 99, 97,108, 32,102,117,110, 99,116, 105,111,110, 32, 99,111,109,112,103,115,117, 98, 40, 97, 44, 98, 44, 99, 44,100, 41, 13, 10, 32, 32,105,102, 32,116,121, 112,101, 40, 99, 41, 32, 61, 61, 32, 34,102,117,110, 99,116, 105,111,110, 34, 32,116,104,101,110, 13, 10, 32, 32, 32, 32, 108,111, 99, 97,108, 32,111, 99, 32, 61, 32, 99, 13, 10, 32, 32, 32, 32, 99, 32, 61, 32,102,117,110, 99,116,105,111,110, 32, 40, 46, 46, 46, 41, 32,114,101,116,117,114,110, 32,111, 99, 40, 46, 46, 46, 41, 32,111,114, 32, 39, 39, 32,101,110, 100, 13, 10, 32, 32,101,110,100, 13, 10, 32, 32,114,101,116, 117,114,110, 32,111,103,115,117, 98, 40, 97, 44, 98, 44, 99, 44,100, 41, 13, 10,101,110,100, 13, 10,115,116,114,105,110, 103, 46,114,101,112,108, 32, 61, 32,111,103,115,117, 98, 13, 10, 45, 45, 93, 93, 13, 10, 13, 10, 45, 45,115,116,114,105, 110,103, 46,103,115,117, 98, 32, 61, 32, 99,111,109,112,103, 115,117, 98, 13,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/compat-5.1.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 45, 45, 32, 82,101, 97,108, 32,103,108,111, 98, 97,108,115, 10, 45, 45, 32, 95, 65, 76, 69, 82, 84, 10, 45, 45, 32, 95, 69, 82, 82, 79, 82, 77, 69, 83, 83, 65, 71, 69, 10, 45, 45, 32, 95, 86, 69, 82, 83, 73, 79, 78, 10, 45, 45, 32, 95, 71, 10, 45, 45, 32, 97,115,115, 101,114,116, 10, 45, 45, 32,101,114,114,111,114, 10, 45, 45, 32,109,101,116, 97,116, 97, 98,108,101, 10, 45, 45, 32,110, 101,120,116, 10, 45, 45, 32,112,114,105,110,116, 10, 45, 45, 32,114,101,113,117,105,114,101, 10, 45, 45, 32,116,111,110, 117,109, 98,101,114, 10, 45, 45, 32,116,111,115,116,114,105, 110,103, 10, 45, 45, 32,116,121,112,101, 10, 45, 45, 32,117, 110,112, 97, 99,107, 10, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 45, 45, 32, 99,111,108,108,101, 99,116,103, 97,114, 98, 97, 103,101, 10, 45, 45, 32,103, 99,105,110,102,111, 10, 10, 45, 45, 32,103,108,111, 98, 97,108,115, 10, 10, 45, 45, 32, 99, 97,108,108, 32, 32, 32, 45, 62, 32,112,114,111,116,101, 99, 116, 40,102, 44, 32,101,114,114, 41, 10, 45, 45, 32,108,111, 97,100,102,105,108,101, 10, 45, 45, 32,108,111, 97,100,115, 116,114,105,110,103, 10, 10, 45, 45, 32,114, 97,119,103,101, 116, 10, 45, 45, 32,114, 97,119,115,101,116, 10, 10, 45, 45, 32,103,101,116, 97,114,103,115, 32, 61, 32, 77, 97,105,110, 46,103,101,116, 97,114,103,115, 32, 63, 63, 10, 10,114, 97, 119,116,121,112,101, 32, 61, 32,116,121,112,101, 10, 10,102, 117,110, 99,116,105,111,110, 32,100,111, 95, 32, 40,102, 44, 32,101,114,114, 41, 10, 32, 32,105,102, 32,110,111,116, 32, 102, 32,116,104,101,110, 32,112,114,105,110,116, 40,101,114, 114, 41, 59, 32,114,101,116,117,114,110, 32,101,110,100, 10, 32, 32,108,111, 99, 97,108, 32, 97, 44, 98, 32, 61, 32,112, 99, 97,108,108, 40,102, 41, 10, 32, 32,105,102, 32,110,111, 116, 32, 97, 32,116,104,101,110, 32,112,114,105,110,116, 40, 98, 41, 59, 32,114,101,116,117,114,110, 32,110,105,108, 10, 32, 32,101,108,115,101, 32,114,101,116,117,114,110, 32, 98, 32,111,114, 32,116,114,117,101, 10, 32, 32,101,110,100, 10, 101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,100, 111,115,116,114,105,110,103, 40,115, 41, 32,114,101,116,117, 114,110, 32,100,111, 95, 40,108,111, 97,100,115,116,114,105, 110,103, 40,115, 41, 41, 32,101,110,100, 10, 45, 45, 32,102, 117,110, 99,116,105,111,110, 32,100,111,102,105,108,101, 40, 115, 41, 32,114,101,116,117,114,110, 32,100,111, 95, 40,108, 111, 97,100,102,105,108,101, 40,115, 41, 41, 32,101,110,100, 10, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 45, 45, 32, 84, 97, 98,108,101, 32,108,105, 98,114, 97,114,121, 10,108,111, 99, 97,108, 32,116, 97, 98, 32, 61, 32,116, 97, 98,108,101, 10, 102,111,114,101, 97, 99,104, 32, 61, 32,116, 97, 98, 46,102, 111,114,101, 97, 99,104, 10,102,111,114,101, 97, 99,104,105, 32, 61, 32,116, 97, 98, 46,102,111,114,101, 97, 99,104,105, 10,103,101,116,110, 32, 61, 32,116, 97, 98, 46,103,101,116, 110, 10,116,105,110,115,101,114,116, 32, 61, 32,116, 97, 98, 46,105,110,115,101,114,116, 10,116,114,101,109,111,118,101, 32, 61, 32,116, 97, 98, 46,114,101,109,111,118,101, 10,115, 111,114,116, 32, 61, 32,116, 97, 98, 46,115,111,114,116, 10, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 45, 45, 32, 68,101, 98, 117,103, 32,108,105, 98,114, 97,114,121, 10,108,111, 99, 97, 108, 32,100, 98,103, 32, 61, 32,100,101, 98,117,103, 10,103, 101,116,105,110,102,111, 32, 61, 32,100, 98,103, 46,103,101, 116,105,110,102,111, 10,103,101,116,108,111, 99, 97,108, 32, 61, 32,100, 98,103, 46,103,101,116,108,111, 99, 97,108, 10, 115,101,116, 99, 97,108,108,104,111,111,107, 32, 61, 32,102, 117,110, 99,116,105,111,110, 32, 40, 41, 32,101,114,114,111, 114, 34, 96,115,101,116, 99, 97,108,108,104,111,111,107, 39, 32,105,115, 32,100,101,112,114,101, 99, 97,116,101,100, 34, 32,101,110,100, 10,115,101,116,108,105,110,101,104,111,111, 107, 32, 61, 32,102,117,110, 99,116,105,111,110, 32, 40, 41, 32,101,114,114,111,114, 34, 96,115,101,116,108,105,110,101, 104,111,111,107, 39, 32,105,115, 32,100,101,112,114,101, 99, 97,116,101,100, 34, 32,101,110,100, 10,115,101,116,108,111, 99, 97,108, 32, 61, 32,100, 98,103, 46,115,101,116,108,111, 99, 97,108, 10, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 45, 45, 32,109, 97,116,104, 32,108,105, 98,114, 97,114,121, 10,108, 111, 99, 97,108, 32,109, 97,116,104, 32, 61, 32,109, 97,116, 104, 10, 97, 98,115, 32, 61, 32,109, 97,116,104, 46, 97, 98, 115, 10, 97, 99,111,115, 32, 61, 32,102,117,110, 99,116,105, 111,110, 32, 40,120, 41, 32,114,101,116,117,114,110, 32,109, 97,116,104, 46,100,101,103, 40,109, 97,116,104, 46, 97, 99, 111,115, 40,120, 41, 41, 32,101,110,100, 10, 97,115,105,110, 32, 61, 32,102,117,110, 99,116,105,111,110, 32, 40,120, 41, 32,114,101,116,117,114,110, 32,109, 97,116,104, 46,100,101, 103, 40,109, 97,116,104, 46, 97,115,105,110, 40,120, 41, 41, 32,101,110,100, 10, 97,116, 97,110, 32, 61, 32,102,117,110, 99,116,105,111,110, 32, 40,120, 41, 32,114,101,116,117,114, 110, 32,109, 97,116,104, 46,100,101,103, 40,109, 97,116,104, 46, 97,116, 97,110, 40,120, 41, 41, 32,101,110,100, 10, 97, 116, 97,110, 50, 32, 61, 32,102,117,110, 99,116,105,111,110, 32, 40,120, 44,121, 41, 32,114,101,116,117,114,110, 32,109, 97,116,104, 46,100,101,103, 40,109, 97,116,104, 46, 97,116, 97,110, 50, 40,120, 44,121, 41, 41, 32,101,110,100, 10, 99, 101,105,108, 32, 61, 32,109, 97,116,104, 46, 99,101,105,108, 10, 99,111,115, 32, 61, 32,102,117,110, 99,116,105,111,110, 32, 40,120, 41, 32,114,101,116,117,114,110, 32,109, 97,116, 104, 46, 99,111,115, 40,109, 97,116,104, 46,114, 97,100, 40, 120, 41, 41, 32,101,110,100, 10,100,101,103, 32, 61, 32,109, 97,116,104, 46,100,101,103, 10,101,120,112, 32, 61, 32,109, 97,116,104, 46,101,120,112, 10,102,108,111,111,114, 32, 61, 32,109, 97,116,104, 46,102,108,111,111,114, 10,102,114,101, 120,112, 32, 61, 32,109, 97,116,104, 46,102,114,101,120,112, 10,108,100,101,120,112, 32, 61, 32,109, 97,116,104, 46,108, 100,101,120,112, 10,108,111,103, 32, 61, 32,109, 97,116,104, 46,108,111,103, 10,108,111,103, 49, 48, 32, 61, 32,109, 97, 116,104, 46,108,111,103, 49, 48, 10,109, 97,120, 32, 61, 32, 109, 97,116,104, 46,109, 97,120, 10,109,105,110, 32, 61, 32, 109, 97,116,104, 46,109,105,110, 10,109,111,100, 32, 61, 32, 109, 97,116,104, 46,109,111,100, 10, 80, 73, 32, 61, 32,109, 97,116,104, 46,112,105, 10, 45, 45, 63, 63, 63, 32,112,111, 119, 32, 61, 32,109, 97,116,104, 46,112,111,119, 32, 32, 10, 114, 97,100, 32, 61, 32,109, 97,116,104, 46,114, 97,100, 10, 114, 97,110,100,111,109, 32, 61, 32,109, 97,116,104, 46,114, 97,110,100,111,109, 10,114, 97,110,100,111,109,115,101,101, 100, 32, 61, 32,109, 97,116,104, 46,114, 97,110,100,111,109, 115,101,101,100, 10,115,105,110, 32, 61, 32,102,117,110, 99, 116,105,111,110, 32, 40,120, 41, 32,114,101,116,117,114,110, 32,109, 97,116,104, 46,115,105,110, 40,109, 97,116,104, 46, 114, 97,100, 40,120, 41, 41, 32,101,110,100, 10,115,113,114, 116, 32, 61, 32,109, 97,116,104, 46,115,113,114,116, 10,116, 97,110, 32, 61, 32,102,117,110, 99,116,105,111,110, 32, 40, 120, 41, 32,114,101,116,117,114,110, 32,109, 97,116,104, 46, 116, 97,110, 40,109, 97,116,104, 46,114, 97,100, 40,120, 41, 41, 32,101,110,100, 10, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 45, 45, 32,115,116,114,105,110,103, 32,108,105, 98,114, 97, 114,121, 10,108,111, 99, 97,108, 32,115,116,114, 32, 61, 32, 115,116,114,105,110,103, 10,115,116,114, 98,121,116,101, 32, 61, 32,115,116,114, 46, 98,121,116,101, 10,115,116,114, 99, 104, 97,114, 32, 61, 32,115,116,114, 46, 99,104, 97,114, 10, 115,116,114,102,105,110,100, 32, 61, 32,115,116,114, 46,102, 105,110,100, 10,102,111,114,109, 97,116, 32, 61, 32,115,116, 114, 46,102,111,114,109, 97,116, 10,103,115,117, 98, 32, 61, 32,115,116,114, 46,103,115,117, 98, 10,115,116,114,108,101, 110, 32, 61, 32,115,116,114, 46,108,101,110, 10,115,116,114, 108,111,119,101,114, 32, 61, 32,115,116,114, 46,108,111,119, 101,114, 10,115,116,114,114,101,112, 32, 61, 32,115,116,114, 46,114,101,112, 10,115,116,114,115,117, 98, 32, 61, 32,115, 116,114, 46,115,117, 98, 10,115,116,114,117,112,112,101,114, 32, 61, 32,115,116,114, 46,117,112,112,101,114, 10, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 45, 45, 32,111,115, 32,108,105, 98,114, 97,114,121, 10, 99,108,111, 99,107, 32, 61, 32,111, 115, 46, 99,108,111, 99,107, 10,100, 97,116,101, 32, 61, 32, 111,115, 46,100, 97,116,101, 10,100,105,102,102,116,105,109, 101, 32, 61, 32,111,115, 46,100,105,102,102,116,105,109,101, 10,101,120,101, 99,117,116,101, 32, 61, 32,111,115, 46,101, 120,101, 99,117,116,101, 32, 45, 45, 63, 10,101,120,105,116, 32, 61, 32,111,115, 46,101,120,105,116, 10,103,101,116,101, 110,118, 32, 61, 32,111,115, 46,103,101,116,101,110,118, 10, 114,101,109,111,118,101, 32, 61, 32,111,115, 46,114,101,109, 111,118,101, 10,114,101,110, 97,109,101, 32, 61, 32,111,115, 46,114,101,110, 97,109,101, 10,115,101,116,108,111, 99, 97, 108,101, 32, 61, 32,111,115, 46,115,101,116,108,111, 99, 97, 108,101, 10,116,105,109,101, 32, 61, 32,111,115, 46,116,105, 109,101, 10,116,109,112,110, 97,109,101, 32, 61, 32,111,115, 46,116,109,112,110, 97,109,101, 10, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 45, 45, 32, 99,111,109,112, 97,116,105, 98,105, 108,105,116,121, 32,111,110,108,121, 10,103,101,116,103,108, 111, 98, 97,108, 32, 61, 32,102,117,110, 99,116,105,111,110, 32, 40,110, 41, 32,114,101,116,117,114,110, 32, 95, 71, 91, 110, 93, 32,101,110,100, 10,115,101,116,103,108,111, 98, 97, 108, 32, 61, 32,102,117,110, 99,116,105,111,110, 32, 40,110, 44,118, 41, 32, 95, 71, 91,110, 93, 32, 61, 32,118, 32,101, 110,100, 10, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 10,108,111, 99, 97,108, 32,105,111, 44, 32,116, 97, 98, 32, 61, 32,105, 111, 44, 32,116, 97, 98,108,101, 10, 10, 45, 45, 32, 73, 79, 32,108,105, 98,114, 97,114,121, 32, 40,102,105,108,101,115, 41, 10, 95, 83, 84, 68, 73, 78, 32, 61, 32,105,111, 46,115, 116,100,105,110, 10, 95, 83, 84, 68, 69, 82, 82, 32, 61, 32, 105,111, 46,115,116,100,101,114,114, 10, 95, 83, 84, 68, 79, 85, 84, 32, 61, 32,105,111, 46,115,116,100,111,117,116, 10, 95, 73, 78, 80, 85, 84, 32, 61, 32,105,111, 46,115,116,100, 105,110, 10, 95, 79, 85, 84, 80, 85, 84, 32, 61, 32,105,111, 46,115,116,100,111,117,116, 10,115,101,101,107, 32, 61, 32, 105,111, 46,115,116,100,105,110, 46,115,101,101,107, 32, 32, 32, 45, 45, 32,115,105, 99,107, 32, 59, 45, 41, 10,116,109, 112,102,105,108,101, 32, 61, 32,105,111, 46,116,109,112,102, 105,108,101, 10, 99,108,111,115,101,102,105,108,101, 32, 61, 32,105,111, 46, 99,108,111,115,101, 10,111,112,101,110,102, 105,108,101, 32, 61, 32,105,111, 46,111,112,101,110, 10, 10, 102,117,110, 99,116,105,111,110, 32,102,108,117,115,104, 32, 40,102, 41, 10, 32, 32,105,102, 32,102, 32,116,104,101,110, 32,102, 58,102,108,117,115,104, 40, 41, 10, 32, 32,101,108, 115,101, 32, 95, 79, 85, 84, 80, 85, 84, 58,102,108,117,115, 104, 40, 41, 10, 32, 32,101,110,100, 10,101,110,100, 10, 10, 102,117,110, 99,116,105,111,110, 32,114,101, 97,100,102,114, 111,109, 32, 40,110, 97,109,101, 41, 10, 32, 32,105,102, 32, 110, 97,109,101, 32, 61, 61, 32,110,105,108, 32,116,104,101, 110, 10, 32, 32, 32, 32,108,111, 99, 97,108, 32,102, 44, 32, 101,114,114, 44, 32, 99,111,100, 32, 61, 32,105,111, 46, 99, 108,111,115,101, 40, 95, 73, 78, 80, 85, 84, 41, 10, 32, 32, 32, 32, 95, 73, 78, 80, 85, 84, 32, 61, 32,105,111, 46,115, 116,100,105,110, 10, 32, 32, 32, 32,114,101,116,117,114,110, 32,102, 44, 32,101,114,114, 44, 32, 99,111,100, 10, 32, 32, 101,108,115,101, 10, 32, 32, 32, 32,108,111, 99, 97,108, 32, 102, 44, 32,101,114,114, 44, 32, 99,111,100, 32, 61, 32,105, 111, 46,111,112,101,110, 40,110, 97,109,101, 44, 32, 34,114, 34, 41, 10, 32, 32, 32, 32, 95, 73, 78, 80, 85, 84, 32, 61, 32,102, 32,111,114, 32, 95, 73, 78, 80, 85, 84, 10, 32, 32, 32, 32,114,101,116,117,114,110, 32,102, 44, 32,101,114,114, 44, 32, 99,111,100, 10, 32, 32,101,110,100, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,119,114,105,116, 101,116,111, 32, 40,110, 97,109,101, 41, 10, 32, 32,105,102, 32,110, 97,109,101, 32, 61, 61, 32,110,105,108, 32,116,104, 101,110, 10, 32, 32, 32, 32,108,111, 99, 97,108, 32,102, 44, 32,101,114,114, 44, 32, 99,111,100, 32, 61, 32,105,111, 46, 99,108,111,115,101, 40, 95, 79, 85, 84, 80, 85, 84, 41, 10, 32, 32, 32, 32, 95, 79, 85, 84, 80, 85, 84, 32, 61, 32,105, 111, 46,115,116,100,111,117,116, 10, 32, 32, 32, 32,114,101, 116,117,114,110, 32,102, 44, 32,101,114,114, 44, 32, 99,111, 100, 10, 32, 32,101,108,115,101, 10, 32, 32, 32, 32,108,111, 99, 97,108, 32,102, 44, 32,101,114,114, 44, 32, 99,111,100, 32, 61, 32,105,111, 46,111,112,101,110, 40,110, 97,109,101, 44, 32, 34,119, 34, 41, 10, 32, 32, 32, 32, 95, 79, 85, 84, 80, 85, 84, 32, 61, 32,102, 32,111,114, 32, 95, 79, 85, 84, 80, 85, 84, 10, 32, 32, 32, 32,114,101,116,117,114,110, 32, 102, 44, 32,101,114,114, 44, 32, 99,111,100, 10, 32, 32,101, 110,100, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111, 110, 32, 97,112,112,101,110,100,116,111, 32, 40,110, 97,109, 101, 41, 10, 32, 32,108,111, 99, 97,108, 32,102, 44, 32,101, 114,114, 44, 32, 99,111,100, 32, 61, 32,105,111, 46,111,112, 101,110, 40,110, 97,109,101, 44, 32, 34, 97, 34, 41, 10, 32, 32, 95, 79, 85, 84, 80, 85, 84, 32, 61, 32,102, 32,111,114, 32, 95, 79, 85, 84, 80, 85, 84, 10, 32, 32,114,101,116,117, 114,110, 32,102, 44, 32,101,114,114, 44, 32, 99,111,100, 10, 101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,114, 101, 97,100, 32, 40, 46, 46, 46, 41, 10, 32, 32,108,111, 99, 97,108, 32,102, 32, 61, 32, 95, 73, 78, 80, 85, 84, 10, 32, 32,105,102, 32,114, 97,119,116,121,112,101, 40, 97,114,103, 91, 49, 93, 41, 32, 61, 61, 32, 39,117,115,101,114,100, 97, 116, 97, 39, 32,116,104,101,110, 10, 32, 32, 32, 32,102, 32, 61, 32,116, 97, 98, 46,114,101,109,111,118,101, 40, 97,114, 103, 44, 32, 49, 41, 10, 32, 32,101,110,100, 10, 32, 32,114, 101,116,117,114,110, 32,102, 58,114,101, 97,100, 40,117,110, 112, 97, 99,107, 40, 97,114,103, 41, 41, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,119,114,105,116,101, 32, 40, 46, 46, 46, 41, 10, 32, 32,108,111, 99, 97,108, 32, 102, 32, 61, 32, 95, 79, 85, 84, 80, 85, 84, 10, 32, 32,105, 102, 32,114, 97,119,116,121,112,101, 40, 97,114,103, 91, 49, 93, 41, 32, 61, 61, 32, 39,117,115,101,114,100, 97,116, 97, 39, 32,116,104,101,110, 10, 32, 32, 32, 32,102, 32, 61, 32, 116, 97, 98, 46,114,101,109,111,118,101, 40, 97,114,103, 44, 32, 49, 41, 10, 32, 32,101,110,100, 10, 32, 32,114,101,116, 117,114,110, 32,102, 58,119,114,105,116,101, 40,117,110,112, 97, 99,107, 40, 97,114,103, 41, 41, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/compat.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32, 98, 97,115,105, 99, 32,117,116,105,108,105,116,121, 32,102,117,110, 99,116,105, 111,110,115, 10, 45, 45, 32, 87,114,105,116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114, 32, 67,101,108, 101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 76, 97,115,116, 32,117,112,100, 97,116,101, 58, 32, 65,112,114, 32, 50, 48, 48, 51, 10, 45, 45, 32, 36, 73,100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104, 105,115, 32, 99,111,100,101, 32,105,115, 32,102,114,101,101, 32,115,111,102,116,119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32,114,101,100,105,115,116,114,105, 98,117,116, 101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109,111,100, 105,102,121, 32,105,116, 46, 10, 45, 45, 32, 84,104,101, 32, 115,111,102,116,119, 97,114,101, 32,112,114,111,118,105,100, 101,100, 32,104,101,114,101,117,110,100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97,110,100, 10, 45, 45, 32,116, 104,101, 32, 97,117,116,104,111,114, 32,104, 97,115, 32,110, 111, 32,111, 98,108,105,103, 97,116,105,111,110, 32,116,111, 32,112,114,111,118,105,100,101, 32,109, 97,105,110,116,101, 110, 97,110, 99,101, 44, 32,115,117,112,112,111,114,116, 44, 32,117,112,100, 97,116,101,115, 44, 10, 45, 45, 32,101,110, 104, 97,110, 99,101,109,101,110,116,115, 44, 32,111,114, 32, 109,111,100,105,102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 45, 45, 32, 66, 97,115,105, 99, 32, 67, 32,116,121, 112,101,115, 32, 97,110,100, 32,116,104,101,105,114, 32, 99, 111,114,114,101,115,112,111,110,100,105,110,103, 32, 76,117, 97, 32,116,121,112,101,115, 10, 45, 45, 32, 65,108,108, 32, 111, 99, 99,117,114,114,101,110, 99,101,115, 32,111,102, 32, 34, 99,104, 97,114, 42, 34, 32,119,105,108,108, 32, 98,101, 32,114,101,112,108, 97, 99,101,100, 32, 98,121, 32, 34, 95, 99,115,116,114,105,110,103, 34, 44, 10, 45, 45, 32, 97,110, 100, 32, 97,108,108, 32,111, 99, 99,117,114,114,101,110, 99, 101,115, 32,111,102, 32, 34,118,111,105,100, 42, 34, 32,119, 105,108,108, 32, 98,101, 32,114,101,112,108, 97, 99,101,100, 32, 98,121, 32, 34, 95,117,115,101,114,100, 97,116, 97, 34, 10, 95, 98, 97,115,105, 99, 32, 61, 32,123, 10, 32, 91, 39, 118,111,105,100, 39, 93, 32, 61, 32, 39, 39, 44, 10, 32, 91, 39, 99,104, 97,114, 39, 93, 32, 61, 32, 39,110,117,109, 98, 101,114, 39, 44, 10, 32, 91, 39,105,110,116, 39, 93, 32, 61, 32, 39,110,117,109, 98,101,114, 39, 44, 10, 32, 91, 39,115, 104,111,114,116, 39, 93, 32, 61, 32, 39,110,117,109, 98,101, 114, 39, 44, 10, 32, 91, 39,108,111,110,103, 39, 93, 32, 61, 32, 39,110,117,109, 98,101,114, 39, 44, 10, 32, 91, 39,117, 110,115,105,103,110,101,100, 39, 93, 32, 61, 32, 39,110,117, 109, 98,101,114, 39, 44, 10, 32, 91, 39,102,108,111, 97,116, 39, 93, 32, 61, 32, 39,110,117,109, 98,101,114, 39, 44, 10, 32, 91, 39,100,111,117, 98,108,101, 39, 93, 32, 61, 32, 39, 110,117,109, 98,101,114, 39, 44, 10, 32, 91, 39, 95, 99,115, 116,114,105,110,103, 39, 93, 32, 61, 32, 39,115,116,114,105, 110,103, 39, 44, 10, 32, 91, 39, 95,117,115,101,114,100, 97, 116, 97, 39, 93, 32, 61, 32, 39,117,115,101,114,100, 97,116, 97, 39, 44, 10, 32, 91, 39, 99,104, 97,114, 42, 39, 93, 32, 61, 32, 39,115,116,114,105,110,103, 39, 44, 10, 32, 91, 39, 118,111,105,100, 42, 39, 93, 32, 61, 32, 39,117,115,101,114, 100, 97,116, 97, 39, 44, 10, 32, 91, 39, 98,111,111,108, 39, 93, 32, 61, 32, 39, 98,111,111,108,101, 97,110, 39, 44, 10, 32, 91, 39,108,117, 97, 95, 79, 98,106,101, 99,116, 39, 93, 32, 61, 32, 39,118, 97,108,117,101, 39, 44, 10, 32, 91, 39, 76, 85, 65, 95, 86, 65, 76, 85, 69, 39, 93, 32, 61, 32, 39, 118, 97,108,117,101, 39, 44, 32, 32, 32, 32, 45, 45, 32,102, 111,114, 32, 99,111,109,112, 97,116,105, 98,105,108,105,116, 121, 32,119,105,116,104, 32,116,111,108,117, 97, 32, 52, 46, 48, 10, 32, 91, 39,108,117, 97, 95, 83,116, 97,116,101, 42, 39, 93, 32, 61, 32, 39,115,116, 97,116,101, 39, 44, 10, 32, 91, 39, 95,108,115,116, 97,116,101, 39, 93, 32, 61, 32, 39, 115,116, 97,116,101, 39, 44, 10, 32, 91, 39,108,117, 97, 95, 70,117,110, 99,116,105,111,110, 39, 93, 32, 61, 32, 39,118, 97,108,117,101, 39, 44, 10,125, 10, 10, 95, 98, 97,115,105, 99, 95, 99,116,121,112,101, 32, 61, 32,123, 10, 32,110,117, 109, 98,101,114, 32, 61, 32, 34,108,117, 97, 95, 78,117,109, 98,101,114, 34, 44, 10, 32,115,116,114,105,110,103, 32, 61, 32, 34, 99,111,110,115,116, 32, 99,104, 97,114, 42, 34, 44, 10, 32,117,115,101,114,100, 97,116, 97, 32, 61, 32, 34,118, 111,105,100, 42, 34, 44, 10, 32, 98,111,111,108,101, 97,110, 32, 61, 32, 34, 98,111,111,108, 34, 44, 10, 32,118, 97,108, 117,101, 32, 61, 32, 34,105,110,116, 34, 44, 10, 32,115,116, 97,116,101, 32, 61, 32, 34,108,117, 97, 95, 83,116, 97,116, 101, 42, 34, 44, 10,125, 10, 10, 45, 45, 32,102,117,110, 99, 116,105,111,110,115, 32,116,104,101, 32, 97,114,101, 32,117, 115,101,100, 32,116,111, 32,100,111, 32, 97, 32, 39,114, 97, 119, 32,112,117,115,104, 39, 32,111,102, 32, 98, 97,115,105, 99, 32,116,121,112,101,115, 10, 95, 98, 97,115,105, 99, 95, 114, 97,119, 95,112,117,115,104, 32, 61, 32,123,125, 10, 10, 45, 45, 32, 76,105,115,116, 32,111,102, 32,117,115,101,114, 32,100,101,102,105,110,101,100, 32,116,121,112,101,115, 10, 45, 45, 32, 69, 97, 99,104, 32,116,121,112,101, 32, 99,111, 114,114,101,115,112,111,110,100,115, 32,116,111, 32, 97, 32, 118, 97,114,105, 97, 98,108,101, 32,110, 97,109,101, 32,116, 104, 97,116, 32,115,116,111,114,101,115, 32,105,116,115, 32, 116, 97,103, 32,118, 97,108,117,101, 46, 10, 95,117,115,101, 114,116,121,112,101, 32, 61, 32,123,125, 10, 10, 45, 45, 32, 76,105,115,116, 32,111,102, 32,116,121,112,101,115, 32,116, 104, 97,116, 32,104, 97,118,101, 32,116,111, 32, 98,101, 32, 99,111,108,108,101, 99,116,101,100, 10, 95, 99,111,108,108, 101, 99,116, 32, 61, 32,123,125, 10, 10, 45, 45, 32, 76,105, 115,116, 32,111,102, 32,116,121,112,101,115, 10, 95,103,108, 111, 98, 97,108, 95,116,121,112,101,115, 32, 61, 32,123,110, 61, 48,125, 10, 95,103,108,111, 98, 97,108, 95,116,121,112, 101,115, 95,104, 97,115,104, 32, 61, 32,123,125, 10, 10, 45, 45, 32,108,105,115,116, 32,111,102, 32, 99,108, 97,115,115, 101,115, 10, 95,103,108,111, 98, 97,108, 95, 99,108, 97,115, 115,101,115, 32, 61, 32,123,125, 10, 10, 45, 45, 32, 76,105, 115,116, 32,111,102, 32,101,110,117,109, 32, 99,111,110,115, 116, 97,110,116,115, 10, 95,103,108,111, 98, 97,108, 95,101, 110,117,109,115, 32, 61, 32,123,125, 10, 10, 45, 45, 32, 76, 105,115,116, 32,111,102, 32, 97,117,116,111, 32,114,101,110, 97,109,105,110,103, 10, 95,114,101,110, 97,109,105,110,103, 32, 61, 32,123,125, 10,102,117,110, 99,116,105,111,110, 32, 97,112,112,101,110,100,114,101,110, 97,109,105,110,103, 32, 40,115, 41, 10, 32,108,111, 99, 97,108, 32, 98, 44,101, 44, 111,108,100, 44,110,101,119, 32, 61, 32,115,116,114,102,105, 110,100, 40,115, 44, 34, 37,115, 42, 40, 46, 45, 41, 37,115, 42, 64, 37,115, 42, 40, 46, 45, 41, 37,115, 42, 36, 34, 41, 10, 9,105,102, 32,110,111,116, 32, 98, 32,116,104,101,110, 10, 9, 32,101,114,114,111,114, 40, 34, 35, 73,110,118, 97, 108,105,100, 32,114,101,110, 97,109,105,110,103, 32,115,121, 110,116, 97,120, 59, 32,105,116, 32,115,104,111,117,108,100, 32, 98,101, 32,111,102, 32,116,104,101, 32,102,111,114,109, 58, 32,112, 97,116,116,101,114,110, 64,112, 97,116,116,101, 114,110, 34, 41, 10, 9,101,110,100, 10, 9,116,105,110,115, 101,114,116, 40, 95,114,101,110, 97,109,105,110,103, 44,123, 111,108,100, 61,111,108,100, 44, 32,110,101,119, 61,110,101, 119,125, 41, 10,101,110,100, 10, 10,102,117,110, 99,116,105, 111,110, 32, 97,112,112,108,121,114,101,110, 97,109,105,110, 103, 32, 40,115, 41, 10, 9,102,111,114, 32,105, 61, 49, 44, 103,101,116,110, 40, 95,114,101,110, 97,109,105,110,103, 41, 32,100,111, 10, 9, 32,108,111, 99, 97,108, 32,109, 44,110, 32, 61, 32,103,115,117, 98, 40,115, 44, 95,114,101,110, 97, 109,105,110,103, 91,105, 93, 46,111,108,100, 44, 95,114,101, 110, 97,109,105,110,103, 91,105, 93, 46,110,101,119, 41, 10, 9, 9,105,102, 32,110, 32,126, 61, 32, 48, 32,116,104,101, 110, 10, 9, 9, 32,114,101,116,117,114,110, 32,109, 10, 9, 9,101,110,100, 10, 9,101,110,100, 10, 9,114,101,116,117, 114,110, 32,110,105,108, 10,101,110,100, 10, 10, 45, 45, 32, 69,114,114,111,114, 32,104, 97,110,100,108,101,114, 10,102, 117,110, 99,116,105,111,110, 32,116,111,108,117, 97, 95,101, 114,114,111,114, 32, 40,115, 44,102, 41, 10,105,102, 32, 95, 99,117,114,114, 95, 99,111,100,101, 32,116,104,101,110, 10, 9,112,114,105,110,116, 40, 34, 42, 42, 42, 99,117,114,114, 32, 99,111,100,101, 32,102,111,114, 32,101,114,114,111,114, 32,105,115, 32, 34, 46, 46,116,111,115,116,114,105,110,103, 40, 95, 99,117,114,114, 95, 99,111,100,101, 41, 41, 10, 9, 112,114,105,110,116, 40,100,101, 98,117,103, 46,116,114, 97, 99,101, 98, 97, 99,107, 40, 41, 41, 10,101,110,100, 10, 32, 108,111, 99, 97,108, 32,111,117,116, 32, 61, 32, 95, 79, 85, 84, 80, 85, 84, 10, 32, 95, 79, 85, 84, 80, 85, 84, 32, 61, 32, 95, 83, 84, 68, 69, 82, 82, 10, 32,105,102, 32,115,116, 114,115,117, 98, 40,115, 44, 49, 44, 49, 41, 32, 61, 61, 32, 39, 35, 39, 32,116,104,101,110, 10, 32, 32,119,114,105,116, 101, 40, 34, 92,110, 42, 42, 32,116,111,108,117, 97, 58, 32, 34, 46, 46,115,116,114,115,117, 98, 40,115, 44, 50, 41, 46, 46, 34, 46, 92,110, 92,110, 34, 41, 10, 32, 32,105,102, 32, 95, 99,117,114,114, 95, 99,111,100,101, 32,116,104,101,110, 10, 32, 32, 32,108,111, 99, 97,108, 32, 95, 44, 95, 44,115, 32, 61, 32,115,116,114,102,105,110,100, 40, 95, 99,117,114, 114, 95, 99,111,100,101, 44, 34, 94, 37,115, 42, 40, 46, 45, 92,110, 41, 34, 41, 32, 45, 45, 32,101,120,116,114, 97, 99, 116, 32,102,105,114,115,116, 32,108,105,110,101, 10, 32, 32, 32,105,102, 32,115, 61, 61,110,105,108, 32,116,104,101,110, 32,115, 32, 61, 32, 95, 99,117,114,114, 95, 99,111,100,101, 32,101,110,100, 10, 32, 32, 32,115, 32, 61, 32,103,115,117, 98, 40,115, 44, 34, 95,117,115,101,114,100, 97,116, 97, 34, 44, 34,118,111,105,100, 42, 34, 41, 32, 45, 45, 32,114,101, 116,117,114,110, 32,119,105,116,104, 32, 39,118,111,105,100, 42, 39, 10, 32, 32, 32,115, 32, 61, 32,103,115,117, 98, 40, 115, 44, 34, 95, 99,115,116,114,105,110,103, 34, 44, 34, 99, 104, 97,114, 42, 34, 41, 32, 32, 45, 45, 32,114,101,116,117, 114,110, 32,119,105,116,104, 32, 39, 99,104, 97,114, 42, 39, 10, 32, 32, 32,115, 32, 61, 32,103,115,117, 98, 40,115, 44, 34, 95,108,115,116, 97,116,101, 34, 44, 34,108,117, 97, 95, 83,116, 97,116,101, 42, 34, 41, 32, 32, 45, 45, 32,114,101, 116,117,114,110, 32,119,105,116,104, 32, 39,108,117, 97, 95, 83,116, 97,116,101, 42, 39, 10, 32, 32, 32,119,114,105,116, 101, 40, 34, 67,111,100,101, 32, 98,101,105,110,103, 32,112, 114,111, 99,101,115,115,101,100, 58, 92,110, 34, 46, 46,115, 46, 46, 34, 92,110, 34, 41, 10, 32, 32,101,110,100, 10, 32, 101,108,115,101, 10, 32,105,102, 32,110,111,116, 32,102, 32, 116,104,101,110, 32,102, 32, 61, 32, 34, 40,102, 32,105,115, 32,110,105,108, 41, 34, 32,101,110,100, 10, 32, 32,112,114, 105,110,116, 40, 34, 92,110, 42, 42, 32,116,111,108,117, 97, 32,105,110,116,101,114,110, 97,108, 32,101,114,114,111,114, 58, 32, 34, 46, 46,102, 46, 46,115, 46, 46, 34, 46, 92,110, 92,110, 34, 41, 10, 32, 32,114,101,116,117,114,110, 10, 32, 101,110,100, 10, 32, 95, 79, 85, 84, 80, 85, 84, 32, 61, 32, 111,117,116, 10,101,110,100, 10, 10,102,117,110, 99,116,105, 111,110, 32,119, 97,114,110,105,110,103, 32, 40,109,115,103, 41, 10, 32,105,102, 32,102,108, 97,103,115, 46,113, 32,116, 104,101,110, 32,114,101,116,117,114,110, 32,101,110,100, 10, 32,108,111, 99, 97,108, 32,111,117,116, 32, 61, 32, 95, 79, 85, 84, 80, 85, 84, 10, 32, 95, 79, 85, 84, 80, 85, 84, 32, 61, 32, 95, 83, 84, 68, 69, 82, 82, 10, 32,119,114,105,116, 101, 40, 34, 92,110, 42, 42, 32,116,111,108,117, 97, 32,119, 97,114,110,105,110,103, 58, 32, 34, 46, 46,109,115,103, 46, 46, 34, 46, 92,110, 92,110, 34, 41, 10, 32, 95, 79, 85, 84, 80, 85, 84, 32, 61, 32,111,117,116, 10,101,110,100, 10, 10, 45, 45, 32,114,101,103,105,115,116,101,114, 32, 97,110, 32, 117,115,101,114, 32,100,101,102,105,110,101,100, 32,116,121, 112,101, 58, 32,114,101,116,117,114,110,115, 32,102,117,108, 108, 32,116,121,112,101, 10,102,117,110, 99,116,105,111,110, 32,114,101,103,116,121,112,101, 32, 40,116, 41, 10, 9, 45, 45,105,102, 32,105,115, 98, 97,115,105, 99, 40,116, 41, 32, 116,104,101,110, 10, 9, 45, 45, 9,114,101,116,117,114,110, 32,116, 10, 9, 45, 45,101,110,100, 10, 9,108,111, 99, 97, 108, 32,102,116, 32, 61, 32,102,105,110,100,116,121,112,101, 40,116, 41, 10, 10, 9,105,102, 32,110,111,116, 32, 95,117, 115,101,114,116,121,112,101, 91,102,116, 93, 32,116,104,101, 110, 10, 9, 9,114,101,116,117,114,110, 32, 97,112,112,101, 110,100,117,115,101,114,116,121,112,101, 40,116, 41, 10, 9, 101,110,100, 10, 9,114,101,116,117,114,110, 32,102,116, 10, 101,110,100, 10, 10, 45, 45, 32,114,101,116,117,114,110, 32, 116,121,112,101, 32,110, 97,109,101, 58, 32,114,101,116,117, 114,110,115, 32,102,117,108,108, 32,116,121,112,101, 10,102, 117,110, 99,116,105,111,110, 32,116,121,112,101,118, 97,114, 40,116,121,112,101, 41, 10, 9,105,102, 32,116,121,112,101, 32, 61, 61, 32, 39, 39, 32,111,114, 32,116,121,112,101, 32, 61, 61, 32, 39,118,111,105,100, 39, 32,116,104,101,110, 10, 9, 9,114,101,116,117,114,110, 32,116,121,112,101, 10, 9, 101,108,115,101, 10, 9, 9,108,111, 99, 97,108, 32,102,116, 32, 61, 32,102,105,110,100,116,121,112,101, 40,116,121,112, 101, 41, 10, 9, 9,105,102, 32,102,116, 32,116,104,101,110, 10, 9, 9, 9,114,101,116,117,114,110, 32,102,116, 10, 9, 9,101,110,100, 10, 9, 9, 95,117,115,101,114,116,121,112, 101, 91,116,121,112,101, 93, 32, 61, 32,116,121,112,101, 10, 9, 9,114,101,116,117,114,110, 32,116,121,112,101, 10, 9, 101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 99,104,101, 99,107, 32,105,102, 32, 98, 97,115,105, 99, 32,116,121,112, 101, 10,102,117,110, 99,116,105,111,110, 32,105,115, 98, 97, 115,105, 99, 32, 40,116,121,112,101, 41, 10, 32,108,111, 99, 97,108, 32,116, 32, 61, 32,103,115,117, 98, 40,116,121,112, 101, 44, 39, 99,111,110,115,116, 32, 39, 44, 39, 39, 41, 10, 32,108,111, 99, 97,108, 32,109, 44,116, 32, 61, 32, 97,112, 112,108,121,116,121,112,101,100,101,102, 40, 39, 39, 44, 32, 116, 41, 10, 32,108,111, 99, 97,108, 32, 98, 32, 61, 32, 95, 98, 97,115,105, 99, 91,116, 93, 10, 32,105,102, 32, 98, 32, 116,104,101,110, 10, 32, 32,114,101,116,117,114,110, 32, 98, 44, 95, 98, 97,115,105, 99, 95, 99,116,121,112,101, 91, 98, 93, 10, 32,101,110,100, 10, 32,114,101,116,117,114,110, 32, 110,105,108, 10,101,110,100, 10, 10, 45, 45, 32,115,112,108, 105,116, 32,115,116,114,105,110,103, 32,117,115,105,110,103, 32, 97, 32,116,111,107,101,110, 10,102,117,110, 99,116,105, 111,110, 32,115,112,108,105,116, 32, 40,115, 44,116, 41, 10, 32,108,111, 99, 97,108, 32,108, 32, 61, 32,123,110, 61, 48, 125, 10, 32,108,111, 99, 97,108, 32,102, 32, 61, 32,102,117, 110, 99,116,105,111,110, 32, 40,115, 41, 10, 32, 32,108, 46, 110, 32, 61, 32,108, 46,110, 32, 43, 32, 49, 10, 32, 32,108, 91,108, 46,110, 93, 32, 61, 32,115, 10, 32, 32,114,101,116, 117,114,110, 32, 34, 34, 10, 32,101,110,100, 10, 32,108,111, 99, 97,108, 32,112, 32, 61, 32, 34, 37,115, 42, 40, 46, 45, 41, 37,115, 42, 34, 46, 46,116, 46, 46, 34, 37,115, 42, 34, 10, 32,115, 32, 61, 32,103,115,117, 98, 40,115, 44, 34, 94, 37,115, 43, 34, 44, 34, 34, 41, 10, 32,115, 32, 61, 32,103, 115,117, 98, 40,115, 44, 34, 37,115, 43, 36, 34, 44, 34, 34, 41, 10, 32,115, 32, 61, 32,103,115,117, 98, 40,115, 44,112, 44,102, 41, 10, 32,108, 46,110, 32, 61, 32,108, 46,110, 32, 43, 32, 49, 10, 32,108, 91,108, 46,110, 93, 32, 61, 32,103, 115,117, 98, 40,115, 44, 34, 40, 37,115, 37,115, 42, 41, 36, 34, 44, 34, 34, 41, 10, 32,114,101,116,117,114,110, 32,108, 10,101,110,100, 10, 10, 45, 45, 32,115,112,108,105,116,115, 32, 97, 32,115,116,114,105,110,103, 32,117,115,105,110,103, 32, 97, 32,112, 97,116,116,101,114,110, 44, 32, 99,111,110, 115,105,100,101,114,105,110,103, 32,116,104,101, 32,115,112, 97, 99,105, 97,108, 32, 99, 97,115,101,115, 32,111,102, 32, 67, 32, 99,111,100,101, 32, 40,116,101,109,112,108, 97,116, 101,115, 44, 32,102,117,110, 99,116,105,111,110, 32,112, 97, 114, 97,109,101,116,101,114,115, 44, 32,101,116, 99, 41, 10, 45, 45, 32,112, 97,116,116,101,114,110, 32, 99, 97,110, 39, 116, 32, 99,111,110,116, 97,105,110, 32,116,104,101, 32, 39, 94, 39, 32, 40, 97,115, 32,117,115,101,100, 32,116,111, 32, 105,100,101,110,116,105,102,121, 32,116,104,101, 32, 98,101, 103,105,110,105,110,103, 32,111,102, 32,116,104,101, 32,108, 105,110,101, 41, 10, 45, 45, 32, 97,108,115,111, 32,115,116, 114,105,112,115, 32,119,104,105,116,101,115,112, 97, 99,101, 10,102,117,110, 99,116,105,111,110, 32,115,112,108,105,116, 95, 99, 95,116,111,107,101,110,115, 40,115, 44, 32,112, 97, 116, 41, 10, 10, 9,115, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,115, 44, 32, 34, 94, 37,115, 42, 34, 44, 32, 34, 34, 41, 10, 9,115, 32, 61, 32,115,116,114,105, 110,103, 46,103,115,117, 98, 40,115, 44, 32, 34, 37,115, 42, 36, 34, 44, 32, 34, 34, 41, 10, 10, 9,108,111, 99, 97,108, 32,116,111,107,101,110, 95, 98,101,103,105,110, 32, 61, 32, 49, 10, 9,108,111, 99, 97,108, 32,116,111,107,101,110, 95, 101,110,100, 32, 61, 32, 49, 10, 9,108,111, 99, 97,108, 32, 111,102,115, 32, 61, 32, 49, 10, 9,108,111, 99, 97,108, 32, 114,101,116, 32, 61, 32,123,110, 61, 48,125, 10, 10, 9,102, 117,110, 99,116,105,111,110, 32, 97,100,100, 95,116,111,107, 101,110, 40,111,102,115, 41, 10, 10, 9, 9,108,111, 99, 97, 108, 32,116, 32, 61, 32,115,116,114,105,110,103, 46,115,117, 98, 40,115, 44, 32,116,111,107,101,110, 95, 98,101,103,105, 110, 44, 32,111,102,115, 41, 10, 9, 9,116, 32, 61, 32,115, 116,114,105,110,103, 46,103,115,117, 98, 40,116, 44, 32, 34, 94, 37,115, 42, 34, 44, 32, 34, 34, 41, 10, 9, 9,116, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,116, 44, 32, 34, 37,115, 42, 36, 34, 44, 32, 34, 34, 41, 10, 9, 9,114,101,116, 46,110, 32, 61, 32,114,101,116, 46,110, 32, 43, 32, 49, 10, 9, 9,114,101,116, 91,114,101,116, 46,110, 93, 32, 61, 32,116, 10, 9,101,110,100, 10, 10, 9,119,104, 105,108,101, 32,111,102,115, 32, 60, 61, 32,115,116,114,105, 110,103, 46,108,101,110, 40,115, 41, 32,100,111, 10, 10, 9, 9,108,111, 99, 97,108, 32,115,117, 98, 32, 61, 32,115,116, 114,105,110,103, 46,115,117, 98, 40,115, 44, 32,111,102,115, 44, 32, 45, 49, 41, 10, 9, 9,108,111, 99, 97,108, 32, 98, 44,101, 32, 61, 32,115,116,114,105,110,103, 46,102,105,110, 100, 40,115,117, 98, 44, 32, 34, 94, 34, 46, 46,112, 97,116, 41, 10, 9, 9,105,102, 32, 98, 32,116,104,101,110, 10, 9, 9, 9, 97,100,100, 95,116,111,107,101,110, 40,111,102,115, 45, 49, 41, 10, 9, 9, 9,111,102,115, 32, 61, 32,111,102, 115, 43,101, 10, 9, 9, 9,116,111,107,101,110, 95, 98,101, 103,105,110, 32, 61, 32,111,102,115, 10, 9, 9,101,108,115, 101, 10, 9, 9, 9,108,111, 99, 97,108, 32, 99,104, 97,114, 32, 61, 32,115,116,114,105,110,103, 46,115,117, 98, 40,115, 44, 32,111,102,115, 44, 32,111,102,115, 41, 10, 9, 9, 9, 105,102, 32, 99,104, 97,114, 32, 61, 61, 32, 34, 40, 34, 32, 111,114, 32, 99,104, 97,114, 32, 61, 61, 32, 34, 60, 34, 32, 116,104,101,110, 10, 10, 9, 9, 9, 9,108,111, 99, 97,108, 32, 98,108,111, 99,107, 10, 9, 9, 9, 9,105,102, 32, 99, 104, 97,114, 32, 61, 61, 32, 34, 40, 34, 32,116,104,101,110, 32, 98,108,111, 99,107, 32, 61, 32, 34, 94, 37, 98, 40, 41, 34, 32,101,110,100, 10, 9, 9, 9, 9,105,102, 32, 99,104, 97,114, 32, 61, 61, 32, 34, 60, 34, 32,116,104,101,110, 32, 98,108,111, 99,107, 32, 61, 32, 34, 94, 37, 98, 60, 62, 34, 32,101,110,100, 10, 10, 9, 9, 9, 9, 98, 44,101, 32, 61, 32,115,116,114,105,110,103, 46,102,105,110,100, 40,115,117, 98, 44, 32, 98,108,111, 99,107, 41, 10, 9, 9, 9, 9,105, 102, 32,110,111,116, 32, 98, 32,116,104,101,110, 10, 9, 9, 9, 9, 9, 45, 45, 32,117,110,116,101,114,109,105,110, 97, 116,101,100, 32, 98,108,111, 99,107, 63, 10, 9, 9, 9, 9, 9,111,102,115, 32, 61, 32,111,102,115, 43, 49, 10, 9, 9, 9, 9,101,108,115,101, 10, 9, 9, 9, 9, 9,111,102,115, 32, 61, 32,111,102,115, 32, 43, 32,101, 10, 9, 9, 9, 9, 101,110,100, 10, 10, 9, 9, 9,101,108,115,101, 10, 9, 9, 9, 9,111,102,115, 32, 61, 32,111,102,115, 43, 49, 10, 9, 9, 9,101,110,100, 10, 9, 9,101,110,100, 10, 10, 9,101, 110,100, 10, 9, 97,100,100, 95,116,111,107,101,110, 40,111, 102,115, 41, 10, 9, 45, 45,105,102, 32,114,101,116, 46,110, 32, 61, 61, 32, 48, 32,116,104,101,110, 10, 10, 9, 45, 45, 9,114,101,116, 46,110, 61, 49, 10, 9, 45, 45, 9,114,101, 116, 91, 49, 93, 32, 61, 32, 34, 34, 10, 9, 45, 45,101,110, 100, 10, 10, 9,114,101,116,117,114,110, 32,114,101,116, 10, 10,101,110,100, 10, 10, 45, 45, 32, 99,111,110, 99, 97,116, 101,110, 97,116,101, 32,115,116,114,105,110,103,115, 32,111, 102, 32, 97, 32,116, 97, 98,108,101, 10,102,117,110, 99,116, 105,111,110, 32, 99,111,110, 99, 97,116, 32, 40,116, 44,102, 44,108, 44,106,115,116,114, 41, 10, 9,106,115,116,114, 32, 61, 32,106,115,116,114, 32,111,114, 32, 34, 32, 34, 10, 32, 108,111, 99, 97,108, 32,115, 32, 61, 32, 39, 39, 10, 32,108, 111, 99, 97,108, 32,105, 61,102, 10, 32,119,104,105,108,101, 32,105, 60, 61,108, 32,100,111, 10, 32, 32,115, 32, 61, 32, 115, 46, 46,116, 91,105, 93, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32, 32,105,102, 32,105, 32, 60, 61, 32,108, 32, 116,104,101,110, 32,115, 32, 61, 32,115, 46, 46,106,115,116, 114, 32,101,110,100, 10, 32,101,110,100, 10, 32,114,101,116, 117,114,110, 32,115, 10,101,110,100, 10, 10, 45, 45, 32, 99, 111,110, 99, 97,116,101,110, 97,116,101, 32, 97,108,108, 32, 112, 97,114, 97,109,101,116,101,114,115, 44, 32,102,111,108, 108,111,119,105,110,103, 32,111,117,116,112,117,116, 32,114, 117,108,101,115, 10,102,117,110, 99,116,105,111,110, 32, 99, 111,110, 99, 97,116,112, 97,114, 97,109, 32, 40,108,105,110, 101, 44, 32, 46, 46, 46, 41, 10, 32,108,111, 99, 97,108, 32, 105, 61, 49, 10, 32,119,104,105,108,101, 32,105, 60, 61, 97, 114,103, 46,110, 32,100,111, 10, 32, 32,105,102, 32, 95, 99, 111,110,116, 32, 97,110,100, 32,110,111,116, 32,115,116,114, 102,105,110,100, 40, 95, 99,111,110,116, 44, 39, 91, 37, 40, 44, 34, 93, 39, 41, 32, 97,110,100, 10, 32, 32, 32, 32, 32, 115,116,114,102,105,110,100, 40, 97,114,103, 91,105, 93, 44, 34, 94, 91, 37, 97, 95,126, 93, 34, 41, 32,116,104,101,110, 10, 9, 32, 32, 32, 32,108,105,110,101, 32, 61, 32,108,105, 110,101, 32, 46, 46, 32, 39, 32, 39, 10, 32, 32,101,110,100, 10, 32, 32,108,105,110,101, 32, 61, 32,108,105,110,101, 32, 46, 46, 32, 97,114,103, 91,105, 93, 10, 32, 32,105,102, 32, 97,114,103, 91,105, 93, 32,126, 61, 32, 39, 39, 32,116,104, 101,110, 10, 32, 32, 32, 95, 99,111,110,116, 32, 61, 32,115, 116,114,115,117, 98, 40, 97,114,103, 91,105, 93, 44, 45, 49, 44, 45, 49, 41, 10, 32, 32,101,110,100, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32,105,102, 32, 115,116,114,102,105,110,100, 40, 97,114,103, 91, 97,114,103, 46,110, 93, 44, 34, 91, 37, 47, 37, 41, 37, 59, 37,123, 37, 125, 93, 36, 34, 41, 32,116,104,101,110, 10, 32, 32, 95, 99, 111,110,116, 61,110,105,108, 32,108,105,110,101, 32, 61, 32, 108,105,110,101, 32, 46, 46, 32, 39, 92,110, 39, 10, 32,101, 110,100, 10, 9,114,101,116,117,114,110, 32,108,105,110,101, 10,101,110,100, 10, 10, 45, 45, 32,111,117,116,112,117,116, 32,108,105,110,101, 10,102,117,110, 99,116,105,111,110, 32, 111,117,116,112,117,116, 32, 40, 46, 46, 46, 41, 10, 32,108, 111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105,108,101, 32,105, 60, 61, 97,114,103, 46,110, 32,100,111, 10, 32, 32, 105,102, 32, 95, 99,111,110,116, 32, 97,110,100, 32,110,111, 116, 32,115,116,114,102,105,110,100, 40, 95, 99,111,110,116, 44, 39, 91, 37, 40, 44, 34, 93, 39, 41, 32, 97,110,100, 10, 32, 32, 32, 32, 32,115,116,114,102,105,110,100, 40, 97,114, 103, 91,105, 93, 44, 34, 94, 91, 37, 97, 95,126, 93, 34, 41, 32,116,104,101,110, 10, 9, 32, 32, 32, 32,119,114,105,116, 101, 40, 39, 32, 39, 41, 10, 32, 32,101,110,100, 10, 32, 32, 119,114,105,116,101, 40, 97,114,103, 91,105, 93, 41, 10, 32, 32,105,102, 32, 97,114,103, 91,105, 93, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10, 32, 32, 32, 95, 99,111,110,116, 32, 61, 32,115,116,114,115,117, 98, 40, 97,114,103, 91,105, 93, 44, 45, 49, 44, 45, 49, 41, 10, 32, 32,101,110,100, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32,105,102, 32,115,116,114,102,105,110,100, 40, 97,114,103, 91, 97,114,103, 46,110, 93, 44, 34, 91, 37, 47, 37, 41, 37, 59, 37,123, 37,125, 93, 36, 34, 41, 32,116,104,101,110, 10, 32, 32, 95, 99,111,110,116, 61,110,105,108, 32,119,114,105, 116,101, 40, 39, 92,110, 39, 41, 10, 32,101,110,100, 10,101, 110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,103,101, 116, 95,112,114,111,112,101,114,116,121, 95,109,101,116,104, 111,100,115, 40,112,116,121,112,101, 44, 32,110, 97,109,101, 41, 10, 10, 9,105,102, 32,103,101,116, 95,112,114,111,112, 101,114,116,121, 95,109,101,116,104,111,100,115, 95,104,111, 111,107, 32, 97,110,100, 32,103,101,116, 95,112,114,111,112, 101,114,116,121, 95,109,101,116,104,111,100,115, 95,104,111, 111,107, 40,112,116,121,112,101, 44,110, 97,109,101, 41, 32, 116,104,101,110, 10, 9, 9,114,101,116,117,114,110, 32,103, 101,116, 95,112,114,111,112,101,114,116,121, 95,109,101,116, 104,111,100,115, 95,104,111,111,107, 40,112,116,121,112,101, 44, 32,110, 97,109,101, 41, 10, 9,101,110,100, 10, 10, 9, 105,102, 32,112,116,121,112,101, 32, 61, 61, 32, 34,100,101, 102, 97,117,108,116, 34, 32,116,104,101,110, 32, 45, 45, 32, 103,101,116, 95,110, 97,109,101, 44, 32,115,101,116, 95,110, 97,109,101, 10, 9, 9,114,101,116,117,114,110, 32, 34,103, 101,116, 95, 34, 46, 46,110, 97,109,101, 44, 32, 34,115,101, 116, 95, 34, 46, 46,110, 97,109,101, 10, 9,101,110,100, 10, 10, 9,105,102, 32,112,116,121,112,101, 32, 61, 61, 32, 34, 113,116, 34, 32,116,104,101,110, 32, 45, 45, 32,110, 97,109, 101, 44, 32,115,101,116, 78, 97,109,101, 10, 9, 9,114,101, 116,117,114,110, 32,110, 97,109,101, 44, 32, 34,115,101,116, 34, 46, 46,115,116,114,105,110,103, 46,117,112,112,101,114, 40,115,116,114,105,110,103, 46,115,117, 98, 40,110, 97,109, 101, 44, 32, 49, 44, 32, 49, 41, 41, 46, 46,115,116,114,105, 110,103, 46,115,117, 98, 40,110, 97,109,101, 44, 32, 50, 44, 32, 45, 49, 41, 10, 9,101,110,100, 10, 10, 9,105,102, 32, 112,116,121,112,101, 32, 61, 61, 32, 34,111,118,101,114,108, 111, 97,100, 34, 32,116,104,101,110, 32, 45, 45, 32,110, 97, 109,101, 44, 32,110, 97,109,101, 10, 9, 9,114,101,116,117, 114,110, 32,110, 97,109,101, 44,110, 97,109,101, 10, 9,101, 110,100, 10, 10, 9,114,101,116,117,114,110, 32,110,105,108, 10,101,110,100, 10, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 32,116,104,101, 32,104,111,111,107,115, 10, 10, 45, 45, 32, 99, 97,108,108,101,100, 32,114,105,103, 104,116, 32, 97,102,116,101,114, 32,112,114,111, 99,101,115, 115,105,110,103, 32,116,104,101, 32, 36, 91,105, 99,104,108, 93,102,105,108,101, 32,100,105,114,101, 99,116,105,118,101, 115, 44, 10, 45, 45, 32,114,105,103,104,116, 32, 98,101,102, 111,114,101, 32,112,114,111, 99,101,115,115,105,110,103, 32, 97,110,121,116,104,105,110,103, 32,101,108,115,101, 10, 45, 45, 32,116, 97,107,101,115, 32,116,104,101, 32,112, 97, 99, 107, 97,103,101, 32,111, 98,106,101, 99,116, 32, 97,115, 32, 116,104,101, 32,112, 97,114, 97,109,101,116,101,114, 10,102, 117,110, 99,116,105,111,110, 32,112,114,101,112,114,111, 99, 101,115,115, 95,104,111,111,107, 40,112, 41, 10, 9, 45, 45, 32,112, 46, 99,111,100,101, 32,104, 97,115, 32, 97,108,108, 32,116,104,101, 32,105,110,112,117,116, 32, 99,111,100,101, 32,102,114,111,109, 32,116,104,101, 32,112,107,103, 10,101, 110,100, 10, 10, 10, 45, 45, 32, 99, 97,108,108,101,100, 32, 102,111,114, 32,101,118,101,114,121, 32, 36,105,102,105,108, 101, 32,100,105,114,101, 99,116,105,118,101, 10, 45, 45, 32, 116, 97,107,101,115, 32, 97, 32,116, 97, 98,108,101, 32,119, 105,116,104, 32, 97, 32,115,116,114,105,110,103, 32, 99, 97, 108,108,101,100, 32, 39, 99,111,100,101, 39, 32,105,110,115, 105,100,101, 44, 32,116,104,101, 32,102,105,108,101,110, 97, 109,101, 44, 32, 97,110,100, 32, 97,110,121, 32,101,120,116, 114, 97, 32, 97,114,103,117,109,101,110,116,115, 10, 45, 45, 32,112, 97,115,115,101,100, 32,116,111, 32, 36,105,102,105, 108,101, 46, 32,110,111, 32,114,101,116,117,114,110, 32,118, 97,108,117,101, 10,102,117,110, 99,116,105,111,110, 32,105, 110, 99,108,117,100,101, 95,102,105,108,101, 95,104,111,111, 107, 40,116, 44, 32,102,105,108,101,110, 97,109,101, 44, 32, 46, 46, 46, 41, 10, 10,101,110,100, 10, 10, 45, 45, 32, 99, 97,108,108,101,100, 32, 97,102,116,101,114, 32,112,114,111, 99,101,115,115,105,110,103, 32, 97,110,121,116,104,105,110, 103, 32,116,104, 97,116, 39,115, 32,110,111,116, 32, 99,111, 100,101, 32, 40,108,105,107,101, 32, 39, 36,114,101,110, 97, 109,105,110,103, 39, 44, 32, 99,111,109,109,101,110,116,115, 44, 32,101,116, 99, 41, 10, 45, 45, 32, 97,110,100, 32,114, 105,103,104,116, 32, 98,101,102,111,114,101, 32,112, 97,114, 115,105,110,103, 32,116,104,101, 32, 97, 99,116,117, 97,108, 32, 99,111,100,101, 46, 10, 45, 45, 32,116, 97,107,101,115, 32,116,104,101, 32, 80, 97, 99,107, 97,103,101, 32,111, 98, 106,101, 99,116, 32,119,105,116,104, 32, 97,108,108, 32,116, 104,101, 32, 99,111,100,101, 32,111,110, 32,116,104,101, 32, 39, 99,111,100,101, 39, 32,107,101,121, 46, 32,110,111, 32, 114,101,116,117,114,110, 32,118, 97,108,117,101, 10,102,117, 110, 99,116,105,111,110, 32,112,114,101,112, 97,114,115,101, 95,104,111,111,107, 40,112, 97, 99,107, 97,103,101, 41, 10, 10,101,110,100, 10, 10, 45, 45, 32, 99, 97,108,108,101,100, 32, 98,101,102,111,114,101, 32,115,116, 97,114,116,105,110, 103, 32,111,117,116,112,117,116, 10,102,117,110, 99,116,105, 111,110, 32,112,114,101, 95,111,117,116,112,117,116, 95,104, 111,111,107, 40,112, 97, 99,107, 97,103,101, 41, 10, 10,101, 110,100, 10, 10, 45, 45, 32, 99, 97,108,108,101,100, 32, 97, 102,116,101,114, 32,119,114,105,116,105,110,103, 32, 97,108, 108, 32,116,104,101, 32,111,117,116,112,117,116, 46, 10, 45, 45, 32,116, 97,107,101,115, 32,116,104,101, 32, 80, 97, 99, 107, 97,103,101, 32,111, 98,106,101, 99,116, 10,102,117,110, 99,116,105,111,110, 32,112,111,115,116, 95,111,117,116,112, 117,116, 95,104,111,111,107, 40,112, 97, 99,107, 97,103,101, 41, 10, 10,101,110,100, 10, 10, 10, 45, 45, 32, 99, 97,108, 108,101,100, 32,102,114,111,109, 32, 39,103,101,116, 95,112, 114,111,112,101,114,116,121, 95,109,101,116,104,111,100,115, 39, 32,116,111, 32,103,101,116, 32,116,104,101, 32,109,101, 116,104,111,100,115, 32,116,111, 32,114,101,116,114,105,101, 118,101, 32, 97, 32,112,114,111,112,101,114,116,121, 10, 45, 45, 32, 97, 99, 99,111,114,100,105,110,103, 32,116,111, 32, 105,116,115, 32,116,121,112,101, 10,102,117,110, 99,116,105, 111,110, 32,103,101,116, 95,112,114,111,112,101,114,116,121, 95,109,101,116,104,111,100,115, 95,104,111,111,107, 40,112, 114,111,112,101,114,116,121, 95,116,121,112,101, 44, 32,110, 97,109,101, 41, 10, 10,101,110,100, 10, 10, 45, 45, 32, 99, 97,108,108,101,100, 32,102,114,111,109, 32, 67,108, 97,115, 115, 67,111,110,116, 97,105,110,101,114, 58,100,111,112, 97, 114,115,101, 32,119,105,116,104, 32,116,104,101, 32,115,116, 114,105,110,103, 32, 98,101,105,110,103, 32,112, 97,114,115, 101,100, 10, 45, 45, 32,114,101,116,117,114,110, 32,110,105, 108, 44, 32,111,114, 32, 97, 32,115,117, 98,115,116,114,105, 110,103, 10,102,117,110, 99,116,105,111,110, 32,112, 97,114, 115,101,114, 95,104,111,111,107, 40,115, 41, 10, 10, 9,114, 101,116,117,114,110, 32,110,105,108, 10,101,110,100, 10, 10, 45, 45, 32, 99, 97,108,108,101,100, 32,102,114,111,109, 32, 99,108, 97,115,115, 70,117,110, 99,116,105,111,110, 58,115, 117,112, 99,111,100,101, 44, 32, 98,101,102,111,114,101, 32, 116,104,101, 32, 99, 97,108,108, 32,116,111, 32,116,104,101, 32,102,117,110, 99,116,105,111,110, 32,105,115, 32,111,117, 116,112,117,116, 10,102,117,110, 99,116,105,111,110, 32,112, 114,101, 95, 99, 97,108,108, 95,104,111,111,107, 40,102, 41, 10, 10,101,110,100, 10, 10, 45, 45, 32, 99, 97,108,108,101, 100, 32,102,114,111,109, 32, 99,108, 97,115,115, 70,117,110, 99,116,105,111,110, 58,115,117,112, 99,111,100,101, 44, 32, 97,102,116,101,114, 32,116,104,101, 32, 99, 97,108,108, 32, 116,111, 32,116,104,101, 32,102,117,110, 99,116,105,111,110, 32,105,115, 32,111,117,116,112,117,116, 10,102,117,110, 99, 116,105,111,110, 32,112,111,115,116, 95, 99, 97,108,108, 95, 104,111,111,107, 40,102, 41, 10, 10,101,110,100, 10, 10, 45, 45, 32, 99, 97,108,108,101,100, 32, 98,101,102,111,114,101, 32,116,104,101, 32,114,101,103,105,115,116,101,114, 32, 99, 111,100,101, 32,105,115, 32,111,117,116,112,117,116, 10,102, 117,110, 99,116,105,111,110, 32,112,114,101, 95,114,101,103, 105,115,116,101,114, 95,104,111,111,107, 40,112, 97, 99,107, 97,103,101, 41, 10, 10,101,110,100, 10, 10, 45, 45, 32, 99, 97,108,108,101,100, 32,116,111, 32,111,117,116,112,117,116, 32, 97,110, 32,101,114,114,111,114, 32,109,101,115,115, 97, 103,101, 10,102,117,110, 99,116,105,111,110, 32,111,117,116, 112,117,116, 95,101,114,114,111,114, 95,104,111,111,107, 40, 46, 46, 46, 41, 10, 9,114,101,116,117,114,110, 32,115,116, 114,105,110,103, 46,102,111,114,109, 97,116, 40, 46, 46, 46, 41, 10,101,110,100, 10, 10, 45, 45, 32, 99,117,115,116,111, 109, 32,112,117,115,104,101,114,115, 10, 10, 95,112,117,115, 104, 95,102,117,110, 99,116,105,111,110,115, 32, 61, 32,123, 125, 10, 95,105,115, 95,102,117,110, 99,116,105,111,110,115, 32, 61, 32,123,125, 10, 95,116,111, 95,102,117,110, 99,116, 105,111,110,115, 32, 61, 32,123,125, 10, 10, 95, 98, 97,115, 101, 95,112,117,115,104, 95,102,117,110, 99,116,105,111,110, 115, 32, 61, 32,123,125, 10, 95, 98, 97,115,101, 95,105,115, 95,102,117,110, 99,116,105,111,110,115, 32, 61, 32,123,125, 10, 95, 98, 97,115,101, 95,116,111, 95,102,117,110, 99,116, 105,111,110,115, 32, 61, 32,123,125, 10, 10,108,111, 99, 97, 108, 32,102,117,110, 99,116,105,111,110, 32,115,101, 97,114, 99,104, 95, 98, 97,115,101, 40,116, 44, 32,102,117,110, 99, 115, 41, 10, 10, 9,108,111, 99, 97,108, 32, 99,108, 97,115, 115, 32, 61, 32, 95,103,108,111, 98, 97,108, 95, 99,108, 97, 115,115,101,115, 91,116, 93, 10, 10, 9,119,104,105,108,101, 32, 99,108, 97,115,115, 32,100,111, 10, 9, 9,105,102, 32, 102,117,110, 99,115, 91, 99,108, 97,115,115, 46,116,121,112, 101, 93, 32,116,104,101,110, 10, 9, 9, 9,114,101,116,117, 114,110, 32,102,117,110, 99,115, 91, 99,108, 97,115,115, 46, 116,121,112,101, 93, 10, 9, 9,101,110,100, 10, 9, 9, 99, 108, 97,115,115, 32, 61, 32, 95,103,108,111, 98, 97,108, 95, 99,108, 97,115,115,101,115, 91, 99,108, 97,115,115, 46, 98, 116,121,112,101, 93, 10, 9,101,110,100, 10, 9,114,101,116, 117,114,110, 32,110,105,108, 10,101,110,100, 10, 10,102,117, 110, 99,116,105,111,110, 32,103,101,116, 95,112,117,115,104, 95,102,117,110, 99,116,105,111,110, 40,116, 41, 10, 9,114, 101,116,117,114,110, 32, 95,112,117,115,104, 95,102,117,110, 99,116,105,111,110,115, 91,116, 93, 32,111,114, 32,115,101, 97,114, 99,104, 95, 98, 97,115,101, 40,116, 44, 32, 95, 98, 97,115,101, 95,112,117,115,104, 95,102,117,110, 99,116,105, 111,110,115, 41, 32,111,114, 32, 34,116,111,108,117, 97, 95, 112,117,115,104,117,115,101,114,116,121,112,101, 34, 10,101, 110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,103,101, 116, 95,116,111, 95,102,117,110, 99,116,105,111,110, 40,116, 41, 10, 9,114,101,116,117,114,110, 32, 95,116,111, 95,102, 117,110, 99,116,105,111,110,115, 91,116, 93, 32,111,114, 32, 115,101, 97,114, 99,104, 95, 98, 97,115,101, 40,116, 44, 32, 95, 98, 97,115,101, 95,116,111, 95,102,117,110, 99,116,105, 111,110,115, 41, 32,111,114, 32, 34,116,111,108,117, 97, 95, 116,111,117,115,101,114,116,121,112,101, 34, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,103,101,116, 95, 105,115, 95,102,117,110, 99,116,105,111,110, 40,116, 41, 10, 9,114,101,116,117,114,110, 32, 95,105,115, 95,102,117,110, 99,116,105,111,110,115, 91,116, 93, 32,111,114, 32,115,101, 97,114, 99,104, 95, 98, 97,115,101, 40,116, 44, 32, 95, 98, 97,115,101, 95,105,115, 95,102,117,110, 99,116,105,111,110, 115, 41, 32,111,114, 32, 34,116,111,108,117, 97, 95,105,115, 117,115,101,114,116,121,112,101, 34, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/basic.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32, 97, 98,115,116,114, 97, 99,116, 32,102,101, 97,116,117,114,101, 32, 99,108, 97, 115,115, 10, 45, 45, 32, 87,114,105,116,116,101,110, 32, 98, 121, 32, 87, 97,108,100,101,109, 97,114, 32, 67,101,108,101, 115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73,100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111,100,101, 32,105,115, 32, 102,114,101,101, 32,115,111,102,116,119, 97,114,101, 59, 32, 121,111,117, 32, 99, 97,110, 32,114,101,100,105,115,116,114, 105, 98,117,116,101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109,111,100,105,102,121, 32,105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116,119, 97,114,101, 32,112,114, 111,118,105,100,101,100, 32,104,101,114,101,117,110,100,101, 114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32, 105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97,117,116,104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98,108,105,103, 97,116,105,111, 110, 32,116,111, 32,112,114,111,118,105,100,101, 32,109, 97, 105,110,116,101,110, 97,110, 99,101, 44, 32,115,117,112,112, 111,114,116, 44, 32,117,112,100, 97,116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,101,109,101,110,116,115, 44, 32,111,114, 32,109,111,100,105,102,105, 99, 97,116,105,111, 110,115, 46, 10, 10, 10, 45, 45, 32, 70,101, 97,116,117,114, 101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114, 101,115,101,110,116,115, 32,116,104,101, 32, 98, 97,115,101, 32, 99,108, 97,115,115, 32,111,102, 32, 97,108,108, 32,109, 97,112,112,101,100, 32,102,101, 97,116,117,114,101, 46, 10, 99,108, 97,115,115, 70,101, 97,116,117,114,101, 32, 61, 32, 123, 10,125, 10, 99,108, 97,115,115, 70,101, 97,116,117,114, 101, 46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97, 115,115, 70,101, 97,116,117,114,101, 10, 10, 45, 45, 32,119, 114,105,116,101, 32,115,117,112,112,111,114,116, 32, 99,111, 100,101, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97, 115,115, 70,101, 97,116,117,114,101, 58,115,117,112, 99,111, 100,101, 32, 40, 41, 10,101,110,100, 10, 10, 45, 45, 32,111, 117,116,112,117,116, 32,116, 97,103, 10,102,117,110, 99,116, 105,111,110, 32, 99,108, 97,115,115, 70,101, 97,116,117,114, 101, 58,100,101, 99,108,116,121,112,101, 32, 40, 41, 10,101, 110,100, 10, 10, 45, 45, 32,114,101,103,105,115,116,101,114, 32,102,101, 97,116,117,114,101, 10,102,117,110, 99,116,105, 111,110, 32, 99,108, 97,115,115, 70,101, 97,116,117,114,101, 58,114,101,103,105,115,116,101,114, 32, 40,112,114,101, 41, 10,101,110,100, 10, 10, 45, 45, 32,116,114, 97,110,115,108, 97,116,101, 32,118,101,114, 98, 97,116,105,109, 10,102,117, 110, 99,116,105,111,110, 32, 99,108, 97,115,115, 70,101, 97, 116,117,114,101, 58,112,114,101, 97,109, 98,108,101, 32, 40, 41, 10,101,110,100, 10, 10, 45, 45, 32, 99,104,101, 99,107, 32,105,102, 32,105,116, 32,105,115, 32, 97, 32,118, 97,114, 105, 97, 98,108,101, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 70,101, 97,116,117,114,101, 58,105,115, 118, 97,114,105, 97, 98,108,101, 32, 40, 41, 10, 32,114,101, 116,117,114,110, 32,102, 97,108,115,101, 10,101,110,100, 10, 10, 45, 45, 32, 99,104,101, 99,107, 32,105,102, 32,105,116, 32,114,101,113,117,105,114,101,115, 32, 99,111,108,108,101, 99,116,105,111,110, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 70,101, 97,116,117,114,101, 58,114,101, 113,117,105,114,101, 99,111,108,108,101, 99,116,105,111,110, 32, 40,116, 41, 10, 32,114,101,116,117,114,110, 32,102, 97, 108,115,101, 10,101,110,100, 10, 10, 45, 45, 32, 98,117,105, 108,100, 32,110, 97,109,101,115, 10,102,117,110, 99,116,105, 111,110, 32, 99,108, 97,115,115, 70,101, 97,116,117,114,101, 58, 98,117,105,108,100,110, 97,109,101,115, 32, 40, 41, 10, 32,105,102, 32,115,101,108,102, 46,110, 97,109,101, 32, 97, 110,100, 32,115,101,108,102, 46,110, 97,109,101,126, 61, 39, 39, 32,116,104,101,110, 10, 32, 32,108,111, 99, 97,108, 32, 110, 32, 61, 32,115,112,108,105,116, 40,115,101,108,102, 46, 110, 97,109,101, 44, 39, 64, 39, 41, 10, 32, 32,115,101,108, 102, 46,110, 97,109,101, 32, 61, 32,110, 91, 49, 93, 10, 32, 32,115,101,108,102, 46,110, 97,109,101, 32, 61, 32,115,116, 114,105,110,103, 46,103,115,117, 98, 40,115,101,108,102, 46, 110, 97,109,101, 44, 32, 34, 58, 37,100, 42, 36, 34, 44, 32, 34, 34, 41, 10, 32, 32,105,102, 32,110,111,116, 32,110, 91, 50, 93, 32,116,104,101,110, 10, 32, 32, 32,110, 91, 50, 93, 32, 61, 32, 97,112,112,108,121,114,101,110, 97,109,105,110, 103, 40,110, 91, 49, 93, 41, 10, 32, 32,101,110,100, 10, 32, 32,115,101,108,102, 46,108,110, 97,109,101, 32, 61, 32,110, 91, 50, 93, 32,111,114, 32,103,115,117, 98, 40,110, 91, 49, 93, 44, 34, 37, 91, 46, 45, 37, 93, 34, 44, 34, 34, 41, 10, 32, 32,115,101,108,102, 46,108,110, 97,109,101, 32, 61, 32, 115,116,114,105,110,103, 46,103,115,117, 98, 40,115,101,108, 102, 46,108,110, 97,109,101, 44, 32, 34, 58, 37,100, 42, 36, 34, 44, 32, 34, 34, 41, 10, 32, 32,115,101,108,102, 46,111, 114,105,103,105,110, 97,108, 95,110, 97,109,101, 32, 61, 32, 115,101,108,102, 46,110, 97,109,101, 10, 32, 32,115,101,108, 102, 46,108,110, 97,109,101, 32, 61, 32, 99,108,101, 97,110, 95,116,101,109,112,108, 97,116,101, 40,115,101,108,102, 46, 108,110, 97,109,101, 41, 10, 32,101,110,100, 10, 32,105,102, 32,110,111,116, 32,115,101,108,102, 46,105,115, 95,112, 97, 114, 97,109,101,116,101,114, 32,116,104,101,110, 10, 9, 32, 115,101,108,102, 46,110, 97,109,101, 32, 61, 32,103,101,116, 111,110,108,121,110, 97,109,101,115,112, 97, 99,101, 40, 41, 32, 46, 46, 32,115,101,108,102, 46,110, 97,109,101, 10, 32, 101,110,100, 10, 10, 32,108,111, 99, 97,108, 32,112, 97,114, 101,110,116, 32, 61, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 10, 32,105,102, 32, 112, 97,114,101,110,116, 32,116,104,101,110, 10, 32, 9,115, 101,108,102, 46, 97, 99, 99,101,115,115, 32, 61, 32,112, 97, 114,101,110,116, 46, 99,117,114,114, 95,109,101,109, 98,101, 114, 95, 97, 99, 99,101,115,115, 10, 9,115,101,108,102, 46, 103,108,111, 98, 97,108, 95, 97, 99, 99,101,115,115, 32, 61, 32,115,101,108,102, 58, 99,104,101, 99,107, 95,112,117, 98, 108,105, 99, 95, 97, 99, 99,101,115,115, 40, 41, 10, 32,101, 108,115,101, 10, 32,101,110,100, 10,101,110,100, 10, 10,102, 117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 70,101, 97,116,117,114,101, 58, 99,104,101, 99,107, 95,112,117, 98, 108,105, 99, 95, 97, 99, 99,101,115,115, 40, 41, 10, 10, 9, 105,102, 32,116,121,112,101, 40,115,101,108,102, 46,103,108, 111, 98, 97,108, 95, 97, 99, 99,101,115,115, 41, 32, 61, 61, 32, 34, 98,111,111,108,101, 97,110, 34, 32,116,104,101,110, 10, 9, 9,114,101,116,117,114,110, 32,115,101,108,102, 46, 103,108,111, 98, 97,108, 95, 97, 99, 99,101,115,115, 10, 9, 101,110,100, 10, 10, 9,105,102, 32,115,101,108,102, 46, 97, 99, 99,101,115,115, 32, 97,110,100, 32,115,101,108,102, 46, 97, 99, 99,101,115,115, 32,126, 61, 32, 48, 32,116,104,101, 110, 10, 9, 9,114,101,116,117,114,110, 32,102, 97,108,115, 101, 10, 9,101,110,100, 10, 10, 9,108,111, 99, 97,108, 32, 112, 97,114,101,110,116, 32, 61, 32, 99,108, 97,115,115, 67, 111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 10, 9, 119,104,105,108,101, 32,112, 97,114,101,110,116, 32,100,111, 10, 9, 9,105,102, 32,112, 97,114,101,110,116, 46, 97, 99, 99,101,115,115, 32, 97,110,100, 32,112, 97,114,101,110,116, 46, 97, 99, 99,101,115,115, 32,126, 61, 32, 48, 32,116,104, 101,110, 10, 9, 9, 9,114,101,116,117,114,110, 32,102, 97, 108,115,101, 10, 9, 9,101,110,100, 10, 9, 9,112, 97,114, 101,110,116, 32, 61, 32,112, 97,114,101,110,116, 46,112,114, 111,120, 10, 9,101,110,100, 10, 9,114,101,116,117,114,110, 32,116,114,117,101, 10,101,110,100, 10, 10,102,117,110, 99, 116,105,111,110, 32, 99,108,101, 97,110, 95,116,101,109,112, 108, 97,116,101, 40,116, 41, 10, 10, 9,114,101,116,117,114, 110, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,116, 44, 32, 34, 91, 60, 62, 58, 44, 32, 37, 42, 93, 34, 44, 32, 34, 95, 34, 41, 10,101,110,100, 10, 10, 45, 45, 32, 99,104, 101, 99,107, 32,105,102, 32,102,101, 97,116,117,114,101, 32, 105,115, 32,105,110,115,105,100,101, 32, 97, 32, 99,111,110, 116, 97,105,110,101,114, 32,100,101,102,105,110,105,116,105, 111,110, 10, 45, 45, 32,105,116, 32,114,101,116,117,114,110, 115, 32,116,104,101, 32, 99,111,110,116, 97,105,110,101,114, 32, 99,108, 97,115,115, 32,110, 97,109,101, 32,111,114, 32, 110,105,108, 46, 10,102,117,110, 99,116,105,111,110, 32, 99, 108, 97,115,115, 70,101, 97,116,117,114,101, 58,105,110, 99, 111,110,116, 97,105,110,101,114, 32, 40,119,104,105, 99,104, 41, 10, 32,105,102, 32,115,101,108,102, 46,112, 97,114,101, 110,116, 32,116,104,101,110, 10, 32, 32,108,111, 99, 97,108, 32,112, 97,114,101,110,116, 32, 61, 32,115,101,108,102, 46, 112, 97,114,101,110,116, 10, 32, 32,119,104,105,108,101, 32, 112, 97,114,101,110,116, 32,100,111, 10, 32, 32, 32,105,102, 32,112, 97,114,101,110,116, 46, 99,108, 97,115,115,116,121, 112,101, 32, 61, 61, 32,119,104,105, 99,104, 32,116,104,101, 110, 10, 32, 32, 32, 32,114,101,116,117,114,110, 32,112, 97, 114,101,110,116, 46,110, 97,109,101, 10, 32, 32, 32,101,110, 100, 10, 32, 32, 32,112, 97,114,101,110,116, 32, 61, 32,112, 97,114,101,110,116, 46,112, 97,114,101,110,116, 10, 32, 32, 101,110,100, 10, 32,101,110,100, 10, 32,114,101,116,117,114, 110, 32,110,105,108, 10,101,110,100, 10, 10,102,117,110, 99, 116,105,111,110, 32, 99,108, 97,115,115, 70,101, 97,116,117, 114,101, 58,105,110, 99,108, 97,115,115, 32, 40, 41, 10, 32, 114,101,116,117,114,110, 32,115,101,108,102, 58,105,110, 99, 111,110,116, 97,105,110,101,114, 40, 39, 99,108, 97,115,115, 39, 41, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111, 110, 32, 99,108, 97,115,115, 70,101, 97,116,117,114,101, 58, 105,110,109,111,100,117,108,101, 32, 40, 41, 10, 32,114,101, 116,117,114,110, 32,115,101,108,102, 58,105,110, 99,111,110, 116, 97,105,110,101,114, 40, 39,109,111,100,117,108,101, 39, 41, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 70,101, 97,116,117,114,101, 58,105, 110,110, 97,109,101,115,112, 97, 99,101, 32, 40, 41, 10, 32, 114,101,116,117,114,110, 32,115,101,108,102, 58,105,110, 99, 111,110,116, 97,105,110,101,114, 40, 39,110, 97,109,101,115, 112, 97, 99,101, 39, 41, 10,101,110,100, 10, 10, 45, 45, 32, 114,101,116,117,114,110, 32, 67, 32, 98,105,110,100,105,110, 103, 32,102,117,110, 99,116,105,111,110, 32,110, 97,109,101, 32, 98, 97,115,101,100, 32,111,110, 32,110, 97,109,101, 10, 45, 45, 32,116,104,101, 32, 99,108,105,101,110,116, 32,115, 112,101, 99,105,102,105,101,115, 32, 97, 32,112,114,101,102, 105,120, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97, 115,115, 70,101, 97,116,117,114,101, 58, 99,102,117,110, 99, 110, 97,109,101, 32, 40,110, 41, 10, 10, 32,105,102, 32,115, 101,108,102, 46,112, 97,114,101,110,116, 32,116,104,101,110, 10, 32, 32,110, 32, 61, 32,115,101,108,102, 46,112, 97,114, 101,110,116, 58, 99,102,117,110, 99,110, 97,109,101, 40,110, 41, 10, 32,101,110,100, 10, 10, 32,108,111, 99, 97,108, 32, 102,110, 97,109,101, 32, 61, 32,115,101,108,102, 46,108,110, 97,109,101, 10, 32,105,102, 32,110,111,116, 32,102,110, 97, 109,101, 32,111,114, 32,102,110, 97,109,101, 32, 61, 61, 32, 39, 39, 32,116,104,101,110, 10, 32, 9,102,110, 97,109,101, 32, 61, 32,115,101,108,102, 46,110, 97,109,101, 10, 32,101, 110,100, 10, 32, 32,110, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,110, 46, 46, 39, 95, 39, 46, 46, 32, 40,102,110, 97,109,101, 41, 44, 32, 34, 91, 60, 62, 58, 44, 32, 92, 46, 37, 42, 38, 93, 34, 44, 32, 34, 95, 34, 41, 10, 10, 32, 32,114,101,116,117,114,110, 32,110, 10,101,110,100, 32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/feature.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32,118,101,114, 98, 97, 116,105,109, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114, 105,116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73, 100, 58, 32,118,101,114, 98, 97,116,105,109, 46,108,117, 97, 44,118, 32, 49, 46, 51, 32, 50, 48, 48, 48, 47, 48, 49, 47, 50, 52, 32, 50, 48, 58, 52, 49, 58, 49, 54, 32, 99,101,108, 101,115, 32, 69,120,112, 32, 36, 10, 10, 45, 45, 32, 84,104, 105,115, 32, 99,111,100,101, 32,105,115, 32,102,114,101,101, 32,115,111,102,116,119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32,114,101,100,105,115,116,114,105, 98,117,116, 101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109,111,100, 105,102,121, 32,105,116, 46, 10, 45, 45, 32, 84,104,101, 32, 115,111,102,116,119, 97,114,101, 32,112,114,111,118,105,100, 101,100, 32,104,101,114,101,117,110,100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97,110,100, 10, 45, 45, 32,116, 104,101, 32, 97,117,116,104,111,114, 32,104, 97,115, 32,110, 111, 32,111, 98,108,105,103, 97,116,105,111,110, 32,116,111, 32,112,114,111,118,105,100,101, 32,109, 97,105,110,116,101, 110, 97,110, 99,101, 44, 32,115,117,112,112,111,114,116, 44, 32,117,112,100, 97,116,101,115, 44, 10, 45, 45, 32,101,110, 104, 97,110, 99,101,109,101,110,116,115, 44, 32,111,114, 32, 109,111,100,105,102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 10, 45, 45, 32, 86,101,114, 98, 97,116,105,109, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114,101,115, 101,110,116,115, 32, 97, 32,108,105,110,101, 32,116,114, 97, 110,115,108, 97,116,101,100, 32,100,105,114,101, 99,116,101, 100, 32,116,111, 32,116,104,101, 32, 98,105,110,100,105,110, 103, 32,102,105,108,101, 46, 10, 45, 45, 32, 84,104,101, 32, 102,111,108,108,111,119,105,110,103, 32,102,105,108,100,115, 32, 97,114,101, 32,115,116,111,114,101,100, 58, 10, 45, 45, 32, 32, 32,108,105,110,101, 32, 61, 32,108,105,110,101, 32, 116,101,120,116, 10, 99,108, 97,115,115, 86,101,114, 98, 97, 116,105,109, 32, 61, 32,123, 10, 32,108,105,110,101, 32, 61, 32, 39, 39, 44, 10, 9, 99,111,110,100, 32, 61, 32,110,105, 108, 44, 32, 32, 32, 32, 45, 45, 32, 99,111,110,100,105,116, 105,111,110, 58, 32,119,104,101,114,101, 32,116,111, 32,103, 101,110,101,114, 97,116,101, 32,116,104,101, 32, 99,111,100, 101, 32, 40,115, 61,115,117,112,111,114,116, 44, 32,114, 61, 114,101,103,105,115,116,101,114, 41, 10,125, 10, 99,108, 97, 115,115, 86,101,114, 98, 97,116,105,109, 46, 95, 95,105,110, 100,101,120, 32, 61, 32, 99,108, 97,115,115, 86,101,114, 98, 97,116,105,109, 10,115,101,116,109,101,116, 97,116, 97, 98, 108,101, 40, 99,108, 97,115,115, 86,101,114, 98, 97,116,105, 109, 44, 99,108, 97,115,115, 70,101, 97,116,117,114,101, 41, 10, 10, 45, 45, 32,112,114,101, 97,109, 98,108,101, 32,118, 101,114, 98, 97,116,105,109, 10,102,117,110, 99,116,105,111, 110, 32, 99,108, 97,115,115, 86,101,114, 98, 97,116,105,109, 58,112,114,101, 97,109, 98,108,101, 32, 40, 41, 10, 32,105, 102, 32,115,101,108,102, 46, 99,111,110,100, 32, 61, 61, 32, 39, 39, 32,116,104,101,110, 10, 32, 32,119,114,105,116,101, 40,115,101,108,102, 46,108,105,110,101, 41, 10, 32,101,110, 100, 10,101,110,100, 10, 10, 45, 45, 32,115,117,112,112,111, 114,116, 32, 99,111,100,101, 10,102,117,110, 99,116,105,111, 110, 32, 99,108, 97,115,115, 86,101,114, 98, 97,116,105,109, 58,115,117,112, 99,111,100,101, 32, 40, 41, 10, 32,105,102, 32,115,116,114,102,105,110,100, 40,115,101,108,102, 46, 99, 111,110,100, 44, 39,115, 39, 41, 32,116,104,101,110, 10, 32, 32,119,114,105,116,101, 40,115,101,108,102, 46,108,105,110, 101, 41, 10, 32, 32,119,114,105,116,101, 40, 39, 92,110, 39, 41, 10, 32,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 114,101,103,105,115,116,101,114, 32, 99,111,100,101, 10,102, 117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 86,101, 114, 98, 97,116,105,109, 58,114,101,103,105,115,116,101,114, 32, 40,112,114,101, 41, 10, 32,105,102, 32,115,116,114,102, 105,110,100, 40,115,101,108,102, 46, 99,111,110,100, 44, 39, 114, 39, 41, 32,116,104,101,110, 10, 32, 32,119,114,105,116, 101, 40,115,101,108,102, 46,108,105,110,101, 41, 10, 32,101, 110,100, 10,101,110,100, 10, 10, 10, 45, 45, 32, 80,114,105, 110,116, 32,109,101,116,104,111,100, 10,102,117,110, 99,116, 105,111,110, 32, 99,108, 97,115,115, 86,101,114, 98, 97,116, 105,109, 58,112,114,105,110,116, 32, 40,105,100,101,110,116, 44, 99,108,111,115,101, 41, 10, 32,112,114,105,110,116, 40, 105,100,101,110,116, 46, 46, 34, 86,101,114, 98, 97,116,105, 109,123, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101, 110,116, 46, 46, 34, 32,108,105,110,101, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,108,105,110,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110, 116, 46, 46, 34,125, 34, 46, 46, 99,108,111,115,101, 41, 10, 101,110,100, 10, 10, 10, 45, 45, 32, 73,110,116,101,114,110, 97,108, 32, 99,111,110,115,116,114,117, 99,116,111,114, 10, 102,117,110, 99,116,105,111,110, 32, 95, 86,101,114, 98, 97, 116,105,109, 32, 40,116, 41, 10, 32,115,101,116,109,101,116, 97,116, 97, 98,108,101, 40,116, 44, 99,108, 97,115,115, 86, 101,114, 98, 97,116,105,109, 41, 10, 32, 97,112,112,101,110, 100, 40,116, 41, 10, 32,114,101,116,117,114,110, 32,116, 10, 101,110,100, 10, 10, 45, 45, 32, 67,111,110,115,116,114,117, 99,116,111,114, 10, 45, 45, 32, 69,120,112,101, 99,116,115, 32, 97, 32,115,116,114,105,110,103, 32,114,101,112,114,101, 115,101,110,116,105,110,103, 32,116,104,101, 32,116,101,120, 116, 32,108,105,110,101, 10,102,117,110, 99,116,105,111,110, 32, 86,101,114, 98, 97,116,105,109, 32, 40,108, 44, 99,111, 110,100, 41, 10, 32,105,102, 32,115,116,114,115,117, 98, 40, 108, 44, 49, 44, 49, 41, 32, 61, 61, 32, 34, 39, 34, 32,116, 104,101,110, 10, 32, 32,108, 32, 61, 32,115,116,114,115,117, 98, 40,108, 44, 50, 41, 10, 32,101,108,115,101,105,102, 32, 115,116,114,115,117, 98, 40,108, 44, 49, 44, 49, 41, 32, 61, 61, 32, 39, 36, 39, 32,116,104,101,110, 10, 32, 32, 99,111, 110,100, 32, 61, 32, 39,115,114, 39, 32, 32, 32, 32, 32, 32, 32, 45, 45, 32,103,101,110,101,114, 97,116,101,115, 32,105, 110, 32, 98,111,116,104, 32,115,117,112,111,114,116, 32, 97, 110,100, 32,114,101,103,105,115,116,101,114, 32,102,114, 97, 103,109,101,110,116,115, 10, 32, 32,108, 32, 61, 32,115,116, 114,115,117, 98, 40,108, 44, 50, 41, 10, 32,101,110,100, 10, 32,114,101,116,117,114,110, 32, 95, 86,101,114, 98, 97,116, 105,109, 32,123, 10, 32, 32,108,105,110,101, 32, 61, 32,108, 44, 10, 32, 32, 99,111,110,100, 32, 61, 32, 99,111,110,100, 32,111,114, 32, 39, 39, 44, 10, 32,125, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/verbatim.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32, 99,111,100,101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114,105,116,116,101, 110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114, 32, 67, 101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 49, 57, 57, 57, 10, 45, 45, 32, 36, 73,100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111,100,101, 32, 105,115, 32,102,114,101,101, 32,115,111,102,116,119, 97,114, 101, 59, 32,121,111,117, 32, 99, 97,110, 32,114,101,100,105, 115,116,114,105, 98,117,116,101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109,111,100,105,102,121, 32,105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116,119, 97,114,101, 32,112,114,111,118,105,100,101,100, 32,104,101,114,101,117, 110,100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97, 110,100, 10, 45, 45, 32,116,104,101, 32, 97,117,116,104,111, 114, 32,104, 97,115, 32,110,111, 32,111, 98,108,105,103, 97, 116,105,111,110, 32,116,111, 32,112,114,111,118,105,100,101, 32,109, 97,105,110,116,101,110, 97,110, 99,101, 44, 32,115, 117,112,112,111,114,116, 44, 32,117,112,100, 97,116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,101,109,101,110, 116,115, 44, 32,111,114, 32,109,111,100,105,102,105, 99, 97, 116,105,111,110,115, 46, 10, 10, 45, 45, 32,103,108,111, 98, 97,108, 10, 99,111,100,101, 95,110, 32, 61, 32, 49, 10, 10, 45, 45, 32, 67,111,100,101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114,101,115,101,110,116,115, 32, 76,117, 97, 32, 99,111,100,101, 32,116,111, 32, 98,101, 32, 99,111, 109,112,105,108,101,100, 32, 97,110,100, 32,105,110, 99,108, 117,100,101,100, 10, 45, 45, 32,105,110, 32,116,104,101, 32, 105,110,105,116,105, 97,108,105,122, 97,116,105,111,110, 32, 102,117,110, 99,116,105,111,110, 46, 10, 45, 45, 32, 84,104, 101, 32,102,111,108,108,111,119,105,110,103, 32,102,105,101, 108,100,115, 32, 97,114,101, 32,115,116,111,114,101,100, 58, 10, 45, 45, 32, 32, 32,116,101,120,116, 32, 61, 32,116,101, 120,116, 32, 99,111,100,101, 10, 99,108, 97,115,115, 67,111, 100,101, 32, 61, 32,123, 10, 32,116,101,120,116, 32, 61, 32, 39, 39, 44, 10,125, 10, 99,108, 97,115,115, 67,111,100,101, 46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97,115, 115, 67,111,100,101, 10,115,101,116,109,101,116, 97,116, 97, 98,108,101, 40, 99,108, 97,115,115, 67,111,100,101, 44, 99, 108, 97,115,115, 70,101, 97,116,117,114,101, 41, 10, 10, 45, 45, 32,114,101,103,105,115,116,101,114, 32, 99,111,100,101, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67,111,100,101, 58,114,101,103,105,115,116,101,114, 32, 40, 112,114,101, 41, 10, 32,112,114,101, 32, 61, 32,112,114,101, 32,111,114, 32, 39, 39, 10, 32, 45, 45, 32, 99,108,101, 97, 110, 32, 76,117, 97, 32, 99,111,100,101, 10, 32,108,111, 99, 97,108, 32,115, 32, 61, 32, 99,108,101, 97,110, 40,115,101, 108,102, 46,116,101,120,116, 41, 10, 32,105,102, 32,110,111, 116, 32,115, 32,116,104,101,110, 10, 32, 32, 45, 45,112,114, 105,110,116, 40,115,101,108,102, 46,116,101,120,116, 41, 10, 32, 32,101,114,114,111,114, 40, 34,112, 97,114,115,101,114, 32,101,114,114,111,114, 32,105,110, 32,101,109, 98,101,100, 100,101,100, 32, 99,111,100,101, 34, 41, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,103,101,116, 32,102,105,114,115,116, 32,108,105,110,101, 10, 32,108,111, 99, 97,108, 32, 95, 44, 32, 95, 44, 32,102,105,114,115,116, 95,108,105,110,101, 61, 115,116,114,105,110,103, 46,102,105,110,100, 40,115,101,108, 102, 46,116,101,120,116, 44, 32, 34, 94, 40, 91, 94, 92,110, 92,114, 93, 42, 41, 34, 41, 10, 32,105,102, 32,115,116,114, 105,110,103, 46,102,105,110,100, 40,102,105,114,115,116, 95, 108,105,110,101, 44, 32, 34, 94, 37,115, 42, 37, 45, 37, 45, 34, 41, 32,116,104,101,110, 10, 9, 32,105,102, 32,115,116, 114,105,110,103, 46,102,105,110,100, 40,102,105,114,115,116, 95,108,105,110,101, 44, 32, 34, 94, 37, 45, 37, 45, 35, 35, 34, 41, 32,116,104,101,110, 10, 9, 9,102,105,114,115,116, 95,108,105,110,101, 32, 61, 32,115,116,114,105,110,103, 46, 103,115,117, 98, 40,102,105,114,115,116, 95,108,105,110,101, 44, 32, 34, 94, 37, 45, 37, 45, 35, 35, 34, 44, 32, 34, 34, 41, 10, 9, 9,105,102, 32,102,108, 97,103,115, 91, 39, 67, 39, 93, 32,116,104,101,110, 10, 9, 9, 9,115, 32, 61, 32, 115,116,114,105,110,103, 46,103,115,117, 98, 40,115, 44, 32, 34, 94, 37, 45, 37, 45, 35, 35, 91, 94, 92,110, 92,114, 93, 42, 92,110, 34, 44, 32, 34, 34, 41, 10, 9, 9,101,110,100, 10, 9, 32,101,110,100, 10, 32,101,108,115,101, 10, 32, 9, 102,105,114,115,116, 95,108,105,110,101, 32, 61, 32, 34, 34, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,112, 97,100, 32, 116,111, 32, 49, 54, 32, 98,121,116,101,115, 10, 32,108,111, 99, 97,108, 32,110,112, 97,100, 32, 61, 32, 49, 54, 32, 45, 32, 40, 35,115, 32, 37, 32, 49, 54, 41, 10, 32,108,111, 99, 97,108, 32,115,112, 97,100, 32, 61, 32, 34, 34, 10, 32,102, 111,114, 32,105, 61, 49, 44,110,112, 97,100, 32,100,111, 10, 32, 9,115,112, 97,100, 32, 61, 32,115,112, 97,100, 32, 46, 46, 32, 34, 45, 34, 10, 32,101,110,100, 10, 32,115, 32, 61, 32,115, 46, 46,115,112, 97,100, 10, 32, 10, 32, 45, 45, 32, 99,111,110,118,101,114,116, 32,116,111, 32, 67, 10, 32,111, 117,116,112,117,116, 40, 39, 92,110, 39, 46, 46,112,114,101, 46, 46, 39,123, 32, 47, 42, 32, 98,101,103,105,110, 32,101, 109, 98,101,100,100,101,100, 32,108,117, 97, 32, 99,111,100, 101, 32, 42, 47, 92,110, 39, 41, 10, 32,111,117,116,112,117, 116, 40,112,114,101, 46, 46, 39, 32,105,110,116, 32,116,111, 112, 32, 61, 32,108,117, 97, 95,103,101,116,116,111,112, 40, 116,111,108,117, 97, 95, 83, 41, 59, 39, 41, 10, 32,111,117, 116,112,117,116, 40,112,114,101, 46, 46, 39, 32,115,116, 97, 116,105, 99, 32, 99,111,110,115,116, 32,117,110,115,105,103, 110,101,100, 32, 99,104, 97,114, 32, 66, 91, 93, 32, 61, 32, 123, 92,110, 32, 32, 32, 39, 41, 10, 32,108,111, 99, 97,108, 32,116, 61,123,110, 61, 48,125, 10, 10, 32,108,111, 99, 97, 108, 32, 98, 32, 61, 32,103,115,117, 98, 40,115, 44, 39, 40, 46, 41, 39, 44,102,117,110, 99,116,105,111,110, 32, 40, 99, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,108,111, 99, 97,108, 32,101, 32, 61, 32, 39, 39, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,116, 46,110, 61,116, 46,110, 43, 49, 32, 105,102, 32,116, 46,110, 61, 61, 49, 53, 32,116,104,101,110, 32,116, 46,110, 61, 48, 32,101, 61, 39, 92,110, 39, 46, 46, 112,114,101, 46, 46, 39, 32, 32, 39, 32,101,110,100, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,114,101,116,117,114,110, 32,102,111,114,109, 97,116, 40, 39, 37, 51,117, 44, 37,115, 39, 44,115,116,114, 98,121,116,101, 40, 99, 41, 44,101, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,101,110,100, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 41, 10, 32,111,117,116,112,117,116, 40, 98, 46, 46,115,116,114, 98,121,116,101, 40, 34, 32, 34, 41, 41, 10, 32,111,117,116, 112,117,116, 40, 39, 92,110, 39, 46, 46,112,114,101, 46, 46, 39, 32,125, 59, 92,110, 39, 41, 10, 32,105,102, 32,102,105, 114,115,116, 95,108,105,110,101, 32, 97,110,100, 32,102,105, 114,115,116, 95,108,105,110,101, 32,126, 61, 32, 34, 34, 32, 116,104,101,110, 10, 32, 9,111,117,116,112,117,116, 40,112, 114,101, 46, 46, 39, 32,116,111,108,117, 97, 95,100,111, 98, 117,102,102,101,114, 40,116,111,108,117, 97, 95, 83, 44, 40, 99,104, 97,114, 42, 41, 66, 44,115,105,122,101,111,102, 40, 66, 41, 44, 34,116,111,108,117, 97, 32,101,109, 98,101,100, 100,101,100, 58, 32, 39, 46, 46,102,105,114,115,116, 95,108, 105,110,101, 46, 46, 39, 34, 41, 59, 39, 41, 10, 32,101,108, 115,101, 10, 32, 9,111,117,116,112,117,116, 40,112,114,101, 46, 46, 39, 32,116,111,108,117, 97, 95,100,111, 98,117,102, 102,101,114, 40,116,111,108,117, 97, 95, 83, 44, 40, 99,104, 97,114, 42, 41, 66, 44,115,105,122,101,111,102, 40, 66, 41, 44, 34,116,111,108,117, 97, 58, 32,101,109, 98,101,100,100, 101,100, 32, 76,117, 97, 32, 99,111,100,101, 32, 39, 46, 46, 99,111,100,101, 95,110, 46, 46, 39, 34, 41, 59, 39, 41, 10, 32,101,110,100, 10, 32,111,117,116,112,117,116, 40,112,114, 101, 46, 46, 39, 32,108,117, 97, 95,115,101,116,116,111,112, 40,116,111,108,117, 97, 95, 83, 44, 32,116,111,112, 41, 59, 39, 41, 10, 32,111,117,116,112,117,116, 40,112,114,101, 46, 46, 39,125, 32, 47, 42, 32,101,110,100, 32,111,102, 32,101, 109, 98,101,100,100,101,100, 32,108,117, 97, 32, 99,111,100, 101, 32, 42, 47, 92,110, 92,110, 39, 41, 10, 32, 99,111,100, 101, 95,110, 32, 61, 32, 99,111,100,101, 95,110, 32, 43, 49, 10,101,110,100, 10, 10, 10, 45, 45, 32, 80,114,105,110,116, 32,109,101,116,104,111,100, 10,102,117,110, 99,116,105,111, 110, 32, 99,108, 97,115,115, 67,111,100,101, 58,112,114,105, 110,116, 32, 40,105,100,101,110,116, 44, 99,108,111,115,101, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 67,111,100,101,123, 34, 41, 10, 32,112,114,105,110, 116, 40,105,100,101,110,116, 46, 46, 34, 32,116,101,120,116, 32, 61, 32, 91, 91, 34, 46, 46,115,101,108,102, 46,116,101, 120,116, 46, 46, 34, 93, 93, 44, 34, 41, 10, 32,112,114,105, 110,116, 40,105,100,101,110,116, 46, 46, 34,125, 34, 46, 46, 99,108,111,115,101, 41, 10,101,110,100, 10, 10, 10, 45, 45, 32, 73,110,116,101,114,110, 97,108, 32, 99,111,110,115,116, 114,117, 99,116,111,114, 10,102,117,110, 99,116,105,111,110, 32, 95, 67,111,100,101, 32, 40,116, 41, 10, 32,115,101,116, 109,101,116, 97,116, 97, 98,108,101, 40,116, 44, 99,108, 97, 115,115, 67,111,100,101, 41, 10, 32, 97,112,112,101,110,100, 40,116, 41, 10, 32,114,101,116,117,114,110, 32,116, 10,101, 110,100, 10, 10, 45, 45, 32, 67,111,110,115,116,114,117, 99, 116,111,114, 10, 45, 45, 32, 69,120,112,101, 99,116,115, 32, 97, 32,115,116,114,105,110,103, 32,114,101,112,114,101,115, 101,110,116,105,110,103, 32,116,104,101, 32, 99,111,100,101, 32,116,101,120,116, 10,102,117,110, 99,116,105,111,110, 32, 67,111,100,101, 32, 40,108, 41, 10, 32,114,101,116,117,114, 110, 32, 95, 67,111,100,101, 32,123, 10, 32, 32,116,101,120, 116, 32, 61, 32,108, 10, 32,125, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/code.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32,116,121,112,101,100, 101,102, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114,105, 116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97, 114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71, 114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73,100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111, 100,101, 32,105,115, 32,102,114,101,101, 32,115,111,102,116, 119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32,114, 101,100,105,115,116,114,105, 98,117,116,101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109,111,100,105,102,121, 32,105, 116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116,119, 97,114,101, 32,112,114,111,118,105,100,101,100, 32,104,101, 114,101,117,110,100,101,114, 32,105,115, 32,111,110, 32, 97, 110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97,117, 116,104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98,108, 105,103, 97,116,105,111,110, 32,116,111, 32,112,114,111,118, 105,100,101, 32,109, 97,105,110,116,101,110, 97,110, 99,101, 44, 32,115,117,112,112,111,114,116, 44, 32,117,112,100, 97, 116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,101, 109,101,110,116,115, 44, 32,111,114, 32,109,111,100,105,102, 105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 10, 45, 45, 32, 84,121,112,101,100,101,102, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114,101,115,101,110,116,115, 32, 97, 32,116,121,112,101, 32,115,121,110,111,110,121,109, 46, 10, 45, 45, 32, 84,104,101, 32, 39,100,101, 32,102, 97, 99,116, 111, 39, 32,116,121,112,101, 32,114,101,112,108, 97, 99,101, 115, 32,116,104,101, 32,116,121,112,101,100,101,102, 32, 98, 101,102,111,114,101, 32,116,104,101, 10, 45, 45, 32,114,101, 109, 97,105,110,105,110,103, 32, 99,111,100,101, 32,105,115, 32,112, 97,114,115,101,100, 46, 10, 45, 45, 32, 84,104,101, 32,102,111,108,108,111,119,105,110,103, 32,102,105,101,108, 100,115, 32, 97,114,101, 32,115,116,111,114,101,100, 58, 10, 45, 45, 32, 32, 32,117,116,121,112,101, 32, 61, 32,116,121, 112,101,100,101,102, 32,110, 97,109,101, 10, 45, 45, 32, 32, 32,116,121,112,101, 32, 61, 32, 39,116,104,101, 32,102, 97, 99,116,111, 39, 32,116,121,112,101, 10, 45, 45, 32, 32, 32, 109,111,100, 32, 61, 32,109,111,100,105,102,105,101,114,115, 32,116,111, 32,116,104,101, 32, 39,100,101, 32,102, 97, 99, 116,111, 39, 32,116,121,112,101, 10, 99,108, 97,115,115, 84, 121,112,101,100,101,102, 32, 61, 32,123, 10, 32,117,116,121, 112,101, 32, 61, 32, 39, 39, 44, 10, 32,109,111,100, 32, 61, 32, 39, 39, 44, 10, 32,116,121,112,101, 32, 61, 32, 39, 39, 10,125, 10, 99,108, 97,115,115, 84,121,112,101,100,101,102, 46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97,115, 115, 84,121,112,101,100,101,102, 10, 10, 45, 45, 32, 80,114, 105,110,116, 32,109,101,116,104,111,100, 10,102,117,110, 99, 116,105,111,110, 32, 99,108, 97,115,115, 84,121,112,101,100, 101,102, 58,112,114,105,110,116, 32, 40,105,100,101,110,116, 44, 99,108,111,115,101, 41, 10, 32,112,114,105,110,116, 40, 105,100,101,110,116, 46, 46, 34, 84,121,112,101,100,101,102, 123, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110, 116, 46, 46, 34, 32,117,116,121,112,101, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,117,116,121,112,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101, 110,116, 46, 46, 34, 32,109,111,100, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,109,111,100, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,116,121,112,101, 32, 61, 32, 39, 34, 46, 46,115, 101,108,102, 46,116,121,112,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34,125, 34, 46, 46, 99,108,111,115,101, 41, 10,101,110,100, 10, 10, 45, 45, 32, 82,101,116,117,114,110, 32,105,116, 39, 115, 32,110,111,116, 32, 97, 32,118, 97,114,105, 97, 98,108, 101, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115, 115, 84,121,112,101,100,101,102, 58,105,115,118, 97,114,105, 97, 98,108,101, 32, 40, 41, 10, 32,114,101,116,117,114,110, 32,102, 97,108,115,101, 10,101,110,100, 10, 10, 45, 45, 32, 73,110,116,101,114,110, 97,108, 32, 99,111,110,115,116,114, 117, 99,116,111,114, 10,102,117,110, 99,116,105,111,110, 32, 95, 84,121,112,101,100,101,102, 32, 40,116, 41, 10, 32,115, 101,116,109,101,116, 97,116, 97, 98,108,101, 40,116, 44, 99, 108, 97,115,115, 84,121,112,101,100,101,102, 41, 10, 32,116, 46,116,121,112,101, 32, 61, 32,114,101,115,111,108,118,101, 95,116,101,109,112,108, 97,116,101, 95,116,121,112,101,115, 40,116, 46,116,121,112,101, 41, 10, 32, 97,112,112,101,110, 100,116,121,112,101,100,101,102, 40,116, 41, 10, 32,114,101, 116,117,114,110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32, 67,111,110,115,116,114,117, 99,116,111,114, 10, 45, 45, 32, 69,120,112,101, 99,116,115, 32,111,110,101, 32,115,116,114, 105,110,103, 32,114,101,112,114,101,115,101,110,116,105,110, 103, 32,116,104,101, 32,116,121,112,101, 32,100,101,102,105, 110,105,116,105,111,110, 46, 10,102,117,110, 99,116,105,111, 110, 32, 84,121,112,101,100,101,102, 32, 40,115, 41, 10, 32, 105,102, 32,115,116,114,102,105,110,100, 40,115,116,114,105, 110,103, 46,103,115,117, 98, 40,115, 44, 32, 39, 37, 98, 60, 62, 39, 44, 32, 39, 39, 41, 44, 39, 91, 37, 42, 38, 93, 39, 41, 32,116,104,101,110, 10, 32, 32,116,111,108,117, 97, 95, 101,114,114,111,114, 40, 34, 35,105,110,118, 97,108,105,100, 32,116,121,112,101,100,101,102, 58, 32,112,111,105,110,116, 101,114,115, 32, 40, 97,110,100, 32,114,101,102,101,114,101, 110, 99,101,115, 41, 32, 97,114,101, 32,110,111,116, 32,115, 117,112,112,111,114,116,101,100, 34, 41, 10, 32,101,110,100, 10, 32,108,111, 99, 97,108, 32,111, 32, 61, 32,123,109,111, 100, 32, 61, 32, 39, 39,125, 10, 32,105,102, 32,115,116,114, 105,110,103, 46,102,105,110,100, 40,115, 44, 32, 34, 91, 60, 62, 93, 34, 41, 32,116,104,101,110, 10, 32, 9, 95, 44, 95, 44,111, 46,116,121,112,101, 44,111, 46,117,116,121,112,101, 32, 61, 32,115,116,114,105,110,103, 46,102,105,110,100, 40, 115, 44, 32, 34, 94, 37,115, 42, 40, 91, 94, 60, 62, 93, 43, 37, 98, 60, 62, 91, 94, 37,115, 93, 42, 41, 37,115, 43, 40, 46, 45, 41, 36, 34, 41, 10, 32,101,108,115,101, 10, 32, 9, 108,111, 99, 97,108, 32,116, 32, 61, 32,115,112,108,105,116, 40,103,115,117, 98, 40,115, 44, 34, 37,115, 37,115, 42, 34, 44, 34, 32, 34, 41, 44, 34, 32, 34, 41, 10, 32, 9,111, 32, 61, 32,123, 10, 9, 32, 32,117,116,121,112,101, 32, 61, 32, 116, 91,116, 46,110, 93, 44, 10, 9, 32, 32,116,121,112,101, 32, 61, 32,116, 91,116, 46,110, 45, 49, 93, 44, 10, 9, 32, 32,109,111,100, 32, 61, 32, 99,111,110, 99, 97,116, 40,116, 44, 49, 44,116, 46,110, 45, 50, 41, 44, 10, 9, 32,125, 10, 32,101,110,100, 10, 32,114,101,116,117,114,110, 32, 95, 84, 121,112,101,100,101,102, 40,111, 41, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/typedef.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32, 99,111,110,116, 97, 105,110,101,114, 32, 97, 98,115,116,114, 97, 99,116, 32, 99, 108, 97,115,115, 10, 45, 45, 32, 87,114,105,116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114, 32, 67,101, 108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73,100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111,100,101, 32,105, 115, 32,102,114,101,101, 32,115,111,102,116,119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32,114,101,100,105,115, 116,114,105, 98,117,116,101, 32,105,116, 32, 97,110,100, 47, 111,114, 32,109,111,100,105,102,121, 32,105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116,119, 97,114,101, 32, 112,114,111,118,105,100,101,100, 32,104,101,114,101,117,110, 100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97, 115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97,110, 100, 10, 45, 45, 32,116,104,101, 32, 97,117,116,104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98,108,105,103, 97,116, 105,111,110, 32,116,111, 32,112,114,111,118,105,100,101, 32, 109, 97,105,110,116,101,110, 97,110, 99,101, 44, 32,115,117, 112,112,111,114,116, 44, 32,117,112,100, 97,116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,101,109,101,110,116, 115, 44, 32,111,114, 32,109,111,100,105,102,105, 99, 97,116, 105,111,110,115, 46, 10, 10, 45, 45, 32,116, 97, 98,108,101, 32,116,111, 32,115,116,111,114,101, 32,110, 97,109,101,115, 112, 97, 99,101,100, 32,116,121,112,101,100,101,102,115, 47, 101,110,117,109,115, 32,105,110, 32,103,108,111, 98, 97,108, 32,115, 99,111,112,101, 10,103,108,111, 98, 97,108, 95,116, 121,112,101,100,101,102,115, 32, 61, 32,123,125, 10,103,108, 111, 98, 97,108, 95,101,110,117,109,115, 32, 61, 32,123,125, 10, 10, 45, 45, 32, 67,111,110,116, 97,105,110,101,114, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114,101,115, 101,110,116,115, 32, 97, 32, 99,111,110,116, 97,105,110,101, 114, 32,111,102, 32,102,101, 97,116,117,114,101,115, 32,116, 111, 32, 98,101, 32, 98,111,117,110,100, 10, 45, 45, 32,116, 111, 32,108,117, 97, 46, 10, 99,108, 97,115,115, 67,111,110, 116, 97,105,110,101,114, 32, 61, 10,123, 10, 32, 99,117,114, 114, 32, 61, 32,110,105,108, 44, 10,125, 10, 99,108, 97,115, 115, 67,111,110,116, 97,105,110,101,114, 46, 95, 95,105,110, 100,101,120, 32, 61, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 10,115,101,116,109,101,116, 97,116, 97, 98,108,101, 40, 99,108, 97,115,115, 67,111,110,116, 97,105, 110,101,114, 44, 99,108, 97,115,115, 70,101, 97,116,117,114, 101, 41, 10, 10, 45, 45, 32,111,117,116,112,117,116, 32,116, 97,103,115, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 58,100,101, 99,108,116,121,112,101, 32, 40, 41, 10, 32,112,117,115,104, 40,115,101,108,102, 41, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105,108,101, 32,115,101,108,102, 91, 105, 93, 32,100,111, 10, 32, 32,115,101,108,102, 91,105, 93, 58,100,101, 99,108,116,121,112,101, 40, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32,112,111, 112, 40, 41, 10,101,110,100, 10, 10, 10, 45, 45, 32,119,114, 105,116,101, 32,115,117,112,112,111,114,116, 32, 99,111,100, 101, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115, 115, 67,111,110,116, 97,105,110,101,114, 58,115,117,112, 99, 111,100,101, 32, 40, 41, 10, 10, 9,105,102, 32,110,111,116, 32,115,101,108,102, 58, 99,104,101, 99,107, 95,112,117, 98, 108,105, 99, 95, 97, 99, 99,101,115,115, 40, 41, 32,116,104, 101,110, 10, 9, 9,114,101,116,117,114,110, 10, 9,101,110, 100, 10, 10, 32,112,117,115,104, 40,115,101,108,102, 41, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105, 108,101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10, 32, 32,105,102, 32,115,101,108,102, 91,105, 93, 58, 99,104,101, 99,107, 95,112,117, 98,108,105, 99, 95, 97, 99, 99,101,115, 115, 40, 41, 32,116,104,101,110, 10, 32, 32, 9,115,101,108, 102, 91,105, 93, 58,115,117,112, 99,111,100,101, 40, 41, 10, 32, 32,101,110,100, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32,112,111,112, 40, 41, 10,101,110, 100, 10, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97, 115,115, 67,111,110,116, 97,105,110,101,114, 58,104, 97,115, 118, 97,114, 32, 40, 41, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105,108,101, 32,115,101,108,102, 91, 105, 93, 32,100,111, 10, 32, 32,105,102, 32,115,101,108,102, 91,105, 93, 58,105,115,118, 97,114,105, 97, 98,108,101, 40, 41, 32,116,104,101,110, 10, 9, 9, 32,114,101,116,117,114, 110, 32, 49, 10, 9, 9,101,110,100, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 9,114,101,116,117, 114,110, 32, 48, 10,101,110,100, 10, 10, 45, 45, 32, 73,110, 116,101,114,110, 97,108, 32, 99,111,110,116, 97,105,110,101, 114, 32, 99,111,110,115,116,114,117, 99,116,111,114, 10,102, 117,110, 99,116,105,111,110, 32, 95, 67,111,110,116, 97,105, 110,101,114, 32, 40,115,101,108,102, 41, 10, 32,115,101,116, 109,101,116, 97,116, 97, 98,108,101, 40,115,101,108,102, 44, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 41, 10, 32,115,101,108,102, 46,110, 32, 61, 32, 48, 10, 32,115, 101,108,102, 46,116,121,112,101,100,101,102,115, 32, 61, 32, 123,116,111,108,117, 97, 95,110, 61, 48,125, 10, 32,115,101, 108,102, 46,117,115,101,114,116,121,112,101,115, 32, 61, 32, 123,125, 10, 32,115,101,108,102, 46,101,110,117,109,115, 32, 61, 32,123,116,111,108,117, 97, 95,110, 61, 48,125, 10, 32, 115,101,108,102, 46,108,110, 97,109,101,115, 32, 61, 32,123, 125, 10, 32,114,101,116,117,114,110, 32,115,101,108,102, 10, 101,110,100, 10, 10, 45, 45, 32,112,117,115,104, 32, 99,111, 110,116, 97,105,110,101,114, 10,102,117,110, 99,116,105,111, 110, 32,112,117,115,104, 32, 40,116, 41, 10, 9,116, 46,112, 114,111,120, 32, 61, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 10, 32, 99,108, 97, 115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114, 114, 32, 61, 32,116, 10,101,110,100, 10, 10, 45, 45, 32,112, 111,112, 32, 99,111,110,116, 97,105,110,101,114, 10,102,117, 110, 99,116,105,111,110, 32,112,111,112, 32, 40, 41, 10, 45, 45,112,114,105,110,116, 40, 34,110, 97,109,101, 34, 44, 99, 108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 46, 99, 117,114,114, 46,110, 97,109,101, 41, 10, 45, 45,102,111,114, 101, 97, 99,104, 40, 99,108, 97,115,115, 67,111,110,116, 97, 105,110,101,114, 46, 99,117,114,114, 46,117,115,101,114,116, 121,112,101,115, 44,112,114,105,110,116, 41, 10, 45, 45,112, 114,105,110,116, 40, 34, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 34, 41, 10, 32, 99,108, 97,115,115, 67, 111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 32, 61, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 46,112,114,111,120, 10,101,110,100, 10, 10, 45, 45, 32,103,101,116, 32, 99,117,114,114,101,110,116, 32,110, 97,109,101,115,112, 97, 99,101, 10,102,117,110, 99, 116,105,111,110, 32,103,101,116, 99,117,114,114,110, 97,109, 101,115,112, 97, 99,101, 32, 40, 41, 10, 9,114,101,116,117, 114,110, 32,103,101,116,110, 97,109,101,115,112, 97, 99,101, 40, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 41, 10,101,110,100, 10, 10, 45, 45, 32, 97,112,112,101,110,100, 32,116,111, 32, 99,117,114,114,101, 110,116, 32, 99,111,110,116, 97,105,110,101,114, 10,102,117, 110, 99,116,105,111,110, 32, 97,112,112,101,110,100, 32, 40, 116, 41, 10, 32,114,101,116,117,114,110, 32, 99,108, 97,115, 115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 58, 97,112,112,101,110,100, 40,116, 41, 10,101,110,100, 10, 10, 45, 45, 32, 97,112,112,101,110,100, 32,116,121,112,101, 100,101,102, 32,116,111, 32, 99,117,114,114,101,110,116, 32, 99,111,110,116, 97,105,110,101,114, 10,102,117,110, 99,116, 105,111,110, 32, 97,112,112,101,110,100,116,121,112,101,100, 101,102, 32, 40,116, 41, 10, 32,114,101,116,117,114,110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 58, 97,112,112,101,110,100,116,121,112,101, 100,101,102, 40,116, 41, 10,101,110,100, 10, 10, 45, 45, 32, 97,112,112,101,110,100, 32,117,115,101,114,116,121,112,101, 32,116,111, 32, 99,117,114,114,101,110,116, 32, 99,111,110, 116, 97,105,110,101,114, 10,102,117,110, 99,116,105,111,110, 32, 97,112,112,101,110,100,117,115,101,114,116,121,112,101, 32, 40,116, 41, 10, 32,114,101,116,117,114,110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117, 114,114, 58, 97,112,112,101,110,100,117,115,101,114,116,121, 112,101, 40,116, 41, 10,101,110,100, 10, 10, 45, 45, 32, 97, 112,112,101,110,100, 32,101,110,117,109, 32,116,111, 32, 99, 117,114,114,101,110,116, 32, 99,111,110,116, 97,105,110,101, 114, 10,102,117,110, 99,116,105,111,110, 32, 97,112,112,101, 110,100,101,110,117,109, 32, 40,116, 41, 10, 32,114,101,116, 117,114,110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105, 110,101,114, 46, 99,117,114,114, 58, 97,112,112,101,110,100, 101,110,117,109, 40,116, 41, 10,101,110,100, 10, 10, 45, 45, 32,115,117, 98,115,116,105,116,117,116,101, 32,116,121,112, 101,100,101,102, 10,102,117,110, 99,116,105,111,110, 32, 97, 112,112,108,121,116,121,112,101,100,101,102, 32, 40,109,111, 100, 44,116,121,112,101, 41, 10, 32,114,101,116,117,114,110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 58, 97,112,112,108,121,116,121,112,101, 100,101,102, 40,109,111,100, 44,116,121,112,101, 41, 10,101, 110,100, 10, 10, 45, 45, 32, 99,104,101, 99,107, 32,105,102, 32,105,115, 32,116,121,112,101, 10,102,117,110, 99,116,105, 111,110, 32,102,105,110,100,116,121,112,101, 32, 40,116,121, 112,101, 41, 10, 32,108,111, 99, 97,108, 32,116, 32, 61, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 58,102,105,110,100,116,121,112,101, 40,116, 121,112,101, 41, 10, 9,114,101,116,117,114,110, 32,116, 10, 101,110,100, 10, 10, 45, 45, 32, 99,104,101, 99,107, 32,105, 102, 32,105,115, 32,116,121,112,101,100,101,102, 10,102,117, 110, 99,116,105,111,110, 32,105,115,116,121,112,101,100,101, 102, 32, 40,116,121,112,101, 41, 10, 32,114,101,116,117,114, 110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101, 114, 46, 99,117,114,114, 58,105,115,116,121,112,101,100,101, 102, 40,116,121,112,101, 41, 10,101,110,100, 10, 10, 45, 45, 32,103,101,116, 32,102,117,108,108,116,121,112,101, 32, 40, 119,105,116,104, 32,110, 97,109,101,115,112, 97, 99,101, 41, 10,102,117,110, 99,116,105,111,110, 32,102,117,108,108,116, 121,112,101, 32, 40,116, 41, 10, 32,108,111, 99, 97,108, 32, 99,117,114,114, 32, 61, 32, 32, 99,108, 97,115,115, 67,111, 110,116, 97,105,110,101,114, 46, 99,117,114,114, 10, 9,119, 104,105,108,101, 32, 99,117,114,114, 32,100,111, 10, 9, 32, 105,102, 32, 99,117,114,114, 32,116,104,101,110, 10, 9, 9, 32,105,102, 32, 99,117,114,114, 46,116,121,112,101,100,101, 102,115, 32, 97,110,100, 32, 99,117,114,114, 46,116,121,112, 101,100,101,102,115, 91,116, 93, 32,116,104,101,110, 10, 9, 9, 32, 32,114,101,116,117,114,110, 32, 99,117,114,114, 46, 116,121,112,101,100,101,102,115, 91,116, 93, 10, 9, 9, 32, 101,108,115,101,105,102, 32, 99,117,114,114, 46,117,115,101, 114,116,121,112,101,115, 32, 97,110,100, 32, 99,117,114,114, 46,117,115,101,114,116,121,112,101,115, 91,116, 93, 32,116, 104,101,110, 10, 9, 9, 32, 32,114,101,116,117,114,110, 32, 99,117,114,114, 46,117,115,101,114,116,121,112,101,115, 91, 116, 93, 10, 9, 9, 9,101,110,100, 10, 9, 9,101,110,100, 10, 9, 32, 99,117,114,114, 32, 61, 32, 99,117,114,114, 46, 112,114,111,120, 10, 9,101,110,100, 10, 9,114,101,116,117, 114,110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32, 99,104, 101, 99,107,115, 32,105,102, 32,105,116, 32,114,101,113,117, 105,114,101,115, 32, 99,111,108,108,101, 99,116,105,111,110, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 58,114,101,113,117,105, 114,101, 99,111,108,108,101, 99,116,105,111,110, 32, 40,116, 41, 10, 32,112,117,115,104, 40,115,101,108,102, 41, 10, 32, 108,111, 99, 97,108, 32,105, 61, 49, 10, 9,108,111, 99, 97, 108, 32,114, 32, 61, 32,102, 97,108,115,101, 10, 32,119,104, 105,108,101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10, 32, 32,114, 32, 61, 32,115,101,108,102, 91,105, 93, 58,114, 101,113,117,105,114,101, 99,111,108,108,101, 99,116,105,111, 110, 40,116, 41, 32,111,114, 32,114, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 9,112,111,112, 40, 41, 10, 9,114,101,116,117,114,110, 32,114, 10,101,110,100, 10, 10, 10, 45, 45, 32,103,101,116, 32,110, 97,109,101,115, 97,112, 99,101, 10,102,117,110, 99,116,105,111,110, 32,103, 101,116,110, 97,109,101,115,112, 97, 99,101, 32, 40, 99,117, 114,114, 41, 10, 9,108,111, 99, 97,108, 32,110, 97,109,101, 115,112, 97, 99,101, 32, 61, 32, 39, 39, 10, 9,119,104,105, 108,101, 32, 99,117,114,114, 32,100,111, 10, 9, 32,105,102, 32, 99,117,114,114, 32, 97,110,100, 10, 9, 9, 32, 32, 32, 40, 32, 99,117,114,114, 46, 99,108, 97,115,115,116,121,112, 101, 32, 61, 61, 32, 39, 99,108, 97,115,115, 39, 32,111,114, 32, 99,117,114,114, 46, 99,108, 97,115,115,116,121,112,101, 32, 61, 61, 32, 39,110, 97,109,101,115,112, 97, 99,101, 39, 41, 10, 9, 9,116,104,101,110, 10, 9, 9, 32,110, 97,109, 101,115,112, 97, 99,101, 32, 61, 32, 40, 99,117,114,114, 46, 111,114,105,103,105,110, 97,108, 95,110, 97,109,101, 32,111, 114, 32, 99,117,114,114, 46,110, 97,109,101, 41, 32, 46, 46, 32, 39, 58, 58, 39, 32, 46, 46, 32,110, 97,109,101,115,112, 97, 99,101, 10, 9, 9, 32, 45, 45,110, 97,109,101,115,112, 97, 99,101, 32, 61, 32, 99,117,114,114, 46,110, 97,109,101, 32, 46, 46, 32, 39, 58, 58, 39, 32, 46, 46, 32,110, 97,109, 101,115,112, 97, 99,101, 10, 9, 9,101,110,100, 10, 9, 32, 99,117,114,114, 32, 61, 32, 99,117,114,114, 46,112,114,111, 120, 10, 9,101,110,100, 10, 9,114,101,116,117,114,110, 32, 110, 97,109,101,115,112, 97, 99,101, 10,101,110,100, 10, 10, 45, 45, 32,103,101,116, 32,110, 97,109,101,115,112, 97, 99, 101, 32, 40,111,110,108,121, 32,110, 97,109,101,115,112, 97, 99,101, 41, 10,102,117,110, 99,116,105,111,110, 32,103,101, 116,111,110,108,121,110, 97,109,101,115,112, 97, 99,101, 32, 40, 41, 10, 32,108,111, 99, 97,108, 32, 99,117,114,114, 32, 61, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101, 114, 46, 99,117,114,114, 10, 9,108,111, 99, 97,108, 32,110, 97,109,101,115,112, 97, 99,101, 32, 61, 32, 39, 39, 10, 9, 119,104,105,108,101, 32, 99,117,114,114, 32,100,111, 10, 9, 9,105,102, 32, 99,117,114,114, 46, 99,108, 97,115,115,116, 121,112,101, 32, 61, 61, 32, 39, 99,108, 97,115,115, 39, 32, 116,104,101,110, 10, 9, 9, 32,114,101,116,117,114,110, 32, 110, 97,109,101,115,112, 97, 99,101, 10, 9, 9,101,108,115, 101,105,102, 32, 99,117,114,114, 46, 99,108, 97,115,115,116, 121,112,101, 32, 61, 61, 32, 39,110, 97,109,101,115,112, 97, 99,101, 39, 32,116,104,101,110, 10, 9, 9, 32,110, 97,109, 101,115,112, 97, 99,101, 32, 61, 32, 99,117,114,114, 46,110, 97,109,101, 32, 46, 46, 32, 39, 58, 58, 39, 32, 46, 46, 32, 110, 97,109,101,115,112, 97, 99,101, 10, 9, 9,101,110,100, 10, 9, 32, 99,117,114,114, 32, 61, 32, 99,117,114,114, 46, 112,114,111,120, 10, 9,101,110,100, 10, 9,114,101,116,117, 114,110, 32,110, 97,109,101,115,112, 97, 99,101, 10,101,110, 100, 10, 10, 45, 45, 32, 99,104,101, 99,107, 32,105,102, 32, 105,115, 32,101,110,117,109, 10,102,117,110, 99,116,105,111, 110, 32,105,115,101,110,117,109, 32, 40,116,121,112,101, 41, 10, 32,114,101,116,117,114,110, 32, 99,108, 97,115,115, 67, 111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 58,105, 115,101,110,117,109, 40,116,121,112,101, 41, 10,101,110,100, 10, 10, 45, 45, 32, 97,112,112,101,110,100, 32,102,101, 97, 116,117,114,101, 32,116,111, 32, 99,111,110,116, 97,105,110, 101,114, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97, 115,115, 67,111,110,116, 97,105,110,101,114, 58, 97,112,112, 101,110,100, 32, 40,116, 41, 10, 32,115,101,108,102, 46,110, 32, 61, 32,115,101,108,102, 46,110, 32, 43, 32, 49, 10, 32, 115,101,108,102, 91,115,101,108,102, 46,110, 93, 32, 61, 32, 116, 10, 32,116, 46,112, 97,114,101,110,116, 32, 61, 32,115, 101,108,102, 10,101,110,100, 10, 10, 45, 45, 32, 97,112,112, 101,110,100, 32,116,121,112,101,100,101,102, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 58, 97,112,112,101,110,100,116,121,112, 101,100,101,102, 32, 40,116, 41, 10, 32,108,111, 99, 97,108, 32,110, 97,109,101,115,112, 97, 99,101, 32, 61, 32,103,101, 116,110, 97,109,101,115,112, 97, 99,101, 40, 99,108, 97,115, 115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 41, 10, 32,115,101,108,102, 46,116,121,112,101,100,101,102, 115, 46,116,111,108,117, 97, 95,110, 32, 61, 32,115,101,108, 102, 46,116,121,112,101,100,101,102,115, 46,116,111,108,117, 97, 95,110, 32, 43, 32, 49, 10, 32,115,101,108,102, 46,116, 121,112,101,100,101,102,115, 91,115,101,108,102, 46,116,121, 112,101,100,101,102,115, 46,116,111,108,117, 97, 95,110, 93, 32, 61, 32,116, 10, 9,115,101,108,102, 46,116,121,112,101, 100,101,102,115, 91,116, 46,117,116,121,112,101, 93, 32, 61, 32,110, 97,109,101,115,112, 97, 99,101, 32, 46, 46, 32,116, 46,117,116,121,112,101, 10, 9,103,108,111, 98, 97,108, 95, 116,121,112,101,100,101,102,115, 91,110, 97,109,101,115,112, 97, 99,101, 46, 46,116, 46,117,116,121,112,101, 93, 32, 61, 32,116, 10, 9,116, 46,102,116,121,112,101, 32, 61, 32,102, 105,110,100,116,121,112,101, 40,116, 46,116,121,112,101, 41, 32,111,114, 32,116, 46,116,121,112,101, 10, 9, 45, 45,112, 114,105,110,116, 40, 34, 97,112,112,101,110,100,105,110,103, 32,116,121,112,101,100,101,102, 32, 34, 46, 46,116, 46,117, 116,121,112,101, 46, 46, 34, 32, 97,115, 32, 34, 46, 46,110, 97,109,101,115,112, 97, 99,101, 46, 46,116, 46,117,116,121, 112,101, 46, 46, 34, 32,119,105,116,104, 32,102,116,121,112, 101, 32, 34, 46, 46,116, 46,102,116,121,112,101, 41, 10, 9, 97,112,112,101,110,100, 95,103,108,111, 98, 97,108, 95,116, 121,112,101, 40,110, 97,109,101,115,112, 97, 99,101, 46, 46, 116, 46,117,116,121,112,101, 41, 10, 9,105,102, 32,116, 46, 102,116,121,112,101, 32, 97,110,100, 32,105,115,101,110,117, 109, 40,116, 46,102,116,121,112,101, 41, 32,116,104,101,110, 10, 10, 9, 9,103,108,111, 98, 97,108, 95,101,110,117,109, 115, 91,110, 97,109,101,115,112, 97, 99,101, 46, 46,116, 46, 117,116,121,112,101, 93, 32, 61, 32,116,114,117,101, 10, 9, 101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 97,112,112, 101,110,100, 32,117,115,101,114,116,121,112,101, 58, 32,114, 101,116,117,114,110, 32,102,117,108,108, 32,116,121,112,101, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 58, 97,112,112,101,110, 100,117,115,101,114,116,121,112,101, 32, 40,116, 41, 10, 9, 108,111, 99, 97,108, 32, 99,111,110,116, 97,105,110,101,114, 10, 9,105,102, 32,116, 32, 61, 61, 32, 40,115,101,108,102, 46,111,114,105,103,105,110, 97,108, 95,110, 97,109,101, 32, 111,114, 32,115,101,108,102, 46,110, 97,109,101, 41, 32,116, 104,101,110, 10, 9, 9, 99,111,110,116, 97,105,110,101,114, 32, 61, 32,115,101,108,102, 46,112,114,111,120, 10, 9,101, 108,115,101, 10, 9, 9, 99,111,110,116, 97,105,110,101,114, 32, 61, 32,115,101,108,102, 10, 9,101,110,100, 10, 9,108, 111, 99, 97,108, 32,102,116, 32, 61, 32,103,101,116,110, 97, 109,101,115,112, 97, 99,101, 40, 99,111,110,116, 97,105,110, 101,114, 41, 32, 46, 46, 32,116, 10, 9, 99,111,110,116, 97, 105,110,101,114, 46,117,115,101,114,116,121,112,101,115, 91, 116, 93, 32, 61, 32,102,116, 10, 9, 95,117,115,101,114,116, 121,112,101, 91,102,116, 93, 32, 61, 32,102,116, 10, 9,114, 101,116,117,114,110, 32,102,116, 10,101,110,100, 10, 10, 45, 45, 32, 97,112,112,101,110,100, 32,101,110,117,109, 10,102, 117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67,111, 110,116, 97,105,110,101,114, 58, 97,112,112,101,110,100,101, 110,117,109, 32, 40,116, 41, 10, 32,108,111, 99, 97,108, 32, 110, 97,109,101,115,112, 97, 99,101, 32, 61, 32,103,101,116, 110, 97,109,101,115,112, 97, 99,101, 40, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 41, 10, 32,115,101,108,102, 46,101,110,117,109,115, 46,116,111, 108,117, 97, 95,110, 32, 61, 32,115,101,108,102, 46,101,110, 117,109,115, 46,116,111,108,117, 97, 95,110, 32, 43, 32, 49, 10, 32,115,101,108,102, 46,101,110,117,109,115, 91,115,101, 108,102, 46,101,110,117,109,115, 46,116,111,108,117, 97, 95, 110, 93, 32, 61, 32,116, 10, 9,103,108,111, 98, 97,108, 95, 101,110,117,109,115, 91,110, 97,109,101,115,112, 97, 99,101, 46, 46,116, 46,110, 97,109,101, 93, 32, 61, 32,116, 10,101, 110,100, 10, 10, 45, 45, 32,100,101,116,101,114,109,105,110, 101, 32,108,117, 97, 32,102,117,110, 99,116,105,111,110, 32, 110, 97,109,101, 32,111,118,101,114,108,111, 97,100, 10,102, 117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67,111, 110,116, 97,105,110,101,114, 58,111,118,101,114,108,111, 97, 100, 32, 40,108,110, 97,109,101, 41, 10, 32,105,102, 32,110, 111,116, 32,115,101,108,102, 46,108,110, 97,109,101,115, 91, 108,110, 97,109,101, 93, 32,116,104,101,110, 10, 32, 32,115, 101,108,102, 46,108,110, 97,109,101,115, 91,108,110, 97,109, 101, 93, 32, 61, 32, 48, 10, 32,101,108,115,101, 10, 32, 32, 115,101,108,102, 46,108,110, 97,109,101,115, 91,108,110, 97, 109,101, 93, 32, 61, 32,115,101,108,102, 46,108,110, 97,109, 101,115, 91,108,110, 97,109,101, 93, 32, 43, 32, 49, 10, 32, 101,110,100, 10, 32,114,101,116,117,114,110, 32,102,111,114, 109, 97,116, 40, 34, 37, 48, 50,100, 34, 44,115,101,108,102, 46,108,110, 97,109,101,115, 91,108,110, 97,109,101, 93, 41, 10,101,110,100, 10, 10, 45, 45, 32, 97,112,112,108,105,101, 115, 32,116,121,112,101,100,101,102, 58, 32,114,101,116,117, 114,110,115, 32,116,104,101, 32, 39,116,104,101, 32,102, 97, 99,116,111, 39, 32,109,111,100,105,102,105,101,114, 32, 97, 110,100, 32,116,121,112,101, 10,102,117,110, 99,116,105,111, 110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101, 114, 58, 97,112,112,108,121,116,121,112,101,100,101,102, 32, 40,109,111,100, 44,116,121,112,101, 41, 10, 9,105,102, 32, 103,108,111, 98, 97,108, 95,116,121,112,101,100,101,102,115, 91,116,121,112,101, 93, 32,116,104,101,110, 10, 9, 9, 45, 45,112,114,105,110,116, 40, 34,102,111,117,110,100, 32,116, 121,112,101,100,101,102, 32, 34, 46, 46,103,108,111, 98, 97, 108, 95,116,121,112,101,100,101,102,115, 91,116,121,112,101, 93, 46,116,121,112,101, 41, 10, 9, 9,108,111, 99, 97,108, 32,109,111,100, 49, 44, 32,116,121,112,101, 49, 32, 61, 32, 103,108,111, 98, 97,108, 95,116,121,112,101,100,101,102,115, 91,116,121,112,101, 93, 46,109,111,100, 44, 32,103,108,111, 98, 97,108, 95,116,121,112,101,100,101,102,115, 91,116,121, 112,101, 93, 46,102,116,121,112,101, 10, 9, 9,108,111, 99, 97,108, 32,109,111,100, 50, 44, 32,116,121,112,101, 50, 32, 61, 32, 97,112,112,108,121,116,121,112,101,100,101,102, 40, 109,111,100, 46, 46, 34, 32, 34, 46, 46,109,111,100, 49, 44, 32,116,121,112,101, 49, 41, 10, 9, 9, 45, 45,114,101,116, 117,114,110, 32,109,111,100, 50, 32, 46, 46, 32, 39, 32, 39, 32, 46, 46, 32,109,111,100, 49, 44, 32,116,121,112,101, 50, 10, 9, 9,114,101,116,117,114,110, 32,109,111,100, 50, 44, 32,116,121,112,101, 50, 10, 9,101,110,100, 10, 9,100,111, 32,114,101,116,117,114,110, 32,109,111,100, 44,116,121,112, 101, 32,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 99, 104,101, 99,107, 32,105,102, 32,105,116, 32,105,115, 32, 97, 32,116,121,112,101,100,101,102, 10,102,117,110, 99,116,105, 111,110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110, 101,114, 58,105,115,116,121,112,101,100,101,102, 32, 40,116, 121,112,101, 41, 10, 32,108,111, 99, 97,108, 32,101,110,118, 32, 61, 32,115,101,108,102, 10, 32,119,104,105,108,101, 32, 101,110,118, 32,100,111, 10, 32, 32,105,102, 32,101,110,118, 46,116,121,112,101,100,101,102,115, 32,116,104,101,110, 10, 32, 32, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32, 32, 32,119,104,105,108,101, 32,101,110,118, 46,116,121,112,101, 100,101,102,115, 91,105, 93, 32,100,111, 10, 32, 32, 32, 32, 105,102, 32,101,110,118, 46,116,121,112,101,100,101,102,115, 91,105, 93, 46,117,116,121,112,101, 32, 61, 61, 32,116,121, 112,101, 32,116,104,101,110, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32,114,101,116,117,114,110, 32,116,121,112,101, 10, 32, 32, 32, 32, 32, 32, 32, 32,101,110,100, 10, 32, 32, 32, 32, 32, 32, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32, 32, 32, 101,110,100, 10, 32, 32,101,110,100, 10, 32, 32,101,110,118, 32, 61, 32,101,110,118, 46,112, 97,114,101,110,116, 10, 32, 101,110,100, 10, 32,114,101,116,117,114,110, 32,110,105,108, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32, 102,105,110,100, 95,101,110,117,109, 95,118, 97,114, 40,118, 97,114, 41, 10, 10, 9,105,102, 32,116,111,110,117,109, 98, 101,114, 40,118, 97,114, 41, 32,116,104,101,110, 32,114,101, 116,117,114,110, 32,118, 97,114, 32,101,110,100, 10, 10, 9, 108,111, 99, 97,108, 32, 99, 32, 61, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 10, 9,119,104,105,108,101, 32, 99, 32,100,111, 10, 9, 9,108, 111, 99, 97,108, 32,110,115, 32, 61, 32,103,101,116,110, 97, 109,101,115,112, 97, 99,101, 40, 99, 41, 10, 9, 9,102,111, 114, 32,107, 44,118, 32,105,110, 32,112, 97,105,114,115, 40, 95,103,108,111, 98, 97,108, 95,101,110,117,109,115, 41, 32, 100,111, 10, 9, 9, 9,105,102, 32,109, 97,116, 99,104, 95, 116,121,112,101, 40,118, 97,114, 44, 32,118, 44, 32,110,115, 41, 32,116,104,101,110, 10, 9, 9, 9, 9,114,101,116,117, 114,110, 32,118, 10, 9, 9, 9,101,110,100, 10, 9, 9,101, 110,100, 10, 9, 9,105,102, 32, 99, 46, 98, 97,115,101, 32, 97,110,100, 32, 99, 46, 98, 97,115,101, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10, 9, 9, 9, 99, 32, 61, 32, 95, 103,108,111, 98, 97,108, 95, 99,108, 97,115,115,101,115, 91, 99, 58,102,105,110,100,116,121,112,101, 40, 99, 46, 98, 97, 115,101, 41, 93, 10, 9, 9,101,108,115,101, 10, 9, 9, 9, 99, 32, 61, 32,110,105,108, 10, 9, 9,101,110,100, 10, 9, 101,110,100, 10, 10, 9,114,101,116,117,114,110, 32,118, 97, 114, 10,101,110,100, 10, 10, 45, 45, 32, 99,104,101, 99,107, 32,105,102, 32,105,115, 32, 97, 32,114,101,103,105,115,116, 101,114,101,100, 32,116,121,112,101, 58, 32,114,101,116,117, 114,110, 32,102,117,108,108, 32,116,121,112,101, 32,111,114, 32,110,105,108, 10,102,117,110, 99,116,105,111,110, 32, 99, 108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 58,102, 105,110,100,116,121,112,101, 32, 40,116, 41, 10, 10, 9,116, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40, 116, 44, 32, 34, 61, 46, 42, 34, 44, 32, 34, 34, 41, 10, 9, 105,102, 32, 95, 98, 97,115,105, 99, 91,116, 93, 32,116,104, 101,110, 10, 9, 32,114,101,116,117,114,110, 32,116, 10, 9, 101,110,100, 10, 10, 9,108,111, 99, 97,108, 32, 95, 44, 95, 44,101,109, 32, 61, 32,115,116,114,105,110,103, 46,102,105, 110,100, 40,116, 44, 32, 34, 40, 91, 38, 37, 42, 93, 41, 37, 115, 42, 36, 34, 41, 10, 9,116, 32, 61, 32,115,116,114,105, 110,103, 46,103,115,117, 98, 40,116, 44, 32, 34, 37,115, 42, 40, 91, 38, 37, 42, 93, 41, 37,115, 42, 36, 34, 44, 32, 34, 34, 41, 10, 9,112, 32, 61, 32,115,101,108,102, 10, 9,119, 104,105,108,101, 32,112, 32, 97,110,100, 32,116,121,112,101, 40,112, 41, 61, 61, 39,116, 97, 98,108,101, 39, 32,100,111, 10, 9, 9,108,111, 99, 97,108, 32,115,116, 32, 61, 32,103, 101,116,110, 97,109,101,115,112, 97, 99,101, 40,112, 41, 10, 10, 9, 9,102,111,114, 32,105, 61, 95,103,108,111, 98, 97, 108, 95,116,121,112,101,115, 46,110, 44, 49, 44, 45, 49, 32, 100,111, 32, 45, 45, 32,105,110, 32,114,101,118,101,114,115, 101, 32,111,114,100,101,114, 10, 10, 9, 9, 9,105,102, 32, 109, 97,116, 99,104, 95,116,121,112,101, 40,116, 44, 32, 95, 103,108,111, 98, 97,108, 95,116,121,112,101,115, 91,105, 93, 44, 32,115,116, 41, 32,116,104,101,110, 10, 9, 9, 9, 9, 114,101,116,117,114,110, 32, 95,103,108,111, 98, 97,108, 95, 116,121,112,101,115, 91,105, 93, 46, 46, 40,101,109, 32,111, 114, 32, 34, 34, 41, 10, 9, 9, 9,101,110,100, 10, 9, 9, 101,110,100, 10, 9, 9,105,102, 32,112, 46, 98, 97,115,101, 32, 97,110,100, 32,112, 46, 98, 97,115,101, 32,126, 61, 32, 39, 39, 32, 97,110,100, 32,112, 46, 98, 97,115,101, 32,126, 61, 32,116, 32,116,104,101,110, 10, 9, 9, 9, 45, 45,112, 114,105,110,116, 40, 34,116,121,112,101, 32,105,115, 32, 34, 46, 46,116, 46, 46, 34, 44, 32,112, 32,105,115, 32, 34, 46, 46,112, 46, 98, 97,115,101, 46, 46, 34, 32,115,101,108,102, 46,116,121,112,101, 32,105,115, 32, 34, 46, 46,115,101,108, 102, 46,116,121,112,101, 46, 46, 34, 32,115,101,108,102, 46, 110, 97,109,101, 32,105,115, 32, 34, 46, 46,115,101,108,102, 46,110, 97,109,101, 41, 10, 9, 9, 9,112, 32, 61, 32, 95, 103,108,111, 98, 97,108, 95, 99,108, 97,115,115,101,115, 91, 112, 58,102,105,110,100,116,121,112,101, 40,112, 46, 98, 97, 115,101, 41, 93, 10, 9, 9,101,108,115,101, 10, 9, 9, 9, 112, 32, 61, 32,110,105,108, 10, 9, 9,101,110,100, 10, 9, 101,110,100, 10, 10, 9,114,101,116,117,114,110, 32,110,105, 108, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32, 97,112,112,101,110,100, 95,103,108,111, 98, 97,108, 95, 116,121,112,101, 40,116, 44, 32, 99,108, 97,115,115, 41, 10, 9, 95,103,108,111, 98, 97,108, 95,116,121,112,101,115, 46, 110, 32, 61, 32, 95,103,108,111, 98, 97,108, 95,116,121,112, 101,115, 46,110, 32, 43, 49, 10, 9, 95,103,108,111, 98, 97, 108, 95,116,121,112,101,115, 91, 95,103,108,111, 98, 97,108, 95,116,121,112,101,115, 46,110, 93, 32, 61, 32,116, 10, 9, 95,103,108,111, 98, 97,108, 95,116,121,112,101,115, 95,104, 97,115,104, 91,116, 93, 32, 61, 32, 49, 10, 9,105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 32, 97,112,112,101, 110,100, 95, 99,108, 97,115,115, 95,116,121,112,101, 40,116, 44, 32, 99,108, 97,115,115, 41, 32,101,110,100, 10,101,110, 100, 10, 10,102,117,110, 99,116,105,111,110, 32, 97,112,112, 101,110,100, 95, 99,108, 97,115,115, 95,116,121,112,101, 40, 116, 44, 99,108, 97,115,115, 41, 10, 9,105,102, 32, 95,103, 108,111, 98, 97,108, 95, 99,108, 97,115,115,101,115, 91,116, 93, 32,116,104,101,110, 10, 9, 9, 99,108, 97,115,115, 46, 102,108, 97,103,115, 32, 61, 32, 95,103,108,111, 98, 97,108, 95, 99,108, 97,115,115,101,115, 91,116, 93, 46,102,108, 97, 103,115, 10, 9, 9, 99,108, 97,115,115, 46,108,110, 97,109, 101,115, 32, 61, 32, 95,103,108,111, 98, 97,108, 95, 99,108, 97,115,115,101,115, 91,116, 93, 46,108,110, 97,109,101,115, 10, 9, 9,105,102, 32, 95,103,108,111, 98, 97,108, 95, 99, 108, 97,115,115,101,115, 91,116, 93, 46, 98, 97,115,101, 32, 97,110,100, 32, 40, 95,103,108,111, 98, 97,108, 95, 99,108, 97,115,115,101,115, 91,116, 93, 46, 98, 97,115,101, 32,126, 61, 32, 39, 39, 41, 32,116,104,101,110, 10, 9, 9, 9, 99, 108, 97,115,115, 46, 98, 97,115,101, 32, 61, 32, 95,103,108, 111, 98, 97,108, 95, 99,108, 97,115,115,101,115, 91,116, 93, 46, 98, 97,115,101, 32,111,114, 32, 99,108, 97,115,115, 46, 98, 97,115,101, 10, 9, 9,101,110,100, 10, 9,101,110,100, 10, 9, 95,103,108,111, 98, 97,108, 95, 99,108, 97,115,115, 101,115, 91,116, 93, 32, 61, 32, 99,108, 97,115,115, 10, 9, 99,108, 97,115,115, 46,102,108, 97,103,115, 32, 61, 32, 99, 108, 97,115,115, 46,102,108, 97,103,115, 32,111,114, 32,123, 125, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,109, 97,116, 99,104, 95,116,121,112,101, 40, 99,104,105, 108,100,116,121,112,101, 44, 32,114,101,103,116,121,112,101, 44, 32,115,116, 41, 10, 45, 45,112,114,105,110,116, 40, 34, 102,105,110,100,116,121,112,101, 32, 34, 46, 46, 99,104,105, 108,100,116,121,112,101, 46, 46, 34, 44, 32, 34, 46, 46,114, 101,103,116,121,112,101, 46, 46, 34, 44, 32, 34, 46, 46,115, 116, 41, 10, 9,108,111, 99, 97,108, 32, 98, 44,101, 32, 61, 32,115,116,114,105,110,103, 46,102,105,110,100, 40,114,101, 103,116,121,112,101, 44, 32, 99,104,105,108,100,116,121,112, 101, 44, 32, 45,115,116,114,105,110,103, 46,108,101,110, 40, 99,104,105,108,100,116,121,112,101, 41, 44, 32,116,114,117, 101, 41, 10, 9,105,102, 32, 98, 32,116,104,101,110, 10, 10, 9, 9,105,102, 32,101, 32, 61, 61, 32,115,116,114,105,110, 103, 46,108,101,110, 40,114,101,103,116,121,112,101, 41, 32, 97,110,100, 10, 9, 9, 9, 9, 40, 98, 32, 61, 61, 32, 49, 32,111,114, 32, 40,115,116,114,105,110,103, 46,115,117, 98, 40,114,101,103,116,121,112,101, 44, 32, 98, 45, 49, 44, 32, 98, 45, 49, 41, 32, 61, 61, 32, 39, 58, 39, 32, 97,110,100, 10, 9, 9, 9, 9,115,116,114,105,110,103, 46,115,117, 98, 40,114,101,103,116,121,112,101, 44, 32, 49, 44, 32, 98, 45, 49, 41, 32, 61, 61, 32,115,116,114,105,110,103, 46,115,117, 98, 40,115,116, 44, 32, 49, 44, 32, 98, 45, 49, 41, 41, 41, 32,116,104,101,110, 10, 9, 9, 9,114,101,116,117,114,110, 32,116,114,117,101, 10, 9, 9,101,110,100, 10, 9,101,110, 100, 10, 10, 9,114,101,116,117,114,110, 32,102, 97,108,115, 101, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,102,105,110,100,116,121,112,101, 95,111,110, 95, 99,104, 105,108,100,115, 40,115,101,108,102, 44, 32,116, 41, 10, 10, 9,108,111, 99, 97,108, 32,116, 99,104,105,108,100, 10, 9, 105,102, 32,115,101,108,102, 46, 99,108, 97,115,115,116,121, 112,101, 32, 61, 61, 32, 39, 99,108, 97,115,115, 39, 32,111, 114, 32,115,101,108,102, 46, 99,108, 97,115,115,116,121,112, 101, 32, 61, 61, 32, 39,110, 97,109,101,115,112, 97, 99,101, 39, 32,116,104,101,110, 10, 9, 9,102,111,114, 32,107, 44, 118, 32,105,110, 32,105,112, 97,105,114,115, 40,115,101,108, 102, 41, 32,100,111, 10, 9, 9, 9,105,102, 32,118, 46, 99, 108, 97,115,115,116,121,112,101, 32, 61, 61, 32, 39, 99,108, 97,115,115, 39, 32,111,114, 32,118, 46, 99,108, 97,115,115, 116,121,112,101, 32, 61, 61, 32, 39,110, 97,109,101,115,112, 97, 99,101, 39, 32,116,104,101,110, 10, 9, 9, 9, 9,105, 102, 32,118, 46,116,121,112,101,100,101,102,115, 32, 97,110, 100, 32,118, 46,116,121,112,101,100,101,102,115, 91,116, 93, 32,116,104,101,110, 10, 9, 9, 9, 9, 32,114,101,116,117, 114,110, 32,118, 46,116,121,112,101,100,101,102,115, 91,116, 93, 10, 9, 9, 9, 9,101,108,115,101,105,102, 32,118, 46, 117,115,101,114,116,121,112,101,115, 32, 97,110,100, 32,118, 46,117,115,101,114,116,121,112,101,115, 91,116, 93, 32,116, 104,101,110, 10, 9, 9, 9, 9, 32,114,101,116,117,114,110, 32,118, 46,117,115,101,114,116,121,112,101,115, 91,116, 93, 10, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9, 9,116, 99, 104,105,108,100, 32, 61, 32,102,105,110,100,116,121,112,101, 95,111,110, 95, 99,104,105,108,100,115, 40,118, 44, 32,116, 41, 10, 9, 9, 9, 9,105,102, 32,116, 99,104,105,108,100, 32,116,104,101,110, 32,114,101,116,117,114,110, 32,116, 99, 104,105,108,100, 32,101,110,100, 10, 9, 9, 9,101,110,100, 10, 9, 9,101,110,100, 10, 9,101,110,100, 10, 9,114,101, 116,117,114,110, 32,110,105,108, 10, 10,101,110,100, 10, 10, 102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67, 111,110,116, 97,105,110,101,114, 58,105,115,101,110,117,109, 32, 40,116,121,112,101, 41, 10, 32,105,102, 32,103,108,111, 98, 97,108, 95,101,110,117,109,115, 91,116,121,112,101, 93, 32,116,104,101,110, 10, 9,114,101,116,117,114,110, 32,116, 121,112,101, 10, 32,101,108,115,101, 10, 32, 9,114,101,116, 117,114,110, 32,102, 97,108,115,101, 10, 32,101,110,100, 10, 10, 32,108,111, 99, 97,108, 32, 98, 97,115,101,116,121,112, 101, 32, 61, 32,103,115,117, 98, 40,116,121,112,101, 44, 34, 94, 46, 42, 58, 58, 34, 44, 34, 34, 41, 10, 32,108,111, 99, 97,108, 32,101,110,118, 32, 61, 32,115,101,108,102, 10, 32, 119,104,105,108,101, 32,101,110,118, 32,100,111, 10, 32, 32, 105,102, 32,101,110,118, 46,101,110,117,109,115, 32,116,104, 101,110, 10, 32, 32, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32, 32, 32,119,104,105,108,101, 32,101,110,118, 46,101, 110,117,109,115, 91,105, 93, 32,100,111, 10, 32, 32, 32, 32, 105,102, 32,101,110,118, 46,101,110,117,109,115, 91,105, 93, 46,110, 97,109,101, 32, 61, 61, 32, 98, 97,115,101,116,121, 112,101, 32,116,104,101,110, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32,114,101,116,117,114,110, 32,116,114,117,101, 10, 32, 32, 32, 32, 32, 32, 32, 32,101,110,100, 10, 32, 32, 32, 32, 32, 32, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32, 32, 32, 101,110,100, 10, 32, 32,101,110,100, 10, 32, 32,101,110,118, 32, 61, 32,101,110,118, 46,112, 97,114,101,110,116, 10, 32, 101,110,100, 10, 32,114,101,116,117,114,110, 32,102, 97,108, 115,101, 10,101,110,100, 10, 10,109,101,116,104,111,100,105, 115,118,105,114,116,117, 97,108, 32, 61, 32,102, 97,108,115, 101, 32, 45, 45, 32, 97, 32,103,108,111, 98, 97,108, 10, 10, 45, 45, 32,112, 97,114,115,101, 32, 99,104,117,110,107, 10, 102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67, 111,110,116, 97,105,110,101,114, 58,100,111,112, 97,114,115, 101, 32, 40,115, 41, 10, 45, 45,112,114,105,110,116, 32, 40, 34,112, 97,114,115,101, 32, 34, 46, 46,115, 41, 10, 10, 32, 45, 45, 32,116,114,121, 32,116,104,101, 32,112, 97,114,115, 101,114, 32,104,111,111,107, 10, 32,100,111, 10, 32, 9,108, 111, 99, 97,108, 32,115,117, 98, 32, 61, 32,112, 97,114,115, 101,114, 95,104,111,111,107, 40,115, 41, 10, 32, 9,105,102, 32,115,117, 98, 32,116,104,101,110, 10, 32, 9, 9,114,101, 116,117,114,110, 32,115,117, 98, 10, 32, 9,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32,116, 104,101, 32,110,117,108,108, 32,115,116, 97,116,101,109,101, 110,116, 10, 32,100,111, 10, 32, 9,108,111, 99, 97,108, 32, 98, 44,101, 44, 99,111,100,101, 32, 61, 32,115,116,114,105, 110,103, 46,102,105,110,100, 40,115, 44, 32, 34, 94, 37,115, 42, 59, 34, 41, 10, 32, 9,105,102, 32, 98, 32,116,104,101, 110, 10, 32, 9, 9,114,101,116,117,114,110, 32,115,116,114, 115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 9,101,110, 100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32,101,109,112,116,121, 32,118,101,114, 98, 97,116,105,109, 32,108,105,110,101, 10, 32,100,111, 10, 32, 9,108,111, 99, 97,108, 32, 98, 44,101, 44, 99,111,100,101, 32, 61, 32,115, 116,114,105,110,103, 46,102,105,110,100, 40,115, 44, 32, 34, 94, 37,115, 42, 36, 92,110, 34, 41, 10, 32, 9,105,102, 32, 98, 32,116,104,101,110, 10, 32, 9, 9,114,101,116,117,114, 110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 9,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32, 76,117, 97, 32, 99,111,100,101, 10, 32,100,111, 10, 32, 32,108,111, 99, 97,108, 32, 98, 44,101, 44, 99,111,100,101, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 40, 37, 98, 92, 49, 92, 50, 41, 34, 41, 10, 32, 32,105,102, 32, 98, 32,116,104,101,110, 10, 32, 32, 32, 67,111,100,101, 40,115,116,114,115,117, 98, 40, 99,111,100,101, 44, 50, 44, 45, 50, 41, 41, 10, 32, 32, 32,114,101,116,117,114,110, 32,115,116,114,115,117, 98, 40, 115, 44,101, 43, 49, 41, 10, 32, 32,101,110,100, 10, 32,101, 110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32, 67, 32, 99, 111,100,101, 10, 32,100,111, 10, 32, 32,108,111, 99, 97,108, 32, 98, 44,101, 44, 99,111,100,101, 32, 61, 32,115,116,114, 102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 40, 37, 98, 92, 51, 92, 52, 41, 34, 41, 10, 32, 32,105,102, 32, 98, 32, 116,104,101,110, 10, 9, 99,111,100,101, 32, 61, 32, 39,123, 39, 46, 46,115,116,114,115,117, 98, 40, 99,111,100,101, 44, 50, 44, 45, 50, 41, 46, 46, 39, 92,110,125, 92,110, 39, 10, 9, 86,101,114, 98, 97,116,105,109, 40, 99,111,100,101, 44, 39,114, 39, 41, 32, 32, 32, 32, 32, 32, 32, 32, 45, 45, 32, 118,101,114, 98, 97,116,105,109, 32, 99,111,100,101, 32,102, 111,114, 32, 39,114, 39,101,103,105,115,116,101,114, 32,102, 114, 97,103,109,101,110,116, 10, 9,114,101,116,117,114,110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32, 67, 32, 99,111,100,101, 32,102,111,114, 32,112,114,101, 97,109, 98,108,101, 32,115,101, 99,116,105, 111,110, 10, 32,100,111, 10, 32, 9,108,111, 99, 97,108, 32, 98, 44,101, 44, 99,111,100,101, 32, 61, 32,115,116,114,105, 110,103, 46,102,105,110,100, 40,115, 44, 32, 34, 94, 37,115, 42, 40, 37, 98, 92, 53, 92, 54, 41, 34, 41, 10, 32, 9,105, 102, 32, 98, 32,116,104,101,110, 10, 32, 9, 9, 99,111,100, 101, 32, 61, 32,115,116,114,105,110,103, 46,115,117, 98, 40, 99,111,100,101, 44, 32, 50, 44, 32, 45, 50, 41, 46, 46, 34, 92,110, 34, 10, 9, 9, 86,101,114, 98, 97,116,105,109, 40, 99,111,100,101, 44, 32, 39, 39, 41, 10, 9, 9,114,101,116, 117,114,110, 32,115,116,114,105,110,103, 46,115,117, 98, 40, 115, 44, 32,101, 43, 49, 41, 10, 32, 9,101,110,100, 10, 32, 101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32,100,101, 102, 97,117,108,116, 95,112,114,111,112,101,114,116,121, 32, 100,105,114,101, 99,116,105,118,101, 10, 32,100,111, 10, 32, 9,108,111, 99, 97,108, 32, 98, 44,101, 44,112,116,121,112, 101, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 32, 34, 94, 37,115, 42, 84, 79, 76, 85, 65, 95, 80, 82, 79, 80, 69, 82, 84, 89, 95, 84, 89, 80, 69, 37,115, 42, 37, 40, 43, 37,115, 42, 40, 91, 94, 37, 41, 37,115, 93, 42, 41, 37,115, 42, 37, 41, 43, 37,115, 42, 59, 63, 34, 41, 10, 32, 9,105, 102, 32, 98, 32,116,104,101,110, 10, 32, 9, 9,105,102, 32, 110,111,116, 32,112,116,121,112,101, 32,111,114, 32,112,116, 121,112,101, 32, 61, 61, 32, 34, 34, 32,116,104,101,110, 10, 32, 9, 9, 9,112,116,121,112,101, 32, 61, 32, 34,100,101, 102, 97,117,108,116, 34, 10, 32, 9, 9,101,110,100, 10, 32, 9, 9,115,101,108,102, 58,115,101,116, 95,112,114,111,112, 101,114,116,121, 95,116,121,112,101, 40,112,116,121,112,101, 41, 10, 9, 32, 9,114,101,116,117,114,110, 32,115,116,114, 115,117, 98, 40,115, 44, 32,101, 43, 49, 41, 10, 32, 9,101, 110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116,114, 121, 32,112,114,111,116,101, 99,116,101,100, 95,100,101,115, 116,114,117, 99,116,111,114, 32,100,105,114,101, 99,116,105, 118,101, 10, 32,100,111, 10, 32, 9,108,111, 99, 97,108, 32, 98, 44,101, 32, 61, 32,115,116,114,105,110,103, 46,102,105, 110,100, 40,115, 44, 32, 34, 94, 37,115, 42, 84, 79, 76, 85, 65, 95, 80, 82, 79, 84, 69, 67, 84, 69, 68, 95, 68, 69, 83, 84, 82, 85, 67, 84, 79, 82, 37,115, 42, 59, 63, 34, 41, 10, 9,105,102, 32, 98, 32,116,104,101,110, 10, 9, 9,105,102, 32,115,101,108,102, 46,115,101,116, 95,112,114,111,116,101, 99,116,101,100, 95,100,101,115,116,114,117, 99,116,111,114, 32,116,104,101,110, 10, 9, 32, 9, 9,115,101,108,102, 58, 115,101,116, 95,112,114,111,116,101, 99,116,101,100, 95,100, 101,115,116,114,117, 99,116,111,114, 40,116,114,117,101, 41, 10, 9, 32, 9,101,110,100, 10, 32, 9, 9,114,101,116,117, 114,110, 32,115,116,114,115,117, 98, 40,115, 44, 32,101, 43, 49, 41, 10, 32, 9,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32, 39,101,120,116,101,114,110, 39, 32,107,101,121,119,111,114,100, 10, 32,100,111, 10, 32, 9,108,111, 99, 97,108, 32, 98, 44,101, 32, 61, 32,115,116, 114,105,110,103, 46,102,105,110,100, 40,115, 44, 32, 34, 94, 37,115, 42,101,120,116,101,114,110, 37,115, 43, 34, 41, 10, 32, 9,105,102, 32, 98, 32,116,104,101,110, 10, 9, 9, 45, 45, 32,100,111, 32,110,111,116,104,105,110,103, 10, 32, 9, 9,114,101,116,117,114,110, 32,115,116,114,115,117, 98, 40, 115, 44, 32,101, 43, 49, 41, 10, 32, 9,101,110,100, 10, 32, 101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32, 39,118, 105,114,116,117, 97,108, 39, 32,107,101,121,119,111,114,107, 100, 10, 32,100,111, 10, 32, 9,108,111, 99, 97,108, 32, 98, 44,101, 32, 61, 32,115,116,114,105,110,103, 46,102,105,110, 100, 40,115, 44, 32, 34, 94, 37,115, 42,118,105,114,116,117, 97,108, 37,115, 43, 34, 41, 10, 32, 9,105,102, 32, 98, 32, 116,104,101,110, 10, 32, 9, 9,109,101,116,104,111,100,105, 115,118,105,114,116,117, 97,108, 32, 61, 32,116,114,117,101, 10, 32, 9, 9,114,101,116,117,114,110, 32,115,116,114,115, 117, 98, 40,115, 44, 32,101, 43, 49, 41, 10, 32, 9,101,110, 100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32,108, 97, 98,101,108,115, 32, 40,112,117, 98,108,105, 99, 44, 32,112,114,105,118, 97,116,101, 44, 32,101,116, 99, 41, 10, 32,100,111, 10, 32, 9,108,111, 99, 97,108, 32, 98, 44, 101, 32, 61, 32,115,116,114,105,110,103, 46,102,105,110,100, 40,115, 44, 32, 34, 94, 37,115, 42, 37,119, 42, 37,115, 42, 58, 91, 94, 58, 93, 34, 41, 10, 32, 9,105,102, 32, 98, 32, 116,104,101,110, 10, 32, 9, 9,114,101,116,117,114,110, 32, 115,116,114,115,117, 98, 40,115, 44, 32,101, 41, 32, 45, 45, 32,112,114,101,115,101,114,118,101, 32,116,104,101, 32, 91, 94, 58, 93, 10, 32, 9,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32,109,111,100,117,108,101, 10, 32,100,111, 10, 32, 32,108,111, 99, 97,108, 32, 98, 44, 101, 44,110, 97,109,101, 44, 98,111,100,121, 32, 61, 32,115, 116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42,109, 111,100,117,108,101, 37,115, 37,115, 42, 40, 91, 95, 37,119, 93, 91, 95, 37,119, 93, 42, 41, 37,115, 42, 40, 37, 98,123, 125, 41, 37,115, 42, 34, 41, 10, 32, 32,105,102, 32, 98, 32, 116,104,101,110, 10, 32, 32, 32, 95, 99,117,114,114, 95, 99, 111,100,101, 32, 61, 32,115,116,114,115,117, 98, 40,115, 44, 98, 44,101, 41, 10, 32, 32, 32, 77,111,100,117,108,101, 40, 110, 97,109,101, 44, 98,111,100,121, 41, 10, 32, 32, 32,114, 101,116,117,114,110, 32,115,116,114,115,117, 98, 40,115, 44, 101, 43, 49, 41, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32,110, 97,109,101,115, 97,112, 99,101, 10, 32,100,111, 10, 32, 32,108,111, 99, 97, 108, 32, 98, 44,101, 44,110, 97,109,101, 44, 98,111,100,121, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42,110, 97,109,101,115,112, 97, 99,101, 37,115, 37, 115, 42, 40, 91, 95, 37,119, 93, 91, 95, 37,119, 93, 42, 41, 37,115, 42, 40, 37, 98,123,125, 41, 37,115, 42, 59, 63, 34, 41, 10, 32, 32,105,102, 32, 98, 32,116,104,101,110, 10, 32, 32, 32, 95, 99,117,114,114, 95, 99,111,100,101, 32, 61, 32, 115,116,114,115,117, 98, 40,115, 44, 98, 44,101, 41, 10, 32, 32, 32, 78, 97,109,101,115,112, 97, 99,101, 40,110, 97,109, 101, 44, 98,111,100,121, 41, 10, 32, 32, 32,114,101,116,117, 114,110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32,100,101,102,105,110,101, 10, 32, 100,111, 10, 32, 32,108,111, 99, 97,108, 32, 98, 44,101, 44, 110, 97,109,101, 32, 61, 32,115,116,114,102,105,110,100, 40, 115, 44, 34, 94, 37,115, 42, 35,100,101,102,105,110,101, 37, 115, 37,115, 42, 40, 91, 94, 37,115, 93, 42, 41, 91, 94, 92, 110, 93, 42, 92,110, 37,115, 42, 34, 41, 10, 32, 32,105,102, 32, 98, 32,116,104,101,110, 10, 32, 32, 32, 95, 99,117,114, 114, 95, 99,111,100,101, 32, 61, 32,115,116,114,115,117, 98, 40,115, 44, 98, 44,101, 41, 10, 32, 32, 32, 68,101,102,105, 110,101, 40,110, 97,109,101, 41, 10, 32, 32, 32,114,101,116, 117,114,110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32,101,110,117,109,101,114, 97, 116,101,115, 10, 10, 32,100,111, 10, 32, 32,108,111, 99, 97, 108, 32, 98, 44,101, 44,110, 97,109,101, 44, 98,111,100,121, 44,118, 97,114,110, 97,109,101, 32, 61, 32,115,116,114,102, 105,110,100, 40,115, 44, 34, 94, 37,115, 42,101,110,117,109, 37,115, 43, 40, 37, 83, 42, 41, 37,115, 42, 40, 37, 98,123, 125, 41, 37,115, 42, 40, 91, 94, 37,115, 59, 93, 42, 41, 37, 115, 42, 59, 63, 37,115, 42, 34, 41, 10, 32, 32,105,102, 32, 98, 32,116,104,101,110, 10, 32, 32, 32, 45, 45,101,114,114, 111,114, 40, 34, 35, 83,111,114,114,121, 44, 32,100,101, 99, 108, 97,114, 97,116,105,111,110, 32,111,102, 32,101,110,117, 109,115, 32, 97,110,100, 32,118, 97,114,105, 97, 98,108,101, 115, 32,111,110, 32,116,104,101, 32,115, 97,109,101, 32,115, 116, 97,116,101,109,101,110,116, 32,105,115, 32,110,111,116, 32,115,117,112,112,111,114,116,101,100, 46, 92,110, 68,101, 99,108, 97,114,101, 32,121,111,117,114, 32,118, 97,114,105, 97, 98,108,101, 32,115,101,112, 97,114, 97,116,101,108,121, 32, 40,101,120, 97,109,112,108,101, 58, 32, 39, 34, 46, 46, 110, 97,109,101, 46, 46, 34, 32, 34, 46, 46,118, 97,114,110, 97,109,101, 46, 46, 34, 59, 39, 41, 34, 41, 10, 32, 32, 32, 95, 99,117,114,114, 95, 99,111,100,101, 32, 61, 32,115,116, 114,115,117, 98, 40,115, 44, 98, 44,101, 41, 10, 32, 32, 32, 69,110,117,109,101,114, 97,116,101, 40,110, 97,109,101, 44, 98,111,100,121, 44,118, 97,114,110, 97,109,101, 41, 10, 32, 32, 32,114,101,116,117,114,110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32,101,110,100, 10, 32, 101,110,100, 10, 10, 45, 45, 32,100,111, 10, 45, 45, 32, 32, 108,111, 99, 97,108, 32, 98, 44,101, 44,110, 97,109,101, 44, 98,111,100,121, 32, 61, 32,115,116,114,102,105,110,100, 40, 115, 44, 34, 94, 37,115, 42,101,110,117,109, 37,115, 43, 40, 37, 83, 42, 41, 37,115, 42, 40, 37, 98,123,125, 41, 37,115, 42, 59, 63, 37,115, 42, 34, 41, 10, 45, 45, 32, 32,105,102, 32, 98, 32,116,104,101,110, 10, 45, 45, 32, 32, 32, 95, 99, 117,114,114, 95, 99,111,100,101, 32, 61, 32,115,116,114,115, 117, 98, 40,115, 44, 98, 44,101, 41, 10, 45, 45, 32, 32, 32, 69,110,117,109,101,114, 97,116,101, 40,110, 97,109,101, 44, 98,111,100,121, 41, 10, 45, 45, 32, 32,114,101,116,117,114, 110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 45, 45, 32, 32,101,110,100, 10, 45, 45, 32,101,110,100, 10, 10, 32,100,111, 10, 32, 32,108,111, 99, 97,108, 32, 98, 44,101, 44, 98,111,100,121, 44,110, 97,109,101, 32, 61, 32, 115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 116,121,112,101,100,101,102, 37,115, 43,101,110,117,109, 91, 94,123, 93, 42, 40, 37, 98,123,125, 41, 37,115, 42, 40, 91, 37,119, 95, 93, 91, 94, 37,115, 93, 42, 41, 37,115, 42, 59, 37,115, 42, 34, 41, 10, 32, 32,105,102, 32, 98, 32,116,104, 101,110, 10, 32, 32, 32, 95, 99,117,114,114, 95, 99,111,100, 101, 32, 61, 32,115,116,114,115,117, 98, 40,115, 44, 98, 44, 101, 41, 10, 32, 32, 32, 69,110,117,109,101,114, 97,116,101, 40,110, 97,109,101, 44, 98,111,100,121, 41, 10, 32, 32, 32, 114,101,116,117,114,110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32,101,110,100, 10, 32,101,110, 100, 10, 10, 32, 45, 45, 32,116,114,121, 32,111,112,101,114, 97,116,111,114, 10, 32,100,111, 10, 32, 32,108,111, 99, 97, 108, 32, 98, 44,101, 44,100,101, 99,108, 44,107,105,110,100, 44, 97,114,103, 44, 99,111,110,115,116, 32, 61, 32,115,116, 114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 40, 91, 95, 37,119, 93, 91, 95, 37,119, 37,115, 37, 42, 38, 58, 60, 62, 44, 93, 45, 37,115, 43,111,112,101,114, 97,116,111,114, 41, 37,115, 42, 40, 91, 94, 37,115, 93, 91, 94, 37,115, 93, 42, 41, 37,115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 40, 99, 63,111, 63,110, 63,115, 63,116, 63, 41, 37,115, 42, 59, 37,115, 42, 34, 41, 10, 32, 32,105,102, 32,110,111,116, 32, 98, 32,116,104,101,110, 10, 9, 9, 32, 45, 45, 32,116,114, 121, 32,105,110,108,105,110,101, 10, 32, 32, 32, 98, 44,101, 44,100,101, 99,108, 44,107,105,110,100, 44, 97,114,103, 44, 99,111,110,115,116, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 40, 91, 95, 37,119, 93, 91, 95, 37,119, 37,115, 37, 42, 38, 58, 60, 62, 44, 93, 45, 37, 115, 43,111,112,101,114, 97,116,111,114, 41, 37,115, 42, 40, 91, 94, 37,115, 93, 91, 94, 37,115, 93, 42, 41, 37,115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 40, 99, 63,111, 63,110, 63,115, 63,116, 63, 41, 91, 37,115, 92,110, 93, 42, 37, 98, 123,125, 37,115, 42, 59, 63, 37,115, 42, 34, 41, 10, 32, 32, 101,110,100, 10, 32, 32,105,102, 32,110,111,116, 32, 98, 32, 116,104,101,110, 10, 32, 32, 9, 45, 45, 32,116,114,121, 32, 99, 97,115,116, 32,111,112,101,114, 97,116,111,114, 10, 32, 32, 9, 98, 44,101, 44,100,101, 99,108, 44,107,105,110,100, 44, 97,114,103, 44, 99,111,110,115,116, 32, 61, 32,115,116, 114,102,105,110,100, 40,115, 44, 32, 34, 94, 37,115, 42, 40, 111,112,101,114, 97,116,111,114, 41, 37,115, 43, 40, 91, 37, 119, 95, 58, 37,100, 60, 62, 37, 42, 37, 38, 37,115, 93, 43, 41, 37,115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 40, 99, 63,111, 63,110, 63,115, 63,116, 63, 41, 34, 41, 59, 10, 32, 32, 9,105,102, 32, 98, 32,116,104,101,110, 10, 32, 32, 9, 9,108,111, 99, 97,108, 32, 95, 44,105,101, 32, 61, 32,115, 116,114,105,110,103, 46,102,105,110,100, 40,115, 44, 32, 34, 94, 37,115, 42, 37, 98,123,125, 34, 44, 32,101, 43, 49, 41, 10, 32, 32, 9, 9,105,102, 32,105,101, 32,116,104,101,110, 10, 32, 32, 9, 9, 9,101, 32, 61, 32,105,101, 10, 32, 32, 9, 9,101,110,100, 10, 32, 32, 9,101,110,100, 10, 32, 32, 101,110,100, 10, 32, 32,105,102, 32, 98, 32,116,104,101,110, 10, 32, 32, 32, 95, 99,117,114,114, 95, 99,111,100,101, 32, 61, 32,115,116,114,115,117, 98, 40,115, 44, 98, 44,101, 41, 10, 32, 32, 32, 79,112,101,114, 97,116,111,114, 40,100,101, 99,108, 44,107,105,110,100, 44, 97,114,103, 44, 99,111,110, 115,116, 41, 10, 32, 32, 32,114,101,116,117,114,110, 32,115, 116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32, 101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116, 114,121, 32,102,117,110, 99,116,105,111,110, 10, 32,100,111, 10, 32, 32, 45, 45,108,111, 99, 97,108, 32, 98, 44,101, 44, 100,101, 99,108, 44, 97,114,103, 44, 99,111,110,115,116, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37, 115, 42, 40, 91,126, 95, 37,119, 93, 91, 95, 64, 37,119, 37, 115, 37, 42, 38, 58, 60, 62, 93, 42, 91, 95, 37,119, 93, 41, 37,115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 40, 99, 63, 111, 63,110, 63,115, 63,116, 63, 41, 37,115, 42, 61, 63, 37, 115, 42, 48, 63, 37,115, 42, 59, 37,115, 42, 34, 41, 10, 32, 32,108,111, 99, 97,108, 32, 98, 44,101, 44,100,101, 99,108, 44, 97,114,103, 44, 99,111,110,115,116, 44,118,105,114,116, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 40, 91, 94, 37, 40, 92,110, 93, 43, 41, 37,115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 40, 99, 63,111, 63, 110, 63,115, 63,116, 63, 41, 37,115, 42, 40, 61, 63, 37,115, 42, 48, 63, 41, 37,115, 42, 59, 37,115, 42, 34, 41, 10, 32, 32,105,102, 32,110,111,116, 32, 98, 32,116,104,101,110, 10, 32, 32, 9, 45, 45, 32,116,114,121, 32,102,117,110, 99,116, 105,111,110, 32,119,105,116,104, 32,116,101,109,112,108, 97, 116,101, 10, 32, 32, 9, 98, 44,101, 44,100,101, 99,108, 44, 97,114,103, 44, 99,111,110,115,116, 32, 61, 32,115,116,114, 102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 40, 91,126, 95, 37,119, 93, 91, 95, 64, 37,119, 37,115, 37, 42, 38, 58, 60, 62, 93, 42, 91, 95, 37,119, 93, 37, 98, 60, 62, 41, 37, 115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 40, 99, 63,111, 63,110, 63,115, 63,116, 63, 41, 37,115, 42, 61, 63, 37,115, 42, 48, 63, 37,115, 42, 59, 37,115, 42, 34, 41, 10, 32, 32, 101,110,100, 10, 32, 32,105,102, 32,110,111,116, 32, 98, 32, 116,104,101,110, 10, 32, 32, 32, 45, 45, 32,116,114,121, 32, 97, 32,115,105,110,103,108,101, 32,108,101,116,116,101,114, 32,102,117,110, 99,116,105,111,110, 32,110, 97,109,101, 10, 32, 32, 32, 98, 44,101, 44,100,101, 99,108, 44, 97,114,103, 44, 99,111,110,115,116, 32, 61, 32,115,116,114,102,105,110, 100, 40,115, 44, 34, 94, 37,115, 42, 40, 91, 95, 37,119, 93, 41, 37,115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 40, 99, 63,111, 63,110, 63,115, 63,116, 63, 41, 37,115, 42, 59, 37, 115, 42, 34, 41, 10, 32, 32,101,110,100, 10, 32, 32,105,102, 32,110,111,116, 32, 98, 32,116,104,101,110, 10, 32, 32, 32, 45, 45, 32,116,114,121, 32,102,117,110, 99,116,105,111,110, 32,112,111,105,110,116,101,114, 10, 32, 32, 32, 98, 44,101, 44,100,101, 99,108, 44, 97,114,103, 44, 99,111,110,115,116, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 40, 91, 94, 37, 40, 59, 92,110, 93, 43, 37, 98, 40, 41, 41, 37,115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 59, 37,115, 42, 34, 41, 10, 32, 32, 32,105,102, 32, 98, 32, 116,104,101,110, 10, 32, 32, 32, 32,100,101, 99,108, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,100,101, 99,108, 44, 32, 34, 37, 40, 37,115, 42, 37, 42, 40, 91, 94, 37, 41, 93, 42, 41, 37,115, 42, 37, 41, 34, 44, 32, 34, 32, 37, 49, 32, 34, 41, 10, 32, 32, 32,101,110,100, 10, 32, 32, 101,110,100, 10, 32, 32,105,102, 32, 98, 32,116,104,101,110, 10, 32, 32, 9,105,102, 32,118,105,114,116, 32, 97,110,100, 32,115,116,114,105,110,103, 46,102,105,110,100, 40,118,105, 114,116, 44, 32, 34, 91, 61, 48, 93, 34, 41, 32,116,104,101, 110, 10, 32, 32, 9, 9,105,102, 32,115,101,108,102, 46,102, 108, 97,103,115, 32,116,104,101,110, 10, 32, 32, 9, 9, 9, 115,101,108,102, 46,102,108, 97,103,115, 46,112,117,114,101, 95,118,105,114,116,117, 97,108, 32, 61, 32,116,114,117,101, 10, 32, 32, 9, 9,101,110,100, 10, 32, 32, 9,101,110,100, 10, 32, 32, 32, 95, 99,117,114,114, 95, 99,111,100,101, 32, 61, 32,115,116,114,115,117, 98, 40,115, 44, 98, 44,101, 41, 10, 32, 32, 32, 70,117,110, 99,116,105,111,110, 40,100,101, 99,108, 44, 97,114,103, 44, 99,111,110,115,116, 41, 10, 32, 32, 32,114,101,116,117,114,110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32,101,110,100, 10, 32, 101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32,105,110, 108,105,110,101, 32,102,117,110, 99,116,105,111,110, 10, 32, 100,111, 10, 32, 32,108,111, 99, 97,108, 32, 98, 44,101, 44, 100,101, 99,108, 44, 97,114,103, 44, 99,111,110,115,116, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37, 115, 42, 40, 91, 94, 37, 40, 92,110, 93, 43, 41, 37,115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 40, 99, 63,111, 63,110, 63,115, 63,116, 63, 41, 91, 94, 59,123, 93, 42, 37, 98,123, 125, 37,115, 42, 59, 63, 37,115, 42, 34, 41, 10, 32, 32, 45, 45,108,111, 99, 97,108, 32, 98, 44,101, 44,100,101, 99,108, 44, 97,114,103, 44, 99,111,110,115,116, 32, 61, 32,115,116, 114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 40, 91, 126, 95, 37,119, 93, 91, 95, 64, 37,119, 37,115, 37, 42, 38, 58, 60, 62, 93, 42, 91, 95, 37,119, 62, 93, 41, 37,115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 40, 99, 63,111, 63,110, 63,115, 63,116, 63, 41, 91, 94, 59, 93, 42, 37, 98,123,125, 37,115, 42, 59, 63, 37,115, 42, 34, 41, 10, 32, 32,105,102, 32,110,111,116, 32, 98, 32,116,104,101,110, 10, 32, 32, 32, 45, 45, 32,116,114,121, 32, 97, 32,115,105,110,103,108,101, 32,108,101,116,116,101,114, 32,102,117,110, 99,116,105,111, 110, 32,110, 97,109,101, 10, 32, 32, 32, 98, 44,101, 44,100, 101, 99,108, 44, 97,114,103, 44, 99,111,110,115,116, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 40, 91, 95, 37,119, 93, 41, 37,115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 40, 99, 63,111, 63,110, 63,115, 63,116, 63, 41, 46, 45, 37, 98,123,125, 37,115, 42, 59, 63, 37,115, 42, 34, 41, 10, 32, 32,101,110,100, 10, 32, 32,105,102, 32, 98, 32,116,104,101,110, 10, 32, 32, 32, 95, 99,117,114,114, 95, 99,111,100,101, 32, 61, 32,115,116,114,115,117, 98, 40, 115, 44, 98, 44,101, 41, 10, 32, 32, 32, 70,117,110, 99,116, 105,111,110, 40,100,101, 99,108, 44, 97,114,103, 44, 99,111, 110,115,116, 41, 10, 32, 32, 32,114,101,116,117,114,110, 32, 115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32, 116,114,121, 32, 99,108, 97,115,115, 10, 32,100,111, 10, 9, 32,108,111, 99, 97,108, 32, 98, 44,101, 44,110, 97,109,101, 44, 98, 97,115,101, 44, 98,111,100,121, 10, 9, 9, 98, 97, 115,101, 32, 61, 32, 39, 39, 32, 98,111,100,121, 32, 61, 32, 39, 39, 10, 9, 9, 98, 44,101, 44,110, 97,109,101, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 99,108, 97,115,115, 37,115, 42, 40, 91, 95, 37,119, 93, 91, 95, 37,119, 64, 93, 42, 41, 37,115, 42, 59, 34, 41, 32, 32, 45, 45, 32,100,117,109,109,121, 32, 99,108, 97,115,115, 10, 9, 9,108,111, 99, 97,108, 32,100,117,109,109,121, 32, 61, 32,102, 97,108,115,101, 10, 9, 9,105,102, 32,110,111, 116, 32, 98, 32,116,104,101,110, 10, 9, 9, 9, 98, 44,101, 44,110, 97,109,101, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42,115,116,114,117, 99,116, 37, 115, 42, 40, 91, 95, 37,119, 93, 91, 95, 37,119, 64, 93, 42, 41, 37,115, 42, 59, 34, 41, 32, 32, 32, 32, 45, 45, 32,100, 117,109,109,121, 32,115,116,114,117, 99,116, 10, 9, 9, 9, 105,102, 32,110,111,116, 32, 98, 32,116,104,101,110, 10, 9, 9, 9, 9, 98, 44,101, 44,110, 97,109,101, 44, 98, 97,115, 101, 44, 98,111,100,121, 32, 61, 32,115,116,114,102,105,110, 100, 40,115, 44, 34, 94, 37,115, 42, 99,108, 97,115,115, 37, 115, 42, 40, 91, 95, 37,119, 93, 91, 95, 37,119, 64, 93, 42, 41, 37,115, 42, 40, 91, 94,123, 93, 45, 41, 37,115, 42, 40, 37, 98,123,125, 41, 37,115, 42, 34, 41, 10, 9, 9, 9, 9, 105,102, 32,110,111,116, 32, 98, 32,116,104,101,110, 10, 9, 9, 9, 9, 9, 98, 44,101, 44,110, 97,109,101, 44, 98, 97, 115,101, 44, 98,111,100,121, 32, 61, 32,115,116,114,102,105, 110,100, 40,115, 44, 34, 94, 37,115, 42,115,116,114,117, 99, 116, 37,115, 43, 40, 91, 95, 37,119, 93, 91, 95, 37,119, 64, 93, 42, 41, 37,115, 42, 40, 91, 94,123, 93, 45, 41, 37,115, 42, 40, 37, 98,123,125, 41, 37,115, 42, 34, 41, 10, 9, 9, 9, 9, 9,105,102, 32,110,111,116, 32, 98, 32,116,104,101, 110, 10, 9, 9, 9, 9, 9, 9, 98, 44,101, 44,110, 97,109, 101, 44, 98, 97,115,101, 44, 98,111,100,121, 32, 61, 32,115, 116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42,117, 110,105,111,110, 37,115, 42, 40, 91, 95, 37,119, 93, 91, 95, 37,119, 64, 93, 42, 41, 37,115, 42, 40, 91, 94,123, 93, 45, 41, 37,115, 42, 40, 37, 98,123,125, 41, 37,115, 42, 34, 41, 10, 9, 9, 9, 9, 9, 9,105,102, 32,110,111,116, 32, 98, 32,116,104,101,110, 10, 9, 9, 9, 9, 9, 9, 9, 98, 97, 115,101, 32, 61, 32, 39, 39, 10, 9, 9, 9, 9, 9, 9, 9, 98, 44,101, 44, 98,111,100,121, 44,110, 97,109,101, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42,116,121,112,101,100,101,102, 37,115, 37,115, 42,115,116, 114,117, 99,116, 37,115, 37,115, 42, 91, 95, 37,119, 93, 42, 37,115, 42, 40, 37, 98,123,125, 41, 37,115, 42, 40, 91, 95, 37,119, 93, 91, 95, 37,119, 64, 93, 42, 41, 37,115, 42, 59, 34, 41, 10, 9, 9, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9,101,108,115,101, 32,100,117,109,109,121, 32, 61, 32, 49, 32,101,110,100, 10, 9, 9,101,108,115,101, 32,100, 117,109,109,121, 32, 61, 32, 49, 32,101,110,100, 10, 9, 9, 105,102, 32, 98, 32,116,104,101,110, 10, 9, 9, 9,105,102, 32, 98, 97,115,101, 32,126, 61, 32, 39, 39, 32,116,104,101, 110, 10, 9, 9, 9, 9, 98, 97,115,101, 32, 61, 32,115,116, 114,105,110,103, 46,103,115,117, 98, 40, 98, 97,115,101, 44, 32, 34, 94, 37,115, 42, 58, 37,115, 42, 34, 44, 32, 34, 34, 41, 10, 9, 9, 9, 9, 98, 97,115,101, 32, 61, 32,115,116, 114,105,110,103, 46,103,115,117, 98, 40, 98, 97,115,101, 44, 32, 34, 37,115, 42,112,117, 98,108,105, 99, 37,115, 42, 34, 44, 32, 34, 34, 41, 10, 9, 9, 9, 9, 98, 97,115,101, 32, 61, 32,115,112,108,105,116, 40, 98, 97,115,101, 44, 32, 34, 44, 34, 41, 10, 9, 9, 9, 9, 45, 45,108,111, 99, 97,108, 32, 98, 44,101, 10, 9, 9, 9, 9, 45, 45, 98, 44,101, 44, 98, 97,115,101, 32, 61, 32,115,116,114,102,105,110,100, 40, 98, 97,115,101, 44, 34, 46, 45, 40, 91, 95, 37,119, 93, 91, 95, 37,119, 60, 62, 44, 58, 93, 42, 41, 36, 34, 41, 10, 9, 9, 9,101,108,115,101, 10, 9, 9, 9, 9, 98, 97,115,101, 32, 61, 32,123,125, 10, 9, 9, 9,101,110,100, 10, 9, 9, 9, 95, 99,117,114,114, 95, 99,111,100,101, 32, 61, 32,115, 116,114,115,117, 98, 40,115, 44, 98, 44,101, 41, 10, 9, 9, 9, 67,108, 97,115,115, 40,110, 97,109,101, 44, 98, 97,115, 101, 44, 98,111,100,121, 41, 10, 9, 9, 9,105,102, 32,110, 111,116, 32,100,117,109,109,121, 32,116,104,101,110, 10, 9, 9, 9, 9,118, 97,114, 98, 44,118, 97,114,101, 44,118, 97, 114,110, 97,109,101, 32, 61, 32,115,116,114,105,110,103, 46, 102,105,110,100, 40,115, 44, 32, 34, 94, 37,115, 42, 40, 91, 95, 37,119, 93, 43, 41, 37,115, 42, 59, 34, 44, 32,101, 43, 49, 41, 10, 9, 9, 9, 9,105,102, 32,118, 97,114, 98, 32, 116,104,101,110, 10, 9, 9, 9, 9, 9, 86, 97,114,105, 97, 98,108,101, 40,110, 97,109,101, 46, 46, 34, 32, 34, 46, 46, 118, 97,114,110, 97,109,101, 41, 10, 9, 9, 9, 9, 9,101, 32, 61, 32,118, 97,114,101, 10, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9,101,110,100, 10, 9, 9, 9,114,101,116,117, 114,110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 9, 9,101,110,100, 10, 9,101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32,116,121,112,101,100,101,102, 10, 32,100,111, 10, 32, 32,108,111, 99, 97,108, 32, 98, 44,101, 44,116,121,112,101,115, 32, 61, 32,115,116,114,102,105,110, 100, 40,115, 44, 34, 94, 37,115, 42,116,121,112,101,100,101, 102, 37,115, 37,115, 42, 40, 46, 45, 41, 37,115, 42, 59, 37, 115, 42, 34, 41, 10, 32, 32,105,102, 32, 98, 32,116,104,101, 110, 10, 32, 32, 32, 95, 99,117,114,114, 95, 99,111,100,101, 32, 61, 32,115,116,114,115,117, 98, 40,115, 44, 98, 44,101, 41, 10, 32, 32, 32, 84,121,112,101,100,101,102, 40,116,121, 112,101,115, 41, 10, 32, 32, 32,114,101,116,117,114,110, 32, 115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32, 116,114,121, 32,118, 97,114,105, 97, 98,108,101, 10, 32,100, 111, 10, 32, 32,108,111, 99, 97,108, 32, 98, 44,101, 44,100, 101, 99,108, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 40, 91, 95, 37,119, 93, 91, 95, 64, 37,115, 37,119, 37,100, 37, 42, 38, 58, 60, 62, 44, 93, 42, 91, 95, 37,119, 37,100, 93, 41, 37,115, 42, 59, 37,115, 42, 34, 41, 10, 32, 32,105,102, 32, 98, 32,116,104,101,110, 10, 32, 32, 32, 95, 99,117,114,114, 95, 99,111,100,101, 32, 61, 32,115,116,114,115,117, 98, 40,115, 44, 98, 44,101, 41, 10, 10, 9,108,111, 99, 97,108, 32,108,105,115,116, 32, 61, 32, 115,112,108,105,116, 95, 99, 95,116,111,107,101,110,115, 40, 100,101, 99,108, 44, 32, 34, 44, 34, 41, 10, 9, 86, 97,114, 105, 97, 98,108,101, 40,108,105,115,116, 91, 49, 93, 41, 10, 9,105,102, 32,108,105,115,116, 46,110, 32, 62, 32, 49, 32, 116,104,101,110, 10, 9, 9,108,111, 99, 97,108, 32, 95, 44, 95, 44,116,121,112,101, 32, 61, 32,115,116,114,102,105,110, 100, 40,108,105,115,116, 91, 49, 93, 44, 32, 34, 40, 46, 45, 41, 37,115, 43, 40, 91, 94, 37,115, 93, 42, 41, 36, 34, 41, 59, 10, 10, 9, 9,108,111, 99, 97,108, 32,105, 32, 61, 50, 59, 10, 9, 9,119,104,105,108,101, 32,108,105,115,116, 91, 105, 93, 32,100,111, 10, 9, 9, 9, 86, 97,114,105, 97, 98, 108,101, 40,116,121,112,101, 46, 46, 34, 32, 34, 46, 46,108, 105,115,116, 91,105, 93, 41, 10, 9, 9, 9,105, 61,105, 43, 49, 10, 9, 9,101,110,100, 10, 9,101,110,100, 10, 32, 32, 32, 45, 45, 86, 97,114,105, 97, 98,108,101, 40,100,101, 99, 108, 41, 10, 32, 32, 32,114,101,116,117,114,110, 32,115,116, 114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32,101, 110,100, 10, 32,101,110,100, 10, 10, 9, 45, 45, 32,116,114, 121, 32,115,116,114,105,110,103, 10, 32,100,111, 10, 32, 32, 108,111, 99, 97,108, 32, 98, 44,101, 44,100,101, 99,108, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37, 115, 42, 40, 91, 95, 37,119, 93, 63, 91, 95, 37,115, 37,119, 37,100, 93, 45, 99,104, 97,114, 37,115, 43, 91, 95, 64, 37, 119, 37,100, 93, 42, 37,115, 42, 37, 91, 37,115, 42, 37, 83, 43, 37,115, 42, 37, 93, 41, 37,115, 42, 59, 37,115, 42, 34, 41, 10, 32, 32,105,102, 32, 98, 32,116,104,101,110, 10, 32, 32, 32, 95, 99,117,114,114, 95, 99,111,100,101, 32, 61, 32, 115,116,114,115,117, 98, 40,115, 44, 98, 44,101, 41, 10, 32, 32, 32, 86, 97,114,105, 97, 98,108,101, 40,100,101, 99,108, 41, 10, 32, 32, 32,114,101,116,117,114,110, 32,115,116,114, 115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32,101,110, 100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32, 97,114,114, 97,121, 10, 32,100,111, 10, 32, 32,108,111, 99, 97,108, 32, 98, 44,101, 44,100,101, 99,108, 32, 61, 32, 115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 40, 91, 95, 37,119, 93, 91, 93, 91, 95, 64, 37,115, 37,119, 37,100, 37, 42, 38, 58, 60, 62, 93, 42, 91, 93, 95, 37,119, 37,100, 93, 41, 37,115, 42, 59, 37,115, 42, 34, 41, 10, 32, 32,105,102, 32, 98, 32,116,104,101,110, 10, 32, 32, 32, 95, 99,117,114,114, 95, 99,111,100,101, 32, 61, 32,115,116,114, 115,117, 98, 40,115, 44, 98, 44,101, 41, 10, 32, 32, 32, 65, 114,114, 97,121, 40,100,101, 99,108, 41, 10, 32, 32, 32,114, 101,116,117,114,110, 32,115,116,114,115,117, 98, 40,115, 44, 101, 43, 49, 41, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,110,111, 32,109, 97,116, 99,104,105, 110,103, 10, 32,105,102, 32,103,115,117, 98, 40,115, 44, 34, 37,115, 37,115, 42, 34, 44, 34, 34, 41, 32,126, 61, 32, 34, 34, 32,116,104,101,110, 10, 32, 32, 95, 99,117,114,114, 95, 99,111,100,101, 32, 61, 32,115, 10, 32, 32,101,114,114,111, 114, 40, 34, 35,112, 97,114,115,101, 32,101,114,114,111,114, 34, 41, 10, 32,101,108,115,101, 10, 32, 32,114,101,116,117, 114,110, 32, 34, 34, 10, 32,101,110,100, 10, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115, 115, 67,111,110,116, 97,105,110,101,114, 58,112, 97,114,115, 101, 32, 40,115, 41, 10, 10, 9, 45, 45,115,101,108,102, 46, 99,117,114,114, 95,109,101,109, 98,101,114, 95, 97, 99, 99, 101,115,115, 32, 61, 32,110,105,108, 10, 10, 32,119,104,105, 108,101, 32,115, 32,126, 61, 32, 39, 39, 32,100,111, 10, 32, 32,115, 32, 61, 32,115,101,108,102, 58,100,111,112, 97,114, 115,101, 40,115, 41, 10, 32, 32,109,101,116,104,111,100,105, 115,118,105,114,116,117, 97,108, 32, 61, 32,102, 97,108,115, 101, 10, 32,101,110,100, 10,101,110,100, 10, 10, 10, 45, 45, 32,112,114,111,112,101,114,116,121, 32,116,121,112,101,115, 10, 10,102,117,110, 99,116,105,111,110, 32,103,101,116, 95, 112,114,111,112,101,114,116,121, 95,116,121,112,101, 40, 41, 10, 10, 9,114,101,116,117,114,110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 58, 103,101,116, 95,112,114,111,112,101,114,116,121, 95,116,121, 112,101, 40, 41, 10,101,110,100, 10, 10,102,117,110, 99,116, 105,111,110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105, 110,101,114, 58,115,101,116, 95,112,114,111,112,101,114,116, 121, 95,116,121,112,101, 40,112,116,121,112,101, 41, 10, 9, 112,116,121,112,101, 32, 61, 32,115,116,114,105,110,103, 46, 103,115,117, 98, 40,112,116,121,112,101, 44, 32, 34, 94, 37, 115, 42, 34, 44, 32, 34, 34, 41, 10, 9,112,116,121,112,101, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40, 112,116,121,112,101, 44, 32, 34, 37,115, 42, 36, 34, 44, 32, 34, 34, 41, 10, 10, 9,115,101,108,102, 46,112,114,111,112, 101,114,116,121, 95,116,121,112,101, 32, 61, 32,112,116,121, 112,101, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111, 110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101, 114, 58,103,101,116, 95,112,114,111,112,101,114,116,121, 95, 116,121,112,101, 40, 41, 10, 9,114,101,116,117,114,110, 32, 115,101,108,102, 46,112,114,111,112,101,114,116,121, 95,116, 121,112,101, 32,111,114, 32, 40,115,101,108,102, 46,112, 97, 114,101,110,116, 32, 97,110,100, 32,115,101,108,102, 46,112, 97,114,101,110,116, 58,103,101,116, 95,112,114,111,112,101, 114,116,121, 95,116,121,112,101, 40, 41, 41, 32,111,114, 32, 34,100,101,102, 97,117,108,116, 34, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/container.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32,112, 97, 99,107, 97, 103,101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114,105, 116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97, 114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71, 114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73,100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111, 100,101, 32,105,115, 32,102,114,101,101, 32,115,111,102,116, 119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32,114, 101,100,105,115,116,114,105, 98,117,116,101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109,111,100,105,102,121, 32,105, 116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116,119, 97,114,101, 32,112,114,111,118,105,100,101,100, 32,104,101, 114,101,117,110,100,101,114, 32,105,115, 32,111,110, 32, 97, 110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97,117, 116,104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98,108, 105,103, 97,116,105,111,110, 32,116,111, 32,112,114,111,118, 105,100,101, 32,109, 97,105,110,116,101,110, 97,110, 99,101, 44, 32,115,117,112,112,111,114,116, 44, 32,117,112,100, 97, 116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,101, 109,101,110,116,115, 44, 32,111,114, 32,109,111,100,105,102, 105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 10, 45, 45, 32, 80, 97, 99,107, 97,103,101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114,101,115,101,110,116,115, 32,116, 104,101, 32,119,104,111,108,101, 32,112, 97, 99,107, 97,103, 101, 32, 98,101,105,110,103, 32, 98,111,117,110,100, 46, 10, 45, 45, 32, 84,104,101, 32,102,111,108,108,111,119,105,110, 103, 32,102,105,101,108,100,115, 32, 97,114,101, 32,115,116, 111,114,101,100, 58, 10, 45, 45, 32, 32, 32, 32,123,105,125, 32, 61, 32,108,105,115,116, 32,111,102, 32,111, 98,106,101, 99,116,115, 32,105,110, 32,116,104,101, 32,112, 97, 99,107, 97,103,101, 46, 10, 99,108, 97,115,115, 80, 97, 99,107, 97, 103,101, 32, 61, 32,123, 10, 32, 99,108, 97,115,115,116,121, 112,101, 32, 61, 32, 39,112, 97, 99,107, 97,103,101, 39, 10, 125, 10, 99,108, 97,115,115, 80, 97, 99,107, 97,103,101, 46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97,115,115, 80, 97, 99,107, 97,103,101, 10,115,101,116,109,101,116, 97, 116, 97, 98,108,101, 40, 99,108, 97,115,115, 80, 97, 99,107, 97,103,101, 44, 99,108, 97,115,115, 67,111,110,116, 97,105, 110,101,114, 41, 10, 10, 45, 45, 32, 80,114,105,110,116, 32, 109,101,116,104,111,100, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 80, 97, 99,107, 97,103,101, 58,112, 114,105,110,116, 32, 40, 41, 10, 32,112,114,105,110,116, 40, 34, 80, 97, 99,107, 97,103,101, 58, 32, 34, 46, 46,115,101, 108,102, 46,110, 97,109,101, 41, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105,108,101, 32,115,101,108, 102, 91,105, 93, 32,100,111, 10, 32, 32,115,101,108,102, 91, 105, 93, 58,112,114,105,110,116, 40, 34, 34, 44, 34, 34, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 80, 97, 99,107, 97,103,101, 58,112,114, 101,112,114,111, 99,101,115,115, 32, 40, 41, 10, 10, 32, 45, 45, 32, 97,118,111,105,100, 32,112,114,101,112,114,111, 99, 101,115,115,105,110,103, 32,101,109, 98,101,100,100,101,100, 32, 76,117, 97, 32, 99,111,100,101, 10, 32,108,111, 99, 97, 108, 32, 76, 32, 61, 32,123,125, 10, 32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108, 102, 46, 99,111,100,101, 44, 34, 92,110, 37,115, 42, 37, 36, 37, 91, 34, 44, 34, 92, 49, 34, 41, 32, 45, 45, 32,100,101, 97,108, 32,119,105,116,104, 32,101,109, 98,101,100,100,101, 100, 32,108,117, 97, 32, 99,111,100,101, 10, 32,115,101,108, 102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115, 101,108,102, 46, 99,111,100,101, 44, 34, 92,110, 37,115, 42, 37, 36, 37, 93, 34, 44, 34, 92, 50, 34, 41, 10, 32,115,101, 108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40, 115,101,108,102, 46, 99,111,100,101, 44, 34, 40, 37, 98, 92, 49, 92, 50, 41, 34, 44, 32, 32, 32, 32, 32, 32, 32,102,117, 110, 99,116,105,111,110, 32, 40, 99, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,116,105, 110,115,101,114,116, 40, 76, 44, 99, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,114,101, 116,117,114,110, 32, 34, 92,110, 35, 91, 34, 46, 46,103,101, 116,110, 40, 76, 41, 46, 46, 34, 93, 35, 34, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,101,110, 100, 41, 10, 32, 45, 45, 32, 97,118,111,105,100, 32,112,114, 101,112,114,111, 99,101,115,115,105,110,103, 32,101,109, 98, 101,100,100,101,100, 32, 67, 32, 99,111,100,101, 10, 32,108, 111, 99, 97,108, 32, 67, 32, 61, 32,123,125, 10, 32,115,101, 108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40, 115,101,108,102, 46, 99,111,100,101, 44, 34, 92,110, 37,115, 42, 37, 36, 37, 60, 34, 44, 34, 92, 51, 34, 41, 32, 45, 45, 32,100,101, 97,108, 32,119,105,116,104, 32,101,109, 98,101, 100,100,101,100, 32, 67, 32, 99,111,100,101, 10, 32,115,101, 108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40, 115,101,108,102, 46, 99,111,100,101, 44, 34, 92,110, 37,115, 42, 37, 36, 37, 62, 34, 44, 34, 92, 52, 34, 41, 10, 32,115, 101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 40, 37, 98, 92, 51, 92, 52, 41, 34, 44, 32, 32, 32, 32, 32, 32, 32,102, 117,110, 99,116,105,111,110, 32, 40, 99, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,116, 105,110,115,101,114,116, 40, 67, 44, 99, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,114, 101,116,117,114,110, 32, 34, 92,110, 35, 60, 34, 46, 46,103, 101,116,110, 40, 67, 41, 46, 46, 34, 62, 35, 34, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,101, 110,100, 41, 10, 32, 45, 45, 32, 97,118,111,105,100, 32,112, 114,101,112,114,111, 99,101,115,115,105,110,103, 32,101,109, 98,101,100,100,101,100, 32, 67, 32, 99,111,100,101, 10, 32, 115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 92,110, 37,115, 42, 37, 36, 37,123, 34, 44, 34, 92, 53, 34, 41, 32, 45, 45, 32,100,101, 97,108, 32,119,105,116,104, 32,101,109, 98,101,100,100,101,100, 32, 67, 32, 99,111,100,101, 10, 32, 115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 92,110, 37,115, 42, 37, 36, 37,125, 34, 44, 34, 92, 54, 34, 41, 10, 32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115, 117, 98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 40, 37, 98, 92, 53, 92, 54, 41, 34, 44, 32, 32, 32, 32, 32, 32, 32,102,117,110, 99,116,105,111,110, 32, 40, 99, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,116,105,110,115,101,114,116, 40, 67, 44, 99, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,114,101,116,117,114,110, 32, 34, 92,110, 35, 60, 34, 46, 46,103,101,116,110, 40, 67, 41, 46, 46, 34, 62, 35, 34, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,101,110,100, 41, 10, 10, 32, 45, 45,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108, 102, 46, 99,111,100,101, 44, 34, 92,110, 37,115, 42, 35, 91, 94,100, 93, 91, 94, 92,110, 93, 42, 92,110, 34, 44, 32, 34, 92,110, 92,110, 34, 41, 32, 45, 45, 32,101,108,105,109,105, 110, 97,116,101, 32,112,114,101,112,114,111, 99,101,115,115, 111,114, 32,100,105,114,101, 99,116,105,118,101,115, 32,116, 104, 97,116, 32,100,111,110, 39,116, 32,115,116, 97,114,116, 32,119,105,116,104, 32, 39,100, 39, 10, 32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101, 108,102, 46, 99,111,100,101, 44, 34, 92,110, 91, 32, 92,116, 93, 42, 35, 91, 32, 92,116, 93, 42, 91, 94,100, 37, 60, 37, 91, 93, 34, 44, 32, 34, 92,110, 47, 47, 34, 41, 32, 45, 45, 32,101,108,105,109,105,110, 97,116,101, 32,112,114,101,112, 114,111, 99,101,115,115,111,114, 32,100,105,114,101, 99,116, 105,118,101,115, 32,116,104, 97,116, 32,100,111,110, 39,116, 32,115,116, 97,114,116, 32,119,105,116,104, 32, 39,100, 39, 10, 10, 32, 45, 45, 32, 97,118,111,105,100, 32,112,114,101, 112,114,111, 99,101,115,115,105,110,103, 32,118,101,114, 98, 97,116,105,109, 32,108,105,110,101,115, 10, 32,108,111, 99, 97,108, 32, 86, 32, 61, 32,123,125, 10, 32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101, 108,102, 46, 99,111,100,101, 44, 34, 92,110, 40, 37,115, 42, 37, 36, 91, 94, 37, 91, 37, 93, 93, 91, 94, 92,110, 93, 42, 41, 34, 44,102,117,110, 99,116,105,111,110, 32, 40,118, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,116,105,110,115,101,114,116, 40, 86, 44,118, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,114,101,116,117,114,110, 32, 34, 92,110, 35, 34, 46, 46,103,101,116,110, 40, 86, 41, 46, 46, 34, 35, 34, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,101,110,100, 41, 10, 10, 32, 45, 45, 32,112,101,114,102, 111,114,109, 32,103,108,111, 98, 97,108, 32,115,117, 98,115, 116,105,116,117,116,105,111,110, 10, 10, 32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101, 108,102, 46, 99,111,100,101, 44, 34, 40, 47, 47, 91, 94, 92, 110, 93, 42, 41, 34, 44, 34, 34, 41, 32, 32, 32, 32, 32, 45, 45, 32,101,108,105,109,105,110, 97,116,101, 32, 67, 43, 43, 32, 99,111,109,109,101,110,116,115, 10, 32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101, 108,102, 46, 99,111,100,101, 44, 34, 47, 37, 42, 34, 44, 34, 92, 49, 34, 41, 10, 32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99,111, 100,101, 44, 34, 37, 42, 47, 34, 44, 34, 92, 50, 34, 41, 10, 32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115, 117, 98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 37, 98, 92, 49, 92, 50, 34, 44, 34, 34, 41, 10, 32,115,101,108, 102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115, 101,108,102, 46, 99,111,100,101, 44, 34, 92, 49, 34, 44, 34, 47, 37, 42, 34, 41, 10, 32,115,101,108,102, 46, 99,111,100, 101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99, 111,100,101, 44, 34, 92, 50, 34, 44, 34, 37, 42, 47, 34, 41, 10, 32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103, 115,117, 98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 37,115, 42, 64, 37,115, 42, 34, 44, 34, 64, 34, 41, 32, 45, 45, 32,101,108,105,109,105,110, 97,116,101, 32,115,112, 97, 99,101,115, 32, 98,101,115,105,100,101, 32, 64, 10, 32,115, 101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 37,115, 63, 105,110,108,105,110,101, 40, 37,115, 41, 34, 44, 34, 37, 49, 34, 41, 32, 45, 45, 32,101,108,105,109,105,110, 97,116,101, 32, 39,105,110,108,105,110,101, 39, 32,107,101,121,119,111, 114,100, 10, 32, 45, 45,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99,111, 100,101, 44, 34, 37,115, 63,101,120,116,101,114,110, 40, 37, 115, 41, 34, 44, 34, 37, 49, 34, 41, 32, 45, 45, 32,101,108, 105,109,105,110, 97,116,101, 32, 39,101,120,116,101,114,110, 39, 32,107,101,121,119,111,114,100, 10, 32, 45, 45,115,101, 108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40, 115,101,108,102, 46, 99,111,100,101, 44, 34, 37,115, 63,118, 105,114,116,117, 97,108, 40, 37,115, 41, 34, 44, 34, 37, 49, 34, 41, 32, 45, 45, 32,101,108,105,109,105,110, 97,116,101, 32, 39,118,105,114,116,117, 97,108, 39, 32,107,101,121,119, 111,114,100, 10, 32, 45, 45,115,101,108,102, 46, 99,111,100, 101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99, 111,100,101, 44, 34,112,117, 98,108,105, 99, 58, 34, 44, 34, 34, 41, 32, 45, 45, 32,101,108,105,109,105,110, 97,116,101, 32, 39,112,117, 98,108,105, 99, 58, 39, 32,107,101,121,119, 111,114,100, 10, 32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99,111,100, 101, 44, 34, 40, 91, 94, 37,119, 95, 93, 41,118,111,105,100, 37,115, 42, 37, 42, 34, 44, 34, 37, 49, 95,117,115,101,114, 100, 97,116, 97, 32, 34, 41, 32, 45, 45, 32,115,117, 98,115, 116,105,116,117,116,101, 32, 39,118,111,105,100, 42, 39, 10, 32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115, 117, 98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 40, 91, 94, 37,119, 95, 93, 41,118,111,105,100, 37,115, 42, 37, 42, 34, 44, 34, 37, 49, 95,117,115,101,114,100, 97,116, 97, 32, 34, 41, 32, 45, 45, 32,115,117, 98,115,116,105,116,117, 116,101, 32, 39,118,111,105,100, 42, 39, 10, 32,115,101,108, 102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115, 101,108,102, 46, 99,111,100,101, 44, 34, 40, 91, 94, 37,119, 95, 93, 41, 99,104, 97,114, 37,115, 42, 37, 42, 34, 44, 34, 37, 49, 95, 99,115,116,114,105,110,103, 32, 34, 41, 32, 32, 45, 45, 32,115,117, 98,115,116,105,116,117,116,101, 32, 39, 99,104, 97,114, 42, 39, 10, 32,115,101,108,102, 46, 99,111, 100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 40, 91, 94, 37,119, 95, 93, 41,108, 117, 97, 95, 83,116, 97,116,101, 37,115, 42, 37, 42, 34, 44, 34, 37, 49, 95,108,115,116, 97,116,101, 32, 34, 41, 32, 32, 45, 45, 32,115,117, 98,115,116,105,116,117,116,101, 32, 39, 108,117, 97, 95, 83,116, 97,116,101, 42, 39, 10, 10, 32, 45, 45, 32,114,101,115,116,111,114,101, 32,101,109, 98,101,100, 100,101,100, 32, 76,117, 97, 32, 99,111,100,101, 10, 32,115, 101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 37, 35, 37, 91, 40, 37,100, 43, 41, 37, 93, 37, 35, 34, 44,102,117,110, 99,116,105,111,110, 32, 40,110, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,114,101,116,117, 114,110, 32, 76, 91,116,111,110,117,109, 98,101,114, 40,110, 41, 93, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,101,110,100, 41, 10, 32, 45, 45, 32,114,101,115,116, 111,114,101, 32,101,109, 98,101,100,100,101,100, 32, 67, 32, 99,111,100,101, 10, 32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99,111, 100,101, 44, 34, 37, 35, 37, 60, 40, 37,100, 43, 41, 37, 62, 37, 35, 34, 44,102,117,110, 99,116,105,111,110, 32, 40,110, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,114,101,116,117,114,110, 32, 67, 91,116,111,110,117, 109, 98,101,114, 40,110, 41, 93, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,101,110,100, 41, 10, 32, 45, 45, 32,114,101,115,116,111,114,101, 32,118,101,114, 98, 97, 116,105,109, 32,108,105,110,101,115, 10, 32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101, 108,102, 46, 99,111,100,101, 44, 34, 37, 35, 40, 37,100, 43, 41, 37, 35, 34, 44,102,117,110, 99,116,105,111,110, 32, 40, 110, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,114, 101,116,117,114,110, 32, 86, 91,116,111,110,117,109, 98,101, 114, 40,110, 41, 93, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,101,110,100, 41, 10, 10, 32,115,101,108,102, 46, 99,111, 100,101, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,115,101,108,102, 46, 99,111,100,101, 44, 32, 34, 92, 110, 37,115, 42, 37, 36, 40, 91, 94, 92,110, 93, 43, 41, 34, 44, 32,102,117,110, 99,116,105,111,110, 32, 40,108, 41, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 86,101,114, 98, 97,116,105,109, 40,108, 46, 46, 34, 92,110, 34, 41, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,114,101,116,117,114, 110, 32, 34, 92,110, 34, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 32, 32,101,110,100, 41, 10,101,110,100, 10, 10, 45, 45, 32,116,114, 97,110,115,108, 97,116,101, 32,118,101,114, 98, 97,116,105,109, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 80, 97, 99,107, 97,103,101, 58,112,114, 101, 97,109, 98,108,101, 32, 40, 41, 10, 32,111,117,116,112, 117,116, 40, 39, 47, 42, 92,110, 39, 41, 10, 32,111,117,116, 112,117,116, 40, 39, 42, 42, 32, 76,117, 97, 32, 98,105,110, 100,105,110,103, 58, 32, 39, 46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46, 39, 92,110, 39, 41, 10, 32,111,117,116, 112,117,116, 40, 39, 42, 42, 32, 71,101,110,101,114, 97,116, 101,100, 32, 97,117,116,111,109, 97,116,105, 99, 97,108,108, 121, 32, 98,121, 32, 39, 46, 46, 84, 79, 76, 85, 65, 95, 86, 69, 82, 83, 73, 79, 78, 46, 46, 39, 32,111,110, 32, 39, 46, 46,100, 97,116,101, 40, 41, 46, 46, 39, 46, 92,110, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39, 42, 47, 92,110, 92, 110, 39, 41, 10, 10, 9,111,117,116,112,117,116, 40, 39, 35, 105,102,110,100,101,102, 32, 95, 95, 99,112,108,117,115,112, 108,117,115, 92,110, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 35,105,110, 99,108,117,100,101, 32, 34,115,116,100, 108,105, 98, 46,104, 34, 92,110, 39, 41, 10, 9,111,117,116, 112,117,116, 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 35,105,110, 99,108, 117,100,101, 32, 34,115,116,114,105,110,103, 46,104, 34, 92, 110, 92,110, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39, 35,105,110, 99,108,117,100,101, 32, 34,116,111,108,117, 97, 43, 43, 46,104, 34, 92,110, 92,110, 39, 41, 10, 10, 32,105, 102, 32,110,111,116, 32,102,108, 97,103,115, 46,104, 32,116, 104,101,110, 10, 32, 32,111,117,116,112,117,116, 40, 39, 47, 42, 32, 69,120,112,111,114,116,101,100, 32,102,117,110, 99, 116,105,111,110, 32, 42, 47, 39, 41, 10, 32, 32,111,117,116, 112,117,116, 40, 39, 84, 79, 76, 85, 65, 95, 65, 80, 73, 32, 105,110,116, 32, 32,116,111,108,117, 97, 95, 39, 46, 46,115, 101,108,102, 46,110, 97,109,101, 46, 46, 39, 95,111,112,101, 110, 32, 40,108,117, 97, 95, 83,116, 97,116,101, 42, 32,116, 111,108,117, 97, 95, 83, 41, 59, 39, 41, 10, 32, 32,111,117, 116,112,117,116, 40, 39, 92,110, 39, 41, 10, 32,101,110,100, 10, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119, 104,105,108,101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10, 32, 32,115,101,108,102, 91,105, 93, 58,112,114,101, 97, 109, 98,108,101, 40, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 10, 9,105,102, 32,115,101,108, 102, 58,114,101,113,117,105,114,101, 99,111,108,108,101, 99, 116,105,111,110, 40, 95, 99,111,108,108,101, 99,116, 41, 32, 116,104,101,110, 10, 9, 9,111,117,116,112,117,116, 40, 39, 92,110, 39, 41, 10, 9, 9,111,117,116,112,117,116, 40, 39, 47, 42, 32,102,117,110, 99,116,105,111,110, 32,116,111, 32, 114,101,108,101, 97,115,101, 32, 99,111,108,108,101, 99,116, 101,100, 32,111, 98,106,101, 99,116, 32,118,105, 97, 32,100, 101,115,116,114,117, 99,116,111,114, 32, 42, 47, 39, 41, 10, 9, 9,111,117,116,112,117,116, 40, 39, 35,105,102,100,101, 102, 32, 95, 95, 99,112,108,117,115,112,108,117,115, 92,110, 39, 41, 10, 9, 9,102,111,114, 32,105, 44,118, 32,105,110, 32,112, 97,105,114,115, 40, 95, 99,111,108,108,101, 99,116, 41, 32,100,111, 10, 9, 9, 32,111,117,116,112,117,116, 40, 39, 92,110,115,116, 97,116,105, 99, 32,105,110,116, 32, 39, 46, 46,118, 46, 46, 39, 32, 40,108,117, 97, 95, 83,116, 97, 116,101, 42, 32,116,111,108,117, 97, 95, 83, 41, 39, 41, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39,123, 39, 41, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32, 39, 46, 46, 105, 46, 46, 39, 42, 32,115,101,108,102, 32, 61, 32, 40, 39, 46, 46,105, 46, 46, 39, 42, 41, 32,116,111,108,117, 97, 95, 116,111,117,115,101,114,116,121,112,101, 40,116,111,108,117, 97, 95, 83, 44, 49, 44, 48, 41, 59, 39, 41, 10, 9, 9, 9, 111,117,116,112,117,116, 40, 39, 9, 77,116,111,108,117, 97, 95,100,101,108,101,116,101, 40,115,101,108,102, 41, 59, 39, 41, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 9,114, 101,116,117,114,110, 32, 48, 59, 39, 41, 10, 9, 9, 9,111, 117,116,112,117,116, 40, 39,125, 39, 41, 10, 9, 9,101,110, 100, 10, 9, 9,111,117,116,112,117,116, 40, 39, 35,101,110, 100,105,102, 92,110, 92,110, 39, 41, 10, 9,101,110,100, 10, 10, 32,111,117,116,112,117,116, 40, 39, 92,110, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39, 47, 42, 32,102,117,110, 99,116,105,111,110, 32,116,111, 32,114,101,103,105,115,116, 101,114, 32,116,121,112,101, 32, 42, 47, 39, 41, 10, 32,111, 117,116,112,117,116, 40, 39,115,116, 97,116,105, 99, 32,118, 111,105,100, 32,116,111,108,117, 97, 95,114,101,103, 95,116, 121,112,101,115, 32, 40,108,117, 97, 95, 83,116, 97,116,101, 42, 32,116,111,108,117, 97, 95, 83, 41, 39, 41, 10, 32,111, 117,116,112,117,116, 40, 39,123, 39, 41, 10, 10, 9,105,102, 32,102,108, 97,103,115, 46,116, 32,116,104,101,110, 10, 9, 9,111,117,116,112,117,116, 40, 34, 35,105,102,110,100,101, 102, 32, 77,116,111,108,117, 97, 95,116,121,112,101,105,100, 92,110, 35,100,101,102,105,110,101, 32, 77,116,111,108,117, 97, 95,116,121,112,101,105,100, 40, 76, 44, 84, 73, 44, 84, 41, 92,110, 35,101,110,100,105,102, 92,110, 34, 41, 10, 9, 101,110,100, 10, 9,102,111,114,101, 97, 99,104, 40, 95,117, 115,101,114,116,121,112,101, 44,102,117,110, 99,116,105,111, 110, 40,110, 44,118, 41, 10, 9, 9,105,102, 32, 40,110,111, 116, 32, 95,103,108,111, 98, 97,108, 95, 99,108, 97,115,115, 101,115, 91,118, 93, 41, 32,111,114, 32, 95,103,108,111, 98, 97,108, 95, 99,108, 97,115,115,101,115, 91,118, 93, 58, 99, 104,101, 99,107, 95,112,117, 98,108,105, 99, 95, 97, 99, 99, 101,115,115, 40, 41, 32,116,104,101,110, 10, 9, 9, 9,111, 117,116,112,117,116, 40, 39, 32,116,111,108,117, 97, 95,117, 115,101,114,116,121,112,101, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 44,118, 44, 39, 34, 41, 59, 39, 41, 10, 9, 9, 9,105,102, 32,102,108, 97,103,115, 46,116, 32,116,104,101, 110, 10, 9, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32, 77,116,111,108,117, 97, 95,116,121,112,101,105,100, 40,116, 111,108,117, 97, 95, 83, 44,116,121,112,101,105,100, 40, 39, 44,118, 44, 39, 41, 44, 32, 34, 39, 44,118, 44, 39, 34, 41, 59, 39, 41, 10, 9, 9, 9,101,110,100, 10, 9, 9,101,110, 100, 10, 9, 32,101,110,100, 41, 10, 32,111,117,116,112,117, 116, 40, 39,125, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39, 92,110, 39, 41, 10,101,110,100, 10, 10, 45, 45, 32,114, 101,103,105,115,116,101,114, 32,112, 97, 99,107, 97,103,101, 10, 45, 45, 32,119,114,105,116,101, 32,112, 97, 99,107, 97, 103,101, 32,111,112,101,110, 32,102,117,110, 99,116,105,111, 110, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115, 115, 80, 97, 99,107, 97,103,101, 58,114,101,103,105,115,116, 101,114, 32, 40,112,114,101, 41, 10, 32,112,114,101, 32, 61, 32,112,114,101, 32,111,114, 32, 39, 39, 10, 32,112,117,115, 104, 40,115,101,108,102, 41, 10, 32,111,117,116,112,117,116, 40,112,114,101, 46, 46, 34, 47, 42, 32, 79,112,101,110, 32, 102,117,110, 99,116,105,111,110, 32, 42, 47, 34, 41, 10, 32, 111,117,116,112,117,116, 40,112,114,101, 46, 46, 34, 84, 79, 76, 85, 65, 95, 65, 80, 73, 32,105,110,116, 32,116,111,108, 117, 97, 95, 34, 46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46, 34, 95,111,112,101,110, 32, 40,108,117, 97, 95, 83, 116, 97,116,101, 42, 32,116,111,108,117, 97, 95, 83, 41, 34, 41, 10, 32,111,117,116,112,117,116, 40,112,114,101, 46, 46, 34,123, 34, 41, 10, 32,111,117,116,112,117,116, 40,112,114, 101, 46, 46, 34, 32,116,111,108,117, 97, 95,111,112,101,110, 40,116,111,108,117, 97, 95, 83, 41, 59, 34, 41, 10, 32,111, 117,116,112,117,116, 40,112,114,101, 46, 46, 34, 32,116,111, 108,117, 97, 95,114,101,103, 95,116,121,112,101,115, 40,116, 111,108,117, 97, 95, 83, 41, 59, 34, 41, 10, 32,111,117,116, 112,117,116, 40,112,114,101, 46, 46, 34, 32,116,111,108,117, 97, 95,109,111,100,117,108,101, 40,116,111,108,117, 97, 95, 83, 44, 78, 85, 76, 76, 44, 34, 44,115,101,108,102, 58,104, 97,115,118, 97,114, 40, 41, 44, 34, 41, 59, 34, 41, 10, 32, 111,117,116,112,117,116, 40,112,114,101, 46, 46, 34, 32,116, 111,108,117, 97, 95, 98,101,103,105,110,109,111,100,117,108, 101, 40,116,111,108,117, 97, 95, 83, 44, 78, 85, 76, 76, 41, 59, 34, 41, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105,108,101, 32,115,101,108,102, 91,105, 93, 32, 100,111, 10, 32, 32,115,101,108,102, 91,105, 93, 58,114,101, 103,105,115,116,101,114, 40,112,114,101, 46, 46, 34, 32, 32, 34, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101, 110,100, 10, 32,111,117,116,112,117,116, 40,112,114,101, 46, 46, 34, 32,116,111,108,117, 97, 95,101,110,100,109,111,100, 117,108,101, 40,116,111,108,117, 97, 95, 83, 41, 59, 34, 41, 10, 32,111,117,116,112,117,116, 40,112,114,101, 46, 46, 34, 32,114,101,116,117,114,110, 32, 49, 59, 34, 41, 10, 32,111, 117,116,112,117,116, 40,112,114,101, 46, 46, 34,125, 34, 41, 10, 10, 32,111,117,116,112,117,116, 40, 34, 92,110, 92,110, 34, 41, 10, 32,111,117,116,112,117,116, 40, 34, 35,105,102, 32,100,101,102,105,110,101,100, 40, 76, 85, 65, 95, 86, 69, 82, 83, 73, 79, 78, 95, 78, 85, 77, 41, 32, 38, 38, 32, 76, 85, 65, 95, 86, 69, 82, 83, 73, 79, 78, 95, 78, 85, 77, 32, 62, 61, 32, 53, 48, 49, 92,110, 34, 41, 59, 10, 32,111,117, 116,112,117,116, 40,112,114,101, 46, 46, 34, 84, 79, 76, 85, 65, 95, 65, 80, 73, 32,105,110,116, 32,108,117, 97,111,112, 101,110, 95, 34, 46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46, 34, 32, 40,108,117, 97, 95, 83,116, 97,116,101, 42, 32,116,111,108,117, 97, 95, 83, 41, 32,123, 34, 41, 10, 32, 111,117,116,112,117,116, 40,112,114,101, 46, 46, 34, 32,114, 101,116,117,114,110, 32,116,111,108,117, 97, 95, 34, 46, 46, 115,101,108,102, 46,110, 97,109,101, 46, 46, 34, 95,111,112, 101,110, 40,116,111,108,117, 97, 95, 83, 41, 59, 34, 41, 10, 32,111,117,116,112,117,116, 40,112,114,101, 46, 46, 34,125, 59, 34, 41, 10, 32,111,117,116,112,117,116, 40, 34, 35,101, 110,100,105,102, 92,110, 92,110, 34, 41, 10, 10, 9,112,111, 112, 40, 41, 10,101,110,100, 10, 10, 45, 45, 32,119,114,105, 116,101, 32,104,101, 97,100,101,114, 32,102,105,108,101, 10, 102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 80, 97, 99,107, 97,103,101, 58,104,101, 97,100,101,114, 32, 40, 41, 10, 32,111,117,116,112,117,116, 40, 39, 47, 42, 92,110, 39, 41, 32,111,117,116,112,117,116, 40, 39, 42, 42, 32, 76, 117, 97, 32, 98,105,110,100,105,110,103, 58, 32, 39, 46, 46, 115,101,108,102, 46,110, 97,109,101, 46, 46, 39, 92,110, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39, 42, 42, 32, 71, 101,110,101,114, 97,116,101,100, 32, 97,117,116,111,109, 97, 116,105, 99, 97,108,108,121, 32, 98,121, 32, 39, 46, 46, 84, 79, 76, 85, 65, 95, 86, 69, 82, 83, 73, 79, 78, 46, 46, 39, 32,111,110, 32, 39, 46, 46,100, 97,116,101, 40, 41, 46, 46, 39, 46, 92,110, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39, 42, 47, 92,110, 92,110, 39, 41, 10, 10, 32,105,102, 32, 110,111,116, 32,102,108, 97,103,115, 46,104, 32,116,104,101, 110, 10, 32, 32,111,117,116,112,117,116, 40, 39, 47, 42, 32, 69,120,112,111,114,116,101,100, 32,102,117,110, 99,116,105, 111,110, 32, 42, 47, 39, 41, 10, 32, 32,111,117,116,112,117, 116, 40, 39, 84, 79, 76, 85, 65, 95, 65, 80, 73, 32,105,110, 116, 32, 32,116,111,108,117, 97, 95, 39, 46, 46,115,101,108, 102, 46,110, 97,109,101, 46, 46, 39, 95,111,112,101,110, 32, 40,108,117, 97, 95, 83,116, 97,116,101, 42, 32,116,111,108, 117, 97, 95, 83, 41, 59, 39, 41, 10, 32, 32,111,117,116,112, 117,116, 40, 39, 92,110, 39, 41, 10, 32,101,110,100, 10,101, 110,100, 10, 10, 45, 45, 32, 73,110,116,101,114,110, 97,108, 32, 99,111,110,115,116,114,117, 99,116,111,114, 10,102,117, 110, 99,116,105,111,110, 32, 95, 80, 97, 99,107, 97,103,101, 32, 40,115,101,108,102, 41, 10, 32,115,101,116,109,101,116, 97,116, 97, 98,108,101, 40,115,101,108,102, 44, 99,108, 97, 115,115, 80, 97, 99,107, 97,103,101, 41, 10, 32,114,101,116, 117,114,110, 32,115,101,108,102, 10,101,110,100, 10, 10, 45, 45, 32, 80, 97,114,115,101, 32, 67, 32,104,101, 97,100,101, 114, 32,102,105,108,101, 32,119,105,116,104, 32,116,111,108, 117, 97, 32,100,105,114,101, 99,116,105,118,101,115, 10, 45, 45, 32, 42, 42, 42, 32, 84,104, 97,110,107,115, 32,116,111, 32, 65,114,105,101,108, 32, 77, 97,110,122,117,114, 32,102, 111,114, 32,102,105,120,105,110,103, 32, 98,117,103,115, 32, 105,110, 32,110,101,115,116,101,100, 32,100,105,114,101, 99, 116,105,118,101,115, 32, 42, 42, 42, 10,102,117,110, 99,116, 105,111,110, 32,101,120,116,114, 97, 99,116, 95, 99,111,100, 101, 40,102,110, 44,115, 41, 10, 9,108,111, 99, 97,108, 32, 99,111,100,101, 32, 61, 32, 39, 92,110, 36, 35,105,110, 99, 108,117,100,101, 32, 34, 39, 46, 46,102,110, 46, 46, 39, 34, 92,110, 39, 10, 9,115, 61, 32, 34, 92,110, 34, 32, 46, 46, 32,115, 32, 46, 46, 32, 34, 92,110, 34, 32, 45, 45, 32, 97, 100,100, 32, 98,108, 97,110,107, 32,108,105,110,101,115, 32, 97,115, 32,115,101,110,116,105,110,101,108,115, 10, 9,108, 111, 99, 97,108, 32, 95, 44,101, 44, 99, 44,116, 32, 61, 32, 115,116,114,102,105,110,100, 40,115, 44, 32, 34, 92,110, 40, 91, 94, 92,110, 93, 45, 41, 91, 84,116, 93, 91, 79,111, 93, 91, 76,108, 93, 91, 85,117, 93, 91, 65, 97, 93, 95, 40, 91, 94, 37,115, 93, 42, 41, 91, 94, 92,110, 93, 42, 92,110, 34, 41, 10, 9,119,104,105,108,101, 32,101, 32,100,111, 10, 9, 9,116, 32, 61, 32,115,116,114,108,111,119,101,114, 40,116, 41, 10, 9, 9,105,102, 32,116, 32, 61, 61, 32, 34, 98,101, 103,105,110, 34, 32,116,104,101,110, 10, 9, 9, 9, 95, 44, 101, 44, 99, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 40, 46, 45, 41, 92,110, 91, 94, 92,110, 93, 42, 91, 84,116, 93, 91, 79,111, 93, 91, 76,108, 93, 91, 85,117, 93, 91, 65, 97, 93, 95, 91, 69,101, 93, 91, 78,110, 93, 91, 68, 100, 93, 91, 94, 92,110, 93, 42, 92,110, 34, 44,101, 41, 10, 9, 9, 9,105,102, 32,110,111,116, 32,101, 32,116,104,101, 110, 10, 9, 9, 9, 32,116,111,108,117, 97, 95,101,114,114, 111,114, 40, 34, 85,110, 98, 97,108, 97,110, 99,101,100, 32, 39,116,111,108,117, 97, 95, 98,101,103,105,110, 39, 32,100, 105,114,101, 99,116,105,118,101, 32,105,110, 32,104,101, 97, 100,101,114, 32,102,105,108,101, 34, 41, 10, 9, 9, 9,101, 110,100, 10, 9, 9,101,110,100, 10, 9, 9, 99,111,100,101, 32, 61, 32, 99,111,100,101, 32, 46, 46, 32, 99, 32, 46, 46, 32, 34, 92,110, 34, 10, 9, 32, 95, 44,101, 44, 99, 44,116, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 32, 34, 92,110, 40, 91, 94, 92,110, 93, 45, 41, 91, 84,116, 93, 91, 79,111, 93, 91, 76,108, 93, 91, 85,117, 93, 91, 65, 97, 93, 95, 40, 91, 94, 37,115, 93, 42, 41, 91, 94, 92,110, 93, 42, 92,110, 34, 44,101, 41, 10, 9,101,110,100, 10, 9,114,101, 116,117,114,110, 32, 99,111,100,101, 10,101,110,100, 10, 10, 45, 45, 32, 67,111,110,115,116,114,117, 99,116,111,114, 10, 45, 45, 32, 69,120,112,101, 99,116,115, 32,116,104,101, 32, 112, 97, 99,107, 97,103,101, 32,110, 97,109,101, 44, 32,116, 104,101, 32,102,105,108,101, 32,101,120,116,101,110,115,105, 111,110, 44, 32, 97,110,100, 32,116,104,101, 32,102,105,108, 101, 32,116,101,120,116, 46, 10,102,117,110, 99,116,105,111, 110, 32, 80, 97, 99,107, 97,103,101, 32, 40,110, 97,109,101, 44,102,110, 41, 10, 32,108,111, 99, 97,108, 32,101,120,116, 32, 61, 32, 34,112,107,103, 34, 10, 10, 32, 45, 45, 32,111, 112,101,110, 32,105,110,112,117,116, 32,102,105,108,101, 44, 32,105,102, 32, 97,110,121, 10, 32,108,111, 99, 97,108, 32, 115,116, 44,109,115,103, 10, 32,105,102, 32,102,110, 32,116, 104,101,110, 10, 32, 32,115,116, 44, 32,109,115,103, 32, 61, 32,114,101, 97,100,102,114,111,109, 40,102,108, 97,103,115, 46,102, 41, 10, 32, 32,105,102, 32,110,111,116, 32,115,116, 32,116,104,101,110, 10, 32, 32, 32,101,114,114,111,114, 40, 39, 35, 39, 46, 46,109,115,103, 41, 10, 32, 32,101,110,100, 10, 32, 32,108,111, 99, 97,108, 32, 95, 59, 32, 95, 44, 32, 95, 44, 32,101,120,116, 32, 61, 32,115,116,114,102,105,110, 100, 40,102,110, 44, 34, 46, 42, 37, 46, 40, 46, 42, 41, 36, 34, 41, 10, 32,101,110,100, 10, 32,108,111, 99, 97,108, 32, 99,111,100,101, 10, 32,105,102, 32,101,120,116, 32, 61, 61, 32, 39,112,107,103, 39, 32,116,104,101,110, 10, 32, 32, 99, 111,100,101, 32, 61, 32,112,114,101,112, 40,115,116, 41, 10, 32,101,108,115,101, 10, 32, 32, 99,111,100,101, 32, 61, 32, 34, 92,110, 34, 32, 46, 46, 32,114,101, 97,100, 40, 39, 42, 97, 39, 41, 10, 32, 32,105,102, 32,101,120,116, 32, 61, 61, 32, 39,104, 39, 32,111,114, 32,101,120,116, 32, 61, 61, 32, 39,104,112,112, 39, 32,116,104,101,110, 10, 32, 32, 32, 99, 111,100,101, 32, 61, 32,101,120,116,114, 97, 99,116, 95, 99, 111,100,101, 40,102,110, 44, 99,111,100,101, 41, 10, 32, 32, 101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32, 99, 108,111,115,101, 32,102,105,108,101, 10, 32,105,102, 32,102, 110, 32,116,104,101,110, 10, 32, 32,114,101, 97,100,102,114, 111,109, 40, 41, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32, 100,101, 97,108, 32,119,105,116,104, 32,105,110, 99,108,117, 100,101, 32,100,105,114,101, 99,116,105,118,101, 10, 32,108, 111, 99, 97,108, 32,110,115,117, 98,115,116, 10, 32,114,101, 112,101, 97,116, 10, 32, 32, 99,111,100,101, 44,110,115,117, 98,115,116, 32, 61, 32,103,115,117, 98, 40, 99,111,100,101, 44, 39, 92,110, 37,115, 42, 37, 36, 40, 46, 41,102,105,108, 101, 37,115, 42, 34, 40, 46, 45, 41, 34, 40, 91, 94, 92,110, 93, 42, 41, 92,110, 39, 44, 10, 9, 9,102,117,110, 99,116, 105,111,110, 32, 40,107,105,110,100, 44,102,110, 44,101,120, 116,114, 97, 41, 10, 9, 9, 9,108,111, 99, 97,108, 32, 95, 44, 32, 95, 44, 32,101,120,116, 32, 61, 32,115,116,114,102, 105,110,100, 40,102,110, 44, 34, 46, 42, 37, 46, 40, 46, 42, 41, 36, 34, 41, 10, 9, 9, 9,108,111, 99, 97,108, 32,102, 112, 44,109,115,103, 32, 61, 32,111,112,101,110,102,105,108, 101, 40,102,110, 44, 39,114, 39, 41, 10, 9, 9, 9,105,102, 32,110,111,116, 32,102,112, 32,116,104,101,110, 10, 9, 9, 9, 9,101,114,114,111,114, 40, 39, 35, 39, 46, 46,109,115, 103, 46, 46, 39, 58, 32, 39, 46, 46,102,110, 41, 10, 9, 9, 9,101,110,100, 10, 9, 9, 9,105,102, 32,107,105,110,100, 32, 61, 61, 32, 39,112, 39, 32,116,104,101,110, 10, 9, 9, 9, 9,108,111, 99, 97,108, 32,115, 32, 61, 32,112,114,101, 112, 40,102,112, 41, 10, 9, 9, 9, 9, 99,108,111,115,101, 102,105,108,101, 40,102,112, 41, 10, 9, 9, 9, 9,114,101, 116,117,114,110, 32,115, 10, 9, 9, 9,101,110,100, 10, 9, 9, 9,108,111, 99, 97,108, 32,115, 32, 61, 32,114,101, 97, 100, 40,102,112, 44, 39, 42, 97, 39, 41, 10, 9, 9, 9, 99, 108,111,115,101,102,105,108,101, 40,102,112, 41, 10, 9, 9, 9,105,102, 32,107,105,110,100, 32, 61, 61, 32, 39, 99, 39, 32,111,114, 32,107,105,110,100, 32, 61, 61, 32, 39,104, 39, 32,116,104,101,110, 10, 9, 9, 9, 9,114,101,116,117,114, 110, 32,101,120,116,114, 97, 99,116, 95, 99,111,100,101, 40, 102,110, 44,115, 41, 10, 9, 9, 9,101,108,115,101,105,102, 32,107,105,110,100, 32, 61, 61, 32, 39,108, 39, 32,116,104, 101,110, 10, 9, 9, 9, 9,114,101,116,117,114,110, 32, 34, 92,110, 36, 91, 45, 45, 35, 35, 34, 46, 46,102,110, 46, 46, 34, 92,110, 34, 32, 46, 46, 32,115, 32, 46, 46, 32, 34, 92, 110, 36, 93, 92,110, 34, 10, 9, 9, 9,101,108,115,101,105, 102, 32,107,105,110,100, 32, 61, 61, 32, 39,105, 39, 32,116, 104,101,110, 10, 9, 9, 9, 9,108,111, 99, 97,108, 32,116, 32, 61, 32,123, 99,111,100,101, 61,115,125, 10, 9, 9, 9, 9,101,120,116,114, 97, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,101,120,116,114, 97, 44, 32, 34, 94, 37,115, 42, 44, 37,115, 42, 34, 44, 32, 34, 34, 41, 10, 9, 9, 9, 9,108,111, 99, 97,108, 32,112, 97,114,115, 32, 61, 32,115,112,108,105,116, 95, 99, 95,116,111,107,101,110,115, 40,101,120,116,114, 97, 44, 32, 34, 44, 34, 41, 10, 9, 9, 9, 9,105,110, 99,108,117,100,101, 95,102,105,108,101, 95, 104,111,111,107, 40,116, 44, 32,102,110, 44, 32,117,110,112, 97, 99,107, 40,112, 97,114,115, 41, 41, 10, 9, 9, 9, 9, 114,101,116,117,114,110, 32, 34, 92,110, 92,110, 34, 32, 46, 46, 32,116, 46, 99,111,100,101, 10, 9, 9, 9,101,108,115, 101, 10, 9, 9, 9, 9,101,114,114,111,114, 40, 39, 35, 73, 110,118, 97,108,105,100, 32,105,110, 99,108,117,100,101, 32, 100,105,114,101, 99,116,105,118,101, 32, 40,117,115,101, 32, 36, 99,102,105,108,101, 44, 32, 36,112,102,105,108,101, 44, 32, 36,108,102,105,108,101, 32,111,114, 32, 36,105,102,105, 108,101, 41, 39, 41, 10, 9, 9, 9,101,110,100, 10, 9, 9, 101,110,100, 41, 10, 32,117,110,116,105,108, 32,110,115,117, 98,115,116, 61, 61, 48, 10, 10, 32, 45, 45, 32,100,101, 97, 108, 32,119,105,116,104, 32,114,101,110, 97,109,105,110,103, 32,100,105,114,101, 99,116,105,118,101, 10, 32,114,101,112, 101, 97,116, 32, 45, 45, 32, 73, 32,100,111,110, 39,116, 32, 107,110,111,119, 32,119,104,121, 32,116,104,105,115, 32,105, 115, 32,110,101, 99,101,115, 97,114,121, 10, 9, 99,111,100, 101, 44,110,115,117, 98,115,116, 32, 61, 32,103,115,117, 98, 40, 99,111,100,101, 44, 39, 92,110, 37,115, 42, 37, 36,114, 101,110, 97,109,105,110,103, 37,115, 42, 40, 46, 45, 41, 37, 115, 42, 92,110, 39, 44, 32,102,117,110, 99,116,105,111,110, 32, 40,114, 41, 32, 97,112,112,101,110,100,114,101,110, 97, 109,105,110,103, 40,114, 41, 32,114,101,116,117,114,110, 32, 34, 92,110, 34, 32,101,110,100, 41, 10, 32,117,110,116,105, 108, 32,110,115,117, 98,115,116, 32, 61, 61, 32, 48, 10, 10, 32,108,111, 99, 97,108, 32,116, 32, 61, 32, 95, 80, 97, 99, 107, 97,103,101, 40, 95, 67,111,110,116, 97,105,110,101,114, 123,110, 97,109,101, 61,110, 97,109,101, 44, 32, 99,111,100, 101, 61, 99,111,100,101,125, 41, 10, 32,112,117,115,104, 40, 116, 41, 10, 32,112,114,101,112,114,111, 99,101,115,115, 95, 104,111,111,107, 40,116, 41, 10, 32,116, 58,112,114,101,112, 114,111, 99,101,115,115, 40, 41, 10, 32,112,114,101,112, 97, 114,115,101, 95,104,111,111,107, 40,116, 41, 10, 32,116, 58, 112, 97,114,115,101, 40,116, 46, 99,111,100,101, 41, 10, 32, 112,111,112, 40, 41, 10, 32,114,101,116,117,114,110, 32,116, 10,101,110,100, 10, 10, 10,115,101,116,109,101,116, 97,116, 97, 98,108,101, 40, 95,101,120,116,114, 97, 95,112, 97,114, 97,109,101,116,101,114,115, 44, 32,123, 32, 95, 95,105,110, 100,101,120, 32, 61, 32, 95, 71, 32,125, 41, 10, 10,102,117, 110, 99,116,105,111,110, 32,112,114,101,112, 40,102,105,108, 101, 41, 10, 10, 32, 32,108,111, 99, 97,108, 32, 99,104,117, 110,107, 32, 61, 32,123, 39,108,111, 99, 97,108, 32, 95, 95, 114,101,116, 32, 61, 32,123, 34, 92, 92,110, 34,125, 92,110, 39,125, 10, 32, 32,102,111,114, 32,108,105,110,101, 32,105, 110, 32,102,105,108,101, 58,108,105,110,101,115, 40, 41, 32, 100,111, 10, 32, 32, 32, 32, 32,105,102, 32,115,116,114,105, 110,103, 46,102,105,110,100, 40,108,105,110,101, 44, 32, 34, 94, 35, 35, 34, 41, 32,116,104,101,110, 10, 32, 32, 32, 32, 32, 32,116, 97, 98,108,101, 46,105,110,115,101,114,116, 40, 99,104,117,110,107, 44, 32,115,116,114,105,110,103, 46,115, 117, 98, 40,108,105,110,101, 44, 32, 51, 41, 32, 46, 46, 32, 34, 92,110, 34, 41, 10, 32, 32, 32, 32, 32,101,108,115,101, 10, 32, 32, 32, 32, 32, 32,108,111, 99, 97,108, 32,108, 97, 115,116, 32, 61, 32, 49, 10, 32, 32, 32, 32, 32, 32,102,111, 114, 32,116,101,120,116, 44, 32,101,120,112,114, 44, 32,105, 110,100,101,120, 32,105,110, 32,115,116,114,105,110,103, 46, 103,102,105,110,100, 40,108,105,110,101, 44, 32, 34, 40, 46, 45, 41, 36, 40, 37, 98, 40, 41, 41, 40, 41, 34, 41, 32,100, 111, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32,108, 97,115,116, 32, 61, 32,105,110,100,101,120, 10, 32, 32, 32, 32, 32, 32, 32, 32,105,102, 32,116,101,120,116, 32,126, 61, 32, 34, 34, 32,116,104,101,110, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,116, 97, 98,108,101, 46,105,110,115,101,114,116, 40, 99, 104,117,110,107, 44, 32,115,116,114,105,110,103, 46,102,111, 114,109, 97,116, 40, 39,116, 97, 98,108,101, 46,105,110,115, 101,114,116, 40, 95, 95,114,101,116, 44, 32, 37,113, 32, 41, 39, 44, 32,116,101,120,116, 41, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32,101,110,100, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 97, 98,108,101, 46,105,110,115,101,114,116, 40, 99,104, 117,110,107, 44, 32,115,116,114,105,110,103, 46,102,111,114, 109, 97,116, 40, 39,116, 97, 98,108,101, 46,105,110,115,101, 114,116, 40, 95, 95,114,101,116, 44, 32, 37,115, 32, 41, 39, 44, 32,101,120,112,114, 41, 41, 10, 32, 32, 32, 32, 32, 32, 101,110,100, 10, 32, 32, 32, 32, 32, 32,116, 97, 98,108,101, 46,105,110,115,101,114,116, 40, 99,104,117,110,107, 44, 32, 115,116,114,105,110,103, 46,102,111,114,109, 97,116, 40, 39, 116, 97, 98,108,101, 46,105,110,115,101,114,116, 40, 95, 95, 114,101,116, 44, 32, 37,113, 41, 92,110, 39, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,115,116,114,105,110,103, 46,115,117, 98, 40,108,105,110,101, 44, 32,108, 97,115,116, 41, 46, 46, 34, 92,110, 34, 41, 41, 10, 32, 32, 32, 32,101, 110,100, 10, 32, 32,101,110,100, 10, 32, 32,116, 97, 98,108, 101, 46,105,110,115,101,114,116, 40, 99,104,117,110,107, 44, 32, 39, 92,110,114,101,116,117,114,110, 32,116, 97, 98,108, 101, 46, 99,111,110, 99, 97,116, 40, 95, 95,114,101,116, 41, 92,110, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32,102, 44, 101, 32, 61, 32,108,111, 97,100,115,116,114,105,110,103, 40, 116, 97, 98,108,101, 46, 99,111,110, 99, 97,116, 40, 99,104, 117,110,107, 41, 41, 10, 32, 32,105,102, 32,101, 32,116,104, 101,110, 10, 32, 32, 9,101,114,114,111,114, 40, 34, 35, 34, 46, 46,101, 41, 10, 32, 32,101,110,100, 10, 32, 32,115,101, 116,102,101,110,118, 40,102, 44, 32, 95,101,120,116,114, 97, 95,112, 97,114, 97,109,101,116,101,114,115, 41, 10, 32, 32, 114,101,116,117,114,110, 32,102, 40, 41, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/package.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32,109,111,100,117,108, 101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114,105,116, 116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74, 117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73,100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111,100, 101, 32,105,115, 32,102,114,101,101, 32,115,111,102,116,119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32,114,101, 100,105,115,116,114,105, 98,117,116,101, 32,105,116, 32, 97, 110,100, 47,111,114, 32,109,111,100,105,102,121, 32,105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116,119, 97, 114,101, 32,112,114,111,118,105,100,101,100, 32,104,101,114, 101,117,110,100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97,117,116, 104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98,108,105, 103, 97,116,105,111,110, 32,116,111, 32,112,114,111,118,105, 100,101, 32,109, 97,105,110,116,101,110, 97,110, 99,101, 44, 32,115,117,112,112,111,114,116, 44, 32,117,112,100, 97,116, 101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,101,109, 101,110,116,115, 44, 32,111,114, 32,109,111,100,105,102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 10, 45, 45, 32, 77,111,100,117,108,101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114,101,115,101,110,116,115, 32,109,111,100, 117,108,101, 46, 10, 45, 45, 32, 84,104,101, 32,102,111,108, 108,111,119,105,110,103, 32,102,105,101,108,100,115, 32, 97, 114,101, 32,115,116,111,114,101,100, 58, 10, 45, 45, 32, 32, 32, 32,123,105,125, 32, 61, 32,108,105,115,116, 32,111,102, 32,111, 98,106,101, 99,116,115, 32,105,110, 32,116,104,101, 32,109,111,100,117,108,101, 46, 10, 99,108, 97,115,115, 77, 111,100,117,108,101, 32, 61, 32,123, 10, 32, 99,108, 97,115, 115,116,121,112,101, 32, 61, 32, 39,109,111,100,117,108,101, 39, 10,125, 10, 99,108, 97,115,115, 77,111,100,117,108,101, 46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97,115, 115, 77,111,100,117,108,101, 10,115,101,116,109,101,116, 97, 116, 97, 98,108,101, 40, 99,108, 97,115,115, 77,111,100,117, 108,101, 44, 99,108, 97,115,115, 67,111,110,116, 97,105,110, 101,114, 41, 10, 10, 45, 45, 32,114,101,103,105,115,116,101, 114, 32,109,111,100,117,108,101, 10,102,117,110, 99,116,105, 111,110, 32, 99,108, 97,115,115, 77,111,100,117,108,101, 58, 114,101,103,105,115,116,101,114, 32, 40,112,114,101, 41, 10, 32,112,114,101, 32, 61, 32,112,114,101, 32,111,114, 32, 39, 39, 10, 32,112,117,115,104, 40,115,101,108,102, 41, 10, 32, 111,117,116,112,117,116, 40,112,114,101, 46, 46, 39,116,111, 108,117, 97, 95,109,111,100,117,108,101, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101,108,102, 46,110, 97, 109,101, 46, 46, 39, 34, 44, 39, 44,115,101,108,102, 58,104, 97,115,118, 97,114, 40, 41, 44, 39, 41, 59, 39, 41, 10, 32, 111,117,116,112,117,116, 40,112,114,101, 46, 46, 39,116,111, 108,117, 97, 95, 98,101,103,105,110,109,111,100,117,108,101, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101, 108,102, 46,110, 97,109,101, 46, 46, 39, 34, 41, 59, 39, 41, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104, 105,108,101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10, 32, 32,115,101,108,102, 91,105, 93, 58,114,101,103,105,115, 116,101,114, 40,112,114,101, 46, 46, 39, 32, 39, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32, 111,117,116,112,117,116, 40,112,114,101, 46, 46, 39,116,111, 108,117, 97, 95,101,110,100,109,111,100,117,108,101, 40,116, 111,108,117, 97, 95, 83, 41, 59, 39, 41, 10, 9,112,111,112, 40, 41, 10,101,110,100, 10, 10, 45, 45, 32, 80,114,105,110, 116, 32,109,101,116,104,111,100, 10,102,117,110, 99,116,105, 111,110, 32, 99,108, 97,115,115, 77,111,100,117,108,101, 58, 112,114,105,110,116, 32, 40,105,100,101,110,116, 44, 99,108, 111,115,101, 41, 10, 32,112,114,105,110,116, 40,105,100,101, 110,116, 46, 46, 34, 77,111,100,117,108,101,123, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101,108, 102, 46,110, 97,109,101, 46, 46, 34, 39, 59, 34, 41, 10, 32, 108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105,108, 101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10, 32, 32, 115,101,108,102, 91,105, 93, 58,112,114,105,110,116, 40,105, 100,101,110,116, 46, 46, 34, 32, 34, 44, 34, 44, 34, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 125, 34, 46, 46, 99,108,111,115,101, 41, 10,101,110,100, 10, 10, 45, 45, 32, 73,110,116,101,114,110, 97,108, 32, 99,111, 110,115,116,114,117, 99,116,111,114, 10,102,117,110, 99,116, 105,111,110, 32, 95, 77,111,100,117,108,101, 32, 40,116, 41, 10, 32,115,101,116,109,101,116, 97,116, 97, 98,108,101, 40, 116, 44, 99,108, 97,115,115, 77,111,100,117,108,101, 41, 10, 32, 97,112,112,101,110,100, 40,116, 41, 10, 32,114,101,116, 117,114,110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32, 67, 111,110,115,116,114,117, 99,116,111,114, 10, 45, 45, 32, 69, 120,112,101, 99,116,115, 32,116,119,111, 32,115,116,114,105, 110,103, 32,114,101,112,114,101,115,101,110,116,105,110,103, 32,116,104,101, 32,109,111,100,117,108,101, 32,110, 97,109, 101, 32, 97,110,100, 32, 98,111,100,121, 46, 10,102,117,110, 99,116,105,111,110, 32, 77,111,100,117,108,101, 32, 40,110, 44, 98, 41, 10, 32,108,111, 99, 97,108, 32,116, 32, 61, 32, 95, 77,111,100,117,108,101, 40, 95, 67,111,110,116, 97,105, 110,101,114,123,110, 97,109,101, 61,110,125, 41, 10, 32,112, 117,115,104, 40,116, 41, 10, 32,116, 58,112, 97,114,115,101, 40,115,116,114,115,117, 98, 40, 98, 44, 50, 44,115,116,114, 108,101,110, 40, 98, 41, 45, 49, 41, 41, 32, 45, 45, 32,101, 108,105,109,105,110, 97,116,101, 32, 98,114, 97, 99,101,115, 10, 32,112,111,112, 40, 41, 10, 32,114,101,116,117,114,110, 32,116, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/module.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32,110, 97,109,101,115, 112, 97, 99,101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87, 114,105,116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101, 109, 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 50, 48, 48, 51, 10, 45, 45, 32, 36, 73,100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111,100,101, 32,105,115, 32,102,114,101,101, 32,115,111, 102,116,119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32,114,101,100,105,115,116,114,105, 98,117,116,101, 32,105, 116, 32, 97,110,100, 47,111,114, 32,109,111,100,105,102,121, 32,105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102, 116,119, 97,114,101, 32,112,114,111,118,105,100,101,100, 32, 104,101,114,101,117,110,100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115, 105,115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97,117,116,104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98,108,105,103, 97,116,105,111,110, 32,116,111, 32,112,114, 111,118,105,100,101, 32,109, 97,105,110,116,101,110, 97,110, 99,101, 44, 32,115,117,112,112,111,114,116, 44, 32,117,112, 100, 97,116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,101,109,101,110,116,115, 44, 32,111,114, 32,109,111,100, 105,102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 45, 45, 32, 78, 97,109,101,115,112, 97, 99,101, 32, 99,108, 97, 115,115, 10, 45, 45, 32, 82,101,112,114,101,115,101,110,116, 115, 32, 97, 32,110, 97,109,101,115, 97,112, 99,101, 32,100, 101,102,105,110,105,116,105,111,110, 46, 10, 45, 45, 32, 83, 116,111,114,101,115, 32,116,104,101, 32,102,111,108,108,111, 119,105,110,103, 32,102,105,101,108,100,115, 58, 10, 45, 45, 32, 32, 32, 32,110, 97,109,101, 32, 61, 32, 99,108, 97,115, 115, 32,110, 97,109,101, 10, 45, 45, 32, 32, 32, 32,123,105, 125, 32, 32, 61, 32,108,105,115,116, 32,111,102, 32,109,101, 109, 98,101,114,115, 10, 99,108, 97,115,115, 78, 97,109,101, 115,112, 97, 99,101, 32, 61, 32,123, 10, 32, 99,108, 97,115, 115,116,121,112,101, 32, 61, 32, 39,110, 97,109,101,115,112, 97, 99,101, 39, 44, 10, 32,110, 97,109,101, 32, 61, 32, 39, 39, 44, 10,125, 10, 99,108, 97,115,115, 78, 97,109,101,115, 112, 97, 99,101, 46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97,115,115, 78, 97,109,101,115,112, 97, 99,101, 10, 115,101,116,109,101,116, 97,116, 97, 98,108,101, 40, 99,108, 97,115,115, 78, 97,109,101,115,112, 97, 99,101, 44, 99,108, 97,115,115, 77,111,100,117,108,101, 41, 10, 10, 45, 45, 32, 80,114,105,110,116, 32,109,101,116,104,111,100, 10,102,117, 110, 99,116,105,111,110, 32, 99,108, 97,115,115, 78, 97,109, 101,115,112, 97, 99,101, 58,112,114,105,110,116, 32, 40,105, 100,101,110,116, 44, 99,108,111,115,101, 41, 10, 32,112,114, 105,110,116, 40,105,100,101,110,116, 46, 46, 34, 78, 97,109, 101,115,112, 97, 99,101,123, 34, 41, 10, 32,112,114,105,110, 116, 40,105,100,101,110,116, 46, 46, 34, 32,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,110, 97,109, 101, 46, 46, 34, 39, 44, 34, 41, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105,108,101, 32,115,101,108, 102, 91,105, 93, 32,100,111, 10, 32, 32,115,101,108,102, 91, 105, 93, 58,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 34, 44, 34, 44, 34, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32,112,114,105,110, 116, 40,105,100,101,110,116, 46, 46, 34,125, 34, 46, 46, 99, 108,111,115,101, 41, 10,101,110,100, 10, 10, 45, 45, 32, 73, 110,116,101,114,110, 97,108, 32, 99,111,110,115,116,114,117, 99,116,111,114, 10,102,117,110, 99,116,105,111,110, 32, 95, 78, 97,109,101,115,112, 97, 99,101, 32, 40,116, 41, 10, 32, 115,101,116,109,101,116, 97,116, 97, 98,108,101, 40,116, 44, 99,108, 97,115,115, 78, 97,109,101,115,112, 97, 99,101, 41, 10, 32, 97,112,112,101,110,100, 40,116, 41, 10, 32,114,101, 116,117,114,110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32, 67,111,110,115,116,114,117, 99,116,111,114, 10, 45, 45, 32, 69,120,112,101, 99,116,115, 32,116,104,101, 32,110, 97,109, 101, 32, 97,110,100, 32,116,104,101, 32, 98,111,100,121, 32, 111,102, 32,116,104,101, 32,110, 97,109,101,115,112, 97, 99, 101, 46, 10,102,117,110, 99,116,105,111,110, 32, 78, 97,109, 101,115,112, 97, 99,101, 32, 40,110, 44, 98, 41, 10, 32,108, 111, 99, 97,108, 32, 99, 32, 61, 32, 95, 78, 97,109,101,115, 112, 97, 99,101, 40, 95, 67,111,110,116, 97,105,110,101,114, 123,110, 97,109,101, 61,110,125, 41, 10, 32,112,117,115,104, 40, 99, 41, 10, 32, 99, 58,112, 97,114,115,101, 40,115,116, 114,115,117, 98, 40, 98, 44, 50, 44,115,116,114,108,101,110, 40, 98, 41, 45, 49, 41, 41, 32, 45, 45, 32,101,108,105,109, 105,110, 97,116,101, 32, 98,114, 97, 99,101,115, 10, 32,112, 111,112, 40, 41, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/namespace.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32,100,101,102,105,110, 101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114,105,116, 116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74, 117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73,100, 58, 32,100,101,102,105,110,101, 46,108,117, 97, 44,118, 32, 49, 46, 50, 32, 49, 57, 57, 57, 47, 48, 55, 47, 50, 56, 32, 50, 50, 58, 50, 49, 58, 48, 56, 32, 99,101,108,101,115, 32, 69, 120,112, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99, 111,100,101, 32,105,115, 32,102,114,101,101, 32,115,111,102, 116,119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32, 114,101,100,105,115,116,114,105, 98,117,116,101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109,111,100,105,102,121, 32, 105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116, 119, 97,114,101, 32,112,114,111,118,105,100,101,100, 32,104, 101,114,101,117,110,100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105, 115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97, 117,116,104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98, 108,105,103, 97,116,105,111,110, 32,116,111, 32,112,114,111, 118,105,100,101, 32,109, 97,105,110,116,101,110, 97,110, 99, 101, 44, 32,115,117,112,112,111,114,116, 44, 32,117,112,100, 97,116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99, 101,109,101,110,116,115, 44, 32,111,114, 32,109,111,100,105, 102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 45, 45, 32, 68,101,102,105,110,101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114,101,115,101,110,116,115, 32, 97, 32, 110,117,109,101,114,105, 99, 32, 99,111,110,115,116, 32,100, 101,102,105,110,105,116,105,111,110, 10, 45, 45, 32, 84,104, 101, 32,102,111,108,108,111,119,105,110,103, 32,102,105,108, 100,115, 32, 97,114,101, 32,115,116,111,114,101,100, 58, 10, 45, 45, 32, 32, 32,110, 97,109,101, 32, 61, 32, 99,111,110, 115,116, 97,110,116, 32,110, 97,109,101, 10, 99,108, 97,115, 115, 68,101,102,105,110,101, 32, 61, 32,123, 10, 32,110, 97, 109,101, 32, 61, 32, 39, 39, 44, 10,125, 10, 99,108, 97,115, 115, 68,101,102,105,110,101, 46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97,115,115, 68,101,102,105,110,101, 10, 115,101,116,109,101,116, 97,116, 97, 98,108,101, 40, 99,108, 97,115,115, 68,101,102,105,110,101, 44, 99,108, 97,115,115, 70,101, 97,116,117,114,101, 41, 10, 10, 45, 45, 32,114,101, 103,105,115,116,101,114, 32,100,101,102,105,110,101, 10,102, 117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 68,101, 102,105,110,101, 58,114,101,103,105,115,116,101,114, 32, 40, 112,114,101, 41, 10, 9,105,102, 32,110,111,116, 32,115,101, 108,102, 58, 99,104,101, 99,107, 95,112,117, 98,108,105, 99, 95, 97, 99, 99,101,115,115, 40, 41, 32,116,104,101,110, 10, 9, 9,114,101,116,117,114,110, 10, 9,101,110,100, 10, 10, 32,112,114,101, 32, 61, 32,112,114,101, 32,111,114, 32, 39, 39, 10, 32,111,117,116,112,117,116, 40,112,114,101, 46, 46, 39,116,111,108,117, 97, 95, 99,111,110,115,116, 97,110,116, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101, 108,102, 46,108,110, 97,109,101, 46, 46, 39, 34, 44, 39, 46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46, 39, 41, 59, 39, 41, 10,101,110,100, 10, 10, 45, 45, 32, 80,114,105,110, 116, 32,109,101,116,104,111,100, 10,102,117,110, 99,116,105, 111,110, 32, 99,108, 97,115,115, 68,101,102,105,110,101, 58, 112,114,105,110,116, 32, 40,105,100,101,110,116, 44, 99,108, 111,115,101, 41, 10, 32,112,114,105,110,116, 40,105,100,101, 110,116, 46, 46, 34, 68,101,102,105,110,101,123, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101,108, 102, 46,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32, 112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 108,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101,108, 102, 46,108,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 125, 34, 46, 46, 99,108,111,115,101, 41, 10,101,110,100, 10, 10, 10, 45, 45, 32, 73,110,116,101,114,110, 97,108, 32, 99, 111,110,115,116,114,117, 99,116,111,114, 10,102,117,110, 99, 116,105,111,110, 32, 95, 68,101,102,105,110,101, 32, 40,116, 41, 10, 32,115,101,116,109,101,116, 97,116, 97, 98,108,101, 40,116, 44, 99,108, 97,115,115, 68,101,102,105,110,101, 41, 10, 32,116, 58, 98,117,105,108,100,110, 97,109,101,115, 40, 41, 10, 10, 32,105,102, 32,116, 46,110, 97,109,101, 32, 61, 61, 32, 39, 39, 32,116,104,101,110, 10, 32, 32,101,114,114, 111,114, 40, 34, 35,105,110,118, 97,108,105,100, 32,100,101, 102,105,110,101, 34, 41, 10, 32,101,110,100, 10, 10, 32, 97, 112,112,101,110,100, 40,116, 41, 10, 32,114,101,116,117,114, 110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32, 67,111,110, 115,116,114,117, 99,116,111,114, 10, 45, 45, 32, 69,120,112, 101, 99,116,115, 32, 97, 32,115,116,114,105,110,103, 32,114, 101,112,114,101,115,101,110,116,105,110,103, 32,116,104,101, 32, 99,111,110,115,116, 97,110,116, 32,110, 97,109,101, 10, 102,117,110, 99,116,105,111,110, 32, 68,101,102,105,110,101, 32, 40,110, 41, 10, 32,114,101,116,117,114,110, 32, 95, 68, 101,102,105,110,101,123, 10, 32, 32,110, 97,109,101, 32, 61, 32,110, 10, 32,125, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/define.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32,101,110,117,109,101, 114, 97,116,101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87, 114,105,116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101, 109, 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73,100, 58, 32,101,110,117,109,101,114, 97,116,101, 46,108, 117, 97, 44,118, 32, 49, 46, 51, 32, 50, 48, 48, 48, 47, 48, 49, 47, 50, 52, 32, 50, 48, 58, 52, 49, 58, 49, 53, 32, 99, 101,108,101,115, 32, 69,120,112, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111,100,101, 32,105,115, 32,102,114, 101,101, 32,115,111,102,116,119, 97,114,101, 59, 32,121,111, 117, 32, 99, 97,110, 32,114,101,100,105,115,116,114,105, 98, 117,116,101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109, 111,100,105,102,121, 32,105,116, 46, 10, 45, 45, 32, 84,104, 101, 32,115,111,102,116,119, 97,114,101, 32,112,114,111,118, 105,100,101,100, 32,104,101,114,101,117,110,100,101,114, 32, 105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97,117,116,104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98,108,105,103, 97,116,105,111,110, 32, 116,111, 32,112,114,111,118,105,100,101, 32,109, 97,105,110, 116,101,110, 97,110, 99,101, 44, 32,115,117,112,112,111,114, 116, 44, 32,117,112,100, 97,116,101,115, 44, 10, 45, 45, 32, 101,110,104, 97,110, 99,101,109,101,110,116,115, 44, 32,111, 114, 32,109,111,100,105,102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 45, 45, 32, 69,110,117,109,101,114, 97,116, 101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114, 101,115,101,110,116,115, 32,101,110,117,109,101,114, 97,116, 105,111,110, 10, 45, 45, 32, 84,104,101, 32,102,111,108,108, 111,119,105,110,103, 32,102,105,101,108,100,115, 32, 97,114, 101, 32,115,116,111,114,101,100, 58, 10, 45, 45, 32, 32, 32, 32,123,105,125, 32, 61, 32,108,105,115,116, 32,111,102, 32, 99,111,110,115,116, 97,110,116, 32,110, 97,109,101,115, 10, 99,108, 97,115,115, 69,110,117,109,101,114, 97,116,101, 32, 61, 32,123, 10,125, 10, 99,108, 97,115,115, 69,110,117,109, 101,114, 97,116,101, 46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97,115,115, 69,110,117,109,101,114, 97,116,101, 10,115,101,116,109,101,116, 97,116, 97, 98,108,101, 40, 99, 108, 97,115,115, 69,110,117,109,101,114, 97,116,101, 44, 99, 108, 97,115,115, 70,101, 97,116,117,114,101, 41, 10, 10, 45, 45, 32,114,101,103,105,115,116,101,114, 32,101,110,117,109, 101,114, 97,116,105,111,110, 10,102,117,110, 99,116,105,111, 110, 32, 99,108, 97,115,115, 69,110,117,109,101,114, 97,116, 101, 58,114,101,103,105,115,116,101,114, 32, 40,112,114,101, 41, 10, 9,105,102, 32,110,111,116, 32,115,101,108,102, 58, 99,104,101, 99,107, 95,112,117, 98,108,105, 99, 95, 97, 99, 99,101,115,115, 40, 41, 32,116,104,101,110, 10, 9, 9,114, 101,116,117,114,110, 10, 9,101,110,100, 10, 32,112,114,101, 32, 61, 32,112,114,101, 32,111,114, 32, 39, 39, 10, 32,108, 111, 99, 97,108, 32,110,115,112, 97, 99,101, 32, 61, 32,103, 101,116,110, 97,109,101,115,112, 97, 99,101, 40, 99,108, 97, 115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114, 114, 41, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32, 119,104,105,108,101, 32,115,101,108,102, 91,105, 93, 32,100, 111, 10, 32, 9,105,102, 32,115,101,108,102, 46,108,110, 97, 109,101,115, 91,105, 93, 32, 97,110,100, 32,115,101,108,102, 46,108,110, 97,109,101,115, 91,105, 93, 32,126, 61, 32, 34, 34, 32,116,104,101,110, 10, 9, 10, 9, 9,111,117,116,112, 117,116, 40,112,114,101, 46, 46, 39,116,111,108,117, 97, 95, 99,111,110,115,116, 97,110,116, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101,108,102, 46,108,110, 97,109, 101,115, 91,105, 93, 46, 46, 39, 34, 44, 39, 46, 46,110,115, 112, 97, 99,101, 46, 46,115,101,108,102, 91,105, 93, 46, 46, 39, 41, 59, 39, 41, 10, 9,101,110,100, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 80,114,105,110,116, 32,109,101,116,104,111, 100, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115, 115, 69,110,117,109,101,114, 97,116,101, 58,112,114,105,110, 116, 32, 40,105,100,101,110,116, 44, 99,108,111,115,101, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 69,110,117,109,101,114, 97,116,101,123, 34, 41, 10, 32, 112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 110, 97,109,101, 32, 61, 32, 34, 46, 46,115,101,108,102, 46, 110, 97,109,101, 41, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105,108,101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10, 32, 32,112,114,105,110,116, 40,105,100, 101,110,116, 46, 46, 34, 32, 39, 34, 46, 46,115,101,108,102, 91,105, 93, 46, 46, 34, 39, 40, 34, 46, 46,115,101,108,102, 46,108,110, 97,109,101,115, 91,105, 93, 46, 46, 34, 41, 44, 34, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101, 110,100, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34,125, 34, 46, 46, 99,108,111,115,101, 41, 10,101, 110,100, 10, 10, 45, 45, 32, 73,110,116,101,114,110, 97,108, 32, 99,111,110,115,116,114,117, 99,116,111,114, 10,102,117, 110, 99,116,105,111,110, 32, 95, 69,110,117,109,101,114, 97, 116,101, 32, 40,116, 44,118, 97,114,110, 97,109,101, 41, 10, 32,115,101,116,109,101,116, 97,116, 97, 98,108,101, 40,116, 44, 99,108, 97,115,115, 69,110,117,109,101,114, 97,116,101, 41, 10, 32, 97,112,112,101,110,100, 40,116, 41, 10, 32, 97, 112,112,101,110,100,101,110,117,109, 40,116, 41, 10, 9, 32, 105,102, 32,118, 97,114,110, 97,109,101, 32, 97,110,100, 32, 118, 97,114,110, 97,109,101, 32,126, 61, 32, 34, 34, 32,116, 104,101,110, 10, 9, 9,105,102, 32,116, 46,110, 97,109,101, 32,126, 61, 32, 34, 34, 32,116,104,101,110, 10, 9, 9, 9, 86, 97,114,105, 97, 98,108,101, 40,116, 46,110, 97,109,101, 46, 46, 34, 32, 34, 46, 46,118, 97,114,110, 97,109,101, 41, 10, 9, 9,101,108,115,101, 10, 9, 9, 9,108,111, 99, 97, 108, 32,110,115, 32, 61, 32,103,101,116, 99,117,114,114,110, 97,109,101,115,112, 97, 99,101, 40, 41, 10, 9, 9, 9,119, 97,114,110,105,110,103, 40, 34, 86, 97,114,105, 97, 98,108, 101, 32, 34, 46, 46,110,115, 46, 46,118, 97,114,110, 97,109, 101, 46, 46, 34, 32,111,102, 32,116,121,112,101, 32, 60, 97, 110,111,110,121,109,111,117,115, 32,101,110,117,109, 62, 32, 105,115, 32,100,101, 99,108, 97,114,101,100, 32, 97,115, 32, 114,101, 97,100, 45,111,110,108,121, 34, 41, 10, 9, 9, 9, 86, 97,114,105, 97, 98,108,101, 40, 34,116,111,108,117, 97, 95,114,101, 97,100,111,110,108,121, 32,105,110,116, 32, 34, 46, 46,118, 97,114,110, 97,109,101, 41, 10, 9, 9,101,110, 100, 10, 9,101,110,100, 10, 9, 32,108,111, 99, 97,108, 32, 112, 97,114,101,110,116, 32, 61, 32, 99,108, 97,115,115, 67, 111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 10, 9, 32,105,102, 32,112, 97,114,101,110,116, 32,116,104,101,110, 10, 9, 9,116, 46, 97, 99, 99,101,115,115, 32, 61, 32,112, 97,114,101,110,116, 46, 99,117,114,114, 95,109,101,109, 98, 101,114, 95, 97, 99, 99,101,115,115, 10, 9, 9,116, 46,103, 108,111, 98, 97,108, 95, 97, 99, 99,101,115,115, 32, 61, 32, 116, 58, 99,104,101, 99,107, 95,112,117, 98,108,105, 99, 95, 97, 99, 99,101,115,115, 40, 41, 10, 9, 32,101,110,100, 10, 114,101,116,117,114,110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32, 67,111,110,115,116,114,117, 99,116,111,114, 10, 45, 45, 32, 69,120,112,101, 99,116,115, 32, 97, 32,115,116,114, 105,110,103, 32,114,101,112,114,101,115,101,110,116,105,110, 103, 32,116,104,101, 32,101,110,117,109,101,114, 97,116,101, 32, 98,111,100,121, 10,102,117,110, 99,116,105,111,110, 32, 69,110,117,109,101,114, 97,116,101, 32, 40,110, 44, 98, 44, 118, 97,114,110, 97,109,101, 41, 10, 9, 98, 32, 61, 32,115, 116,114,105,110,103, 46,103,115,117, 98, 40, 98, 44, 32, 34, 44, 91, 37,115, 92,110, 93, 42,125, 34, 44, 32, 34, 92,110, 125, 34, 41, 32, 45, 45, 32,101,108,105,109,105,110, 97,116, 101, 32,108, 97,115,116, 32, 39, 44, 39, 10, 32,108,111, 99, 97,108, 32,116, 32, 61, 32,115,112,108,105,116, 40,115,116, 114,115,117, 98, 40, 98, 44, 50, 44, 45, 50, 41, 44, 39, 44, 39, 41, 32, 45, 45, 32,101,108,105,109,105,110, 97,116,101, 32, 98,114, 97, 99,101,115, 10, 32,108,111, 99, 97,108, 32, 105, 32, 61, 32, 49, 10, 32,108,111, 99, 97,108, 32,101, 32, 61, 32,123,110, 61, 48,125, 10, 32,119,104,105,108,101, 32, 116, 91,105, 93, 32,100,111, 10, 32, 32,108,111, 99, 97,108, 32,116,116, 32, 61, 32,115,112,108,105,116, 40,116, 91,105, 93, 44, 39, 61, 39, 41, 32, 32, 45, 45, 32,100,105,115, 99, 97,114,100, 32,105,110,105,116,105, 97,108, 32,118, 97,108, 117,101, 10, 32, 32,101, 46,110, 32, 61, 32,101, 46,110, 32, 43, 32, 49, 10, 32, 32,101, 91,101, 46,110, 93, 32, 61, 32, 116,116, 91, 49, 93, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32, 45, 45, 32,115,101,116, 32,108, 117, 97, 32,110, 97,109,101,115, 10, 32,105, 32, 32, 61, 32, 49, 10, 32,101, 46,108,110, 97,109,101,115, 32, 61, 32,123, 125, 10, 32,108,111, 99, 97,108, 32,110,115, 32, 61, 32,103, 101,116, 99,117,114,114,110, 97,109,101,115,112, 97, 99,101, 40, 41, 10, 32,119,104,105,108,101, 32,101, 91,105, 93, 32, 100,111, 10, 32, 32,108,111, 99, 97,108, 32,116, 32, 61, 32, 115,112,108,105,116, 40,101, 91,105, 93, 44, 39, 64, 39, 41, 10, 32, 32,101, 91,105, 93, 32, 61, 32,116, 91, 49, 93, 10, 9, 9,105,102, 32,110,111,116, 32,116, 91, 50, 93, 32,116, 104,101,110, 10, 9, 9, 32,116, 91, 50, 93, 32, 61, 32, 97, 112,112,108,121,114,101,110, 97,109,105,110,103, 40,116, 91, 49, 93, 41, 10, 9, 9,101,110,100, 10, 32, 32,101, 46,108, 110, 97,109,101,115, 91,105, 93, 32, 61, 32,116, 91, 50, 93, 32,111,114, 32,116, 91, 49, 93, 10, 32, 32, 95,103,108,111, 98, 97,108, 95,101,110,117,109,115, 91, 32,110,115, 46, 46, 101, 91,105, 93, 32, 93, 32, 61, 32, 40,110,115, 46, 46,101, 91,105, 93, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 9,101, 46,110, 97,109,101, 32, 61, 32, 110, 10, 9,105,102, 32,110, 32,126, 61, 32, 34, 34, 32,116, 104,101,110, 10, 9, 9, 84,121,112,101,100,101,102, 40, 34, 105,110,116, 32, 34, 46, 46,110, 41, 10, 9,101,110,100, 10, 32,114,101,116,117,114,110, 32, 95, 69,110,117,109,101,114, 97,116,101, 40,101, 44, 32,118, 97,114,110, 97,109,101, 41, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/enumerate.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32,100,101, 99,108, 97, 114, 97,116,105,111,110, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114,105,116,116,101,110, 32, 98,121, 32, 87, 97,108, 100,101,109, 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73,100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105, 115, 32, 99,111,100,101, 32,105,115, 32,102,114,101,101, 32, 115,111,102,116,119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32,114,101,100,105,115,116,114,105, 98,117,116,101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109,111,100,105, 102,121, 32,105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115, 111,102,116,119, 97,114,101, 32,112,114,111,118,105,100,101, 100, 32,104,101,114,101,117,110,100,101,114, 32,105,115, 32, 111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104, 101, 32, 97,117,116,104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98,108,105,103, 97,116,105,111,110, 32,116,111, 32, 112,114,111,118,105,100,101, 32,109, 97,105,110,116,101,110, 97,110, 99,101, 44, 32,115,117,112,112,111,114,116, 44, 32, 117,112,100, 97,116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,101,109,101,110,116,115, 44, 32,111,114, 32,109, 111,100,105,102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 45, 45, 32, 68,101, 99,108, 97,114, 97,116,105,111,110, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114,101, 115,101,110,116,115, 32,118, 97,114,105, 97, 98,108,101, 44, 32,102,117,110, 99,116,105,111,110, 44, 32,111,114, 32, 97, 114,103,117,109,101,110,116, 32,100,101, 99,108, 97,114, 97, 116,105,111,110, 46, 10, 45, 45, 32, 83,116,111,114,101,115, 32,116,104,101, 32,102,111,108,108,111,119,105,110,103, 32, 102,105,101,108,100,115, 58, 10, 45, 45, 32, 32,109,111,100, 32, 32, 61, 32,116,121,112,101, 32,109,111,100,105,102,105, 101,114,115, 10, 45, 45, 32, 32,116,121,112,101, 32, 61, 32, 116,121,112,101, 10, 45, 45, 32, 32,112,116,114, 32, 32, 61, 32, 34, 42, 34, 32,111,114, 32, 34, 38, 34, 44, 32,105,102, 32,114,101,112,114,101,115,101,110,116,105,110,103, 32, 97, 32,112,111,105,110,116,101,114, 32,111,114, 32, 97, 32,114, 101,102,101,114,101,110, 99,101, 10, 45, 45, 32, 32,110, 97, 109,101, 32, 61, 32,110, 97,109,101, 10, 45, 45, 32, 32,100, 105,109, 32, 32, 61, 32,100,105,109,101,110,115,105,111,110, 44, 32,105,102, 32, 97, 32,118,101, 99,116,111,114, 10, 45, 45, 32, 32,100,101,102, 32, 32, 61, 32,100,101,102, 97,117, 108,116, 32,118, 97,108,117,101, 44, 32,105,102, 32, 97,110, 121, 32, 40,111,110,108,121, 32,102,111,114, 32, 97,114,103, 117,109,101,110,116,115, 41, 10, 45, 45, 32, 32,114,101,116, 32, 32, 61, 32, 34, 42, 34, 32,111,114, 32, 34, 38, 34, 44, 32,105,102, 32,118, 97,108,117,101, 32,105,115, 32,116,111, 32, 98,101, 32,114,101,116,117,114,110,101,100, 32, 40,111, 110,108,121, 32,102,111,114, 32, 97,114,103,117,109,101,110, 116,115, 41, 10, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, 32, 61, 32,123, 10, 32,109,111,100, 32, 61, 32, 39, 39, 44, 10, 32,116,121,112,101, 32, 61, 32, 39, 39, 44, 10, 32,112,116,114, 32, 61, 32, 39, 39, 44, 10, 32, 110, 97,109,101, 32, 61, 32, 39, 39, 44, 10, 32,100,105,109, 32, 61, 32, 39, 39, 44, 10, 32,114,101,116, 32, 61, 32, 39, 39, 44, 10, 32,100,101,102, 32, 61, 32, 39, 39, 10,125, 10, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116,105,111, 110, 46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97, 115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, 10,115, 101,116,109,101,116, 97,116, 97, 98,108,101, 40, 99,108, 97, 115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, 44, 99, 108, 97,115,115, 70,101, 97,116,117,114,101, 41, 10, 10, 45, 45, 32, 67,114,101, 97,116,101, 32, 97,110, 32,117,110,105, 113,117,101, 32,118, 97,114,105, 97, 98,108,101, 32,110, 97, 109,101, 10,102,117,110, 99,116,105,111,110, 32, 99,114,101, 97,116,101, 95,118, 97,114,110, 97,109,101, 32, 40, 41, 10, 32,105,102, 32,110,111,116, 32, 95,118, 97,114,110,117,109, 98,101,114, 32,116,104,101,110, 32, 95,118, 97,114,110,117, 109, 98,101,114, 32, 61, 32, 48, 32,101,110,100, 10, 32, 95, 118, 97,114,110,117,109, 98,101,114, 32, 61, 32, 95,118, 97, 114,110,117,109, 98,101,114, 32, 43, 32, 49, 10, 32,114,101, 116,117,114,110, 32, 34,116,111,108,117, 97, 95,118, 97,114, 95, 34, 46, 46, 95,118, 97,114,110,117,109, 98,101,114, 10, 101,110,100, 10, 10, 45, 45, 32, 67,104,101, 99,107, 32,100, 101, 99,108, 97,114, 97,116,105,111,110, 32,110, 97,109,101, 10, 45, 45, 32, 73,116, 32, 97,108,115,111, 32,105,100,101, 110,116,105,102,105,101,115, 32,100,101,102, 97,117,108,116, 32,118, 97,108,117,101,115, 10,102,117,110, 99,116,105,111, 110, 32, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116, 105,111,110, 58, 99,104,101, 99,107,110, 97,109,101, 32, 40, 41, 10, 10, 32,105,102, 32,115,116,114,115,117, 98, 40,115, 101,108,102, 46,110, 97,109,101, 44, 49, 44, 49, 41, 32, 61, 61, 32, 39, 91, 39, 32, 97,110,100, 32,110,111,116, 32,102, 105,110,100,116,121,112,101, 40,115,101,108,102, 46,116,121, 112,101, 41, 32,116,104,101,110, 10, 32, 32,115,101,108,102, 46,110, 97,109,101, 32, 61, 32,115,101,108,102, 46,116,121, 112,101, 46, 46,115,101,108,102, 46,110, 97,109,101, 10, 32, 32,108,111, 99, 97,108, 32,109, 32, 61, 32,115,112,108,105, 116, 40,115,101,108,102, 46,109,111,100, 44, 39, 37,115, 37, 115, 42, 39, 41, 10, 32, 32,115,101,108,102, 46,116,121,112, 101, 32, 61, 32,109, 91,109, 46,110, 93, 10, 32, 32,115,101, 108,102, 46,109,111,100, 32, 61, 32, 99,111,110, 99, 97,116, 40,109, 44, 49, 44,109, 46,110, 45, 49, 41, 10, 32,101,110, 100, 10, 10, 32,108,111, 99, 97,108, 32,116, 32, 61, 32,115, 112,108,105,116, 40,115,101,108,102, 46,110, 97,109,101, 44, 39, 61, 39, 41, 10, 32,105,102, 32,116, 46,110, 61, 61, 50, 32,116,104,101,110, 10, 32, 32,115,101,108,102, 46,110, 97, 109,101, 32, 61, 32,116, 91, 49, 93, 10, 32, 32,115,101,108, 102, 46,100,101,102, 32, 61, 32,102,105,110,100, 95,101,110, 117,109, 95,118, 97,114, 40,116, 91,116, 46,110, 93, 41, 10, 32,101,110,100, 10, 10, 32,108,111, 99, 97,108, 32, 98, 44, 101, 44,100, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 101,108,102, 46,110, 97,109,101, 44, 34, 37, 91, 40, 46, 45, 41, 37, 93, 34, 41, 10, 32,105,102, 32, 98, 32,116,104,101, 110, 10, 32, 32,115,101,108,102, 46,110, 97,109,101, 32, 61, 32,115,116,114,115,117, 98, 40,115,101,108,102, 46,110, 97, 109,101, 44, 49, 44, 98, 45, 49, 41, 10, 32, 32,115,101,108, 102, 46,100,105,109, 32, 61, 32,102,105,110,100, 95,101,110, 117,109, 95,118, 97,114, 40,100, 41, 10, 32,101,110,100, 10, 10, 10, 32,105,102, 32,115,101,108,102, 46,116,121,112,101, 32,126, 61, 32, 39, 39, 32, 97,110,100, 32,115,101,108,102, 46,116,121,112,101, 32,126, 61, 32, 39,118,111,105,100, 39, 32, 97,110,100, 32,115,101,108,102, 46,110, 97,109,101, 32, 61, 61, 32, 39, 39, 32,116,104,101,110, 10, 32, 32,115,101, 108,102, 46,110, 97,109,101, 32, 61, 32, 99,114,101, 97,116, 101, 95,118, 97,114,110, 97,109,101, 40, 41, 10, 32,101,108, 115,101,105,102, 32,115,101,108,102, 46,107,105,110,100, 61, 61, 39,118, 97,114, 39, 32,116,104,101,110, 10, 32, 32,105, 102, 32,115,101,108,102, 46,116,121,112,101, 61, 61, 39, 39, 32, 97,110,100, 32,115,101,108,102, 46,110, 97,109,101,126, 61, 39, 39, 32,116,104,101,110, 10, 32, 32, 32,115,101,108, 102, 46,116,121,112,101, 32, 61, 32,115,101,108,102, 46,116, 121,112,101, 46, 46,115,101,108,102, 46,110, 97,109,101, 10, 32, 32, 32,115,101,108,102, 46,110, 97,109,101, 32, 61, 32, 99,114,101, 97,116,101, 95,118, 97,114,110, 97,109,101, 40, 41, 10, 32, 32,101,108,115,101,105,102, 32,102,105,110,100, 116,121,112,101, 40,115,101,108,102, 46,110, 97,109,101, 41, 32,116,104,101,110, 10, 32, 32, 32,105,102, 32,115,101,108, 102, 46,116,121,112,101, 61, 61, 39, 39, 32,116,104,101,110, 32,115,101,108,102, 46,116,121,112,101, 32, 61, 32,115,101, 108,102, 46,110, 97,109,101, 10, 32, 32, 32,101,108,115,101, 32,115,101,108,102, 46,116,121,112,101, 32, 61, 32,115,101, 108,102, 46,116,121,112,101, 46, 46, 39, 32, 39, 46, 46,115, 101,108,102, 46,110, 97,109,101, 32,101,110,100, 10, 32, 32, 32,115,101,108,102, 46,110, 97,109,101, 32, 61, 32, 99,114, 101, 97,116,101, 95,118, 97,114,110, 97,109,101, 40, 41, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32, 97,100,106,117,115,116, 32,116,121,112,101, 32,111,102, 32,115,116,114,105,110,103, 10, 32,105,102, 32,115,101,108, 102, 46,116,121,112,101, 32, 61, 61, 32, 39, 99,104, 97,114, 39, 32, 97,110,100, 32,115,101,108,102, 46,100,105,109, 32, 126, 61, 32, 39, 39, 32,116,104,101,110, 10, 9, 32,115,101, 108,102, 46,116,121,112,101, 32, 61, 32, 39, 99,104, 97,114, 42, 39, 10, 32,101,110,100, 10, 10, 9,105,102, 32,115,101, 108,102, 46,107,105,110,100, 32, 97,110,100, 32,115,101,108, 102, 46,107,105,110,100, 32, 61, 61, 32, 39,118, 97,114, 39, 32,116,104,101,110, 10, 9, 9,115,101,108,102, 46,110, 97, 109,101, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,115,101,108,102, 46,110, 97,109,101, 44, 32, 34, 58, 46, 42, 36, 34, 44, 32, 34, 34, 41, 32, 45, 45, 32, 63, 63, 63, 10, 9,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 67,104,101, 99,107, 32,100,101, 99,108, 97,114, 97,116,105, 111,110, 32,116,121,112,101, 10, 45, 45, 32, 83,117, 98,115, 116,105,116,117,116,101,115, 32,116,121,112,101,100,101,102, 39,115, 46, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, 58, 99,104,101, 99,107,116,121,112,101, 32, 40, 41, 10, 10, 32, 45, 45, 32, 99,104,101, 99,107, 32,105,102, 32,116,104,101, 114,101, 32,105,115, 32, 97, 32,112,111,105,110,116,101,114, 32,116,111, 32, 98, 97,115,105, 99, 32,116,121,112,101, 10, 32,108,111, 99, 97,108, 32, 98, 97,115,105, 99, 32, 61, 32, 105,115, 98, 97,115,105, 99, 40,115,101,108,102, 46,116,121, 112,101, 41, 10, 32,105,102, 32,115,101,108,102, 46,107,105, 110,100, 32, 61, 61, 32, 39,102,117,110, 99, 39, 32, 97,110, 100, 32, 98, 97,115,105, 99, 61, 61, 39,110,117,109, 98,101, 114, 39, 32, 97,110,100, 32,115,116,114,105,110,103, 46,102, 105,110,100, 40,115,101,108,102, 46,112,116,114, 44, 32, 34, 37, 42, 34, 41, 32,116,104,101,110, 10, 32, 9,115,101,108, 102, 46,116,121,112,101, 32, 61, 32, 39, 95,117,115,101,114, 100, 97,116, 97, 39, 10, 32, 9,115,101,108,102, 46,112,116, 114, 32, 61, 32, 34, 34, 10, 32,101,110,100, 10, 32,105,102, 32, 98, 97,115,105, 99, 32, 97,110,100, 32,115,101,108,102, 46,112,116,114,126, 61, 39, 39, 32,116,104,101,110, 10, 32, 32,115,101,108,102, 46,114,101,116, 32, 61, 32,115,101,108, 102, 46,112,116,114, 10, 32, 32,115,101,108,102, 46,112,116, 114, 32, 61, 32,110,105,108, 10, 32, 32,105,102, 32,105,115, 98, 97,115,105, 99, 40,115,101,108,102, 46,116,121,112,101, 41, 32, 61, 61, 32, 39,110,117,109, 98,101,114, 39, 32,116, 104,101,110, 10, 32, 32, 9,115,101,108,102, 46,114,101,116, 117,114,110, 95,117,115,101,114,100, 97,116, 97, 32, 61, 32, 116,114,117,101, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32, 99,104,101, 99,107, 32,105,102, 32, 116,104,101,114,101, 32,105,115, 32, 97,114,114, 97,121, 32, 116,111, 32, 98,101, 32,114,101,116,117,114,110,101,100, 10, 32,105,102, 32,115,101,108,102, 46,100,105,109,126, 61, 39, 39, 32, 97,110,100, 32,115,101,108,102, 46,114,101,116,126, 61, 39, 39, 32,116,104,101,110, 10, 32, 32, 32,101,114,114, 111,114, 40, 39, 35,105,110,118, 97,108,105,100, 32,112, 97, 114, 97,109,101,116,101,114, 58, 32, 99, 97,110,110,111,116, 32,114,101,116,117,114,110, 32, 97,110, 32, 97,114,114, 97, 121, 32,111,102, 32,118, 97,108,117,101,115, 39, 41, 10, 32, 101,110,100, 10, 32, 45, 45, 32,114,101,115,116,111,114,101, 32, 39,118,111,105,100, 42, 39, 32, 97,110,100, 32, 39,115, 116,114,105,110,103, 42, 39, 10, 32,105,102, 32,115,101,108, 102, 46,116,121,112,101, 32, 61, 61, 32, 39, 95,117,115,101, 114,100, 97,116, 97, 39, 32,116,104,101,110, 32,115,101,108, 102, 46,116,121,112,101, 32, 61, 32, 39,118,111,105,100, 42, 39, 10, 32,101,108,115,101,105,102, 32,115,101,108,102, 46, 116,121,112,101, 32, 61, 61, 32, 39, 95, 99,115,116,114,105, 110,103, 39, 32,116,104,101,110, 32,115,101,108,102, 46,116, 121,112,101, 32, 61, 32, 39, 99,104, 97,114, 42, 39, 10, 32, 101,108,115,101,105,102, 32,115,101,108,102, 46,116,121,112, 101, 32, 61, 61, 32, 39, 95,108,115,116, 97,116,101, 39, 32, 116,104,101,110, 32,115,101,108,102, 46,116,121,112,101, 32, 61, 32, 39,108,117, 97, 95, 83,116, 97,116,101, 42, 39, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,114,101,115,111,108, 118,101, 32,116,121,112,101,115, 32,105,110,115,105,100,101, 32,116,104,101, 32,116,101,109,112,108, 97,116,101,115, 10, 32,105,102, 32,115,101,108,102, 46,116,121,112,101, 32,116, 104,101,110, 10, 9, 32,115,101,108,102, 46,116,121,112,101, 32, 61, 32,114,101,115,111,108,118,101, 95,116,101,109,112, 108, 97,116,101, 95,116,121,112,101,115, 40,115,101,108,102, 46,116,121,112,101, 41, 10, 32,101,110,100, 10, 10, 45, 45, 10, 45, 45, 32, 45, 45, 32,105,102, 32,114,101,116,117,114, 110,105,110,103, 32,118, 97,108,117,101, 44, 32, 97,117,116, 111,109, 97,116,105, 99, 97,108,108,121, 32,115,101,116, 32, 100,101,102, 97,117,108,116, 32,118, 97,108,117,101, 10, 45, 45, 32,105,102, 32,115,101,108,102, 46,114,101,116, 32,126, 61, 32, 39, 39, 32, 97,110,100, 32,115,101,108,102, 46,100, 101,102, 32, 61, 61, 32, 39, 39, 32,116,104,101,110, 10, 45, 45, 32, 32,115,101,108,102, 46,100,101,102, 32, 61, 32, 39, 48, 39, 10, 45, 45, 32,101,110,100, 10, 45, 45, 10, 10,101, 110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,114,101, 115,111,108,118,101, 95,116,101,109,112,108, 97,116,101, 95, 116,121,112,101,115, 40,116,121,112,101, 41, 10, 10, 9,105, 102, 32,105,115, 98, 97,115,105, 99, 40,116,121,112,101, 41, 32,116,104,101,110, 10, 9, 9,114,101,116,117,114,110, 32, 116,121,112,101, 10, 9,101,110,100, 10, 9,108,111, 99, 97, 108, 32, 98, 44, 95, 44,109, 32, 61, 32,115,116,114,105,110, 103, 46,102,105,110,100, 40,116,121,112,101, 44, 32, 34, 40, 37, 98, 60, 62, 41, 34, 41, 10, 9,105,102, 32, 98, 32,116, 104,101,110, 10, 10, 9, 9,109, 32, 61, 32,115,112,108,105, 116, 95, 99, 95,116,111,107,101,110,115, 40,115,116,114,105, 110,103, 46,115,117, 98, 40,109, 44, 32, 50, 44, 32, 45, 50, 41, 44, 32, 34, 44, 34, 41, 10, 9, 9,102,111,114, 32,105, 61, 49, 44, 32,116, 97, 98,108,101, 46,103,101,116,110, 40, 109, 41, 32,100,111, 10, 9, 9, 9,109, 91,105, 93, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,109, 91, 105, 93, 44, 34, 37,115, 42, 40, 91, 37, 42, 38, 93, 41, 34, 44, 32, 34, 37, 49, 34, 41, 10, 9, 9, 9,105,102, 32,110, 111,116, 32,105,115, 98, 97,115,105, 99, 40,109, 91,105, 93, 41, 32,116,104,101,110, 10, 9, 9, 9, 9,105,102, 32,110, 111,116, 32,105,115,101,110,117,109, 40,109, 91,105, 93, 41, 32,116,104,101,110, 32, 95, 44, 32,109, 91,105, 93, 32, 61, 32, 97,112,112,108,121,116,121,112,101,100,101,102, 40, 34, 34, 44, 32,109, 91,105, 93, 41, 32,101,110,100, 10, 9, 9, 9, 9,109, 91,105, 93, 32, 61, 32,102,105,110,100,116,121, 112,101, 40,109, 91,105, 93, 41, 32,111,114, 32,109, 91,105, 93, 10, 9, 9, 9, 9,109, 91,105, 93, 32, 61, 32,114,101, 115,111,108,118,101, 95,116,101,109,112,108, 97,116,101, 95, 116,121,112,101,115, 40,109, 91,105, 93, 41, 10, 9, 9, 9, 101,110,100, 10, 9, 9,101,110,100, 10, 10, 9, 9,108,111, 99, 97,108, 32, 98, 44,105, 10, 9, 9,116,121,112,101, 44, 98, 44,105, 32, 61, 32, 98,114,101, 97,107, 95,116,101,109, 112,108, 97,116,101, 40,116,121,112,101, 41, 10, 45, 45,112, 114,105,110,116, 40, 34, 99,111,110, 99, 97,116, 32,105,115, 32, 34, 44, 99,111,110, 99, 97,116, 40,109, 44, 32, 49, 44, 32,109, 46,110, 41, 41, 10, 9, 9,108,111, 99, 97,108, 32, 116,101,109,112,108, 97,116,101, 95,112, 97,114,116, 32, 61, 32, 34, 60, 34, 46, 46, 99,111,110, 99, 97,116, 40,109, 44, 32, 49, 44, 32,109, 46,110, 44, 32, 34, 44, 34, 41, 46, 46, 34, 62, 34, 10, 9, 9,116,121,112,101, 32, 61, 32,114,101, 98,117,105,108,100, 95,116,101,109,112,108, 97,116,101, 40, 116,121,112,101, 44, 32, 98, 44, 32,116,101,109,112,108, 97, 116,101, 95,112, 97,114,116, 41, 10, 9, 9,116,121,112,101, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40, 116,121,112,101, 44, 32, 34, 62, 62, 34, 44, 32, 34, 62, 32, 62, 34, 41, 10, 9,101,110,100, 10, 9,114,101,116,117,114, 110, 32,116,121,112,101, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32, 98,114,101, 97,107, 95,116,101,109, 112,108, 97,116,101, 40,115, 41, 10, 9,108,111, 99, 97,108, 32, 98, 44,101, 44,116,105,109,112,108, 32, 61, 32,115,116, 114,105,110,103, 46,102,105,110,100, 40,115, 44, 32, 34, 40, 37, 98, 60, 62, 41, 34, 41, 10, 9,105,102, 32,116,105,109, 112,108, 32,116,104,101,110, 10, 9, 9,115, 32, 61, 32,115, 116,114,105,110,103, 46,103,115,117, 98, 40,115, 44, 32, 34, 37, 98, 60, 62, 34, 44, 32, 34, 34, 41, 10, 9, 9,114,101, 116,117,114,110, 32,115, 44, 32, 98, 44, 32,116,105,109,112, 108, 10, 9,101,108,115,101, 10, 9, 9,114,101,116,117,114, 110, 32,115, 44, 32, 48, 44, 32,110,105,108, 10, 9,101,110, 100, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,114,101, 98,117,105,108,100, 95,116,101,109,112,108, 97, 116,101, 40,115, 44, 32, 98, 44, 32,116,105,109,112,108, 41, 10, 10, 9,105,102, 32, 98, 32, 61, 61, 32, 48, 32,116,104, 101,110, 10, 9, 9,114,101,116,117,114,110, 32,115, 10, 9, 101,110,100, 10, 10, 9,114,101,116,117,114,110, 32,115,116, 114,105,110,103, 46,115,117, 98, 40,115, 44, 32, 49, 44, 32, 98, 45, 49, 41, 46, 46,116,105,109,112,108, 46, 46,115,116, 114,105,110,103, 46,115,117, 98, 40,115, 44, 32, 98, 44, 32, 45, 49, 41, 10,101,110,100, 10, 10, 45, 45, 32, 80,114,105, 110,116, 32,109,101,116,104,111,100, 10,102,117,110, 99,116, 105,111,110, 32, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, 58,112,114,105,110,116, 32, 40,105,100, 101,110,116, 44, 99,108,111,115,101, 41, 10, 32,112,114,105, 110,116, 40,105,100,101,110,116, 46, 46, 34, 68,101, 99,108, 97,114, 97,116,105,111,110,123, 34, 41, 10, 32,112,114,105, 110,116, 40,105,100,101,110,116, 46, 46, 34, 32,109,111,100, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,109,111, 100, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,116,121,112,101, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,116,121,112,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40, 105,100,101,110,116, 46, 46, 34, 32,112,116,114, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,112,116,114, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100, 101,110,116, 46, 46, 34, 32,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101, 110,116, 46, 46, 34, 32,100,105,109, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,100,105,109, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,100,101,102, 32, 32, 61, 32, 39, 34, 46, 46, 115,101,108,102, 46,100,101,102, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,114,101,116, 32, 32, 61, 32, 39, 34, 46, 46,115,101, 108,102, 46,114,101,116, 46, 46, 34, 39, 44, 34, 41, 10, 32, 112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34,125, 34, 46, 46, 99,108,111,115,101, 41, 10,101,110,100, 10, 10, 45, 45, 32, 99,104,101, 99,107, 32,105,102, 32, 97,114,114, 97,121, 32,111,102, 32,118, 97,108,117,101,115, 32, 97,114, 101, 32,114,101,116,117,114,110,101,100, 32,116,111, 32, 76, 117, 97, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97, 115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, 58,114, 101,113,117,105,114,101, 99,111,108,108,101, 99,116,105,111, 110, 32, 40,116, 41, 10, 32,105,102, 32,115,101,108,102, 46, 109,111,100, 32,126, 61, 32, 39, 99,111,110,115,116, 39, 32, 97,110,100, 10, 9, 32, 32, 32, 32,115,101,108,102, 46,100, 105,109, 32, 97,110,100, 32,115,101,108,102, 46,100,105,109, 32,126, 61, 32, 39, 39, 32, 97,110,100, 10, 9, 9, 9, 9, 32,110,111,116, 32,105,115, 98, 97,115,105, 99, 40,115,101, 108,102, 46,116,121,112,101, 41, 32, 97,110,100, 10, 9, 9, 9, 9, 32,115,101,108,102, 46,112,116,114, 32, 61, 61, 32, 39, 39, 32, 97,110,100, 32,115,101,108,102, 58, 99,104,101, 99,107, 95,112,117, 98,108,105, 99, 95, 97, 99, 99,101,115, 115, 40, 41, 32,116,104,101,110, 10, 9, 9,108,111, 99, 97, 108, 32,116,121,112,101, 32, 61, 32,103,115,117, 98, 40,115, 101,108,102, 46,116,121,112,101, 44, 34, 37,115, 42, 99,111, 110,115,116, 37,115, 43, 34, 44, 34, 34, 41, 10, 9, 9,116, 91,116,121,112,101, 93, 32, 61, 32, 34,116,111,108,117, 97, 95, 99,111,108,108,101, 99,116, 95, 34, 32, 46, 46, 32, 99, 108,101, 97,110, 95,116,101,109,112,108, 97,116,101, 40,116, 121,112,101, 41, 10, 9, 9,114,101,116,117,114,110, 32,116, 114,117,101, 10, 9,101,110,100, 10, 9,114,101,116,117,114, 110, 32,102, 97,108,115,101, 10,101,110,100, 10, 10, 45, 45, 32,100,101, 99,108, 97,114,101, 32,116, 97,103, 10,102,117, 110, 99,116,105,111,110, 32, 99,108, 97,115,115, 68,101, 99, 108, 97,114, 97,116,105,111,110, 58,100,101, 99,108,116,121, 112,101, 32, 40, 41, 10, 10, 9,115,101,108,102, 46,116,121, 112,101, 32, 61, 32,116,121,112,101,118, 97,114, 40,115,101, 108,102, 46,116,121,112,101, 41, 10, 9,105,102, 32,115,116, 114,102,105,110,100, 40,115,101,108,102, 46,109,111,100, 44, 39, 99,111,110,115,116, 39, 41, 32,116,104,101,110, 10, 9, 9,115,101,108,102, 46,116,121,112,101, 32, 61, 32, 39, 99, 111,110,115,116, 32, 39, 46, 46,115,101,108,102, 46,116,121, 112,101, 10, 9, 9,115,101,108,102, 46,109,111,100, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46,109,111,100, 44, 39, 99,111,110,115,116, 37,115, 42, 39, 44, 39, 39, 41, 10, 9,101,110,100, 10,101,110,100, 10, 10, 10, 45, 45, 32,111, 117,116,112,117,116, 32,116,121,112,101, 32, 99,104,101, 99, 107,105,110,103, 10,102,117,110, 99,116,105,111,110, 32, 99, 108, 97,115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, 58,111,117,116, 99,104,101, 99,107,116,121,112,101, 32, 40, 110, 97,114,103, 41, 10, 32,108,111, 99, 97,108, 32,100,101, 102, 10, 32,108,111, 99, 97,108, 32,116, 32, 61, 32,105,115, 98, 97,115,105, 99, 40,115,101,108,102, 46,116,121,112,101, 41, 10, 32,105,102, 32,115,101,108,102, 46,100,101,102,126, 61, 39, 39, 32,116,104,101,110, 10, 32, 32,100,101,102, 32, 61, 32, 49, 10, 32,101,108,115,101, 10, 32, 32,100,101,102, 32, 61, 32, 48, 10, 32,101,110,100, 10, 32,105,102, 32,115, 101,108,102, 46,100,105,109, 32,126, 61, 32, 39, 39, 32,116, 104,101,110, 10, 9, 45, 45,105,102, 32,116, 61, 61, 39,115, 116,114,105,110,103, 39, 32,116,104,101,110, 10, 9, 45, 45, 9,114,101,116,117,114,110, 32, 39,116,111,108,117, 97, 95, 105,115,115,116,114,105,110,103, 97,114,114, 97,121, 40,116, 111,108,117, 97, 95, 83, 44, 39, 46, 46,110, 97,114,103, 46, 46, 39, 44, 39, 46, 46,100,101,102, 46, 46, 39, 44, 38,116, 111,108,117, 97, 95,101,114,114, 41, 39, 10, 9, 45, 45,101, 108,115,101, 10, 9,114,101,116,117,114,110, 32, 39, 33,116, 111,108,117, 97, 95,105,115,116, 97, 98,108,101, 40,116,111, 108,117, 97, 95, 83, 44, 39, 46, 46,110, 97,114,103, 46, 46, 39, 44, 48, 44, 38,116,111,108,117, 97, 95,101,114,114, 41, 39, 10, 32, 9, 45, 45,101,110,100, 10, 32,101,108,115,101, 105,102, 32,116, 32,116,104,101,110, 10, 9,114,101,116,117, 114,110, 32, 39, 33,116,111,108,117, 97, 95,105,115, 39, 46, 46,116, 46, 46, 39, 40,116,111,108,117, 97, 95, 83, 44, 39, 46, 46,110, 97,114,103, 46, 46, 39, 44, 39, 46, 46,100,101, 102, 46, 46, 39, 44, 38,116,111,108,117, 97, 95,101,114,114, 41, 39, 10, 32,101,108,115,101, 10, 32, 32,108,111, 99, 97, 108, 32,105,115, 95,102,117,110, 99, 32, 61, 32,103,101,116, 95,105,115, 95,102,117,110, 99,116,105,111,110, 40,115,101, 108,102, 46,116,121,112,101, 41, 10, 32, 32,105,102, 32,115, 101,108,102, 46,112,116,114, 32, 61, 61, 32, 39, 38, 39, 32, 111,114, 32,115,101,108,102, 46,112,116,114, 32, 61, 61, 32, 39, 39, 32,116,104,101,110, 10, 32, 32, 9,114,101,116,117, 114,110, 32, 39, 40,116,111,108,117, 97, 95,105,115,118, 97, 108,117,101,110,105,108, 40,116,111,108,117, 97, 95, 83, 44, 39, 46, 46,110, 97,114,103, 46, 46, 39, 44, 38,116,111,108, 117, 97, 95,101,114,114, 41, 32,124,124, 32, 33, 39, 46, 46, 105,115, 95,102,117,110, 99, 46, 46, 39, 40,116,111,108,117, 97, 95, 83, 44, 39, 46, 46,110, 97,114,103, 46, 46, 39, 44, 34, 39, 46, 46,115,101,108,102, 46,116,121,112,101, 46, 46, 39, 34, 44, 39, 46, 46,100,101,102, 46, 46, 39, 44, 38,116, 111,108,117, 97, 95,101,114,114, 41, 41, 39, 10, 32, 32,101, 108,115,101, 10, 9,114,101,116,117,114,110, 32, 39, 33, 39, 46, 46,105,115, 95,102,117,110, 99, 46, 46, 39, 40,116,111, 108,117, 97, 95, 83, 44, 39, 46, 46,110, 97,114,103, 46, 46, 39, 44, 34, 39, 46, 46,115,101,108,102, 46,116,121,112,101, 46, 46, 39, 34, 44, 39, 46, 46,100,101,102, 46, 46, 39, 44, 38,116,111,108,117, 97, 95,101,114,114, 41, 39, 10, 32, 32, 101,110,100, 10, 32,101,110,100, 10,101,110,100, 10, 10,102, 117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, 58, 98,117,105,108,100, 100,101, 99,108, 97,114, 97,116,105,111,110, 32, 40,110, 97, 114,103, 44, 32, 99,112,108,117,115,112,108,117,115, 41, 10, 32,108,111, 99, 97,108, 32, 97,114,114, 97,121, 32, 61, 32, 115,101,108,102, 46,100,105,109, 32,126, 61, 32, 39, 39, 32, 97,110,100, 32,116,111,110,117,109, 98,101,114, 40,115,101, 108,102, 46,100,105,109, 41, 61, 61,110,105,108, 10, 9,108, 111, 99, 97,108, 32,108,105,110,101, 32, 61, 32, 34, 34, 10, 32,108,111, 99, 97,108, 32,112,116,114, 32, 61, 32, 39, 39, 10, 32,108,111, 99, 97,108, 32,109,111,100, 10, 32,108,111, 99, 97,108, 32,116,121,112,101, 32, 61, 32,115,101,108,102, 46,116,121,112,101, 10, 32,108,111, 99, 97,108, 32,110, 99, 116,121,112,101, 32, 61, 32,103,115,117, 98, 40,115,101,108, 102, 46,116,121,112,101, 44, 39, 99,111,110,115,116, 37,115, 43, 39, 44, 39, 39, 41, 10, 32,105,102, 32,115,101,108,102, 46,100,105,109, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10, 9, 32,116,121,112,101, 32, 61, 32,103,115,117, 98, 40, 115,101,108,102, 46,116,121,112,101, 44, 39, 99,111,110,115, 116, 37,115, 43, 39, 44, 39, 39, 41, 32, 32, 45, 45, 32,101, 108,105,109,105,110, 97,116,101,115, 32, 99,111,110,115,116, 32,109,111,100,105,102,105,101,114, 32,102,111,114, 32, 97, 114,114, 97,121,115, 10, 32,101,110,100, 10, 32,105,102, 32, 115,101,108,102, 46,112,116,114,126, 61, 39, 39, 32, 97,110, 100, 32,110,111,116, 32,105,115, 98, 97,115,105, 99, 40,116, 121,112,101, 41, 32,116,104,101,110, 32,112,116,114, 32, 61, 32, 39, 42, 39, 32,101,110,100, 10, 32,108,105,110,101, 32, 61, 32, 99,111,110, 99, 97,116,112, 97,114, 97,109, 40,108, 105,110,101, 44, 34, 32, 34, 44,115,101,108,102, 46,109,111, 100, 44,116,121,112,101, 44,112,116,114, 41, 10, 32,105,102, 32, 97,114,114, 97,121, 32,116,104,101,110, 10, 32, 32,108, 105,110,101, 32, 61, 32, 99,111,110, 99, 97,116,112, 97,114, 97,109, 40,108,105,110,101, 44, 39, 42, 39, 41, 10, 32,101, 110,100, 10, 32,108,105,110,101, 32, 61, 32, 99,111,110, 99, 97,116,112, 97,114, 97,109, 40,108,105,110,101, 44,115,101, 108,102, 46,110, 97,109,101, 41, 10, 32,105,102, 32,115,101, 108,102, 46,100,105,109, 32,126, 61, 32, 39, 39, 32,116,104, 101,110, 10, 32, 32,105,102, 32,116,111,110,117,109, 98,101, 114, 40,115,101,108,102, 46,100,105,109, 41,126, 61,110,105, 108, 32,116,104,101,110, 10, 32, 32, 32,108,105,110,101, 32, 61, 32, 99,111,110, 99, 97,116,112, 97,114, 97,109, 40,108, 105,110,101, 44, 39, 91, 39, 44,115,101,108,102, 46,100,105, 109, 44, 39, 93, 59, 39, 41, 10, 32, 32,101,108,115,101, 10, 9,105,102, 32, 99,112,108,117,115,112,108,117,115, 32,116, 104,101,110, 10, 9, 9,108,105,110,101, 32, 61, 32, 99,111, 110, 99, 97,116,112, 97,114, 97,109, 40,108,105,110,101, 44, 39, 32, 61, 32, 77,116,111,108,117, 97, 95,110,101,119, 95, 100,105,109, 40, 39, 44,116,121,112,101, 44,112,116,114, 44, 39, 44, 32, 39, 46, 46,115,101,108,102, 46,100,105,109, 46, 46, 39, 41, 59, 39, 41, 10, 9,101,108,115,101, 10, 9, 9, 108,105,110,101, 32, 61, 32, 99,111,110, 99, 97,116,112, 97, 114, 97,109, 40,108,105,110,101, 44, 39, 32, 61, 32, 40, 39, 44,116,121,112,101, 44,112,116,114, 44, 39, 42, 41, 39, 44, 10, 9, 9, 39,109, 97,108,108,111, 99, 40, 40, 39, 44,115, 101,108,102, 46,100,105,109, 44, 39, 41, 42,115,105,122,101, 111,102, 40, 39, 44,116,121,112,101, 44,112,116,114, 44, 39, 41, 41, 59, 39, 41, 10, 9,101,110,100, 10, 32, 32,101,110, 100, 10, 32,101,108,115,101, 10, 32, 32,108,111, 99, 97,108, 32,116, 32, 61, 32,105,115, 98, 97,115,105, 99, 40,116,121, 112,101, 41, 10, 32, 32,108,105,110,101, 32, 61, 32, 99,111, 110, 99, 97,116,112, 97,114, 97,109, 40,108,105,110,101, 44, 39, 32, 61, 32, 39, 41, 10, 32, 32,105,102, 32,116, 32, 61, 61, 32, 39,115,116, 97,116,101, 39, 32,116,104,101,110, 10, 32, 32, 9,108,105,110,101, 32, 61, 32, 99,111,110, 99, 97, 116,112, 97,114, 97,109, 40,108,105,110,101, 44, 32, 39,116, 111,108,117, 97, 95, 83, 59, 39, 41, 10, 32, 32,101,108,115, 101, 10, 32, 32, 9, 45, 45,112,114,105,110,116, 40, 34,116, 32,105,115, 32, 34, 46, 46,116,111,115,116,114,105,110,103, 40,116, 41, 46, 46, 34, 44, 32,112,116,114, 32,105,115, 32, 34, 46, 46,116,111,115,116,114,105,110,103, 40,115,101,108, 102, 46,112,116,114, 41, 41, 10, 32, 32, 9,105,102, 32,116, 32, 61, 61, 32, 39,110,117,109, 98,101,114, 39, 32, 97,110, 100, 32,115,116,114,105,110,103, 46,102,105,110,100, 40,115, 101,108,102, 46,112,116,114, 44, 32, 34, 37, 42, 34, 41, 32, 116,104,101,110, 10, 32, 32, 9, 9,116, 32, 61, 32, 39,117, 115,101,114,100, 97,116, 97, 39, 10, 32, 32, 9,101,110,100, 10, 9,105,102, 32,110,111,116, 32,116, 32, 97,110,100, 32, 112,116,114, 61, 61, 39, 39, 32,116,104,101,110, 32,108,105, 110,101, 32, 61, 32, 99,111,110, 99, 97,116,112, 97,114, 97, 109, 40,108,105,110,101, 44, 39, 42, 39, 41, 32,101,110,100, 10, 9,108,105,110,101, 32, 61, 32, 99,111,110, 99, 97,116, 112, 97,114, 97,109, 40,108,105,110,101, 44, 39, 40, 40, 39, 44,115,101,108,102, 46,109,111,100, 44,116,121,112,101, 41, 10, 9,105,102, 32,110,111,116, 32,116, 32,116,104,101,110, 10, 9, 9,108,105,110,101, 32, 61, 32, 99,111,110, 99, 97, 116,112, 97,114, 97,109, 40,108,105,110,101, 44, 39, 42, 39, 41, 10, 9,101,110,100, 10, 9,108,105,110,101, 32, 61, 32, 99,111,110, 99, 97,116,112, 97,114, 97,109, 40,108,105,110, 101, 44, 39, 41, 32, 39, 41, 10, 9,105,102, 32,105,115,101, 110,117,109, 40,110, 99,116,121,112,101, 41, 32,116,104,101, 110, 10, 9, 9,108,105,110,101, 32, 61, 32, 99,111,110, 99, 97,116,112, 97,114, 97,109, 40,108,105,110,101, 44, 39, 40, 105,110,116, 41, 32, 39, 41, 10, 9,101,110,100, 10, 9,108, 111, 99, 97,108, 32,100,101,102, 32, 61, 32, 48, 10, 9,105, 102, 32,115,101,108,102, 46,100,101,102, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10, 9, 9,100,101,102, 32, 61, 32, 115,101,108,102, 46,100,101,102, 10, 9, 9,105,102, 32, 40, 112,116,114, 32, 61, 61, 32, 39, 39, 32,111,114, 32,115,101, 108,102, 46,112,116,114, 32, 61, 61, 32, 39, 38, 39, 41, 32, 97,110,100, 32,110,111,116, 32,116, 32,116,104,101,110, 10, 9, 9, 9,100,101,102, 32, 61, 32, 34, 40,118,111,105,100, 42, 41, 38, 40, 99,111,110,115,116, 32, 34, 46, 46,116,121, 112,101, 46, 46, 34, 41, 34, 46, 46,100,101,102, 10, 9, 9, 101,110,100, 10, 9,101,110,100, 10, 9,105,102, 32,116, 32, 116,104,101,110, 10, 9, 9,108,105,110,101, 32, 61, 32, 99, 111,110, 99, 97,116,112, 97,114, 97,109, 40,108,105,110,101, 44, 39,116,111,108,117, 97, 95,116,111, 39, 46, 46,116, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 39, 44,110, 97,114, 103, 44, 39, 44, 39, 44,100,101,102, 44, 39, 41, 41, 59, 39, 41, 10, 9,101,108,115,101, 10, 9, 9,108,111, 99, 97,108, 32,116,111, 95,102,117,110, 99, 32, 61, 32,103,101,116, 95, 116,111, 95,102,117,110, 99,116,105,111,110, 40,116,121,112, 101, 41, 10, 9, 9,108,105,110,101, 32, 61, 32, 99,111,110, 99, 97,116,112, 97,114, 97,109, 40,108,105,110,101, 44,116, 111, 95,102,117,110, 99, 46, 46, 39, 40,116,111,108,117, 97, 95, 83, 44, 39, 44,110, 97,114,103, 44, 39, 44, 39, 44,100, 101,102, 44, 39, 41, 41, 59, 39, 41, 10, 9,101,110,100, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 9,114,101,116, 117,114,110, 32,108,105,110,101, 10,101,110,100, 10, 10, 45, 45, 32, 68,101, 99,108, 97,114,101, 32,118, 97,114,105, 97, 98,108,101, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, 58, 100,101, 99,108, 97,114,101, 32, 40,110, 97,114,103, 41, 10, 32,105,102, 32,115,101,108,102, 46,100,105,109, 32,126, 61, 32, 39, 39, 32, 97,110,100, 32,116,111,110,117,109, 98,101, 114, 40,115,101,108,102, 46,100,105,109, 41, 61, 61,110,105, 108, 32,116,104,101,110, 10, 9, 32,111,117,116,112,117,116, 40, 39, 35,105,102,100,101,102, 32, 95, 95, 99,112,108,117, 115,112,108,117,115, 92,110, 39, 41, 10, 9, 9,111,117,116, 112,117,116, 40,115,101,108,102, 58, 98,117,105,108,100,100, 101, 99,108, 97,114, 97,116,105,111,110, 40,110, 97,114,103, 44,116,114,117,101, 41, 41, 10, 9, 9,111,117,116,112,117, 116, 40, 39, 35,101,108,115,101, 92,110, 39, 41, 10, 9, 9, 111,117,116,112,117,116, 40,115,101,108,102, 58, 98,117,105, 108,100,100,101, 99,108, 97,114, 97,116,105,111,110, 40,110, 97,114,103, 44,102, 97,108,115,101, 41, 41, 10, 9, 32,111, 117,116,112,117,116, 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,112, 117,116, 40,115,101,108,102, 58, 98,117,105,108,100,100,101, 99,108, 97,114, 97,116,105,111,110, 40,110, 97,114,103, 44, 102, 97,108,115,101, 41, 41, 10, 9,101,110,100, 10,101,110, 100, 10, 10, 45, 45, 32, 71,101,116, 32,112, 97,114, 97,109, 101,116,101,114, 32,118, 97,108,117,101, 10,102,117,110, 99, 116,105,111,110, 32, 99,108, 97,115,115, 68,101, 99,108, 97, 114, 97,116,105,111,110, 58,103,101,116, 97,114,114, 97,121, 32, 40,110, 97,114,103, 41, 10, 32,105,102, 32,115,101,108, 102, 46,100,105,109, 32,126, 61, 32, 39, 39, 32,116,104,101, 110, 10, 9, 32,108,111, 99, 97,108, 32,116,121,112,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46,116,121,112, 101, 44, 39, 99,111,110,115,116, 32, 39, 44, 39, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32,123, 39, 41, 10, 9, 32,111,117,116,112,117,116, 40, 39, 35,105,102,110, 100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32, 100,101,102, 59, 32,105,102, 32,115,101,108,102, 46,100,101, 102,126, 61, 39, 39, 32,116,104,101,110, 32,100,101,102, 61, 49, 32,101,108,115,101, 32,100,101,102, 61, 48, 32,101,110, 100, 10, 9, 9,108,111, 99, 97,108, 32,116, 32, 61, 32,105, 115, 98, 97,115,105, 99, 40,116,121,112,101, 41, 10, 9, 9, 105,102, 32, 40,116, 41, 32,116,104,101,110, 10, 9, 9, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32,105,102, 32, 40, 33,116,111,108,117, 97, 95,105,115, 39, 46, 46,116, 46, 46, 39, 97,114,114, 97,121, 40,116,111,108,117, 97, 95, 83, 44, 39, 44,110, 97,114,103, 44, 39, 44, 39, 44,115,101, 108,102, 46,100,105,109, 44, 39, 44, 39, 44,100,101,102, 44, 39, 44, 38,116,111,108,117, 97, 95,101,114,114, 41, 41, 39, 41, 10, 9, 9,101,108,115,101, 10, 9, 9, 32, 32, 32,111, 117,116,112,117,116, 40, 39, 32, 32, 32,105,102, 32, 40, 33, 116,111,108,117, 97, 95,105,115,117,115,101,114,116,121,112, 101, 97,114,114, 97,121, 40,116,111,108,117, 97, 95, 83, 44, 39, 44,110, 97,114,103, 44, 39, 44, 34, 39, 44,116,121,112, 101, 44, 39, 34, 44, 39, 44,115,101,108,102, 46,100,105,109, 44, 39, 44, 39, 44,100,101,102, 44, 39, 44, 38,116,111,108, 117, 97, 95,101,114,114, 41, 41, 39, 41, 10, 9, 9,101,110, 100, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,103,111,116,111, 32,116,111,108,117, 97, 95,108,101,114, 114,111,114, 59, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32,101,108,115,101, 92,110, 39, 41, 10, 9, 32,111,117,116,112,117,116, 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32,123, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,105,110,116, 32,105, 59, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,102, 111,114, 40,105, 61, 48, 59, 32,105, 60, 39, 46, 46,115,101, 108,102, 46,100,105,109, 46, 46, 39, 59,105, 43, 43, 41, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32,116, 32, 61, 32,105, 115, 98, 97,115,105, 99, 40,116,121,112,101, 41, 10, 32, 32, 108,111, 99, 97,108, 32,112,116,114, 32, 61, 32, 39, 39, 10, 32, 32,105,102, 32,115,101,108,102, 46,112,116,114,126, 61, 39, 39, 32,116,104,101,110, 32,112,116,114, 32, 61, 32, 39, 42, 39, 32,101,110,100, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 39, 44,115,101,108,102, 46,110, 97,109, 101, 46, 46, 39, 91,105, 93, 32, 61, 32, 39, 41, 10, 32, 32, 105,102, 32,110,111,116, 32,116, 32, 97,110,100, 32,112,116, 114, 61, 61, 39, 39, 32,116,104,101,110, 32,111,117,116,112, 117,116, 40, 39, 42, 39, 41, 32,101,110,100, 10, 32, 32,111, 117,116,112,117,116, 40, 39, 40, 40, 39, 44,116,121,112,101, 41, 10, 32, 32,105,102, 32,110,111,116, 32,116, 32,116,104, 101,110, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39, 42, 39, 41, 10, 32, 32,101,110,100, 10, 32, 32,111,117,116,112, 117,116, 40, 39, 41, 32, 39, 41, 10, 32, 32,108,111, 99, 97, 108, 32,100,101,102, 32, 61, 32, 48, 10, 32, 32,105,102, 32, 115,101,108,102, 46,100,101,102, 32,126, 61, 32, 39, 39, 32, 116,104,101,110, 32,100,101,102, 32, 61, 32,115,101,108,102, 46,100,101,102, 32,101,110,100, 10, 32, 32,105,102, 32,116, 32,116,104,101,110, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39,116,111,108,117, 97, 95,116,111,102,105,101,108,100, 39, 46, 46,116, 46, 46, 39, 40,116,111,108,117, 97, 95, 83, 44, 39, 44,110, 97,114,103, 44, 39, 44,105, 43, 49, 44, 39, 44,100,101,102, 44, 39, 41, 41, 59, 39, 41, 10, 32, 32,101, 108,115,101, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39, 116,111,108,117, 97, 95,116,111,102,105,101,108,100,117,115, 101,114,116,121,112,101, 40,116,111,108,117, 97, 95, 83, 44, 39, 44,110, 97,114,103, 44, 39, 44,105, 43, 49, 44, 39, 44, 100,101,102, 44, 39, 41, 41, 59, 39, 41, 10, 32, 32,101,110, 100, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 125, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32,125, 39, 41, 10, 32,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 71,101,116, 32,112, 97,114, 97,109,101,116,101, 114, 32,118, 97,108,117,101, 10,102,117,110, 99,116,105,111, 110, 32, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116, 105,111,110, 58,115,101,116, 97,114,114, 97,121, 32, 40,110, 97,114,103, 41, 10, 32,105,102, 32,110,111,116, 32,115,116, 114,102,105,110,100, 40,115,101,108,102, 46,116,121,112,101, 44, 39, 99,111,110,115,116, 37,115, 43, 39, 41, 32, 97,110, 100, 32,115,101,108,102, 46,100,105,109, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10, 9, 32,108,111, 99, 97,108, 32, 116,121,112,101, 32, 61, 32,103,115,117, 98, 40,115,101,108, 102, 46,116,121,112,101, 44, 39, 99,111,110,115,116, 32, 39, 44, 39, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32,123, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32,105,110,116, 32,105, 59, 39, 41, 10, 32, 32, 111,117,116,112,117,116, 40, 39, 32, 32, 32,102,111,114, 40, 105, 61, 48, 59, 32,105, 60, 39, 46, 46,115,101,108,102, 46, 100,105,109, 46, 46, 39, 59,105, 43, 43, 41, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32,116, 44, 99,116, 32, 61, 32,105, 115, 98, 97,115,105, 99, 40,116,121,112,101, 41, 10, 32, 32, 105,102, 32,116, 32,116,104,101,110, 10, 32, 32, 32,111,117, 116,112,117,116, 40, 39, 32, 32, 32, 32,116,111,108,117, 97, 95,112,117,115,104,102,105,101,108,100, 39, 46, 46,116, 46, 46, 39, 40,116,111,108,117, 97, 95, 83, 44, 39, 44,110, 97, 114,103, 44, 39, 44,105, 43, 49, 44, 40, 39, 44, 99,116, 44, 39, 41, 39, 44,115,101,108,102, 46,110, 97,109,101, 44, 39, 91,105, 93, 41, 59, 39, 41, 10, 32, 32,101,108,115,101, 10, 32, 32, 32,105,102, 32,115,101,108,102, 46,112,116,114, 32, 61, 61, 32, 39, 39, 32,116,104,101,110, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32,123, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 35, 105,102,100,101,102, 32, 95, 95, 99,112,108,117,115,112,108, 117,115, 92,110, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116, 112,117,116, 40, 39, 32, 32, 32, 32,118,111,105,100, 42, 32, 116,111,108,117, 97, 95,111, 98,106, 32, 61, 32, 77,116,111, 108,117, 97, 95,110,101,119, 40, 40, 39, 44,116,121,112,101, 44, 39, 41, 40, 39, 44,115,101,108,102, 46,110, 97,109,101, 44, 39, 91,105, 93, 41, 41, 59, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,116,111, 108,117, 97, 95,112,117,115,104,102,105,101,108,100,117,115, 101,114,116,121,112,101, 95, 97,110,100, 95,116, 97,107,101, 111,119,110,101,114,115,104,105,112, 40,116,111,108,117, 97, 95, 83, 44, 39, 44,110, 97,114,103, 44, 39, 44,105, 43, 49, 44,116,111,108,117, 97, 95,111, 98,106, 44, 34, 39, 44,116, 121,112,101, 44, 39, 34, 41, 59, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 35,101,108,115,101, 92, 110, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,118,111,105,100, 42, 32,116,111,108, 117, 97, 95,111, 98,106, 32, 61, 32,116,111,108,117, 97, 95, 99,111,112,121, 40,116,111,108,117, 97, 95, 83, 44, 40,118, 111,105,100, 42, 41, 38, 39, 44,115,101,108,102, 46,110, 97, 109,101, 44, 39, 91,105, 93, 44,115,105,122,101,111,102, 40, 39, 44,116,121,112,101, 44, 39, 41, 41, 59, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,116,111,108,117, 97, 95,112,117,115,104,102,105,101,108, 100,117,115,101,114,116,121,112,101, 40,116,111,108,117, 97, 95, 83, 44, 39, 44,110, 97,114,103, 44, 39, 44,105, 43, 49, 44,116,111,108,117, 97, 95,111, 98,106, 44, 34, 39, 44,116, 121,112,101, 44, 39, 34, 41, 59, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117, 116, 40, 39, 32, 32, 32,125, 39, 41, 10, 32, 32, 32,101,108, 115,101, 10, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32,116,111,108,117, 97, 95,112,117,115,104,102,105, 101,108,100,117,115,101,114,116,121,112,101, 40,116,111,108, 117, 97, 95, 83, 44, 39, 44,110, 97,114,103, 44, 39, 44,105, 43, 49, 44, 40,118,111,105,100, 42, 41, 39, 44,115,101,108, 102, 46,110, 97,109,101, 44, 39, 91,105, 93, 44, 34, 39, 44, 116,121,112,101, 44, 39, 34, 41, 59, 39, 41, 10, 32, 32, 32, 101,110,100, 10, 32, 32,101,110,100, 10, 32, 32,111,117,116, 112,117,116, 40, 39, 32, 32,125, 39, 41, 10, 32,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 70,114,101,101, 32,100, 121,110, 97,109,105, 99, 97,108,108,121, 32, 97,108,108,111, 99, 97,116,101,100, 32, 97,114,114, 97,121, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, 58,102,114,101,101, 97,114,114, 97,121, 32, 40, 41, 10, 32,105,102, 32,115,101,108,102, 46, 100,105,109, 32,126, 61, 32, 39, 39, 32, 97,110,100, 32,116, 111,110,117,109, 98,101,114, 40,115,101,108,102, 46,100,105, 109, 41, 61, 61,110,105,108, 32,116,104,101,110, 10, 9, 32, 111,117,116,112,117,116, 40, 39, 35,105,102,100,101,102, 32, 95, 95, 99,112,108,117,115,112,108,117,115, 92,110, 39, 41, 10, 9, 9,111,117,116,112,117,116, 40, 39, 32, 32, 77,116, 111,108,117, 97, 95,100,101,108,101,116,101, 95,100,105,109, 40, 39, 44,115,101,108,102, 46,110, 97,109,101, 44, 39, 41, 59, 39, 41, 10, 9, 32,111,117,116,112,117,116, 40, 39, 35, 101,108,115,101, 92,110, 39, 41, 10, 32, 32,111,117,116,112, 117,116, 40, 39, 32, 32,102,114,101,101, 40, 39, 44,115,101, 108,102, 46,110, 97,109,101, 44, 39, 41, 59, 39, 41, 10, 9, 32,111,117,116,112,117,116, 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10, 32,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 80, 97,115,115, 32,112, 97,114, 97,109,101,116, 101,114, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97, 115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, 58,112, 97,115,115,112, 97,114, 32, 40, 41, 10, 32,105,102, 32,115, 101,108,102, 46,112,116,114, 61, 61, 39, 38, 39, 32, 97,110, 100, 32,110,111,116, 32,105,115, 98, 97,115,105, 99, 40,115, 101,108,102, 46,116,121,112,101, 41, 32,116,104,101,110, 10, 32, 32,111,117,116,112,117,116, 40, 39, 42, 39, 46, 46,115, 101,108,102, 46,110, 97,109,101, 41, 10, 32,101,108,115,101, 105,102, 32,115,101,108,102, 46,114,101,116, 61, 61, 39, 42, 39, 32,116,104,101,110, 10, 32, 32,111,117,116,112,117,116, 40, 39, 38, 39, 46, 46,115,101,108,102, 46,110, 97,109,101, 41, 10, 32,101,108,115,101, 10, 32, 32,111,117,116,112,117, 116, 40,115,101,108,102, 46,110, 97,109,101, 41, 10, 32,101, 110,100, 10,101,110,100, 10, 10, 45, 45, 32, 82,101,116,117, 114,110, 32,112, 97,114, 97,109,101,116,101,114, 32,118, 97, 108,117,101, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, 58, 114,101,116,118, 97,108,117,101, 32, 40, 41, 10, 32,105,102, 32,115,101,108,102, 46,114,101,116, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10, 32, 32,108,111, 99, 97,108, 32,116, 44, 99,116, 32, 61, 32,105,115, 98, 97,115,105, 99, 40,115, 101,108,102, 46,116,121,112,101, 41, 10, 32, 32,105,102, 32, 116, 32, 97,110,100, 32,116,126, 61, 39, 39, 32,116,104,101, 110, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32,116,111,108,117, 97, 95,112,117,115,104, 39, 46, 46,116, 46, 46, 39, 40,116,111,108,117, 97, 95, 83, 44, 40, 39, 44, 99,116, 44, 39, 41, 39, 46, 46,115,101,108,102, 46,110, 97, 109,101, 46, 46, 39, 41, 59, 39, 41, 10, 32, 32,101,108,115, 101, 10, 32, 32, 32,108,111, 99, 97,108, 32,112,117,115,104, 95,102,117,110, 99, 32, 61, 32,103,101,116, 95,112,117,115, 104, 95,102,117,110, 99,116,105,111,110, 40,115,101,108,102, 46,116,121,112,101, 41, 10, 32, 32, 32,111,117,116,112,117, 116, 40, 39, 32, 32, 32, 39, 44,112,117,115,104, 95,102,117, 110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 40,118, 111,105,100, 42, 41, 39, 46, 46,115,101,108,102, 46,110, 97, 109,101, 46, 46, 39, 44, 34, 39, 44,115,101,108,102, 46,116, 121,112,101, 44, 39, 34, 41, 59, 39, 41, 10, 32, 32,101,110, 100, 10, 32, 32,114,101,116,117,114,110, 32, 49, 10, 32,101, 110,100, 10, 32,114,101,116,117,114,110, 32, 48, 10,101,110, 100, 10, 10, 45, 45, 32, 73,110,116,101,114,110, 97,108, 32, 99,111,110,115,116,114,117, 99,116,111,114, 10,102,117,110, 99,116,105,111,110, 32, 95, 68,101, 99,108, 97,114, 97,116, 105,111,110, 32, 40,116, 41, 10, 10, 32,115,101,116,109,101, 116, 97,116, 97, 98,108,101, 40,116, 44, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, 41, 10, 32,116, 58, 98,117,105,108,100,110, 97,109,101,115, 40, 41, 10, 32, 116, 58, 99,104,101, 99,107,110, 97,109,101, 40, 41, 10, 32, 116, 58, 99,104,101, 99,107,116,121,112,101, 40, 41, 10, 32, 108,111, 99, 97,108, 32,102,116, 32, 61, 32,102,105,110,100, 116,121,112,101, 40,116, 46,116,121,112,101, 41, 32,111,114, 32,116, 46,116,121,112,101, 10, 32,105,102, 32,110,111,116, 32,105,115,101,110,117,109, 40,102,116, 41, 32,116,104,101, 110, 10, 9,116, 46,109,111,100, 44, 32,116, 46,116,121,112, 101, 32, 61, 32, 97,112,112,108,121,116,121,112,101,100,101, 102, 40,116, 46,109,111,100, 44, 32,102,116, 41, 10, 32,101, 110,100, 10, 10, 32,105,102, 32,116, 46,107,105,110,100, 61, 61, 34,118, 97,114, 34, 32, 97,110,100, 32, 40,115,116,114, 105,110,103, 46,102,105,110,100, 40,116, 46,109,111,100, 44, 32, 34,116,111,108,117, 97, 95,112,114,111,112,101,114,116, 121, 37,115, 34, 41, 32,111,114, 32,115,116,114,105,110,103, 46,102,105,110,100, 40,116, 46,109,111,100, 44, 32, 34,116, 111,108,117, 97, 95,112,114,111,112,101,114,116,121, 36, 34, 41, 41, 32,116,104,101,110, 10, 32, 9,116, 46,109,111,100, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40, 116, 46,109,111,100, 44, 32, 34,116,111,108,117, 97, 95,112, 114,111,112,101,114,116,121, 34, 44, 32, 34,116,111,108,117, 97, 95,112,114,111,112,101,114,116,121, 95, 95, 34, 46, 46, 103,101,116, 95,112,114,111,112,101,114,116,121, 95,116,121, 112,101, 40, 41, 41, 10, 32,101,110,100, 10, 10, 32,114,101, 116,117,114,110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32, 67,111,110,115,116,114,117, 99,116,111,114, 10, 45, 45, 32, 69,120,112,101, 99,116,115, 32,116,104,101, 32,115,116,114, 105,110,103, 32,100,101, 99,108, 97,114, 97,116,105,111,110, 46, 10, 45, 45, 32, 84,104,101, 32,107,105,110,100, 32,111, 102, 32,100,101, 99,108, 97,114, 97,116,105,111,110, 32, 99, 97,110, 32, 98,101, 32, 34,118, 97,114, 34, 32,111,114, 32, 34,102,117,110, 99, 34, 46, 10,102,117,110, 99,116,105,111, 110, 32, 68,101, 99,108, 97,114, 97,116,105,111,110, 32, 40, 115, 44,107,105,110,100, 44,105,115, 95,112, 97,114, 97,109, 101,116,101,114, 41, 10, 10, 32, 45, 45, 32,101,108,105,109, 105,110, 97,116,101, 32,115,112, 97, 99,101,115, 32,105,102, 32,100,101,102, 97,117,108,116, 32,118, 97,108,117,101, 32, 105,115, 32,112,114,111,118,105,100,101,100, 10, 32,115, 32, 61, 32,103,115,117, 98, 40,115, 44, 34, 37,115, 42, 61, 37, 115, 42, 34, 44, 34, 61, 34, 41, 10, 32,115, 32, 61, 32,103, 115,117, 98, 40,115, 44, 32, 34, 37,115, 42, 60, 34, 44, 32, 34, 60, 34, 41, 10, 10, 32,108,111, 99, 97,108, 32,100,101, 102, 98, 44,116,109,112,100,101,102, 10, 32,100,101,102, 98, 44, 95, 44,116,109,112,100,101,102, 32, 61, 32,115,116,114, 105,110,103, 46,102,105,110,100, 40,115, 44, 32, 34, 40, 61, 46, 42, 41, 36, 34, 41, 10, 32,105,102, 32,100,101,102, 98, 32,116,104,101,110, 10, 32, 9,115, 32, 61, 32,115,116,114, 105,110,103, 46,103,115,117, 98, 40,115, 44, 32, 34, 61, 46, 42, 36, 34, 44, 32, 34, 34, 41, 10, 32,101,108,115,101, 10, 32, 9,116,109,112,100,101,102, 32, 61, 32, 39, 39, 10, 32, 101,110,100, 10, 32,105,102, 32,107,105,110,100, 32, 61, 61, 32, 34,118, 97,114, 34, 32,116,104,101,110, 10, 32, 32, 45, 45, 32, 99,104,101, 99,107, 32,116,104,101, 32,102,111,114, 109, 58, 32,118,111,105,100, 10, 32, 32,105,102, 32,115, 32, 61, 61, 32, 39, 39, 32,111,114, 32,115, 32, 61, 61, 32, 39, 118,111,105,100, 39, 32,116,104,101,110, 10, 32, 32, 32,114, 101,116,117,114,110, 32, 95, 68,101, 99,108, 97,114, 97,116, 105,111,110,123,116,121,112,101, 32, 61, 32, 39,118,111,105, 100, 39, 44, 32,107,105,110,100, 32, 61, 32,107,105,110,100, 44, 32,105,115, 95,112, 97,114, 97,109,101,116,101,114, 32, 61, 32,105,115, 95,112, 97,114, 97,109,101,116,101,114,125, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32, 99,104,101, 99,107, 32,116,104,101, 32,102,111,114, 109, 58, 32,109,111,100, 32,116,121,112,101, 42, 38, 32,110, 97,109,101, 10, 32,108,111, 99, 97,108, 32,116, 32, 61, 32, 115,112,108,105,116, 95, 99, 95,116,111,107,101,110,115, 40, 115, 44, 39, 37, 42, 37,115, 42, 38, 39, 41, 10, 32,105,102, 32,116, 46,110, 32, 61, 61, 32, 50, 32,116,104,101,110, 10, 32, 32,105,102, 32,107,105,110,100, 32, 61, 61, 32, 39,102, 117,110, 99, 39, 32,116,104,101,110, 10, 32, 32, 32,101,114, 114,111,114, 40, 34, 35,105,110,118, 97,108,105,100, 32,102, 117,110, 99,116,105,111,110, 32,114,101,116,117,114,110, 32, 116,121,112,101, 58, 32, 34, 46, 46,115, 41, 10, 32, 32,101, 110,100, 10, 32, 32, 45, 45,108,111, 99, 97,108, 32,109, 32, 61, 32,115,112,108,105,116, 40,116, 91, 49, 93, 44, 39, 37, 115, 37,115, 42, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32, 109, 32, 61, 32,115,112,108,105,116, 95, 99, 95,116,111,107, 101,110,115, 40,116, 91, 49, 93, 44, 39, 37,115, 43, 39, 41, 10, 32, 32,114,101,116,117,114,110, 32, 95, 68,101, 99,108, 97,114, 97,116,105,111,110,123, 10, 32, 32, 32,110, 97,109, 101, 32, 61, 32,116, 91, 50, 93, 46, 46,116,109,112,100,101, 102, 44, 10, 32, 32, 32,112,116,114, 32, 61, 32, 39, 42, 39, 44, 10, 32, 32, 32,114,101,116, 32, 61, 32, 39, 38, 39, 44, 10, 32, 32, 32, 45, 45,116,121,112,101, 32, 61, 32,114,101, 98,117,105,108,100, 95,116,101,109,112,108, 97,116,101, 40, 109, 91,109, 46,110, 93, 44, 32,116, 98, 44, 32,116,105,109, 112,108, 41, 44, 10, 32, 32, 32,116,121,112,101, 32, 61, 32, 109, 91,109, 46,110, 93, 44, 10, 32, 32, 32,109,111,100, 32, 61, 32, 99,111,110, 99, 97,116, 40,109, 44, 49, 44,109, 46, 110, 45, 49, 41, 44, 10, 32, 32, 32,105,115, 95,112, 97,114, 97,109,101,116,101,114, 32, 61, 32,105,115, 95,112, 97,114, 97,109,101,116,101,114, 44, 10, 32, 32, 32,107,105,110,100, 32, 61, 32,107,105,110,100, 10, 32, 32,125, 10, 32,101,110, 100, 10, 10, 32, 45, 45, 32, 99,104,101, 99,107, 32,116,104, 101, 32,102,111,114,109, 58, 32,109,111,100, 32,116,121,112, 101, 42, 42, 32,110, 97,109,101, 10, 32,116, 32, 61, 32,115, 112,108,105,116, 95, 99, 95,116,111,107,101,110,115, 40,115, 44, 39, 37, 42, 37,115, 42, 37, 42, 39, 41, 10, 32,105,102, 32,116, 46,110, 32, 61, 61, 32, 50, 32,116,104,101,110, 10, 32, 32,105,102, 32,107,105,110,100, 32, 61, 61, 32, 39,102, 117,110, 99, 39, 32,116,104,101,110, 10, 32, 32, 32,101,114, 114,111,114, 40, 34, 35,105,110,118, 97,108,105,100, 32,102, 117,110, 99,116,105,111,110, 32,114,101,116,117,114,110, 32, 116,121,112,101, 58, 32, 34, 46, 46,115, 41, 10, 32, 32,101, 110,100, 10, 32, 32, 45, 45,108,111, 99, 97,108, 32,109, 32, 61, 32,115,112,108,105,116, 40,116, 91, 49, 93, 44, 39, 37, 115, 37,115, 42, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32, 109, 32, 61, 32,115,112,108,105,116, 95, 99, 95,116,111,107, 101,110,115, 40,116, 91, 49, 93, 44, 39, 37,115, 43, 39, 41, 10, 32, 32,114,101,116,117,114,110, 32, 95, 68,101, 99,108, 97,114, 97,116,105,111,110,123, 10, 32, 32, 32,110, 97,109, 101, 32, 61, 32,116, 91, 50, 93, 46, 46,116,109,112,100,101, 102, 44, 10, 32, 32, 32,112,116,114, 32, 61, 32, 39, 42, 39, 44, 10, 32, 32, 32,114,101,116, 32, 61, 32, 39, 42, 39, 44, 10, 32, 32, 32, 45, 45,116,121,112,101, 32, 61, 32,114,101, 98,117,105,108,100, 95,116,101,109,112,108, 97,116,101, 40, 109, 91,109, 46,110, 93, 44, 32,116, 98, 44, 32,116,105,109, 112,108, 41, 44, 10, 32, 32, 32,116,121,112,101, 32, 61, 32, 109, 91,109, 46,110, 93, 44, 10, 32, 32, 32,109,111,100, 32, 61, 32, 99,111,110, 99, 97,116, 40,109, 44, 49, 44,109, 46, 110, 45, 49, 41, 44, 10, 32, 32, 32,105,115, 95,112, 97,114, 97,109,101,116,101,114, 32, 61, 32,105,115, 95,112, 97,114, 97,109,101,116,101,114, 44, 10, 32, 32, 32,107,105,110,100, 32, 61, 32,107,105,110,100, 10, 32, 32,125, 10, 32,101,110, 100, 10, 10, 32, 45, 45, 32, 99,104,101, 99,107, 32,116,104, 101, 32,102,111,114,109, 58, 32,109,111,100, 32,116,121,112, 101, 38, 32,110, 97,109,101, 10, 32,116, 32, 61, 32,115,112, 108,105,116, 95, 99, 95,116,111,107,101,110,115, 40,115, 44, 39, 38, 39, 41, 10, 32,105,102, 32,116, 46,110, 32, 61, 61, 32, 50, 32,116,104,101,110, 10, 32, 32, 45, 45,108,111, 99, 97,108, 32,109, 32, 61, 32,115,112,108,105,116, 40,116, 91, 49, 93, 44, 39, 37,115, 37,115, 42, 39, 41, 10, 32, 32,108, 111, 99, 97,108, 32,109, 32, 61, 32,115,112,108,105,116, 95, 99, 95,116,111,107,101,110,115, 40,116, 91, 49, 93, 44, 39, 37,115, 43, 39, 41, 10, 32, 32,114,101,116,117,114,110, 32, 95, 68,101, 99,108, 97,114, 97,116,105,111,110,123, 10, 32, 32, 32,110, 97,109,101, 32, 61, 32,116, 91, 50, 93, 46, 46, 116,109,112,100,101,102, 44, 10, 32, 32, 32,112,116,114, 32, 61, 32, 39, 38, 39, 44, 10, 32, 32, 32, 45, 45,116,121,112, 101, 32, 61, 32,114,101, 98,117,105,108,100, 95,116,101,109, 112,108, 97,116,101, 40,109, 91,109, 46,110, 93, 44, 32,116, 98, 44, 32,116,105,109,112,108, 41, 44, 10, 32, 32, 32,116, 121,112,101, 32, 61, 32,109, 91,109, 46,110, 93, 44, 10, 32, 32, 32,109,111,100, 32, 61, 32, 99,111,110, 99, 97,116, 40, 109, 44, 49, 44,109, 46,110, 45, 49, 41, 44, 10, 32, 32, 32, 105,115, 95,112, 97,114, 97,109,101,116,101,114, 32, 61, 32, 105,115, 95,112, 97,114, 97,109,101,116,101,114, 44, 10, 32, 32, 32,107,105,110,100, 32, 61, 32,107,105,110,100, 10, 32, 32,125, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32, 99,104, 101, 99,107, 32,116,104,101, 32,102,111,114,109, 58, 32,109, 111,100, 32,116,121,112,101, 42, 32,110, 97,109,101, 10, 32, 108,111, 99, 97,108, 32,115, 49, 32, 61, 32,103,115,117, 98, 40,115, 44, 34, 40, 37, 98, 92, 91, 92, 93, 41, 34, 44,102, 117,110, 99,116,105,111,110, 32, 40,110, 41, 32,114,101,116, 117,114,110, 32,103,115,117, 98, 40,110, 44, 39, 37, 42, 39, 44, 39, 92, 49, 39, 41, 32,101,110,100, 41, 10, 32,116, 32, 61, 32,115,112,108,105,116, 95, 99, 95,116,111,107,101,110, 115, 40,115, 49, 44, 39, 37, 42, 39, 41, 10, 32,105,102, 32, 116, 46,110, 32, 61, 61, 32, 50, 32,116,104,101,110, 10, 32, 32,116, 91, 50, 93, 32, 61, 32,103,115,117, 98, 40,116, 91, 50, 93, 44, 39, 92, 49, 39, 44, 39, 37, 42, 39, 41, 32, 45, 45, 32,114,101,115,116,111,114,101, 32, 42, 32,105,110, 32, 100,105,109,101,110,115,105,111,110, 32,101,120,112,114,101, 115,115,105,111,110, 10, 32, 32, 45, 45,108,111, 99, 97,108, 32,109, 32, 61, 32,115,112,108,105,116, 40,116, 91, 49, 93, 44, 39, 37,115, 37,115, 42, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32,109, 32, 61, 32,115,112,108,105,116, 95, 99, 95, 116,111,107,101,110,115, 40,116, 91, 49, 93, 44, 39, 37,115, 43, 39, 41, 10, 32, 32,114,101,116,117,114,110, 32, 95, 68, 101, 99,108, 97,114, 97,116,105,111,110,123, 10, 32, 32, 32, 110, 97,109,101, 32, 61, 32,116, 91, 50, 93, 46, 46,116,109, 112,100,101,102, 44, 10, 32, 32, 32,112,116,114, 32, 61, 32, 39, 42, 39, 44, 10, 32, 32, 32,116,121,112,101, 32, 61, 32, 109, 91,109, 46,110, 93, 44, 10, 32, 32, 32, 45, 45,116,121, 112,101, 32, 61, 32,114,101, 98,117,105,108,100, 95,116,101, 109,112,108, 97,116,101, 40,109, 91,109, 46,110, 93, 44, 32, 116, 98, 44, 32,116,105,109,112,108, 41, 44, 10, 32, 32, 32, 109,111,100, 32, 61, 32, 99,111,110, 99, 97,116, 40,109, 44, 49, 44,109, 46,110, 45, 49, 41, 32, 32, 32, 44, 10, 32, 32, 32,105,115, 95,112, 97,114, 97,109,101,116,101,114, 32, 61, 32,105,115, 95,112, 97,114, 97,109,101,116,101,114, 44, 10, 32, 32, 32,107,105,110,100, 32, 61, 32,107,105,110,100, 10, 32, 32,125, 10, 32,101,110,100, 10, 10, 32,105,102, 32,107, 105,110,100, 32, 61, 61, 32, 39,118, 97,114, 39, 32,116,104, 101,110, 10, 32, 32, 45, 45, 32, 99,104,101, 99,107, 32,116, 104,101, 32,102,111,114,109, 58, 32,109,111,100, 32,116,121, 112,101, 32,110, 97,109,101, 10, 32, 32, 45, 45,116, 32, 61, 32,115,112,108,105,116, 40,115, 44, 39, 37,115, 37,115, 42, 39, 41, 10, 32, 32,116, 32, 61, 32,115,112,108,105,116, 95, 99, 95,116,111,107,101,110,115, 40,115, 44, 39, 37,115, 43, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32,118, 10, 32, 32, 105,102, 32,102,105,110,100,116,121,112,101, 40,116, 91,116, 46,110, 93, 41, 32,116,104,101,110, 32,118, 32, 61, 32, 99, 114,101, 97,116,101, 95,118, 97,114,110, 97,109,101, 40, 41, 32,101,108,115,101, 32,118, 32, 61, 32,116, 91,116, 46,110, 93, 59, 32,116, 46,110, 32, 61, 32,116, 46,110, 45, 49, 32, 101,110,100, 10, 32, 32,114,101,116,117,114,110, 32, 95, 68, 101, 99,108, 97,114, 97,116,105,111,110,123, 10, 32, 32, 32, 110, 97,109,101, 32, 61, 32,118, 46, 46,116,109,112,100,101, 102, 44, 10, 32, 32, 32, 45, 45,116,121,112,101, 32, 61, 32, 114,101, 98,117,105,108,100, 95,116,101,109,112,108, 97,116, 101, 40,116, 91,116, 46,110, 93, 44, 32,116, 98, 44, 32,116, 105,109,112,108, 41, 44, 10, 32, 32, 32,116,121,112,101, 32, 61, 32,116, 91,116, 46,110, 93, 44, 10, 32, 32, 32,109,111, 100, 32, 61, 32, 99,111,110, 99, 97,116, 40,116, 44, 49, 44, 116, 46,110, 45, 49, 41, 44, 10, 32, 32, 32,105,115, 95,112, 97,114, 97,109,101,116,101,114, 32, 61, 32,105,115, 95,112, 97,114, 97,109,101,116,101,114, 44, 10, 32, 32, 32,107,105, 110,100, 32, 61, 32,107,105,110,100, 10, 32, 32,125, 10, 10, 32,101,108,115,101, 32, 45, 45, 32,107,105,110,100, 32, 61, 61, 32, 34,102,117,110, 99, 34, 10, 10, 32, 32, 45, 45, 32, 99,104,101, 99,107, 32,116,104,101, 32,102,111,114,109, 58, 32,109,111,100, 32,116,121,112,101, 32,110, 97,109,101, 10, 32, 32, 45, 45,116, 32, 61, 32,115,112,108,105,116, 40,115, 44, 39, 37,115, 37,115, 42, 39, 41, 10, 32, 32,116, 32, 61, 32,115,112,108,105,116, 95, 99, 95,116,111,107,101,110,115, 40,115, 44, 39, 37,115, 43, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32,118, 32, 61, 32,116, 91,116, 46,110, 93, 32, 32, 45, 45, 32,108, 97,115,116, 32,119,111,114,100, 32,105,115, 32,116,104,101, 32,102,117,110, 99,116,105,111,110, 32,110, 97,109,101, 10, 32, 32,108,111, 99, 97,108, 32,116,112, 44, 109,100, 10, 32, 32,105,102, 32,116, 46,110, 62, 49, 32,116, 104,101,110, 10, 32, 32, 32,116,112, 32, 61, 32,116, 91,116, 46,110, 45, 49, 93, 10, 32, 32, 32,109,100, 32, 61, 32, 99, 111,110, 99, 97,116, 40,116, 44, 49, 44,116, 46,110, 45, 50, 41, 10, 32, 32,101,110,100, 10, 32, 32, 45, 45,105,102, 32, 116,112, 32,116,104,101,110, 32,116,112, 32, 61, 32,114,101, 98,117,105,108,100, 95,116,101,109,112,108, 97,116,101, 40, 116,112, 44, 32,116, 98, 44, 32,116,105,109,112,108, 41, 32, 101,110,100, 10, 32, 32,114,101,116,117,114,110, 32, 95, 68, 101, 99,108, 97,114, 97,116,105,111,110,123, 10, 32, 32, 32, 110, 97,109,101, 32, 61, 32,118, 44, 10, 32, 32, 32,116,121, 112,101, 32, 61, 32,116,112, 44, 10, 32, 32, 32,109,111,100, 32, 61, 32,109,100, 44, 10, 32, 32, 32,105,115, 95,112, 97, 114, 97,109,101,116,101,114, 32, 61, 32,105,115, 95,112, 97, 114, 97,109,101,116,101,114, 44, 10, 32, 32, 32,107,105,110, 100, 32, 61, 32,107,105,110,100, 10, 32, 32,125, 10, 32,101, 110,100, 10, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/declaration.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32,118, 97,114,105, 97, 98,108,101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114, 105,116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73, 100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99, 111,100,101, 32,105,115, 32,102,114,101,101, 32,115,111,102, 116,119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32, 114,101,100,105,115,116,114,105, 98,117,116,101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109,111,100,105,102,121, 32, 105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116, 119, 97,114,101, 32,112,114,111,118,105,100,101,100, 32,104, 101,114,101,117,110,100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105, 115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97, 117,116,104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98, 108,105,103, 97,116,105,111,110, 32,116,111, 32,112,114,111, 118,105,100,101, 32,109, 97,105,110,116,101,110, 97,110, 99, 101, 44, 32,115,117,112,112,111,114,116, 44, 32,117,112,100, 97,116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99, 101,109,101,110,116,115, 44, 32,111,114, 32,109,111,100,105, 102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 45, 45, 32, 86, 97,114,105, 97, 98,108,101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114,101,115,101,110,116,115, 32, 97, 32,101,120,116,101,114,110, 32,118, 97,114,105, 97, 98, 108,101, 32,111,114, 32, 97, 32,112,117, 98,108,105, 99, 32, 109,101,109, 98,101,114, 32,111,102, 32, 97, 32, 99,108, 97, 115,115, 46, 10, 45, 45, 32, 83,116,111,114,101,115, 32, 97, 108,108, 32,102,105,101,108,100,115, 32,112,114,101,115,101, 110,116, 32,105,110, 32, 97, 32,100,101, 99,108, 97,114, 97, 116,105,111,110, 46, 10, 99,108, 97,115,115, 86, 97,114,105, 97, 98,108,101, 32, 61, 32,123, 10, 32, 95,103,101,116, 32, 61, 32,123,125, 44, 32, 32, 32, 45, 45, 32,109, 97,112,112, 101,100, 32,103,101,116, 32,102,117,110, 99,116,105,111,110, 115, 10, 32, 95,115,101,116, 32, 61, 32,123,125, 44, 32, 32, 32, 45, 45, 32,109, 97,112,112,101,100, 32,115,101,116, 32, 102,117,110, 99,116,105,111,110,115, 10,125, 10, 99,108, 97, 115,115, 86, 97,114,105, 97, 98,108,101, 46, 95, 95,105,110, 100,101,120, 32, 61, 32, 99,108, 97,115,115, 86, 97,114,105, 97, 98,108,101, 10,115,101,116,109,101,116, 97,116, 97, 98, 108,101, 40, 99,108, 97,115,115, 86, 97,114,105, 97, 98,108, 101, 44, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116, 105,111,110, 41, 10, 10, 45, 45, 32, 80,114,105,110,116, 32, 109,101,116,104,111,100, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 86, 97,114,105, 97, 98,108,101, 58, 112,114,105,110,116, 32, 40,105,100,101,110,116, 44, 99,108, 111,115,101, 41, 10, 32,112,114,105,110,116, 40,105,100,101, 110,116, 46, 46, 34, 86, 97,114,105, 97, 98,108,101,123, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,109,111,100, 32, 32, 61, 32, 39, 34, 46, 46,115, 101,108,102, 46,109,111,100, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,116,121,112,101, 32, 61, 32, 39, 34, 46, 46,115,101,108, 102, 46,116,121,112,101, 46, 46, 34, 39, 44, 34, 41, 10, 32, 112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 112,116,114, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,112,116,114, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114, 105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,110, 97, 109,101, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,105,102, 32, 115,101,108,102, 46,100,105,109, 32,116,104,101,110, 32,112, 114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,100, 105,109, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,100, 105,109, 46, 46, 34, 39, 44, 34, 41, 32,101,110,100, 10, 32, 112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 100,101,102, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,100,101,102, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114, 105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,114,101, 116, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,114, 101,116, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110, 116, 40,105,100,101,110,116, 46, 46, 34,125, 34, 46, 46, 99, 108,111,115,101, 41, 10,101,110,100, 10, 10, 45, 45, 32, 71, 101,110,101,114, 97,116,101,115, 32, 67, 32,102,117,110, 99, 116,105,111,110, 32,110, 97,109,101, 10,102,117,110, 99,116, 105,111,110, 32, 99,108, 97,115,115, 86, 97,114,105, 97, 98, 108,101, 58, 99,102,117,110, 99,110, 97,109,101, 32, 40,112, 114,101,102,105,120, 41, 10, 32,108,111, 99, 97,108, 32,112, 97,114,101,110,116, 32, 61, 32, 34, 34, 10, 32,108,111, 99, 97,108, 32,117,110,115,105,103,110,101,100, 32, 61, 32, 34, 34, 10, 32,108,111, 99, 97,108, 32,112,116,114, 32, 61, 32, 34, 34, 10, 10, 32,108,111, 99, 97,108, 32,112, 32, 61, 32, 115,101,108,102, 58,105,110,109,111,100,117,108,101, 40, 41, 32,111,114, 32,115,101,108,102, 58,105,110,110, 97,109,101, 115,112, 97, 99,101, 40, 41, 32,111,114, 32,115,101,108,102, 58,105,110, 99,108, 97,115,115, 40, 41, 10, 10, 32,105,102, 32,112, 32,116,104,101,110, 10, 32, 9,105,102, 32,115,101, 108,102, 46,112, 97,114,101,110,116, 46, 99,108, 97,115,115, 116,121,112,101, 32, 61, 61, 32, 39, 99,108, 97,115,115, 39, 32,116,104,101,110, 10, 9, 9,112, 97,114,101,110,116, 32, 61, 32, 34, 95, 34, 32, 46, 46, 32,115,101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112,101, 10, 9,101,108,115, 101, 10, 9, 32, 32,112, 97,114,101,110,116, 32, 61, 32, 34, 95, 34, 32, 46, 46, 32,112, 10, 9,101,110,100, 10, 32,101, 110,100, 10, 10, 32,105,102, 32,115,116,114,102,105,110,100, 40,115,101,108,102, 46,109,111,100, 44, 34, 40,117,110,115, 105,103,110,101,100, 41, 34, 41, 32,116,104,101,110, 10, 32, 32,117,110,115,105,103,110,101,100, 32, 61, 32, 34, 95,117, 110,115,105,103,110,101,100, 34, 10, 32,101,110,100, 10, 10, 32,105,102, 32,115,101,108,102, 46,112,116,114, 32, 61, 61, 32, 34, 42, 34, 32,116,104,101,110, 32,112,116,114, 32, 61, 32, 34, 95,112,116,114, 34, 10, 32,101,108,115,101,105,102, 32,115,101,108,102, 46,112,116,114, 32, 61, 61, 32, 34, 38, 34, 32,116,104,101,110, 32,112,116,114, 32, 61, 32, 34, 95, 114,101,102, 34, 10, 32,101,110,100, 10, 10, 32,108,111, 99, 97,108, 32,110, 97,109,101, 32, 61, 32, 32,112,114,101,102, 105,120, 32, 46, 46, 32,112, 97,114,101,110,116, 32, 46, 46, 32,117,110,115,105,103,110,101,100, 32, 46, 46, 32, 34, 95, 34, 32, 46, 46, 32,103,115,117, 98, 40,115,101,108,102, 46, 108,110, 97,109,101, 32,111,114, 32,115,101,108,102, 46,110, 97,109,101, 44, 34, 46, 42, 58, 58, 34, 44, 34, 34, 41, 32, 46, 46, 32,112,116,114, 10, 10, 9,110, 97,109,101, 32, 61, 32, 99,108,101, 97,110, 95,116,101,109,112,108, 97,116,101, 40,110, 97,109,101, 41, 10, 32,114,101,116,117,114,110, 32, 110, 97,109,101, 10, 10,101,110,100, 10, 10, 45, 45, 32, 99, 104,101, 99,107, 32,105,102, 32,105,116, 32,105,115, 32, 97, 32,118, 97,114,105, 97, 98,108,101, 10,102,117,110, 99,116, 105,111,110, 32, 99,108, 97,115,115, 86, 97,114,105, 97, 98, 108,101, 58,105,115,118, 97,114,105, 97, 98,108,101, 32, 40, 41, 10, 32,114,101,116,117,114,110, 32,116,114,117,101, 10, 101,110,100, 10, 10, 45, 45, 32,103,101,116, 32,118, 97,114, 105, 97, 98,108,101, 32,118, 97,108,117,101, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 86, 97,114,105, 97, 98,108,101, 58,103,101,116,118, 97,108,117,101, 32, 40, 99,108, 97,115,115, 44,115,116, 97,116,105, 99, 44, 32,112, 114,111,112, 95,103,101,116, 41, 10, 10, 9,108,111, 99, 97, 108, 32,110, 97,109,101, 10, 9,105,102, 32,112,114,111,112, 95,103,101,116, 32,116,104,101,110, 10, 10, 9, 9,110, 97, 109,101, 32, 61, 32,112,114,111,112, 95,103,101,116, 46, 46, 34, 40, 41, 34, 10, 9,101,108,115,101, 10, 9, 9,110, 97, 109,101, 32, 61, 32,115,101,108,102, 46,110, 97,109,101, 10, 9,101,110,100, 10, 10, 9,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,115,116, 97,116,105, 99, 32,116,104,101, 110, 10, 9, 32,114,101,116,117,114,110, 32,115,101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112,101, 46, 46, 39, 58, 58, 39, 46, 46,110, 97,109,101, 10, 9,101,108,115,101, 105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 10, 9, 32,114,101,116,117,114,110, 32, 39,115,101,108,102, 45, 62, 39, 46, 46,110, 97,109,101, 10, 9,101,108,115,101, 10, 9, 32,114,101,116,117,114,110, 32,110, 97,109,101, 10, 9,101, 110,100, 10,101,110,100, 10, 10, 45, 45, 32,103,101,116, 32, 118, 97,114,105, 97, 98,108,101, 32,112,111,105,110,116,101, 114, 32,118, 97,108,117,101, 10,102,117,110, 99,116,105,111, 110, 32, 99,108, 97,115,115, 86, 97,114,105, 97, 98,108,101, 58,103,101,116,112,111,105,110,116,101,114,118, 97,108,117, 101, 32, 40, 99,108, 97,115,115, 44,115,116, 97,116,105, 99, 41, 10, 32,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,115,116, 97,116,105, 99, 32,116,104,101,110, 10, 32, 32, 114,101,116,117,114,110, 32, 99,108, 97,115,115, 46, 46, 39, 58, 58,112, 39, 10, 32,101,108,115,101,105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 10, 32, 32,114,101,116,117, 114,110, 32, 39,115,101,108,102, 45, 62,112, 39, 10, 32,101, 108,115,101, 10, 32, 32,114,101,116,117,114,110, 32, 39,112, 39, 10, 32,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 87,114,105,116,101, 32, 98,105,110,100,105,110,103, 32,102, 117,110, 99,116,105,111,110,115, 10,102,117,110, 99,116,105, 111,110, 32, 99,108, 97,115,115, 86, 97,114,105, 97, 98,108, 101, 58,115,117,112, 99,111,100,101, 32, 40, 41, 10, 10, 32, 108,111, 99, 97,108, 32, 99,108, 97,115,115, 32, 61, 32,115, 101,108,102, 58,105,110, 99,108, 97,115,115, 40, 41, 10, 10, 9,108,111, 99, 97,108, 32,112,114,111,112, 95,103,101,116, 44,112,114,111,112, 95,115,101,116, 10, 9,105,102, 32,115, 116,114,105,110,103, 46,102,105,110,100, 40,115,101,108,102, 46,109,111,100, 44, 32, 39,116,111,108,117, 97, 95,112,114, 111,112,101,114,116,121, 39, 41, 32,116,104,101,110, 10, 10, 9, 9,108,111, 99, 97,108, 32, 95, 44, 95, 44,116,121,112, 101, 32, 61, 32,115,116,114,105,110,103, 46,102,105,110,100, 40,115,101,108,102, 46,109,111,100, 44, 32, 34,116,111,108, 117, 97, 95,112,114,111,112,101,114,116,121, 95, 95, 40, 91, 94, 37,115, 93, 42, 41, 34, 41, 10, 9, 9,116,121,112,101, 32, 61, 32,116,121,112,101, 32,111,114, 32, 34,100,101,102, 97,117,108,116, 34, 10, 9, 9,112,114,111,112, 95,103,101, 116, 44,112,114,111,112, 95,115,101,116, 32, 61, 32,103,101, 116, 95,112,114,111,112,101,114,116,121, 95,109,101,116,104, 111,100,115, 40,116,121,112,101, 44, 32,115,101,108,102, 46, 110, 97,109,101, 41, 10, 9, 9,115,101,108,102, 46,109,111, 100, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,115,101,108,102, 46,109,111,100, 44, 32, 34,116,111,108, 117, 97, 95,112,114,111,112,101,114,116,121, 91, 94, 37,115, 93, 42, 34, 44, 32, 34, 34, 41, 10, 9,101,110,100, 10, 10, 32, 45, 45, 32,103,101,116, 32,102,117,110, 99,116,105,111, 110, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 32,105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 10, 32, 32,111,117,116,112,117,116, 40, 34, 47, 42, 32,103,101,116, 32,102,117,110, 99,116,105,111, 110, 58, 34, 44,115,101,108,102, 46,110, 97,109,101, 44, 34, 32,111,102, 32, 99,108, 97,115,115, 32, 34, 44, 99,108, 97, 115,115, 44, 34, 32, 42, 47, 34, 41, 10, 32,101,108,115,101, 10, 32, 32,111,117,116,112,117,116, 40, 34, 47, 42, 32,103, 101,116, 32,102,117,110, 99,116,105,111,110, 58, 34, 44,115, 101,108,102, 46,110, 97,109,101, 44, 34, 32, 42, 47, 34, 41, 10, 32,101,110,100, 10, 32,115,101,108,102, 46, 99,103,101, 116,110, 97,109,101, 32, 61, 32,115,101,108,102, 58, 99,102, 117,110, 99,110, 97,109,101, 40, 34,116,111,108,117, 97, 95, 103,101,116, 34, 41, 10, 32,111,117,116,112,117,116, 40, 34, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 95, 34, 46, 46,115,101,108,102, 46, 99,103,101,116,110, 97,109,101, 41, 10, 32,111,117,116,112, 117,116, 40, 34, 92,110,115,116, 97,116,105, 99, 32,105,110, 116, 34, 44,115,101,108,102, 46, 99,103,101,116,110, 97,109, 101, 44, 34, 40,108,117, 97, 95, 83,116, 97,116,101, 42, 32, 116,111,108,117, 97, 95, 83, 41, 34, 41, 10, 32,111,117,116, 112,117,116, 40, 34,123, 34, 41, 10, 10, 32, 45, 45, 32,100, 101, 99,108, 97,114,101, 32,115,101,108,102, 44, 32,105,102, 32,116,104,101, 32, 99, 97,115,101, 10, 32,108,111, 99, 97, 108, 32, 95, 44, 95, 44,115,116, 97,116,105, 99, 32, 61, 32, 115,116,114,102,105,110,100, 40,115,101,108,102, 46,109,111, 100, 44, 39, 94, 37,115, 42, 40,115,116, 97,116,105, 99, 41, 39, 41, 10, 32,105,102, 32, 99,108, 97,115,115, 32, 97,110, 100, 32,115,116, 97,116,105, 99, 61, 61,110,105,108, 32,116, 104,101,110, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 39, 44,115,101,108,102, 46,112, 97,114,101,110,116, 46,116, 121,112,101, 44, 39, 42, 39, 44, 39,115,101,108,102, 32, 61, 32, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 40, 39, 44,115,101,108,102, 46,112, 97,114,101,110,116, 46,116, 121,112,101, 44, 39, 42, 41, 32, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32,116,111, 95,102,117,110, 99, 32, 61, 32,103, 101,116, 95,116,111, 95,102,117,110, 99,116,105,111,110, 40, 115,101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112, 101, 41, 10, 32, 32,111,117,116,112,117,116, 40,116,111, 95, 102,117,110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 49, 44, 48, 41, 59, 39, 41, 10, 32,101,108,115,101,105,102, 32,115,116, 97,116,105, 99, 32,116,104,101,110, 10, 32, 32, 95, 44, 95, 44,115,101,108,102, 46,109,111,100, 32, 61, 32, 115,116,114,102,105,110,100, 40,115,101,108,102, 46,109,111, 100, 44, 39, 94, 37,115, 42,115,116, 97,116,105, 99, 37,115, 37,115, 42, 40, 46, 42, 41, 39, 41, 10, 32,101,110,100, 10, 10, 10, 32, 45, 45, 32, 99,104,101, 99,107, 32,115,101,108, 102, 32,118, 97,108,117,101, 10, 32,105,102, 32, 99,108, 97, 115,115, 32, 97,110,100, 32,115,116, 97,116,105, 99, 61, 61, 110,105,108, 32,116,104,101,110, 10, 9, 32,111,117,116,112, 117,116, 40, 39, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32,105,102, 32, 40, 33,115,101,108,102, 41, 32,116,111,108,117, 97, 95,101, 114,114,111,114, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,111,117,116,112,117,116, 95,101,114,114,111,114, 95, 104,111,111,107, 40, 34,105,110,118, 97,108,105,100, 32, 92, 39,115,101,108,102, 92, 39, 32,105,110, 32, 97, 99, 99,101, 115,115,105,110,103, 32,118, 97,114,105, 97, 98,108,101, 32, 92, 39, 37,115, 92, 39, 34, 44, 32,115,101,108,102, 46,110, 97,109,101, 41, 46, 46, 39, 34, 44, 78, 85, 76, 76, 41, 59, 39, 41, 59, 10, 9, 9,111,117,116,112,117,116, 40, 39, 35, 101,110,100,105,102, 92,110, 39, 41, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,114,101,116,117,114,110, 32,118, 97,108, 117,101, 10, 32,105,102, 32,115,116,114,105,110,103, 46,102, 105,110,100, 40,115,101,108,102, 46,109,111,100, 44, 32, 39, 116,111,108,117, 97, 95,105,110,104,101,114,105,116,115, 39, 41, 32,116,104,101,110, 10, 9,108,111, 99, 97,108, 32,112, 117,115,104, 95,102,117,110, 99, 32, 61, 32,103,101,116, 95, 112,117,115,104, 95,102,117,110, 99,116,105,111,110, 40,115, 101,108,102, 46,116,121,112,101, 41, 10, 32, 9,111,117,116, 112,117,116, 40, 39, 35,105,102,100,101,102, 32, 95, 95, 99, 112,108,117,115,112,108,117,115, 92,110, 39, 41, 10, 9,111, 117,116,112,117,116, 40, 39, 32, 32, 39, 44,112,117,115,104, 95,102,117,110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 40,118,111,105,100, 42, 41,115,116, 97,116,105, 99, 95, 99, 97,115,116, 60, 39, 46, 46,115,101,108,102, 46,116,121, 112,101, 46, 46, 39, 42, 62, 40,115,101,108,102, 41, 44, 32, 34, 39, 44,115,101,108,102, 46,116,121,112,101, 44, 39, 34, 41, 59, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 35, 101,108,115,101, 92,110, 39, 41, 10, 9,111,117,116,112,117, 116, 40, 39, 32, 32, 39, 44,112,117,115,104, 95,102,117,110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 40,118,111, 105,100, 42, 41, 40, 40, 39, 46, 46,115,101,108,102, 46,116, 121,112,101, 46, 46, 39, 42, 41,115,101,108,102, 41, 44, 32, 34, 39, 44,115,101,108,102, 46,116,121,112,101, 44, 39, 34, 41, 59, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 35, 101,110,100,105,102, 92,110, 39, 41, 10, 32,101,108,115,101, 10, 9,108,111, 99, 97,108, 32,116, 44, 99,116, 32, 61, 32, 105,115, 98, 97,115,105, 99, 40,115,101,108,102, 46,116,121, 112,101, 41, 10, 9,105,102, 32,116, 32,116,104,101,110, 10, 9, 9,111,117,116,112,117,116, 40, 39, 32, 32,116,111,108, 117, 97, 95,112,117,115,104, 39, 46, 46,116, 46, 46, 39, 40, 116,111,108,117, 97, 95, 83, 44, 40, 39, 44, 99,116, 44, 39, 41, 39, 46, 46,115,101,108,102, 58,103,101,116,118, 97,108, 117,101, 40, 99,108, 97,115,115, 44,115,116, 97,116,105, 99, 44,112,114,111,112, 95,103,101,116, 41, 46, 46, 39, 41, 59, 39, 41, 10, 9,101,108,115,101, 10, 9, 9,108,111, 99, 97, 108, 32,112,117,115,104, 95,102,117,110, 99, 32, 61, 32,103, 101,116, 95,112,117,115,104, 95,102,117,110, 99,116,105,111, 110, 40,115,101,108,102, 46,116,121,112,101, 41, 10, 9, 9, 116, 32, 61, 32,115,101,108,102, 46,116,121,112,101, 10, 9, 9,105,102, 32,115,101,108,102, 46,112,116,114, 32, 61, 61, 32, 39, 38, 39, 32,111,114, 32,115,101,108,102, 46,112,116, 114, 32, 61, 61, 32, 39, 39, 32,116,104,101,110, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32, 32, 39, 44,112,117, 115,104, 95,102,117,110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 40,118,111,105,100, 42, 41, 38, 39, 46, 46,115, 101,108,102, 58,103,101,116,118, 97,108,117,101, 40, 99,108, 97,115,115, 44,115,116, 97,116,105, 99, 44,112,114,111,112, 95,103,101,116, 41, 46, 46, 39, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10, 9, 9,101,108,115,101, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32, 32, 39, 44,112,117, 115,104, 95,102,117,110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 40,118,111,105,100, 42, 41, 39, 46, 46,115,101, 108,102, 58,103,101,116,118, 97,108,117,101, 40, 99,108, 97, 115,115, 44,115,116, 97,116,105, 99, 44,112,114,111,112, 95, 103,101,116, 41, 46, 46, 39, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10, 9, 9,101,110,100, 10, 9,101,110,100, 10, 32,101,110,100, 10, 32,111,117,116,112,117,116, 40, 39, 32,114,101,116,117,114,110, 32, 49, 59, 39, 41, 10, 32,111, 117,116,112,117,116, 40, 39,125, 39, 41, 10, 32,111,117,116, 112,117,116, 40, 39, 35,101,110,100,105,102, 32, 47, 47, 35, 105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 92,110, 39, 41, 10, 32,111,117,116,112, 117,116, 40, 39, 92,110, 39, 41, 10, 10, 32, 45, 45, 32,115, 101,116, 32,102,117,110, 99,116,105,111,110, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 32,105,102, 32,110,111,116, 32, 40,115,116,114,102,105, 110,100, 40,115,101,108,102, 46,116,121,112,101, 44, 39, 99, 111,110,115,116, 37,115, 43, 39, 41, 32,111,114, 32,115,116, 114,105,110,103, 46,102,105,110,100, 40,115,101,108,102, 46, 109,111,100, 44, 32, 39,116,111,108,117, 97, 95,114,101, 97, 100,111,110,108,121, 39, 41, 32,111,114, 32,115,116,114,105, 110,103, 46,102,105,110,100, 40,115,101,108,102, 46,109,111, 100, 44, 32, 39,116,111,108,117, 97, 95,105,110,104,101,114, 105,116,115, 39, 41, 41, 32, 32,116,104,101,110, 10, 32, 32, 105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 10, 32, 32, 32,111,117,116,112,117,116, 40, 34, 47, 42, 32,115,101, 116, 32,102,117,110, 99,116,105,111,110, 58, 34, 44,115,101, 108,102, 46,110, 97,109,101, 44, 34, 32,111,102, 32, 99,108, 97,115,115, 32, 34, 44, 99,108, 97,115,115, 44, 34, 32, 42, 47, 34, 41, 10, 32, 32,101,108,115,101, 10, 32, 32, 32,111, 117,116,112,117,116, 40, 34, 47, 42, 32,115,101,116, 32,102, 117,110, 99,116,105,111,110, 58, 34, 44,115,101,108,102, 46, 110, 97,109,101, 44, 34, 32, 42, 47, 34, 41, 10, 32, 32,101, 110,100, 10, 32, 32,115,101,108,102, 46, 99,115,101,116,110, 97,109,101, 32, 61, 32,115,101,108,102, 58, 99,102,117,110, 99,110, 97,109,101, 40, 34,116,111,108,117, 97, 95,115,101, 116, 34, 41, 10, 32, 32,111,117,116,112,117,116, 40, 34, 35, 105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 95, 34, 46, 46,115,101,108,102, 46, 99, 115,101,116,110, 97,109,101, 41, 10, 32, 32,111,117,116,112, 117,116, 40, 34, 92,110,115,116, 97,116,105, 99, 32,105,110, 116, 34, 44,115,101,108,102, 46, 99,115,101,116,110, 97,109, 101, 44, 34, 40,108,117, 97, 95, 83,116, 97,116,101, 42, 32, 116,111,108,117, 97, 95, 83, 41, 34, 41, 10, 32, 32,111,117, 116,112,117,116, 40, 34,123, 34, 41, 10, 10, 32, 32, 45, 45, 32,100,101, 99,108, 97,114,101, 32,115,101,108,102, 44, 32, 105,102, 32,116,104,101, 32, 99, 97,115,101, 10, 32, 32,105, 102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,115,116, 97, 116,105, 99, 61, 61,110,105,108, 32,116,104,101,110, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 39, 44,115,101, 108,102, 46,112, 97,114,101,110,116, 46,116,121,112,101, 44, 39, 42, 39, 44, 39,115,101,108,102, 32, 61, 32, 39, 41, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39, 40, 39, 44,115, 101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112,101, 44, 39, 42, 41, 32, 39, 41, 10, 32, 32, 32,108,111, 99, 97, 108, 32,116,111, 95,102,117,110, 99, 32, 61, 32,103,101,116, 95,116,111, 95,102,117,110, 99,116,105,111,110, 40,115,101, 108,102, 46,112, 97,114,101,110,116, 46,116,121,112,101, 41, 10, 32, 32, 32,111,117,116,112,117,116, 40,116,111, 95,102, 117,110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 49, 44, 48, 41, 59, 39, 41, 10, 32, 32, 32, 45, 45, 32, 99,104, 101, 99,107, 32,115,101,108,102, 32,118, 97,108,117,101, 10, 9, 9,101,110,100, 10, 32, 32, 45, 45, 32, 99,104,101, 99, 107, 32,116,121,112,101,115, 10, 9, 9,111,117,116,112,117, 116, 40, 39, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, 9, 9,111,117,116,112,117,116, 40, 39, 32, 32,116,111,108,117, 97, 95, 69,114,114,111,114, 32,116,111,108,117, 97, 95,101, 114,114, 59, 39, 41, 10, 32, 32,105,102, 32, 99,108, 97,115, 115, 32, 97,110,100, 32,115,116, 97,116,105, 99, 61, 61,110, 105,108, 32,116,104,101,110, 10, 32, 32, 32,111,117,116,112, 117,116, 40, 39, 32, 32,105,102, 32, 40, 33,115,101,108,102, 41, 32,116,111,108,117, 97, 95,101,114,114,111,114, 40,116, 111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,111,117,116,112, 117,116, 95,101,114,114,111,114, 95,104,111,111,107, 40, 34, 105,110,118, 97,108,105,100, 32, 92, 39,115,101,108,102, 92, 39, 32,105,110, 32, 97, 99, 99,101,115,115,105,110,103, 32, 118, 97,114,105, 97, 98,108,101, 32, 92, 39, 37,115, 92, 39, 34, 44, 32,115,101,108,102, 46,110, 97,109,101, 41, 46, 46, 39, 34, 44, 78, 85, 76, 76, 41, 59, 39, 41, 59, 10, 32, 32, 101,108,115,101,105,102, 32,115,116, 97,116,105, 99, 32,116, 104,101,110, 10, 32, 32, 32, 95, 44, 95, 44,115,101,108,102, 46,109,111,100, 32, 61, 32,115,116,114,102,105,110,100, 40, 115,101,108,102, 46,109,111,100, 44, 39, 94, 37,115, 42,115, 116, 97,116,105, 99, 37,115, 37,115, 42, 40, 46, 42, 41, 39, 41, 10, 32, 32,101,110,100, 10, 10, 32, 32, 45, 45, 32, 99, 104,101, 99,107, 32,118, 97,114,105, 97, 98,108,101, 32,116, 121,112,101, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32,105,102, 32, 40, 39, 46, 46,115,101,108,102, 58,111,117, 116, 99,104,101, 99,107,116,121,112,101, 40, 50, 41, 46, 46, 39, 41, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32,116,111,108,117, 97, 95,101,114,114,111,114, 40, 116,111,108,117, 97, 95, 83, 44, 34, 35,118,105,110,118, 97, 108,105,100, 32,116,121,112,101, 32,105,110, 32,118, 97,114, 105, 97, 98,108,101, 32, 97,115,115,105,103,110,109,101,110, 116, 46, 34, 44, 38,116,111,108,117, 97, 95,101,114,114, 41, 59, 39, 41, 10, 9, 9,111,117,116,112,117,116, 40, 39, 35, 101,110,100,105,102, 92,110, 39, 41, 10, 10, 32, 32, 45, 45, 32, 97,115,115,105,103,110, 32,118, 97,108,117,101, 10, 9, 9,108,111, 99, 97,108, 32,100,101,102, 32, 61, 32, 48, 10, 9, 9,105,102, 32,115,101,108,102, 46,100,101,102, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 32,100,101,102, 32, 61, 32,115,101,108,102, 46,100,101,102, 32,101,110,100, 10, 9, 9,105,102, 32,115,101,108,102, 46,116,121,112,101, 32, 61, 61, 32, 39, 99,104, 97,114, 42, 39, 32, 97,110,100, 32,115, 101,108,102, 46,100,105,109, 32,126, 61, 32, 39, 39, 32,116, 104,101,110, 32, 45, 45, 32,105,115, 32,115,116,114,105,110, 103, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32,115, 116,114,110, 99,112,121, 40, 40, 99,104, 97,114, 42, 41, 39, 41, 10, 9, 9, 9,105,102, 32, 99,108, 97,115,115, 32, 97, 110,100, 32,115,116, 97,116,105, 99, 32,116,104,101,110, 10, 9, 9, 9, 9,111,117,116,112,117,116, 40,115,101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112,101, 46, 46, 39, 58, 58, 39, 46, 46,115,101,108,102, 46,110, 97,109,101, 41, 10, 9, 9, 9,101,108,115,101,105,102, 32, 99,108, 97,115, 115, 32,116,104,101,110, 10, 9, 9, 9, 9,111,117,116,112, 117,116, 40, 39,115,101,108,102, 45, 62, 39, 46, 46,115,101, 108,102, 46,110, 97,109,101, 41, 10, 9, 9, 9,101,108,115, 101, 10, 9, 9, 9, 9,111,117,116,112,117,116, 40,115,101, 108,102, 46,110, 97,109,101, 41, 10, 9, 9, 9,101,110,100, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 44, 40, 99, 111,110,115,116, 32, 99,104, 97,114, 42, 41,116,111,108,117, 97, 95,116,111,115,116,114,105,110,103, 40,116,111,108,117, 97, 95, 83, 44, 50, 44, 39, 44,100,101,102, 44, 39, 41, 44, 39, 44,115,101,108,102, 46,100,105,109, 44, 39, 45, 49, 41, 59, 39, 41, 10, 9, 9,101,108,115,101, 10, 9, 9, 9,108, 111, 99, 97,108, 32,112,116,114, 32, 61, 32, 39, 39, 10, 9, 9, 9,105,102, 32,115,101,108,102, 46,112,116,114,126, 61, 39, 39, 32,116,104,101,110, 32,112,116,114, 32, 61, 32, 39, 42, 39, 32,101,110,100, 10, 9, 9, 9,111,117,116,112,117, 116, 40, 39, 32, 39, 41, 10, 9, 9, 9,108,111, 99, 97,108, 32,110, 97,109,101, 32, 61, 32,112,114,111,112, 95,115,101, 116, 32,111,114, 32,115,101,108,102, 46,110, 97,109,101, 10, 9, 9, 9,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,115,116, 97,116,105, 99, 32,116,104,101,110, 10, 9, 9, 9, 9,111,117,116,112,117,116, 40,115,101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112,101, 46, 46, 39, 58, 58, 39, 46, 46,110, 97,109,101, 41, 10, 9, 9, 9,101,108,115, 101,105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 10, 9, 9, 9, 9,111,117,116,112,117,116, 40, 39,115,101,108, 102, 45, 62, 39, 46, 46,110, 97,109,101, 41, 10, 9, 9, 9, 101,108,115,101, 10, 9, 9, 9, 9,111,117,116,112,117,116, 40,110, 97,109,101, 41, 10, 9, 9, 9,101,110,100, 10, 9, 9, 9,108,111, 99, 97,108, 32,116, 32, 61, 32,105,115, 98, 97,115,105, 99, 40,115,101,108,102, 46,116,121,112,101, 41, 10, 9, 9, 9,105,102, 32,112,114,111,112, 95,115,101,116, 32,116,104,101,110, 10, 9, 9, 9, 9,111,117,116,112,117, 116, 40, 39, 40, 39, 41, 10, 9, 9, 9,101,108,115,101, 10, 9, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32, 61, 32, 39, 41, 10, 9, 9, 9,101,110,100, 10, 9, 9, 9,105,102, 32,110,111,116, 32,116, 32, 97,110,100, 32,112,116,114, 61, 61, 39, 39, 32,116,104,101,110, 32,111,117,116,112,117,116, 40, 39, 42, 39, 41, 32,101,110,100, 10, 9, 9, 9,111,117, 116,112,117,116, 40, 39, 40, 40, 39, 44,115,101,108,102, 46, 109,111,100, 44,115,101,108,102, 46,116,121,112,101, 41, 10, 9, 9, 9,105,102, 32,110,111,116, 32,116, 32,116,104,101, 110, 10, 9, 9, 9, 9,111,117,116,112,117,116, 40, 39, 42, 39, 41, 10, 9, 9, 9,101,110,100, 10, 9, 9, 9,111,117, 116,112,117,116, 40, 39, 41, 32, 39, 41, 10, 9, 9, 9,105, 102, 32,116, 32,116,104,101,110, 10, 9, 9, 9, 9,105,102, 32,105,115,101,110,117,109, 40,115,101,108,102, 46,116,121, 112,101, 41, 32,116,104,101,110, 10, 9, 9, 9, 9, 9,111, 117,116,112,117,116, 40, 39, 40,105,110,116, 41, 32, 39, 41, 10, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9, 9,111,117, 116,112,117,116, 40, 39,116,111,108,117, 97, 95,116,111, 39, 46, 46,116, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 50, 44, 39, 44,100,101,102, 44, 39, 41, 41, 39, 41, 10, 9, 9, 9,101,108,115,101, 10, 9, 9, 9, 9,108,111, 99, 97,108, 32,116,111, 95,102,117,110, 99, 32, 61, 32,103,101,116, 95, 116,111, 95,102,117,110, 99,116,105,111,110, 40,115,101,108, 102, 46,116,121,112,101, 41, 10, 9, 9, 9, 9,111,117,116, 112,117,116, 40,116,111, 95,102,117,110, 99, 44, 39, 40,116, 111,108,117, 97, 95, 83, 44, 50, 44, 39, 44,100,101,102, 44, 39, 41, 41, 39, 41, 10, 9, 9, 9,101,110,100, 10, 9, 9, 9,105,102, 32,112,114,111,112, 95,115,101,116, 32,116,104, 101,110, 10, 9, 9, 9, 9,111,117,116,112,117,116, 40, 34, 41, 34, 41, 10, 9, 9, 9,101,110,100, 10, 9, 9, 9,111, 117,116,112,117,116, 40, 34, 59, 34, 41, 10, 9, 9,101,110, 100, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32,114,101, 116,117,114,110, 32, 48, 59, 39, 41, 10, 32, 32,111,117,116, 112,117,116, 40, 39,125, 39, 41, 10, 32, 32,111,117,116,112, 117,116, 40, 39, 35,101,110,100,105,102, 32, 47, 47, 35,105, 102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 92,110, 39, 41, 10, 32, 32,111,117,116,112, 117,116, 40, 39, 92,110, 39, 41, 10, 32,101,110,100, 10, 10, 101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32, 99, 108, 97,115,115, 86, 97,114,105, 97, 98,108,101, 58,114,101, 103,105,115,116,101,114, 32, 40,112,114,101, 41, 10, 10, 9, 105,102, 32,110,111,116, 32,115,101,108,102, 58, 99,104,101, 99,107, 95,112,117, 98,108,105, 99, 95, 97, 99, 99,101,115, 115, 40, 41, 32,116,104,101,110, 10, 9, 9,114,101,116,117, 114,110, 10, 9,101,110,100, 10, 32,112,114,101, 32, 61, 32, 112,114,101, 32,111,114, 32, 39, 39, 10, 32,108,111, 99, 97, 108, 32,112, 97,114,101,110,116, 32, 61, 32,115,101,108,102, 58,105,110,109,111,100,117,108,101, 40, 41, 32,111,114, 32, 115,101,108,102, 58,105,110,110, 97,109,101,115,112, 97, 99, 101, 40, 41, 32,111,114, 32,115,101,108,102, 58,105,110, 99, 108, 97,115,115, 40, 41, 10, 32,105,102, 32,110,111,116, 32, 112, 97,114,101,110,116, 32,116,104,101,110, 10, 32, 32,105, 102, 32, 99,108, 97,115,115, 86, 97,114,105, 97, 98,108,101, 46, 95,119, 97,114,110,105,110,103, 61, 61,110,105,108, 32, 116,104,101,110, 10, 32, 32, 32,119, 97,114,110,105,110,103, 40, 34, 77, 97,112,112,105,110,103, 32,118, 97,114,105, 97, 98,108,101, 32,116,111, 32,103,108,111, 98, 97,108, 32,109, 97,121, 32,100,101,103,114, 97,100,101, 32,112,101,114,102, 111,114,109, 97,110, 99,101, 34, 41, 10, 32, 32, 32, 99,108, 97,115,115, 86, 97,114,105, 97, 98,108,101, 46, 95,119, 97, 114,110,105,110,103, 32, 61, 32, 49, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 32,105,102, 32,115,101,108,102, 46, 99,115,101,116,110, 97,109,101, 32,116,104,101,110, 10, 32, 32,111,117,116,112,117,116, 40,112,114,101, 46, 46, 39,116, 111,108,117, 97, 95,118, 97,114,105, 97, 98,108,101, 40,116, 111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101,108,102, 46,108,110, 97,109,101, 46, 46, 39, 34, 44, 39, 46, 46,115, 101,108,102, 46, 99,103,101,116,110, 97,109,101, 46, 46, 39, 44, 39, 46, 46,115,101,108,102, 46, 99,115,101,116,110, 97, 109,101, 46, 46, 39, 41, 59, 39, 41, 10, 32,101,108,115,101, 10, 32, 32,111,117,116,112,117,116, 40,112,114,101, 46, 46, 39,116,111,108,117, 97, 95,118, 97,114,105, 97, 98,108,101, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101, 108,102, 46,108,110, 97,109,101, 46, 46, 39, 34, 44, 39, 46, 46,115,101,108,102, 46, 99,103,101,116,110, 97,109,101, 46, 46, 39, 44, 78, 85, 76, 76, 41, 59, 39, 41, 10, 32,101,110, 100, 10,101,110,100, 10, 10, 45, 45, 32, 73,110,116,101,114, 110, 97,108, 32, 99,111,110,115,116,114,117, 99,116,111,114, 10,102,117,110, 99,116,105,111,110, 32, 95, 86, 97,114,105, 97, 98,108,101, 32, 40,116, 41, 10, 32,115,101,116,109,101, 116, 97,116, 97, 98,108,101, 40,116, 44, 99,108, 97,115,115, 86, 97,114,105, 97, 98,108,101, 41, 10, 32, 97,112,112,101, 110,100, 40,116, 41, 10, 32,114,101,116,117,114,110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32, 67,111,110,115,116,114, 117, 99,116,111,114, 10, 45, 45, 32, 69,120,112,101, 99,116, 115, 32, 97, 32,115,116,114,105,110,103, 32,114,101,112,114, 101,115,101,110,116,105,110,103, 32,116,104,101, 32,118, 97, 114,105, 97, 98,108,101, 32,100,101, 99,108, 97,114, 97,116, 105,111,110, 46, 10,102,117,110, 99,116,105,111,110, 32, 86, 97,114,105, 97, 98,108,101, 32, 40,115, 41, 10, 32,114,101, 116,117,114,110, 32, 95, 86, 97,114,105, 97, 98,108,101, 32, 40, 68,101, 99,108, 97,114, 97,116,105,111,110, 40,115, 44, 39,118, 97,114, 39, 41, 41, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/variable.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32, 97,114,114, 97,121, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114,105,116,116, 101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97, 102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117, 108, 32, 49, 57, 57, 57, 10, 45, 45, 32, 36, 73,100, 58, 32, 97,114,114, 97,121, 46,108,117, 97, 44,118, 32, 49, 46, 49, 32, 50, 48, 48, 48, 47, 49, 49, 47, 48, 54, 32, 50, 50, 58, 48, 51, 58, 53, 55, 32, 99,101,108,101,115, 32, 69,120,112, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111,100, 101, 32,105,115, 32,102,114,101,101, 32,115,111,102,116,119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32,114,101, 100,105,115,116,114,105, 98,117,116,101, 32,105,116, 32, 97, 110,100, 47,111,114, 32,109,111,100,105,102,121, 32,105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116,119, 97, 114,101, 32,112,114,111,118,105,100,101,100, 32,104,101,114, 101,117,110,100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97,117,116, 104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98,108,105, 103, 97,116,105,111,110, 32,116,111, 32,112,114,111,118,105, 100,101, 32,109, 97,105,110,116,101,110, 97,110, 99,101, 44, 32,115,117,112,112,111,114,116, 44, 32,117,112,100, 97,116, 101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,101,109, 101,110,116,115, 44, 32,111,114, 32,109,111,100,105,102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 45, 45, 32, 65, 114,114, 97,121, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82, 101,112,114,101,115,101,110,116,115, 32, 97, 32,101,120,116, 101,114,110, 32, 97,114,114, 97,121, 32,118, 97,114,105, 97, 98,108,101, 32,111,114, 32, 97, 32,112,117, 98,108,105, 99, 32,109,101,109, 98,101,114, 32,111,102, 32, 97, 32, 99,108, 97,115,115, 46, 10, 45, 45, 32, 83,116,111,114,101,115, 32, 97,108,108, 32,102,105,101,108,100,115, 32,112,114,101,115, 101,110,116, 32,105,110, 32, 97, 32,100,101, 99,108, 97,114, 97,116,105,111,110, 46, 10, 99,108, 97,115,115, 65,114,114, 97,121, 32, 61, 32,123, 10,125, 10, 99,108, 97,115,115, 65, 114,114, 97,121, 46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97,115,115, 65,114,114, 97,121, 10,115,101,116,109, 101,116, 97,116, 97, 98,108,101, 40, 99,108, 97,115,115, 65, 114,114, 97,121, 44, 99,108, 97,115,115, 68,101, 99,108, 97, 114, 97,116,105,111,110, 41, 10, 10, 45, 45, 32, 80,114,105, 110,116, 32,109,101,116,104,111,100, 10,102,117,110, 99,116, 105,111,110, 32, 99,108, 97,115,115, 65,114,114, 97,121, 58, 112,114,105,110,116, 32, 40,105,100,101,110,116, 44, 99,108, 111,115,101, 41, 10, 32,112,114,105,110,116, 40,105,100,101, 110,116, 46, 46, 34, 65,114,114, 97,121,123, 34, 41, 10, 32, 112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 109,111,100, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,109,111,100, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114, 105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,116,121, 112,101, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,116, 121,112,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105, 110,116, 40,105,100,101,110,116, 46, 46, 34, 32,112,116,114, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,112,116, 114, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40, 105,100,101,110,116, 46, 46, 34, 32,100,101,102, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,100,101,102, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100, 101,110,116, 46, 46, 34, 32,100,105,109, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,100,105,109, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110, 116, 46, 46, 34, 32,114,101,116, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,114,101,116, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34,125, 34, 46, 46, 99,108,111,115,101, 41, 10,101,110, 100, 10, 10, 45, 45, 32, 99,104,101, 99,107, 32,105,102, 32, 105,116, 32,105,115, 32, 97, 32,118, 97,114,105, 97, 98,108, 101, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115, 115, 65,114,114, 97,121, 58,105,115,118, 97,114,105, 97, 98, 108,101, 32, 40, 41, 10, 32,114,101,116,117,114,110, 32,116, 114,117,101, 10,101,110,100, 10, 10, 10, 45, 45, 32,103,101, 116, 32,118, 97,114,105, 97, 98,108,101, 32,118, 97,108,117, 101, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115, 115, 65,114,114, 97,121, 58,103,101,116,118, 97,108,117,101, 32, 40, 99,108, 97,115,115, 44,115,116, 97,116,105, 99, 41, 10, 32,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32, 115,116, 97,116,105, 99, 32,116,104,101,110, 10, 32, 32,114, 101,116,117,114,110, 32, 99,108, 97,115,115, 46, 46, 39, 58, 58, 39, 46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46, 39, 91,116,111,108,117, 97, 95,105,110,100,101,120, 93, 39, 10, 32,101,108,115,101,105,102, 32, 99,108, 97,115,115, 32, 116,104,101,110, 10, 32, 32,114,101,116,117,114,110, 32, 39, 115,101,108,102, 45, 62, 39, 46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46, 39, 91,116,111,108,117, 97, 95,105,110, 100,101,120, 93, 39, 10, 32,101,108,115,101, 10, 32, 32,114, 101,116,117,114,110, 32,115,101,108,102, 46,110, 97,109,101, 46, 46, 39, 91,116,111,108,117, 97, 95,105,110,100,101,120, 93, 39, 10, 32,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 87,114,105,116,101, 32, 98,105,110,100,105,110,103, 32, 102,117,110, 99,116,105,111,110,115, 10,102,117,110, 99,116, 105,111,110, 32, 99,108, 97,115,115, 65,114,114, 97,121, 58, 115,117,112, 99,111,100,101, 32, 40, 41, 10, 32,108,111, 99, 97,108, 32, 99,108, 97,115,115, 32, 61, 32,115,101,108,102, 58,105,110, 99,108, 97,115,115, 40, 41, 10, 10, 32, 45, 45, 32,103,101,116, 32,102,117,110, 99,116,105,111,110, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 32,105,102, 32, 99,108, 97,115,115, 32,116,104, 101,110, 10, 32, 32,111,117,116,112,117,116, 40, 34, 47, 42, 32,103,101,116, 32,102,117,110, 99,116,105,111,110, 58, 34, 44,115,101,108,102, 46,110, 97,109,101, 44, 34, 32,111,102, 32, 99,108, 97,115,115, 32, 34, 44, 99,108, 97,115,115, 44, 34, 32, 42, 47, 34, 41, 10, 32,101,108,115,101, 10, 32, 32, 111,117,116,112,117,116, 40, 34, 47, 42, 32,103,101,116, 32, 102,117,110, 99,116,105,111,110, 58, 34, 44,115,101,108,102, 46,110, 97,109,101, 44, 34, 32, 42, 47, 34, 41, 10, 32,101, 110,100, 10, 32,115,101,108,102, 46, 99,103,101,116,110, 97, 109,101, 32, 61, 32,115,101,108,102, 58, 99,102,117,110, 99, 110, 97,109,101, 40, 34,116,111,108,117, 97, 95,103,101,116, 34, 41, 10, 32,111,117,116,112,117,116, 40, 34, 35,105,102, 110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 95, 34, 46, 46,115,101,108,102, 46, 99,103,101, 116,110, 97,109,101, 41, 10, 32,111,117,116,112,117,116, 40, 34, 92,110,115,116, 97,116,105, 99, 32,105,110,116, 34, 44, 115,101,108,102, 46, 99,103,101,116,110, 97,109,101, 44, 34, 40,108,117, 97, 95, 83,116, 97,116,101, 42, 32,116,111,108, 117, 97, 95, 83, 41, 34, 41, 10, 32,111,117,116,112,117,116, 40, 34,123, 34, 41, 10, 32,111,117,116,112,117,116, 40, 34, 32,105,110,116, 32,116,111,108,117, 97, 95,105,110,100,101, 120, 59, 34, 41, 10, 10, 32, 45, 45, 32,100,101, 99,108, 97, 114,101, 32,115,101,108,102, 44, 32,105,102, 32,116,104,101, 32, 99, 97,115,101, 10, 32,108,111, 99, 97,108, 32, 95, 44, 95, 44,115,116, 97,116,105, 99, 32, 61, 32,115,116,114,102, 105,110,100, 40,115,101,108,102, 46,109,111,100, 44, 39, 94, 37,115, 42, 40,115,116, 97,116,105, 99, 41, 39, 41, 10, 32, 105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,115,116, 97,116,105, 99, 61, 61,110,105,108, 32,116,104,101,110, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 39, 44,115,101, 108,102, 46,112, 97,114,101,110,116, 46,116,121,112,101, 44, 39, 42, 39, 44, 39,115,101,108,102, 59, 39, 41, 10, 32, 32, 111,117,116,112,117,116, 40, 39, 32,108,117, 97, 95,112,117, 115,104,115,116,114,105,110,103, 40,116,111,108,117, 97, 95, 83, 44, 34, 46,115,101,108,102, 34, 41, 59, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32,108,117, 97, 95,114, 97,119,103,101,116, 40,116,111,108,117, 97, 95, 83, 44, 49, 41, 59, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32,115,101,108,102, 32, 61, 32, 39, 41, 10, 32, 32,111,117, 116,112,117,116, 40, 39, 40, 39, 44,115,101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112,101, 44, 39, 42, 41, 32, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39,108,117, 97, 95,116,111,117,115,101,114,100, 97,116, 97, 40,116,111, 108,117, 97, 95, 83, 44, 45, 49, 41, 59, 39, 41, 10, 32,101, 108,115,101,105,102, 32,115,116, 97,116,105, 99, 32,116,104, 101,110, 10, 32, 32, 95, 44, 95, 44,115,101,108,102, 46,109, 111,100, 32, 61, 32,115,116,114,102,105,110,100, 40,115,101, 108,102, 46,109,111,100, 44, 39, 94, 37,115, 42,115,116, 97, 116,105, 99, 37,115, 37,115, 42, 40, 46, 42, 41, 39, 41, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32, 99,104,101, 99,107, 32,105,110,100,101,120, 10, 9,111,117,116,112,117,116, 40, 39, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, 9,111,117, 116,112,117,116, 40, 39, 32,123, 39, 41, 10, 9,111,117,116, 112,117,116, 40, 39, 32, 32,116,111,108,117, 97, 95, 69,114, 114,111,114, 32,116,111,108,117, 97, 95,101,114,114, 59, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39, 32, 32,105,102, 32, 40, 33,116,111,108,117, 97, 95,105,115,110,117,109, 98, 101,114, 40,116,111,108,117, 97, 95, 83, 44, 50, 44, 48, 44, 38,116,111,108,117, 97, 95,101,114,114, 41, 41, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32,116,111,108, 117, 97, 95,101,114,114,111,114, 40,116,111,108,117, 97, 95, 83, 44, 34, 35,118,105,110,118, 97,108,105,100, 32,116,121, 112,101, 32,105,110, 32, 97,114,114, 97,121, 32,105,110,100, 101,120,105,110,103, 46, 34, 44, 38,116,111,108,117, 97, 95, 101,114,114, 41, 59, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 32,125, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10, 9,105,102, 32,102,108, 97,103,115, 91, 39, 49, 39, 93, 32,116,104,101, 110, 32, 45, 45, 32,102,111,114, 32, 99,111,109,112, 97,116, 105, 98,105,108,105,116,121, 32,119,105,116,104, 32,116,111, 108,117, 97, 53, 32, 63, 10, 9, 9,111,117,116,112,117,116, 40, 39, 32,116,111,108,117, 97, 95,105,110,100,101,120, 32, 61, 32, 40,105,110,116, 41,116,111,108,117, 97, 95,116,111, 110,117,109, 98,101,114, 40,116,111,108,117, 97, 95, 83, 44, 50, 44, 48, 41, 45, 49, 59, 39, 41, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,112,117,116, 40, 39, 32,116,111,108, 117, 97, 95,105,110,100,101,120, 32, 61, 32, 40,105,110,116, 41,116,111,108,117, 97, 95,116,111,110,117,109, 98,101,114, 40,116,111,108,117, 97, 95, 83, 44, 50, 44, 48, 41, 59, 39, 41, 10, 9,101,110,100, 10, 9,111,117,116,112,117,116, 40, 39, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, 9,105,102, 32,115,101,108,102, 46,100,105,109, 32, 97,110,100, 32,115, 101,108,102, 46,100,105,109, 32,126, 61, 32, 39, 39, 32,116, 104,101,110, 10, 9, 32, 32,111,117,116,112,117,116, 40, 39, 32,105,102, 32, 40,116,111,108,117, 97, 95,105,110,100,101, 120, 60, 48, 32,124,124, 32,116,111,108,117, 97, 95,105,110, 100,101,120, 62, 61, 39, 46, 46,115,101,108,102, 46,100,105, 109, 46, 46, 39, 41, 39, 41, 10, 9,101,108,115,101, 10, 9, 32, 32,111,117,116,112,117,116, 40, 39, 32,105,102, 32, 40, 116,111,108,117, 97, 95,105,110,100,101,120, 60, 48, 41, 39, 41, 10, 9,101,110,100, 10, 32,111,117,116,112,117,116, 40, 39, 32, 32,116,111,108,117, 97, 95,101,114,114,111,114, 40, 116,111,108,117, 97, 95, 83, 44, 34, 97,114,114, 97,121, 32, 105,110,100,101,120,105,110,103, 32,111,117,116, 32,111,102, 32,114, 97,110,103,101, 46, 34, 44, 78, 85, 76, 76, 41, 59, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 35,101,110, 100,105,102, 92,110, 39, 41, 10, 10, 32, 45, 45, 32,114,101, 116,117,114,110, 32,118, 97,108,117,101, 10, 32,108,111, 99, 97,108, 32,116, 44, 99,116, 32, 61, 32,105,115, 98, 97,115, 105, 99, 40,115,101,108,102, 46,116,121,112,101, 41, 10, 32, 108,111, 99, 97,108, 32,112,117,115,104, 95,102,117,110, 99, 32, 61, 32,103,101,116, 95,112,117,115,104, 95,102,117,110, 99,116,105,111,110, 40,116, 41, 10, 32,105,102, 32,116, 32, 116,104,101,110, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32,116,111,108,117, 97, 95,112,117,115,104, 39, 46, 46,116, 46, 46, 39, 40,116,111,108,117, 97, 95, 83, 44, 40, 39, 44, 99,116, 44, 39, 41, 39, 46, 46,115,101,108,102, 58,103,101, 116,118, 97,108,117,101, 40, 99,108, 97,115,115, 44,115,116, 97,116,105, 99, 41, 46, 46, 39, 41, 59, 39, 41, 10, 32,101, 108,115,101, 10, 9, 9,116, 32, 61, 32,115,101,108,102, 46, 116,121,112,101, 10, 32, 32,105,102, 32,115,101,108,102, 46, 112,116,114, 32, 61, 61, 32, 39, 38, 39, 32,111,114, 32,115, 101,108,102, 46,112,116,114, 32, 61, 61, 32, 39, 39, 32,116, 104,101,110, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 39, 44,112,117,115,104, 95,102,117,110, 99, 44, 39, 40, 116,111,108,117, 97, 95, 83, 44, 40,118,111,105,100, 42, 41, 38, 39, 46, 46,115,101,108,102, 58,103,101,116,118, 97,108, 117,101, 40, 99,108, 97,115,115, 44,115,116, 97,116,105, 99, 41, 46, 46, 39, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10, 32, 32,101,108,115,101, 10, 32, 32, 32,111,117,116, 112,117,116, 40, 39, 32, 39, 44,112,117,115,104, 95,102,117, 110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 40,118, 111,105,100, 42, 41, 39, 46, 46,115,101,108,102, 58,103,101, 116,118, 97,108,117,101, 40, 99,108, 97,115,115, 44,115,116, 97,116,105, 99, 41, 46, 46, 39, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10, 32, 32,101,110,100, 10, 32,101,110, 100, 10, 32,111,117,116,112,117,116, 40, 39, 32,114,101,116, 117,114,110, 32, 49, 59, 39, 41, 10, 32,111,117,116,112,117, 116, 40, 39,125, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39, 35,101,110,100,105,102, 32, 47, 47, 35,105,102,110,100, 101,102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 92,110, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39, 92,110, 39, 41, 10, 10, 32, 45, 45, 32,115,101,116, 32,102, 117,110, 99,116,105,111,110, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 32,105,102, 32,110,111,116, 32,115,116,114,102,105,110,100, 40,115,101, 108,102, 46,116,121,112,101, 44, 39, 99,111,110,115,116, 39, 41, 32,116,104,101,110, 10, 32, 32,105,102, 32, 99,108, 97, 115,115, 32,116,104,101,110, 10, 32, 32, 32,111,117,116,112, 117,116, 40, 34, 47, 42, 32,115,101,116, 32,102,117,110, 99, 116,105,111,110, 58, 34, 44,115,101,108,102, 46,110, 97,109, 101, 44, 34, 32,111,102, 32, 99,108, 97,115,115, 32, 34, 44, 99,108, 97,115,115, 44, 34, 32, 42, 47, 34, 41, 10, 32, 32, 101,108,115,101, 10, 32, 32, 32,111,117,116,112,117,116, 40, 34, 47, 42, 32,115,101,116, 32,102,117,110, 99,116,105,111, 110, 58, 34, 44,115,101,108,102, 46,110, 97,109,101, 44, 34, 32, 42, 47, 34, 41, 10, 32, 32,101,110,100, 10, 32, 32,115, 101,108,102, 46, 99,115,101,116,110, 97,109,101, 32, 61, 32, 115,101,108,102, 58, 99,102,117,110, 99,110, 97,109,101, 40, 34,116,111,108,117, 97, 95,115,101,116, 34, 41, 10, 32, 32, 111,117,116,112,117,116, 40, 34, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 95, 34, 46, 46,115,101,108,102, 46, 99,115,101,116,110, 97,109, 101, 41, 10, 32, 32,111,117,116,112,117,116, 40, 34, 92,110, 115,116, 97,116,105, 99, 32,105,110,116, 34, 44,115,101,108, 102, 46, 99,115,101,116,110, 97,109,101, 44, 34, 40,108,117, 97, 95, 83,116, 97,116,101, 42, 32,116,111,108,117, 97, 95, 83, 41, 34, 41, 10, 32, 32,111,117,116,112,117,116, 40, 34, 123, 34, 41, 10, 10, 32, 32, 45, 45, 32,100,101, 99,108, 97, 114,101, 32,105,110,100,101,120, 10, 32, 32,111,117,116,112, 117,116, 40, 39, 32,105,110,116, 32,116,111,108,117, 97, 95, 105,110,100,101,120, 59, 39, 41, 10, 10, 32, 32, 45, 45, 32, 100,101, 99,108, 97,114,101, 32,115,101,108,102, 44, 32,105, 102, 32,116,104,101, 32, 99, 97,115,101, 10, 32, 32,108,111, 99, 97,108, 32, 95, 44, 95, 44,115,116, 97,116,105, 99, 32, 61, 32,115,116,114,102,105,110,100, 40,115,101,108,102, 46, 109,111,100, 44, 39, 94, 37,115, 42, 40,115,116, 97,116,105, 99, 41, 39, 41, 10, 32, 32,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,115,116, 97,116,105, 99, 61, 61,110,105, 108, 32,116,104,101,110, 10, 32, 32, 32,111,117,116,112,117, 116, 40, 39, 32, 39, 44,115,101,108,102, 46,112, 97,114,101, 110,116, 46,116,121,112,101, 44, 39, 42, 39, 44, 39,115,101, 108,102, 59, 39, 41, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32,108,117, 97, 95,112,117,115,104,115,116,114,105, 110,103, 40,116,111,108,117, 97, 95, 83, 44, 34, 46,115,101, 108,102, 34, 41, 59, 39, 41, 10, 32, 32, 32,111,117,116,112, 117,116, 40, 39, 32,108,117, 97, 95,114, 97,119,103,101,116, 40,116,111,108,117, 97, 95, 83, 44, 49, 41, 59, 39, 41, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32,115,101,108, 102, 32, 61, 32, 39, 41, 10, 32, 32, 32,111,117,116,112,117, 116, 40, 39, 40, 39, 44,115,101,108,102, 46,112, 97,114,101, 110,116, 46,116,121,112,101, 44, 39, 42, 41, 32, 39, 41, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39,108,117, 97, 95, 116,111,117,115,101,114,100, 97,116, 97, 40,116,111,108,117, 97, 95, 83, 44, 45, 49, 41, 59, 39, 41, 10, 32, 32,101,108, 115,101,105,102, 32,115,116, 97,116,105, 99, 32,116,104,101, 110, 10, 32, 32, 32, 95, 44, 95, 44,115,101,108,102, 46,109, 111,100, 32, 61, 32,115,116,114,102,105,110,100, 40,115,101, 108,102, 46,109,111,100, 44, 39, 94, 37,115, 42,115,116, 97, 116,105, 99, 37,115, 37,115, 42, 40, 46, 42, 41, 39, 41, 10, 32, 32,101,110,100, 10, 10, 32, 32, 45, 45, 32, 99,104,101, 99,107, 32,105,110,100,101,120, 10, 9, 32,111,117,116,112, 117,116, 40, 39, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, 9, 32,111,117,116,112,117,116, 40, 39, 32,123, 39, 41, 10, 9, 32,111,117,116,112,117,116, 40, 39, 32, 32,116,111,108, 117, 97, 95, 69,114,114,111,114, 32,116,111,108,117, 97, 95, 101,114,114, 59, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32,105,102, 32, 40, 33,116,111,108,117, 97, 95, 105,115,110,117,109, 98,101,114, 40,116,111,108,117, 97, 95, 83, 44, 50, 44, 48, 44, 38,116,111,108,117, 97, 95,101,114, 114, 41, 41, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32,116,111,108,117, 97, 95,101,114,114,111,114, 40,116,111,108,117, 97, 95, 83, 44, 34, 35,118,105,110,118, 97,108,105,100, 32,116,121,112,101, 32,105,110, 32, 97,114, 114, 97,121, 32,105,110,100,101,120,105,110,103, 46, 34, 44, 38,116,111,108,117, 97, 95,101,114,114, 41, 59, 39, 41, 10, 9, 9,111,117,116,112,117,116, 40, 39, 32,125, 39, 41, 10, 9, 9,111,117,116,112,117,116, 40, 39, 35,101,110,100,105, 102, 92,110, 39, 41, 10, 10, 9,105,102, 32,102,108, 97,103, 115, 91, 39, 49, 39, 93, 32,116,104,101,110, 32, 45, 45, 32, 102,111,114, 32, 99,111,109,112, 97,116,105, 98,105,108,105, 116,121, 32,119,105,116,104, 32,116,111,108,117, 97, 53, 32, 63, 10, 9, 9,111,117,116,112,117,116, 40, 39, 32,116,111, 108,117, 97, 95,105,110,100,101,120, 32, 61, 32, 40,105,110, 116, 41,116,111,108,117, 97, 95,116,111,110,117,109, 98,101, 114, 40,116,111,108,117, 97, 95, 83, 44, 50, 44, 48, 41, 45, 49, 59, 39, 41, 10, 9,101,108,115,101, 10, 9, 9,111,117, 116,112,117,116, 40, 39, 32,116,111,108,117, 97, 95,105,110, 100,101,120, 32, 61, 32, 40,105,110,116, 41,116,111,108,117, 97, 95,116,111,110,117,109, 98,101,114, 40,116,111,108,117, 97, 95, 83, 44, 50, 44, 48, 41, 59, 39, 41, 10, 9,101,110, 100, 10, 10, 9, 32,111,117,116,112,117,116, 40, 39, 35,105, 102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, 9,105,102, 32,115,101, 108,102, 46,100,105,109, 32, 97,110,100, 32,115,101,108,102, 46,100,105,109, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10, 9, 32, 32,111,117,116,112,117,116, 40, 39, 32,105,102, 32, 40,116,111,108,117, 97, 95,105,110,100,101,120, 60, 48, 32,124,124, 32,116,111,108,117, 97, 95,105,110,100,101,120, 62, 61, 39, 46, 46,115,101,108,102, 46,100,105,109, 46, 46, 39, 41, 39, 41, 10, 9,101,108,115,101, 10, 9, 32, 32,111, 117,116,112,117,116, 40, 39, 32,105,102, 32, 40,116,111,108, 117, 97, 95,105,110,100,101,120, 60, 48, 41, 39, 41, 10, 9, 101,110,100, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32,116,111,108,117, 97, 95,101,114,114,111,114, 40,116,111, 108,117, 97, 95, 83, 44, 34, 97,114,114, 97,121, 32,105,110, 100,101,120,105,110,103, 32,111,117,116, 32,111,102, 32,114, 97,110,103,101, 46, 34, 44, 78, 85, 76, 76, 41, 59, 39, 41, 10, 9, 9,111,117,116,112,117,116, 40, 39, 35,101,110,100, 105,102, 92,110, 39, 41, 10, 10, 32, 32, 45, 45, 32, 97,115, 115,105,103,110, 32,118, 97,108,117,101, 10, 32, 32,108,111, 99, 97,108, 32,112,116,114, 32, 61, 32, 39, 39, 10, 32, 32, 105,102, 32,115,101,108,102, 46,112,116,114,126, 61, 39, 39, 32,116,104,101,110, 32,112,116,114, 32, 61, 32, 39, 42, 39, 32,101,110,100, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 39, 41, 10, 32, 32,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,115,116, 97,116,105, 99, 32,116,104,101,110, 10, 32, 32, 32,111,117,116,112,117,116, 40, 99,108, 97,115, 115, 46, 46, 39, 58, 58, 39, 46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46, 39, 91,116,111,108,117, 97, 95,105,110, 100,101,120, 93, 39, 41, 10, 32, 32,101,108,115,101,105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 10, 32, 32, 32, 111,117,116,112,117,116, 40, 39,115,101,108,102, 45, 62, 39, 46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46, 39, 91, 116,111,108,117, 97, 95,105,110,100,101,120, 93, 39, 41, 10, 32, 32,101,108,115,101, 10, 32, 32, 32,111,117,116,112,117, 116, 40,115,101,108,102, 46,110, 97,109,101, 46, 46, 39, 91, 116,111,108,117, 97, 95,105,110,100,101,120, 93, 39, 41, 10, 32, 32,101,110,100, 10, 32, 32,108,111, 99, 97,108, 32,116, 32, 61, 32,105,115, 98, 97,115,105, 99, 40,115,101,108,102, 46,116,121,112,101, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 61, 32, 39, 41, 10, 32, 32,105,102, 32,110,111, 116, 32,116, 32, 97,110,100, 32,112,116,114, 61, 61, 39, 39, 32,116,104,101,110, 32,111,117,116,112,117,116, 40, 39, 42, 39, 41, 32,101,110,100, 10, 32, 32,111,117,116,112,117,116, 40, 39, 40, 40, 39, 44,115,101,108,102, 46,109,111,100, 44, 115,101,108,102, 46,116,121,112,101, 41, 10, 32, 32,105,102, 32,110,111,116, 32,116, 32,116,104,101,110, 10, 32, 32, 32, 111,117,116,112,117,116, 40, 39, 42, 39, 41, 10, 32, 32,101, 110,100, 10, 32, 32,111,117,116,112,117,116, 40, 39, 41, 32, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32,100,101,102, 32, 61, 32, 48, 10, 32, 32,105,102, 32,115,101,108,102, 46,100, 101,102, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 32,100, 101,102, 32, 61, 32,115,101,108,102, 46,100,101,102, 32,101, 110,100, 10, 32, 32,105,102, 32,116, 32,116,104,101,110, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39,116,111,108,117, 97, 95,116,111, 39, 46, 46,116, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 51, 44, 39, 44,100,101,102, 44, 39, 41, 41, 59, 39, 41, 10, 32, 32,101,108,115,101, 10, 32, 32, 32,108, 111, 99, 97,108, 32,116,111, 95,102,117,110, 99, 32, 61, 32, 103,101,116, 95,116,111, 95,102,117,110, 99,116,105,111,110, 40,115,101,108,102, 46,116,121,112,101, 41, 10, 32, 32, 32, 111,117,116,112,117,116, 40,116,111, 95,102,117,110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 51, 44, 39, 44,100, 101,102, 44, 39, 41, 41, 59, 39, 41, 10, 32, 32,101,110,100, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32,114,101,116, 117,114,110, 32, 48, 59, 39, 41, 10, 32, 32,111,117,116,112, 117,116, 40, 39,125, 39, 41, 10, 32, 32,111,117,116,112,117, 116, 40, 39, 35,101,110,100,105,102, 32, 47, 47, 35,105,102, 110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 92,110, 39, 41, 10, 32, 32,111,117,116,112,117, 116, 40, 39, 92,110, 39, 41, 10, 32,101,110,100, 10, 10,101, 110,100, 10, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 65,114,114, 97,121, 58,114,101,103,105,115,116, 101,114, 32, 40,112,114,101, 41, 10, 9,105,102, 32,110,111, 116, 32,115,101,108,102, 58, 99,104,101, 99,107, 95,112,117, 98,108,105, 99, 95, 97, 99, 99,101,115,115, 40, 41, 32,116, 104,101,110, 10, 9, 9,114,101,116,117,114,110, 10, 9,101, 110,100, 10, 10, 32,112,114,101, 32, 61, 32,112,114,101, 32, 111,114, 32, 39, 39, 10, 32,105,102, 32,115,101,108,102, 46, 99,115,101,116,110, 97,109,101, 32,116,104,101,110, 10, 32, 32,111,117,116,112,117,116, 40,112,114,101, 46, 46, 39,116, 111,108,117, 97, 95, 97,114,114, 97,121, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101,108,102, 46,108,110, 97,109,101, 46, 46, 39, 34, 44, 39, 46, 46,115,101,108,102, 46, 99,103,101,116,110, 97,109,101, 46, 46, 39, 44, 39, 46, 46,115,101,108,102, 46, 99,115,101,116,110, 97,109,101, 46, 46, 39, 41, 59, 39, 41, 10, 32,101,108,115,101, 10, 32, 32, 111,117,116,112,117,116, 40,112,114,101, 46, 46, 39,116,111, 108,117, 97, 95, 97,114,114, 97,121, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101,108,102, 46,108,110, 97, 109,101, 46, 46, 39, 34, 44, 39, 46, 46,115,101,108,102, 46, 99,103,101,116,110, 97,109,101, 46, 46, 39, 44, 78, 85, 76, 76, 41, 59, 39, 41, 10, 32,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 73,110,116,101,114,110, 97,108, 32, 99,111, 110,115,116,114,117, 99,116,111,114, 10,102,117,110, 99,116, 105,111,110, 32, 95, 65,114,114, 97,121, 32, 40,116, 41, 10, 32,115,101,116,109,101,116, 97,116, 97, 98,108,101, 40,116, 44, 99,108, 97,115,115, 65,114,114, 97,121, 41, 10, 32, 97, 112,112,101,110,100, 40,116, 41, 10, 32,114,101,116,117,114, 110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32, 67,111,110, 115,116,114,117, 99,116,111,114, 10, 45, 45, 32, 69,120,112, 101, 99,116,115, 32, 97, 32,115,116,114,105,110,103, 32,114, 101,112,114,101,115,101,110,116,105,110,103, 32,116,104,101, 32,118, 97,114,105, 97, 98,108,101, 32,100,101, 99,108, 97, 114, 97,116,105,111,110, 46, 10,102,117,110, 99,116,105,111, 110, 32, 65,114,114, 97,121, 32, 40,115, 41, 10, 32,114,101, 116,117,114,110, 32, 95, 65,114,114, 97,121, 32, 40, 68,101, 99,108, 97,114, 97,116,105,111,110, 40,115, 44, 39,118, 97, 114, 39, 41, 41, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/array.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32,102,117,110, 99,116, 105,111,110, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114, 105,116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73, 100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99, 111,100,101, 32,105,115, 32,102,114,101,101, 32,115,111,102, 116,119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32, 114,101,100,105,115,116,114,105, 98,117,116,101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109,111,100,105,102,121, 32, 105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116, 119, 97,114,101, 32,112,114,111,118,105,100,101,100, 32,104, 101,114,101,117,110,100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105, 115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97, 117,116,104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98, 108,105,103, 97,116,105,111,110, 32,116,111, 32,112,114,111, 118,105,100,101, 32,109, 97,105,110,116,101,110, 97,110, 99, 101, 44, 32,115,117,112,112,111,114,116, 44, 32,117,112,100, 97,116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99, 101,109,101,110,116,115, 44, 32,111,114, 32,109,111,100,105, 102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 10, 45, 45, 32, 70,117,110, 99,116,105,111,110, 32, 99,108, 97,115, 115, 10, 45, 45, 32, 82,101,112,114,101,115,101,110,116,115, 32, 97, 32,102,117,110, 99,116,105,111,110, 32,111,114, 32, 97, 32, 99,108, 97,115,115, 32,109,101,116,104,111,100, 46, 10, 45, 45, 32, 84,104,101, 32,102,111,108,108,111,119,105, 110,103, 32,102,105,101,108,100,115, 32, 97,114,101, 32,115, 116,111,114,101,100, 58, 10, 45, 45, 32, 32,109,111,100, 32, 32, 61, 32,116,121,112,101, 32,109,111,100,105,102,105,101, 114,115, 10, 45, 45, 32, 32,116,121,112,101, 32, 61, 32,116, 121,112,101, 10, 45, 45, 32, 32,112,116,114, 32, 32, 61, 32, 34, 42, 34, 32,111,114, 32, 34, 38, 34, 44, 32,105,102, 32, 114,101,112,114,101,115,101,110,116,105,110,103, 32, 97, 32, 112,111,105,110,116,101,114, 32,111,114, 32, 97, 32,114,101, 102,101,114,101,110, 99,101, 10, 45, 45, 32, 32,110, 97,109, 101, 32, 61, 32,110, 97,109,101, 10, 45, 45, 32, 32,108,110, 97,109,101, 32, 61, 32,108,117, 97, 32,110, 97,109,101, 10, 45, 45, 32, 32, 97,114,103,115, 32, 32, 61, 32,108,105,115, 116, 32,111,102, 32, 97,114,103,117,109,101,110,116, 32,100, 101, 99,108, 97,114, 97,116,105,111,110,115, 10, 45, 45, 32, 32, 99,111,110,115,116, 32, 61, 32,105,102, 32,105,116, 32, 105,115, 32, 97, 32,109,101,116,104,111,100, 32,114,101, 99, 101,105,118,105,110,103, 32, 97, 32, 99,111,110,115,116, 32, 34,116,104,105,115, 34, 46, 10, 99,108, 97,115,115, 70,117, 110, 99,116,105,111,110, 32, 61, 32,123, 10, 32,109,111,100, 32, 61, 32, 39, 39, 44, 10, 32,116,121,112,101, 32, 61, 32, 39, 39, 44, 10, 32,112,116,114, 32, 61, 32, 39, 39, 44, 10, 32,110, 97,109,101, 32, 61, 32, 39, 39, 44, 10, 32, 97,114, 103,115, 32, 61, 32,123,110, 61, 48,125, 44, 10, 32, 99,111, 110,115,116, 32, 61, 32, 39, 39, 44, 10,125, 10, 99,108, 97, 115,115, 70,117,110, 99,116,105,111,110, 46, 95, 95,105,110, 100,101,120, 32, 61, 32, 99,108, 97,115,115, 70,117,110, 99, 116,105,111,110, 10,115,101,116,109,101,116, 97,116, 97, 98, 108,101, 40, 99,108, 97,115,115, 70,117,110, 99,116,105,111, 110, 44, 99,108, 97,115,115, 70,101, 97,116,117,114,101, 41, 10, 10, 45, 45, 32,100,101, 99,108, 97,114,101, 32,116, 97, 103,115, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97, 115,115, 70,117,110, 99,116,105,111,110, 58,100,101, 99,108, 116,121,112,101, 32, 40, 41, 10, 32,115,101,108,102, 46,116, 121,112,101, 32, 61, 32,116,121,112,101,118, 97,114, 40,115, 101,108,102, 46,116,121,112,101, 41, 10, 32,105,102, 32,115, 116,114,102,105,110,100, 40,115,101,108,102, 46,109,111,100, 44, 39, 99,111,110,115,116, 39, 41, 32,116,104,101,110, 10, 9, 32,115,101,108,102, 46,116,121,112,101, 32, 61, 32, 39, 99,111,110,115,116, 32, 39, 46, 46,115,101,108,102, 46,116, 121,112,101, 10, 9, 9,115,101,108,102, 46,109,111,100, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46,109,111,100, 44, 39, 99,111,110,115,116, 39, 44, 39, 39, 41, 10, 9,101, 110,100, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32, 119,104,105,108,101, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 32,100,111, 10, 32, 32,115,101,108,102, 46, 97, 114,103,115, 91,105, 93, 58,100,101, 99,108,116,121,112,101, 40, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101, 110,100, 10,101,110,100, 10, 10, 10, 45, 45, 32, 87,114,105, 116,101, 32, 98,105,110,100,105,110,103, 32,102,117,110, 99, 116,105,111,110, 10, 45, 45, 32, 79,117,116,112,117,116,115, 32, 67, 47, 67, 43, 43, 32, 98,105,110,100,105,110,103, 32, 102,117,110, 99,116,105,111,110, 46, 10,102,117,110, 99,116, 105,111,110, 32, 99,108, 97,115,115, 70,117,110, 99,116,105, 111,110, 58,115,117,112, 99,111,100,101, 32, 40,108,111, 99, 97,108, 95, 99,111,110,115,116,114,117, 99,116,111,114, 41, 10, 10, 32,108,111, 99, 97,108, 32,111,118,101,114,108,111, 97,100, 32, 61, 32,115,116,114,115,117, 98, 40,115,101,108, 102, 46, 99,110, 97,109,101, 44, 45, 50, 44, 45, 49, 41, 32, 45, 32, 49, 32, 32, 45, 45, 32,105,110,100,105, 99, 97,116, 101, 32,111,118,101,114,108,111, 97,100,101,100, 32,102,117, 110, 99, 10, 32,108,111, 99, 97,108, 32,110,114,101,116, 32, 61, 32, 48, 32, 32, 32, 32, 32, 32, 45, 45, 32,110,117,109, 98,101,114, 32,111,102, 32,114,101,116,117,114,110,101,100, 32,118, 97,108,117,101,115, 10, 32,108,111, 99, 97,108, 32, 99,108, 97,115,115, 32, 61, 32,115,101,108,102, 58,105,110, 99,108, 97,115,115, 40, 41, 10, 32,108,111, 99, 97,108, 32, 95, 44, 95, 44,115,116, 97,116,105, 99, 32, 61, 32,115,116, 114,102,105,110,100, 40,115,101,108,102, 46,109,111,100, 44, 39, 94, 37,115, 42, 40,115,116, 97,116,105, 99, 41, 39, 41, 10, 32,105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 10, 10, 32, 9,105,102, 32,115,101,108,102, 46,110, 97,109, 101, 32, 61, 61, 32, 39,110,101,119, 39, 32, 97,110,100, 32, 115,101,108,102, 46,112, 97,114,101,110,116, 46,102,108, 97, 103,115, 46,112,117,114,101, 95,118,105,114,116,117, 97,108, 32,116,104,101,110, 10, 32, 9, 9, 45, 45, 32,110,111, 32, 99,111,110,115,116,114,117, 99,116,111,114, 32,102,111,114, 32, 99,108, 97,115,115,101,115, 32,119,105,116,104, 32,112, 117,114,101, 32,118,105,114,116,117, 97,108, 32,109,101,116, 104,111,100,115, 10, 32, 9, 9,114,101,116,117,114,110, 10, 32, 9,101,110,100, 10, 10, 32, 9,105,102, 32,108,111, 99, 97,108, 95, 99,111,110,115,116,114,117, 99,116,111,114, 32, 116,104,101,110, 10, 9, 9,111,117,116,112,117,116, 40, 34, 47, 42, 32,109,101,116,104,111,100, 58, 32,110,101,119, 95, 108,111, 99, 97,108, 32,111,102, 32, 99,108, 97,115,115, 32, 34, 44, 99,108, 97,115,115, 44, 34, 32, 42, 47, 34, 41, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,112,117,116, 40, 34, 47, 42, 32,109,101,116,104,111,100, 58, 34, 44,115,101, 108,102, 46,110, 97,109,101, 44, 34, 32,111,102, 32, 99,108, 97,115,115, 32, 34, 44, 99,108, 97,115,115, 44, 34, 32, 42, 47, 34, 41, 10, 9,101,110,100, 10, 32,101,108,115,101, 10, 32, 32,111,117,116,112,117,116, 40, 34, 47, 42, 32,102,117, 110, 99,116,105,111,110, 58, 34, 44,115,101,108,102, 46,110, 97,109,101, 44, 34, 32, 42, 47, 34, 41, 10, 32,101,110,100, 10, 10, 32,105,102, 32,108,111, 99, 97,108, 95, 99,111,110, 115,116,114,117, 99,116,111,114, 32,116,104,101,110, 10, 32, 32,111,117,116,112,117,116, 40, 34, 35,105,102,110,100,101, 102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 95, 34, 46, 46,115,101,108,102, 46, 99,110, 97,109,101, 46, 46, 34, 95,108,111, 99, 97,108, 34, 41, 10, 32, 32,111,117, 116,112,117,116, 40, 34, 92,110,115,116, 97,116,105, 99, 32, 105,110,116, 34, 44,115,101,108,102, 46, 99,110, 97,109,101, 46, 46, 34, 95,108,111, 99, 97,108, 34, 44, 34, 40,108,117, 97, 95, 83,116, 97,116,101, 42, 32,116,111,108,117, 97, 95, 83, 41, 34, 41, 10, 32,101,108,115,101, 10, 32, 32,111,117, 116,112,117,116, 40, 34, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 95, 34, 46, 46,115,101,108,102, 46, 99,110, 97,109,101, 41, 10, 32, 32, 111,117,116,112,117,116, 40, 34, 92,110,115,116, 97,116,105, 99, 32,105,110,116, 34, 44,115,101,108,102, 46, 99,110, 97, 109,101, 44, 34, 40,108,117, 97, 95, 83,116, 97,116,101, 42, 32,116,111,108,117, 97, 95, 83, 41, 34, 41, 10, 32,101,110, 100, 10, 32,111,117,116,112,117,116, 40, 34,123, 34, 41, 10, 10, 32, 45, 45, 32, 99,104,101, 99,107, 32,116,121,112,101, 115, 10, 9,105,102, 32,111,118,101,114,108,111, 97,100, 32, 60, 32, 48, 32,116,104,101,110, 10, 9, 32,111,117,116,112, 117,116, 40, 39, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, 9,101,110,100, 10, 9,111,117,116,112,117,116, 40, 39, 32, 116,111,108,117, 97, 95, 69,114,114,111,114, 32,116,111,108, 117, 97, 95,101,114,114, 59, 39, 41, 10, 32,111,117,116,112, 117,116, 40, 39, 32,105,102, 32, 40, 92,110, 39, 41, 10, 32, 45, 45, 32, 99,104,101, 99,107, 32,115,101,108,102, 10, 32, 108,111, 99, 97,108, 32,110, 97,114,103, 10, 32,105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 32,110, 97,114,103, 61, 50, 32,101,108,115,101, 32,110, 97,114,103, 61, 49, 32, 101,110,100, 10, 32,105,102, 32, 99,108, 97,115,115, 32,116, 104,101,110, 10, 9, 9,108,111, 99, 97,108, 32,102,117,110, 99, 32, 61, 32,103,101,116, 95,105,115, 95,102,117,110, 99, 116,105,111,110, 40,115,101,108,102, 46,112, 97,114,101,110, 116, 46,116,121,112,101, 41, 10, 9, 9,108,111, 99, 97,108, 32,116,121,112,101, 32, 61, 32,115,101,108,102, 46,112, 97, 114,101,110,116, 46,116,121,112,101, 10, 9, 9,105,102, 32, 115,101,108,102, 46,110, 97,109,101, 61, 61, 39,110,101,119, 39, 32,111,114, 32,115,116, 97,116,105, 99,126, 61,110,105, 108, 32,116,104,101,110, 10, 9, 9, 9,102,117,110, 99, 32, 61, 32, 39,116,111,108,117, 97, 95,105,115,117,115,101,114, 116, 97, 98,108,101, 39, 10, 9, 9, 9,116,121,112,101, 32, 61, 32,115,101,108,102, 46,112, 97,114,101,110,116, 46,116, 121,112,101, 10, 9, 9,101,110,100, 10, 9, 9,105,102, 32, 115,101,108,102, 46, 99,111,110,115,116, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10, 9, 9, 9,116,121,112,101, 32, 61, 32, 34, 99,111,110,115,116, 32, 34, 46, 46,116,121,112, 101, 10, 9, 9,101,110,100, 10, 9, 9,111,117,116,112,117, 116, 40, 39, 32, 32, 32, 32, 32, 33, 39, 46, 46,102,117,110, 99, 46, 46, 39, 40,116,111,108,117, 97, 95, 83, 44, 49, 44, 34, 39, 46, 46,116,121,112,101, 46, 46, 39, 34, 44, 48, 44, 38,116,111,108,117, 97, 95,101,114,114, 41, 32,124,124, 92, 110, 39, 41, 10, 32,101,110,100, 10, 32, 45, 45, 32, 99,104, 101, 99,107, 32, 97,114,103,115, 10, 32,105,102, 32,115,101, 108,102, 46, 97,114,103,115, 91, 49, 93, 46,116,121,112,101, 32,126, 61, 32, 39,118,111,105,100, 39, 32,116,104,101,110, 10, 32, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32, 32, 119,104,105,108,101, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 32,100,111, 10, 32, 32, 32,108,111, 99, 97,108, 32, 98,116,121,112,101, 32, 61, 32,105,115, 98, 97,115,105, 99, 40,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 46, 116,121,112,101, 41, 10, 32, 32, 32,105,102, 32, 98,116,121, 112,101, 32,126, 61, 32, 39,118, 97,108,117,101, 39, 32, 97, 110,100, 32, 98,116,121,112,101, 32,126, 61, 32, 39,115,116, 97,116,101, 39, 32,116,104,101,110, 10, 32, 32, 32, 32,111, 117,116,112,117,116, 40, 39, 32, 32, 32, 32, 32, 39, 46, 46, 115,101,108,102, 46, 97,114,103,115, 91,105, 93, 58,111,117, 116, 99,104,101, 99,107,116,121,112,101, 40,110, 97,114,103, 41, 46, 46, 39, 32,124,124, 92,110, 39, 41, 10, 32, 32, 32, 101,110,100, 10, 32, 32, 32,105,102, 32, 98,116,121,112,101, 32,126, 61, 32, 39,115,116, 97,116,101, 39, 32,116,104,101, 110, 10, 9, 32, 32, 32,110, 97,114,103, 32, 61, 32,110, 97, 114,103, 43, 49, 10, 32, 32, 32,101,110,100, 10, 32, 32, 32, 105, 32, 61, 32,105, 43, 49, 10, 32, 32,101,110,100, 10, 32, 101,110,100, 10, 32, 45, 45, 32, 99,104,101, 99,107, 32,101, 110,100, 32,111,102, 32,108,105,115,116, 10, 32,111,117,116, 112,117,116, 40, 39, 32, 32, 32, 32, 32, 33,116,111,108,117, 97, 95,105,115,110,111,111, 98,106, 40,116,111,108,117, 97, 95, 83, 44, 39, 46, 46,110, 97,114,103, 46, 46, 39, 44, 38, 116,111,108,117, 97, 95,101,114,114, 41, 92,110, 32, 41, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 32, 32,103,111, 116,111, 32,116,111,108,117, 97, 95,108,101,114,114,111,114, 59, 39, 41, 10, 10, 32,111,117,116,112,117,116, 40, 39, 32, 101,108,115,101, 92,110, 39, 41, 10, 9,105,102, 32,111,118, 101,114,108,111, 97,100, 32, 60, 32, 48, 32,116,104,101,110, 10, 9, 32,111,117,116,112,117,116, 40, 39, 35,101,110,100, 105,102, 92,110, 39, 41, 10, 9,101,110,100, 10, 9,111,117, 116,112,117,116, 40, 39, 32,123, 39, 41, 10, 10, 32, 45, 45, 32,100,101, 99,108, 97,114,101, 32,115,101,108,102, 44, 32, 105,102, 32,116,104,101, 32, 99, 97,115,101, 10, 32,108,111, 99, 97,108, 32,110, 97,114,103, 10, 32,105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 32,110, 97,114,103, 61, 50, 32,101,108,115,101, 32,110, 97,114,103, 61, 49, 32,101,110, 100, 10, 32,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,115,101,108,102, 46,110, 97,109,101,126, 61, 39,110,101, 119, 39, 32, 97,110,100, 32,115,116, 97,116,105, 99, 61, 61, 110,105,108, 32,116,104,101,110, 10, 32, 32,111,117,116,112, 117,116, 40, 39, 32, 39, 44,115,101,108,102, 46, 99,111,110, 115,116, 44,115,101,108,102, 46,112, 97,114,101,110,116, 46, 116,121,112,101, 44, 39, 42, 39, 44, 39,115,101,108,102, 32, 61, 32, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 40, 39, 44,115,101,108,102, 46, 99,111,110,115,116, 44,115, 101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112,101, 44, 39, 42, 41, 32, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32,116,111, 95,102,117,110, 99, 32, 61, 32,103,101,116, 95, 116,111, 95,102,117,110, 99,116,105,111,110, 40,115,101,108, 102, 46,112, 97,114,101,110,116, 46,116,121,112,101, 41, 10, 32, 32,111,117,116,112,117,116, 40,116,111, 95,102,117,110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 49, 44, 48, 41, 59, 39, 41, 10, 32,101,108,115,101,105,102, 32,115,116, 97,116,105, 99, 32,116,104,101,110, 10, 32, 32, 95, 44, 95, 44,115,101,108,102, 46,109,111,100, 32, 61, 32,115,116,114, 102,105,110,100, 40,115,101,108,102, 46,109,111,100, 44, 39, 94, 37,115, 42,115,116, 97,116,105, 99, 37,115, 37,115, 42, 40, 46, 42, 41, 39, 41, 10, 32,101,110,100, 10, 32, 45, 45, 32,100,101, 99,108, 97,114,101, 32,112, 97,114, 97,109,101, 116,101,114,115, 10, 32,105,102, 32,115,101,108,102, 46, 97, 114,103,115, 91, 49, 93, 46,116,121,112,101, 32,126, 61, 32, 39,118,111,105,100, 39, 32,116,104,101,110, 10, 32, 32,108, 111, 99, 97,108, 32,105, 61, 49, 10, 32, 32,119,104,105,108, 101, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 32, 100,111, 10, 32, 32, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 58,100,101, 99,108, 97,114,101, 40,110, 97,114, 103, 41, 10, 32, 32, 32,105,102, 32,105,115, 98, 97,115,105, 99, 40,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 46, 116,121,112,101, 41, 32,126, 61, 32, 34,115,116, 97,116,101, 34, 32,116,104,101,110, 10, 9, 32, 32, 32,110, 97,114,103, 32, 61, 32,110, 97,114,103, 43, 49, 10, 32, 32, 32,101,110, 100, 10, 32, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32, 32, 101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32, 99, 104,101, 99,107, 32,115,101,108,102, 10, 32,105,102, 32, 99, 108, 97,115,115, 32, 97,110,100, 32,115,101,108,102, 46,110, 97,109,101,126, 61, 39,110,101,119, 39, 32, 97,110,100, 32, 115,116, 97,116,105, 99, 61, 61,110,105,108, 32,116,104,101, 110, 10, 9, 32,111,117,116,112,117,116, 40, 39, 35,105,102, 110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, 9, 32,111,117,116,112,117, 116, 40, 39, 32, 32,105,102, 32, 40, 33,115,101,108,102, 41, 32,116,111,108,117, 97, 95,101,114,114,111,114, 40,116,111, 108,117, 97, 95, 83, 44, 34, 39, 46, 46,111,117,116,112,117, 116, 95,101,114,114,111,114, 95,104,111,111,107, 40, 34,105, 110,118, 97,108,105,100, 32, 92, 39,115,101,108,102, 92, 39, 32,105,110, 32,102,117,110, 99,116,105,111,110, 32, 92, 39, 37,115, 92, 39, 34, 44, 32,115,101,108,102, 46,110, 97,109, 101, 41, 46, 46, 39, 34, 44, 32, 78, 85, 76, 76, 41, 59, 39, 41, 59, 10, 9, 32,111,117,116,112,117,116, 40, 39, 35,101, 110,100,105,102, 92,110, 39, 41, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,103,101,116, 32, 97,114,114, 97,121, 32,101, 108,101,109,101,110,116, 32,118, 97,108,117,101,115, 10, 32, 105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 32,110, 97,114,103, 61, 50, 32,101,108,115,101, 32,110, 97,114,103, 61, 49, 32,101,110,100, 10, 32,105,102, 32,115,101,108,102, 46, 97,114,103,115, 91, 49, 93, 46,116,121,112,101, 32,126, 61, 32, 39,118,111,105,100, 39, 32,116,104,101,110, 10, 32, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32, 32,119,104, 105,108,101, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 32,100,111, 10, 32, 32, 32,115,101,108,102, 46, 97,114, 103,115, 91,105, 93, 58,103,101,116, 97,114,114, 97,121, 40, 110, 97,114,103, 41, 10, 32, 32, 32,110, 97,114,103, 32, 61, 32,110, 97,114,103, 43, 49, 10, 32, 32, 32,105, 32, 61, 32, 105, 43, 49, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 10, 32,112,114,101, 95, 99, 97,108,108, 95,104,111,111,107, 40,115,101,108,102, 41, 10, 10, 32,108,111, 99, 97,108, 32, 111,117,116, 32, 61, 32,115,116,114,105,110,103, 46,102,105, 110,100, 40,115,101,108,102, 46,109,111,100, 44, 32, 34,116, 111,108,117, 97, 95,111,117,116,115,105,100,101, 34, 41, 10, 32, 45, 45, 32, 99, 97,108,108, 32,102,117,110, 99,116,105, 111,110, 10, 32,105,102, 32, 99,108, 97,115,115, 32, 97,110, 100, 32,115,101,108,102, 46,110, 97,109,101, 61, 61, 39,100, 101,108,101,116,101, 39, 32,116,104,101,110, 10, 32, 32,111, 117,116,112,117,116, 40, 39, 32, 32, 77,116,111,108,117, 97, 95,100,101,108,101,116,101, 40,115,101,108,102, 41, 59, 39, 41, 10, 32,101,108,115,101,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,115,101,108,102, 46,110, 97,109,101, 32, 61, 61, 32, 39,111,112,101,114, 97,116,111,114, 38, 91, 93, 39, 32,116,104,101,110, 10, 32, 32,105,102, 32,102,108, 97, 103,115, 91, 39, 49, 39, 93, 32,116,104,101,110, 32, 45, 45, 32,102,111,114, 32, 99,111,109,112, 97,116,105, 98,105,108, 105,116,121, 32,119,105,116,104, 32,116,111,108,117, 97, 53, 32, 63, 10, 9,111,117,116,112,117,116, 40, 39, 32, 32,115, 101,108,102, 45, 62,111,112,101,114, 97,116,111,114, 91, 93, 40, 39, 44,115,101,108,102, 46, 97,114,103,115, 91, 49, 93, 46,110, 97,109,101, 44, 39, 45, 49, 41, 32, 61, 32, 39, 44, 115,101,108,102, 46, 97,114,103,115, 91, 50, 93, 46,110, 97, 109,101, 44, 39, 59, 39, 41, 10, 32, 32,101,108,115,101, 10, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32,115, 101,108,102, 45, 62,111,112,101,114, 97,116,111,114, 91, 93, 40, 39, 44,115,101,108,102, 46, 97,114,103,115, 91, 49, 93, 46,110, 97,109,101, 44, 39, 41, 32, 61, 32, 39, 44,115,101, 108,102, 46, 97,114,103,115, 91, 50, 93, 46,110, 97,109,101, 44, 39, 59, 39, 41, 10, 32, 32,101,110,100, 10, 32,101,108, 115,101, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 123, 39, 41, 10, 32, 32,105,102, 32,115,101,108,102, 46,116, 121,112,101, 32,126, 61, 32, 39, 39, 32, 97,110,100, 32,115, 101,108,102, 46,116,121,112,101, 32,126, 61, 32, 39,118,111, 105,100, 39, 32,116,104,101,110, 10, 32, 32, 32,111,117,116, 112,117,116, 40, 39, 32, 32, 39, 44,115,101,108,102, 46,109, 111,100, 44,115,101,108,102, 46,116,121,112,101, 44,115,101, 108,102, 46,112,116,114, 44, 39,116,111,108,117, 97, 95,114, 101,116, 32, 61, 32, 39, 41, 10, 32, 32, 32,111,117,116,112, 117,116, 40, 39, 40, 39, 44,115,101,108,102, 46,109,111,100, 44,115,101,108,102, 46,116,121,112,101, 44,115,101,108,102, 46,112,116,114, 44, 39, 41, 32, 39, 41, 10, 32, 32,101,108, 115,101, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 39, 41, 10, 32, 32,101,110,100, 10, 32, 32,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,115,101,108,102, 46, 110, 97,109,101, 61, 61, 39,110,101,119, 39, 32,116,104,101, 110, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39, 77,116, 111,108,117, 97, 95,110,101,119, 40, 40, 39, 44,115,101,108, 102, 46,116,121,112,101, 44, 39, 41, 40, 39, 41, 10, 32, 32, 101,108,115,101,105,102, 32, 99,108, 97,115,115, 32, 97,110, 100, 32,115,116, 97,116,105, 99, 32,116,104,101,110, 10, 9, 105,102, 32,111,117,116, 32,116,104,101,110, 10, 9, 9,111, 117,116,112,117,116, 40,115,101,108,102, 46,110, 97,109,101, 44, 39, 40, 39, 41, 10, 9,101,108,115,101, 10, 9, 9,111, 117,116,112,117,116, 40, 99,108, 97,115,115, 46, 46, 39, 58, 58, 39, 46, 46,115,101,108,102, 46,110, 97,109,101, 44, 39, 40, 39, 41, 10, 9,101,110,100, 10, 32, 32,101,108,115,101, 105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 10, 9, 105,102, 32,111,117,116, 32,116,104,101,110, 10, 9, 9,111, 117,116,112,117,116, 40,115,101,108,102, 46,110, 97,109,101, 44, 39, 40, 39, 41, 10, 9,101,108,115,101, 10, 9, 32, 32, 105,102, 32,115,101,108,102, 46, 99, 97,115,116, 95,111,112, 101,114, 97,116,111,114, 32,116,104,101,110, 10, 9, 32, 32, 9, 45, 45,111,117,116,112,117,116, 40, 39,115,116, 97,116, 105, 99, 95, 99, 97,115,116, 60, 39, 44,115,101,108,102, 46, 109,111,100, 44,115,101,108,102, 46,116,121,112,101, 44,115, 101,108,102, 46,112,116,114, 44, 39, 32, 62, 40, 42,115,101, 108,102, 39, 41, 10, 9, 9,111,117,116,112,117,116, 40, 39, 115,101,108,102, 45, 62,111,112,101,114, 97,116,111,114, 32, 39, 44,115,101,108,102, 46,109,111,100, 44,115,101,108,102, 46,116,121,112,101, 44, 39, 40, 39, 41, 10, 9, 32, 32,101, 108,115,101, 10, 9, 9,111,117,116,112,117,116, 40, 39,115, 101,108,102, 45, 62, 39, 46, 46,115,101,108,102, 46,110, 97, 109,101, 44, 39, 40, 39, 41, 10, 9, 32, 32,101,110,100, 10, 9,101,110,100, 10, 32, 32,101,108,115,101, 10, 32, 32, 32, 111,117,116,112,117,116, 40,115,101,108,102, 46,110, 97,109, 101, 44, 39, 40, 39, 41, 10, 32, 32,101,110,100, 10, 10, 32, 32,105,102, 32,111,117,116, 32, 97,110,100, 32,110,111,116, 32,115,116, 97,116,105, 99, 32,116,104,101,110, 10, 32, 32, 9,111,117,116,112,117,116, 40, 39,115,101,108,102, 39, 41, 10, 9,105,102, 32,115,101,108,102, 46, 97,114,103,115, 91, 49, 93, 32, 97,110,100, 32,115,101,108,102, 46, 97,114,103, 115, 91, 49, 93, 46,110, 97,109,101, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10, 9, 9,111,117,116,112,117,116, 40, 39, 44, 39, 41, 10, 9,101,110,100, 10, 32, 32,101,110,100, 10, 32, 32, 45, 45, 32,119,114,105,116,101, 32,112, 97,114, 97,109,101,116,101,114,115, 10, 32, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32, 32,119,104,105,108,101, 32,115,101, 108,102, 46, 97,114,103,115, 91,105, 93, 32,100,111, 10, 32, 32, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 58, 112, 97,115,115,112, 97,114, 40, 41, 10, 32, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32, 32, 32,105,102, 32,115,101,108, 102, 46, 97,114,103,115, 91,105, 93, 32,116,104,101,110, 10, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 44, 39, 41, 10, 32, 32, 32,101,110,100, 10, 32, 32,101,110,100, 10, 10, 32, 32,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32, 115,101,108,102, 46,110, 97,109,101, 32, 61, 61, 32, 39,111, 112,101,114, 97,116,111,114, 91, 93, 39, 32, 97,110,100, 32, 102,108, 97,103,115, 91, 39, 49, 39, 93, 32,116,104,101,110, 10, 9,111,117,116,112,117,116, 40, 39, 45, 49, 41, 59, 39, 41, 10, 32, 32,101,108,115,101, 10, 9,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,115,101,108,102, 46,110, 97, 109,101, 61, 61, 39,110,101,119, 39, 32,116,104,101,110, 10, 9, 9,111,117,116,112,117,116, 40, 39, 41, 41, 59, 39, 41, 32, 45, 45, 32, 99,108,111,115,101, 32, 77,116,111,108,117, 97, 95,110,101,119, 40, 10, 9,101,108,115,101, 10, 9, 9, 111,117,116,112,117,116, 40, 39, 41, 59, 39, 41, 10, 9,101, 110,100, 10, 32, 32,101,110,100, 10, 10, 32, 32, 45, 45, 32, 114,101,116,117,114,110, 32,118, 97,108,117,101,115, 10, 32, 32,105,102, 32,115,101,108,102, 46,116,121,112,101, 32,126, 61, 32, 39, 39, 32, 97,110,100, 32,115,101,108,102, 46,116, 121,112,101, 32,126, 61, 32, 39,118,111,105,100, 39, 32,116, 104,101,110, 10, 32, 32, 32,110,114,101,116, 32, 61, 32,110, 114,101,116, 32, 43, 32, 49, 10, 32, 32, 32,108,111, 99, 97, 108, 32,116, 44, 99,116, 32, 61, 32,105,115, 98, 97,115,105, 99, 40,115,101,108,102, 46,116,121,112,101, 41, 10, 32, 32, 32,105,102, 32,116, 32, 97,110,100, 32,115,101,108,102, 46, 110, 97,109,101, 32,126, 61, 32, 34,110,101,119, 34, 32,116, 104,101,110, 10, 32, 32, 32, 9,105,102, 32,115,101,108,102, 46, 99, 97,115,116, 95,111,112,101,114, 97,116,111,114, 32, 97,110,100, 32, 95, 98, 97,115,105, 99, 95,114, 97,119, 95, 112,117,115,104, 91,116, 93, 32,116,104,101,110, 10, 9, 9, 111,117,116,112,117,116, 40, 39, 32, 32, 32, 39, 44, 95, 98, 97,115,105, 99, 95,114, 97,119, 95,112,117,115,104, 91,116, 93, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 40, 39, 44, 99,116, 44, 39, 41,116,111,108,117, 97, 95,114,101,116, 41, 59, 39, 41, 10, 32, 32, 32, 9,101,108,115,101, 10, 9, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32,116, 111,108,117, 97, 95,112,117,115,104, 39, 46, 46,116, 46, 46, 39, 40,116,111,108,117, 97, 95, 83, 44, 40, 39, 44, 99,116, 44, 39, 41,116,111,108,117, 97, 95,114,101,116, 41, 59, 39, 41, 10, 9,101,110,100, 10, 32, 32, 32,101,108,115,101, 10, 9,116, 32, 61, 32,115,101,108,102, 46,116,121,112,101, 10, 9,110,101,119, 95,116, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,116, 44, 32, 34, 99,111,110,115,116, 37,115, 43, 34, 44, 32, 34, 34, 41, 10, 9,108,111, 99, 97, 108, 32,111,119,110,101,100, 32, 61, 32,102, 97,108,115,101, 10, 9,105,102, 32,115,116,114,105,110,103, 46,102,105,110, 100, 40,115,101,108,102, 46,109,111,100, 44, 32, 34,116,111, 108,117, 97, 95,111,119,110,101,100, 34, 41, 32,116,104,101, 110, 10, 9, 9,111,119,110,101,100, 32, 61, 32,116,114,117, 101, 10, 9,101,110,100, 10, 32, 32, 32, 32,108,111, 99, 97, 108, 32,112,117,115,104, 95,102,117,110, 99, 32, 61, 32,103, 101,116, 95,112,117,115,104, 95,102,117,110, 99,116,105,111, 110, 40,116, 41, 10, 32, 32, 32, 32,105,102, 32,115,101,108, 102, 46,112,116,114, 32, 61, 61, 32, 39, 39, 32,116,104,101, 110, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32,123, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116, 112,117,116, 40, 39, 35,105,102,100,101,102, 32, 95, 95, 99, 112,108,117,115,112,108,117,115, 92,110, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32, 118,111,105,100, 42, 32,116,111,108,117, 97, 95,111, 98,106, 32, 61, 32, 77,116,111,108,117, 97, 95,110,101,119, 40, 40, 39, 44,110,101,119, 95,116, 44, 39, 41, 40,116,111,108,117, 97, 95,114,101,116, 41, 41, 59, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32, 39, 44, 112,117,115,104, 95,102,117,110, 99, 44, 39, 40,116,111,108, 117, 97, 95, 83, 44,116,111,108,117, 97, 95,111, 98,106, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,116, 111,108,117, 97, 95,114,101,103,105,115,116,101,114, 95,103, 99, 40,116,111,108,117, 97, 95, 83, 44,108,117, 97, 95,103, 101,116,116,111,112, 40,116,111,108,117, 97, 95, 83, 41, 41, 59, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 35,101,108,115,101, 92,110, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,118, 111,105,100, 42, 32,116,111,108,117, 97, 95,111, 98,106, 32, 61, 32,116,111,108,117, 97, 95, 99,111,112,121, 40,116,111, 108,117, 97, 95, 83, 44, 40,118,111,105,100, 42, 41, 38,116, 111,108,117, 97, 95,114,101,116, 44,115,105,122,101,111,102, 40, 39, 44,116, 44, 39, 41, 41, 59, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32, 39, 44,112,117,115,104, 95,102,117,110, 99, 44, 39, 40,116,111, 108,117, 97, 95, 83, 44,116,111,108,117, 97, 95,111, 98,106, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32, 116,111,108,117, 97, 95,114,101,103,105,115,116,101,114, 95, 103, 99, 40,116,111,108,117, 97, 95, 83, 44,108,117, 97, 95, 103,101,116,116,111,112, 40,116,111,108,117, 97, 95, 83, 41, 41, 59, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117, 116, 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 125, 39, 41, 10, 32, 32, 32, 32,101,108,115,101,105,102, 32, 115,101,108,102, 46,112,116,114, 32, 61, 61, 32, 39, 38, 39, 32,116,104,101,110, 10, 32, 32, 32, 32, 32,111,117,116,112, 117,116, 40, 39, 32, 32, 32, 39, 44,112,117,115,104, 95,102, 117,110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 40, 118,111,105,100, 42, 41, 38,116,111,108,117, 97, 95,114,101, 116, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10, 32, 32, 32, 32,101,108,115,101, 10, 9, 32,111,117,116,112,117, 116, 40, 39, 32, 32, 32, 39, 44,112,117,115,104, 95,102,117, 110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 40,118, 111,105,100, 42, 41,116,111,108,117, 97, 95,114,101,116, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10, 9, 32,105, 102, 32,111,119,110,101,100, 32,111,114, 32,108,111, 99, 97, 108, 95, 99,111,110,115,116,114,117, 99,116,111,114, 32,116, 104,101,110, 10, 32, 32, 32, 32, 32, 32,111,117,116,112,117, 116, 40, 39, 32, 32, 32, 32,116,111,108,117, 97, 95,114,101, 103,105,115,116,101,114, 95,103, 99, 40,116,111,108,117, 97, 95, 83, 44,108,117, 97, 95,103,101,116,116,111,112, 40,116, 111,108,117, 97, 95, 83, 41, 41, 59, 39, 41, 10, 9, 32,101, 110,100, 10, 32, 32, 32, 32,101,110,100, 10, 32, 32, 32,101, 110,100, 10, 32, 32,101,110,100, 10, 32, 32,108,111, 99, 97, 108, 32,105, 61, 49, 10, 32, 32,119,104,105,108,101, 32,115, 101,108,102, 46, 97,114,103,115, 91,105, 93, 32,100,111, 10, 32, 32, 32,110,114,101,116, 32, 61, 32,110,114,101,116, 32, 43, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 58, 114,101,116,118, 97,108,117,101, 40, 41, 10, 32, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32, 32,101,110,100, 10, 32, 32, 111,117,116,112,117,116, 40, 39, 32, 32,125, 39, 41, 10, 10, 32, 32, 45, 45, 32,115,101,116, 32, 97,114,114, 97,121, 32, 101,108,101,109,101,110,116, 32,118, 97,108,117,101,115, 10, 32, 32,105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 32,110, 97,114,103, 61, 50, 32,101,108,115,101, 32,110, 97, 114,103, 61, 49, 32,101,110,100, 10, 32, 32,105,102, 32,115, 101,108,102, 46, 97,114,103,115, 91, 49, 93, 46,116,121,112, 101, 32,126, 61, 32, 39,118,111,105,100, 39, 32,116,104,101, 110, 10, 32, 32, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32, 32, 32,119,104,105,108,101, 32,115,101,108,102, 46, 97, 114,103,115, 91,105, 93, 32,100,111, 10, 32, 32, 32, 32,115, 101,108,102, 46, 97,114,103,115, 91,105, 93, 58,115,101,116, 97,114,114, 97,121, 40,110, 97,114,103, 41, 10, 32, 32, 32, 32,110, 97,114,103, 32, 61, 32,110, 97,114,103, 43, 49, 10, 32, 32, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32, 32, 32, 101,110,100, 10, 32, 32,101,110,100, 10, 10, 32, 32, 45, 45, 32,102,114,101,101, 32,100,121,110, 97,109,105, 99, 97,108, 108,121, 32, 97,108,108,111, 99, 97,116,101,100, 32, 97,114, 114, 97,121, 10, 32, 32,105,102, 32,115,101,108,102, 46, 97, 114,103,115, 91, 49, 93, 46,116,121,112,101, 32,126, 61, 32, 39,118,111,105,100, 39, 32,116,104,101,110, 10, 32, 32, 32, 108,111, 99, 97,108, 32,105, 61, 49, 10, 32, 32, 32,119,104, 105,108,101, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 32,100,111, 10, 32, 32, 32, 32,115,101,108,102, 46, 97, 114,103,115, 91,105, 93, 58,102,114,101,101, 97,114,114, 97, 121, 40, 41, 10, 32, 32, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32, 32, 32,101,110,100, 10, 32, 32,101,110,100, 10, 32, 101,110,100, 10, 10, 32,112,111,115,116, 95, 99, 97,108,108, 95,104,111,111,107, 40,115,101,108,102, 41, 10, 10, 32,111, 117,116,112,117,116, 40, 39, 32,125, 39, 41, 10, 32,111,117, 116,112,117,116, 40, 39, 32,114,101,116,117,114,110, 32, 39, 46, 46,110,114,101,116, 46, 46, 39, 59, 39, 41, 10, 10, 32, 45, 45, 32, 99, 97,108,108, 32,111,118,101,114,108,111, 97, 100,101,100, 32,102,117,110, 99,116,105,111,110, 32,111,114, 32,103,101,110,101,114, 97,116,101, 32,101,114,114,111,114, 10, 9,105,102, 32,111,118,101,114,108,111, 97,100, 32, 60, 32, 48, 32,116,104,101,110, 10, 10, 9, 9,111,117,116,112, 117,116, 40, 39, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, 9, 9,111,117,116,112,117,116, 40, 39,116,111,108,117, 97, 95,108,101,114,114,111,114, 58, 92,110, 39, 41, 10, 9, 9, 111,117,116,112,117,116, 40, 39, 32,116,111,108,117, 97, 95, 101,114,114,111,114, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,111,117,116,112,117,116, 95,101,114,114,111,114, 95,104,111,111,107, 40, 34, 35,102,101,114,114,111,114, 32, 105,110, 32,102,117,110, 99,116,105,111,110, 32, 92, 39, 37, 115, 92, 39, 46, 34, 44, 32,115,101,108,102, 46,108,110, 97, 109,101, 41, 46, 46, 39, 34, 44, 38,116,111,108,117, 97, 95, 101,114,114, 41, 59, 39, 41, 10, 9, 9,111,117,116,112,117, 116, 40, 39, 32,114,101,116,117,114,110, 32, 48, 59, 39, 41, 10, 9, 9,111,117,116,112,117,116, 40, 39, 35,101,110,100, 105,102, 92,110, 39, 41, 10, 9,101,108,115,101, 10, 9, 9, 108,111, 99, 97,108, 32, 95,108,111, 99, 97,108, 32, 61, 32, 34, 34, 10, 9, 9,105,102, 32,108,111, 99, 97,108, 95, 99, 111,110,115,116,114,117, 99,116,111,114, 32,116,104,101,110, 10, 9, 9, 9, 95,108,111, 99, 97,108, 32, 61, 32, 34, 95, 108,111, 99, 97,108, 34, 10, 9, 9,101,110,100, 10, 9, 9, 111,117,116,112,117,116, 40, 39,116,111,108,117, 97, 95,108, 101,114,114,111,114, 58, 92,110, 39, 41, 10, 9, 9,111,117, 116,112,117,116, 40, 39, 32,114,101,116,117,114,110, 32, 39, 46, 46,115,116,114,115,117, 98, 40,115,101,108,102, 46, 99, 110, 97,109,101, 44, 49, 44, 45, 51, 41, 46, 46,102,111,114, 109, 97,116, 40, 34, 37, 48, 50,100, 34, 44,111,118,101,114, 108,111, 97,100, 41, 46, 46, 95,108,111, 99, 97,108, 46, 46, 39, 40,116,111,108,117, 97, 95, 83, 41, 59, 39, 41, 10, 9, 101,110,100, 10, 32,111,117,116,112,117,116, 40, 39,125, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39, 35,101,110,100, 105,102, 32, 47, 47, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 92,110, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39, 92,110, 39, 41, 10, 10, 9, 45, 45, 32,114,101, 99,117,114,115,105,118,101, 32, 99, 97,108,108, 32,116,111, 32,119,114,105,116,101, 32,108, 111, 99, 97,108, 32, 99,111,110,115,116,114,117, 99,116,111, 114, 10, 9,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,115,101,108,102, 46,110, 97,109,101, 61, 61, 39,110,101, 119, 39, 32, 97,110,100, 32,110,111,116, 32,108,111, 99, 97, 108, 95, 99,111,110,115,116,114,117, 99,116,111,114, 32,116, 104,101,110, 10, 10, 9, 9,115,101,108,102, 58,115,117,112, 99,111,100,101, 40, 49, 41, 10, 9,101,110,100, 10, 10,101, 110,100, 10, 10, 10, 45, 45, 32,114,101,103,105,115,116,101, 114, 32,102,117,110, 99,116,105,111,110, 10,102,117,110, 99, 116,105,111,110, 32, 99,108, 97,115,115, 70,117,110, 99,116, 105,111,110, 58,114,101,103,105,115,116,101,114, 32, 40,112, 114,101, 41, 10, 10, 9,105,102, 32,110,111,116, 32,115,101, 108,102, 58, 99,104,101, 99,107, 95,112,117, 98,108,105, 99, 95, 97, 99, 99,101,115,115, 40, 41, 32,116,104,101,110, 10, 9, 9,114,101,116,117,114,110, 10, 9,101,110,100, 10, 10, 32, 9,105,102, 32,115,101,108,102, 46,110, 97,109,101, 32, 61, 61, 32, 39,110,101,119, 39, 32, 97,110,100, 32,115,101, 108,102, 46,112, 97,114,101,110,116, 46,102,108, 97,103,115, 46,112,117,114,101, 95,118,105,114,116,117, 97,108, 32,116, 104,101,110, 10, 32, 9, 9, 45, 45, 32,110,111, 32, 99,111, 110,115,116,114,117, 99,116,111,114, 32,102,111,114, 32, 99, 108, 97,115,115,101,115, 32,119,105,116,104, 32,112,117,114, 101, 32,118,105,114,116,117, 97,108, 32,109,101,116,104,111, 100,115, 10, 32, 9, 9,114,101,116,117,114,110, 10, 32, 9, 101,110,100, 10, 10, 32,111,117,116,112,117,116, 40,112,114, 101, 46, 46, 39,116,111,108,117, 97, 95,102,117,110, 99,116, 105,111,110, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101,108,102, 46,108,110, 97,109,101, 46, 46, 39, 34, 44, 39, 46, 46,115,101,108,102, 46, 99,110, 97,109,101, 46, 46, 39, 41, 59, 39, 41, 10, 32, 32,105,102, 32,115,101,108, 102, 46,110, 97,109,101, 32, 61, 61, 32, 39,110,101,119, 39, 32,116,104,101,110, 10, 9, 32, 32,111,117,116,112,117,116, 40,112,114,101, 46, 46, 39,116,111,108,117, 97, 95,102,117, 110, 99,116,105,111,110, 40,116,111,108,117, 97, 95, 83, 44, 34,110,101,119, 95,108,111, 99, 97,108, 34, 44, 39, 46, 46, 115,101,108,102, 46, 99,110, 97,109,101, 46, 46, 39, 95,108, 111, 99, 97,108, 41, 59, 39, 41, 10, 9, 32, 32,111,117,116, 112,117,116, 40,112,114,101, 46, 46, 39,116,111,108,117, 97, 95,102,117,110, 99,116,105,111,110, 40,116,111,108,117, 97, 95, 83, 44, 34, 46, 99, 97,108,108, 34, 44, 39, 46, 46,115, 101,108,102, 46, 99,110, 97,109,101, 46, 46, 39, 95,108,111, 99, 97,108, 41, 59, 39, 41, 10, 9, 32, 32, 45, 45,111,117, 116,112,117,116, 40, 39, 32,116,111,108,117, 97, 95,115,101, 116, 95, 99, 97,108,108, 95,101,118,101,110,116, 40,116,111, 108,117, 97, 95, 83, 44, 39, 46, 46,115,101,108,102, 46, 99, 110, 97,109,101, 46, 46, 39, 95,108,111, 99, 97,108, 44, 32, 34, 39, 46, 46,115,101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112,101, 46, 46, 39, 34, 41, 59, 39, 41, 10, 32, 32,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 80,114, 105,110,116, 32,109,101,116,104,111,100, 10,102,117,110, 99, 116,105,111,110, 32, 99,108, 97,115,115, 70,117,110, 99,116, 105,111,110, 58,112,114,105,110,116, 32, 40,105,100,101,110, 116, 44, 99,108,111,115,101, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 70,117,110, 99,116,105, 111,110,123, 34, 41, 10, 32,112,114,105,110,116, 40,105,100, 101,110,116, 46, 46, 34, 32,109,111,100, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,109,111,100, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110, 116, 46, 46, 34, 32,116,121,112,101, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,116,121,112,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,112,116,114, 32, 32, 61, 32, 39, 34, 46, 46, 115,101,108,102, 46,112,116,114, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101, 108,102, 46,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,108,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101, 108,102, 46,108,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 99,111,110,115,116, 32, 61, 32, 39, 34, 46, 46,115, 101,108,102, 46, 99,111,110,115,116, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 99,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46, 115,101,108,102, 46, 99,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,108,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,108,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110, 116, 46, 46, 34, 32, 97,114,103,115, 32, 61, 32,123, 34, 41, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104, 105,108,101, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 32,100,111, 10, 32, 32,115,101,108,102, 46, 97,114,103, 115, 91,105, 93, 58,112,114,105,110,116, 40,105,100,101,110, 116, 46, 46, 34, 32, 32, 34, 44, 34, 44, 34, 41, 10, 32, 32, 105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32,112, 114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,125, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34,125, 34, 46, 46, 99,108,111,115,101, 41, 10,101, 110,100, 10, 10, 45, 45, 32, 99,104,101, 99,107, 32,105,102, 32,105,116, 32,114,101,116,117,114,110,115, 32, 97,110, 32, 111, 98,106,101, 99,116, 32, 98,121, 32,118, 97,108,117,101, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 70,117,110, 99,116,105,111,110, 58,114,101,113,117,105,114, 101, 99,111,108,108,101, 99,116,105,111,110, 32, 40,116, 41, 10, 9,108,111, 99, 97,108, 32,114, 32, 61, 32,102, 97,108, 115,101, 10, 9,105,102, 32,115,101,108,102, 46,116,121,112, 101, 32,126, 61, 32, 39, 39, 32, 97,110,100, 32,110,111,116, 32,105,115, 98, 97,115,105, 99, 40,115,101,108,102, 46,116, 121,112,101, 41, 32, 97,110,100, 32,115,101,108,102, 46,112, 116,114, 61, 61, 39, 39, 32,116,104,101,110, 10, 9, 9,108, 111, 99, 97,108, 32,116,121,112,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46,116,121,112,101, 44, 34, 37,115, 42, 99,111,110,115,116, 37,115, 43, 34, 44, 34, 34, 41, 10, 9, 32,116, 91,116,121,112,101, 93, 32, 61, 32, 34,116,111, 108,117, 97, 95, 99,111,108,108,101, 99,116, 95, 34, 32, 46, 46, 32, 99,108,101, 97,110, 95,116,101,109,112,108, 97,116, 101, 40,116,121,112,101, 41, 10, 9, 32,114, 32, 61, 32,116, 114,117,101, 10, 9,101,110,100, 10, 9,108,111, 99, 97,108, 32,105, 61, 49, 10, 9,119,104,105,108,101, 32,115,101,108, 102, 46, 97,114,103,115, 91,105, 93, 32,100,111, 10, 9, 9, 114, 32, 61, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 58,114,101,113,117,105,114,101, 99,111,108,108,101, 99, 116,105,111,110, 40,116, 41, 32,111,114, 32,114, 10, 9, 9, 105, 32, 61, 32,105, 43, 49, 10, 9,101,110,100, 10, 9,114, 101,116,117,114,110, 32,114, 10,101,110,100, 10, 10, 45, 45, 32,100,101,116,101,114,109,105,110,101, 32,108,117, 97, 32, 102,117,110, 99,116,105,111,110, 32,110, 97,109,101, 32,111, 118,101,114,108,111, 97,100, 10,102,117,110, 99,116,105,111, 110, 32, 99,108, 97,115,115, 70,117,110, 99,116,105,111,110, 58,111,118,101,114,108,111, 97,100, 32, 40, 41, 10, 32,114, 101,116,117,114,110, 32,115,101,108,102, 46,112, 97,114,101, 110,116, 58,111,118,101,114,108,111, 97,100, 40,115,101,108, 102, 46,108,110, 97,109,101, 41, 10,101,110,100, 10, 10, 10, 102,117,110, 99,116,105,111,110, 32,112, 97,114, 97,109, 95, 111, 98,106,101, 99,116, 40,112, 97,114, 41, 32, 45, 45, 32, 114,101,116,117,114,110,115, 32,116,114,117,101, 32,105,102, 32,116,104,101, 32,112, 97,114, 97,109,101,116,101,114, 32, 104, 97,115, 32, 97,110, 32,111, 98,106,101, 99,116, 32, 97, 115, 32,105,116,115, 32,100,101,102, 97,117,108,116, 32,118, 97,108,117,101, 10, 10, 9,105,102, 32,110,111,116, 32,115, 116,114,105,110,103, 46,102,105,110,100, 40,112, 97,114, 44, 32, 39, 61, 39, 41, 32,116,104,101,110, 32,114,101,116,117, 114,110, 32,102, 97,108,115,101, 32,101,110,100, 32, 45, 45, 32,105,116, 32,104, 97,115, 32,110,111, 32,100,101,102, 97, 117,108,116, 32,118, 97,108,117,101, 10, 10, 9,108,111, 99, 97,108, 32, 95, 44, 95, 44,100,101,102, 32, 61, 32,115,116, 114,105,110,103, 46,102,105,110,100, 40,112, 97,114, 44, 32, 34, 61, 40, 46, 42, 41, 36, 34, 41, 10, 10, 9,105,102, 32, 115,116,114,105,110,103, 46,102,105,110,100, 40,112, 97,114, 44, 32, 34,124, 34, 41, 32,116,104,101,110, 32, 45, 45, 32, 97, 32,108,105,115,116, 32,111,102, 32,102,108, 97,103,115, 10, 10, 9, 9,114,101,116,117,114,110, 32,116,114,117,101, 10, 9,101,110,100, 10, 10, 9,105,102, 32,115,116,114,105, 110,103, 46,102,105,110,100, 40,112, 97,114, 44, 32, 34, 37, 42, 34, 41, 32,116,104,101,110, 32, 45, 45, 32,105,116, 39, 115, 32, 97, 32,112,111,105,110,116,101,114, 32,119,105,116, 104, 32, 97, 32,100,101,102, 97,117,108,116, 32,118, 97,108, 117,101, 10, 10, 9, 9,105,102, 32,115,116,114,105,110,103, 46,102,105,110,100, 40,112, 97,114, 44, 32, 39, 61, 37,115, 42,110,101,119, 39, 41, 32,111,114, 32,115,116,114,105,110, 103, 46,102,105,110,100, 40,112, 97,114, 44, 32, 34, 37, 40, 34, 41, 32,116,104,101,110, 32, 45, 45, 32,105,116, 39,115, 32, 97, 32,112,111,105,110,116,101,114, 32,119,105,116,104, 32, 97,110, 32,105,110,115,116, 97,110, 99,101, 32, 97,115, 32,100,101,102, 97,117,108,116, 32,112, 97,114, 97,109,101, 116,101,114, 46, 46, 32,105,115, 32,116,104, 97,116, 32,118, 97,108,105,100, 63, 10, 9, 9, 9,114,101,116,117,114,110, 32,116,114,117,101, 10, 9, 9,101,110,100, 10, 9, 9,114, 101,116,117,114,110, 32,102, 97,108,115,101, 32, 45, 45, 32, 100,101,102, 97,117,108,116, 32,118, 97,108,117,101, 32,105, 115, 32, 39, 78, 85, 76, 76, 39, 32,111,114, 32,115,111,109, 101,116,104,105,110,103, 10, 9,101,110,100, 10, 10, 10, 9, 105,102, 32,115,116,114,105,110,103, 46,102,105,110,100, 40, 112, 97,114, 44, 32, 34, 91, 37, 40, 38, 93, 34, 41, 32,116, 104,101,110, 10, 9, 9,114,101,116,117,114,110, 32,116,114, 117,101, 10, 9,101,110,100, 32, 45, 45, 32,100,101,102, 97, 117,108,116, 32,118, 97,108,117,101, 32,105,115, 32, 97, 32, 99,111,110,115,116,114,117, 99,116,111,114, 32, 99, 97,108, 108, 32, 40,109,111,115,116, 32,108,105,107,101,108,121, 32, 102,111,114, 32, 97, 32, 99,111,110,115,116, 32,114,101,102, 101,114,101,110, 99,101, 41, 10, 10, 9, 45, 45,105,102, 32, 115,116,114,105,110,103, 46,102,105,110,100, 40,112, 97,114, 44, 32, 34, 38, 34, 41, 32,116,104,101,110, 10, 10, 9, 45, 45, 9,105,102, 32,115,116,114,105,110,103, 46,102,105,110, 100, 40,100,101,102, 44, 32, 34, 58, 34, 41, 32,111,114, 32, 115,116,114,105,110,103, 46,102,105,110,100, 40,100,101,102, 44, 32, 34, 94, 37,115, 42,110,101,119, 37,115, 43, 34, 41, 32,116,104,101,110, 10, 10, 9, 45, 45, 9, 9, 45, 45, 32, 105,116, 39,115, 32, 97, 32,114,101,102,101,114,101,110, 99, 101, 32,119,105,116,104, 32,100,101,102, 97,117,108,116, 32, 116,111, 32,115,111,109,101,116,104,105,110,103, 32,108,105, 107,101, 32, 67,108, 97,115,115, 58, 58,109,101,109, 98,101, 114, 44, 32,111,114, 32, 39,110,101,119, 32, 67,108, 97,115, 115, 39, 10, 9, 45, 45, 9, 9,114,101,116,117,114,110, 32, 116,114,117,101, 10, 9, 45, 45, 9,101,110,100, 10, 9, 45, 45,101,110,100, 10, 10, 9,114,101,116,117,114,110, 32,102, 97,108,115,101, 32, 45, 45, 32, 63, 10,101,110,100, 10, 10, 102,117,110, 99,116,105,111,110, 32,115,116,114,105,112, 95, 108, 97,115,116, 95, 97,114,103, 40, 97,108,108, 95, 97,114, 103,115, 44, 32,108, 97,115,116, 95, 97,114,103, 41, 32, 45, 45, 32,115,116,114,105,112,115, 32,116,104,101, 32,100,101, 102, 97,117,108,116, 32,118, 97,108,117,101, 32,102,114,111, 109, 32,116,104,101, 32,108, 97,115,116, 32, 97,114,103,117, 109,101,110,116, 10, 10, 9,108,111, 99, 97,108, 32, 95, 44, 95, 44,115, 95, 97,114,103, 32, 61, 32,115,116,114,105,110, 103, 46,102,105,110,100, 40,108, 97,115,116, 95, 97,114,103, 44, 32, 34, 94, 40, 91, 94, 61, 93, 43, 41, 34, 41, 10, 9, 108, 97,115,116, 95, 97,114,103, 32, 61, 32,115,116,114,105, 110,103, 46,103,115,117, 98, 40,108, 97,115,116, 95, 97,114, 103, 44, 32, 34, 40, 91, 37, 37, 37, 40, 37, 41, 93, 41, 34, 44, 32, 34, 37, 37, 37, 49, 34, 41, 59, 10, 9, 97,108,108, 95, 97,114,103,115, 32, 61, 32,115,116,114,105,110,103, 46, 103,115,117, 98, 40, 97,108,108, 95, 97,114,103,115, 44, 32, 34, 37,115, 42, 44, 37,115, 42, 34, 46, 46,108, 97,115,116, 95, 97,114,103, 46, 46, 34, 37,115, 42, 37, 41, 37,115, 42, 36, 34, 44, 32, 34, 41, 34, 41, 10, 9,114,101,116,117,114, 110, 32, 97,108,108, 95, 97,114,103,115, 44, 32,115, 95, 97, 114,103, 10,101,110,100, 10, 10, 10, 10, 45, 45, 32, 73,110, 116,101,114,110, 97,108, 32, 99,111,110,115,116,114,117, 99, 116,111,114, 10,102,117,110, 99,116,105,111,110, 32, 95, 70, 117,110, 99,116,105,111,110, 32, 40,116, 41, 10, 32,115,101, 116,109,101,116, 97,116, 97, 98,108,101, 40,116, 44, 99,108, 97,115,115, 70,117,110, 99,116,105,111,110, 41, 10, 10, 32, 105,102, 32,116, 46, 99,111,110,115,116, 32,126, 61, 32, 39, 99,111,110,115,116, 39, 32, 97,110,100, 32,116, 46, 99,111, 110,115,116, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10, 32, 32,101,114,114,111,114, 40, 34, 35,105,110,118, 97,108, 105,100, 32, 39, 99,111,110,115,116, 39, 32,115,112,101, 99, 105,102,105, 99, 97,116,105,111,110, 34, 41, 10, 32,101,110, 100, 10, 10, 32, 97,112,112,101,110,100, 40,116, 41, 10, 32, 105,102, 32,116, 58,105,110, 99,108, 97,115,115, 40, 41, 32, 116,104,101,110, 10, 32, 45, 45,112,114,105,110,116, 32, 40, 39,116, 46,110, 97,109,101, 32,105,115, 32, 39, 46, 46,116, 46,110, 97,109,101, 46, 46, 39, 44, 32,112, 97,114,101,110, 116, 46,110, 97,109,101, 32,105,115, 32, 39, 46, 46,116, 46, 112, 97,114,101,110,116, 46,110, 97,109,101, 41, 10, 32, 32, 105,102, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40, 116, 46,110, 97,109,101, 44, 32, 34, 37, 98, 60, 62, 34, 44, 32, 34, 34, 41, 32, 61, 61, 32,115,116,114,105,110,103, 46, 103,115,117, 98, 40,116, 46,112, 97,114,101,110,116, 46,111, 114,105,103,105,110, 97,108, 95,110, 97,109,101, 32,111,114, 32,116, 46,112, 97,114,101,110,116, 46,110, 97,109,101, 44, 32, 34, 37, 98, 60, 62, 34, 44, 32, 34, 34, 41, 32,116,104, 101,110, 10, 32, 32, 32,116, 46,110, 97,109,101, 32, 61, 32, 39,110,101,119, 39, 10, 32, 32, 32,116, 46,108,110, 97,109, 101, 32, 61, 32, 39,110,101,119, 39, 10, 32, 32, 32,116, 46, 112, 97,114,101,110,116, 46, 95,110,101,119, 32, 61, 32,116, 114,117,101, 10, 32, 32, 32,116, 46,116,121,112,101, 32, 61, 32,116, 46,112, 97,114,101,110,116, 46,110, 97,109,101, 10, 32, 32, 32,116, 46,112,116,114, 32, 61, 32, 39, 42, 39, 10, 32, 32,101,108,115,101,105,102, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,116, 46,110, 97,109,101, 44, 32, 34, 37, 98, 60, 62, 34, 44, 32, 34, 34, 41, 32, 61, 61, 32, 39, 126, 39, 46, 46,115,116,114,105,110,103, 46,103,115,117, 98, 40,116, 46,112, 97,114,101,110,116, 46,111,114,105,103,105, 110, 97,108, 95,110, 97,109,101, 32,111,114, 32,116, 46,112, 97,114,101,110,116, 46,110, 97,109,101, 44, 32, 34, 37, 98, 60, 62, 34, 44, 32, 34, 34, 41, 32,116,104,101,110, 10, 32, 32, 32,116, 46,110, 97,109,101, 32, 61, 32, 39,100,101,108, 101,116,101, 39, 10, 32, 32, 32,116, 46,108,110, 97,109,101, 32, 61, 32, 39,100,101,108,101,116,101, 39, 10, 32, 32, 32, 116, 46,112, 97,114,101,110,116, 46, 95,100,101,108,101,116, 101, 32, 61, 32,116,114,117,101, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 32,116, 46, 99,110, 97,109,101, 32, 61, 32,116, 58, 99,102,117,110, 99,110, 97,109,101, 40, 34,116, 111,108,117, 97, 34, 41, 46, 46,116, 58,111,118,101,114,108, 111, 97,100, 40,116, 41, 10, 32,114,101,116,117,114,110, 32, 116, 10,101,110,100, 10, 10, 45, 45, 32, 67,111,110,115,116, 114,117, 99,116,111,114, 10, 45, 45, 32, 69,120,112,101, 99, 116,115, 32,116,104,114,101,101, 32,115,116,114,105,110,103, 115, 58, 32,111,110,101, 32,114,101,112,114,101,115,101,110, 116,105,110,103, 32,116,104,101, 32,102,117,110, 99,116,105, 111,110, 32,100,101, 99,108, 97,114, 97,116,105,111,110, 44, 10, 45, 45, 32, 97,110,111,116,104,101,114, 32,114,101,112, 114,101,115,101,110,116,105,110,103, 32,116,104,101, 32, 97, 114,103,117,109,101,110,116, 32,108,105,115,116, 44, 32, 97, 110,100, 32,116,104,101, 32,116,104,105,114,100, 32,114,101, 112,114,101,115,101,110,116,105,110,103, 10, 45, 45, 32,116, 104,101, 32, 34, 99,111,110,115,116, 34, 32,111,114, 32,101, 109,112,116,121, 32,115,116,114,105,110,103, 46, 10,102,117, 110, 99,116,105,111,110, 32, 70,117,110, 99,116,105,111,110, 32, 40,100, 44, 97, 44, 99, 41, 10, 32, 45, 45,108,111, 99, 97,108, 32,116, 32, 61, 32,115,112,108,105,116, 40,115,116, 114,115,117, 98, 40, 97, 44, 50, 44, 45, 50, 41, 44, 39, 44, 39, 41, 32, 45, 45, 32,101,108,105,109,105,110, 97,116,101, 32, 98,114, 97, 99,101,115, 10, 32, 45, 45,108,111, 99, 97, 108, 32,116, 32, 61, 32,115,112,108,105,116, 95,112, 97,114, 97,109,115, 40,115,116,114,115,117, 98, 40, 97, 44, 50, 44, 45, 50, 41, 41, 10, 10, 9,105,102, 32,110,111,116, 32,102, 108, 97,103,115, 91, 39, 87, 39, 93, 32, 97,110,100, 32,115, 116,114,105,110,103, 46,102,105,110,100, 40, 97, 44, 32, 34, 37, 46, 37, 46, 37, 46, 37,115, 42, 37, 41, 34, 41, 32,116, 104,101,110, 10, 10, 9, 9,119, 97,114,110,105,110,103, 40, 34, 70,117,110, 99,116,105,111,110,115, 32,119,105,116,104, 32,118, 97,114,105, 97, 98,108,101, 32, 97,114,103,117,109, 101,110,116,115, 32, 40, 96, 46, 46, 46, 39, 41, 32, 97,114, 101, 32,110,111,116, 32,115,117,112,112,111,114,116,101,100, 46, 32, 73,103,110,111,114,105,110,103, 32, 34, 46, 46,100, 46, 46, 97, 46, 46, 99, 41, 10, 9, 9,114,101,116,117,114, 110, 32,110,105,108, 10, 9,101,110,100, 10, 10, 10, 32,108, 111, 99, 97,108, 32,105, 61, 49, 10, 32,108,111, 99, 97,108, 32,108, 32, 61, 32,123,110, 61, 48,125, 10, 10, 32, 9, 97, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40, 97, 44, 32, 34, 37,115, 42, 40, 91, 37, 40, 37, 41, 93, 41, 37,115, 42, 34, 44, 32, 34, 37, 49, 34, 41, 10, 9,108,111, 99, 97,108, 32,116, 44,115,116,114,105,112, 44,108, 97,115, 116, 32, 61, 32,115,116,114,105,112, 95,112, 97,114,115, 40, 115,116,114,115,117, 98, 40, 97, 44, 50, 44, 45, 50, 41, 41, 59, 10, 9,105,102, 32,115,116,114,105,112, 32,116,104,101, 110, 10, 9, 9, 45, 45,108,111, 99, 97,108, 32,110,115, 32, 61, 32,115,116,114,105,110,103, 46,115,117, 98, 40,115,116, 114,115,117, 98, 40, 97, 44, 49, 44, 45, 50, 41, 44, 32, 49, 44, 32, 45, 40,115,116,114,105,110,103, 46,108,101,110, 40, 108, 97,115,116, 41, 43, 49, 41, 41, 10, 9, 9,108,111, 99, 97,108, 32,110,115, 32, 61, 32,106,111,105,110, 40,116, 44, 32, 34, 44, 34, 44, 32, 49, 44, 32,108, 97,115,116, 45, 49, 41, 10, 10, 9, 9,110,115, 32, 61, 32, 34, 40, 34, 46, 46, 115,116,114,105,110,103, 46,103,115,117, 98, 40,110,115, 44, 32, 34, 37,115, 42, 44, 37,115, 42, 36, 34, 44, 32, 34, 34, 41, 46, 46, 39, 41, 39, 10, 9, 9, 45, 45,110,115, 32, 61, 32,115,116,114,105,112, 95,100,101,102, 97,117,108,116,115, 40,110,115, 41, 10, 10, 9, 9,108,111, 99, 97,108, 32,102, 32, 61, 32, 70,117,110, 99,116,105,111,110, 40,100, 44, 32, 110,115, 44, 32, 99, 41, 10, 9, 9,102,111,114, 32,105, 61, 49, 44,108, 97,115,116, 32,100,111, 10, 9, 9, 9,116, 91, 105, 93, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,116, 91,105, 93, 44, 32, 34, 61, 46, 42, 36, 34, 44, 32, 34, 34, 41, 10, 9, 9,101,110,100, 10, 9,101,110,100, 10, 10, 32,119,104,105,108,101, 32,116, 91,105, 93, 32,100, 111, 10, 32, 32,108, 46,110, 32, 61, 32,108, 46,110, 43, 49, 10, 32, 32,108, 91,108, 46,110, 93, 32, 61, 32, 68,101, 99, 108, 97,114, 97,116,105,111,110, 40,116, 91,105, 93, 44, 39, 118, 97,114, 39, 44,116,114,117,101, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32,108,111, 99, 97,108, 32,102, 32, 61, 32, 68,101, 99,108, 97,114, 97,116, 105,111,110, 40,100, 44, 39,102,117,110, 99, 39, 41, 10, 32, 102, 46, 97,114,103,115, 32, 61, 32,108, 10, 32,102, 46, 99, 111,110,115,116, 32, 61, 32, 99, 10, 32,114,101,116,117,114, 110, 32, 95, 70,117,110, 99,116,105,111,110, 40,102, 41, 10, 101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,106, 111,105,110, 40,116, 44, 32,115,101,112, 44, 32,102,105,114, 115,116, 44, 32,108, 97,115,116, 41, 10, 10, 9,102,105,114, 115,116, 32, 61, 32,102,105,114,115,116, 32,111,114, 32, 49, 10, 9,108, 97,115,116, 32, 61, 32,108, 97,115,116, 32,111, 114, 32,116, 97, 98,108,101, 46,103,101,116,110, 40,116, 41, 10, 9,108,111, 99, 97,108, 32,108,115,101,112, 32, 61, 32, 34, 34, 10, 9,108,111, 99, 97,108, 32,114,101,116, 32, 61, 32, 34, 34, 10, 9,108,111, 99, 97,108, 32,108,111,111,112, 32, 61, 32,102, 97,108,115,101, 10, 9,102,111,114, 32,105, 32, 61, 32,102,105,114,115,116, 44,108, 97,115,116, 32,100, 111, 10, 10, 9, 9,114,101,116, 32, 61, 32,114,101,116, 46, 46,108,115,101,112, 46, 46,116, 91,105, 93, 10, 9, 9,108, 115,101,112, 32, 61, 32,115,101,112, 10, 9, 9,108,111,111, 112, 32, 61, 32,116,114,117,101, 10, 9,101,110,100, 10, 9, 105,102, 32,110,111,116, 32,108,111,111,112, 32,116,104,101, 110, 10, 9, 9,114,101,116,117,114,110, 32, 34, 34, 10, 9, 101,110,100, 10, 10, 9,114,101,116,117,114,110, 32,114,101, 116, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,115,116,114,105,112, 95,112, 97,114,115, 40,115, 41, 10, 10, 9,108,111, 99, 97,108, 32,116, 32, 61, 32,115,112,108, 105,116, 95, 99, 95,116,111,107,101,110,115, 40,115, 44, 32, 39, 44, 39, 41, 10, 9,108,111, 99, 97,108, 32,115,116,114, 105,112, 32, 61, 32,102, 97,108,115,101, 10, 9,108,111, 99, 97,108, 32,108, 97,115,116, 10, 10, 9,102,111,114, 32,105, 61,116, 46,110, 44, 49, 44, 45, 49, 32,100,111, 10, 10, 9, 9,105,102, 32,110,111,116, 32,115,116,114,105,112, 32, 97, 110,100, 32,112, 97,114, 97,109, 95,111, 98,106,101, 99,116, 40,116, 91,105, 93, 41, 32,116,104,101,110, 10, 9, 9, 9, 108, 97,115,116, 32, 61, 32,105, 10, 9, 9, 9,115,116,114, 105,112, 32, 61, 32,116,114,117,101, 10, 9, 9,101,110,100, 10, 9, 9, 45, 45,105,102, 32,115,116,114,105,112, 32,116, 104,101,110, 10, 9, 9, 45, 45, 9,116, 91,105, 93, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,116, 91, 105, 93, 44, 32, 34, 61, 46, 42, 36, 34, 44, 32, 34, 34, 41, 10, 9, 9, 45, 45,101,110,100, 10, 9,101,110,100, 10, 10, 9,114,101,116,117,114,110, 32,116, 44,115,116,114,105,112, 44,108, 97,115,116, 10, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,115,116,114,105,112, 95,100,101,102, 97,117,108,116,115, 40,115, 41, 10, 10, 9,115, 32, 61, 32, 115,116,114,105,110,103, 46,103,115,117, 98, 40,115, 44, 32, 34, 94, 37, 40, 34, 44, 32, 34, 34, 41, 10, 9,115, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,115, 44, 32, 34, 37, 41, 36, 34, 44, 32, 34, 34, 41, 10, 10, 9,108, 111, 99, 97,108, 32,116, 32, 61, 32,115,112,108,105,116, 95, 99, 95,116,111,107,101,110,115, 40,115, 44, 32, 34, 44, 34, 41, 10, 9,108,111, 99, 97,108, 32,115,101,112, 44, 32,114, 101,116, 32, 61, 32, 34, 34, 44, 34, 34, 10, 9,102,111,114, 32,105, 61, 49, 44,116, 46,110, 32,100,111, 10, 9, 9,116, 91,105, 93, 32, 61, 32,115,116,114,105,110,103, 46,103,115, 117, 98, 40,116, 91,105, 93, 44, 32, 34, 61, 46, 42, 36, 34, 44, 32, 34, 34, 41, 10, 9, 9,114,101,116, 32, 61, 32,114, 101,116, 46, 46,115,101,112, 46, 46,116, 91,105, 93, 10, 9, 9,115,101,112, 32, 61, 32, 34, 44, 34, 10, 9,101,110,100, 10, 10, 9,114,101,116,117,114,110, 32, 34, 40, 34, 46, 46, 114,101,116, 46, 46, 34, 41, 34, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/function.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32,111,112,101,114, 97, 116,111,114, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114, 105,116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73, 100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99, 111,100,101, 32,105,115, 32,102,114,101,101, 32,115,111,102, 116,119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32, 114,101,100,105,115,116,114,105, 98,117,116,101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109,111,100,105,102,121, 32, 105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116, 119, 97,114,101, 32,112,114,111,118,105,100,101,100, 32,104, 101,114,101,117,110,100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105, 115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97, 117,116,104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98, 108,105,103, 97,116,105,111,110, 32,116,111, 32,112,114,111, 118,105,100,101, 32,109, 97,105,110,116,101,110, 97,110, 99, 101, 44, 32,115,117,112,112,111,114,116, 44, 32,117,112,100, 97,116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99, 101,109,101,110,116,115, 44, 32,111,114, 32,109,111,100,105, 102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 45, 45, 32, 79,112,101,114, 97,116,111,114, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114,101,115,101,110,116,115, 32, 97,110, 32,111,112,101,114, 97,116,111,114, 32,102,117,110, 99,116,105,111,110, 32,111,114, 32, 97, 32, 99,108, 97,115, 115, 32,111,112,101,114, 97,116,111,114, 32,109,101,116,104, 111,100, 46, 10, 45, 45, 32, 73,116, 32,115,116,111,114,101, 115, 32,116,104,101, 32,115, 97,109,101, 32,102,105,101,108, 100,115, 32, 97,115, 32,102,117,110, 99,116,105,111,110,115, 32,100,111, 32,112,108,117,115, 58, 10, 45, 45, 32, 32,107, 105,110,100, 32, 61, 32,115,101,116, 32,111,102, 32, 99,104, 97,114, 97, 99,116,101,114, 32,114,101,112,114,101,115,101, 110,116,105,110,103, 32,116,104,101, 32,111,112,101,114, 97, 116,111,114, 32, 40, 97,115, 32,105,116, 32, 97,112,112,101, 114,115, 32,105,110, 32, 67, 43, 43, 32, 99,111,100,101, 41, 10, 99,108, 97,115,115, 79,112,101,114, 97,116,111,114, 32, 61, 32,123, 10, 32,107,105,110,100, 32, 61, 32, 39, 39, 44, 10,125, 10, 99,108, 97,115,115, 79,112,101,114, 97,116,111, 114, 46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97, 115,115, 79,112,101,114, 97,116,111,114, 10,115,101,116,109, 101,116, 97,116, 97, 98,108,101, 40, 99,108, 97,115,115, 79, 112,101,114, 97,116,111,114, 44, 99,108, 97,115,115, 70,117, 110, 99,116,105,111,110, 41, 10, 10, 45, 45, 32,116, 97, 98, 108,101, 32,116,111, 32,116,114, 97,110,115,102,111,114,109, 32,111,112,101,114, 97,116,111,114, 32,107,105,110,100, 32, 105,110,116,111, 32,116,104,101, 32, 97,112,112,114,111,112, 114,105, 97,116,101, 32,116, 97,103, 32,109,101,116,104,111, 100, 32,110, 97,109,101, 10, 95, 84, 77, 32, 61, 32,123, 91, 39, 43, 39, 93, 32, 61, 32, 39, 97,100,100, 39, 44, 10, 32, 32, 32, 32, 32, 32, 32, 91, 39, 45, 39, 93, 32, 61, 32, 39, 115,117, 98, 39, 44, 10, 32, 32, 32, 32, 32, 32, 32, 91, 39, 42, 39, 93, 32, 61, 32, 39,109,117,108, 39, 44, 10, 32, 32, 32, 32, 32, 32, 32, 91, 39, 47, 39, 93, 32, 61, 32, 39,100, 105,118, 39, 44, 10, 32, 32, 32, 32, 32, 32, 32, 91, 39, 60, 39, 93, 32, 61, 32, 39,108,116, 39, 44, 10, 32, 32, 32, 32, 32, 32, 32, 91, 39, 60, 61, 39, 93, 32, 61, 32, 39,108,101, 39, 44, 10, 32, 32, 32, 32, 32, 32, 32, 91, 39, 61, 61, 39, 93, 32, 61, 32, 39,101,113, 39, 44, 10, 32, 32, 32, 32, 32, 32, 32, 91, 39, 91, 93, 39, 93, 32, 61, 32, 39,103,101,116, 105, 39, 44, 10, 32, 32, 32, 32, 32, 32, 32, 91, 39, 38, 91, 93, 39, 93, 32, 61, 32, 39,115,101,116,105, 39, 44, 10, 32, 32, 32, 32, 32, 32, 32, 45, 45, 91, 39, 45, 62, 39, 93, 32, 61, 32, 39,102,108,101, 99,104,105,116, 97, 39, 44, 10, 32, 32, 32, 32, 32, 32,125, 10, 10, 10, 45, 45, 32, 80,114,105, 110,116, 32,109,101,116,104,111,100, 10,102,117,110, 99,116, 105,111,110, 32, 99,108, 97,115,115, 79,112,101,114, 97,116, 111,114, 58,112,114,105,110,116, 32, 40,105,100,101,110,116, 44, 99,108,111,115,101, 41, 10, 32,112,114,105,110,116, 40, 105,100,101,110,116, 46, 46, 34, 79,112,101,114, 97,116,111, 114,123, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101, 110,116, 46, 46, 34, 32,107,105,110,100, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,107,105,110,100, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101, 110,116, 46, 46, 34, 32,109,111,100, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,109,111,100, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,116,121,112,101, 32, 61, 32, 39, 34, 46, 46, 115,101,108,102, 46,116,121,112,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,112,116,114, 32, 32, 61, 32, 39, 34, 46, 46,115, 101,108,102, 46,112,116,114, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101,108, 102, 46,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32, 112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 99,111,110,115,116, 32, 61, 32, 39, 34, 46, 46,115,101,108, 102, 46, 99,111,110,115,116, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 99,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101, 108,102, 46, 99,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,108,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115, 101,108,102, 46,108,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 97,114,103,115, 32, 61, 32,123, 34, 41, 10, 32, 108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105,108, 101, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 32, 100,111, 10, 32, 32,115,101,108,102, 46, 97,114,103,115, 91, 105, 93, 58,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 32, 34, 44, 34, 44, 34, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32,112,114,105, 110,116, 40,105,100,101,110,116, 46, 46, 34, 32,125, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34,125, 34, 46, 46, 99,108,111,115,101, 41, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115, 115, 79,112,101,114, 97,116,111,114, 58,115,117,112, 99,111, 100,101, 95,116,109,112, 40, 41, 10, 10, 9,105,102, 32,110, 111,116, 32, 95, 84, 77, 91,115,101,108,102, 46,107,105,110, 100, 93, 32,116,104,101,110, 10, 9, 9,114,101,116,117,114, 110, 32, 99,108, 97,115,115, 70,117,110, 99,116,105,111,110, 46,115,117,112, 99,111,100,101, 40,115,101,108,102, 41, 10, 9,101,110,100, 10, 10, 9, 45, 45, 32,110,111, 32,111,118, 101,114,108,111, 97,100, 44, 32,110,111, 32,112, 97,114, 97, 109,101,116,101,114,115, 44, 32, 97,108,119, 97,121,115, 32, 105,110, 99,108, 97,115,115, 10, 9,111,117,116,112,117,116, 40, 34, 47, 42, 32,109,101,116,104,111,100, 58, 34, 44,115, 101,108,102, 46,110, 97,109,101, 44, 34, 32,111,102, 32, 99, 108, 97,115,115, 32, 34, 44,115,101,108,102, 58,105,110, 99, 108, 97,115,115, 40, 41, 44, 34, 32, 42, 47, 34, 41, 10, 10, 9,111,117,116,112,117,116, 40, 34, 35,105,102,110,100,101, 102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 95, 34, 46, 46,115,101,108,102, 46, 99,110, 97,109,101, 41, 10, 9,111,117,116,112,117,116, 40, 34, 92,110,115,116, 97, 116,105, 99, 32,105,110,116, 34, 44,115,101,108,102, 46, 99, 110, 97,109,101, 44, 34, 40,108,117, 97, 95, 83,116, 97,116, 101, 42, 32,116,111,108,117, 97, 95, 83, 41, 34, 41, 10, 10, 9,105,102, 32,111,118,101,114,108,111, 97,100, 32, 60, 32, 48, 32,116,104,101,110, 10, 9, 32,111,117,116,112,117,116, 40, 39, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, 9,101, 110,100, 10, 9,111,117,116,112,117,116, 40, 39, 32,116,111, 108,117, 97, 95, 69,114,114,111,114, 32,116,111,108,117, 97, 95,101,114,114, 59, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 32,105,102, 32, 40, 92,110, 39, 41, 10, 9, 45, 45, 32, 99,104,101, 99,107, 32,115,101,108,102, 10, 9,108,111, 99, 97,108, 32,105,115, 95,102,117,110, 99, 32, 61, 32,103, 101,116, 95,105,115, 95,102,117,110, 99,116,105,111,110, 40, 115,101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112, 101, 41, 10, 9,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32, 32, 33, 39, 46, 46,105,115, 95,102,117,110, 99, 46, 46, 39, 40,116,111,108,117, 97, 95, 83, 44, 49, 44, 34, 39, 46, 46,115,101,108,102, 46,112, 97,114,101,110,116, 46,116,121, 112,101, 46, 46, 39, 34, 44, 48, 44, 38,116,111,108,117, 97, 95,101,114,114, 41, 32,124,124, 92,110, 39, 41, 10, 9,111, 117,116,112,117,116, 40, 39, 32, 32, 32, 32, 32, 33,116,111, 108,117, 97, 95,105,115,110,111,111, 98,106, 40,116,111,108, 117, 97, 95, 83, 44, 50, 44, 38,116,111,108,117, 97, 95,101, 114,114, 41, 92,110, 32, 41, 39, 41, 10, 9,111,117,116,112, 117,116, 40, 39, 32, 32,103,111,116,111, 32,116,111,108,117, 97, 95,108,101,114,114,111,114, 59, 39, 41, 10, 10, 9,111, 117,116,112,117,116, 40, 39, 32,101,108,115,101, 92,110, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 35,101,110,100, 105,102, 92,110, 39, 41, 32, 45, 45, 32,116,111,108,117, 97, 95,114,101,108,101, 97,115,101, 10, 9,111,117,116,112,117, 116, 40, 39, 32,123, 39, 41, 10, 10, 9, 45, 45, 32,100,101, 99,108, 97,114,101, 32,115,101,108,102, 10, 9,111,117,116, 112,117,116, 40, 39, 32, 39, 44,115,101,108,102, 46, 99,111, 110,115,116, 44,115,101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112,101, 44, 39, 42, 39, 44, 39,115,101,108,102, 32, 61, 32, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 40, 39, 44,115,101,108,102, 46, 99,111,110,115,116, 44,115, 101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112,101, 44, 39, 42, 41, 32, 39, 41, 10, 9,108,111, 99, 97,108, 32, 116,111, 95,102,117,110, 99, 32, 61, 32,103,101,116, 95,116, 111, 95,102,117,110, 99, 40,115,101,108,102, 46,112, 97,114, 101,110,116, 46,116,121,112,101, 41, 10, 9,111,117,116,112, 117,116, 40,116,111, 95,102,117,110, 99, 44, 39, 40,116,111, 108,117, 97, 95, 83, 44, 49, 44, 48, 41, 59, 39, 41, 10, 10, 9, 45, 45, 32, 99,104,101, 99,107, 32,115,101,108,102, 10, 9,111,117,116,112,117,116, 40, 39, 35,105,102,110,100,101, 102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 32, 32,105,102, 32, 40, 33,115,101,108,102, 41, 32,116,111,108, 117, 97, 95,101,114,114,111,114, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,111,117,116,112,117,116, 95,101,114, 114,111,114, 95,104,111,111,107, 40, 34,105,110,118, 97,108, 105,100, 32, 92, 39,115,101,108,102, 92, 39, 32,105,110, 32, 102,117,110, 99,116,105,111,110, 32, 92, 39, 37,115, 92, 39, 34, 44, 32,115,101,108,102, 46,110, 97,109,101, 41, 46, 46, 39, 34, 44, 78, 85, 76, 76, 41, 59, 39, 41, 59, 10, 9,111, 117,116,112,117,116, 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10, 10, 9, 45, 45, 32, 99, 97,115,116, 32,115,101, 108,102, 10, 9,111,117,116,112,117,116, 40, 39, 32, 32, 39, 44,115,101,108,102, 46,109,111,100, 44,115,101,108,102, 46, 116,121,112,101, 44,115,101,108,102, 46,112,116,114, 44, 39, 116,111,108,117, 97, 95,114,101,116, 32, 61, 32, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 40, 39, 44,115,101,108, 102, 46,109,111,100, 44,115,101,108,102, 46,116,121,112,101, 44,115,101,108,102, 46,112,116,114, 44, 39, 41, 40, 42,115, 101,108,102, 41, 59, 39, 41, 10, 10, 9, 45, 45, 32,114,101, 116,117,114,110, 32,118, 97,108,117,101, 10, 9,108,111, 99, 97,108, 32,116, 44, 99,116, 32, 61, 32,105,115, 98, 97,115, 105, 99, 40,115,101,108,102, 46,116,121,112,101, 41, 10, 9, 105,102, 32,116, 32,116,104,101,110, 10, 9, 9,111,117,116, 112,117,116, 40, 39, 32, 32, 32,116,111,108,117, 97, 95,112, 117,115,104, 39, 46, 46,116, 46, 46, 39, 40,116,111,108,117, 97, 95, 83, 44, 40, 39, 44, 99,116, 44, 39, 41,116,111,108, 117, 97, 95,114,101,116, 41, 59, 39, 41, 10, 9,101,108,115, 101, 10, 9, 9,116, 32, 61, 32,115,101,108,102, 46,116,121, 112,101, 10, 9, 9,108,111, 99, 97,108, 32,112,117,115,104, 95,102,117,110, 99, 32, 61, 32,103,101,116, 95,112,117,115, 104, 95,102,117,110, 99,116,105,111,110, 40,116, 41, 10, 9, 9,110,101,119, 95,116, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,116, 44, 32, 34, 99,111,110,115,116, 37,115, 43, 34, 44, 32, 34, 34, 41, 10, 9, 9,105,102, 32, 115,101,108,102, 46,112,116,114, 32, 61, 61, 32, 39, 39, 32, 116,104,101,110, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32, 32, 32,123, 39, 41, 10, 9, 9, 9,111,117,116,112, 117,116, 40, 39, 35,105,102,100,101,102, 32, 95, 95, 99,112, 108,117,115,112,108,117,115, 92,110, 39, 41, 10, 9, 9, 9, 111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,118,111,105, 100, 42, 32,116,111,108,117, 97, 95,111, 98,106, 32, 61, 32, 77,116,111,108,117, 97, 95,110,101,119, 40, 40, 39, 44,110, 101,119, 95,116, 44, 39, 41, 40,116,111,108,117, 97, 95,114, 101,116, 41, 41, 59, 39, 41, 10, 9, 9, 9,111,117,116,112, 117,116, 40, 39, 32, 32, 32, 32, 39, 44,112,117,115,104, 95, 102,117,110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 116,111,108,117, 97, 95,111, 98,106, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10, 9, 9, 9,111,117,116,112,117, 116, 40, 39, 32, 32, 32, 32,116,111,108,117, 97, 95,114,101, 103,105,115,116,101,114, 95,103, 99, 40,116,111,108,117, 97, 95, 83, 44,108,117, 97, 95,103,101,116,116,111,112, 40,116, 111,108,117, 97, 95, 83, 41, 41, 59, 39, 41, 10, 9, 9, 9, 111,117,116,112,117,116, 40, 39, 35,101,108,115,101, 92,110, 39, 41, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,118,111,105,100, 42, 32,116,111,108,117, 97, 95, 111, 98,106, 32, 61, 32,116,111,108,117, 97, 95, 99,111,112, 121, 40,116,111,108,117, 97, 95, 83, 44, 40,118,111,105,100, 42, 41, 38,116,111,108,117, 97, 95,114,101,116, 44,115,105, 122,101,111,102, 40, 39, 44,116, 44, 39, 41, 41, 59, 39, 41, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32, 39, 44,112,117,115,104, 95,102,117,110, 99, 44, 39, 40, 116,111,108,117, 97, 95, 83, 44,116,111,108,117, 97, 95,111, 98,106, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32, 116,111,108,117, 97, 95,114,101,103,105,115,116,101,114, 95, 103, 99, 40,116,111,108,117, 97, 95, 83, 44,108,117, 97, 95, 103,101,116,116,111,112, 40,116,111,108,117, 97, 95, 83, 41, 41, 59, 39, 41, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10, 9, 9, 9, 111,117,116,112,117,116, 40, 39, 32, 32, 32,125, 39, 41, 10, 9, 9,101,108,115,101,105,102, 32,115,101,108,102, 46,112, 116,114, 32, 61, 61, 32, 39, 38, 39, 32,116,104,101,110, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32, 32, 32, 39, 44,112,117,115,104, 95,102,117,110, 99, 44, 39, 40,116,111, 108,117, 97, 95, 83, 44, 40,118,111,105,100, 42, 41, 38,116, 111,108,117, 97, 95,114,101,116, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10, 9, 9,101,108,115,101, 10, 9, 9, 9,105,102, 32,108,111, 99, 97,108, 95, 99,111,110,115,116, 114,117, 99,116,111,114, 32,116,104,101,110, 10, 9, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32, 32, 32, 39, 44,112, 117,115,104, 95,102,117,110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 40,118,111,105,100, 32, 42, 41,116,111,108, 117, 97, 95,114,101,116, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10, 9, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,116,111,108,117, 97, 95,114,101,103,105, 115,116,101,114, 95,103, 99, 40,116,111,108,117, 97, 95, 83, 44,108,117, 97, 95,103,101,116,116,111,112, 40,116,111,108, 117, 97, 95, 83, 41, 41, 59, 39, 41, 10, 9, 9, 9,101,108, 115,101, 10, 9, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32, 32, 32, 39, 44,112,117,115,104, 95,102,117,110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 40,118,111,105,100, 42, 41,116,111,108,117, 97, 95,114,101,116, 44, 34, 39, 44, 116, 44, 39, 34, 41, 59, 39, 41, 10, 9, 9, 9,101,110,100, 10, 9, 9,101,110,100, 10, 9,101,110,100, 10, 10, 9,111, 117,116,112,117,116, 40, 39, 32, 32,125, 39, 41, 10, 9,111, 117,116,112,117,116, 40, 39, 32,114,101,116,117,114,110, 32, 49, 59, 39, 41, 10, 10, 9,111,117,116,112,117,116, 40, 39, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, 9,111,117,116, 112,117,116, 40, 39,116,111,108,117, 97, 95,108,101,114,114, 111,114, 58, 92,110, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 32,116,111,108,117, 97, 95,101,114,114,111,114, 40, 116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,111,117,116, 112,117,116, 95,101,114,114,111,114, 95,104,111,111,107, 40, 34, 35,102,101,114,114,111,114, 32,105,110, 32,102,117,110, 99,116,105,111,110, 32, 92, 39, 37,115, 92, 39, 46, 34, 44, 32,115,101,108,102, 46,108,110, 97,109,101, 41, 46, 46, 39, 34, 44, 38,116,111,108,117, 97, 95,101,114,114, 41, 59, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 32,114,101,116, 117,114,110, 32, 48, 59, 39, 41, 10, 9,111,117,116,112,117, 116, 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10, 10, 10, 9,111,117,116,112,117,116, 40, 39,125, 39, 41, 10, 9, 111,117,116,112,117,116, 40, 39, 35,101,110,100,105,102, 32, 47, 47, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 92,110, 39, 41, 10, 9,111, 117,116,112,117,116, 40, 39, 92,110, 39, 41, 10,101,110,100, 10, 10, 45, 45, 32, 73,110,116,101,114,110, 97,108, 32, 99, 111,110,115,116,114,117, 99,116,111,114, 10,102,117,110, 99, 116,105,111,110, 32, 95, 79,112,101,114, 97,116,111,114, 32, 40,116, 41, 10, 32,115,101,116,109,101,116, 97,116, 97, 98, 108,101, 40,116, 44, 99,108, 97,115,115, 79,112,101,114, 97, 116,111,114, 41, 10, 10, 32,105,102, 32,116, 46, 99,111,110, 115,116, 32,126, 61, 32, 39, 99,111,110,115,116, 39, 32, 97, 110,100, 32,116, 46, 99,111,110,115,116, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10, 32, 32,101,114,114,111,114, 40, 34, 35,105,110,118, 97,108,105,100, 32, 39, 99,111,110,115, 116, 39, 32,115,112,101, 99,105,102,105, 99, 97,116,105,111, 110, 34, 41, 10, 32,101,110,100, 10, 10, 32, 97,112,112,101, 110,100, 40,116, 41, 10, 32,105,102, 32,110,111,116, 32,116, 58,105,110, 99,108, 97,115,115, 40, 41, 32,116,104,101,110, 10, 32, 32,101,114,114,111,114, 40, 34, 35,111,112,101,114, 97,116,111,114, 32, 99, 97,110, 32,111,110,108,121, 32, 98, 101, 32,100,101,102,105,110,101,100, 32, 97,115, 32, 99,108, 97,115,115, 32,109,101,109, 98,101,114, 34, 41, 10, 32,101, 110,100, 10, 10, 32, 45, 45,116, 46,110, 97,109,101, 32, 61, 32,116, 46,110, 97,109,101, 32, 46, 46, 32, 34, 95, 34, 32, 46, 46, 32, 40, 95, 84, 77, 91,116, 46,107,105,110,100, 93, 32,111,114, 32,116, 46,107,105,110,100, 41, 10, 32,116, 46, 99,110, 97,109,101, 32, 61, 32,116, 58, 99,102,117,110, 99, 110, 97,109,101, 40, 34,116,111,108,117, 97, 34, 41, 46, 46, 116, 58,111,118,101,114,108,111, 97,100, 40,116, 41, 10, 32, 116, 46,110, 97,109,101, 32, 61, 32, 34,111,112,101,114, 97, 116,111,114, 34, 32, 46, 46, 32,116, 46,107,105,110,100, 32, 32, 45, 45, 32,115,101,116, 32, 97,112,112,114,111,112,114, 105, 97,116,101, 32, 99, 97,108,108,105,110,103, 32,110, 97, 109,101, 10, 32,114,101,116,117,114,110, 32,116, 10,101,110, 100, 10, 10, 45, 45, 32, 67,111,110,115,116,114,117, 99,116, 111,114, 10,102,117,110, 99,116,105,111,110, 32, 79,112,101, 114, 97,116,111,114, 32, 40,100, 44,107, 44, 97, 44, 99, 41, 10, 10, 9,108,111, 99, 97,108, 32,111,112, 95,107, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,107, 44, 32, 34, 94, 37,115, 42, 34, 44, 32, 34, 34, 41, 10, 9,111, 112, 95,107, 32, 61, 32,115,116,114,105,110,103, 46,103,115, 117, 98, 40,107, 44, 32, 34, 37,115, 42, 36, 34, 44, 32, 34, 34, 41, 10, 9, 45, 45,105,102, 32,115,116,114,105,110,103, 46,102,105,110,100, 40,107, 44, 32, 34, 94, 91, 37,119, 95, 58, 37,100, 60, 62, 37, 42, 37, 38, 93, 43, 36, 34, 41, 32, 116,104,101,110, 10, 9,105,102, 32,100, 32, 61, 61, 32, 34, 111,112,101,114, 97,116,111,114, 34, 32, 97,110,100, 32,107, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10, 10, 9, 9, 100, 32, 61, 32,107, 46, 46, 34, 32,111,112,101,114, 97,116, 111,114, 34, 10, 9,101,108,115,101,105,102, 32,110,111,116, 32, 95, 84, 77, 91,111,112, 95,107, 93, 32,116,104,101,110, 10, 10, 9, 9,105,102, 32,102,108, 97,103,115, 91, 39, 87, 39, 93, 32,116,104,101,110, 10, 9, 9, 9,101,114,114,111, 114, 40, 34,116,111,108,117, 97, 58, 32,110,111, 32,115,117, 112,112,111,114,116, 32,102,111,114, 32,111,112,101,114, 97, 116,111,114, 34, 32, 46, 46, 32,102, 46,107,105,110,100, 41, 10, 9, 9,101,108,115,101, 10, 9, 9, 9,119, 97,114,110, 105,110,103, 40, 34, 78,111, 32,115,117,112,112,111,114,116, 32,102,111,114, 32,111,112,101,114, 97,116,111,114, 32, 34, 46, 46,111,112, 95,107, 46, 46, 34, 44, 32,105,103,110,111, 114,105,110,103, 34, 41, 10, 9, 9, 9,114,101,116,117,114, 110, 32,110,105,108, 10, 9, 9,101,110,100, 10, 9,101,110, 100, 10, 10, 9,108,111, 99, 97,108, 32,114,101,102, 32, 61, 32, 39, 39, 10, 32,108,111, 99, 97,108, 32,116, 32, 61, 32, 115,112,108,105,116, 95, 99, 95,116,111,107,101,110,115, 40, 115,116,114,115,117, 98, 40, 97, 44, 50, 44,115,116,114,108, 101,110, 40, 97, 41, 45, 49, 41, 44, 39, 44, 39, 41, 32, 45, 45, 32,101,108,105,109,105,110, 97,116,101, 32, 98,114, 97, 99,101,115, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,108,111, 99, 97,108, 32,108, 32, 61, 32,123,110, 61, 48, 125, 10, 32,119,104,105,108,101, 32,116, 91,105, 93, 32,100, 111, 10, 32, 32,108, 46,110, 32, 61, 32,108, 46,110, 43, 49, 10, 32, 32,108, 91,108, 46,110, 93, 32, 61, 32, 68,101, 99, 108, 97,114, 97,116,105,111,110, 40,116, 91,105, 93, 44, 39, 118, 97,114, 39, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32,105,102, 32,107, 32, 61, 61, 32, 39, 91, 93, 39, 32,116,104,101,110, 10, 9, 32,108,111, 99, 97,108, 32, 95, 10, 9, 32, 95, 44, 32, 95, 44, 32,114,101, 102, 32, 61, 32,115,116,114,102,105,110,100, 40,100, 44, 39, 40, 38, 41, 39, 41, 10, 32, 32,100, 32, 61, 32,103,115,117, 98, 40,100, 44, 39, 38, 39, 44, 39, 39, 41, 10, 32,101,108, 115,101,105,102, 32,107, 61, 61, 39, 38, 91, 93, 39, 32,116, 104,101,110, 10, 32, 32,108, 46,110, 32, 61, 32,108, 46,110, 43, 49, 10, 32, 32,108, 91,108, 46,110, 93, 32, 61, 32, 68, 101, 99,108, 97,114, 97,116,105,111,110, 40,100, 44, 39,118, 97,114, 39, 41, 10, 32, 32,108, 91,108, 46,110, 93, 46,110, 97,109,101, 32, 61, 32, 39,116,111,108,117, 97, 95,118, 97, 108,117,101, 39, 10, 32,101,110,100, 10, 32,108,111, 99, 97, 108, 32,102, 32, 61, 32, 68,101, 99,108, 97,114, 97,116,105, 111,110, 40,100, 44, 39,102,117,110, 99, 39, 41, 10, 32,105, 102, 32,107, 32, 61, 61, 32, 39, 91, 93, 39, 32, 97,110,100, 32, 40,108, 91, 49, 93, 61, 61,110,105,108, 32,111,114, 32, 105,115, 98, 97,115,105, 99, 40,108, 91, 49, 93, 46,116,121, 112,101, 41,126, 61, 39,110,117,109, 98,101,114, 39, 41, 32, 116,104,101,110, 10, 32, 32,101,114,114,111,114, 40, 39,111, 112,101,114, 97,116,111,114, 91, 93, 32, 99, 97,110, 32,111, 110,108,121, 32, 98,101, 32,100,101,102,105,110,101,100, 32, 102,111,114, 32,110,117,109,101,114,105, 99, 32,105,110,100, 101,120, 46, 39, 41, 10, 32,101,110,100, 10, 32,102, 46, 97, 114,103,115, 32, 61, 32,108, 10, 32,102, 46, 99,111,110,115, 116, 32, 61, 32, 99, 10, 32,102, 46,107,105,110,100, 32, 61, 32,111,112, 95,107, 10, 32,102, 46,108,110, 97,109,101, 32, 61, 32, 34, 46, 34, 46, 46, 40, 95, 84, 77, 91,102, 46,107, 105,110,100, 93, 32,111,114, 32,102, 46,107,105,110,100, 41, 10, 32,105,102, 32,110,111,116, 32, 95, 84, 77, 91,102, 46, 107,105,110,100, 93, 32,116,104,101,110, 10, 32, 9,102, 46, 99, 97,115,116, 95,111,112,101,114, 97,116,111,114, 32, 61, 32,116,114,117,101, 10, 32,101,110,100, 10, 32,105,102, 32, 102, 46,107,105,110,100, 32, 61, 61, 32, 39, 91, 93, 39, 32, 97,110,100, 32,114,101,102, 61, 61, 39, 38, 39, 32, 97,110, 100, 32,102, 46, 99,111,110,115,116,126, 61, 39, 99,111,110, 115,116, 39, 32,116,104,101,110, 10, 32, 32, 79,112,101,114, 97,116,111,114, 40,100, 44, 39, 38, 39, 46, 46,107, 44, 97, 44, 99, 41, 32, 9, 45, 45, 32, 99,114,101, 97,116,101, 32, 99,111,114,114,101,115,112,111,100,105,110,103, 32,115,101, 116, 32,111,112,101,114, 97,116,111,114, 10, 32,101,110,100, 10, 32,114,101,116,117,114,110, 32, 95, 79,112,101,114, 97, 116,111,114, 40,102, 41, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/operator.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 10, 95,103,108,111, 98, 97,108, 95,116,101,109,112,108, 97, 116,101,115, 32, 61, 32,123,125, 10, 10, 99,108, 97,115,115, 84,101,109,112,108, 97,116,101, 67,108, 97,115,115, 32, 61, 32,123, 10, 10, 9,110, 97,109,101, 32, 61, 32, 39, 39, 44, 10, 9, 98,111,100,121, 32, 61, 32, 39, 39, 44, 10, 9,112, 97,114,101,110,116,115, 32, 61, 32,123,125, 44, 10, 9, 97, 114,103,115, 32, 61, 32,123,125, 44, 32, 45, 45, 32,116,104, 101, 32,116,101,109,112,108, 97,116,101, 32, 97,114,103,117, 109,101,110,116,115, 10,125, 10, 10, 99,108, 97,115,115, 84, 101,109,112,108, 97,116,101, 67,108, 97,115,115, 46, 95, 95, 105,110,100,101,120, 32, 61, 32, 99,108, 97,115,115, 84,101, 109,112,108, 97,116,101, 67,108, 97,115,115, 10, 10, 10,102, 117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 84,101, 109,112,108, 97,116,101, 67,108, 97,115,115, 58,116,104,114, 111,119, 40,116,121,112,101,115, 44, 32,108,111, 99, 97,108, 95,115, 99,111,112,101, 41, 10, 10, 9, 45, 45,105,102, 32, 116, 97, 98,108,101, 46,103,101,116,110, 40,116,121,112,101, 115, 41, 32,126, 61, 32,116, 97, 98,108,101, 46,103,101,116, 110, 40,115,101,108,102, 46, 97,114,103,115, 41, 32,116,104, 101,110, 10, 9, 45, 45, 9,101,114,114,111,114, 40, 34, 35, 105,110,118, 97,108,105,100, 32,112, 97,114, 97,109,101,116, 101,114, 32, 99,111,117,110,116, 34, 41, 10, 9, 45, 45,101, 110,100, 10, 10, 9, 45, 45, 32,114,101,112,108, 97, 99,101, 10, 9,102,111,114, 32,105, 32, 61, 49, 32, 44, 32,116,121, 112,101,115, 46,110, 32,100,111, 10, 10, 9, 9,108,111, 99, 97,108, 32, 73,108, 32, 61, 32,115,112,108,105,116, 95, 99, 95,116,111,107,101,110,115, 40,116,121,112,101,115, 91,105, 93, 44, 32, 34, 32, 34, 41, 10, 9, 9,105,102, 32,116, 97, 98,108,101, 46,103,101,116,110, 40, 73,108, 41, 32,126, 61, 32,116, 97, 98,108,101, 46,103,101,116,110, 40,115,101,108, 102, 46, 97,114,103,115, 41, 32,116,104,101,110, 10, 9, 9, 9,101,114,114,111,114, 40, 34, 35,105,110,118, 97,108,105, 100, 32,112, 97,114, 97,109,101,116,101,114, 32, 99,111,117, 110,116, 32,102,111,114, 32, 34, 46, 46,116,121,112,101,115, 91,105, 93, 41, 10, 9, 9,101,110,100, 10, 9, 9,108,111, 99, 97,108, 32, 98, 73, 32, 61, 32,115,101,108,102, 46, 98, 111,100,121, 10, 9, 9,108,111, 99, 97,108, 32,112, 73, 32, 61, 32,123,125, 10, 9, 9,102,111,114, 32,106, 32, 61, 32, 49, 44,115,101,108,102, 46, 97,114,103,115, 46,110, 32,100, 111, 10, 9, 9, 9, 45, 45, 84,108, 91,106, 93, 32, 61, 32, 102,105,110,100,116,121,112,101, 40, 84,108, 91,106, 93, 41, 32,111,114, 32, 84,108, 91,106, 93, 10, 9, 9, 9, 98, 73, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40, 98, 73, 44, 32, 34, 40, 91, 94, 95, 37,119, 93, 41, 34, 46, 46,115,101,108,102, 46, 97,114,103,115, 91,106, 93, 46, 46, 34, 40, 91, 94, 95, 37,119, 93, 41, 34, 44, 32, 34, 37, 49, 34, 46, 46, 73,108, 91,106, 93, 46, 46, 34, 37, 50, 34, 41, 10, 9, 9, 9,105,102, 32,115,101,108,102, 46,112, 97,114, 101,110,116,115, 32,116,104,101,110, 10, 9, 9, 9, 9,102, 111,114, 32,105, 61, 49, 44,116, 97, 98,108,101, 46,103,101, 116,110, 40,115,101,108,102, 46,112, 97,114,101,110,116,115, 41, 32,100,111, 10, 9, 9, 9, 9, 9,112, 73, 91,105, 93, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40, 115,101,108,102, 46,112, 97,114,101,110,116,115, 91,105, 93, 44, 32, 34, 40, 91, 94, 95, 37,119, 93, 63, 41, 34, 46, 46, 115,101,108,102, 46, 97,114,103,115, 91,106, 93, 46, 46, 34, 40, 91, 94, 95, 37,119, 93, 63, 41, 34, 44, 32, 34, 37, 49, 34, 46, 46, 73,108, 91,106, 93, 46, 46, 34, 37, 50, 34, 41, 10, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9,101,110,100, 10, 9, 9,101,110,100, 10, 9, 9, 45, 45,108,111, 99, 97, 108, 32, 97,112,112,101,110,100, 32, 61, 32, 34, 60, 34, 46, 46,115,116,114,105,110,103, 46,103,115,117, 98, 40,116,121, 112,101,115, 91,105, 93, 44, 32, 34, 37,115, 43, 34, 44, 32, 34, 44, 34, 41, 46, 46, 34, 62, 34, 10, 9, 9,108,111, 99, 97,108, 32, 97,112,112,101,110,100, 32, 61, 32, 34, 60, 34, 46, 46, 99,111,110, 99, 97,116, 40, 73,108, 44, 32, 49, 44, 32,116, 97, 98,108,101, 46,103,101,116,110, 40, 73,108, 41, 44, 32, 34, 44, 34, 41, 46, 46, 34, 62, 34, 10, 9, 9, 97, 112,112,101,110,100, 32, 61, 32,115,116,114,105,110,103, 46, 103,115,117, 98, 40, 97,112,112,101,110,100, 44, 32, 34, 37, 115, 42, 44, 37,115, 42, 34, 44, 32, 34, 44, 34, 41, 10, 9, 9, 97,112,112,101,110,100, 32, 61, 32,115,116,114,105,110, 103, 46,103,115,117, 98, 40, 97,112,112,101,110,100, 44, 32, 34, 62, 62, 34, 44, 32, 34, 62, 32, 62, 34, 41, 10, 9, 9, 102,111,114, 32,105, 61, 49, 44,116, 97, 98,108,101, 46,103, 101,116,110, 40,112, 73, 41, 32,100,111, 10, 9, 9, 9, 45, 45,112, 73, 91,105, 93, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,112, 73, 91,105, 93, 44, 32, 34, 62, 62, 34, 44, 32, 34, 62, 32, 62, 34, 41, 10, 9, 9, 9,112, 73, 91,105, 93, 32, 61, 32,114,101,115,111,108,118,101, 95, 116,101,109,112,108, 97,116,101, 95,116,121,112,101,115, 40, 112, 73, 91,105, 93, 41, 10, 9, 9,101,110,100, 10, 9, 9, 98, 73, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40, 98, 73, 44, 32, 34, 62, 62, 34, 44, 32, 34, 62, 32, 62, 34, 41, 10, 9, 9,108,111, 99, 97,108, 32,110, 32, 61, 32,115,101,108,102, 46,110, 97,109,101, 10, 9, 9,105,102, 32,108,111, 99, 97,108, 95,115, 99,111,112,101, 32,116,104, 101,110, 10, 9, 9, 9,110, 32, 61, 32,115,101,108,102, 46, 108,111, 99, 97,108, 95,110, 97,109,101, 10, 9, 9,101,110, 100, 10, 10, 9, 9, 67,108, 97,115,115, 40,110, 46, 46, 97, 112,112,101,110,100, 44, 32,112, 73, 44, 32, 98, 73, 41, 10, 9,101,110,100, 10,101,110,100, 10, 10, 10,102,117,110, 99, 116,105,111,110, 32, 84,101,109,112,108, 97,116,101, 67,108, 97,115,115, 40,110, 97,109,101, 44, 32,112, 97,114,101,110, 116,115, 44, 32, 98,111,100,121, 44, 32,112, 97,114, 97,109, 101,116,101,114,115, 41, 10, 10, 9,108,111, 99, 97,108, 32, 111, 32, 61, 32,123, 10, 9, 10, 9, 9,112, 97,114,101,110, 116,115, 32, 61, 32,112, 97,114,101,110,116,115, 44, 10, 9, 9, 98,111,100,121, 32, 61, 32, 98,111,100,121, 44, 10, 9, 9, 97,114,103,115, 32, 61, 32,112, 97,114, 97,109,101,116, 101,114,115, 44, 10, 9,125, 10, 9, 10, 9,108,111, 99, 97, 108, 32,111,110, 97,109,101, 32, 61, 32,115,116,114,105,110, 103, 46,103,115,117, 98, 40,110, 97,109,101, 44, 32, 34, 64, 46, 42, 36, 34, 44, 32, 34, 34, 41, 10, 9,111,110, 97,109, 101, 32, 61, 32,103,101,116,110, 97,109,101,115,112, 97, 99, 101, 40, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101, 114, 46, 99,117,114,114, 41, 46, 46,111,110, 97,109,101, 10, 9,111, 46,110, 97,109,101, 32, 61, 32,111,110, 97,109,101, 10, 10, 9,111, 46,108,111, 99, 97,108, 95,110, 97,109,101, 32, 61, 32,110, 97,109,101, 10, 9, 10, 9,115,101,116,109, 101,116, 97,116, 97, 98,108,101, 40,111, 44, 32, 99,108, 97, 115,115, 84,101,109,112,108, 97,116,101, 67,108, 97,115,115, 41, 10, 10, 9,105,102, 32, 95,103,108,111, 98, 97,108, 95, 116,101,109,112,108, 97,116,101,115, 91,111,110, 97,109,101, 93, 32,116,104,101,110, 10, 9, 9,119, 97,114,110,105,110, 103, 40, 34, 68,117,112,108,105, 99, 97,116,101, 32,100,101, 99,108, 97,114, 97,116,105,111,110, 32,111,102, 32,116,101, 109,112,108, 97,116,101, 32, 34, 46, 46,111,110, 97,109,101, 41, 10, 9,101,108,115,101, 10, 9, 9, 95,103,108,111, 98, 97,108, 95,116,101,109,112,108, 97,116,101,115, 91,111,110, 97,109,101, 93, 32, 61, 32,111, 10, 9,101,110,100, 10, 10, 9,114,101,116,117,114,110, 32,111, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/template_class.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32, 99,108, 97,115,115, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114,105,116,116, 101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97, 102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117, 108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73,100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111,100,101, 32,105,115, 32,102,114,101,101, 32,115,111,102,116,119, 97, 114,101, 59, 32,121,111,117, 32, 99, 97,110, 32,114,101,100, 105,115,116,114,105, 98,117,116,101, 32,105,116, 32, 97,110, 100, 47,111,114, 32,109,111,100,105,102,121, 32,105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116,119, 97,114, 101, 32,112,114,111,118,105,100,101,100, 32,104,101,114,101, 117,110,100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97,117,116,104, 111,114, 32,104, 97,115, 32,110,111, 32,111, 98,108,105,103, 97,116,105,111,110, 32,116,111, 32,112,114,111,118,105,100, 101, 32,109, 97,105,110,116,101,110, 97,110, 99,101, 44, 32, 115,117,112,112,111,114,116, 44, 32,117,112,100, 97,116,101, 115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,101,109,101, 110,116,115, 44, 32,111,114, 32,109,111,100,105,102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 45, 45, 32, 67,108, 97,115,115, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101, 112,114,101,115,101,110,116,115, 32, 97, 32, 99,108, 97,115, 115, 32,100,101,102,105,110,105,116,105,111,110, 46, 10, 45, 45, 32, 83,116,111,114,101,115, 32,116,104,101, 32,102,111, 108,108,111,119,105,110,103, 32,102,105,101,108,100,115, 58, 10, 45, 45, 32, 32, 32, 32,110, 97,109,101, 32, 61, 32, 99, 108, 97,115,115, 32,110, 97,109,101, 10, 45, 45, 32, 32, 32, 32, 98, 97,115,101, 32, 61, 32, 99,108, 97,115,115, 32, 98, 97,115,101, 44, 32,105,102, 32, 97,110,121, 32, 40,111,110, 108,121, 32,115,105,110,103,108,101, 32,105,110,104,101,114, 105,116, 97,110, 99,101, 32,105,115, 32,115,117,112,112,111, 114,116,101,100, 41, 10, 45, 45, 32, 32, 32, 32,123,105,125, 32, 32, 61, 32,108,105,115,116, 32,111,102, 32,109,101,109, 98,101,114,115, 10, 99,108, 97,115,115, 67,108, 97,115,115, 32, 61, 32,123, 10, 32, 99,108, 97,115,115,116,121,112,101, 32, 61, 32, 39, 99,108, 97,115,115, 39, 44, 10, 32,110, 97, 109,101, 32, 61, 32, 39, 39, 44, 10, 32, 98, 97,115,101, 32, 61, 32, 39, 39, 44, 10, 32,116,121,112,101, 32, 61, 32, 39, 39, 44, 10, 32, 98,116,121,112,101, 32, 61, 32, 39, 39, 44, 10, 32, 99,116,121,112,101, 32, 61, 32, 39, 39, 44, 10,125, 10, 99,108, 97,115,115, 67,108, 97,115,115, 46, 95, 95,105, 110,100,101,120, 32, 61, 32, 99,108, 97,115,115, 67,108, 97, 115,115, 10,115,101,116,109,101,116, 97,116, 97, 98,108,101, 40, 99,108, 97,115,115, 67,108, 97,115,115, 44, 99,108, 97, 115,115, 67,111,110,116, 97,105,110,101,114, 41, 10, 10, 10, 45, 45, 32,114,101,103,105,115,116,101,114, 32, 99,108, 97, 115,115, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97, 115,115, 67,108, 97,115,115, 58,114,101,103,105,115,116,101, 114, 32, 40,112,114,101, 41, 10, 10, 9,105,102, 32,110,111, 116, 32,115,101,108,102, 58, 99,104,101, 99,107, 95,112,117, 98,108,105, 99, 95, 97, 99, 99,101,115,115, 40, 41, 32,116, 104,101,110, 10, 9, 9,114,101,116,117,114,110, 10, 9,101, 110,100, 10, 10, 32,112,114,101, 32, 61, 32,112,114,101, 32, 111,114, 32, 39, 39, 10, 32,112,117,115,104, 40,115,101,108, 102, 41, 10, 9,105,102, 32, 95, 99,111,108,108,101, 99,116, 91,115,101,108,102, 46,116,121,112,101, 93, 32,116,104,101, 110, 10, 9, 9,111,117,116,112,117,116, 40,112,114,101, 44, 39, 35,105,102,100,101,102, 32, 95, 95, 99,112,108,117,115, 112,108,117,115, 92,110, 39, 41, 10, 32, 32,111,117,116,112, 117,116, 40,112,114,101, 46, 46, 39,116,111,108,117, 97, 95, 99, 99,108, 97,115,115, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101,108,102, 46,108,110, 97,109,101, 46, 46, 39, 34, 44, 34, 39, 46, 46,115,101,108,102, 46,116,121, 112,101, 46, 46, 39, 34, 44, 34, 39, 46, 46,115,101,108,102, 46, 98,116,121,112,101, 46, 46, 39, 34, 44, 39, 46, 46, 95, 99,111,108,108,101, 99,116, 91,115,101,108,102, 46,116,121, 112,101, 93, 46, 46, 39, 41, 59, 39, 41, 10, 9, 9,111,117, 116,112,117,116, 40,112,114,101, 44, 39, 35,101,108,115,101, 92,110, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40,112, 114,101, 46, 46, 39,116,111,108,117, 97, 95, 99, 99,108, 97, 115,115, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46, 115,101,108,102, 46,108,110, 97,109,101, 46, 46, 39, 34, 44, 34, 39, 46, 46,115,101,108,102, 46,116,121,112,101, 46, 46, 39, 34, 44, 34, 39, 46, 46,115,101,108,102, 46, 98,116,121, 112,101, 46, 46, 39, 34, 44, 78, 85, 76, 76, 41, 59, 39, 41, 10, 9, 9,111,117,116,112,117,116, 40,112,114,101, 44, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10, 9,101,108,115, 101, 10, 32, 32,111,117,116,112,117,116, 40,112,114,101, 46, 46, 39,116,111,108,117, 97, 95, 99, 99,108, 97,115,115, 40, 116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101,108, 102, 46,108,110, 97,109,101, 46, 46, 39, 34, 44, 34, 39, 46, 46,115,101,108,102, 46,116,121,112,101, 46, 46, 39, 34, 44, 34, 39, 46, 46,115,101,108,102, 46, 98,116,121,112,101, 46, 46, 39, 34, 44, 78, 85, 76, 76, 41, 59, 39, 41, 10, 9,101, 110,100, 10, 9,105,102, 32,115,101,108,102, 46,101,120,116, 114, 97, 95, 98, 97,115,101,115, 32,116,104,101,110, 10, 9, 9,102,111,114, 32,107, 44, 98, 97,115,101, 32,105,110, 32, 105,112, 97,105,114,115, 40,115,101,108,102, 46,101,120,116, 114, 97, 95, 98, 97,115,101,115, 41, 32,100,111, 10, 9, 9, 9, 45, 45, 32,110,111,116, 32,110,111,119, 10, 32, 32, 32, 45, 45,111,117,116,112,117,116, 40,112,114,101, 46, 46, 39, 32,116,111,108,117, 97, 95, 97,100,100, 98, 97,115,101, 40, 116,111,108,117, 97, 95, 83, 44, 32, 34, 39, 46, 46,115,101, 108,102, 46,116,121,112,101, 46, 46, 39, 34, 44, 32, 34, 39, 46, 46, 98, 97,115,101, 46, 46, 39, 34, 41, 59, 39, 41, 10, 9, 9,101,110,100, 10, 9,101,110,100, 10, 32,111,117,116, 112,117,116, 40,112,114,101, 46, 46, 39,116,111,108,117, 97, 95, 98,101,103,105,110,109,111,100,117,108,101, 40,116,111, 108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101,108,102, 46, 108,110, 97,109,101, 46, 46, 39, 34, 41, 59, 39, 41, 10, 32, 108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105,108, 101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10, 32, 32, 115,101,108,102, 91,105, 93, 58,114,101,103,105,115,116,101, 114, 40,112,114,101, 46, 46, 39, 32, 39, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32,111,117, 116,112,117,116, 40,112,114,101, 46, 46, 39,116,111,108,117, 97, 95,101,110,100,109,111,100,117,108,101, 40,116,111,108, 117, 97, 95, 83, 41, 59, 39, 41, 10, 9,112,111,112, 40, 41, 10,101,110,100, 10, 10, 45, 45, 32,114,101,116,117,114,110, 32, 99,111,108,108,101, 99,116,105,111,110, 32,114,101,113, 117,105,114,101,109,101,110,116, 10,102,117,110, 99,116,105, 111,110, 32, 99,108, 97,115,115, 67,108, 97,115,115, 58,114, 101,113,117,105,114,101, 99,111,108,108,101, 99,116,105,111, 110, 32, 40,116, 41, 10, 9,105,102, 32,115,101,108,102, 46, 102,108, 97,103,115, 46,112,114,111,116,101, 99,116,101,100, 95,100,101,115,116,114,117, 99,116,111,114, 32,111,114, 32, 40,110,111,116, 32,115,101,108,102, 58, 99,104,101, 99,107, 95,112,117, 98,108,105, 99, 95, 97, 99, 99,101,115,115, 40, 41, 41, 32,116,104,101,110, 10, 9, 9,114,101,116,117,114, 110, 32,102, 97,108,115,101, 10, 9,101,110,100, 10, 32,112, 117,115,104, 40,115,101,108,102, 41, 10, 9,108,111, 99, 97, 108, 32,114, 32, 61, 32,102, 97,108,115,101, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105,108,101, 32, 115,101,108,102, 91,105, 93, 32,100,111, 10, 32, 32,114, 32, 61, 32,115,101,108,102, 91,105, 93, 58,114,101,113,117,105, 114,101, 99,111,108,108,101, 99,116,105,111,110, 40,116, 41, 32,111,114, 32,114, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 9,112,111,112, 40, 41, 10, 9, 45, 45, 32,111,110,108,121, 32, 99,108, 97,115,115, 32,116,104, 97,116, 32,101,120,112,111,114,116,115, 32,100,101,115,116, 114,117, 99,116,111,114, 32, 99, 97,110, 32, 98,101, 32, 97, 112,112,114,111,112,114,105, 97,116,101,108,121, 32, 99,111, 108,108,101, 99,116,101,100, 10, 9, 45, 45, 32, 99,108, 97, 115,115,101,115, 32,116,104, 97,116, 32,101,120,112,111,114, 116, 32, 99,111,110,115,116,114,117, 99,116,111,114,115, 32, 110,101,101,100, 32,116,111, 32,104, 97,118,101, 32, 97, 32, 99,111,108,108,101, 99,116,111,114, 32, 40,111,118,101,114, 114,105,100,101,100, 32, 98,121, 32, 45, 68, 32,102,108, 97, 103, 32,111,110, 32, 99,111,109,109, 97,110,100, 32,108,105, 110,101, 41, 10, 9,105,102, 32,115,101,108,102, 46, 95,100, 101,108,101,116,101, 32,111,114, 32, 40, 40,110,111,116, 32, 102,108, 97,103,115, 91, 39, 68, 39, 93, 41, 32, 97,110,100, 32,115,101,108,102, 46, 95,110,101,119, 41, 32,116,104,101, 110, 10, 9, 9, 45, 45,116, 91,115,101,108,102, 46,116,121, 112,101, 93, 32, 61, 32, 34,116,111,108,117, 97, 95, 99,111, 108,108,101, 99,116, 95, 34, 32, 46, 46, 32,103,115,117, 98, 40,115,101,108,102, 46,116,121,112,101, 44, 34, 58, 58, 34, 44, 34, 95, 34, 41, 10, 9, 9,116, 91,115,101,108,102, 46, 116,121,112,101, 93, 32, 61, 32, 34,116,111,108,117, 97, 95, 99,111,108,108,101, 99,116, 95, 34, 32, 46, 46, 32, 99,108, 101, 97,110, 95,116,101,109,112,108, 97,116,101, 40,115,101, 108,102, 46,116,121,112,101, 41, 10, 9, 9,114, 32, 61, 32, 116,114,117,101, 10, 9,101,110,100, 10, 32,114,101,116,117, 114,110, 32,114, 10,101,110,100, 10, 10, 45, 45, 32,111,117, 116,112,117,116, 32,116, 97,103,115, 10,102,117,110, 99,116, 105,111,110, 32, 99,108, 97,115,115, 67,108, 97,115,115, 58, 100,101, 99,108,116,121,112,101, 32, 40, 41, 10, 32,112,117, 115,104, 40,115,101,108,102, 41, 10, 9,115,101,108,102, 46, 116,121,112,101, 32, 61, 32,114,101,103,116,121,112,101, 40, 115,101,108,102, 46,111,114,105,103,105,110, 97,108, 95,110, 97,109,101, 32,111,114, 32,115,101,108,102, 46,110, 97,109, 101, 41, 10, 9,115,101,108,102, 46, 98,116,121,112,101, 32, 61, 32,116,121,112,101,118, 97,114, 40,115,101,108,102, 46, 98, 97,115,101, 41, 10, 9,115,101,108,102, 46, 99,116,121, 112,101, 32, 61, 32, 39, 99,111,110,115,116, 32, 39, 46, 46, 115,101,108,102, 46,116,121,112,101, 10, 9,105,102, 32,115, 101,108,102, 46,101,120,116,114, 97, 95, 98, 97,115,101,115, 32,116,104,101,110, 10, 9, 9,102,111,114, 32,105, 61, 49, 44,116, 97, 98,108,101, 46,103,101,116,110, 40,115,101,108, 102, 46,101,120,116,114, 97, 95, 98, 97,115,101,115, 41, 32, 100,111, 10, 9, 9, 9,115,101,108,102, 46,101,120,116,114, 97, 95, 98, 97,115,101,115, 91,105, 93, 32, 61, 32,116,121, 112,101,118, 97,114, 40,115,101,108,102, 46,101,120,116,114, 97, 95, 98, 97,115,101,115, 91,105, 93, 41, 10, 9, 9,101, 110,100, 10, 9,101,110,100, 10, 32,108,111, 99, 97,108, 32, 105, 61, 49, 10, 32,119,104,105,108,101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10, 32, 32,115,101,108,102, 91,105, 93, 58,100,101, 99,108,116,121,112,101, 40, 41, 10, 32, 32, 105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 9,112, 111,112, 40, 41, 10,101,110,100, 10, 10, 10, 45, 45, 32, 80, 114,105,110,116, 32,109,101,116,104,111,100, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67,108, 97,115, 115, 58,112,114,105,110,116, 32, 40,105,100,101,110,116, 44, 99,108,111,115,101, 41, 10, 32,112,114,105,110,116, 40,105, 100,101,110,116, 46, 46, 34, 67,108, 97,115,115,123, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101, 108,102, 46,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 98, 97,115,101, 32, 61, 32, 39, 34, 46, 46,115,101,108, 102, 46, 98, 97,115,101, 46, 46, 34, 39, 59, 34, 41, 10, 32, 112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 108,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101,108, 102, 46,108,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,116,121,112,101, 32, 61, 32, 39, 34, 46, 46,115,101,108, 102, 46,116,121,112,101, 46, 46, 34, 39, 44, 34, 41, 10, 32, 112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 98,116,121,112,101, 32, 61, 32, 39, 34, 46, 46,115,101,108, 102, 46, 98,116,121,112,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 99,116,121,112,101, 32, 61, 32, 39, 34, 46, 46,115,101, 108,102, 46, 99,116,121,112,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104, 105,108,101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10, 32, 32,115,101,108,102, 91,105, 93, 58,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 34, 44, 34, 44, 34, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110, 100, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34,125, 34, 46, 46, 99,108,111,115,101, 41, 10,101,110, 100, 10, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97, 115,115, 67,108, 97,115,115, 58,115,101,116, 95,112,114,111, 116,101, 99,116,101,100, 95,100,101,115,116,114,117, 99,116, 111,114, 40,112, 41, 10, 9,115,101,108,102, 46,102,108, 97, 103,115, 46,112,114,111,116,101, 99,116,101,100, 95,100,101, 115,116,114,117, 99,116,111,114, 32, 61, 32,115,101,108,102, 46,102,108, 97,103,115, 46,112,114,111,116,101, 99,116,101, 100, 95,100,101,115,116,114,117, 99,116,111,114, 32,111,114, 32,112, 10,101,110,100, 10, 10, 45, 45, 32, 73,110,116,101, 114,110, 97,108, 32, 99,111,110,115,116,114,117, 99,116,111, 114, 10,102,117,110, 99,116,105,111,110, 32, 95, 67,108, 97, 115,115, 32, 40,116, 41, 10, 32,115,101,116,109,101,116, 97, 116, 97, 98,108,101, 40,116, 44, 99,108, 97,115,115, 67,108, 97,115,115, 41, 10, 32,116, 58, 98,117,105,108,100,110, 97, 109,101,115, 40, 41, 10, 32, 97,112,112,101,110,100, 40,116, 41, 10, 32,114,101,116,117,114,110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32, 67,111,110,115,116,114,117, 99,116,111, 114, 10, 45, 45, 32, 69,120,112,101, 99,116,115, 32,116,104, 101, 32,110, 97,109,101, 44, 32,116,104,101, 32, 98, 97,115, 101, 32, 40, 97,114,114, 97,121, 41, 32, 97,110,100, 32,116, 104,101, 32, 98,111,100,121, 32,111,102, 32,116,104,101, 32, 99,108, 97,115,115, 46, 10,102,117,110, 99,116,105,111,110, 32, 67,108, 97,115,115, 32, 40,110, 44,112, 44, 98, 41, 10, 10, 9,105,102, 32,116, 97, 98,108,101, 46,103,101,116,110, 40,112, 41, 32, 62, 32, 49, 32,116,104,101,110, 10, 9, 9, 98, 32, 61, 32,115,116,114,105,110,103, 46,115,117, 98, 40, 98, 44, 32, 49, 44, 32, 45, 50, 41, 10, 9, 9,102,111,114, 32,105, 61, 50, 44,116, 97, 98,108,101, 46,103,101,116,110, 40,112, 41, 44, 49, 32,100,111, 10, 9, 9, 9, 98, 32, 61, 32, 98, 46, 46, 34, 92,110, 32,116,111,108,117, 97, 95,105, 110,104,101,114,105,116,115, 32, 34, 46, 46,112, 91,105, 93, 46, 46, 34, 32, 95, 95, 34, 46, 46,112, 91,105, 93, 46, 46, 34, 95, 95, 59, 92,110, 34, 10, 9, 9,101,110,100, 10, 9, 9, 98, 32, 61, 32, 98, 46, 46, 34, 92,110,125, 34, 10, 9, 101,110,100, 10, 10, 9, 45, 45, 32, 99,104,101, 99,107, 32, 102,111,114, 32,116,101,109,112,108, 97,116,101, 10, 9, 98, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40, 98, 44, 32, 34, 94,123, 37,115, 42, 84, 69, 77, 80, 76, 65, 84, 69, 95, 66, 73, 78, 68, 34, 44, 32, 34,123, 92,110, 84, 79, 76, 85, 65, 95, 84, 69, 77, 80, 76, 65, 84, 69, 95, 66, 73, 78, 68, 34, 41, 10, 9,108,111, 99, 97,108, 32,116, 44, 95, 44, 84, 44, 73, 32, 61, 32,115,116,114,105,110,103, 46, 102,105,110,100, 40, 98, 44, 32, 39, 94,123, 37,115, 42, 84, 79, 76, 85, 65, 95, 84, 69, 77, 80, 76, 65, 84, 69, 95, 66, 73, 78, 68, 37,115, 42, 37, 40, 43, 37,115, 42, 92, 34, 63, 40, 91, 94, 92, 34, 44, 93, 42, 41, 92, 34, 63, 37,115, 42, 44, 37,115, 42, 40, 91, 94, 37, 41, 93, 42, 41, 37,115, 42, 37, 41, 43, 39, 41, 10, 9,105,102, 32,116, 32,116,104,101, 110, 10, 10, 9, 9, 45, 45, 32,114,101,109,111,118,101, 32, 113,117,111,116,101,115, 10, 9, 9, 73, 32, 61, 32,115,116, 114,105,110,103, 46,103,115,117, 98, 40, 73, 44, 32, 34, 92, 34, 34, 44, 32, 34, 34, 41, 10, 9, 9, 84, 32, 61, 32,115, 116,114,105,110,103, 46,103,115,117, 98, 40, 84, 44, 32, 34, 92, 34, 34, 44, 32, 34, 34, 41, 10, 9, 9, 45, 45, 32,103, 101,116, 32,116,121,112,101, 32,108,105,115,116, 10, 9, 9, 108,111, 99, 97,108, 32,116,121,112,101,115, 32, 61, 32,115, 112,108,105,116, 95, 99, 95,116,111,107,101,110,115, 40, 73, 44, 32, 34, 44, 34, 41, 10, 9, 9, 45, 45, 32,114,101,109, 111,118,101, 32, 84, 69, 77, 80, 76, 65, 84, 69, 95, 66, 73, 78, 68, 32,108,105,110,101, 10, 9, 9,108,111, 99, 97,108, 32, 98,115, 32, 61, 32,115,116,114,105,110,103, 46,103,115, 117, 98, 40, 98, 44, 32, 34, 94,123, 37,115, 42, 84, 79, 76, 85, 65, 95, 84, 69, 77, 80, 76, 65, 84, 69, 95, 66, 73, 78, 68, 91, 94, 92,110, 93, 42, 92,110, 34, 44, 32, 34,123, 92, 110, 34, 41, 10, 9, 9, 9, 10, 9, 9,108,111, 99, 97,108, 32, 84,108, 32, 61, 32,115,112,108,105,116, 40, 84, 44, 32, 34, 32, 34, 41, 10, 9, 9,108,111, 99, 97,108, 32,116, 99, 32, 61, 32, 84,101,109,112,108, 97,116,101, 67,108, 97,115, 115, 40,110, 44, 32,112, 44, 32, 98,115, 44, 32, 84,108, 41, 10, 10, 9, 9, 10, 9, 9,116, 99, 58,116,104,114,111,119, 40,116,121,112,101,115, 44, 32,116,114,117,101, 41, 10, 9, 9, 45, 45,102,111,114, 32,105, 61, 49, 44,116,121,112,101, 115, 46,110, 32,100,111, 10, 9, 9, 45, 45, 9,116, 99, 58, 116,104,114,111,119, 40,115,112,108,105,116, 95, 99, 95,116, 111,107,101,110,115, 40,116,121,112,101,115, 91,105, 93, 44, 32, 34, 32, 34, 41, 44, 32,116,114,117,101, 41, 10, 9, 9, 45, 45,101,110,100, 10, 9, 9,114,101,116,117,114,110, 10, 9,101,110,100, 10, 9, 10, 9,108,111, 99, 97,108, 32,109, 98, 97,115,101, 10, 10, 9,105,102, 32,112, 32,116,104,101, 110, 10, 9, 9,109, 98, 97,115,101, 32, 61, 32,116, 97, 98, 108,101, 46,114,101,109,111,118,101, 40,112, 44, 32, 49, 41, 10, 9, 9,105,102, 32,110,111,116, 32,112, 91, 49, 93, 32, 116,104,101,110, 32,112, 32, 61, 32,110,105,108, 32,101,110, 100, 10, 9,101,110,100, 10, 10, 9,109, 98, 97,115,101, 32, 61, 32,109, 98, 97,115,101, 32, 97,110,100, 32,114,101,115, 111,108,118,101, 95,116,101,109,112,108, 97,116,101, 95,116, 121,112,101,115, 40,109, 98, 97,115,101, 41, 10, 10, 9,108, 111, 99, 97,108, 32, 99, 10, 9,108,111, 99, 97,108, 32,111, 110, 97,109,101, 32, 61, 32,115,116,114,105,110,103, 46,103, 115,117, 98, 40,110, 44, 32, 34, 64, 46, 42, 36, 34, 44, 32, 34, 34, 41, 10, 9,111,110, 97,109,101, 32, 61, 32,103,101, 116,110, 97,109,101,115,112, 97, 99,101, 40, 99,108, 97,115, 115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 41, 46, 46,111,110, 97,109,101, 10, 10, 9,105,102, 32, 95, 103,108,111, 98, 97,108, 95, 99,108, 97,115,115,101,115, 91, 111,110, 97,109,101, 93, 32,116,104,101,110, 10, 9, 9, 99, 32, 61, 32, 95,103,108,111, 98, 97,108, 95, 99,108, 97,115, 115,101,115, 91,111,110, 97,109,101, 93, 10, 9, 9,105,102, 32,109, 98, 97,115,101, 32, 97,110,100, 32, 40, 40,110,111, 116, 32, 99, 46, 98, 97,115,101, 41, 32,111,114, 32, 99, 46, 98, 97,115,101, 32, 61, 61, 32, 34, 34, 41, 32,116,104,101, 110, 10, 9, 9, 9, 99, 46, 98, 97,115,101, 32, 61, 32,109, 98, 97,115,101, 10, 9, 9,101,110,100, 10, 9,101,108,115, 101, 10, 9, 9, 99, 32, 61, 32, 95, 67,108, 97,115,115, 40, 95, 67,111,110,116, 97,105,110,101,114,123,110, 97,109,101, 61,110, 44, 32, 98, 97,115,101, 61,109, 98, 97,115,101, 44, 32,101,120,116,114, 97, 95, 98, 97,115,101,115, 61,112,125, 41, 10, 10, 9, 9,108,111, 99, 97,108, 32,102,116, 32, 61, 32,103,101,116,110, 97,109,101,115,112, 97, 99,101, 40, 99, 46,112, 97,114,101,110,116, 41, 46, 46, 99, 46,111,114,105, 103,105,110, 97,108, 95,110, 97,109,101, 10, 9, 9, 97,112, 112,101,110,100, 95,103,108,111, 98, 97,108, 95,116,121,112, 101, 40,102,116, 44, 32, 99, 41, 10, 9,101,110,100, 10, 10, 9,112,117,115,104, 40, 99, 41, 10, 9, 99, 58,112, 97,114, 115,101, 40,115,116,114,115,117, 98, 40, 98, 44, 50, 44,115, 116,114,108,101,110, 40, 98, 41, 45, 49, 41, 41, 32, 45, 45, 32,101,108,105,109,105,110, 97,116,101, 32, 98,114, 97, 99, 101,115, 10, 9,112,111,112, 40, 41, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/class.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,109, 97,114,107, 32,117,112, 32, 99,111,109,109, 101,110,116,115, 32, 97,110,100, 32,115,116,114,105,110,103, 115, 10, 83, 84, 82, 49, 32, 61, 32, 34, 92, 48, 48, 49, 34, 10, 83, 84, 82, 50, 32, 61, 32, 34, 92, 48, 48, 50, 34, 10, 83, 84, 82, 51, 32, 61, 32, 34, 92, 48, 48, 51, 34, 10, 83, 84, 82, 52, 32, 61, 32, 34, 92, 48, 48, 52, 34, 10, 82, 69, 77, 32, 32, 61, 32, 34, 92, 48, 48, 53, 34, 10, 65, 78, 89, 32, 32, 61, 32, 34, 40, 91, 92, 48, 48, 49, 45, 92, 48, 48, 53, 93, 41, 34, 10, 69, 83, 67, 49, 32, 61, 32, 34, 92, 48, 48, 54, 34, 10, 69, 83, 67, 50, 32, 61, 32, 34, 92, 48, 48, 55, 34, 10, 10, 77, 65, 83, 75, 32, 61, 32,123, 32, 45, 45, 32,116,104,101, 32,115,117, 98,115,116,105,116,117,116,105, 111,110, 32,111,114,100,101,114, 32,105,115, 32,105,109,112, 111,114,116, 97,110,116, 10, 32,123, 69, 83, 67, 49, 44, 32, 34, 92, 92, 39, 34,125, 44, 10, 32,123, 69, 83, 67, 50, 44, 32, 39, 92, 92, 34, 39,125, 44, 10, 32,123, 83, 84, 82, 49, 44, 32, 34, 39, 34,125, 44, 10, 32,123, 83, 84, 82, 50, 44, 32, 39, 34, 39,125, 44, 10, 32,123, 83, 84, 82, 51, 44, 32, 34, 37, 91, 37, 91, 34,125, 44, 10, 32,123, 83, 84, 82, 52, 44, 32, 34, 37, 93, 37, 93, 34,125, 44, 10, 32,123, 82, 69, 77, 32, 44, 32, 34, 37, 45, 37, 45, 34,125, 44, 10,125, 10, 10,102,117,110, 99,116,105,111,110, 32,109, 97,115,107, 32, 40,115, 41, 10, 32,102,111,114, 32,105, 32, 61, 32, 49, 44, 103,101,116,110, 40, 77, 65, 83, 75, 41, 32, 32,100,111, 10, 32, 32,115, 32, 61, 32,103,115,117, 98, 40,115, 44, 77, 65, 83, 75, 91,105, 93, 91, 50, 93, 44, 77, 65, 83, 75, 91,105, 93, 91, 49, 93, 41, 10, 32,101,110,100, 10, 32,114,101,116, 117,114,110, 32,115, 10,101,110,100, 10, 10,102,117,110, 99, 116,105,111,110, 32,117,110,109, 97,115,107, 32, 40,115, 41, 10, 32,102,111,114, 32,105, 32, 61, 32, 49, 44,103,101,116, 110, 40, 77, 65, 83, 75, 41, 32, 32,100,111, 10, 32, 32,115, 32, 61, 32,103,115,117, 98, 40,115, 44, 77, 65, 83, 75, 91, 105, 93, 91, 49, 93, 44, 77, 65, 83, 75, 91,105, 93, 91, 50, 93, 41, 10, 32,101,110,100, 10, 32,114,101,116,117,114,110, 32,115, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111, 110, 32, 99,108,101, 97,110, 32, 40,115, 41, 10, 32, 45, 45, 32, 99,104,101, 99,107, 32,102,111,114, 32, 99,111,109,112, 105,108, 97,116,105,111,110, 32,101,114,114,111,114, 10, 32, 108,111, 99, 97,108, 32, 99,111,100,101, 32, 61, 32, 34,114, 101,116,117,114,110, 32,102,117,110, 99,116,105,111,110, 32, 40, 41, 92,110, 34, 32, 46, 46, 32,115, 32, 46, 46, 32, 34, 92,110, 32,101,110,100, 34, 10, 32,105,102, 32,110,111,116, 32,100,111,115,116,114,105,110,103, 40, 99,111,100,101, 41, 32,116,104,101,110, 10, 32, 32,114,101,116,117,114,110, 32, 110,105,108, 10, 32,101,110,100, 10, 10, 32,105,102, 32,102, 108, 97,103,115, 91, 39, 67, 39, 93, 32,116,104,101,110, 10, 32, 9,114,101,116,117,114,110, 32,115, 10, 32,101,110,100, 10, 10, 32,108,111, 99, 97,108, 32, 83, 32, 61, 32, 34, 34, 32, 45, 45, 32,115, 97,118,101,100, 32,115,116,114,105,110, 103, 10, 10, 32,115, 32, 61, 32,109, 97,115,107, 40,115, 41, 10, 10, 32, 45, 45, 32,114,101,109,111,118,101, 32, 98,108, 97,110,107,115, 32, 97,110,100, 32, 99,111,109,109,101,110, 116,115, 10, 32,119,104,105,108,101, 32, 49, 32,100,111, 10, 32, 32,108,111, 99, 97,108, 32, 98, 44,101, 44,100, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 65, 78, 89, 41, 10, 32, 32,105,102, 32, 98, 32,116,104,101,110, 10, 32, 32, 32, 83, 32, 61, 32, 83, 46, 46,115,116,114,115,117, 98, 40, 115, 44, 49, 44, 98, 45, 49, 41, 10, 32, 32, 32,115, 32, 61, 32,115,116,114,115,117, 98, 40,115, 44, 98, 43, 49, 41, 10, 32, 32, 32,105,102, 32,100, 61, 61, 83, 84, 82, 49, 32,111, 114, 32,100, 61, 61, 83, 84, 82, 50, 32,116,104,101,110, 10, 32, 32, 32, 32,101, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44,100, 41, 10, 32, 32, 32, 32, 83, 32, 61, 32, 83, 32, 46, 46,100, 46, 46,115,116,114,115,117, 98, 40,115, 44, 49, 44,101, 41, 10, 32, 32, 32, 32,115, 32, 61, 32,115,116, 114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32, 32, 101,108,115,101,105,102, 32,100, 61, 61, 83, 84, 82, 51, 32, 116,104,101,110, 10, 32, 32, 32, 32,101, 32, 61, 32,115,116, 114,102,105,110,100, 40,115, 44, 83, 84, 82, 52, 41, 10, 32, 32, 32, 32, 83, 32, 61, 32, 83, 46, 46,100, 46, 46,115,116, 114,115,117, 98, 40,115, 44, 49, 44,101, 41, 10, 32, 32, 32, 32,115, 32, 61, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32, 32,101,108,115,101,105,102, 32,100, 61, 61, 82, 69, 77, 32,116,104,101,110, 10, 32, 32, 32, 32, 115, 32, 61, 32,103,115,117, 98, 40,115, 44, 34, 91, 94, 92, 110, 93, 42, 40, 92,110, 63, 41, 34, 44, 34, 37, 49, 34, 44, 49, 41, 10, 32, 32, 32,101,110,100, 10, 32, 32,101,108,115, 101, 10, 32, 32, 32, 83, 32, 61, 32, 83, 46, 46,115, 10, 32, 32, 32, 98,114,101, 97,107, 10, 32, 32,101,110,100, 10, 32, 101,110,100, 10, 32, 45, 45, 32,101,108,105,109,105,110, 97, 116,101, 32,117,110,101, 99,101,115,115, 97,114,121, 32,115, 112, 97, 99,101,115, 10, 32, 83, 32, 61, 32,103,115,117, 98, 40, 83, 44, 34, 91, 32, 92,116, 93, 43, 34, 44, 34, 32, 34, 41, 10, 32, 83, 32, 61, 32,103,115,117, 98, 40, 83, 44, 34, 91, 32, 92,116, 93, 42, 92,110, 91, 32, 92,116, 93, 42, 34, 44, 34, 92,110, 34, 41, 10, 9, 83, 32, 61, 32,103,115,117, 98, 40, 83, 44, 34, 92,110, 43, 34, 44, 34, 92,110, 34, 41, 10, 32, 83, 32, 61, 32,117,110,109, 97,115,107, 40, 83, 41, 10, 32,114,101,116,117,114,110, 32, 83, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/clean.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32, 71,101,110,101,114, 97,116,101, 32, 98,105,110, 100,105,110,103, 32, 99,111,100,101, 10, 45, 45, 32, 87,114, 105,116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 76, 97, 115,116, 32,117,112,100, 97,116,101, 58, 32, 65,112,114, 32, 50, 48, 48, 51, 10, 45, 45, 32, 36, 73,100, 58, 32, 36, 10, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111,100,101, 32, 105,115, 32,102,114,101,101, 32,115,111,102,116,119, 97,114, 101, 59, 32,121,111,117, 32, 99, 97,110, 32,114,101,100,105, 115,116,114,105, 98,117,116,101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109,111,100,105,102,121, 32,105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116,119, 97,114,101, 32,112,114,111,118,105,100,101,100, 32,104,101,114,101,117, 110,100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97, 110,100, 10, 45, 45, 32,116,104,101, 32, 97,117,116,104,111, 114, 32,104, 97,115, 32,110,111, 32,111, 98,108,105,103, 97, 116,105,111,110, 32,116,111, 32,112,114,111,118,105,100,101, 32,109, 97,105,110,116,101,110, 97,110, 99,101, 44, 32,115, 117,112,112,111,114,116, 44, 32,117,112,100, 97,116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,101,109,101,110, 116,115, 44, 32,111,114, 32,109,111,100,105,102,105, 99, 97, 116,105,111,110,115, 46, 10, 10,102,117,110, 99,116,105,111, 110, 32,112, 97,114,115,101, 95,101,120,116,114, 97, 40, 41, 10, 10, 9,102,111,114, 32,107, 44,118, 32,105,110, 32,105, 112, 97,105,114,115, 40, 95,101,120,116,114, 97, 95,112, 97, 114, 97,109,101,116,101,114,115, 32,111,114, 32,123,125, 41, 32,100,111, 10, 9, 9, 10, 9, 9,108,111, 99, 97,108, 32, 98, 44,101, 44,110, 97,109,101, 44,118, 97,108,117,101, 32, 61, 32,115,116,114,105,110,103, 46,102,105,110,100, 40,118, 44, 32, 34, 94, 40, 91, 94, 61, 93, 42, 41, 61, 40, 46, 42, 41, 36, 34, 41, 10, 9, 9,105,102, 32, 98, 32,116,104,101, 110, 10, 9, 9, 9, 95,101,120,116,114, 97, 95,112, 97,114, 97,109,101,116,101,114,115, 91,110, 97,109,101, 93, 32, 61, 32,118, 97,108,117,101, 10, 9, 9,101,108,115,101, 10, 9, 9, 9, 95,101,120,116,114, 97, 95,112, 97,114, 97,109,101, 116,101,114,115, 91,118, 93, 32, 61, 32,116,114,117,101, 10, 9, 9,101,110,100, 10, 9,101,110,100, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,100,111,105,116, 32, 40, 41, 10, 9, 45, 45, 32,100,101,102,105,110,101, 32,112, 97, 99,107, 97,103,101, 32,110, 97,109,101, 44, 32,105,102, 32,110,111,116, 32,112,114,111,118,105,100,101,100, 10, 9, 105,102, 32,110,111,116, 32,102,108, 97,103,115, 46,110, 32, 116,104,101,110, 10, 9, 9,105,102, 32,102,108, 97,103,115, 46,102, 32,116,104,101,110, 10, 9, 9, 9,102,108, 97,103, 115, 46,110, 32, 61, 32,103,115,117, 98, 40,102,108, 97,103, 115, 46,102, 44, 34, 37, 46, 46, 42, 36, 34, 44, 34, 34, 41, 10, 9, 9, 9, 95, 44, 95, 44,102,108, 97,103,115, 46,110, 32, 61, 32,115,116,114,105,110,103, 46,102,105,110,100, 40, 102,108, 97,103,115, 46,110, 44, 32, 34, 40, 91, 94, 47, 92, 92, 93, 42, 41, 36, 34, 41, 10, 9, 9,101,108,115,101, 10, 9, 9, 9,101,114,114,111,114, 40, 34, 35,110,111, 32,112, 97, 99,107, 97,103,101, 32,110, 97,109,101, 32,110,111,114, 32,105,110,112,117,116, 32,102,105,108,101, 32,112,114,111, 118,105,100,101,100, 34, 41, 10, 9, 9,101,110,100, 10, 9, 101,110,100, 10, 10, 9, 45, 45, 32,112, 97,114,115,101, 32, 116, 97, 98,108,101, 32,119,105,116,104, 32,101,120,116,114, 97, 32,112, 97,114, 97,109,116,101,114,115, 10, 9,112, 97, 114,115,101, 95,101,120,116,114, 97, 40, 41, 10, 10, 9, 45, 45, 32,100,111, 32,116,104,105,115, 32, 97,102,116,101,114, 32,115,101,116,116,105,110,103, 32,116,104,101, 32,112, 97, 99,107, 97,103,101, 32,110, 97,109,101, 10, 9,105,102, 32, 102,108, 97,103,115, 91, 39, 76, 39, 93, 32,116,104,101,110, 10, 9, 9,100,111,102,105,108,101, 40,102,108, 97,103,115, 91, 39, 76, 39, 93, 41, 10, 9,101,110,100, 10, 10, 9, 45, 45, 32, 97,100,100, 32, 99,112,112,115,116,114,105,110,103, 10, 9,105,102, 32,110,111,116, 32,102,108, 97,103,115, 91, 39, 83, 39, 93, 32,116,104,101,110, 10, 9, 9, 95, 98, 97, 115,105, 99, 91, 39,115,116,114,105,110,103, 39, 93, 32, 61, 32, 39, 99,112,112,115,116,114,105,110,103, 39, 10, 9, 9, 95, 98, 97,115,105, 99, 91, 39,115,116,100, 58, 58,115,116, 114,105,110,103, 39, 93, 32, 61, 32, 39, 99,112,112,115,116, 114,105,110,103, 39, 10, 9, 9, 95, 98, 97,115,105, 99, 95, 99,116,121,112,101, 46, 99,112,112,115,116,114,105,110,103, 32, 61, 32, 39, 99,111,110,115,116, 32, 99,104, 97,114, 42, 39, 10, 9,101,110,100, 10, 10, 9, 45, 45, 32,112,114,111, 99, 99,101,115,115, 32,112, 97, 99,107, 97,103,101, 10, 9, 108,111, 99, 97,108, 32,112, 32, 32, 61, 32, 80, 97, 99,107, 97,103,101, 40,102,108, 97,103,115, 46,110, 44,102,108, 97, 103,115, 46,102, 41, 10, 10, 9,105,102, 32,102,108, 97,103, 115, 46,112, 32,116,104,101,110, 10, 9, 9,114,101,116,117, 114,110, 32, 32, 32, 32, 32, 32, 32, 32, 45, 45, 32,111,110, 108,121, 32,112, 97,114,115,101, 10, 9,101,110,100, 10, 10, 9,105,102, 32,102,108, 97,103,115, 46,111, 32,116,104,101, 110, 10, 9, 9,108,111, 99, 97,108, 32,115,116, 44,109,115, 103, 32, 61, 32,119,114,105,116,101,116,111, 40,102,108, 97, 103,115, 46,111, 41, 10, 9, 9,105,102, 32,110,111,116, 32, 115,116, 32,116,104,101,110, 10, 9, 9, 9,101,114,114,111, 114, 40, 39, 35, 39, 46, 46,109,115,103, 41, 10, 9, 9,101, 110,100, 10, 9,101,110,100, 10, 10, 9,112, 58,100,101, 99, 108,116,121,112,101, 40, 41, 10, 9,105,102, 32,102,108, 97, 103,115, 46, 80, 32,116,104,101,110, 10, 9, 9,112, 58,112, 114,105,110,116, 40, 41, 10, 9,101,108,115,101, 10, 9, 9, 112,117,115,104, 40,112, 41, 10, 9, 9,112,114,101, 95,111, 117,116,112,117,116, 95,104,111,111,107, 40,112, 41, 10, 9, 9,112,111,112, 40, 41, 10, 9, 9,112, 58,112,114,101, 97, 109, 98,108,101, 40, 41, 10, 9, 9,112, 58,115,117,112, 99, 111,100,101, 40, 41, 10, 9, 9,112,117,115,104, 40,112, 41, 10, 9, 9,112,114,101, 95,114,101,103,105,115,116,101,114, 95,104,111,111,107, 40,112, 41, 10, 9, 9,112,111,112, 40, 41, 10, 9, 9,112, 58,114,101,103,105,115,116,101,114, 40, 41, 10, 9, 9,112,117,115,104, 40,112, 41, 10, 9, 9,112, 111,115,116, 95,111,117,116,112,117,116, 95,104,111,111,107, 40,112, 41, 10, 9, 9,112,111,112, 40, 41, 10, 9,101,110, 100, 10, 10, 9,105,102, 32,102,108, 97,103,115, 46,111, 32, 116,104,101,110, 10, 9, 9,119,114,105,116,101,116,111, 40, 41, 10, 9,101,110,100, 10, 10, 9, 45, 45, 32,119,114,105, 116,101, 32,104,101, 97,100,101,114, 32,102,105,108,101, 10, 9,105,102, 32,110,111,116, 32,102,108, 97,103,115, 46, 80, 32,116,104,101,110, 10, 9, 9,105,102, 32,102,108, 97,103, 115, 46, 72, 32,116,104,101,110, 10, 9, 9, 9,108,111, 99, 97,108, 32,115,116, 44,109,115,103, 32, 61, 32,119,114,105, 116,101,116,111, 40,102,108, 97,103,115, 46, 72, 41, 10, 9, 9, 9,105,102, 32,110,111,116, 32,115,116, 32,116,104,101, 110, 10, 9, 9, 9, 9,101,114,114,111,114, 40, 39, 35, 39, 46, 46,109,115,103, 41, 10, 9, 9, 9,101,110,100, 10, 9, 9, 9,112, 58,104,101, 97,100,101,114, 40, 41, 10, 9, 9, 9,119,114,105,116,101,116,111, 40, 41, 10, 9, 9,101,110, 100, 10, 9,101,110,100, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/doit.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 10,108,111, 99, 97,108, 32,101,114,114, 44,109,115,103, 32, 61, 32,112, 99, 97,108,108, 40,100,111,105,116, 41, 10,105, 102, 32,110,111,116, 32,101,114,114, 32,116,104,101,110, 10, 32,108,111, 99, 97,108, 32, 95, 44, 95, 44,108, 97, 98,101, 108, 44,109,115,103, 32, 61, 32,115,116,114,102,105,110,100, 40,109,115,103, 44, 34, 40, 46, 45, 58, 46, 45, 58, 37,115, 42, 41, 40, 46, 42, 41, 34, 41, 10, 32,116,111,108,117, 97, 95,101,114,114,111,114, 40,109,115,103, 44,108, 97, 98,101, 108, 41, 10, 32,112,114,105,110,116, 40,100,101, 98,117,103, 46,116,114, 97, 99,101, 98, 97, 99,107, 40, 41, 41, 10,101, 110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code 23"); lua_settop(tolua_S, top); } /* end of embedded lua code */ tolua_endmodule(tolua_S); return 1; } #if defined(LUA_VERSION_NUM) && LUA_VERSION_NUM >= 501 TOLUA_API int luaopen_tolua (lua_State* tolua_S) { return tolua_tolua_open(tolua_S); }; #endif tolua++-1.0.93/src/bin/tolua.c0000644000175000017500000001074310462545744015213 0ustar cesarecesare/* tolua ** Support code for Lua bindings. ** Written by Waldemar Celes ** TeCGraf/PUC-Rio ** Aug 2003 ** $Id:$ */ /* This code is free software; you can redistribute it and/or modify it. ** The software provided hereunder is on an "as is" basis, and ** the author has no obligation to provide maintenance, support, updates, ** enhancements, or modifications. */ #include "tolua++.h" #include "lua.h" #include "lualib.h" #include "lauxlib.h" #include #include #include static void help (void) { fprintf(stderr,"\n" "usage: tolua++ [options] input_file\n" "\n" "Command line options are:\n" " -v : print version information.\n" " -o file : set output file; default is stdout.\n" " -H file : create include file.\n" " -n name : set package name; default is input file root name.\n" " -p : parse only.\n" " -P : parse and print structure information (for debug).\n" " -S : disable support for c++ strings.\n" " -1 : substract 1 to operator[] index (for compatibility with tolua5).\n" " -L file : run lua file (with dofile()) before doing anything.\n" " -D : disable automatic exporting of destructors for classes that have\n" " constructors (for compatibility with tolua5)\n" " -W : disable warnings for unsupported features (for compatibility\n" " with tolua5)\n" " -C : disable cleanup of included lua code (for easier debugging)\n" " -E value[=value] : add extra values to the luastate\n" " -t : export a list of types asociates with the C++ typeid name\n" " -q : don't print warnings to the console\n" " -h : print this message.\n" "Should the input file be omitted, stdin is assumed;\n" "in that case, the package name must be explicitly set.\n\n" ); } static void version (void) { fprintf(stderr, "%s (written by W. Celes, A. Manzur)\n",TOLUA_VERSION); } static void setfield (lua_State* L, int table, char* f, char* v) { lua_pushstring(L,f); lua_pushstring(L,v); lua_settable(L,table); } static void add_extra (lua_State* L, char* value) { int len; lua_getglobal(L, "_extra_parameters"); len = luaL_getn(L, -1); lua_pushstring(L, value); lua_rawseti(L, -2, len+1); lua_pop(L, 1); }; static void error (char* o) { fprintf(stderr,"tolua: unknown option '%s'\n",o); help(); exit(1); } int main (int argc, char* argv[]) { #ifdef LUA_VERSION_NUM /* lua 5.1 */ lua_State* L = luaL_newstate(); luaL_openlibs(L); #else lua_State* L = lua_open(); luaopen_base(L); luaopen_io(L); luaopen_string(L); luaopen_table(L); luaopen_math(L); luaopen_debug(L); #endif lua_pushstring(L,TOLUA_VERSION); lua_setglobal(L,"TOLUA_VERSION"); lua_pushstring(L,LUA_VERSION); lua_setglobal(L,"TOLUA_LUA_VERSION"); if (argc==1) { help(); return 0; } else { int i, t; lua_newtable(L); lua_setglobal(L, "_extra_parameters"); lua_newtable(L); lua_pushvalue(L,-1); lua_setglobal(L,"flags"); t = lua_gettop(L); for (i=1; i #include TOLUA_API lua_Number tolua_tonumber (lua_State* L, int narg, lua_Number def) { return lua_gettop(L) #include "tolua++.h" /* Store at ubox * It stores, creating the corresponding table if needed, * the pair key/value in the corresponding ubox table */ static void storeatubox (lua_State* L, int lo) { #ifdef LUA_VERSION_NUM lua_getfenv(L, lo); if (lua_rawequal(L, -1, TOLUA_NOPEER)) { lua_pop(L, 1); lua_newtable(L); lua_pushvalue(L, -1); lua_setfenv(L, lo); /* stack: k,v,table */ }; lua_insert(L, -3); lua_settable(L, -3); /* on lua 5.1, we trade the "tolua_peers" lookup for a settable call */ lua_pop(L, 1); #else /* stack: key value (to be stored) */ lua_pushstring(L,"tolua_peers"); lua_rawget(L,LUA_REGISTRYINDEX); /* stack: k v ubox */ lua_pushvalue(L,lo); lua_rawget(L,-2); /* stack: k v ubox ubox[u] */ if (!lua_istable(L,-1)) { lua_pop(L,1); /* stack: k v ubox */ lua_newtable(L); /* stack: k v ubox table */ lua_pushvalue(L,1); lua_pushvalue(L,-2); /* stack: k v ubox table u table */ lua_rawset(L,-4); /* stack: k v ubox ubox[u]=table */ } lua_insert(L,-4); /* put table before k */ lua_pop(L,1); /* pop ubox */ lua_rawset(L,-3); /* store at table */ lua_pop(L,1); /* pop ubox[u] */ #endif } /* Module index function */ static int module_index_event (lua_State* L) { lua_pushstring(L,".get"); lua_rawget(L,-3); if (lua_istable(L,-1)) { lua_pushvalue(L,2); /* key */ lua_rawget(L,-2); if (lua_iscfunction(L,-1)) { lua_call(L,0,1); return 1; } else if (lua_istable(L,-1)) return 1; } /* call old index meta event */ if (lua_getmetatable(L,1)) { lua_pushstring(L,"__index"); lua_rawget(L,-2); lua_pushvalue(L,1); lua_pushvalue(L,2); if (lua_isfunction(L,-1)) { lua_call(L,2,1); return 1; } else if (lua_istable(L,-1)) { lua_gettable(L,-3); return 1; } } lua_pushnil(L); return 1; } /* Module newindex function */ static int module_newindex_event (lua_State* L) { lua_pushstring(L,".set"); lua_rawget(L,-4); if (lua_istable(L,-1)) { lua_pushvalue(L,2); /* key */ lua_rawget(L,-2); if (lua_iscfunction(L,-1)) { lua_pushvalue(L,1); /* only to be compatible with non-static vars */ lua_pushvalue(L,3); /* value */ lua_call(L,2,0); return 0; } } /* call old newindex meta event */ if (lua_getmetatable(L,1) && lua_getmetatable(L,-1)) { lua_pushstring(L,"__newindex"); lua_rawget(L,-2); if (lua_isfunction(L,-1)) { lua_pushvalue(L,1); lua_pushvalue(L,2); lua_pushvalue(L,3); lua_call(L,3,0); } } lua_settop(L,3); lua_rawset(L,-3); return 0; } /* Class index function * If the object is a userdata (ie, an object), it searches the field in * the alternative table stored in the corresponding "ubox" table. */ static int class_index_event (lua_State* L) { int t = lua_type(L,1); if (t == LUA_TUSERDATA) { /* Access alternative table */ #ifdef LUA_VERSION_NUM /* new macro on version 5.1 */ lua_getfenv(L,1); if (!lua_rawequal(L, -1, TOLUA_NOPEER)) { lua_pushvalue(L, 2); /* key */ lua_gettable(L, -2); /* on lua 5.1, we trade the "tolua_peers" lookup for a gettable call */ if (!lua_isnil(L, -1)) return 1; }; #else lua_pushstring(L,"tolua_peers"); lua_rawget(L,LUA_REGISTRYINDEX); /* stack: obj key ubox */ lua_pushvalue(L,1); lua_rawget(L,-2); /* stack: obj key ubox ubox[u] */ if (lua_istable(L,-1)) { lua_pushvalue(L,2); /* key */ lua_rawget(L,-2); /* stack: obj key ubox ubox[u] value */ if (!lua_isnil(L,-1)) return 1; } #endif lua_settop(L,2); /* stack: obj key */ /* Try metatables */ lua_pushvalue(L,1); /* stack: obj key obj */ while (lua_getmetatable(L,-1)) { /* stack: obj key obj mt */ lua_remove(L,-2); /* stack: obj key mt */ if (lua_isnumber(L,2)) /* check if key is a numeric value */ { /* try operator[] */ lua_pushstring(L,".geti"); lua_rawget(L,-2); /* stack: obj key mt func */ if (lua_isfunction(L,-1)) { lua_pushvalue(L,1); lua_pushvalue(L,2); lua_call(L,2,1); return 1; } } else { lua_pushvalue(L,2); /* stack: obj key mt key */ lua_rawget(L,-2); /* stack: obj key mt value */ if (!lua_isnil(L,-1)) return 1; else lua_pop(L,1); /* try C/C++ variable */ lua_pushstring(L,".get"); lua_rawget(L,-2); /* stack: obj key mt tget */ if (lua_istable(L,-1)) { lua_pushvalue(L,2); lua_rawget(L,-2); /* stack: obj key mt value */ if (lua_iscfunction(L,-1)) { lua_pushvalue(L,1); lua_pushvalue(L,2); lua_call(L,2,1); return 1; } else if (lua_istable(L,-1)) { /* deal with array: create table to be returned and cache it in ubox */ void* u = *((void**)lua_touserdata(L,1)); lua_newtable(L); /* stack: obj key mt value table */ lua_pushstring(L,".self"); lua_pushlightuserdata(L,u); lua_rawset(L,-3); /* store usertype in ".self" */ lua_insert(L,-2); /* stack: obj key mt table value */ lua_setmetatable(L,-2); /* set stored value as metatable */ lua_pushvalue(L,-1); /* stack: obj key met table table */ lua_pushvalue(L,2); /* stack: obj key mt table table key */ lua_insert(L,-2); /* stack: obj key mt table key table */ storeatubox(L,1); /* stack: obj key mt table */ return 1; } } } lua_settop(L,3); } lua_pushnil(L); return 1; } else if (t== LUA_TTABLE) { module_index_event(L); return 1; } lua_pushnil(L); return 1; } /* Newindex function * It first searches for a C/C++ varaible to be set. * Then, it either stores it in the alternative ubox table (in the case it is * an object) or in the own table (that represents the class or module). */ static int class_newindex_event (lua_State* L) { int t = lua_type(L,1); if (t == LUA_TUSERDATA) { /* Try accessing a C/C++ variable to be set */ lua_getmetatable(L,1); while (lua_istable(L,-1)) /* stack: t k v mt */ { if (lua_isnumber(L,2)) /* check if key is a numeric value */ { /* try operator[] */ lua_pushstring(L,".seti"); lua_rawget(L,-2); /* stack: obj key mt func */ if (lua_isfunction(L,-1)) { lua_pushvalue(L,1); lua_pushvalue(L,2); lua_pushvalue(L,3); lua_call(L,3,0); return 0; } } else { lua_pushstring(L,".set"); lua_rawget(L,-2); /* stack: t k v mt tset */ if (lua_istable(L,-1)) { lua_pushvalue(L,2); lua_rawget(L,-2); /* stack: t k v mt tset func */ if (lua_iscfunction(L,-1)) { lua_pushvalue(L,1); lua_pushvalue(L,3); lua_call(L,2,0); return 0; } lua_pop(L,1); /* stack: t k v mt tset */ } lua_pop(L,1); /* stack: t k v mt */ if (!lua_getmetatable(L,-1)) /* stack: t k v mt mt */ lua_pushnil(L); lua_remove(L,-2); /* stack: t k v mt */ } } lua_settop(L,3); /* stack: t k v */ /* then, store as a new field */ storeatubox(L,1); } else if (t== LUA_TTABLE) { module_newindex_event(L); } return 0; } static int class_call_event(lua_State* L) { if (lua_istable(L, 1)) { lua_pushstring(L, ".call"); lua_rawget(L, 1); if (lua_isfunction(L, -1)) { lua_insert(L, 1); lua_call(L, lua_gettop(L)-1, 1); return 1; }; }; tolua_error(L,"Attempt to call a non-callable object.",NULL); return 0; }; static int do_operator (lua_State* L, const char* op) { if (lua_isuserdata(L,1)) { /* Try metatables */ lua_pushvalue(L,1); /* stack: op1 op2 */ while (lua_getmetatable(L,-1)) { /* stack: op1 op2 op1 mt */ lua_remove(L,-2); /* stack: op1 op2 mt */ lua_pushstring(L,op); /* stack: op1 op2 mt key */ lua_rawget(L,-2); /* stack: obj key mt func */ if (lua_isfunction(L,-1)) { lua_pushvalue(L,1); lua_pushvalue(L,2); lua_call(L,2,1); return 1; } lua_settop(L,3); } } tolua_error(L,"Attempt to perform operation on an invalid operand",NULL); return 0; } static int class_add_event (lua_State* L) { return do_operator(L,".add"); } static int class_sub_event (lua_State* L) { return do_operator(L,".sub"); } static int class_mul_event (lua_State* L) { return do_operator(L,".mul"); } static int class_div_event (lua_State* L) { return do_operator(L,".div"); } static int class_lt_event (lua_State* L) { return do_operator(L,".lt"); } static int class_le_event (lua_State* L) { return do_operator(L,".le"); } static int class_eq_event (lua_State* L) { /* copying code from do_operator here to return false when no operator is found */ if (lua_isuserdata(L,1)) { /* Try metatables */ lua_pushvalue(L,1); /* stack: op1 op2 */ while (lua_getmetatable(L,-1)) { /* stack: op1 op2 op1 mt */ lua_remove(L,-2); /* stack: op1 op2 mt */ lua_pushstring(L,".eq"); /* stack: op1 op2 mt key */ lua_rawget(L,-2); /* stack: obj key mt func */ if (lua_isfunction(L,-1)) { lua_pushvalue(L,1); lua_pushvalue(L,2); lua_call(L,2,1); return 1; } lua_settop(L,3); } } lua_settop(L, 3); lua_pushboolean(L, 0); return 1; } /* static int class_gc_event (lua_State* L) { void* u = *((void**)lua_touserdata(L,1)); fprintf(stderr, "collecting: looking at %p\n", u); lua_pushstring(L,"tolua_gc"); lua_rawget(L,LUA_REGISTRYINDEX); lua_pushlightuserdata(L,u); lua_rawget(L,-2); if (lua_isfunction(L,-1)) { lua_pushvalue(L,1); lua_call(L,1,0); lua_pushlightuserdata(L,u); lua_pushnil(L); lua_rawset(L,-3); } lua_pop(L,2); return 0; } */ TOLUA_API int class_gc_event (lua_State* L) { void* u = *((void**)lua_touserdata(L,1)); int top; /*fprintf(stderr, "collecting: looking at %p\n", u);*/ /* lua_pushstring(L,"tolua_gc"); lua_rawget(L,LUA_REGISTRYINDEX); */ lua_pushvalue(L, lua_upvalueindex(1)); lua_pushlightuserdata(L,u); lua_rawget(L,-2); /* stack: gc umt */ lua_getmetatable(L,1); /* stack: gc umt mt */ /*fprintf(stderr, "checking type\n");*/ top = lua_gettop(L); if (tolua_fast_isa(L,top,top-1, lua_upvalueindex(2))) /* make sure we collect correct type */ { /*fprintf(stderr, "Found type!\n");*/ /* get gc function */ lua_pushliteral(L,".collector"); lua_rawget(L,-2); /* stack: gc umt mt collector */ if (lua_isfunction(L,-1)) { /*fprintf(stderr, "Found .collector!\n");*/ } else { lua_pop(L,1); /*fprintf(stderr, "Using default cleanup\n");*/ lua_pushcfunction(L,tolua_default_collect); } lua_pushvalue(L,1); /* stack: gc umt mt collector u */ lua_call(L,1,0); lua_pushlightuserdata(L,u); /* stack: gc umt mt u */ lua_pushnil(L); /* stack: gc umt mt u nil */ lua_rawset(L,-5); /* stack: gc umt mt */ } lua_pop(L,3); return 0; } /* Register module events * It expects the metatable on the top of the stack */ TOLUA_API void tolua_moduleevents (lua_State* L) { lua_pushstring(L,"__index"); lua_pushcfunction(L,module_index_event); lua_rawset(L,-3); lua_pushstring(L,"__newindex"); lua_pushcfunction(L,module_newindex_event); lua_rawset(L,-3); } /* Check if the object on the top has a module metatable */ TOLUA_API int tolua_ismodulemetatable (lua_State* L) { int r = 0; if (lua_getmetatable(L,-1)) { lua_pushstring(L,"__index"); lua_rawget(L,-2); r = (lua_tocfunction(L,-1) == module_index_event); lua_pop(L,2); } return r; } /* Register class events * It expects the metatable on the top of the stack */ TOLUA_API void tolua_classevents (lua_State* L) { lua_pushstring(L,"__index"); lua_pushcfunction(L,class_index_event); lua_rawset(L,-3); lua_pushstring(L,"__newindex"); lua_pushcfunction(L,class_newindex_event); lua_rawset(L,-3); lua_pushstring(L,"__add"); lua_pushcfunction(L,class_add_event); lua_rawset(L,-3); lua_pushstring(L,"__sub"); lua_pushcfunction(L,class_sub_event); lua_rawset(L,-3); lua_pushstring(L,"__mul"); lua_pushcfunction(L,class_mul_event); lua_rawset(L,-3); lua_pushstring(L,"__div"); lua_pushcfunction(L,class_div_event); lua_rawset(L,-3); lua_pushstring(L,"__lt"); lua_pushcfunction(L,class_lt_event); lua_rawset(L,-3); lua_pushstring(L,"__le"); lua_pushcfunction(L,class_le_event); lua_rawset(L,-3); lua_pushstring(L,"__eq"); lua_pushcfunction(L,class_eq_event); lua_rawset(L,-3); lua_pushstring(L,"__call"); lua_pushcfunction(L,class_call_event); lua_rawset(L,-3); lua_pushstring(L,"__gc"); lua_pushstring(L, "tolua_gc_event"); lua_rawget(L, LUA_REGISTRYINDEX); /*lua_pushcfunction(L,class_gc_event);*/ lua_rawset(L,-3); } tolua++-1.0.93/src/lib/tolua_is.c0000644000175000017500000003016611006664605015676 0ustar cesarecesare/* tolua: functions to check types. ** Support code for Lua bindings. ** Written by Waldemar Celes ** TeCGraf/PUC-Rio ** Apr 2003 ** $Id: $ */ /* This code is free software; you can redistribute it and/or modify it. ** The software provided hereunder is on an "as is" basis, and ** the author has no obligation to provide maintenance, support, updates, ** enhancements, or modifications. */ #include "tolua++.h" #include "lauxlib.h" #include #include /* a fast check if a is b, without parameter validation i.e. if b is equal to a or a superclass of a. */ TOLUA_API int tolua_fast_isa(lua_State *L, int mt_indexa, int mt_indexb, int super_index) { int result; if (lua_rawequal(L,mt_indexa,mt_indexb)) result = 1; else { if (super_index) { lua_pushvalue(L, super_index); } else { lua_pushliteral(L,"tolua_super"); lua_rawget(L,LUA_REGISTRYINDEX); /* stack: super */ }; lua_pushvalue(L,mt_indexa); /* stack: super mta */ lua_rawget(L,-2); /* stack: super super[mta] */ lua_pushvalue(L,mt_indexb); /* stack: super super[mta] mtb */ lua_rawget(L,LUA_REGISTRYINDEX); /* stack: super super[mta] typenameB */ lua_rawget(L,-2); /* stack: super super[mta] bool */ result = lua_toboolean(L,-1); lua_pop(L,3); } return result; } /* Push and returns the corresponding object typename */ TOLUA_API const char* tolua_typename (lua_State* L, int lo) { int tag = lua_type(L,lo); if (tag == LUA_TNONE) lua_pushstring(L,"[no object]"); else if (tag != LUA_TUSERDATA && tag != LUA_TTABLE) lua_pushstring(L,lua_typename(L,tag)); else if (tag == LUA_TUSERDATA) { if (!lua_getmetatable(L,lo)) lua_pushstring(L,lua_typename(L,tag)); else { lua_rawget(L,LUA_REGISTRYINDEX); if (!lua_isstring(L,-1)) { lua_pop(L,1); lua_pushstring(L,"[undefined]"); } } } else /* is table */ { lua_pushvalue(L,lo); lua_rawget(L,LUA_REGISTRYINDEX); if (!lua_isstring(L,-1)) { lua_pop(L,1); lua_pushstring(L,"table"); } else { lua_pushstring(L,"class "); lua_insert(L,-2); lua_concat(L,2); } } return lua_tostring(L,-1); } TOLUA_API void tolua_error (lua_State* L, const char* msg, tolua_Error* err) { if (msg[0] == '#') { const char* expected = err->type; const char* provided = tolua_typename(L,err->index); if (msg[1]=='f') { int narg = err->index; if (err->array) luaL_error(L,"%s\n argument #%d is array of '%s'; array of '%s' expected.\n", msg+2,narg,provided,expected); else luaL_error(L,"%s\n argument #%d is '%s'; '%s' expected.\n", msg+2,narg,provided,expected); } else if (msg[1]=='v') { if (err->array) luaL_error(L,"%s\n value is array of '%s'; array of '%s' expected.\n", msg+2,provided,expected); else luaL_error(L,"%s\n value is '%s'; '%s' expected.\n", msg+2,provided,expected); } } else luaL_error(L,msg); } /* the equivalent of lua_is* for usertable */ static int lua_isusertable (lua_State* L, int lo, const const char* type) { int r = 0; if (lo < 0) lo = lua_gettop(L)+lo+1; lua_pushvalue(L,lo); lua_rawget(L,LUA_REGISTRYINDEX); /* get registry[t] */ if (lua_isstring(L,-1)) { r = strcmp(lua_tostring(L,-1),type)==0; if (!r) { /* try const */ lua_pushstring(L,"const "); lua_insert(L,-2); lua_concat(L,2); r = lua_isstring(L,-1) && strcmp(lua_tostring(L,-1),type)==0; } } lua_pop(L, 1); return r; } int push_table_instance(lua_State* L, int lo) { if (lua_istable(L, lo)) { lua_pushstring(L, ".c_instance"); lua_gettable(L, lo); if (lua_isuserdata(L, -1)) { lua_replace(L, lo); return 1; } else { lua_pop(L, 1); return 0; }; } else { return 0; }; return 0; }; /* the equivalent of lua_is* for usertype */ static int lua_isusertype (lua_State* L, int lo, const char* type) { if (!lua_isuserdata(L,lo)) { if (!push_table_instance(L, lo)) { return 0; }; }; { /* check if it is of the same type */ int r; const char *tn; if (lua_getmetatable(L,lo)) /* if metatable? */ { lua_rawget(L,LUA_REGISTRYINDEX); /* get registry[mt] */ tn = lua_tostring(L,-1); r = tn && (strcmp(tn,type) == 0); lua_pop(L, 1); if (r) return 1; else { /* check if it is a specialized class */ lua_pushstring(L,"tolua_super"); lua_rawget(L,LUA_REGISTRYINDEX); /* get super */ lua_getmetatable(L,lo); lua_rawget(L,-2); /* get super[mt] */ if (lua_istable(L,-1)) { int b; lua_pushstring(L,type); lua_rawget(L,-2); /* get super[mt][type] */ b = lua_toboolean(L,-1); lua_pop(L,3); if (b) return 1; } } } } return 0; } TOLUA_API int tolua_isnoobj (lua_State* L, int lo, tolua_Error* err) { if (lua_gettop(L)index = lo; err->array = 0; err->type = "[no object]"; return 0; } TOLUA_API int tolua_isboolean (lua_State* L, int lo, int def, tolua_Error* err) { if (def && lua_gettop(L)index = lo; err->array = 0; err->type = "boolean"; return 0; } TOLUA_API int tolua_isnumber (lua_State* L, int lo, int def, tolua_Error* err) { if (def && lua_gettop(L)index = lo; err->array = 0; err->type = "number"; return 0; } TOLUA_API int tolua_isstring (lua_State* L, int lo, int def, tolua_Error* err) { if (def && lua_gettop(L)index = lo; err->array = 0; err->type = "string"; return 0; } TOLUA_API int tolua_istable (lua_State* L, int lo, int def, tolua_Error* err) { if (def && lua_gettop(L)index = lo; err->array = 0; err->type = "table"; return 0; } TOLUA_API int tolua_isusertable (lua_State* L, int lo, const char* type, int def, tolua_Error* err) { if (def && lua_gettop(L)index = lo; err->array = 0; err->type = type; return 0; } TOLUA_API int tolua_isuserdata (lua_State* L, int lo, int def, tolua_Error* err) { if (def && lua_gettop(L)index = lo; err->array = 0; err->type = "userdata"; return 0; } TOLUA_API int tolua_isvaluenil (lua_State* L, int lo, tolua_Error* err) { if (lua_gettop(L)index = lo; err->array = 0; err->type = "value"; return 1; }; TOLUA_API int tolua_isvalue (lua_State* L, int lo, int def, tolua_Error* err) { if (def || abs(lo)<=lua_gettop(L)) /* any valid index */ return 1; err->index = lo; err->array = 0; err->type = "value"; return 0; } TOLUA_API int tolua_isusertype (lua_State* L, int lo, const char* type, int def, tolua_Error* err) { if (def && lua_gettop(L)index = lo; err->array = 0; err->type = type; return 0; } TOLUA_API int tolua_isvaluearray (lua_State* L, int lo, int dim, int def, tolua_Error* err) { if (!tolua_istable(L,lo,def,err)) return 0; else return 1; } TOLUA_API int tolua_isbooleanarray (lua_State* L, int lo, int dim, int def, tolua_Error* err) { if (!tolua_istable(L,lo,def,err)) return 0; else { int i; for (i=1; i<=dim; ++i) { lua_pushnumber(L,i); lua_gettable(L,lo); if (!(lua_isnil(L,-1) || lua_isboolean(L,-1)) && !(def && lua_isnil(L,-1)) ) { err->index = lo; err->array = 1; err->type = "boolean"; return 0; } lua_pop(L,1); } } return 1; } TOLUA_API int tolua_isnumberarray (lua_State* L, int lo, int dim, int def, tolua_Error* err) { if (!tolua_istable(L,lo,def,err)) return 0; else { int i; for (i=1; i<=dim; ++i) { lua_pushnumber(L,i); lua_gettable(L,lo); if (!lua_isnumber(L,-1) && !(def && lua_isnil(L,-1)) ) { err->index = lo; err->array = 1; err->type = "number"; return 0; } lua_pop(L,1); } } return 1; } TOLUA_API int tolua_isstringarray (lua_State* L, int lo, int dim, int def, tolua_Error* err) { if (!tolua_istable(L,lo,def,err)) return 0; else { int i; for (i=1; i<=dim; ++i) { lua_pushnumber(L,i); lua_gettable(L,lo); if (!(lua_isnil(L,-1) || lua_isstring(L,-1)) && !(def && lua_isnil(L,-1)) ) { err->index = lo; err->array = 1; err->type = "string"; return 0; } lua_pop(L,1); } } return 1; } TOLUA_API int tolua_istablearray (lua_State* L, int lo, int dim, int def, tolua_Error* err) { if (!tolua_istable(L,lo,def,err)) return 0; else { int i; for (i=1; i<=dim; ++i) { lua_pushnumber(L,i); lua_gettable(L,lo); if (! lua_istable(L,-1) && !(def && lua_isnil(L,-1)) ) { err->index = lo; err->array = 1; err->type = "table"; return 0; } lua_pop(L,1); } } return 1; } TOLUA_API int tolua_isuserdataarray (lua_State* L, int lo, int dim, int def, tolua_Error* err) { if (!tolua_istable(L,lo,def,err)) return 0; else { int i; for (i=1; i<=dim; ++i) { lua_pushnumber(L,i); lua_gettable(L,lo); if (!(lua_isnil(L,-1) || lua_isuserdata(L,-1)) && !(def && lua_isnil(L,-1)) ) { err->index = lo; err->array = 1; err->type = "userdata"; return 0; } lua_pop(L,1); } } return 1; } TOLUA_API int tolua_isusertypearray (lua_State* L, int lo, const char* type, int dim, int def, tolua_Error* err) { if (!tolua_istable(L,lo,def,err)) return 0; else { int i; for (i=1; i<=dim; ++i) { lua_pushnumber(L,i); lua_gettable(L,lo); if (!(lua_isnil(L,-1) || lua_isuserdata(L,-1)) && !(def && lua_isnil(L,-1)) ) { err->index = lo; err->type = type; err->array = 1; return 0; } lua_pop(L,1); } } return 1; } #if 0 int tolua_isbooleanfield (lua_State* L, int lo, int i, int def, tolua_Error* err) { lua_pushnumber(L,i); lua_gettable(L,lo); if (!(lua_isnil(L,-1) || lua_isboolean(L,-1)) && !(def && lua_isnil(L,-1)) ) { err->index = lo; err->array = 1; err->type = "boolean"; return 0; } lua_pop(L,1); return 1; } int tolua_isnumberfield (lua_State* L, int lo, int i, int def, tolua_Error* err) { lua_pushnumber(L,i); lua_gettable(L,lo); if (!lua_isnumber(L,-1) && !(def && lua_isnil(L,-1)) ) { err->index = lo; err->array = 1; err->type = "number"; return 0; } lua_pop(L,1); return 1; } int tolua_isstringfield (lua_State* L, int lo, int i, int def, tolua_Error* err) { lua_pushnumber(L,i); lua_gettable(L,lo); if (!(lua_isnil(L,-1) || lua_isstring(L,-1)) && !(def && lua_isnil(L,-1)) ) { err->index = lo; err->array = 1; err->type = "string"; return 0; } lua_pop(L,1); return 1; } int tolua_istablefield (lua_State* L, int lo, int i, int def, tolua_Error* err) { lua_pushnumber(L,i+1); lua_gettable(L,lo); if (! lua_istable(L,-1) && !(def && lua_isnil(L,-1)) ) { err->index = lo; err->array = 1; err->type = "table"; return 0; } lua_pop(L,1); } int tolua_isusertablefield (lua_State* L, int lo, const char* type, int i, int def, tolua_Error* err) { lua_pushnumber(L,i); lua_gettable(L,lo); if (! lua_isusertable(L,-1,type) && !(def && lua_isnil(L,-1)) ) { err->index = lo; err->array = 1; err->type = type; return 0; } lua_pop(L,1); return 1; } int tolua_isuserdatafield (lua_State* L, int lo, int i, int def, tolua_Error* err) { lua_pushnumber(L,i); lua_gettable(L,lo); if (!(lua_isnil(L,-1) || lua_isuserdata(L,-1)) && !(def && lua_isnil(L,-1)) ) { err->index = lo; err->array = 1; err->type = "userdata"; return 0; } lua_pop(L,1); return 1; } int tolua_isusertypefield (lua_State* L, int lo, const char* type, int i, int def, tolua_Error* err) { lua_pushnumber(L,i); lua_gettable(L,lo); if (!(lua_isnil(L,-1) || lua_isusertype(L,-1,type)) && !(def && lua_isnil(L,-1)) ) { err->index = lo; err->type = type; err->array = 1; return 0; } lua_pop(L,1); return 1; } #endif tolua++-1.0.93/src/lib/tolua_push.c0000644000175000017500000001140110563230554016230 0ustar cesarecesare/* tolua: functions to push C values. ** Support code for Lua bindings. ** Written by Waldemar Celes ** TeCGraf/PUC-Rio ** Apr 2003 ** $Id: $ */ /* This code is free software; you can redistribute it and/or modify it. ** The software provided hereunder is on an "as is" basis, and ** the author has no obligation to provide maintenance, support, updates, ** enhancements, or modifications. */ #include "tolua++.h" #include "lauxlib.h" #include TOLUA_API void tolua_pushvalue (lua_State* L, int lo) { lua_pushvalue(L,lo); } TOLUA_API void tolua_pushboolean (lua_State* L, int value) { lua_pushboolean(L,value); } TOLUA_API void tolua_pushnumber (lua_State* L, lua_Number value) { lua_pushnumber(L,value); } TOLUA_API void tolua_pushstring (lua_State* L, const char* value) { if (value == NULL) lua_pushnil(L); else lua_pushstring(L,value); } TOLUA_API void tolua_pushuserdata (lua_State* L, void* value) { if (value == NULL) lua_pushnil(L); else lua_pushlightuserdata(L,value); } TOLUA_API void tolua_pushusertype (lua_State* L, void* value, const char* type) { if (value == NULL) lua_pushnil(L); else { luaL_getmetatable(L, type); lua_pushstring(L,"tolua_ubox"); lua_rawget(L,-2); /* stack: mt ubox */ if (lua_isnil(L, -1)) { lua_pop(L, 1); lua_pushstring(L, "tolua_ubox"); lua_rawget(L, LUA_REGISTRYINDEX); }; lua_pushlightuserdata(L,value); lua_rawget(L,-2); /* stack: mt ubox ubox[u] */ if (lua_isnil(L,-1)) { lua_pop(L,1); /* stack: mt ubox */ lua_pushlightuserdata(L,value); *(void**)lua_newuserdata(L,sizeof(void *)) = value; /* stack: mt ubox u newud */ lua_pushvalue(L,-1); /* stack: mt ubox u newud newud */ lua_insert(L,-4); /* stack: mt newud ubox u newud */ lua_rawset(L,-3); /* stack: mt newud ubox */ lua_pop(L,1); /* stack: mt newud */ /*luaL_getmetatable(L,type);*/ lua_pushvalue(L, -2); /* stack: mt newud mt */ lua_setmetatable(L,-2); /* stack: mt newud */ #ifdef LUA_VERSION_NUM lua_pushvalue(L, TOLUA_NOPEER); lua_setfenv(L, -2); #endif } else { /* check the need of updating the metatable to a more specialized class */ lua_insert(L,-2); /* stack: mt ubox[u] ubox */ lua_pop(L,1); /* stack: mt ubox[u] */ lua_pushstring(L,"tolua_super"); lua_rawget(L,LUA_REGISTRYINDEX); /* stack: mt ubox[u] super */ lua_getmetatable(L,-2); /* stack: mt ubox[u] super mt */ lua_rawget(L,-2); /* stack: mt ubox[u] super super[mt] */ if (lua_istable(L,-1)) { lua_pushstring(L,type); /* stack: mt ubox[u] super super[mt] type */ lua_rawget(L,-2); /* stack: mt ubox[u] super super[mt] flag */ if (lua_toboolean(L,-1) == 1) /* if true */ { lua_pop(L,3); /* mt ubox[u]*/ lua_remove(L, -2); return; } } /* type represents a more specilized type */ /*luaL_getmetatable(L,type); // stack: mt ubox[u] super super[mt] flag mt */ lua_pushvalue(L, -5); /* stack: mt ubox[u] super super[mt] flag mt */ lua_setmetatable(L,-5); /* stack: mt ubox[u] super super[mt] flag */ lua_pop(L,3); /* stack: mt ubox[u] */ } lua_remove(L, -2); /* stack: ubox[u]*/ } } TOLUA_API void tolua_pushusertype_and_takeownership (lua_State* L, void* value, const char* type) { tolua_pushusertype(L,value,type); tolua_register_gc(L,lua_gettop(L)); } TOLUA_API void tolua_pushfieldvalue (lua_State* L, int lo, int index, int v) { lua_pushnumber(L,index); lua_pushvalue(L,v); lua_settable(L,lo); } TOLUA_API void tolua_pushfieldboolean (lua_State* L, int lo, int index, int v) { lua_pushnumber(L,index); lua_pushboolean(L,v); lua_settable(L,lo); } TOLUA_API void tolua_pushfieldnumber (lua_State* L, int lo, int index, lua_Number v) { lua_pushnumber(L,index); tolua_pushnumber(L,v); lua_settable(L,lo); } TOLUA_API void tolua_pushfieldstring (lua_State* L, int lo, int index, const char* v) { lua_pushnumber(L,index); tolua_pushstring(L,v); lua_settable(L,lo); } TOLUA_API void tolua_pushfielduserdata (lua_State* L, int lo, int index, void* v) { lua_pushnumber(L,index); tolua_pushuserdata(L,v); lua_settable(L,lo); } TOLUA_API void tolua_pushfieldusertype (lua_State* L, int lo, int index, void* v, const char* type) { lua_pushnumber(L,index); tolua_pushusertype(L,v,type); lua_settable(L,lo); } TOLUA_API void tolua_pushfieldusertype_and_takeownership (lua_State* L, int lo, int index, void* v, const char* type) { lua_pushnumber(L,index); tolua_pushusertype(L,v,type); tolua_register_gc(L,lua_gettop(L)); lua_settable(L,lo); } tolua++-1.0.93/src/lib/tolua_map.c0000644000175000017500000004124511145432470016035 0ustar cesarecesare/* tolua: functions to map features ** Support code for Lua bindings. ** Written by Waldemar Celes ** TeCGraf/PUC-Rio ** Apr 2003 ** $Id: $ */ /* This code is free software; you can redistribute it and/or modify it. ** The software provided hereunder is on an "as is" basis, and ** the author has no obligation to provide maintenance, support, updates, ** enhancements, or modifications. */ #include "tolua++.h" #include "tolua_event.h" #include "lauxlib.h" #include #include #include #include /* Create metatable * Create and register new metatable */ static int tolua_newmetatable (lua_State* L, char* name) { int r = luaL_newmetatable(L,name); #ifdef LUA_VERSION_NUM /* only lua 5.1 */ if (r) { lua_pushvalue(L, -1); lua_pushstring(L, name); lua_settable(L, LUA_REGISTRYINDEX); /* reg[mt] = type_name */ }; #endif if (r) tolua_classevents(L); /* set meta events */ lua_pop(L,1); return r; } /* Map super classes * It sets 'name' as being also a 'base', mapping all super classes of 'base' in 'name' */ static void mapsuper (lua_State* L, const char* name, const char* base) { /* push registry.super */ lua_pushstring(L,"tolua_super"); lua_rawget(L,LUA_REGISTRYINDEX); /* stack: super */ luaL_getmetatable(L,name); /* stack: super mt */ lua_rawget(L,-2); /* stack: super table */ if (lua_isnil(L,-1)) { /* create table */ lua_pop(L,1); lua_newtable(L); /* stack: super table */ luaL_getmetatable(L,name); /* stack: super table mt */ lua_pushvalue(L,-2); /* stack: super table mt table */ lua_rawset(L,-4); /* stack: super table */ } /* set base as super class */ lua_pushstring(L,base); lua_pushboolean(L,1); lua_rawset(L,-3); /* stack: super table */ /* set all super class of base as super class of name */ luaL_getmetatable(L,base); /* stack: super table base_mt */ lua_rawget(L,-3); /* stack: super table base_table */ if (lua_istable(L,-1)) { /* traverse base table */ lua_pushnil(L); /* first key */ while (lua_next(L,-2) != 0) { /* stack: ... base_table key value */ lua_pushvalue(L,-2); /* stack: ... base_table key value key */ lua_insert(L,-2); /* stack: ... base_table key key value */ lua_rawset(L,-5); /* stack: ... base_table key */ } } lua_pop(L,3); /* stack: */ } /* creates a 'tolua_ubox' table for base clases, and // expects the metatable and base metatable on the stack */ static void set_ubox(lua_State* L) { /* mt basemt */ if (!lua_isnil(L, -1)) { lua_pushstring(L, "tolua_ubox"); lua_rawget(L,-2); } else { lua_pushnil(L); }; /* mt basemt base_ubox */ if (!lua_isnil(L,-1)) { lua_pushstring(L, "tolua_ubox"); lua_insert(L, -2); /* mt basemt key ubox */ lua_rawset(L,-4); /* (mt with ubox) basemt */ } else { /* mt basemt nil */ lua_pop(L, 1); lua_pushstring(L,"tolua_ubox"); lua_newtable(L); /* make weak value metatable for ubox table to allow userdata to be garbage-collected */ lua_newtable(L); lua_pushliteral(L, "__mode"); lua_pushliteral(L, "v"); lua_rawset(L, -3); /* stack: string ubox mt */ lua_setmetatable(L, -2); /* stack:mt basemt string ubox */ lua_rawset(L,-4); }; }; /* Map inheritance * It sets 'name' as derived from 'base' by setting 'base' as metatable of 'name' */ static void mapinheritance (lua_State* L, const char* name, const char* base) { /* set metatable inheritance */ luaL_getmetatable(L,name); if (base && *base) luaL_getmetatable(L,base); else { if (lua_getmetatable(L, -1)) { /* already has a mt, we don't overwrite it */ lua_pop(L, 2); return; }; luaL_getmetatable(L,"tolua_commonclass"); }; set_ubox(L); lua_setmetatable(L,-2); lua_pop(L,1); } /* Object type */ static int tolua_bnd_type (lua_State* L) { tolua_typename(L,lua_gettop(L)); return 1; } /* Take ownership */ static int tolua_bnd_takeownership (lua_State* L) { int success = 0; if (lua_isuserdata(L,1)) { if (lua_getmetatable(L,1)) /* if metatable? */ { lua_pop(L,1); /* clear metatable off stack */ /* force garbage collection to avoid C to reuse a to-be-collected address */ #ifdef LUA_VERSION_NUM lua_gc(L, LUA_GCCOLLECT, 0); #else lua_setgcthreshold(L,0); #endif success = tolua_register_gc(L,1); } } lua_pushboolean(L,success!=0); return 1; } /* Release ownership */ static int tolua_bnd_releaseownership (lua_State* L) { int done = 0; if (lua_isuserdata(L,1)) { void* u = *((void**)lua_touserdata(L,1)); /* force garbage collection to avoid releasing a to-be-collected address */ #ifdef LUA_VERSION_NUM lua_gc(L, LUA_GCCOLLECT, 0); #else lua_setgcthreshold(L,0); #endif lua_pushstring(L,"tolua_gc"); lua_rawget(L,LUA_REGISTRYINDEX); lua_pushlightuserdata(L,u); lua_rawget(L,-2); lua_getmetatable(L,1); if (lua_rawequal(L,-1,-2)) /* check that we are releasing the correct type */ { lua_pushlightuserdata(L,u); lua_pushnil(L); lua_rawset(L,-5); done = 1; } } lua_pushboolean(L,done!=0); return 1; } /* Type casting */ static int tolua_bnd_cast (lua_State* L) { /* // old code void* v = tolua_tousertype(L,1,NULL); const char* s = tolua_tostring(L,2,NULL); if (v && s) tolua_pushusertype(L,v,s); else lua_pushnil(L); return 1; */ void* v; const char* s; if (lua_islightuserdata(L, 1)) { v = tolua_touserdata(L, 1, NULL); } else { v = tolua_tousertype(L, 1, 0); }; s = tolua_tostring(L,2,NULL); if (v && s) tolua_pushusertype(L,v,s); else lua_pushnil(L); return 1; } /* Inheritance */ static int tolua_bnd_inherit (lua_State* L) { /* stack: lua object, c object */ lua_pushstring(L, ".c_instance"); lua_pushvalue(L, -2); lua_rawset(L, -4); /* l_obj[".c_instance"] = c_obj */ return 0; }; #ifdef LUA_VERSION_NUM /* lua 5.1 */ static int tolua_bnd_setpeer(lua_State* L) { /* stack: userdata, table */ if (!lua_isuserdata(L, -2)) { lua_pushstring(L, "Invalid argument #1 to setpeer: userdata expected."); lua_error(L); }; if (lua_isnil(L, -1)) { lua_pop(L, 1); lua_pushvalue(L, TOLUA_NOPEER); }; lua_setfenv(L, -2); return 0; }; static int tolua_bnd_getpeer(lua_State* L) { /* stack: userdata */ lua_getfenv(L, -1); if (lua_rawequal(L, -1, TOLUA_NOPEER)) { lua_pop(L, 1); lua_pushnil(L); }; return 1; }; #endif /* static int class_gc_event (lua_State* L); */ TOLUA_API void tolua_open (lua_State* L) { int top = lua_gettop(L); lua_pushstring(L,"tolua_opened"); lua_rawget(L,LUA_REGISTRYINDEX); if (!lua_isboolean(L,-1)) { lua_pushstring(L,"tolua_opened"); lua_pushboolean(L,1); lua_rawset(L,LUA_REGISTRYINDEX); #ifndef LUA_VERSION_NUM /* only prior to lua 5.1 */ /* create peer object table */ lua_pushstring(L, "tolua_peers"); lua_newtable(L); /* make weak key metatable for peers indexed by userdata object */ lua_newtable(L); lua_pushliteral(L, "__mode"); lua_pushliteral(L, "k"); lua_rawset(L, -3); /* stack: string peers mt */ lua_setmetatable(L, -2); /* stack: string peers */ lua_rawset(L,LUA_REGISTRYINDEX); #endif /* create object ptr -> udata mapping table */ lua_pushstring(L,"tolua_ubox"); lua_newtable(L); /* make weak value metatable for ubox table to allow userdata to be garbage-collected */ lua_newtable(L); lua_pushliteral(L, "__mode"); lua_pushliteral(L, "v"); lua_rawset(L, -3); /* stack: string ubox mt */ lua_setmetatable(L, -2); /* stack: string ubox */ lua_rawset(L,LUA_REGISTRYINDEX); lua_pushstring(L,"tolua_super"); lua_newtable(L); lua_rawset(L,LUA_REGISTRYINDEX); lua_pushstring(L,"tolua_gc"); lua_newtable(L);lua_rawset(L,LUA_REGISTRYINDEX); /* create gc_event closure */ lua_pushstring(L, "tolua_gc_event"); lua_pushstring(L, "tolua_gc"); lua_rawget(L, LUA_REGISTRYINDEX); lua_pushstring(L, "tolua_super"); lua_rawget(L, LUA_REGISTRYINDEX); lua_pushcclosure(L, class_gc_event, 2); lua_rawset(L, LUA_REGISTRYINDEX); tolua_newmetatable(L,"tolua_commonclass"); tolua_module(L,NULL,0); tolua_beginmodule(L,NULL); tolua_module(L,"tolua",0); tolua_beginmodule(L,"tolua"); tolua_function(L,"type",tolua_bnd_type); tolua_function(L,"takeownership",tolua_bnd_takeownership); tolua_function(L,"releaseownership",tolua_bnd_releaseownership); tolua_function(L,"cast",tolua_bnd_cast); tolua_function(L,"inherit", tolua_bnd_inherit); #ifdef LUA_VERSION_NUM /* lua 5.1 */ tolua_function(L, "setpeer", tolua_bnd_setpeer); tolua_function(L, "getpeer", tolua_bnd_getpeer); #endif tolua_endmodule(L); tolua_endmodule(L); } lua_settop(L,top); } /* Copy a C object */ TOLUA_API void* tolua_copy (lua_State* L, void* value, unsigned int size) { void* clone = (void*)malloc(size); if (clone) memcpy(clone,value,size); else tolua_error(L,"insuficient memory",NULL); return clone; } /* Default collect function */ TOLUA_API int tolua_default_collect (lua_State* tolua_S) { void* self = tolua_tousertype(tolua_S,1,0); free(self); return 0; } /* Do clone */ TOLUA_API int tolua_register_gc (lua_State* L, int lo) { int success = 1; void *value = *(void **)lua_touserdata(L,lo); lua_pushstring(L,"tolua_gc"); lua_rawget(L,LUA_REGISTRYINDEX); lua_pushlightuserdata(L,value); lua_rawget(L,-2); if (!lua_isnil(L,-1)) /* make sure that object is not already owned */ success = 0; else { lua_pushlightuserdata(L,value); lua_getmetatable(L,lo); lua_rawset(L,-4); } lua_pop(L,2); return success; } /* Register a usertype * It creates the correspoding metatable in the registry, for both 'type' and 'const type'. * It maps 'const type' as being also a 'type' */ TOLUA_API void tolua_usertype (lua_State* L, const char* type) { char ctype[128] = "const "; strncat(ctype,type,120); /* create both metatables */ if (tolua_newmetatable(L,ctype) && tolua_newmetatable(L,type)) mapsuper(L,type,ctype); /* 'type' is also a 'const type' */ } /* Begin module * It pushes the module (or class) table on the stack */ TOLUA_API void tolua_beginmodule (lua_State* L, const char* name) { if (name) { lua_pushstring(L,name); lua_rawget(L,-2); } else lua_pushvalue(L,LUA_GLOBALSINDEX); } /* End module * It pops the module (or class) from the stack */ TOLUA_API void tolua_endmodule (lua_State* L) { lua_pop(L,1); } /* Map module * It creates a new module */ #if 1 TOLUA_API void tolua_module (lua_State* L, const char* name, int hasvar) { if (name) { /* tolua module */ lua_pushstring(L,name); lua_rawget(L,-2); if (!lua_istable(L,-1)) /* check if module already exists */ { lua_pop(L,1); lua_newtable(L); lua_pushstring(L,name); lua_pushvalue(L,-2); lua_rawset(L,-4); /* assing module into module */ } } else { /* global table */ lua_pushvalue(L,LUA_GLOBALSINDEX); } if (hasvar) { if (!tolua_ismodulemetatable(L)) /* check if it already has a module metatable */ { /* create metatable to get/set C/C++ variable */ lua_newtable(L); tolua_moduleevents(L); if (lua_getmetatable(L,-2)) lua_setmetatable(L,-2); /* set old metatable as metatable of metatable */ lua_setmetatable(L,-2); } } lua_pop(L,1); /* pop module */ } #else TOLUA_API void tolua_module (lua_State* L, const char* name, int hasvar) { if (name) { /* tolua module */ lua_pushstring(L,name); lua_newtable(L); } else { /* global table */ lua_pushvalue(L,LUA_GLOBALSINDEX); } if (hasvar) { /* create metatable to get/set C/C++ variable */ lua_newtable(L); tolua_moduleevents(L); if (lua_getmetatable(L,-2)) lua_setmetatable(L,-2); /* set old metatable as metatable of metatable */ lua_setmetatable(L,-2); } if (name) lua_rawset(L,-3); /* assing module into module */ else lua_pop(L,1); /* pop global table */ } #endif static void push_collector(lua_State* L, const char* type, lua_CFunction col) { /* push collector function, but only if it's not NULL, or if there's no collector already */ if (!col) return; luaL_getmetatable(L,type); lua_pushstring(L,".collector"); /* if (!col) { lua_pushvalue(L, -1); lua_rawget(L, -3); if (!lua_isnil(L, -1)) { lua_pop(L, 3); return; }; lua_pop(L, 1); }; // */ lua_pushcfunction(L,col); lua_rawset(L,-3); lua_pop(L, 1); }; /* Map C class * It maps a C class, setting the appropriate inheritance and super classes. */ TOLUA_API void tolua_cclass (lua_State* L, const char* lname, const char* name, const char* base, lua_CFunction col) { char cname[128] = "const "; char cbase[128] = "const "; strncat(cname,name,120); strncat(cbase,base,120); mapinheritance(L,name,base); mapinheritance(L,cname,name); mapsuper(L,cname,cbase); mapsuper(L,name,base); lua_pushstring(L,lname); push_collector(L, name, col); /* luaL_getmetatable(L,name); lua_pushstring(L,".collector"); lua_pushcfunction(L,col); lua_rawset(L,-3); */ luaL_getmetatable(L,name); lua_rawset(L,-3); /* assign class metatable to module */ /* now we also need to store the collector table for the const instances of the class */ push_collector(L, cname, col); /* luaL_getmetatable(L,cname); lua_pushstring(L,".collector"); lua_pushcfunction(L,col); lua_rawset(L,-3); lua_pop(L,1); */ } /* Add base * It adds additional base classes to a class (for multiple inheritance) * (not for now) TOLUA_API void tolua_addbase(lua_State* L, char* name, char* base) { char cname[128] = "const "; char cbase[128] = "const "; strncat(cname,name,120); strncat(cbase,base,120); mapsuper(L,cname,cbase); mapsuper(L,name,base); }; */ /* Map function * It assigns a function into the current module (or class) */ TOLUA_API void tolua_function (lua_State* L, const char* name, lua_CFunction func) { lua_pushstring(L,name); lua_pushcfunction(L,func); lua_rawset(L,-3); } /* sets the __call event for the class (expects the class' main table on top) */ /* never really worked :( TOLUA_API void tolua_set_call_event(lua_State* L, lua_CFunction func, char* type) { lua_getmetatable(L, -1); //luaL_getmetatable(L, type); lua_pushstring(L,"__call"); lua_pushcfunction(L,func); lua_rawset(L,-3); lua_pop(L, 1); }; */ /* Map constant number * It assigns a constant number into the current module (or class) */ TOLUA_API void tolua_constant (lua_State* L, const char* name, lua_Number value) { lua_pushstring(L,name); tolua_pushnumber(L,value); lua_rawset(L,-3); } /* Map variable * It assigns a variable into the current module (or class) */ TOLUA_API void tolua_variable (lua_State* L, const char* name, lua_CFunction get, lua_CFunction set) { /* get func */ lua_pushstring(L,".get"); lua_rawget(L,-2); if (!lua_istable(L,-1)) { /* create .get table, leaving it at the top */ lua_pop(L,1); lua_newtable(L); lua_pushstring(L,".get"); lua_pushvalue(L,-2); lua_rawset(L,-4); } lua_pushstring(L,name); lua_pushcfunction(L,get); lua_rawset(L,-3); /* store variable */ lua_pop(L,1); /* pop .get table */ /* set func */ if (set) { lua_pushstring(L,".set"); lua_rawget(L,-2); if (!lua_istable(L,-1)) { /* create .set table, leaving it at the top */ lua_pop(L,1); lua_newtable(L); lua_pushstring(L,".set"); lua_pushvalue(L,-2); lua_rawset(L,-4); } lua_pushstring(L,name); lua_pushcfunction(L,set); lua_rawset(L,-3); /* store variable */ lua_pop(L,1); /* pop .set table */ } } /* Access const array * It reports an error when trying to write into a const array */ static int const_array (lua_State* L) { luaL_error(L,"value of const array cannot be changed"); return 0; } /* Map an array * It assigns an array into the current module (or class) */ TOLUA_API void tolua_array (lua_State* L, const char* name, lua_CFunction get, lua_CFunction set) { lua_pushstring(L,".get"); lua_rawget(L,-2); if (!lua_istable(L,-1)) { /* create .get table, leaving it at the top */ lua_pop(L,1); lua_newtable(L); lua_pushstring(L,".get"); lua_pushvalue(L,-2); lua_rawset(L,-4); } lua_pushstring(L,name); lua_newtable(L); /* create array metatable */ lua_pushvalue(L,-1); lua_setmetatable(L,-2); /* set the own table as metatable (for modules) */ lua_pushstring(L,"__index"); lua_pushcfunction(L,get); lua_rawset(L,-3); lua_pushstring(L,"__newindex"); lua_pushcfunction(L,set?set:const_array); lua_rawset(L,-3); lua_rawset(L,-3); /* store variable */ lua_pop(L,1); /* pop .get table */ } TOLUA_API void tolua_dobuffer(lua_State* L, char* B, unsigned int size, const char* name) { #ifdef LUA_VERSION_NUM /* lua 5.1 */ luaL_loadbuffer(L, B, size, name) || lua_pcall(L, 0, 0, 0); #else lua_dobuffer(L, B, size, name); #endif }; tolua++-1.0.93/src/lib/SCsub0000644000175000017500000000054611002755117014647 0ustar cesarecesareImport('env') sources = [ 'tolua_event.c', 'tolua_is.c', 'tolua_map.c', 'tolua_push.c', 'tolua_to.c', ] env.lib_target_static = env.Library('#/lib/'+env['tolua_lib']+'_static', sources) if env['shared']: env.lib_target = env.SharedLibrary('#lib/'+env['tolua_lib'], sources) else: env.lib_target = env.Library('#/lib/'+env['tolua_lib'], sources) tolua++-1.0.93/src/lib/tolua_event.h0000644000175000017500000000114310343424077016402 0ustar cesarecesare/* tolua: event functions ** Support code for Lua bindings. ** Written by Waldemar Celes ** TeCGraf/PUC-Rio ** Apr 2003 ** $Id: $ */ /* This code is free software; you can redistribute it and/or modify it. ** The software provided hereunder is on an "as is" basis, and ** the author has no obligation to provide maintenance, support, updates, ** enhancements, or modifications. */ #ifndef TOLUA_EVENT_H #define TOLUA_EVENT_H #include "tolua++.h" TOLUA_API void tolua_moduleevents (lua_State* L); TOLUA_API int tolua_ismodulemetatable (lua_State* L); TOLUA_API void tolua_classevents (lua_State* L); #endif tolua++-1.0.93/config_msvc.py0000644000175000017500000000140510343424077015217 0ustar cesarecesare ## This is the MSVC configuration file # use 'scons -h' to see the list of command line options available # flags for the compiler CCFLAGS = ['/nologo'] # this is the default directory for installation. Files will be installed on # /bin, /lib and /include when you run 'scons install' # # You can also specify this directory on the command line with the 'prefix' # option # # If you leave it as 'None', we'll try to auto-detect it (as 'PLATFORMSDKDIR' # detected by SCons). prefix = None # (it's a string) # the libraries LIBS = ['lua', 'lualib'] # linkflags LINKFLAGS = ['/nologo'] ## We need to specifiy the environment for the PATH and LIB and all those # parameters cl tales from it import os ENV = os.environ tolua++-1.0.93/SConstruct0000644000175000017500000001143411002755117014400 0ustar cesarecesareimport sys; import os tools = ['default'] if os.name == 'nt': tools = ['mingw'] env = Environment(tools = tools) options_file = None if sys.platform == 'linux2': options_file = "linux" elif 'msvc' in env['TOOLS']: options_file = "msvc" else: options_file = "posix" opts = Options(["config_"+options_file+".py", "custom.py", "custom_"+options_file+".py"], ARGUMENTS) opts.Add('CC', 'The C compiler.') opts.Add('CXX', 'The C++ compiler (for the tests)') opts.Add('CCFLAGS', 'Flags for the compiler.', ['-O2', '-Wall']) opts.Add('LINK', 'The linker.') opts.Add('LINKFLAGS', 'Linker flags.', []) opts.Add('no_cygwin', 'Use -mno-cygwin to build using the mingw compiler on cygwin', 0) opts.Add('LIBS', 'libraries', []) opts.Add('LIBPATH', 'library path', []) opts.Add('tolua_bin', 'the resulting binary', 'tolua++') opts.Add('tolua_lib', 'the resulting library', 'tolua++') opts.Add('TOLUAPP', 'the name of the tolua++ binary (to use with built_dev=1)', 'tolua++') opts.Add('prefix', 'The installation prefix') opts.Add('build_dev', 'Build for development (uses tolua to rebuild toluabind.c with the embeded scripts', 0) opts.Add('build_failsafe', "Build using 'factory default' toluabind file (in case build_dev fails)", 0) opts.Add('ENV', 'The environment variables') opts.Add('shared', 'Build a shared object', False) opts.Update(env) Help(opts.GenerateHelpText(env)) def save_config(target, source, env): opts.Save('custom.py', env) cust = env.Command('custom.py', [], save_config) env.Alias('configure', [cust]) env['TOLUAPP_BOOTSTRAP'] = env['tolua_bin']+"_bootstrap"+env['PROGSUFFIX'] env['build_dev'] = int(env['build_dev']) ## detecting the install directory on win32 if 'msvc' in env['TOOLS'] and not (env.has_key('prefix') or env['prefix']): if env['MSVS'].has_key('PLATFORMSDKDIR'): env['prefix'] = env['MSVS']['PLATFORMSDKDIR'] SConscriptChdir(0) ############ helper builders def pkg_scan_dep(self, target, source): import re ## TODO: detectar si el archivo existe antes de abrirlo asi nomas pkg = open(source, "rt") for linea in pkg.xreadlines(): dep = re.search("^[\t\w]*\$[cphl]file\s*\"([^\"]+)\"", linea) if dep: self.Depends(target, '#' + dep.groups()[0]); if dep.groups()[0][-4:] == '.pkg': # recursividad self.pkg_scan_dep(target, dep.groups()[0]) def make_tolua_code(self, target, source, pkgname = None, bootstrap = False, use_own = False, use_typeid=None): ptarget = Dir('.').path + '/' + target psource = Dir('.').path + '/' + source header = target[:-2] + '.h' pheader = Dir('.').path + '/' + header tolua = "" if bootstrap: if os.name == 'nt': tolua = 'bin\\'+self['TOLUAPP_BOOTSTRAP'] else: tolua = 'bin/'+self['TOLUAPP_BOOTSTRAP'] print("********* tolua is ", tolua) else: if use_own: if 'msvc' in self['TOOLS']: tolua = 'bin\\$tolua_bin' else: tolua = 'bin/$tolua_bin' else: tolua = "$TOLUAPP" if pkgname: pkgname = ' -n '+pkgname else: pkgname = '' if use_typeid: tolua = tolua+' -t' comando = tolua + ' -C -H ' + pheader + ' -o ' + ptarget + pkgname + ' ' + psource command = self.Command(target, source, comando) self.SideEffect(header, target) self.Depends(target, source) self.pkg_scan_dep(target, psource) if bootstrap: self.Depends(target, "#/bin/$TOLUAPP_BOOTSTRAP") if use_own: self.Depends(target, "#/bin/$tolua_bin") return command env.__class__.LuaBinding = make_tolua_code; env.__class__.pkg_scan_dep = pkg_scan_dep; def print_install_error(target, source, env): msg = """Error: no install prefix was specified, or detected. you can use the 'prefix' option on command line to specify one. Examples: scons prefix=/usr/local install or on Windows: scons "prefix=c:\\program files\\visual basic" install Files will be installed on /bin, /lib and /include """ import SCons.Errors raise SCons.Errors.UserError(msg) ########### end of helper builders env['CPPPATH'] = '#/include' env['LIBPATH'] = ['#/lib'] + env['LIBPATH'] if env['no_cygwin']: env['CCFLAGS'] += ['-mno-cygwin'] env['LINKFLAGS'] += ['-mno-cygwin'] import string Export('env') SConscript('src/lib/SCsub') SConscript('src/bin/SCsub') #SConscript('src/lib/SCsub') SConscript('src/tests/SCsub') env.Alias('all', [env.bin_target, env.lib_target]) env.Alias('test', env.test_targets) Default('all') if env['prefix']: env.Install(env['prefix']+'/bin', env.bin_target) env.Install(env['prefix']+'/lib', env.lib_target) env.Install(env['prefix']+'/include', '#include/tolua++.h') env.Alias('install', [env['prefix']+'/bin', env['prefix']+'/include', env['prefix']+'/lib']) else: env.Command('install', [], print_install_error) env.Depends('install', 'all') env.Command('deb', [], 'dpkg-buildpackage -I.svn -Icustom.py -Itoluabind_dev.c -Itoluabind_dev.h -Itoluabind_default.o -Icustom.lua -I.sconsign', ENV=os.environ) tolua++-1.0.93/Makefile0000644000175000017500000000020110343424077014001 0ustar cesarecesare# makefile for tolua hierarchy all: @echo "Makefile is deprecated ;)" @echo "see INSTALL for details on how to build tolua++" tolua++-1.0.93/config_linux.py0000644000175000017500000000132510343424077015407 0ustar cesarecesare ## This is the linux configuration file # use 'scons -h' to see the list of command line options available # Compiler flags (based on Debian's installation of lua) #LINKFLAGS = ['-g'] CCFLAGS = ['-I/usr/include/lua50', '-O2', '-ansi', '-Wall'] #CCFLAGS = ['-I/usr/include/lua50', '-g'] # this is the default directory for installation. Files will be installed on # /bin, /lib and /include when you run 'scons install' # # You can also specify this directory on the command line with the 'prefix' # option # # You can see more 'generic' options for POSIX systems on config_posix.py prefix = '/usr/local' # libraries (based on Debian's installation of lua) LIBS = ['lua50', 'lualib50', 'dl', 'm'] tolua++-1.0.93/include/0000755000175000017500000000000011146141657013775 5ustar cesarecesaretolua++-1.0.93/include/tolua++.h0000644000175000017500000001604011006664605015417 0ustar cesarecesare/* tolua ** Support code for Lua bindings. ** Written by Waldemar Celes ** TeCGraf/PUC-Rio ** Apr 2003 ** $Id: $ */ /* This code is free software; you can redistribute it and/or modify it. ** The software provided hereunder is on an "as is" basis, and ** the author has no obligation to provide maintenance, support, updates, ** enhancements, or modifications. */ #ifndef TOLUA_H #define TOLUA_H #ifndef TOLUA_API #define TOLUA_API extern #endif #define TOLUA_VERSION "tolua++-1.0.92" #ifdef __cplusplus extern "C" { #endif #define tolua_pushcppstring(x,y) tolua_pushstring(x,y.c_str()) #define tolua_iscppstring tolua_isstring #define tolua_iscppstringarray tolua_isstringarray #define tolua_pushfieldcppstring(L,lo,idx,s) tolua_pushfieldstring(L, lo, idx, s.c_str()) #ifndef TEMPLATE_BIND #define TEMPLATE_BIND(p) #endif #define TOLUA_TEMPLATE_BIND(p) #define TOLUA_PROTECTED_DESTRUCTOR #define TOLUA_PROPERTY_TYPE(p) typedef int lua_Object; #include "lua.h" #include "lauxlib.h" struct tolua_Error { int index; int array; const char* type; }; typedef struct tolua_Error tolua_Error; #define TOLUA_NOPEER LUA_REGISTRYINDEX /* for lua 5.1 */ TOLUA_API const char* tolua_typename (lua_State* L, int lo); TOLUA_API void tolua_error (lua_State* L, const char* msg, tolua_Error* err); TOLUA_API int tolua_isnoobj (lua_State* L, int lo, tolua_Error* err); TOLUA_API int tolua_isvalue (lua_State* L, int lo, int def, tolua_Error* err); TOLUA_API int tolua_isvaluenil (lua_State* L, int lo, tolua_Error* err); TOLUA_API int tolua_isboolean (lua_State* L, int lo, int def, tolua_Error* err); TOLUA_API int tolua_isnumber (lua_State* L, int lo, int def, tolua_Error* err); TOLUA_API int tolua_isstring (lua_State* L, int lo, int def, tolua_Error* err); TOLUA_API int tolua_istable (lua_State* L, int lo, int def, tolua_Error* err); TOLUA_API int tolua_isusertable (lua_State* L, int lo, const char* type, int def, tolua_Error* err); TOLUA_API int tolua_isuserdata (lua_State* L, int lo, int def, tolua_Error* err); TOLUA_API int tolua_isusertype (lua_State* L, int lo, const char* type, int def, tolua_Error* err); TOLUA_API int tolua_isvaluearray (lua_State* L, int lo, int dim, int def, tolua_Error* err); TOLUA_API int tolua_isbooleanarray (lua_State* L, int lo, int dim, int def, tolua_Error* err); TOLUA_API int tolua_isnumberarray (lua_State* L, int lo, int dim, int def, tolua_Error* err); TOLUA_API int tolua_isstringarray (lua_State* L, int lo, int dim, int def, tolua_Error* err); TOLUA_API int tolua_istablearray (lua_State* L, int lo, int dim, int def, tolua_Error* err); TOLUA_API int tolua_isuserdataarray (lua_State* L, int lo, int dim, int def, tolua_Error* err); TOLUA_API int tolua_isusertypearray (lua_State* L, int lo, const char* type, int dim, int def, tolua_Error* err); TOLUA_API void tolua_open (lua_State* L); TOLUA_API void* tolua_copy (lua_State* L, void* value, unsigned int size); TOLUA_API int tolua_register_gc (lua_State* L, int lo); TOLUA_API int tolua_default_collect (lua_State* tolua_S); TOLUA_API void tolua_usertype (lua_State* L, const char* type); TOLUA_API void tolua_beginmodule (lua_State* L, const char* name); TOLUA_API void tolua_endmodule (lua_State* L); TOLUA_API void tolua_module (lua_State* L, const char* name, int hasvar); TOLUA_API void tolua_class (lua_State* L, const char* name, const char* base); TOLUA_API void tolua_cclass (lua_State* L, const char* lname, const char* name, const char* base, lua_CFunction col); TOLUA_API void tolua_function (lua_State* L, const char* name, lua_CFunction func); TOLUA_API void tolua_constant (lua_State* L, const char* name, lua_Number value); TOLUA_API void tolua_variable (lua_State* L, const char* name, lua_CFunction get, lua_CFunction set); TOLUA_API void tolua_array (lua_State* L,const char* name, lua_CFunction get, lua_CFunction set); /* TOLUA_API void tolua_set_call_event(lua_State* L, lua_CFunction func, char* type); */ /* TOLUA_API void tolua_addbase(lua_State* L, char* name, char* base); */ TOLUA_API void tolua_pushvalue (lua_State* L, int lo); TOLUA_API void tolua_pushboolean (lua_State* L, int value); TOLUA_API void tolua_pushnumber (lua_State* L, lua_Number value); TOLUA_API void tolua_pushstring (lua_State* L, const char* value); TOLUA_API void tolua_pushuserdata (lua_State* L, void* value); TOLUA_API void tolua_pushusertype (lua_State* L, void* value, const char* type); TOLUA_API void tolua_pushusertype_and_takeownership(lua_State* L, void* value, const char* type); TOLUA_API void tolua_pushfieldvalue (lua_State* L, int lo, int index, int v); TOLUA_API void tolua_pushfieldboolean (lua_State* L, int lo, int index, int v); TOLUA_API void tolua_pushfieldnumber (lua_State* L, int lo, int index, lua_Number v); TOLUA_API void tolua_pushfieldstring (lua_State* L, int lo, int index, const char* v); TOLUA_API void tolua_pushfielduserdata (lua_State* L, int lo, int index, void* v); TOLUA_API void tolua_pushfieldusertype (lua_State* L, int lo, int index, void* v, const char* type); TOLUA_API void tolua_pushfieldusertype_and_takeownership (lua_State* L, int lo, int index, void* v, const char* type); TOLUA_API lua_Number tolua_tonumber (lua_State* L, int narg, lua_Number def); TOLUA_API const char* tolua_tostring (lua_State* L, int narg, const char* def); TOLUA_API void* tolua_touserdata (lua_State* L, int narg, void* def); TOLUA_API void* tolua_tousertype (lua_State* L, int narg, void* def); TOLUA_API int tolua_tovalue (lua_State* L, int narg, int def); TOLUA_API int tolua_toboolean (lua_State* L, int narg, int def); TOLUA_API lua_Number tolua_tofieldnumber (lua_State* L, int lo, int index, lua_Number def); TOLUA_API const char* tolua_tofieldstring (lua_State* L, int lo, int index, const char* def); TOLUA_API void* tolua_tofielduserdata (lua_State* L, int lo, int index, void* def); TOLUA_API void* tolua_tofieldusertype (lua_State* L, int lo, int index, void* def); TOLUA_API int tolua_tofieldvalue (lua_State* L, int lo, int index, int def); TOLUA_API int tolua_getfieldboolean (lua_State* L, int lo, int index, int def); TOLUA_API void tolua_dobuffer(lua_State* L, char* B, unsigned int size, const char* name); TOLUA_API int class_gc_event (lua_State* L); #ifdef __cplusplus static inline const char* tolua_tocppstring (lua_State* L, int narg, const char* def) { const char* s = tolua_tostring(L, narg, def); return s?s:""; }; static inline const char* tolua_tofieldcppstring (lua_State* L, int lo, int index, const char* def) { const char* s = tolua_tofieldstring(L, lo, index, def); return s?s:""; }; #else #define tolua_tocppstring tolua_tostring #define tolua_tofieldcppstring tolua_tofieldstring #endif TOLUA_API int tolua_fast_isa(lua_State *L, int mt_indexa, int mt_indexb, int super_index); #ifndef Mtolua_new #define Mtolua_new(EXP) new EXP #endif #ifndef Mtolua_delete #define Mtolua_delete(EXP) delete EXP #endif #ifndef Mtolua_new_dim #define Mtolua_new_dim(EXP, len) new EXP[len] #endif #ifndef Mtolua_delete_dim #define Mtolua_delete_dim(EXP) delete [] EXP #endif #ifndef tolua_outside #define tolua_outside #endif #ifndef tolua_owned #define tolua_owned #endif #ifdef __cplusplus } #endif #endif tolua++-1.0.93/INSTALL0000644000175000017500000000325310424032716013377 0ustar cesarecesareThis version of tolua++ uses SCons to compile (http://www.scons.org). SCons uses pythin. If you don't want to install python, check "Installation without scons" below. * Installation 1. Edit the "config" file for your platform to suit your environment, if at all necessary (for cygwin, mingw, BSD and mac OSX use 'config_posix') 2. Then, type "scons". You can use 'scons -h' to see a list of available command line options. * What you get If "scons" succeeds, you get: * an executable to generate binding code in ./bin; * the C library to be linked in your application in ./lib; * the include file needed to compile your application in ./include. These are the only directories you need for development, besides Lua. You can use 'scons install' to install the files, see the 'prefix' option. * Installation without scons The instructions for building tolua++ without scons depend on the particular compiler you are using. The simplest way is to create a folder with all .c and .h files except 'toluabind_default.c', and then create a project for the executable and the library, as follows: tolua.exe: all *.c *.h in src/bin (except toluabind_default.c) tolua.lib: all *.c *.h in src/lib. * Installation with Microsoft Visual Studio The directory 'win32' contains project files for Microsoft Visual Studio 7 (contributed by Makoto Hamanaka). The project has 4 different build options: withLua50_Release, withLua51_Release, withLua50_Debug and withLua51_Debug. They all expect the lua library names used by the LuaBinaries packages (http://luabinaries.luaforge.net/). The resulting files are built on /lib and /bin (for the library and tolua++.exe). tolua++-1.0.93/COPYRIGHT0000644000175000017500000000277011146137701013646 0ustar cesarecesaretolua++ License --------------- tolua++ is based on toLua (www.tecgraf.puc-rio.br/~celes/tolua), and it's licensed under the terms of the MIT license reproduced below. This means that Lua is free software and can be used for both academic and commercial purposes at absolutely no cost. =============================================================================== Copyright (C) 2009 Ariel Manzur. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. =============================================================================== (end of COPYRIGHT) tolua++-1.0.93/win32/0000755000175000017500000000000011146141660013306 5ustar cesarecesaretolua++-1.0.93/win32/vc7/0000755000175000017500000000000011146141660014005 5ustar cesarecesaretolua++-1.0.93/win32/vc7/toluapp.sln0000755000175000017500000000270510423256165016222 0ustar cesarecesareMicrosoft Visual Studio Solution File, Format Version 8.00 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "toluapp", "toluapp.vcproj", "{71891C1A-E328-4258-AC3F-6F9698C6D8B4}" ProjectSection(ProjectDependencies) = postProject EndProjectSection EndProject Global GlobalSection(SolutionConfiguration) = preSolution withLua50_Debug = withLua50_Debug withLua50_Release = withLua50_Release withLua51_Debug = withLua51_Debug withLua51_Release = withLua51_Release EndGlobalSection GlobalSection(ProjectConfiguration) = postSolution {71891C1A-E328-4258-AC3F-6F9698C6D8B4}.withLua50_Debug.ActiveCfg = withLua51_Release|Win32 {71891C1A-E328-4258-AC3F-6F9698C6D8B4}.withLua50_Debug.Build.0 = withLua51_Release|Win32 {71891C1A-E328-4258-AC3F-6F9698C6D8B4}.withLua50_Release.ActiveCfg = withLua50_Release|Win32 {71891C1A-E328-4258-AC3F-6F9698C6D8B4}.withLua50_Release.Build.0 = withLua50_Release|Win32 {71891C1A-E328-4258-AC3F-6F9698C6D8B4}.withLua51_Debug.ActiveCfg = withLua51_Debug|Win32 {71891C1A-E328-4258-AC3F-6F9698C6D8B4}.withLua51_Debug.Build.0 = withLua51_Debug|Win32 {71891C1A-E328-4258-AC3F-6F9698C6D8B4}.withLua51_Release.ActiveCfg = withLua51_Release|Win32 {71891C1A-E328-4258-AC3F-6F9698C6D8B4}.withLua51_Release.Build.0 = withLua51_Release|Win32 EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution EndGlobalSection GlobalSection(ExtensibilityAddIns) = postSolution EndGlobalSection EndGlobal tolua++-1.0.93/win32/vc7/toluapp.vcproj0000755000175000017500000001552710423256165016737 0ustar cesarecesare tolua++-1.0.93/README0000644000175000017500000000206411145432470013227 0ustar cesarecesareThis is tolua++-1.0 * What is tolua++? tolua++ is an extension of toLua, a tool to integrate C/C++ code with Lua. tolua++ includes new features oriented to c++, such as class templates. tolua is a tool that greatly simplifies the integration of C/C++ code with Lua. Based on a "cleaned" header file, tolua automatically generates the binding code to access C/C++ features from Lua. Using Lua-5.0 API and metamethod facilities, the current version automatically maps C/C++ constants, external variables, functions, namespace, classes, and methods to Lua. It also provides facilities to create Lua modules. * Availability tolua++ is freely available for both academic and commercial purposes. See COPYRIGHT for details. tolua++ can be downloaded from the sites below: http://www.codenix.com/~tolua/ * Installation See INSTALL. * Contacting the author tolua has been designed and implemented by Waldemar Celes. tolua++ is maintained by Ariel Manzur. Send your comments, bug reports and anything else to tolua@codenix.com tolua++-1.0.93/doc/0000755000175000017500000000000011146141660013111 5ustar cesarecesaretolua++-1.0.93/doc/tolua++.html0000644000175000017500000021564111146137240015261 0ustar cesarecesare tolua++ reference manual

tolua++ - Reference Manual

by Waldemar Celes, Ariel Manzur.


tolua++ is an extended version of tolua, a tool to integrate C/C++ code with Lua. tolua++ includes new features oriented to c++ such as:

As well as other features and bugfixes.

tolua is a tool that greatly simplifies the integration of C/C++ code with Lua. Based on a cleaned header file (or extracts from real header files), tolua automatically generates the binding code to access C/C++ features from Lua. Using Lua API and tag method facilities, tolua maps C/C++ constants, external variables, functions, classes, and methods to Lua.

This manual is for tolua++ version 1.0 and is implemented upon Lua 5.0 and based on tolua 5.0. See Compatibility for details on switching from older versions.

The sections below describe how to use tolua. Please contact us with bug reports, suggestions, and comments.


How tolua works

To use tolua, we create a package file, a C/C++ cleaned header file, listing the constants, variables, functions, classes, and methods we want to export to the Lua environment. Then tolua parses this file and creates a C/C++ file that automatically binds the C/C++ code to Lua. If we link the created file with our application, the specified C/C++ code can be accessed from Lua.
A package file can also include regular header files, other package files, or lua files.

Let's start with some examples. If we specify as input the following C-like header file to tolua:

#define FALSE 0
#define TRUE 1

enum { 
 POINT = 100, 
 LINE, 
 POLYGON
}
Object* createObejct (int type);
void drawObject (Object* obj, double red, double green, double blue);
int isSelected (Object* obj);
A C file that binds such a code to Lua is automatically generated. Therefore, in Lua code, we can access the C code, writing, for instance:
...
myLine = createObject(LINE)
...
if isSelected(myLine) == TRUE then
  drawObject(myLine, 1.0, 0.0, 0.0);
else
  drawObject(myLine, 1.0, 1.0, 1.0);
end
...
Also, consider a C++-like header file:
#define FALSE 0
#define TRUE 1
class Shape
{
  void draw (void);
  void draw (double red, double green, double blue);
  int isSelected (void);
};
class Line : public Shape
{
 Line (double x1, double y1, double x2, double y2);
 ~Line (void);
};
If this file is used as input to tolua, a C++ file is automatically generated proving access to such a code from Lua. Therefore, it would be valid to write Lua statements like:
...
myLine = Line:new (0,0,1,1)
...
if myLine:isSelected() == TRUE then
 myLine:draw(1.0,0.0,0.0)
else
 myLine:draw()
end
...
myLine:delete()
...
The package file (usually with extension .pkg) passed to tolua is not the real C/C++ header file, but a cleaned version of it. tolua does not implement a complete parse to interpret C/C++ code, but it understands a few declarations that are used to describe the features that are to be exported to Lua. Regular header files can be included into packages files; tolua will extract the code specified by the user to parse from the header (see Basic Concepts).

How to use toLua

tolua is composed by two pieces of code: an executable and a library. The executable represents the parser that reads a package file and output a C/C++ code that implements the binding to access the C/C++ features from Lua. If the package file is a C++ like code (i.e., includes class definitions), a C++ code is generated. If the cleaned header file is a C like code (i.e., without classes), a C code is generated. tolua accepts a set of options. Running "tolua -h" displays the current accepted options. For instance, to parse a file called myfile.pkg generating the binding code in myfile.c, we do:

tolua -o myfile.c myfile.pkg

The generated code must be compiled and linked with the application to provide the desired access from Lua. Each parsed file represents a package being exported to Lua. By default, the package name is the input file root name (myfile in the example). The user can specify a different name for the package:

tolua -n pkgname -o myfile.c myfile.pkg

The package should also be explicitly initialized. To initialize the package from our C/C++ code, we must declare and call the initialization function. The initialization function is defined as

int tolua_pkgname_open (lua_State*);

where pkgname represents the name of the package being bound. If we are using C++, we can opt for automatic initialization:

tolua -a -n pkgname -o myfile.c myfile.pkg

In that case, the initialization function is automatically called. However, if we are planning to use multiple Lua states, automatic initialization does not work, because the order static variables are initialized in C++ is not defined.

Optionally, the prototype of the open function can be outputted to a header file, which name is given by the -H option.

The binding code generated by tolua uses a set of functions defined in the tolua library. Thus, this library also has to be linked with the application. The file tolua.h is also necessary to compile the generated code.

An application can use tolua object oriented framework (see exported utility functions) without binding any package. In that case, the application must call tolua initialization function (this function is called by any package file initialization function):

int tolua_open (void);

Basic Concepts

The first step in using tolua is to create the package file. Starting with the real header files, we clean them by declaring the features we want to access from Lua in a format that tolua can understand. The format tolua understands is simple C/C++ declarations as described below.

Including files

A package file may include other package file. The general format to do that is:

$pfile "include_file"

A package file may also include regular C/C++ header files, using the hfile or cfile directive:

$cfile "example.h"

In which case, tolua will extract the code enclosed between tolua_begin and tolua_end, or or tolua_export for a single line. Consider this C++ header as example:


#ifndef EXAMPLE_H
#define EXAMPLE_H

class Example { // tolua_export

private:

	string name;
	int number;

public:

	void set_number(int number);

	//tolua_begin

	string get_name();
	int get_number();
};
// tolua_end

#endif

In this case, the code that's not supported by tolua (the private part of the class), along with the function set_number is left outside of the package that includes this header.

Finally, lua files can be included on a package file, using $lfile:

$lfile "example.lua"

New on tolua++: an extra way to include source files is available since version 1.0.4 of tolua++, using ifile:

$ifile "filename"

ifile also takes extra optional parameters after the filename, for example:

$ifile "widget.h", GUI
$ifile "vector.h", math, 3d

ifile's default behaviour is to include the whole file, untouched. However, the contents of the file and the extra parameters are put through the include_file_hook function before being included into the package (see Customizing tolua++ for more details).

Basic types

tolua automatically maps C/C++ basic types to Lua basic types. Thus, char, int, float, and double are mapped to the Lua type number; char* is mapped to string; and void* is mapped to userdata. Types may be preceded by modifiers (unsigned, static, short, const, etc.); however, be aware that tolua ignores the modifier const if applied to basic types. Thus, if we pass a constant basic type to Lua and then pass it back to C/C++ code where a non constant is expected, the constant to non constant conversion will be silently done.

Functions in C/C++ can also manipulate Lua objects explicitly. Thus lua_Object is also considered a basic type. In this case, any Lua value matches it.

New on tolua++: The C++ type string is also considered a basic type, and is passed as a value to lua (using the c_str() method). This feature can be turned off with the command line option -S.

User defined types

All other types that appear in the package file being processed are considered user defined types. These are mapped to tagged userdata type in Lua. Lua can only store pointers to user defined types; although, tolua automatically makes the necessary arrangement to deal with references and values. For instance, if a function or method returns a value of user defined type, tolua allocates a clone object when returning it to Lua and sets the garbage collection tag method to automatically free the allocated object when no longer in use by Lua.

For user defined types, constness is preserved. Thus passing a non constant user defined type to a function that expects constant type generates an type mismatching error.

NULL and nil

C/C++ NULL or 0 pointers are mapped to Lua nil type; conversely, nil may be specified wherever a C/C++ pointer is expected. This is valid for any type: char*, void*, and pointers to user defined types.

Typedefs

tolua also accepts simple typedef's inside the package files. Any occurrence of a type after its definition is mapped by tolua to the base type. They are useful because several packages redefine the basic C/C++ types to their own types. For instance, one can define the type real to represent a double. In that case, real can be used to specify the variable types inside the package file interpreted by tolua, but only if we include the following definition before any use of the type real.

typedef double real;

Otherwise, real would be interpreted as a user defined type and would not be mapped to Lua numbers.

Including real header files

In the package file, we must specify which are the real header files that should be included so that the generated code can access the constants, variables, functions, and classes we are binding. Any line in the package file beginning with a $ (except $[hclp]file, $[ , and $] lines) is inserted into the generated binding C/C++ code without any change, but the elimination of the $ itself. We use this feature to include the real header files. So, our package files will usually start with a set of $ beginning lines specifying the files that must be included, that is, the files the package file is based on.
/* specify the files to be included */
$#include "header1.h"                 // include first header
$#include "header2.h"                 // include second header
As illustrated, tolua also accepts comments, using C or C++ convention, inside the package file. Nested C-like comments can also be used.

Also note that files included with $cfile or $hfile don't need to be included using this method, this is done automatically by tolua.

In the following sections, we describe how to specify the C/C++ code we want to bind to Lua. The formats are simplified valid C/C++ statements.

Binding constants

To bind constants, tolua accepts both define's and enum's. For define's the general format is:
#define NAME [ VALUE ]
The value, as showed above, is optional. If such a code is inserted inside the file being processed, tolua generates a code that allows the use of NAME as a Lua global variable that has the corresponding C/C++ constant value. Only numeric constants are accepted.

New on tolua++: All other preprocessor directives are ignored.

For enum's, the general format is:

enum {
  NAME1 [ = VALUE1 ] ,
  NAME2 [ = VALUE2 ] ,
  ...
  NAMEn [ = VALUEn ]
};
Similarly, tolua creates a set of global variables, named NAMEi, with their corresponding values.

Binding external variables

Global extern variables can also be exported. In the cleaned header file they are specified as:
[extern] type var;
tolua binds such declarations to Lua global variables. Thus, in Lua, we can access the C/C++ variable naturally. If the variable is non constant, we can also assign the variable a new value from Lua. Global variables that represent arrays of value can also be bound to Lua. Arrays can be of any type. The corresponding Lua objects for arrays are Lua tables indexed with numeric values; however, be aware that index 1 in Lua is mapped to index 0 in an C/C++ array. Arrays must be pre dimensioned. For instance:

double v[10];

New on tolua++: External variables can use the tolua_readonly modifier (see Additional Features)

Binding functions

Functions are also specified as conventional C/C++ declarations:
type funcname (type1 par1[, type2 par2[,...typeN parN]]);
The returned type can be void, meaning no value is returned. A function can also have no parameter. In that case, void may be specified in the place of the list of parameters. The parameter types must follow the rules already posted. tolua creates a Lua function binding the C/C++ function. When calling a function from Lua, the parameter types must match the corresponding C/C++ types, otherwise, tolua generates an error and reports which parameter is wrongly specified. If a parameter name is omitted, tolua names it automatically, but its type should be a basic type or user type previously used.

Arrays

tolua also deals with function or method parameters that represent arrays of values. The nice thing about arrays is that the corresponding Lua tables have their values updated if the C/C++ function changes the array contents.

The arrays must be pre dimensioned. For instance:

void func (double a[3]);

is a valid function declaration for tolua and calling this function from Lua would be done by, for instance:

p = {1.0,1.5,8.6}
func (p)

The array dimension need not be a constant expression; the dimension can also be specified by any expression that can be evaluated in run time. For instance:

void func (int n, int m, double image[n*m]);

is also valid since the expression n*m is valid in the binding function scope. However, be aware that tolua uses dynamic allocation for binding this function, what can degrade the performance.

Despite the dimension specification, it is important to know that all arrays passed to the actual C/C++ function are in the local scope of the binding function. So, if the C/C++ function being called needs to hold the array pointer for later use, the binding code will not work properly.

Overloaded functions

Overloaded functions are accepted. Remember that the distinction between two functions with the same name is made based on the parameter types that are mapped to Lua. So, although

void func (int a);
void func (double a);

represent two different functions in C++, they are the same function for tolua, because both int and double are mapped to the same Lua type: number.

Another tricky situation occurs when expecting pointers. Suppose:

void func (char* s);
void func (void* p);
void func (Object1* ptr);
void func (Object2* prt);
Although these four functions represent different functions in C++, a Lua statement like:
func(nil)
matches all of them.

It is important to know that tolua decides which function will be called in run-time, trying to match each provided function. tolua first tries to call the last specified function; if it fails, tolua then tries the previous one. This process is repeated until one function matches the calling code or the first function is reached. For that reason, the mismatching error message, when it occurs, is based on the first function specification. When performance is important, we can specify the most used function as the last one, because it will be tried first.

tolua allows the use of overloaded functions in C, see Renaming for details.

Default parameter values

The last function parameters can have associated default values. In that case, if the function is called with fewer parameters, the default values are assumed. The format to specify the default values is the same as the one used in C++ code:

type funcname (..., typeN-1 parN-1 [= valueN-1], typeN parN [= valueN]);

toLua implements this feature without using any C++ mechanism; so, it can be used also to bind C functions.

We can also specify default values for the elements of an array (there is no way to specify a default value for the array itself, though). For instance:

void func (int a[5]=0);

sets the default element values to zero, thus the function can be called from Lua with an uninitialized table.

For Lua object types (lua_Object), tolua defines a constant that can be used to specify nil as default value:

void func (lua_Object lo = TOLUA_NIL);

New on tolua++: C++ class constructors are valid as default parameters. For example:

void set_color(const Color& color = Color(0,0,0));

Multiple returned values

In Lua, a function may return any number of values. tolua uses this feature to simulate values passed by reference. If a function parameter is specified as a pointer to or reference of a basic type or a pointer to or reference of a pointer to an user defined type, tolua accepts the corresponding type as input and returns, besides the conventional function returned value, if any, the updated parameter value.

For instance, consider a C function that swaps two values:

void swap (double* x, double* y);

or

void swap (double& x, double& y);

If such a function is declared in the package file, tolua binds it as a function receiving two numbers as input and returning two numbers. So, a valid Lua code would be:

x,y = swap(x,y)

If the input values are not used, the use of default parameter value allows calling the function from Lua without specifying them:

void getBox (double* xmin=0, double* xmax=0, double* ymin=0, double* ymax=0);

In Lua:

xmin, xmax, ymin, ymax = getBox()

With user defined types, we would have for instance:

void update (Point** p);

or

void update (Point*& p);

Binding struct fields

User defined types are nicely bound by tolua. For each variable or function type that does not correspond to a basic type, tolua automatically creates a tagged userdata to represent the C/C++ type. If the type corresponds to a struct, the struct fields can be directly accessed from Lua, indexing a variable that holds an object of such a type. In C code, these types are commonly defined using typedef's:
typedef struct [name] {
   type1 fieldname1;
   type2 fieldname2;
   ...
   typeN fieldnameN;
} typename;
If such a code is inserted in the package file being processed, tolua allows any variable that holds an object of type typename to access any listed field indexing the variable by the field name. For instance, if var holds a such object, var.fieldnamei accesses the field named fieldnamei.

Fields that represent arrays of values can also be mapped:

typedef struct {
  int x[10];
  int y[10];
} Example;
 

Binding classes and methods

C++ class definitions are also supported by tolua. Actually, the tolua deals with single inheritance and polymorphism in a natural way. The subsections below describe what can be exported by a class definition.

Specifying inheritance

If var is a Lua variable that holds an object of a derived class, var can be used wherever its base class type is expected and var can access any method of its base class. For this mechanism to take effect, we must indicate that the derived class actually inherits the base class. This is done in the conventional way:
class classname : public basename
{
 /* class definition */
};

In this case, the definition of basename needs to appear before classname if the inheritance properties are to be taken advantage of from lua.

Multiple inheritance

tolua++ (starting from version 1.0.4) supports multiple inheritance by allowing you to access the extra parents 'manually'.

For example, consider the following class:

class Slider : public Widget, public Range {
	...
};

An object of type 'Slider' will fully retain its inheritance with Widget, and will contain a 'member' of type Range, which will return the object cast to the correct base type.

For example:

slider = Slider:new()
slider:show() -- a Widget method

slider:set_range(0, 100) -- this won't work, because
                         -- set_range is a method from Range

slider.__Range__:set_range(0, 100) -- this is the correct way

This is an experimental feature.

Specifying exported members and methods

As for struct fields, class fields, static or not, can be exported. Class methods and class static methods can also be exported. Of course, they must be declared as public in the actual C++ code (the public:keyword may appear in the package files, it will be ignored by tolua).

For each bound class, tolua creates a Lua table and stores it at a variable which name is the name of the C++ class. This tables may contain other tables that represent other tables, the way C++ classes may contain other classes and structs. Static exported fields are accessed by indexing this table with the field names (similar to struct fields). Static methods are also called using this table, with a colon. Non static exported fields are accessed by indexing the variable that holds the object. Class methods follow the format of the function declaration showed above. They can be accessed from Lua code using the conventional way Lua uses to call methods, applied of course to a variable that holds the appropriate object or to the class table, for static methods.

There are a few special methods that are also supported by tolua. Constructors are called as static methods, named new, new_local (on tolua++), or calling the class name directly (also on tolua++, see below for the difference betwheen these methods). Destructors are called as a conventional method called delete.

Note that tolua does support overload. This applies even for constructors. Also note that the virtual keyword has no effect in the package file.

The following code exemplifies class definitions that can be interpreted by tolua.

class Point {
   static int n;    // represents the total number of created Points
   static int get_n();    // static method

   double x;        // represents the x coordinate
   double y;        // represents the y coordinate
   static char* className (void);   // returns the name of the class
   Point (void);                          // constructor 1
   Point (double px, double py);          // constructor 2
   ~Point (void);                         // destructor
   Point add (Point& other);              // add points, returning another one
};
class ColorPoint : public Color {
   int red;      // red color component [0 - 255]
   int green;    // green color component [0 - 255]
   int blue;     // blue color component [0 - 255]
   ColorPoint (double px, double py, int r, int g, int b);
};
If this segment of code is processed by tolua, we would be able to write the following Lua statements:
p1 = Point:new(0.0,1.0)
p2 = ColorPoint:new(1.5,2.2,0,0,255)
print(Point.n)                     -- would print 2
print(Point:get_n())               -- would also print 2
p3 = p1:add(p2)
local p4 = ColorPoint()
print(p3.x,p3.y)                   -- would print 1.5 and 3.2
print(p2.red,p2.green,p2.blue)     -- would print 0, 0, and 255
p1:delete()                        -- call destructor
p2:delete()                        -- call destructor
Note that we can only explicitly delete objects that we explicitly create. In the example above, the point p3 will be garbage-collected by tolua automatically; we cannot delete it.

New on tolua++: Also note that p4 is created by calling the class name directly (ColorPoint()); this has the same effect as calling new_local, which leaves the object to be deleted by the garbaje collector, and it should not be deleted using delete. For each constructor on the pkg, one new, new_local and .call callback for the class is created.

Of course, we need to specify only the methods and members we want to access from Lua. Sometimes, it will be necessary to declare a class with no member or method just for the sake of not breaking a chain of inheritances.

Using Regular functions as class methods

tolua++ (starting from version 1.0.5) uses the keyword tolua_outside to specify regular functions as methods and static methods of a class or struct. For example:


/////////////// position.h:

typedef struct {

	int x;
	int y;
} Position;

Position* position_create();
void position_set(Position* pos, int x, int y);

/////////////// position.pkg:

struct Position {

	int x;
	int y;

	static tolua_outside Position* position_create @ create();
	tolua_outside void position_set @ set(int x, int y);
};

--------------- position.lua

local pos = Position:create()

pos:set(10, 10)

Note that the position_set method takes a pointer to Position as its first parameter, this is ommited on the tolua_outside declaration. Also note that we cannot name our methods new or new_local, or as overloaded operators (see next section), this will result in undefined behaviour.

Overloaded operators

tolua automatically binds the following binary operators:
    operator+   operator-   operator*   operator/ 
    operator<   operator>=  operator==  operator[]
For the relational operators, toLua also automatically converts a returned 0 value into nil, so false in C becomes false in Lua.

As an example, suppose that in the code above, instead of having:

   Point add (Point& other);              // add points, returning another one
we had:
   Point operator+ (Point& other);        // add points, returning another one
In that case, in Lua, we could simply write:
p3 = p1 + p2
The indexing operator (operator[]) when receiving a numeric parameter can also be exported to Lua. In this case, tolua accepts reference as returned value, even for basic types. Then if a reference is returned, from Lua, the programmer can either get or set the value. If the returned value is not a reference, the programmer can only get the value. An example may clarify: suppose we have a vector class and bind the following operator:
   double& operator[] (int index);
In this case, in Lua, we would be able to write: value = myVector[i] and also myVector[i] = value, which updates the C++ object. However, if the bound operator was:
   double operator[] (int index);
we would only be able to write: value = myVector[i].

Free functions (i.e., not class members) that overload operators are not supported.

Cast operators

New on tolua++ (versions 1.0.90 and up): casting operators are also supported. For example:
/////////////// node.h

// a class that holds a value that can be of type int, double, string or Object*
class Node { // tolua_export

private:
	union {
		int int_value;
		double double_value;
		string string_value;
		Object* object_value;
	};

// tolua_begin
public:

	enum Type {
		T_INT,
		T_DOUBLE,
		T_STRING,
		T_OBJECT,
		T_MAX,
	};

	Type get_type();

	operator int();
	operator double();
	operator string();
	operator Object*();
};
// tolua_end
tolua++ will produce code that calls the operators by casting the object Node (using C++ static_cast), and register them inside the class as ".typename". For example:
-- node.lua

local node = list.get_node("some_node") -- returns a Node object

if node.get_type() == Node.T_STRING then

	print("node is "..node[".string"]())

elseif node.get_type() == Node.T_OBJECT then

	local object = node[".Object*"]()
	object:method()
end

Binding Properties

tolua++ (starting from version 1.0.6) supports declaration of class propeties, using the tolua_property keyword. A property will look like a 'field' of the class, but it's value will be retrieved using class methods. For example:
/////////////// label.h

class Label {

public:

	string get_name();
	void set_name(string p_name);

	Widget* get_parent();
};

/////////////// label.pkg
class Label {

	tolua_property string name;

	tolua_readonly tolua_property Widget* parent;
};

--------------- label.lua

local label = Label()

label.name = "hello"
print(label.name)

label.parent:show()

Property types

A property can have differt types, which determine how it's value will be set and retrieved. tolua++ comes with 3 different built-in types:

  • default will use 'get_name' and 'set_name' methods to access a property called 'name'
  • qt will use 'name' and 'setName'
  • overload will use 'name' and 'name' (as in 'string name(void);' to get and 'void name(string);' to set)

    The property type can be appended at the end of the 'tolua_property' keyword on the declaration:

      tolua_property__qt string name;
    When no type is specified, default will be used, but this can be changed (see below).

    Changing the default property type

    The default property type can be changed using the 'TOLUA_PROPERTY_TYPE' macro. This will change the default type from the point of its invocation, until the end of the block that contains it. For example:

    
    TOLUA_PROPERTY_TYPE(default); // default type for the 'global' scope
    
    namespace GUI {
    
    	class Point {
    
    		tolua_property int x; // will use get_x/set_x
    		tolua_property int y; // will use get_y/set_y
    	};
    
    	TOLUA_PROPERTY_TYPE(qt); // changes default type to 'qt' for the rest of the 'GUI' namespace
    
    	class Label {
    
    		tolua_property string name; // will use name/setName
    	};
    };
    
    class Sprite {
    
    	tolua_property GUI::Point position; // will use get_position/set_position
    
    	tolua_property__overload string name; // will use name/name
    };
    
    

    Adding custom property types

    Custom property types can be added by redefining the function "get_property_methods_hook" (see Customizing tolua++ for more details). The functions takes the property type and the name, and returns the setter and getter function names. For example:

    
    /////////////// custom.lua
    
    function get_property_methods_hook(ptype, name)
    
    	if ptype == "hungarian_string" then
    
    		return "sGet"..name, "Set"..name
    	end
    
    	if ptype == "hungarian_int" then
    
    		return "iGet"..name, "Set"..name
    	end
    	-- etc
    end
    
    /////////////// label.pkg
    class Label {
    
    	tolua_property__hungarian_string string Name; // uses 'sGetName' and 'SetName'
    
    	tolua_property__hungarian_int string Type; // uses 'iGetType' and 'SetType'
    };
    
    

    Class Templates

    One of the additional features of tolua++ is the support for class templates, by using the TOLUA_TEMPLATE_BIND directive. For example:
    class vector {
    
    	TOLUA_TEMPLATE_BIND(T, int, string, Vector3D, double)
    
    	void clear();
    	int size() const;
    
    	const T& operator[](int index) const;
    	T& operator[](int index);
    	void push_back(T val);
    
    	vector();
    	~vector();
    };
    
    The TOLUA_TEMPLATE_BIND directive has to be the first thing on the class declaration, otherwise it will be ignored. This code will create 4 versions of the class vector, one for each type specified on the TOLUA_TEMPLATE_BIND parameters, each replacing the macro T (specified as the first argument of TOLUA_TEMPLATE_BIND). Thus, the functions operator[], &operator[] and push_back will have different signatures on each version of the object. The objects will be recognized as vector<type> on further declarations, and the name of the table on Lua will be vector_type_. Thus, the following Lua code could be used:
    string_vector = vector_string_:new_local()
    string_vector:push_back("hello")
    string_vector:push_back("world")
    print(string_vector[0].." "..string_vector[1])
    
    Similarily, a template with more than 1 macro could be bound, and it could also inherit from another template:
    class hash_map : public map<K,V> {
    
    	TOLUA_TEMPLATE_BIND(K V, int string, string vector<double>)
    
    	V get_element(K key);
    	void set_element(K key, V value);
    
    	hash_map();
    	~hash_map();
    };
    
    In this example, one of the objects has another template as one of its types, so it will be recognized as hash_map<string,vector<double> > while its constructor will be on the Lua table hash_map_string_vector_double___ (see Type Renaming for a better way to access these objects).

    Note that due to the complexity in the definition of some templates, you should be careful on how you declare them. For example, if you create an object with type hash_map<string,vector<double> > and then declare a variable with type hash_map<string, vector<double> > (note the space between string and vector), the type of the variable will not be recognized. The safest way is to declare a typedef, and use that to use each type (this is also a common practice on C++ programming). For example, using the previous declaration of vector:

    typedef vector VectorInt;
    
    VectorInt variable;
    
    TOLUA_TEMPLATE_BIND can be used with more than one parenthesis to open and close, in order to be valid as a macro inside a regular .h file. The TOLUA_TEMPLATE_BIND macro is declared on tolua.h as:

    #define TOLUA_TEMPLATE_BIND(x)

    Also, the parameters can have double quotes. Thus, the following uses are valid:

    TOLUA_TEMPLATE_BIND((T, int, float)) // to be used inside a real header file
    TOLUA_TEMPLATE_BIND("K V", "string string", int double)
    
    Function templates are not supported on this version.

    Module definition

    tolua allows us to group constants, variables, and functions in a module. The module itself is mapped to a table in Lua, and its constants, variables, and functions are mapped to fields in that table. The general format to specify a module is:

    module name
    {
          ... // constant, variable, and function declarations
    }

    Thus, if we bound the following module declaration:

    module mod
    {
     #define N
     extern int var;
     int func (...):
    }

    In Lua we would be able to access such features by indexing the module: mod.N, mod.var, mod.func.

    Renaming constants, variables and functions

    When exporting constants, variable, and functions (members of a class or not), we can rename them, such that they will be bound with a different name from their C/C++ counterparts. To do that, we write the name they will be referenced in Lua after the character @. For instance:

    extern int cvar @ lvar;

    #define CNAME @ LNAME

    enum {
      CITEM1 @ LITEM1,
      CITEM2 @ LITEM2,
      ...
    };

    void cfunc @ lfunc (...);

    class T
    {
       double cfield @ lfield;
       void cmeth @ lmeth (...);
       ...
    };

    In such a case, the global variable cvar would be identified in Lua by lvar, the constant CNAME by LNAME, and so on. Note that class cannot be renamed, because they represent types in C.

    This renaming feature allows function overload in C, because we can choose to export two different C functions with a same Lua name:

    void glVertex3d @ glVertex (double x, double y, double z=0.0);
    void glVertexdv @ glVertex (double v[3]=0.0);

    Renaming Types

    Types can be renamed using the $renaming directive on pkg files, using the format:

    $renaming real_name @ new_name

    The parameters to renaming can be Lua patterns. For example:

    $renaming ^_+ @
    $renaming hash_map<string,vector<double> > @ StringHash
    
    The first example will remove all underscores at the beginning of all types, the second will rename the template type hash_map<string,vector<double> > to StringHash. Once renamed, the Lua table for each type can be accessed only by their new name, for example: StringHash:new()

    Storing additional fields

    Finally, it is important to know that even though the variables that hold C/C++ objects are actually tagged userdata for Lua, tolua creates a mechanism that allows us to store any additional field attached to these objects. That is, these objects can be seen as conventional Lua tables.
    obj = ClassName:new()
    obj.myfield = 1  -- even though "myfield" does not represent a field of ClassName
    Such a construction is possible because, if needed, tolua automatically creates a Lua table and associates it with the object. So that, the object can store additional fields not mapped to C/C++, but actually stored in the conjugate table. The Lua programmer accesses the C/C++ features and these additional fields in an uniform way. Note that, in fact, these additional fields overwrite C/C++ fields or methods when the names are the same.

    Additional features on tolua++

    Multiple variable declarations

    Multiple variables of the same type can be declared at the same time, for example:

    float x,y,z;

    will create 3 different variables of type float. Make sure you don't leave any spaces between the commas, as that will raise a parse error.

    tolua_readonly

    Any variable declaration can use the tolua_readonly modifier, to ensure that the variable is read-only, even when its type is not const. Example:
    class Widget {
    
    	tolua_readonly string name;
    };
    
    This feature could be used to 'hack' the support for other unsupported things like operator->. Consider this example pkg file:
    $hfile "node.h"
    $#define __operator_arrow operator->()
    $#define __get_name get_name()
    
    And on the file node.h:
    template class<T>
    class Node { // tolua_export
    
    private:
    	string name;
    	T* value;
    
    public:
    
    	T* operator->() {return value;};
    	string get_name() {return name;};
    
    	// tolua_begin
    
    	#if 0
    	TOLUA_TEMPLATE_BIND(T, Vector3D)
    
    	tolua_readonly __operator_arrow @ p;
    	tolua_readonly __get_name @ name;
    	#endif
    
    
    	Node* next;
    	Node* prev;
    
    	void set_name(string p_name) {name = p_name;};
    
    	Node();
    };
    // tolua_end
    
    While not a pretty thing to do to a header file, this accomplishes a number of things:

  • The method operator->() can be used from Lua by calling the variable p on the object.
  • The method get_name() can be using from Lua by calling the variable name on the boject.
  • Example lua usage:
    node = Node_Vector3D_:new_local()
    -- do something with the node here --
    print("node name is "..node.name)
    print("node value is ".. node.p.x ..", ".. node.p.y ..", ".. node.p.z)
    
    Since tolua++ ignores all preprocessor directives (except for #define), node.h remains a valid C++ header file, and also a valid source for tolua++, eliminating the need to maintain 2 different files, even for objects with unusual features such as these ones.

    The ability to rename functions as variables might be expanded on future versions.

    Defining values on command line

    Starting from version 1.0.92, the command line option -E allows you to introduce values into to the luastate where tolua++ runs, similar to GCC's -D. For example:

    $ tolua++ -E VERSION=5.1 -E HAVE_ZLIB package.pkg > package_bind.cpp

    This will add 2 fields to the global table _extra_parameters: "VERSION", with the string value "5.1", and "HAVE_ZLIB" with the boolean value true. For the moment, there is no way to 'use' these values, except in custom scripts defined by the user (see customizing tolua++ for details).

    Using C++ typeid

    Starting from version 1.0.92, the command line option -t is available, which generates a list of calls to the empty macro Mtolua_typeid, with its C++ type_info object, and the name used by tolua++ to identify the type. For example, if you have a package that binds 2 classes, Foo and Bar, using -t will produce the following output:
    #ifndef Mtolua_typeid
    #define Mtolua_typeid(L,TI,T)
    #endif
     Mtolua_typeid(tolua_S,typeid(Foo), "Foo");
     Mtolua_typeid(tolua_S,typeid(Bar), "Bar");
    
    The implementation of Mtolua_typename is left as an exercise to the user.

    Exported utility functions

    tolua uses itself to export some utility functions to Lua, including its object-oriented framework. The package file used by tolua is shown below:

    module tolua
    {
     char* tolua_bnd_type @ type (lua_Object lo);
     void tolua_bnd_takeownership @ takeownership (lua_Object lo);
     void tolua_bnd_releaseownership @ releaseownership (lua_Object lo);
     lua_Object tolua_bnd_cast @ cast (lua_Object lo, char* type);
     void tolua_bnd_inherit @ inherit (lua_Object table, lua_Object instance);

    /* for lua 5.1 */
     void tolua_bnd_setpeer @ setpeer (lua_Object object, lua_Object peer_table);
     void tolua_bnd_getpeer @ getpeer (lua_Object object);
    }

    tolua.type (var)

    Returns a string representing the object type. For instance, tolua.type(tolua) returns the string table and tolua.type(tolua.type) returns cfunction. Similarly, if var is a variable holding a user defined type T, tolua.type(var) would return const T or T, depending whether it is a constant reference.

    tolua.takeownership (var)

    Takes ownership of the object referenced var. This means that when all references to that object are lost, the objects itself will be deleted by lua.

    tolua.releaseownership (var)

    Releases ownership of the object referenced by var.

    tolua.cast (var, type)

    Changes the metatable of var in order to make it of type type. type needs to be a string with the complete C type of the object (including namespaces, etc).

    tolua.inherit (table, var)

    (new on tolua++) Causes tolua++ to recognise table as an object with the same type as var, and to use var when necesary. For example, consider this method:

      void set_parent(Widget* p_parent);

    A lua object could be used like this:

    local w = Widget()
    local lua_widget = {}
    tolua.inherit(lua_widget, w)
    
    set_parent(lua_widget);
    
    
    Remember that this will only cause the table to be recognised as type 'Widget' when necesary. To be able to access Widget's methods, you'll have to implement your own object system. A simple example:

    
    lua_widget.show = Widget.show
    
    lua_widget:show() -- this will call the 'show' method from 'Widget', using the lua
                      -- table as 'self'. Since lua_widget inherits from a widget instance,
                      -- tolua++ will recognise 'self' as a 'Widget', and call the method
    
    

    Of course a better way would be to add a __index metamethod for the lua object.

    Similarily, to implement virtual functions, you'll need to create a c++ object that inherits from the desired type, implement its virtual functions, and use that to inherit from lua. The object would have a reference to the lua table, and call its methods from the c++ virtual methods.

    Note: the current implementation (as of version 1.0.6) stores the C instance inside the lua table on the field ".c_instance", and looks that up when necesary. This might change in the future, so it is recommended to use an alternative way to store the C instance to use with your own object system.

    tolua.setpeer (object, peer_table) (lua 5.1 only)

    Sets the table as the object's peer table (can be nil). The peer table is where all the custom lua fields for the object are stored. When compiled with lua 5.1, tolua++ stores the peer as the object's envirnment table, and uses uses lua_gettable/settable (instead of lua_rawget/set for lua 5.0) to retrieve and store fields on it. This allows us to implement our own object system on our table (using metatables), and use it as a way to inherit from the userdata object. Consider an alternative to the previous example:
    -- a 'LuaWidget' class
    LuaWidget = {}
    LuaWidget.__index = LuaWidget
    
    function LuaWidget:add_button(caption)
    
    	-- add a button to our widget here. 'self' will be the userdata Widget
    end
    
    
    local w = Widget()
    local t = {}
    setmetatable(t, LuaWidget) -- make 't' an instance of LuaWidget
    
    tolua.setpeer(w, t) -- make 't' the peer table of 'w'
    
    set_parent(w) -- we use 'w' as the object now
    
    w:show() -- a method from 'Widget'
    w:add_button("Quit") -- a method from LuaWidget (but we still use 'w' to call it)
    
    When indexing our object, the peer table (if present) will be consulted first, so we don't need to implement our own __index metamethod to call the C++ functions.

    tolua.getpeer (object) (lua 5.1 only)

    Retrieves the peer table from the object (can be nil).

    Embedded Lua code

    tolua allows us to embed Lua code in the C/C++ generated code. To do that, it compiles the specified Lua code and creates a C constant string, storing the corresponding bytecodes, in the generated code.  When the package is opened, such a string is executed. The format to embed Lua code is:

    $[

    embedded Lua code
    ...

    $]

    As an example consider the following .pkg excerpt:

    /* Bind a Point class */
    class Point
    {
     Point (int x, int y);
     ~Point ();
     void print ();
     ...
    } CPoint;

    $[

    -- Create a Point constructor
    function Point (self)
     local cobj = CPoint:new(self.x or 0, self.y or 0)
     tolua.takeownership(cobj)
     return cobj
    end

    $]

    Binding such a code would allow us to write the following Lua code:

    p = Point{ x=2, y=3 }
    p:print()
    ...
     

    Customizing tolua++

    tolua++ calls empty functions at specific points of its execution. This functions can be redefined on a separate lua file (and included using the -L command line option) and be used to control the way tolua++ behaves. This is the list of functions (taken from basic.lua on the tolua++ source):

    
    -- called right after processing the $[ichl]file directives,
    -- right before processing anything else
    -- takes the package object as the parameter
    function preprocess_hook(p)
    	-- p.code has all the input code from the pkg
    end
    
    
    -- called for every $ifile directive
    -- takes a table with a string called 'code' inside, the filename, and any extra arguments
    -- passed to $ifile. no return value
    function include_file_hook(t, filename, ...)
    
    end
    
    -- called after processing anything that's not code (like '$renaming', comments, etc)
    -- and right before parsing the actual code.
    -- takes the Package object with all the code on the 'code' key. no return value
    function preparse_hook(package)
    
    end
    
    
    -- called after writing all the output.
    -- takes the Package object
    function post_output_hook(package)
    
    end
    
    -- called at the beginning of the main parser function, with the code being parsed as a parameter
    -- it can return nil if nothing was foind, or the contents of 'code', modified by the function
    -- Usually a parser hook will search the beginning of the string for a token, and if it finds
    -- anything, return the string without that token (after doing whatever it has to do with the token).
    function parser_hook(code)
    
    end
    
    
    -- called from classFunction:supcode, before the call to the function is output
    -- the classFunction object is passed.
    function pre_call_hook(f)
    
    end
    
    -- called from classFunction:supcode, after the call to the function is output
    -- the classFunction object is passed.
    function post_call_hook(f)
    
    end
    
    -- called before the register code is output
    function pre_register_hook(package)
    
    end
    
    -- called to output an error message
    function output_error_hook(...)
    	return string.format(...)
    end
    
    
    

    Handling custom types

    Starting from version 1.0.93, it is possible to specify custom functions to handle certain types. There are 3 types of functions: a 'push function', used to push the C value onto the Lua stack, a 'to function', used to retrieve the value from the Lua stack, and return it as a C value, and an 'is function', used to check if the value on the stack is valid (or convertible to a C value by the to function). These functions are modelled upon tolua_pushusertype, tolua_tousertype and tolua_isusertype, declared in tolua++.h.

    A number of arrays found in basic.lua are used to specify these functions:

    -- for specific types
    _push_functions = {}
    _is_functions = {}
    _to_functions = {}
    
    -- for base types
    _base_push_functions = {}
    _base_is_functions = {}
    _base_to_functions = {}
    
    Example (using the -L command line option):

    _is_functions['Vector3'] = 'custom_is_vector3' -- checks for a 3d vector
                                                   -- (either userdata, or a table with 3 values)
    _to_functions['Vector3'] = 'custom_to_vector3' -- convertes the eventual table to a Vector3
    
    _base_push_functions['Widget'] = 'custom_push_widget' -- pushes anything that inherits from Widget
    
    The _base tables are used to lookup functions for types that are up in the inheritance chain.

    Access

    Starting from version 1.0.7, all objects have a an access flag, which determines the object's access inside its container. Container objects also have a member called curr_member_access, which determines the access of each child object at the moment of its addition to the container. If the access flag has the value nil (default), false or 0, the object is public. Otherwise, the object is not public, and tolua++ will not export any code for that object (and any objects it may contain).

    Another 'interesting' function is extract_code, defined on basic.lua, which extracs the code from files included with $cfile and $hfile (by looking for tolua_begin/end and tolua_export).

    Compatibility with older versions.

    tolua++ <1.0.90

    Version 1.0.90 of tolua++ introduces 2 small API changes the might be incompatible with older versions on some cases:

    TEMPLATE_BIND

    TEMPLATE_BIND is deprecated. Use TOLUA_TEMPLATE_BIND instead. Also, when declaring a template, the TOLUA_TEMPLATE_BIND statement has to be the first thing inside the class declaration, otherwise it will be ignored. This fixes a possible problem with nested template declarations.

    Retrieving Objects

    When passing a full userdata to a function that accepts light userdata parameters (void*), the tolua++ library function tolua_touserdata will detect the full userdata and dereference the void** pointer if necesary. This is a change on the function's behaviour (which used to return the pointer as-is). This allows us to pass pointers to objects to a function that accepts void* pointers. Note that this was a problem when switching from toLua version 4 to version 5 (and tolua++ versions < 1.0.90).

    toLua 4

    Retrieving Objects

    Users switching from tolua v4 should know that tolua++ stores the objects as void** on Lua, so when retrieving an object from the luastate using lua_touserdata, the pointer should be dereferenced. The library function tolua_tousertype should work as expected. Example:

    lua_pushglobal(lua_state, "get_Object");
    lua_call(lua_state, 0, 1);  // calling a function that returns an Object
    
    Object *new_object = (Object*)(*lua_touserdata(lua_state, -1));
    or
    Object *new_object = (Object*)tolua_tousertype(lua_state, -1, NULL);
    
    C++ Strings

    tolua++ binds the c++ type std::string as a basic type, passing it to Lua as a regular string (using the method c_str()). This feature can be turned off with the command line option -S.

    Operators

    The list of supported operators has changed, see Binding classes and methods for more information.

    toLua 5

    Class destructors.

    With every class constructor, tolua++ exports a 'local' constructor, to create an instance of the class that is owned by the lua state. To implement this, tolua++ will also export a function that will delete the class. There are 2 options to prevent this:

    Using the -D command line option will turn this off completely. Destructor functions will only be exported when a destructor for the class is explicitly declared, or when there is a function or method that returns an object of the type by value (this is compatible with tolua's behaviour).

    Using the TOLUA_PROTECTED_DESTRUCTOR directive inside the class declaration, to specify that the class has a private or protected destructor. In this case, no destructor will be exported for that class.

    operator[] index

    Users switching from tolua v5 should know that tolua 5 substracts 1 from the index on operator[] functions, for compatibility with lua's method for indexing arrays (1 is the first element). This feature is turned off by default on tolua++ (making it compatible with tolua 4). It can be turned back on with the command line option -1

    C++ Strings

    (see c++ strings on tolua 4 below)

    Changes since v. 3.0

    • Support for binding arrays as variables and struct/class fields;
    • Support for embedding Lua code into the generated binding code;
    • New utility functions: cast and takeownership;
    • Option to create the corresponding header file of the binding code;
    • New "close" package function;
    • Fixed bug on cloning objects in C++;
    • Fixed bug on enum and struct parsing;

    Changes since v. 2.0

    • There is a new executable parser;
    • Support for multiple Lua states is provided;
    • Support for module definition is provided;
    • Global variables is now directly bound to Lua global variables;
    • Constness of user defined types is preserved in Lua;
    • Support for multiple returned values from C/C++ is provided (simulating parameters passed by reference);
    • Constants, variables, and functions bound to Lua can have different names from their C/C++ counterparts;
    • Object-oriented framework (and other utility functions) used in tolua is now exported for Lua programmers;
    • Incompatibilities

      Lua code based on tolua v2.* should run with no change on tolua v3.0. Although, it may be necessary to change the .pkg file in order to get the same behavior. The following incompatibilities exist:
      • Parameters defined as pointer to basic types are no longer converted to arrays of dimension one; they are now considered parameters passed by reference.
      • Automatic initialization for C++ code must be explicitly requested when using the new parser;
      • Global variables are no longer mapped to a table; the definition of a module including the global variables may be used to simulate the old behavior;
      • The initialization function is no longer toLua_package_open but tolua_package_open, without the capital letter (sorry!).

    Changes since v. 1.*

    • The binding code should run much faster;
    • The cleaned header file extension should now be .pkg instead of .L;
    • Type modifiers is now accepted (though the current version ignores const's);
    • Returning object by value is accepted and memory allocation is controlled by Lua garbage collection;
    • Overloaded functions/methods are accepted;
    • Parameters with default values are accepted;
    • Some overloaded operators are automatically bound.

    Credits

    Luiz Henrique de Figueiredo had the idea of creating a tool to automatically bind C code to Lua. L.H.F. wrote the very first version of such a tool (that bound C functions, variables, and constants) in awk. At that time, Waldemar Celes (now the main author) was only responsible for the C code that supported the generated binding code.

    While working at NGD Studios, Ariel Manzur made some changes to tolua4 for their game engine. After the release of tolua5, having left NGD, enough changes were made to tolua to justify a separate release (with Waldemar's blessing :-)
     

    Availability

    tolua++ is freely available by http. The software provided hereunder is on an "as is" basis, and the author has no obligation to provide maintenance, support, updates, enhancements, or modifications.


    This document was created by Waldemar Celes With modifications by Ariel Manzur/
    Last update: Sept 2003 tolua++-1.0.93/doc/index.html0000644000175000017500000002251111146141614015106 0ustar cesarecesare toLua++ - binding c/c++ code to lua

    tolua++ - Home

    news - download - documentation - installing - contact - lua_qt - Codenix


    tolua++ is an extended version of tolua, a tool to integrate C/C++ code with Lua. tolua++ includes new features oriented to c++ such as:

    As well as other features and bugfixes.


    News:

    15/02/09: Version 1.0.93 released. Some bugfixes and new features:

    • Build process bootstraps.
    • Added hooks to handle custom types.
    • Added hooks to handle exceptions.
    • Fixed issues with newer GCC compilers.
    • Changed to MIT license. See COPYRIGHT file for details.
    27/04/06: Version 1.0.92 released. Some bugfixes and new features:

    • Fixed garbage collector bug for C objects.
    • Fixed problems with C compilers (including microsoft's)
    • Added a .proj file to build with Visual Studio 7 (contributed by Makoto Hamanaka).
    • New command line option: -E to define extra values
    • New command line option: -t to associate C++ types with their lua names (see the manual for details)
    25/02/06: Version 1.0.91 released. This version contains a small garbage collection bugfix for 1.0.90 (thanks to Rolf E. Thorup for the report), everyone should upgrade.

    18/02/06: Version 1.0.90 released. Some bugfixes and new features:

    • lua 5.1 support (see README-5.1)
    • Support for casting operators (for example operator const char();)
    • New utility functions, tolua.setpeer and tolua.getpeer, for easier (and faster) inheritance from C/C++ objects (only for lua 5.1)
    • Some small API changes (see the compatibility section of the manual)

    18/10/05: Version 1.0.7 released. Some bugfixes and new features:

    • New command line option: -C, to disable the cleanup of included lua code (for easier debugging).
    • Merged Mildred's patch: embedded lua chunks have better names, code on package initializer function is nested.
    • New hook: parser_hook, allows modifications to the behavior of the main parser.
    • Objects can be private (or protected). This doesn't affect the normal usage (everything is public by default), but it's useful to declare types that don't export any code, but serve as 'support' for other declarations.
    • Misc bugfixes.

    01/9/05: Version 1.0.6 released. Several bugfixes and new features:

    • Classes can have properties, using the 'tolua_property' keyboard. Property types are customizable.
    • Added a command line flag -D, to disable automatic generation of destructors for all classes with constructors (for compatibility with tolua5)
    • Classes with protected or private destructors can be tagged individually using the "TOLUA_PROTECTED_DESTRUCTOR" macro.
    • Added utility function "tolua.inherit", to allow a lua table to "inherit" from an instance of a C/C++ class
    • Fixed class constructor bug (it is now possible to use 'ClassName()' to create a lua-owned instance of the class without problems)
    • Misc bugfixes.

    10/4/05: Version 1.0.5 released. This version contains some minor bugfixes and a new feature, the tolua_outside keyword, used to specify regular functions as methods of classes or structs. This release is also paired with lua_qt version 0.0.1a.

    1/2/05: version 1.0.4 released. This version contains some bugfixes and new features:

    • Ability to customize tolua++'s behaviour to add functionality.
    • Basic support for multiple inheritance.
    • Several bugfixes on the parser.
    • Debian package available for download.

    Most of the changes on this version were added for lua_qt, a package to bind the Qt toolkit to lua.

    20/9/04: version 1.0.3 released. This version contains major bugfixes:

    • Fixed bugs in object tracking (the 'memory address' bug; there's still some work left, but people should be able to use unions with no problems)
    • Fixed parser bugs, functions with template parameters should work, also functions with default parameters that call constructos and with commas on them should work.
    • Added a __call method for class names, to replace new_local to create instances owned by lua.
    • Fixed other minor bugs.
    • Removed the link to win32 binaries, since I aparently don't know what the hell I'm doing with a microsoft compiler ;-)

    Everyone should upgrade.

    23/10/03: version 1.0.2 released. This version contains major bugfixes:

    • Fixed bugs in gargabe collection (thanks to Christian Vogler for doing all the work :-)
    • namespaces and nested types are now fully supported.
    • Fixed other minor bugs.

    Everyone should upgrade.


    Downloading

    The latest development version of the code is available through SVN from tolua++'s BerliOS project page. You can checkout using: svn checkout svn://svn.berlios.de/toluapp/trunk The tolua++ source is freely available by http. The software provided under the terms of the MIT license. See the COPYRIGHT file distributed with the source.

    Current version is 1.0.93, older versions:

  • tolua++-1.0.93.tar.bz2
  • tolua++-1.0.92.tar.bz2
  • tolua++-1.0.91.tar.bz2
  • tolua++_1.0.7-1.tar.gz [deb]
  • tolua++_1.0.6-1.tar.gz [deb]
  • tolua++_1.0.5-1.tar.gz [deb]
  • tolua++-1.0.4.tar.bz2 [deb]
  • tolua++-1.0.3.tar.bz2
  • tolua++-1.0.2.tar.bz2
  • tolua++-1.0.tar.bz2

    Documentation

    You can find the manual here or under the doc/ directory on the distribution.

    I'll also be adding interesting addons/examples to my page on the lua-users wiki.


    Instalation

    tolua++ uses SCons to build. SCons is based on python, you can get a stand-alone version on their website. After you have SCons, follow this simple instructions:

  • Type 'scons all' to compile.
  • Type 'scons install'. The default install prefix is /usr/local, so if you are on a POSIX system, it should work. On other systems, you can change it with the 'prefix' option on command line.

    scons prefix=/usr install

    or on windows

    scons "prefix=c:\Program Files\Visual C" install

    Use scons -h to see a list of available command line options.

    The files you need (in case you want to do a manual install) are:

    • bin/tolua++[.exe] - the main binary
    • include/tolua++.h - the header file
    • lib/libtolua++.a or lib/tolua++.lib - the library
  • See INSTALL for instructions on how to install without SCons. There are also instructions on how to build without scons at the lua-users wiki (if you know the author of this, contact me)
  • For lua 5.1, see README-5.1
    tolua++ and this website are maintained by Ariel Manzur.
    Contact us with any bugs, fixes, suggestions, or questions about this package.
    tolua++-1.0.93/doc/toluapp.gif0000644000175000017500000001346510343424077015301 0ustar cesarecesareGIF89aPP+ 0888@S`pqUUUUUjUU{llr8888UUUUllqqͥǦ־!+,PPjZVjZVjZVjZVjZVjZVjZVjZjZVjZVjZVjZVjZVjZVjZVjZWjZVjZVjZVjZVjZVjZVjZVjVjZVjZVjZVjZVjZVjZVjZVj\VjZVjZVjZVjZVjZVjZVjZV ZVjZVjZVjZVjZVjZVjZVjZVpZVjZVjZVjZVjZVjZVjZVjZV+jZVjZVjZVjZVjZVjZVjZVjZVjZVjZVjZVjZVjZVjZVjZVjZjZVjZVjZVjZVjZVjZVjZVjZWjZVjZVjZVjZVjZVjZVjZVjVjZVjZVYVjZVjZVjZVjZVj\VjZVjZVjZVjZV+VjZVjZV ZVjZVjZVjZVjZVjZVjZV@pZVjZVjZVjZVjZVjZVjZVjZV+jZVj@ `ZVjZVjZVjZVjZVjZVjZVjZVjZVj@ ZVjZVjZVjZjZVjZVjZVjZVjZV+@ @ jZWjZVjZVjZVjZVjZVjZVjZVB @ jZVjZVjZVjZVjZVjZVj\VjZVj@ @ XVjZVjZVjZV ZVjZVjZVjZVj@ @ VjZVpZVjZVjZVjZVjZVjZVjZV@ jZVjZVjZVjZV@ @ jZVjZV@ jZVjZVjZVjZV@@ VjZVjZA XVjZVjZVjZWjZ @ @ @ jZVjZ VjVjZVjZVjZA @ @ @ YVj\V+jZVjZVjZVjZA @ @ @ @ jZVjjZVjZVjZVj@ @ @ @ @ dZVjjZVjZV+jZVjZA @ @ @ @ YVjZVjZVjZVjZVjZA @ @ @ @@ jZVjZVjZVjZVjZA @ !@ |.@ jZVjZVjZVjZVj @ @ @ QT@ ZVjZVj\VjZVjZ @ @ @ TN@ @VjZVjZVjZVjZ @ @ @ @@@ @ jZVjZVjZVjZ @  @ @ @ "J @ dZVjZVjZVjZV+@ @ @ @J*:@ ZjZVjZVjZV+@ @ @ QT(JRQ*UJ@ @VjZVjZVjZV+@ @ B @T*JRT(JB@ jZVjZVjZV@ @ @ @ O*TRp@ jZV ZVjZV @ @ @ @ TT@ YVjZVjZVj@ @ @ @  J @@ VjZVjZVj@ @ @@ @ @ O @ @VjZVjZjZA @ @ @ @ HRq@ !jZVjZVjZ @ @ @ @ v8@@ @ dZVjZVjZV@ @ @ @ @ @ @ ZVjZVjZV@ @ @ @ @ @ @ VpZVjZV@ @ @ @ @ @  @ @ jZVjZV @ @ @ @ @@ @ @ @ jZVjZVj@ @@ @ @ @ @ @ jZVjZWjZA @ @ @ @ @ @ B ZVjZVjZ @ @ @ @ @ @ @ YVjZVjZV@ @ @ @ @ @ @ VjZVjZV+@ @ @ @ @ @ @ @V+jZVjZV @ @ @ @ @ @ @@ @ jZVjZVj@ @ @ @@ @ @ @ jZVjZVj@ !@ @ @ @ @ @ dZVjVjZ @ @ @ @ @ @ @ YVjZVjZV@ @ @ @ @ @ @ VjZVjZV+@ @ @ D@ @ @ @ @VjZVjZV+ @ bRA @ R5 @ @ @ @ jZVjZVj@ DQ,X,QP,bHDbX @ jZVjZVjZA bQT*bQT*U@ T$RT) @ jZVjZVjZ B,*THE@ *@  H@T ⁑@"'@ dZVj\VjZV@  TQj@@ H *@ $ ZVjZVjZV @ J@T TJ RuJ( JYVjZVjZVj@ E *0@,*`R-:DZ**bRuVjZVjZVjZ bQI  PTR-(A8@jZVjZVjZVT ĢRTEb@<*BRU GPQ@ jZVjZVjZV@@* T*b*JR@IJBYT@RP&C@ jZVjZVjZVj@ d@@ ŢIehT*DX4DŽQ@ jZV ZVjZVjZA By@@jZVjZVjZVjZV$A A  H@ A @jZVjZVjZVjZV@ @@ @ @ @ @ jZVjZVjZjZVj@ @ @ @ @ @ jZWjZVjZVjZVjZ @ @ @ B @ dZVjZVjZVjZVjZV+@ @ @ @ @ dZVjZVjZVjZV ZVj@ @ @ @ @ dZVjZVpZVjZVjZVjZA @ @ @ @  ZVjZVjZVjZVjZVjZV+@ @ @@ @ dZVjZVjZVjZVjZVjZj@ @ @ @ dZVjZVjZVjZWjZVjZVjZ @ @ @ jZVjVjZVjZVjZVjZVjZV @ @ @ jZVjZVjZVjZVjZVjZVjZV ZV@ @VhjZVjZVjZVjZVjZVpZVjZVjZVjZVjZVjZVjZVjZV+jZVjZVA;tolua++-1.0.93/bin/0000755000175000017500000000000011146141660013114 5ustar cesarecesaretolua++-1.0.93/README-5.10000755000175000017500000000311410375731015013531 0ustar cesarecesareCompiling for lua 5.1 --------------------- Starting from version 1.0.8pre1, tolua++ can be compiled with both lua 5.0 and 5.1. Both versions will output the same code, and the C API (tolua++.h) is the same. The build system is not yet ready to detect/decide when to compile for 5.1, the easiest way right now is to add a file called 'custom.py' on the root of the package, with the following: ## BEGIN custom.py CCFLAGS = ['-I/usr/local/include/lua5.1', '-O2', '-ansi'] LIBPATH = ['/usr/local/lib'] LIBS = ['lua5.1', 'dl', 'm'] tolua_bin = 'tolua++5.1' tolua_lib = 'tolua++5.1' TOLUAPP = 'tolua++5.1' ## END custom.py This will build the binary as 'tolua++5.1' and the library as 'libtolua++5.1.a' (taken from tolua_bin and tolua_lib), and take the lua headers and libraries from /usr/local/include/lua5.1 and /usr/local/lib. It will also link with '-llua5.1'. Modify the parameters acording to your system. Compatibility ------------- There are a couple of things to keep in mind when running code inside tolua using the -L option: * `...' and arg: you can still use 'arg' on 5.1, this is done automatically by adding the 'arg' declaration to functions on files loaded with dofile. For example, the line: function foo( ... ) becomes function foo( ... ) local arg = {n=select('#', ...), ...}; This lets you use the same code on both versions without having to make any modifications. * keep in mind that there are slight differences on the way string.gsub works, and the original version of the function is always kept, so it will behave diffently depending on which version of lua you're using. tolua++-1.0.93/custom-5.1.py0000644000175000017500000000033011002755117014524 0ustar cesarecesareCCFLAGS = ['-I/usr/include/lua5.1', '-O2', '-ansi'] #LIBPATH = ['/usr/local/lib'] LIBS = ['lua5.1', 'dl', 'm'] prefix = '/mingw' #build_dev=1 tolua_bin = 'tolua++5.1' tolua_lib = 'tolua++5.1' TOLUAPP = 'tolua++5.1' tolua++-1.0.93/lib/0000755000175000017500000000000011146141660013112 5ustar cesarecesaretolua++-1.0.93/config_posix.py0000644000175000017500000000110010361636225015401 0ustar cesarecesare ## This is the POSIX configuration file (will be included for cygwin, mingw # and possibly mac OSX and BSDs) # use 'scons -h' to see the list of command line options available # flags for the compiler #CCFLAGS = [] CCFLAGS = ['-O2', '-ansi', '-Wall'] # this is the default directory for installation. Files will be installed on # /bin, /lib and /include when you run 'scons install' # # You can also specify this directory on the command line with the 'prefix' # option prefix = '/usr/local' # libraries LIBS = ['lua', 'lualib', 'm'] import os