diff options
Diffstat (limited to 'ThirdParty/tolua-5.2.4/src/bin')
143 files changed, 19117 insertions, 0 deletions
diff --git a/ThirdParty/tolua-5.2.4/src/bin/._Makefile b/ThirdParty/tolua-5.2.4/src/bin/._Makefile Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/._Makefile diff --git a/ThirdParty/tolua-5.2.4/src/bin/._guia.txt b/ThirdParty/tolua-5.2.4/src/bin/._guia.txt Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/._guia.txt diff --git a/ThirdParty/tolua-5.2.4/src/bin/._lua b/ThirdParty/tolua-5.2.4/src/bin/._lua Binary files differnew file mode 100644 index 0000000..bb87e14 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/._lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/._lua-5.0 b/ThirdParty/tolua-5.2.4/src/bin/._lua-5.0 Binary files differnew file mode 100644 index 0000000..bb87e14 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/._lua-5.0 diff --git a/ThirdParty/tolua-5.2.4/src/bin/._lua-5.1-0k b/ThirdParty/tolua-5.2.4/src/bin/._lua-5.1-0k Binary files differnew file mode 100644 index 0000000..bb87e14 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/._lua-5.1-0k diff --git a/ThirdParty/tolua-5.2.4/src/bin/._regenerate_binding b/ThirdParty/tolua-5.2.4/src/bin/._regenerate_binding Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/._regenerate_binding diff --git a/ThirdParty/tolua-5.2.4/src/bin/._tolua.c b/ThirdParty/tolua-5.2.4/src/bin/._tolua.c Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/._tolua.c diff --git a/ThirdParty/tolua-5.2.4/src/bin/._tolua.pkg b/ThirdParty/tolua-5.2.4/src/bin/._tolua.pkg Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/._tolua.pkg diff --git a/ThirdParty/tolua-5.2.4/src/bin/._tolua_bind52_linux30_64.c b/ThirdParty/tolua-5.2.4/src/bin/._tolua_bind52_linux30_64.c Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/._tolua_bind52_linux30_64.c diff --git a/ThirdParty/tolua-5.2.4/src/bin/._toluabind.c b/ThirdParty/tolua-5.2.4/src/bin/._toluabind.c Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/._toluabind.c diff --git a/ThirdParty/tolua-5.2.4/src/bin/Makefile b/ThirdParty/tolua-5.2.4/src/bin/Makefile new file mode 100644 index 0000000..4731778 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/Makefile @@ -0,0 +1,36 @@ +# makefile for tolua executable + +TOLUA=../.. + +include $(TOLUA)/config + +OBJS= \ + tolua.o \ + toluabind.o + +OBJS_D= \ + tolua_lua.o + +T= $(TOLUA)/bin/tolua +T_D = $(TOLUA)/bin/tolua_lua + +all: $(T) + +$(T): $(OBJS) + $(CC) -o $@ $(OBJS) $(LIB) -ltolua -llua -lm + +toluabind.c: $(T_D) + $(T_D) -o toluabind.c tolua.pkg + +$(T_D): $(OBJS_D) + $(CC) -o $@ $(OBJS_D) $(LIB) -ltolua -llua -lm + +tolua_lua.o: tolua.c + $(CC) -c -DLUA_SOURCE $(INC) -o $@ $< + +clean: + rm -f tolua_lua.o $(OBJS) -$(OBJS_D) $(T) $(T_D) + +klean: + rm -f tolua_lua.o $(OBJS) -$(OBJS_D) $(T_D) + diff --git a/ThirdParty/tolua-5.2.4/src/bin/guia.txt b/ThirdParty/tolua-5.2.4/src/bin/guia.txt new file mode 100644 index 0000000..2ab3383 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/guia.txt @@ -0,0 +1,3 @@ +- gerar o executavel 'tolua5lua' (make -C tolua -f VisMakefile lib app -s) +- criar um link em src/tolua/src para o executavel chamado 'tolua5' +- rodar de src/tolua/src/bin: ./regenerate_binding diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._all.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._all.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._all.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._array.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._array.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._array.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._basic.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._basic.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._basic.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._class.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._class.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._class.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._clean.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._clean.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._clean.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._code.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._code.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._code.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._compat.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._compat.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._compat.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._container.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._container.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._container.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._declaration.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._declaration.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._declaration.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._define.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._define.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._define.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._doit.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._doit.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._doit.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._enumerate.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._enumerate.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._enumerate.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._feature.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._feature.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._feature.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._function.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._function.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._function.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._module.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._module.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._module.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._namespace.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._namespace.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._namespace.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._operator.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._operator.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._operator.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._package.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._package.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._package.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._typedef.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._typedef.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._typedef.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._variable.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._variable.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._variable.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._verbatim.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._verbatim.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/._verbatim.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/all.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/all.lua new file mode 100644 index 0000000..eadf600 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/all.lua @@ -0,0 +1,26 @@ +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.."class.lua") +dofile(path.."clean.lua") +dofile(path.."doit.lua") + +local err,msg = pcall(doit) +if not err then + local _,_,label,msg = strfind(msg,"(.-:.-:%s*)(.*)") + tolua_error(msg,label) +end diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/array.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/array.lua new file mode 100644 index 0000000..4980ac4 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/array.lua @@ -0,0 +1,205 @@ +-- tolua: array class +-- Written by Waldemar Celes +-- TeCGraf/PUC-Rio +-- Jul 1999 +-- $Id: array.lua,v 1.1 2009-07-09 13:43:49 fabraham 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("static 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('(',class,'*) ') + 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') + output(' tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1;') + output('#ifndef TOLUA_RELEASE\n') + output(' if (tolua_index<0 || tolua_index>='..self.dim..')') + output(' tolua_error(tolua_S,"array indexing out of range.",NULL);') + output('#endif\n') + + -- return value + local t,ct = isbasic(self.type) + 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(' tolua_pushusertype(tolua_S,(void*)&'..self:getvalue(class,static)..',"',t,'");') + else + output(' tolua_pushusertype(tolua_S,(void*)'..self:getvalue(class,static)..',"',t,'");') + end + end + output(' return 1;') + output('}') + 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("static 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(' ',class,'*','self;') + output(' lua_pushstring(tolua_S,".self");') + output(' lua_rawget(tolua_S,1);') + output(' self = ') + output('(',class,'*) ') + 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') + output(' tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1;') + output('#ifndef TOLUA_RELEASE\n') + output(' if (tolua_index<0 || tolua_index>='..self.dim..')') + 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 + if t=='function' then t='value' end + output('tolua_to'..t,'(tolua_S,3,',def,'));') + else + output('tolua_tousertype(tolua_S,3,',def,'));') + end + output(' return 0;') + output('}') + output('\n') + end + +end + +function classArray:register () + if self.csetname then + output(' tolua_array(tolua_S,"'..self.lname..'",'..self.cgetname..','..self.csetname..');') + else + output(' 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 + + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/basic.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/basic.lua new file mode 100644 index 0000000..0296713 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/basic.lua @@ -0,0 +1,208 @@ +-- tolua: basic utility functions +-- Written by Waldemar Celes +-- TeCGraf/PUC-Rio +-- Jul 1998 +-- Last update: Apr 2003 +-- $Id: basic.lua,v 1.1 2009-07-09 13:43:50 fabraham 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. + + +-- 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', + ['tolua_byte'] = 'number', + ['tolua_ubyte'] = 'number', + ['int'] = 'number', + ['short'] = 'number', + ['long'] = 'number', + ['unsigned'] = 'number', + ['float'] = 'number', + ['double'] = 'number', + ['_cstring'] = 'string', + ['_userdata'] = 'userdata', + ['char*'] = 'string', + ['void*'] = 'userdata', + ['bool'] = 'boolean', + ['lua_State*'] = 'state', + ['_lstate'] = 'state', + ['lua_Object'] = 'value', + ['lua_Function'] = 'function', + ['LUA_VALUE'] = 'value', -- for compatibility with tolua 4.0 +} + +_basic_ctype = { + number = "lua_Number", + string = "const char*", + userdata = "void*", + boolean = "bool", + value = "int", +} + +-- 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 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) + 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 + print(debug.traceback("\n** tolua internal error: "..f..s..".\n\n")) + return + end + _OUTPUT = out +end + +function warning (msg) + 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) + local ft = findtype(t) + if isbasic(t) then + return t + end + if not ft then + return appendusertype(t) + end +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 + 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 + + +-- concatenate strings of a table +function concat (t,f,l) + local s = '' + local i=f + while i<=l do + s = s..t[i] + i = i+1 + if i <= l then s = s..' ' 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 + + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/class.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/class.lua new file mode 100644 index 0000000..2000325 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/class.lua @@ -0,0 +1,120 @@ +-- tolua: class class +-- Written by Waldemar Celes +-- TeCGraf/PUC-Rio +-- Jul 1998 +-- $Id: class.lua,v 1.1 2009-07-09 13:43:50 fabraham 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. + + +-- 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 () + push(self) + if _collect[self.type] then + output('#ifdef __cplusplus\n') + output(' tolua_cclass(tolua_S,"'..self.lname..'","'..self.type..'","'..self.btype..'",'.._collect[self.type]..');') + output('#else\n') + output(' tolua_cclass(tolua_S,"'..self.lname..'","'..self.type..'","'..self.btype..'",NULL);') + output('#endif\n') + else + output(' tolua_cclass(tolua_S,"'..self.lname..'","'..self.type..'","'..self.btype..'",NULL);') + end + output(' tolua_beginmodule(tolua_S,"'..self.lname..'");') + local i=1 + while self[i] do + self[i]:register() + i = i+1 + end + output(' tolua_endmodule(tolua_S);') + pop() +end + +-- return collection requirement +function classClass:requirecollection (t) + 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 + if self._delete then + t[self.type] = "tolua_collect_" .. gsub(self.type,"::","_") + r = true + end + return r +end + +-- output tags +function classClass:decltype () + push(self) + self.type = regtype(self.name) + self.btype = typevar(self.base) + self.ctype = 'const '..self.type + 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 + +-- Internal constructor +function _Class (t) + setmetatable(t,classClass) + t:buildnames() + append(t) + return t +end + +-- Constructor +-- Expects the name, the base and the body of the class. +function Class (n,p,b) + local c = _Class(_Container{name=n, base=p}) + push(c) + c:parse(strsub(b,2,strlen(b)-1)) -- eliminate braces + pop() +end + + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/clean.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/clean.lua new file mode 100644 index 0000000..48ccbe2 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/clean.lua @@ -0,0 +1,75 @@ +-- 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 () " .. s .. " end" + if not dostring(code) then + return nil + 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 + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/code.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/code.lua new file mode 100644 index 0000000..7aee8f3 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/code.lua @@ -0,0 +1,72 @@ +-- tolua: code class +-- Written by Waldemar Celes +-- TeCGraf/PUC-Rio +-- Jul 1999 +-- $Id: code.lua,v 1.1 2009-07-09 13:43:50 fabraham 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. + + +-- 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 () + -- clean Lua code + local s = clean(self.text) + if not s then + error("parser error in embedded code") + end + + -- convert to C + output('\n { /* begin embedded lua code */\n') + output(' static 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 ' end + return format('%3u,%s',strbyte(c),e) + end + ) + output(b..strbyte(" ")) + output('\n };\n') + output(' lua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code");') + output(' } /* end of embedded lua code */\n\n') +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 + + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/compat.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/compat.lua new file mode 100644 index 0000000..45d6ae1 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/compat.lua @@ -0,0 +1,193 @@ +------------------------------------------------------------------- +-- 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 + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/container.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/container.lua new file mode 100644 index 0000000..cab3cbb --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/container.lua @@ -0,0 +1,536 @@ +-- tolua: container abstract class +-- Written by Waldemar Celes +-- TeCGraf/PUC-Rio +-- Jul 1998 +-- $Id: container.lua,v 1.1 2009-07-09 13:43:51 fabraham 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. + +-- 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 () + push(self) + local i=1 + while self[i] do + self[i]:supcode() + 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 (type) + return classContainer.curr:applytypedef(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.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 +end + +-- append usertype: return full type +function classContainer:appendusertype (t) + local container + if t == 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 (type) + if global_typedefs[type] then + local mod1, type1 = global_typedefs[type].mod, global_typedefs[type].type + local mod2, type2 = applytypedef(type1) + return mod2 .. ' ' .. mod1, type2 + end + local basetype = gsub(type,"^.*::","") + local env = self + while env do + if env.typedefs then + local i=1 + while env.typedefs[i] do + if env.typedefs[i].utype == basetype then + local mod1,type1 = env.typedefs[i].mod,env.typedefs[i].type + local mod2,type2 = applytypedef(type1) + return mod2..' '..mod1,type2 + end + i = i+1 + end + end + env = env.parent + end + return '',type +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 + +-- check if is a registered type: return full type or nil +function classContainer:findtype (t) + local curr = self + while curr do + 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 + curr = curr.prox + end + if _basic[t] then + return t + end + return nil +end + + +function classContainer:isenum (type) + if global_enums[type] then + return true + 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 + +-- parse chunk +function classContainer:doparse (s) + + -- 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 verbatim + do + local b,e,line = strfind(s,"^%s*%$(.-\n)") + if b then + Verbatim(line) + return strsub(s,e+1) + 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 = 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%*&:]*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%*&:]*operator)%s*([^%s][^%s]*)%s*(%b())%s*(c?o?n?s?t?)%s*%b{}%s*;?%s*") + 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*") + 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 b then + _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*([~_%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 + 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*;%s*") + if not b then + b,e,name,base,body = strfind(s,"^%s*struct%s*([_%w][_%w@]*)%s*(.-)%s*(%b{})%s*;%s*") + if not b then + b,e,name,base,body = strfind(s,"^%s*union%s*([_%w][_%w@]*)%s*(.-)%s*(%b{})%s*;%s*") + if not b then + base = '' + b,e,body,name = strfind(s,"^%s*typedef%s%s*struct%s*[_%w]*%s*(%b{})%s*([_%w][_%w@]*)%s*;%s*") + if not b then + base = '' + b,e,body,name = strfind(s,"^%s*typedef%s%s*union%s*[_%w]*%s*(%b{})%s*([_%w][_%w@]*)%s*;%s*") + end + end + end + end + end + end + if b then + if base ~= '' then + local b,e + b,e,base = strfind(base,".-([_%w][_%w]*)$") + end + _curr_code = strsub(s,b,e) + Class(name,base,body) + 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) + 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) + while s ~= '' do + s = self:doparse(s) + end +end + + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/declaration.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/declaration.lua new file mode 100644 index 0000000..ae0b5c9 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/declaration.lua @@ -0,0 +1,476 @@ +-- tolua: declaration class +-- Written by Waldemar Celes +-- TeCGraf/PUC-Rio +-- Jul 1998 +-- $Id: declaration.lua,v 1.1 2009-07-09 13:43:54 fabraham 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. + + +-- 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 = t[t.n] + end + + local b,e,d = strfind(self.name,"%[(.-)%]") + if b then + self.name = strsub(self.name,1,b-1) + self.dim = 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 +end + +-- Check declaration type +-- Substitutes typedef's. +function classDeclaration:checktype () + + -- check if there is a pointer to basic type + if isbasic(self.type) and self.ptr~='' then + self.ret = self.ptr + self.ptr = nil + 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 + +-- +-- -- if returning value, automatically set default value +-- if self.ret ~= '' and self.def == '' then +-- self.def = '0' +-- end +-- + +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 == '' then + local type = gsub(self.type,"%s*const%s*","") + t[type] = "tolua_collect_" .. gsub(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,var) + local def + local t = isbasic(self.type) + if self.def~='' then + def = 1 + else + def = 0 + end + if self.dim ~= '' then + if var and self.type=='char' then + return 'tolua_isstring(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 + return 'tolua_isusertype(tolua_S,'..narg..',"'..self.type..'",'..def..',&tolua_err)' + 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 + if self.dim ~= '' then + type = gsub(self.type,'const%s*','') -- eliminates const modifier for arrays + end + local ctype = type + if ctype=="lua_Object" or ctype=="lua_Function" then + ctype = "int" + end + if self.ptr~='' then ptr = '*' end + line = concatparam(line," ",self.mod,ctype,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,' = new',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 + if not t and ptr=='' then line = concatparam(line,'*') end + local ct = type + if t == 'value' or t == 'function' then + ct = 'int' + end + line = concatparam(line,'((',self.mod,ct) + if not t then + line = concatparam(line,'*') + end + line = concatparam(line,') ') + if isenum(type) then + --if not t and isenum(type) then + line = concatparam(line,'(int) ') + end + local def = 0 + if self.def ~= '' then def = self.def end + if t then + if t=='function' then t='value' end + line = concatparam(line,'tolua_to'..t,'(tolua_S,',narg,',',def,'));') + else + line = concatparam(line,'tolua_tousertype(tolua_S,',narg,',',def,'));') + end + end + end + return line +end + +-- Declare variable +function classDeclaration:declare (narg) + if self.dim ~= '' and self.type~='char' 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 + if t=='function' then t='value' end + 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') 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 + if t=='function' then t='value' end + 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 = new',type,'(',self.name,'[i]);') + output(' tolua_pushfieldusertype(tolua_S,',narg,',i+1,tolua_clone(tolua_S,tolua_obj,'.. (_collect[type] or 'NULL') ..'),"',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_clone(tolua_S,tolua_obj,NULL),"',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(' delete []',self.name,';') + output('#else\n') + output(' free(',self.name,');') + output('#endif\n') + end +end + +-- Pass parameter +function classDeclaration:passpar () + if self.ptr=='&' 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 then + if t=='function' then t='value' end + output(' tolua_push'..t..'(tolua_S,(',ct,')'..self.name..');') + else + output(' tolua_pushusertype(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() + return t +end + +-- Constructor +-- Expects the string declaration. +-- The kind of declaration can be "var" or "func". +function Declaration (s,kind) + -- eliminate spaces if default value is provided + s = gsub(s,"%s*=%s*","=") + + if kind == "var" then + -- check the form: void + if s == '' or s == 'void' then + return _Declaration{type = 'void', kind = kind} + end + end + + -- check the form: mod type*& name + local t = split(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*') + return _Declaration{ + name = t[2], + ptr = '*', + ret = '&', + type = m[m.n], + mod = concat(m,1,m.n-1), + kind = kind + } + end + + -- check the form: mod type** name + t = split(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*') + return _Declaration{ + name = t[2], + ptr = '*', + ret = '*', + type = m[m.n], + mod = concat(m,1,m.n-1), + kind = kind + } + end + + -- check the form: mod type& name + t = split(s,'&') + if t.n == 2 then + local m = split(t[1],'%s%s*') + return _Declaration{ + name = t[2], + ptr = '&', + type = m[m.n], + mod = concat(m,1,m.n-1) , + kind = kind + } + end + + -- check the form: mod type* name + local s1 = gsub(s,"(%b\[\])",function (n) return gsub(n,'%*','\1') end) + t = split(s1,'%*') + if t.n == 2 then + t[2] = gsub(t[2],'\1','%*') -- restore * in dimension expression + local m = split(t[1],'%s%s*') + return _Declaration{ + name = t[2], + ptr = '*', + type = m[m.n], + mod = concat(m,1,m.n-1) , + kind = kind + } + end + + if kind == 'var' then + -- check the form: mod type name + t = split(s,'%s%s*') + local v + if findtype(t[t.n]) then v = '' else v = t[t.n]; t.n = t.n-1 end + return _Declaration{ + name = v, + type = t[t.n], + mod = concat(t,1,t.n-1), + kind = kind + } + + else -- kind == "func" + + -- check the form: mod type name + t = split(s,'%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 + return _Declaration{ + name = v, + type = tp, + mod = md, + kind = kind + } + end + +end + + + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/define.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/define.lua new file mode 100644 index 0000000..0e51c0a --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/define.lua @@ -0,0 +1,58 @@ +-- tolua: define class +-- Written by Waldemar Celes +-- TeCGraf/PUC-Rio +-- Jul 1998 +-- $Id: define.lua,v 1.1 2009-07-09 13:43:57 fabraham 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 () + output(' 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 + + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/doit.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/doit.lua new file mode 100644 index 0000000..b6f88d7 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/doit.lua @@ -0,0 +1,63 @@ +-- Generate binding code +-- Written by Waldemar Celes +-- TeCGraf/PUC-Rio +-- Jul 1998 +-- Last update: Apr 2003 +-- $Id: doit.lua,v 1.1 2009-07-09 13:43:59 fabraham 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. + +function doit () + -- define package name, if not provided + if not flags.n then + if flags.f then + flags.n = gsub(flags.f,"%..*","") + else + error("#no package name nor input file provided") + end + 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 + p:preamble() + p:supcode() + p:register() + 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 + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/enumerate.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/enumerate.lua new file mode 100644 index 0000000..42d856d --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/enumerate.lua @@ -0,0 +1,83 @@ +-- tolua: enumerate class +-- Written by Waldemar Celes +-- TeCGraf/PUC-Rio +-- Jul 1998 +-- $Id: enumerate.lua,v 1.1 2009-07-09 13:44:01 fabraham 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 () + local nspace = getnamespace(classContainer.curr) + local i=1 + while self[i] do + output(' tolua_constant(tolua_S,"'..self.lnames[i]..'",'..nspace..self[i]..');') + 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) + setmetatable(t,classEnumerate) + append(t) + appendenum(t) + return t +end + +-- Constructor +-- Expects a string representing the enumerate body +function Enumerate (n,b) + 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 = {} + 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] + i = i+1 + end + e.name = n + if n~="" then + Typedef("int "..n) + end + return _Enumerate(e) +end + + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/feature.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/feature.lua new file mode 100644 index 0000000..d7b0a87 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/feature.lua @@ -0,0 +1,101 @@ +-- tolua: abstract feature class +-- Written by Waldemar Celes +-- TeCGraf/PUC-Rio +-- Jul 1998 +-- $Id: feature.lua,v 1.1 2009-07-09 13:44:02 fabraham 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. + + +-- 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 () +end + +-- translate verbatim +function classFeature:preamble () +end + +-- check if it is a variable +function classFeature:isvariable () + return false +end + +-- checi 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] + if not n[2] then + n[2] = applyrenaming(n[1]) + end + self.lname = n[2] or gsub(n[1],"%[.-%]","") + end + self.name = getonlynamespace() .. self.name +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 + + if self.lname and + strsub(self.lname,1,1)~="." -- operator are named as ".add" + then + return n..'_'..self.lname + else + return n..'_'..self.name + end +end + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/function.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/function.lua new file mode 100644 index 0000000..d748bc0 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/function.lua @@ -0,0 +1,363 @@ +-- tolua: function class +-- Written by Waldemar Celes +-- TeCGraf/PUC-Rio +-- Jul 1998 +-- $Id: function.lua,v 1.1 2009-07-09 13:44:04 fabraham 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. + + + +-- 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%s*','') + 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 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 + output("/* method:",self.name," of class ",class," */") + else + output("/* function:",self.name," */") + end + output("static int",self.cname,"(lua_State* tolua_S)") + 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 = 'tolua_isusertype' + local type = self.parent.type + if self.const ~= '' then + type = self.const .. " " .. type + end + if self.name=='new' or static~=nil then + func = 'tolua_isusertable' + type = self.parent.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 ~= 'state' then + output(' !'..self.args[i]:outchecktype(narg,false)..' ||\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,'*) ') + output('tolua_tousertype(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,"invalid \'self\' in function \''..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 + + -- call function + if class and self.name=='delete' then + output(' tolua_release(tolua_S,self);') + output(' delete self;') + elseif class and self.name == 'operator&[]' then + output(' self->operator[](',self.args[1].name,'-1) = ',self.args[2].name,';') + else + output(' {') + if self.type ~= '' and self.type ~= 'void' then + local ctype = self.type + if ctype == 'value' or ctype == 'function' then + ctype = 'int' + end + output(' ',self.mod,ctype,self.ptr,'tolua_ret = ') + if isbasic(self.type) or self.ptr ~= '' then + output('(',self.mod,ctype,self.ptr,') ') + end + else + output(' ') + end + if class and self.name=='new' then + output('new',self.type,'(') + elseif class and static then + output(class..'::'..self.name,'(') + elseif class then + output('self->'..self.name,'(') + else + output(self.name,'(') + 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[]' then + output('-1);') + else + output(');') + end + + -- return values + if self.type ~= '' and self.type ~= 'void' then + nret = nret + 1 + local t,ct = isbasic(self.type) + if t then + if t=='function' then t='value' end + output(' tolua_push'..t..'(tolua_S,(',ct,')tolua_ret);') + else + t = self.type + if self.ptr == '' then + output(' {') + output('#ifdef __cplusplus\n') + output(' void* tolua_obj = new',t,'(tolua_ret);') + output(' tolua_pushusertype(tolua_S,tolua_clone(tolua_S,tolua_obj,'.. (_collect[t] or 'NULL') ..'),"',t,'");') + output('#else\n') + output(' void* tolua_obj = tolua_copy(tolua_S,(void*)&tolua_ret,sizeof(',t,'));') + output(' tolua_pushusertype(tolua_S,tolua_clone(tolua_S,tolua_obj,NULL),"',t,'");') + output('#endif\n') + output(' }') + elseif self.ptr == '&' then + output(' tolua_pushusertype(tolua_S,(void*)&tolua_ret,"',t,'");') + else + output(' tolua_pushusertype(tolua_S,(void*)tolua_ret,"',t,'");') + 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 + + 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,"#ferror in function \''..self.lname..'\'.",&tolua_err);') + output(' return 0;') + output('#endif\n') + else + output('tolua_lerror:\n') + output(' return '..strsub(self.cname,1,-3)..format("%02d",overload)..'(tolua_S);') + end + output('}') + output('\n') +end + + +-- register function +function classFunction:register () + output(' tolua_function(tolua_S,"'..self.lname..'",'..self.cname..');') +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 a 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_" .. gsub(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 + + + +-- 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 + if t.name == t.parent.name then + t.name = 'new' + t.lname = 'new' + t.type = t.parent.name + t.ptr = '*' + elseif t.name == '~'..t.parent.name 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 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 + local f = Declaration(d,'func') + f.args = l + f.const = c + return _Function(f) +end + + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/module.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/module.lua new file mode 100644 index 0000000..9ca02ec --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/module.lua @@ -0,0 +1,67 @@ +-- tolua: module class +-- Written by Waldemar Celes +-- TeCGraf/PUC-Rio +-- Jul 1998 +-- $Id: module.lua,v 1.1 2009-07-09 13:44:06 fabraham 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. + + + +-- 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 () + push(self) + output(' tolua_module(tolua_S,"'..self.name..'",',self:hasvar(),');') + output(' tolua_beginmodule(tolua_S,"'..self.name..'");') + local i=1 + while self[i] do + self[i]:register() + i = i+1 + end + output(' 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 + + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/namespace.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/namespace.lua new file mode 100644 index 0000000..d882003 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/namespace.lua @@ -0,0 +1,52 @@ +-- tolua: namespace class +-- Written by Waldemar Celes +-- TeCGraf/PUC-Rio +-- Jul 2003 +-- $Id: namespace.lua,v 1.1 2009-07-09 13:44:08 fabraham 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. + + +-- 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 + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/operator.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/operator.lua new file mode 100644 index 0000000..11d8b61 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/operator.lua @@ -0,0 +1,113 @@ +-- tolua: operator class +-- Written by Waldemar Celes +-- TeCGraf/PUC-Rio +-- Jul 1998 +-- $Id: operator.lua,v 1.1 2009-07-09 13:44:09 fabraham 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. + + +-- 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', + } + + +-- 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 + +-- 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] + 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 ref = '' + local t = split(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 = gsub(k,"%s","") + if not _TM[f.kind] then + error("tolua: no support for operator" .. f.kind) + end + f.lname = ".".._TM[f.kind] + if f.kind == '[]' and ref=='&' and f.const~='const' then + Operator(d,'&'..k,a,c) -- create correspoding set operator + end + return _Operator(f) +end + + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/package.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/package.lua new file mode 100644 index 0000000..a63bd28 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/package.lua @@ -0,0 +1,259 @@ +-- tolua: package class +-- Written by Waldemar Celes +-- TeCGraf/PUC-Rio +-- Jul 1998 +-- $Id: package.lua,v 1.1 2009-07-09 13:44:11 fabraham 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. + + + +-- 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 C 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 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 code + self.code = gsub(self.code,"%#%[(%d+)%]%#",function (n) + return L[tonumber(n)] + end) + -- restore embedded 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) +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(' tolua_release(tolua_S,self);') + output(' 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('{') + foreach(_usertype,function(n,v) output(' tolua_usertype(tolua_S,"',v,'");') end) + output('}') + output('\n') +end + +-- register package +-- write package open function +function classPackage:register () + push(self) + output("/* Open function */") + output("TOLUA_API int tolua_"..self.name.."_open (lua_State* tolua_S)") + output("{") + output(" tolua_open(tolua_S);") + output(" tolua_reg_types(tolua_S);") + output(" tolua_module(tolua_S,NULL,",self:hasvar(),");") + output(" tolua_beginmodule(tolua_S,NULL);") + local i=1 + while self[i] do + self[i]:register() + i = i+1 + end + output(" tolua_endmodule(tolua_S);") + output(" return 1;") + output("}") + 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 + if fn then + local st, msg = readfrom(flags.f) + if not st then + error('#'..msg) + end + local _; _, _, ext = strfind(fn,".*%.(.*)$") + end + local code = "\n" .. read('*a') + if ext == 'h' or ext == 'hpp' then + code = extract_code(fn,code) + end + + -- close file + if fn then + readfrom() + end + + -- deal with renaming directive + code = gsub(code,'%s*%$renaming%s*(.-)%s*\n', function (r) appendrenaming(r) return "\n" end) + + -- deal with include directive + local nsubst + repeat + code,nsubst = gsub(code,'\n%s*%$(.)file%s*"(.-)"%s*\n', + function (kind,fn) + local _, _, ext = strfind(fn,".*%.(.*)$") + local fp,msg = openfile(fn,'r') + if not fp then + error('#'..msg..': '..fn) + end + local s = read(fp,'*a') + closefile(fp) + if kind == 'c' or kind == 'h' then + return extract_code(fn,s) + elseif kind == 'p' then + return "\n\n" .. s + elseif kind == 'l' then + return "\n$[\n" .. s .. "\n$]\n" + else + error('#Invalid include directive (use $cfile, $pfile or $lfile)') + end + end) + until nsubst==0 + + local t = _Package(_Container{name=name, code=code}) + push(t) + t:preprocess() + t:parse(t.code) + pop() + return t +end + + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/typedef.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/typedef.lua new file mode 100644 index 0000000..440bccc --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/typedef.lua @@ -0,0 +1,68 @@ +-- tolua: typedef class +-- Written by Waldemar Celes +-- TeCGraf/PUC-Rio +-- Jul 1998 +-- $Id: typedef.lua,v 1.1 2009-07-09 13:44:14 fabraham 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. + + + +-- 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) + appendtypedef(t) + return t +end + +-- Constructor +-- Expects one string representing the type definition. +function Typedef (s) + if strfind(s,'[%*&]') then + tolua_error("#invalid typedef: pointers (and references) are not supported") + end + local t = split(gsub(s,"%s%s*"," ")," ") + if not isbasic(t[t.n]) then + return _Typedef { + utype = t[t.n], + type = t[t.n-1], + mod = concat(t,1,t.n-2), + } + else + return nil + end +end + + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/variable.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/variable.lua new file mode 100644 index 0000000..176f739 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/variable.lua @@ -0,0 +1,253 @@ +-- tolua: variable class +-- Written by Waldemar Celes +-- TeCGraf/PUC-Rio +-- Jul 1998 +-- $Id: variable.lua,v 1.1 2009-07-09 13:44:18 fabraham 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. + + +-- 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 + parent = "_" .. p + 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.name,".*::","") .. ptr + + return name + +end + +-- check if it is a variable +function classVariable:isvariable () + return true +end + +-- get variable value +function classVariable:getvalue (class,static) + if class and static then + return class..'::'..self.name + elseif class then + return 'self->'..self.name + else + return self.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() + + -- get function ------------------------------------------------ + if class then + output("/* get function:",self.name," of class ",class," */") + self.cgetname = self:cfuncname("tolua_get_"..class) + else + output("/* get function:",self.name," */") + self.cgetname = self:cfuncname("tolua_get") + end + + output("static 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(' ',class,'*','self = ') + output('(',class,'*) ') + output('tolua_tousertype(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,"invalid \'self\' in accessing variable \''..self.name..'\'",NULL);'); + output('#endif\n') + end + + -- return value + local type = self.type + if gsub(type,'const ','')=='char' and self.dim~='' then + type = 'char*' + end + local t,ct = isbasic(type) + 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(' tolua_pushusertype(tolua_S,(void*)&'..self:getvalue(class,static)..',"',t,'");') + else + output(' tolua_pushusertype(tolua_S,(void*)'..self:getvalue(class,static)..',"',t,'");') + end + end + output(' return 1;') + output('}') + output('\n') + + -- set function ------------------------------------------------ + if not strfind(self.type,'const') then + if class then + output("/* set function:",self.name," of class ",class," */") + self.csetname = self:cfuncname("tolua_set_"..class) + else + output("/* set function:",self.name," */") + self.csetname = self:cfuncname("tolua_set") + end + output("static int",self.csetname,"(lua_State* tolua_S)") + output("{") + + -- declare self, if the case + if class and static==nil then + output(' ',class,'*','self = ') + output('(',class,'*) ') + output('tolua_tousertype(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,"invalid \'self\' in accessing variable \''..self.name..'\'",NULL);'); + elseif static then + _,_,self.mod = strfind(self.mod,'^%s*static%s%s*(.*)') + end + + -- check variable type + output(' if (!'..self:outchecktype(2,true)..')') + 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(') + if class and static then + output(class..'::'..self.name) + elseif class then + output('self->'..self.name) + else + output(self.name) + end + output(',tolua_tostring(tolua_S,2,',def,'),',self.dim,'-1);') + else + local ptr = '' + if self.ptr~='' then ptr = '*' end + output(' ') + if class and static then + output(class..'::'..self.name) + elseif class then + output('self->'..self.name) + else + output(self.name) + 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(') ') + if t then + if isenum(self.type) then + output('(int) ') + end + if t=='function' then t='value' end + output('tolua_to'..t,'(tolua_S,2,',def,'));') + else + output('tolua_tousertype(tolua_S,2,',def,'));') + end + end + output(' return 0;') + output('}') + output('\n') + end + +end + +function classVariable:register () + 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(' tolua_variable(tolua_S,"'..self.lname..'",'..self.cgetname..','..self.csetname..');') + else + output(' 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 + + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/verbatim.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/verbatim.lua new file mode 100644 index 0000000..55ef003 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.0/verbatim.lua @@ -0,0 +1,76 @@ +-- tolua: verbatim class +-- Written by Waldemar Celes +-- TeCGraf/PUC-Rio +-- Jul 1998 +-- $Id: verbatim.lua,v 1.1 2009-07-09 13:44:20 fabraham 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 () + 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 + cond = 'sr' -- generates in both suport and register fragments + l = strsub(l,2) + end + return _Verbatim { + line = l, + cond = cond or '', + } +end + + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._all.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._all.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._all.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._array.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._array.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._array.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._basic.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._basic.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._basic.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._class.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._class.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._class.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._clean.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._clean.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._clean.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._code.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._code.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._code.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._compat.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._compat.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._compat.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._container.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._container.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._container.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._declaration.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._declaration.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._declaration.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._define.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._define.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._define.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._doit.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._doit.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._doit.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._enumerate.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._enumerate.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._enumerate.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._feature.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._feature.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._feature.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._function.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._function.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._function.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._module.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._module.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._module.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._namespace.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._namespace.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._namespace.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._operator.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._operator.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._operator.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._package.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._package.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._package.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._typedef.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._typedef.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._typedef.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._variable.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._variable.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._variable.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._verbatim.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._verbatim.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/._verbatim.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/all.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/all.lua new file mode 100644 index 0000000..eadf600 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/all.lua @@ -0,0 +1,26 @@ +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.."class.lua") +dofile(path.."clean.lua") +dofile(path.."doit.lua") + +local err,msg = pcall(doit) +if not err then + local _,_,label,msg = strfind(msg,"(.-:.-:%s*)(.*)") + tolua_error(msg,label) +end diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/array.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/array.lua new file mode 100644 index 0000000..8e53e6d --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/array.lua @@ -0,0 +1,205 @@ +-- tolua: array class +-- Written by Waldemar Celes +-- TeCGraf/PUC-Rio +-- Jul 1999 +-- $Id: array.lua,v 1.1 2009-07-09 13:44:25 fabraham 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("static 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('(',class,'*) ') + 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') + output(' tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1;') + output('#ifndef TOLUA_RELEASE\n') + output(' if (tolua_index<0 || tolua_index>='..self.dim..')') + output(' tolua_error(tolua_S,"array indexing out of range.",NULL);') + output('#endif\n') + + -- return value + local t,ct = isbasic(self.type) + 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(' tolua_pushusertype(tolua_S,(void*)&'..self:getvalue(class,static)..',"',t,'");') + else + output(' tolua_pushusertype(tolua_S,(void*)'..self:getvalue(class,static)..',"',t,'");') + end + end + output(' return 1;') + output('}') + 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("static 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(' ',class,'*','self;') + output(' lua_pushstring(tolua_S,".self");') + output(' lua_rawget(tolua_S,1);') + output(' self = ') + output('(',class,'*) ') + 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') + output(' tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1;') + output('#ifndef TOLUA_RELEASE\n') + output(' if (tolua_index<0 || tolua_index>='..self.dim..')') + 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 + if t=='function' then t='value' end + output('tolua_to'..t,'(tolua_S,3,',def,'));') + else + output('tolua_tousertype(tolua_S,3,',def,'));') + end + output(' return 0;') + output('}') + output('\n') + end + +end + +function classArray:register () + if self.csetname then + output(' tolua_array(tolua_S,"'..self.lname..'",'..self.cgetname..','..self.csetname..');') + else + output(' 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 + + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/basic.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/basic.lua new file mode 100644 index 0000000..fa075b4 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/basic.lua @@ -0,0 +1,208 @@ +-- tolua: basic utility functions +-- Written by Waldemar Celes +-- TeCGraf/PUC-Rio +-- Jul 1998 +-- Last update: Apr 2003 +-- $Id: basic.lua,v 1.1 2009-07-09 13:44:28 fabraham 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. + + +-- 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', + ['tolua_byte'] = 'number', + ['tolua_ubyte'] = 'number', + ['int'] = 'number', + ['short'] = 'number', + ['long'] = 'number', + ['unsigned'] = 'number', + ['float'] = 'number', + ['double'] = 'number', + ['_cstring'] = 'string', + ['_userdata'] = 'userdata', + ['char*'] = 'string', + ['void*'] = 'userdata', + ['bool'] = 'boolean', + ['lua_State*'] = 'state', + ['_lstate'] = 'state', + ['lua_Object'] = 'value', + ['lua_Function'] = 'function', + ['LUA_VALUE'] = 'value', -- for compatibility with tolua 4.0 +} + +_basic_ctype = { + number = "lua_Number", + string = "const char*", + userdata = "void*", + boolean = "bool", + value = "int", +} + +-- 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 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) + 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 + print(debug.traceback("\n** tolua internal error: "..f..s..".\n\n")) + return + end + _OUTPUT = out +end + +function warning (msg) + 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) + local ft = findtype(t) + if isbasic(t) then + return t + end + if not ft then + return appendusertype(t) + end +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 + 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 + + +-- concatenate strings of a table +function concat (t,f,l) + local s = '' + local i=f + while i<=l do + s = s..t[i] + i = i+1 + if i <= l then s = s..' ' 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 + + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/class.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/class.lua new file mode 100644 index 0000000..2ad8002 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/class.lua @@ -0,0 +1,120 @@ +-- tolua: class class +-- Written by Waldemar Celes +-- TeCGraf/PUC-Rio +-- Jul 1998 +-- $Id: class.lua,v 1.1 2009-07-09 13:44:29 fabraham 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. + + +-- 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 () + push(self) + if _collect[self.type] then + output('#ifdef __cplusplus\n') + output(' tolua_cclass(tolua_S,"'..self.lname..'","'..self.type..'","'..self.btype..'",'.._collect[self.type]..');') + output('#else\n') + output(' tolua_cclass(tolua_S,"'..self.lname..'","'..self.type..'","'..self.btype..'",NULL);') + output('#endif\n') + else + output(' tolua_cclass(tolua_S,"'..self.lname..'","'..self.type..'","'..self.btype..'",NULL);') + end + output(' tolua_beginmodule(tolua_S,"'..self.lname..'");') + local i=1 + while self[i] do + self[i]:register() + i = i+1 + end + output(' tolua_endmodule(tolua_S);') + pop() +end + +-- return collection requirement +function classClass:requirecollection (t) + 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 + if self._delete then + t[self.type] = "tolua_collect_" .. gsub(self.type,"::","_") + r = true + end + return r +end + +-- output tags +function classClass:decltype () + push(self) + self.type = regtype(self.name) + self.btype = typevar(self.base) + self.ctype = 'const '..self.type + 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 + +-- Internal constructor +function _Class (t) + setmetatable(t,classClass) + t:buildnames() + append(t) + return t +end + +-- Constructor +-- Expects the name, the base and the body of the class. +function Class (n,p,b) + local c = _Class(_Container{name=n, base=p}) + push(c) + c:parse(strsub(b,2,strlen(b)-1)) -- eliminate braces + pop() +end + + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/clean.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/clean.lua new file mode 100644 index 0000000..48ccbe2 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/clean.lua @@ -0,0 +1,75 @@ +-- 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 () " .. s .. " end" + if not dostring(code) then + return nil + 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 + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/code.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/code.lua new file mode 100644 index 0000000..fcd9358 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/code.lua @@ -0,0 +1,73 @@ +-- tolua: code class +-- Written by Waldemar Celes +-- TeCGraf/PUC-Rio +-- Jul 1999 +-- $Id: code.lua,v 1.1 2009-07-09 13:44:32 fabraham 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. + + +-- 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 () + -- clean Lua code + local s = clean(self.text) + if not s then + error("parser error in embedded code") + end + + -- convert to C + output('\n { /* begin embedded lua code */\n') + output(' static 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 ' end + return format('%3u,%s',strbyte(c),e) + end + ) + output(b..strbyte(" ")) + output('\n };\n') + output(' luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") ||\n') + output(' lua_pcall(tolua_S,0,LUA_MULTRET,0);') + output(' } /* end of embedded lua code */\n\n') +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 + + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/compat.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/compat.lua new file mode 100644 index 0000000..45d6ae1 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/compat.lua @@ -0,0 +1,193 @@ +------------------------------------------------------------------- +-- 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 + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/container.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/container.lua new file mode 100644 index 0000000..30fb605 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/container.lua @@ -0,0 +1,536 @@ +-- tolua: container abstract class +-- Written by Waldemar Celes +-- TeCGraf/PUC-Rio +-- Jul 1998 +-- $Id: container.lua,v 1.1 2009-07-09 13:44:35 fabraham 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. + +-- 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 () + push(self) + local i=1 + while self[i] do + self[i]:supcode() + 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 (type) + return classContainer.curr:applytypedef(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.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 +end + +-- append usertype: return full type +function classContainer:appendusertype (t) + local container + if t == 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 (type) + if global_typedefs[type] then + local mod1, type1 = global_typedefs[type].mod, global_typedefs[type].type + local mod2, type2 = applytypedef(type1) + return mod2 .. ' ' .. mod1, type2 + end + local basetype = gsub(type,"^.*::","") + local env = self + while env do + if env.typedefs then + local i=1 + while env.typedefs[i] do + if env.typedefs[i].utype == basetype then + local mod1,type1 = env.typedefs[i].mod,env.typedefs[i].type + local mod2,type2 = applytypedef(type1) + return mod2..' '..mod1,type2 + end + i = i+1 + end + end + env = env.parent + end + return '',type +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 + +-- check if is a registered type: return full type or nil +function classContainer:findtype (t) + local curr = self + while curr do + 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 + curr = curr.prox + end + if _basic[t] then + return t + end + return nil +end + + +function classContainer:isenum (type) + if global_enums[type] then + return true + 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 + +-- parse chunk +function classContainer:doparse (s) + + -- 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 verbatim + do + local b,e,line = strfind(s,"^%s*%$(.-\n)") + if b then + Verbatim(line) + return strsub(s,e+1) + 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 = 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%*&:]*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%*&:]*operator)%s*([^%s][^%s]*)%s*(%b())%s*(c?o?n?s?t?)%s*%b{}%s*;?%s*") + 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*") + 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 b then + _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*([~_%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 + 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*;%s*") + if not b then + b,e,name,base,body = strfind(s,"^%s*struct%s*([_%w][_%w@]*)%s*(.-)%s*(%b{})%s*;%s*") + if not b then + b,e,name,base,body = strfind(s,"^%s*union%s*([_%w][_%w@]*)%s*(.-)%s*(%b{})%s*;%s*") + if not b then + base = '' + b,e,body,name = strfind(s,"^%s*typedef%s%s*struct%s*[_%w]*%s*(%b{})%s*([_%w][_%w@]*)%s*;%s*") + if not b then + base = '' + b,e,body,name = strfind(s,"^%s*typedef%s%s*union%s*[_%w]*%s*(%b{})%s*([_%w][_%w@]*)%s*;%s*") + end + end + end + end + end + end + if b then + if base ~= '' then + local b,e + b,e,base = strfind(base,".-([_%w][_%w]*)$") + end + _curr_code = strsub(s,b,e) + Class(name,base,body) + 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) + 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) + while s ~= '' do + s = self:doparse(s) + end +end + + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/declaration.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/declaration.lua new file mode 100644 index 0000000..d1efda8 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/declaration.lua @@ -0,0 +1,476 @@ +-- tolua: declaration class +-- Written by Waldemar Celes +-- TeCGraf/PUC-Rio +-- Jul 1998 +-- $Id: declaration.lua,v 1.1 2009-07-09 13:44:37 fabraham 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. + + +-- 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 = t[t.n] + end + + local b,e,d = strfind(self.name,"%[(.-)%]") + if b then + self.name = strsub(self.name,1,b-1) + self.dim = 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 + end + +-- Check declaration type +-- Substitutes typedef's. +function classDeclaration:checktype () + + -- check if there is a pointer to basic type + if isbasic(self.type) and self.ptr~='' then + self.ret = self.ptr + self.ptr = nil + 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 + +-- +-- -- if returning value, automatically set default value +-- if self.ret ~= '' and self.def == '' then +-- self.def = '0' +-- end +-- + +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 == '' then + local type = gsub(self.type,"%s*const%s*","") + t[type] = "tolua_collect_" .. gsub(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,var) + local def + local t = isbasic(self.type) + if self.def~='' then + def = 1 + else + def = 0 + end + if self.dim ~= '' then + if var and self.type=='char' then + return 'tolua_isstring(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 + return 'tolua_isusertype(tolua_S,'..narg..',"'..self.type..'",'..def..',&tolua_err)' + 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 + if self.dim ~= '' then + type = gsub(self.type,'const%s*','') -- eliminates const modifier for arrays + end + local ctype = type + if ctype=="lua_Object" or ctype=="lua_Function" then + ctype = "int" + end + if self.ptr~='' then ptr = '*' end + line = concatparam(line," ",self.mod,ctype,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,' = new',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 + if not t and ptr=='' then line = concatparam(line,'*') end + local ct = type + if t == 'value' or t == 'function' then + ct = 'int' + end + line = concatparam(line,'((',self.mod,ct) + if not t then + line = concatparam(line,'*') + end + line = concatparam(line,') ') + if isenum(type) then + --if not t and isenum(type) then + line = concatparam(line,'(int) ') + end + local def = 0 + if self.def ~= '' then def = self.def end + if t then + if t=='function' then t='value' end + line = concatparam(line,'tolua_to'..t,'(tolua_S,',narg,',',def,'));') + else + line = concatparam(line,'tolua_tousertype(tolua_S,',narg,',',def,'));') + end + end + end + return line +end + +-- Declare variable +function classDeclaration:declare (narg) + if self.dim ~= '' and self.type~='char' 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 + if t=='function' then t='value' end + 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') 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 + if t=='function' then t='value' end + 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 = new',type,'(',self.name,'[i]);') + output(' tolua_pushfieldusertype(tolua_S,',narg,',i+1,tolua_clone(tolua_S,tolua_obj,'.. (_collect[type] or 'NULL') ..'),"',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_clone(tolua_S,tolua_obj,NULL),"',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(' delete []',self.name,';') + output('#else\n') + output(' free(',self.name,');') + output('#endif\n') + end +end + +-- Pass parameter +function classDeclaration:passpar () + if self.ptr=='&' 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 then + if t=='function' then t='value' end + output(' tolua_push'..t..'(tolua_S,(',ct,')'..self.name..');') + else + output(' tolua_pushusertype(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() + return t +end + +-- Constructor +-- Expects the string declaration. +-- The kind of declaration can be "var" or "func". +function Declaration (s,kind) + -- eliminate spaces if default value is provided + s = gsub(s,"%s*=%s*","=") + + if kind == "var" then + -- check the form: void + if s == '' or s == 'void' then + return _Declaration{type = 'void', kind = kind} + end + end + + -- check the form: mod type*& name + local t = split(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*') + return _Declaration{ + name = t[2], + ptr = '*', + ret = '&', + type = m[m.n], + mod = concat(m,1,m.n-1), + kind = kind + } + end + + -- check the form: mod type** name + t = split(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*') + return _Declaration{ + name = t[2], + ptr = '*', + ret = '*', + type = m[m.n], + mod = concat(m,1,m.n-1), + kind = kind + } + end + + -- check the form: mod type& name + t = split(s,'&') + if t.n == 2 then + local m = split(t[1],'%s%s*') + return _Declaration{ + name = t[2], + ptr = '&', + type = m[m.n], + mod = concat(m,1,m.n-1) , + kind = kind + } + end + + -- check the form: mod type* name + local s1 = gsub(s,"(%b\[\])",function (n) return gsub(n,'%*','\1') end) + t = split(s1,'%*') + if t.n == 2 then + t[2] = gsub(t[2],'\1','%*') -- restore * in dimension expression + local m = split(t[1],'%s%s*') + return _Declaration{ + name = t[2], + ptr = '*', + type = m[m.n], + mod = concat(m,1,m.n-1) , + kind = kind + } + end + + if kind == 'var' then + -- check the form: mod type name + t = split(s,'%s%s*') + local v + if findtype(t[t.n]) then v = '' else v = t[t.n]; t.n = t.n-1 end + return _Declaration{ + name = v, + type = t[t.n], + mod = concat(t,1,t.n-1), + kind = kind + } + + else -- kind == "func" + + -- check the form: mod type name + t = split(s,'%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 + return _Declaration{ + name = v, + type = tp, + mod = md, + kind = kind + } + end + +end + + + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/define.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/define.lua new file mode 100644 index 0000000..0ee362a --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/define.lua @@ -0,0 +1,58 @@ +-- tolua: define class +-- Written by Waldemar Celes +-- TeCGraf/PUC-Rio +-- Jul 1998 +-- $Id: define.lua,v 1.1 2009-07-09 13:44:38 fabraham 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 () + output(' 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 + + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/doit.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/doit.lua new file mode 100644 index 0000000..0c9ac09 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/doit.lua @@ -0,0 +1,63 @@ +-- Generate binding code +-- Written by Waldemar Celes +-- TeCGraf/PUC-Rio +-- Jul 1998 +-- Last update: Apr 2003 +-- $Id: doit.lua,v 1.1 2009-07-09 13:44:40 fabraham 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. + +function doit () + -- define package name, if not provided + if not flags.n then + if flags.f then + flags.n = gsub(flags.f,"%..*","") + else + error("#no package name nor input file provided") + end + 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 + p:preamble() + p:supcode() + p:register() + 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 + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/enumerate.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/enumerate.lua new file mode 100644 index 0000000..c527da0 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/enumerate.lua @@ -0,0 +1,83 @@ +-- tolua: enumerate class +-- Written by Waldemar Celes +-- TeCGraf/PUC-Rio +-- Jul 1998 +-- $Id: enumerate.lua,v 1.1 2009-07-09 13:44:42 fabraham 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 () + local nspace = getnamespace(classContainer.curr) + local i=1 + while self[i] do + output(' tolua_constant(tolua_S,"'..self.lnames[i]..'",'..nspace..self[i]..');') + 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) + setmetatable(t,classEnumerate) + append(t) + appendenum(t) + return t +end + +-- Constructor +-- Expects a string representing the enumerate body +function Enumerate (n,b) + 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 = {} + 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] + i = i+1 + end + e.name = n + if n~="" then + Typedef("int "..n) + end + return _Enumerate(e) +end + + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/feature.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/feature.lua new file mode 100644 index 0000000..cadfb12 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/feature.lua @@ -0,0 +1,101 @@ +-- tolua: abstract feature class +-- Written by Waldemar Celes +-- TeCGraf/PUC-Rio +-- Jul 1998 +-- $Id: feature.lua,v 1.1 2009-07-09 13:44:43 fabraham 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. + + +-- 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 () +end + +-- translate verbatim +function classFeature:preamble () +end + +-- check if it is a variable +function classFeature:isvariable () + return false +end + +-- checi 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] + if not n[2] then + n[2] = applyrenaming(n[1]) + end + self.lname = n[2] or gsub(n[1],"%[.-%]","") + end + self.name = getonlynamespace() .. self.name +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 + + if self.lname and + strsub(self.lname,1,1)~="." -- operator are named as ".add" + then + return n..'_'..self.lname + else + return n..'_'..self.name + end +end + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/function.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/function.lua new file mode 100644 index 0000000..c01dc0f --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/function.lua @@ -0,0 +1,363 @@ +-- tolua: function class +-- Written by Waldemar Celes +-- TeCGraf/PUC-Rio +-- Jul 1998 +-- $Id: function.lua,v 1.1 2009-07-09 13:44:46 fabraham 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. + + + +-- 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%s*','') + 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 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 + output("/* method:",self.name," of class ",class," */") + else + output("/* function:",self.name," */") + end + output("static int",self.cname,"(lua_State* tolua_S)") + 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 = 'tolua_isusertype' + local type = self.parent.type + if self.const ~= '' then + type = self.const .. " " .. type + end + if self.name=='new' or static~=nil then + func = 'tolua_isusertable' + type = self.parent.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 ~= 'state' then + output(' !'..self.args[i]:outchecktype(narg,false)..' ||\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,'*) ') + output('tolua_tousertype(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,"invalid \'self\' in function \''..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 + + -- call function + if class and self.name=='delete' then + output(' tolua_release(tolua_S,self);') + output(' delete self;') + elseif class and self.name == 'operator&[]' then + output(' self->operator[](',self.args[1].name,'-1) = ',self.args[2].name,';') + else + output(' {') + if self.type ~= '' and self.type ~= 'void' then + local ctype = self.type + if ctype == 'value' or ctype == 'function' then + ctype = 'int' + end + output(' ',self.mod,ctype,self.ptr,'tolua_ret = ') + if isbasic(self.type) or self.ptr ~= '' then + output('(',self.mod,ctype,self.ptr,') ') + end + else + output(' ') + end + if class and self.name=='new' then + output('new',self.type,'(') + elseif class and static then + output(class..'::'..self.name,'(') + elseif class then + output('self->'..self.name,'(') + else + output(self.name,'(') + 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[]' then + output('-1);') + else + output(');') + end + + -- return values + if self.type ~= '' and self.type ~= 'void' then + nret = nret + 1 + local t,ct = isbasic(self.type) + if t then + if t=='function' then t='value' end + output(' tolua_push'..t..'(tolua_S,(',ct,')tolua_ret);') + else + t = self.type + if self.ptr == '' then + output(' {') + output('#ifdef __cplusplus\n') + output(' void* tolua_obj = new',t,'(tolua_ret);') + output(' tolua_pushusertype(tolua_S,tolua_clone(tolua_S,tolua_obj,'.. (_collect[t] or 'NULL') ..'),"',t,'");') + output('#else\n') + output(' void* tolua_obj = tolua_copy(tolua_S,(void*)&tolua_ret,sizeof(',t,'));') + output(' tolua_pushusertype(tolua_S,tolua_clone(tolua_S,tolua_obj,NULL),"',t,'");') + output('#endif\n') + output(' }') + elseif self.ptr == '&' then + output(' tolua_pushusertype(tolua_S,(void*)&tolua_ret,"',t,'");') + else + output(' tolua_pushusertype(tolua_S,(void*)tolua_ret,"',t,'");') + 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 + + 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,"#ferror in function \''..self.lname..'\'.",&tolua_err);') + output(' return 0;') + output('#endif\n') + else + output('tolua_lerror:\n') + output(' return '..strsub(self.cname,1,-3)..format("%02d",overload)..'(tolua_S);') + end + output('}') + output('\n') +end + + +-- register function +function classFunction:register () + output(' tolua_function(tolua_S,"'..self.lname..'",'..self.cname..');') +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 a 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_" .. gsub(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 + + + +-- 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 + if t.name == t.parent.name then + t.name = 'new' + t.lname = 'new' + t.type = t.parent.name + t.ptr = '*' + elseif t.name == '~'..t.parent.name 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 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 + local f = Declaration(d,'func') + f.args = l + f.const = c + return _Function(f) +end + + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/module.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/module.lua new file mode 100644 index 0000000..a055849 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/module.lua @@ -0,0 +1,67 @@ +-- tolua: module class +-- Written by Waldemar Celes +-- TeCGraf/PUC-Rio +-- Jul 1998 +-- $Id: module.lua,v 1.1 2009-07-09 13:44:48 fabraham 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. + + + +-- 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 () + push(self) + output(' tolua_module(tolua_S,"'..self.name..'",',self:hasvar(),');') + output(' tolua_beginmodule(tolua_S,"'..self.name..'");') + local i=1 + while self[i] do + self[i]:register() + i = i+1 + end + output(' 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 + + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/namespace.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/namespace.lua new file mode 100644 index 0000000..59b4266 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/namespace.lua @@ -0,0 +1,52 @@ +-- tolua: namespace class +-- Written by Waldemar Celes +-- TeCGraf/PUC-Rio +-- Jul 2003 +-- $Id: namespace.lua,v 1.1 2009-07-09 13:44:50 fabraham 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. + + +-- 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 + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/operator.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/operator.lua new file mode 100644 index 0000000..0c92c3f --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/operator.lua @@ -0,0 +1,113 @@ +-- tolua: operator class +-- Written by Waldemar Celes +-- TeCGraf/PUC-Rio +-- Jul 1998 +-- $Id: operator.lua,v 1.1 2009-07-09 13:44:51 fabraham 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. + + +-- 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', + } + + +-- 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 + +-- 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] + 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 ref = '' + local t = split(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 = gsub(k,"%s","") + if not _TM[f.kind] then + error("tolua: no support for operator" .. f.kind) + end + f.lname = ".".._TM[f.kind] + if f.kind == '[]' and ref=='&' and f.const~='const' then + Operator(d,'&'..k,a,c) -- create correspoding set operator + end + return _Operator(f) +end + + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/package.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/package.lua new file mode 100644 index 0000000..d03921f --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/package.lua @@ -0,0 +1,274 @@ +-- tolua: package class +-- Written by Waldemar Celes +-- TeCGraf/PUC-Rio +-- Jul 1998 +-- $Id: package.lua,v 1.1 2009-07-09 13:44:53 fabraham 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. + + + +-- 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 C 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 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 code + self.code = gsub(self.code,"%#%[(%d+)%]%#",function (n) + return L[tonumber(n)] + end) + -- restore embedded 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) +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('LUALIB_API int luaopen_'..self.name..' (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(' tolua_release(tolua_S,self);') + output(' 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('{') + foreach(_usertype,function(n,v) output(' tolua_usertype(tolua_S,"',v,'");') end) + output('}') + output('\n') +end + +-- register package +-- write package open function +function classPackage:register () + push(self) + + output("/* Open lib function */") + output('LUALIB_API int luaopen_'..self.name..' (lua_State* tolua_S)') + output("{") + output(" tolua_open(tolua_S);") + output(" tolua_reg_types(tolua_S);") + output(" tolua_module(tolua_S,NULL,",self:hasvar(),");") + output(" tolua_beginmodule(tolua_S,NULL);") + local i=1 + while self[i] do + self[i]:register() + i = i+1 + end + output(" tolua_endmodule(tolua_S);") + output(" return 1;") + output("}") + + output("/* Open tolua function */") + output("TOLUA_API int tolua_"..self.name.."_open (lua_State* tolua_S)") + output("{") + output(" lua_pushcfunction(tolua_S, luaopen_"..self.name..");") + output(' lua_pushstring(tolua_S, "'..self.name..'");') + output(" lua_call(tolua_S, 1, 0);") + output(" return 1;") + output("}") + + 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('LUALIB_API int luaopen_'..self.name..' (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 + if fn then + local st, msg = readfrom(flags.f) + if not st then + error('#'..msg) + end + local _; _, _, ext = strfind(fn,".*%.(.*)$") + end + local code = "\n" .. read('*a') + if ext == 'h' or ext == 'hpp' then + code = extract_code(fn,code) + end + + -- close file + if fn then + readfrom() + end + + -- deal with renaming directive + code = gsub(code,'%s*%$renaming%s*(.-)%s*\n', function (r) appendrenaming(r) return "\n" end) + + -- deal with include directive + local nsubst + repeat + code,nsubst = gsub(code,'\n%s*%$(.)file%s*"(.-)"%s*\n', + function (kind,fn) + local _, _, ext = strfind(fn,".*%.(.*)$") + local fp,msg = openfile(fn,'r') + if not fp then + error('#'..msg..': '..fn) + end + local s = read(fp,'*a') + closefile(fp) + if kind == 'c' or kind == 'h' then + return extract_code(fn,s) + elseif kind == 'p' then + return "\n\n" .. s + elseif kind == 'l' then + return "\n$[\n" .. s .. "\n$]\n" + else + error('#Invalid include directive (use $cfile, $pfile or $lfile)') + end + end) + until nsubst==0 + + local t = _Package(_Container{name=name, code=code}) + push(t) + t:preprocess() + t:parse(t.code) + pop() + return t +end + + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/typedef.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/typedef.lua new file mode 100644 index 0000000..4b13fc0 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/typedef.lua @@ -0,0 +1,68 @@ +-- tolua: typedef class +-- Written by Waldemar Celes +-- TeCGraf/PUC-Rio +-- Jul 1998 +-- $Id: typedef.lua,v 1.1 2009-07-09 13:44:54 fabraham 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. + + + +-- 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) + appendtypedef(t) + return t +end + +-- Constructor +-- Expects one string representing the type definition. +function Typedef (s) + if strfind(s,'[%*&]') then + tolua_error("#invalid typedef: pointers (and references) are not supported") + end + local t = split(gsub(s,"%s%s*"," ")," ") + if not isbasic(t[t.n]) then + return _Typedef { + utype = t[t.n], + type = t[t.n-1], + mod = concat(t,1,t.n-2), + } + else + return nil + end +end + + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/variable.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/variable.lua new file mode 100644 index 0000000..2b78051 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/variable.lua @@ -0,0 +1,243 @@ +-- tolua: variable class +-- Written by Waldemar Celes +-- TeCGraf/PUC-Rio +-- Jul 1998 +-- $Id: variable.lua,v 1.1 2009-07-09 13:44:55 fabraham 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. + + +-- 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 + parent = "_" .. p + 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.name,".*::","") .. ptr + + return name + +end + +-- check if it is a variable +function classVariable:isvariable () + return true +end + +-- get variable value +function classVariable:getvalue (class,static) + if class and static then + return class..'::'..self.name + elseif class then + return 'self->'..self.name + else + return self.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() + + -- get function ------------------------------------------------ + if class then + output("/* get function:",self.name," of class ",class," */") + self.cgetname = self:cfuncname("tolua_get_"..class) + else + output("/* get function:",self.name," */") + end + self.cgetname = self:cfuncname("tolua_get") + output("static 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(' ',class,'*','self = ') + output('(',class,'*) ') + output('tolua_tousertype(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,"invalid \'self\' in accessing variable \''..self.name..'\'",NULL);'); + output('#endif\n') + end + + -- return value + local t,ct = isbasic(self.type) + 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(' tolua_pushusertype(tolua_S,(void*)&'..self:getvalue(class,static)..',"',t,'");') + else + output(' tolua_pushusertype(tolua_S,(void*)'..self:getvalue(class,static)..',"',t,'");') + end + end + output(' return 1;') + output('}') + 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("static int",self.csetname,"(lua_State* tolua_S)") + output("{") + + -- declare self, if the case + if class and static==nil then + output(' ',class,'*','self = ') + output('(',class,'*) ') + output('tolua_tousertype(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,"invalid \'self\' in accessing variable \''..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(') + if class and static then + output(class..'::'..self.name) + elseif class then + output('self->'..self.name) + else + output(self.name) + end + output(',tolua_tostring(tolua_S,2,',def,'),',self.dim,'-1);') + else + local ptr = '' + if self.ptr~='' then ptr = '*' end + output(' ') + if class and static then + output(class..'::'..self.name) + elseif class then + output('self->'..self.name) + else + output(self.name) + 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(') ') + if t then + output('tolua_to'..t,'(tolua_S,2,',def,'));') + else + output('tolua_tousertype(tolua_S,2,',def,'));') + end + end + output(' return 0;') + output('}') + output('\n') + end + +end + +function classVariable:register () + 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(' tolua_variable(tolua_S,"'..self.lname..'",'..self.cgetname..','..self.csetname..');') + else + output(' 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 + + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/verbatim.lua b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/verbatim.lua new file mode 100644 index 0000000..d2fea67 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua-5.1-0k/verbatim.lua @@ -0,0 +1,76 @@ +-- tolua: verbatim class +-- Written by Waldemar Celes +-- TeCGraf/PUC-Rio +-- Jul 1998 +-- $Id: verbatim.lua,v 1.1 2009-07-09 13:44:57 fabraham 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 () + 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 + cond = 'sr' -- generates in both suport and register fragments + l = strsub(l,2) + end + return _Verbatim { + line = l, + cond = cond or '', + } +end + + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua/._all.lua b/ThirdParty/tolua-5.2.4/src/bin/lua/._all.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua/._all.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua/._array.lua b/ThirdParty/tolua-5.2.4/src/bin/lua/._array.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua/._array.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua/._basic.lua b/ThirdParty/tolua-5.2.4/src/bin/lua/._basic.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua/._basic.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua/._class.lua b/ThirdParty/tolua-5.2.4/src/bin/lua/._class.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua/._class.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua/._clean.lua b/ThirdParty/tolua-5.2.4/src/bin/lua/._clean.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua/._clean.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua/._code.lua b/ThirdParty/tolua-5.2.4/src/bin/lua/._code.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua/._code.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua/._compat.lua b/ThirdParty/tolua-5.2.4/src/bin/lua/._compat.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua/._compat.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua/._container.lua b/ThirdParty/tolua-5.2.4/src/bin/lua/._container.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua/._container.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua/._declaration.lua b/ThirdParty/tolua-5.2.4/src/bin/lua/._declaration.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua/._declaration.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua/._define.lua b/ThirdParty/tolua-5.2.4/src/bin/lua/._define.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua/._define.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua/._doit.lua b/ThirdParty/tolua-5.2.4/src/bin/lua/._doit.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua/._doit.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua/._enumerate.lua b/ThirdParty/tolua-5.2.4/src/bin/lua/._enumerate.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua/._enumerate.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua/._feature.lua b/ThirdParty/tolua-5.2.4/src/bin/lua/._feature.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua/._feature.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua/._function.lua b/ThirdParty/tolua-5.2.4/src/bin/lua/._function.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua/._function.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua/._module.lua b/ThirdParty/tolua-5.2.4/src/bin/lua/._module.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua/._module.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua/._namespace.lua b/ThirdParty/tolua-5.2.4/src/bin/lua/._namespace.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua/._namespace.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua/._operator.lua b/ThirdParty/tolua-5.2.4/src/bin/lua/._operator.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua/._operator.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua/._package.lua b/ThirdParty/tolua-5.2.4/src/bin/lua/._package.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua/._package.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua/._typedef.lua b/ThirdParty/tolua-5.2.4/src/bin/lua/._typedef.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua/._typedef.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua/._variable.lua b/ThirdParty/tolua-5.2.4/src/bin/lua/._variable.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua/._variable.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua/._verbatim.lua b/ThirdParty/tolua-5.2.4/src/bin/lua/._verbatim.lua Binary files differnew file mode 100644 index 0000000..313e184 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua/._verbatim.lua diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua/all.lua b/ThirdParty/tolua-5.2.4/src/bin/lua/all.lua new file mode 100644 index 0000000..eadf600 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua/all.lua @@ -0,0 +1,26 @@ +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.."class.lua") +dofile(path.."clean.lua") +dofile(path.."doit.lua") + +local err,msg = pcall(doit) +if not err then + local _,_,label,msg = strfind(msg,"(.-:.-:%s*)(.*)") + tolua_error(msg,label) +end diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua/array.lua b/ThirdParty/tolua-5.2.4/src/bin/lua/array.lua new file mode 100644 index 0000000..7a9b1ad --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua/array.lua @@ -0,0 +1,208 @@ +-- tolua: array class +-- Written by Waldemar Celes +-- TeCGraf/PUC-Rio +-- Jul 1999 +-- $Id: array.lua,v 1.4 2011/01/13 13:43:45 fabraham 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("static 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('(',class,'*) ') + 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') + output(' tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1;') + output('#ifndef TOLUA_RELEASE\n') + output(' if (tolua_index<0 || tolua_index>='..self.dim..')') + output(' tolua_error(tolua_S,"array indexing out of range.",NULL);') + output('#endif\n') + + -- return value + local t,ct = isbasic(self.type) + 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(' tolua_pushusertype(tolua_S,(void*)&'..self:getvalue(class,static)..',"',t,'");') + else + output(' tolua_pushusertype(tolua_S,(void*)'..self:getvalue(class,static)..',"',t,'");') + end + end + output(' return 1;') + output('}') + 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("static 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(' ',class,'*','self;') + output(' lua_pushstring(tolua_S,".self");') + output(' lua_rawget(tolua_S,1);') + output(' self = ') + output('(',class,'*) ') + 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') + output(' tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1;') + output('#ifndef TOLUA_RELEASE\n') + output(' if (tolua_index<0 || tolua_index>='..self.dim..')') + 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 + if isenum(self.type) then + output('(int)') + end + if t=='function' then t='value' end + output('tolua_to'..t,'(tolua_S,3,',def,'));') + else + output('tolua_tousertype(tolua_S,3,',def,'));') + end + output(' return 0;') + output('}') + output('\n') + end + +end + +function classArray:register () + if self.csetname then + output(' tolua_array(tolua_S,"'..self.lname..'",'..self.cgetname..','..self.csetname..');') + else + output(' 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 + + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua/basic.lua b/ThirdParty/tolua-5.2.4/src/bin/lua/basic.lua new file mode 100644 index 0000000..fc9d09d --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua/basic.lua @@ -0,0 +1,214 @@ +-- tolua: basic utility functions +-- Written by Waldemar Celes +-- TeCGraf/PUC-Rio +-- Jul 1998 +-- Last update: Apr 2003 +-- $Id: basic.lua,v 1.4 2009/11/24 16:45:13 fabraham 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. + + +-- 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', + ['tolua_index'] = 'number', + ['tolua_len'] = 'number', + ['tolua_byte'] = 'number', + ['tolua_ubyte'] = 'number', + ['tolua_multret'] = 'number', + ['int'] = 'number', + ['short'] = 'number', + ['long'] = 'number', + ['unsigned'] = 'number', + ['float'] = 'number', + ['double'] = 'number', + ['_cstring'] = 'string', + ['_userdata'] = 'userdata', + ['char*'] = 'string', + ['void*'] = 'userdata', + ['bool'] = 'boolean', + ['lua_State*'] = 'state', + ['_lstate'] = 'state', + ['lua_Object'] = 'value', + ['lua_Function'] = 'function', + ['LUA_VALUE'] = 'value', -- for compatibility with tolua 4.0 +} + +_basic_ctype = { + number = "lua_Number", + string = "const char*", + userdata = "void*", + boolean = "bool", + value = "int", +} + +-- 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 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) + 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 + print(debug.traceback("\n** tolua internal error: "..f..s..".\n\n")) + return + end + _OUTPUT = out +end + +function warning (msg) + 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) + local ft = findtype(t) + if isbasic(t) then + return t + end + if not ft then + return appendusertype(t) + end +end + +-- return type name: returns full type +function typevar(type) + if type == '' or type == 'void' or type == "..." 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 + + +-- concatenate strings of a table +function concat (t,f,l) + local s = '' + local i=f + while i<=l do + s = s..t[i] + i = i+1 + if i <= l then s = s..' ' end + end + return s +end + +-- concatenate all parameters, following output rules +function concatparam (line, ...) + local arg = {...} + local i=1 + while i<=#arg 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],"[%/%)%;%{%}]$") then + _cont=nil line = line .. '\n' + end + return line +end + +-- output line +function output (...) + local arg = {...} + local i=1 + while i<=#arg 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],"[%/%)%;%{%}]$") then + _cont=nil write('\n') + end +end + + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua/class.lua b/ThirdParty/tolua-5.2.4/src/bin/lua/class.lua new file mode 100644 index 0000000..bf38405 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua/class.lua @@ -0,0 +1,120 @@ +-- tolua: class class +-- Written by Waldemar Celes +-- TeCGraf/PUC-Rio +-- Jul 1998 +-- $Id: class.lua,v 1.3 2009/11/24 16:45:13 fabraham 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. + + +-- 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 () + push(self) + if _collect[self.type] then + output('#ifdef __cplusplus\n') + output(' tolua_cclass(tolua_S,"'..self.lname..'","'..self.type..'","'..self.btype..'",'.._collect[self.type]..');') + output('#else\n') + output(' tolua_cclass(tolua_S,"'..self.lname..'","'..self.type..'","'..self.btype..'",NULL);') + output('#endif\n') + else + output(' tolua_cclass(tolua_S,"'..self.lname..'","'..self.type..'","'..self.btype..'",NULL);') + end + output(' tolua_beginmodule(tolua_S,"'..self.lname..'");') + local i=1 + while self[i] do + self[i]:register() + i = i+1 + end + output(' tolua_endmodule(tolua_S);') + pop() +end + +-- return collection requirement +function classClass:requirecollection (t) + 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 + if self._delete then + t[self.type] = "tolua_collect_" .. gsub(self.type,"::","_") + r = true + end + return r +end + +-- output tags +function classClass:decltype () + push(self) + self.type = regtype(self.name) + self.btype = typevar(self.base) + self.ctype = 'const '..self.type + 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 + +-- Internal constructor +function _Class (t) + setmetatable(t,classClass) + t:buildnames() + append(t) + return t +end + +-- Constructor +-- Expects the name, the base and the body of the class. +function Class (n,p,b) + local c = _Class(_Container{name=n, base=p}) + push(c) + c:parse(strsub(b,2,strlen(b)-1)) -- eliminate braces + pop() +end + + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua/clean.lua b/ThirdParty/tolua-5.2.4/src/bin/lua/clean.lua new file mode 100644 index 0000000..b11e38c --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua/clean.lua @@ -0,0 +1,75 @@ +-- 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][3]) + end + return s +end + +function clean (s) + -- check for compilation error + local code = "return function () " .. s .. " end" + if not dostring(code) then + return nil + 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 + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua/code.lua b/ThirdParty/tolua-5.2.4/src/bin/lua/code.lua new file mode 100644 index 0000000..6afa84c --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua/code.lua @@ -0,0 +1,73 @@ +-- tolua: code class +-- Written by Waldemar Celes +-- TeCGraf/PUC-Rio +-- Jul 1999 +-- $Id: code.lua,v 1.5 2009/11/24 16:45:13 fabraham 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. + + +-- 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 () + -- clean Lua code + local s = clean(self.text) + if not s then + error("parser error in embedded code") + end + + -- convert to C + output('\n { /* begin embedded lua code */\n') + output(' static 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 ' end + return format('%3u,%s',strbyte(c),e) + end + ) + output(b..strbyte(" ")) + output('\n };\n') + output(' if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK)\n') + output(' lua_pcall(tolua_S,0,LUA_MULTRET,0);') + output(' } /* end of embedded lua code */\n\n') +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 + + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua/compat.lua b/ThirdParty/tolua-5.2.4/src/bin/lua/compat.lua new file mode 100644 index 0000000..d200399 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua/compat.lua @@ -0,0 +1,201 @@ +------------------------------------------------------------------- +-- Real globals +-- _ALERT +-- _ERRORMESSAGE +-- _VERSION +-- _G +-- assert +-- error +-- metatable +-- next +-- print +-- require +-- tonumber +-- tostring +-- type + +------------------------------------------------------------------- +-- collectgarbage +-- gcinfo + +-- globals + +-- call -> protect(f, err) + +-- 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_(load(s)) end + +------------------------------------------------------------------- +-- Table library +local tab = table +foreach = function(t,f) + for k,v in pairs(t) do + f(k,v) + end +end +foreachi = function(t,f) + for i,v in ipairs(t) do + f(i,v) + end +end +getn = function(t) + return #t +end +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 + local arg = {...} + if rawtype(arg[1]) == 'userdata' then + f = tab.remove(arg, 1) + end + return f:read(table.unpack(arg)) +end + +function write (...) + local f = _OUTPUT + local arg = {...} + if rawtype(arg[1]) == 'userdata' then + f = tab.remove(arg, 1) + end + return f:write(table.unpack(arg)) +end + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua/container.lua b/ThirdParty/tolua-5.2.4/src/bin/lua/container.lua new file mode 100644 index 0000000..29c3781 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua/container.lua @@ -0,0 +1,536 @@ +-- tolua: container abstract class +-- Written by Waldemar Celes +-- TeCGraf/PUC-Rio +-- Jul 1998 +-- $Id: container.lua,v 1.3 2009/11/24 16:45:13 fabraham 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. + +-- 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 () + push(self) + local i=1 + while self[i] do + self[i]:supcode() + 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 (type) + return classContainer.curr:applytypedef(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.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 +end + +-- append usertype: return full type +function classContainer:appendusertype (t) + local container + if t == 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 (type) + if global_typedefs[type] then + local mod1, type1 = global_typedefs[type].mod, global_typedefs[type].type + local mod2, type2 = applytypedef(type1) + return mod2 .. ' ' .. mod1, type2 + end + local basetype = gsub(type,"^.*::","") + local env = self + while env do + if env.typedefs then + local i=1 + while env.typedefs[i] do + if env.typedefs[i].utype == basetype then + local mod1,type1 = env.typedefs[i].mod,env.typedefs[i].type + local mod2,type2 = applytypedef(type1) + return mod2..' '..mod1,type2 + end + i = i+1 + end + end + env = env.parent + end + return '',type +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 + +-- check if is a registered type: return full type or nil +function classContainer:findtype (t) + local curr = self + while curr do + 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 + curr = curr.prox + end + if _basic[t] then + return t + end + return nil +end + + +function classContainer:isenum (type) + if global_enums[type] then + return true + 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 + +-- parse chunk +function classContainer:doparse (s) + + -- 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 verbatim + do + local b,e,line = strfind(s,"^%s*%$(.-\n)") + if b then + Verbatim(line) + return strsub(s,e+1) + 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 = 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%*&:]*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%*&:]*operator)%s*([^%s][^%s]*)%s*(%b())%s*(c?o?n?s?t?)%s*%b{}%s*;?%s*") + 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*") + 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 b then + _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*([~_%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 + 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*;%s*") + if not b then + b,e,name,base,body = strfind(s,"^%s*struct%s*([_%w][_%w@]*)%s*(.-)%s*(%b{})%s*;%s*") + if not b then + b,e,name,base,body = strfind(s,"^%s*union%s*([_%w][_%w@]*)%s*(.-)%s*(%b{})%s*;%s*") + if not b then + base = '' + b,e,body,name = strfind(s,"^%s*typedef%s%s*struct%s*[_%w]*%s*(%b{})%s*([_%w][_%w@]*)%s*;%s*") + if not b then + base = '' + b,e,body,name = strfind(s,"^%s*typedef%s%s*union%s*[_%w]*%s*(%b{})%s*([_%w][_%w@]*)%s*;%s*") + end + end + end + end + end + end + if b then + if base ~= '' then + local b,e + b,e,base = strfind(base,".-([_%w][_%w]*)$") + end + _curr_code = strsub(s,b,e) + Class(name,base,body) + 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) + 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) + while s ~= '' do + s = self:doparse(s) + end +end + + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua/declaration.lua b/ThirdParty/tolua-5.2.4/src/bin/lua/declaration.lua new file mode 100644 index 0000000..b2aab1e --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua/declaration.lua @@ -0,0 +1,482 @@ +-- tolua: declaration class +-- Written by Waldemar Celes +-- TeCGraf/PUC-Rio +-- Jul 1998 +-- $Id: declaration.lua,v 1.5 2011/01/13 13:43:46 fabraham 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. + + +-- 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 = t[t.n] + end + + local b,e,d = strfind(self.name,"%[(.-)%]") + if b then + self.name = strsub(self.name,1,b-1) + self.dim = 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 +end + +-- Check declaration type +-- Substitutes typedef's. +function classDeclaration:checktype () + + -- check if there is a pointer to basic type + if isbasic(self.type) and self.ptr~='' then + self.ret = self.ptr + self.ptr = nil + 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 + +-- +-- -- if returning value, automatically set default value +-- if self.ret ~= '' and self.def == '' then +-- self.def = '0' +-- end +-- + +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 == '' then + local type = gsub(self.type,"%s*const%s*","") + t[type] = "tolua_collect_" .. gsub(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,var) + local def + local t = isbasic(self.type) + if self.def~='' then + def = 1 + else + def = 0 + end + if self.dim ~= '' then + if var and self.type=='char' then + return 'tolua_isstring(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 + return 'tolua_isusertype(tolua_S,'..narg..',"'..self.type..'",'..def..',&tolua_err)' + 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 + if self.dim ~= '' then + type = gsub(self.type,'const%s*','') -- eliminates const modifier for arrays + end + local ctype = type + if ctype=="lua_Object" or ctype=="lua_Function" then + ctype = "int" + end + if self.ptr~='' then ptr = '*' end + line = concatparam(line," ",self.mod,ctype,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,' = new',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 + if not t and ptr=='' then line = concatparam(line,'*') end + local ct = type + if t == 'value' or t == 'function' then + ct = 'int' + end + line = concatparam(line,'((',self.mod,ct) + if not t then + line = concatparam(line,'*') + end + line = concatparam(line,') ') + if isenum(type) then + --if not t and isenum(type) then + line = concatparam(line,'(int) ') + end + local def = 0 + if self.def ~= '' then def = self.def end + if t then + if t=='function' then t='value' end + if self.type == "tolua_index" then + line = concatparam(line,'tolua_to'..t,'(tolua_S,',narg,',',def,')-1);') + else + line = concatparam(line,'tolua_to'..t,'(tolua_S,',narg,',',def,'));') + end + else + line = concatparam(line,'tolua_tousertype(tolua_S,',narg,',',def,'));') + end + end + end + return line +end + +-- Declare variable +function classDeclaration:declare (narg) + if self.dim ~= '' and self.type~='char' 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 + if t=='function' then t='value' end + 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') 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 + if t=='function' then t='value' end + 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 = new',type,'(',self.name,'[i]);') + output(' tolua_pushfieldusertype(tolua_S,',narg,',i+1,tolua_clone(tolua_S,tolua_obj,'.. (_collect[type] or 'NULL') ..'),"',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_clone(tolua_S,tolua_obj,NULL),"',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(' delete []',self.name,';') + output('#else\n') + output(' free(',self.name,');') + output('#endif\n') + end +end + +-- Pass parameter +function classDeclaration:passpar () + local name = self.name + if self.ptr=='&' then + output('*'..name) + elseif self.ret=='*' then + output('&'..name) + else + output(name) + end +end + +-- Return parameter value +function classDeclaration:retvalue () + if self.ret ~= '' then + local t,ct = isbasic(self.type) + if t then + if t=='function' then t='value' end + if self.type=="tolua_index" then + output(' tolua_push'..t..'(tolua_S,(',ct,')'..self.name..'+1);') + else + output(' tolua_push'..t..'(tolua_S,(',ct,')'..self.name..');') + end + else + output(' tolua_pushusertype(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() + return t +end + +-- Constructor +-- Expects the string declaration. +-- The kind of declaration can be "var" or "func". +function Declaration (s,kind) + -- eliminate spaces if default value is provided + s = gsub(s,"%s*=%s*","=") + + if kind == "var" then + -- check the form: void + if s == '' or s == 'void' then + return _Declaration{type = 'void', kind = kind} + end + end + + -- check the form: mod type*& name + local t = split(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*') + return _Declaration{ + name = t[2], + ptr = '*', + ret = '&', + type = m[m.n], + mod = concat(m,1,m.n-1), + kind = kind + } + end + + -- check the form: mod type** name + t = split(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*') + return _Declaration{ + name = t[2], + ptr = '*', + ret = '*', + type = m[m.n], + mod = concat(m,1,m.n-1), + kind = kind + } + end + + -- check the form: mod type& name + t = split(s,'&') + if t.n == 2 then + local m = split(t[1],'%s%s*') + return _Declaration{ + name = t[2], + ptr = '&', + type = m[m.n], + mod = concat(m,1,m.n-1) , + kind = kind + } + end + + -- check the form: mod type* name + local s1 = gsub(s,"(%b%[%])",function (n) return gsub(n,'%*','\1') end) + t = split(s1,'%*') + if t.n == 2 then + t[2] = gsub(t[2],'\1','%*') -- restore * in dimension expression + local m = split(t[1],'%s%s*') + return _Declaration{ + name = t[2], + ptr = '*', + type = m[m.n], + mod = concat(m,1,m.n-1) , + kind = kind + } + end + + if kind == 'var' then + -- check the form: mod type name + t = split(s,'%s%s*') + local v + if findtype(t[t.n]) then v = '' else v = t[t.n]; t.n = t.n-1 end + return _Declaration{ + name = v, + type = t[t.n], + mod = concat(t,1,t.n-1), + kind = kind + } + + else -- kind == "func" + + -- check the form: mod type name + t = split(s,'%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 + return _Declaration{ + name = v, + type = tp, + mod = md, + kind = kind + } + end + +end + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua/define.lua b/ThirdParty/tolua-5.2.4/src/bin/lua/define.lua new file mode 100644 index 0000000..a903d2a --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua/define.lua @@ -0,0 +1,58 @@ +-- tolua: define class +-- Written by Waldemar Celes +-- TeCGraf/PUC-Rio +-- Jul 1998 +-- $Id: define.lua,v 1.3 2009/11/24 16:45:13 fabraham 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 () + output(' 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 + + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua/doit.lua b/ThirdParty/tolua-5.2.4/src/bin/lua/doit.lua new file mode 100644 index 0000000..4050058 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua/doit.lua @@ -0,0 +1,63 @@ +-- Generate binding code +-- Written by Waldemar Celes +-- TeCGraf/PUC-Rio +-- Jul 1998 +-- Last update: Apr 2003 +-- $Id: doit.lua,v 1.3 2009/11/24 16:45:13 fabraham 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. + +function doit () + -- define package name, if not provided + if not flags.n then + if flags.f then + flags.n = gsub(flags.f,"%..*","") + else + error("#no package name nor input file provided") + end + 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 + p:preamble() + p:supcode() + p:register() + 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 + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua/enumerate.lua b/ThirdParty/tolua-5.2.4/src/bin/lua/enumerate.lua new file mode 100644 index 0000000..41ce314 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua/enumerate.lua @@ -0,0 +1,83 @@ +-- tolua: enumerate class +-- Written by Waldemar Celes +-- TeCGraf/PUC-Rio +-- Jul 1998 +-- $Id: enumerate.lua,v 1.3 2009/11/24 16:45:13 fabraham 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 () + local nspace = getnamespace(classContainer.curr) + local i=1 + while self[i] do + output(' tolua_constant(tolua_S,"'..self.lnames[i]..'",'..nspace..self[i]..');') + 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) + setmetatable(t,classEnumerate) + append(t) + appendenum(t) + return t +end + +-- Constructor +-- Expects a string representing the enumerate body +function Enumerate (n,b) + 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 = {} + 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] + i = i+1 + end + e.name = n + if n~="" then + Typedef("int "..n) + end + return _Enumerate(e) +end + + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua/feature.lua b/ThirdParty/tolua-5.2.4/src/bin/lua/feature.lua new file mode 100644 index 0000000..dbf76ca --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua/feature.lua @@ -0,0 +1,101 @@ +-- tolua: abstract feature class +-- Written by Waldemar Celes +-- TeCGraf/PUC-Rio +-- Jul 1998 +-- $Id: feature.lua,v 1.3 2009/11/24 16:45:14 fabraham 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. + + +-- 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 () +end + +-- translate verbatim +function classFeature:preamble () +end + +-- check if it is a variable +function classFeature:isvariable () + return false +end + +-- checi 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] + if not n[2] then + n[2] = applyrenaming(n[1]) + end + self.lname = n[2] or gsub(n[1],"%[.-%]","") + end + self.name = getonlynamespace() .. self.name +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 + + if self.lname and + strsub(self.lname,1,1)~="." -- operator are named as ".add" + then + return n..'_'..self.lname + else + return n..'_'..self.name + end +end + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua/function.lua b/ThirdParty/tolua-5.2.4/src/bin/lua/function.lua new file mode 100644 index 0000000..b435b93 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua/function.lua @@ -0,0 +1,402 @@ +-- tolua: function class +-- Written by Waldemar Celes +-- TeCGraf/PUC-Rio +-- Jul 1998 +-- $Id: function.lua,v 1.4 2009/11/24 16:45:14 fabraham 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. + + + +-- 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%s*','') + 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 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 + output("/* method:",self.name," of class ",class," */") + else + output("/* function:",self.name," */") + end + output("static int",self.cname,"(lua_State* tolua_S)") + output("{") + if self.type == 'tolua_multret' then + output(' int tolua_ret;') + end + + -- 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 = 'tolua_isusertype' + local type = self.parent.type + if self.const ~= '' then + type = self.const .. " " .. type + end + if self.name=='new' or static~=nil then + func = 'tolua_isusertable' + type = self.parent.type + end + output(' !'..func..'(tolua_S,1,"'..type..'",0,&tolua_err) || \n') + end + -- check args + local vararg = false + if self.args[1].type ~= 'void' then + local i=1 + while self.args[i] and self.args[i].type ~= "..." do + local btype = isbasic(self.args[i].type) + if btype ~= 'state' then + output(' !'..self.args[i]:outchecktype(narg,false)..' || \n') + end + if btype ~= 'state' then + narg = narg+1 + end + i = i+1 + end + if self.args[i] then + vararg = true + end + end + -- check end of list + if not vararg then + output(' !tolua_isnoobj(tolua_S,'..narg..',&tolua_err)\n') + else + output(' 0\n') + end + output(' )') + 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,'*) ') + output('tolua_tousertype(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] and self.args[i].type ~= "..." 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,"invalid \'self\' in function \''..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] and self.args[i].type ~= "..." do + if isbasic(self.args[i].type) ~= "state" then + self.args[i]:getarray(narg) + narg = narg+1 + end + i = i+1 + end + end + + -- call function + if class and self.name=='delete' then + output(' tolua_release(tolua_S,self);') + output(' delete self;') + elseif class and self.name == 'operator&[]' then + output(' self->operator[](',self.args[1].name,'-1) = ',self.args[2].name,';') + else + output(' {') + if self.type ~= '' and self.type ~= 'void' then + local ctype = self.type + if ctype == 'value' or ctype == 'function' then + ctype = 'int' + end + if self.type == 'tolua_multret' then + output(' tolua_ret = ') + else + output(' ',self.mod,ctype,self.ptr,'tolua_ret = ') + end + if isbasic(self.type) or self.ptr ~= '' then + output('(',self.mod,ctype,self.ptr,') ') + end + else + output(' ') + end + if class and self.name=='new' then + output('new',self.type,'(') + elseif class and static then + output(class..'::'..self.name,'(') + elseif class then + output('self->'..self.name,'(') + else + output(self.name,'(') + end + + -- write parameters + local i=1 + while self.args[i] and self.args[i].type ~= "..." do + self.args[i]:passpar() + i = i+1 + if self.args[i] and self.args[i].type ~= "..." then + output(',') + end + end + + if class and self.name == 'operator[]' then + output('-1);') + else + output(');') + end + + -- return values + if self.type ~= '' and self.type ~= 'void' and self.type ~= 'tolua_multret' then + nret = nret + 1 + local t,ct = isbasic(self.type) + if t then + if t=='function' then t='value' end + if self.type == 'tolua_index' then + output(' if (tolua_ret < 0) lua_pushnil(tolua_S);') + output(' else tolua_push'..t..'(tolua_S,(',ct,')tolua_ret+1);') + else + output(' tolua_push'..t..'(tolua_S,(',ct,')tolua_ret);') + end + else + t = self.type + if self.ptr == '' then + output(' {') + output('#ifdef __cplusplus\n') + output(' void* tolua_obj = new',t,'(tolua_ret);') + output(' tolua_pushusertype(tolua_S,tolua_clone(tolua_S,tolua_obj,'.. (_collect[t] or 'NULL') ..'),"',t,'");') + output('#else\n') + output(' void* tolua_obj = tolua_copy(tolua_S,(void*)&tolua_ret,sizeof(',t,'));') + output(' tolua_pushusertype(tolua_S,tolua_clone(tolua_S,tolua_obj,NULL),"',t,'");') + output('#endif\n') + output(' }') + elseif self.ptr == '&' then + output(' tolua_pushusertype(tolua_S,(void*)&tolua_ret,"',t,'");') + else + output(' tolua_pushusertype(tolua_S,(void*)tolua_ret,"',t,'");') + if self.mod == 'tolua_own' then + output(' lua_pushcfunction(tolua_S, tolua_bnd_takeownership);') + output(' lua_pushvalue(tolua_S, -2);') + output(' lua_call(tolua_S, 1, 0);') + 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 + if isbasic(self.args[i].type) ~= "state" then + self.args[i]:setarray(narg) + narg = narg+1 + end + 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 + + output(' }') + if self.type == "tolua_multret" then + output(' return '..nret..' + tolua_ret;') + else + output(' return '..nret..';') + end + + -- call overloaded function or generate error + if overload < 0 then + output('#ifndef TOLUA_RELEASE\n') + output('tolua_lerror:\n') + output(' tolua_error(tolua_S,"#ferror in function \''..self.lname..'\'.",&tolua_err);') + output(' return 0;') + output('#endif\n') + else + output('tolua_lerror:\n') + output(' return '..strsub(self.cname,1,-3)..format("%02d",overload)..'(tolua_S);') + end + output('}') + output('\n') +end + + +-- register function +function classFunction:register () + output(' tolua_function(tolua_S,"'..self.lname..'",'..self.cname..');') +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 a 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_" .. gsub(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 + + + +-- 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 + if t.name == t.parent.name then + t.name = 'new' + t.lname = 'new' + if string.find(t.type,"tolua_own") then + t.mod = "tolua_own" + end + t.type = t.parent.name + t.ptr = '*' + elseif t.name == '~'..t.parent.name then + t.name = 'delete' + t.lname = 'delete' + t.parent._delete = true + elseif t.type == 'tolua_len' then + t.lname = ".len" + 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 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 + local f = Declaration(d,'func') + f.args = l + f.const = c + return _Function(f) +end + + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua/module.lua b/ThirdParty/tolua-5.2.4/src/bin/lua/module.lua new file mode 100644 index 0000000..10d541b --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua/module.lua @@ -0,0 +1,67 @@ +-- tolua: module class +-- Written by Waldemar Celes +-- TeCGraf/PUC-Rio +-- Jul 1998 +-- $Id: module.lua,v 1.3 2009/11/24 16:45:14 fabraham 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. + + + +-- 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 () + push(self) + output(' tolua_module(tolua_S,"'..self.name..'",',self:hasvar(),');') + output(' tolua_beginmodule(tolua_S,"'..self.name..'");') + local i=1 + while self[i] do + self[i]:register() + i = i+1 + end + output(' 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 + + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua/namespace.lua b/ThirdParty/tolua-5.2.4/src/bin/lua/namespace.lua new file mode 100644 index 0000000..572a8dc --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua/namespace.lua @@ -0,0 +1,52 @@ +-- tolua: namespace class +-- Written by Waldemar Celes +-- TeCGraf/PUC-Rio +-- Jul 2003 +-- $Id: namespace.lua,v 1.3 2009/11/24 16:45:14 fabraham 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. + + +-- 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 + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua/operator.lua b/ThirdParty/tolua-5.2.4/src/bin/lua/operator.lua new file mode 100644 index 0000000..822fe83 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua/operator.lua @@ -0,0 +1,113 @@ +-- tolua: operator class +-- Written by Waldemar Celes +-- TeCGraf/PUC-Rio +-- Jul 1998 +-- $Id: operator.lua,v 1.3 2009/11/24 16:45:14 fabraham 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. + + +-- 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', + } + + +-- 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 + +-- 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] + 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 ref = '' + local t = split(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 = gsub(k,"%s","") + if not _TM[f.kind] then + error("tolua: no support for operator" .. f.kind) + end + f.lname = ".".._TM[f.kind] + if f.kind == '[]' and ref=='&' and f.const~='const' then + Operator(d,'&'..k,a,c) -- create correspoding set operator + end + return _Operator(f) +end + + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua/package.lua b/ThirdParty/tolua-5.2.4/src/bin/lua/package.lua new file mode 100644 index 0000000..d0a7b08 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua/package.lua @@ -0,0 +1,280 @@ +-- tolua: package class +-- Written by Waldemar Celes +-- TeCGraf/PUC-Rio +-- Jul 1998 +-- $Id: package.lua,v 1.4 2009/11/24 16:45:15 fabraham 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. + + + +-- 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 C 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 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 code + self.code = gsub(self.code,"%#%[(%d+)%]%#",function (n) + return L[tonumber(n)] + end) + -- restore embedded 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) +end + +-- translate verbatim +function classPackage:preamble () + output('/*\n') + output('** Lua binding: '..self.name..'\n') +-- fred: removido porque gera trabalho na hora de fazer diffs +-- output('** Generated automatically by '..TOLUA_VERSION..' on '..date()..'.\n') + output('*/\n\n') + + output('#include "tolua.h"\n\n') + output('#ifndef __cplusplus\n') + output('#include <stdlib.h>\n') + output('#endif\n') + output('#ifdef __cplusplus\n') + output('extern "C" int tolua_bnd_takeownership (lua_State* L); // from tolua_map.c\n') + output('#else\n') + output('int tolua_bnd_takeownership (lua_State* L); /* from tolua_map.c */\n') + output('#endif\n') + output('#include <string.h>\n\n') + + if not flags.h then + output('/* Exported function */') + output('TOLUA_API int tolua_'..self.name..'_open (lua_State* tolua_S);') + output('LUALIB_API int luaopen_'..self.name..' (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(' tolua_release(tolua_S,self);') + output(' 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('{') + foreach(_usertype,function(n,v) output(' tolua_usertype(tolua_S,"',v,'");') end) + output('}') + output('\n') +end + +-- register package +-- write package open function +function classPackage:register () + push(self) + + output("/* Open lib function */") + output('LUALIB_API int luaopen_'..self.name..' (lua_State* tolua_S)') + output("{") + output(" tolua_open(tolua_S);") + output(" tolua_reg_types(tolua_S);") + output(" tolua_module(tolua_S,NULL,",self:hasvar(),");") + output(" tolua_beginmodule(tolua_S,NULL);") + local i=1 + while self[i] do + self[i]:register() + i = i+1 + end + output(" tolua_endmodule(tolua_S);") + output(" return 1;") + output("}") + + output("/* Open tolua function */") + output("TOLUA_API int tolua_"..self.name.."_open (lua_State* tolua_S)") + output("{") + output(" lua_pushcfunction(tolua_S, luaopen_"..self.name..");") + output(' lua_pushstring(tolua_S, "'..self.name..'");') + output(" lua_call(tolua_S, 1, 0);") + output(" return 1;") + output("}") + + 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('LUALIB_API int luaopen_'..self.name..' (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 + if fn then + local st, msg = readfrom(flags.f) + if not st then + error('#'..msg) + end + local _; _, _, ext = strfind(fn,".*%.(.*)$") + end + local code = "\n" .. read('*a') + if ext == 'h' or ext == 'hpp' then + code = extract_code(fn,code) + end + + -- close file + if fn then + readfrom() + end + + -- deal with renaming directive + code = gsub(code,'%s*%$renaming%s*(.-)%s*\n', function (r) appendrenaming(r) return "\n" end) + + -- deal with include directive + local nsubst + repeat + code,nsubst = gsub(code,'\n%s*%$(.)file%s*"(.-)"%s*\n', + function (kind,fn) + local _, _, ext = strfind(fn,".*%.(.*)$") + local fp,msg = openfile(fn,'r') + if not fp then + error('#'..msg..': '..fn) + end + local s = read(fp,'*a') + closefile(fp) + if kind == 'c' or kind == 'h' then + return extract_code(fn,s) + elseif kind == 'p' then + return "\n\n" .. s + elseif kind == 'l' then + return "\n$[\n" .. s .. "\n$]\n" + else + error('#Invalid include directive (use $cfile, $pfile or $lfile)') + end + end) + until nsubst==0 + + local t = _Package(_Container{name=name, code=code}) + push(t) + t:preprocess() + t:parse(t.code) + pop() + return t +end + + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua/typedef.lua b/ThirdParty/tolua-5.2.4/src/bin/lua/typedef.lua new file mode 100644 index 0000000..e7b4bc9 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua/typedef.lua @@ -0,0 +1,68 @@ +-- tolua: typedef class +-- Written by Waldemar Celes +-- TeCGraf/PUC-Rio +-- Jul 1998 +-- $Id: typedef.lua,v 1.3 2009/11/24 16:45:15 fabraham 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. + + + +-- 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) + appendtypedef(t) + return t +end + +-- Constructor +-- Expects one string representing the type definition. +function Typedef (s) + if strfind(s,'[%*&]') then + tolua_error("#invalid typedef: pointers (and references) are not supported") + end + local t = split(gsub(s,"%s%s*"," ")," ") + if not isbasic(t[t.n]) then + return _Typedef { + utype = t[t.n], + type = t[t.n-1], + mod = concat(t,1,t.n-2), + } + else + return nil + end +end + + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua/variable.lua b/ThirdParty/tolua-5.2.4/src/bin/lua/variable.lua new file mode 100644 index 0000000..517a91c --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua/variable.lua @@ -0,0 +1,253 @@ +-- tolua: variable class +-- Written by Waldemar Celes +-- TeCGraf/PUC-Rio +-- Jul 1998 +-- $Id: variable.lua,v 1.3 2009/11/24 16:45:15 fabraham 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. + + +-- 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 + parent = "_" .. p + 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.name,".*::","") .. ptr + + return name + +end + +-- check if it is a variable +function classVariable:isvariable () + return true +end + +-- get variable value +function classVariable:getvalue (class,static) + if class and static then + return class..'::'..self.name + elseif class then + return 'self->'..self.name + else + return self.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() + + -- get function ------------------------------------------------ + if class then + output("/* get function:",self.name," of class ",class," */") + self.cgetname = self:cfuncname("tolua_get_"..class) + else + output("/* get function:",self.name," */") + self.cgetname = self:cfuncname("tolua_get") + end + + output("static 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(' ',class,'*','self = ') + output('(',class,'*) ') + output('tolua_tousertype(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,"invalid \'self\' in accessing variable \''..self.name..'\'",NULL);'); + output('#endif\n') + end + + -- return value + local type = self.type + if gsub(type,'const ','')=='char' and self.dim~='' then + type = 'char*' + end + local t,ct = isbasic(type) + 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(' tolua_pushusertype(tolua_S,(void*)&'..self:getvalue(class,static)..',"',t,'");') + else + output(' tolua_pushusertype(tolua_S,(void*)'..self:getvalue(class,static)..',"',t,'");') + end + end + output(' return 1;') + output('}') + output('\n') + + -- set function ------------------------------------------------ + if not strfind(self.type,'const') then + if class then + output("/* set function:",self.name," of class ",class," */") + self.csetname = self:cfuncname("tolua_set_"..class) + else + output("/* set function:",self.name," */") + self.csetname = self:cfuncname("tolua_set") + end + output("static int",self.csetname,"(lua_State* tolua_S)") + output("{") + + -- declare self, if the case + if class and static==nil then + output(' ',class,'*','self = ') + output('(',class,'*) ') + output('tolua_tousertype(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,"invalid \'self\' in accessing variable \''..self.name..'\'",NULL);'); + elseif static then + _,_,self.mod = strfind(self.mod,'^%s*static%s%s*(.*)') + end + + -- check variable type + output(' if (!'..self:outchecktype(2,true)..')') + 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(') + if class and static then + output(class..'::'..self.name) + elseif class then + output('self->'..self.name) + else + output(self.name) + end + output(',tolua_tostring(tolua_S,2,',def,'),',self.dim,'-1);') + else + local ptr = '' + if self.ptr~='' then ptr = '*' end + output(' ') + if class and static then + output(class..'::'..self.name) + elseif class then + output('self->'..self.name) + else + output(self.name) + 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(') ') + if t then + if isenum(self.type) then + output('(int) ') + end + if t=='function' then t='value' end + output('tolua_to'..t,'(tolua_S,2,',def,'));') + else + output('tolua_tousertype(tolua_S,2,',def,'));') + end + end + output(' return 0;') + output('}') + output('\n') + end + +end + +function classVariable:register () + 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(' tolua_variable(tolua_S,"'..self.lname..'",'..self.cgetname..','..self.csetname..');') + else + output(' 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 + + diff --git a/ThirdParty/tolua-5.2.4/src/bin/lua/verbatim.lua b/ThirdParty/tolua-5.2.4/src/bin/lua/verbatim.lua new file mode 100644 index 0000000..1581092 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/lua/verbatim.lua @@ -0,0 +1,76 @@ +-- tolua: verbatim class +-- Written by Waldemar Celes +-- TeCGraf/PUC-Rio +-- Jul 1998 +-- $Id: verbatim.lua,v 1.3 2009/11/24 16:45:15 fabraham 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 () + 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 + cond = 'sr' -- generates in both suport and register fragments + l = strsub(l,2) + end + return _Verbatim { + line = l, + cond = cond or '', + } +end + + diff --git a/ThirdParty/tolua-5.2.4/src/bin/regenerate_binding b/ThirdParty/tolua-5.2.4/src/bin/regenerate_binding new file mode 100644 index 0000000..e1612af --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/regenerate_binding @@ -0,0 +1 @@ +../tolua5lua -o toluabind.c tolua.pkg diff --git a/ThirdParty/tolua-5.2.4/src/bin/tolua.c b/ThirdParty/tolua-5.2.4/src/bin/tolua.c new file mode 100644 index 0000000..f310c9b --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/tolua.c @@ -0,0 +1,130 @@ +/* tolua +** Support code for Lua bindings. +** Written by Waldemar Celes +** TeCGraf/PUC-Rio +** Aug 2003 +** $Id: tolua.c,v 1.4 2009/11/24 16:45:12 fabraham 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. +*/ + +#include "tolua.h" + +#include "lua.h" +#include "lualib.h" +#include "lauxlib.h" + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + + +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" + " -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)\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 error (char* o) +{ + fprintf(stderr,"tolua: unknown option '%s'\n",o); + help(); + exit(1); +} + +int main (int argc, char* argv[]) +{ + lua_State* L = luaL_newstate(); + luaL_openlibs(L); + + lua_pushstring(L,TOLUA_VERSION); lua_setglobal(L,"TOLUA_VERSION"); + + if (argc==1) + { + help(); + return 0; + } + else + { + int i, t; + lua_newtable(L); + lua_pushvalue(L,-1); + lua_setglobal(L,"flags"); + t = lua_gettop(L); + for (i=1; i<argc; ++i) + { + if (*argv[i] == '-') + { + switch (argv[i][1]) + { + case 'v': version(); return 0; + case 'h': help(); return 0; + case 'p': setfield(L,t,"p",""); break; + case 'P': setfield(L,t,"P",""); break; + case 'o': setfield(L,t,"o",argv[++i]); break; + case 'n': setfield(L,t,"n",argv[++i]); break; + case 'H': setfield(L,t,"H",argv[++i]); break; + default: error(argv[i]); break; + } + } + else + { + setfield(L,t,"f",argv[i]); + break; + } + } + lua_pop(L,1); + } + +#ifndef LUA_SOURCE + { + int tolua_tolua_open (lua_State* L); + tolua_tolua_open(L); + } +#else + { + char* p; + char path[BUFSIZ] = ""; + strcpy(path,argv[0]); + p = strrchr(path,'/'); + if (p==NULL) p = strrchr(path,'\\'); + p = (p==NULL) ? path : p+1; + sprintf(p,"%s","../src/bin/lua/"); + lua_pushstring(L,path); lua_setglobal(L,"path"); + strcat(path,"all.lua"); + if (luaL_dofile(L,path)) { + printf("error loading all.lua: %s\n",lua_tostring(L,-1)); + return 1; + } + } +#endif + return 0; +} diff --git a/ThirdParty/tolua-5.2.4/src/bin/tolua.pkg b/ThirdParty/tolua-5.2.4/src/bin/tolua.pkg new file mode 100644 index 0000000..4693cb1 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/tolua.pkg @@ -0,0 +1,28 @@ +$lfile "lua/compat.lua" +$lfile "lua/basic.lua" +$lfile "lua/feature.lua" +$lfile "lua/verbatim.lua" +$lfile "lua/code.lua" +$lfile "lua/typedef.lua" +$lfile "lua/container.lua" +$lfile "lua/package.lua" +$lfile "lua/module.lua" +$lfile "lua/namespace.lua" +$lfile "lua/define.lua" +$lfile "lua/enumerate.lua" +$lfile "lua/declaration.lua" +$lfile "lua/variable.lua" +$lfile "lua/array.lua" +$lfile "lua/function.lua" +$lfile "lua/operator.lua" +$lfile "lua/class.lua" +$lfile "lua/clean.lua" +$lfile "lua/doit.lua" + +$[ +local err,msg = pcall(doit) +if not err then + local _,_,label,msg = strfind(msg,"(.-:.-:%s*)(.*)") + tolua_error(msg,label) +end +$] diff --git a/ThirdParty/tolua-5.2.4/src/bin/tolua_bind52_linux30_64.c b/ThirdParty/tolua-5.2.4/src/bin/tolua_bind52_linux30_64.c new file mode 100644 index 0000000..2d1a51c --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/tolua_bind52_linux30_64.c @@ -0,0 +1,4200 @@ +/* +** Lua binding: tolua +*/ + +#include "tolua.h" + +#ifndef __cplusplus +#include <stdlib.h> +#endif +#ifdef __cplusplus + extern "C" int tolua_bnd_takeownership (lua_State* L); // from tolua_map.c +#else + int tolua_bnd_takeownership (lua_State* L); /* from tolua_map.c */ +#endif +#include <string.h> + +/* Exported function */ +TOLUA_API int tolua_tolua_open (lua_State* tolua_S); +LUALIB_API int luaopen_tolua (lua_State* tolua_S); + + +/* function to register type */ +static void tolua_reg_types (lua_State* tolua_S) +{ +} + +/* Open lib function */ +LUALIB_API int luaopen_tolua (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 */ + static unsigned char B[] = { + 10,114, 97,119,116,121,112,101, 32, 61, 32,116,121,112,101, + 10,102,117,110, 99,116,105,111,110, 32,100,111, 95, 32, 40, + 102, 44, 32,101,114,114, 41, 10,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, + 108,111, 99, 97,108, 32, 97, 44, 98, 32, 61, 32,112, 99, 97, + 108,108, 40,102, 41, 10,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,101,108,115,101, + 32,114,101,116,117,114,110, 32, 98, 32,111,114, 32,116,114, + 117,101, 10,101,110,100, 10,101,110,100, 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,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, + 102,117,110, 99,116,105,111,110, 40,116, 44,102, 41, 10,102, + 111,114, 32,107, 44,118, 32,105,110, 32,112, 97,105,114,115, + 40,116, 41, 32,100,111, 10,102, 40,107, 44,118, 41, 10,101, + 110,100, 10,101,110,100, 10,102,111,114,101, 97, 99,104,105, + 32, 61, 32,102,117,110, 99,116,105,111,110, 40,116, 44,102, + 41, 10,102,111,114, 32,105, 44,118, 32,105,110, 32,105,112, + 97,105,114,115, 40,116, 41, 32,100,111, 10,102, 40,105, 44, + 118, 41, 10,101,110,100, 10,101,110,100, 10,103,101,116,110, + 32, 61, 32,102,117,110, 99,116,105,111,110, 40,116, 41, 10, + 114,101,116,117,114,110, 32, 35,116, 10,101,110,100, 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,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,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,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,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, 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, 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,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,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, 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, 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, + 102,117,110, 99,116,105,111,110, 32,102,108,117,115,104, 32, + 40,102, 41, 10,105,102, 32,102, 32,116,104,101,110, 32,102, + 58,102,108,117,115,104, 40, 41, 10,101,108,115,101, 32, 95, + 79, 85, 84, 80, 85, 84, 58,102,108,117,115,104, 40, 41, 10, + 101,110,100, 10,101,110,100, 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,105,102, 32,110, 97,109,101, 32, 61, 61, 32,110, + 105,108, 32,116,104,101,110, 10,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, + 95, 73, 78, 80, 85, 84, 32, 61, 32,105,111, 46,115,116,100, + 105,110, 10,114,101,116,117,114,110, 32,102, 44, 32,101,114, + 114, 44, 32, 99,111,100, 10,101,108,115,101, 10,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, 95, 73, 78, 80, 85, 84, 32, 61, 32, + 102, 32,111,114, 32, 95, 73, 78, 80, 85, 84, 10,114,101,116, + 117,114,110, 32,102, 44, 32,101,114,114, 44, 32, 99,111,100, + 10,101,110,100, 10,101,110,100, 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,105,102, 32,110, 97,109,101, 32, 61, 61, 32,110, + 105,108, 32,116,104,101,110, 10,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, 95, 79, 85, 84, 80, 85, 84, 32, 61, 32,105,111, 46,115, + 116,100,111,117,116, 10,114,101,116,117,114,110, 32,102, 44, + 32,101,114,114, 44, 32, 99,111,100, 10,101,108,115,101, 10, + 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, 95, 79, 85, 84, 80, 85, + 84, 32, 61, 32,102, 32,111,114, 32, 95, 79, 85, 84, 80, 85, + 84, 10,114,101,116,117,114,110, 32,102, 44, 32,101,114,114, + 44, 32, 99,111,100, 10,101,110,100, 10,101,110,100, 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,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, 95, 79, 85, 84, 80, 85, 84, 32, 61, 32,102, 32, + 111,114, 32, 95, 79, 85, 84, 80, 85, 84, 10,114,101,116,117, + 114,110, 32,102, 44, 32,101,114,114, 44, 32, 99,111,100, 10, + 101,110,100, 10,102,117,110, 99,116,105,111,110, 32,114,101, + 97,100, 32, 40, 46, 46, 46, 41, 10,108,111, 99, 97,108, 32, + 102, 32, 61, 32, 95, 73, 78, 80, 85, 84, 10,108,111, 99, 97, + 108, 32, 97,114,103, 32, 61, 32,123, 46, 46, 46,125, 10,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,102, 32, 61, 32,116, 97, 98, 46, + 114,101,109,111,118,101, 40, 97,114,103, 44, 32, 49, 41, 10, + 101,110,100, 10,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,102,117,110, 99,116,105,111,110, 32,119, + 114,105,116,101, 32, 40, 46, 46, 46, 41, 10,108,111, 99, 97, + 108, 32,102, 32, 61, 32, 95, 79, 85, 84, 80, 85, 84, 10,108, + 111, 99, 97,108, 32, 97,114,103, 32, 61, 32,123, 46, 46, 46, + 125, 10,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,102, 32, 61, 32,116, + 97, 98, 46,114,101,109,111,118,101, 40, 97,114,103, 44, 32, + 49, 41, 10,101,110,100, 10,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 + }; + if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) + lua_pcall(tolua_S,0,LUA_MULTRET,0); + } /* end of embedded lua code */ + + + { /* begin embedded lua code */ + static unsigned char B[] = { + 10, 95, 98, 97,115,105, 99, 32, 61, 32,123, 10, 91, 39,118, + 111,105,100, 39, 93, 32, 61, 32, 39, 39, 44, 10, 91, 39, 99, + 104, 97,114, 39, 93, 32, 61, 32, 39,110,117,109, 98,101,114, + 39, 44, 10, 91, 39,116,111,108,117, 97, 95,105,110,100,101, + 120, 39, 93, 32, 61, 32, 39,110,117,109, 98,101,114, 39, 44, + 10, 91, 39,116,111,108,117, 97, 95, 98,121,116,101, 39, 93, + 32, 61, 32, 39,110,117,109, 98,101,114, 39, 44, 10, 91, 39, + 116,111,108,117, 97, 95,117, 98,121,116,101, 39, 93, 32, 61, + 32, 39,110,117,109, 98,101,114, 39, 44, 10, 91, 39,105,110, + 116, 39, 93, 32, 61, 32, 39,110,117,109, 98,101,114, 39, 44, + 10, 91, 39,115,104,111,114,116, 39, 93, 32, 61, 32, 39,110, + 117,109, 98,101,114, 39, 44, 10, 91, 39,108,111,110,103, 39, + 93, 32, 61, 32, 39,110,117,109, 98,101,114, 39, 44, 10, 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, 91, 39,102,108,111, 97, + 116, 39, 93, 32, 61, 32, 39,110,117,109, 98,101,114, 39, 44, + 10, 91, 39,100,111,117, 98,108,101, 39, 93, 32, 61, 32, 39, + 110,117,109, 98,101,114, 39, 44, 10, 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, 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, 91, 39, 99,104, 97,114, 42, 39, 93, 32, 61, 32, 39, + 115,116,114,105,110,103, 39, 44, 10, 91, 39,118,111,105,100, + 42, 39, 93, 32, 61, 32, 39,117,115,101,114,100, 97,116, 97, + 39, 44, 10, 91, 39, 98,111,111,108, 39, 93, 32, 61, 32, 39, + 98,111,111,108,101, 97,110, 39, 44, 10, 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, 91, 39, 95,108,115,116, 97,116,101, + 39, 93, 32, 61, 32, 39,115,116, 97,116,101, 39, 44, 10, 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, 91, 39,108,117, 97, + 95, 70,117,110, 99,116,105,111,110, 39, 93, 32, 61, 32, 39, + 102,117,110, 99,116,105,111,110, 39, 44, 10, 91, 39, 76, 85, + 65, 95, 86, 65, 76, 85, 69, 39, 93, 32, 61, 32, 39,118, 97, + 108,117,101, 39, 44, 10,125, 10, 95, 98, 97,115,105, 99, 95, + 99,116,121,112,101, 32, 61, 32,123, 10,110,117,109, 98,101, + 114, 32, 61, 32, 34,108,117, 97, 95, 78,117,109, 98,101,114, + 34, 44, 10,115,116,114,105,110,103, 32, 61, 32, 34, 99,111, + 110,115,116, 32, 99,104, 97,114, 42, 34, 44, 10,117,115,101, + 114,100, 97,116, 97, 32, 61, 32, 34,118,111,105,100, 42, 34, + 44, 10, 98,111,111,108,101, 97,110, 32, 61, 32, 34, 98,111, + 111,108, 34, 44, 10,118, 97,108,117,101, 32, 61, 32, 34,105, + 110,116, 34, 44, 10,125, 10, 95,117,115,101,114,116,121,112, + 101, 32, 61, 32,123,125, 10, 95, 99,111,108,108,101, 99,116, + 32, 61, 32,123,125, 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,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, + 105,102, 32,110,111,116, 32, 98, 32,116,104,101,110, 10,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,101,110,100, 10,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,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,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,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,105,102, 32,110, 32,126, 61, 32, 48, 32, + 116,104,101,110, 10,114,101,116,117,114,110, 32,109, 10,101, + 110,100, 10,101,110,100, 10,114,101,116,117,114,110, 32,110, + 105,108, 10,101,110,100, 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,108,111, 99, 97,108, 32,111,117,116, 32, 61, + 32, 95, 79, 85, 84, 80, 85, 84, 10, 95, 79, 85, 84, 80, 85, + 84, 32, 61, 32, 95, 83, 84, 68, 69, 82, 82, 10,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,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,105,102, 32, 95, 99, + 117,114,114, 95, 99,111,100,101, 32,116,104,101,110, 10,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, + 10,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,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, 10,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, 10,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, 10,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,101,110,100, 10,101, + 108,115,101, 10,112,114,105,110,116, 40,100,101, 98,117,103, + 46,116,114, 97, 99,101, 98, 97, 99,107, 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, 41, 10,114,101, + 116,117,114,110, 10,101,110,100, 10, 95, 79, 85, 84, 80, 85, + 84, 32, 61, 32,111,117,116, 10,101,110,100, 10,102,117,110, + 99,116,105,111,110, 32,119, 97,114,110,105,110,103, 32, 40, + 109,115,103, 41, 10,108,111, 99, 97,108, 32,111,117,116, 32, + 61, 32, 95, 79, 85, 84, 80, 85, 84, 10, 95, 79, 85, 84, 80, + 85, 84, 32, 61, 32, 95, 83, 84, 68, 69, 82, 82, 10,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, 95, 79, 85, + 84, 80, 85, 84, 32, 61, 32,111,117,116, 10,101,110,100, 10, + 102,117,110, 99,116,105,111,110, 32,114,101,103,116,121,112, + 101, 32, 40,116, 41, 10,108,111, 99, 97,108, 32,102,116, 32, + 61, 32,102,105,110,100,116,121,112,101, 40,116, 41, 10,105, + 102, 32,105,115, 98, 97,115,105, 99, 40,116, 41, 32,116,104, + 101,110, 10,114,101,116,117,114,110, 32,116, 10,101,110,100, + 10,105,102, 32,110,111,116, 32,102,116, 32,116,104,101,110, + 10,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,101,110,100, 10, + 101,110,100, 10,102,117,110, 99,116,105,111,110, 32,116,121, + 112,101,118, 97,114, 40,116,121,112,101, 41, 10,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,111, + 114, 32,116,121,112,101, 32, 61, 61, 32, 34, 46, 46, 46, 34, + 32,116,104,101,110, 10,114,101,116,117,114,110, 32,116,121, + 112,101, 10,101,108,115,101, 10,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,105,102, 32,102,116, 32,116,104,101,110, 10, + 114,101,116,117,114,110, 32,102,116, 10,101,110,100, 10, 95, + 117,115,101,114,116,121,112,101, 91,116,121,112,101, 93, 32, + 61, 32,116,121,112,101, 10,114,101,116,117,114,110, 32,116, + 121,112,101, 10,101,110,100, 10,101,110,100, 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,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,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,116, 41, 10,108,111, 99, 97,108, 32, 98, 32, + 61, 32, 95, 98, 97,115,105, 99, 91,116, 93, 10,105,102, 32, + 98, 32,116,104,101,110, 10,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,101,110,100, 10,114,101,116,117,114,110, 32,110,105, + 108, 10,101,110,100, 10,102,117,110, 99,116,105,111,110, 32, + 115,112,108,105,116, 32, 40,115, 44,116, 41, 10,108,111, 99, + 97,108, 32,108, 32, 61, 32,123,110, 61, 48,125, 10,108,111, + 99, 97,108, 32,102, 32, 61, 32,102,117,110, 99,116,105,111, + 110, 32, 40,115, 41, 10,108, 46,110, 32, 61, 32,108, 46,110, + 32, 43, 32, 49, 10,108, 91,108, 46,110, 93, 32, 61, 32,115, + 10,114,101,116,117,114,110, 32, 34, 34, 10,101,110,100, 10, + 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,115, 32, 61, 32,103,115,117, 98, 40,115, 44, 34, + 94, 37,115, 43, 34, 44, 34, 34, 41, 10,115, 32, 61, 32,103, + 115,117, 98, 40,115, 44, 34, 37,115, 43, 36, 34, 44, 34, 34, + 41, 10,115, 32, 61, 32,103,115,117, 98, 40,115, 44,112, 44, + 102, 41, 10,108, 46,110, 32, 61, 32,108, 46,110, 32, 43, 32, + 49, 10,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,114,101,116,117,114,110, 32,108, 10,101,110,100, + 10,102,117,110, 99,116,105,111,110, 32, 99,111,110, 99, 97, + 116, 32, 40,116, 44,102, 44,108, 41, 10,108,111, 99, 97,108, + 32,115, 32, 61, 32, 39, 39, 10,108,111, 99, 97,108, 32,105, + 61,102, 10,119,104,105,108,101, 32,105, 60, 61,108, 32,100, + 111, 10,115, 32, 61, 32,115, 46, 46,116, 91,105, 93, 10,105, + 32, 61, 32,105, 43, 49, 10,105,102, 32,105, 32, 60, 61, 32, + 108, 32,116,104,101,110, 32,115, 32, 61, 32,115, 46, 46, 39, + 32, 39, 32,101,110,100, 10,101,110,100, 10,114,101,116,117, + 114,110, 32,115, 10,101,110,100, 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,108,111, 99, + 97,108, 32, 97,114,103, 32, 61, 32,123, 46, 46, 46,125, 10, + 108,111, 99, 97,108, 32,105, 61, 49, 10,119,104,105,108,101, + 32,105, 60, 61, 35, 97,114,103, 32,100,111, 10,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,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,108,105, + 110,101, 32, 61, 32,108,105,110,101, 32, 46, 46, 32, 39, 32, + 39, 10,101,110,100, 10,108,105,110,101, 32, 61, 32,108,105, + 110,101, 32, 46, 46, 32, 97,114,103, 91,105, 93, 10,105,102, + 32, 97,114,103, 91,105, 93, 32,126, 61, 32, 39, 39, 32,116, + 104,101,110, 10, 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,101,110,100, 10,105, 32, 61, 32,105, 43, 49, 10, + 101,110,100, 10,105,102, 32,115,116,114,102,105,110,100, 40, + 97,114,103, 91, 35, 97,114,103, 93, 44, 34, 91, 37, 47, 37, + 41, 37, 59, 37,123, 37,125, 93, 36, 34, 41, 32,116,104,101, + 110, 10, 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,101,110,100, 10,114,101,116,117,114,110, 32,108,105, + 110,101, 10,101,110,100, 10,102,117,110, 99,116,105,111,110, + 32,111,117,116,112,117,116, 32, 40, 46, 46, 46, 41, 10,108, + 111, 99, 97,108, 32, 97,114,103, 32, 61, 32,123, 46, 46, 46, + 125, 10,108,111, 99, 97,108, 32,105, 61, 49, 10,119,104,105, + 108,101, 32,105, 60, 61, 35, 97,114,103, 32,100,111, 10,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,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, + 119,114,105,116,101, 40, 39, 32, 39, 41, 10,101,110,100, 10, + 119,114,105,116,101, 40, 97,114,103, 91,105, 93, 41, 10,105, + 102, 32, 97,114,103, 91,105, 93, 32,126, 61, 32, 39, 39, 32, + 116,104,101,110, 10, 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,101,110,100, 10,105, 32, 61, 32,105, 43, 49, + 10,101,110,100, 10,105,102, 32,115,116,114,102,105,110,100, + 40, 97,114,103, 91, 35, 97,114,103, 93, 44, 34, 91, 37, 47, + 37, 41, 37, 59, 37,123, 37,125, 93, 36, 34, 41, 32,116,104, + 101,110, 10, 95, 99,111,110,116, 61,110,105,108, 32,119,114, + 105,116,101, 40, 39, 92,110, 39, 41, 10,101,110,100, 10,101, + 110,100,32 + }; + if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) + lua_pcall(tolua_S,0,LUA_MULTRET,0); + } /* end of embedded lua code */ + + + { /* begin embedded lua code */ + static unsigned char B[] = { + 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,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,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,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, 41, 10, + 101,110,100, 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,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,114,101,116,117,114,110, 32,102, 97,108,115,101, + 10,101,110,100, 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,114,101,116,117,114,110, 32,102, 97,108,115, + 101, 10,101,110,100, 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,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,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,115,101,108,102, 46,110, 97,109,101, 32, 61, + 32,110, 91, 49, 93, 10,105,102, 32,110,111,116, 32,110, 91, + 50, 93, 32,116,104,101,110, 10,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,101,110,100, 10,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,101,110,100, 10,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,101,110,100, 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,105,102, 32, + 115,101,108,102, 46,112, 97,114,101,110,116, 32,116,104,101, + 110, 10,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,119, + 104,105,108,101, 32,112, 97,114,101,110,116, 32,100,111, 10, + 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,114,101,116,117,114,110, 32,112, 97,114,101, + 110,116, 46,110, 97,109,101, 10,101,110,100, 10,112, 97,114, + 101,110,116, 32, 61, 32,112, 97,114,101,110,116, 46,112, 97, + 114,101,110,116, 10,101,110,100, 10,101,110,100, 10,114,101, + 116,117,114,110, 32,110,105,108, 10,101,110,100, 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,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,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,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,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,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,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,105, + 102, 32,115,101,108,102, 46,112, 97,114,101,110,116, 32,116, + 104,101,110, 10,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,101,110,100, 10,105,102, 32,115,101,108,102, 46, + 108,110, 97,109,101, 32, 97,110,100, 10,115,116,114,115,117, + 98, 40,115,101,108,102, 46,108,110, 97,109,101, 44, 49, 44, + 49, 41,126, 61, 34, 46, 34, 10,116,104,101,110, 10,114,101, + 116,117,114,110, 32,110, 46, 46, 39, 95, 39, 46, 46,115,101, + 108,102, 46,108,110, 97,109,101, 10,101,108,115,101, 10,114, + 101,116,117,114,110, 32,110, 46, 46, 39, 95, 39, 46, 46,115, + 101,108,102, 46,110, 97,109,101, 10,101,110,100, 10,101,110, + 100,32 + }; + if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) + lua_pcall(tolua_S,0,LUA_MULTRET,0); + } /* end of embedded lua code */ + + + { /* begin embedded lua code */ + static unsigned char B[] = { + 10, 99,108, 97,115,115, 86,101,114, 98, 97,116,105,109, 32, + 61, 32,123, 10,108,105,110,101, 32, 61, 32, 39, 39, 44, 10, + 99,111,110,100, 32, 61, 32,110,105,108, 44, 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,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,105,102, 32,115,101,108,102, + 46, 99,111,110,100, 32, 61, 61, 32, 39, 39, 32,116,104,101, + 110, 10,119,114,105,116,101, 40,115,101,108,102, 46,108,105, + 110,101, 41, 10,101,110,100, 10,101,110,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,115,117,112, 99,111,100,101, 32, 40, 41, + 10,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,119,114,105,116,101, 40,115,101,108,102, 46,108,105, + 110,101, 41, 10,119,114,105,116,101, 40, 39, 92,110, 39, 41, + 10,101,110,100, 10,101,110,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,114,101,103,105,115,116,101,114, 32, 40, 41, 10,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, + 119,114,105,116,101, 40,115,101,108,102, 46,108,105,110,101, + 41, 10,101,110,100, 10,101,110,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,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,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,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,102,117,110, 99,116,105,111,110, 32, 95, 86,101,114, 98, + 97,116,105,109, 32, 40,116, 41, 10,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, 97,112,112,101,110,100, + 40,116, 41, 10,114,101,116,117,114,110, 32,116, 10,101,110, + 100, 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,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, 99,111, + 110,100, 32, 61, 32, 39,115,114, 39, 10,108, 32, 61, 32,115, + 116,114,115,117, 98, 40,108, 44, 50, 41, 10,101,110,100, 10, + 114,101,116,117,114,110, 32, 95, 86,101,114, 98, 97,116,105, + 109, 32,123, 10,108,105,110,101, 32, 61, 32,108, 44, 10, 99, + 111,110,100, 32, 61, 32, 99,111,110,100, 32,111,114, 32, 39, + 39, 44, 10,125, 10,101,110,100,32 + }; + if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) + lua_pcall(tolua_S,0,LUA_MULTRET,0); + } /* end of embedded lua code */ + + + { /* begin embedded lua code */ + static unsigned char B[] = { + 10, 99,108, 97,115,115, 67,111,100,101, 32, 61, 32,123, 10, + 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,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, 41, 10,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,105,102, 32,110,111,116, 32,115, 32,116,104,101, + 110, 10,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,101,110,100, 10, + 111,117,116,112,117,116, 40, 39, 92,110, 32,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,111,117,116,112,117,116, 40, 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, 39, 41, 10, + 108,111, 99, 97,108, 32,116, 61,123,110, 61, 48,125, 10,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,108,111, 99, 97,108, 32,101, 32, 61, 32, + 39, 39, 10,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, 32, 39, 32,101,110, + 100, 10,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,101,110,100, 10, 41, 10, + 111,117,116,112,117,116, 40, 98, 46, 46,115,116,114, 98,121, + 116,101, 40, 34, 32, 34, 41, 41, 10,111,117,116,112,117,116, + 40, 39, 92,110, 32,125, 59, 92,110, 39, 41, 10,111,117,116, + 112,117,116, 40, 39, 32,105,102, 32, 40,108,117, 97, 76, 95, + 108,111, 97,100, 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, 34, 41, 32, 61, 61, 32, 76, 85, 65, 95, 79, 75, + 41, 92,110, 39, 41, 10,111,117,116,112,117,116, 40, 39, 32, + 108,117, 97, 95,112, 99, 97,108,108, 40,116,111,108,117, 97, + 95, 83, 44, 48, 44, 76, 85, 65, 95, 77, 85, 76, 84, 82, 69, + 84, 44, 48, 41, 59, 39, 41, 10,111,117,116,112,117,116, 40, + 39, 32,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,101,110,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,112,114,105,110,116, 40, + 105,100,101,110,116, 46, 46, 34, 67,111,100,101,123, 34, 41, + 10,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,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, + 102,117,110, 99,116,105,111,110, 32, 95, 67,111,100,101, 32, + 40,116, 41, 10,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, + 97,112,112,101,110,100, 40,116, 41, 10,114,101,116,117,114, + 110, 32,116, 10,101,110,100, 10,102,117,110, 99,116,105,111, + 110, 32, 67,111,100,101, 32, 40,108, 41, 10,114,101,116,117, + 114,110, 32, 95, 67,111,100,101, 32,123, 10,116,101,120,116, + 32, 61, 32,108, 10,125, 10,101,110,100,32 + }; + if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) + lua_pcall(tolua_S,0,LUA_MULTRET,0); + } /* end of embedded lua code */ + + + { /* begin embedded lua code */ + static unsigned char B[] = { + 10, 99,108, 97,115,115, 84,121,112,101,100,101,102, 32, 61, + 32,123, 10,117,116,121,112,101, 32, 61, 32, 39, 39, 44, 10, + 109,111,100, 32, 61, 32, 39, 39, 44, 10,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,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,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,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,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,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,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,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,114,101,116,117,114,110, 32,102, 97,108,115, + 101, 10,101,110,100, 10,102,117,110, 99,116,105,111,110, 32, + 95, 84,121,112,101,100,101,102, 32, 40,116, 41, 10,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, 97,112,112, + 101,110,100,116,121,112,101,100,101,102, 40,116, 41, 10,114, + 101,116,117,114,110, 32,116, 10,101,110,100, 10,102,117,110, + 99,116,105,111,110, 32, 84,121,112,101,100,101,102, 32, 40, + 115, 41, 10,105,102, 32,115,116,114,102,105,110,100, 40,115, + 44, 39, 91, 37, 42, 38, 93, 39, 41, 32,116,104,101,110, 10, + 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,101,110,100, 10,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,105,102, 32,110,111,116, 32,105,115, 98, 97,115,105, + 99, 40,116, 91,116, 46,110, 93, 41, 32,116,104,101,110, 10, + 114,101,116,117,114,110, 32, 95, 84,121,112,101,100,101,102, + 32,123, 10,117,116,121,112,101, 32, 61, 32,116, 91,116, 46, + 110, 93, 44, 10,116,121,112,101, 32, 61, 32,116, 91,116, 46, + 110, 45, 49, 93, 44, 10,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,125, 10,101,108,115,101, 10,114,101,116,117,114,110, 32, + 110,105,108, 10,101,110,100, 10,101,110,100,32 + }; + if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) + lua_pcall(tolua_S,0,LUA_MULTRET,0); + } /* end of embedded lua code */ + + + { /* begin embedded lua code */ + static unsigned char B[] = { + 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, 99,108, 97,115,115, + 67,111,110,116, 97,105,110,101,114, 32, 61, 10,123, 10, 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,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,112,117,115,104, + 40,115,101,108,102, 41, 10,108,111, 99, 97,108, 32,105, 61, + 49, 10,119,104,105,108,101, 32,115,101,108,102, 91,105, 93, + 32,100,111, 10,115,101,108,102, 91,105, 93, 58,100,101, 99, + 108,116,121,112,101, 40, 41, 10,105, 32, 61, 32,105, 43, 49, + 10,101,110,100, 10,112,111,112, 40, 41, 10,101,110,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,115,117,112, 99,111,100, + 101, 32, 40, 41, 10,112,117,115,104, 40,115,101,108,102, 41, + 10,108,111, 99, 97,108, 32,105, 61, 49, 10,119,104,105,108, + 101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10,115,101, + 108,102, 91,105, 93, 58,115,117,112, 99,111,100,101, 40, 41, + 10,105, 32, 61, 32,105, 43, 49, 10,101,110,100, 10,112,111, + 112, 40, 41, 10,101,110,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,104, 97,115,118, 97,114, 32, 40, 41, 10,108,111, 99, + 97,108, 32,105, 61, 49, 10,119,104,105,108,101, 32,115,101, + 108,102, 91,105, 93, 32,100,111, 10,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,114,101,116,117,114,110, 32, + 49, 10,101,110,100, 10,105, 32, 61, 32,105, 43, 49, 10,101, + 110,100, 10,114,101,116,117,114,110, 32, 48, 10,101,110,100, + 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,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,115,101,108,102, 46,110, 32, 61, 32, 48, 10,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,115,101,108,102, + 46,117,115,101,114,116,121,112,101,115, 32, 61, 32,123,125, + 10,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,115,101,108,102, + 46,108,110, 97,109,101,115, 32, 61, 32,123,125, 10,114,101, + 116,117,114,110, 32,115,101,108,102, 10,101,110,100, 10,102, + 117,110, 99,116,105,111,110, 32,112,117,115,104, 32, 40,116, + 41, 10,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, 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,102, + 117,110, 99,116,105,111,110, 32,112,111,112, 32, 40, 41, 10, + 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,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,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,102,117,110, 99,116,105,111,110, 32, 97, + 112,112,101,110,100, 32, 40,116, 41, 10,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,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,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,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,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,102,117,110, 99,116,105,111, + 110, 32, 97,112,112,101,110,100,101,110,117,109, 32, 40,116, + 41, 10,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,102,117,110, 99,116,105,111,110, 32, 97,112,112,108, + 121,116,121,112,101,100,101,102, 32, 40,116,121,112,101, 41, + 10,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,116,121,112,101, + 41, 10,101,110,100, 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,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,114,101,116,117,114,110, 32,116, 10,101,110,100, 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,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,102,117,110, + 99,116,105,111,110, 32,102,117,108,108,116,121,112,101, 32, + 40,116, 41, 10,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,119,104,105,108,101, 32, 99,117, + 114,114, 32,100,111, 10,105,102, 32, 99,117,114,114, 32,116, + 104,101,110, 10,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,114,101,116,117,114,110, 32, 99,117,114,114, 46,116, + 121,112,101,100,101,102,115, 91,116, 93, 10,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, + 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,101,110,100, 10,101, + 110,100, 10, 99,117,114,114, 32, 61, 32, 99,117,114,114, 46, + 112,114,111,120, 10,101,110,100, 10,114,101,116,117,114,110, + 32,116, 10,101,110,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,114,101,113,117,105,114,101, 99,111,108,108,101, 99,116, + 105,111,110, 32, 40,116, 41, 10,112,117,115,104, 40,115,101, + 108,102, 41, 10,108,111, 99, 97,108, 32,105, 61, 49, 10,108, + 111, 99, 97,108, 32,114, 32, 61, 32,102, 97,108,115,101, 10, + 119,104,105,108,101, 32,115,101,108,102, 91,105, 93, 32,100, + 111, 10,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,105, 32, 61, 32,105, + 43, 49, 10,101,110,100, 10,112,111,112, 40, 41, 10,114,101, + 116,117,114,110, 32,114, 10,101,110,100, 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,108,111, 99, 97,108, + 32,110, 97,109,101,115,112, 97, 99,101, 32, 61, 32, 39, 39, + 10,119,104,105,108,101, 32, 99,117,114,114, 32,100,111, 10, + 105,102, 32, 99,117,114,114, 32, 97,110,100, 10, 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,116, + 104,101,110, 10,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,101,110,100, 10, 99,117,114,114, 32, 61, 32, 99,117, + 114,114, 46,112,114,111,120, 10,101,110,100, 10,114,101,116, + 117,114,110, 32,110, 97,109,101,115,112, 97, 99,101, 10,101, + 110,100, 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,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,108,111, 99, 97,108, 32,110, 97,109,101, + 115,112, 97, 99,101, 32, 61, 32, 39, 39, 10,119,104,105,108, + 101, 32, 99,117,114,114, 32,100,111, 10,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,114, + 101,116,117,114,110, 32,110, 97,109,101,115,112, 97, 99,101, + 10,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,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,101,110,100, 10, + 99,117,114,114, 32, 61, 32, 99,117,114,114, 46,112,114,111, + 120, 10,101,110,100, 10,114,101,116,117,114,110, 32,110, 97, + 109,101,115,112, 97, 99,101, 10,101,110,100, 10,102,117,110, + 99,116,105,111,110, 32,105,115,101,110,117,109, 32, 40,116, + 121,112,101, 41, 10,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,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,115,101,108,102, 46,110, + 32, 61, 32,115,101,108,102, 46,110, 32, 43, 32, 49, 10,115, + 101,108,102, 91,115,101,108,102, 46,110, 93, 32, 61, 32,116, + 10,116, 46,112, 97,114,101,110,116, 32, 61, 32,115,101,108, + 102, 10,101,110,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, + 97,112,112,101,110,100,116,121,112,101,100,101,102, 32, 40, + 116, 41, 10,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,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, + 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,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,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,101,110,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, 97,112,112,101,110,100,117,115,101,114, + 116,121,112,101, 32, 40,116, 41, 10,108,111, 99, 97,108, 32, + 99,111,110,116, 97,105,110,101,114, 10,105,102, 32,116, 32, + 61, 61, 32,115,101,108,102, 46,110, 97,109,101, 32,116,104, + 101,110, 10, 99,111,110,116, 97,105,110,101,114, 32, 61, 32, + 115,101,108,102, 46,112,114,111,120, 10,101,108,115,101, 10, + 99,111,110,116, 97,105,110,101,114, 32, 61, 32,115,101,108, + 102, 10,101,110,100, 10,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, 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, 95, + 117,115,101,114,116,121,112,101, 91,102,116, 93, 32, 61, 32, + 102,116, 10,114,101,116,117,114,110, 32,102,116, 10,101,110, + 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, 97,112,112,101, + 110,100,101,110,117,109, 32, 40,116, 41, 10,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,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,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,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,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,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,115, + 101,108,102, 46,108,110, 97,109,101,115, 91,108,110, 97,109, + 101, 93, 32, 61, 32, 48, 10,101,108,115,101, 10,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,101,110,100, 10, + 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, + 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,116,121,112,101, 41, 10,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,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,116,121,112,101, 10,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,116,121,112,101, 49, 41, 10,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,101,110,100, + 10,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,108,111, 99, 97,108, + 32,101,110,118, 32, 61, 32,115,101,108,102, 10,119,104,105, + 108,101, 32,101,110,118, 32,100,111, 10,105,102, 32,101,110, + 118, 46,116,121,112,101,100,101,102,115, 32,116,104,101,110, + 10,108,111, 99, 97,108, 32,105, 61, 49, 10,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,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, 98, 97,115,101,116,121,112,101, 32,116,104, + 101,110, 10,108,111, 99, 97,108, 32,109,111,100, 49, 44,116, + 121,112,101, 49, 32, 61, 32,101,110,118, 46,116,121,112,101, + 100,101,102,115, 91,105, 93, 46,109,111,100, 44,101,110,118, + 46,116,121,112,101,100,101,102,115, 91,105, 93, 46,116,121, + 112,101, 10,108,111, 99, 97,108, 32,109,111,100, 50, 44,116, + 121,112,101, 50, 32, 61, 32, 97,112,112,108,121,116,121,112, + 101,100,101,102, 40,116,121,112,101, 49, 41, 10,114,101,116, + 117,114,110, 32,109,111,100, 50, 46, 46, 39, 32, 39, 46, 46, + 109,111,100, 49, 44,116,121,112,101, 50, 10,101,110,100, 10, + 105, 32, 61, 32,105, 43, 49, 10,101,110,100, 10,101,110,100, + 10,101,110,118, 32, 61, 32,101,110,118, 46,112, 97,114,101, + 110,116, 10,101,110,100, 10,114,101,116,117,114,110, 32, 39, + 39, 44,116,121,112,101, 10,101,110,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,105,115,116,121,112,101,100,101,102, 32, + 40,116,121,112,101, 41, 10,108,111, 99, 97,108, 32,101,110, + 118, 32, 61, 32,115,101,108,102, 10,119,104,105,108,101, 32, + 101,110,118, 32,100,111, 10,105,102, 32,101,110,118, 46,116, + 121,112,101,100,101,102,115, 32,116,104,101,110, 10,108,111, + 99, 97,108, 32,105, 61, 49, 10,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,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,114,101,116,117, + 114,110, 32,116,121,112,101, 10,101,110,100, 10,105, 32, 61, + 32,105, 43, 49, 10,101,110,100, 10,101,110,100, 10,101,110, + 118, 32, 61, 32,101,110,118, 46,112, 97,114,101,110,116, 10, + 101,110,100, 10,114,101,116,117,114,110, 32,110,105,108, 10, + 101,110,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,102,105, + 110,100,116,121,112,101, 32, 40,116, 41, 10,108,111, 99, 97, + 108, 32, 99,117,114,114, 32, 61, 32,115,101,108,102, 10,119, + 104,105,108,101, 32, 99,117,114,114, 32,100,111, 10,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,114,101,116,117, + 114,110, 32, 99,117,114,114, 46,116,121,112,101,100,101,102, + 115, 91,116, 93, 10,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,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,101,110,100, 10, 99,117,114,114, 32, 61, 32, + 99,117,114,114, 46,112,114,111,120, 10,101,110,100, 10,105, + 102, 32, 95, 98, 97,115,105, 99, 91,116, 93, 32,116,104,101, + 110, 10,114,101,116,117,114,110, 32,116, 10,101,110,100, 10, + 114,101,116,117,114,110, 32,110,105,108, 10,101,110,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,105,115,101,110,117,109, + 32, 40,116,121,112,101, 41, 10,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,114,101,116,117,114,110, 32,116,114,117, + 101, 10,101,110,100, 10,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, + 108,111, 99, 97,108, 32,101,110,118, 32, 61, 32,115,101,108, + 102, 10,119,104,105,108,101, 32,101,110,118, 32,100,111, 10, + 105,102, 32,101,110,118, 46,101,110,117,109,115, 32,116,104, + 101,110, 10,108,111, 99, 97,108, 32,105, 61, 49, 10,119,104, + 105,108,101, 32,101,110,118, 46,101,110,117,109,115, 91,105, + 93, 32,100,111, 10,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,114,101, + 116,117,114,110, 32,116,114,117,101, 10,101,110,100, 10,105, + 32, 61, 32,105, 43, 49, 10,101,110,100, 10,101,110,100, 10, + 101,110,118, 32, 61, 32,101,110,118, 46,112, 97,114,101,110, + 116, 10,101,110,100, 10,114,101,116,117,114,110, 32,102, 97, + 108,115,101, 10,101,110,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,100,111,112, 97,114,115,101, 32, 40,115, 41, 10,100, + 111, 10,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, + 105,102, 32, 98, 32,116,104,101,110, 10, 67,111,100,101, 40, + 115,116,114,115,117, 98, 40, 99,111,100,101, 44, 50, 44, 45, + 50, 41, 41, 10,114,101,116,117,114,110, 32,115,116,114,115, + 117, 98, 40,115, 44,101, 43, 49, 41, 10,101,110,100, 10,101, + 110,100, 10,100,111, 10,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,105,102, 32, 98, 32,116,104,101,110, 10, 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, 86,101,114, 98, 97,116,105, + 109, 40, 99,111,100,101, 44, 39,114, 39, 41, 10,114,101,116, + 117,114,110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, + 49, 41, 10,101,110,100, 10,101,110,100, 10,100,111, 10,108, + 111, 99, 97,108, 32, 98, 44,101, 44,108,105,110,101, 32, 61, + 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, + 42, 37, 36, 40, 46, 45, 92,110, 41, 34, 41, 10,105,102, 32, + 98, 32,116,104,101,110, 10, 86,101,114, 98, 97,116,105,109, + 40,108,105,110,101, 41, 10,114,101,116,117,114,110, 32,115, + 116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10,101,110, + 100, 10,101,110,100, 10,100,111, 10,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,105,102, 32, 98, 32, + 116,104,101,110, 10, 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, 77,111,100,117,108,101, 40,110, 97,109,101, 44, 98, + 111,100,121, 41, 10,114,101,116,117,114,110, 32,115,116,114, + 115,117, 98, 40,115, 44,101, 43, 49, 41, 10,101,110,100, 10, + 101,110,100, 10,100,111, 10,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, 34, 41, 10,105,102, 32, 98, + 32,116,104,101,110, 10, 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, 78, 97,109,101,115,112, 97, 99,101, 40,110, 97, + 109,101, 44, 98,111,100,121, 41, 10,114,101,116,117,114,110, + 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, + 101,110,100, 10,101,110,100, 10,100,111, 10,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,105,102, 32, 98, 32,116,104,101,110, 10, 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, 68,101,102,105,110,101, + 40,110, 97,109,101, 41, 10,114,101,116,117,114,110, 32,115, + 116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10,101,110, + 100, 10,101,110,100, 10,100,111, 10,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,105,102, 32, 98, 32,116,104,101,110, 10, 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, 69,110,117,109,101, + 114, 97,116,101, 40,110, 97,109,101, 44, 98,111,100,121, 41, + 10,114,101,116,117,114,110, 32,115,116,114,115,117, 98, 40, + 115, 44,101, 43, 49, 41, 10,101,110,100, 10,101,110,100, 10, + 100,111, 10,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,105,102, 32, 98, 32,116,104,101,110, 10, 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, 69,110,117,109,101,114, 97, + 116,101, 40,110, 97,109,101, 44, 98,111,100,121, 41, 10,114, + 101,116,117,114,110, 32,115,116,114,115,117, 98, 40,115, 44, + 101, 43, 49, 41, 10,101,110,100, 10,101,110,100, 10,100,111, + 10,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, 93, 42,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,105,102, 32,110,111,116, 32, 98, 32,116, + 104,101,110, 10, 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, 93, 42,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, 37, 98,123,125, 37, + 115, 42, 59, 63, 37,115, 42, 34, 41, 10,101,110,100, 10,105, + 102, 32, 98, 32,116,104,101,110, 10, 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, 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,114,101,116,117,114,110, 32,115,116, + 114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10,101,110,100, + 10,101,110,100, 10,100,111, 10,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, 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, + 105,102, 32,110,111,116, 32, 98, 32,116,104,101,110, 10, 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,101,110,100, 10,105,102, 32, 98, 32,116,104,101,110, 10, + 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, 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,114,101,116,117,114,110, 32,115, + 116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10,101,110, + 100, 10,101,110,100, 10,100,111, 10,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, 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, 46, 45, 37, 98, + 123,125, 37,115, 42, 59, 63, 37,115, 42, 34, 41, 10,105,102, + 32,110,111,116, 32, 98, 32,116,104,101,110, 10, 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,101,110,100, 10,105,102, 32, 98, 32, + 116,104,101,110, 10, 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, 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,114,101,116, + 117,114,110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, + 49, 41, 10,101,110,100, 10,101,110,100, 10,100,111, 10,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, 98, 97,115,101, 32, 61, + 32, 39, 39, 32, 98,111,100,121, 32, 61, 32, 39, 39, 10, 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, 10,105,102, 32,110,111,116, + 32, 98, 32,116,104,101,110, 10, 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, 10,105,102, 32,110,111,116, 32, 98, 32,116,104, + 101,110, 10, 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, 46, 45, 41, 37,115, 42, 40, 37, 98,123, + 125, 41, 37,115, 42, 59, 37,115, 42, 34, 41, 10,105,102, 32, + 110,111,116, 32, 98, 32,116,104,101,110, 10, 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, 42, 40, 91, 95, 37, + 119, 93, 91, 95, 37,119, 64, 93, 42, 41, 37,115, 42, 40, 46, + 45, 41, 37,115, 42, 40, 37, 98,123,125, 41, 37,115, 42, 59, + 37,115, 42, 34, 41, 10,105,102, 32,110,111,116, 32, 98, 32, + 116,104,101,110, 10, 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, 46, 45, 41, 37,115, 42, 40, 37, + 98,123,125, 41, 37,115, 42, 59, 37,115, 42, 34, 41, 10,105, + 102, 32,110,111,116, 32, 98, 32,116,104,101,110, 10, 98, 97, + 115,101, 32, 61, 32, 39, 39, 10, 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, 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, 37,115, 42, 34, 41, 10,105,102, 32, + 110,111,116, 32, 98, 32,116,104,101,110, 10, 98, 97,115,101, + 32, 61, 32, 39, 39, 10, 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,117,110,105,111,110, 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, 37,115, 42, 34, 41, 10,101,110,100, 10,101,110, + 100, 10,101,110,100, 10,101,110,100, 10,101,110,100, 10,101, + 110,100, 10,105,102, 32, 98, 32,116,104,101,110, 10,105,102, + 32, 98, 97,115,101, 32,126, 61, 32, 39, 39, 32,116,104,101, + 110, 10,108,111, 99, 97,108, 32, 98, 44,101, 10, 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, 93, 42, 41, 36, 34, 41, 10,101,110,100, 10, + 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, 67,108, 97, + 115,115, 40,110, 97,109,101, 44, 98, 97,115,101, 44, 98,111, + 100,121, 41, 10,114,101,116,117,114,110, 32,115,116,114,115, + 117, 98, 40,115, 44,101, 43, 49, 41, 10,101,110,100, 10,101, + 110,100, 10,100,111, 10,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,105,102, 32, 98, 32,116,104,101,110, 10, + 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, 84,121,112, + 101,100,101,102, 40,116,121,112,101,115, 41, 10,114,101,116, + 117,114,110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, + 49, 41, 10,101,110,100, 10,101,110,100, 10,100,111, 10,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, 93, 42, 91, 95, 37,119, 37,100, 93, 41, + 37,115, 42, 59, 37,115, 42, 34, 41, 10,105,102, 32, 98, 32, + 116,104,101,110, 10, 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, 86, 97,114,105, 97, 98,108,101, 40,100,101, 99,108, + 41, 10,114,101,116,117,114,110, 32,115,116,114,115,117, 98, + 40,115, 44,101, 43, 49, 41, 10,101,110,100, 10,101,110,100, + 10,100,111, 10,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,105,102, 32, 98, 32,116,104,101,110, + 10, 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, 86, 97, + 114,105, 97, 98,108,101, 40,100,101, 99,108, 41, 10,114,101, + 116,117,114,110, 32,115,116,114,115,117, 98, 40,115, 44,101, + 43, 49, 41, 10,101,110,100, 10,101,110,100, 10,100,111, 10, + 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,105, + 102, 32, 98, 32,116,104,101,110, 10, 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, 65,114,114, 97,121, 40,100,101, 99, + 108, 41, 10,114,101,116,117,114,110, 32,115,116,114,115,117, + 98, 40,115, 44,101, 43, 49, 41, 10,101,110,100, 10,101,110, + 100, 10,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, 95, 99,117,114,114, 95, 99,111,100,101, + 32, 61, 32,115, 10,101,114,114,111,114, 40, 34, 35,112, 97, + 114,115,101, 32,101,114,114,111,114, 34, 41, 10,101,108,115, + 101, 10,114,101,116,117,114,110, 32, 34, 34, 10,101,110,100, + 10,101,110,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,112, + 97,114,115,101, 32, 40,115, 41, 10,119,104,105,108,101, 32, + 115, 32,126, 61, 32, 39, 39, 32,100,111, 10,115, 32, 61, 32, + 115,101,108,102, 58,100,111,112, 97,114,115,101, 40,115, 41, + 10,101,110,100, 10,101,110,100,32 + }; + if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) + lua_pcall(tolua_S,0,LUA_MULTRET,0); + } /* end of embedded lua code */ + + + { /* begin embedded lua code */ + static unsigned char B[] = { + 10, 99,108, 97,115,115, 80, 97, 99,107, 97,103,101, 32, 61, + 32,123, 10, 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, + 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,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,108,111, 99, 97,108, 32,105, 61, 49, 10,119,104,105,108, + 101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10,115,101, + 108,102, 91,105, 93, 58,112,114,105,110,116, 40, 34, 34, 44, + 34, 34, 41, 10,105, 32, 61, 32,105, 43, 49, 10,101,110,100, + 10,101,110,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,101, + 112,114,111, 99,101,115,115, 32, 40, 41, 10,108,111, 99, 97, + 108, 32, 76, 32, 61, 32,123,125, 10,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, 10,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,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,102,117,110, 99,116,105,111,110, 32, 40, 99, 41, + 10,116,105,110,115,101,114,116, 40, 76, 44, 99, 41, 10,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,101,110, + 100, 41, 10,108,111, 99, 97,108, 32, 67, 32, 61, 32,123,125, + 10,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, + 10,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,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,102,117,110, 99,116, + 105,111,110, 32, 40, 99, 41, 10,116,105,110,115,101,114,116, + 40, 67, 44, 99, 41, 10,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,101,110,100, 41, 10,108,111, 99, 97,108, + 32, 86, 32, 61, 32,123,125, 10,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,116,105, + 110,115,101,114,116, 40, 86, 44,118, 41, 10,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,101,110,100, 41, 10,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, 10,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,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, + 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,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,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,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, 10,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, 10,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, 10,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, 10,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, 10,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, 10,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, 10,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, 10,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, 10,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,114, + 101,116,117,114,110, 32, 76, 91,116,111,110,117,109, 98,101, + 114, 40,110, 41, 93, 10,101,110,100, 41, 10,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,114,101,116,117,114,110, 32, 67, + 91,116,111,110,117,109, 98,101,114, 40,110, 41, 93, 10,101, + 110,100, 41, 10,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,114,101,116,117, + 114,110, 32, 86, 91,116,111,110,117,109, 98,101,114, 40,110, + 41, 93, 10,101,110,100, 41, 10,101,110,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,101, 97,109, 98,108,101, 32, 40, 41, + 10,111,117,116,112,117,116, 40, 39, 47, 42, 92,110, 39, 41, + 10,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, + 111,117,116,112,117,116, 40, 39, 42, 47, 92,110, 92,110, 39, + 41, 10,111,117,116,112,117,116, 40, 39, 35,105,110, 99,108, + 117,100,101, 32, 34,116,111,108,117, 97, 46,104, 34, 92,110, + 92,110, 39, 41, 10,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,111,117,116,112,117,116, 40, 39, + 35,105,110, 99,108,117,100,101, 32, 60,115,116,100,108,105, + 98, 46,104, 62, 92,110, 39, 41, 10,111,117,116,112,117,116, + 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10,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,111, + 117,116,112,117,116, 40, 39,101,120,116,101,114,110, 32, 34, + 67, 34, 32,105,110,116, 32,116,111,108,117, 97, 95, 98,110, + 100, 95,116, 97,107,101,111,119,110,101,114,115,104,105,112, + 32, 40,108,117, 97, 95, 83,116, 97,116,101, 42, 32, 76, 41, + 59, 32, 47, 47, 32,102,114,111,109, 32,116,111,108,117, 97, + 95,109, 97,112, 46, 99, 92,110, 39, 41, 10,111,117,116,112, + 117,116, 40, 39, 35,101,108,115,101, 92,110, 39, 41, 10,111, + 117,116,112,117,116, 40, 39,105,110,116, 32,116,111,108,117, + 97, 95, 98,110,100, 95,116, 97,107,101,111,119,110,101,114, + 115,104,105,112, 32, 40,108,117, 97, 95, 83,116, 97,116,101, + 42, 32, 76, 41, 59, 32, 47, 42, 32,102,114,111,109, 32,116, + 111,108,117, 97, 95,109, 97,112, 46, 99, 32, 42, 47, 92,110, + 39, 41, 10,111,117,116,112,117,116, 40, 39, 35,101,110,100, + 105,102, 92,110, 39, 41, 10,111,117,116,112,117,116, 40, 39, + 35,105,110, 99,108,117,100,101, 32, 60,115,116,114,105,110, + 103, 46,104, 62, 92,110, 92,110, 39, 41, 10,105,102, 32,110, + 111,116, 32,102,108, 97,103,115, 46,104, 32,116,104,101,110, + 10,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,111,117,116,112,117,116, 40, 39, 84, 79, + 76, 85, 65, 95, 65, 80, 73, 32,105,110,116, 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,111,117,116,112,117,116, 40, 39, 76, 85, 65, 76, + 73, 66, 95, 65, 80, 73, 32,105,110,116, 32,108,117, 97,111, + 112,101,110, 95, 39, 46, 46,115,101,108,102, 46,110, 97,109, + 101, 46, 46, 39, 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,111, + 117,116,112,117,116, 40, 39, 92,110, 39, 41, 10,101,110,100, + 10,108,111, 99, 97,108, 32,105, 61, 49, 10,119,104,105,108, + 101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10,115,101, + 108,102, 91,105, 93, 58,112,114,101, 97,109, 98,108,101, 40, + 41, 10,105, 32, 61, 32,105, 43, 49, 10,101,110,100, 10,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,111,117,116,112,117, + 116, 40, 39, 92,110, 39, 41, 10,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,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,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,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,111,117,116,112,117,116, + 40, 39,123, 39, 41, 10,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, + 111,117,116,112,117,116, 40, 39, 32,116,111,108,117, 97, 95, + 114,101,108,101, 97,115,101, 40,116,111,108,117, 97, 95, 83, + 44,115,101,108,102, 41, 59, 39, 41, 10,111,117,116,112,117, + 116, 40, 39, 32,100,101,108,101,116,101, 32,115,101,108,102, + 59, 39, 41, 10,111,117,116,112,117,116, 40, 39, 32,114,101, + 116,117,114,110, 32, 48, 59, 39, 41, 10,111,117,116,112,117, + 116, 40, 39,125, 39, 41, 10,101,110,100, 10,111,117,116,112, + 117,116, 40, 39, 35,101,110,100,105,102, 92,110, 92,110, 39, + 41, 10,101,110,100, 10,111,117,116,112,117,116, 40, 39, 92, + 110, 39, 41, 10,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,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, + 111,117,116,112,117,116, 40, 39,123, 39, 41, 10,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, 32,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, 32,101,110, + 100, 41, 10,111,117,116,112,117,116, 40, 39,125, 39, 41, 10, + 111,117,116,112,117,116, 40, 39, 92,110, 39, 41, 10,101,110, + 100, 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, 41, 10,112,117,115,104, 40,115,101,108,102, + 41, 10,111,117,116,112,117,116, 40, 34, 47, 42, 32, 79,112, + 101,110, 32,108,105, 98, 32,102,117,110, 99,116,105,111,110, + 32, 42, 47, 34, 41, 10,111,117,116,112,117,116, 40, 39, 76, + 85, 65, 76, 73, 66, 95, 65, 80, 73, 32,105,110,116, 32,108, + 117, 97,111,112,101,110, 95, 39, 46, 46,115,101,108,102, 46, + 110, 97,109,101, 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,111,117,116,112,117,116, 40, 34,123, 34, 41, 10,111,117, + 116,112,117,116, 40, 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, + 111,117,116,112,117,116, 40, 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,111,117,116,112,117,116, 40, 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,111,117,116,112,117,116, 40, 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,108,111, 99, 97,108, 32,105, 61, 49, 10,119,104, + 105,108,101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10, + 115,101,108,102, 91,105, 93, 58,114,101,103,105,115,116,101, + 114, 40, 41, 10,105, 32, 61, 32,105, 43, 49, 10,101,110,100, + 10,111,117,116,112,117,116, 40, 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,111,117,116,112,117,116, 40, + 34, 32,114,101,116,117,114,110, 32, 49, 59, 34, 41, 10,111, + 117,116,112,117,116, 40, 34,125, 34, 41, 10,111,117,116,112, + 117,116, 40, 34, 47, 42, 32, 79,112,101,110, 32,116,111,108, + 117, 97, 32,102,117,110, 99,116,105,111,110, 32, 42, 47, 34, + 41, 10,111,117,116,112,117,116, 40, 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,111, + 117,116,112,117,116, 40, 34,123, 34, 41, 10,111,117,116,112, + 117,116, 40, 34, 32,108,117, 97, 95,112,117,115,104, 99,102, + 117,110, 99,116,105,111,110, 40,116,111,108,117, 97, 95, 83, + 44, 32,108,117, 97,111,112,101,110, 95, 34, 46, 46,115,101, + 108,102, 46,110, 97,109,101, 46, 46, 34, 41, 59, 34, 41, 10, + 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, 32, 34, 39, 46, 46,115,101,108,102, 46,110, 97,109, + 101, 46, 46, 39, 34, 41, 59, 39, 41, 10,111,117,116,112,117, + 116, 40, 34, 32,108,117, 97, 95, 99, 97,108,108, 40,116,111, + 108,117, 97, 95, 83, 44, 32, 49, 44, 32, 48, 41, 59, 34, 41, + 10,111,117,116,112,117,116, 40, 34, 32,114,101,116,117,114, + 110, 32, 49, 59, 34, 41, 10,111,117,116,112,117,116, 40, 34, + 125, 34, 41, 10,112,111,112, 40, 41, 10,101,110,100, 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,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, + 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,111,117,116,112,117,116, 40, 39, 42, 47, 92, + 110, 92,110, 39, 41, 10,105,102, 32,110,111,116, 32,102,108, + 97,103,115, 46,104, 32,116,104,101,110, 10,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, + 111,117,116,112,117,116, 40, 39, 84, 79, 76, 85, 65, 95, 65, + 80, 73, 32,105,110,116, 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,111,117, + 116,112,117,116, 40, 39, 76, 85, 65, 76, 73, 66, 95, 65, 80, + 73, 32,105,110,116, 32,108,117, 97,111,112,101,110, 95, 39, + 46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46, 39, 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,111,117,116,112,117,116, + 40, 39, 92,110, 39, 41, 10,101,110,100, 10,101,110,100, 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,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,114,101,116, + 117,114,110, 32,115,101,108,102, 10,101,110,100, 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,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,115, 61, 32, 34, 92,110, 34, 32, 46, + 46, 32,115, 32, 46, 46, 32, 34, 92,110, 34, 10,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, + 119,104,105,108,101, 32,101, 32,100,111, 10,116, 32, 61, 32, + 115,116,114,108,111,119,101,114, 40,116, 41, 10,105,102, 32, + 116, 32, 61, 61, 32, 34, 98,101,103,105,110, 34, 32,116,104, + 101,110, 10, 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,105,102, 32,110,111,116, 32,101, 32,116, + 104,101,110, 10,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,101,110,100, 10,101,110, + 100, 10, 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, 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,101,110,100, 10, + 114,101,116,117,114,110, 32, 99,111,100,101, 10,101,110,100, + 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,108,111, + 99, 97,108, 32,101,120,116, 32, 61, 32, 34,112,107,103, 34, + 10,105,102, 32,102,110, 32,116,104,101,110, 10,108,111, 99, + 97,108, 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,105,102, 32,110,111,116, 32,115,116, 32,116,104,101,110, + 10,101,114,114,111,114, 40, 39, 35, 39, 46, 46,109,115,103, + 41, 10,101,110,100, 10,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,101,110,100, 10,108,111, 99, 97,108, + 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,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, 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,101,110,100, 10,105,102, 32,102,110, 32,116,104,101,110, + 10,114,101, 97,100,102,114,111,109, 40, 41, 10,101,110,100, + 10, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40, 99,111, + 100,101, 44, 39, 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,108,111, 99, 97,108, 32,110,115,117, 98, + 115,116, 10,114,101,112,101, 97,116, 10, 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, 37,115, + 42, 92,110, 39, 44, 10,102,117,110, 99,116,105,111,110, 32, + 40,107,105,110,100, 44,102,110, 41, 10,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,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,105,102, 32,110,111,116, + 32,102,112, 32,116,104,101,110, 10,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,101,110,100, 10,108,111, 99, 97,108, 32, + 115, 32, 61, 32,114,101, 97,100, 40,102,112, 44, 39, 42, 97, + 39, 41, 10, 99,108,111,115,101,102,105,108,101, 40,102,112, + 41, 10,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,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,101,108,115,101,105,102, 32,107,105,110,100, 32, + 61, 61, 32, 39,112, 39, 32,116,104,101,110, 10,114,101,116, + 117,114,110, 32, 34, 92,110, 92,110, 34, 32, 46, 46, 32,115, + 10,101,108,115,101,105,102, 32,107,105,110,100, 32, 61, 61, + 32, 39,108, 39, 32,116,104,101,110, 10,114,101,116,117,114, + 110, 32, 34, 92,110, 36, 91, 92,110, 34, 32, 46, 46, 32,115, + 32, 46, 46, 32, 34, 92,110, 36, 93, 92,110, 34, 10,101,108, + 115,101, 10,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, 32,111,114, 32, + 36,108,102,105,108,101, 41, 39, 41, 10,101,110,100, 10,101, + 110,100, 41, 10,117,110,116,105,108, 32,110,115,117, 98,115, + 116, 61, 61, 48, 10,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,112,117, + 115,104, 40,116, 41, 10,116, 58,112,114,101,112,114,111, 99, + 101,115,115, 40, 41, 10,116, 58,112, 97,114,115,101, 40,116, + 46, 99,111,100,101, 41, 10,112,111,112, 40, 41, 10,114,101, + 116,117,114,110, 32,116, 10,101,110,100,32 + }; + if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) + lua_pcall(tolua_S,0,LUA_MULTRET,0); + } /* end of embedded lua code */ + + + { /* begin embedded lua code */ + static unsigned char B[] = { + 10, 99,108, 97,115,115, 77,111,100,117,108,101, 32, 61, 32, + 123, 10, 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,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, 41, 10,112,117, + 115,104, 40,115,101,108,102, 41, 10,111,117,116,112,117,116, + 40, 39, 32,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,111,117,116,112,117,116, 40, 39, 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, 34, 39, 46, 46,115,101, + 108,102, 46,110, 97,109,101, 46, 46, 39, 34, 41, 59, 39, 41, + 10,108,111, 99, 97,108, 32,105, 61, 49, 10,119,104,105,108, + 101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10,115,101, + 108,102, 91,105, 93, 58,114,101,103,105,115,116,101,114, 40, + 41, 10,105, 32, 61, 32,105, 43, 49, 10,101,110,100, 10,111, + 117,116,112,117,116, 40, 39, 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, 39, 41, 10,112,111,112, 40, 41, 10,101,110,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,112,114,105, + 110,116, 40,105,100,101,110,116, 46, 46, 34, 77,111,100,117, + 108,101,123, 34, 41, 10,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,108,111, 99, 97,108, 32,105, 61, 49, 10,119, + 104,105,108,101, 32,115,101,108,102, 91,105, 93, 32,100,111, + 10,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,105, 32, 61, 32,105, 43, 49, 10,101,110,100, 10,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,102,117,110, + 99,116,105,111,110, 32, 95, 77,111,100,117,108,101, 32, 40, + 116, 41, 10,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, 97,112,112,101,110,100, 40,116, 41, 10,114,101,116,117, + 114,110, 32,116, 10,101,110,100, 10,102,117,110, 99,116,105, + 111,110, 32, 77,111,100,117,108,101, 32, 40,110, 44, 98, 41, + 10,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,112,117,115,104, 40,116, + 41, 10,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, 10,112,111,112, 40, 41, 10,114,101,116,117, + 114,110, 32,116, 10,101,110,100,32 + }; + if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) + lua_pcall(tolua_S,0,LUA_MULTRET,0); + } /* end of embedded lua code */ + + + { /* begin embedded lua code */ + static unsigned char B[] = { + 10, 99,108, 97,115,115, 78, 97,109,101,115,112, 97, 99,101, + 32, 61, 32,123, 10, 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, + 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,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,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, + 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,108,111, + 99, 97,108, 32,105, 61, 49, 10,119,104,105,108,101, 32,115, + 101,108,102, 91,105, 93, 32,100,111, 10,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,105, 32, 61, 32,105, + 43, 49, 10,101,110,100, 10,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,102,117,110, 99,116,105,111,110, 32, + 95, 78, 97,109,101,115,112, 97, 99,101, 32, 40,116, 41, 10, + 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, 97,112,112,101,110,100, 40,116, 41, 10,114,101,116,117, + 114,110, 32,116, 10,101,110,100, 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,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, + 112,117,115,104, 40, 99, 41, 10, 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, 10,112,111,112, 40, + 41, 10,101,110,100,32 + }; + if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) + lua_pcall(tolua_S,0,LUA_MULTRET,0); + } /* end of embedded lua code */ + + + { /* begin embedded lua code */ + static unsigned char B[] = { + 10, 99,108, 97,115,115, 68,101,102,105,110,101, 32, 61, 32, + 123, 10,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,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, 41, + 10,111,117,116,112,117,116, 40, 39, 32,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,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,112,114,105, + 110,116, 40,105,100,101,110,116, 46, 46, 34, 68,101,102,105, + 110,101,123, 34, 41, 10,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,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,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,102,117,110, 99,116,105,111,110, 32, 95, 68,101, + 102,105,110,101, 32, 40,116, 41, 10,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,116, 58, 98,117,105,108,100,110, + 97,109,101,115, 40, 41, 10,105,102, 32,116, 46,110, 97,109, + 101, 32, 61, 61, 32, 39, 39, 32,116,104,101,110, 10,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,101,110,100, 10, 97,112,112, + 101,110,100, 40,116, 41, 10,114,101,116,117,114,110, 32,116, + 10,101,110,100, 10,102,117,110, 99,116,105,111,110, 32, 68, + 101,102,105,110,101, 32, 40,110, 41, 10,114,101,116,117,114, + 110, 32, 95, 68,101,102,105,110,101,123, 10,110, 97,109,101, + 32, 61, 32,110, 10,125, 10,101,110,100,32 + }; + if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) + lua_pcall(tolua_S,0,LUA_MULTRET,0); + } /* end of embedded lua code */ + + + { /* begin embedded lua code */ + static unsigned char B[] = { + 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,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, 41, 10,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,108,111, 99, 97,108, 32, + 105, 61, 49, 10,119,104,105,108,101, 32,115,101,108,102, 91, + 105, 93, 32,100,111, 10,111,117,116,112,117,116, 40, 39, 32, + 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,105, 32, 61, + 32,105, 43, 49, 10,101,110,100, 10,101,110,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,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,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, + 108,111, 99, 97,108, 32,105, 61, 49, 10,119,104,105,108,101, + 32,115,101,108,102, 91,105, 93, 32,100,111, 10,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,105, 32, 61, 32,105, 43, 49, + 10,101,110,100, 10,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,102,117,110, 99,116,105,111,110, 32, 95, 69, + 110,117,109,101,114, 97,116,101, 32, 40,116, 41, 10,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, 97, + 112,112,101,110,100, 40,116, 41, 10, 97,112,112,101,110,100, + 101,110,117,109, 40,116, 41, 10,114,101,116,117,114,110, 32, + 116, 10,101,110,100, 10,102,117,110, 99,116,105,111,110, 32, + 69,110,117,109,101,114, 97,116,101, 32, 40,110, 44, 98, 41, + 10,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, 10,108,111, 99, 97,108, 32,105, 32, + 61, 32, 49, 10,108,111, 99, 97,108, 32,101, 32, 61, 32,123, + 110, 61, 48,125, 10,119,104,105,108,101, 32,116, 91,105, 93, + 32,100,111, 10,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, + 10,101, 46,110, 32, 61, 32,101, 46,110, 32, 43, 32, 49, 10, + 101, 91,101, 46,110, 93, 32, 61, 32,116,116, 91, 49, 93, 10, + 105, 32, 61, 32,105, 43, 49, 10,101,110,100, 10,105, 32, 61, + 32, 49, 10,101, 46,108,110, 97,109,101,115, 32, 61, 32,123, + 125, 10,119,104,105,108,101, 32,101, 91,105, 93, 32,100,111, + 10,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,101, 91,105, + 93, 32, 61, 32,116, 91, 49, 93, 10,105,102, 32,110,111,116, + 32,116, 91, 50, 93, 32,116,104,101,110, 10,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,101,110,100, 10,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,105, 32, 61, 32,105, 43, + 49, 10,101,110,100, 10,101, 46,110, 97,109,101, 32, 61, 32, + 110, 10,105,102, 32,110,126, 61, 34, 34, 32,116,104,101,110, + 10, 84,121,112,101,100,101,102, 40, 34,105,110,116, 32, 34, + 46, 46,110, 41, 10,101,110,100, 10,114,101,116,117,114,110, + 32, 95, 69,110,117,109,101,114, 97,116,101, 40,101, 41, 10, + 101,110,100,32 + }; + if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) + lua_pcall(tolua_S,0,LUA_MULTRET,0); + } /* end of embedded lua code */ + + + { /* begin embedded lua code */ + static unsigned char B[] = { + 10, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116,105, + 111,110, 32, 61, 32,123, 10,109,111,100, 32, 61, 32, 39, 39, + 44, 10,116,121,112,101, 32, 61, 32, 39, 39, 44, 10,112,116, + 114, 32, 61, 32, 39, 39, 44, 10,110, 97,109,101, 32, 61, 32, + 39, 39, 44, 10,100,105,109, 32, 61, 32, 39, 39, 44, 10,114, + 101,116, 32, 61, 32, 39, 39, 44, 10,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,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, + 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, 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,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,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,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, + 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,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,115,101,108,102, 46,116,121,112, + 101, 32, 61, 32,109, 91,109, 46,110, 93, 10,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,101,110,100, 10,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, + 105,102, 32,116, 46,110, 61, 61, 50, 32,116,104,101,110, 10, + 115,101,108,102, 46,110, 97,109,101, 32, 61, 32,116, 91, 49, + 93, 10,115,101,108,102, 46,100,101,102, 32, 61, 32,116, 91, + 116, 46,110, 93, 10,101,110,100, 10,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,105,102, 32, 98, 32,116,104, + 101,110, 10,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,115,101,108,102, 46,100, + 105,109, 32, 61, 32,100, 10,101,110,100, 10,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,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,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,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,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, + 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,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,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, + 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,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,101,110,100, 10,101,110,100, 10,101,110,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, 99,104,101, 99,107,116, + 121,112,101, 32, 40, 41, 10,105,102, 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,126, 61, 39, 39, + 32,116,104,101,110, 10,115,101,108,102, 46,114,101,116, 32, + 61, 32,115,101,108,102, 46,112,116,114, 10,115,101,108,102, + 46,112,116,114, 32, 61, 32,110,105,108, 10,101,110,100, 10, + 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,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,101,110,100, 10,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,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,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,101,110,100, 10,101,110,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,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,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,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,112,114,105,110,116, 40,105,100,101,110, + 116, 46, 46, 34, 32,112,116,114, 32, 61, 32, 39, 34, 46, 46, + 115,101,108,102, 46,112,116,114, 46, 46, 34, 39, 44, 34, 41, + 10,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,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, 10,112,114,105,110,116, + 40,105,100,101,110,116, 46, 46, 34, 32,100,101,102, 32, 61, + 32, 39, 34, 46, 46,115,101,108,102, 46,100,101,102, 46, 46, + 34, 39, 44, 34, 41, 10,112,114,105,110,116, 40,105,100,101, + 110,116, 46, 46, 34, 32,114,101,116, 32, 61, 32, 39, 34, 46, + 46,115,101,108,102, 46,114,101,116, 46, 46, 34, 39, 44, 34, + 41, 10,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,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,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,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,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, + 115,101,108,102, 46,112,116,114, 32, 61, 61, 32, 39, 39, 32, + 116,104,101,110, 10,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, 42, + 34, 44, 34, 34, 41, 10,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,103,115,117, 98, 40,116,121,112,101, + 44, 34, 58, 58, 34, 44, 34, 95, 34, 41, 10,114,101,116,117, + 114,110, 32,116,114,117,101, 10,101,110,100, 10,114,101,116, + 117,114,110, 32,102, 97,108,115,101, 10,101,110,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,100,101, 99,108,116, + 121,112,101, 32, 40, 41, 10,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,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,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,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,101,110,100, 10,101,110, + 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,111,117, + 116, 99,104,101, 99,107,116,121,112,101, 32, 40,110, 97,114, + 103, 44,118, 97,114, 41, 10,108,111, 99, 97,108, 32,100,101, + 102, 10,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,105,102, 32,115,101,108,102, 46,100,101,102,126, 61, 39, + 39, 32,116,104,101,110, 10,100,101,102, 32, 61, 32, 49, 10, + 101,108,115,101, 10,100,101,102, 32, 61, 32, 48, 10,101,110, + 100, 10,105,102, 32,115,101,108,102, 46,100,105,109, 32,126, + 61, 32, 39, 39, 32,116,104,101,110, 10,105,102, 32,118, 97, + 114, 32, 97,110,100, 32,115,101,108,102, 46,116,121,112,101, + 61, 61, 39, 99,104, 97,114, 39, 32,116,104,101,110, 10,114, + 101,116,117,114,110, 32, 39,116,111,108,117, 97, 95,105,115, + 115,116,114,105,110,103, 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,101,108,115,101, 10,114,101,116,117,114,110, + 32, 39,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,101,110,100, 10,101,108,115,101,105,102, + 32,116, 32,116,104,101,110, 10,114,101,116,117,114,110, 32, + 39,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,101, + 108,115,101, 10,114,101,116,117,114,110, 32, 39,116,111,108, + 117, 97, 95,105,115,117,115,101,114,116,121,112,101, 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,101, + 110,100, 10,101,110,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, 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,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,108,111, 99, 97,108, 32,108,105,110,101, + 32, 61, 32, 34, 34, 10,108,111, 99, 97,108, 32,112,116,114, + 32, 61, 32, 39, 39, 10,108,111, 99, 97,108, 32,109,111,100, + 10,108,111, 99, 97,108, 32,116,121,112,101, 32, 61, 32,115, + 101,108,102, 46,116,121,112,101, 10,105,102, 32,115,101,108, + 102, 46,100,105,109, 32,126, 61, 32, 39, 39, 32,116,104,101, + 110, 10,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, 42, 39, 44, 39, 39, 41, 10,101,110,100, 10,108,111, + 99, 97,108, 32, 99,116,121,112,101, 32, 61, 32,116,121,112, + 101, 10,105,102, 32, 99,116,121,112,101, 61, 61, 34,108,117, + 97, 95, 79, 98,106,101, 99,116, 34, 32,111,114, 32, 99,116, + 121,112,101, 61, 61, 34,108,117, 97, 95, 70,117,110, 99,116, + 105,111,110, 34, 32,116,104,101,110, 10, 99,116,121,112,101, + 32, 61, 32, 34,105,110,116, 34, 10,101,110,100, 10,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,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, 99,116,121,112,101, + 44,112,116,114, 41, 10,105,102, 32, 97,114,114, 97,121, 32, + 116,104,101,110, 10,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,101,110,100, 10,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,105,102, + 32,115,101,108,102, 46,100,105,109, 32,126, 61, 32, 39, 39, + 32,116,104,101,110, 10,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,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,101,108,115,101, 10,105,102, 32, 99, + 112,108,117,115,112,108,117,115, 32,116,104,101,110, 10,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,110,101,119, + 39, 44,116,121,112,101, 44,112,116,114, 44, 39, 91, 39, 46, + 46,115,101,108,102, 46,100,105,109, 46, 46, 39, 93, 59, 39, + 41, 10,101,108,115,101, 10,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, 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,101,110,100, 10, + 101,110,100, 10,101,108,115,101, 10,108,111, 99, 97,108, 32, + 116, 32, 61, 32,105,115, 98, 97,115,105, 99, 40,116,121,112, + 101, 41, 10,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,105,102, 32,116, 32, 61, 61, 32, 39,115,116, + 97,116,101, 39, 32,116,104,101,110, 10,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,101,108,115,101, 10,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,108,111, 99, 97,108, 32, 99,116, 32, + 61, 32,116,121,112,101, 10,105,102, 32,116, 32, 61, 61, 32, + 39,118, 97,108,117,101, 39, 32,111,114, 32,116, 32, 61, 61, + 32, 39,102,117,110, 99,116,105,111,110, 39, 32,116,104,101, + 110, 10, 99,116, 32, 61, 32, 39,105,110,116, 39, 10,101,110, + 100, 10,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, 99,116, 41, 10,105, + 102, 32,110,111,116, 32,116, 32,116,104,101,110, 10,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,101,110,100, + 10,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,105,102, 32,105,115,101,110,117,109, 40,116,121,112,101, + 41, 32,116,104,101,110, 10,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,101,110,100, 10, + 108,111, 99, 97,108, 32,100,101,102, 32, 61, 32, 48, 10,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,105,102, 32,116, + 32,116,104,101,110, 10,105,102, 32,116, 61, 61, 39,102,117, + 110, 99,116,105,111,110, 39, 32,116,104,101,110, 32,116, 61, + 39,118, 97,108,117,101, 39, 32,101,110,100, 10,105,102, 32, + 115,101,108,102, 46,116,121,112,101, 32, 61, 61, 32, 34,116, + 111,108,117, 97, 95,105,110,100,101,120, 34, 32,116,104,101, + 110, 10,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, 45, 49, 41, 59, 39, 41, 10,101, + 108,115,101, 10,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,101, + 110,100, 10,101,108,115,101, 10,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,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, 39, 44,100,101,102, 44, 39, 41, + 41, 59, 39, 41, 10,101,110,100, 10,101,110,100, 10,101,110, + 100, 10,114,101,116,117,114,110, 32,108,105,110,101, 10,101, + 110,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,100, + 101, 99,108, 97,114,101, 32, 40,110, 97,114,103, 41, 10,105, + 102, 32,115,101,108,102, 46,100,105,109, 32,126, 61, 32, 39, + 39, 32, 97,110,100, 32,115,101,108,102, 46,116,121,112,101, + 126, 61, 39, 99,104, 97,114, 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,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,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,111,117,116,112,117,116, + 40, 39, 35,101,108,115,101, 92,110, 39, 41, 10,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,111,117,116,112,117,116, + 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10,101,108, + 115,101, 10,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, + 101,110,100, 10,101,110,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,103,101,116, 97,114,114, 97,121, 32, 40,110, + 97,114,103, 41, 10,105,102, 32,115,101,108,102, 46,100,105, + 109, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10,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,111,117,116,112,117,116, + 40, 39, 32,123, 39, 41, 10,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,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,108,111, 99, 97,108, 32,116, 32, 61, 32,105, + 115, 98, 97,115,105, 99, 40,116,121,112,101, 41, 10,105,102, + 32, 40,116, 41, 32,116,104,101,110, 10,111,117,116,112,117, + 116, 40, 39, 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,101,108,115,101, 10,111,117, + 116,112,117,116, 40, 39, 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,101,110,100, 10,111,117,116, + 112,117,116, 40, 39, 32,103,111,116,111, 32,116,111,108,117, + 97, 95,108,101,114,114,111,114, 59, 39, 41, 10,111,117,116, + 112,117,116, 40, 39, 32,101,108,115,101, 92,110, 39, 41, 10, + 111,117,116,112,117,116, 40, 39, 35,101,110,100,105,102, 92, + 110, 39, 41, 10,111,117,116,112,117,116, 40, 39, 32,123, 39, + 41, 10,111,117,116,112,117,116, 40, 39, 32,105,110,116, 32, + 105, 59, 39, 41, 10,111,117,116,112,117,116, 40, 39, 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,108,111, 99, 97,108, 32,116, 32, 61, 32,105,115, 98, + 97,115,105, 99, 40,116,121,112,101, 41, 10,108,111, 99, 97, + 108, 32,112,116,114, 32, 61, 32, 39, 39, 10,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,111,117,116,112,117,116, 40, 39, 32, 39, 44,115,101,108, + 102, 46,110, 97,109,101, 46, 46, 39, 91,105, 93, 32, 61, 32, + 39, 41, 10,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, + 111,117,116,112,117,116, 40, 39, 40, 40, 39, 44,116,121,112, + 101, 41, 10,105,102, 32,110,111,116, 32,116, 32,116,104,101, + 110, 10,111,117,116,112,117,116, 40, 39, 42, 39, 41, 10,101, + 110,100, 10,111,117,116,112,117,116, 40, 39, 41, 32, 39, 41, + 10,108,111, 99, 97,108, 32,100,101,102, 32, 61, 32, 48, 10, + 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,105,102, 32, + 116, 32,116,104,101,110, 10,105,102, 32,116, 61, 61, 39,102, + 117,110, 99,116,105,111,110, 39, 32,116,104,101,110, 32,116, + 61, 39,118, 97,108,117,101, 39, 32,101,110,100, 10,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,101,108,115,101, 10,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,101,110,100, 10,111, + 117,116,112,117,116, 40, 39, 32,125, 39, 41, 10,111,117,116, + 112,117,116, 40, 39, 32,125, 39, 41, 10,101,110,100, 10,101, + 110,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,115, + 101,116, 97,114,114, 97,121, 32, 40,110, 97,114,103, 41, 10, + 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, 97,110,100, 32,115,101,108,102, 46,100,105, + 109, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10,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,111,117,116,112,117,116, + 40, 39, 32,123, 39, 41, 10,111,117,116,112,117,116, 40, 39, + 32,105,110,116, 32,105, 59, 39, 41, 10,111,117,116,112,117, + 116, 40, 39, 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,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,105,102, 32,116, 32,116,104,101,110, 10,105, + 102, 32,116, 61, 61, 39,102,117,110, 99,116,105,111,110, 39, + 32,116,104,101,110, 32,116, 61, 39,118, 97,108,117,101, 39, + 32,101,110,100, 10,111,117,116,112,117,116, 40, 39, 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,101,108,115, + 101, 10,105,102, 32,115,101,108,102, 46,112,116,114, 32, 61, + 61, 32, 39, 39, 32,116,104,101,110, 10,111,117,116,112,117, + 116, 40, 39, 32,123, 39, 41, 10,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,111,117,116,112,117,116, + 40, 39, 32,118,111,105,100, 42, 32,116,111,108,117, 97, 95, + 111, 98,106, 32, 61, 32,110,101,119, 39, 44,116,121,112,101, + 44, 39, 40, 39, 44,115,101,108,102, 46,110, 97,109,101, 44, + 39, 91,105, 93, 41, 59, 39, 41, 10,111,117,116,112,117,116, + 40, 39, 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, 99,108,111,110,101, 40, + 116,111,108,117, 97, 95, 83, 44,116,111,108,117, 97, 95,111, + 98,106, 44, 39, 46, 46, 32, 40, 95, 99,111,108,108,101, 99, + 116, 91,116,121,112,101, 93, 32,111,114, 32, 39, 78, 85, 76, + 76, 39, 41, 32, 46, 46, 39, 41, 44, 34, 39, 44,116,121,112, + 101, 44, 39, 34, 41, 59, 39, 41, 10,111,117,116,112,117,116, + 40, 39, 35,101,108,115,101, 92,110, 39, 41, 10,111,117,116, + 112,117,116, 40, 39, 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,111, + 117,116,112,117,116, 40, 39, 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, 99, + 108,111,110,101, 40,116,111,108,117, 97, 95, 83, 44,116,111, + 108,117, 97, 95,111, 98,106, 44, 78, 85, 76, 76, 41, 44, 34, + 39, 44,116,121,112,101, 44, 39, 34, 41, 59, 39, 41, 10,111, + 117,116,112,117,116, 40, 39, 35,101,110,100,105,102, 92,110, + 39, 41, 10,111,117,116,112,117,116, 40, 39, 32,125, 39, 41, + 10,101,108,115,101, 10,111,117,116,112,117,116, 40, 39, 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,101,110,100, 10,101,110, + 100, 10,111,117,116,112,117,116, 40, 39, 32,125, 39, 41, 10, + 101,110,100, 10,101,110,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,102,114,101,101, 97,114,114, 97,121, 32, 40, + 41, 10,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,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,111,117,116,112,117,116, + 40, 39, 32,100,101,108,101,116,101, 32, 91, 93, 39, 44,115, + 101,108,102, 46,110, 97,109,101, 44, 39, 59, 39, 41, 10,111, + 117,116,112,117,116, 40, 39, 35,101,108,115,101, 92,110, 39, + 41, 10,111,117,116,112,117,116, 40, 39, 32,102,114,101,101, + 40, 39, 44,115,101,108,102, 46,110, 97,109,101, 44, 39, 41, + 59, 39, 41, 10,111,117,116,112,117,116, 40, 39, 35,101,110, + 100,105,102, 92,110, 39, 41, 10,101,110,100, 10,101,110,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, 97,115, + 115,112, 97,114, 32, 40, 41, 10,108,111, 99, 97,108, 32,110, + 97,109,101, 32, 61, 32,115,101,108,102, 46,110, 97,109,101, + 10,105,102, 32,115,101,108,102, 46,112,116,114, 61, 61, 39, + 38, 39, 32,116,104,101,110, 10,111,117,116,112,117,116, 40, + 39, 42, 39, 46, 46,110, 97,109,101, 41, 10,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,111,117,116,112,117,116, 40, 39, + 38, 39, 46, 46,110, 97,109,101, 41, 10,101,108,115,101, 10, + 111,117,116,112,117,116, 40,110, 97,109,101, 41, 10,101,110, + 100, 10,101,110,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,114,101,116,118, 97,108,117,101, 32, 40, 41, 10,105, + 102, 32,115,101,108,102, 46,114,101,116, 32,126, 61, 32, 39, + 39, 32,116,104,101,110, 10,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,105,102, 32,116, 32,116, + 104,101,110, 10,105,102, 32,116, 61, 61, 39,102,117,110, 99, + 116,105,111,110, 39, 32,116,104,101,110, 32,116, 61, 39,118, + 97,108,117,101, 39, 32,101,110,100, 10,105,102, 32,115,101, + 108,102, 46,116,121,112,101, 61, 61, 34,116,111,108,117, 97, + 95,105,110,100,101,120, 34, 32,116,104,101,110, 10,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, 46,110, 97,109,101, 46, 46, 39, 43, 49, 41, 59, + 39, 41, 10,101,108,115,101, 10,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, 46,110, + 97,109,101, 46, 46, 39, 41, 59, 39, 41, 10,101,110,100, 10, + 101,108,115,101, 10,111,117,116,112,117,116, 40, 39, 32,116, + 111,108,117, 97, 95,112,117,115,104,117,115,101,114,116,121, + 112,101, 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,101,110,100, 10,114,101, + 116,117,114,110, 32, 49, 10,101,110,100, 10,114,101,116,117, + 114,110, 32, 48, 10,101,110,100, 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,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,116, 58, 98,117,105,108,100, + 110, 97,109,101,115, 40, 41, 10,116, 58, 99,104,101, 99,107, + 110, 97,109,101, 40, 41, 10,116, 58, 99,104,101, 99,107,116, + 121,112,101, 40, 41, 10,114,101,116,117,114,110, 32,116, 10, + 101,110,100, 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, 41, 10,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, + 105,102, 32,107,105,110,100, 32, 61, 61, 32, 34,118, 97,114, + 34, 32,116,104,101,110, 10,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,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,125, 10,101,110,100, 10, + 101,110,100, 10,108,111, 99, 97,108, 32,116, 32, 61, 32,115, + 112,108,105,116, 40,115, 44, 39, 37, 42, 37,115, 42, 38, 39, + 41, 10,105,102, 32,116, 46,110, 32, 61, 61, 32, 50, 32,116, + 104,101,110, 10,105,102, 32,107,105,110,100, 32, 61, 61, 32, + 39,102,117,110, 99, 39, 32,116,104,101,110, 10,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,101,110,100, 10, + 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, + 114,101,116,117,114,110, 32, 95, 68,101, 99,108, 97,114, 97, + 116,105,111,110,123, 10,110, 97,109,101, 32, 61, 32,116, 91, + 50, 93, 44, 10,112,116,114, 32, 61, 32, 39, 42, 39, 44, 10, + 114,101,116, 32, 61, 32, 39, 38, 39, 44, 10,116,121,112,101, + 32, 61, 32,109, 91,109, 46,110, 93, 44, 10,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,107,105,110,100, 32, 61, 32,107,105, + 110,100, 10,125, 10,101,110,100, 10,116, 32, 61, 32,115,112, + 108,105,116, 40,115, 44, 39, 37, 42, 37,115, 42, 37, 42, 39, + 41, 10,105,102, 32,116, 46,110, 32, 61, 61, 32, 50, 32,116, + 104,101,110, 10,105,102, 32,107,105,110,100, 32, 61, 61, 32, + 39,102,117,110, 99, 39, 32,116,104,101,110, 10,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,101,110,100, 10, + 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, + 114,101,116,117,114,110, 32, 95, 68,101, 99,108, 97,114, 97, + 116,105,111,110,123, 10,110, 97,109,101, 32, 61, 32,116, 91, + 50, 93, 44, 10,112,116,114, 32, 61, 32, 39, 42, 39, 44, 10, + 114,101,116, 32, 61, 32, 39, 42, 39, 44, 10,116,121,112,101, + 32, 61, 32,109, 91,109, 46,110, 93, 44, 10,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,107,105,110,100, 32, 61, 32,107,105, + 110,100, 10,125, 10,101,110,100, 10,116, 32, 61, 32,115,112, + 108,105,116, 40,115, 44, 39, 38, 39, 41, 10,105,102, 32,116, + 46,110, 32, 61, 61, 32, 50, 32,116,104,101,110, 10,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,114,101, + 116,117,114,110, 32, 95, 68,101, 99,108, 97,114, 97,116,105, + 111,110,123, 10,110, 97,109,101, 32, 61, 32,116, 91, 50, 93, + 44, 10,112,116,114, 32, 61, 32, 39, 38, 39, 44, 10,116,121, + 112,101, 32, 61, 32,109, 91,109, 46,110, 93, 44, 10,109,111, + 100, 32, 61, 32, 99,111,110, 99, 97,116, 40,109, 44, 49, 44, + 109, 46,110, 45, 49, 41, 32, 44, 10,107,105,110,100, 32, 61, + 32,107,105,110,100, 10,125, 10,101,110,100, 10,108,111, 99, + 97,108, 32,115, 49, 32, 61, 32,103,115,117, 98, 40,115, 44, + 34, 40, 37, 98, 37, 91, 37, 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,116, 32, 61, 32,115,112, + 108,105,116, 40,115, 49, 44, 39, 37, 42, 39, 41, 10,105,102, + 32,116, 46,110, 32, 61, 61, 32, 50, 32,116,104,101,110, 10, + 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, 10,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,114,101, + 116,117,114,110, 32, 95, 68,101, 99,108, 97,114, 97,116,105, + 111,110,123, 10,110, 97,109,101, 32, 61, 32,116, 91, 50, 93, + 44, 10,112,116,114, 32, 61, 32, 39, 42, 39, 44, 10,116,121, + 112,101, 32, 61, 32,109, 91,109, 46,110, 93, 44, 10,109,111, + 100, 32, 61, 32, 99,111,110, 99, 97,116, 40,109, 44, 49, 44, + 109, 46,110, 45, 49, 41, 32, 44, 10,107,105,110,100, 32, 61, + 32,107,105,110,100, 10,125, 10,101,110,100, 10,105,102, 32, + 107,105,110,100, 32, 61, 61, 32, 39,118, 97,114, 39, 32,116, + 104,101,110, 10,116, 32, 61, 32,115,112,108,105,116, 40,115, + 44, 39, 37,115, 37,115, 42, 39, 41, 10,108,111, 99, 97,108, + 32,118, 10,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, 39, 39, 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,114,101,116,117,114,110, 32, + 95, 68,101, 99,108, 97,114, 97,116,105,111,110,123, 10,110, + 97,109,101, 32, 61, 32,118, 44, 10,116,121,112,101, 32, 61, + 32,116, 91,116, 46,110, 93, 44, 10,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,107,105,110,100, 32, 61, 32,107,105,110,100, + 10,125, 10,101,108,115,101, 10,116, 32, 61, 32,115,112,108, + 105,116, 40,115, 44, 39, 37,115, 37,115, 42, 39, 41, 10,108, + 111, 99, 97,108, 32,118, 32, 61, 32,116, 91,116, 46,110, 93, + 10,108,111, 99, 97,108, 32,116,112, 44,109,100, 10,105,102, + 32,116, 46,110, 62, 49, 32,116,104,101,110, 10,116,112, 32, + 61, 32,116, 91,116, 46,110, 45, 49, 93, 10,109,100, 32, 61, + 32, 99,111,110, 99, 97,116, 40,116, 44, 49, 44,116, 46,110, + 45, 50, 41, 10,101,110,100, 10,114,101,116,117,114,110, 32, + 95, 68,101, 99,108, 97,114, 97,116,105,111,110,123, 10,110, + 97,109,101, 32, 61, 32,118, 44, 10,116,121,112,101, 32, 61, + 32,116,112, 44, 10,109,111,100, 32, 61, 32,109,100, 44, 10, + 107,105,110,100, 32, 61, 32,107,105,110,100, 10,125, 10,101, + 110,100, 10,101,110,100,32 + }; + if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) + lua_pcall(tolua_S,0,LUA_MULTRET,0); + } /* end of embedded lua code */ + + + { /* begin embedded lua code */ + static unsigned char B[] = { + 10, 99,108, 97,115,115, 86, 97,114,105, 97, 98,108,101, 32, + 61, 32,123, 10, 95,103,101,116, 32, 61, 32,123,125, 44, 10, + 95,115,101,116, 32, 61, 32,123,125, 44, 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,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,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, + 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,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,112,114,105,110,116, 40, + 105,100,101,110,116, 46, 46, 34, 32,112,116,114, 32, 61, 32, + 39, 34, 46, 46,115,101,108,102, 46,112,116,114, 46, 46, 34, + 39, 44, 34, 41, 10,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,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,112,114,105,110,116, 40,105,100,101,110, + 116, 46, 46, 34, 32,100,101,102, 32, 61, 32, 39, 34, 46, 46, + 115,101,108,102, 46,100,101,102, 46, 46, 34, 39, 44, 34, 41, + 10,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, + 32,114,101,116, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, + 46,114,101,116, 46, 46, 34, 39, 44, 34, 41, 10,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,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,108,111, 99, 97,108, 32,112, + 97,114,101,110,116, 32, 61, 32, 34, 34, 10,108,111, 99, 97, + 108, 32,117,110,115,105,103,110,101,100, 32, 61, 32, 34, 34, + 10,108,111, 99, 97,108, 32,112,116,114, 32, 61, 32, 34, 34, + 10,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,105,102, 32,112, 32,116,104,101, + 110, 10,112, 97,114,101,110,116, 32, 61, 32, 34, 95, 34, 32, + 46, 46, 32,112, 10,101,110,100, 10,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,117,110,115,105,103,110,101,100, 32, 61, 32, 34, + 95,117,110,115,105,103,110,101,100, 34, 10,101,110,100, 10, + 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,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,101,110,100, 10,108,111, 99, 97,108, 32,110, 97, + 109,101, 32, 61, 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,110, 97,109,101, 44, 34, + 46, 42, 58, 58, 34, 44, 34, 34, 41, 32, 46, 46, 32,112,116, + 114, 10,114,101,116,117,114,110, 32,110, 97,109,101, 10,101, + 110,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,105,115,118, 97, + 114,105, 97, 98,108,101, 32, 40, 41, 10,114,101,116,117,114, + 110, 32,116,114,117,101, 10,101,110,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,103,101,116,118, 97,108,117,101, 32, 40, 99, + 108, 97,115,115, 44,115,116, 97,116,105, 99, 41, 10,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,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, 10,101,108,115,101,105,102, 32, + 99,108, 97,115,115, 32,116,104,101,110, 10,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, 10,101,108,115,101, 10,114,101, + 116,117,114,110, 32,115,101,108,102, 46,110, 97,109,101, 10, + 101,110,100, 10,101,110,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,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,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,114,101,116, + 117,114,110, 32, 99,108, 97,115,115, 46, 46, 39, 58, 58,112, + 39, 10,101,108,115,101,105,102, 32, 99,108, 97,115,115, 32, + 116,104,101,110, 10,114,101,116,117,114,110, 32, 39,115,101, + 108,102, 45, 62,112, 39, 10,101,108,115,101, 10,114,101,116, + 117,114,110, 32, 39,112, 39, 10,101,110,100, 10,101,110,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,115,117,112, 99,111,100, + 101, 32, 40, 41, 10,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,105,102, 32, 99,108, 97,115,115, 32,116,104, + 101,110, 10,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,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, 95, 34, 46, 46, 99,108, 97,115,115, 41, 10,101,108,115, + 101, 10,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, + 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,101, + 110,100, 10,111,117,116,112,117,116, 40, 34,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,111,117,116,112,117,116, 40, 34,123, 34, 41, 10,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,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,111,117,116,112,117,116, 40, 39, 32, 39, + 44, 99,108, 97,115,115, 44, 39, 42, 39, 44, 39,115,101,108, + 102, 32, 61, 32, 39, 41, 10,111,117,116,112,117,116, 40, 39, + 40, 39, 44, 99,108, 97,115,115, 44, 39, 42, 41, 32, 39, 41, + 10,111,117,116,112,117,116, 40, 39,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,101,108,115, + 101,105,102, 32,115,116, 97,116,105, 99, 32,116,104,101,110, + 10, 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,101,110,100, 10, + 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, + 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,111,117,116,112,117,116, 40, 39, 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,111,117,116,112,117, + 116, 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10,101, + 110,100, 10,108,111, 99, 97,108, 32,116,121,112,101, 32, 61, + 32,115,101,108,102, 46,116,121,112,101, 10,105,102, 32,103, + 115,117, 98, 40,116,121,112,101, 44, 39, 99,111,110,115,116, + 32, 39, 44, 39, 39, 41, 61, 61, 39, 99,104, 97,114, 39, 32, + 97,110,100, 32,115,101,108,102, 46,100,105,109,126, 61, 39, + 39, 32,116,104,101,110, 10,116,121,112,101, 32, 61, 32, 39, + 99,104, 97,114, 42, 39, 10,101,110,100, 10,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,105,102, 32,116, 32,116,104, + 101,110, 10,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,101,108,115,101, 10,116, + 32, 61, 32,115,101,108,102, 46,116,121,112,101, 10,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,111,117,116,112,117, + 116, 40, 39, 32,116,111,108,117, 97, 95,112,117,115,104,117, + 115,101,114,116,121,112,101, 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,101,108,115,101, 10, + 111,117,116,112,117,116, 40, 39, 32,116,111,108,117, 97, 95, + 112,117,115,104,117,115,101,114,116,121,112,101, 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,101, + 110,100, 10,101,110,100, 10,111,117,116,112,117,116, 40, 39, + 32,114,101,116,117,114,110, 32, 49, 59, 39, 41, 10,111,117, + 116,112,117,116, 40, 39,125, 39, 41, 10,111,117,116,112,117, + 116, 40, 39, 92,110, 39, 41, 10,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,105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, + 10,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,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, 95, + 34, 46, 46, 99,108, 97,115,115, 41, 10,101,108,115,101, 10, + 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,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,101,110,100, + 10,111,117,116,112,117,116, 40, 34,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,111, + 117,116,112,117,116, 40, 34,123, 34, 41, 10,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,111,117,116,112, + 117,116, 40, 39, 32, 39, 44, 99,108, 97,115,115, 44, 39, 42, + 39, 44, 39,115,101,108,102, 32, 61, 32, 39, 41, 10,111,117, + 116,112,117,116, 40, 39, 40, 39, 44, 99,108, 97,115,115, 44, + 39, 42, 41, 32, 39, 41, 10,111,117,116,112,117,116, 40, 39, + 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,101,110,100, 10,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,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, + 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, + 111,117,116,112,117,116, 40, 39, 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,101,108,115,101,105,102, 32,115,116, + 97,116,105, 99, 32,116,104,101,110, 10, 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,101,110,100, 10,111,117,116,112,117,116, + 40, 39, 32,105,102, 32, 40, 33, 39, 46, 46,115,101,108,102, + 58,111,117,116, 99,104,101, 99,107,116,121,112,101, 40, 50, + 44,116,114,117,101, 41, 46, 46, 39, 41, 39, 41, 10,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,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,111,117,116,112,117,116, 40, + 39, 35,101,110,100,105,102, 92,110, 39, 41, 10,108,111, 99, + 97,108, 32,100,101,102, 32, 61, 32, 48, 10,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,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,111,117,116,112,117, + 116, 40, 39, 32,115,116,114,110, 99,112,121, 40, 39, 41, 10, + 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,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, 41, 10,101,108,115,101, + 105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 10,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,101,108,115, + 101, 10,111,117,116,112,117,116, 40,115,101,108,102, 46,110, + 97,109,101, 41, 10,101,110,100, 10,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,101,108,115,101, + 10,108,111, 99, 97,108, 32,112,116,114, 32, 61, 32, 39, 39, + 10,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,111,117,116,112,117,116, 40, 39, 32, + 39, 41, 10,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,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, 41, 10,101, + 108,115,101,105,102, 32, 99,108, 97,115,115, 32,116,104,101, + 110, 10,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, + 101,108,115,101, 10,111,117,116,112,117,116, 40,115,101,108, + 102, 46,110, 97,109,101, 41, 10,101,110,100, 10,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,111,117,116,112, + 117,116, 40, 39, 32, 61, 32, 39, 41, 10,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,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,105,102, 32,110,111,116, + 32,116, 32,116,104,101,110, 10,111,117,116,112,117,116, 40, + 39, 42, 39, 41, 10,101,110,100, 10,111,117,116,112,117,116, + 40, 39, 41, 32, 39, 41, 10,105,102, 32,116, 32,116,104,101, + 110, 10,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,111,117, + 116,112,117,116, 40, 39, 40,105,110,116, 41, 32, 39, 41, 10, + 101,110,100, 10,105,102, 32,116, 61, 61, 39,102,117,110, 99, + 116,105,111,110, 39, 32,116,104,101,110, 32,116, 61, 39,118, + 97,108,117,101, 39, 32,101,110,100, 10,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, 59, 39, 41, 10,101,108,115,101, + 10,111,117,116,112,117,116, 40, 39,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, 50, 44, 39, 44,100,101,102, 44, 39, 41, 41, + 59, 39, 41, 10,101,110,100, 10,101,110,100, 10,111,117,116, + 112,117,116, 40, 39, 32,114,101,116,117,114,110, 32, 48, 59, + 39, 41, 10,111,117,116,112,117,116, 40, 39,125, 39, 41, 10, + 111,117,116,112,117,116, 40, 39, 92,110, 39, 41, 10,101,110, + 100, 10,101,110,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,114, + 101,103,105,115,116,101,114, 32, 40, 41, 10,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,105,102, 32,110,111,116, 32,112, + 97,114,101,110,116, 32,116,104,101,110, 10,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,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, 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,101,110,100, 10,101,110,100, 10,105,102, 32,115,101,108, + 102, 46, 99,115,101,116,110, 97,109,101, 32,116,104,101,110, + 10,111,117,116,112,117,116, 40, 39, 32,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,101,108,115,101, 10,111,117,116,112, + 117,116, 40, 39, 32,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,101,110,100, 10,101,110,100, 10,102,117,110, 99,116,105, + 111,110, 32, 95, 86, 97,114,105, 97, 98,108,101, 32, 40,116, + 41, 10,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, 97,112,112,101,110,100, 40,116, 41, 10,114,101,116, + 117,114,110, 32,116, 10,101,110,100, 10,102,117,110, 99,116, + 105,111,110, 32, 86, 97,114,105, 97, 98,108,101, 32, 40,115, + 41, 10,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 + }; + if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) + lua_pcall(tolua_S,0,LUA_MULTRET,0); + } /* end of embedded lua code */ + + + { /* begin embedded lua code */ + static unsigned char B[] = { + 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,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,112,114,105, + 110,116, 40,105,100,101,110,116, 46, 46, 34, 65,114,114, 97, + 121,123, 34, 41, 10,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,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,112, + 114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,112, + 116,114, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,112, + 116,114, 46, 46, 34, 39, 44, 34, 41, 10,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,112,114,105,110,116, 40,105, + 100,101,110,116, 46, 46, 34, 32,100,101,102, 32, 61, 32, 39, + 34, 46, 46,115,101,108,102, 46,100,101,102, 46, 46, 34, 39, + 44, 34, 41, 10,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, 10, + 112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, + 114,101,116, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46, + 114,101,116, 46, 46, 34, 39, 44, 34, 41, 10,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,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,114, + 101,116,117,114,110, 32,116,114,117,101, 10,101,110,100, 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,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,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,101,108,115,101, + 105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 10,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,101,108, + 115,101, 10,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,101,110,100, 10,101,110,100, 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,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, + 105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 10,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,101,108,115,101, 10,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,101,110,100, 10,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,111,117,116,112,117,116, 40, 34, + 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,111,117,116,112,117,116, 40, 34,123, 34, + 41, 10,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, + 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,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,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,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,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,111,117,116,112,117,116, 40, 39, 32, + 115,101,108,102, 32, 61, 32, 39, 41, 10,111,117,116,112,117, + 116, 40, 39, 40, 39, 44, 99,108, 97,115,115, 44, 39, 42, 41, + 32, 39, 41, 10,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,101,108,115, + 101,105,102, 32,115,116, 97,116,105, 99, 32,116,104,101,110, + 10, 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,101,110,100, 10, + 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,111,117,116,112,117,116, 40, 39, 32,123, 39, + 41, 10,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,111,117,116,112,117,116, 40, 39, 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,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,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,111,117,116,112,117,116, 40, 39, + 32,125, 39, 41, 10,111,117,116,112,117,116, 40, 39, 35,101, + 110,100,105,102, 92,110, 39, 41, 10,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,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,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, + 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, + 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,111,117,116,112,117,116, + 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10,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, + 105,102, 32,116, 32,116,104,101,110, 10,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,101,108,115,101, 10,116, 32, 61, 32,115,101,108,102, 46, + 116,121,112,101, 10,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,111,117,116,112,117,116, 40, 39, 32,116,111,108,117, + 97, 95,112,117,115,104,117,115,101,114,116,121,112,101, 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,101,108,115,101, 10,111,117,116,112,117,116, 40, 39, + 32,116,111,108,117, 97, 95,112,117,115,104,117,115,101,114, + 116,121,112,101, 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,101,110,100, 10,101,110,100, 10,111, + 117,116,112,117,116, 40, 39, 32,114,101,116,117,114,110, 32, + 49, 59, 39, 41, 10,111,117,116,112,117,116, 40, 39,125, 39, + 41, 10,111,117,116,112,117,116, 40, 39, 92,110, 39, 41, 10, + 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,105,102, 32, 99,108, 97, + 115,115, 32,116,104,101,110, 10,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,101,108,115,101, 10, + 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,101,110, + 100, 10,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,111,117,116,112,117,116, 40, 34,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,111, + 117,116,112,117,116, 40, 34,123, 34, 41, 10,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,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,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,111,117,116,112,117,116, 40, 39, 32, 39, 44, 99,108, 97, + 115,115, 44, 39, 42, 39, 44, 39,115,101,108,102, 59, 39, 41, + 10,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, + 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,111,117,116,112,117,116, 40, 39, 32,115,101, + 108,102, 32, 61, 32, 39, 41, 10,111,117,116,112,117,116, 40, + 39, 40, 39, 44, 99,108, 97,115,115, 44, 39, 42, 41, 32, 39, + 41, 10,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,101,108,115,101,105, + 102, 32,115,116, 97,116,105, 99, 32,116,104,101,110, 10, 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,101,110,100, 10,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,111,117,116,112,117,116, 40, 39, 32,123, 39, 41, 10, + 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,111,117,116,112,117,116, 40, 39, 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, + 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,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,111,117,116,112,117,116, 40, 39, 32,125, + 39, 41, 10,111,117,116,112,117,116, 40, 39, 35,101,110,100, + 105,102, 92,110, 39, 41, 10,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,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,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,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, 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,111,117,116,112,117,116, 40, 39, + 35,101,110,100,105,102, 92,110, 39, 41, 10,108,111, 99, 97, + 108, 32,112,116,114, 32, 61, 32, 39, 39, 10,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,111,117,116,112,117,116, 40, 39, 32, 39, 41, 10,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,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,101,108,115,101, + 105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 10,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,101, + 108,115,101, 10,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,101,110,100, 10,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,111,117,116, + 112,117,116, 40, 39, 32, 61, 32, 39, 41, 10,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,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,105,102, 32,110,111, + 116, 32,116, 32,116,104,101,110, 10,111,117,116,112,117,116, + 40, 39, 42, 39, 41, 10,101,110,100, 10,111,117,116,112,117, + 116, 40, 39, 41, 32, 39, 41, 10,108,111, 99, 97,108, 32,100, + 101,102, 32, 61, 32, 48, 10,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,105,102, 32,116, 32,116,104,101,110, 10,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,111,117,116,112,117, + 116, 40, 39, 40,105,110,116, 41, 39, 41, 10,101,110,100, 10, + 105,102, 32,116, 61, 61, 39,102,117,110, 99,116,105,111,110, + 39, 32,116,104,101,110, 32,116, 61, 39,118, 97,108,117,101, + 39, 32,101,110,100, 10,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,101,108,115,101, 10,111,117,116, + 112,117,116, 40, 39,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, + 51, 44, 39, 44,100,101,102, 44, 39, 41, 41, 59, 39, 41, 10, + 101,110,100, 10,111,117,116,112,117,116, 40, 39, 32,114,101, + 116,117,114,110, 32, 48, 59, 39, 41, 10,111,117,116,112,117, + 116, 40, 39,125, 39, 41, 10,111,117,116,112,117,116, 40, 39, + 92,110, 39, 41, 10,101,110,100, 10,101,110,100, 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, 41, 10, + 105,102, 32,115,101,108,102, 46, 99,115,101,116,110, 97,109, + 101, 32,116,104,101,110, 10,111,117,116,112,117,116, 40, 39, + 32,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,101,108,115,101, 10,111, + 117,116,112,117,116, 40, 39, 32,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,101,110,100, 10,101,110,100, 10,102,117,110, 99,116,105, + 111,110, 32, 95, 65,114,114, 97,121, 32, 40,116, 41, 10,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, 97,112,112,101, + 110,100, 40,116, 41, 10,114,101,116,117,114,110, 32,116, 10, + 101,110,100, 10,102,117,110, 99,116,105,111,110, 32, 65,114, + 114, 97,121, 32, 40,115, 41, 10,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 + }; + if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) + lua_pcall(tolua_S,0,LUA_MULTRET,0); + } /* end of embedded lua code */ + + + { /* begin embedded lua code */ + static unsigned char B[] = { + 10, 99,108, 97,115,115, 70,117,110, 99,116,105,111,110, 32, + 61, 32,123, 10,109,111,100, 32, 61, 32, 39, 39, 44, 10,116, + 121,112,101, 32, 61, 32, 39, 39, 44, 10,112,116,114, 32, 61, + 32, 39, 39, 44, 10,110, 97,109,101, 32, 61, 32, 39, 39, 44, + 10, 97,114,103,115, 32, 61, 32,123,110, 61, 48,125, 44, 10, + 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,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,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,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,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, + 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,101,110,100, 10,108, + 111, 99, 97,108, 32,105, 61, 49, 10,119,104,105,108,101, 32, + 115,101,108,102, 46, 97,114,103,115, 91,105, 93, 32,100,111, + 10,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 58,100, + 101, 99,108,116,121,112,101, 40, 41, 10,105, 32, 61, 32,105, + 43, 49, 10,101,110,100, 10,101,110,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,115,117,112, 99,111,100,101, 32, 40, 41, 10, + 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, + 10,108,111, 99, 97,108, 32,110,114,101,116, 32, 61, 32, 48, + 10,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, + 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,105,102, 32, 99,108, 97,115,115, + 32,116,104,101,110, 10,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,101,108,115,101, 10,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,101,110,100, 10,111,117,116,112,117,116, 40, 34,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, + 111,117,116,112,117,116, 40, 34,123, 34, 41, 10,105,102, 32, + 111,118,101,114,108,111, 97,100, 32, 60, 32, 48, 32,116,104, + 101,110, 10,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,101,110,100, 10,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, + 111,117,116,112,117,116, 40, 39, 32,105,102, 32, 40, 92,110, + 39, 41, 10,108,111, 99, 97,108, 32,110, 97,114,103, 10,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,105,102, 32, 99,108, 97,115,115, 32, + 116,104,101,110, 10,108,111, 99, 97,108, 32,102,117,110, 99, + 32, 61, 32, 39,116,111,108,117, 97, 95,105,115,117,115,101, + 114,116,121,112,101, 39, 10,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,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,116,121,112,101, 32, 61, 32,115,101,108,102, 46, 99, + 111,110,115,116, 32, 46, 46, 32, 34, 32, 34, 32, 46, 46, 32, + 116,121,112,101, 10,101,110,100, 10,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,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,116,121,112,101, 32, 61, 32,115,101,108,102, 46,112, 97, + 114,101,110,116, 46,116,121,112,101, 10,101,110,100, 10,111, + 117,116,112,117,116, 40, 39, 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, 32, + 92,110, 39, 41, 10,101,110,100, 10,108,111, 99, 97,108, 32, + 118, 97,114, 97,114,103, 32, 61, 32,102, 97,108,115,101, 10, + 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,108,111, 99, 97,108, 32,105, 61, 49, + 10,119,104,105,108,101, 32,115,101,108,102, 46, 97,114,103, + 115, 91,105, 93, 32, 97,110,100, 32,115,101,108,102, 46, 97, + 114,103,115, 91,105, 93, 46,116,121,112,101, 32,126, 61, 32, + 34, 46, 46, 46, 34, 32,100,111, 10,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,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, + 111,117,116,112,117,116, 40, 39, 32, 33, 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, 44,102, + 97,108,115,101, 41, 46, 46, 39, 32,124,124, 32, 92,110, 39, + 41, 10,101,110,100, 10,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,110, 97,114,103, 32, 61, 32,110, 97,114,103, 43, 49, 10, + 101,110,100, 10,105, 32, 61, 32,105, 43, 49, 10,101,110,100, + 10,105,102, 32,115,101,108,102, 46, 97,114,103,115, 91,105, + 93, 32,116,104,101,110, 10,118, 97,114, 97,114,103, 32, 61, + 32,116,114,117,101, 10,101,110,100, 10,101,110,100, 10,105, + 102, 32,110,111,116, 32,118, 97,114, 97,114,103, 32,116,104, + 101,110, 10,111,117,116,112,117,116, 40, 39, 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, 39, + 41, 10,101,108,115,101, 10,111,117,116,112,117,116, 40, 39, + 32, 48, 92,110, 39, 41, 10,101,110,100, 10,111,117,116,112, + 117,116, 40, 39, 32, 41, 39, 41, 10,111,117,116,112,117,116, + 40, 39, 32,103,111,116,111, 32,116,111,108,117, 97, 95,108, + 101,114,114,111,114, 59, 39, 41, 10,111,117,116,112,117,116, + 40, 39, 32,101,108,115,101, 92,110, 39, 41, 10,105,102, 32, + 111,118,101,114,108,111, 97,100, 32, 60, 32, 48, 32,116,104, + 101,110, 10,111,117,116,112,117,116, 40, 39, 35,101,110,100, + 105,102, 92,110, 39, 41, 10,101,110,100, 10,111,117,116,112, + 117,116, 40, 39, 32,123, 39, 41, 10,108,111, 99, 97,108, 32, + 110, 97,114,103, 10,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,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,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,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,111,117, + 116,112,117,116, 40, 39,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,101,108,115,101,105,102, + 32,115,116, 97,116,105, 99, 32,116,104,101,110, 10, 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,101,110,100, 10,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,108,111, 99, 97,108, 32,105, 61, 49, 10,119,104, + 105,108,101, 32,115,101,108,102, 46, 97,114,103,115, 91,105, + 93, 32, 97,110,100, 32,115,101,108,102, 46, 97,114,103,115, + 91,105, 93, 46,116,121,112,101, 32,126, 61, 32, 34, 46, 46, + 46, 34, 32,100,111, 10,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,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,110, 97,114,103, 32, 61, 32,110, 97,114,103, + 43, 49, 10,101,110,100, 10,105, 32, 61, 32,105, 43, 49, 10, + 101,110,100, 10,101,110,100, 10,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,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,111,117,116,112,117,116, 40, 39, 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,111, + 117,116,112,117,116, 40, 39, 35,101,110,100,105,102, 92,110, + 39, 41, 10,101,110,100, 10,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,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,108,111, 99, 97,108, 32,105, 61, 49, 10, + 119,104,105,108,101, 32,115,101,108,102, 46, 97,114,103,115, + 91,105, 93, 32, 97,110,100, 32,115,101,108,102, 46, 97,114, + 103,115, 91,105, 93, 46,116,121,112,101, 32,126, 61, 32, 34, + 46, 46, 46, 34, 32,100,111, 10,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,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,110, 97,114,103, 32, 61, 32,110, + 97,114,103, 43, 49, 10,101,110,100, 10,105, 32, 61, 32,105, + 43, 49, 10,101,110,100, 10,101,110,100, 10,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,111,117,116,112,117,116, 40, 39, 32,116,111, + 108,117, 97, 95,114,101,108,101, 97,115,101, 40,116,111,108, + 117, 97, 95, 83, 44,115,101,108,102, 41, 59, 39, 41, 10,111, + 117,116,112,117,116, 40, 39, 32,100,101,108,101,116,101, 32, + 115,101,108,102, 59, 39, 41, 10,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,111,117,116, + 112,117,116, 40, 39, 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, + 101,108,115,101, 10,111,117,116,112,117,116, 40, 39, 32,123, + 39, 41, 10,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,108,111, 99, 97,108, 32, 99,116,121, + 112,101, 32, 61, 32,115,101,108,102, 46,116,121,112,101, 10, + 105,102, 32, 99,116,121,112,101, 32, 61, 61, 32, 39,118, 97, + 108,117,101, 39, 32,111,114, 32, 99,116,121,112,101, 32, 61, + 61, 32, 39,102,117,110, 99,116,105,111,110, 39, 32,116,104, + 101,110, 10, 99,116,121,112,101, 32, 61, 32, 39,105,110,116, + 39, 10,101,110,100, 10,111,117,116,112,117,116, 40, 39, 32, + 39, 44,115,101,108,102, 46,109,111,100, 44, 99,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,105,102, 32, + 105,115, 98, 97,115,105, 99, 40,115,101,108,102, 46,116,121, + 112,101, 41, 32,111,114, 32,115,101,108,102, 46,112,116,114, + 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10,111,117,116, + 112,117,116, 40, 39, 40, 39, 44,115,101,108,102, 46,109,111, + 100, 44, 99,116,121,112,101, 44,115,101,108,102, 46,112,116, + 114, 44, 39, 41, 32, 39, 41, 10,101,110,100, 10,101,108,115, + 101, 10,111,117,116,112,117,116, 40, 39, 32, 39, 41, 10,101, + 110,100, 10,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,111,117,116,112,117,116, 40, + 39,110,101,119, 39, 44,115,101,108,102, 46,116,121,112,101, + 44, 39, 40, 39, 41, 10,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,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,101,108,115,101,105, + 102, 32, 99,108, 97,115,115, 32,116,104,101,110, 10,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, + 101,108,115,101, 10,111,117,116,112,117,116, 40,115,101,108, + 102, 46,110, 97,109,101, 44, 39, 40, 39, 41, 10,101,110,100, + 10,108,111, 99, 97,108, 32,105, 61, 49, 10,119,104,105,108, + 101, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 32, + 97,110,100, 32,115,101,108,102, 46, 97,114,103,115, 91,105, + 93, 46,116,121,112,101, 32,126, 61, 32, 34, 46, 46, 46, 34, + 32,100,111, 10,115,101,108,102, 46, 97,114,103,115, 91,105, + 93, 58,112, 97,115,115,112, 97,114, 40, 41, 10,105, 32, 61, + 32,105, 43, 49, 10,105,102, 32,115,101,108,102, 46, 97,114, + 103,115, 91,105, 93, 32, 97,110,100, 32,115,101,108,102, 46, + 97,114,103,115, 91,105, 93, 46,116,121,112,101, 32,126, 61, + 32, 34, 46, 46, 46, 34, 32,116,104,101,110, 10,111,117,116, + 112,117,116, 40, 39, 44, 39, 41, 10,101,110,100, 10,101,110, + 100, 10,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,116,104,101,110, + 10,111,117,116,112,117,116, 40, 39, 45, 49, 41, 59, 39, 41, + 10,101,108,115,101, 10,111,117,116,112,117,116, 40, 39, 41, + 59, 39, 41, 10,101,110,100, 10,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,110,114,101,116, + 32, 61, 32,110,114,101,116, 32, 43, 32, 49, 10,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,105, + 102, 32,116, 32,116,104,101,110, 10,105,102, 32,116, 61, 61, + 39,102,117,110, 99,116,105,111,110, 39, 32,116,104,101,110, + 32,116, 61, 39,118, 97,108,117,101, 39, 32,101,110,100, 10, + 105,102, 32,115,101,108,102, 46,116,121,112,101, 32, 61, 61, + 32, 39,116,111,108,117, 97, 95,105,110,100,101,120, 39, 32, + 116,104,101,110, 10,111,117,116,112,117,116, 40, 39, 32,105, + 102, 32, 40,116,111,108,117, 97, 95,114,101,116, 32, 60, 32, + 48, 41, 32,108,117, 97, 95,112,117,115,104,110,105,108, 40, + 116,111,108,117, 97, 95, 83, 41, 59, 39, 41, 10,111,117,116, + 112,117,116, 40, 39, 32,101,108,115,101, 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, 43, 49, 41, 59, 39, 41, + 10,101,108,115,101, 10,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,116,111,108,117, 97, 95,114,101,116, 41, 59, + 39, 41, 10,101,110,100, 10,101,108,115,101, 10,116, 32, 61, + 32,115,101,108,102, 46,116,121,112,101, 10,105,102, 32,115, + 101,108,102, 46,112,116,114, 32, 61, 61, 32, 39, 39, 32,116, + 104,101,110, 10,111,117,116,112,117,116, 40, 39, 32,123, 39, + 41, 10,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,111,117,116,112,117,116, 40, 39, 32,118,111,105, + 100, 42, 32,116,111,108,117, 97, 95,111, 98,106, 32, 61, 32, + 110,101,119, 39, 44,116, 44, 39, 40,116,111,108,117, 97, 95, + 114,101,116, 41, 59, 39, 41, 10,111,117,116,112,117,116, 40, + 39, 32,116,111,108,117, 97, 95,112,117,115,104,117,115,101, + 114,116,121,112,101, 40,116,111,108,117, 97, 95, 83, 44,116, + 111,108,117, 97, 95, 99,108,111,110,101, 40,116,111,108,117, + 97, 95, 83, 44,116,111,108,117, 97, 95,111, 98,106, 44, 39, + 46, 46, 32, 40, 95, 99,111,108,108,101, 99,116, 91,116, 93, + 32,111,114, 32, 39, 78, 85, 76, 76, 39, 41, 32, 46, 46, 39, + 41, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10,111, + 117,116,112,117,116, 40, 39, 35,101,108,115,101, 92,110, 39, + 41, 10,111,117,116,112,117,116, 40, 39, 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,111,117,116,112,117,116, + 40, 39, 32,116,111,108,117, 97, 95,112,117,115,104,117,115, + 101,114,116,121,112,101, 40,116,111,108,117, 97, 95, 83, 44, + 116,111,108,117, 97, 95, 99,108,111,110,101, 40,116,111,108, + 117, 97, 95, 83, 44,116,111,108,117, 97, 95,111, 98,106, 44, + 78, 85, 76, 76, 41, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, + 39, 41, 10,111,117,116,112,117,116, 40, 39, 35,101,110,100, + 105,102, 92,110, 39, 41, 10,111,117,116,112,117,116, 40, 39, + 32,125, 39, 41, 10,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,111,117,116,112,117,116, 40, 39, 32,116,111,108, + 117, 97, 95,112,117,115,104,117,115,101,114,116,121,112,101, + 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,101,108,115,101, 10,111, + 117,116,112,117,116, 40, 39, 32,116,111,108,117, 97, 95,112, + 117,115,104,117,115,101,114,116,121,112,101, 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,105,102, 32,115,101,108,102, 46,109,111,100, + 32, 61, 61, 32, 39,116,111,108,117, 97, 95,111,119,110, 39, + 32,116,104,101,110, 10,111,117,116,112,117,116, 40, 39, 32, + 108,117, 97, 95,112,117,115,104, 99,102,117,110, 99,116,105, + 111,110, 40,116,111,108,117, 97, 95, 83, 44, 32,116,111,108, + 117, 97, 95, 98,110,100, 95,116, 97,107,101,111,119,110,101, + 114,115,104,105,112, 41, 59, 39, 41, 10,111,117,116,112,117, + 116, 40, 39, 32,108,117, 97, 95,112,117,115,104,118, 97,108, + 117,101, 40,116,111,108,117, 97, 95, 83, 44, 32, 45, 50, 41, + 59, 39, 41, 10,111,117,116,112,117,116, 40, 39, 32,108,117, + 97, 95, 99, 97,108,108, 40,116,111,108,117, 97, 95, 83, 44, + 32, 49, 44, 32, 48, 41, 59, 39, 41, 10,101,110,100, 10,101, + 110,100, 10,101,110,100, 10,101,110,100, 10,108,111, 99, 97, + 108, 32,105, 61, 49, 10,119,104,105,108,101, 32,115,101,108, + 102, 46, 97,114,103,115, 91,105, 93, 32,100,111, 10,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,105, 32, 61, 32,105, 43, 49, 10,101, + 110,100, 10,111,117,116,112,117,116, 40, 39, 32,125, 39, 41, + 10,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,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,108, + 111, 99, 97,108, 32,105, 61, 49, 10,119,104,105,108,101, 32, + 115,101,108,102, 46, 97,114,103,115, 91,105, 93, 32,100,111, + 10,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,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, + 110, 97,114,103, 32, 61, 32,110, 97,114,103, 43, 49, 10,101, + 110,100, 10,105, 32, 61, 32,105, 43, 49, 10,101,110,100, 10, + 101,110,100, 10,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,108,111, 99, 97,108, + 32,105, 61, 49, 10,119,104,105,108,101, 32,115,101,108,102, + 46, 97,114,103,115, 91,105, 93, 32,100,111, 10,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,105, 32, 61, 32,105, 43, 49, 10, + 101,110,100, 10,101,110,100, 10,101,110,100, 10,111,117,116, + 112,117,116, 40, 39, 32,125, 39, 41, 10,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,105,102, 32,111,118, + 101,114,108,111, 97,100, 32, 60, 32, 48, 32,116,104,101,110, + 10,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,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,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,111, + 117,116,112,117,116, 40, 39, 32,114,101,116,117,114,110, 32, + 48, 59, 39, 41, 10,111,117,116,112,117,116, 40, 39, 35,101, + 110,100,105,102, 92,110, 39, 41, 10,101,108,115,101, 10,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,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, 39, 40,116,111,108,117, 97, 95, 83, 41, 59, + 39, 41, 10,101,110,100, 10,111,117,116,112,117,116, 40, 39, + 125, 39, 41, 10,111,117,116,112,117,116, 40, 39, 92,110, 39, + 41, 10,101,110,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,114, + 101,103,105,115,116,101,114, 32, 40, 41, 10,111,117,116,112, + 117,116, 40, 39, 32,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,101,110,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,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,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,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, + 112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, + 112,116,114, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46, + 112,116,114, 46, 46, 34, 39, 44, 34, 41, 10,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,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,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,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,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,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,108,111, 99, 97,108, 32,105, 61, 49, 10, + 119,104,105,108,101, 32,115,101,108,102, 46, 97,114,103,115, + 91,105, 93, 32,100,111, 10,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, 34, 44, 34, 44, 34, 41, 10,105, 32, 61, + 32,105, 43, 49, 10,101,110,100, 10,112,114,105,110,116, 40, + 105,100,101,110,116, 46, 46, 34, 32,125, 34, 41, 10,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,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,108,111, 99, + 97,108, 32,114, 32, 61, 32,102, 97,108,115,101, 10,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,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, + 42, 34, 44, 34, 34, 41, 10,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,103,115,117, 98, 40,116,121,112, + 101, 44, 34, 58, 58, 34, 44, 34, 95, 34, 41, 10,114, 32, 61, + 32,116,114,117,101, 10,101,110,100, 10,108,111, 99, 97,108, + 32,105, 61, 49, 10,119,104,105,108,101, 32,115,101,108,102, + 46, 97,114,103,115, 91,105, 93, 32,100,111, 10,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,105, 32, 61, 32,105, + 43, 49, 10,101,110,100, 10,114,101,116,117,114,110, 32,114, + 10,101,110,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,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,102,117,110, 99,116,105, + 111,110, 32, 95, 70,117,110, 99,116,105,111,110, 32, 40,116, + 41, 10,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,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,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,101,110,100, + 10, 97,112,112,101,110,100, 40,116, 41, 10,105,102, 32,116, + 58,105,110, 99,108, 97,115,115, 40, 41, 32,116,104,101,110, + 10,105,102, 32,116, 46,110, 97,109,101, 32, 61, 61, 32,116, + 46,112, 97,114,101,110,116, 46,110, 97,109,101, 32,116,104, + 101,110, 10,116, 46,110, 97,109,101, 32, 61, 32, 39,110,101, + 119, 39, 10,116, 46,108,110, 97,109,101, 32, 61, 32, 39,110, + 101,119, 39, 10,116, 46,116,121,112,101, 32, 61, 32,116, 46, + 112, 97,114,101,110,116, 46,110, 97,109,101, 10,116, 46,112, + 116,114, 32, 61, 32, 39, 42, 39, 10,101,108,115,101,105,102, + 32,116, 46,110, 97,109,101, 32, 61, 61, 32, 39,126, 39, 46, + 46,116, 46,112, 97,114,101,110,116, 46,110, 97,109,101, 32, + 116,104,101,110, 10,116, 46,110, 97,109,101, 32, 61, 32, 39, + 100,101,108,101,116,101, 39, 10,116, 46,108,110, 97,109,101, + 32, 61, 32, 39,100,101,108,101,116,101, 39, 10,116, 46,112, + 97,114,101,110,116, 46, 95,100,101,108,101,116,101, 32, 61, + 32,116,114,117,101, 10,101,110,100, 10,101,110,100, 10,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, + 114,101,116,117,114,110, 32,116, 10,101,110,100, 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,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, 10, + 108,111, 99, 97,108, 32,105, 61, 49, 10,108,111, 99, 97,108, + 32,108, 32, 61, 32,123,110, 61, 48,125, 10,119,104,105,108, + 101, 32,116, 91,105, 93, 32,100,111, 10,108, 46,110, 32, 61, + 32,108, 46,110, 43, 49, 10,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,105, 32, 61, 32,105, + 43, 49, 10,101,110,100, 10,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,102, 46, 97,114,103,115, + 32, 61, 32,108, 10,102, 46, 99,111,110,115,116, 32, 61, 32, + 99, 10,114,101,116,117,114,110, 32, 95, 70,117,110, 99,116, + 105,111,110, 40,102, 41, 10,101,110,100,32 + }; + if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) + lua_pcall(tolua_S,0,LUA_MULTRET,0); + } /* end of embedded lua code */ + + + { /* begin embedded lua code */ + static unsigned char B[] = { + 10, 99,108, 97,115,115, 79,112,101,114, 97,116,111,114, 32, + 61, 32,123, 10,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, 95, 84, 77, 32, 61, 32,123, 91, + 39, 43, 39, 93, 32, 61, 32, 39, 97,100,100, 39, 44, 10, 91, + 39, 45, 39, 93, 32, 61, 32, 39,115,117, 98, 39, 44, 10, 91, + 39, 42, 39, 93, 32, 61, 32, 39,109,117,108, 39, 44, 10, 91, + 39, 47, 39, 93, 32, 61, 32, 39,100,105,118, 39, 44, 10, 91, + 39, 60, 39, 93, 32, 61, 32, 39,108,116, 39, 44, 10, 91, 39, + 60, 61, 39, 93, 32, 61, 32, 39,108,101, 39, 44, 10, 91, 39, + 61, 61, 39, 93, 32, 61, 32, 39,101,113, 39, 44, 10, 91, 39, + 91, 93, 39, 93, 32, 61, 32, 39,103,101,116,105, 39, 44, 10, + 91, 39, 38, 91, 93, 39, 93, 32, 61, 32, 39,115,101,116,105, + 39, 44, 10,125, 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,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,112, + 114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,107, + 105,110,100, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46, + 107,105,110,100, 46, 46, 34, 39, 44, 34, 41, 10,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,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,112,114,105,110,116, 40,105,100,101, + 110,116, 46, 46, 34, 32,112,116,114, 32, 61, 32, 39, 34, 46, + 46,115,101,108,102, 46,112,116,114, 46, 46, 34, 39, 44, 34, + 41, 10,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, + 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, + 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, + 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, + 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,108,111, 99, 97, + 108, 32,105, 61, 49, 10,119,104,105,108,101, 32,115,101,108, + 102, 46, 97,114,103,115, 91,105, 93, 32,100,111, 10,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, 34, 44, 34, 44, + 34, 41, 10,105, 32, 61, 32,105, 43, 49, 10,101,110,100, 10, + 112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, + 125, 34, 41, 10,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,102,117,110, 99,116,105,111,110, 32, 95, 79,112, + 101,114, 97,116,111,114, 32, 40,116, 41, 10,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,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,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,101,110,100, 10, 97,112,112,101,110, + 100, 40,116, 41, 10,105,102, 32,110,111,116, 32,116, 58,105, + 110, 99,108, 97,115,115, 40, 41, 32,116,104,101,110, 10,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,101,110,100, 10,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, 95, 84, 77, 91,116, 46, + 107,105,110,100, 93, 10,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,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, 10,114,101,116,117,114,110, 32,116, + 10,101,110,100, 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,108,111, 99, 97,108, 32,114,101,102, 32, 61, 32, + 39, 39, 10,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, + 115,116,114,108,101,110, 40, 97, 41, 45, 49, 41, 44, 39, 44, + 39, 41, 10,108,111, 99, 97,108, 32,105, 61, 49, 10,108,111, + 99, 97,108, 32,108, 32, 61, 32,123,110, 61, 48,125, 10,119, + 104,105,108,101, 32,116, 91,105, 93, 32,100,111, 10,108, 46, + 110, 32, 61, 32,108, 46,110, 43, 49, 10,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,105, 32, + 61, 32,105, 43, 49, 10,101,110,100, 10,105,102, 32,107, 32, + 61, 61, 32, 39, 91, 93, 39, 32,116,104,101,110, 10,108,111, + 99, 97,108, 32, 95, 10, 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,100, 32, 61, 32,103,115,117, 98, 40,100, + 44, 39, 38, 39, 44, 39, 39, 41, 10,101,108,115,101,105,102, + 32,107, 61, 61, 39, 38, 91, 93, 39, 32,116,104,101,110, 10, + 108, 46,110, 32, 61, 32,108, 46,110, 43, 49, 10,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,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,101,110,100, 10,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,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,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,101,110,100, 10,102, 46, 97,114,103, + 115, 32, 61, 32,108, 10,102, 46, 99,111,110,115,116, 32, 61, + 32, 99, 10,102, 46,107,105,110,100, 32, 61, 32,103,115,117, + 98, 40,107, 44, 34, 37,115, 34, 44, 34, 34, 41, 10,105,102, + 32,110,111,116, 32, 95, 84, 77, 91,102, 46,107,105,110,100, + 93, 32,116,104,101,110, 10,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,101,110,100, + 10,102, 46,108,110, 97,109,101, 32, 61, 32, 34, 46, 34, 46, + 46, 95, 84, 77, 91,102, 46,107,105,110,100, 93, 10,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, 79,112,101,114, 97, + 116,111,114, 40,100, 44, 39, 38, 39, 46, 46,107, 44, 97, 44, + 99, 41, 10,101,110,100, 10,114,101,116,117,114,110, 32, 95, + 79,112,101,114, 97,116,111,114, 40,102, 41, 10,101,110,100, + 32 + }; + if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) + lua_pcall(tolua_S,0,LUA_MULTRET,0); + } /* end of embedded lua code */ + + + { /* begin embedded lua code */ + static unsigned char B[] = { + 10, 99,108, 97,115,115, 67,108, 97,115,115, 32, 61, 32,123, + 10, 99,108, 97,115,115,116,121,112,101, 32, 61, 32, 39, 99, + 108, 97,115,115, 39, 44, 10,110, 97,109,101, 32, 61, 32, 39, + 39, 44, 10, 98, 97,115,101, 32, 61, 32, 39, 39, 44, 10,116, + 121,112,101, 32, 61, 32, 39, 39, 44, 10, 98,116,121,112,101, + 32, 61, 32, 39, 39, 44, 10, 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,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, 41, 10,112,117,115,104, 40,115,101,108,102, 41, + 10,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,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, + 111,117,116,112,117,116, 40, 39, 32,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,111,117,116,112, + 117,116, 40, 39, 35,101,108,115,101, 92,110, 39, 41, 10,111, + 117,116,112,117,116, 40, 39, 32,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,111,117,116,112,117,116, 40, 39, 35,101,110, + 100,105,102, 92,110, 39, 41, 10,101,108,115,101, 10,111,117, + 116,112,117,116, 40, 39, 32,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,101,110,100, 10,111,117,116,112,117,116, 40, 39, + 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, 34, 39, 46, + 46,115,101,108,102, 46,108,110, 97,109,101, 46, 46, 39, 34, + 41, 59, 39, 41, 10,108,111, 99, 97,108, 32,105, 61, 49, 10, + 119,104,105,108,101, 32,115,101,108,102, 91,105, 93, 32,100, + 111, 10,115,101,108,102, 91,105, 93, 58,114,101,103,105,115, + 116,101,114, 40, 41, 10,105, 32, 61, 32,105, 43, 49, 10,101, + 110,100, 10,111,117,116,112,117,116, 40, 39, 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, 39, 41, 10,112,111,112, 40, 41, + 10,101,110,100, 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,112,117,115,104, 40,115,101,108,102, 41, 10,108,111, + 99, 97,108, 32,114, 32, 61, 32,102, 97,108,115,101, 10,108, + 111, 99, 97,108, 32,105, 61, 49, 10,119,104,105,108,101, 32, + 115,101,108,102, 91,105, 93, 32,100,111, 10,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,105, 32, 61, 32,105, 43, 49, 10,101,110,100, + 10,112,111,112, 40, 41, 10,105,102, 32,115,101,108,102, 46, + 95,100,101,108,101,116,101, 32,116,104,101,110, 10,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,114, 32, + 61, 32,116,114,117,101, 10,101,110,100, 10,114,101,116,117, + 114,110, 32,114, 10,101,110,100, 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,112,117,115,104, + 40,115,101,108,102, 41, 10,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,110, 97,109,101, 41, 10,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,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,108,111, + 99, 97,108, 32,105, 61, 49, 10,119,104,105,108,101, 32,115, + 101,108,102, 91,105, 93, 32,100,111, 10,115,101,108,102, 91, + 105, 93, 58,100,101, 99,108,116,121,112,101, 40, 41, 10,105, + 32, 61, 32,105, 43, 49, 10,101,110,100, 10,112,111,112, 40, + 41, 10,101,110,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,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, + 67,108, 97,115,115,123, 34, 41, 10,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,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,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,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,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,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,108,111, 99, 97,108, 32,105, 61, 49, 10,119,104, + 105,108,101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10, + 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, + 105, 32, 61, 32,105, 43, 49, 10,101,110,100, 10,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,102,117,110, 99, + 116,105,111,110, 32, 95, 67,108, 97,115,115, 32, 40,116, 41, + 10,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,116, 58, + 98,117,105,108,100,110, 97,109,101,115, 40, 41, 10, 97,112, + 112,101,110,100, 40,116, 41, 10,114,101,116,117,114,110, 32, + 116, 10,101,110,100, 10,102,117,110, 99,116,105,111,110, 32, + 67,108, 97,115,115, 32, 40,110, 44,112, 44, 98, 41, 10,108, + 111, 99, 97,108, 32, 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,112,125, 41, 10,112, + 117,115,104, 40, 99, 41, 10, 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, 10,112,111,112, 40, 41, + 10,101,110,100,32 + }; + if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) + lua_pcall(tolua_S,0,LUA_MULTRET,0); + } /* end of embedded lua code */ + + + { /* begin embedded lua code */ + static unsigned char B[] = { + 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, 61, 32, 34, 92, 48, 48, 53, 34, 10, 65, 78, 89, 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, + 77, 65, 83, 75, 32, 61, 32,123, 10,123, 69, 83, 67, 49, 44, + 32, 34, 92, 92, 39, 34, 44, 32, 34, 92, 92, 39, 34,125, 44, + 10,123, 69, 83, 67, 50, 44, 32, 39, 92, 92, 34, 39, 44, 32, + 39, 92, 92, 34, 39,125, 44, 10,123, 83, 84, 82, 49, 44, 32, + 34, 39, 34, 44, 32, 34, 39, 34,125, 44, 10,123, 83, 84, 82, + 50, 44, 32, 39, 34, 39, 44, 32, 39, 34, 39,125, 44, 10,123, + 83, 84, 82, 51, 44, 32, 34, 37, 91, 37, 91, 34, 44, 32, 34, + 91, 91, 34,125, 44, 10,123, 83, 84, 82, 52, 44, 32, 34, 37, + 93, 37, 93, 34, 44, 32, 34, 93, 93, 34,125, 44, 10,123, 82, + 69, 77, 32, 44, 32, 34, 37, 45, 37, 45, 34, 44, 32, 34, 45, + 45, 34,125, 44, 10,125, 10,102,117,110, 99,116,105,111,110, + 32,109, 97,115,107, 32, 40,115, 41, 10,102,111,114, 32,105, + 32, 61, 32, 49, 44,103,101,116,110, 40, 77, 65, 83, 75, 41, + 32,100,111, 10,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,101,110,100, 10,114,101,116, + 117,114,110, 32,115, 10,101,110,100, 10,102,117,110, 99,116, + 105,111,110, 32,117,110,109, 97,115,107, 32, 40,115, 41, 10, + 102,111,114, 32,105, 32, 61, 32, 49, 44,103,101,116,110, 40, + 77, 65, 83, 75, 41, 32,100,111, 10,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, 51, 93, 41, 10,101,110, + 100, 10,114,101,116,117,114,110, 32,115, 10,101,110,100, 10, + 102,117,110, 99,116,105,111,110, 32, 99,108,101, 97,110, 32, + 40,115, 41, 10,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, 32, 34, 32, 46, 46, 32,115, 32, 46, + 46, 32, 34, 32,101,110,100, 34, 10,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,114,101,116,117,114,110, 32,110,105, + 108, 10,101,110,100, 10,108,111, 99, 97,108, 32, 83, 32, 61, + 32, 34, 34, 10,115, 32, 61, 32,109, 97,115,107, 40,115, 41, + 10,119,104,105,108,101, 32, 49, 32,100,111, 10,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,105,102, 32, 98, + 32,116,104,101,110, 10, 83, 32, 61, 32, 83, 46, 46,115,116, + 114,115,117, 98, 40,115, 44, 49, 44, 98, 45, 49, 41, 10,115, + 32, 61, 32,115,116,114,115,117, 98, 40,115, 44, 98, 43, 49, + 41, 10,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,101, + 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44,100, 41, + 10, 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,115, 32, 61, 32, + 115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10,101, + 108,115,101,105,102, 32,100, 61, 61, 83, 84, 82, 51, 32,116, + 104,101,110, 10,101, 32, 61, 32,115,116,114,102,105,110,100, + 40,115, 44, 83, 84, 82, 52, 41, 10, 83, 32, 61, 32, 83, 46, + 46,100, 46, 46,115,116,114,115,117, 98, 40,115, 44, 49, 44, + 101, 41, 10,115, 32, 61, 32,115,116,114,115,117, 98, 40,115, + 44,101, 43, 49, 41, 10,101,108,115,101,105,102, 32,100, 61, + 61, 82, 69, 77, 32,116,104,101,110, 10,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,101,110, + 100, 10,101,108,115,101, 10, 83, 32, 61, 32, 83, 46, 46,115, + 10, 98,114,101, 97,107, 10,101,110,100, 10,101,110,100, 10, + 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, 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, 83, + 32, 61, 32,103,115,117, 98, 40, 83, 44, 34, 92,110, 43, 34, + 44, 34, 92,110, 34, 41, 10, 83, 32, 61, 32,117,110,109, 97, + 115,107, 40, 83, 41, 10,114,101,116,117,114,110, 32, 83, 10, + 101,110,100,32 + }; + if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) + lua_pcall(tolua_S,0,LUA_MULTRET,0); + } /* end of embedded lua code */ + + + { /* begin embedded lua code */ + static unsigned char B[] = { + 10,102,117,110, 99,116,105,111,110, 32,100,111,105,116, 32, + 40, 41, 10,105,102, 32,110,111,116, 32,102,108, 97,103,115, + 46,110, 32,116,104,101,110, 10,105,102, 32,102,108, 97,103, + 115, 46,102, 32,116,104,101,110, 10,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, 34, 44, 34, 34, 41, 10,101,108, + 115,101, 10,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,101,110,100, 10,101,110,100, + 10,108,111, 99, 97,108, 32,112, 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,105,102, 32,102,108, 97,103,115, 46, + 112, 32,116,104,101,110, 10,114,101,116,117,114,110, 10,101, + 110,100, 10,105,102, 32,102,108, 97,103,115, 46,111, 32,116, + 104,101,110, 10,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,105,102, 32,110,111,116, 32,115,116, + 32,116,104,101,110, 10,101,114,114,111,114, 40, 39, 35, 39, + 46, 46,109,115,103, 41, 10,101,110,100, 10,101,110,100, 10, + 112, 58,100,101, 99,108,116,121,112,101, 40, 41, 10,105,102, + 32,102,108, 97,103,115, 46, 80, 32,116,104,101,110, 10,112, + 58,112,114,105,110,116, 40, 41, 10,101,108,115,101, 10,112, + 58,112,114,101, 97,109, 98,108,101, 40, 41, 10,112, 58,115, + 117,112, 99,111,100,101, 40, 41, 10,112, 58,114,101,103,105, + 115,116,101,114, 40, 41, 10,101,110,100, 10,105,102, 32,102, + 108, 97,103,115, 46,111, 32,116,104,101,110, 10,119,114,105, + 116,101,116,111, 40, 41, 10,101,110,100, 10,105,102, 32,110, + 111,116, 32,102,108, 97,103,115, 46, 80, 32,116,104,101,110, + 10,105,102, 32,102,108, 97,103,115, 46, 72, 32,116,104,101, + 110, 10,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,105,102, 32,110,111,116, 32,115,116, 32,116, + 104,101,110, 10,101,114,114,111,114, 40, 39, 35, 39, 46, 46, + 109,115,103, 41, 10,101,110,100, 10,112, 58,104,101, 97,100, + 101,114, 40, 41, 10,119,114,105,116,101,116,111, 40, 41, 10, + 101,110,100, 10,101,110,100, 10,101,110,100,32 + }; + if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) + lua_pcall(tolua_S,0,LUA_MULTRET,0); + } /* end of embedded lua code */ + + + { /* begin embedded lua code */ + 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, + 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,116,111,108,117, 97, 95,101, + 114,114,111,114, 40,109,115,103, 44,108, 97, 98,101,108, 41, + 10,101,110,100,32 + }; + if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) + lua_pcall(tolua_S,0,LUA_MULTRET,0); + } /* end of embedded lua code */ + + tolua_endmodule(tolua_S); + return 1; +} +/* Open tolua function */ +TOLUA_API int tolua_tolua_open (lua_State* tolua_S) +{ + lua_pushcfunction(tolua_S, luaopen_tolua); + lua_pushstring(tolua_S, "tolua"); + lua_call(tolua_S, 1, 0); + return 1; +} diff --git a/ThirdParty/tolua-5.2.4/src/bin/toluabind.c b/ThirdParty/tolua-5.2.4/src/bin/toluabind.c new file mode 100644 index 0000000..5036cc2 --- /dev/null +++ b/ThirdParty/tolua-5.2.4/src/bin/toluabind.c @@ -0,0 +1,4228 @@ +/* +** Lua binding: tolua +*/ + +#include "tolua.h" + +#ifndef __cplusplus +#include <stdlib.h> +#endif +#ifdef __cplusplus + extern "C" int tolua_bnd_takeownership (lua_State* L); // from tolua_map.c +#else + int tolua_bnd_takeownership (lua_State* L); /* from tolua_map.c */ +#endif +#include <string.h> + +/* Exported function */ +TOLUA_API int tolua_tolua_open (lua_State* tolua_S); +LUALIB_API int luaopen_tolua (lua_State* tolua_S); + + +/* function to register type */ +static void tolua_reg_types (lua_State* tolua_S) +{ +} + +/* Open lib function */ +LUALIB_API int luaopen_tolua (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 */ + static unsigned char B[] = { + 10,114, 97,119,116,121,112,101, 32, 61, 32,116,121,112,101, + 10,102,117,110, 99,116,105,111,110, 32,100,111, 95, 32, 40, + 102, 44, 32,101,114,114, 41, 10,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, + 108,111, 99, 97,108, 32, 97, 44, 98, 32, 61, 32,112, 99, 97, + 108,108, 40,102, 41, 10,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,101,108,115,101, + 32,114,101,116,117,114,110, 32, 98, 32,111,114, 32,116,114, + 117,101, 10,101,110,100, 10,101,110,100, 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, 40,115, 41, 41, 32,101,110,100, 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,102,117,110, 99,116,105, + 111,110, 40,116, 44,102, 41, 10,102,111,114, 32,107, 44,118, + 32,105,110, 32,112, 97,105,114,115, 40,116, 41, 32,100,111, + 10,102, 40,107, 44,118, 41, 10,101,110,100, 10,101,110,100, + 10,102,111,114,101, 97, 99,104,105, 32, 61, 32,102,117,110, + 99,116,105,111,110, 40,116, 44,102, 41, 10,102,111,114, 32, + 105, 44,118, 32,105,110, 32,105,112, 97,105,114,115, 40,116, + 41, 32,100,111, 10,102, 40,105, 44,118, 41, 10,101,110,100, + 10,101,110,100, 10,103,101,116,110, 32, 61, 32,102,117,110, + 99,116,105,111,110, 40,116, 41, 10,114,101,116,117,114,110, + 32, 35,116, 10,101,110,100, 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,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,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,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,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, 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, 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,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, + 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, 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, 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,102,117,110, 99,116,105, + 111,110, 32,102,108,117,115,104, 32, 40,102, 41, 10,105,102, + 32,102, 32,116,104,101,110, 32,102, 58,102,108,117,115,104, + 40, 41, 10,101,108,115,101, 32, 95, 79, 85, 84, 80, 85, 84, + 58,102,108,117,115,104, 40, 41, 10,101,110,100, 10,101,110, + 100, 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,105,102, 32, + 110, 97,109,101, 32, 61, 61, 32,110,105,108, 32,116,104,101, + 110, 10,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, 95, 73, 78, 80, 85, 84, + 32, 61, 32,105,111, 46,115,116,100,105,110, 10,114,101,116, + 117,114,110, 32,102, 44, 32,101,114,114, 44, 32, 99,111,100, + 10,101,108,115,101, 10,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, + 95, 73, 78, 80, 85, 84, 32, 61, 32,102, 32,111,114, 32, 95, + 73, 78, 80, 85, 84, 10,114,101,116,117,114,110, 32,102, 44, + 32,101,114,114, 44, 32, 99,111,100, 10,101,110,100, 10,101, + 110,100, 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,105,102, 32, + 110, 97,109,101, 32, 61, 61, 32,110,105,108, 32,116,104,101, + 110, 10,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, 95, 79, 85, 84, 80, + 85, 84, 32, 61, 32,105,111, 46,115,116,100,111,117,116, 10, + 114,101,116,117,114,110, 32,102, 44, 32,101,114,114, 44, 32, + 99,111,100, 10,101,108,115,101, 10,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, 95, 79, 85, 84, 80, 85, 84, 32, 61, 32,102, 32, + 111,114, 32, 95, 79, 85, 84, 80, 85, 84, 10,114,101,116,117, + 114,110, 32,102, 44, 32,101,114,114, 44, 32, 99,111,100, 10, + 101,110,100, 10,101,110,100, 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,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, 95, 79, 85, + 84, 80, 85, 84, 32, 61, 32,102, 32,111,114, 32, 95, 79, 85, + 84, 80, 85, 84, 10,114,101,116,117,114,110, 32,102, 44, 32, + 101,114,114, 44, 32, 99,111,100, 10,101,110,100, 10,102,117, + 110, 99,116,105,111,110, 32,114,101, 97,100, 32, 40, 46, 46, + 46, 41, 10,108,111, 99, 97,108, 32,102, 32, 61, 32, 95, 73, + 78, 80, 85, 84, 10,108,111, 99, 97,108, 32, 97,114,103, 32, + 61, 32,123, 46, 46, 46,125, 10,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,102, 32, 61, 32,116, 97, 98, 46,114,101,109,111,118,101, + 40, 97,114,103, 44, 32, 49, 41, 10,101,110,100, 10,114,101, + 116,117,114,110, 32,102, 58,114,101, 97,100, 40,116, 97, 98, + 108,101, 46,117,110,112, 97, 99,107, 40, 97,114,103, 41, 41, + 10,101,110,100, 10,102,117,110, 99,116,105,111,110, 32,119, + 114,105,116,101, 32, 40, 46, 46, 46, 41, 10,108,111, 99, 97, + 108, 32,102, 32, 61, 32, 95, 79, 85, 84, 80, 85, 84, 10,108, + 111, 99, 97,108, 32, 97,114,103, 32, 61, 32,123, 46, 46, 46, + 125, 10,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,102, 32, 61, 32,116, + 97, 98, 46,114,101,109,111,118,101, 40, 97,114,103, 44, 32, + 49, 41, 10,101,110,100, 10,114,101,116,117,114,110, 32,102, + 58,119,114,105,116,101, 40,116, 97, 98,108,101, 46,117,110, + 112, 97, 99,107, 40, 97,114,103, 41, 41, 10,101,110,100,32 + }; + if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) + lua_pcall(tolua_S,0,LUA_MULTRET,0); + } /* end of embedded lua code */ + + + { /* begin embedded lua code */ + static unsigned char B[] = { + 10, 95, 98, 97,115,105, 99, 32, 61, 32,123, 10, 91, 39,118, + 111,105,100, 39, 93, 32, 61, 32, 39, 39, 44, 10, 91, 39, 99, + 104, 97,114, 39, 93, 32, 61, 32, 39,110,117,109, 98,101,114, + 39, 44, 10, 91, 39,116,111,108,117, 97, 95,105,110,100,101, + 120, 39, 93, 32, 61, 32, 39,110,117,109, 98,101,114, 39, 44, + 10, 91, 39,116,111,108,117, 97, 95,108,101,110, 39, 93, 32, + 61, 32, 39,110,117,109, 98,101,114, 39, 44, 10, 91, 39,116, + 111,108,117, 97, 95, 98,121,116,101, 39, 93, 32, 61, 32, 39, + 110,117,109, 98,101,114, 39, 44, 10, 91, 39,116,111,108,117, + 97, 95,117, 98,121,116,101, 39, 93, 32, 61, 32, 39,110,117, + 109, 98,101,114, 39, 44, 10, 91, 39,116,111,108,117, 97, 95, + 109,117,108,116,114,101,116, 39, 93, 32, 61, 32, 39,110,117, + 109, 98,101,114, 39, 44, 10, 91, 39,105,110,116, 39, 93, 32, + 61, 32, 39,110,117,109, 98,101,114, 39, 44, 10, 91, 39,115, + 104,111,114,116, 39, 93, 32, 61, 32, 39,110,117,109, 98,101, + 114, 39, 44, 10, 91, 39,108,111,110,103, 39, 93, 32, 61, 32, + 39,110,117,109, 98,101,114, 39, 44, 10, 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, 91, 39,102,108,111, 97,116, 39, 93, 32, + 61, 32, 39,110,117,109, 98,101,114, 39, 44, 10, 91, 39,100, + 111,117, 98,108,101, 39, 93, 32, 61, 32, 39,110,117,109, 98, + 101,114, 39, 44, 10, 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, + 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, 91, 39, + 99,104, 97,114, 42, 39, 93, 32, 61, 32, 39,115,116,114,105, + 110,103, 39, 44, 10, 91, 39,118,111,105,100, 42, 39, 93, 32, + 61, 32, 39,117,115,101,114,100, 97,116, 97, 39, 44, 10, 91, + 39, 98,111,111,108, 39, 93, 32, 61, 32, 39, 98,111,111,108, + 101, 97,110, 39, 44, 10, 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, 91, 39, 95,108,115,116, 97,116,101, 39, 93, 32, 61, + 32, 39,115,116, 97,116,101, 39, 44, 10, 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, 91, 39,108,117, 97, 95, 70,117,110, + 99,116,105,111,110, 39, 93, 32, 61, 32, 39,102,117,110, 99, + 116,105,111,110, 39, 44, 10, 91, 39, 76, 85, 65, 95, 86, 65, + 76, 85, 69, 39, 93, 32, 61, 32, 39,118, 97,108,117,101, 39, + 44, 10,125, 10, 95, 98, 97,115,105, 99, 95, 99,116,121,112, + 101, 32, 61, 32,123, 10,110,117,109, 98,101,114, 32, 61, 32, + 34,108,117, 97, 95, 78,117,109, 98,101,114, 34, 44, 10,115, + 116,114,105,110,103, 32, 61, 32, 34, 99,111,110,115,116, 32, + 99,104, 97,114, 42, 34, 44, 10,117,115,101,114,100, 97,116, + 97, 32, 61, 32, 34,118,111,105,100, 42, 34, 44, 10, 98,111, + 111,108,101, 97,110, 32, 61, 32, 34, 98,111,111,108, 34, 44, + 10,118, 97,108,117,101, 32, 61, 32, 34,105,110,116, 34, 44, + 10,125, 10, 95,117,115,101,114,116,121,112,101, 32, 61, 32, + 123,125, 10, 95, 99,111,108,108,101, 99,116, 32, 61, 32,123, + 125, 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, + 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,105,102, 32,110, + 111,116, 32, 98, 32,116,104,101,110, 10,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,101,110,100, + 10,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,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,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,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,105,102, 32,110, 32,126, 61, 32, 48, 32,116,104,101,110, + 10,114,101,116,117,114,110, 32,109, 10,101,110,100, 10,101, + 110,100, 10,114,101,116,117,114,110, 32,110,105,108, 10,101, + 110,100, 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, + 108,111, 99, 97,108, 32,111,117,116, 32, 61, 32, 95, 79, 85, + 84, 80, 85, 84, 10, 95, 79, 85, 84, 80, 85, 84, 32, 61, 32, + 95, 83, 84, 68, 69, 82, 82, 10,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,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,105,102, 32, 95, 99,117,114,114, 95, + 99,111,100,101, 32,116,104,101,110, 10,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, 10,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,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, 10,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, 10,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, 10,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,101,110,100, 10,101,108,115,101, 10, + 112,114,105,110,116, 40,100,101, 98,117,103, 46,116,114, 97, + 99,101, 98, 97, 99,107, 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, 41, 10,114,101,116,117,114,110, + 10,101,110,100, 10, 95, 79, 85, 84, 80, 85, 84, 32, 61, 32, + 111,117,116, 10,101,110,100, 10,102,117,110, 99,116,105,111, + 110, 32,119, 97,114,110,105,110,103, 32, 40,109,115,103, 41, + 10,108,111, 99, 97,108, 32,111,117,116, 32, 61, 32, 95, 79, + 85, 84, 80, 85, 84, 10, 95, 79, 85, 84, 80, 85, 84, 32, 61, + 32, 95, 83, 84, 68, 69, 82, 82, 10,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, 95, 79, 85, 84, 80, 85, 84, + 32, 61, 32,111,117,116, 10,101,110,100, 10,102,117,110, 99, + 116,105,111,110, 32,114,101,103,116,121,112,101, 32, 40,116, + 41, 10,108,111, 99, 97,108, 32,102,116, 32, 61, 32,102,105, + 110,100,116,121,112,101, 40,116, 41, 10,105,102, 32,105,115, + 98, 97,115,105, 99, 40,116, 41, 32,116,104,101,110, 10,114, + 101,116,117,114,110, 32,116, 10,101,110,100, 10,105,102, 32, + 110,111,116, 32,102,116, 32,116,104,101,110, 10,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,101,110,100, 10,101,110,100, 10, + 102,117,110, 99,116,105,111,110, 32,116,121,112,101,118, 97, + 114, 40,116,121,112,101, 41, 10,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,111,114, 32,116,121, + 112,101, 32, 61, 61, 32, 34, 46, 46, 46, 34, 32,116,104,101, + 110, 10,114,101,116,117,114,110, 32,116,121,112,101, 10,101, + 108,115,101, 10,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, + 105,102, 32,102,116, 32,116,104,101,110, 10,114,101,116,117, + 114,110, 32,102,116, 10,101,110,100, 10, 95,117,115,101,114, + 116,121,112,101, 91,116,121,112,101, 93, 32, 61, 32,116,121, + 112,101, 10,114,101,116,117,114,110, 32,116,121,112,101, 10, + 101,110,100, 10,101,110,100, 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,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,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, + 116, 41, 10,108,111, 99, 97,108, 32, 98, 32, 61, 32, 95, 98, + 97,115,105, 99, 91,116, 93, 10,105,102, 32, 98, 32,116,104, + 101,110, 10,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,101,110, + 100, 10,114,101,116,117,114,110, 32,110,105,108, 10,101,110, + 100, 10,102,117,110, 99,116,105,111,110, 32,115,112,108,105, + 116, 32, 40,115, 44,116, 41, 10,108,111, 99, 97,108, 32,108, + 32, 61, 32,123,110, 61, 48,125, 10,108,111, 99, 97,108, 32, + 102, 32, 61, 32,102,117,110, 99,116,105,111,110, 32, 40,115, + 41, 10,108, 46,110, 32, 61, 32,108, 46,110, 32, 43, 32, 49, + 10,108, 91,108, 46,110, 93, 32, 61, 32,115, 10,114,101,116, + 117,114,110, 32, 34, 34, 10,101,110,100, 10,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,115, + 32, 61, 32,103,115,117, 98, 40,115, 44, 34, 94, 37,115, 43, + 34, 44, 34, 34, 41, 10,115, 32, 61, 32,103,115,117, 98, 40, + 115, 44, 34, 37,115, 43, 36, 34, 44, 34, 34, 41, 10,115, 32, + 61, 32,103,115,117, 98, 40,115, 44,112, 44,102, 41, 10,108, + 46,110, 32, 61, 32,108, 46,110, 32, 43, 32, 49, 10,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,114, + 101,116,117,114,110, 32,108, 10,101,110,100, 10,102,117,110, + 99,116,105,111,110, 32, 99,111,110, 99, 97,116, 32, 40,116, + 44,102, 44,108, 41, 10,108,111, 99, 97,108, 32,115, 32, 61, + 32, 39, 39, 10,108,111, 99, 97,108, 32,105, 61,102, 10,119, + 104,105,108,101, 32,105, 60, 61,108, 32,100,111, 10,115, 32, + 61, 32,115, 46, 46,116, 91,105, 93, 10,105, 32, 61, 32,105, + 43, 49, 10,105,102, 32,105, 32, 60, 61, 32,108, 32,116,104, + 101,110, 32,115, 32, 61, 32,115, 46, 46, 39, 32, 39, 32,101, + 110,100, 10,101,110,100, 10,114,101,116,117,114,110, 32,115, + 10,101,110,100, 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,108,111, 99, 97,108, 32, 97, + 114,103, 32, 61, 32,123, 46, 46, 46,125, 10,108,111, 99, 97, + 108, 32,105, 61, 49, 10,119,104,105,108,101, 32,105, 60, 61, + 35, 97,114,103, 32,100,111, 10,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,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,108,105,110,101, 32, 61, + 32,108,105,110,101, 32, 46, 46, 32, 39, 32, 39, 10,101,110, + 100, 10,108,105,110,101, 32, 61, 32,108,105,110,101, 32, 46, + 46, 32, 97,114,103, 91,105, 93, 10,105,102, 32, 97,114,103, + 91,105, 93, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10, + 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,101, + 110,100, 10,105, 32, 61, 32,105, 43, 49, 10,101,110,100, 10, + 105,102, 32,115,116,114,102,105,110,100, 40, 97,114,103, 91, + 35, 97,114,103, 93, 44, 34, 91, 37, 47, 37, 41, 37, 59, 37, + 123, 37,125, 93, 36, 34, 41, 32,116,104,101,110, 10, 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,101,110, + 100, 10,114,101,116,117,114,110, 32,108,105,110,101, 10,101, + 110,100, 10,102,117,110, 99,116,105,111,110, 32,111,117,116, + 112,117,116, 32, 40, 46, 46, 46, 41, 10,108,111, 99, 97,108, + 32, 97,114,103, 32, 61, 32,123, 46, 46, 46,125, 10,108,111, + 99, 97,108, 32,105, 61, 49, 10,119,104,105,108,101, 32,105, + 60, 61, 35, 97,114,103, 32,100,111, 10,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,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,119,114,105,116, + 101, 40, 39, 32, 39, 41, 10,101,110,100, 10,119,114,105,116, + 101, 40, 97,114,103, 91,105, 93, 41, 10,105,102, 32, 97,114, + 103, 91,105, 93, 32,126, 61, 32, 39, 39, 32,116,104,101,110, + 10, 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, + 101,110,100, 10,105, 32, 61, 32,105, 43, 49, 10,101,110,100, + 10,105,102, 32,115,116,114,102,105,110,100, 40, 97,114,103, + 91, 35, 97,114,103, 93, 44, 34, 91, 37, 47, 37, 41, 37, 59, + 37,123, 37,125, 93, 36, 34, 41, 32,116,104,101,110, 10, 95, + 99,111,110,116, 61,110,105,108, 32,119,114,105,116,101, 40, + 39, 92,110, 39, 41, 10,101,110,100, 10,101,110,100,32 + }; + if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) + lua_pcall(tolua_S,0,LUA_MULTRET,0); + } /* end of embedded lua code */ + + + { /* begin embedded lua code */ + static unsigned char B[] = { + 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,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,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,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, 41, 10, + 101,110,100, 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,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,114,101,116,117,114,110, 32,102, 97,108,115,101, + 10,101,110,100, 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,114,101,116,117,114,110, 32,102, 97,108,115, + 101, 10,101,110,100, 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,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,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,115,101,108,102, 46,110, 97,109,101, 32, 61, + 32,110, 91, 49, 93, 10,105,102, 32,110,111,116, 32,110, 91, + 50, 93, 32,116,104,101,110, 10,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,101,110,100, 10,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,101,110,100, 10,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,101,110,100, 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,105,102, 32, + 115,101,108,102, 46,112, 97,114,101,110,116, 32,116,104,101, + 110, 10,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,119, + 104,105,108,101, 32,112, 97,114,101,110,116, 32,100,111, 10, + 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,114,101,116,117,114,110, 32,112, 97,114,101, + 110,116, 46,110, 97,109,101, 10,101,110,100, 10,112, 97,114, + 101,110,116, 32, 61, 32,112, 97,114,101,110,116, 46,112, 97, + 114,101,110,116, 10,101,110,100, 10,101,110,100, 10,114,101, + 116,117,114,110, 32,110,105,108, 10,101,110,100, 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,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,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,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,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,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,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,105, + 102, 32,115,101,108,102, 46,112, 97,114,101,110,116, 32,116, + 104,101,110, 10,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,101,110,100, 10,105,102, 32,115,101,108,102, 46, + 108,110, 97,109,101, 32, 97,110,100, 10,115,116,114,115,117, + 98, 40,115,101,108,102, 46,108,110, 97,109,101, 44, 49, 44, + 49, 41,126, 61, 34, 46, 34, 10,116,104,101,110, 10,114,101, + 116,117,114,110, 32,110, 46, 46, 39, 95, 39, 46, 46,115,101, + 108,102, 46,108,110, 97,109,101, 10,101,108,115,101, 10,114, + 101,116,117,114,110, 32,110, 46, 46, 39, 95, 39, 46, 46,115, + 101,108,102, 46,110, 97,109,101, 10,101,110,100, 10,101,110, + 100,32 + }; + if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) + lua_pcall(tolua_S,0,LUA_MULTRET,0); + } /* end of embedded lua code */ + + + { /* begin embedded lua code */ + static unsigned char B[] = { + 10, 99,108, 97,115,115, 86,101,114, 98, 97,116,105,109, 32, + 61, 32,123, 10,108,105,110,101, 32, 61, 32, 39, 39, 44, 10, + 99,111,110,100, 32, 61, 32,110,105,108, 44, 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,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,105,102, 32,115,101,108,102, + 46, 99,111,110,100, 32, 61, 61, 32, 39, 39, 32,116,104,101, + 110, 10,119,114,105,116,101, 40,115,101,108,102, 46,108,105, + 110,101, 41, 10,101,110,100, 10,101,110,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,115,117,112, 99,111,100,101, 32, 40, 41, + 10,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,119,114,105,116,101, 40,115,101,108,102, 46,108,105, + 110,101, 41, 10,119,114,105,116,101, 40, 39, 92,110, 39, 41, + 10,101,110,100, 10,101,110,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,114,101,103,105,115,116,101,114, 32, 40, 41, 10,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, + 119,114,105,116,101, 40,115,101,108,102, 46,108,105,110,101, + 41, 10,101,110,100, 10,101,110,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,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,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,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,102,117,110, 99,116,105,111,110, 32, 95, 86,101,114, 98, + 97,116,105,109, 32, 40,116, 41, 10,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, 97,112,112,101,110,100, + 40,116, 41, 10,114,101,116,117,114,110, 32,116, 10,101,110, + 100, 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,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, 99,111, + 110,100, 32, 61, 32, 39,115,114, 39, 10,108, 32, 61, 32,115, + 116,114,115,117, 98, 40,108, 44, 50, 41, 10,101,110,100, 10, + 114,101,116,117,114,110, 32, 95, 86,101,114, 98, 97,116,105, + 109, 32,123, 10,108,105,110,101, 32, 61, 32,108, 44, 10, 99, + 111,110,100, 32, 61, 32, 99,111,110,100, 32,111,114, 32, 39, + 39, 44, 10,125, 10,101,110,100,32 + }; + if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) + lua_pcall(tolua_S,0,LUA_MULTRET,0); + } /* end of embedded lua code */ + + + { /* begin embedded lua code */ + static unsigned char B[] = { + 10, 99,108, 97,115,115, 67,111,100,101, 32, 61, 32,123, 10, + 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,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, 41, 10,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,105,102, 32,110,111,116, 32,115, 32,116,104,101, + 110, 10,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,101,110,100, 10, + 111,117,116,112,117,116, 40, 39, 92,110, 32,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,111,117,116,112,117,116, 40, 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, 39, 41, 10, + 108,111, 99, 97,108, 32,116, 61,123,110, 61, 48,125, 10,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,108,111, 99, 97,108, 32,101, 32, 61, 32, + 39, 39, 10,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, 32, 39, 32,101,110, + 100, 10,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,101,110,100, 10, 41, 10, + 111,117,116,112,117,116, 40, 98, 46, 46,115,116,114, 98,121, + 116,101, 40, 34, 32, 34, 41, 41, 10,111,117,116,112,117,116, + 40, 39, 92,110, 32,125, 59, 92,110, 39, 41, 10,111,117,116, + 112,117,116, 40, 39, 32,105,102, 32, 40,108,117, 97, 76, 95, + 108,111, 97,100, 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, 34, 41, 32, 61, 61, 32, 76, 85, 65, 95, 79, 75, + 41, 92,110, 39, 41, 10,111,117,116,112,117,116, 40, 39, 32, + 108,117, 97, 95,112, 99, 97,108,108, 40,116,111,108,117, 97, + 95, 83, 44, 48, 44, 76, 85, 65, 95, 77, 85, 76, 84, 82, 69, + 84, 44, 48, 41, 59, 39, 41, 10,111,117,116,112,117,116, 40, + 39, 32,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,101,110,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,112,114,105,110,116, 40, + 105,100,101,110,116, 46, 46, 34, 67,111,100,101,123, 34, 41, + 10,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,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, + 102,117,110, 99,116,105,111,110, 32, 95, 67,111,100,101, 32, + 40,116, 41, 10,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, + 97,112,112,101,110,100, 40,116, 41, 10,114,101,116,117,114, + 110, 32,116, 10,101,110,100, 10,102,117,110, 99,116,105,111, + 110, 32, 67,111,100,101, 32, 40,108, 41, 10,114,101,116,117, + 114,110, 32, 95, 67,111,100,101, 32,123, 10,116,101,120,116, + 32, 61, 32,108, 10,125, 10,101,110,100,32 + }; + if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) + lua_pcall(tolua_S,0,LUA_MULTRET,0); + } /* end of embedded lua code */ + + + { /* begin embedded lua code */ + static unsigned char B[] = { + 10, 99,108, 97,115,115, 84,121,112,101,100,101,102, 32, 61, + 32,123, 10,117,116,121,112,101, 32, 61, 32, 39, 39, 44, 10, + 109,111,100, 32, 61, 32, 39, 39, 44, 10,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,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,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,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,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,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,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,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,114,101,116,117,114,110, 32,102, 97,108,115, + 101, 10,101,110,100, 10,102,117,110, 99,116,105,111,110, 32, + 95, 84,121,112,101,100,101,102, 32, 40,116, 41, 10,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, 97,112,112, + 101,110,100,116,121,112,101,100,101,102, 40,116, 41, 10,114, + 101,116,117,114,110, 32,116, 10,101,110,100, 10,102,117,110, + 99,116,105,111,110, 32, 84,121,112,101,100,101,102, 32, 40, + 115, 41, 10,105,102, 32,115,116,114,102,105,110,100, 40,115, + 44, 39, 91, 37, 42, 38, 93, 39, 41, 32,116,104,101,110, 10, + 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,101,110,100, 10,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,105,102, 32,110,111,116, 32,105,115, 98, 97,115,105, + 99, 40,116, 91,116, 46,110, 93, 41, 32,116,104,101,110, 10, + 114,101,116,117,114,110, 32, 95, 84,121,112,101,100,101,102, + 32,123, 10,117,116,121,112,101, 32, 61, 32,116, 91,116, 46, + 110, 93, 44, 10,116,121,112,101, 32, 61, 32,116, 91,116, 46, + 110, 45, 49, 93, 44, 10,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,125, 10,101,108,115,101, 10,114,101,116,117,114,110, 32, + 110,105,108, 10,101,110,100, 10,101,110,100,32 + }; + if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) + lua_pcall(tolua_S,0,LUA_MULTRET,0); + } /* end of embedded lua code */ + + + { /* begin embedded lua code */ + static unsigned char B[] = { + 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, 99,108, 97,115,115, + 67,111,110,116, 97,105,110,101,114, 32, 61, 10,123, 10, 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,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,112,117,115,104, + 40,115,101,108,102, 41, 10,108,111, 99, 97,108, 32,105, 61, + 49, 10,119,104,105,108,101, 32,115,101,108,102, 91,105, 93, + 32,100,111, 10,115,101,108,102, 91,105, 93, 58,100,101, 99, + 108,116,121,112,101, 40, 41, 10,105, 32, 61, 32,105, 43, 49, + 10,101,110,100, 10,112,111,112, 40, 41, 10,101,110,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,115,117,112, 99,111,100, + 101, 32, 40, 41, 10,112,117,115,104, 40,115,101,108,102, 41, + 10,108,111, 99, 97,108, 32,105, 61, 49, 10,119,104,105,108, + 101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10,115,101, + 108,102, 91,105, 93, 58,115,117,112, 99,111,100,101, 40, 41, + 10,105, 32, 61, 32,105, 43, 49, 10,101,110,100, 10,112,111, + 112, 40, 41, 10,101,110,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,104, 97,115,118, 97,114, 32, 40, 41, 10,108,111, 99, + 97,108, 32,105, 61, 49, 10,119,104,105,108,101, 32,115,101, + 108,102, 91,105, 93, 32,100,111, 10,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,114,101,116,117,114,110, 32, + 49, 10,101,110,100, 10,105, 32, 61, 32,105, 43, 49, 10,101, + 110,100, 10,114,101,116,117,114,110, 32, 48, 10,101,110,100, + 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,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,115,101,108,102, 46,110, 32, 61, 32, 48, 10,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,115,101,108,102, + 46,117,115,101,114,116,121,112,101,115, 32, 61, 32,123,125, + 10,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,115,101,108,102, + 46,108,110, 97,109,101,115, 32, 61, 32,123,125, 10,114,101, + 116,117,114,110, 32,115,101,108,102, 10,101,110,100, 10,102, + 117,110, 99,116,105,111,110, 32,112,117,115,104, 32, 40,116, + 41, 10,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, 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,102, + 117,110, 99,116,105,111,110, 32,112,111,112, 32, 40, 41, 10, + 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,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,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,102,117,110, 99,116,105,111,110, 32, 97, + 112,112,101,110,100, 32, 40,116, 41, 10,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,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,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,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,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,102,117,110, 99,116,105,111, + 110, 32, 97,112,112,101,110,100,101,110,117,109, 32, 40,116, + 41, 10,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,102,117,110, 99,116,105,111,110, 32, 97,112,112,108, + 121,116,121,112,101,100,101,102, 32, 40,116,121,112,101, 41, + 10,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,116,121,112,101, + 41, 10,101,110,100, 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,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,114,101,116,117,114,110, 32,116, 10,101,110,100, 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,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,102,117,110, + 99,116,105,111,110, 32,102,117,108,108,116,121,112,101, 32, + 40,116, 41, 10,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,119,104,105,108,101, 32, 99,117, + 114,114, 32,100,111, 10,105,102, 32, 99,117,114,114, 32,116, + 104,101,110, 10,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,114,101,116,117,114,110, 32, 99,117,114,114, 46,116, + 121,112,101,100,101,102,115, 91,116, 93, 10,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, + 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,101,110,100, 10,101, + 110,100, 10, 99,117,114,114, 32, 61, 32, 99,117,114,114, 46, + 112,114,111,120, 10,101,110,100, 10,114,101,116,117,114,110, + 32,116, 10,101,110,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,114,101,113,117,105,114,101, 99,111,108,108,101, 99,116, + 105,111,110, 32, 40,116, 41, 10,112,117,115,104, 40,115,101, + 108,102, 41, 10,108,111, 99, 97,108, 32,105, 61, 49, 10,108, + 111, 99, 97,108, 32,114, 32, 61, 32,102, 97,108,115,101, 10, + 119,104,105,108,101, 32,115,101,108,102, 91,105, 93, 32,100, + 111, 10,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,105, 32, 61, 32,105, + 43, 49, 10,101,110,100, 10,112,111,112, 40, 41, 10,114,101, + 116,117,114,110, 32,114, 10,101,110,100, 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,108,111, 99, 97,108, + 32,110, 97,109,101,115,112, 97, 99,101, 32, 61, 32, 39, 39, + 10,119,104,105,108,101, 32, 99,117,114,114, 32,100,111, 10, + 105,102, 32, 99,117,114,114, 32, 97,110,100, 10, 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,116, + 104,101,110, 10,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,101,110,100, 10, 99,117,114,114, 32, 61, 32, 99,117, + 114,114, 46,112,114,111,120, 10,101,110,100, 10,114,101,116, + 117,114,110, 32,110, 97,109,101,115,112, 97, 99,101, 10,101, + 110,100, 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,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,108,111, 99, 97,108, 32,110, 97,109,101, + 115,112, 97, 99,101, 32, 61, 32, 39, 39, 10,119,104,105,108, + 101, 32, 99,117,114,114, 32,100,111, 10,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,114, + 101,116,117,114,110, 32,110, 97,109,101,115,112, 97, 99,101, + 10,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,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,101,110,100, 10, + 99,117,114,114, 32, 61, 32, 99,117,114,114, 46,112,114,111, + 120, 10,101,110,100, 10,114,101,116,117,114,110, 32,110, 97, + 109,101,115,112, 97, 99,101, 10,101,110,100, 10,102,117,110, + 99,116,105,111,110, 32,105,115,101,110,117,109, 32, 40,116, + 121,112,101, 41, 10,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,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,115,101,108,102, 46,110, + 32, 61, 32,115,101,108,102, 46,110, 32, 43, 32, 49, 10,115, + 101,108,102, 91,115,101,108,102, 46,110, 93, 32, 61, 32,116, + 10,116, 46,112, 97,114,101,110,116, 32, 61, 32,115,101,108, + 102, 10,101,110,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, + 97,112,112,101,110,100,116,121,112,101,100,101,102, 32, 40, + 116, 41, 10,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,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, + 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,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,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,101,110,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, 97,112,112,101,110,100,117,115,101,114, + 116,121,112,101, 32, 40,116, 41, 10,108,111, 99, 97,108, 32, + 99,111,110,116, 97,105,110,101,114, 10,105,102, 32,116, 32, + 61, 61, 32,115,101,108,102, 46,110, 97,109,101, 32,116,104, + 101,110, 10, 99,111,110,116, 97,105,110,101,114, 32, 61, 32, + 115,101,108,102, 46,112,114,111,120, 10,101,108,115,101, 10, + 99,111,110,116, 97,105,110,101,114, 32, 61, 32,115,101,108, + 102, 10,101,110,100, 10,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, 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, 95, + 117,115,101,114,116,121,112,101, 91,102,116, 93, 32, 61, 32, + 102,116, 10,114,101,116,117,114,110, 32,102,116, 10,101,110, + 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, 97,112,112,101, + 110,100,101,110,117,109, 32, 40,116, 41, 10,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,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,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,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,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,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,115, + 101,108,102, 46,108,110, 97,109,101,115, 91,108,110, 97,109, + 101, 93, 32, 61, 32, 48, 10,101,108,115,101, 10,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,101,110,100, 10, + 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, + 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,116,121,112,101, 41, 10,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,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,116,121,112,101, 10,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,116,121,112,101, 49, 41, 10,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,101,110,100, + 10,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,108,111, 99, 97,108, + 32,101,110,118, 32, 61, 32,115,101,108,102, 10,119,104,105, + 108,101, 32,101,110,118, 32,100,111, 10,105,102, 32,101,110, + 118, 46,116,121,112,101,100,101,102,115, 32,116,104,101,110, + 10,108,111, 99, 97,108, 32,105, 61, 49, 10,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,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, 98, 97,115,101,116,121,112,101, 32,116,104, + 101,110, 10,108,111, 99, 97,108, 32,109,111,100, 49, 44,116, + 121,112,101, 49, 32, 61, 32,101,110,118, 46,116,121,112,101, + 100,101,102,115, 91,105, 93, 46,109,111,100, 44,101,110,118, + 46,116,121,112,101,100,101,102,115, 91,105, 93, 46,116,121, + 112,101, 10,108,111, 99, 97,108, 32,109,111,100, 50, 44,116, + 121,112,101, 50, 32, 61, 32, 97,112,112,108,121,116,121,112, + 101,100,101,102, 40,116,121,112,101, 49, 41, 10,114,101,116, + 117,114,110, 32,109,111,100, 50, 46, 46, 39, 32, 39, 46, 46, + 109,111,100, 49, 44,116,121,112,101, 50, 10,101,110,100, 10, + 105, 32, 61, 32,105, 43, 49, 10,101,110,100, 10,101,110,100, + 10,101,110,118, 32, 61, 32,101,110,118, 46,112, 97,114,101, + 110,116, 10,101,110,100, 10,114,101,116,117,114,110, 32, 39, + 39, 44,116,121,112,101, 10,101,110,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,105,115,116,121,112,101,100,101,102, 32, + 40,116,121,112,101, 41, 10,108,111, 99, 97,108, 32,101,110, + 118, 32, 61, 32,115,101,108,102, 10,119,104,105,108,101, 32, + 101,110,118, 32,100,111, 10,105,102, 32,101,110,118, 46,116, + 121,112,101,100,101,102,115, 32,116,104,101,110, 10,108,111, + 99, 97,108, 32,105, 61, 49, 10,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,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,114,101,116,117, + 114,110, 32,116,121,112,101, 10,101,110,100, 10,105, 32, 61, + 32,105, 43, 49, 10,101,110,100, 10,101,110,100, 10,101,110, + 118, 32, 61, 32,101,110,118, 46,112, 97,114,101,110,116, 10, + 101,110,100, 10,114,101,116,117,114,110, 32,110,105,108, 10, + 101,110,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,102,105, + 110,100,116,121,112,101, 32, 40,116, 41, 10,108,111, 99, 97, + 108, 32, 99,117,114,114, 32, 61, 32,115,101,108,102, 10,119, + 104,105,108,101, 32, 99,117,114,114, 32,100,111, 10,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,114,101,116,117, + 114,110, 32, 99,117,114,114, 46,116,121,112,101,100,101,102, + 115, 91,116, 93, 10,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,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,101,110,100, 10, 99,117,114,114, 32, 61, 32, + 99,117,114,114, 46,112,114,111,120, 10,101,110,100, 10,105, + 102, 32, 95, 98, 97,115,105, 99, 91,116, 93, 32,116,104,101, + 110, 10,114,101,116,117,114,110, 32,116, 10,101,110,100, 10, + 114,101,116,117,114,110, 32,110,105,108, 10,101,110,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,105,115,101,110,117,109, + 32, 40,116,121,112,101, 41, 10,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,114,101,116,117,114,110, 32,116,114,117, + 101, 10,101,110,100, 10,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, + 108,111, 99, 97,108, 32,101,110,118, 32, 61, 32,115,101,108, + 102, 10,119,104,105,108,101, 32,101,110,118, 32,100,111, 10, + 105,102, 32,101,110,118, 46,101,110,117,109,115, 32,116,104, + 101,110, 10,108,111, 99, 97,108, 32,105, 61, 49, 10,119,104, + 105,108,101, 32,101,110,118, 46,101,110,117,109,115, 91,105, + 93, 32,100,111, 10,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,114,101, + 116,117,114,110, 32,116,114,117,101, 10,101,110,100, 10,105, + 32, 61, 32,105, 43, 49, 10,101,110,100, 10,101,110,100, 10, + 101,110,118, 32, 61, 32,101,110,118, 46,112, 97,114,101,110, + 116, 10,101,110,100, 10,114,101,116,117,114,110, 32,102, 97, + 108,115,101, 10,101,110,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,100,111,112, 97,114,115,101, 32, 40,115, 41, 10,100, + 111, 10,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, + 105,102, 32, 98, 32,116,104,101,110, 10, 67,111,100,101, 40, + 115,116,114,115,117, 98, 40, 99,111,100,101, 44, 50, 44, 45, + 50, 41, 41, 10,114,101,116,117,114,110, 32,115,116,114,115, + 117, 98, 40,115, 44,101, 43, 49, 41, 10,101,110,100, 10,101, + 110,100, 10,100,111, 10,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,105,102, 32, 98, 32,116,104,101,110, 10, 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, 86,101,114, 98, 97,116,105, + 109, 40, 99,111,100,101, 44, 39,114, 39, 41, 10,114,101,116, + 117,114,110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, + 49, 41, 10,101,110,100, 10,101,110,100, 10,100,111, 10,108, + 111, 99, 97,108, 32, 98, 44,101, 44,108,105,110,101, 32, 61, + 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, + 42, 37, 36, 40, 46, 45, 92,110, 41, 34, 41, 10,105,102, 32, + 98, 32,116,104,101,110, 10, 86,101,114, 98, 97,116,105,109, + 40,108,105,110,101, 41, 10,114,101,116,117,114,110, 32,115, + 116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10,101,110, + 100, 10,101,110,100, 10,100,111, 10,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,105,102, 32, 98, 32, + 116,104,101,110, 10, 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, 77,111,100,117,108,101, 40,110, 97,109,101, 44, 98, + 111,100,121, 41, 10,114,101,116,117,114,110, 32,115,116,114, + 115,117, 98, 40,115, 44,101, 43, 49, 41, 10,101,110,100, 10, + 101,110,100, 10,100,111, 10,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, 34, 41, 10,105,102, 32, 98, + 32,116,104,101,110, 10, 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, 78, 97,109,101,115,112, 97, 99,101, 40,110, 97, + 109,101, 44, 98,111,100,121, 41, 10,114,101,116,117,114,110, + 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, + 101,110,100, 10,101,110,100, 10,100,111, 10,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,105,102, 32, 98, 32,116,104,101,110, 10, 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, 68,101,102,105,110,101, + 40,110, 97,109,101, 41, 10,114,101,116,117,114,110, 32,115, + 116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10,101,110, + 100, 10,101,110,100, 10,100,111, 10,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,105,102, 32, 98, 32,116,104,101,110, 10, 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, 69,110,117,109,101, + 114, 97,116,101, 40,110, 97,109,101, 44, 98,111,100,121, 41, + 10,114,101,116,117,114,110, 32,115,116,114,115,117, 98, 40, + 115, 44,101, 43, 49, 41, 10,101,110,100, 10,101,110,100, 10, + 100,111, 10,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,105,102, 32, 98, 32,116,104,101,110, 10, 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, 69,110,117,109,101,114, 97, + 116,101, 40,110, 97,109,101, 44, 98,111,100,121, 41, 10,114, + 101,116,117,114,110, 32,115,116,114,115,117, 98, 40,115, 44, + 101, 43, 49, 41, 10,101,110,100, 10,101,110,100, 10,100,111, + 10,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, 93, 42,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,105,102, 32,110,111,116, 32, 98, 32,116, + 104,101,110, 10, 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, 93, 42,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, 37, 98,123,125, 37, + 115, 42, 59, 63, 37,115, 42, 34, 41, 10,101,110,100, 10,105, + 102, 32, 98, 32,116,104,101,110, 10, 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, 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,114,101,116,117,114,110, 32,115,116, + 114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10,101,110,100, + 10,101,110,100, 10,100,111, 10,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, 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, + 105,102, 32,110,111,116, 32, 98, 32,116,104,101,110, 10, 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,101,110,100, 10,105,102, 32, 98, 32,116,104,101,110, 10, + 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, 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,114,101,116,117,114,110, 32,115, + 116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10,101,110, + 100, 10,101,110,100, 10,100,111, 10,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, 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, 46, 45, 37, 98, + 123,125, 37,115, 42, 59, 63, 37,115, 42, 34, 41, 10,105,102, + 32,110,111,116, 32, 98, 32,116,104,101,110, 10, 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,101,110,100, 10,105,102, 32, 98, 32, + 116,104,101,110, 10, 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, 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,114,101,116, + 117,114,110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, + 49, 41, 10,101,110,100, 10,101,110,100, 10,100,111, 10,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, 98, 97,115,101, 32, 61, + 32, 39, 39, 32, 98,111,100,121, 32, 61, 32, 39, 39, 10, 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, 10,105,102, 32,110,111,116, + 32, 98, 32,116,104,101,110, 10, 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, 10,105,102, 32,110,111,116, 32, 98, 32,116,104, + 101,110, 10, 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, 46, 45, 41, 37,115, 42, 40, 37, 98,123, + 125, 41, 37,115, 42, 59, 37,115, 42, 34, 41, 10,105,102, 32, + 110,111,116, 32, 98, 32,116,104,101,110, 10, 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, 42, 40, 91, 95, 37, + 119, 93, 91, 95, 37,119, 64, 93, 42, 41, 37,115, 42, 40, 46, + 45, 41, 37,115, 42, 40, 37, 98,123,125, 41, 37,115, 42, 59, + 37,115, 42, 34, 41, 10,105,102, 32,110,111,116, 32, 98, 32, + 116,104,101,110, 10, 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, 46, 45, 41, 37,115, 42, 40, 37, + 98,123,125, 41, 37,115, 42, 59, 37,115, 42, 34, 41, 10,105, + 102, 32,110,111,116, 32, 98, 32,116,104,101,110, 10, 98, 97, + 115,101, 32, 61, 32, 39, 39, 10, 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, 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, 37,115, 42, 34, 41, 10,105,102, 32, + 110,111,116, 32, 98, 32,116,104,101,110, 10, 98, 97,115,101, + 32, 61, 32, 39, 39, 10, 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,117,110,105,111,110, 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, 37,115, 42, 34, 41, 10,101,110,100, 10,101,110, + 100, 10,101,110,100, 10,101,110,100, 10,101,110,100, 10,101, + 110,100, 10,105,102, 32, 98, 32,116,104,101,110, 10,105,102, + 32, 98, 97,115,101, 32,126, 61, 32, 39, 39, 32,116,104,101, + 110, 10,108,111, 99, 97,108, 32, 98, 44,101, 10, 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, 93, 42, 41, 36, 34, 41, 10,101,110,100, 10, + 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, 67,108, 97, + 115,115, 40,110, 97,109,101, 44, 98, 97,115,101, 44, 98,111, + 100,121, 41, 10,114,101,116,117,114,110, 32,115,116,114,115, + 117, 98, 40,115, 44,101, 43, 49, 41, 10,101,110,100, 10,101, + 110,100, 10,100,111, 10,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,105,102, 32, 98, 32,116,104,101,110, 10, + 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, 84,121,112, + 101,100,101,102, 40,116,121,112,101,115, 41, 10,114,101,116, + 117,114,110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, + 49, 41, 10,101,110,100, 10,101,110,100, 10,100,111, 10,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, 93, 42, 91, 95, 37,119, 37,100, 93, 41, + 37,115, 42, 59, 37,115, 42, 34, 41, 10,105,102, 32, 98, 32, + 116,104,101,110, 10, 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, 86, 97,114,105, 97, 98,108,101, 40,100,101, 99,108, + 41, 10,114,101,116,117,114,110, 32,115,116,114,115,117, 98, + 40,115, 44,101, 43, 49, 41, 10,101,110,100, 10,101,110,100, + 10,100,111, 10,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,105,102, 32, 98, 32,116,104,101,110, + 10, 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, 86, 97, + 114,105, 97, 98,108,101, 40,100,101, 99,108, 41, 10,114,101, + 116,117,114,110, 32,115,116,114,115,117, 98, 40,115, 44,101, + 43, 49, 41, 10,101,110,100, 10,101,110,100, 10,100,111, 10, + 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,105, + 102, 32, 98, 32,116,104,101,110, 10, 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, 65,114,114, 97,121, 40,100,101, 99, + 108, 41, 10,114,101,116,117,114,110, 32,115,116,114,115,117, + 98, 40,115, 44,101, 43, 49, 41, 10,101,110,100, 10,101,110, + 100, 10,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, 95, 99,117,114,114, 95, 99,111,100,101, + 32, 61, 32,115, 10,101,114,114,111,114, 40, 34, 35,112, 97, + 114,115,101, 32,101,114,114,111,114, 34, 41, 10,101,108,115, + 101, 10,114,101,116,117,114,110, 32, 34, 34, 10,101,110,100, + 10,101,110,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,112, + 97,114,115,101, 32, 40,115, 41, 10,119,104,105,108,101, 32, + 115, 32,126, 61, 32, 39, 39, 32,100,111, 10,115, 32, 61, 32, + 115,101,108,102, 58,100,111,112, 97,114,115,101, 40,115, 41, + 10,101,110,100, 10,101,110,100,32 + }; + if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) + lua_pcall(tolua_S,0,LUA_MULTRET,0); + } /* end of embedded lua code */ + + + { /* begin embedded lua code */ + static unsigned char B[] = { + 10, 99,108, 97,115,115, 80, 97, 99,107, 97,103,101, 32, 61, + 32,123, 10, 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, + 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,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,108,111, 99, 97,108, 32,105, 61, 49, 10,119,104,105,108, + 101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10,115,101, + 108,102, 91,105, 93, 58,112,114,105,110,116, 40, 34, 34, 44, + 34, 34, 41, 10,105, 32, 61, 32,105, 43, 49, 10,101,110,100, + 10,101,110,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,101, + 112,114,111, 99,101,115,115, 32, 40, 41, 10,108,111, 99, 97, + 108, 32, 76, 32, 61, 32,123,125, 10,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, 10,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,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,102,117,110, 99,116,105,111,110, 32, 40, 99, 41, + 10,116,105,110,115,101,114,116, 40, 76, 44, 99, 41, 10,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,101,110, + 100, 41, 10,108,111, 99, 97,108, 32, 67, 32, 61, 32,123,125, + 10,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, + 10,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,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,102,117,110, 99,116, + 105,111,110, 32, 40, 99, 41, 10,116,105,110,115,101,114,116, + 40, 67, 44, 99, 41, 10,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,101,110,100, 41, 10,108,111, 99, 97,108, + 32, 86, 32, 61, 32,123,125, 10,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,116,105, + 110,115,101,114,116, 40, 86, 44,118, 41, 10,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,101,110,100, 41, 10,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, 10,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,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, + 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,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,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,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, 10,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, 10,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, 10,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, 10,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, 10,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, 10,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, 10,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, 10,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, 10,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,114, + 101,116,117,114,110, 32, 76, 91,116,111,110,117,109, 98,101, + 114, 40,110, 41, 93, 10,101,110,100, 41, 10,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,114,101,116,117,114,110, 32, 67, + 91,116,111,110,117,109, 98,101,114, 40,110, 41, 93, 10,101, + 110,100, 41, 10,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,114,101,116,117, + 114,110, 32, 86, 91,116,111,110,117,109, 98,101,114, 40,110, + 41, 93, 10,101,110,100, 41, 10,101,110,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,101, 97,109, 98,108,101, 32, 40, 41, + 10,111,117,116,112,117,116, 40, 39, 47, 42, 92,110, 39, 41, + 10,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, + 111,117,116,112,117,116, 40, 39, 42, 47, 92,110, 92,110, 39, + 41, 10,111,117,116,112,117,116, 40, 39, 35,105,110, 99,108, + 117,100,101, 32, 34,116,111,108,117, 97, 46,104, 34, 92,110, + 92,110, 39, 41, 10,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,111,117,116,112,117,116, 40, 39, + 35,105,110, 99,108,117,100,101, 32, 60,115,116,100,108,105, + 98, 46,104, 62, 92,110, 39, 41, 10,111,117,116,112,117,116, + 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10,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,111, + 117,116,112,117,116, 40, 39,101,120,116,101,114,110, 32, 34, + 67, 34, 32,105,110,116, 32,116,111,108,117, 97, 95, 98,110, + 100, 95,116, 97,107,101,111,119,110,101,114,115,104,105,112, + 32, 40,108,117, 97, 95, 83,116, 97,116,101, 42, 32, 76, 41, + 59, 32, 47, 47, 32,102,114,111,109, 32,116,111,108,117, 97, + 95,109, 97,112, 46, 99, 92,110, 39, 41, 10,111,117,116,112, + 117,116, 40, 39, 35,101,108,115,101, 92,110, 39, 41, 10,111, + 117,116,112,117,116, 40, 39,105,110,116, 32,116,111,108,117, + 97, 95, 98,110,100, 95,116, 97,107,101,111,119,110,101,114, + 115,104,105,112, 32, 40,108,117, 97, 95, 83,116, 97,116,101, + 42, 32, 76, 41, 59, 32, 47, 42, 32,102,114,111,109, 32,116, + 111,108,117, 97, 95,109, 97,112, 46, 99, 32, 42, 47, 92,110, + 39, 41, 10,111,117,116,112,117,116, 40, 39, 35,101,110,100, + 105,102, 92,110, 39, 41, 10,111,117,116,112,117,116, 40, 39, + 35,105,110, 99,108,117,100,101, 32, 60,115,116,114,105,110, + 103, 46,104, 62, 92,110, 92,110, 39, 41, 10,105,102, 32,110, + 111,116, 32,102,108, 97,103,115, 46,104, 32,116,104,101,110, + 10,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,111,117,116,112,117,116, 40, 39, 84, 79, + 76, 85, 65, 95, 65, 80, 73, 32,105,110,116, 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,111,117,116,112,117,116, 40, 39, 76, 85, 65, 76, + 73, 66, 95, 65, 80, 73, 32,105,110,116, 32,108,117, 97,111, + 112,101,110, 95, 39, 46, 46,115,101,108,102, 46,110, 97,109, + 101, 46, 46, 39, 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,111, + 117,116,112,117,116, 40, 39, 92,110, 39, 41, 10,101,110,100, + 10,108,111, 99, 97,108, 32,105, 61, 49, 10,119,104,105,108, + 101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10,115,101, + 108,102, 91,105, 93, 58,112,114,101, 97,109, 98,108,101, 40, + 41, 10,105, 32, 61, 32,105, 43, 49, 10,101,110,100, 10,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,111,117,116,112,117, + 116, 40, 39, 92,110, 39, 41, 10,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,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,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,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,111,117,116,112,117,116, + 40, 39,123, 39, 41, 10,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, + 111,117,116,112,117,116, 40, 39, 32,116,111,108,117, 97, 95, + 114,101,108,101, 97,115,101, 40,116,111,108,117, 97, 95, 83, + 44,115,101,108,102, 41, 59, 39, 41, 10,111,117,116,112,117, + 116, 40, 39, 32,100,101,108,101,116,101, 32,115,101,108,102, + 59, 39, 41, 10,111,117,116,112,117,116, 40, 39, 32,114,101, + 116,117,114,110, 32, 48, 59, 39, 41, 10,111,117,116,112,117, + 116, 40, 39,125, 39, 41, 10,101,110,100, 10,111,117,116,112, + 117,116, 40, 39, 35,101,110,100,105,102, 92,110, 92,110, 39, + 41, 10,101,110,100, 10,111,117,116,112,117,116, 40, 39, 92, + 110, 39, 41, 10,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,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, + 111,117,116,112,117,116, 40, 39,123, 39, 41, 10,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, 32,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, 32,101,110, + 100, 41, 10,111,117,116,112,117,116, 40, 39,125, 39, 41, 10, + 111,117,116,112,117,116, 40, 39, 92,110, 39, 41, 10,101,110, + 100, 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, 41, 10,112,117,115,104, 40,115,101,108,102, + 41, 10,111,117,116,112,117,116, 40, 34, 47, 42, 32, 79,112, + 101,110, 32,108,105, 98, 32,102,117,110, 99,116,105,111,110, + 32, 42, 47, 34, 41, 10,111,117,116,112,117,116, 40, 39, 76, + 85, 65, 76, 73, 66, 95, 65, 80, 73, 32,105,110,116, 32,108, + 117, 97,111,112,101,110, 95, 39, 46, 46,115,101,108,102, 46, + 110, 97,109,101, 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,111,117,116,112,117,116, 40, 34,123, 34, 41, 10,111,117, + 116,112,117,116, 40, 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, + 111,117,116,112,117,116, 40, 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,111,117,116,112,117,116, 40, 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,111,117,116,112,117,116, 40, 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,108,111, 99, 97,108, 32,105, 61, 49, 10,119,104, + 105,108,101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10, + 115,101,108,102, 91,105, 93, 58,114,101,103,105,115,116,101, + 114, 40, 41, 10,105, 32, 61, 32,105, 43, 49, 10,101,110,100, + 10,111,117,116,112,117,116, 40, 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,111,117,116,112,117,116, 40, + 34, 32,114,101,116,117,114,110, 32, 49, 59, 34, 41, 10,111, + 117,116,112,117,116, 40, 34,125, 34, 41, 10,111,117,116,112, + 117,116, 40, 34, 47, 42, 32, 79,112,101,110, 32,116,111,108, + 117, 97, 32,102,117,110, 99,116,105,111,110, 32, 42, 47, 34, + 41, 10,111,117,116,112,117,116, 40, 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,111, + 117,116,112,117,116, 40, 34,123, 34, 41, 10,111,117,116,112, + 117,116, 40, 34, 32,108,117, 97, 95,112,117,115,104, 99,102, + 117,110, 99,116,105,111,110, 40,116,111,108,117, 97, 95, 83, + 44, 32,108,117, 97,111,112,101,110, 95, 34, 46, 46,115,101, + 108,102, 46,110, 97,109,101, 46, 46, 34, 41, 59, 34, 41, 10, + 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, 32, 34, 39, 46, 46,115,101,108,102, 46,110, 97,109, + 101, 46, 46, 39, 34, 41, 59, 39, 41, 10,111,117,116,112,117, + 116, 40, 34, 32,108,117, 97, 95, 99, 97,108,108, 40,116,111, + 108,117, 97, 95, 83, 44, 32, 49, 44, 32, 48, 41, 59, 34, 41, + 10,111,117,116,112,117,116, 40, 34, 32,114,101,116,117,114, + 110, 32, 49, 59, 34, 41, 10,111,117,116,112,117,116, 40, 34, + 125, 34, 41, 10,112,111,112, 40, 41, 10,101,110,100, 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,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, + 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,111,117,116,112,117,116, 40, 39, 42, 47, 92, + 110, 92,110, 39, 41, 10,105,102, 32,110,111,116, 32,102,108, + 97,103,115, 46,104, 32,116,104,101,110, 10,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, + 111,117,116,112,117,116, 40, 39, 84, 79, 76, 85, 65, 95, 65, + 80, 73, 32,105,110,116, 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,111,117, + 116,112,117,116, 40, 39, 76, 85, 65, 76, 73, 66, 95, 65, 80, + 73, 32,105,110,116, 32,108,117, 97,111,112,101,110, 95, 39, + 46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46, 39, 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,111,117,116,112,117,116, + 40, 39, 92,110, 39, 41, 10,101,110,100, 10,101,110,100, 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,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,114,101,116, + 117,114,110, 32,115,101,108,102, 10,101,110,100, 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,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,115, 61, 32, 34, 92,110, 34, 32, 46, + 46, 32,115, 32, 46, 46, 32, 34, 92,110, 34, 10,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, + 119,104,105,108,101, 32,101, 32,100,111, 10,116, 32, 61, 32, + 115,116,114,108,111,119,101,114, 40,116, 41, 10,105,102, 32, + 116, 32, 61, 61, 32, 34, 98,101,103,105,110, 34, 32,116,104, + 101,110, 10, 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,105,102, 32,110,111,116, 32,101, 32,116, + 104,101,110, 10,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,101,110,100, 10,101,110, + 100, 10, 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, 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,101,110,100, 10, + 114,101,116,117,114,110, 32, 99,111,100,101, 10,101,110,100, + 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,108,111, + 99, 97,108, 32,101,120,116, 32, 61, 32, 34,112,107,103, 34, + 10,105,102, 32,102,110, 32,116,104,101,110, 10,108,111, 99, + 97,108, 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,105,102, 32,110,111,116, 32,115,116, 32,116,104,101,110, + 10,101,114,114,111,114, 40, 39, 35, 39, 46, 46,109,115,103, + 41, 10,101,110,100, 10,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,101,110,100, 10,108,111, 99, 97,108, + 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,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, 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,101,110,100, 10,105,102, 32,102,110, 32,116,104,101,110, + 10,114,101, 97,100,102,114,111,109, 40, 41, 10,101,110,100, + 10, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40, 99,111, + 100,101, 44, 39, 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,108,111, 99, 97,108, 32,110,115,117, 98, + 115,116, 10,114,101,112,101, 97,116, 10, 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, 37,115, + 42, 92,110, 39, 44, 10,102,117,110, 99,116,105,111,110, 32, + 40,107,105,110,100, 44,102,110, 41, 10,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,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,105,102, 32,110,111,116, + 32,102,112, 32,116,104,101,110, 10,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,101,110,100, 10,108,111, 99, 97,108, 32, + 115, 32, 61, 32,114,101, 97,100, 40,102,112, 44, 39, 42, 97, + 39, 41, 10, 99,108,111,115,101,102,105,108,101, 40,102,112, + 41, 10,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,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,101,108,115,101,105,102, 32,107,105,110,100, 32, + 61, 61, 32, 39,112, 39, 32,116,104,101,110, 10,114,101,116, + 117,114,110, 32, 34, 92,110, 92,110, 34, 32, 46, 46, 32,115, + 10,101,108,115,101,105,102, 32,107,105,110,100, 32, 61, 61, + 32, 39,108, 39, 32,116,104,101,110, 10,114,101,116,117,114, + 110, 32, 34, 92,110, 36, 91, 92,110, 34, 32, 46, 46, 32,115, + 32, 46, 46, 32, 34, 92,110, 36, 93, 92,110, 34, 10,101,108, + 115,101, 10,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, 32,111,114, 32, + 36,108,102,105,108,101, 41, 39, 41, 10,101,110,100, 10,101, + 110,100, 41, 10,117,110,116,105,108, 32,110,115,117, 98,115, + 116, 61, 61, 48, 10,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,112,117, + 115,104, 40,116, 41, 10,116, 58,112,114,101,112,114,111, 99, + 101,115,115, 40, 41, 10,116, 58,112, 97,114,115,101, 40,116, + 46, 99,111,100,101, 41, 10,112,111,112, 40, 41, 10,114,101, + 116,117,114,110, 32,116, 10,101,110,100,32 + }; + if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) + lua_pcall(tolua_S,0,LUA_MULTRET,0); + } /* end of embedded lua code */ + + + { /* begin embedded lua code */ + static unsigned char B[] = { + 10, 99,108, 97,115,115, 77,111,100,117,108,101, 32, 61, 32, + 123, 10, 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,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, 41, 10,112,117, + 115,104, 40,115,101,108,102, 41, 10,111,117,116,112,117,116, + 40, 39, 32,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,111,117,116,112,117,116, 40, 39, 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, 34, 39, 46, 46,115,101, + 108,102, 46,110, 97,109,101, 46, 46, 39, 34, 41, 59, 39, 41, + 10,108,111, 99, 97,108, 32,105, 61, 49, 10,119,104,105,108, + 101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10,115,101, + 108,102, 91,105, 93, 58,114,101,103,105,115,116,101,114, 40, + 41, 10,105, 32, 61, 32,105, 43, 49, 10,101,110,100, 10,111, + 117,116,112,117,116, 40, 39, 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, 39, 41, 10,112,111,112, 40, 41, 10,101,110,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,112,114,105, + 110,116, 40,105,100,101,110,116, 46, 46, 34, 77,111,100,117, + 108,101,123, 34, 41, 10,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,108,111, 99, 97,108, 32,105, 61, 49, 10,119, + 104,105,108,101, 32,115,101,108,102, 91,105, 93, 32,100,111, + 10,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,105, 32, 61, 32,105, 43, 49, 10,101,110,100, 10,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,102,117,110, + 99,116,105,111,110, 32, 95, 77,111,100,117,108,101, 32, 40, + 116, 41, 10,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, 97,112,112,101,110,100, 40,116, 41, 10,114,101,116,117, + 114,110, 32,116, 10,101,110,100, 10,102,117,110, 99,116,105, + 111,110, 32, 77,111,100,117,108,101, 32, 40,110, 44, 98, 41, + 10,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,112,117,115,104, 40,116, + 41, 10,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, 10,112,111,112, 40, 41, 10,114,101,116,117, + 114,110, 32,116, 10,101,110,100,32 + }; + if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) + lua_pcall(tolua_S,0,LUA_MULTRET,0); + } /* end of embedded lua code */ + + + { /* begin embedded lua code */ + static unsigned char B[] = { + 10, 99,108, 97,115,115, 78, 97,109,101,115,112, 97, 99,101, + 32, 61, 32,123, 10, 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, + 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,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,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, + 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,108,111, + 99, 97,108, 32,105, 61, 49, 10,119,104,105,108,101, 32,115, + 101,108,102, 91,105, 93, 32,100,111, 10,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,105, 32, 61, 32,105, + 43, 49, 10,101,110,100, 10,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,102,117,110, 99,116,105,111,110, 32, + 95, 78, 97,109,101,115,112, 97, 99,101, 32, 40,116, 41, 10, + 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, 97,112,112,101,110,100, 40,116, 41, 10,114,101,116,117, + 114,110, 32,116, 10,101,110,100, 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,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, + 112,117,115,104, 40, 99, 41, 10, 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, 10,112,111,112, 40, + 41, 10,101,110,100,32 + }; + if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) + lua_pcall(tolua_S,0,LUA_MULTRET,0); + } /* end of embedded lua code */ + + + { /* begin embedded lua code */ + static unsigned char B[] = { + 10, 99,108, 97,115,115, 68,101,102,105,110,101, 32, 61, 32, + 123, 10,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,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, 41, + 10,111,117,116,112,117,116, 40, 39, 32,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,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,112,114,105, + 110,116, 40,105,100,101,110,116, 46, 46, 34, 68,101,102,105, + 110,101,123, 34, 41, 10,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,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,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,102,117,110, 99,116,105,111,110, 32, 95, 68,101, + 102,105,110,101, 32, 40,116, 41, 10,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,116, 58, 98,117,105,108,100,110, + 97,109,101,115, 40, 41, 10,105,102, 32,116, 46,110, 97,109, + 101, 32, 61, 61, 32, 39, 39, 32,116,104,101,110, 10,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,101,110,100, 10, 97,112,112, + 101,110,100, 40,116, 41, 10,114,101,116,117,114,110, 32,116, + 10,101,110,100, 10,102,117,110, 99,116,105,111,110, 32, 68, + 101,102,105,110,101, 32, 40,110, 41, 10,114,101,116,117,114, + 110, 32, 95, 68,101,102,105,110,101,123, 10,110, 97,109,101, + 32, 61, 32,110, 10,125, 10,101,110,100,32 + }; + if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) + lua_pcall(tolua_S,0,LUA_MULTRET,0); + } /* end of embedded lua code */ + + + { /* begin embedded lua code */ + static unsigned char B[] = { + 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,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, 41, 10,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,108,111, 99, 97,108, 32, + 105, 61, 49, 10,119,104,105,108,101, 32,115,101,108,102, 91, + 105, 93, 32,100,111, 10,111,117,116,112,117,116, 40, 39, 32, + 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,105, 32, 61, + 32,105, 43, 49, 10,101,110,100, 10,101,110,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,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,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, + 108,111, 99, 97,108, 32,105, 61, 49, 10,119,104,105,108,101, + 32,115,101,108,102, 91,105, 93, 32,100,111, 10,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,105, 32, 61, 32,105, 43, 49, + 10,101,110,100, 10,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,102,117,110, 99,116,105,111,110, 32, 95, 69, + 110,117,109,101,114, 97,116,101, 32, 40,116, 41, 10,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, 97, + 112,112,101,110,100, 40,116, 41, 10, 97,112,112,101,110,100, + 101,110,117,109, 40,116, 41, 10,114,101,116,117,114,110, 32, + 116, 10,101,110,100, 10,102,117,110, 99,116,105,111,110, 32, + 69,110,117,109,101,114, 97,116,101, 32, 40,110, 44, 98, 41, + 10,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, 10,108,111, 99, 97,108, 32,105, 32, + 61, 32, 49, 10,108,111, 99, 97,108, 32,101, 32, 61, 32,123, + 110, 61, 48,125, 10,119,104,105,108,101, 32,116, 91,105, 93, + 32,100,111, 10,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, + 10,101, 46,110, 32, 61, 32,101, 46,110, 32, 43, 32, 49, 10, + 101, 91,101, 46,110, 93, 32, 61, 32,116,116, 91, 49, 93, 10, + 105, 32, 61, 32,105, 43, 49, 10,101,110,100, 10,105, 32, 61, + 32, 49, 10,101, 46,108,110, 97,109,101,115, 32, 61, 32,123, + 125, 10,119,104,105,108,101, 32,101, 91,105, 93, 32,100,111, + 10,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,101, 91,105, + 93, 32, 61, 32,116, 91, 49, 93, 10,105,102, 32,110,111,116, + 32,116, 91, 50, 93, 32,116,104,101,110, 10,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,101,110,100, 10,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,105, 32, 61, 32,105, 43, + 49, 10,101,110,100, 10,101, 46,110, 97,109,101, 32, 61, 32, + 110, 10,105,102, 32,110,126, 61, 34, 34, 32,116,104,101,110, + 10, 84,121,112,101,100,101,102, 40, 34,105,110,116, 32, 34, + 46, 46,110, 41, 10,101,110,100, 10,114,101,116,117,114,110, + 32, 95, 69,110,117,109,101,114, 97,116,101, 40,101, 41, 10, + 101,110,100,32 + }; + if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) + lua_pcall(tolua_S,0,LUA_MULTRET,0); + } /* end of embedded lua code */ + + + { /* begin embedded lua code */ + static unsigned char B[] = { + 10, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116,105, + 111,110, 32, 61, 32,123, 10,109,111,100, 32, 61, 32, 39, 39, + 44, 10,116,121,112,101, 32, 61, 32, 39, 39, 44, 10,112,116, + 114, 32, 61, 32, 39, 39, 44, 10,110, 97,109,101, 32, 61, 32, + 39, 39, 44, 10,100,105,109, 32, 61, 32, 39, 39, 44, 10,114, + 101,116, 32, 61, 32, 39, 39, 44, 10,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,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, + 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, 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,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,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,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, + 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,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,115,101,108,102, 46,116,121,112, + 101, 32, 61, 32,109, 91,109, 46,110, 93, 10,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,101,110,100, 10,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, + 105,102, 32,116, 46,110, 61, 61, 50, 32,116,104,101,110, 10, + 115,101,108,102, 46,110, 97,109,101, 32, 61, 32,116, 91, 49, + 93, 10,115,101,108,102, 46,100,101,102, 32, 61, 32,116, 91, + 116, 46,110, 93, 10,101,110,100, 10,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,105,102, 32, 98, 32,116,104, + 101,110, 10,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,115,101,108,102, 46,100, + 105,109, 32, 61, 32,100, 10,101,110,100, 10,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,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,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,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,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, + 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,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,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, + 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,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,101,110,100, 10,101,110,100, 10,101,110,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, 99,104,101, 99,107,116, + 121,112,101, 32, 40, 41, 10,105,102, 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,126, 61, 39, 39, + 32,116,104,101,110, 10,115,101,108,102, 46,114,101,116, 32, + 61, 32,115,101,108,102, 46,112,116,114, 10,115,101,108,102, + 46,112,116,114, 32, 61, 32,110,105,108, 10,101,110,100, 10, + 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,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,101,110,100, 10,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,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,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,101,110,100, 10,101,110,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,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,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,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,112,114,105,110,116, 40,105,100,101,110, + 116, 46, 46, 34, 32,112,116,114, 32, 61, 32, 39, 34, 46, 46, + 115,101,108,102, 46,112,116,114, 46, 46, 34, 39, 44, 34, 41, + 10,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,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, 10,112,114,105,110,116, + 40,105,100,101,110,116, 46, 46, 34, 32,100,101,102, 32, 61, + 32, 39, 34, 46, 46,115,101,108,102, 46,100,101,102, 46, 46, + 34, 39, 44, 34, 41, 10,112,114,105,110,116, 40,105,100,101, + 110,116, 46, 46, 34, 32,114,101,116, 32, 61, 32, 39, 34, 46, + 46,115,101,108,102, 46,114,101,116, 46, 46, 34, 39, 44, 34, + 41, 10,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,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,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,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,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, + 115,101,108,102, 46,112,116,114, 32, 61, 61, 32, 39, 39, 32, + 116,104,101,110, 10,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, 42, + 34, 44, 34, 34, 41, 10,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,103,115,117, 98, 40,116,121,112,101, + 44, 34, 58, 58, 34, 44, 34, 95, 34, 41, 10,114,101,116,117, + 114,110, 32,116,114,117,101, 10,101,110,100, 10,114,101,116, + 117,114,110, 32,102, 97,108,115,101, 10,101,110,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,100,101, 99,108,116, + 121,112,101, 32, 40, 41, 10,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,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,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,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,101,110,100, 10,101,110, + 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,111,117, + 116, 99,104,101, 99,107,116,121,112,101, 32, 40,110, 97,114, + 103, 44,118, 97,114, 41, 10,108,111, 99, 97,108, 32,100,101, + 102, 10,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,105,102, 32,115,101,108,102, 46,100,101,102,126, 61, 39, + 39, 32,116,104,101,110, 10,100,101,102, 32, 61, 32, 49, 10, + 101,108,115,101, 10,100,101,102, 32, 61, 32, 48, 10,101,110, + 100, 10,105,102, 32,115,101,108,102, 46,100,105,109, 32,126, + 61, 32, 39, 39, 32,116,104,101,110, 10,105,102, 32,118, 97, + 114, 32, 97,110,100, 32,115,101,108,102, 46,116,121,112,101, + 61, 61, 39, 99,104, 97,114, 39, 32,116,104,101,110, 10,114, + 101,116,117,114,110, 32, 39,116,111,108,117, 97, 95,105,115, + 115,116,114,105,110,103, 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,101,108,115,101, 10,114,101,116,117,114,110, + 32, 39,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,101,110,100, 10,101,108,115,101,105,102, + 32,116, 32,116,104,101,110, 10,114,101,116,117,114,110, 32, + 39,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,101, + 108,115,101, 10,114,101,116,117,114,110, 32, 39,116,111,108, + 117, 97, 95,105,115,117,115,101,114,116,121,112,101, 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,101, + 110,100, 10,101,110,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, 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,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,108,111, 99, 97,108, 32,108,105,110,101, + 32, 61, 32, 34, 34, 10,108,111, 99, 97,108, 32,112,116,114, + 32, 61, 32, 39, 39, 10,108,111, 99, 97,108, 32,109,111,100, + 10,108,111, 99, 97,108, 32,116,121,112,101, 32, 61, 32,115, + 101,108,102, 46,116,121,112,101, 10,105,102, 32,115,101,108, + 102, 46,100,105,109, 32,126, 61, 32, 39, 39, 32,116,104,101, + 110, 10,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, 42, 39, 44, 39, 39, 41, 10,101,110,100, 10,108,111, + 99, 97,108, 32, 99,116,121,112,101, 32, 61, 32,116,121,112, + 101, 10,105,102, 32, 99,116,121,112,101, 61, 61, 34,108,117, + 97, 95, 79, 98,106,101, 99,116, 34, 32,111,114, 32, 99,116, + 121,112,101, 61, 61, 34,108,117, 97, 95, 70,117,110, 99,116, + 105,111,110, 34, 32,116,104,101,110, 10, 99,116,121,112,101, + 32, 61, 32, 34,105,110,116, 34, 10,101,110,100, 10,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,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, 99,116,121,112,101, + 44,112,116,114, 41, 10,105,102, 32, 97,114,114, 97,121, 32, + 116,104,101,110, 10,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,101,110,100, 10,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,105,102, + 32,115,101,108,102, 46,100,105,109, 32,126, 61, 32, 39, 39, + 32,116,104,101,110, 10,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,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,101,108,115,101, 10,105,102, 32, 99, + 112,108,117,115,112,108,117,115, 32,116,104,101,110, 10,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,110,101,119, + 39, 44,116,121,112,101, 44,112,116,114, 44, 39, 91, 39, 46, + 46,115,101,108,102, 46,100,105,109, 46, 46, 39, 93, 59, 39, + 41, 10,101,108,115,101, 10,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, 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,101,110,100, 10, + 101,110,100, 10,101,108,115,101, 10,108,111, 99, 97,108, 32, + 116, 32, 61, 32,105,115, 98, 97,115,105, 99, 40,116,121,112, + 101, 41, 10,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,105,102, 32,116, 32, 61, 61, 32, 39,115,116, + 97,116,101, 39, 32,116,104,101,110, 10,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,101,108,115,101, 10,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,108,111, 99, 97,108, 32, 99,116, 32, + 61, 32,116,121,112,101, 10,105,102, 32,116, 32, 61, 61, 32, + 39,118, 97,108,117,101, 39, 32,111,114, 32,116, 32, 61, 61, + 32, 39,102,117,110, 99,116,105,111,110, 39, 32,116,104,101, + 110, 10, 99,116, 32, 61, 32, 39,105,110,116, 39, 10,101,110, + 100, 10,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, 99,116, 41, 10,105, + 102, 32,110,111,116, 32,116, 32,116,104,101,110, 10,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,101,110,100, + 10,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,105,102, 32,105,115,101,110,117,109, 40,116,121,112,101, + 41, 32,116,104,101,110, 10,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,101,110,100, 10, + 108,111, 99, 97,108, 32,100,101,102, 32, 61, 32, 48, 10,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,105,102, 32,116, + 32,116,104,101,110, 10,105,102, 32,116, 61, 61, 39,102,117, + 110, 99,116,105,111,110, 39, 32,116,104,101,110, 32,116, 61, + 39,118, 97,108,117,101, 39, 32,101,110,100, 10,105,102, 32, + 115,101,108,102, 46,116,121,112,101, 32, 61, 61, 32, 34,116, + 111,108,117, 97, 95,105,110,100,101,120, 34, 32,116,104,101, + 110, 10,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, 45, 49, 41, 59, 39, 41, 10,101, + 108,115,101, 10,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,101, + 110,100, 10,101,108,115,101, 10,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,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, 39, 44,100,101,102, 44, 39, 41, + 41, 59, 39, 41, 10,101,110,100, 10,101,110,100, 10,101,110, + 100, 10,114,101,116,117,114,110, 32,108,105,110,101, 10,101, + 110,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,100, + 101, 99,108, 97,114,101, 32, 40,110, 97,114,103, 41, 10,105, + 102, 32,115,101,108,102, 46,100,105,109, 32,126, 61, 32, 39, + 39, 32, 97,110,100, 32,115,101,108,102, 46,116,121,112,101, + 126, 61, 39, 99,104, 97,114, 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,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,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,111,117,116,112,117,116, + 40, 39, 35,101,108,115,101, 92,110, 39, 41, 10,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,111,117,116,112,117,116, + 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10,101,108, + 115,101, 10,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, + 101,110,100, 10,101,110,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,103,101,116, 97,114,114, 97,121, 32, 40,110, + 97,114,103, 41, 10,105,102, 32,115,101,108,102, 46,100,105, + 109, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10,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,111,117,116,112,117,116, + 40, 39, 32,123, 39, 41, 10,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,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,108,111, 99, 97,108, 32,116, 32, 61, 32,105, + 115, 98, 97,115,105, 99, 40,116,121,112,101, 41, 10,105,102, + 32, 40,116, 41, 32,116,104,101,110, 10,111,117,116,112,117, + 116, 40, 39, 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,101,108,115,101, 10,111,117, + 116,112,117,116, 40, 39, 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,101,110,100, 10,111,117,116, + 112,117,116, 40, 39, 32,103,111,116,111, 32,116,111,108,117, + 97, 95,108,101,114,114,111,114, 59, 39, 41, 10,111,117,116, + 112,117,116, 40, 39, 32,101,108,115,101, 92,110, 39, 41, 10, + 111,117,116,112,117,116, 40, 39, 35,101,110,100,105,102, 92, + 110, 39, 41, 10,111,117,116,112,117,116, 40, 39, 32,123, 39, + 41, 10,111,117,116,112,117,116, 40, 39, 32,105,110,116, 32, + 105, 59, 39, 41, 10,111,117,116,112,117,116, 40, 39, 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,108,111, 99, 97,108, 32,116, 32, 61, 32,105,115, 98, + 97,115,105, 99, 40,116,121,112,101, 41, 10,108,111, 99, 97, + 108, 32,112,116,114, 32, 61, 32, 39, 39, 10,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,111,117,116,112,117,116, 40, 39, 32, 39, 44,115,101,108, + 102, 46,110, 97,109,101, 46, 46, 39, 91,105, 93, 32, 61, 32, + 39, 41, 10,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, + 111,117,116,112,117,116, 40, 39, 40, 40, 39, 44,116,121,112, + 101, 41, 10,105,102, 32,110,111,116, 32,116, 32,116,104,101, + 110, 10,111,117,116,112,117,116, 40, 39, 42, 39, 41, 10,101, + 110,100, 10,111,117,116,112,117,116, 40, 39, 41, 32, 39, 41, + 10,108,111, 99, 97,108, 32,100,101,102, 32, 61, 32, 48, 10, + 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,105,102, 32, + 116, 32,116,104,101,110, 10,105,102, 32,116, 61, 61, 39,102, + 117,110, 99,116,105,111,110, 39, 32,116,104,101,110, 32,116, + 61, 39,118, 97,108,117,101, 39, 32,101,110,100, 10,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,101,108,115,101, 10,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,101,110,100, 10,111, + 117,116,112,117,116, 40, 39, 32,125, 39, 41, 10,111,117,116, + 112,117,116, 40, 39, 32,125, 39, 41, 10,101,110,100, 10,101, + 110,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,115, + 101,116, 97,114,114, 97,121, 32, 40,110, 97,114,103, 41, 10, + 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, 97,110,100, 32,115,101,108,102, 46,100,105, + 109, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10,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,111,117,116,112,117,116, + 40, 39, 32,123, 39, 41, 10,111,117,116,112,117,116, 40, 39, + 32,105,110,116, 32,105, 59, 39, 41, 10,111,117,116,112,117, + 116, 40, 39, 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,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,105,102, 32,116, 32,116,104,101,110, 10,105, + 102, 32,116, 61, 61, 39,102,117,110, 99,116,105,111,110, 39, + 32,116,104,101,110, 32,116, 61, 39,118, 97,108,117,101, 39, + 32,101,110,100, 10,111,117,116,112,117,116, 40, 39, 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,101,108,115, + 101, 10,105,102, 32,115,101,108,102, 46,112,116,114, 32, 61, + 61, 32, 39, 39, 32,116,104,101,110, 10,111,117,116,112,117, + 116, 40, 39, 32,123, 39, 41, 10,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,111,117,116,112,117,116, + 40, 39, 32,118,111,105,100, 42, 32,116,111,108,117, 97, 95, + 111, 98,106, 32, 61, 32,110,101,119, 39, 44,116,121,112,101, + 44, 39, 40, 39, 44,115,101,108,102, 46,110, 97,109,101, 44, + 39, 91,105, 93, 41, 59, 39, 41, 10,111,117,116,112,117,116, + 40, 39, 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, 99,108,111,110,101, 40, + 116,111,108,117, 97, 95, 83, 44,116,111,108,117, 97, 95,111, + 98,106, 44, 39, 46, 46, 32, 40, 95, 99,111,108,108,101, 99, + 116, 91,116,121,112,101, 93, 32,111,114, 32, 39, 78, 85, 76, + 76, 39, 41, 32, 46, 46, 39, 41, 44, 34, 39, 44,116,121,112, + 101, 44, 39, 34, 41, 59, 39, 41, 10,111,117,116,112,117,116, + 40, 39, 35,101,108,115,101, 92,110, 39, 41, 10,111,117,116, + 112,117,116, 40, 39, 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,111, + 117,116,112,117,116, 40, 39, 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, 99, + 108,111,110,101, 40,116,111,108,117, 97, 95, 83, 44,116,111, + 108,117, 97, 95,111, 98,106, 44, 78, 85, 76, 76, 41, 44, 34, + 39, 44,116,121,112,101, 44, 39, 34, 41, 59, 39, 41, 10,111, + 117,116,112,117,116, 40, 39, 35,101,110,100,105,102, 92,110, + 39, 41, 10,111,117,116,112,117,116, 40, 39, 32,125, 39, 41, + 10,101,108,115,101, 10,111,117,116,112,117,116, 40, 39, 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,101,110,100, 10,101,110, + 100, 10,111,117,116,112,117,116, 40, 39, 32,125, 39, 41, 10, + 101,110,100, 10,101,110,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,102,114,101,101, 97,114,114, 97,121, 32, 40, + 41, 10,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,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,111,117,116,112,117,116, + 40, 39, 32,100,101,108,101,116,101, 32, 91, 93, 39, 44,115, + 101,108,102, 46,110, 97,109,101, 44, 39, 59, 39, 41, 10,111, + 117,116,112,117,116, 40, 39, 35,101,108,115,101, 92,110, 39, + 41, 10,111,117,116,112,117,116, 40, 39, 32,102,114,101,101, + 40, 39, 44,115,101,108,102, 46,110, 97,109,101, 44, 39, 41, + 59, 39, 41, 10,111,117,116,112,117,116, 40, 39, 35,101,110, + 100,105,102, 92,110, 39, 41, 10,101,110,100, 10,101,110,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, 97,115, + 115,112, 97,114, 32, 40, 41, 10,108,111, 99, 97,108, 32,110, + 97,109,101, 32, 61, 32,115,101,108,102, 46,110, 97,109,101, + 10,105,102, 32,115,101,108,102, 46,112,116,114, 61, 61, 39, + 38, 39, 32,116,104,101,110, 10,111,117,116,112,117,116, 40, + 39, 42, 39, 46, 46,110, 97,109,101, 41, 10,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,111,117,116,112,117,116, 40, 39, + 38, 39, 46, 46,110, 97,109,101, 41, 10,101,108,115,101, 10, + 111,117,116,112,117,116, 40,110, 97,109,101, 41, 10,101,110, + 100, 10,101,110,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,114,101,116,118, 97,108,117,101, 32, 40, 41, 10,105, + 102, 32,115,101,108,102, 46,114,101,116, 32,126, 61, 32, 39, + 39, 32,116,104,101,110, 10,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,105,102, 32,116, 32,116, + 104,101,110, 10,105,102, 32,116, 61, 61, 39,102,117,110, 99, + 116,105,111,110, 39, 32,116,104,101,110, 32,116, 61, 39,118, + 97,108,117,101, 39, 32,101,110,100, 10,105,102, 32,115,101, + 108,102, 46,116,121,112,101, 61, 61, 34,116,111,108,117, 97, + 95,105,110,100,101,120, 34, 32,116,104,101,110, 10,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, 46,110, 97,109,101, 46, 46, 39, 43, 49, 41, 59, + 39, 41, 10,101,108,115,101, 10,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, 46,110, + 97,109,101, 46, 46, 39, 41, 59, 39, 41, 10,101,110,100, 10, + 101,108,115,101, 10,111,117,116,112,117,116, 40, 39, 32,116, + 111,108,117, 97, 95,112,117,115,104,117,115,101,114,116,121, + 112,101, 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,101,110,100, 10,114,101, + 116,117,114,110, 32, 49, 10,101,110,100, 10,114,101,116,117, + 114,110, 32, 48, 10,101,110,100, 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,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,116, 58, 98,117,105,108,100, + 110, 97,109,101,115, 40, 41, 10,116, 58, 99,104,101, 99,107, + 110, 97,109,101, 40, 41, 10,116, 58, 99,104,101, 99,107,116, + 121,112,101, 40, 41, 10,114,101,116,117,114,110, 32,116, 10, + 101,110,100, 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, 41, 10,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, + 105,102, 32,107,105,110,100, 32, 61, 61, 32, 34,118, 97,114, + 34, 32,116,104,101,110, 10,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,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,125, 10,101,110,100, 10, + 101,110,100, 10,108,111, 99, 97,108, 32,116, 32, 61, 32,115, + 112,108,105,116, 40,115, 44, 39, 37, 42, 37,115, 42, 38, 39, + 41, 10,105,102, 32,116, 46,110, 32, 61, 61, 32, 50, 32,116, + 104,101,110, 10,105,102, 32,107,105,110,100, 32, 61, 61, 32, + 39,102,117,110, 99, 39, 32,116,104,101,110, 10,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,101,110,100, 10, + 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, + 114,101,116,117,114,110, 32, 95, 68,101, 99,108, 97,114, 97, + 116,105,111,110,123, 10,110, 97,109,101, 32, 61, 32,116, 91, + 50, 93, 44, 10,112,116,114, 32, 61, 32, 39, 42, 39, 44, 10, + 114,101,116, 32, 61, 32, 39, 38, 39, 44, 10,116,121,112,101, + 32, 61, 32,109, 91,109, 46,110, 93, 44, 10,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,107,105,110,100, 32, 61, 32,107,105, + 110,100, 10,125, 10,101,110,100, 10,116, 32, 61, 32,115,112, + 108,105,116, 40,115, 44, 39, 37, 42, 37,115, 42, 37, 42, 39, + 41, 10,105,102, 32,116, 46,110, 32, 61, 61, 32, 50, 32,116, + 104,101,110, 10,105,102, 32,107,105,110,100, 32, 61, 61, 32, + 39,102,117,110, 99, 39, 32,116,104,101,110, 10,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,101,110,100, 10, + 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, + 114,101,116,117,114,110, 32, 95, 68,101, 99,108, 97,114, 97, + 116,105,111,110,123, 10,110, 97,109,101, 32, 61, 32,116, 91, + 50, 93, 44, 10,112,116,114, 32, 61, 32, 39, 42, 39, 44, 10, + 114,101,116, 32, 61, 32, 39, 42, 39, 44, 10,116,121,112,101, + 32, 61, 32,109, 91,109, 46,110, 93, 44, 10,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,107,105,110,100, 32, 61, 32,107,105, + 110,100, 10,125, 10,101,110,100, 10,116, 32, 61, 32,115,112, + 108,105,116, 40,115, 44, 39, 38, 39, 41, 10,105,102, 32,116, + 46,110, 32, 61, 61, 32, 50, 32,116,104,101,110, 10,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,114,101, + 116,117,114,110, 32, 95, 68,101, 99,108, 97,114, 97,116,105, + 111,110,123, 10,110, 97,109,101, 32, 61, 32,116, 91, 50, 93, + 44, 10,112,116,114, 32, 61, 32, 39, 38, 39, 44, 10,116,121, + 112,101, 32, 61, 32,109, 91,109, 46,110, 93, 44, 10,109,111, + 100, 32, 61, 32, 99,111,110, 99, 97,116, 40,109, 44, 49, 44, + 109, 46,110, 45, 49, 41, 32, 44, 10,107,105,110,100, 32, 61, + 32,107,105,110,100, 10,125, 10,101,110,100, 10,108,111, 99, + 97,108, 32,115, 49, 32, 61, 32,103,115,117, 98, 40,115, 44, + 34, 40, 37, 98, 37, 91, 37, 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,116, 32, 61, 32,115,112, + 108,105,116, 40,115, 49, 44, 39, 37, 42, 39, 41, 10,105,102, + 32,116, 46,110, 32, 61, 61, 32, 50, 32,116,104,101,110, 10, + 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, 10,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,114,101, + 116,117,114,110, 32, 95, 68,101, 99,108, 97,114, 97,116,105, + 111,110,123, 10,110, 97,109,101, 32, 61, 32,116, 91, 50, 93, + 44, 10,112,116,114, 32, 61, 32, 39, 42, 39, 44, 10,116,121, + 112,101, 32, 61, 32,109, 91,109, 46,110, 93, 44, 10,109,111, + 100, 32, 61, 32, 99,111,110, 99, 97,116, 40,109, 44, 49, 44, + 109, 46,110, 45, 49, 41, 32, 44, 10,107,105,110,100, 32, 61, + 32,107,105,110,100, 10,125, 10,101,110,100, 10,105,102, 32, + 107,105,110,100, 32, 61, 61, 32, 39,118, 97,114, 39, 32,116, + 104,101,110, 10,116, 32, 61, 32,115,112,108,105,116, 40,115, + 44, 39, 37,115, 37,115, 42, 39, 41, 10,108,111, 99, 97,108, + 32,118, 10,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, 39, 39, 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,114,101,116,117,114,110, 32, + 95, 68,101, 99,108, 97,114, 97,116,105,111,110,123, 10,110, + 97,109,101, 32, 61, 32,118, 44, 10,116,121,112,101, 32, 61, + 32,116, 91,116, 46,110, 93, 44, 10,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,107,105,110,100, 32, 61, 32,107,105,110,100, + 10,125, 10,101,108,115,101, 10,116, 32, 61, 32,115,112,108, + 105,116, 40,115, 44, 39, 37,115, 37,115, 42, 39, 41, 10,108, + 111, 99, 97,108, 32,118, 32, 61, 32,116, 91,116, 46,110, 93, + 10,108,111, 99, 97,108, 32,116,112, 44,109,100, 10,105,102, + 32,116, 46,110, 62, 49, 32,116,104,101,110, 10,116,112, 32, + 61, 32,116, 91,116, 46,110, 45, 49, 93, 10,109,100, 32, 61, + 32, 99,111,110, 99, 97,116, 40,116, 44, 49, 44,116, 46,110, + 45, 50, 41, 10,101,110,100, 10,114,101,116,117,114,110, 32, + 95, 68,101, 99,108, 97,114, 97,116,105,111,110,123, 10,110, + 97,109,101, 32, 61, 32,118, 44, 10,116,121,112,101, 32, 61, + 32,116,112, 44, 10,109,111,100, 32, 61, 32,109,100, 44, 10, + 107,105,110,100, 32, 61, 32,107,105,110,100, 10,125, 10,101, + 110,100, 10,101,110,100,32 + }; + if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) + lua_pcall(tolua_S,0,LUA_MULTRET,0); + } /* end of embedded lua code */ + + + { /* begin embedded lua code */ + static unsigned char B[] = { + 10, 99,108, 97,115,115, 86, 97,114,105, 97, 98,108,101, 32, + 61, 32,123, 10, 95,103,101,116, 32, 61, 32,123,125, 44, 10, + 95,115,101,116, 32, 61, 32,123,125, 44, 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,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,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, + 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,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,112,114,105,110,116, 40, + 105,100,101,110,116, 46, 46, 34, 32,112,116,114, 32, 61, 32, + 39, 34, 46, 46,115,101,108,102, 46,112,116,114, 46, 46, 34, + 39, 44, 34, 41, 10,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,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,112,114,105,110,116, 40,105,100,101,110, + 116, 46, 46, 34, 32,100,101,102, 32, 61, 32, 39, 34, 46, 46, + 115,101,108,102, 46,100,101,102, 46, 46, 34, 39, 44, 34, 41, + 10,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, + 32,114,101,116, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, + 46,114,101,116, 46, 46, 34, 39, 44, 34, 41, 10,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,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,108,111, 99, 97,108, 32,112, + 97,114,101,110,116, 32, 61, 32, 34, 34, 10,108,111, 99, 97, + 108, 32,117,110,115,105,103,110,101,100, 32, 61, 32, 34, 34, + 10,108,111, 99, 97,108, 32,112,116,114, 32, 61, 32, 34, 34, + 10,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,105,102, 32,112, 32,116,104,101, + 110, 10,112, 97,114,101,110,116, 32, 61, 32, 34, 95, 34, 32, + 46, 46, 32,112, 10,101,110,100, 10,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,117,110,115,105,103,110,101,100, 32, 61, 32, 34, + 95,117,110,115,105,103,110,101,100, 34, 10,101,110,100, 10, + 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,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,101,110,100, 10,108,111, 99, 97,108, 32,110, 97, + 109,101, 32, 61, 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,110, 97,109,101, 44, 34, + 46, 42, 58, 58, 34, 44, 34, 34, 41, 32, 46, 46, 32,112,116, + 114, 10,114,101,116,117,114,110, 32,110, 97,109,101, 10,101, + 110,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,105,115,118, 97, + 114,105, 97, 98,108,101, 32, 40, 41, 10,114,101,116,117,114, + 110, 32,116,114,117,101, 10,101,110,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,103,101,116,118, 97,108,117,101, 32, 40, 99, + 108, 97,115,115, 44,115,116, 97,116,105, 99, 41, 10,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,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, 10,101,108,115,101,105,102, 32, + 99,108, 97,115,115, 32,116,104,101,110, 10,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, 10,101,108,115,101, 10,114,101, + 116,117,114,110, 32,115,101,108,102, 46,110, 97,109,101, 10, + 101,110,100, 10,101,110,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,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,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,114,101,116, + 117,114,110, 32, 99,108, 97,115,115, 46, 46, 39, 58, 58,112, + 39, 10,101,108,115,101,105,102, 32, 99,108, 97,115,115, 32, + 116,104,101,110, 10,114,101,116,117,114,110, 32, 39,115,101, + 108,102, 45, 62,112, 39, 10,101,108,115,101, 10,114,101,116, + 117,114,110, 32, 39,112, 39, 10,101,110,100, 10,101,110,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,115,117,112, 99,111,100, + 101, 32, 40, 41, 10,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,105,102, 32, 99,108, 97,115,115, 32,116,104, + 101,110, 10,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,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, 95, 34, 46, 46, 99,108, 97,115,115, 41, 10,101,108,115, + 101, 10,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, + 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,101, + 110,100, 10,111,117,116,112,117,116, 40, 34,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,111,117,116,112,117,116, 40, 34,123, 34, 41, 10,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,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,111,117,116,112,117,116, 40, 39, 32, 39, + 44, 99,108, 97,115,115, 44, 39, 42, 39, 44, 39,115,101,108, + 102, 32, 61, 32, 39, 41, 10,111,117,116,112,117,116, 40, 39, + 40, 39, 44, 99,108, 97,115,115, 44, 39, 42, 41, 32, 39, 41, + 10,111,117,116,112,117,116, 40, 39,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,101,108,115, + 101,105,102, 32,115,116, 97,116,105, 99, 32,116,104,101,110, + 10, 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,101,110,100, 10, + 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, + 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,111,117,116,112,117,116, 40, 39, 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,111,117,116,112,117, + 116, 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10,101, + 110,100, 10,108,111, 99, 97,108, 32,116,121,112,101, 32, 61, + 32,115,101,108,102, 46,116,121,112,101, 10,105,102, 32,103, + 115,117, 98, 40,116,121,112,101, 44, 39, 99,111,110,115,116, + 32, 39, 44, 39, 39, 41, 61, 61, 39, 99,104, 97,114, 39, 32, + 97,110,100, 32,115,101,108,102, 46,100,105,109,126, 61, 39, + 39, 32,116,104,101,110, 10,116,121,112,101, 32, 61, 32, 39, + 99,104, 97,114, 42, 39, 10,101,110,100, 10,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,105,102, 32,116, 32,116,104, + 101,110, 10,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,101,108,115,101, 10,116, + 32, 61, 32,115,101,108,102, 46,116,121,112,101, 10,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,111,117,116,112,117, + 116, 40, 39, 32,116,111,108,117, 97, 95,112,117,115,104,117, + 115,101,114,116,121,112,101, 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,101,108,115,101, 10, + 111,117,116,112,117,116, 40, 39, 32,116,111,108,117, 97, 95, + 112,117,115,104,117,115,101,114,116,121,112,101, 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,101, + 110,100, 10,101,110,100, 10,111,117,116,112,117,116, 40, 39, + 32,114,101,116,117,114,110, 32, 49, 59, 39, 41, 10,111,117, + 116,112,117,116, 40, 39,125, 39, 41, 10,111,117,116,112,117, + 116, 40, 39, 92,110, 39, 41, 10,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,105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, + 10,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,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, 95, + 34, 46, 46, 99,108, 97,115,115, 41, 10,101,108,115,101, 10, + 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,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,101,110,100, + 10,111,117,116,112,117,116, 40, 34,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,111, + 117,116,112,117,116, 40, 34,123, 34, 41, 10,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,111,117,116,112, + 117,116, 40, 39, 32, 39, 44, 99,108, 97,115,115, 44, 39, 42, + 39, 44, 39,115,101,108,102, 32, 61, 32, 39, 41, 10,111,117, + 116,112,117,116, 40, 39, 40, 39, 44, 99,108, 97,115,115, 44, + 39, 42, 41, 32, 39, 41, 10,111,117,116,112,117,116, 40, 39, + 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,101,110,100, 10,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,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, + 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, + 111,117,116,112,117,116, 40, 39, 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,101,108,115,101,105,102, 32,115,116, + 97,116,105, 99, 32,116,104,101,110, 10, 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,101,110,100, 10,111,117,116,112,117,116, + 40, 39, 32,105,102, 32, 40, 33, 39, 46, 46,115,101,108,102, + 58,111,117,116, 99,104,101, 99,107,116,121,112,101, 40, 50, + 44,116,114,117,101, 41, 46, 46, 39, 41, 39, 41, 10,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,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,111,117,116,112,117,116, 40, + 39, 35,101,110,100,105,102, 92,110, 39, 41, 10,108,111, 99, + 97,108, 32,100,101,102, 32, 61, 32, 48, 10,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,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,111,117,116,112,117, + 116, 40, 39, 32,115,116,114,110, 99,112,121, 40, 39, 41, 10, + 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,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, 41, 10,101,108,115,101, + 105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 10,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,101,108,115, + 101, 10,111,117,116,112,117,116, 40,115,101,108,102, 46,110, + 97,109,101, 41, 10,101,110,100, 10,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,101,108,115,101, + 10,108,111, 99, 97,108, 32,112,116,114, 32, 61, 32, 39, 39, + 10,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,111,117,116,112,117,116, 40, 39, 32, + 39, 41, 10,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,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, 41, 10,101, + 108,115,101,105,102, 32, 99,108, 97,115,115, 32,116,104,101, + 110, 10,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, + 101,108,115,101, 10,111,117,116,112,117,116, 40,115,101,108, + 102, 46,110, 97,109,101, 41, 10,101,110,100, 10,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,111,117,116,112, + 117,116, 40, 39, 32, 61, 32, 39, 41, 10,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,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,105,102, 32,110,111,116, + 32,116, 32,116,104,101,110, 10,111,117,116,112,117,116, 40, + 39, 42, 39, 41, 10,101,110,100, 10,111,117,116,112,117,116, + 40, 39, 41, 32, 39, 41, 10,105,102, 32,116, 32,116,104,101, + 110, 10,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,111,117, + 116,112,117,116, 40, 39, 40,105,110,116, 41, 32, 39, 41, 10, + 101,110,100, 10,105,102, 32,116, 61, 61, 39,102,117,110, 99, + 116,105,111,110, 39, 32,116,104,101,110, 32,116, 61, 39,118, + 97,108,117,101, 39, 32,101,110,100, 10,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, 59, 39, 41, 10,101,108,115,101, + 10,111,117,116,112,117,116, 40, 39,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, 50, 44, 39, 44,100,101,102, 44, 39, 41, 41, + 59, 39, 41, 10,101,110,100, 10,101,110,100, 10,111,117,116, + 112,117,116, 40, 39, 32,114,101,116,117,114,110, 32, 48, 59, + 39, 41, 10,111,117,116,112,117,116, 40, 39,125, 39, 41, 10, + 111,117,116,112,117,116, 40, 39, 92,110, 39, 41, 10,101,110, + 100, 10,101,110,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,114, + 101,103,105,115,116,101,114, 32, 40, 41, 10,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,105,102, 32,110,111,116, 32,112, + 97,114,101,110,116, 32,116,104,101,110, 10,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,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, 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,101,110,100, 10,101,110,100, 10,105,102, 32,115,101,108, + 102, 46, 99,115,101,116,110, 97,109,101, 32,116,104,101,110, + 10,111,117,116,112,117,116, 40, 39, 32,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,101,108,115,101, 10,111,117,116,112, + 117,116, 40, 39, 32,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,101,110,100, 10,101,110,100, 10,102,117,110, 99,116,105, + 111,110, 32, 95, 86, 97,114,105, 97, 98,108,101, 32, 40,116, + 41, 10,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, 97,112,112,101,110,100, 40,116, 41, 10,114,101,116, + 117,114,110, 32,116, 10,101,110,100, 10,102,117,110, 99,116, + 105,111,110, 32, 86, 97,114,105, 97, 98,108,101, 32, 40,115, + 41, 10,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 + }; + if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) + lua_pcall(tolua_S,0,LUA_MULTRET,0); + } /* end of embedded lua code */ + + + { /* begin embedded lua code */ + static unsigned char B[] = { + 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,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,112,114,105, + 110,116, 40,105,100,101,110,116, 46, 46, 34, 65,114,114, 97, + 121,123, 34, 41, 10,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,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,112, + 114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,112, + 116,114, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,112, + 116,114, 46, 46, 34, 39, 44, 34, 41, 10,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,112,114,105,110,116, 40,105, + 100,101,110,116, 46, 46, 34, 32,100,101,102, 32, 61, 32, 39, + 34, 46, 46,115,101,108,102, 46,100,101,102, 46, 46, 34, 39, + 44, 34, 41, 10,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, 10, + 112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, + 114,101,116, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46, + 114,101,116, 46, 46, 34, 39, 44, 34, 41, 10,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,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,114, + 101,116,117,114,110, 32,116,114,117,101, 10,101,110,100, 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,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,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,101,108,115,101, + 105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 10,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,101,108, + 115,101, 10,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,101,110,100, 10,101,110,100, 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,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, + 105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 10,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,101,108,115,101, 10,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,101,110,100, 10,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,111,117,116,112,117,116, 40, 34, + 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,111,117,116,112,117,116, 40, 34,123, 34, + 41, 10,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, + 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,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,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,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,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,111,117,116,112,117,116, 40, 39, 32, + 115,101,108,102, 32, 61, 32, 39, 41, 10,111,117,116,112,117, + 116, 40, 39, 40, 39, 44, 99,108, 97,115,115, 44, 39, 42, 41, + 32, 39, 41, 10,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,101,108,115, + 101,105,102, 32,115,116, 97,116,105, 99, 32,116,104,101,110, + 10, 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,101,110,100, 10, + 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,111,117,116,112,117,116, 40, 39, 32,123, 39, + 41, 10,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,111,117,116,112,117,116, 40, 39, 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,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,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,111,117,116,112,117,116, 40, 39, + 32,125, 39, 41, 10,111,117,116,112,117,116, 40, 39, 35,101, + 110,100,105,102, 92,110, 39, 41, 10,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,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,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, + 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, + 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,111,117,116,112,117,116, + 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10,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, + 105,102, 32,116, 32,116,104,101,110, 10,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,101,108,115,101, 10,116, 32, 61, 32,115,101,108,102, 46, + 116,121,112,101, 10,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,111,117,116,112,117,116, 40, 39, 32,116,111,108,117, + 97, 95,112,117,115,104,117,115,101,114,116,121,112,101, 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,101,108,115,101, 10,111,117,116,112,117,116, 40, 39, + 32,116,111,108,117, 97, 95,112,117,115,104,117,115,101,114, + 116,121,112,101, 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,101,110,100, 10,101,110,100, 10,111, + 117,116,112,117,116, 40, 39, 32,114,101,116,117,114,110, 32, + 49, 59, 39, 41, 10,111,117,116,112,117,116, 40, 39,125, 39, + 41, 10,111,117,116,112,117,116, 40, 39, 92,110, 39, 41, 10, + 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,105,102, 32, 99,108, 97, + 115,115, 32,116,104,101,110, 10,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,101,108,115,101, 10, + 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,101,110, + 100, 10,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,111,117,116,112,117,116, 40, 34,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,111, + 117,116,112,117,116, 40, 34,123, 34, 41, 10,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,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,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,111,117,116,112,117,116, 40, 39, 32, 39, 44, 99,108, 97, + 115,115, 44, 39, 42, 39, 44, 39,115,101,108,102, 59, 39, 41, + 10,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, + 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,111,117,116,112,117,116, 40, 39, 32,115,101, + 108,102, 32, 61, 32, 39, 41, 10,111,117,116,112,117,116, 40, + 39, 40, 39, 44, 99,108, 97,115,115, 44, 39, 42, 41, 32, 39, + 41, 10,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,101,108,115,101,105, + 102, 32,115,116, 97,116,105, 99, 32,116,104,101,110, 10, 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,101,110,100, 10,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,111,117,116,112,117,116, 40, 39, 32,123, 39, 41, 10, + 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,111,117,116,112,117,116, 40, 39, 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, + 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,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,111,117,116,112,117,116, 40, 39, 32,125, + 39, 41, 10,111,117,116,112,117,116, 40, 39, 35,101,110,100, + 105,102, 92,110, 39, 41, 10,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,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,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,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, 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,111,117,116,112,117,116, 40, 39, + 35,101,110,100,105,102, 92,110, 39, 41, 10,108,111, 99, 97, + 108, 32,112,116,114, 32, 61, 32, 39, 39, 10,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,111,117,116,112,117,116, 40, 39, 32, 39, 41, 10,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,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,101,108,115,101, + 105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 10,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,101, + 108,115,101, 10,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,101,110,100, 10,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,111,117,116, + 112,117,116, 40, 39, 32, 61, 32, 39, 41, 10,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,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,105,102, 32,110,111, + 116, 32,116, 32,116,104,101,110, 10,111,117,116,112,117,116, + 40, 39, 42, 39, 41, 10,101,110,100, 10,111,117,116,112,117, + 116, 40, 39, 41, 32, 39, 41, 10,108,111, 99, 97,108, 32,100, + 101,102, 32, 61, 32, 48, 10,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,105,102, 32,116, 32,116,104,101,110, 10,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,111,117,116,112,117, + 116, 40, 39, 40,105,110,116, 41, 39, 41, 10,101,110,100, 10, + 105,102, 32,116, 61, 61, 39,102,117,110, 99,116,105,111,110, + 39, 32,116,104,101,110, 32,116, 61, 39,118, 97,108,117,101, + 39, 32,101,110,100, 10,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,101,108,115,101, 10,111,117,116, + 112,117,116, 40, 39,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, + 51, 44, 39, 44,100,101,102, 44, 39, 41, 41, 59, 39, 41, 10, + 101,110,100, 10,111,117,116,112,117,116, 40, 39, 32,114,101, + 116,117,114,110, 32, 48, 59, 39, 41, 10,111,117,116,112,117, + 116, 40, 39,125, 39, 41, 10,111,117,116,112,117,116, 40, 39, + 92,110, 39, 41, 10,101,110,100, 10,101,110,100, 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, 41, 10, + 105,102, 32,115,101,108,102, 46, 99,115,101,116,110, 97,109, + 101, 32,116,104,101,110, 10,111,117,116,112,117,116, 40, 39, + 32,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,101,108,115,101, 10,111, + 117,116,112,117,116, 40, 39, 32,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,101,110,100, 10,101,110,100, 10,102,117,110, 99,116,105, + 111,110, 32, 95, 65,114,114, 97,121, 32, 40,116, 41, 10,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, 97,112,112,101, + 110,100, 40,116, 41, 10,114,101,116,117,114,110, 32,116, 10, + 101,110,100, 10,102,117,110, 99,116,105,111,110, 32, 65,114, + 114, 97,121, 32, 40,115, 41, 10,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 + }; + if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) + lua_pcall(tolua_S,0,LUA_MULTRET,0); + } /* end of embedded lua code */ + + + { /* begin embedded lua code */ + static unsigned char B[] = { + 10, 99,108, 97,115,115, 70,117,110, 99,116,105,111,110, 32, + 61, 32,123, 10,109,111,100, 32, 61, 32, 39, 39, 44, 10,116, + 121,112,101, 32, 61, 32, 39, 39, 44, 10,112,116,114, 32, 61, + 32, 39, 39, 44, 10,110, 97,109,101, 32, 61, 32, 39, 39, 44, + 10, 97,114,103,115, 32, 61, 32,123,110, 61, 48,125, 44, 10, + 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,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,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,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,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, + 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,101,110,100, 10,108, + 111, 99, 97,108, 32,105, 61, 49, 10,119,104,105,108,101, 32, + 115,101,108,102, 46, 97,114,103,115, 91,105, 93, 32,100,111, + 10,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 58,100, + 101, 99,108,116,121,112,101, 40, 41, 10,105, 32, 61, 32,105, + 43, 49, 10,101,110,100, 10,101,110,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,115,117,112, 99,111,100,101, 32, 40, 41, 10, + 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, + 10,108,111, 99, 97,108, 32,110,114,101,116, 32, 61, 32, 48, + 10,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, + 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,105,102, 32, 99,108, 97,115,115, + 32,116,104,101,110, 10,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,101,108,115,101, 10,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,101,110,100, 10,111,117,116,112,117,116, 40, 34,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, + 111,117,116,112,117,116, 40, 34,123, 34, 41, 10,105,102, 32, + 115,101,108,102, 46,116,121,112,101, 32, 61, 61, 32, 39,116, + 111,108,117, 97, 95,109,117,108,116,114,101,116, 39, 32,116, + 104,101,110, 10,111,117,116,112,117,116, 40, 39, 32,105,110, + 116, 32,116,111,108,117, 97, 95,114,101,116, 59, 39, 41, 10, + 101,110,100, 10,105,102, 32,111,118,101,114,108,111, 97,100, + 32, 60, 32, 48, 32,116,104,101,110, 10,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,101, + 110,100, 10,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,111,117,116,112,117,116, 40, 39, + 32,105,102, 32, 40, 92,110, 39, 41, 10,108,111, 99, 97,108, + 32,110, 97,114,103, 10,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,105,102, + 32, 99,108, 97,115,115, 32,116,104,101,110, 10,108,111, 99, + 97,108, 32,102,117,110, 99, 32, 61, 32, 39,116,111,108,117, + 97, 95,105,115,117,115,101,114,116,121,112,101, 39, 10,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,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,116,121,112,101, 32, 61, + 32,115,101,108,102, 46, 99,111,110,115,116, 32, 46, 46, 32, + 34, 32, 34, 32, 46, 46, 32,116,121,112,101, 10,101,110,100, + 10,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,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,116,121,112,101, 32, 61, 32, + 115,101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112, + 101, 10,101,110,100, 10,111,117,116,112,117,116, 40, 39, 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, 32, 92,110, 39, 41, 10,101,110,100, + 10,108,111, 99, 97,108, 32,118, 97,114, 97,114,103, 32, 61, + 32,102, 97,108,115,101, 10,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,108,111, + 99, 97,108, 32,105, 61, 49, 10,119,104,105,108,101, 32,115, + 101,108,102, 46, 97,114,103,115, 91,105, 93, 32, 97,110,100, + 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 46,116, + 121,112,101, 32,126, 61, 32, 34, 46, 46, 46, 34, 32,100,111, + 10,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,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,111,117,116,112,117,116, 40, 39, + 32, 33, 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, 44,102, 97,108,115,101, 41, 46, 46, 39, + 32,124,124, 32, 92,110, 39, 41, 10,101,110,100, 10,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,110, 97,114,103, 32, 61, 32, + 110, 97,114,103, 43, 49, 10,101,110,100, 10,105, 32, 61, 32, + 105, 43, 49, 10,101,110,100, 10,105,102, 32,115,101,108,102, + 46, 97,114,103,115, 91,105, 93, 32,116,104,101,110, 10,118, + 97,114, 97,114,103, 32, 61, 32,116,114,117,101, 10,101,110, + 100, 10,101,110,100, 10,105,102, 32,110,111,116, 32,118, 97, + 114, 97,114,103, 32,116,104,101,110, 10,111,117,116,112,117, + 116, 40, 39, 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, 39, 41, 10,101,108,115,101, 10,111, + 117,116,112,117,116, 40, 39, 32, 48, 92,110, 39, 41, 10,101, + 110,100, 10,111,117,116,112,117,116, 40, 39, 32, 41, 39, 41, + 10,111,117,116,112,117,116, 40, 39, 32,103,111,116,111, 32, + 116,111,108,117, 97, 95,108,101,114,114,111,114, 59, 39, 41, + 10,111,117,116,112,117,116, 40, 39, 32,101,108,115,101, 92, + 110, 39, 41, 10,105,102, 32,111,118,101,114,108,111, 97,100, + 32, 60, 32, 48, 32,116,104,101,110, 10,111,117,116,112,117, + 116, 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10,101, + 110,100, 10,111,117,116,112,117,116, 40, 39, 32,123, 39, 41, + 10,108,111, 99, 97,108, 32,110, 97,114,103, 10,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,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,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,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,111,117,116,112,117,116, 40, 39,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,101,108,115,101,105,102, 32,115,116, 97,116,105, 99, 32, + 116,104,101,110, 10, 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, + 101,110,100, 10,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,108,111, 99, 97,108, + 32,105, 61, 49, 10,119,104,105,108,101, 32,115,101,108,102, + 46, 97,114,103,115, 91,105, 93, 32, 97,110,100, 32,115,101, + 108,102, 46, 97,114,103,115, 91,105, 93, 46,116,121,112,101, + 32,126, 61, 32, 34, 46, 46, 46, 34, 32,100,111, 10,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,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,110, 97,114,103, + 32, 61, 32,110, 97,114,103, 43, 49, 10,101,110,100, 10,105, + 32, 61, 32,105, 43, 49, 10,101,110,100, 10,101,110,100, 10, + 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,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,111,117,116,112,117, + 116, 40, 39, 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,111,117,116,112,117,116, 40, 39, 35, + 101,110,100,105,102, 92,110, 39, 41, 10,101,110,100, 10,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,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,108,111, 99, + 97,108, 32,105, 61, 49, 10,119,104,105,108,101, 32,115,101, + 108,102, 46, 97,114,103,115, 91,105, 93, 32, 97,110,100, 32, + 115,101,108,102, 46, 97,114,103,115, 91,105, 93, 46,116,121, + 112,101, 32,126, 61, 32, 34, 46, 46, 46, 34, 32,100,111, 10, + 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,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,110, + 97,114,103, 32, 61, 32,110, 97,114,103, 43, 49, 10,101,110, + 100, 10,105, 32, 61, 32,105, 43, 49, 10,101,110,100, 10,101, + 110,100, 10,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,111,117,116,112, + 117,116, 40, 39, 32,116,111,108,117, 97, 95,114,101,108,101, + 97,115,101, 40,116,111,108,117, 97, 95, 83, 44,115,101,108, + 102, 41, 59, 39, 41, 10,111,117,116,112,117,116, 40, 39, 32, + 100,101,108,101,116,101, 32,115,101,108,102, 59, 39, 41, 10, + 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,111,117,116,112,117,116, 40, 39, 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,101,108,115,101, 10,111,117,116, + 112,117,116, 40, 39, 32,123, 39, 41, 10,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,108,111, + 99, 97,108, 32, 99,116,121,112,101, 32, 61, 32,115,101,108, + 102, 46,116,121,112,101, 10,105,102, 32, 99,116,121,112,101, + 32, 61, 61, 32, 39,118, 97,108,117,101, 39, 32,111,114, 32, + 99,116,121,112,101, 32, 61, 61, 32, 39,102,117,110, 99,116, + 105,111,110, 39, 32,116,104,101,110, 10, 99,116,121,112,101, + 32, 61, 32, 39,105,110,116, 39, 10,101,110,100, 10,105,102, + 32,115,101,108,102, 46,116,121,112,101, 32, 61, 61, 32, 39, + 116,111,108,117, 97, 95,109,117,108,116,114,101,116, 39, 32, + 116,104,101,110, 10,111,117,116,112,117,116, 40, 39, 32,116, + 111,108,117, 97, 95,114,101,116, 32, 61, 32, 39, 41, 10,101, + 108,115,101, 10,111,117,116,112,117,116, 40, 39, 32, 39, 44, + 115,101,108,102, 46,109,111,100, 44, 99,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,101,110,100, 10,105, + 102, 32,105,115, 98, 97,115,105, 99, 40,115,101,108,102, 46, + 116,121,112,101, 41, 32,111,114, 32,115,101,108,102, 46,112, + 116,114, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10,111, + 117,116,112,117,116, 40, 39, 40, 39, 44,115,101,108,102, 46, + 109,111,100, 44, 99,116,121,112,101, 44,115,101,108,102, 46, + 112,116,114, 44, 39, 41, 32, 39, 41, 10,101,110,100, 10,101, + 108,115,101, 10,111,117,116,112,117,116, 40, 39, 32, 39, 41, + 10,101,110,100, 10,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,111,117,116,112,117, + 116, 40, 39,110,101,119, 39, 44,115,101,108,102, 46,116,121, + 112,101, 44, 39, 40, 39, 41, 10,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,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,101,108,115, + 101,105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 10, + 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,101,108,115,101, 10,111,117,116,112,117,116, 40,115, + 101,108,102, 46,110, 97,109,101, 44, 39, 40, 39, 41, 10,101, + 110,100, 10,108,111, 99, 97,108, 32,105, 61, 49, 10,119,104, + 105,108,101, 32,115,101,108,102, 46, 97,114,103,115, 91,105, + 93, 32, 97,110,100, 32,115,101,108,102, 46, 97,114,103,115, + 91,105, 93, 46,116,121,112,101, 32,126, 61, 32, 34, 46, 46, + 46, 34, 32,100,111, 10,115,101,108,102, 46, 97,114,103,115, + 91,105, 93, 58,112, 97,115,115,112, 97,114, 40, 41, 10,105, + 32, 61, 32,105, 43, 49, 10,105,102, 32,115,101,108,102, 46, + 97,114,103,115, 91,105, 93, 32, 97,110,100, 32,115,101,108, + 102, 46, 97,114,103,115, 91,105, 93, 46,116,121,112,101, 32, + 126, 61, 32, 34, 46, 46, 46, 34, 32,116,104,101,110, 10,111, + 117,116,112,117,116, 40, 39, 44, 39, 41, 10,101,110,100, 10, + 101,110,100, 10,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,116,104, + 101,110, 10,111,117,116,112,117,116, 40, 39, 45, 49, 41, 59, + 39, 41, 10,101,108,115,101, 10,111,117,116,112,117,116, 40, + 39, 41, 59, 39, 41, 10,101,110,100, 10,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,116,121,112,101, 32,126, 61, 32, 39,116,111,108,117, + 97, 95,109,117,108,116,114,101,116, 39, 32,116,104,101,110, + 10,110,114,101,116, 32, 61, 32,110,114,101,116, 32, 43, 32, + 49, 10,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,105,102, 32,116, 32,116,104,101,110, 10,105, + 102, 32,116, 61, 61, 39,102,117,110, 99,116,105,111,110, 39, + 32,116,104,101,110, 32,116, 61, 39,118, 97,108,117,101, 39, + 32,101,110,100, 10,105,102, 32,115,101,108,102, 46,116,121, + 112,101, 32, 61, 61, 32, 39,116,111,108,117, 97, 95,105,110, + 100,101,120, 39, 32,116,104,101,110, 10,111,117,116,112,117, + 116, 40, 39, 32,105,102, 32, 40,116,111,108,117, 97, 95,114, + 101,116, 32, 60, 32, 48, 41, 32,108,117, 97, 95,112,117,115, + 104,110,105,108, 40,116,111,108,117, 97, 95, 83, 41, 59, 39, + 41, 10,111,117,116,112,117,116, 40, 39, 32,101,108,115,101, + 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, 43, + 49, 41, 59, 39, 41, 10,101,108,115,101, 10,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,116,111,108,117, 97, 95, + 114,101,116, 41, 59, 39, 41, 10,101,110,100, 10,101,108,115, + 101, 10,116, 32, 61, 32,115,101,108,102, 46,116,121,112,101, + 10,105,102, 32,115,101,108,102, 46,112,116,114, 32, 61, 61, + 32, 39, 39, 32,116,104,101,110, 10,111,117,116,112,117,116, + 40, 39, 32,123, 39, 41, 10,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,111,117,116,112,117,116, 40, + 39, 32,118,111,105,100, 42, 32,116,111,108,117, 97, 95,111, + 98,106, 32, 61, 32,110,101,119, 39, 44,116, 44, 39, 40,116, + 111,108,117, 97, 95,114,101,116, 41, 59, 39, 41, 10,111,117, + 116,112,117,116, 40, 39, 32,116,111,108,117, 97, 95,112,117, + 115,104,117,115,101,114,116,121,112,101, 40,116,111,108,117, + 97, 95, 83, 44,116,111,108,117, 97, 95, 99,108,111,110,101, + 40,116,111,108,117, 97, 95, 83, 44,116,111,108,117, 97, 95, + 111, 98,106, 44, 39, 46, 46, 32, 40, 95, 99,111,108,108,101, + 99,116, 91,116, 93, 32,111,114, 32, 39, 78, 85, 76, 76, 39, + 41, 32, 46, 46, 39, 41, 44, 34, 39, 44,116, 44, 39, 34, 41, + 59, 39, 41, 10,111,117,116,112,117,116, 40, 39, 35,101,108, + 115,101, 92,110, 39, 41, 10,111,117,116,112,117,116, 40, 39, + 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,111, + 117,116,112,117,116, 40, 39, 32,116,111,108,117, 97, 95,112, + 117,115,104,117,115,101,114,116,121,112,101, 40,116,111,108, + 117, 97, 95, 83, 44,116,111,108,117, 97, 95, 99,108,111,110, + 101, 40,116,111,108,117, 97, 95, 83, 44,116,111,108,117, 97, + 95,111, 98,106, 44, 78, 85, 76, 76, 41, 44, 34, 39, 44,116, + 44, 39, 34, 41, 59, 39, 41, 10,111,117,116,112,117,116, 40, + 39, 35,101,110,100,105,102, 92,110, 39, 41, 10,111,117,116, + 112,117,116, 40, 39, 32,125, 39, 41, 10,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,111,117,116,112,117,116, 40, + 39, 32,116,111,108,117, 97, 95,112,117,115,104,117,115,101, + 114,116,121,112,101, 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,101, + 108,115,101, 10,111,117,116,112,117,116, 40, 39, 32,116,111, + 108,117, 97, 95,112,117,115,104,117,115,101,114,116,121,112, + 101, 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,105,102, 32,115,101,108, + 102, 46,109,111,100, 32, 61, 61, 32, 39,116,111,108,117, 97, + 95,111,119,110, 39, 32,116,104,101,110, 10,111,117,116,112, + 117,116, 40, 39, 32,108,117, 97, 95,112,117,115,104, 99,102, + 117,110, 99,116,105,111,110, 40,116,111,108,117, 97, 95, 83, + 44, 32,116,111,108,117, 97, 95, 98,110,100, 95,116, 97,107, + 101,111,119,110,101,114,115,104,105,112, 41, 59, 39, 41, 10, + 111,117,116,112,117,116, 40, 39, 32,108,117, 97, 95,112,117, + 115,104,118, 97,108,117,101, 40,116,111,108,117, 97, 95, 83, + 44, 32, 45, 50, 41, 59, 39, 41, 10,111,117,116,112,117,116, + 40, 39, 32,108,117, 97, 95, 99, 97,108,108, 40,116,111,108, + 117, 97, 95, 83, 44, 32, 49, 44, 32, 48, 41, 59, 39, 41, 10, + 101,110,100, 10,101,110,100, 10,101,110,100, 10,101,110,100, + 10,108,111, 99, 97,108, 32,105, 61, 49, 10,119,104,105,108, + 101, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 32, + 100,111, 10,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,105, 32, 61, 32, + 105, 43, 49, 10,101,110,100, 10,111,117,116,112,117,116, 40, + 39, 32,125, 39, 41, 10,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,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,108,111, 99, 97,108, 32,105, 61, 49, 10,119, + 104,105,108,101, 32,115,101,108,102, 46, 97,114,103,115, 91, + 105, 93, 32,100,111, 10,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,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,110, 97,114,103, 32, 61, 32,110, 97,114, + 103, 43, 49, 10,101,110,100, 10,105, 32, 61, 32,105, 43, 49, + 10,101,110,100, 10,101,110,100, 10,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, + 108,111, 99, 97,108, 32,105, 61, 49, 10,119,104,105,108,101, + 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 32,100, + 111, 10,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,105, 32, 61, + 32,105, 43, 49, 10,101,110,100, 10,101,110,100, 10,101,110, + 100, 10,111,117,116,112,117,116, 40, 39, 32,125, 39, 41, 10, + 105,102, 32,115,101,108,102, 46,116,121,112,101, 32, 61, 61, + 32, 34,116,111,108,117, 97, 95,109,117,108,116,114,101,116, + 34, 32,116,104,101,110, 10,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, 32, 43, 32,116,111,108,117, 97, 95,114,101,116, + 59, 39, 41, 10,101,108,115,101, 10,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,101,110,100, 10,105,102, + 32,111,118,101,114,108,111, 97,100, 32, 60, 32, 48, 32,116, + 104,101,110, 10,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,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,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,111,117,116,112,117,116, 40, 39, 32,114,101,116,117, + 114,110, 32, 48, 59, 39, 41, 10,111,117,116,112,117,116, 40, + 39, 35,101,110,100,105,102, 92,110, 39, 41, 10,101,108,115, + 101, 10,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,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, 39, 40,116,111,108,117, 97, 95, + 83, 41, 59, 39, 41, 10,101,110,100, 10,111,117,116,112,117, + 116, 40, 39,125, 39, 41, 10,111,117,116,112,117,116, 40, 39, + 92,110, 39, 41, 10,101,110,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,114,101,103,105,115,116,101,114, 32, 40, 41, 10,111, + 117,116,112,117,116, 40, 39, 32,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,101,110,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,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,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,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,112,114,105,110,116, 40,105,100,101,110,116, 46, + 46, 34, 32,112,116,114, 32, 61, 32, 39, 34, 46, 46,115,101, + 108,102, 46,112,116,114, 46, 46, 34, 39, 44, 34, 41, 10,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,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,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,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,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,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,108,111, 99, 97,108, 32,105, + 61, 49, 10,119,104,105,108,101, 32,115,101,108,102, 46, 97, + 114,103,115, 91,105, 93, 32,100,111, 10,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, 34, 44, 34, 44, 34, 41, 10, + 105, 32, 61, 32,105, 43, 49, 10,101,110,100, 10,112,114,105, + 110,116, 40,105,100,101,110,116, 46, 46, 34, 32,125, 34, 41, + 10,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, + 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, + 108,111, 99, 97,108, 32,114, 32, 61, 32,102, 97,108,115,101, + 10,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,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, 42, 34, 44, 34, 34, 41, 10,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,103,115,117, 98, 40, + 116,121,112,101, 44, 34, 58, 58, 34, 44, 34, 95, 34, 41, 10, + 114, 32, 61, 32,116,114,117,101, 10,101,110,100, 10,108,111, + 99, 97,108, 32,105, 61, 49, 10,119,104,105,108,101, 32,115, + 101,108,102, 46, 97,114,103,115, 91,105, 93, 32,100,111, 10, + 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,105, 32, + 61, 32,105, 43, 49, 10,101,110,100, 10,114,101,116,117,114, + 110, 32,114, 10,101,110,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,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,102,117,110, + 99,116,105,111,110, 32, 95, 70,117,110, 99,116,105,111,110, + 32, 40,116, 41, 10,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,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,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, + 101,110,100, 10, 97,112,112,101,110,100, 40,116, 41, 10,105, + 102, 32,116, 58,105,110, 99,108, 97,115,115, 40, 41, 32,116, + 104,101,110, 10,105,102, 32,116, 46,110, 97,109,101, 32, 61, + 61, 32,116, 46,112, 97,114,101,110,116, 46,110, 97,109,101, + 32,116,104,101,110, 10,116, 46,110, 97,109,101, 32, 61, 32, + 39,110,101,119, 39, 10,116, 46,108,110, 97,109,101, 32, 61, + 32, 39,110,101,119, 39, 10,105,102, 32,115,116,114,105,110, + 103, 46,102,105,110,100, 40,116, 46,116,121,112,101, 44, 34, + 116,111,108,117, 97, 95,111,119,110, 34, 41, 32,116,104,101, + 110, 10,116, 46,109,111,100, 32, 61, 32, 34,116,111,108,117, + 97, 95,111,119,110, 34, 10,101,110,100, 10,116, 46,116,121, + 112,101, 32, 61, 32,116, 46,112, 97,114,101,110,116, 46,110, + 97,109,101, 10,116, 46,112,116,114, 32, 61, 32, 39, 42, 39, + 10,101,108,115,101,105,102, 32,116, 46,110, 97,109,101, 32, + 61, 61, 32, 39,126, 39, 46, 46,116, 46,112, 97,114,101,110, + 116, 46,110, 97,109,101, 32,116,104,101,110, 10,116, 46,110, + 97,109,101, 32, 61, 32, 39,100,101,108,101,116,101, 39, 10, + 116, 46,108,110, 97,109,101, 32, 61, 32, 39,100,101,108,101, + 116,101, 39, 10,116, 46,112, 97,114,101,110,116, 46, 95,100, + 101,108,101,116,101, 32, 61, 32,116,114,117,101, 10,101,108, + 115,101,105,102, 32,116, 46,116,121,112,101, 32, 61, 61, 32, + 39,116,111,108,117, 97, 95,108,101,110, 39, 32,116,104,101, + 110, 10,116, 46,108,110, 97,109,101, 32, 61, 32, 34, 46,108, + 101,110, 34, 10,101,110,100, 10,101,110,100, 10,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,114,101, + 116,117,114,110, 32,116, 10,101,110,100, 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,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, 10,108,111, + 99, 97,108, 32,105, 61, 49, 10,108,111, 99, 97,108, 32,108, + 32, 61, 32,123,110, 61, 48,125, 10,119,104,105,108,101, 32, + 116, 91,105, 93, 32,100,111, 10,108, 46,110, 32, 61, 32,108, + 46,110, 43, 49, 10,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,105, 32, 61, 32,105, 43, 49, + 10,101,110,100, 10,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,102, 46, 97,114,103,115, 32, 61, + 32,108, 10,102, 46, 99,111,110,115,116, 32, 61, 32, 99, 10, + 114,101,116,117,114,110, 32, 95, 70,117,110, 99,116,105,111, + 110, 40,102, 41, 10,101,110,100,32 + }; + if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) + lua_pcall(tolua_S,0,LUA_MULTRET,0); + } /* end of embedded lua code */ + + + { /* begin embedded lua code */ + static unsigned char B[] = { + 10, 99,108, 97,115,115, 79,112,101,114, 97,116,111,114, 32, + 61, 32,123, 10,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, 95, 84, 77, 32, 61, 32,123, 91, + 39, 43, 39, 93, 32, 61, 32, 39, 97,100,100, 39, 44, 10, 91, + 39, 45, 39, 93, 32, 61, 32, 39,115,117, 98, 39, 44, 10, 91, + 39, 42, 39, 93, 32, 61, 32, 39,109,117,108, 39, 44, 10, 91, + 39, 47, 39, 93, 32, 61, 32, 39,100,105,118, 39, 44, 10, 91, + 39, 60, 39, 93, 32, 61, 32, 39,108,116, 39, 44, 10, 91, 39, + 60, 61, 39, 93, 32, 61, 32, 39,108,101, 39, 44, 10, 91, 39, + 61, 61, 39, 93, 32, 61, 32, 39,101,113, 39, 44, 10, 91, 39, + 91, 93, 39, 93, 32, 61, 32, 39,103,101,116,105, 39, 44, 10, + 91, 39, 38, 91, 93, 39, 93, 32, 61, 32, 39,115,101,116,105, + 39, 44, 10,125, 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,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,112, + 114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,107, + 105,110,100, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46, + 107,105,110,100, 46, 46, 34, 39, 44, 34, 41, 10,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,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,112,114,105,110,116, 40,105,100,101, + 110,116, 46, 46, 34, 32,112,116,114, 32, 61, 32, 39, 34, 46, + 46,115,101,108,102, 46,112,116,114, 46, 46, 34, 39, 44, 34, + 41, 10,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, + 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, + 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, + 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, + 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,108,111, 99, 97, + 108, 32,105, 61, 49, 10,119,104,105,108,101, 32,115,101,108, + 102, 46, 97,114,103,115, 91,105, 93, 32,100,111, 10,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, 34, 44, 34, 44, + 34, 41, 10,105, 32, 61, 32,105, 43, 49, 10,101,110,100, 10, + 112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, + 125, 34, 41, 10,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,102,117,110, 99,116,105,111,110, 32, 95, 79,112, + 101,114, 97,116,111,114, 32, 40,116, 41, 10,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,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,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,101,110,100, 10, 97,112,112,101,110, + 100, 40,116, 41, 10,105,102, 32,110,111,116, 32,116, 58,105, + 110, 99,108, 97,115,115, 40, 41, 32,116,104,101,110, 10,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,101,110,100, 10,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, 95, 84, 77, 91,116, 46, + 107,105,110,100, 93, 10,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,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, 10,114,101,116,117,114,110, 32,116, + 10,101,110,100, 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,108,111, 99, 97,108, 32,114,101,102, 32, 61, 32, + 39, 39, 10,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, + 115,116,114,108,101,110, 40, 97, 41, 45, 49, 41, 44, 39, 44, + 39, 41, 10,108,111, 99, 97,108, 32,105, 61, 49, 10,108,111, + 99, 97,108, 32,108, 32, 61, 32,123,110, 61, 48,125, 10,119, + 104,105,108,101, 32,116, 91,105, 93, 32,100,111, 10,108, 46, + 110, 32, 61, 32,108, 46,110, 43, 49, 10,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,105, 32, + 61, 32,105, 43, 49, 10,101,110,100, 10,105,102, 32,107, 32, + 61, 61, 32, 39, 91, 93, 39, 32,116,104,101,110, 10,108,111, + 99, 97,108, 32, 95, 10, 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,100, 32, 61, 32,103,115,117, 98, 40,100, + 44, 39, 38, 39, 44, 39, 39, 41, 10,101,108,115,101,105,102, + 32,107, 61, 61, 39, 38, 91, 93, 39, 32,116,104,101,110, 10, + 108, 46,110, 32, 61, 32,108, 46,110, 43, 49, 10,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,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,101,110,100, 10,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,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,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,101,110,100, 10,102, 46, 97,114,103, + 115, 32, 61, 32,108, 10,102, 46, 99,111,110,115,116, 32, 61, + 32, 99, 10,102, 46,107,105,110,100, 32, 61, 32,103,115,117, + 98, 40,107, 44, 34, 37,115, 34, 44, 34, 34, 41, 10,105,102, + 32,110,111,116, 32, 95, 84, 77, 91,102, 46,107,105,110,100, + 93, 32,116,104,101,110, 10,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,101,110,100, + 10,102, 46,108,110, 97,109,101, 32, 61, 32, 34, 46, 34, 46, + 46, 95, 84, 77, 91,102, 46,107,105,110,100, 93, 10,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, 79,112,101,114, 97, + 116,111,114, 40,100, 44, 39, 38, 39, 46, 46,107, 44, 97, 44, + 99, 41, 10,101,110,100, 10,114,101,116,117,114,110, 32, 95, + 79,112,101,114, 97,116,111,114, 40,102, 41, 10,101,110,100, + 32 + }; + if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) + lua_pcall(tolua_S,0,LUA_MULTRET,0); + } /* end of embedded lua code */ + + + { /* begin embedded lua code */ + static unsigned char B[] = { + 10, 99,108, 97,115,115, 67,108, 97,115,115, 32, 61, 32,123, + 10, 99,108, 97,115,115,116,121,112,101, 32, 61, 32, 39, 99, + 108, 97,115,115, 39, 44, 10,110, 97,109,101, 32, 61, 32, 39, + 39, 44, 10, 98, 97,115,101, 32, 61, 32, 39, 39, 44, 10,116, + 121,112,101, 32, 61, 32, 39, 39, 44, 10, 98,116,121,112,101, + 32, 61, 32, 39, 39, 44, 10, 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,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, 41, 10,112,117,115,104, 40,115,101,108,102, 41, + 10,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,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, + 111,117,116,112,117,116, 40, 39, 32,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,111,117,116,112, + 117,116, 40, 39, 35,101,108,115,101, 92,110, 39, 41, 10,111, + 117,116,112,117,116, 40, 39, 32,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,111,117,116,112,117,116, 40, 39, 35,101,110, + 100,105,102, 92,110, 39, 41, 10,101,108,115,101, 10,111,117, + 116,112,117,116, 40, 39, 32,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,101,110,100, 10,111,117,116,112,117,116, 40, 39, + 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, 34, 39, 46, + 46,115,101,108,102, 46,108,110, 97,109,101, 46, 46, 39, 34, + 41, 59, 39, 41, 10,108,111, 99, 97,108, 32,105, 61, 49, 10, + 119,104,105,108,101, 32,115,101,108,102, 91,105, 93, 32,100, + 111, 10,115,101,108,102, 91,105, 93, 58,114,101,103,105,115, + 116,101,114, 40, 41, 10,105, 32, 61, 32,105, 43, 49, 10,101, + 110,100, 10,111,117,116,112,117,116, 40, 39, 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, 39, 41, 10,112,111,112, 40, 41, + 10,101,110,100, 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,112,117,115,104, 40,115,101,108,102, 41, 10,108,111, + 99, 97,108, 32,114, 32, 61, 32,102, 97,108,115,101, 10,108, + 111, 99, 97,108, 32,105, 61, 49, 10,119,104,105,108,101, 32, + 115,101,108,102, 91,105, 93, 32,100,111, 10,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,105, 32, 61, 32,105, 43, 49, 10,101,110,100, + 10,112,111,112, 40, 41, 10,105,102, 32,115,101,108,102, 46, + 95,100,101,108,101,116,101, 32,116,104,101,110, 10,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,114, 32, + 61, 32,116,114,117,101, 10,101,110,100, 10,114,101,116,117, + 114,110, 32,114, 10,101,110,100, 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,112,117,115,104, + 40,115,101,108,102, 41, 10,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,110, 97,109,101, 41, 10,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,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,108,111, + 99, 97,108, 32,105, 61, 49, 10,119,104,105,108,101, 32,115, + 101,108,102, 91,105, 93, 32,100,111, 10,115,101,108,102, 91, + 105, 93, 58,100,101, 99,108,116,121,112,101, 40, 41, 10,105, + 32, 61, 32,105, 43, 49, 10,101,110,100, 10,112,111,112, 40, + 41, 10,101,110,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,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, + 67,108, 97,115,115,123, 34, 41, 10,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,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,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,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,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,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,108,111, 99, 97,108, 32,105, 61, 49, 10,119,104, + 105,108,101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10, + 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, + 105, 32, 61, 32,105, 43, 49, 10,101,110,100, 10,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,102,117,110, 99, + 116,105,111,110, 32, 95, 67,108, 97,115,115, 32, 40,116, 41, + 10,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,116, 58, + 98,117,105,108,100,110, 97,109,101,115, 40, 41, 10, 97,112, + 112,101,110,100, 40,116, 41, 10,114,101,116,117,114,110, 32, + 116, 10,101,110,100, 10,102,117,110, 99,116,105,111,110, 32, + 67,108, 97,115,115, 32, 40,110, 44,112, 44, 98, 41, 10,108, + 111, 99, 97,108, 32, 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,112,125, 41, 10,112, + 117,115,104, 40, 99, 41, 10, 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, 10,112,111,112, 40, 41, + 10,101,110,100,32 + }; + if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) + lua_pcall(tolua_S,0,LUA_MULTRET,0); + } /* end of embedded lua code */ + + + { /* begin embedded lua code */ + static unsigned char B[] = { + 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, 61, 32, 34, 92, 48, 48, 53, 34, 10, 65, 78, 89, 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, + 77, 65, 83, 75, 32, 61, 32,123, 10,123, 69, 83, 67, 49, 44, + 32, 34, 92, 92, 39, 34, 44, 32, 34, 92, 92, 39, 34,125, 44, + 10,123, 69, 83, 67, 50, 44, 32, 39, 92, 92, 34, 39, 44, 32, + 39, 92, 92, 34, 39,125, 44, 10,123, 83, 84, 82, 49, 44, 32, + 34, 39, 34, 44, 32, 34, 39, 34,125, 44, 10,123, 83, 84, 82, + 50, 44, 32, 39, 34, 39, 44, 32, 39, 34, 39,125, 44, 10,123, + 83, 84, 82, 51, 44, 32, 34, 37, 91, 37, 91, 34, 44, 32, 34, + 91, 91, 34,125, 44, 10,123, 83, 84, 82, 52, 44, 32, 34, 37, + 93, 37, 93, 34, 44, 32, 34, 93, 93, 34,125, 44, 10,123, 82, + 69, 77, 32, 44, 32, 34, 37, 45, 37, 45, 34, 44, 32, 34, 45, + 45, 34,125, 44, 10,125, 10,102,117,110, 99,116,105,111,110, + 32,109, 97,115,107, 32, 40,115, 41, 10,102,111,114, 32,105, + 32, 61, 32, 49, 44,103,101,116,110, 40, 77, 65, 83, 75, 41, + 32,100,111, 10,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,101,110,100, 10,114,101,116, + 117,114,110, 32,115, 10,101,110,100, 10,102,117,110, 99,116, + 105,111,110, 32,117,110,109, 97,115,107, 32, 40,115, 41, 10, + 102,111,114, 32,105, 32, 61, 32, 49, 44,103,101,116,110, 40, + 77, 65, 83, 75, 41, 32,100,111, 10,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, 51, 93, 41, 10,101,110, + 100, 10,114,101,116,117,114,110, 32,115, 10,101,110,100, 10, + 102,117,110, 99,116,105,111,110, 32, 99,108,101, 97,110, 32, + 40,115, 41, 10,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, 32, 34, 32, 46, 46, 32,115, 32, 46, + 46, 32, 34, 32,101,110,100, 34, 10,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,114,101,116,117,114,110, 32,110,105, + 108, 10,101,110,100, 10,108,111, 99, 97,108, 32, 83, 32, 61, + 32, 34, 34, 10,115, 32, 61, 32,109, 97,115,107, 40,115, 41, + 10,119,104,105,108,101, 32, 49, 32,100,111, 10,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,105,102, 32, 98, + 32,116,104,101,110, 10, 83, 32, 61, 32, 83, 46, 46,115,116, + 114,115,117, 98, 40,115, 44, 49, 44, 98, 45, 49, 41, 10,115, + 32, 61, 32,115,116,114,115,117, 98, 40,115, 44, 98, 43, 49, + 41, 10,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,101, + 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44,100, 41, + 10, 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,115, 32, 61, 32, + 115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10,101, + 108,115,101,105,102, 32,100, 61, 61, 83, 84, 82, 51, 32,116, + 104,101,110, 10,101, 32, 61, 32,115,116,114,102,105,110,100, + 40,115, 44, 83, 84, 82, 52, 41, 10, 83, 32, 61, 32, 83, 46, + 46,100, 46, 46,115,116,114,115,117, 98, 40,115, 44, 49, 44, + 101, 41, 10,115, 32, 61, 32,115,116,114,115,117, 98, 40,115, + 44,101, 43, 49, 41, 10,101,108,115,101,105,102, 32,100, 61, + 61, 82, 69, 77, 32,116,104,101,110, 10,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,101,110, + 100, 10,101,108,115,101, 10, 83, 32, 61, 32, 83, 46, 46,115, + 10, 98,114,101, 97,107, 10,101,110,100, 10,101,110,100, 10, + 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, 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, 83, + 32, 61, 32,103,115,117, 98, 40, 83, 44, 34, 92,110, 43, 34, + 44, 34, 92,110, 34, 41, 10, 83, 32, 61, 32,117,110,109, 97, + 115,107, 40, 83, 41, 10,114,101,116,117,114,110, 32, 83, 10, + 101,110,100,32 + }; + if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) + lua_pcall(tolua_S,0,LUA_MULTRET,0); + } /* end of embedded lua code */ + + + { /* begin embedded lua code */ + static unsigned char B[] = { + 10,102,117,110, 99,116,105,111,110, 32,100,111,105,116, 32, + 40, 41, 10,105,102, 32,110,111,116, 32,102,108, 97,103,115, + 46,110, 32,116,104,101,110, 10,105,102, 32,102,108, 97,103, + 115, 46,102, 32,116,104,101,110, 10,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, 34, 44, 34, 34, 41, 10,101,108, + 115,101, 10,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,101,110,100, 10,101,110,100, + 10,108,111, 99, 97,108, 32,112, 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,105,102, 32,102,108, 97,103,115, 46, + 112, 32,116,104,101,110, 10,114,101,116,117,114,110, 10,101, + 110,100, 10,105,102, 32,102,108, 97,103,115, 46,111, 32,116, + 104,101,110, 10,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,105,102, 32,110,111,116, 32,115,116, + 32,116,104,101,110, 10,101,114,114,111,114, 40, 39, 35, 39, + 46, 46,109,115,103, 41, 10,101,110,100, 10,101,110,100, 10, + 112, 58,100,101, 99,108,116,121,112,101, 40, 41, 10,105,102, + 32,102,108, 97,103,115, 46, 80, 32,116,104,101,110, 10,112, + 58,112,114,105,110,116, 40, 41, 10,101,108,115,101, 10,112, + 58,112,114,101, 97,109, 98,108,101, 40, 41, 10,112, 58,115, + 117,112, 99,111,100,101, 40, 41, 10,112, 58,114,101,103,105, + 115,116,101,114, 40, 41, 10,101,110,100, 10,105,102, 32,102, + 108, 97,103,115, 46,111, 32,116,104,101,110, 10,119,114,105, + 116,101,116,111, 40, 41, 10,101,110,100, 10,105,102, 32,110, + 111,116, 32,102,108, 97,103,115, 46, 80, 32,116,104,101,110, + 10,105,102, 32,102,108, 97,103,115, 46, 72, 32,116,104,101, + 110, 10,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,105,102, 32,110,111,116, 32,115,116, 32,116, + 104,101,110, 10,101,114,114,111,114, 40, 39, 35, 39, 46, 46, + 109,115,103, 41, 10,101,110,100, 10,112, 58,104,101, 97,100, + 101,114, 40, 41, 10,119,114,105,116,101,116,111, 40, 41, 10, + 101,110,100, 10,101,110,100, 10,101,110,100,32 + }; + if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) + lua_pcall(tolua_S,0,LUA_MULTRET,0); + } /* end of embedded lua code */ + + + { /* begin embedded lua code */ + 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, + 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,116,111,108,117, 97, 95,101, + 114,114,111,114, 40,109,115,103, 44,108, 97, 98,101,108, 41, + 10,101,110,100,32 + }; + if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) + lua_pcall(tolua_S,0,LUA_MULTRET,0); + } /* end of embedded lua code */ + + tolua_endmodule(tolua_S); + return 1; +} +/* Open tolua function */ +TOLUA_API int tolua_tolua_open (lua_State* tolua_S) +{ + lua_pushcfunction(tolua_S, luaopen_tolua); + lua_pushstring(tolua_S, "tolua"); + lua_call(tolua_S, 1, 0); + return 1; +} |