ide: Developing vcpkg support

This commit is contained in:
Mirek Fidler 2026-08-16 14:59:56 +02:00
parent b62db437c5
commit cd1f9c2efe
10 changed files with 821 additions and 292 deletions

View file

@ -351,7 +351,7 @@ private:
bool IsLineVisible0(int i) const { return i < 0 ? false : i < array.GetCount() ? array[i].visible : true; }
public: // temporary (TRC 06/07/28) // will be removed!
public: // do not use...
Ctrl& SetCtrl(int i, int j, Ctrl *newctrl) { return SetCtrl(i, j, newctrl, true, true); }
protected:

View file

@ -94,6 +94,16 @@ String NoCr(const char *s)
return out;
}
#ifdef PLATFORM_WIN32
String MakeBuild::GetVcpkgTriplet(const VectorMap<String, String>& bm) const
{
return VcpkgTriplet(bm, FindIndex(Split(mainconfigparam, ' '), "SHARED") >= 0);
}
#endif
void MakeBuild::CreateHost(Host& host, const String& method, bool darkmode, bool disable_uhd, int scale, bool exit_pause)
{
VectorMap<String, String> bm = GetMethodVars(method);
@ -104,6 +114,12 @@ void MakeBuild::CreateHost(Host& host, const String& method, bool darkmode, bool
host.AddExecutable(GetExeDirFile("bin/mingit/cmd"), "git.exe");
host.AddExecutable(GetExeDirFile("bin/clang/bin"), "clang-format.exe");
if(IsVcpkgInstalled()) {
String triplet = GetVcpkgTriplet(bm);
host.exedirs << GetExeDirFile("vcpkg");
host.exedirs << GetExeDirFile("vcpkg") + "/installed/" + triplet + "/bin";
}
env.GetAdd("PATH") = Join(host.exedirs, ";");
#else
env.GetAdd("PATH") = Join(host.exedirs, ":");
@ -219,12 +235,15 @@ One<Builder> MakeBuild::CreateBuilder(Host *host)
if(IsExternalMode()) // just add everything..
for(int i = 0; i < wspc.GetCount(); i++)
b->include.Add(PackageDirectory(wspc[i]));
b->libpath = SplitDirs(bm.Get("LIB", ""));
b->cpp_options = bm.Get("COMMON_CPP_OPTIONS", "");
b->c_options = bm.Get("COMMON_C_OPTIONS", "");
b->debug_options = Join(bm.Get("COMMON_OPTIONS", ""), bm.Get("DEBUG_OPTIONS", ""));
b->release_options = Join(bm.Get("COMMON_OPTIONS", ""), bm.Get("RELEASE_OPTIONS", ""));
b->common_link = bm.Get("COMMON_LINK", "");
#ifdef PLATFORM_WIN32
#endif
b->debug_link = bm.Get("DEBUG_LINK", "");
b->release_link = bm.Get("RELEASE_LINK", "");
@ -234,6 +253,30 @@ One<Builder> MakeBuild::CreateBuilder(Host *host)
b->main_conf = !!main_conf.GetCount();
b->allow_pch = bm.Get("ALLOW_PRECOMPILED_HEADERS", "") == "1";
b->start_time = start_time;
#ifdef PLATFORM_WIN32
String libs;
String vcpkg_triplet = GetVcpkgTriplet(bm);
PutConsole("Vcpkg triplet: " << vcpkg_triplet);
auto sys = [&](const String& cmd, const String& chdir) {
if(chdir.GetCount())
b->ChDir(chdir);
return b->Execute(cmd);
};
// if(!DirectoryExists(GetExeDirFile("bin") + vcpkg_triplet))
// InstallVcpkg(sys);
if(IsVcpkgInstalled())
libs = GetExeDirFile("vcpkg") + "/installed/" + vcpkg_triplet;
else
libs = GetExeDirFile("bin") + "/x64-mingw-static-release";
b->include << libs + "/include";
b->libpath << libs + "/lib";
#endif
}
return b;
}
@ -503,11 +546,30 @@ bool MakeBuild::Build(const Workspace& wspc, String mainparam, String outfile, b
BeginBuilding(clear_console);
#ifdef PLATFORM_WIN32
if(IsVcpkgInstalled() && builder) {
String vcpkg_triplet = GetVcpkgTriplet(bm);
Vector<String> required = RequiredExternalDependencies("VCPKG");
Vector<VcpkgInstalled> installed = VcpkgList();
auto sys = [&](const String& cmd, const String& chdir) {
if(chdir.GetCount())
builder->ChDir(chdir);
return builder->Execute(cmd);
};
for(String name : required)
if(!VcpkgHasInstalled(installed, name, vcpkg_triplet))
VcpkgInstall(sys, name, vcpkg_triplet);
}
#endif
bool ok = true;
main_conf.Clear();
add_includes.Clear();
MainConf(wspc);
PutConsole("Saving " + add_includes);
if(add_includes.GetCount())
PutConsole("Saving " + add_includes);
PutVerbose(main_conf);
if(wspc.GetCount()) {
Vector<int> build_order;
@ -577,14 +639,15 @@ void MakeBuild::BuildWorkspace(Workspace& wspc, Host& host, Builder& builder)
bool MakeBuild::Build()
{
if(GetMethodVars(method).GetCount() == 0) {
bm = GetMethodVars(method);
if(bm.GetCount() == 0) {
PutConsole(GetInvalidBuildMethodError(method));
ConsoleShow();
return false;
}
Host host;
CreateHost(host, false, false, 0);
One<Builder> builder = CreateBuilder(&host);
builder = CreateBuilder(&host);
if(!builder)
return false;
String dummy;

View file

@ -66,6 +66,9 @@ public:
Index<String> cfg;
FileTime start_time;
VectorMap<String, String> bm;
One<Builder> builder;
bool makefile_svn_revision = true;
void CreateHost(Host& host, const String& method, bool darkmode, bool disable_uhd, int scale, bool exit_pause);
@ -99,6 +102,10 @@ public:
Array<CompileCommand> GetCompileCommands();
void SaveCCJ(const String& fn, bool exporting);
#ifdef PLATFORM_WIN32
String GetVcpkgTriplet(const VectorMap<String, String>& bm) const;
#endif
MakeBuild();

View file

@ -720,7 +720,10 @@ bool InstallVcpkg(Function<int(const String&, const String& ch
String VcpkgExe();
Vector<VcpkgInstalled> VcpkgList();
Vector<String> RequiredExternalDependencies(const String& manager);
String VcpkgTriplet(const String& builder, const String& compiler, bool so);
String VcpkgTriplet(const VectorMap<String, String>& vars, bool so);
Vector<String> VcpkgTriplets();
bool VcpkgHasInstalled(Vector<VcpkgInstalled>& items, const String& name, const String& triplet);
bool VcpkgInstall(Function<int(const String&, const String& chdir)> sys, const String& name, const String& triplet);
#endif

View file

@ -1,5 +1,7 @@
#include "Core.h"
#ifdef PLATFORM_WIN32
String VcpkgExe()
{
return GetExeFolder() + "/vcpkg/vcpkg.exe";
@ -58,17 +60,36 @@ Vector<String> RequiredExternalDependencies(const String& manager)
keys << "BSD";
#endif
int maxlen = -1;
for(int i = 0; i < wspc.GetCount(); i++) {
const Package& pkg = wspc.GetPackage(i);
for(const OptItem& m : pkg.external_dependency) {
if(MatchWhen(m.when, keys))
if(MatchWhen(m.when, keys) && m.when.GetCount() > maxlen) {
maxlen = m.when.GetCount();
required.Add(m.text);
}
}
}
Sort(required);
return required;
}
String VcpkgTriplet(const String& builder, const String& compiler, bool so)
{
if(builder == "CLANG")
return compiler.Find("i686") >= 0 ? so ? "x86-mingw-dynamic-release" : "x86-mingw-static-release"
: so ? "x64-mingw-dynamic-release" : "x64-mingw-static-release";
if(builder.StartsWith("MSC"))
return builder.Find("64") >= 0 ? so ? "x64-windows" : "x64-windows-static"
: so ? "x86-windows" : "x86-windows-static";
return "x64-mingw-static-release";
}
String VcpkgTriplet(const VectorMap<String, String>& vars, bool so)
{
return VcpkgTriplet(vars.Get("BUILDER", Null), vars.Get("COMPILER", Null), so);
}
Vector<String> VcpkgTriplets()
{
Index<String> ts;
@ -76,13 +97,8 @@ Vector<String> VcpkgTriplets()
VectorMap<String, String> vars;
String fn = ConfigFile(ff.GetName());
if(LoadVarFile(fn, vars)) {
String builder = vars.Get("BUILDER", Null);
String compiler = vars.Get("COMPILER", Null);
if(builder == "CLANG")
ts.FindAdd(compiler.Find("i686") >= 0 ? "x86-mingw-static-release" : "x64-mingw-static-release");
if(builder.StartsWith("MSC"))
ts.FindAdd(builder.Find("64") >= 0 ? "x64-windows-static-md" : "x86-windows-static-md");
ts.FindAdd(VcpkgTriplet(vars, false));
ts.FindAdd(VcpkgTriplet(vars, true));
}
}
@ -98,3 +114,10 @@ bool VcpkgHasInstalled(Vector<VcpkgInstalled>& items, const String& name, const
return true;
return false;
}
bool VcpkgInstall(Function<int(const String&, const String& chdir)> sys, const String& name, const String& triplet)
{
return sys(VcpkgExe() + " install " + name + ":" + triplet, Null) == 0;
}
#endif

View file

@ -47,6 +47,7 @@ void UrepoConsole::AddResult(const String& out)
void UrepoConsole::Log(const Value& s, Color ink)
{
list.Add(AttrText(s).SetFont(font).NormalInk(ink), s);
list.GoEnd();
}
int UrepoConsole::System(const char *cmd, const char *chdir)

View file

@ -158,6 +158,7 @@ IMAGE_ID(GitHub__100)
IMAGE_ID(Terminal)
IMAGE_ID(SmallClose)
IMAGE_ID(ClangTidy)
IMAGE_ID(Vcpkg)
IMAGE_BEGIN_DATA
IMAGE_DATA(120,156,237,147,71,26,92,69,26,4,135,19,206,138,3,112,15,214,131,188,144,23,242,222,130,144,132,188,247,222,123,33)
@ -5101,225 +5102,471 @@ IMAGE_DATA(47,15,238,229,193,61,0,164,202,255,1,241,9,177,152,0,0,0,0,0,0,0,0,0,
IMAGE_END_DATA(4704, 5)
IMAGE_BEGIN_DATA
IMAGE_DATA(120,156,237,156,9,124,20,69,246,199,135,67,5,253,123,237,95,247,255,215,93,21,112,153,72,84,228,150,195,133,21,4)
IMAGE_DATA(1,195,25,146,16,8,10,4,4,57,130,1,129,36,144,48,64,8,103,32,32,200,46,160,28,130,152,112,168,32,114,8)
IMAGE_DATA(234,6,16,92,1,79,78,229,16,194,21,32,156,33,132,132,188,173,215,153,74,106,106,186,123,186,103,38,221,51,153,122)
IMAGE_DATA(159,207,239,195,48,233,170,87,245,125,175,95,189,238,160,247,86,179,84,179,232,181,123,239,189,183,70,163,70,141,70,52)
IMAGE_DATA(107,214,44,163,117,235,214,223,70,70,70,2,43,252,14,127,86,187,118,237,129,228,218,234,186,29,40,216,159,254,244,167)
IMAGE_DATA(231,235,214,173,155,138,62,210,210,210,96,215,174,93,112,228,200,17,224,13,191,195,159,45,91,182,76,90,15,142,185,255)
IMAGE_DATA(254,251,245,111,212,110,21,43,86,188,187,65,131,6,227,59,117,234,116,18,231,188,120,241,162,147,79,37,195,107,113,12)
IMAGE_DATA(142,13,10,10,138,37,211,85,210,227,251,190,251,238,123,8,199,37,38,38,202,238,85,171,33,143,193,131,7,131,125,13)
IMAGE_DATA(149,181,250,127,226,137,39,194,144,53,111,133,103,178,32,119,197,7,112,229,157,65,112,49,172,45,100,183,105,12,217,173)
IMAGE_DATA(95,132,139,161,109,224,242,240,129,144,187,116,1,20,102,157,116,98,129,107,192,57,43,87,174,252,144,59,190,11,207,158)
IMAGE_DATA(134,171,227,227,32,251,149,70,144,221,170,161,186,200,53,87,199,141,146,198,200,173,129,184,168,162,228,27,57,241,190,243)
IMAGE_DATA(182,108,128,11,175,53,119,237,151,211,133,144,22,112,235,235,45,78,107,80,202,7,204,53,140,55,107,185,43,151,232,246)
IMAGE_DATA(203,234,218,180,241,178,177,176,175,161,196,240,30,195,239,217,28,199,125,43,205,155,211,63,18,110,44,124,23,242,62,95)
IMAGE_DATA(11,121,27,62,33,159,231,66,206,155,61,28,125,207,76,1,40,42,114,202,33,204,103,244,85,181,106,213,191,82,255,120)
IMAGE_DATA(175,110,216,176,193,33,207,46,180,255,187,147,223,75,81,157,33,127,207,110,167,57,169,229,127,191,11,46,118,15,129,235)
IMAGE_DATA(115,103,40,94,131,134,190,208,39,250,190,231,158,123,170,224,125,202,222,103,55,210,134,58,249,190,60,164,15,20,93,187)
IMAGE_DATA(166,58,47,90,81,238,13,151,215,160,47,244,137,254,177,166,178,113,47,186,121,20,10,54,223,3,87,71,87,43,241,141)
IMAGE_DATA(247,218,157,43,57,46,231,213,99,232,19,239,7,172,217,88,39,168,221,57,158,2,5,91,239,146,148,251,238,163,112,161)
IMAGE_DATA(93,3,200,219,180,222,171,190,209,208,39,61,75,88,246,133,123,219,148,248,71,229,175,173,14,80,80,224,117,255,232,147)
IMAGE_DATA(158,99,172,21,100,254,213,193,127,225,47,145,10,51,20,91,203,73,55,52,235,235,253,142,251,160,103,167,131,255,109,247)
IMAGE_DATA(56,248,191,243,187,99,77,240,196,255,138,157,183,77,245,191,248,223,249,174,253,243,252,127,238,238,53,255,25,187,157,247)
IMAGE_DATA(239,148,127,251,94,117,240,159,149,89,27,110,223,209,159,127,199,178,239,56,249,255,247,193,210,121,104,254,57,223,127,83)
IMAGE_DATA(74,124,175,223,80,29,94,250,184,51,124,122,116,171,110,255,31,239,186,237,228,255,236,149,210,122,76,239,63,236,215,216)
IMAGE_DATA(51,175,232,230,113,184,185,181,42,164,124,90,31,26,124,28,42,169,205,167,125,225,98,222,101,205,190,175,231,21,65,183)
IMAGE_DATA(180,92,7,223,189,255,117,211,225,26,244,137,245,7,123,69,140,3,123,246,204,218,53,161,196,55,85,212,230,145,112,37)
IMAGE_DATA(223,117,253,189,93,8,48,122,101,158,211,222,211,153,216,163,47,244,73,207,32,254,252,57,115,35,27,154,175,238,233,180)
IMAGE_DATA(134,144,117,3,32,243,244,30,69,223,71,46,159,128,232,207,62,38,254,174,58,248,70,22,55,243,75,217,179,231,15,26)
IMAGE_DATA(246,169,252,249,187,241,68,166,147,127,170,110,95,196,64,234,190,197,144,113,100,35,172,250,109,19,204,251,121,5,244,219)
IMAGE_DATA(58,6,26,126,220,77,250,249,139,75,70,195,203,83,79,149,248,223,126,168,208,97,239,252,249,75,25,240,189,207,135,135)
IMAGE_DATA(62,83,92,131,43,53,92,209,27,154,207,252,143,195,61,79,125,179,123,167,86,161,66,133,74,114,253,215,230,63,118,144)
IMAGE_DATA(88,68,233,246,255,98,122,56,44,252,249,51,39,223,124,239,195,89,101,185,254,243,108,238,5,24,243,237,44,104,148,222)
IMAGE_DATA(77,147,239,1,95,37,193,193,156,163,78,190,237,253,167,170,97,143,172,212,127,99,94,46,61,248,9,12,249,102,2,180)
IMAGE_DATA(251,172,63,52,206,8,151,246,217,230,211,104,232,191,45,81,202,131,67,57,199,28,198,232,241,205,88,21,111,60,127,96)
IMAGE_DATA(158,107,96,174,100,82,62,96,159,164,119,29,244,185,135,121,254,242,200,216,117,184,122,254,196,107,188,229,151,55,218,175)
IMAGE_DATA(169,61,127,235,140,179,165,130,120,25,224,218,196,203,0,241,50,0,77,188,12,16,47,3,196,203,0,241,50,64,201,196)
IMAGE_DATA(203,0,241,50,64,206,196,203,0,241,50,64,188,12,16,47,3,88,223,226,101,128,46,19,47,3,56,43,139,151,1,21)
IMAGE_DATA(31,178,40,63,147,61,244,208,67,181,219,183,111,191,124,202,148,41,191,173,94,189,26,80,248,57,36,36,100,233,131,15)
IMAGE_DATA(62,248,172,226,164,21,43,86,38,141,109,226,186,117,235,242,110,223,190,237,4,11,191,91,179,102,77,30,57,124,226,201)
IMAGE_DATA(229,21,248,241,245,234,213,27,116,234,212,41,40,202,191,5,185,25,203,33,103,64,20,100,183,109,10,217,175,54,33,15)
IMAGE_DATA(26,61,33,55,253,67,233,103,63,254,248,35,4,7,7,199,160,75,58,150,248,29,139,99,11,207,159,133,75,125,35,20)
IMAGE_DATA(31,98,46,143,26,44,173,5,231,176,175,67,218,111,102,102,38,20,221,186,85,58,182,93,51,184,177,104,30,220,254,229)
IMAGE_DATA(7,162,31,165,207,23,201,131,72,193,201,19,37,251,249,234,171,175,224,129,7,30,8,110,217,178,229,252,220,220,92,40)
IMAGE_DATA(248,97,46,92,232,252,130,180,94,28,195,91,81,97,161,195,223,113,76,211,166,77,83,145,45,254,189,224,187,134,144,255)
IMAGE_DATA(89,85,184,153,97,211,156,244,52,70,210,248,109,247,21,55,111,23,54,56,92,35,215,20,37,164,231,73,63,163,241,117)
IMAGE_DATA(28,255,185,203,241,35,150,223,44,25,95,186,254,70,112,126,203,255,192,186,159,82,21,215,59,97,109,241,33,61,253,243)
IMAGE_DATA(91,37,235,111,219,182,237,82,204,141,19,199,22,64,219,140,215,164,2,183,55,123,191,211,216,67,103,10,161,205,228,210)
IMAGE_DATA(166,10,199,180,106,213,106,33,230,36,198,239,86,97,62,68,108,124,91,42,198,77,51,186,195,156,31,63,132,189,231,247)
IMAGE_DATA(195,15,217,7,96,209,175,171,224,149,197,255,132,151,83,46,195,155,139,110,66,225,157,34,192,49,24,63,204,1,18,7)
IMAGE_DATA(27,230,207,57,82,244,35,54,198,42,22,249,46,171,102,192,217,203,119,164,252,169,83,167,206,56,38,125,43,212,175,95)
IMAGE_DATA(63,6,231,200,47,188,13,43,14,173,135,94,164,121,193,117,52,201,136,128,238,27,135,75,107,200,189,125,83,26,91,171)
IMAGE_DATA(86,173,65,114,183,16,185,7,226,211,211,211,243,48,55,120,187,122,245,42,44,92,184,16,239,159,56,181,155,27,15,121)
IMAGE_DATA(154,87,236,253,139,223,241,13,0,90,37,81,12,68,49,64,19,197,64,20,131,123,221,249,53,129,143,24,22,145,74,164)
IMAGE_DATA(240,84,37,129,252,203,35,143,60,242,52,10,63,227,119,150,226,215,175,78,133,198,11,86,137,248,120,60,44,44,108,192)
IMAGE_DATA(146,37,75,62,57,112,224,192,31,57,57,57,215,243,243,243,11,80,248,25,191,195,159,69,68,68,12,196,107,45,58,127)
IMAGE_DATA(53,160,96,21,201,35,228,227,9,9,9,169,89,89,89,151,178,246,159,133,205,169,153,176,168,231,199,48,173,201,124,24)
IMAGE_DATA(31,60,75,18,126,198,239,54,207,204,132,83,63,159,129,211,167,79,95,26,51,102,204,76,228,98,97,138,166,78,171,220)
IMAGE_DATA(188,121,243,174,100,95,39,143,124,123,12,254,25,177,2,146,172,169,48,209,154,6,201,214,217,144,28,52,27,38,217,133)
IMAGE_DATA(159,241,59,252,217,56,114,205,252,240,229,112,120,199,49,56,120,240,224,201,22,45,90,132,90,116,252,138,2,141,60,50)
IMAGE_DATA(222,19,29,29,29,127,41,59,39,63,35,126,3,140,181,206,128,241,214,89,48,33,40,77,147,240,218,68,50,38,35,110)
IMAGE_DATA(3,224,28,253,250,245,75,192,57,53,186,191,139,248,78,184,120,230,82,225,236,208,165,100,158,84,24,23,52,203,45,225)
IMAGE_DATA(216,217,93,151,2,206,133,115,226,220,46,124,87,34,204,187,93,56,119,49,63,173,235,18,178,239,84,50,199,76,24,67)
IMAGE_DATA(254,164,159,19,131,92,136,92,131,215,142,33,251,79,180,143,155,69,230,194,57,113,110,139,114,94,86,32,249,242,228,175)
IMAGE_DATA(191,254,122,106,69,220,122,136,179,78,135,132,160,84,24,85,115,26,124,189,104,23,172,153,184,25,146,26,205,150,190,143)
IMAGE_DATA(39,115,227,159,172,232,119,99,235,167,193,42,219,38,216,254,225,247,48,42,104,154,52,7,126,143,115,146,185,79,146,124)
IMAGE_DATA(126,210,34,127,143,222,29,31,31,159,246,203,191,15,195,8,235,84,136,11,34,243,5,77,135,113,77,223,133,155,55,111)
IMAGE_DATA(74,186,114,241,42,172,157,250,37,172,78,222,12,219,87,238,129,125,155,73,177,223,114,0,118,166,239,133,181,147,191,132)
IMAGE_DATA(85,228,251,156,243,151,75,174,159,252,234,2,105,14,156,11,231,252,37,243,48,196,197,197,165,161,47,126,239,248,170,230)
IMAGE_DATA(216,177,99,151,102,132,45,134,145,214,105,48,146,140,27,73,214,159,210,110,1,220,184,113,195,45,205,8,95,44,205,33)
IMAGE_DATA(205,69,230,196,185,143,30,61,122,201,254,235,75,150,65,165,110,221,186,13,57,188,247,24,196,212,156,12,35,200,152,98)
IMAGE_DATA(77,133,216,23,166,193,181,171,215,224,250,245,235,186,21,215,120,150,180,111,58,95,140,53,5,142,236,61,14,161,161,161)
IMAGE_DATA(67,184,60,168,66,14,154,245,171,166,110,134,97,214,41,240,54,241,139,26,102,157,12,203,19,215,195,181,107,215,220,210)
IMAGE_DATA(234,105,91,164,57,74,231,155,34,125,183,96,193,130,117,22,230,215,117,164,118,63,188,119,239,222,147,83,187,47,38,107)
IMAGE_DATA(156,12,49,65,83,36,13,126,38,5,78,31,63,39,29,132,238,232,194,217,139,16,83,123,42,153,203,62,39,153,123,90)
IMAGE_DATA(228,98,216,179,103,207,73,244,201,228,253,223,78,158,60,121,125,68,147,84,24,28,148,66,52,89,250,211,246,218,124,184)
IMAGE_DATA(114,229,138,71,154,28,241,1,12,182,150,206,137,62,208,23,250,180,231,64,5,114,134,213,190,112,225,66,225,155,181,146)
IMAGE_DATA(225,45,114,13,106,96,208,36,72,14,95,4,151,47,95,246,72,169,125,63,132,129,214,73,37,243,14,8,78,6,226,171)
IMAGE_DATA(128,248,124,222,238,191,34,250,207,206,206,46,140,126,102,34,188,73,252,22,43,25,198,180,159,7,228,108,243,72,19,195)
IMAGE_DATA(23,194,155,214,228,146,121,163,107,77,4,226,11,253,215,182,20,159,77,200,223,122,226,196,137,27,67,94,156,14,253,130)
IMAGE_DATA(38,18,37,23,235,185,100,56,127,46,27,46,93,186,228,150,240,21,217,160,6,83,33,154,206,71,230,30,218,120,58,28)
IMAGE_DATA(63,126,28,249,91,41,127,146,11,143,126,247,221,119,167,108,225,11,160,143,117,2,244,33,215,161,222,176,218,96,107,198)
IMAGE_DATA(46,105,30,119,180,243,139,125,210,28,116,62,156,219,22,177,0,118,239,222,125,10,125,50,53,224,129,247,222,123,111,195)
IMAGE_DATA(146,228,117,240,58,185,254,141,160,9,146,94,183,142,135,97,45,103,194,201,227,89,24,51,93,58,125,234,44,140,108,63)
IMAGE_DATA(71,154,163,116,62,27,44,153,180,30,208,23,250,100,239,255,174,93,187,14,223,183,99,63,244,168,153,4,81,228,186,158)
IMAGE_DATA(214,113,208,195,154,36,253,57,50,228,93,248,249,251,195,24,55,77,58,240,227,111,144,208,109,190,52,54,42,104,124,137)
IMAGE_DATA(34,201,220,251,118,238,135,46,93,186,12,183,56,254,186,30,251,171,96,114,62,228,140,234,50,23,34,137,223,228,190,139)
IMAGE_DATA(225,167,221,135,32,49,114,1,116,183,38,66,228,51,73,48,174,215,66,88,145,182,17,246,237,218,15,231,207,159,119,208)
IMAGE_DATA(79,255,57,8,43,231,108,130,9,189,223,135,200,90,227,200,28,100,253,65,182,18,225,223,71,119,157,135,103,80,14,169)
IMAGE_DATA(191,193,92,253,195,56,60,56,98,196,136,247,50,191,216,3,97,214,177,68,137,48,227,237,229,18,251,65,173,102,64,56)
IMAGE_DATA(89,19,42,44,104,44,252,178,231,48,156,59,119,206,65,135,126,254,29,34,106,37,65,4,185,38,34,8,53,142,81,146)
IMAGE_DATA(52,95,230,198,189,128,62,208,151,204,25,120,55,89,215,115,187,118,237,202,154,17,187,2,66,201,26,80,223,108,248,94)
IMAGE_DATA(226,153,242,214,82,136,237,48,7,230,141,93,13,103,207,158,149,85,108,199,57,208,45,40,145,172,49,201,65,221,112,47)
IMAGE_DATA(100,206,111,191,253,54,11,125,200,156,127,148,193,253,205,154,53,235,115,228,208,111,249,195,58,204,134,46,214,49,16,19)
IMAGE_DATA(50,11,142,30,57,142,61,37,156,57,35,245,150,138,26,21,49,15,186,18,255,172,186,144,61,196,116,72,131,195,100,78)
IMAGE_DATA(156,27,125,200,236,189,36,15,136,30,233,213,171,215,164,131,191,30,41,28,74,198,117,180,38,64,143,70,19,97,210,144)
IMAGE_DATA(165,48,51,110,37,204,79,94,3,164,23,150,213,59,225,115,161,19,137,79,103,73,99,160,19,89,255,16,178,126,156,11)
IMAGE_DATA(231,196,185,45,174,251,242,187,72,175,248,88,84,84,212,164,67,7,142,228,79,141,93,14,33,214,120,187,18,96,104,151)
IMAGE_DATA(52,192,135,62,57,197,134,189,11,29,136,223,14,228,186,144,154,241,48,105,232,82,56,184,255,112,62,241,157,66,230,125)
IMAGE_DATA(204,226,186,255,43,201,5,162,63,147,7,184,232,237,219,183,103,109,251,252,59,24,220,57,13,218,213,28,77,254,156,133)
IMAGE_DATA(231,135,172,134,133,207,33,215,196,193,160,142,179,224,203,207,118,195,142,29,59,78,19,230,253,112,46,133,152,171,25,246)
IMAGE_DATA(236,15,147,124,169,59,108,216,176,127,238,219,183,47,103,231,87,251,32,243,203,61,240,199,31,127,200,106,199,182,189,176)
IMAGE_DATA(125,235,94,192,107,99,99,99,255,133,99,113,14,139,206,254,159,49,60,31,240,185,238,207,100,174,122,29,59,118,140,75)
IMAGE_DATA(75,75,219,244,205,55,223,100,145,251,248,6,233,165,10,80,248,25,191,155,61,123,246,166,78,157,58,197,225,181,246,61)
IMAGE_DATA(87,181,184,255,252,195,90,37,251,92,184,151,199,72,237,174,65,234,85,125,114,134,189,132,194,207,248,157,165,56,198,15)
IMAGE_DATA(219,175,245,198,243,31,111,21,236,243,222,109,247,113,159,93,85,237,223,233,126,254,85,253,53,1,99,149,170,84,169,242)
IMAGE_DATA(32,202,162,99,99,213,171,87,15,158,54,121,250,194,117,243,55,157,218,58,103,123,1,10,63,79,159,60,99,97,141,26)
IMAGE_DATA(53,20,223,44,18,171,16,221,55,122,248,134,153,219,242,82,234,205,133,9,228,193,114,98,80,177,240,51,126,135,63,235)
IMAGE_DATA(23,221,15,15,18,167,13,147,177,35,150,13,89,91,148,104,127,104,74,10,114,148,244,32,69,126,134,215,224,181,220,154)
IMAGE_DATA(159,255,100,198,150,91,248,208,146,49,246,11,216,241,209,30,152,19,190,12,150,12,94,3,75,7,175,133,57,97,203,32)
IMAGE_DATA(115,249,247,176,102,252,102,233,193,230,147,212,45,121,56,134,174,59,101,226,228,15,226,234,206,132,119,72,195,189,113,126)
IMAGE_DATA(166,98,115,190,229,253,157,240,14,121,40,136,171,55,19,38,77,152,252,129,125,31,119,175,156,243,105,86,140,117,138,212)
IMAGE_DATA(180,254,246,195,113,197,230,246,216,254,147,16,243,12,54,181,83,200,193,247,73,22,142,37,241,121,52,125,250,198,130,65)
IMAGE_DATA(164,209,27,217,108,150,203,230,48,254,229,119,1,175,77,159,177,177,128,140,125,4,199,127,52,237,139,130,254,164,89,26)
IMAGE_DATA(84,119,138,212,196,168,53,88,67,27,78,7,188,246,163,105,27,112,60,54,52,85,23,207,204,56,253,6,54,29,68,95)
IMAGE_DATA(173,249,78,177,65,201,92,191,7,232,117,56,198,98,191,89,109,73,19,150,245,169,147,12,19,122,189,15,111,189,52,13)
IMAGE_DATA(86,204,220,72,14,247,67,37,7,253,47,123,14,193,71,105,155,160,111,221,73,208,147,28,236,125,234,38,131,45,113,252)
IMAGE_DATA(50,139,253,70,175,86,173,90,195,5,147,214,220,234,211,56,5,54,165,239,132,129,255,152,14,233,243,182,148,28,146,75)
IMAGE_DATA(103,124,46,29,198,225,210,161,156,4,120,45,142,97,82,160,50,41,254,99,199,247,127,191,104,108,239,5,176,113,213,14)
IMAGE_DATA(248,105,207,129,146,67,102,245,251,91,139,15,24,114,176,217,250,189,95,132,215,90,156,11,92,213,158,61,163,18,231,77)
IMAGE_DATA(204,184,21,90,39,9,86,254,107,115,73,145,78,95,180,5,66,235,140,131,185,227,211,111,145,107,146,236,251,150,179,187)
IMAGE_DATA(158,122,234,169,166,99,226,19,87,108,253,242,235,51,191,255,254,123,1,106,27,249,140,223,225,207,44,218,14,20,44,12)
IMAGE_DATA(15,147,248,84,67,89,138,11,148,236,97,16,220,219,210,91,195,124,194,132,9,19,38,76,152,48,97,194,132,9,19,38)
IMAGE_DATA(204,175,44,209,6,150,36,187,240,243,88,162,49,68,9,68,113,68,163,137,70,17,141,36,122,135,104,56,81,44,209,219)
IMAGE_DATA(68,195,136,98,136,134,16,13,38,26,68,244,22,209,0,162,55,137,250,19,245,35,234,75,212,135,168,55,209,27,68,175)
IMAGE_DATA(19,69,17,245,36,234,65,20,73,20,65,20,78,20,70,212,141,168,43,81,23,162,206,68,157,136,58,18,133,16,189,70)
IMAGE_DATA(212,158,168,29,209,171,68,109,136,90,19,189,66,212,146,232,101,162,127,16,181,32,106,78,244,18,81,51,162,166,68,77)
IMAGE_DATA(136,94,36,106,68,212,144,168,1,81,61,162,186,68,117,136,94,32,170,77,100,164,33,247,113,118,37,113,252,227,101,248)
IMAGE_DATA(143,112,131,127,180,27,252,67,221,224,223,202,207,248,143,181,51,23,252,75,249,27,105,200,90,212,31,243,248,143,177,243)
IMAGE_DATA(102,197,230,62,207,127,132,12,255,161,28,255,129,26,248,247,18,252,37,75,176,243,102,165,196,158,214,30,150,127,140,6)
IMAGE_DATA(254,209,26,248,119,215,192,191,3,199,191,173,6,254,127,247,97,254,113,118,206,9,156,40,123,37,254,124,237,161,252,105)
IMAGE_DATA(237,97,249,211,218,207,242,127,93,3,255,80,55,248,183,210,192,191,177,11,254,70,218,104,134,115,188,12,119,87,185,175)
IMAGE_DATA(84,251,41,127,246,236,165,252,105,237,103,249,71,114,252,233,217,203,242,239,200,241,111,167,129,127,115,13,252,235,155,200)
IMAGE_DATA(127,20,195,153,215,40,141,236,181,212,126,185,222,167,151,205,177,246,83,254,108,239,67,249,211,218,175,198,159,246,62,106)
IMAGE_DATA(252,155,248,24,255,145,12,103,94,35,101,216,235,201,125,181,218,47,215,251,32,127,190,247,68,254,236,217,75,249,211,179)
IMAGE_DATA(151,242,103,123,79,202,159,158,189,148,63,173,253,44,255,6,28,127,35,107,255,59,118,182,35,21,68,127,174,198,158,207)
IMAGE_DATA(125,202,159,207,125,189,181,95,169,247,71,254,108,239,131,252,249,222,31,249,179,189,143,18,127,90,251,89,254,70,218,8)
IMAGE_DATA(59,219,17,12,107,150,57,21,229,174,149,189,214,218,19,101,115,174,61,122,206,94,173,207,94,200,159,237,125,144,63,123)
IMAGE_DATA(246,82,254,70,215,158,88,38,175,135,115,188,217,124,167,220,221,101,175,181,246,40,213,126,185,179,87,107,239,169,165,247)
IMAGE_DATA(71,254,70,215,126,202,51,214,133,88,238,114,236,61,201,125,87,181,71,107,237,215,122,246,186,234,61,141,52,202,243,109)
IMAGE_DATA(23,98,185,187,195,94,46,247,149,250,30,181,218,35,247,220,171,231,236,213,210,251,24,105,148,103,12,195,152,23,123,13)
IMAGE_DATA(229,206,214,28,119,217,107,237,123,212,106,143,158,218,175,181,247,49,210,134,216,153,82,197,216,156,121,83,177,220,217,156)
IMAGE_DATA(87,99,175,229,125,131,92,238,171,245,61,74,181,71,233,185,87,174,246,251,194,217,75,57,14,209,40,150,59,155,243,114)
IMAGE_DATA(236,189,157,251,238,212,30,61,181,159,158,189,70,26,229,56,136,97,171,36,246,90,62,231,189,193,94,79,238,171,245,61)
IMAGE_DATA(106,125,191,175,213,254,129,12,203,65,46,196,50,231,115,94,75,205,209,203,94,46,247,229,158,185,220,173,61,190,240,220)
IMAGE_DATA(53,128,227,201,198,67,142,55,159,239,148,187,86,246,90,249,43,177,151,171,61,114,185,175,86,123,148,250,126,163,107,63)
IMAGE_DATA(229,55,64,89,104,78,223,203,113,103,235,141,28,123,35,114,223,157,190,199,204,190,159,242,235,207,48,229,196,154,3,115)
IMAGE_DATA(158,59,155,243,158,228,189,26,123,189,185,175,244,251,22,95,169,61,209,12,195,126,28,219,254,202,255,235,27,7,230,114)
IMAGE_DATA(220,221,101,175,229,61,179,187,185,239,170,239,49,186,246,208,58,17,205,137,137,135,43,83,228,206,159,181,74,236,61,201)
IMAGE_DATA(125,165,158,71,203,251,54,95,232,123,40,183,62,182,210,154,205,42,90,251,255,250,73,138,5,207,157,205,121,111,179,119)
IMAGE_DATA(55,247,213,158,185,140,230,79,243,181,55,19,7,70,238,154,108,206,27,193,222,157,220,55,243,119,189,175,219,74,115,246)
IMAGE_DATA(13,38,22,118,121,106,14,57,207,215,123,87,236,245,240,87,99,175,39,247,141,228,79,235,195,235,156,152,120,120,203,36)
IMAGE_DATA(238,252,89,171,196,222,155,185,175,212,243,152,253,174,31,141,214,135,40,91,105,173,102,197,196,196,107,113,80,235,115,188)
IMAGE_DATA(205,222,151,115,31,13,235,66,79,70,81,174,229,181,56,152,197,94,173,231,52,250,223,184,97,61,238,193,168,167,118,121)
IMAGE_DATA(45,14,122,234,189,39,252,213,216,155,241,111,220,104,61,70,69,50,234,161,81,246,235,189,22,7,53,246,101,153,251,102)
IMAGE_DATA(253,251,78,218,255,69,48,113,80,138,9,43,185,107,35,188,24,7,35,217,155,249,239,107,241,12,12,103,20,225,166,216)
IMAGE_DATA(57,194,188,24,7,61,236,245,240,87,98,111,228,127,91,65,123,143,48,78,225,58,197,143,103,122,26,143,249,187,170,247)
IMAGE_DATA(254,156,251,161,197,140,36,117,227,196,51,85,18,63,142,157,179,171,173,164,175,241,136,191,28,251,178,168,59,70,255,119)
IMAGE_DATA(93,93,25,70,161,50,226,217,170,177,230,153,211,126,146,235,41,117,243,55,146,253,243,6,243,239,204,48,234,194,177,227)
IMAGE_DATA(37,199,151,23,59,87,103,155,71,220,37,246,109,100,216,107,173,57,190,206,159,246,217,157,57,117,113,83,252,60,110,50)
IMAGE_DATA(119,224,223,218,13,246,254,146,251,216,99,83,117,226,196,179,116,37,102,172,183,172,132,59,223,231,40,177,247,180,238,60)
IMAGE_DATA(103,48,127,236,175,59,48,234,200,137,143,137,146,58,122,145,185,92,189,209,210,99,234,101,239,11,252,241,217,38,132,81)
IMAGE_DATA(7,5,241,113,161,234,80,70,220,213,234,141,187,53,71,75,238,63,107,32,127,124,166,164,122,141,81,136,107,121,141,57)
IMAGE_DATA(237,107,228,184,43,213,27,189,236,181,214,29,35,217,163,209,103,202,118,76,28,228,226,97,151,87,153,43,113,215,146,243)
IMAGE_DATA(122,250,28,61,236,131,13,230,143,12,218,50,106,231,44,175,51,119,197,93,75,206,151,5,123,163,249,83,6,175,114,178)
IMAGE_DATA(199,194,235,220,121,230,90,184,43,229,60,127,206,186,203,222,204,220,103,57,180,113,148,199,204,185,249,84,153,171,113,87)
IMAGE_DATA(202,121,190,214,235,61,107,229,234,78,45,131,249,183,98,88,188,226,200,200,35,230,173,109,242,188,229,152,187,226,174,148)
IMAGE_DATA(243,124,189,241,6,251,103,12,230,223,146,227,193,112,210,204,92,141,181,26,115,119,184,171,213,27,190,191,119,135,125,144)
IMAGE_DATA(129,252,233,222,95,230,152,180,210,198,94,149,177,43,222,44,115,37,238,114,181,70,173,222,240,181,222,151,217,163,177,251)
IMAGE_DATA(127,217,81,138,204,153,24,57,177,149,19,55,175,38,230,90,185,187,170,55,90,206,90,150,189,209,252,155,51,12,90,56)
IMAGE_DATA(178,113,96,206,51,212,170,127,216,228,121,179,204,249,92,87,226,46,87,231,213,234,141,30,246,148,191,213,96,254,127,231)
IMAGE_DATA(56,216,227,33,49,151,137,137,46,181,176,41,243,150,99,238,138,187,82,157,87,170,55,114,253,189,90,222,35,251,154,6)
IMAGE_DATA(242,103,247,205,222,247,60,39,38,46,154,164,52,158,175,45,74,204,181,112,215,146,243,106,207,86,102,179,71,163,251,110)
IMAGE_DATA(198,241,224,227,193,75,11,95,94,252,252,172,111,37,230,106,220,181,228,188,94,246,127,51,152,127,19,46,231,154,113,226)
IMAGE_DATA(153,185,43,126,94,185,60,87,58,87,149,184,107,201,121,190,214,243,236,173,28,251,167,13,228,207,230,24,203,160,169,140)
IMAGE_DATA(120,126,90,37,55,151,28,111,150,185,59,220,149,114,158,175,245,60,251,154,38,177,71,99,247,219,152,83,19,25,201,177)
IMAGE_DATA(84,147,220,28,188,31,53,230,74,220,229,106,141,82,206,171,245,56,60,251,26,6,243,111,200,236,185,17,199,66,46,38)
IMAGE_DATA(106,177,81,99,44,199,250,69,206,183,86,230,74,220,149,114,222,85,173,103,217,87,55,152,127,3,110,223,141,100,196,51)
IMAGE_DATA(115,87,114,115,55,244,222,123,85,119,205,129,125,53,3,249,211,220,170,207,228,27,31,15,181,184,232,145,220,156,118,127)
IMAGE_DATA(102,155,41,236,209,232,61,93,143,137,131,92,60,212,226,162,69,114,115,49,190,204,182,18,246,79,25,204,31,235,103,93)
IMAGE_DATA(70,245,56,241,49,81,139,141,11,198,14,226,252,152,202,190,26,195,254,73,131,249,227,185,85,135,83,93,155,122,76,60)
IMAGE_DATA(21,63,127,29,31,224,79,217,63,97,32,127,218,47,160,94,96,196,199,67,46,38,238,74,110,110,214,55,187,38,182,135)
IMAGE_DATA(100,251,25,190,167,145,235,41,229,250,74,246,140,101,235,141,25,236,209,158,99,246,248,60,183,247,23,20,36,199,79,139)
IMAGE_DATA(148,230,147,227,237,138,185,18,119,185,126,158,237,43,217,51,150,205,121,202,254,175,6,243,127,150,219,231,243,54,229,120)
IMAGE_DATA(104,137,141,22,198,74,188,149,152,187,202,117,165,124,215,147,243,148,253,95,12,228,207,230,18,187,215,231,108,234,49,209)
IMAGE_DATA(26,35,87,227,120,63,114,188,89,230,222,224,174,148,243,70,179,71,99,247,21,204,233,89,155,122,76,60,21,63,63,239)
IMAGE_DATA(95,141,185,86,238,114,181,70,41,231,81,143,27,204,63,136,217,219,51,220,158,229,98,34,23,23,189,146,155,147,247,203)
IMAGE_DATA(174,73,141,185,167,220,41,123,228,254,152,93,70,154,149,219,31,31,15,185,152,168,197,70,77,74,243,240,254,248,245,232)
IMAGE_DATA(101,174,196,93,174,214,60,206,176,255,127,187,140,50,118,63,86,70,252,254,229,98,162,37,62,74,124,213,88,179,188,149)
IMAGE_DATA(152,187,203,93,174,214,208,156,71,238,255,103,32,123,180,191,113,123,82,138,135,90,92,60,145,156,15,37,222,114,204,61)
IMAGE_DATA(225,206,231,60,178,255,179,193,252,107,48,123,122,90,102,191,53,101,36,199,204,29,201,205,173,196,219,21,115,119,184,179)
IMAGE_DATA(57,79,217,63,106,48,127,186,15,118,111,79,219,212,99,162,22,27,45,82,154,143,247,43,199,91,15,115,61,220,41,251)
IMAGE_DATA(71,12,228,207,238,163,58,167,26,54,245,152,104,137,143,43,190,74,172,121,222,174,152,235,229,206,214,26,202,221,104,246)
IMAGE_DATA(104,79,50,123,121,138,219,35,191,127,185,152,120,75,114,190,228,120,187,98,174,149,59,91,107,40,119,212,255,26,204,95)
IMAGE_DATA(152,48,97,194,132,9,19,38,76,152,48,97,194,132,149,153,5,183,180,180,52,123,13,126,97,228,73,24,168,204,94,139)
IMAGE_DATA(183,76,239,158,216,235,203,11,11,189,123,146,187,222,223,89,232,221,147,218,245,254,202,66,239,158,180,92,239,111,44,220)
IMAGE_DATA(217,147,158,49,254,192,194,221,253,232,29,231,203,44,60,221,75,121,96,225,173,61,248,51,11,111,175,221,31,89,148,213)
IMAGE_DATA(154,253,137,69,89,175,213,31,88,24,181,70,95,102,97,244,218,124,145,133,89,107,242,37,22,102,175,197,108,255,190,178)
IMAGE_DATA(6,179,215,225,43,12,204,92,143,175,49,48,99,93,190,202,192,200,245,249,58,3,35,214,233,47,12,202,114,189,254,198)
IMAGE_DATA(128,154,55,215,237,175,12,168,121,99,253,254,206,128,154,39,251,40,47,12,168,185,179,159,242,198,128,154,96,80,106,130)
IMAGE_DATA(65,169,9,6,165,38,24,148,154,96,80,106,130,65,177,9,14,226,190,64,19,117,82,156,155,104,222,102,224,143,44,202)
IMAGE_DATA(138,129,63,177,40,107,6,254,192,194,147,253,148,23,22,222,216,135,191,179,240,230,250,253,149,69,89,172,219,223,88,148)
IMAGE_DATA(229,122,253,133,133,17,235,244,117,22,70,174,207,87,89,152,177,46,95,99,97,230,122,124,133,133,47,172,195,236,53,152)
IMAGE_DATA(237,223,23,214,226,75,12,204,90,147,47,50,48,122,109,190,204,192,168,53,250,3,131,178,94,171,63,49,40,171,53,251)
IMAGE_DATA(35,3,106,222,90,187,63,51,160,230,233,30,202,3,3,106,158,236,165,188,48,160,102,4,7,51,247,167,199,202,242,222)
IMAGE_DATA(48,107,79,238,90,89,212,74,163,247,224,45,115,119,79,229,137,1,53,119,247,84,158,24,80,43,143,123,42,11,11,238)
IMAGE_DATA(109,233,109,169,107,73,53,123,29,194,252,220,218,134,244,3,148,217,235,8,68,163,236,69,12,140,53,158,187,136,131,113)
IMAGE_DATA(230,138,189,136,65,217,153,86,246,34,6,222,53,189,220,69,28,188,103,158,178,23,49,112,223,188,197,94,196,64,187,121)
IMAGE_DATA(155,185,136,133,118,51,138,189,136,129,163,25,205,61,208,227,96,54,239,64,140,135,217,76,3,45,22,102,115,43,143,241)
IMAGE_DATA(48,123,239,254,38,193,222,124,9,254,254,207,223,236,61,248,187,4,127,193,63,144,37,248,11,254,129,44,193,95,240,15)
IMAGE_DATA(100,9,254,130,127,32,75,240,23,252,3,89,130,191,224,31,200,18,252,5,255,64,150,224,47,248,251,154,50,224,61,73)
IMAGE_DATA(130,191,121,236,5,127,115,217,27,21,3,193,95,153,189,17,49,16,252,213,217,151,117,12,2,157,191,22,246,130,191,121)
IMAGE_DATA(236,203,122,13,129,200,223,236,156,247,38,127,127,139,129,86,246,254,144,251,70,241,247,22,19,95,225,238,207,252,221,229)
IMAGE_DATA(227,75,121,239,79,252,189,193,200,215,184,251,3,127,111,241,242,85,246,229,129,191,43,110,190,204,222,215,249,123,122,31)
IMAGE_DATA(248,50,119,127,226,239,14,75,95,207,123,111,178,55,34,6,122,88,250,3,123,127,227,175,151,173,47,115,23,252,205,103)
IMAGE_DATA(239,175,252,61,141,129,217,204,203,3,127,119,226,96,54,107,193,223,124,222,129,202,223,108,206,229,149,191,171,56,152,205)
IMAGE_DATA(215,104,254,190,20,3,179,217,154,193,222,76,254,108,12,204,102,27,168,252,253,73,101,197,95,196,192,92,246,130,191,249)
IMAGE_DATA(252,69,12,204,101,47,248,11,254,190,42,193,63,48,248,139,24,152,203,94,196,192,124,246,130,191,249,252,69,12,204,255)
IMAGE_DATA(127,180,154,189,127,179,37,248,7,54,127,52,179,25,4,50,123,106,102,179,8,100,246,212,204,102,18,200,236,209,204,230)
IMAGE_DATA(18,232,252,209,204,102,19,200,236,169,153,205,40,144,217,163,153,205,41,208,249,83,51,155,87,160,114,103,205,108,118,129)
IMAGE_DATA(204,158,154,217,12,3,153,61,53,179,89,6,50,123,106,102,51,13,100,246,212,204,102,27,200,236,89,51,155,115,160,114)
IMAGE_DATA(167,102,54,239,64,231,207,154,96,110,190,9,246,230,155,96,239,59,38,152,155,111,130,189,111,152,224,238,59,38,152,251)
IMAGE_DATA(142,149,7,230,255,5,22,28,76,147,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
IMAGE_END_DATA(7072, 9)
IMAGE_DATA(120,156,237,157,9,120,13,215,23,192,223,203,190,136,72,16,18,36,98,73,8,9,137,36,180,138,210,86,171,181,212,94)
IMAGE_DATA(165,173,22,93,80,170,90,181,133,216,213,78,169,18,59,177,239,107,236,132,150,182,232,110,251,151,218,213,94,75,146,183)
IMAGE_DATA(196,220,255,61,51,115,95,238,155,204,188,45,47,51,47,50,231,251,206,103,36,243,238,157,249,221,123,207,57,247,222,115)
IMAGE_DATA(95,252,42,107,42,107,236,21,63,63,191,42,201,201,201,3,27,54,108,184,246,149,87,94,249,161,75,151,46,136,86,248)
IMAGE_DATA(25,252,46,46,46,238,99,124,111,164,221,21,72,72,112,112,112,108,124,124,252,84,168,99,198,140,25,232,216,177,99,232)
IMAGE_DATA(252,249,243,72,40,240,51,248,221,178,101,203,216,231,129,207,4,4,4,216,255,162,188,184,185,185,121,37,38,38,142,106)
IMAGE_DATA(211,166,205,21,40,243,238,221,187,249,234,148,18,184,23,62,3,159,141,142,142,30,128,139,115,183,167,110,127,127,255,82)
IMAGE_DATA(240,185,148,148,20,209,119,181,85,128,71,159,62,125,16,255,12,30,182,214,95,169,82,165,142,192,90,40,185,55,174,161)
IMAGE_DATA(172,244,69,232,191,47,122,163,187,29,95,67,183,155,55,64,183,95,169,143,238,182,111,142,30,124,254,49,202,90,58,31)
IMAGE_DATA(229,94,187,146,143,5,60,3,148,233,225,225,81,202,145,186,115,111,94,71,15,71,13,70,183,95,78,70,183,95,74,178)
IMAGE_DATA(172,248,158,135,35,7,177,159,17,123,6,92,133,143,84,221,192,73,88,119,206,158,29,232,206,27,141,173,215,43,208,59)
IMAGE_DATA(45,155,32,221,193,61,249,158,65,170,63,64,95,131,246,166,37,107,213,18,187,235,165,245,209,164,81,162,109,193,63,131)
IMAGE_DATA(73,96,140,193,207,233,62,14,239,45,85,238,253,94,93,208,147,180,111,80,206,246,141,40,103,199,38,124,61,27,221,255)
IMAGE_DATA(240,109,243,186,167,141,71,136,97,242,245,33,232,207,80,151,175,175,111,69,82,63,140,213,29,59,118,152,245,179,59,175)
IMAGE_DATA(55,202,87,239,189,110,111,34,253,137,227,249,202,36,162,255,249,24,186,251,86,75,244,120,246,20,201,123,64,160,46,168)
IMAGE_DATA(19,234,246,246,246,246,129,113,74,143,179,39,51,62,205,87,247,131,190,239,35,230,209,35,139,229,130,48,89,79,172,222)
IMAGE_DATA(3,117,65,157,80,63,216,84,186,221,153,236,11,200,184,219,27,61,252,170,178,169,110,24,107,79,255,187,111,181,92,123)
IMAGE_DATA(4,234,132,241,0,54,27,236,4,145,167,255,140,71,198,125,158,172,102,125,83,22,221,105,145,136,114,50,182,57,181,110)
IMAGE_DATA(16,168,147,248,18,154,125,238,201,230,166,250,65,245,27,35,17,50,26,157,94,63,212,73,252,24,45,198,204,138,102,245)
IMAGE_DATA(231,254,209,69,162,4,78,154,141,123,98,179,30,252,203,252,61,136,239,52,171,127,191,183,89,253,79,255,54,183,9,5)
IMAGE_DATA(169,63,253,123,131,162,245,47,62,172,183,94,191,144,255,239,111,57,173,254,181,199,243,191,127,190,254,119,234,85,179,250)
IMAGE_DATA(175,101,198,33,195,83,251,251,223,197,219,79,243,213,127,248,76,94,57,164,255,229,31,127,19,77,117,111,219,17,137,94)
IMAGE_DATA(88,253,38,218,124,97,159,221,245,175,62,102,200,87,255,205,255,242,236,49,25,127,16,175,209,62,143,201,254,7,101,239)
IMAGE_DATA(243,69,227,55,215,67,137,171,219,179,218,124,243,7,232,110,206,3,155,235,126,156,195,160,14,51,178,204,234,238,62,47)
IMAGE_DATA(219,236,30,168,19,236,15,196,138,208,14,180,239,153,126,108,180,169,110,162,221,118,127,137,254,211,91,183,191,134,92,132)
IMAGE_DATA(190,90,149,147,239,221,215,80,109,15,117,65,157,196,7,9,253,207,141,39,183,81,227,245,93,243,61,67,203,173,31,161)
IMAGE_DATA(204,235,39,36,235,62,255,224,18,234,177,101,53,174,239,161,89,221,192,34,91,159,199,158,246,63,32,16,167,10,253,239)
IMAGE_DATA(174,75,153,249,234,39,218,97,103,63,52,245,212,98,180,246,252,46,180,238,127,25,104,206,239,233,168,231,190,97,40,105)
IMAGE_DATA(117,7,246,247,245,151,124,133,154,126,125,213,84,255,145,179,185,102,239,46,244,191,132,129,48,246,89,126,118,139,228,51)
IMAGE_DATA(88,211,164,244,238,168,241,180,159,204,198,60,169,155,126,119,34,90,173,214,93,44,254,218,125,249,40,110,139,110,118,215)
IMAGE_DATA(95,127,77,39,148,246,251,150,124,117,11,99,31,129,120,136,197,159,55,179,238,160,97,63,76,71,201,107,58,216,84,247)
IMAGE_DATA(71,7,70,160,51,247,47,228,171,155,143,63,45,10,196,200,82,241,55,244,203,165,103,54,161,190,135,70,163,22,91,122)
IMAGE_DATA(161,6,107,59,177,239,217,124,115,15,212,107,127,10,219,15,206,222,191,104,246,25,123,234,166,196,199,25,243,15,232,231)
IMAGE_DATA(54,48,151,18,182,63,64,156,100,239,115,144,121,15,53,255,42,144,208,207,97,109,254,9,247,56,171,94,161,144,120,205)
IMAGE_DATA(210,252,219,206,118,214,104,213,197,0,235,162,46,6,168,139,1,32,234,98,128,186,24,160,46,6,168,139,1,82,162,46)
IMAGE_DATA(6,168,139,1,98,162,46,6,168,139,1,234,98,128,186,24,64,215,173,46,6,216,37,234,98,128,64,10,99,49,192,173)
IMAGE_DATA(148,70,122,78,86,170,84,169,184,215,95,127,125,197,196,137,19,255,183,126,253,122,4,10,215,45,91,182,92,26,24,24)
IMAGE_DATA(88,75,178,80,55,55,15,28,216,166,108,221,186,53,199,96,48,228,131,5,63,219,176,97,67,14,118,62,67,240,237,90)
IMAGE_DATA(225,231,19,18,18,122,95,189,122,21,49,122,29,202,90,187,2,221,255,168,27,186,253,218,243,232,246,171,207,225,137,70)
IMAGE_DATA(87,148,181,102,57,251,187,95,127,253,21,197,196,196,244,131,42,201,103,113,189,195,225,179,185,183,110,162,123,31,116,150)
IMAGE_DATA(156,196,60,24,212,135,125,22,40,131,127,14,246,125,51,51,51,17,163,211,229,125,182,69,67,244,100,193,28,100,248,227)
IMAGE_DATA(23,172,191,178,215,119,241,68,196,120,229,146,233,125,14,28,56,128,74,150,44,25,211,172,89,179,185,89,89,89,200,248)
IMAGE_DATA(203,108,116,231,205,58,236,243,194,103,132,194,228,230,154,253,31,62,243,252,243,207,79,5,182,240,127,227,143,73,72,191)
IMAGE_DATA(197,23,101,175,77,181,185,211,147,54,98,63,191,223,159,11,222,238,236,48,187,71,44,40,26,186,38,135,253,29,105,95)
IMAGE_DATA(243,207,111,183,250,249,129,43,178,77,159,207,123,254,100,116,107,79,9,180,245,183,169,146,207,59,122,35,231,164,39,111)
IMAGE_DATA(215,153,158,255,181,215,94,91,10,125,227,210,197,249,232,181,181,111,176,6,238,228,237,191,242,125,246,236,141,92,212,124)
IMAGE_DATA(66,94,80,5,159,121,233,165,151,210,160,79,66,251,233,114,245,168,243,174,207,88,99,252,252,218,183,208,172,95,151,163)
IMAGE_DATA(147,183,254,66,191,220,62,141,22,252,185,14,189,188,248,59,212,116,252,3,244,225,130,108,148,251,148,65,240,25,104,63)
IMAGE_DATA(232,3,184,29,82,161,255,252,139,141,126,231,93,3,36,141,124,219,117,83,208,205,7,79,217,254,83,183,110,221,145,84)
IMAGE_DATA(247,213,214,171,87,175,31,148,161,207,53,160,244,179,219,208,59,56,120,129,231,120,110,109,103,244,214,174,207,217,103,200)
IMAGE_DATA(50,100,179,159,173,89,179,102,111,177,33,132,199,192,144,53,107,214,228,64,223,16,202,195,135,15,81,90,90,26,140,159)
IMAGE_DATA(193,150,6,55,56,121,210,175,232,241,11,63,19,6,0,32,238,170,49,80,141,1,136,106,12,84,99,224,231,200,54,129)
IMAGE_DATA(139,8,24,17,119,108,120,124,113,67,86,40,83,166,76,85,80,184,134,159,105,184,229,215,124,134,198,9,226,142,235,8)
IMAGE_DATA(235,216,177,227,71,75,150,44,217,116,250,244,233,203,247,239,223,127,172,215,235,141,160,112,13,63,131,223,117,238,220,249)
IMAGE_DATA(99,184,87,99,231,214,128,132,184,225,41,100,216,208,161,67,167,94,187,118,237,222,181,191,110,162,221,83,51,209,130,174)
IMAGE_DATA(171,209,164,231,230,162,81,49,211,89,133,107,248,217,238,105,153,232,234,239,55,208,245,235,215,239,13,27,54,108,26,112)
IMAGE_DATA(209,80,70,211,78,241,104,220,184,113,59,252,94,87,206,255,112,17,125,215,57,29,141,136,154,138,198,68,205,64,99,163)
IMAGE_DATA(102,162,177,209,51,209,56,94,225,26,126,6,191,27,137,239,153,219,105,5,58,119,244,34,58,115,230,204,149,38,77,154)
IMAGE_DATA(180,215,216,177,69,1,130,167,140,222,61,122,244,24,114,239,246,125,253,218,33,59,208,240,168,41,104,84,212,116,52,58)
IMAGE_DATA(122,134,77,10,247,166,224,207,172,29,188,3,65,25,61,123,246,28,10,101,218,88,189,39,174,123,232,221,27,247,114,103)
IMAGE_DATA(182,95,138,203,153,138,70,70,79,119,72,225,179,51,219,45,69,80,22,148,9,101,91,169,219,29,51,239,112,231,223,187)
IMAGE_DATA(250,25,237,150,224,247,158,138,203,152,134,134,225,127,201,117,74,180,21,197,247,192,189,195,240,251,167,240,159,155,142,203)
IMAGE_DATA(130,50,161,108,141,116,191,212,226,254,18,254,231,159,127,94,77,31,188,13,13,142,154,140,134,70,79,69,131,170,79,66)
IMAGE_DATA(7,23,28,67,27,198,236,70,35,146,103,178,63,31,130,203,134,127,105,37,63,27,94,111,6,90,151,154,129,142,44,255)
IMAGE_DATA(25,13,138,158,196,150,1,63,135,50,113,217,87,112,127,14,215,136,143,81,175,33,67,134,204,248,227,240,57,52,48,234)
IMAGE_DATA(107,52,56,26,151,23,61,25,141,124,254,27,148,157,157,205,234,127,119,31,162,141,95,239,69,235,199,238,70,71,86,157)
IMAGE_DATA(64,167,118,99,99,191,231,52,250,126,205,73,180,113,194,94,180,14,255,252,254,173,7,166,251,39,188,58,159,45,3,202)
IMAGE_DATA(130,50,255,200,60,135,6,15,30,60,3,234,18,190,59,44,213,92,188,120,241,222,148,142,139,209,151,81,147,208,151,248)
IMAGE_DATA(115,95,226,231,31,223,98,62,122,242,228,137,67,58,165,211,98,182,12,182,44,92,38,148,125,225,194,133,123,252,246,37)
IMAGE_DATA(205,192,189,67,135,14,125,207,157,188,136,250,85,159,128,6,226,207,112,250,53,26,80,103,18,122,244,240,17,122,252,248)
IMAGE_DATA(177,221,58,184,193,116,246,189,73,121,253,162,198,163,243,39,255,65,237,219,183,239,43,232,7,62,216,209,108,91,247,245)
IMAGE_DATA(110,212,63,106,34,250,12,215,11,218,63,106,2,90,145,178,13,61,122,244,200,33,93,63,105,15,91,70,94,121,19,217)
IMAGE_DATA(159,205,159,63,127,171,134,218,174,195,182,59,232,228,201,147,87,190,126,107,49,126,198,9,168,95,244,68,86,251,212,24)
IMAGE_DATA(143,174,255,243,47,235,8,29,209,59,55,239,162,126,113,95,227,178,248,50,113,217,147,186,44,70,39,78,156,184,2,117)
IMAGE_DATA(82,253,190,218,149,43,87,30,15,124,110,42,234,19,61,30,235,4,246,223,212,55,230,162,255,254,251,175,64,58,161,243)
IMAGE_DATA(34,212,39,42,175,76,168,3,234,130,58,249,62,160,197,62,44,238,206,157,59,185,31,214,28,139,62,193,247,128,126,28)
IMAGE_DATA(61,14,141,237,180,0,61,120,240,160,64,58,245,131,229,232,227,168,113,166,114,63,138,25,139,112,93,70,92,103,44,95)
IMAGE_DATA(191,27,212,127,251,246,237,220,30,53,198,160,15,113,189,156,142,69,195,94,159,131,176,111,43,144,142,233,148,134,62,140)
IMAGE_DATA(26,107,42,183,71,205,49,8,215,5,245,199,105,56,223,4,252,163,46,93,186,244,164,111,253,201,168,103,244,24,172,99)
IMAGE_DATA(57,173,61,22,221,250,247,54,186,119,239,158,67,10,75,100,189,19,191,70,61,72,121,184,236,79,27,76,70,255,252,243)
IMAGE_DATA(15,240,143,34,252,113,95,40,251,227,143,63,94,77,237,52,31,189,31,53,26,189,143,239,3,125,47,42,21,237,91,123)
IMAGE_DATA(140,45,199,17,253,126,231,41,182,12,82,30,148,157,218,121,62,58,126,252,248,85,168,147,178,1,37,191,253,246,219,29)
IMAGE_DATA(75,198,110,69,239,226,251,223,139,30,205,234,187,81,163,80,255,102,211,208,149,127,174,65,155,217,165,215,175,222,68,95)
IMAGE_DATA(190,62,139,45,35,175,188,84,180,100,220,54,4,117,65,157,244,248,111,215,174,221,231,167,142,254,133,222,174,62,2,117)
IMAGE_DATA(195,247,117,141,26,137,222,142,26,193,254,251,101,203,111,208,239,63,159,131,118,179,73,79,255,250,63,52,180,195,92,246)
IMAGE_DATA(179,221,162,71,153,180,11,46,251,212,247,127,161,182,109,219,126,174,49,223,174,135,248,42,6,251,135,251,131,218,206,70)
IMAGE_DATA(93,112,189,99,63,88,140,126,59,126,22,165,116,153,143,222,138,74,65,93,106,140,64,35,223,73,67,233,51,118,161,83)
IMAGE_DATA(199,254,66,183,110,221,50,211,223,126,58,131,86,205,202,64,163,187,47,68,93,106,142,196,101,224,231,143,78,53,41,252)
IMAGE_DATA(255,171,118,115,192,7,221,199,246,55,70,96,255,160,29,2,7,14,28,248,109,230,206,19,168,99,212,112,172,41,104,202)
IMAGE_DATA(103,43,88,246,189,95,154,130,58,225,103,2,237,24,61,28,253,113,226,28,250,247,223,127,205,244,236,239,127,163,206,53)
IMAGE_DATA(71,160,206,248,158,206,209,160,35,41,29,193,150,151,185,235,36,130,58,160,46,17,31,232,133,159,171,246,177,99,199,174)
IMAGE_DATA(77,25,144,142,218,227,103,0,61,180,227,103,150,231,248,79,150,162,1,173,102,161,57,195,215,163,155,55,111,138,234,128)
IMAGE_DATA(214,179,80,135,232,20,252,140,35,204,180,3,188,11,46,243,135,31,126,184,6,117,136,248,63,194,32,160,97,195,134,239)
IMAGE_DATA(159,63,251,63,125,255,86,51,81,219,168,97,168,95,203,233,232,194,249,127,32,166,68,55,110,176,177,165,164,14,234,60)
IMAGE_DATA(7,181,195,245,211,218,22,191,67,191,86,51,208,57,92,38,148,13,117,136,188,187,169,31,96,45,243,206,59,239,140,59)
IMAGE_DATA(243,231,249,220,79,241,231,90,71,13,69,111,39,143,65,227,250,46,69,211,6,175,66,115,199,110,64,56,22,22,213,47)
IMAGE_DATA(58,205,70,109,112,251,188,201,234,48,212,6,63,127,95,252,252,80,22,148,9,101,107,172,199,229,158,56,86,12,237,214)
IMAGE_DATA(173,219,184,179,167,207,235,191,30,176,2,181,140,26,194,235,80,244,105,219,25,8,38,125,98,58,160,227,55,168,21,174)
IMAGE_DATA(183,21,190,175,101,245,33,104,220,167,75,209,153,191,206,233,113,221,227,113,185,161,26,235,241,159,169,47,96,13,193,19)
IMAGE_DATA(184,30,71,142,28,185,182,127,251,143,168,207,155,51,80,139,234,95,225,127,167,131,255,16,213,254,157,102,225,123,6,163)
IMAGE_DATA(222,173,167,163,189,91,142,163,163,71,143,94,199,204,123,66,89,18,109,110,73,32,102,15,194,253,37,190,127,255,254,223)
IMAGE_DATA(157,58,117,234,254,247,7,78,161,204,189,39,208,229,203,151,69,245,232,254,147,232,200,190,147,8,238,29,48,96,192,60)
IMAGE_DATA(248,44,148,161,177,51,254,167,4,252,3,204,235,66,112,89,9,173,91,183,30,60,99,198,140,140,67,135,14,93,195,227)
IMAGE_DATA(248,9,142,165,140,160,112,13,63,155,57,115,102,70,155,54,109,6,195,189,252,59,251,106,28,159,255,208,226,206,151,5)
IMAGE_DATA(239,18,138,109,119,21,108,175,234,97,31,246,2,40,92,195,207,52,92,27,7,241,247,58,99,254,39,20,45,95,174,23)
IMAGE_DATA(95,135,63,175,190,252,207,236,158,255,90,220,38,160,196,221,199,199,39,16,84,99,199,139,69,70,70,198,76,154,48,57)
IMAGE_DATA(109,235,220,140,171,251,102,29,49,130,194,245,228,9,83,210,170,84,169,34,185,178,136,69,219,227,131,30,159,239,152,182)
IMAGE_DATA(63,103,124,194,108,52,26,79,44,199,68,115,10,215,240,51,248,93,207,30,61,193,145,228,123,97,252,217,129,203,250,110)
IMAGE_DATA(100,82,248,73,211,136,104,115,101,39,82,248,119,112,15,220,43,120,230,216,77,83,246,232,96,210,178,118,248,78,116,116)
IMAGE_DATA(229,9,52,171,211,50,180,164,207,6,180,180,207,70,52,171,227,50,148,185,226,103,180,97,212,110,118,98,179,105,234,158)
IMAGE_DATA(28,248,12,121,238,241,99,38,44,26,28,63,13,125,129,3,238,93,115,51,37,131,243,61,11,191,71,95,224,73,193,224)
IMAGE_DATA(132,105,104,220,232,9,139,248,247,240,90,53,107,243,181,126,81,19,217,160,245,127,191,252,35,25,220,94,252,235,10,234)
IMAGE_DATA(87,3,130,218,137,216,241,109,186,6,159,197,237,83,118,205,228,93,198,222,56,208,251,178,225,116,171,193,225,144,166,223)
IMAGE_DATA(32,184,119,205,148,93,70,252,217,50,240,249,149,147,118,26,123,225,96,169,119,252,68,54,136,177,20,96,125,154,52,25)
IMAGE_DATA(193,189,43,39,237,128,207,67,64,227,187,120,218,218,235,239,65,208,129,245,192,134,31,37,3,148,204,109,39,16,185,15)
IMAGE_DATA(62,163,225,7,107,234,136,209,203,222,175,59,22,141,126,103,33,250,228,133,73,40,125,218,46,236,220,207,154,28,253,31)
IMAGE_DATA(39,206,162,149,51,50,208,7,241,227,80,87,236,216,223,143,31,139,82,83,70,45,211,240,3,189,114,229,202,73,243,199)
IMAGE_DATA(109,208,189,223,96,60,202,88,243,61,250,248,197,201,104,205,156,61,38,39,185,116,202,118,214,25,119,98,157,242,8,4)
IMAGE_DATA(247,194,103,168,46,224,129,141,255,240,81,189,22,50,195,187,207,71,187,214,29,69,191,157,56,109,114,50,235,23,238,227)
IMAGE_DATA(28,12,118,108,169,61,23,50,112,175,38,191,129,243,237,218,181,91,202,156,49,107,117,237,235,142,64,171,230,237,54,25)
IMAGE_DATA(233,53,11,246,160,246,117,71,162,217,163,214,232,240,61,35,248,247,22,19,207,136,136,136,231,135,13,73,73,223,183,247)
IMAGE_DATA(224,141,191,255,254,219,8,186,31,95,195,207,224,119,26,219,28,10,24,134,32,220,62,149,65,53,156,129,18,117,6,49)
IMAGE_DATA(221,53,221,109,40,79,21,85,84,81,69,21,85,84,81,69,21,85,84,81,69,149,34,37,41,169,72,51,130,87,184,30)
IMAGE_DATA(142,117,24,214,161,88,7,99,253,10,235,32,172,95,98,253,2,235,231,88,7,96,253,12,107,127,172,253,176,246,197,218)
IMAGE_DATA(7,107,111,172,159,96,253,8,235,135,88,123,97,237,137,245,3,172,239,99,237,142,245,61,172,239,98,237,134,181,43,214)
IMAGE_DATA(183,177,118,193,218,25,107,39,172,29,177,118,192,218,14,107,91,172,111,98,109,131,181,53,214,150,88,223,192,250,58,214)
IMAGE_DATA(22,88,95,197,218,28,235,43,88,95,198,218,12,107,83,172,47,98,109,130,181,49,214,23,176,54,196,250,60,214,231,176)
IMAGE_DATA(214,199,154,140,53,9,107,34,214,4,172,241,88,235,98,173,131,53,14,171,156,2,220,71,242,58,66,192,127,136,8,255)
IMAGE_DATA(129,14,240,239,225,0,255,246,14,240,127,169,136,241,31,206,51,87,249,231,241,151,83,128,181,106,127,148,227,63,140,231)
IMAGE_DATA(77,43,221,247,133,252,7,138,240,255,84,192,255,99,27,248,191,163,242,103,101,40,207,155,86,41,246,196,246,208,252,251)
IMAGE_DATA(217,192,191,135,13,252,223,178,129,127,43,1,255,215,108,224,223,200,133,249,15,230,57,15,21,40,97,47,197,95,104,123)
IMAGE_DATA(8,127,98,123,104,254,196,246,211,252,223,181,129,127,123,7,248,191,100,3,255,6,86,248,203,41,95,81,156,135,136,112)
IMAGE_DATA(183,214,247,165,108,63,225,79,251,94,194,159,216,126,154,127,23,1,127,226,123,105,254,173,5,252,91,216,192,191,177,13)
IMAGE_DATA(252,235,41,200,127,16,197,89,168,131,108,100,111,139,237,23,139,125,222,73,53,183,253,132,63,29,251,16,254,196,246,91)
IMAGE_DATA(226,79,98,31,75,252,159,115,49,254,95,82,156,133,250,165,8,123,123,250,190,37,219,47,22,251,0,127,97,236,9,252)
IMAGE_DATA(105,223,75,248,19,223,75,248,211,177,39,225,79,124,47,225,79,108,63,205,63,81,192,95,78,219,255,5,207,246,75,9)
IMAGE_DATA(37,191,183,196,94,216,247,9,127,97,223,183,215,246,75,197,254,192,159,142,125,128,191,48,246,7,254,116,236,35,197,159)
IMAGE_DATA(216,126,154,191,156,50,144,103,59,144,98,77,51,39,74,184,219,202,222,86,219,211,45,53,191,237,177,199,247,218,58,247)
IMAGE_DATA(2,254,116,236,3,252,105,223,75,248,203,109,123,6,80,253,250,115,1,111,186,191,19,238,142,178,183,213,246,72,217,126)
IMAGE_DATA(49,223,107,107,236,105,75,236,15,252,229,182,253,132,231,0,43,74,115,23,99,95,144,190,111,205,246,216,106,251,109,245)
IMAGE_DATA(189,214,98,79,57,133,240,252,204,138,210,220,29,97,47,214,247,165,226,30,75,182,71,108,222,107,143,239,181,37,246,145)
IMAGE_DATA(83,8,207,126,20,99,161,210,247,16,238,180,205,113,148,189,173,113,143,37,219,99,143,237,183,53,246,145,83,250,242,76)
IMAGE_DATA(137,246,75,205,207,155,40,205,157,238,243,150,216,219,178,222,32,214,247,45,197,61,82,182,71,106,222,43,102,251,93,193)
IMAGE_DATA(247,18,142,125,109,84,154,59,221,231,197,216,59,187,239,59,98,123,236,177,253,196,247,202,41,132,99,111,138,173,148,210)
IMAGE_DATA(247,10,251,188,51,216,219,211,247,45,197,61,150,226,126,87,179,253,31,83,44,123,91,81,154,185,176,207,219,98,115,236)
IMAGE_DATA(101,47,214,247,197,230,92,142,218,30,87,152,119,125,36,224,73,183,135,24,111,97,127,39,220,109,101,111,43,127,41,246)
IMAGE_DATA(98,182,71,172,239,91,178,61,82,113,191,220,182,159,240,251,72,90,65,242,253,92,140,59,109,111,196,216,203,209,247,29)
IMAGE_DATA(137,123,148,140,251,9,191,94,20,83,129,210,98,198,92,200,157,238,243,5,233,247,150,216,219,219,247,165,246,91,92,197)
IMAGE_DATA(246,244,160,24,246,20,176,237,37,253,213,55,102,204,197,184,59,202,222,150,117,102,71,251,190,181,184,71,110,219,67,236)
IMAGE_DATA(68,15,129,82,237,97,77,36,185,11,125,173,20,251,130,244,125,169,152,199,150,245,54,87,136,123,8,183,247,83,243,108)
IMAGE_DATA(54,173,61,108,255,234,39,182,45,132,220,233,62,239,108,246,142,246,125,75,115,46,185,249,147,254,218,157,106,7,74,29)
IMAGE_DATA(21,209,62,47,7,123,71,250,190,146,123,189,239,166,230,245,217,247,168,182,224,181,160,98,214,231,133,246,222,26,123,123)
IMAGE_DATA(248,91,98,111,79,223,151,147,63,177,15,239,10,148,106,15,103,9,203,93,232,107,165,216,59,179,239,75,197,60,74,175)
IMAGE_DATA(245,131,16,251,208,45,53,207,86,211,74,181,137,211,218,193,82,156,227,108,246,174,220,247,65,192,46,116,165,180,155,117)
IMAGE_DATA(117,90,59,40,197,222,82,204,41,119,142,27,216,227,183,41,237,106,187,58,173,29,236,177,247,5,225,111,137,189,18,57)
IMAGE_DATA(110,196,30,131,118,161,244,109,27,149,191,223,105,237,96,137,125,97,246,125,165,242,59,73,252,215,153,106,7,169,54,161)
IMAGE_DATA(85,236,222,206,78,108,7,57,217,43,153,95,11,62,176,19,165,157,29,84,186,140,142,78,108,7,123,216,219,195,95,138)
IMAGE_DATA(189,156,103,43,72,236,209,81,160,157,236,84,225,231,169,152,166,192,252,173,217,251,162,220,247,219,115,140,88,237,32,80)
IMAGE_DATA(33,83,41,21,126,142,46,179,93,170,41,174,41,16,127,49,246,133,97,119,228,62,215,213,142,98,212,94,68,133,108,45)
IMAGE_DATA(177,22,50,39,241,164,32,166,180,155,191,156,236,99,101,230,255,38,197,168,173,128,157,80,197,248,10,149,46,235,205,212)
IMAGE_DATA(2,113,103,217,55,23,97,111,171,205,113,117,254,36,206,126,83,160,109,29,84,97,57,14,50,55,227,255,138,3,236,139)
IMAGE_DATA(74,223,135,24,155,104,27,129,10,89,90,83,234,179,206,18,19,119,97,156,35,197,190,160,118,167,182,204,252,33,190,110)
IMAGE_DATA(69,105,107,129,10,219,68,74,91,59,145,185,152,189,177,37,198,180,151,189,43,240,135,185,77,75,74,91,73,168,176,93)
IMAGE_DATA(136,182,42,36,238,150,236,141,163,54,199,150,190,95,75,70,254,48,167,36,250,6,165,45,173,171,211,152,147,184,70,140)
IMAGE_DATA(187,148,189,177,151,189,173,118,71,78,246,32,100,78,217,130,106,7,177,246,224,213,169,204,165,184,219,210,231,237,137,115)
IMAGE_DATA(236,97,31,35,51,127,96,240,26,165,45,242,171,211,153,91,227,110,75,159,47,12,246,114,243,39,12,94,21,40,223,22)
IMAGE_DATA(78,231,46,100,110,11,119,169,62,47,244,179,142,178,87,178,239,211,28,154,155,107,129,153,11,202,179,200,220,18,119,169)
IMAGE_DATA(62,47,180,245,246,250,90,49,187,83,83,102,254,47,81,44,94,54,103,84,32,230,175,164,138,243,22,99,110,141,187,84)
IMAGE_DATA(159,23,218,27,103,176,175,33,51,255,102,2,30,20,39,155,153,91,98,109,137,185,35,220,45,217,27,97,124,239,8,251)
IMAGE_DATA(104,25,249,147,119,111,42,96,242,146,109,236,45,50,182,198,155,102,46,197,93,204,214,88,178,55,66,91,239,202,236,65)
IMAGE_DATA(232,247,111,106,174,146,204,169,54,202,199,86,76,5,229,218,196,220,86,238,214,236,141,45,190,150,102,47,55,255,198,20)
IMAGE_DATA(131,38,230,108,204,152,11,25,218,170,47,166,138,243,166,153,11,251,186,20,119,49,59,111,201,222,216,195,158,240,143,146)
IMAGE_DATA(153,127,35,1,7,190,61,88,230,34,109,98,151,54,73,149,230,45,198,220,26,119,41,59,47,101,111,196,226,123,75,253)
IMAGE_DATA(30,216,87,151,145,63,253,222,244,184,23,114,162,218,197,38,149,250,188,208,182,72,49,183,133,187,45,125,222,210,220,74)
IMAGE_DATA(105,246,32,228,189,27,10,120,8,219,67,168,182,240,21,170,176,124,186,110,41,230,150,184,219,210,231,237,101,95,77,102)
IMAGE_DATA(254,207,9,250,92,67,129,10,153,57,170,194,114,197,250,185,148,95,149,226,110,75,159,23,218,122,33,251,40,1,251,170)
IMAGE_DATA(50,242,167,251,24,205,224,121,17,21,242,179,85,197,202,18,227,77,51,119,132,187,84,159,23,218,122,33,251,234,10,177)
IMAGE_DATA(7,161,223,183,129,64,159,19,81,49,150,150,84,172,12,97,61,150,152,75,113,23,179,53,82,125,222,82,140,35,100,95)
IMAGE_DATA(69,102,254,73,212,59,39,11,88,136,181,137,165,182,177,196,88,140,117,125,65,221,182,50,151,226,46,213,231,173,217,122)
IMAGE_DATA(154,125,164,204,252,19,5,239,157,44,162,66,102,142,170,88,217,73,206,91,87,117,84,204,216,87,150,145,63,233,91,245)
IMAGE_DATA(168,254,38,108,15,75,237,98,143,138,149,201,215,167,180,40,194,30,132,140,233,4,170,29,196,218,195,82,187,216,162,98)
IMAGE_DATA(101,81,117,41,45,38,246,17,50,243,7,251,25,79,105,130,64,133,109,98,169,109,172,48,54,83,65,61,138,178,175,76)
IMAGE_DATA(177,15,151,153,63,248,173,186,2,141,79,181,220,38,5,85,97,249,117,93,128,63,97,95,73,70,254,36,94,0,173,67)
IMAGE_DATA(169,176,61,196,218,196,81,21,43,155,174,155,126,38,58,134,164,227,25,97,76,35,22,83,138,197,149,180,143,165,237,141)
IMAGE_DATA(18,236,65,106,83,239,24,43,120,247,58,18,42,198,207,22,149,42,79,140,183,53,230,82,220,197,226,121,58,174,164,125)
IMAGE_DATA(44,221,231,9,251,138,50,243,175,37,120,207,216,84,233,246,176,165,109,108,97,44,197,91,138,185,181,190,46,213,223,237)
IMAGE_DATA(233,243,132,125,5,25,249,211,125,137,126,215,218,169,150,219,196,214,54,178,246,57,97,61,98,188,105,230,206,224,46,213)
IMAGE_DATA(231,229,102,15,66,191,87,140,64,107,165,90,110,147,130,170,176,124,97,253,150,152,219,202,93,204,214,72,245,121,208,48)
IMAGE_DATA(153,249,71,83,239,86,67,240,206,98,109,34,214,46,246,170,88,153,194,122,233,103,178,196,188,160,220,9,123,224,30,202)
IMAGE_DATA(171,156,18,37,120,63,97,123,136,181,137,165,182,177,164,82,229,8,235,19,62,143,189,204,165,184,139,217,154,48,138,125)
IMAGE_DATA(121,94,229,18,250,125,162,40,21,190,191,88,155,216,210,62,82,124,45,177,166,121,75,49,119,148,187,152,173,33,125,30)
IMAGE_DATA(184,151,147,145,61,72,53,193,59,73,181,135,165,118,41,136,138,213,33,197,91,140,121,65,184,11,251,60,176,15,145,153)
IMAGE_DATA(127,21,234,157,170,138,188,111,117,17,21,99,230,136,138,149,45,197,219,26,115,71,184,211,125,158,176,47,43,51,127,242)
IMAGE_DATA(30,244,187,85,77,181,220,38,150,218,198,22,149,42,79,88,175,24,111,123,152,219,195,157,176,47,35,35,127,250,61,34)
IMAGE_DATA(5,90,37,213,114,155,216,210,62,214,248,74,177,22,242,182,198,220,94,238,180,173,33,220,229,102,15,18,78,189,75,132)
IMAGE_DATA(224,29,133,239,47,214,38,206,82,177,186,196,120,91,99,110,43,119,218,214,16,238,160,165,101,230,175,138,42,170,168,162)
IMAGE_DATA(138,42,170,168,162,138,42,170,168,162,74,161,73,76,51,77,51,165,159,161,72,8,158,9,35,162,74,63,139,179,196,222)
IMAGE_DATA(119,162,239,127,86,88,216,251,78,98,247,23,117,22,246,190,147,165,251,139,42,11,123,223,201,150,251,139,26,11,71,222)
IMAGE_DATA(201,158,207,20,5,22,142,190,143,189,159,115,101,22,5,125,151,103,129,133,179,222,161,40,179,112,246,179,23,69,22,133)
IMAGE_DATA(245,204,69,137,69,97,63,107,81,96,33,215,51,186,50,11,185,159,205,21,89,40,245,76,174,196,66,233,103,81,186,126)
IMAGE_DATA(87,121,6,165,159,195,85,24,40,249,60,174,198,64,137,231,114,85,6,114,62,159,171,51,144,227,57,139,10,131,194,124)
IMAGE_DATA(222,162,198,128,136,51,159,187,168,50,32,226,140,231,47,234,12,136,20,228,61,158,21,6,68,28,121,159,103,141,1,17)
IMAGE_DATA(149,65,158,168,12,242,68,101,144,39,42,131,60,81,25,228,137,202,128,19,149,131,58,46,64,84,59,169,250,77,16,103)
IMAGE_DATA(51,40,138,44,10,139,65,81,98,81,216,12,138,2,139,130,188,207,179,194,194,25,239,81,212,89,56,243,249,139,42,139)
IMAGE_DATA(194,120,238,162,198,162,48,159,183,168,176,144,227,57,93,157,133,156,207,231,170,44,148,120,46,87,99,161,228,243,184,10)
IMAGE_DATA(11,87,120,14,165,159,65,233,250,93,225,89,92,137,129,82,207,228,138,12,228,126,54,87,102,32,215,51,22,5,6,133)
IMAGE_DATA(253,172,69,137,65,97,61,115,81,100,64,196,89,207,94,148,25,16,41,232,59,60,11,12,136,20,228,93,158,21,6,68)
IMAGE_DATA(228,224,160,228,251,217,35,133,57,54,148,122,39,71,165,48,108,165,220,239,224,44,113,244,157,158,37,6,68,28,125,167)
IMAGE_DATA(103,137,1,145,103,241,157,10,67,98,186,107,186,107,226,53,83,149,126,14,85,138,184,188,214,178,39,2,85,250,57,138)
IMAGE_DATA(163,16,246,106,27,200,43,66,238,106,59,200,39,214,216,171,109,80,120,98,43,123,181,13,156,43,246,114,87,219,193,121)
IMAGE_DATA(82,80,246,106,27,56,46,206,98,175,182,129,237,226,108,230,106,91,216,46,114,177,87,219,192,92,228,230,94,220,219,65)
IMAGE_DATA(105,222,197,177,61,148,102,90,220,218,66,105,110,207,98,123,40,253,238,69,77,85,246,202,171,202,191,232,243,87,250,29)
IMAGE_DATA(138,186,170,252,85,254,197,89,85,254,42,255,226,172,42,127,149,127,113,86,149,191,202,191,56,171,202,95,229,95,156,85)
IMAGE_DATA(229,175,242,47,206,170,242,87,249,23,103,85,249,171,252,93,77,215,162,111,89,85,249,43,199,94,229,175,44,123,185,218)
IMAGE_DATA(64,229,47,205,94,142,54,80,249,91,102,95,216,109,80,220,249,219,194,94,229,175,28,251,194,126,134,226,200,95,233,62)
IMAGE_DATA(239,76,254,69,173,13,108,101,95,20,250,190,92,252,157,197,196,85,184,23,101,254,142,242,113,165,126,95,148,248,59,131)
IMAGE_DATA(145,171,113,47,10,252,157,197,203,85,217,63,11,252,173,113,115,101,246,174,206,191,160,227,192,149,185,23,37,254,142,176)
IMAGE_DATA(116,245,126,239,76,246,114,180,129,61,44,139,2,251,162,198,223,94,182,174,204,93,229,175,60,251,162,202,191,160,109,160)
IMAGE_DATA(52,243,103,129,191,35,237,160,52,107,149,191,242,188,139,43,127,165,57,63,171,252,173,181,131,210,124,229,230,239,74,109)
IMAGE_DATA(160,52,91,37,216,43,201,159,110,3,165,217,22,87,254,69,73,11,139,191,218,6,202,178,87,249,43,207,95,109,3,101)
IMAGE_DATA(217,171,252,85,254,174,170,42,255,226,193,95,109,3,101,217,171,109,160,60,123,149,191,242,252,213,54,80,254,59,90,149)
IMAGE_DATA(126,127,165,85,229,95,188,249,131,40,205,160,56,179,39,162,52,139,226,204,158,136,210,76,138,51,123,16,165,185,20,119)
IMAGE_DATA(254,32,74,179,41,206,236,137,40,205,168,56,179,7,81,154,83,113,231,79,68,105,94,197,149,59,45,74,179,43,206,236)
IMAGE_DATA(137,40,205,176,56,179,39,162,52,203,226,204,158,136,210,76,139,51,123,34,74,179,45,206,236,105,81,154,115,113,229,78)
IMAGE_DATA(68,105,222,197,157,63,45,42,115,229,69,101,175,188,168,236,93,71,84,230,202,139,202,222,53,68,229,238,58,162,50,119)
IMAGE_DATA(29,121,22,152,199,116,215,116,87,250,25,236,18,173,86,83,223,223,199,173,117,195,58,1,25,239,183,42,155,177,122,108)
IMAGE_DATA(245,135,39,151,199,161,139,91,18,152,251,123,147,152,236,195,245,81,118,102,50,243,248,96,18,115,43,35,17,157,94,95)
IMAGE_DATA(151,57,252,93,45,102,232,251,21,126,104,221,56,40,35,188,156,215,119,238,238,154,23,112,81,238,74,191,75,81,16,173)
IMAGE_DATA(70,83,179,66,89,207,169,221,90,148,217,187,111,118,76,214,173,221,137,76,206,209,6,72,239,160,234,190,111,128,30,29)
IMAGE_DATA(76,70,199,151,196,102,245,235,28,122,60,50,204,123,30,110,211,58,74,191,167,43,9,230,81,35,58,220,103,210,244,207)
IMAGE_DATA(194,47,94,222,92,215,152,147,153,140,116,184,79,235,143,214,71,58,96,120,164,62,195,178,44,192,181,158,191,134,182,252)
IMAGE_DATA(103,115,66,238,160,119,195,126,42,91,202,227,115,92,189,175,210,239,175,144,148,47,93,210,253,131,49,189,194,46,92,222)
IMAGE_DATA(24,103,204,57,88,143,209,97,213,31,78,66,186,67,73,140,238,112,18,163,63,82,159,101,102,226,233,192,53,205,94,120)
IMAGE_DATA(79,86,102,125,180,107,102,205,187,241,209,126,203,240,243,68,40,13,68,14,113,195,246,60,169,134,223,183,7,102,86,127)
IMAGE_DATA(156,189,47,30,233,15,36,112,122,176,30,210,31,74,228,20,183,129,30,143,1,86,113,27,56,106,123,108,182,81,88,143)
IMAGE_DATA(45,138,205,169,17,225,51,5,63,98,9,165,25,21,130,104,221,221,52,13,218,55,14,204,188,176,178,38,163,223,91,135)
IMAGE_DATA(209,239,171,139,116,123,235,50,186,125,117,25,224,175,219,159,192,232,14,36,48,192,95,119,40,145,1,213,243,118,136,179)
IMAGE_DATA(69,142,245,127,123,174,115,240,191,75,83,171,221,244,245,118,123,93,243,140,248,107,220,223,19,219,52,44,153,121,101,77)
IMAGE_DATA(13,198,176,39,14,233,119,199,50,250,221,113,184,13,128,127,29,142,255,126,224,31,207,241,63,136,249,131,45,34,252,177)
IMAGE_DATA(29,146,139,63,185,190,189,39,9,37,197,248,207,193,143,239,167,52,191,2,72,112,237,72,239,153,191,165,85,203,54,236)
IMAGE_DATA(174,141,12,25,88,119,199,98,141,67,208,14,134,189,117,16,180,1,140,3,253,126,43,118,8,108,144,12,118,72,104,147)
IMAGE_DATA(176,143,62,143,223,163,140,210,32,237,20,109,9,95,109,215,149,67,42,92,211,239,172,201,24,118,214,66,186,157,49,140)
IMAGE_DATA(110,87,45,198,144,17,139,116,25,181,25,93,70,44,30,11,117,144,110,79,28,163,99,109,81,60,130,113,0,99,0,248)
IMAGE_DATA(195,56,200,243,197,137,121,190,24,108,145,12,253,223,116,125,180,62,51,125,64,196,223,248,157,130,149,134,106,163,148,236)
IMAGE_DATA(242,98,192,209,199,91,106,32,195,246,154,72,191,29,248,199,32,104,3,253,78,224,15,227,32,22,233,113,27,144,49,160)
IMAGE_DATA(219,195,249,2,24,3,186,125,241,156,47,0,254,7,234,49,100,12,176,252,249,113,32,140,105,228,184,158,220,47,226,18)
IMAGE_DATA(188,155,210,112,45,137,143,167,246,213,131,147,194,115,12,219,162,145,97,27,240,199,186,163,38,86,224,143,117,87,45,172)
IMAGE_DATA(66,59,84,135,179,67,192,31,98,33,147,29,170,151,103,135,192,6,41,104,135,136,45,106,251,98,240,94,165,25,75,136)
IMAGE_DATA(91,82,117,239,165,183,86,85,53,26,182,70,33,253,150,40,6,218,64,143,219,0,43,3,109,160,199,109,128,149,129,54)
IMAGE_DATA(192,125,31,233,119,225,254,143,219,64,207,250,99,240,197,92,27,64,60,196,250,98,126,12,176,182,136,143,135,248,88,8)
IMAGE_DATA(153,124,49,213,63,11,251,90,127,164,1,250,239,64,18,227,239,227,214,94,105,216,2,9,253,170,99,208,255,116,155,170)
IMAGE_DATA(33,195,230,234,72,191,185,26,163,223,92,157,49,108,197,252,183,70,51,250,109,209,12,177,67,250,29,156,47,0,59,164)
IMAGE_DATA(7,95,0,252,51,32,22,194,190,128,183,67,172,47,0,59,4,177,16,241,5,244,188,12,98,161,195,201,118,205,203,104)
IMAGE_DATA(91,82,144,123,64,183,76,171,161,195,239,92,74,105,232,32,56,174,172,185,168,127,217,127,244,155,170,34,3,203,159,107)
IMAGE_DATA(3,195,150,40,4,252,89,221,198,249,129,60,59,84,139,178,67,177,156,29,218,227,160,29,146,217,6,145,49,17,224,231)
IMAGE_DATA(214,85,105,246,190,94,154,142,71,39,133,233,13,27,171,32,221,134,42,140,110,99,21,6,218,0,143,3,70,135,199,0)
IMAGE_DATA(180,129,14,219,33,221,86,176,69,53,144,14,219,33,29,239,139,117,216,14,65,60,4,126,64,183,139,196,66,113,72,135)
IMAGE_DATA(237,16,241,197,57,16,11,209,190,248,96,189,188,121,25,239,139,101,143,133,248,235,143,219,149,251,89,195,46,19,42,35)
IMAGE_DATA(254,222,218,142,191,205,172,160,215,175,171,204,24,54,84,65,250,245,145,140,126,3,199,95,191,177,42,163,223,196,241,215)
IMAGE_DATA(111,169,206,112,190,0,252,0,216,34,240,5,224,7,192,22,129,47,0,63,128,109,17,196,66,187,249,121,25,142,71,57)
IMAGE_DATA(63,80,71,124,94,124,80,153,121,49,125,125,114,89,44,3,24,20,98,223,225,236,156,10,6,227,186,202,200,176,62,146)
IMAGE_DATA(83,220,6,134,141,85,57,229,253,128,153,29,218,102,193,14,101,228,183,67,122,49,59,116,80,104,135,146,21,139,135,110)
IMAGE_DATA(237,77,130,13,32,217,125,128,143,167,166,221,153,111,194,140,198,181,17,72,191,38,156,209,175,141,96,128,191,126,93,36)
IMAGE_DATA(163,195,99,0,248,115,182,168,42,3,252,117,216,15,235,120,95,172,195,190,88,199,251,98,221,118,108,139,118,144,121,89)
IMAGE_DATA(45,110,94,182,27,230,101,177,140,78,204,23,239,19,250,226,68,202,23,59,103,141,212,158,235,135,7,147,24,15,119,109)
IMAGE_DATA(39,57,217,107,181,154,184,19,83,202,231,26,86,87,98,140,107,194,77,252,97,28,128,29,2,27,196,218,34,204,95,207)
IMAGE_DATA(242,199,182,104,19,137,133,184,152,20,226,33,152,19,128,29,34,243,50,61,246,3,220,188,140,155,147,233,249,121,177,94)
IMAGE_DATA(108,94,124,192,53,230,197,15,112,28,234,230,166,121,81,70,252,165,214,12,40,125,211,184,186,18,98,21,243,135,49,192)
IMAGE_DATA(170,53,59,180,133,182,67,53,204,237,208,78,98,135,106,83,118,40,46,191,29,2,27,180,159,90,27,58,152,40,110,135)
IMAGE_DATA(100,178,63,151,183,215,3,251,35,151,253,247,28,222,62,224,134,97,85,69,100,196,170,95,85,145,33,109,0,99,192,184)
IMAGE_DATA(182,50,34,99,128,239,255,200,228,139,57,229,124,177,105,94,134,251,255,118,50,47,99,251,63,59,6,88,95,156,81,27)
IMAGE_DATA(153,124,241,30,86,25,178,62,103,242,197,252,24,96,125,49,63,6,56,95,92,95,182,121,217,250,137,81,143,48,23,31)
IMAGE_DATA(25,216,187,213,9,247,88,98,72,15,67,198,149,21,144,62,189,2,163,95,89,129,229,175,199,118,8,148,245,5,224,7)
IMAGE_DATA(214,113,99,128,139,133,56,95,96,138,133,216,121,25,137,133,200,188,140,159,23,111,39,177,16,153,151,241,243,98,126,141)
IMAGE_DATA(154,245,5,16,11,177,243,226,120,241,53,106,226,11,50,197,231,101,166,216,221,9,243,47,253,247,13,208,171,13,74,29)
IMAGE_DATA(145,129,189,198,219,83,211,234,86,90,121,100,4,254,233,21,216,54,48,178,227,192,70,59,180,73,202,14,69,91,182,67)
IMAGE_DATA(150,214,168,247,43,187,87,6,107,16,216,247,190,38,3,254,144,197,31,7,222,52,44,47,207,232,151,135,50,70,106,12)
IMAGE_DATA(16,59,164,95,149,223,23,147,49,0,109,96,138,133,76,243,50,222,23,243,107,19,224,139,217,88,136,204,203,96,141,154)
IMAGE_DATA(248,98,126,109,66,114,141,90,224,139,115,108,241,197,180,61,145,234,231,86,238,25,215,187,18,236,7,184,21,54,252,132)
IMAGE_DATA(202,30,105,152,61,210,47,43,135,249,151,103,140,43,194,144,126,69,40,163,79,15,227,248,175,4,254,21,57,254,171,49)
IMAGE_DATA(127,240,5,224,7,112,59,80,190,128,161,124,1,163,223,76,230,101,16,11,145,121,25,196,66,100,94,6,177,16,55,47)
IMAGE_DATA(6,59,68,214,168,217,245,57,50,47,19,206,139,205,246,43,11,119,94,140,251,254,83,31,175,194,239,251,238,110,154,70)
IMAGE_DATA(103,166,148,206,49,46,43,135,140,184,13,140,203,67,145,113,69,104,126,59,100,41,30,218,64,219,161,106,148,29,138,50)
IMAGE_DATA(143,135,182,19,59,20,99,159,29,18,174,13,29,42,252,53,234,209,31,87,58,83,216,236,177,184,189,223,196,231,71,195)
IMAGE_DATA(210,178,140,113,105,57,164,95,138,251,63,30,3,192,31,236,16,140,1,107,190,152,204,203,96,78,6,54,136,157,151,97)
IMAGE_DATA(59,164,219,84,149,242,197,213,89,95,204,205,203,56,95,12,118,72,199,251,98,110,94,198,249,98,152,147,233,164,124,241)
IMAGE_DATA(254,132,188,121,153,13,190,216,161,235,35,120,206,187,59,145,241,242,212,190,94,216,240,61,221,53,77,111,125,91,154,209)
IMAGE_DATA(47,38,252,67,24,104,3,24,7,96,135,88,254,120,28,128,29,98,249,99,95,204,250,2,118,94,198,205,139,13,224,11)
IMAGE_DATA(120,63,144,131,99,161,236,245,85,208,157,244,72,230,108,90,68,206,169,57,225,217,63,205,10,207,254,121,118,68,246,175)
IMAGE_DATA(243,34,179,47,46,171,106,188,191,62,138,201,134,53,186,29,252,26,53,27,11,197,112,107,212,25,22,214,168,233,121,241)
IMAGE_DATA(1,225,26,181,243,230,197,224,19,154,55,8,220,80,216,236,65,62,108,234,253,147,113,73,89,196,234,210,16,4,109,32)
IMAGE_DATA(109,135,42,82,118,8,108,80,56,194,236,209,185,111,43,60,157,208,45,232,204,203,117,124,246,6,248,106,219,120,184,107)
IMAGE_DATA(26,105,53,154,70,184,248,0,145,42,171,224,185,117,35,79,15,77,163,178,129,238,159,53,175,231,191,119,228,59,101,79)
IMAGE_DATA(253,185,168,250,211,108,24,11,123,98,243,219,161,124,107,212,9,133,186,87,182,114,108,212,61,141,12,243,45,108,247,95)
IMAGE_DATA(188,62,43,136,49,46,46,131,244,139,202,48,198,37,33,108,27,192,24,48,46,43,143,200,24,0,95,76,198,0,240,215)
IMAGE_DATA(173,174,136,126,24,31,242,244,141,4,159,163,62,56,102,213,112,249,124,16,35,68,120,184,105,26,150,13,208,246,123,177)
IMAGE_DATA(134,199,142,246,73,158,59,106,85,112,155,173,177,190,118,11,191,247,192,99,241,213,90,149,189,231,206,234,23,118,227,230)
IMAGE_DATA(198,24,198,184,175,14,191,95,204,251,226,253,241,121,243,50,126,12,228,205,203,120,95,76,237,23,59,146,175,248,203,138)
IMAGE_DATA(56,29,142,55,95,44,100,244,172,52,142,246,88,102,92,84,26,233,23,98,251,195,242,47,139,244,75,202,50,6,126,12)
IMAGE_DATA(176,177,208,178,242,172,47,48,164,135,50,183,22,148,103,250,189,238,255,179,159,183,166,157,134,239,31,152,119,66,82,21)
IMAGE_DATA(143,165,11,122,6,220,59,61,41,72,255,56,173,52,99,192,237,105,88,24,204,24,22,4,51,155,250,249,63,133,219,236)
IMAGE_DATA(124,52,47,60,70,234,85,9,245,154,54,249,147,176,203,55,55,213,98,140,7,168,220,45,58,119,72,100,141,154,140,1)
IMAGE_DATA(123,237,207,175,233,117,114,188,189,180,77,157,14,90,92,42,102,14,43,153,101,92,88,26,65,27,192,24,48,46,6,59)
IMAGE_DATA(20,66,217,33,110,12,220,74,43,135,222,107,226,251,35,102,221,68,3,195,70,171,169,153,88,197,99,193,186,207,74,221)
IMAGE_DATA(125,176,0,198,74,57,238,51,96,195,160,12,40,107,81,25,182,220,180,30,254,15,53,246,243,167,197,27,215,23,95,53)
IMAGE_DATA(204,107,194,196,143,195,46,92,222,128,253,195,193,4,231,238,217,227,57,238,214,105,53,114,188,60,180,205,156,196,214,170)
IMAGE_DATA(148,242,211,244,205,154,87,138,49,46,12,70,208,79,97,12,176,118,104,113,25,222,23,135,160,172,37,229,208,240,182,254)
IMAGE_DATA(127,121,121,176,107,127,222,216,214,116,232,215,194,255,244,197,111,202,233,97,158,198,250,7,220,70,172,189,90,202,181,1)
IMAGE_DATA(251,89,220,6,250,69,120,28,96,237,215,220,199,153,57,4,94,216,80,149,15,9,242,248,244,147,55,203,252,150,49,45)
IMAGE_DATA(234,254,189,12,236,19,14,9,98,33,226,139,165,108,14,223,231,13,152,251,229,109,245,208,11,117,3,230,225,178,43,58)
IMAGE_DATA(241,57,173,74,207,198,94,63,24,211,48,255,5,193,72,207,242,15,102,160,207,178,118,8,115,60,62,58,56,167,92,160)
IMAGE_DATA(91,127,124,107,9,111,15,77,187,129,173,3,206,220,89,200,199,162,56,38,50,128,79,128,24,21,219,39,54,94,5,123)
IMAGE_DATA(181,4,199,78,216,126,193,24,130,118,52,224,178,186,55,242,46,204,28,142,32,236,195,106,69,132,122,141,232,209,170,204)
IMAGE_DATA(201,5,195,34,47,157,91,19,199,220,217,155,136,178,15,39,243,188,57,206,240,47,252,255,201,225,250,232,234,246,4,102)
IMAGE_DATA(73,106,213,235,73,49,254,115,97,238,163,145,127,111,177,252,241,148,128,172,220,180,32,4,252,97,12,112,118,168,12,210)
IMAGE_DATA(97,29,212,210,247,79,45,151,155,93,229,213,186,62,155,175,204,15,51,178,49,15,196,62,16,3,193,124,44,157,243,201)
IMAGE_DATA(108,124,4,227,0,226,37,176,87,38,91,196,217,163,214,9,94,114,230,208,64,12,80,221,205,77,19,21,92,210,253,235)
IMAGE_DATA(136,242,222,147,107,86,246,153,92,171,170,47,254,215,119,114,68,168,247,100,127,95,183,30,216,183,84,215,20,124,61,51)
IMAGE_DATA(4,107,40,165,94,182,126,16,247,231,198,79,230,150,100,140,243,3,25,104,3,67,90,16,235,43,111,205,14,122,90,187)
IMAGE_DATA(162,251,215,248,22,255,146,126,218,94,59,82,202,61,48,192,58,3,172,57,172,170,196,173,63,176,107,17,21,184,117,137)
IMAGE_DATA(116,110,44,112,49,82,40,231,175,151,146,177,128,253,56,214,23,162,60,93,53,135,201,17,169,28,26,228,49,168,223,155)
IMAGE_DATA(193,191,239,153,16,174,59,191,168,10,115,97,105,85,230,247,239,170,160,111,250,148,187,208,60,193,111,143,143,39,187,79)
IMAGE_DATA(230,109,169,144,151,107,122,108,50,206,195,252,231,113,252,193,14,253,62,46,240,113,233,18,218,33,248,215,94,77,98,125)
IMAGE_DATA(54,61,72,143,120,10,243,42,110,205,63,34,111,206,11,243,223,149,252,92,152,181,69,97,220,28,13,214,139,150,19,91)
IMAGE_DATA(84,158,159,199,133,48,21,131,221,166,203,131,166,80,197,55,182,178,215,210,159,103,87,54,178,121,5,176,150,200,174,171)
IMAGE_DATA(71,113,107,236,176,190,8,107,92,219,162,152,135,27,163,208,152,247,202,92,242,228,206,159,137,218,181,181,31,249,102,229)
IMAGE_DATA(206,11,68,185,243,75,161,220,180,82,232,88,74,192,19,124,127,50,254,85,181,148,46,65,167,33,199,132,172,45,195,250)
IMAGE_DATA(14,187,231,2,107,61,176,238,3,202,218,34,98,143,42,112,115,51,214,22,17,123,196,217,34,29,30,7,222,158,172,125)
IMAGE_DATA(45,178,130,1,134,46,24,80,254,46,187,110,69,114,156,36,53,138,215,104,116,107,117,53,84,163,146,231,215,34,69,214)
IMAGE_DATA(190,60,169,68,110,238,188,146,8,198,64,230,208,18,217,216,7,37,97,155,88,109,83,74,232,67,118,237,18,214,112,54)
IMAGE_DATA(112,109,0,107,155,164,13,244,188,45,226,236,17,191,47,6,246,8,108,17,239,19,216,181,107,222,39,60,94,20,194,224)
IMAGE_DATA(216,177,200,242,247,246,212,118,59,157,22,105,234,223,124,142,31,155,103,195,239,113,179,107,91,252,26,111,190,235,156,77)
IMAGE_DATA(213,152,87,235,249,237,52,43,211,67,243,130,110,110,0,50,126,23,192,28,29,234,159,133,99,250,100,204,40,122,239,184)
IMAGE_DATA(138,247,217,181,50,88,191,231,247,116,217,189,45,88,219,135,118,224,215,217,242,217,34,88,11,98,109,17,215,14,166,245)
IMAGE_DATA(34,108,139,206,205,40,11,185,123,69,37,143,219,76,48,251,119,49,251,167,44,103,88,63,36,108,69,175,73,30,38,191)
IMAGE_DATA(247,7,107,239,252,62,96,214,134,170,76,237,8,175,41,164,220,164,8,183,45,185,223,5,160,223,83,253,179,176,205,169)
IMAGE_DATA(143,217,215,200,24,91,241,46,187,70,76,242,120,96,237,152,236,171,195,56,224,199,130,97,93,101,222,30,69,228,217,35)
IMAGE_DATA(178,38,109,22,27,113,99,97,223,240,210,217,74,50,116,84,176,205,9,223,62,170,194,61,110,237,188,122,158,110,182,85)
IMAGE_DATA(171,229,173,193,99,253,55,61,146,193,118,184,5,148,221,167,169,199,209,219,211,75,160,0,31,77,55,56,119,187,106,104)
IMAGE_DATA(216,29,214,151,108,225,218,148,221,183,130,182,99,247,80,170,154,108,17,187,207,14,251,44,176,239,75,249,101,18,27,153)
IMAGE_DATA(108,17,239,151,65,7,188,225,255,179,210,44,29,16,143,126,109,74,253,193,246,233,188,189,108,193,117,213,188,124,131,141)
IMAGE_DATA(182,93,167,245,43,251,31,46,219,111,112,11,207,171,85,202,104,199,225,107,159,207,218,7,103,234,33,87,25,246,199,89)
IMAGE_DATA(251,70,108,24,215,142,236,126,58,111,143,204,108,17,219,14,220,56,96,247,34,73,142,16,107,139,184,24,213,128,219,225)
IMAGE_DATA(185,40,47,89,214,112,157,41,161,193,238,41,79,54,176,125,143,49,49,220,40,113,141,109,11,168,129,239,167,122,126,239)
IMAGE_DATA(67,236,250,241,186,42,200,199,83,211,90,195,205,59,180,205,234,250,239,208,193,30,20,236,69,109,231,243,116,136,31,39)
IMAGE_DATA(227,142,216,34,161,61,178,33,54,202,194,182,8,215,215,92,105,158,118,74,208,214,17,161,119,105,219,193,229,20,84,205)
IMAGE_DATA(123,127,91,148,216,108,129,118,110,84,226,16,84,226,239,163,125,239,223,117,53,114,217,189,15,220,6,108,174,50,236,73)
IMAGE_DATA(193,158,8,142,105,33,143,153,181,69,144,79,200,142,187,106,220,126,22,217,219,130,177,0,99,192,130,95,62,255,77,40)
IMAGE_DATA(248,222,34,117,190,185,78,101,175,69,108,94,55,201,171,220,32,113,77,242,13,214,71,90,191,94,199,179,218,16,137,14)
IMAGE_DATA(141,11,133,60,222,114,27,71,69,220,97,115,111,96,191,3,242,161,32,39,7,246,196,137,45,218,74,230,20,188,127,39)
IMAGE_DATA(62,157,216,34,24,83,36,255,16,114,17,73,94,226,26,126,95,30,143,131,5,159,4,223,86,154,167,157,18,184,107,84)
IMAGE_DATA(232,61,54,151,137,228,120,175,183,225,154,244,67,224,96,225,26,246,7,175,45,170,196,36,69,251,46,133,92,15,118,191)
IMAGE_DATA(27,246,189,33,39,25,246,193,193,22,65,110,14,216,163,109,180,61,226,247,207,233,216,104,147,245,216,40,185,186,215,18)
IMAGE_DATA(165,129,218,35,161,65,238,41,57,235,69,236,6,201,113,178,160,70,90,215,241,118,89,68,117,107,34,208,185,21,53,216)
IMAGE_DATA(124,63,246,28,4,236,183,226,54,96,243,112,96,44,128,45,218,206,219,34,200,213,129,189,114,222,47,115,185,205,92,12)
IMAGE_DATA(192,218,34,126,44,152,198,26,105,107,60,22,30,172,8,71,158,30,154,55,148,102,106,143,140,233,26,244,151,126,189,245)
IMAGE_DATA(62,108,54,222,137,237,21,94,175,129,248,144,190,230,98,197,236,85,225,204,147,157,220,217,19,118,143,27,242,109,32,247)
IMAGE_DATA(6,108,17,228,225,192,89,45,222,39,176,182,136,172,117,208,182,104,11,101,139,248,185,50,109,139,240,56,96,214,12,10)
IMAGE_DATA(121,160,17,223,251,117,73,193,115,160,58,55,22,87,98,204,56,175,117,156,179,201,14,11,174,175,164,85,128,243,62,236)
IMAGE_DATA(158,42,187,183,13,123,220,172,45,138,165,108,17,101,143,232,216,104,155,141,177,17,214,184,8,207,111,149,102,106,143,212)
IMAGE_DATA(172,232,177,192,32,97,51,204,116,45,53,247,180,166,107,136,242,113,225,218,112,212,181,145,223,47,183,182,196,114,57,198)
IMAGE_DATA(144,87,0,57,30,220,57,32,238,124,40,151,135,134,76,126,25,114,212,182,215,32,57,252,40,207,47,243,243,4,238,252)
IMAGE_DATA(163,217,154,197,95,223,86,210,195,188,78,105,166,246,200,148,238,65,183,141,212,124,134,48,20,189,134,156,155,213,225,12)
IMAGE_DATA(97,75,230,62,146,215,171,195,17,156,161,56,49,165,60,27,15,30,159,23,205,229,18,192,185,183,61,113,220,217,135,221)
IMAGE_DATA(196,22,197,178,231,179,216,177,192,219,34,246,220,4,228,45,67,222,32,89,119,229,125,2,187,6,66,214,58,248,185,73)
IMAGE_DATA(203,36,191,162,54,231,138,248,125,70,152,206,204,86,240,140,77,243,74,18,87,75,93,175,166,246,71,200,154,24,117,253)
IMAGE_DATA(104,69,5,134,223,75,212,244,106,85,230,16,155,71,179,143,207,237,99,109,17,177,71,188,45,50,139,141,106,89,136,141)
IMAGE_DATA(162,205,98,163,115,243,35,12,216,150,198,40,13,212,30,241,246,208,52,127,178,50,60,207,78,8,117,53,209,74,182,233)
IMAGE_DATA(42,106,109,30,214,1,86,87,4,187,179,75,195,237,201,148,47,19,232,62,50,27,242,55,32,175,21,242,250,216,177,16)
IMAGE_DATA(199,229,251,193,153,80,56,147,197,251,101,54,39,144,247,203,108,174,32,140,5,56,207,133,253,178,142,247,203,236,153,83)
IMAGE_DATA(46,215,31,189,24,235,187,81,105,158,246,74,66,164,231,6,3,189,150,43,209,135,77,215,43,201,26,11,181,15,69,246)
IMAGE_DATA(4,233,107,62,111,124,101,127,118,30,20,90,62,80,59,114,198,219,62,79,240,181,223,214,73,213,254,99,243,103,32,151)
IMAGE_DATA(6,114,188,33,199,114,15,151,111,201,217,162,88,238,76,4,228,36,67,126,56,228,7,66,174,50,31,27,177,182,8,206)
IMAGE_DATA(214,241,62,1,236,209,186,97,97,144,51,86,89,89,154,246,75,223,22,37,126,54,208,156,77,108,43,90,101,203,230,196)
IMAGE_DATA(166,147,181,119,126,79,150,205,149,13,99,12,88,143,141,43,251,200,221,77,83,211,203,93,211,224,220,132,146,89,179,223)
IMAGE_DATA(246,185,12,117,134,4,121,140,120,184,135,203,233,230,206,56,240,246,8,251,101,209,216,136,216,35,137,216,232,90,122,181)
IMAGE_DATA(92,63,111,109,119,133,81,58,36,25,195,202,102,19,91,145,79,87,210,90,193,186,166,87,48,229,139,95,152,93,46,183)
IMAGE_DATA(164,175,246,51,204,191,254,209,97,144,235,80,10,189,17,231,145,65,234,237,209,186,204,239,57,144,63,118,128,183,69,251)
IMAGE_DATA(234,154,252,178,142,247,203,121,182,40,22,193,92,141,61,43,1,182,104,7,111,139,176,79,120,180,37,154,169,80,218,227)
IMAGE_DATA(11,37,25,22,64,130,207,204,42,175,227,250,48,215,111,233,62,156,239,58,157,236,119,83,185,7,100,191,137,186,190,242)
IMAGE_DATA(109,185,167,65,254,218,254,216,23,38,239,252,34,32,11,246,215,13,105,65,40,208,87,243,22,85,183,255,168,30,97,167)
IMAGE_DATA(217,252,49,182,13,226,25,50,14,216,216,136,247,203,92,140,202,141,3,83,108,180,139,139,141,158,108,171,201,36,84,247)
IMAGE_DATA(129,253,181,34,249,189,105,176,55,250,100,25,159,215,138,121,26,120,190,192,208,192,51,21,189,94,206,229,27,24,86,228)
IMAGE_DATA(93,195,126,31,228,164,93,156,29,194,224,126,255,41,46,59,105,251,192,128,108,54,191,13,243,191,63,59,16,246,98,95)
IMAGE_DATA(16,60,66,201,190,29,66,254,204,225,219,128,61,107,69,197,70,6,179,216,40,46,207,22,97,189,186,58,250,105,112,128)
IMAGE_DATA(59,124,47,133,98,223,139,80,80,129,220,0,29,201,99,178,164,43,132,26,42,170,135,82,131,31,121,186,107,94,6,155)
IMAGE_DATA(179,123,112,201,39,108,94,39,228,86,45,8,70,7,190,10,200,210,136,179,242,138,12,245,26,243,211,194,154,217,134,67)
IMAGE_DATA(100,44,112,126,153,196,70,252,249,104,118,44,100,237,138,69,35,222,11,249,205,195,93,243,146,220,188,156,45,225,165,221)
IMAGE_DATA(166,211,253,153,244,99,194,83,244,122,57,151,243,199,229,156,133,34,195,178,114,140,1,255,124,76,167,18,231,48,220,106)
IMAGE_DATA(176,231,241,211,232,160,199,144,123,201,241,47,141,12,11,130,152,247,94,240,250,222,202,227,132,68,71,248,76,253,246,139)
IMAGE_DATA(240,75,87,55,197,161,39,123,185,92,239,28,108,139,254,219,25,135,78,45,136,214,127,212,186,244,177,0,63,183,238,154)
IMAGE_DATA(34,106,111,132,210,164,166,231,94,238,188,33,159,63,198,230,47,113,108,185,188,202,242,220,57,148,101,252,153,32,114,205)
IMAGE_DATA(159,79,1,246,55,230,150,205,109,24,229,185,25,23,231,89,181,156,251,196,171,223,148,126,106,128,28,90,150,127,25,54)
IMAGE_DATA(183,51,39,45,136,9,242,211,246,180,241,177,188,33,231,197,199,75,251,22,182,47,3,75,149,112,31,136,251,58,228,5)
IMAGE_DATA(135,20,228,93,161,111,248,249,184,245,168,24,226,53,25,183,243,228,152,72,95,246,95,200,17,132,92,65,200,25,196,183)
IMAGE_DATA(65,94,96,161,159,53,36,210,174,190,207,94,83,238,164,148,46,19,211,114,72,183,180,28,154,223,171,228,191,240,29,25)
IMAGE_DATA(184,168,136,94,205,124,79,102,45,226,242,150,77,121,224,124,14,248,223,147,75,229,226,123,98,229,122,47,34,152,121,133)
IMAGE_DATA(216,106,126,115,191,249,50,242,226,197,77,241,79,31,29,18,207,137,205,206,172,143,238,236,77,100,206,175,171,203,44,26)
IMAGE_DATA(81,237,210,135,111,134,156,140,172,224,61,194,219,83,251,166,166,16,243,146,63,124,201,119,175,193,148,51,89,158,59,251)
IMAGE_DATA(182,148,203,167,39,249,123,166,188,98,62,199,27,254,61,48,188,212,3,220,215,97,15,189,108,233,0,109,255,3,35,130)
IMAGE_DATA(115,88,59,196,222,195,229,128,179,121,204,252,57,136,9,29,125,175,21,214,59,72,72,112,189,26,254,115,127,77,175,147)
IMAGE_DATA(13,185,245,142,156,195,130,182,121,112,32,25,29,95,88,219,248,105,167,114,191,133,150,241,28,128,227,7,232,67,54,231)
IMAGE_DATA(185,90,17,183,9,93,74,156,53,8,57,47,225,57,155,174,67,16,228,177,234,176,30,78,9,122,80,187,146,199,120,252)
IMAGE_DATA(217,16,108,19,94,236,253,170,223,241,71,75,232,220,87,254,179,192,127,49,199,63,103,97,105,166,114,25,183,111,156,244)
IMAGE_DATA(204,86,197,29,219,170,217,131,34,175,233,190,119,210,57,80,254,44,133,225,72,50,186,190,61,30,77,239,31,126,33,58)
IMAGE_DATA(220,123,2,142,49,226,53,86,242,92,173,136,199,166,1,129,79,185,179,38,210,250,96,126,25,102,69,239,128,123,85,66)
IMAGE_DATA(220,38,226,207,148,197,245,54,233,252,188,239,143,215,231,133,114,115,46,65,206,37,57,7,65,108,208,175,227,74,65,220)
IMAGE_DATA(35,203,217,2,79,119,109,211,67,243,107,229,56,245,28,52,156,173,38,223,63,6,103,174,15,214,99,12,153,137,232,206)
IMAGE_DATA(206,186,204,236,1,225,151,171,87,242,158,134,199,69,61,141,253,227,194,99,207,224,192,167,208,183,13,139,185,51,11,108)
IMAGE_DATA(63,199,215,247,190,43,205,108,249,60,240,65,179,24,207,213,94,30,26,176,129,190,190,94,154,118,189,94,241,255,249,122)
IMAGE_DATA(90,24,99,88,37,204,61,230,253,53,149,251,205,158,67,193,109,240,94,35,239,159,10,1,117,62,193,182,190,202,190,185)
IMAGE_DATA(49,58,167,159,67,207,172,207,157,237,37,252,225,156,11,156,249,130,179,240,251,227,25,195,193,4,116,123,91,28,51,239)
IMAGE_DATA(203,74,55,26,214,246,223,239,229,161,133,60,179,178,26,235,49,154,71,122,239,0,253,249,233,193,134,159,198,4,25,150)
IMAGE_DATA(126,20,112,191,109,162,247,142,208,64,237,48,220,158,13,240,239,125,189,61,52,173,94,169,235,115,100,199,240,114,247,115)
IMAGE_DATA(204,114,156,4,249,150,98,231,80,248,118,228,207,14,21,182,248,143,249,184,210,105,103,159,63,55,179,65,112,174,139,156)
IMAGE_DATA(241,130,243,94,236,156,145,204,27,185,185,138,97,63,59,119,71,231,211,107,60,77,251,162,226,253,150,207,5,236,13,9)
IMAGE_DATA(114,255,12,51,104,196,231,1,215,23,60,119,16,40,238,59,77,176,61,111,82,194,71,219,230,197,88,159,189,163,186,6)
IMAGE_DATA(157,249,107,78,197,167,58,211,158,122,101,243,124,75,179,220,239,252,121,223,196,6,141,239,228,127,89,6,246,154,218,85)
IMAGE_DATA(252,166,229,176,231,62,11,233,123,120,72,255,231,199,0,127,230,145,251,94,32,246,251,250,226,185,239,113,165,247,245,248)
IMAGE_DATA(253,12,88,191,202,222,89,11,61,220,92,19,93,89,21,197,252,190,160,106,246,137,185,145,217,63,205,174,156,253,203,119)
IMAGE_DATA(145,217,103,23,68,230,220,94,85,149,201,218,88,13,233,232,189,60,126,63,155,236,61,154,114,191,87,243,185,223,60,127)
IMAGE_DATA(118,189,130,58,139,69,226,211,135,11,202,50,129,190,218,1,133,205,94,171,213,84,57,187,190,174,222,169,54,71,120,77)
IMAGE_DATA(190,91,0,206,214,177,252,147,184,239,31,48,173,31,198,155,214,15,201,158,30,151,99,80,155,33,107,86,121,235,231,220)
IMAGE_DATA(94,30,217,211,102,207,77,152,114,156,4,249,150,116,142,153,105,95,140,58,7,68,214,156,211,195,168,185,27,158,151,225)
IMAGE_DATA(56,232,243,215,253,126,212,200,48,151,249,176,109,200,201,66,179,59,162,54,40,217,178,13,130,53,116,225,126,158,48,207)
IMAGE_DATA(73,152,115,41,204,41,16,228,54,25,233,220,38,27,108,208,173,121,33,8,219,188,66,63,71,140,109,230,107,183,50,18)
IMAGE_DATA(159,90,237,195,34,103,63,45,221,147,35,250,157,24,245,243,206,150,194,247,255,176,253,191,30,247,93,16,244,94,146,105)
IMAGE_DATA(253,156,253,30,27,83,94,129,89,142,19,155,111,73,246,143,4,185,223,36,175,137,228,25,242,57,86,102,57,150,171,168)
IMAGE_DATA(115,88,252,218,41,25,3,208,6,77,99,216,220,179,194,94,163,113,235,221,190,220,249,66,179,57,98,252,73,44,10,231)
IMAGE_DATA(124,15,114,177,104,30,255,120,211,94,158,41,175,32,131,202,43,48,203,183,172,193,16,27,100,58,195,69,114,9,132,121)
IMAGE_DATA(77,116,206,213,90,106,95,222,196,191,130,105,47,192,176,60,148,217,159,18,172,199,108,194,11,153,61,196,155,145,87,119)
IMAGE_DATA(212,123,42,139,237,177,106,131,18,4,54,136,206,113,178,195,6,9,207,159,8,109,208,90,203,54,232,225,146,80,20,232)
IMAGE_DATA(167,253,168,176,217,131,212,170,226,187,222,224,224,218,66,193,230,98,201,102,115,49,174,255,115,115,1,246,59,106,216,189)
IMAGE_DATA(236,58,220,119,215,192,247,8,193,94,182,105,255,142,206,37,224,242,141,243,229,88,242,185,52,166,156,103,146,99,204,199)
IMAGE_DATA(66,166,243,14,102,103,175,184,61,178,198,53,189,86,104,228,89,63,116,79,233,89,241,180,44,204,133,252,233,185,216,65)
IMAGE_DATA(243,185,152,158,143,67,161,13,184,92,130,56,42,151,160,22,151,75,96,202,107,18,201,247,134,60,14,42,151,201,116,246)
IMAGE_DATA(135,143,133,204,248,211,115,49,60,6,102,125,16,120,67,35,223,223,141,241,255,101,69,156,124,118,71,212,6,9,231,98)
IMAGE_DATA(130,253,59,71,227,32,123,109,16,214,31,198,135,128,205,151,243,251,161,253,47,111,75,144,229,187,79,109,155,139,113,54)
IMAGE_DATA(40,111,46,198,255,125,25,58,199,210,180,127,205,126,239,40,50,229,245,241,99,32,47,175,210,116,134,17,81,103,136,36)
IMAGE_DATA(231,98,231,231,132,230,242,107,68,114,138,255,181,157,245,228,177,57,86,231,98,137,220,119,145,81,185,28,100,239,148,253)
IMAGE_DATA(14,69,200,43,219,45,50,23,19,230,85,10,207,155,16,251,35,57,23,11,71,87,230,87,48,150,240,209,182,147,153,61)
IMAGE_DATA(203,255,220,134,120,101,236,143,208,6,29,178,100,131,68,114,43,37,243,152,132,249,148,213,44,216,160,8,116,117,126,69)
IMAGE_DATA(3,142,117,58,40,192,30,196,119,221,132,168,44,139,182,66,106,254,101,231,61,146,115,49,254,239,228,229,205,197,18,184)
IMAGE_DATA(239,104,165,230,98,236,122,144,112,46,38,56,111,162,223,193,157,115,48,205,197,248,51,14,244,92,76,207,143,1,238,172)
IMAGE_DATA(75,101,116,225,187,138,250,82,126,218,142,10,177,103,229,229,228,192,237,142,238,109,57,127,46,102,62,23,230,250,191,212)
IMAGE_DATA(92,172,54,34,103,77,242,205,197,96,45,136,159,11,231,205,197,232,243,110,145,232,183,89,21,244,1,190,202,178,7,241)
IMAGE_DATA(244,208,54,123,116,48,153,113,200,126,200,104,131,242,175,7,73,228,82,10,207,152,8,109,16,214,157,169,161,15,124,60)
IMAGE_DATA(53,138,179,231,197,109,226,167,17,87,20,233,255,71,27,80,253,223,158,185,24,159,75,41,204,235,22,158,119,99,207,222)
IMAGE_DATA(230,125,15,0,156,73,157,242,65,233,203,90,238,123,150,92,70,60,220,181,77,175,239,76,52,42,198,63,83,100,46,108)
IMAGE_DATA(154,139,37,8,230,98,124,94,119,6,153,139,197,136,207,197,168,239,1,0,27,244,223,186,170,76,211,56,223,165,26,110)
IMAGE_DATA(175,198,229,36,62,218,111,94,118,166,66,118,168,160,54,72,56,23,163,109,16,110,131,83,115,34,12,1,190,110,240,125)
IMAGE_DATA(86,46,157,99,249,89,151,208,191,117,150,226,156,194,186,38,253,159,252,93,12,211,92,44,222,124,46,102,118,222,45,150)
IMAGE_DATA(155,139,237,20,204,197,216,191,217,199,173,135,102,99,246,131,58,5,95,194,208,107,43,205,214,70,9,254,234,189,176,191)
IMAGE_DATA(69,99,197,194,188,206,227,111,182,47,79,246,100,232,51,62,220,92,140,159,11,239,146,152,139,97,59,116,120,106,132,174)
IMAGE_DATA(84,9,246,239,221,21,228,59,75,149,144,50,111,191,86,230,88,182,156,127,155,139,124,207,106,38,189,30,45,101,131,248)
IMAGE_DATA(185,216,110,17,27,132,245,202,202,40,84,191,134,207,92,252,30,229,148,6,89,0,113,139,142,240,157,113,126,67,188,41)
IMAGE_DATA(7,200,169,54,71,108,190,70,230,98,252,247,175,154,205,197,76,235,17,220,122,156,222,116,198,173,54,247,93,247,184,13)
IMAGE_DATA(110,109,168,137,186,189,28,152,9,127,171,94,35,99,238,105,97,10,158,27,52,26,247,73,165,63,179,228,248,91,129,130)
IMAGE_DATA(125,73,18,7,229,219,151,52,205,197,224,239,44,197,50,87,215,214,100,222,107,94,42,211,195,157,229,238,210,254,213,65)
IMAGE_DATA(41,17,86,198,115,192,150,41,53,110,229,184,136,13,194,109,128,142,125,91,253,113,171,231,75,30,134,51,18,74,3,146)
IMAGE_DATA(73,252,42,150,243,250,124,245,184,168,127,31,31,46,164,191,27,40,181,47,204,207,5,254,221,26,135,166,245,173,120,41)
IMAGE_DATA(162,188,39,228,206,150,87,26,136,66,226,91,170,132,251,231,125,59,149,255,233,143,85,117,178,179,157,249,55,28,5,57)
IMAGE_DATA(162,57,135,234,49,215,183,212,49,46,75,169,124,63,177,134,223,114,220,215,159,215,56,47,111,250,89,144,10,165,3,61)
IMAGE_DATA(250,124,216,54,228,248,145,249,181,179,30,236,79,102,253,169,163,54,8,236,219,221,61,245,152,204,239,98,178,6,189,19)
IMAGE_DATA(122,49,162,156,215,84,173,182,104,125,7,133,130,226,238,230,166,121,1,143,141,174,175,61,95,42,99,208,187,97,63,236)
IMAGE_DATA(159,19,195,252,185,182,46,115,115,87,34,122,116,32,137,201,58,156,204,100,99,219,245,96,95,18,115,105,107,2,115,42)
IMAGE_DATA(189,14,218,62,53,154,249,176,93,185,3,141,227,75,102,148,240,117,107,237,166,45,26,246,252,255,186,137,146,43,0,0)
IMAGE_END_DATA(14944, 10)

View file

@ -1041,10 +1041,21 @@ END_LAYOUT
LAYOUT(VcpkgLayout, 1000, 700)
ITEM(Upp::ArrayCtrl, list, LeftPosZ(4, 992).TopPosZ(4, 468))
ITEM(Upp::Button, exit, SetLabel(t_("Close")).RightPosZ(8, 64).BottomPosZ(8, 24))
ITEM(Upp::ArrayCtrl, required_list, LeftPosZ(4, 150).TopPosZ(476, 180))
ITEM(Upp::ArrayCtrl, triplets_list, LeftPosZ(160, 150).TopPosZ(476, 180))
ITEM(Upp::ArrayCtrl, missing_list, LeftPosZ(316, 368).TopPosZ(476, 180))
ITEM(Upp::Button, install, SetLabel(t_("Install..")).RightPosZ(932, 64).BottomPosZ(8, 24))
ITEM(Upp::Button, remove, SetLabel(t_("Remove")).RightPosZ(864, 64).BottomPosZ(8, 24))
ITEM(Upp::Button, update, SetLabel(t_("Update")).RightPosZ(796, 64).BottomPosZ(8, 24))
ITEM(Upp::Button, install_missing, SetLabel(t_("Install missing")).RightPosZ(564, 120).BottomPosZ(8, 24))
ITEM(Upp::ArrayCtrl, required_list, LeftPosZ(4, 150).TopPosZ(476, 188))
ITEM(Upp::ArrayCtrl, triplets_list, LeftPosZ(160, 150).TopPosZ(476, 188))
ITEM(Upp::ArrayCtrl, missing_list, LeftPosZ(316, 368).TopPosZ(476, 188))
ITEM(Upp::Button, exit, SetLabel(t_("Close")).RightPosZ(8, 64).BottomPosZ(8, 24))
END_LAYOUT
LAYOUT(VcpkgInstallLayout, 1124, 516)
ITEM(Upp::ArrayCtrl, list, LeftPosZ(4, 900).TopPosZ(4, 468))
ITEM(Upp::ArrayCtrl, triplets, LeftPosZ(908, 206).TopPosZ(4, 468))
ITEM(Upp::Button, ok, SetLabel(t_("OK")).RightPosZ(76, 64).BottomPosZ(8, 24))
ITEM(Upp::Button, cancel, SetLabel(t_("Cancel")).RightPosZ(8, 64).BottomPosZ(8, 24))
ITEM(Upp::EditString, search, LeftPosZ(4, 160).TopPosZ(484, 19))
END_LAYOUT

View file

@ -451,6 +451,9 @@ void Ide::Setup(Bar& menu)
#endif
menu.MenuSeparator();
menu.Add(HasGit(), "UppHub..", IdeImg::UppHub(), [] { UppHub(); });
#ifdef PLATFORM_WIN32
menu.Add("Vcpkg..", IdeImg::Vcpkg(), [=] { Vcpkg(); });
#endif
menu.Add("Clone U++ GitHub sources..", [=] {
if(SetupGITMaster()) {
IdeAgain = true;
@ -474,10 +477,6 @@ void Ide::Setup(Bar& menu)
menu.Add("Install theide.desktop", [=] { InstallDesktop(); });
#endif
#ifdef PLATFORM_WIN32
menu.Add("Vcpkg..", [=] { Vcpkg(); });
#endif
if(menu.IsMenuBar())
SetupMobilePlatforms(menu);
}

View file

@ -2,64 +2,26 @@
#ifdef PLATFORM_WIN32
void Finish(UrepoConsole& console, int errors)
{
if(errors)
console.Log(String() << "There were errors (" << errors << ")", SLtRed());
else
console.Log("OK", SGreen());
}
struct VcpkgDlg : WithVcpkgLayout<TopWindow> {
Vector<VcpkgInstalled> items;
void Sync();
void SyncIde();
void SyncList();
void Install();
void Perform();
VcpkgDlg();
};
void VcpkgDlg::SyncIde()
{
Vector<String> triplets = VcpkgTriplets();
triplets_list.Clear();
for(String s : triplets)
triplets_list.Add(s);
Vector<String> required = RequiredExternalDependencies("VCPKG");
required_list.Clear();
for(String s : required)
required_list.Add(s);
for(String r : required)
for(String t : triplets)
if(!VcpkgHasInstalled(items, r, t))
missing_list.Add(r, t);
install_missing.Enable(missing_list.GetCount());
}
void VcpkgDlg::SyncList()
{
items = VcpkgList();
list.Clear();
for(const VcpkgInstalled& m : items)
list.Add(m.name, Join(m.triplets.GetKeys(), " "), m.version, m.desc);
}
void VcpkgDlg::Perform()
{
if(!IsVcpkgInstalled()) {
if(!PromptYesNo("Install vcpkg?"))
return;
UrepoConsole console;
if(!InstallVcpkg([&](const String& cmd, const String& chdir) { return console.System(cmd, chdir); })) {
Exclamation("Installation failed");
return;
}
console.Log("Installation completed.", SGreen());
console.Perform();
}
SyncList();
SyncIde();
Execute();
}
VcpkgDlg::VcpkgDlg()
{
CtrlLayoutExit(*this, "vcpkg");
@ -79,16 +41,229 @@ VcpkgDlg::VcpkgDlg()
install_missing << [=] {
UrepoConsole console;
int errors = 0;
for(int i = 0; i < missing_list.GetCount(); i++) {
String name = missing_list.Get(i, 0);
String triplet = missing_list.Get(i, 1);
console.System(VcpkgExe() + " install " + name + ":" + triplet);
if(!VcpkgInstall([&](const String& cmd, const String& chdir) { return console.System(cmd, chdir); }, name, triplet)) {
console.Log("Failed", SLtRed());
errors++;
}
}
console.Log("Installation completed.", SGreen());
Finish(console, errors);
console.Perform();
SyncList();
SyncIde();
};
install << [=] { Install(); };
remove << [=] {
if(!list.IsCursor())
return;
String name = ~list.GetKey();
if(PromptYesNo("Remove [* \1" + name + "\1]?")) {
UrepoConsole console;
int errors = 0;
for(String triplet : Split(~list.Get(list.GetCursor(), 1), ' ')) {
if(console.System(VcpkgExe() + " remove " + name + ":" + triplet)) {
console.Log("Failed", SLtRed());
errors++;
}
}
Finish(console, errors);
console.Perform();
SyncList();
SyncIde();
}
};
update << [=] { // TODO!
UrepoConsole console;
console.System("git pull --no-rebase", GetFileFolder(VcpkgExe()));
console.System(VcpkgExe() + " update");
console.Perform();
};
list.WhenSel << [this] { Sync(); };
}
void VcpkgDlg::Sync()
{
remove.Enable(list.IsCursor());
}
void VcpkgDlg::SyncIde()
{
Vector<String> triplets = VcpkgTriplets();
triplets_list.Clear();
for(String s : triplets)
triplets_list.Add(s);
Vector<String> required = RequiredExternalDependencies("VCPKG");
required_list.Clear();
for(String s : required)
required_list.Add(s);
missing_list.Clear();
for(String r : required)
for(String t : triplets)
if(!VcpkgHasInstalled(items, r, t))
missing_list.Add(r, t);
install_missing.Enable(missing_list.GetCount());
Sync();
}
void VcpkgDlg::SyncList()
{
items = VcpkgList();
list.Clear();
for(const VcpkgInstalled& m : items)
list.Add(m.name, Join(m.triplets.GetKeys(), " "), m.version, m.desc);
Sync();
}
void VcpkgDlg::Perform()
{
if(!IsVcpkgInstalled()) {
if(!PromptYesNo("Install vcpkg?"))
return;
UrepoConsole console;
if(!InstallVcpkg([&](const String& cmd, const String& chdir) { return console.System(cmd, chdir); })) {
Exclamation("Installation failed");
return;
}
console.Log("Installation completed.", SGreen());
console.Perform();
}
SyncList();
SyncIde();
Execute();
}
struct VcpkgInstallDlg : WithVcpkgInstallLayout<TopWindow> {
bool Key(dword key, int count) override;
VcpkgInstallDlg();
struct Item : Moveable<Item> {
String name;
String version;
String desc;
};
Vector<Item> items;
Index<String> ts;
void Perform();
void Sync();
};
void VcpkgDlg::Install()
{
VcpkgInstallDlg dlg;
for(const String& s : VcpkgTriplets())
dlg.ts.FindAdd(s);
for(const VcpkgInstalled& m : items) {
for(const String& s : m.triplets)
dlg.ts.FindAdd(s);
}
SortIndex(dlg.ts);
dlg.Perform();
SyncIde();
}
VcpkgInstallDlg::VcpkgInstallDlg()
{
CtrlLayoutOKCancel(*this, "Install");
list.AddColumn("Name");
list.AddColumn("Version");
list.AddColumn("Description");
list.ColumnWidths("176 154 551");
triplets.AddColumn("Triplets");
triplets.NoCursor().NoGrid();
search.NullText("Search (Ctrl+K)");
search.SetFilter([](int c) { return (int)ToUpper(ToAscii(c)); });
search << [this] { Sync(); };
}
bool VcpkgInstallDlg::Key(dword key, int count)
{
if(key == K_CTRL_K) {
search.SetFocus();
return true;
}
return TopWindow::Key(key, count);
}
void VcpkgInstallDlg::Sync()
{
String s = ~search;
Value key = list.GetKey();
int sc = list.GetScroll();
list.Clear();
for(const Item& m : items)
if(ToUpper(m.name + m.version + m.desc).Find(s) >= 0)
list.Add(m.name, m.version, m.desc);
list.ScrollTo(sc);
if(!IsNull(key))
list.FindSetCursor(key);
}
void VcpkgInstallDlg::Perform()
{
for(Value l : ParseJSON(Sys(VcpkgExe() + " search --x-json"))) {
Item& m = items.Add();
m.name = ~l["package_name"];
m.version = ~l["version"];
String p = ~l["port_version"];
if(p != "0")
m.version << '#' << p;
if(l["description"].GetCount())
m.desc = l["description"][0];
}
for(String s : Split(Sys(VcpkgExe() + " help triplets"), '\n')) {
s.TrimEnd("\r");
if(s.TrimStart(" "))
ts.FindAdd(s);
}
for(String s : ts) {
int ii = triplets.GetCount();
triplets.Add();
auto& o = triplets.CreateCtrl<Option>(ii, 0);
o.SetLabel(s);
}
Sync();
if(ExecuteOK()) {
String name = ~list.GetKey();
if(name.GetCount() == 0)
return;
int errors = 0;
UrepoConsole console;
for(int i = 0; i < triplets.GetCount(); i++) {
if((bool)~*triplets.GetCtrl(i, 0)) {
if(console.System(VcpkgExe() + " install " + name + ":" + ts[i])) {
console.Log("Failed", SLtRed());
errors++;
}
}
}
Finish(console, errors);
console.Perform();
}
}
void Ide::Vcpkg()