mirror of
https://github.com/IgorTimofeev/MineOS.git
synced 2025-12-20 11:09:21 +01:00
310 lines
48 KiB
Lua
310 lines
48 KiB
Lua
|
||
local fs = require("filesystem")
|
||
local component = require("component")
|
||
local computer = require("computer")
|
||
local unicode = require("unicode")
|
||
local shell = require("shell")
|
||
local gpu = component.gpu
|
||
local screen = component.screen
|
||
|
||
local args, options = shell.parse(...)
|
||
|
||
------------------------------------------------------------------------------------------------------------------------------------
|
||
|
||
local URLs = {
|
||
applicationList = "https://raw.githubusercontent.com/IgorTimofeev/OpenComputers/master/Files.cfg",
|
||
installerLocalization = "https://raw.githubusercontent.com/IgorTimofeev/OpenComputers/master/Localizations/Installer/",
|
||
EFI = "https://raw.githubusercontent.com/IgorTimofeev/OpenComputers/master/EFI/Minified.lua",
|
||
license = "https://raw.githubusercontent.com/IgorTimofeev/OpenComputers/master/License/",
|
||
}
|
||
|
||
------------------------------------------------------------------------------------------------------------------------------------
|
||
|
||
local reasons = {}
|
||
|
||
if not _G._OSVERSION or tonumber(_G._OSVERSION:sub(8, 10)) < 1.5 then
|
||
table.insert(reasons, "Old version of OpenComputers mod detected: MineOS requires OpenComputers 1.5 or newer to work properly.")
|
||
end
|
||
|
||
if component.isAvailable("tablet") then
|
||
table.insert(reasons, "Tablet PC detected: MineOS can't be installed on tablets.")
|
||
end
|
||
|
||
if screen.setPrecise and screen.setPrecise(false) == nil then
|
||
table.insert(reasons, "Low-tier screen detected: MineOS requires Tier 3 screen to work properly.")
|
||
else
|
||
if gpu.maxResolution() < 160 then
|
||
table.insert(reasons, "Low-tier GPU detected: MineOS requires Tier 3 GPU to work properly.")
|
||
end
|
||
end
|
||
|
||
if computer.totalMemory() < 2097152 then
|
||
table.insert(reasons, "Not enough RAM: MineOS requires at least 2MB (2x Tier 3.5 RAM modules) to work properly.")
|
||
end
|
||
|
||
if #reasons > 0 and not options.skiphardwarecheck and not options.s then
|
||
print(" ")
|
||
for i = 1, #reasons do
|
||
print(reasons[i])
|
||
print(" ")
|
||
end
|
||
|
||
return
|
||
end
|
||
|
||
------------------------------------------------------------------------------------------------------------------------------------
|
||
|
||
local fileVersions = {}
|
||
|
||
local function storeFileVersion(application)
|
||
if application.fileID then
|
||
fileVersions[application.fileID] = {
|
||
path = application.path,
|
||
version = application.version or 1
|
||
}
|
||
end
|
||
end
|
||
|
||
local function unserializeFile(path)
|
||
local file = io.open(path, "r")
|
||
local data = require("serialization").unserialize(file:read("*a"))
|
||
file:close()
|
||
return data
|
||
end
|
||
|
||
local function wget(url, path)
|
||
fs.makeDirectory(fs.path(path))
|
||
shell.execute("wget " .. url .. " " .. path .. " -fq")
|
||
end
|
||
|
||
print("Downloading MineOS file list...")
|
||
local path = "/MineOS/System/Files.cfg"
|
||
wget(URLs.applicationList, path)
|
||
applicationList = unserializeFile(path)
|
||
fs.remove(path)
|
||
|
||
print(" ")
|
||
|
||
for i = 1, #applicationList.preInstall do
|
||
print("Downloading library \"" .. fs.name(applicationList.preInstall[i].path) .. "\"")
|
||
wget(applicationList.preInstall[i].url, applicationList.preInstall[i].path)
|
||
storeFileVersion(applicationList.preInstall[i])
|
||
end
|
||
|
||
------------------------------------------------------------------------------------------------------------------------------------
|
||
|
||
print(" ")
|
||
print("Loading installer images...")
|
||
local image = require("image")
|
||
|
||
local images = {
|
||
languages = [[3C100000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0068FF▄003CFF▄009EFF▄6D9900▄6D9E00▄6D9900▄6C6D00▄673700▄3C0000 0067FF▄0067FF▄0055FF▄0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0055FFВ0055FFи0055FFб0055FFе0055FFр0055FFі0055FFт0055FFь0000FF 0055FFм0055FFо0055FFв0055FFу0000FF 0000FF 0000FF 0000FF 003DFF▄003DFF▄3D6D00▄689E00▄9EAC00▄9E6800▄993700▄379E00▄6D9E00▄6D3C00▄3C0000 6D3700▄67AA00▄808100▄810000 678000▄547E00▄360000 0054FF▄002AFF▄0000FF 0000FF 0000FF 007EFFC007EFFh007EFFo007EFFi007EFFs007EFFi007EFFs007EFFs007EFFe007EFFz0000FF 007EFFv007EFFo007EFFt007EFFr007EFFe0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 003CFF▄3D9E00▄6D0000 6D9E00▄0C6D00▄6D3D00▄D53C00▄D59E00▄D59E00▄D6D700▄6DD600▄D56D00▄817E00▄376600▄6C0000 6CAA00▄800000 AA0000 7E6600▄7E9700▄7E6600▄547E00▄2A5300▄002AFF▄0000FF 0000FF 0000FF 0000FF 0000FF 007EFFl007EFFa007EFFn007EFFg007EFFu007EFFe0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0029FFC0029FFa0029FFm0029FFb0029FFi0029FFa0029FFr0000FF 0029FFl0029FFa0000FF 0000FF 0000FF 0000FF 0000FF 3C0C00▄6C3700▄0C9E00▄6D6800▄680C00▄379E00▄3D3700▄0CCE00▄CEFE00▄3D3700▄D50C00▄9C3C00▄3DCD00▄6B6C00▄3B9D00▄6CCE00▄9D0000 CD9C00▄C89D00▄979800▄970000 669200▄660000 7E0000 535400▄295300▄0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0029FFl0029FFe0029FFn0029FFg0029FFu0029FFa0000FF 0000FF 0000FF 0000FF 0000FF 0D0C00▄0C3700▄3D0C00▄0C3C00▄3D0C00▄376D00▄379900▄3D0C00▄0C3700▄3CCD00▄F89D00▄9D6C00▄9D6B00▄9CC800▄CD9C00▄ABCD00▄CD6C00▄C70C00▄CECD00▄979C00▄370C00▄98C800▄980000 929700▄668000▄7F0000 545500▄2A5300▄0000FF 0000FF 0000FF 0000FF 0053FFW0053FFy0053FFb0053FFi0053FFe0053FFr0053FFz0000FF 0053FFs0053FFw0053FFó0053FFj0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 380C00▄0C3700▄0C3700▄370000 3C0C00▄6D0C00▄6DD700▄0C3700▄6BCD00▄3DCD00▄CD3D00▄9D3800▄6B3700▄0CCD00▄6B0C00▄CD9C00▄CD0C00▄0CC700▄07C800▄07C800▄9D0000 C79800▄079700▄979200▄7E9200▄7F7E00▄666100▄7E6600▄365500▄292A00▄0000FF 0000FF 0053FFj0053FFę0053FFz0053FFy0053FFk0000FF 0053FF(0053FFk0053FFu0053FFr0053FFw0053FFa0053FF)0055FFВ0055FFы0055FFб0055FFе0055FFр0055FFи0055FFт0055FFе0000FF 0055FFя0055FFз0055FFы0055FFк0000FF 003DFF▄6D3700▄3D3700▄0C0000 0C0000 370700▄0C0700▄370000 376D00▄F8D700▄3DD600▄3DCD00▄3DFE00▄3DF800▄CD3700▄0C0000 9C0C00▄370700▄970700▄C80700▄C79700▄C8C300▄C80000 986700▄7E9700▄936600▄939800▄7E6100▄7E5500▄540000 2A0000 0028FF▄0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 373D00▄0C0000 0C6800▄0C3700▄0C0000 370C00▄6D0C00▄0CC800▄C8D700▄F3F800▄F90000 F9F300▄F90000 F80000 F9C800▄0CF900▄F9CE00▄F9CE00▄CE0000 C80000 C80700▄C39200▄C30000 C8C300▄06C800▄069800▄069800▄060000 360600▄545300▄2A0000 280000 0000FF 0000FF 0055FFا0055FFخ0055FFت0055FFر0000FF 0055FFل0055FFغ0055FFت0055FFك0000FF 0000FF 0000FF 0000FF 0080FFS0080FFc0080FFe0080FFg0080FFl0080FFi0000FF 0080FFl0080FFa0000FF 0000FF 0000FF 0000FF 0C0000 0C0000 3D0C00▄370000 370C00▄0C0700▄FEF900▄F90000 FEF900▄F8F300▄F90000 C8F900▄C8F900▄C8F900▄F9F300▄C8CE00▄D6C800▄C3C800▄CECD00▄CDC800▄C3C800▄079200▄C30700▄C89800▄C89800▄980000 980600▄060000 060000 362A00▄2A2800▄282900▄0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0080FFl0080FFi0080FFn0080FFg0080FFu0080FFa0000FF 0000FF 0000FF 0000FF 003CFF▀370000 373C00▄370700▄0C0000 070C00▄F8CD00▄F9CD00▄D7CD00▄FECD00▄F8C800▄F9F800▄C80000 D60000 F9CD00▄CE0000 C8CD00▄C3C800▄C80000 C80000 C8C700▄929D00▄079D00▄979300▄983700▄069200▄370600▄060000 060000 2A2900▄2A2800▄0028FF▀0000FF 0000FF 002AFFא002AFFת0000FF 002AFFה002AFFש002AFFפ002AFFה0000FF 002AFFש002AFFל002AFFך0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0C3C00▄370C00▄370C00▄370000 0C9E00▄9D3C00▄9DCE00▄D6CE00▄D7CD00▄D70000 F9CE00▄CDCE00▄C8CD00▄37CD00▄D6CD00▄C8CD00▄D5C700▄CE9D00▄C89C00▄AC9D00▄9DAA00▄AA9D00▄AA9700▄AA8100▄540600▄060000 063600▄062900▄2A2800▄280000 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 002AFFב002AFFח002AFFר0000FF 0000FF 0000FF 0000FF 0000FF 0054FFV0054FFa0054FFl0054FFi0054FFt0054FFs0054FFe0000FF 0054FFk0054FFi0054FFe0054FFl0054FFi0000FF 0000FF 0000FF 376700▄0C3700▄070C00▄073700▄070000 9E0C00▄CE0700▄AB6800▄D66D00▄D56D00▄CE0C00▄D56C00▄C83B00▄9D6B00▄9DD500▄6C8100▄AAAC00▄97AB00▄9D9700▄970000 AA9700▄986B00▄360600▄060000 060000 060000 292800▄280000 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0C0000 070000 070C00▄070000 070000 070000 6D6700▄070600▄370000 073700▄9D0600▄6C9D00▄816B00▄6C6600▄666B00▄816B00▄AA6600▄6C6B00▄976600▄986600▄063100▄060000 060000 062800▄282900▄280000 0000FF 0000FF 0000FF 007EFFW007EFFä007EFFh007EFFl007EFFe007EFFn0000FF 007EFFs007EFFi007EFFe0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0007FF▀370600▄370600▄370000 370600▄670600▄060000 060000 070600▄063700▄070C00▄6B0000 6B6600▄6B0000 6B6600▄363B00▄660000 660000 663600▄060000 062A00▄292800▄280000 0028FF▀0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 007EFFi007EFFh007EFFr007EFFe0000FF 007EFFs007EFFp007EFFr007EFFa007EFFc007EFFh007EFFe0000FF 0000FF 0000FFC0000FFh0000FFo0000FFo0000FFs0000FFe0000FF 0000FFl0000FFa0000FFn0000FFg0000FFu0000FFa0000FFg0000FFe0000FF 0000FF 0000FF 0006FF▀0037FF▀370600▄063700▄060000 060000 060000 060000 543700▄927E00▄660000 666100▄666100▄665500▄543600▄062900▄062900▄2A2800▄002AFF▀0029FF▀0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0036FF▀0006FF▀0031FF▀062900▄312900▄312800▄532800▄532800▄532800▄002AFF▀0029FF▀0028FF▀0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF ]],
|
||
OS = [[5A14AA0000 AA2900MAA2900iAA2900nAA2900eAA2900OAA2900SAA0000 AA0000 AA0000 AA0000 AA0000 AA0000 AA0000 AA0000 AA0000 AA0000 AA0000 AA0000 AA0000 AA0000 AAAB00▄AB0000 AB0000 AB0000 ABAA00▄AA0000 ABAA00▄AB0000 ABAA00▄AB0000 AB0000 AB0000 ACAB00▄AC0000 ABAC00▄AB0000 AB0000 AB0000 AB0000 AB0000 AB0000 AB0000 AB0000 AB0000 AB0000 AB0000 ABAA00▄AA0000 AA0000 AA0000 AA0000 AA0000 AA0000 AA0000 AA0000 AA0000 AA0000 AA0000 AA0000 AA0000 AA0000 AA0000 AA0000 AA0000 ABAA00▄AAAB00▄AA0000 AA0000 AA0000 AA0000 AA0000 AA0000 AA0000 AA0000 AA0000 AA0000 AA0000 AA0000 AA0000 AA0000 AA0000 AA0000 AA0000 AA0000 AA0000 AA0000 AA0000 AA0000 AA0000 280000 290000 290000 280000 280000 290000 280000 290000 290000 282900▄290000 290000 290000 292A00▄290000 290000 290000 290000 2A5300▄2A5300▄2A0000 545500▄7E0000 7E5400▄2A0000 536100▄2A5300▄290000 532900▄2A5300▄555400▄530000 555300▄7E7F00▄7F7E00▄819800▄7F8100▄7E8000▄535500▄530000 535400▄2A5300▄545300▄540000 540000 545300▄545300▄2A5300▄2A0000 2A0000 292A00▄290000 292A00▄290000 290000 290000 292800▄290000 282900▄280000 280000 290000 292800▄280000 280000 2A2900▄530000 2A0000 2A0000 290000 290000 290000 290000 290000 290000 280000 280000 280000 280000 280000 280000 280000 280000 280000 280000 280000 280000 280000 280000 280000 280000 290000 280000 534300.FF0000 FF1800▄FF1800▄FF0000 290000 290000 290000 290000 290000 29A700▀290000 290000 292A00▄535400▄532A00▄002200▀000000 00E300▄000000 002200▀669200▄669200▄920000 292900F29E400#29E400E290000 532A00▄545300▄552A00▄7E7F00▄7E5600▐7E5500▃7F5500▃A72A00▀7F8000▄547E00▄535400▄540000 ABAA00▄AB5500▄ABAA00▄AB5500▄530000 530000 292A00▄2A2900▄AB5500▗36D400▞553600▙AB5500▖290000 282900▄290000 280000 292800▄290000 282900▄280000 280000 292800▄280000 530000 2AFB00D2AFB00P29FB00n530000 290000 290000 290000 AC0000 A45400▄A45400▄A45400▄800000 290000 290000 290000 280000 281A00▟1AF200▗280000 280000 292800▄290000 280000 280000 280000 282900▄53FF00.FF0000 FF1800▄FF1800▄FF0000<290000 290000 2A0000 295300▀295300▀295300▀295300▀FF0000<540000 532A00▄540000 220000 002200▄000000 002200▄FF0000<920000 920000 929300▄922900▀290000 290000 7E2900▀530000 7E5400▄530000 535400▄555300▄802A00▄542A00▄7F2A00▄555400▄987F00▄7E8000▄7E5500▄7F2A00▄2A0000 7F2A00▄7F2A00▄2A0000 532A00▄530000 2A5300▄800000 805500▀800000 800000 290000 290000 290000 29D600▝D68100▄D68100▄D68100▄FF0000<290000 280000 292800▄530000 534E00▀530000 533B00▀FF0000<2A0000 290000 290000 D7AC00▀D70000 D70000 D70000 FF0000<290000 290000 290000 290000 282900▄300000 290000 FF0000<290000 290000 290000 280000 280000 290000 28FF00C28FF00a29FF00t29FF00l29FF00k290000 2A2900▄2A0000 2AFF00r29FF00p53FF00.53FF00l55FF00k2A2900▄530000 7FFF00u7FFF00a54FF00t61FF00…92FF00.92FF00l92FF00k980000 98C300▄98FF00E98FF00XC3FF00lC3FF00k980000 980000 617F00▄53FF00u55FF00r54FF00t55FF00…55FF00.AAFF00n98AA00▄7E9800▄54FF00m55FF00r7EFF00H54FF00…55FF00.54FF00n2A0000 290000 2AFF00C2AFF00m29FF00r2AFF00.2AFF00l29FF00k290000 29FF00B29FF00t28FF00t29FF00e29FF00p29FF00l29FF00n290000 28FF00328FF00P29FF00i29FF00n29FF00.29FF00n290000 290000 29FF00R29FF00y29FF00a29FF00k29FF00.29FF00n290000 290000 29FF00C2AFF00r29FF00s29FF00…29FF00.29FF00l29FF00k290000 290000 280000 290000 290000 FF0000 FF0000 290000 FF0000 FF0000 290000 2A0000 2A5300▄2AD500▁2AD500▆D50000 D50000 AB0000 290000 550000 7E0000 78FF00M78FF00i2AFF00R2AFF00l2AFF00e989300▄980000 C30000 C30000 C30000 C30000 C30000 C3C800▄C3C800▄C30000 980000 ADFF00uADFF00eAD0000 AD0000 7E0000 7F0000 800000 AA0000 2A0000 FF0000 FF0000 FF2A00▀535400▄545300▄535500▄2A0000 290000 810000 810000 810000 292A00▄290000 290000 290000 293C00▄3C0C00▄290600▄290000 290000 290000 290000 730000 B10000 FB0000 000000 290000 290000 290000 290000 FFD600▄A49E00▄734200▄484200▄D8EC00▄290000 290000 290000 00D600▀00D600▀00D600▀00D600▀00D600▀290000 290000 290000 280000 290000 290000 FF2900▀290000 290000 290000 FF2900▀290000 530000 530000 D70000 D70000 D70000 D70000 29AB00▛290000 7E0000 615400▄FF2A00IFF2A00f2A0000 2A0000 2A0000 989200▄C30000 C30000 C3A400\C8C300▄C80000 C8A400/AB0000 AB0000 C8AB00▄C80000 FF0000 FF0000 FF2A006FFAD0077F7E00▄7F8000▄547F00▄7F9800▄F60000 EE2A00▀EE2A00▀EE2A00▀545300▄532A00▄2A0000 545300▄FF0000 FF0000 FF0000 AC0000 2A0000 2A0000 290000 0C3C00▄0C0000 370700▄066600▄280000 290000 290000 290000 730000 B10000 FB0000 000000 FF0000 290000 290000 290000 7F5500▄675400▄3C3600▄0C0B00▄226900▄290000 290000 290000 000000 00F200с00F200р00F200к00F200а290000 292A00▄2A2900▄280000 290000 290000 FF0000 FF0000 290000 FF0000 FF0000<290000 530000 530000 D70000 D70000 D70000 D70000 FF0000<290000 7E5500▄540000 FF0000 FF0000 2A0000 2A0000 FF0000<920000 980000 C30000 482A00▄482A00▄FF2A00▄482A00▄AB0000 AB0000 AB0000 C80000 FF0000 FF0000 FF0000 FF0000 552A00▄807E00▄807F00▄550000 EC2A00▀EE2A00▀EE2A00▀EE2A00▀2A0000 530000 532A00▄292A00▄FF0000 FF0000 FF0000 540000 535400▄2A0000 2A0000 2A0000 2A3C00▀3C6700▄362A00▄FF0000<2A2900▄290000 290000 290000 FF0000 FF0000 FF0000 FF0000<290000 290000 290000 532900▄532900▄062800▄062800▄FF0000<290000 290000 290000 00D600▄00D600▄00D600▄00D600▄FF0000<290000 2A0000 292A00▄280000 290000 29FF00M29FF00n29FF00S2AFF00w2AFF00r2AFF00l29FF00k540000 530000 29FF00D54FF00e55FF00t53FF00.55FF00n2A0000 530000 28FF00n29FF00f29FF00P2AFF00…53FF00.53FF00l61FF00k7F5400▄98FF00o98FF00o98FF00CC3FF00…AAFF00.AAFF00nAAFF00k980000 80FF00a54FF00e53FF00d2AFF00a29FF00.61FF00n530000 2A0000 7EFF00l53FF00p54FF00y81FF00…80FF00.7FFF00n2A5300▄2AFF00H2AFF00o2AFF00o53FF00d2AFF00t2AFF00.53FF00n550000 2AFF00G2AFF00o53FF00S53FF00a53FF0022AFF00l29FF00n290000 29FF00B29FF00f29FF00e29FF00r29FF00o29FF00l29FF00k290000 29FF00P2AFF00l29FF00t2AFF00e29FF00.29FF00n290000 290000 2AFF00R2AFF00n29FF00i29FF00…2AFF00.2AFF00l2AFF00k2A0000 530000 280000 2A2900▄2A0000 2A0000 2A0000 2A0000 2A0000 2A0000 290000 540000 540000 2A0000 FD0000 FD0000 FD0000 7E0000 2A2900▄290000 280000 00FF00▄00FF00▄00FF00▄00FF00▄00FF00▀290000 2A0000 2A0000 060000 060000 060000 060000 980000 980000 7E6100▄2A5300▄2A0000 2A4800╵294800╹2A4800╹615300▄2A0000 292A00▄292A00▄555400▄2A5400▀2A5400▀7E5400▄81AA00▄7E5500▄2A5500▄292A00▄FFD800┌FF0000─FF0000─FFD800┐2A0000 542A00▄7E5500▄D50000 FFD500▀FFD500▀FFD500▀D50000 530000 540000 2A0000 292A00▄A40000 A40000 A40000 290000 290000 290000 290000 290000 290000 290000 290000 290000 290000 290000 290000 290000 290000 290000 290000 290000 2A0000 290000 2A2900▄290000 2A0000 2A0000 2A0000 2A0000 2A0000 2A0000 2A0000 290000 540000 540000 F70000 F7D500▄D5D600▀D5D600▀D5D600▀290000 290000 2A0000 00FF00▄00FF00▄00FF00▄00FF00▄FF0000▄2A7F00▄532800▄2A6600▄063D00C063D00l063D00e063D00tAA0000 98AA00▄617E00▄619200▄615300▄295300▄535500▄290A00▄280000 362A00▄280000 292A00▄2A0000 A44300▄A44300▄2A0000 542A00▄98AA00▄555300▄7E0000 FF0000│D80000 D80000 FF0000│545500▄2A5300▄2A0000 810000 7EFF00▒7EFF00▒55FF00▒810000 2A5400▄2A5300▄532A00▄534300▜43FF00a43FF00d43FF00i294300▛290000 2A2900▄290000 290000 290000 290000 290000 290000 290000 290000 2A0000 290000 290000 290000 290000 290000 290000 2A2900▄290000 290000 2A5300▄2A2900▄290000 2A0000 2A0000 2A0000 290000 2A0000 530000 543600▄2A0000 532A00▄7F0000 540000 7E0000 282900▄280000 280000 292800▄292800▄2A0000 295300▄2A6600▄939200▄C30000 C30000 989300▄920000 980000 C80000 C80000 C80000 939800▄979300▄C39200▄920000 920000 610000 2A5C00▄292A00▄290000 282900▄290000 282900▄292800▄545500▄532A00▄555300▄808100▄2A5400▄7F5500▄2A5500▄2A2900▄2A0000 290000 550000 540000 2A0000 2A0000 545300▄540000 540000 555400▄545500▄545300▄292A00▄290000 2A2900▄2A0000 2A0000 290000 290000 290000 290000 290000 292A00▄290000 290000 290000 290000 290000 290000 290000 290000 2A2900▄2A2900▄2A2900▄290000 290000 290000 2A0000 2A2900▄290000 290000 2A0000 2A0000 290000 2A0000 2A2900▄540000 540000 290000 7F0000 550000 7E0000 535400▄295300▄2A6100▄535500▄557F00▄7F9800▄7F9800▄7F9800▄980000 980000 980000 980000 980000 980000 AB0000 AB0000 C3AA00▄930000 930000 920000 920000 92C200▄920000 5B8D00▄305C00▄5B0000 8D0000 5B0000 2A0000 292A00▄290000 535400▄530000 555300▄987F00▄2A7E00▄555300▄535500▄292A00▄2A0000 292A00▄532900▄540000 7E5400▄530000 530000 530000 2A5300▄530000 545300▄530000 530000 2A5300▄290000 290000 2A0000 2A0000 292A00▄290000 290000 290000 290000 290000 290000 290000 290000 290000 290000 290000 290000 290000 290000 290000 290000 282900▄2A0000 290000 290000 292A00▄2A0000 2A2900▄290000 2A5300▄290000 540000 545500▄2A0000 7F7E00▄557E00▄550000 556100▄530000 669200▄920000 7F9200▄989300▄930000 989300▄930000 980000 980000 939200▄939200▄989300▄AB0000 AC0000 AB0000 920000 920000 920000 920000 920000 92BD00▄920000 928D00▄928D00▄5B6100▄560000 5B0000 5B0000 290000 280000 2A2900▄545300▄2A5300▄987F00▄549800▄7E5300▄7E7F00▄2A0000 290000 2A0000 2A2900▄532A00▄540000 540000 530000 530000 2A0000 2A0000 530000 530000 530000 2A0000 292A00▄290000 290000 2A2900▄292A00▄290000 290000 290000 290000 290000 2A0000 290000 290000 290000 292800▄290000 290000 290000 290000 290000 280000 290000 290000 290000 2A2900▄532A00▄2A2900▄290000 2A0000 290000 545300▄550000 2A0000 550000 7E7F00▄550000 550000 2A0000 666100▄660000 920000 920000 920000 939200▄920000 930000 930000 920000 920000 939200▄AB0000 AC0000 ABAC00▄920000 928D00▄920000 920000 920000 920000 928D00▄8D6100▄615C00▄8D5B00▄565B00▄5B5C00▄5B0000 293000▄282900▄292800▄2A0000 530000 545300▄980000 2A0000 7F5500▄535400▄2A0000 2A5300▄290000 290000 540000 545500▄535400▄532A00▄2A5300▄2A0000 2A0000 530000 530000 2A5300▄2A0000 290000 290000 290000 2A2900▄292A00▄290000 290000 290000 2A2900▄2A2900▄2A2900▄2A2900▄292800▄290000 290000 290000 292800▄292800▄282900▄280000 290000 290000 282900▄290000 2A5300▄290000 290000 532A00▄290000 530000 550000 530000 530000 7F7E00▄7E0000 615500▄556100▄530000 610000 610000 610000 928D00▄928D00▄920000 920000 926600▄920000 618D00▄615C00▄986100▄989200▄989200▄615B00▄615C00▄610000 8D0000 8D0000 8D0000 8D0000 610000 5C0000 5C5B00▄5B0000 5B5600▄5C5B00▄300000 290000 282900▄292800▄290000 557E00▄540000 988000▄557E00▄7F7E00▄545300▄2A5300▄532A00▄530000 292A00▄532900▄550000 545500▄2A5300▄545300▄2A5300▄2A0000 2A0000 532A00▄530000 292A00▄290000 290000 292800▄290000 290000 290000 280000 280000 292800▄292800▄290000 290000 290000 290000 290000 290000 282900▄280000 280000 290000 292800▄280000 290000 290000 290000 290000 530000 292A00▄530000 550000 530000 530000 540000 540000 7E5500▄530000 610000 530000 615300▄610000 920000 920000 920000 920000 920000 615300▄2A5300▄292A00▄2A2900▄2A5C00▄532900▄2A2900▄2A2900▄610000 8D0000 8D0000 8D0000 610000 5C6100▄5B5C00▄2A0000 300000 2B0000 302900▄290000 290000 290000 290000 290000 532A00▄547F00▄7F0000 7E0000 535400▄7E5500▄530000 530000 2A5300▄532A00▄292A00▄290000 532900▄540000 530000 535400▄530000 530000 2A0000 2A0000 530000 530000 292A00▄290000 290000 280000 290000 290000 292800▄280000 292800▄290000 290000 290000 290000 290000 290000 290000 292800▄280000 290000 280000 280000 292800▄290000 290000 290000 532A00▄2A0000 530000 530000 2A0000 530000 2A0000 550000 7F0000 530000 2A0000 532A00▄2A5300▄615C00▄610000 610000 8D6100▄920000 929300▄930000 7F9800▄617E00▄536100▄2A0000 2A5300▄610000 8D0000 8D0000 8D0000 8D0000 610000 29D600▀29FF00▀29FF00▀29D600▀300000 300000 290000 290000 544800S540000 540000 540000 282900▄555400▄545500▄555400▄54D700▒2AD700▒7FD700▒55D700▐557E00▄292A00▄532A00▄2A5300▄292A00▄290000 2A0000 530000 555400▄545500▄530000 530000 2A0000 292A00▄2A0000 2A0000 290000 290000 292800▄290000 290000 290000 282900▄290000 280000 282900▄280000 290000 290000 290000 290000 280000 290000 290000 280000 280000 290000 290000 290000 2A0000 2A0000 2A0000 545300▄290000 2A5300▄540000 540000 550000 557E00▄2A5300▄2A2900▄530000 532A00▄5C0000 5C0000 615C00▄610000 926600▄932A00▄8D3000▄5B3000▄8D0000 55D500╚55D500╬55D500╬55D500╝935400▄987F00▄7F0000 7F5500▄295500-295500c295500o295500m545500▄550000 540000 540000 FF0000 FF0000 FF0000 FF0000 540000 540000 7F0000 7F0000 7FAC00▜7EAC00▒55AC00▒7F7E00▄818000▄7E7F00▄295300▄2A2900▄530000 2A5300▄290000 290000 532A00▄530000 555300▄555400▄530000 530000 2A0000 290000 290000 290000 290000 282900▄292800▄290000 280000 290000 290000 282900▄290000 290000 290000 290000 290000 280000 290000 290000 282900▄280000 290000 290000 290000 2A0000 290000 2A0000 540000 2A2900▄530000 540000 535400▄2A0000 7E0000 535400▄530000 290000 530000 530000 530000 535C00▄296100▄285C00▄295C00▄2A5B00▄930000 939800▄93C900▄93AA00▄93C400▄930000 7F0000 7F9800▄7F9800▄980000 980000 980000 800000 7F0000 7F0000 7F0000 7E0000 7F0000 7F0000 7F0000 7F0000 7F0000 7F0000 7F0000 7F0000 818000▄808100▄810000 7F8000▄7F0000 7F0000 818000▄7F0000 2A5400▄292A00▄532A00▄530000 290000 290000 290000 530000 545300▄540000 540000 2A5300▄2A0000 292A00▄290000 290000 290000 290000 280000 292800▄280000 292800▄290000 290000 290000 290000 290000 290000 ]],
|
||
downloading = [[3F100000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0B0000 0B0000 410000 410000 0B0000 0B0000 410000 410000 0B0000 0B0000 500000 500000 500000 500000 500000 500000 0B0000 0B0000 410000 410000 0B0000 0B0000 3B0000 3B0000 3B0000 3B0000 0B0000 0B0000 410000 410000 0B0000 0B0000 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0B0000 0B0000 410000 410000 0B0000 0B0000 410000 410000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 410000 410000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 410000 410000 0B0000 0B0000 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 180000 0018FF▄0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0B0000 0B0000 410000 410000 0B0000 0B0000 410000 410000 410000 410000 410000 410000 410000 410000 410000 410000 410000 410000 410000 410000 410000 410000 410000 410000 410000 410000 410000 410000 410000 410000 0B0000 0B0000 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 180000 180000 180000 0018FF▄0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0B0000 0B0000 410000 410000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 180000 180000 180000 180000 180000 0018FF▄0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0B0000 0B0000 410000 410000 0B0000 0B0000 410000 410000 410000 410000 0B0000 0B0000 290000 290000 290000 290000 0B0000 0B0000 410000 410000 410000 410000 410000 410000 410000 410000 410000 410000 410000 410000 0B0000 0B0000 180000 180000 180000 180000 180000 180000 180000 180000 180000 180000 180000 180000 180000 180000 180000 180000 180000 180000 180000 180000 180000 0018FF▄0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0B0000 0B0000 410000 410000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 290000 290000 290000 290000 0B0000 0B0000 410000 410000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 180000 180000 180000 180000 180000 180000 180000 180000 180000 180000 180000 180000 180000 180000 180000 180000 180000 180000 180000 180000 180000 180000 180000 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0B0000 0B0000 410000 410000 0B0000 0B0000 410000 410000 410000 410000 0B0000 0B0000 290000 290000 290000 290000 0B0000 0B0000 410000 410000 410000 410000 410000 410000 410000 410000 410000 410000 410000 410000 0B0000 0B0000 180000 180000 180000 180000 180000 180000 180000 180000 180000 180000 180000 180000 180000 180000 180000 180000 180000 180000 180000 180000 180000 0018FF▀0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0B0000 0B0000 410000 410000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 290000 290000 290000 290000 0B0000 0B0000 410000 410000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 180000 180000 180000 180000 180000 0018FF▀0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0B0000 0B0000 410000 410000 0B0000 0B0000 410000 410000 410000 410000 0B0000 0B0000 290000 290000 290000 290000 0B0000 0B0000 410000 410000 410000 410000 410000 410000 410000 410000 410000 410000 410000 410000 0B0000 0B0000 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 180000 180000 180000 0018FF▀0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0B0000 0B0000 410000 410000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 290000 290000 290000 290000 0B0000 0B0000 410000 410000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 180000 0018FF▀0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0B0000 0B0000 410000 410000 0B0000 0B0000 410000 410000 410000 410000 0B0000 0B0000 290000 290000 290000 290000 0B0000 0B0000 410000 410000 410000 410000 410000 410000 410000 410000 410000 410000 410000 410000 0B0000 0B0000 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0B0000 0B0000 410000 410000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 290000 290000 290000 290000 0B0000 0B0000 410000 410000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0B0000 0B0000 410000 410000 0B0000 0B0000 410000 410000 410000 410000 0B0000 0B0000 290000 290000 290000 290000 0B0000 0B0000 410000 410000 410000 410000 410000 410000 410000 410000 410000 410000 410000 410000 0B0000 0B0000 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0B0000 0B0000 410000 410000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 290000 290000 290000 290000 0B0000 0B0000 410000 410000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 0B0000 ]],
|
||
OK = [[24120000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF DDE700▄DDE200▄DDE200▄DDE200▄D8E200▄DDDD00▄D8DD00▄D8DD00▄0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 00FBFF▄ECF600▄ECF100▄ECF100▄ECEC00▄E7F100▄E7EC00▄E7EC00▄E7E7FF▀0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 00FBFF▄FBFB00▄F6FB00▄FBFB00▄F6FB00▄F6FB00▄F6FB00▄F6FB00▄F6F6FF▀0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF A5A500▄A5A500▄D0A500▄D0A500▄D0A500▄D0D000▄D0D000▄FBD100▄0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 794E00▄794E00▄794E00▄794E00▄A54E00▄A54E00▄797900▄A57900▄0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 232300▄232300▄232300▄4E2300▄232300▄4E2300▄4E2300▄4E2300▄0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0025FF▄242500▄242400▄242400▄242400▄242400▄232400▄242400▄7B7BFF▀0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0026FF▄252600▄252600▄262600▄252600▄252600▄252500▄255100▄0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 1818FF▀1D1300▄1D1300▄1D1300▄1D1800▄1D1800▄221800▄221800▄001DFF▄0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF A92700▄272200▄272700▄272700▄272700▄262700▄272700▄2626FF▀0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0E0EFF▀0E0900▄0E0900▄0E0900▄0E0900▄130E00▄130900▄130E00▄130E00▄0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 4D1800▄1D1800▄221800▄221800▄221D00▄221D00▄221D00▄2222FF▀0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 043400▄042F00▄090400▄040400▄090400▄090400▄090400▄090400▄0039FF▄0000FF 0000FF 0000FF 0000FF 0E0900▄0E0900▄130900▄130E00▄130E00▄130E00▄180E00▄0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 2F2FFF▀2F5A00▄2F5A00▄2F2F00▄2F2F00▄042F00▄2F2F00▄042F00▄002FFF▄0000FF 0004FF▄040400▄042F00▄040400▄040400▄090400▄040400▄090400▄0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 5A8600▄868600▄5AB100▄5A8600▄5A8600▄5A8600▄5A5A00▄5A8600▄2F5A00▄5A5A00▄2F5A00▄2F5A00▄2F5A00▄2F2F00▄2F2FFF▀0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF B1B100▄B1B100▄B1DC00▄B1B100▄86DC00▄B1B100▄86B100▄86B100▄86B100▄86B100▄86B100▄868600▄8686FF▀0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF DCDCFF▀DCDB00▄DCDB00▄DCDC00▄DCDB00▄DCDC00▄DCDC00▄B1DC00▄B1DC00▄B1DC00▄0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF DBDBFF▀DBDA00▄DBDA00▄DBDA00▄DBDB00▄DBDA00▄DBDB00▄DBDBFF▀0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF D9D9FF▀D9D900▄D9D900▄DAD800▄DADAFF▀0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF D8D8FF▀D8D800▄D8D8FF▀0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF 0000FF ]],
|
||
EEPROM = [[1E120000FF 0000FF 0000FF 0000FF 0000FF 0000FF 6C4100▄6C6B00▄416C00▄3B5500▄3B0000 553B00▄3B3C00▄3B5500▄3B0000 553B00▄3B3C00▄3B5500▄3B0000 553B00▄3B3C00▄363B00▄360000 363B00▄3B3600▄360000 363B00▄363B00▄360000 3B3600▄0000FF 0000FF 0000FF 0041FF▄006CFF▄006CFF▄6C3B00▄6C3B00▄413B00▄3C6C00▄3B6C00▄554600▄3B6C00▄3B6C00▄3C6C00▄554600▄3B6C00▄3B6C00▄3C7E00▄3B6C00▄3B6C00▄364100▄366C00▄364100▄3B7E00▄363C00▄364000▄360B00▄3B2A00▄362A00▄0000FF 0000FF 0000FF 6C4100▄6B6C00▄416C00▄3B0000 554100▄3B0000 716C00▄6C4100▄6C7100▄6C0000 466B00▄6C4100▄6C7100▄6C0000 466B00▄416C00▄404100▄7E6C00▄404100▄6C6B00▄406C00▄403C00▄7E4000▄417E00▄2A0000 2A0000 0B2A00▄3B0000 3B3C00▄553B00▄3B0000 3B7E00▄3B0000 416C00▄7E4000▄6C4100▄407E00▄7E4000▄404100▄3B7E00▄410000 6B5500▄CD0000 CD0000 CD0000 3B7E00▄3B4000▄3B5500▄C8CD00▄CDC800▄C8CD00▄404100▄7E0000 404100▄0B2A00▄0A2A00▄2A0000 553600▄3B0000 553600▄3C7100▄3B7100▄3C7100▄6B6C00▄417E00▄7E4100▄40CD00▄67D200▄55CD00▄406C00▄7E4100▄407E00▄CD0000 F8C800▄CD0000 3B5500▄3C3B00▄3B7E00▄CD9D00▄CDC800▄CD9D00▄667E00▄404100▄554000▄2A0000 0B2A00▄2A0B00▄360000 363B00▄3B3600▄9D7200▄729D00▄817100▄410000 407E00▄6C4100▄CDF800▄F9CD00▄CD0000 556C00▄404100▄3B6700▄CD0000 CDC800▄CD0000 3B7E00▄415500▄3B0000 C7C800▄9D0000 C7C800▄3C4000▄407E00▄7E4100▄0B2A00▄2A0A00▄2A0000 2A0000 0B2A00▄2A0000 3B0000 3B3C00▄553B00▄6C4100▄407E00▄6C4100▄CD0000 CDC800▄CEF800▄3B4100▄7E4000▄406700▄7E4100▄407E00▄7E4100▄3B0000 405500▄3C3B00▄3B7E00▄554000▄3B3C00▄7E4000▄415500▄664100▄052900▄292800▄290000 002AFF▀002AFF▀000BFF▀550500▄3B2900▄3B2900▄6C3B00▄403B00▄7E5500▄CE3B00▄CD3B00▄CD5500▄554000▄673B00▄403B00▄3B3C00▄405500▄6C3B00▄3B0000 3C3B00▄405400▄3C3B00▄3B0000 665400▄414000▄405500▄7E4100▄052900▄290500▄282900▄0000FF 0000FF 0000FF 292800▄290500▄290000 3C4000▄7E3B00▄405500▄3C3B00▄553B00▄3B3C00▄3C3B00▄553B00▄3B3C00▄554000▄3B0000 3C3B00▄543B00▄3B5500▄3B0000 543B00▄3B5400▄3C3B00▄7E4000▄417E00▄405500▄290500▄290000 052900▄360000 363B00▄3B3600▄3B0000 3C5500▄3B0000 7E3B00▄3B3C00▄3C4000▄405500▄553B00▄3B3C00▄3B6600▄553C00▄3B0000 553B00▄3C3B00▄553B00▄3B0000 3B3700▄363B00▄3C3B00▄3B3600▄543B00▄3C6B00▄404100▄417E00▄292800▄290500▄282900▄363B00▄360000 3B3600▄3C7100▄408100▄3C7100▄7E4000▄3B3C00▄554000▄3BAB00▄3CAB00▄3BAB00▄3BAB00▄3BAB00▄55AB00▄3CCE00▄55AC00▄3BAC00▄55AC00▄3BAC00▄3BAC00▄549E00▄3BAA00▄3CAA00▄3C4000▄663C00▄407E00▄290500▄290000 282900▄360000 3B3600▄360000 9D7200▄729D00▄710000 550000 3B4100▄553B00▄AB0000 AB0000 AB0000 AB0000 AB0000 AB0000 ABAC00▄AC0000 AC0000 ABAC00▄AC0000 AC0000 ABAA00▄AB0000 ABAA00▄554100▄6C4000▄403C00▄062900▄052900▄282900▄2A0000 0B2A00▄2A0B00▄407E00▄414000▄6C3C00▄3B7E00▄3B4000▄7E3B00▄D50000 D50000 D50000 FF0000 FF0000 FF0000 FF0000 FF0000 FF0000 D60000 D6D700▄D60000 D50000 D50000 D50000 363B00▄360000 3B3600▄282900▄280500▄290000 0B2A00▄2A3500▄2A0000 413B00▄7E3B00▄6C3B00▄3B0000 553B00▄3C3B00▄D5AA00▄ACAA00▄D5AA00▄FFAC00▄FFD500▄FFAC00▄FFAB00▄FFAB00▄FFAB00▄D6AC00▄D6AB00▄D7AB00▄D5AB00▄D5AB00▄D5AB00▄3B2A00▄360000 3B3600▄290000 290500▄282900▄2A0000 0B2A00▄2A0B00▄3B0000 3B5500▄3B0000 3C5500▄3B0000 553B00▄AA0000 AA8100▄AA0000 AC0000 ACD500▄AC0000 ACAB00▄ABAC00▄AB0000 ABAC00▄AB0000 AB0000 AB0000 AAAB00▄ABAA00▄360000 362A00▄0B3600▄280500▄290000 052900▄052900▄282900▄292800▄3B5500▄3C3B00▄3B0000 360000 360000 360000 0B3600▄362A00▄2A3600▄360B00▄2A3600▄360B00▄362A00▄2A0B00▄362A00▄2A0B00▄362A00▄2A0B00▄2A0000 2A0B00▄2A0000 360B00▄0B3500▄360000 282900▄290500▄282900▄282900▄052900▄290000 3B2900▄3B2900▄3C2800▄360500▄362900▄3B0500▄2A2900▄0B0500▄2A2900▄2A0500▄352900▄360500▄2A0500▄360500▄360500▄2A0500▄2A0500▄2A0500▄362800▄350600▄2A0500▄360500▄362900▄0B2900▄052900▄290500▄290000 052900▄292800▄052900▄290000 052800▄290000 290500▄290000 280500▄290000 290500▄052900▄290000 292800▄290000 290500▄290000 292800▄290000 290500▄290000 052900▄290000 290500▄282900▄292800▄052900▄282900▄290500▄282900▄]],
|
||
}
|
||
|
||
for key in pairs(images) do
|
||
images[key] = image.fromString(images[key])
|
||
os.sleep(0.05)
|
||
end
|
||
|
||
------------------------------------------------------------------------------------------------------------------------------------
|
||
|
||
local web = require("web")
|
||
local buffer = require("doubleBuffering")
|
||
local GUI = require("GUI")
|
||
local MineOSPaths = require("MineOSPaths")
|
||
local MineOSCore = require("MineOSCore")
|
||
|
||
buffer.setResolution(gpu.maxResolution())
|
||
local mainContainer = GUI.fullScreenContainer()
|
||
mainContainer:addChild(GUI.panel(1, 1, mainContainer.width, mainContainer.height, 0x2D2D2D))
|
||
|
||
local stageContainer = mainContainer:addChild(GUI.container(math.floor(mainContainer.width / 2 - 90 / 2), math.floor(mainContainer.height / 2 - 28 / 2), 90, 28))
|
||
stageContainer:addChild(GUI.panel(1, 1, stageContainer.width, stageContainer.height, 0xDDDDDD))
|
||
|
||
local overrideDraw = stageContainer.draw
|
||
stageContainer.draw = function(...)
|
||
overrideDraw(...)
|
||
GUI.windowShadow(stageContainer.x, stageContainer.y, stageContainer.width, stageContainer.height, 0.5, true)
|
||
end
|
||
|
||
------------------------------------------------------------------------------------------------------------------------------------
|
||
|
||
local stages = {current = 1}
|
||
local localization
|
||
|
||
local function addButtonsToStage()
|
||
local buttonWidth = 7
|
||
local spaceBetween = 5
|
||
|
||
local totalWidth = (stages.current > 1 and buttonWidth or 0) + (stages.current > 1 and stages.current < #stages and spaceBetween or 0) + (stages.current < #stages and buttonWidth or 0)
|
||
local x = math.floor(stageContainer.width / 2 - totalWidth / 2) + 1
|
||
local y = stageContainer.height - 3
|
||
|
||
if stages.current > 1 then
|
||
stageContainer.previousStageButton = stageContainer:addChild(GUI.roundedButton(x, y, buttonWidth, 3, 0xAAAAAA, 0xDDDDDD, 0x777777, 0xDDDDDD, "⇦"))
|
||
stageContainer.previousStageButton.colors.disabled.background = 0xCCCCCC
|
||
stageContainer.previousStageButton.colors.disabled.text = 0xDDDDDD
|
||
stageContainer.previousStageButton.onTouch = function()
|
||
stages.load(stages.current - 1)
|
||
end
|
||
x = x + stageContainer.previousStageButton.width + spaceBetween
|
||
end
|
||
|
||
if stages.current < #stages then
|
||
stageContainer.nextStageButton = stageContainer:addChild(GUI.roundedButton(x, y, buttonWidth, 3, 0xAAAAAA, 0xDDDDDD, 0x777777, 0xDDDDDD, "⇨"))
|
||
stageContainer.nextStageButton.colors.disabled.background = 0xCCCCCC
|
||
stageContainer.nextStageButton.colors.disabled.text = 0xDDDDDD
|
||
stageContainer.nextStageButton.onTouch = function()
|
||
stages.load(stages.current + 1)
|
||
end
|
||
end
|
||
end
|
||
|
||
function stages.load(stage)
|
||
stages.current = stage
|
||
stageContainer:deleteChildren(2)
|
||
|
||
stages[stage]()
|
||
|
||
mainContainer:draw()
|
||
buffer.draw()
|
||
end
|
||
|
||
local function addImageToStage(y, picture)
|
||
stageContainer:addChild(GUI.image(math.floor(stageContainer.width / 2 - image.getWidth(picture) / 2), y, picture))
|
||
return y + image.getHeight(picture) - 1
|
||
end
|
||
|
||
------------------------------------------------------------------------------------------------------------------------------------
|
||
|
||
stages[1] = function()
|
||
addButtonsToStage()
|
||
local y = addImageToStage(3, images.languages)
|
||
y = y + 3
|
||
local comboBox = stageContainer:addChild(GUI.comboBox(math.floor(stageContainer.width / 2 - 15), y, 30, 3, 0xFFFFFF, 0x555555, 0xAAAAAA, 0xDDDDDD))
|
||
|
||
for i = 1, #applicationList.localizations do
|
||
local name = fs.hideExtension(fs.name(applicationList.localizations[i].path))
|
||
comboBox:addItem(name).onTouch = function()
|
||
MineOSCore.properties.language = name
|
||
localization = table.fromString(web.request(URLs.installerLocalization .. name .. ".lang"))
|
||
end
|
||
end
|
||
|
||
comboBox:getItem(1).onTouch()
|
||
end
|
||
|
||
------------------------------------------------------------------------------------------------------------------------------------
|
||
|
||
local function addSwitchToStage(x, y, color, text, state)
|
||
stageContainer:addChild(GUI.text(math.floor(x + 4 - unicode.len(text) / 2), y + 1, 0x555555, text))
|
||
return stageContainer:addChild(GUI.switch(x, y, 8, color, 0xAAAAAA, 0xFFFFFF, state))
|
||
end
|
||
|
||
stages[2] = function()
|
||
addButtonsToStage()
|
||
stageContainer:addChild(GUI.image(1, 1, images.OS))
|
||
local x = math.floor(stageContainer.width / 2)
|
||
stageContainer.downloadWallpapersSwitch = addSwitchToStage(x - 13, 22, 0xFF4940, localization.installWallpapers, true)
|
||
stageContainer.flashEEPROMSwitch = addSwitchToStage(x + 6, 22, 0x3392FF, localization.flashEEPROM, true)
|
||
end
|
||
|
||
------------------------------------------------------------------------------------------------------------------------------------
|
||
|
||
stages[3] = function()
|
||
addButtonsToStage()
|
||
stageContainer:addChild(GUI.textBox(1, 1, 90, 20, 0xFFFFFF, 0x444444, string.wrap(web.request(URLs.license .. MineOSCore.properties.language .. ".lang"), 88), 1, 1, 1))
|
||
|
||
stageContainer.nextStageButton.disabled = true
|
||
local switch = addSwitchToStage(41, 22, 0x666666, localization.terms, false)
|
||
switch.onStateChanged = function()
|
||
stageContainer.nextStageButton.disabled = not switch.state
|
||
mainContainer:draw()
|
||
buffer.draw()
|
||
end
|
||
end
|
||
|
||
------------------------------------------------------------------------------------------------------------------------------------
|
||
|
||
stages[4] = function()
|
||
local y = addImageToStage(5, images.downloading)
|
||
y = y + 3
|
||
stageContainer.nextStageButton.disabled, stageContainer.previousStageButton.disabled = true, true
|
||
|
||
local width = 62
|
||
local x = math.floor(stageContainer.width / 2 - width / 2)
|
||
local progressBar = stageContainer:addChild(GUI.progressBar(x, y, width, 0x3392FF, 0xBBBBBB, 0x555555, 0, true, false))
|
||
local fileLabel = stageContainer:addChild(GUI.label(x, y + 1, width, 1, 0x666666, ""))
|
||
|
||
if stageContainer.downloadWallpapersSwitch.state then
|
||
for i = 1, #applicationList.wallpapers do
|
||
table.insert(applicationList.duringInstall, applicationList.wallpapers[i])
|
||
applicationList.wallpapers[i] = nil
|
||
end
|
||
end
|
||
|
||
for i = 1, #applicationList.localizations do
|
||
table.insert(applicationList.duringInstall, applicationList.localizations[i])
|
||
applicationList.localizations[i] = nil
|
||
end
|
||
|
||
for i = 1, #applicationList.duringInstall do
|
||
fileLabel.text = localization.downloading .. " " .. string.limit(applicationList.duringInstall[i].path, width - unicode.len(localization.downloading) - 1, "center")
|
||
progressBar.value = math.round(i / #applicationList.duringInstall * 100)
|
||
|
||
mainContainer:draw()
|
||
buffer.draw()
|
||
|
||
web.download(applicationList.duringInstall[i].url, applicationList.duringInstall[i].path)
|
||
storeFileVersion(applicationList.duringInstall[i])
|
||
end
|
||
|
||
if stageContainer.flashEEPROMSwitch.state then
|
||
stageContainer:deleteChildren(2)
|
||
y = addImageToStage(4, images.EEPROM)
|
||
stageContainer:addChild(GUI.label(1, y + 3, stageContainer.width, 1, 0x666666, localization.flashingEEPROM)):setAlignment(GUI.alignment.horizontal.center, GUI.alignment.vertical.top)
|
||
mainContainer:draw()
|
||
buffer.draw()
|
||
|
||
component.eeprom.set(web.request(URLs.EFI))
|
||
end
|
||
|
||
stages.load(5)
|
||
end
|
||
|
||
------------------------------------------------------------------------------------------------------------------------------------
|
||
|
||
stages[5] = function()
|
||
addImageToStage(3, images.OK)
|
||
stageContainer.children[#stageContainer.children].localX = stageContainer.children[#stageContainer.children].localX + 3
|
||
|
||
stageContainer:addChild(GUI.label(1, 22, stageContainer.width, 1, 0x666666, localization.needToReboot)):setAlignment(GUI.alignment.horizontal.center, GUI.alignment.vertical.top)
|
||
stageContainer:addChild(GUI.adaptiveRoundedButton(math.floor(stageContainer.width / 2 - (unicode.len(localization.reboot) + 4) / 2), stageContainer.height - 4, 2, 1, 0xAAAAAA, 0xDDDDDD, 0x777777, 0xDDDDDD, localization.reboot)).onTouch = function()
|
||
table.toFile(MineOSPaths.fileVersions, fileVersions)
|
||
|
||
MineOSCore.properties.wallpaperEnabled = stageContainer.downloadWallpapersSwitch.state
|
||
MineOSCore.saveProperties()
|
||
|
||
local file = io.open("/autorun.lua", "w")
|
||
file:write("require(\"shell\").execute(\"OS\")")
|
||
file:close()
|
||
|
||
-- if computer.getArchitecture then
|
||
-- computer.setArchitecture("Lua 5.2")
|
||
-- end
|
||
|
||
computer.shutdown(true)
|
||
end
|
||
end
|
||
|
||
------------------------------------------------------------------------------------------------------------------------------------
|
||
|
||
stages.load(1)
|
||
mainContainer:draw()
|
||
buffer.draw(true)
|
||
mainContainer:startEventHandling()
|