Added locking to SpriteBatch, and conf.lua.

This commit is contained in:
rude
2009-07-27 15:17:54 +02:00
parent 4f32377efa
commit 5c068db487
7 changed files with 396 additions and 248 deletions
+2 -2
View File
@@ -124,8 +124,8 @@ int main(int argc, char ** argv)
// which gets everything started.
// TODO: This is obviously test code.
//luaL_dofile(L, "../../src/scripts/boot.lua");
# include "scripts/boot.lua.h"
luaL_dofile(L, "../../src/scripts/boot.lua");
//# include "scripts/boot.lua.h"
lua_close(L);
+34 -9
View File
@@ -33,7 +33,7 @@ namespace graphics
namespace opengl
{
SpriteBatch::SpriteBatch(Image * image, int size, int usage)
: image(image), size(size), next(0), usage(usage)
: image(image), size(size), next(0), usage(usage), lockp(0)
{
image->retain();
@@ -92,17 +92,24 @@ namespace opengl
// Transform.
Matrix t;
t.translate(x, y);
t.scale(sx, sy);
t.rotate(a);
t.setTransformation(x, y, a, sx, sy, ox, oy);
t.transform(v, v, 4);
glBindBuffer(GL_ARRAY_BUFFER, vbo[0]);
glBufferSubData(GL_ARRAY_BUFFER, (next*4)*sizeof(vertex), sizeof(vertex)*4, v);
glBindBuffer(GL_ARRAY_BUFFER, 0);
if(lockp != 0)
{
// Copy into mapped memory if buffer is locked.
memcpy(lockp + (next*4), v, sizeof(vertex)*4);
}
else
{
// ... use glBufferSubData otherwise.
glBindBuffer(GL_ARRAY_BUFFER, vbo[0]);
glBufferSubData(GL_ARRAY_BUFFER, (next*4)*sizeof(vertex), sizeof(vertex)*4, v);
glBindBuffer(GL_ARRAY_BUFFER, 0);
}
// Increment counter.
next++;
next++;
}
}
@@ -112,10 +119,28 @@ namespace opengl
next = 0;
}
void * SpriteBatch::lock()
{
glBindBuffer(GL_ARRAY_BUFFER, vbo[0]);
lockp = (vertex *)glMapBuffer(GL_ARRAY_BUFFER, GL_READ_WRITE);
return lockp;
}
void SpriteBatch::unlock()
{
glUnmapBuffer(GL_ARRAY_BUFFER);
lockp = 0;
glBindBuffer(GL_ARRAY_BUFFER, 0);
}
void SpriteBatch::draw(float x, float y, float angle, float sx, float sy, float ox, float oy) const
{
static Matrix t;
glPushMatrix();
glTranslatef(x, y, 0);
t.setTransformation(x, y, angle, sx, sy, ox, oy);
glMultMatrixf((const GLfloat*)t.getElements());
image->bind();
@@ -68,6 +68,9 @@ namespace opengl
int usage;
int gl_usage;
// If the buffer is locked, this pointer is nonzero.
vertex * lockp;
public:
enum UsageHint
@@ -85,6 +88,9 @@ namespace opengl
//void addf(float x, float y, float a, float sx, float sy, float ox, float oy, Frame * frame);
void clear();
void * lock();
void unlock();
// Implements Drawable.
void draw(float x, float y, float angle, float sx, float sy, float ox, float oy) const;
@@ -52,9 +52,25 @@ namespace opengl
return 0;
}
int _wrap_SpriteBatch_lock(lua_State * L)
{
SpriteBatch * t = luax_checkspritebatch(L, 1);
lua_pushlightuserdata(L, t->lock());
return 1;
}
int _wrap_SpriteBatch_unlock(lua_State * L)
{
SpriteBatch * t = luax_checkspritebatch(L, 1);
t->unlock();
return 0;
}
static const luaL_Reg wrap_SpriteBatch_functions[] = {
{ "add", _wrap_SpriteBatch_add },
{ "clear", _wrap_SpriteBatch_clear },
{ "lock", _wrap_SpriteBatch_lock },
{ "unlock", _wrap_SpriteBatch_unlock },
{ 0, 0 }
};
@@ -33,6 +33,8 @@ namespace opengl
SpriteBatch * luax_checkspritebatch(lua_State * L, int idx);
int _wrap_SpriteBatch_add(lua_State * L);
int _wrap_SpriteBatch_clear(lua_State * L);
int _wrap_SpriteBatch_lock(lua_State * L);
int _wrap_SpriteBatch_unlock(lua_State * L);
int wrap_SpriteBatch_open(lua_State * L);
} // opengl
+76 -38
View File
@@ -5,13 +5,6 @@ if not love then love = {} end
-- Used for setup:
love.path = {}
function love.insmod(name, provides)
if love.__mod[provides] and love.__mod[provides][name] then
love.__mod[provides][name].open()
print("Opened " .. provides .. " module " .. name .. ".")
end
end
-- Replace any \ with /.
function love.path.normalslashes(p)
return string.gsub(p, "\\", "/")
@@ -94,46 +87,89 @@ love.handlers = {
end,
}
function love.init()
-- This can't be overriden.
function love.boot()
print("boot")
-- This is absolutely needed.
love.filesystem = require("love.filesystem")
-- Prints the arguments passes to the app.
if love.__args then
for i,v in pairs(love.__args) do
print(i,v)
end
end
love.filesystem = require("love.filesystem")
love.event = require("love.event")
love.keyboard = require("love.keyboard")
love.mouse = require("love.mouse")
love.timer = require("love.timer")
love.joystick = require("love.joystick")
love.image = require("love.image")
love.graphics = require("love.graphics")
love.audio = require("love.audio")
love.physics = require("love.physics")
love.sound = require("love.sound")
love.native = require("love.native")
end
-- Sets the source for the game.
if love.__args[1] and love.__args[1] ~= "" then
love.filesystem.setIdentity("love2")
love.filesystem.setSource(love.path.getfull(love.__args[1]))
require("main.lua")
end
end
love.run()
function love.init()
-- Create default configuration settings.
local c = {
title = "Untitled",
author = "Unnamed",
version = 0,
screen = {
width = 800,
height = 600,
fullscreen = false,
vsync = true,
fsaa = 0,
},
modules = {
event = true,
keyboard = true,
mouse = true,
timer = true,
joystick = true,
image = true,
graphics = true,
audio = true,
physics = true,
sound = true,
native = true,
},
}
-- If config file exists, load it and allow it to update config table.
if love.filesystem.exists("conf.lua") then
require("conf.lua")
love.conf(c)
end
if c.modules.event then love.event = require("love.event") end
if c.modules.keyboard then love.keyboard = require("love.keyboard") end
if c.modules.mouse then love.mouse = require("love.mouse") end
if c.modules.timer then love.timer = require("love.timer") end
if c.modules.joystick then love.joystick = require("love.joystick") end
if c.modules.image then love.image = require("love.image") end
if c.modules.graphics then love.graphics = require("love.graphics") end
if c.modules.audio then love.audio = require("love.audio") end
if c.modules.physics then love.physics = require("love.physics") end
if c.modules.sound then love.sound = require("love.sound") end
if c.modules.native then love.native = require("love.native") end
-- Setup screen here.
if c.screen and c.modules.graphics then
if love.graphics.checkMode(c.screen.width, c.screen.height, c.screen.fullscreen) then
love.graphics.setMode(c.screen.width, c.screen.height, c.screen.fullscreen, c.screen.vsync, c.screen.fsaa)
end
love.graphics.setCaption(c.title)
end
if love.filesystem.exists("main.lua") then require("main.lua") end
end
function love.run()
-- CONFIG BEGINS
if love.graphics.checkMode(800, 600, false) then
love.graphics.setMode(800, 600, false, false)
end
-- CONFIG ENDS
if love.load then love.load() end
-- Main loop time.
@@ -180,10 +216,12 @@ end
-- The root of all calls.
-----------------------------------------------------------
local result = xpcall(love.init,
function (msg)
print(msg, debug.traceback())
end)
function error_printer(msg)
print("boot", msg, debug.traceback())
end
result = xpcall(love.boot, error_printer)
result = xpcall(love.init, error_printer)
result = xpcall(love.run, error_printer)
print("Done.")
+260 -199
View File
@@ -10,216 +10,277 @@ static const unsigned char B1[]={
116, 32,108,111,118,101, 32,116,104,101,110, 32,108,111,118,101, 32, 61, 32,123,
125, 32,101,110,100, 13, 10, 13, 10, 45, 45, 32, 85,115,101,100, 32,102,111,114,
32,115,101,116,117,112, 58, 13, 10,108,111,118,101, 46,112, 97,116,104, 32, 61,
32,123,125, 13, 10, 13, 10,102,117,110, 99,116,105,111,110, 32,108,111,118,101,
46,105,110,115,109,111,100, 40,110, 97,109,101, 44, 32,112,114,111,118,105,100,
101,115, 41, 13, 10, 9,105,102, 32,108,111,118,101, 46, 95, 95,109,111,100, 91,
112,114,111,118,105,100,101,115, 93, 32, 97,110,100, 32,108,111,118,101, 46, 95,
95,109,111,100, 91,112,114,111,118,105,100,101,115, 93, 91,110, 97,109,101, 93,
32,116,104,101,110, 13, 10, 9, 9,108,111,118,101, 46, 95, 95,109,111,100, 91,
112,114,111,118,105,100,101,115, 93, 91,110, 97,109,101, 93, 46,111,112,101,110,
40, 41, 13, 10, 9, 9,112,114,105,110,116, 40, 34, 79,112,101,110,101,100, 32,
34, 32, 46, 46, 32,112,114,111,118,105,100,101,115, 32, 46, 46, 32, 34, 32,109,
111,100,117,108,101, 32, 34, 32, 46, 46, 32,110, 97,109,101, 32, 46, 46, 32, 34,
46, 34, 41, 13, 10, 9,101,110,100, 13, 10,101,110,100, 13, 10, 13, 10, 45, 45,
32, 82,101,112,108, 97, 99,101, 32, 97,110,121, 32, 92, 32,119,105,116,104, 32,
47, 46, 13, 10,102,117,110, 99,116,105,111,110, 32,108,111,118,101, 46,112, 97,
32,123,125, 13, 10, 13, 10, 45, 45, 32, 82,101,112,108, 97, 99,101, 32, 97,110,
121, 32, 92, 32,119,105,116,104, 32, 47, 46, 13, 10,102,117,110, 99,116,105,111,
110, 32,108,111,118,101, 46,112, 97,116,104, 46,110,111,114,109, 97,108,115,108,
97,115,104,101,115, 40,112, 41, 13, 10, 9,114,101,116,117,114,110, 32,115,116,
114,105,110,103, 46,103,115,117, 98, 40,112, 44, 32, 34, 92, 92, 34, 44, 32, 34,
47, 34, 41, 13, 10,101,110,100, 13, 10, 13, 10, 45, 45, 32, 77, 97,107,101,115,
32,115,117,114,101, 32,116,104,101,114,101, 32,105,115, 32, 97, 32,115,108, 97,
115,104, 32, 97,116, 32,116,104,101, 32,101,110,100, 13, 10, 45, 45, 32,111,102,
32, 97, 32,112, 97,116,104, 46, 13, 10,102,117,110, 99,116,105,111,110, 32,108,
111,118,101, 46,112, 97,116,104, 46,101,110,100,115,108, 97,115,104, 40,112, 41,
13, 10, 9,105,102, 32,115,116,114,105,110,103, 46,115,117, 98, 40,112, 44, 32,
115,116,114,105,110,103, 46,108,101,110, 40,112, 41, 45, 49, 41, 32,126, 61, 32,
34, 47, 34, 32,116,104,101,110, 13, 10, 9, 9,114,101,116,117,114,110, 32,112,
32, 46, 46, 32, 34, 47, 34, 13, 10, 9,101,108,115,101, 13, 10, 9, 9,114,101,
116,117,114,110, 32,112, 13, 10, 9,101,110,100, 13, 10,101,110,100, 13, 10, 13,
10, 45, 45, 32, 67,104,101, 99,107,115, 32,119,104,101,116,104,101,114, 32, 97,
32,112, 97,116,104, 32,105,115, 32, 97, 98,115,111,108,117,116,101, 32,111,114,
32,110,111,116, 46, 13, 10,102,117,110, 99,116,105,111,110, 32,108,111,118,101,
46,112, 97,116,104, 46, 97, 98,115, 40,112, 41, 13, 10, 13, 10, 9,108,111, 99,
97,108, 32,116,109,112, 32, 61, 32,108,111,118,101, 46,112, 97,116,104, 46,110,
111,114,109, 97,108,115,108, 97,115,104,101,115, 40,112, 41, 13, 10, 13, 10, 9,
45, 45, 32, 80, 97,116,104, 32,105,115, 32, 97, 98,115,111,108,117,116,101, 32,
105,102, 32,105,116, 32,115,116, 97,114,116,115, 32,119,105,116,104, 32, 97, 32,
34, 47, 34, 46, 13, 10, 9,105,102, 32,115,116,114,105,110,103, 46,102,105,110,
100, 40,116,109,112, 44, 32, 34, 47, 34, 41, 32, 61, 61, 32, 49, 32,116,104,101,
110, 13, 10, 9, 9,114,101,116,117,114,110, 32,116,114,117,101, 13, 10, 9,101,
110,100, 13, 10, 13, 10, 9, 45, 45, 32, 80, 97,116,104, 32,105,115, 32, 97, 98,
115,111,108,117,116,101, 32,105,102, 32,105,116, 32,115,116, 97,114,116,115, 32,
119,105,116,104, 32, 97, 32, 13, 10, 9, 45, 45, 32,108,101,116,116,101,114, 32,
102,111,108,108,111,119,101,100, 32, 98,121, 32, 97, 32, 99,111,108,111,110, 46,
13, 10, 9,105,102, 32,115,116,114,105,110,103, 46,102,105,110,100, 40,116,109,
112, 44, 32, 34, 37, 97, 58, 34, 41, 32, 61, 61, 32, 49, 32,116,104,101,110, 13,
10, 9, 9,114,101,116,117,114,110, 32,116,114,117,101, 13, 10, 9,101,110,100,
13, 10, 9, 13, 10, 9, 45, 45, 32, 82,101,108, 97,116,105,118,101, 46, 13, 10,
9,114,101,116,117,114,110, 32,102, 97,108,115,101, 13, 10, 13, 10,101,110,100,
13, 10, 13, 10, 45, 45, 32, 67,111,110,118,101,114,116,115, 32, 97,110,121, 32,
112, 97,116,104, 32,105,110,116,111, 32, 97, 32,102,117,108,108, 32,112, 97,116,
104, 46, 13, 10,102,117,110, 99,116,105,111,110, 32,108,111,118,101, 46,112, 97,
116,104, 46,103,101,116,102,117,108,108, 40,112, 41, 13, 10, 13, 10, 9,105,102,
32,108,111,118,101, 46,112, 97,116,104, 46, 97, 98,115, 40,112, 41, 32,116,104,
101,110, 13, 10, 9, 9,114,101,116,117,114,110, 32,108,111,118,101, 46,112, 97,
116,104, 46,110,111,114,109, 97,108,115,108, 97,115,104,101,115, 40,112, 41, 13,
10, 9,114,101,116,117,114,110, 32,115,116,114,105,110,103, 46,103,115,117, 98,
40,112, 44, 32, 34, 92, 92, 34, 44, 32, 34, 47, 34, 41, 13, 10,101,110,100, 13,
10, 13, 10, 45, 45, 32, 77, 97,107,101,115, 32,115,117,114,101, 32,116,104,101,
114,101, 32,105,115, 32, 97, 32,115,108, 97,115,104, 32, 97,116, 32,116,104,101,
32,101,110,100, 13, 10, 45, 45, 32,111,102, 32, 97, 32,112, 97,116,104, 46, 13,
10,102,117,110, 99,116,105,111,110, 32,108,111,118,101, 46,112, 97,116,104, 46,
101,110,100,115,108, 97,115,104, 40,112, 41, 13, 10, 9,105,102, 32,115,116,114,
105,110,103, 46,115,117, 98, 40,112, 44, 32,115,116,114,105,110,103, 46,108,101,
110, 40,112, 41, 45, 49, 41, 32,126, 61, 32, 34, 47, 34, 32,116,104,101,110, 13,
10, 9, 9,114,101,116,117,114,110, 32,112, 32, 46, 46, 32, 34, 47, 34, 13, 10,
9,101,108,115,101, 13, 10, 9, 9,114,101,116,117,114,110, 32,112, 13, 10, 9,
101,110,100, 13, 10,101,110,100, 13, 10, 13, 10, 45, 45, 32, 67,104,101, 99,107,
115, 32,119,104,101,116,104,101,114, 32, 97, 32,112, 97,116,104, 32,105,115, 32,
97, 98,115,111,108,117,116,101, 32,111,114, 32,110,111,116, 46, 13, 10,102,117,
110, 99,116,105,111,110, 32,108,111,118,101, 46,112, 97,116,104, 46, 97, 98,115,
40,112, 41, 13, 10, 13, 10, 9,108,111, 99, 97,108, 32,116,109,112, 32, 61, 32,
108,111,118,101, 46,112, 97,116,104, 46,110,111,114,109, 97,108,115,108, 97,115,
104,101,115, 40,112, 41, 13, 10, 13, 10, 9, 45, 45, 32, 80, 97,116,104, 32,105,
115, 32, 97, 98,115,111,108,117,116,101, 32,105,102, 32,105,116, 32,115,116, 97,
114,116,115, 32,119,105,116,104, 32, 97, 32, 34, 47, 34, 46, 13, 10, 9,105,102,
32,115,116,114,105,110,103, 46,102,105,110,100, 40,116,109,112, 44, 32, 34, 47,
34, 41, 32, 61, 61, 32, 49, 32,116,104,101,110, 13, 10, 9, 9,114,101,116,117,
114,110, 32,116,114,117,101, 13, 10, 9,101,110,100, 13, 10, 13, 10, 9, 45, 45,
32, 80, 97,116,104, 32,105,115, 32, 97, 98,115,111,108,117,116,101, 32,105,102,
32,105,116, 32,115,116, 97,114,116,115, 32,119,105,116,104, 32, 97, 32, 13, 10,
9, 45, 45, 32,108,101,116,116,101,114, 32,102,111,108,108,111,119,101,100, 32,
98,121, 32, 97, 32, 99,111,108,111,110, 46, 13, 10, 9,105,102, 32,115,116,114,
105,110,103, 46,102,105,110,100, 40,116,109,112, 44, 32, 34, 37, 97, 58, 34, 41,
32, 61, 61, 32, 49, 32,116,104,101,110, 13, 10, 9, 9,114,101,116,117,114,110,
32,116,114,117,101, 13, 10, 9,101,110,100, 13, 10, 9, 13, 10, 9, 45, 45, 32,
82,101,108, 97,116,105,118,101, 46, 13, 10, 9,114,101,116,117,114,110, 32,102,
97,108,115,101, 13, 10, 13, 10,101,110,100, 13, 10, 13, 10, 45, 45, 32, 67,111,
110,118,101,114,116,115, 32, 97,110,121, 32,112, 97,116,104, 32,105,110,116,111,
32, 97, 32,102,117,108,108, 32,112, 97,116,104, 46, 13, 10,102,117,110, 99,116,
105,111,110, 32,108,111,118,101, 46,112, 97,116,104, 46,103,101,116,102,117,108,
108, 40,112, 41, 13, 10, 13, 10, 9,105,102, 32,108,111,118,101, 46,112, 97,116,
104, 46, 97, 98,115, 40,112, 41, 32,116,104,101,110, 13, 10, 9, 9,114,101,116,
117,114,110, 32,108,111,118,101, 46,112, 97,116,104, 46,110,111,114,109, 97,108,
115,108, 97,115,104,101,115, 40,112, 41, 13, 10, 9,101,110,100, 13, 10, 13, 10,
9,108,111, 99, 97,108, 32, 99,119,100, 32, 61, 32,108,111,118,101, 46,102,105,
108,101,115,121,115,116,101,109, 46,103,101,116, 87,111,114,107,105,110,103, 68,
105,114,101, 99,116,111,114,121, 40, 41, 13, 10, 9, 99,119,100, 32, 61, 32,108,
111,118,101, 46,112, 97,116,104, 46,110,111,114,109, 97,108,115,108, 97,115,104,
101,115, 40, 99,119,100, 41, 13, 10, 9, 99,119,100, 32, 61, 32,108,111,118,101,
46,112, 97,116,104, 46,101,110,100,115,108, 97,115,104, 40, 99,119,100, 41, 13,
10, 9, 13, 10, 9, 45, 45, 32, 67,111,110,115,116,114,117, 99,116, 32, 97, 32,
102,117,108,108, 32,112, 97,116,104, 46, 13, 10, 9,114,101,116,117,114,110, 32,
99,119,100, 32, 46, 46, 32,108,111,118,101, 46,112, 97,116,104, 46,110,111,114,
109, 97,108,115,108, 97,115,104,101,115, 40,112, 41, 13, 10, 13, 10,101,110,100,
13, 10, 13, 10, 45, 45, 32, 82,101,116,117,114,110,115, 32,116,104,101, 32,108,
101, 97,102, 32,111,102, 32, 97, 32,102,117,108,108, 32,112, 97,116,104, 46, 13,
10,102,117,110, 99,116,105,111,110, 32,108,111,118,101, 46,112, 97,116,104, 46,
108,101, 97,102, 40,112, 41, 13, 10, 13, 10,101,110,100, 13, 10, 13, 10, 45, 45,
32, 83,116, 97,110,100, 97,114,100, 32, 99, 97,108,108, 98, 97, 99,107, 32,104,
97,110,100,108,101,114,115, 46, 13, 10,108,111,118,101, 46,104, 97,110,100,108,
101,114,115, 32, 61, 32,123, 13, 10, 9, 91,108,111,118,101, 46,101,118,101,110,
116, 95,107,101,121,112,114,101,115,115,101,100, 93, 32, 61, 32,102,117,110, 99,
116,105,111,110, 32, 40, 98, 44, 32,117, 41, 13, 10, 9, 9,105,102, 32,108,111,
118,101, 46,107,101,121,112,114,101,115,115,101,100, 32,116,104,101,110, 32,108,
111,118,101, 46,107,101,121,112,114,101,115,115,101,100, 40, 98, 44, 32,117, 41,
32,101,110,100, 13, 10, 9,101,110,100, 44, 13, 10, 9, 91,108,111,118,101, 46,
101,118,101,110,116, 95,107,101,121,114,101,108,101, 97,115,101,100, 93, 32, 61,
32,102,117,110, 99,116,105,111,110, 32, 40, 98, 41, 13, 10, 9, 9,105,102, 32,
108,111,118,101, 46,107,101,121,114,101,108,101, 97,115,101,100, 32,116,104,101,
110, 32,108,111,118,101, 46,107,101,121,114,101,108,101, 97,115,101,100, 40, 98,
41, 32,101,110,100, 13, 10, 9,101,110,100, 44, 13, 10, 9, 91,108,111,118,101,
46,101,118,101,110,116, 95,109,111,117,115,101,112,114,101,115,115,101,100, 93,
32, 61, 32,102,117,110, 99,116,105,111,110, 32, 40,120, 44,121, 44, 98, 41, 13,
10, 9, 9,105,102, 32,108,111,118,101, 46,109,111,117,115,101,112,114,101,115,
115,101,100, 32,116,104,101,110, 32,108,111,118,101, 46,109,111,117,115,101,112,
114,101,115,115,101,100, 40,120, 44,121, 44, 98, 41, 32,101,110,100, 13, 10, 9,
101,110,100, 44, 13, 10, 9, 91,108,111,118,101, 46,101,118,101,110,116, 95,109,
111,117,115,101,114,101,108,101, 97,115,101,100, 93, 32, 61, 32,102,117,110, 99,
116,105,111,110, 32, 40,120, 44,121, 44, 98, 41, 13, 10, 9, 9,105,102, 32,108,
111,118,101, 46,109,111,117,115,101,114,101,108,101, 97,115,101,100, 32,116,104,
101,110, 32,108,111,118,101, 46,109,111,117,115,101,114,101,108,101, 97,115,101,
100, 40,120, 44,121, 44, 98, 41, 32,101,110,100, 13, 10, 9,101,110,100, 44, 13,
10, 9, 91,108,111,118,101, 46,101,118,101,110,116, 95,106,111,121,115,116,105,
99,107,112,114,101,115,115,101,100, 93, 32, 61, 32,102,117,110, 99,116,105,111,
110, 32, 40,106, 44, 98, 41, 13, 10, 9, 9,105,102, 32,108,111,118,101, 46,106,
111,121,115,116,105, 99,107,112,114,101,115,115,101,100, 32,116,104,101,110, 32,
108,111,118,101, 46,106,111,121,115,116,105, 99,107,112,114,101,115,115,101,100,
40,106, 44, 98, 41, 32,101,110,100, 13, 10, 9,101,110,100, 44, 13, 10, 9, 91,
108,111,118,101, 46,101,118,101,110,116, 95,106,111,121,115,116,105, 99,107,114,
101,108,101, 97,115,101,100, 93, 32, 61, 32,102,117,110, 99,116,105,111,110, 32,
40,106, 44, 98, 41, 13, 10, 9, 9,105,102, 32,108,111,118,101, 46,106,111,121,
115,116,105, 99,107,114,101,108,101, 97,115,101,100, 32,116,104,101,110, 32,108,
111,118,101, 46,106,111,121,115,116,105, 99,107,114,101,108,101, 97,115,101,100,
40,106, 44, 98, 41, 32,101,110,100, 13, 10, 9,101,110,100, 44, 13, 10, 9, 91,
108,111,118,101, 46,101,118,101,110,116, 95,113,117,105,116, 93, 32, 61, 32,102,
117,110, 99,116,105,111,110, 32, 40, 41, 13, 10, 9, 9,114,101,116,117,114,110,
13, 10, 9,101,110,100, 44, 13, 10,125, 13, 10, 13, 10,102,117,110, 99,116,105,
111,110, 32,108,111,118,101, 46,105,110,105,116, 40, 41, 13, 10, 13, 10, 9,105,
102, 32,108,111,118,101, 46, 95, 95, 97,114,103,115, 32,116,104,101,110, 13, 10,
9, 9,102,111,114, 32,105, 44,118, 32,105,110, 32,112, 97,105,114,115, 40,108,
111,118,101, 46, 95, 95, 97,114,103,115, 41, 32,100,111, 13, 10, 9, 9, 9,112,
114,105,110,116, 40,105, 44,118, 41, 13, 10, 9, 9,101,110,100, 13, 10, 9,101,
110,100, 13, 10, 13, 10, 9,108,111,118,101, 46,102,105,108,101,115,121,115,116,
101,109, 32, 61, 32,114,101,113,117,105,114,101, 40, 34,108,111,118,101, 46,102,
105,108,101,115,121,115,116,101,109, 34, 41, 13, 10, 9,108,111,118,101, 46,101,
118,101,110,116, 32, 61, 32,114,101,113,117,105,114,101, 40, 34,108,111,118,101,
46,101,118,101,110,116, 34, 41, 13, 10, 9,108,111,118,101, 46,107,101,121, 98,
111, 97,114,100, 32, 61, 32,114,101,113,117,105,114,101, 40, 34,108,111,118,101,
46,107,101,121, 98,111, 97,114,100, 34, 41, 13, 10, 9,108,111,118,101, 46,109,
111,117,115,101, 32, 61, 32,114,101,113,117,105,114,101, 40, 34,108,111,118,101,
46,109,111,117,115,101, 34, 41, 13, 10, 9,108,111,118,101, 46,116,105,109,101,
114, 32, 61, 32,114,101,113,117,105,114,101, 40, 34,108,111,118,101, 46,116,105,
109,101,114, 34, 41, 13, 10, 9,108,111,118,101, 46,106,111,121,115,116,105, 99,
107, 32, 61, 32,114,101,113,117,105,114,101, 40, 34,108,111,118,101, 46,106,111,
121,115,116,105, 99,107, 34, 41, 13, 10, 9,108,111,118,101, 46,105,109, 97,103,
101, 32, 61, 32,114,101,113,117,105,114,101, 40, 34,108,111,118,101, 46,105,109,
97,103,101, 34, 41, 13, 10, 9,108,111,118,101, 46,103,114, 97,112,104,105, 99,
115, 32, 61, 32,114,101,113,117,105,114,101, 40, 34,108,111,118,101, 46,103,114,
97,112,104,105, 99,115, 34, 41, 13, 10, 9,108,111,118,101, 46, 97,117,100,105,
111, 32, 61, 32,114,101,113,117,105,114,101, 40, 34,108,111,118,101, 46, 97,117,
100,105,111, 34, 41, 13, 10, 9,108,111,118,101, 46,112,104,121,115,105, 99,115,
32, 61, 32,114,101,113,117,105,114,101, 40, 34,108,111,118,101, 46,112,104,121,
115,105, 99,115, 34, 41, 13, 10, 9,108,111,118,101, 46,115,111,117,110,100, 32,
61, 32,114,101,113,117,105,114,101, 40, 34,108,111,118,101, 46,115,111,117,110,
100, 34, 41, 13, 10, 9,108,111,118,101, 46,110, 97,116,105,118,101, 32, 61, 32,
114,101,113,117,105,114,101, 40, 34,108,111,118,101, 46,110, 97,116,105,118,101,
34, 41, 13, 10, 13, 10, 9,105,102, 32,108,111,118,101, 46, 95, 95, 97,114,103,
115, 91, 49, 93, 32, 97,110,100, 32,108,111,118,101, 46, 95, 95, 97,114,103,115,
91, 49, 93, 32,126, 61, 32, 34, 34, 32,116,104,101,110, 13, 10, 9, 9,108,111,
118,101, 46,102,105,108,101,115,121,115,116,101,109, 46,115,101,116, 73,100,101,
110,116,105,116,121, 40, 34,108,111,118,101, 50, 34, 41, 13, 10, 9, 9,108,111,
118,101, 46,102,105,108,101,115,121,115,116,101,109, 46,115,101,116, 83,111,117,
114, 99,101, 40,108,111,118,101, 46,112, 97,116,104, 46,103,101,116,102,117,108,
108, 40,108,111,118,101, 46, 95, 95, 97,114,103,115, 91, 49, 93, 41, 41, 13, 10,
9, 9,114,101,113,117,105,114,101, 40, 34,109, 97,105,110, 46,108,117, 97, 34,
41, 13, 10, 9,101,110,100, 13, 10, 13, 10, 9,108,111,118,101, 46,114,117,110,
40, 41, 13, 10,101,110,100, 13, 10, 13, 10,102,117,110, 99,116,105,111,110, 32,
108,111,118,101, 46,114,117,110, 40, 41, 13, 10, 13, 10, 9, 45, 45, 32, 67, 79,
78, 70, 73, 71, 32, 66, 69, 71, 73, 78, 83, 13, 10, 13, 10, 9,105,102, 32,108,
111,118,101, 46,103,114, 97,112,104,105, 99,115, 46, 99,104,101, 99,107, 77,111,
100,101, 40, 56, 48, 48, 44, 32, 54, 48, 48, 44, 32,102, 97,108,115,101, 41, 32,
116,104,101,110, 13, 10, 9, 9,108,111,118,101, 46,103,114, 97,112,104,105, 99,
115, 46,115,101,116, 77,111,100,101, 40, 56, 48, 48, 44, 32, 54, 48, 48, 44, 32,
102, 97,108,115,101, 44, 32,102, 97,108,115,101, 41, 13, 10, 9,101,110,100, 13,
10, 13, 10, 9, 45, 45, 32, 67, 79, 78, 70, 73, 71, 32, 69, 78, 68, 83, 13, 10,
13, 10, 9,105,102, 32,108,111,118,101, 46,108,111, 97,100, 32,116,104,101,110,
32,108,111,118,101, 46,108,111, 97,100, 40, 41, 32,101,110,100, 13, 10, 13, 10,
9, 45, 45, 32, 77, 97,105,110, 32,108,111,111,112, 32,116,105,109,101, 46, 13,
10, 9,119,104,105,108,101, 32,116,114,117,101, 32,100,111, 13, 10, 9, 9,108,
111,118,101, 46,116,105,109,101,114, 46,115,116,101,112, 40, 41, 13, 10, 9, 9,
105,102, 32,108,111,118,101, 46,117,112,100, 97,116,101, 32,116,104,101,110, 32,
108,111,118,101, 46,117,112,100, 97,116,101, 40,108,111,118,101, 46,116,105,109,
101,114, 46,103,101,116, 68,101,108,116, 97, 40, 41, 41, 32,101,110,100, 13, 10,
9, 9,108,111,118,101, 46,103,114, 97,112,104,105, 99,115, 46, 99,108,101, 97,
114, 40, 41, 13, 10, 9, 9,105,102, 32,108,111,118,101, 46,100,114, 97,119, 32,
116,104,101,110, 32,108,111,118,101, 46,100,114, 97,119, 40, 41, 32,101,110,100,
13, 10, 13, 10, 9, 9, 45, 45, 32, 80,114,111, 99,101,115,115, 32,101,118,101,
110,116,115, 46, 13, 10, 9, 9,102,111,114, 32,101, 44, 97, 44, 98, 44, 99, 32,
105,110, 32,108,111,118,101, 46,101,118,101,110,116, 46,112,111,108,108, 40, 41,
32,100,111, 13, 10, 9, 9, 9,105,102, 32,101, 32, 61, 61, 32,108,111,118,101,
46,101,118,101,110,116, 95,113,117,105,116, 32,116,104,101,110, 32,114,101,116,
117,114,110, 32,101,110,100, 13, 10, 9, 9, 9,108,111,118,101, 46,104, 97,110,
100,108,101,114,115, 91,101, 93, 40, 97, 44, 98, 44, 99, 41, 13, 10, 9, 9,101,
110,100, 13, 10, 13, 10, 9, 9, 45, 45,108,111,118,101, 46,116,105,109,101,114,
46,115,108,101,101,112, 40, 49, 48, 41, 13, 10, 9, 9,108,111,118,101, 46,103,
114, 97,112,104,105, 99,115, 46,112,114,101,115,101,110,116, 40, 41, 13, 10, 13,
10, 9,101,110,100, 13, 10, 13, 10,101,110,100, 13, 10, 13, 10, 45, 45, 45, 45,
10, 9,101,110,100, 13, 10, 13, 10, 9,108,111, 99, 97,108, 32, 99,119,100, 32,
61, 32,108,111,118,101, 46,102,105,108,101,115,121,115,116,101,109, 46,103,101,
116, 87,111,114,107,105,110,103, 68,105,114,101, 99,116,111,114,121, 40, 41, 13,
10, 9, 99,119,100, 32, 61, 32,108,111,118,101, 46,112, 97,116,104, 46,110,111,
114,109, 97,108,115,108, 97,115,104,101,115, 40, 99,119,100, 41, 13, 10, 9, 99,
119,100, 32, 61, 32,108,111,118,101, 46,112, 97,116,104, 46,101,110,100,115,108,
97,115,104, 40, 99,119,100, 41, 13, 10, 9, 13, 10, 9, 45, 45, 32, 67,111,110,
115,116,114,117, 99,116, 32, 97, 32,102,117,108,108, 32,112, 97,116,104, 46, 13,
10, 9,114,101,116,117,114,110, 32, 99,119,100, 32, 46, 46, 32,108,111,118,101,
46,112, 97,116,104, 46,110,111,114,109, 97,108,115,108, 97,115,104,101,115, 40,
112, 41, 13, 10, 13, 10,101,110,100, 13, 10, 13, 10, 45, 45, 32, 82,101,116,117,
114,110,115, 32,116,104,101, 32,108,101, 97,102, 32,111,102, 32, 97, 32,102,117,
108,108, 32,112, 97,116,104, 46, 13, 10,102,117,110, 99,116,105,111,110, 32,108,
111,118,101, 46,112, 97,116,104, 46,108,101, 97,102, 40,112, 41, 13, 10, 13, 10,
101,110,100, 13, 10, 13, 10, 45, 45, 32, 83,116, 97,110,100, 97,114,100, 32, 99,
97,108,108, 98, 97, 99,107, 32,104, 97,110,100,108,101,114,115, 46, 13, 10,108,
111,118,101, 46,104, 97,110,100,108,101,114,115, 32, 61, 32,123, 13, 10, 9, 91,
108,111,118,101, 46,101,118,101,110,116, 95,107,101,121,112,114,101,115,115,101,
100, 93, 32, 61, 32,102,117,110, 99,116,105,111,110, 32, 40, 98, 44, 32,117, 41,
13, 10, 9, 9,105,102, 32,108,111,118,101, 46,107,101,121,112,114,101,115,115,
101,100, 32,116,104,101,110, 32,108,111,118,101, 46,107,101,121,112,114,101,115,
115,101,100, 40, 98, 44, 32,117, 41, 32,101,110,100, 13, 10, 9,101,110,100, 44,
13, 10, 9, 91,108,111,118,101, 46,101,118,101,110,116, 95,107,101,121,114,101,
108,101, 97,115,101,100, 93, 32, 61, 32,102,117,110, 99,116,105,111,110, 32, 40,
98, 41, 13, 10, 9, 9,105,102, 32,108,111,118,101, 46,107,101,121,114,101,108,
101, 97,115,101,100, 32,116,104,101,110, 32,108,111,118,101, 46,107,101,121,114,
101,108,101, 97,115,101,100, 40, 98, 41, 32,101,110,100, 13, 10, 9,101,110,100,
44, 13, 10, 9, 91,108,111,118,101, 46,101,118,101,110,116, 95,109,111,117,115,
101,112,114,101,115,115,101,100, 93, 32, 61, 32,102,117,110, 99,116,105,111,110,
32, 40,120, 44,121, 44, 98, 41, 13, 10, 9, 9,105,102, 32,108,111,118,101, 46,
109,111,117,115,101,112,114,101,115,115,101,100, 32,116,104,101,110, 32,108,111,
118,101, 46,109,111,117,115,101,112,114,101,115,115,101,100, 40,120, 44,121, 44,
98, 41, 32,101,110,100, 13, 10, 9,101,110,100, 44, 13, 10, 9, 91,108,111,118,
101, 46,101,118,101,110,116, 95,109,111,117,115,101,114,101,108,101, 97,115,101,
100, 93, 32, 61, 32,102,117,110, 99,116,105,111,110, 32, 40,120, 44,121, 44, 98,
41, 13, 10, 9, 9,105,102, 32,108,111,118,101, 46,109,111,117,115,101,114,101,
108,101, 97,115,101,100, 32,116,104,101,110, 32,108,111,118,101, 46,109,111,117,
115,101,114,101,108,101, 97,115,101,100, 40,120, 44,121, 44, 98, 41, 32,101,110,
100, 13, 10, 9,101,110,100, 44, 13, 10, 9, 91,108,111,118,101, 46,101,118,101,
110,116, 95,106,111,121,115,116,105, 99,107,112,114,101,115,115,101,100, 93, 32,
61, 32,102,117,110, 99,116,105,111,110, 32, 40,106, 44, 98, 41, 13, 10, 9, 9,
105,102, 32,108,111,118,101, 46,106,111,121,115,116,105, 99,107,112,114,101,115,
115,101,100, 32,116,104,101,110, 32,108,111,118,101, 46,106,111,121,115,116,105,
99,107,112,114,101,115,115,101,100, 40,106, 44, 98, 41, 32,101,110,100, 13, 10,
9,101,110,100, 44, 13, 10, 9, 91,108,111,118,101, 46,101,118,101,110,116, 95,
106,111,121,115,116,105, 99,107,114,101,108,101, 97,115,101,100, 93, 32, 61, 32,
102,117,110, 99,116,105,111,110, 32, 40,106, 44, 98, 41, 13, 10, 9, 9,105,102,
32,108,111,118,101, 46,106,111,121,115,116,105, 99,107,114,101,108,101, 97,115,
101,100, 32,116,104,101,110, 32,108,111,118,101, 46,106,111,121,115,116,105, 99,
107,114,101,108,101, 97,115,101,100, 40,106, 44, 98, 41, 32,101,110,100, 13, 10,
9,101,110,100, 44, 13, 10, 9, 91,108,111,118,101, 46,101,118,101,110,116, 95,
113,117,105,116, 93, 32, 61, 32,102,117,110, 99,116,105,111,110, 32, 40, 41, 13,
10, 9, 9,114,101,116,117,114,110, 13, 10, 9,101,110,100, 44, 13, 10,125, 13,
10, 13, 10, 45, 45, 32, 84,104,105,115, 32, 99, 97,110, 39,116, 32, 98,101, 32,
111,118,101,114,114,105,100,101,110, 46, 32, 13, 10,102,117,110, 99,116,105,111,
110, 32,108,111,118,101, 46, 98,111,111,116, 40, 41, 13, 10, 13, 10, 9,112,114,
105,110,116, 40, 34, 98,111,111,116, 34, 41, 13, 10, 13, 10, 9, 45, 45, 32, 84,
104,105,115, 32,105,115, 32, 97, 98,115,111,108,117,116,101,108,121, 32,110,101,
101,100,101,100, 46, 32, 13, 10, 9,108,111,118,101, 46,102,105,108,101,115,121,
115,116,101,109, 32, 61, 32,114,101,113,117,105,114,101, 40, 34,108,111,118,101,
46,102,105,108,101,115,121,115,116,101,109, 34, 41, 13, 10, 13, 10, 9, 45, 45,
32, 80,114,105,110,116,115, 32,116,104,101, 32, 97,114,103,117,109,101,110,116,
115, 32,112, 97,115,115,101,115, 32,116,111, 32,116,104,101, 32, 97,112,112, 46,
13, 10, 9,105,102, 32,108,111,118,101, 46, 95, 95, 97,114,103,115, 32,116,104,
101,110, 13, 10, 9, 9,102,111,114, 32,105, 44,118, 32,105,110, 32,112, 97,105,
114,115, 40,108,111,118,101, 46, 95, 95, 97,114,103,115, 41, 32,100,111, 13, 10,
9, 9, 9,112,114,105,110,116, 40,105, 44,118, 41, 13, 10, 9, 9,101,110,100,
13, 10, 9,101,110,100, 9, 13, 10, 9, 13, 10, 9, 45, 45, 32, 83,101,116,115,
32,116,104,101, 32,115,111,117,114, 99,101, 32,102,111,114, 32,116,104,101, 32,
103, 97,109,101, 46, 13, 10, 9,105,102, 32,108,111,118,101, 46, 95, 95, 97,114,
103,115, 91, 49, 93, 32, 97,110,100, 32,108,111,118,101, 46, 95, 95, 97,114,103,
115, 91, 49, 93, 32,126, 61, 32, 34, 34, 32,116,104,101,110, 13, 10, 9, 9,108,
111,118,101, 46,102,105,108,101,115,121,115,116,101,109, 46,115,101,116, 83,111,
117,114, 99,101, 40,108,111,118,101, 46,112, 97,116,104, 46,103,101,116,102,117,
108,108, 40,108,111,118,101, 46, 95, 95, 97,114,103,115, 91, 49, 93, 41, 41, 13,
10, 9,101,110,100, 13, 10, 9, 13, 10,101,110,100, 13, 10, 13, 10,102,117,110,
99,116,105,111,110, 32,108,111,118,101, 46,105,110,105,116, 40, 41, 13, 10, 13,
10, 9, 45, 45, 32, 67,114,101, 97,116,101, 32,100,101,102, 97,117,108,116, 32,
99,111,110,102,105,103,117,114, 97,116,105,111,110, 32,115,101,116,116,105,110,
103,115, 46, 13, 10, 9,108,111, 99, 97,108, 32, 99, 32, 61, 32,123, 13, 10, 9,
9,116,105,116,108,101, 32, 61, 32, 34, 85,110,116,105,116,108,101,100, 34, 44,
13, 10, 9, 9, 97,117,116,104,111,114, 32, 61, 32, 34, 85,110,110, 97,109,101,
100, 34, 44, 13, 10, 9, 9,118,101,114,115,105,111,110, 32, 61, 32, 48, 44, 13,
10, 9, 9,115, 99,114,101,101,110, 32, 61, 32,123, 13, 10, 9, 9, 9,119,105,
100,116,104, 32, 61, 32, 56, 48, 48, 44, 13, 10, 9, 9, 9,104,101,105,103,104,
116, 32, 61, 32, 54, 48, 48, 44, 13, 10, 9, 9, 9,102,117,108,108,115, 99,114,
101,101,110, 32, 61, 32,102, 97,108,115,101, 44, 13, 10, 9, 9, 9,118,115,121,
110, 99, 32, 61, 32,116,114,117,101, 44, 13, 10, 9, 9, 9,102,115, 97, 97, 32,
61, 32, 48, 44, 13, 10, 9, 9,125, 44, 32, 13, 10, 9, 9,109,111,100,117,108,
101,115, 32, 61, 32,123, 13, 10, 9, 9, 9,101,118,101,110,116, 32, 61, 32,116,
114,117,101, 44, 13, 10, 9, 9, 9,107,101,121, 98,111, 97,114,100, 32, 61, 32,
116,114,117,101, 44, 13, 10, 9, 9, 9,109,111,117,115,101, 32, 61, 32,116,114,
117,101, 44, 13, 10, 9, 9, 9,116,105,109,101,114, 32, 61, 32,116,114,117,101,
44, 13, 10, 9, 9, 9,106,111,121,115,116,105, 99,107, 32, 61, 32,116,114,117,
101, 44, 13, 10, 9, 9, 9,105,109, 97,103,101, 32, 61, 32,116,114,117,101, 44,
13, 10, 9, 9, 9,103,114, 97,112,104,105, 99,115, 32, 61, 32,116,114,117,101,
44, 13, 10, 9, 9, 9, 97,117,100,105,111, 32, 61, 32,116,114,117,101, 44, 13,
10, 9, 9, 9,112,104,121,115,105, 99,115, 32, 61, 32,116,114,117,101, 44, 13,
10, 9, 9, 9,115,111,117,110,100, 32, 61, 32,116,114,117,101, 44, 13, 10, 9,
9, 9,110, 97,116,105,118,101, 32, 61, 32,116,114,117,101, 44, 13, 10, 9, 9,
125, 44, 13, 10, 9,125, 13, 10, 13, 10, 9, 45, 45, 32, 73,102, 32, 99,111,110,
102,105,103, 32,102,105,108,101, 32,101,120,105,115,116,115, 44, 32,108,111, 97,
100, 32,105,116, 32, 97,110,100, 32, 97,108,108,111,119, 32,105,116, 32,116,111,
32,117,112,100, 97,116,101, 32, 99,111,110,102,105,103, 32,116, 97, 98,108,101,
46, 13, 10, 9,105,102, 32,108,111,118,101, 46,102,105,108,101,115,121,115,116,
101,109, 46,101,120,105,115,116,115, 40, 34, 99,111,110,102, 46,108,117, 97, 34,
41, 32,116,104,101,110, 13, 10, 9, 9,114,101,113,117,105,114,101, 40, 34, 99,
111,110,102, 46,108,117, 97, 34, 41, 13, 10, 9, 9,108,111,118,101, 46, 99,111,
110,102, 40, 99, 41, 13, 10, 9,101,110,100, 13, 10, 9, 13, 10, 9,105,102, 32,
99, 46,109,111,100,117,108,101,115, 46,101,118,101,110,116, 32,116,104,101,110,
32,108,111,118,101, 46,101,118,101,110,116, 32, 61, 32,114,101,113,117,105,114,
101, 40, 34,108,111,118,101, 46,101,118,101,110,116, 34, 41, 32,101,110,100, 13,
10, 9,105,102, 32, 99, 46,109,111,100,117,108,101,115, 46,107,101,121, 98,111,
97,114,100, 32,116,104,101,110, 32,108,111,118,101, 46,107,101,121, 98,111, 97,
114,100, 32, 61, 32,114,101,113,117,105,114,101, 40, 34,108,111,118,101, 46,107,
101,121, 98,111, 97,114,100, 34, 41, 32,101,110,100, 13, 10, 9,105,102, 32, 99,
46,109,111,100,117,108,101,115, 46,109,111,117,115,101, 32,116,104,101,110, 32,
108,111,118,101, 46,109,111,117,115,101, 32, 61, 32,114,101,113,117,105,114,101,
40, 34,108,111,118,101, 46,109,111,117,115,101, 34, 41, 32,101,110,100, 13, 10,
9,105,102, 32, 99, 46,109,111,100,117,108,101,115, 46,116,105,109,101,114, 32,
116,104,101,110, 32,108,111,118,101, 46,116,105,109,101,114, 32, 61, 32,114,101,
113,117,105,114,101, 40, 34,108,111,118,101, 46,116,105,109,101,114, 34, 41, 32,
101,110,100, 13, 10, 9,105,102, 32, 99, 46,109,111,100,117,108,101,115, 46,106,
111,121,115,116,105, 99,107, 32,116,104,101,110, 32,108,111,118,101, 46,106,111,
121,115,116,105, 99,107, 32, 61, 32,114,101,113,117,105,114,101, 40, 34,108,111,
118,101, 46,106,111,121,115,116,105, 99,107, 34, 41, 32,101,110,100, 13, 10, 9,
105,102, 32, 99, 46,109,111,100,117,108,101,115, 46,105,109, 97,103,101, 32,116,
104,101,110, 32,108,111,118,101, 46,105,109, 97,103,101, 32, 61, 32,114,101,113,
117,105,114,101, 40, 34,108,111,118,101, 46,105,109, 97,103,101, 34, 41, 32,101,
110,100, 13, 10, 9,105,102, 32, 99, 46,109,111,100,117,108,101,115, 46,103,114,
97,112,104,105, 99,115, 32,116,104,101,110, 32,108,111,118,101, 46,103,114, 97,
112,104,105, 99,115, 32, 61, 32,114,101,113,117,105,114,101, 40, 34,108,111,118,
101, 46,103,114, 97,112,104,105, 99,115, 34, 41, 32,101,110,100, 13, 10, 9,105,
102, 32, 99, 46,109,111,100,117,108,101,115, 46, 97,117,100,105,111, 32,116,104,
101,110, 32,108,111,118,101, 46, 97,117,100,105,111, 32, 61, 32,114,101,113,117,
105,114,101, 40, 34,108,111,118,101, 46, 97,117,100,105,111, 34, 41, 32,101,110,
100, 13, 10, 9,105,102, 32, 99, 46,109,111,100,117,108,101,115, 46,112,104,121,
115,105, 99,115, 32,116,104,101,110, 32,108,111,118,101, 46,112,104,121,115,105,
99,115, 32, 61, 32,114,101,113,117,105,114,101, 40, 34,108,111,118,101, 46,112,
104,121,115,105, 99,115, 34, 41, 32,101,110,100, 13, 10, 9,105,102, 32, 99, 46,
109,111,100,117,108,101,115, 46,115,111,117,110,100, 32,116,104,101,110, 32,108,
111,118,101, 46,115,111,117,110,100, 32, 61, 32,114,101,113,117,105,114,101, 40,
34,108,111,118,101, 46,115,111,117,110,100, 34, 41, 32,101,110,100, 13, 10, 9,
105,102, 32, 99, 46,109,111,100,117,108,101,115, 46,110, 97,116,105,118,101, 32,
116,104,101,110, 32,108,111,118,101, 46,110, 97,116,105,118,101, 32, 61, 32,114,
101,113,117,105,114,101, 40, 34,108,111,118,101, 46,110, 97,116,105,118,101, 34,
41, 32,101,110,100, 13, 10, 9, 13, 10, 9, 45, 45, 32, 83,101,116,117,112, 32,
115, 99,114,101,101,110, 32,104,101,114,101, 46, 13, 10, 9,105,102, 32, 99, 46,
115, 99,114,101,101,110, 32, 97,110,100, 32, 99, 46,109,111,100,117,108,101,115,
46,103,114, 97,112,104,105, 99,115, 32,116,104,101,110, 32, 13, 10, 9, 9,105,
102, 32,108,111,118,101, 46,103,114, 97,112,104,105, 99,115, 46, 99,104,101, 99,
107, 77,111,100,101, 40, 99, 46,115, 99,114,101,101,110, 46,119,105,100,116,104,
44, 32, 99, 46,115, 99,114,101,101,110, 46,104,101,105,103,104,116, 44, 32, 99,
46,115, 99,114,101,101,110, 46,102,117,108,108,115, 99,114,101,101,110, 41, 32,
116,104,101,110, 13, 10, 9, 9, 9,108,111,118,101, 46,103,114, 97,112,104,105,
99,115, 46,115,101,116, 77,111,100,101, 40, 99, 46,115, 99,114,101,101,110, 46,
119,105,100,116,104, 44, 32, 99, 46,115, 99,114,101,101,110, 46,104,101,105,103,
104,116, 44, 32, 99, 46,115, 99,114,101,101,110, 46,102,117,108,108,115, 99,114,
101,101,110, 44, 32, 99, 46,115, 99,114,101,101,110, 46,118,115,121,110, 99, 44,
32, 99, 46,115, 99,114,101,101,110, 46,102,115, 97, 97, 41, 13, 10, 9, 9,101,
110,100, 13, 10, 9, 9,108,111,118,101, 46,103,114, 97,112,104,105, 99,115, 46,
115,101,116, 67, 97,112,116,105,111,110, 40, 99, 46,116,105,116,108,101, 41, 13,
10, 9,101,110,100, 13, 10, 9, 13, 10, 9,105,102, 32,108,111,118,101, 46,102,
105,108,101,115,121,115,116,101,109, 46,101,120,105,115,116,115, 40, 34,109, 97,
105,110, 46,108,117, 97, 34, 41, 32,116,104,101,110, 32,114,101,113,117,105,114,
101, 40, 34,109, 97,105,110, 46,108,117, 97, 34, 41, 32,101,110,100, 13, 10, 9,
13, 10,101,110,100, 13, 10, 13, 10,102,117,110, 99,116,105,111,110, 32,108,111,
118,101, 46,114,117,110, 40, 41, 13, 10, 13, 10, 9,105,102, 32,108,111,118,101,
46,108,111, 97,100, 32,116,104,101,110, 32,108,111,118,101, 46,108,111, 97,100,
40, 41, 32,101,110,100, 13, 10, 13, 10, 9, 45, 45, 32, 77, 97,105,110, 32,108,
111,111,112, 32,116,105,109,101, 46, 13, 10, 9,119,104,105,108,101, 32,116,114,
117,101, 32,100,111, 13, 10, 9, 9,108,111,118,101, 46,116,105,109,101,114, 46,
115,116,101,112, 40, 41, 13, 10, 9, 9,105,102, 32,108,111,118,101, 46,117,112,
100, 97,116,101, 32,116,104,101,110, 32,108,111,118,101, 46,117,112,100, 97,116,
101, 40,108,111,118,101, 46,116,105,109,101,114, 46,103,101,116, 68,101,108,116,
97, 40, 41, 41, 32,101,110,100, 13, 10, 9, 9,108,111,118,101, 46,103,114, 97,
112,104,105, 99,115, 46, 99,108,101, 97,114, 40, 41, 13, 10, 9, 9,105,102, 32,
108,111,118,101, 46,100,114, 97,119, 32,116,104,101,110, 32,108,111,118,101, 46,
100,114, 97,119, 40, 41, 32,101,110,100, 13, 10, 13, 10, 9, 9, 45, 45, 32, 80,
114,111, 99,101,115,115, 32,101,118,101,110,116,115, 46, 13, 10, 9, 9,102,111,
114, 32,101, 44, 97, 44, 98, 44, 99, 32,105,110, 32,108,111,118,101, 46,101,118,
101,110,116, 46,112,111,108,108, 40, 41, 32,100,111, 13, 10, 9, 9, 9,105,102,
32,101, 32, 61, 61, 32,108,111,118,101, 46,101,118,101,110,116, 95,113,117,105,
116, 32,116,104,101,110, 32,114,101,116,117,114,110, 32,101,110,100, 13, 10, 9,
9, 9,108,111,118,101, 46,104, 97,110,100,108,101,114,115, 91,101, 93, 40, 97,
44, 98, 44, 99, 41, 13, 10, 9, 9,101,110,100, 13, 10, 13, 10, 9, 9, 45, 45,
108,111,118,101, 46,116,105,109,101,114, 46,115,108,101,101,112, 40, 49, 48, 41,
13, 10, 9, 9,108,111,118,101, 46,103,114, 97,112,104,105, 99,115, 46,112,114,
101,115,101,110,116, 40, 41, 13, 10, 13, 10, 9,101,110,100, 13, 10, 13, 10,101,
110,100, 13, 10, 13, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 13, 10, 45, 45, 32,
68,101,102, 97,117,108,116, 32,115, 99,114,101,101,110, 46, 13, 10, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 13, 10, 13, 10,
102,117,110, 99,116,105,111,110, 32,108,111,118,101, 46,100,101,102, 97,117,108,
116,115, 99,114,101,101,110, 40, 41, 13, 10, 13, 10, 9, 45, 45, 32, 77, 97,105,
110, 32,108,111,111,112, 32,103,111,101,115, 32,104,101,114,101, 46, 13, 10, 13,
10,101,110,100, 13, 10, 13, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 13, 10, 45, 45, 32, 69,114,114,111,114, 32,115, 99,
45, 45, 45, 45, 45, 13, 10, 45, 45, 32, 68,101,102, 97,117,108,116, 32,115, 99,
114,101,101,110, 46, 13, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 13, 10, 13, 10,102,117,110, 99,116,105,111,110, 32,108,
111,118,101, 46,101,114,114,111,114,115, 99,114,101,101,110, 40, 41, 13, 10, 9,
13, 10, 9, 45, 45, 32, 77, 97,105,110, 32,108,111,111,112, 32,103,111,101,115,
32,104,101,114,101, 46, 13, 10, 13, 10,101,110,100, 13, 10, 13, 10, 45, 45, 45,
111,118,101, 46,100,101,102, 97,117,108,116,115, 99,114,101,101,110, 40, 41, 13,
10, 13, 10, 9, 45, 45, 32, 77, 97,105,110, 32,108,111,111,112, 32,103,111,101,
115, 32,104,101,114,101, 46, 13, 10, 13, 10,101,110,100, 13, 10, 13, 10, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 13, 10, 45, 45,
32, 84,104,101, 32,114,111,111,116, 32,111,102, 32, 97,108,108, 32, 99, 97,108,
108,115, 46, 13, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 13, 10, 45,
45, 32, 69,114,114,111,114, 32,115, 99,114,101,101,110, 46, 13, 10, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 13, 10, 13, 10,108,111, 99, 97,108, 32,114,101,115,117,108,116,
32, 61, 32,120,112, 99, 97,108,108, 40,108,111,118,101, 46,105,110,105,116, 44,
13, 10, 9,102,117,110, 99,116,105,111,110, 32, 40,109,115,103, 41, 13, 10, 9,
9,112,114,105,110,116, 40,109,115,103, 44, 32,100,101, 98,117,103, 46,116,114,
97, 99,101, 98, 97, 99,107, 40, 41, 41, 13, 10, 9,101,110,100, 41, 13, 10, 13,
10, 13, 10,112,114,105,110,116, 40, 34, 68,111,110,101, 46, 34, 41,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 13, 10, 13, 10,
102,117,110, 99,116,105,111,110, 32,108,111,118,101, 46,101,114,114,111,114,115,
99,114,101,101,110, 40, 41, 13, 10, 9, 13, 10, 9, 45, 45, 32, 77, 97,105,110,
32,108,111,111,112, 32,103,111,101,115, 32,104,101,114,101, 46, 13, 10, 13, 10,
101,110,100, 13, 10, 13, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 13, 10, 45, 45, 32, 84,104,101, 32,114,111,111,116, 32,
111,102, 32, 97,108,108, 32, 99, 97,108,108,115, 46, 13, 10, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 13, 10, 13, 10,102,117,
110, 99,116,105,111,110, 32,101,114,114,111,114, 95,112,114,105,110,116,101,114,
40,109,115,103, 41, 13, 10, 9,112,114,105,110,116, 40, 34, 98,111,111,116, 34,
44, 32,109,115,103, 44, 32,100,101, 98,117,103, 46,116,114, 97, 99,101, 98, 97,
99,107, 40, 41, 41, 13, 10,101,110,100, 13, 10, 13, 10,114,101,115,117,108,116,
32, 61, 32,120,112, 99, 97,108,108, 40,108,111,118,101, 46, 98,111,111,116, 44,
32,101,114,114,111,114, 95,112,114,105,110,116,101,114, 41, 13, 10,114,101,115,
117,108,116, 32, 61, 32,120,112, 99, 97,108,108, 40,108,111,118,101, 46,105,110,
105,116, 44, 32,101,114,114,111,114, 95,112,114,105,110,116,101,114, 41, 13, 10,
114,101,115,117,108,116, 32, 61, 32,120,112, 99, 97,108,108, 40,108,111,118,101,
46,114,117,110, 44, 32,101,114,114,111,114, 95,112,114,105,110,116,101,114, 41,
13, 10, 13, 10,112,114,105,110,116, 40, 34, 68,111,110,101, 46, 34, 41,
};
if (luaL_loadbuffer(L,(const char*)B1,sizeof(B1),"boot.lua")==0) lua_call(L, 0, 0);