-- Lua 5.3
-- Titles: Jak and Daxter: The Precursor Legacy
-- Features version: 1.00
-- Author: David Haywood
-- Date: March/April 2017
--
-- SCES-50361 (Europe)
-- SCUS-97124 (US)
-- SCPS-15021 (Japan)
-- SCPS-56003 (Korea)
--]]
require( "ee-gpr-alias" ) -- you can access EE GPR by alias (gpr.a0 / gpr["a0"])
require( "pad-and-key" ) -- pad values
apiRequest(2.1)
-- 0.8 to enable:
-- Emu::ForceRefreshRate(int)
-- 2.1 to enable:
-- eeObject::getOverlayObject()
-- obtain necessary objects.
local eeObj = getEEObject()
local emuObj = getEmuObject()
local trophyObj = getTrophyObject()
local dmaObj = getDmaObject()
local eeOverlay = eeObj.getOverlayObject()
local SaveData = emuObj.LoadConfig(0)
--[[
-- Flip horizontal coordinate on right stick, if enabled
if SaveData["feature_invert_right_stick"] == nil then
SaveData["feature_invert_right_stick"] = true -- invert by default
end
local invert_right_stick = SaveData["feature_invert_right_stick"]
local padprev = 0
--]]
-- Let's just force it on. Remove below if we go back to toggleable.
local invert_right_stick = true
--[[
local invert_changed = function()
-- TODO: Overlay text?
if invert_right_stick == true then
print("Right Stick inverted")
else
print("Right Stick normal")
end
end
--]]
local FH2 = function() -- right after scePadRead...
local padbuf = eeObj.GetGPR(gpr.v1)
if invert_right_stick == true then
local rs = eeObj.ReadMem8(padbuf + 4)
if rs ~= 0x80 then
eeObj.WriteMem8(padbuf + 4, rs ~ 0xff)
end
end
--[[
local padread = emuObj.GetPad()
local changed = padread ~ padprev
if (changed & pad.R3) == pad.R3 and (padread & pad.R3) == pad.R3 then
invert_right_stick = not invert_right_stick
SaveData["feature_invert_right_stick"] = invert_right_stick
emuObj.SaveConfig(0, SaveData)
invert_changed()
end
padprev = padread
--]]
end
eeObj.AddHook(0x1044C0, 0x94640002, FH2) -- CPadGetData
---
--- Disable shadows during cutscenes. Avoids black dots bug in the game during cutscenes
--- PATCH DISABLED DUE TO A BETTER FIX BELOW
---
--[[
main: 0087c9f0
movie: 0087ff78
posthook: 0087ff88 - v1 != 0 = movie/cutscene playing (offs = 0x3598)
shadow-cpu: 006fd030
shadow-execute: 006fd370
posthook: 006fd4cc - set v1 to 0x20 to disable shadow (offs = 0x68c)
]]
local in_cutscene = false
local FH3 = function()
in_cutscene = (eeObj.GetGPR(gpr.v1) ~= 0)
--[[
local flag = eeObj.GetGPR(gpr.v1)
local cutscene = false
if flag ~= 0 then
cutscene = true
else
cutscene = false
end
if cutscene ~= in_cutscene then
if cutscene == true then
print("Cutscene started")
else
print("Cutscene ended")
end
in_cutscene = cutscene
end
]]--
end
local FH4 = function()
if in_cutscene == true then
-- print("shadows disabled")
eeObj.SetGpr(gpr.v1, 0x20)
end
end
--eeOverlay.AddPostHook("main.seg1", 0x3598, 0x30630800, FH3)
--eeOverlay.AddPostHook("shadow-cpu.seg1", 0x68c, 0x8e43000c, FH4)
---
--- VU1 Shadow Shader fix, based on fixes applied to Jak 2
---
local fixedshadowvu1 = {
0xEA, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x01, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x40, 0xFF, 0x02, 0x00, 0x00,
0x30, 0x00, 0x00, 0x80, 0xFF, 0x02, 0x00, 0x00, 0x13, 0x00, 0x00, 0x40,
0xFF, 0x02, 0x00, 0x00, 0x30, 0x00, 0x00, 0x80, 0xFF, 0x02, 0x00, 0x00,
0xCD, 0x00, 0x00, 0x40, 0xFF, 0x02, 0x00, 0x00, 0x30, 0x00, 0x00, 0x80,
0xFF, 0x02, 0x00, 0x00, 0x48, 0x01, 0x00, 0x40, 0xFF, 0x02, 0x00, 0x00,
0x30, 0x00, 0x00, 0x80, 0xFF, 0x02, 0x00, 0x00, 0x30, 0x00, 0x00, 0x80,
0xFF, 0x02, 0x00, 0x40, 0x30, 0x00, 0x00, 0x80, 0xFF, 0x02, 0x00, 0x00,
0x58, 0x03, 0x01, 0x10, 0xFF, 0x02, 0x00, 0x00, 0x64, 0x03, 0x02, 0x10,
0xFF, 0x02, 0x00, 0x00, 0xFD, 0x0B, 0x01, 0x81, 0xFF, 0x02, 0x00, 0x00,
0xFD, 0x13, 0x81, 0x80, 0xFF, 0x02, 0x00, 0x00, 0xFD, 0x0B, 0x41, 0x80,
0xFF, 0x02, 0x00, 0x00, 0xFD, 0x13, 0x21, 0x80, 0xFF, 0x02, 0x00, 0x00,
0x70, 0x03, 0xE2, 0x01, 0xFF, 0x02, 0x00, 0x00, 0x72, 0x03, 0xE3, 0x01,
0xFF, 0x02, 0x00, 0x00, 0x73, 0x03, 0xE4, 0x01, 0xFF, 0x02, 0x00, 0x00,
0x74, 0x03, 0xE5, 0x01, 0xFF, 0x02, 0x00, 0x00, 0x75, 0x03, 0xEC, 0x01,
0xFF, 0x02, 0x00, 0x40, 0x71, 0x03, 0xED, 0x01, 0xFF, 0x02, 0x00, 0x00,
0x58, 0x01, 0x03, 0x10, 0xFF, 0x02, 0x00, 0x00, 0xFE, 0x1B, 0x08, 0x81,
0xFF, 0x02, 0x00, 0x00, 0xFC, 0x0B, 0x02, 0x80, 0xFF, 0x02, 0x00, 0x00,
0x72, 0x18, 0x03, 0x80, 0x43, 0x06, 0x40, 0x00, 0x78, 0x03, 0xF9, 0x01,
0x83, 0x06, 0x40, 0x00, 0x79, 0x03, 0xFD, 0x01, 0xC3, 0x06, 0x40, 0x00,
0x7B, 0x03, 0xFE, 0x01, 0x03, 0x07, 0x40, 0x00, 0x00, 0x00, 0xE6, 0x01,
0xFF, 0x02, 0x00, 0x00, 0x01, 0x00, 0xE7, 0x01, 0xFF, 0x02, 0x00, 0x00,
0x02, 0x00, 0xE8, 0x01, 0xFF, 0x02, 0x00, 0x00, 0x03, 0x00, 0xE9, 0x01,
0xFF, 0x02, 0x00, 0x00, 0xFC, 0x0B, 0x21, 0x80, 0xFF, 0x02, 0x00, 0x00,
0x00, 0xC8, 0xE2, 0x03, 0xFF, 0x02, 0x00, 0x00, 0x01, 0xE8, 0xE2, 0x03,
0xFF, 0x02, 0x00, 0x00, 0x02, 0xF0, 0xE2, 0x03, 0xFF, 0x02, 0x00, 0x00,
0x00, 0xC8, 0xE1, 0x03, 0xFF, 0x02, 0x00, 0x00, 0x01, 0xE8, 0xE1, 0x03,
0xFF, 0x02, 0x00, 0x00, 0x02, 0xF0, 0xE1, 0x03, 0xFF, 0x02, 0x00, 0x00,
0x7C, 0x1B, 0xF0, 0x81, 0xFF, 0x02, 0x00, 0x00, 0x30, 0x00, 0x00, 0x80,
0xFF, 0x02, 0x00, 0x00, 0x30, 0x00, 0x00, 0x80, 0xFF, 0x02, 0x00, 0x00,
0x30, 0x00, 0x00, 0x80, 0xFF, 0x02, 0x00, 0x00, 0xFC, 0x83, 0x04, 0x80,
0xFF, 0x02, 0x00, 0x00, 0xFC, 0x83, 0x25, 0x80, 0xFF, 0x02, 0x00, 0x00,
0xFC, 0x83, 0x46, 0x80, 0xFF, 0x02, 0x00, 0x00, 0x30, 0x00, 0x00, 0x80,
0xFF, 0x02, 0x00, 0x00, 0x04, 0x20, 0xF1, 0x01, 0xFF, 0x02, 0x00, 0x00,
0x04, 0x28, 0xF2, 0x01, 0xFF, 0x02, 0x00, 0x00, 0x04, 0x30, 0xF3, 0x01,
0xFF, 0x02, 0x00, 0x00, 0x30, 0x00, 0x00, 0x80, 0xBF, 0x49, 0xE0, 0x01,
0x3C, 0x8B, 0xEF, 0x81, 0xBC, 0x30, 0xF1, 0x01, 0x30, 0x00, 0x00, 0x80,
0xBD, 0x38, 0xF1, 0x01, 0x30, 0x00, 0x00, 0x80, 0x4A, 0x44, 0xF1, 0x01,
0x30, 0x00, 0x00, 0x80, 0xBF, 0x49, 0xE0, 0x01, 0x30, 0x00, 0x00, 0x80,
0x6C, 0x97, 0xEF, 0x01, 0x30, 0x00, 0x00, 0x80, 0xAC, 0x9F, 0xEF, 0x01,
0xBC, 0x63, 0x91, 0x81, 0xBC, 0x30, 0xF2, 0x01, 0x30, 0x00, 0x00, 0x80,
0x6A, 0x8D, 0xE2, 0x01, 0x30, 0x00, 0x00, 0x80, 0xBD, 0x38, 0xF2, 0x01,
0x30, 0x00, 0x00, 0x80, 0x8A, 0x44, 0xF2, 0x01, 0x30, 0x00, 0x00, 0x80,
0xBF, 0x49, 0xE0, 0x01, 0x30, 0x00, 0x00, 0x80, 0xBC, 0x30, 0xF3, 0x01,
0x30, 0x00, 0x00, 0x80, 0xBD, 0x38, 0xF3, 0x01, 0xBC, 0x63, 0x92, 0x81,
0x5C, 0x8C, 0xC0, 0x01, 0x30, 0x00, 0x00, 0x80, 0xCA, 0x44, 0xF3, 0x01,
0x30, 0x00, 0x00, 0x80, 0xAA, 0x95, 0xE2, 0x01, 0x30, 0x00, 0x00, 0x80,
0xFE, 0xEA, 0xDE, 0x01, 0x30, 0x00, 0x00, 0x80, 0x6E, 0xF7, 0xDD, 0x01,
0x30, 0x00, 0x00, 0x80, 0x68, 0x8E, 0x83, 0x01, 0x30, 0x00, 0x00, 0x80,
0x68, 0x8C, 0xE5, 0x01, 0xBC, 0x63, 0x93, 0x81, 0x9C, 0x94, 0xC0, 0x01,
0x30, 0x00, 0x00, 0x80, 0xEA, 0x9D, 0xE2, 0x01, 0x30, 0x00, 0x00, 0x80,
0x6A, 0xEF, 0xCF, 0x01, 0x30, 0x00, 0x00, 0x80, 0x6A, 0xCE, 0x84, 0x01,
0x30, 0x00, 0x00, 0x80, 0xAF, 0x52, 0xF1, 0x01, 0x30, 0x00, 0x00, 0x80,
0xEB, 0x5A, 0xF1, 0x01, 0x30, 0x00, 0x00, 0x80, 0x7D, 0x89, 0xF1, 0x01,
0x30, 0x00, 0x00, 0x80, 0xA8, 0x96, 0x83, 0x01, 0x30, 0x00, 0x00, 0x80,
0xA8, 0x94, 0xE5, 0x01, 0x00, 0x00, 0x00, 0x22, 0x41, 0xEF, 0x1D, 0x01,
0x30, 0x00, 0x00, 0x80, 0xDC, 0x9C, 0xC0, 0x01, 0x04, 0xC8, 0xE2, 0x03,
0xAF, 0x52, 0xF2, 0x01, 0x05, 0x88, 0xE2, 0x03, 0xEB, 0x5A, 0xF2, 0x01,
0x30, 0x00, 0x00, 0x80, 0xFF, 0xA9, 0xD5, 0x01, 0x30, 0x00, 0x00, 0x80,
0xAA, 0xD6, 0x84, 0x01, 0x30, 0x00, 0x00, 0x80, 0x42, 0xEF, 0x1D, 0x01,
0x30, 0x00, 0x00, 0x80, 0x7D, 0x91, 0xF2, 0x01, 0x30, 0x00, 0x00, 0x80,
0xE8, 0x9E, 0x83, 0x01, 0x06, 0xD0, 0xE2, 0x03, 0xE8, 0x9C, 0xE5, 0x01,
0x02, 0x00, 0x01, 0x2C, 0xFF, 0xB1, 0xD6, 0x01, 0x07, 0x90, 0xE2, 0x03,
0xFF, 0xB9, 0xD7, 0x01, 0x03, 0x08, 0x00, 0x50, 0xEA, 0xDE, 0x84, 0x01,
0x30, 0x00, 0x00, 0x80, 0xAF, 0x52, 0xF3, 0x01, 0x02, 0x00, 0x00, 0x40,
0xFF, 0x02, 0x00, 0x00, 0x77, 0x03, 0xFF, 0x01, 0xEB, 0x5A, 0xF3, 0x01,
0x76, 0x03, 0xFF, 0x01, 0xEB, 0x5A, 0xF3, 0x01, 0xFF, 0xFF, 0x03, 0x24,
0x7D, 0x99, 0xF3, 0x01, 0x52, 0x08, 0x00, 0x52, 0xFF, 0x02, 0x00, 0x00,
0xF2, 0x47, 0x08, 0x80, 0xFF, 0x02, 0x00, 0x00, 0x08, 0xD8, 0xE2, 0x03,
0xFF, 0x02, 0x00, 0x00, 0x03, 0xF8, 0xE2, 0x03, 0xFF, 0x02, 0x00, 0x00,
0x09, 0x98, 0xE2, 0x03, 0xFF, 0x02, 0x00, 0x00, 0xFC, 0x16, 0x00, 0x80,
0xFF, 0x02, 0x00, 0x00, 0xFC, 0x0B, 0x22, 0x80, 0xFF, 0x02, 0x00, 0x00,
0x3D, 0x0B, 0xE1, 0x81, 0xFF, 0x02, 0x00, 0x00, 0xBC, 0x47, 0x00, 0x5A,
0xFF, 0x02, 0x00, 0x00, 0x30, 0x00, 0x00, 0x80, 0xFF, 0x02, 0x00, 0x00,
0x58, 0x01, 0x03, 0x10, 0xFF, 0x02, 0x00, 0x00, 0xFE, 0x1B, 0x08, 0x81,
0xFF, 0x02, 0x00, 0x00, 0x72, 0x18, 0x03, 0x80, 0xFF, 0x02, 0x00, 0x00,
0x7C, 0x1B, 0xF0, 0x81, 0xFF, 0x02, 0x00, 0x00, 0x30, 0x00, 0x00, 0x80,
0xFF, 0x02, 0x00, 0x00, 0x30, 0x00, 0x00, 0x80, 0xFF, 0x02, 0x00, 0x00,
0x30, 0x00, 0x00, 0x80, 0xFF, 0x02, 0x00, 0x00, 0xFC, 0x83, 0x04, 0x80,
0xFF, 0x02, 0x00, 0x00, 0xFC, 0x83, 0x25, 0x80, 0xFF, 0x02, 0x00, 0x00,
0xFC, 0x83, 0x46, 0x80, 0xFF, 0x02, 0x00, 0x00, 0x30, 0x00, 0x00, 0x80,
0xFF, 0x02, 0x00, 0x00, 0xAE, 0x20, 0xF1, 0x01, 0xFF, 0x02, 0x00, 0x00,
0xAE, 0x30, 0xF2, 0x01, 0xFF, 0x02, 0x00, 0x00, 0xAE, 0x28, 0xF3, 0x01,
0xFF, 0x02, 0x00, 0x00, 0x30, 0x00, 0x00, 0x80, 0xBF, 0x49, 0xE0, 0x01,
0x3C, 0x8B, 0xEF, 0x81, 0xBC, 0x30, 0xF1, 0x01, 0x30, 0x00, 0x00, 0x80,
0xBD, 0x38, 0xF1, 0x01, 0x30, 0x00, 0x00, 0x80, 0x4A, 0x44, 0xF1, 0x01,
0x30, 0x00, 0x00, 0x80, 0xBF, 0x49, 0xE0, 0x01, 0x30, 0x00, 0x00, 0x80,
0x6C, 0x97, 0xEF, 0x01, 0x30, 0x00, 0x00, 0x80, 0xAC, 0x9F, 0xEF, 0x01,
0xBC, 0x63, 0x91, 0x81, 0xBC, 0x30, 0xF2, 0x01, 0x30, 0x00, 0x00, 0x80,
0x6A, 0x8D, 0xE2, 0x01, 0x30, 0x00, 0x00, 0x80, 0xBD, 0x38, 0xF2, 0x01,
0x30, 0x00, 0x00, 0x80, 0x8A, 0x44, 0xF2, 0x01, 0x30, 0x00, 0x00, 0x80,
0xBF, 0x49, 0xE0, 0x01, 0x30, 0x00, 0x00, 0x80, 0xBC, 0x30, 0xF3, 0x01,
0x30, 0x00, 0x00, 0x80, 0xBD, 0x38, 0xF3, 0x01, 0xBC, 0x63, 0x92, 0x81,
0x5C, 0x8C, 0xC0, 0x01, 0x30, 0x00, 0x00, 0x80, 0xCA, 0x44, 0xF3, 0x01,
0x30, 0x00, 0x00, 0x80, 0xAA, 0x95, 0xE2, 0x01, 0x30, 0x00, 0x00, 0x80,
0xFE, 0xEA, 0xDE, 0x01, 0x30, 0x00, 0x00, 0x80, 0x6E, 0xF7, 0xDD, 0x01,
0x30, 0x00, 0x00, 0x80, 0x68, 0x8E, 0x83, 0x01, 0x30, 0x00, 0x00, 0x80,
0x68, 0x8C, 0xE5, 0x01, 0xBC, 0x63, 0x93, 0x81, 0x9C, 0x94, 0xC0, 0x01,
0x30, 0x00, 0x00, 0x80, 0xEA, 0x9D, 0xE2, 0x01, 0x30, 0x00, 0x00, 0x80,
0x6A, 0xEF, 0xCF, 0x01, 0x30, 0x00, 0x00, 0x80, 0x6A, 0xCE, 0x84, 0x01,
0x30, 0x00, 0x00, 0x80, 0xAF, 0x52, 0xF1, 0x01, 0x30, 0x00, 0x00, 0x80,
0xEB, 0x5A, 0xF1, 0x01, 0x30, 0x00, 0x00, 0x80, 0x7D, 0x89, 0xF1, 0x01,
0x30, 0x00, 0x00, 0x80, 0xA8, 0x96, 0x83, 0x01, 0x30, 0x00, 0x00, 0x80,
0xA8, 0x94, 0xE5, 0x01, 0x00, 0x00, 0x00, 0x22, 0x41, 0xEF, 0x1D, 0x01,
0x30, 0x00, 0x00, 0x80, 0xDC, 0x9C, 0xC0, 0x01, 0x04, 0xC8, 0xE2, 0x03,
0xAF, 0x52, 0xF2, 0x01, 0x05, 0x88, 0xE2, 0x03, 0xEB, 0x5A, 0xF2, 0x01,
0x30, 0x00, 0x00, 0x80, 0xFF, 0xA9, 0xD5, 0x01, 0x30, 0x00, 0x00, 0x80,
0xAA, 0xD6, 0x84, 0x01, 0xF2, 0x47, 0x08, 0x80, 0x42, 0xEF, 0x1D, 0x01,
0x30, 0x00, 0x00, 0x80, 0x7D, 0x91, 0xF2, 0x01, 0x30, 0x00, 0x00, 0x80,
0xE8, 0x9E, 0x83, 0x01, 0x06, 0xD0, 0xE2, 0x03, 0xE8, 0x9C, 0xE5, 0x01,
0x02, 0x00, 0x01, 0x2C, 0xFF, 0xB1, 0xD6, 0x01, 0x07, 0x90, 0xE2, 0x03,
0xFF, 0xB9, 0xD7, 0x01, 0x03, 0x08, 0x00, 0x50, 0xEA, 0xDE, 0x84, 0x01,
0x30, 0x00, 0x00, 0x80, 0xAF, 0x52, 0xF3, 0x01, 0x02, 0x00, 0x00, 0x40,
0xFF, 0x02, 0x00, 0x00, 0x77, 0x03, 0xFF, 0x01, 0xEB, 0x5A, 0xF3, 0x01,
0x76, 0x03, 0xFF, 0x01, 0xEB, 0x5A, 0xF3, 0x01, 0xFF, 0xFF, 0x03, 0x24,
0x7D, 0x99, 0xF3, 0x01, 0x18, 0x08, 0x00, 0x52, 0xFF, 0x02, 0x00, 0x00,
0x08, 0xD8, 0xE2, 0x03, 0xFF, 0x02, 0x00, 0x00, 0x03, 0xF8, 0xE2, 0x03,
0xFF, 0x02, 0x00, 0x00, 0x09, 0x98, 0xE2, 0x03, 0xFF, 0x02, 0x00, 0x00,
0xFC, 0x16, 0x00, 0x80, 0xFF, 0x02, 0x00, 0x00, 0xFC, 0x0B, 0x22, 0x80,
0xFF, 0x02, 0x00, 0x00, 0x3D, 0x0B, 0xE1, 0x81, 0xFF, 0x02, 0x00, 0x00,
0xBD, 0x47, 0x00, 0x5A, 0xFF, 0x02, 0x00, 0x00, 0x30, 0x00, 0x00, 0x80,
0xFF, 0x02, 0x00, 0x00, 0x30, 0x00, 0x00, 0x80, 0xFF, 0x02, 0x00, 0x40,
0x30, 0x00, 0x00, 0x80, 0xFF, 0x02, 0x00, 0x00, 0xE8, 0xAB, 0xE0, 0x03,
0xFF, 0x02, 0x00, 0x00, 0xEB, 0xB3, 0xE0, 0x03, 0xFF, 0x02, 0x00, 0x00,
0xEE, 0xBB, 0xE0, 0x03, 0xFF, 0x02, 0x00, 0x00, 0xAE, 0xFB, 0xE0, 0x03,
0xFF, 0x02, 0x00, 0x00, 0xFD, 0x13, 0x1D, 0x81, 0xFF, 0x02, 0x00, 0x00,
0xFD, 0x1B, 0x9D, 0x80, 0xFF, 0x02, 0x00, 0x00, 0xFD, 0x3B, 0x5D, 0x80,
0xFF, 0x02, 0x00, 0x00, 0x56, 0x01, 0x0F, 0x42, 0xFF, 0x02, 0x00, 0x00,
0xFD, 0x43, 0x3D, 0x80, 0xFF, 0x02, 0x00, 0x00, 0xFC, 0xEB, 0x68, 0x80,
0xFF, 0x02, 0x00, 0x00, 0xFC, 0xEB, 0x23, 0x80, 0xFF, 0x02, 0x00, 0x00,
0xFC, 0xEB, 0x47, 0x80, 0xFF, 0x02, 0x00, 0x00, 0xA8, 0x07, 0x00, 0x40,
0xFF, 0x02, 0x00, 0x00, 0xFC, 0xEB, 0x02, 0x80, 0xFF, 0x02, 0x00, 0x00,
0xE8, 0xAB, 0xE0, 0x03, 0xFF, 0x02, 0x00, 0x00, 0xEB, 0xB3, 0xE0, 0x03,
0xFF, 0x02, 0x00, 0x00, 0xEE, 0xBB, 0xE0, 0x03, 0xFF, 0x02, 0x00, 0x00,
0xAE, 0xFB, 0xE0, 0x03, 0xFF, 0x02, 0x00, 0x00, 0xFD, 0x13, 0x1D, 0x81,
0xFF, 0x02, 0x00, 0x00, 0xFD, 0x1B, 0x9D, 0x80, 0xFF, 0x02, 0x00, 0x00,
0xFD, 0x3B, 0x5D, 0x80, 0xFF, 0x02, 0x00, 0x00, 0x48, 0x01, 0x0F, 0x42,
0xFF, 0x02, 0x00, 0x00, 0xFD, 0x43, 0x3D, 0x80, 0xFF, 0x02, 0x00, 0x00,
0xFC, 0xEB, 0x68, 0x80, 0xFF, 0x02, 0x00, 0x00, 0xFC, 0xEB, 0x23, 0x80,
0xFF, 0x02, 0x00, 0x00, 0xFC, 0xEB, 0x47, 0x80, 0xFF, 0x02, 0x00, 0x00,
0xE1, 0x07, 0x00, 0x40, 0xFF, 0x02, 0x00, 0x00, 0xFC, 0xEB, 0x02, 0x80,
0xFF, 0x02, 0x00, 0x00, 0x58, 0x02, 0x03, 0x10, 0xFF, 0x02, 0x00, 0x00,
0xFE, 0x1B, 0x08, 0x81, 0xFF, 0x02, 0x00, 0x00, 0xFC, 0x0B, 0x02, 0x80,
0xFF, 0x02, 0x00, 0x00, 0x72, 0x18, 0x03, 0x80, 0x43, 0x06, 0x40, 0x00,
0x78, 0x03, 0xF9, 0x01, 0x83, 0x06, 0x40, 0x00, 0x79, 0x03, 0xFD, 0x01,
0xC3, 0x06, 0x40, 0x00, 0x7C, 0x03, 0xFE, 0x01, 0xFF, 0x02, 0x00, 0x00,
0x00, 0x00, 0xE6, 0x01, 0xFF, 0x02, 0x00, 0x00, 0x01, 0x00, 0xE7, 0x01,
0xFF, 0x02, 0x00, 0x00, 0x02, 0x00, 0xE8, 0x01, 0xFF, 0x02, 0x00, 0x00,
0x03, 0x00, 0xE9, 0x01, 0xFF, 0x02, 0x00, 0x00, 0xFC, 0x0B, 0x21, 0x80,
0xFF, 0x02, 0x00, 0x00, 0x00, 0xC8, 0xE2, 0x03, 0xFF, 0x02, 0x00, 0x00,
0x01, 0xE8, 0xE2, 0x03, 0xFF, 0x02, 0x00, 0x00, 0x02, 0xF0, 0xE2, 0x03,
0xFF, 0x02, 0x00, 0x00, 0x00, 0xC8, 0xE1, 0x03, 0xFF, 0x02, 0x00, 0x00,
0x01, 0xE8, 0xE1, 0x03, 0xFF, 0x02, 0x00, 0x00, 0x02, 0xF0, 0xE1, 0x03,
0xFF, 0x02, 0x00, 0x00, 0x7C, 0x1B, 0xF0, 0x81, 0xFF, 0x02, 0x00, 0x00,
0x30, 0x00, 0x00, 0x80, 0xFF, 0x02, 0x00, 0x00, 0x30, 0x00, 0x00, 0x80,
0xFF, 0x02, 0x00, 0x00, 0x30, 0x00, 0x00, 0x80, 0xFF, 0x02, 0x00, 0x00,
0xFC, 0x83, 0x46, 0x80, 0xFF, 0x02, 0x00, 0x00, 0xFC, 0x83, 0x04, 0x80,
0xFF, 0x02, 0x00, 0x00, 0xFC, 0x83, 0x25, 0x80, 0xFF, 0x02, 0x00, 0x00,
0x06, 0x30, 0x00, 0x50, 0xFF, 0x02, 0x00, 0x00, 0x30, 0x00, 0x00, 0x80,
0xFF, 0x02, 0x00, 0x00, 0x04, 0x20, 0xF1, 0x01, 0xFF, 0x02, 0x00, 0x00,
0x04, 0x28, 0xF2, 0x01, 0xFF, 0x02, 0x00, 0x00, 0xAE, 0x28, 0xF3, 0x01,
0xFF, 0x02, 0x00, 0x00, 0x05, 0x00, 0x00, 0x40, 0xFF, 0x02, 0x00, 0x00,
0xAE, 0x20, 0xF4, 0x01, 0xFF, 0x02, 0x00, 0x00, 0x04, 0x28, 0xF1, 0x01,
0xFF, 0x02, 0x00, 0x00, 0x04, 0x20, 0xF2, 0x01, 0xFF, 0x02, 0x00, 0x00,
0xAE, 0x20, 0xF3, 0x01, 0xFF, 0x02, 0x00, 0x00, 0xAE, 0x28, 0xF4, 0x01,
0xFF, 0x02, 0x00, 0x00, 0x3C, 0x8B, 0xEF, 0x81, 0xBF, 0x49, 0xE0, 0x01,
0x30, 0x00, 0x00, 0x80, 0xBC, 0x30, 0xF1, 0x01, 0x30, 0x00, 0x00, 0x80,
0xBD, 0x38, 0xF1, 0x01, 0x30, 0x00, 0x00, 0x80, 0x4A, 0x44, 0xF1, 0x01,
0x30, 0x00, 0x00, 0x80, 0xBF, 0x49, 0xE0, 0x01, 0x30, 0x00, 0x00, 0x80,
0x6C, 0x97, 0xEF, 0x01, 0x30, 0x00, 0x00, 0x80, 0xAC, 0x9F, 0xEF, 0x01,
0xBC, 0x63, 0x91, 0x81, 0xBC, 0x30, 0xF2, 0x01, 0x30, 0x00, 0x00, 0x80,
0x6A, 0x8D, 0xE2, 0x01, 0x30, 0x00, 0x00, 0x80, 0xBD, 0x38, 0xF2, 0x01,
0x30, 0x00, 0x00, 0x80, 0x8A, 0x44, 0xF2, 0x01, 0x30, 0x00, 0x00, 0x80,
0xBF, 0x49, 0xE0, 0x01, 0x30, 0x00, 0x00, 0x80, 0xBC, 0x30, 0xF3, 0x01,
0x30, 0x00, 0x00, 0x80, 0xBD, 0x38, 0xF3, 0x01, 0xBC, 0x63, 0x92, 0x81,
0x5C, 0x8C, 0xC0, 0x01, 0x30, 0x00, 0x00, 0x80, 0xCA, 0x44, 0xF3, 0x01,
0x30, 0x00, 0x00, 0x80, 0xBF, 0x49, 0xE0, 0x01, 0x30, 0x00, 0x00, 0x80,
0xBC, 0x30, 0xF4, 0x01, 0x30, 0x00, 0x00, 0x80, 0xBD, 0x38, 0xF4, 0x01,
0x30, 0x00, 0x00, 0x80, 0x0A, 0x45, 0xF4, 0x01, 0x30, 0x00, 0x00, 0x80,
0xAA, 0x95, 0xE2, 0x01, 0xBC, 0x63, 0x93, 0x81, 0x9C, 0x94, 0xC0, 0x01,
0x30, 0x00, 0x00, 0x80, 0x68, 0x8E, 0x83, 0x01, 0x30, 0x00, 0x00, 0x80,
0x68, 0x8C, 0xE5, 0x01, 0x30, 0x00, 0x00, 0x80, 0xFE, 0xEA, 0xDE, 0x01,
0x30, 0x00, 0x00, 0x80, 0x6E, 0xF7, 0xDD, 0x01, 0x30, 0x00, 0x00, 0x80,
0xEA, 0x9D, 0xE2, 0x01, 0x30, 0x00, 0x00, 0x80, 0x6A, 0xEF, 0xCF, 0x01,
0xBC, 0x63, 0x94, 0x81, 0xDC, 0x9C, 0xC0, 0x01, 0x30, 0x00, 0x00, 0x80,
0x2A, 0xA6, 0xE2, 0x01, 0x30, 0x00, 0x00, 0x80, 0x6A, 0xCE, 0x84, 0x01,
0x30, 0x00, 0x00, 0x80, 0xAF, 0x52, 0xF1, 0x01, 0x30, 0x00, 0x00, 0x80,
0xEB, 0x5A, 0xF1, 0x01, 0x30, 0x00, 0x00, 0x80, 0x7D, 0x89, 0xF1, 0x01,
0x30, 0x00, 0x00, 0x80, 0xA8, 0x96, 0x83, 0x01, 0x30, 0x00, 0x00, 0x80,
0x1C, 0xA5, 0xC0, 0x01, 0x30, 0x00, 0x00, 0x80, 0xA8, 0x94, 0xE5, 0x01,
0x30, 0x00, 0x00, 0x80, 0x41, 0xEF, 0x1D, 0x01, 0x04, 0xC8, 0xE2, 0x03,
0xAF, 0x52, 0xF2, 0x01, 0x05, 0x88, 0xE2, 0x03, 0xEB, 0x5A, 0xF2, 0x01,
0x30, 0x00, 0x00, 0x80, 0xFF, 0xA9, 0xD5, 0x01, 0x30, 0x00, 0x00, 0x80,
0xAA, 0xD6, 0x84, 0x01, 0x30, 0x00, 0x00, 0x80, 0x42, 0xEF, 0x1D, 0x01,
0x30, 0x00, 0x00, 0x80, 0x7D, 0x91, 0xF2, 0x01, 0x30, 0x00, 0x00, 0x80,
0xE8, 0x9E, 0x83, 0x01, 0x06, 0xD0, 0xE2, 0x03, 0xE8, 0x9C, 0xE5, 0x01,
0x02, 0x00, 0x01, 0x2C, 0xFF, 0xB1, 0xD6, 0x01, 0x07, 0x90, 0xE2, 0x03,
0xFF, 0xB9, 0xD7, 0x01, 0x30, 0x00, 0x00, 0x80, 0xFF, 0xC1, 0xD8, 0x01,
0x30, 0x00, 0x00, 0x80, 0x28, 0xA7, 0x83, 0x01, 0x30, 0x00, 0x00, 0x80,
0x28, 0xA5, 0xE5, 0x01, 0x30, 0x00, 0x00, 0x80, 0xEA, 0xDE, 0x84, 0x01,
0x30, 0x00, 0x00, 0x80, 0xAF, 0x52, 0xF3, 0x01, 0x30, 0x00, 0x00, 0x80,
0xEB, 0x5A, 0xF3, 0x01, 0x03, 0x08, 0x00, 0x50, 0x2A, 0xE7, 0x84, 0x01,
0x30, 0x00, 0x00, 0x80, 0xAF, 0x52, 0xF4, 0x01, 0x02, 0x00, 0x00, 0x40,
0xFF, 0x02, 0x00, 0x00, 0x77, 0x03, 0xFF, 0x01, 0xEB, 0x5A, 0xF4, 0x01,
0x76, 0x03, 0xFF, 0x01, 0xEB, 0x5A, 0xF4, 0x01, 0xFF, 0xFF, 0xFF, 0x24,
0x7D, 0x99, 0xF3, 0x01, 0x0D, 0x08, 0x00, 0x52, 0xEB, 0x5A, 0xF4, 0x01,
0xF2, 0x47, 0x08, 0x80, 0xFF, 0x02, 0x00, 0x00, 0x08, 0xD8, 0xE2, 0x03,
0x7D, 0xA1, 0xF4, 0x01, 0x03, 0xF8, 0xE2, 0x03, 0xFF, 0x02, 0x00, 0x00,
0x09, 0x98, 0xE2, 0x03, 0xFF, 0x02, 0x00, 0x00, 0x0A, 0xE0, 0xE2, 0x03,
0xFF, 0x02, 0x00, 0x00, 0x0B, 0xA0, 0xE2, 0x03, 0xFF, 0x02, 0x00, 0x00,
0xFC, 0x16, 0x00, 0x80, 0xFF, 0x02, 0x00, 0x00, 0xFC, 0x0B, 0x22, 0x80,
0xFF, 0x02, 0x00, 0x00, 0x3D, 0x0B, 0xE1, 0x81, 0xFF, 0x02, 0x00, 0x00,
0xA7, 0x47, 0x00, 0x5A, 0xFF, 0x02, 0x00, 0x00, 0x30, 0x00, 0x00, 0x80,
0xFF, 0x02, 0x00, 0x00, 0x30, 0x00, 0x00, 0x80, 0xFF, 0x02, 0x00, 0x40,
0x30, 0x00, 0x00, 0x80, 0xFF, 0x02, 0x00, 0x00, 0xE8, 0xAB, 0xE0, 0x03,
0xFF, 0x02, 0x00, 0x00, 0xEB, 0xB3, 0xE0, 0x03, 0xFF, 0x02, 0x00, 0x00,
0xEE, 0xBB, 0xE0, 0x03, 0xFF, 0x02, 0x00, 0x00, 0xF1, 0xC3, 0xE0, 0x03,
0xFF, 0x02, 0x00, 0x00, 0xAE, 0xFB, 0xE0, 0x03, 0xFF, 0x02, 0x00, 0x00,
0xFD, 0x13, 0x1D, 0x81, 0xFF, 0x02, 0x00, 0x00, 0xFD, 0x1B, 0x9D, 0x80,
0xFF, 0x02, 0x00, 0x00, 0xFD, 0x3B, 0x5D, 0x80, 0xFF, 0x02, 0x00, 0x00,
0xE9, 0x00, 0x0F, 0x42, 0xFF, 0x02, 0x00, 0x00, 0xFD, 0x43, 0x3D, 0x80,
0xFF, 0x02, 0x00, 0x00, 0xFC, 0xEB, 0x68, 0x80, 0xFF, 0x02, 0x00, 0x00,
0xFC, 0xEB, 0x23, 0x80, 0xFF, 0x02, 0x00, 0x00, 0xFC, 0xEB, 0x47, 0x80,
0xFF, 0x02, 0x00, 0x00, 0xEE, 0x07, 0x00, 0x40, 0xFF, 0x02, 0x00, 0x00,
0xFC, 0xEB, 0x02, 0x80, 0xFF, 0x02, 0x00, 0x00, 0x58, 0x01, 0x03, 0x10,
0xFF, 0x02, 0x00, 0x00, 0xFE, 0x1B, 0x08, 0x81, 0xFF, 0x02, 0x00, 0x00,
0xFC, 0x0B, 0x02, 0x80, 0xFF, 0x02, 0x00, 0x00, 0x72, 0x18, 0x03, 0x80,
0x43, 0x06, 0x40, 0x00, 0x78, 0x03, 0xF9, 0x01, 0x83, 0x06, 0x40, 0x00,
0x79, 0x03, 0xFD, 0x01, 0xC3, 0x06, 0x40, 0x00, 0x7B, 0x03, 0xFE, 0x01,
0x03, 0x07, 0x40, 0x00, 0x00, 0x00, 0xE6, 0x01, 0xFF, 0x02, 0x00, 0x00,
0x01, 0x00, 0xE7, 0x01, 0xFF, 0x02, 0x00, 0x00, 0x02, 0x00, 0xE8, 0x01,
0xFF, 0x02, 0x00, 0x00, 0x03, 0x00, 0xE9, 0x01, 0xFF, 0x02, 0x00, 0x00,
0xFC, 0x0B, 0x21, 0x80, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xC8, 0xE2, 0x03,
0xFF, 0x02, 0x00, 0x00, 0x01, 0xE8, 0xE2, 0x03, 0xFF, 0x02, 0x00, 0x00,
0x02, 0xF0, 0xE2, 0x03, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xC8, 0xE1, 0x03,
0xFF, 0x02, 0x00, 0x00, 0x01, 0xE8, 0xE1, 0x03, 0xFF, 0x02, 0x00, 0x00,
0x02, 0xF0, 0xE1, 0x03, 0xFF, 0x02, 0x00, 0x00, 0x7C, 0x1B, 0xF0, 0x81,
0xFF, 0x02, 0x00, 0x00, 0x30, 0x00, 0x00, 0x80, 0xFF, 0x02, 0x00, 0x00,
0x30, 0x00, 0x00, 0x80, 0xFF, 0x02, 0x00, 0x00, 0x30, 0x00, 0x00, 0x80,
0xFF, 0x02, 0x00, 0x00, 0xFC, 0x83, 0x61, 0x80, 0xFF, 0x02, 0x00, 0x00,
0xFC, 0x83, 0x04, 0x80, 0xFF, 0x02, 0x00, 0x00, 0xFC, 0x83, 0x25, 0x80,
0xFF, 0x02, 0x00, 0x00, 0xFC, 0x83, 0x46, 0x80, 0xFF, 0x02, 0x00, 0x00,
0x04, 0x08, 0x00, 0x50, 0xFF, 0x02, 0x00, 0x00, 0x04, 0x20, 0xF1, 0x01,
0xFF, 0x02, 0x00, 0x00, 0x04, 0x28, 0xF2, 0x01, 0xFF, 0x02, 0x00, 0x00,
0x03, 0x00, 0x00, 0x40, 0xFF, 0x02, 0x00, 0x00, 0x04, 0x30, 0xF3, 0x01,
0xFF, 0x02, 0x00, 0x00, 0x04, 0x28, 0xF3, 0x01, 0xFF, 0x02, 0x00, 0x00,
0x04, 0x30, 0xF2, 0x01, 0xFF, 0x02, 0x00, 0x00, 0x30, 0x00, 0x00, 0x80,
0xBF, 0x49, 0xE0, 0x01, 0x3C, 0x8B, 0xEF, 0x81, 0xBC, 0x30, 0xF1, 0x01,
0x30, 0x00, 0x00, 0x80, 0xBD, 0x38, 0xF1, 0x01, 0x30, 0x00, 0x00, 0x80,
0x6C, 0x97, 0xF1, 0x01, 0x30, 0x00, 0x00, 0x80, 0xAC, 0x9F, 0xF1, 0x01,
0x30, 0x00, 0x00, 0x80, 0x4A, 0x44, 0xF1, 0x01, 0x30, 0x00, 0x00, 0x80,
0xBF, 0x49, 0xE0, 0x01, 0xBC, 0x63, 0x91, 0x81, 0xBC, 0x30, 0xF2, 0x01,
0x30, 0x00, 0x00, 0x80, 0xBD, 0x38, 0xF2, 0x01, 0x30, 0x00, 0x00, 0x80,
0x6A, 0x8D, 0xE2, 0x01, 0x30, 0x00, 0x00, 0x80, 0x8A, 0x44, 0xF2, 0x01,
0x30, 0x00, 0x00, 0x80, 0xBF, 0x49, 0xE0, 0x01, 0x30, 0x00, 0x00, 0x80,
0xBC, 0x30, 0xF3, 0x01, 0x30, 0x00, 0x00, 0x80, 0xBD, 0x38, 0xF3, 0x01,
0xBC, 0x63, 0x92, 0x81, 0x5C, 0x8C, 0xC0, 0x01, 0x30, 0x00, 0x00, 0x80,
0xCA, 0x44, 0xF3, 0x01, 0x30, 0x00, 0x00, 0x80, 0xAA, 0x95, 0xE2, 0x01,
0x30, 0x00, 0x00, 0x80, 0xFE, 0xEA, 0xDE, 0x01, 0x30, 0x00, 0x00, 0x80,
0x6E, 0xF7, 0xDD, 0x01, 0x30, 0x00, 0x00, 0x80, 0x68, 0x8E, 0x83, 0x01,
0x30, 0x00, 0x00, 0x80, 0x68, 0x8C, 0xE5, 0x01, 0xBC, 0x63, 0x93, 0x81,
0x9C, 0x94, 0xC0, 0x01, 0x30, 0x00, 0x00, 0x80, 0xEA, 0x9D, 0xE2, 0x01,
0x30, 0x00, 0x00, 0x80, 0x6A, 0xEF, 0xCF, 0x01, 0x30, 0x00, 0x00, 0x80,
0x6A, 0xCE, 0x84, 0x01, 0x30, 0x00, 0x00, 0x80, 0xAF, 0x52, 0xF1, 0x01,
0x30, 0x00, 0x00, 0x80, 0xEB, 0x5A, 0xF1, 0x01, 0x30, 0x00, 0x00, 0x80,
0x7D, 0x89, 0xF1, 0x01, 0x30, 0x00, 0x00, 0x80, 0xA8, 0x96, 0x83, 0x01,
0x30, 0x00, 0x00, 0x80, 0xA8, 0x94, 0xE5, 0x01, 0x00, 0x00, 0x00, 0x22,
0x41, 0xEF, 0x1D, 0x01, 0x30, 0x00, 0x00, 0x80, 0xDC, 0x9C, 0xC0, 0x01,
0x04, 0xC8, 0xE2, 0x03, 0xAF, 0x52, 0xF2, 0x01, 0x05, 0x88, 0xE2, 0x03,
0xEB, 0x5A, 0xF2, 0x01, 0x30, 0x00, 0x00, 0x80, 0xFF, 0xA9, 0xD5, 0x01,
0x30, 0x00, 0x00, 0x80, 0xAA, 0xD6, 0x84, 0x01, 0x30, 0x00, 0x00, 0x80,
0x42, 0xEF, 0x1D, 0x01, 0x30, 0x00, 0x00, 0x80, 0x7D, 0x91, 0xF2, 0x01,
0x30, 0x00, 0x00, 0x80, 0xE8, 0x9E, 0x83, 0x01, 0x06, 0xD0, 0xE2, 0x03,
0xE8, 0x9C, 0xE5, 0x01, 0x02, 0x00, 0x01, 0x2C, 0xFF, 0xB1, 0xD6, 0x01,
0x07, 0x90, 0xE2, 0x03, 0xFF, 0xB9, 0xD7, 0x01, 0x03, 0x08, 0x00, 0x50,
0xEA, 0xDE, 0x84, 0x01, 0x30, 0x00, 0x00, 0x80, 0xAF, 0x52, 0xF3, 0x01,
0x02, 0x00, 0x00, 0x40, 0xFF, 0x02, 0x00, 0x00, 0x77, 0x03, 0xFF, 0x01,
0xEB, 0x5A, 0xF3, 0x01, 0x76, 0x03, 0xFF, 0x01, 0xEB, 0x5A, 0xF3, 0x01,
0xFF, 0xFF, 0x03, 0x24, 0x7D, 0x99, 0xF3, 0x01, 0x57, 0x08, 0x00, 0x52,
0xFF, 0x02, 0x00, 0x00, 0xF2, 0x47, 0x08, 0x80, 0xFF, 0x02, 0x00, 0x00,
0x08, 0xD8, 0xE2, 0x03, 0xFF, 0x02, 0x00, 0x00, 0x03, 0xF8, 0xE2, 0x03,
0xFF, 0x02, 0x00, 0x00, 0x09, 0x98, 0xE2, 0x03, 0xFF, 0x02, 0x00, 0x00,
0xFC, 0x16, 0x00, 0x80, 0xFF, 0x02, 0x00, 0x00, 0xFC, 0x0B, 0x22, 0x80,
0xFF, 0x02, 0x00, 0x00, 0x3D, 0x0B, 0xE1, 0x81, 0xFF, 0x02, 0x00, 0x00,
0xB8, 0x47, 0x00, 0x5A, 0xFF, 0x02, 0x00, 0x00, 0x30, 0x00, 0x00, 0x80,
0xFF, 0x02, 0x00, 0x00, 0x58, 0x01, 0x03, 0x10, 0xFF, 0x02, 0x00, 0x00,
0xFE, 0x1B, 0x08, 0x81, 0xFF, 0x02, 0x00, 0x00, 0x72, 0x18, 0x03, 0x80,
0xFF, 0x02, 0x00, 0x00, 0x7C, 0x1B, 0xF0, 0x81, 0xFF, 0x02, 0x00, 0x00,
0x30, 0x00, 0x00, 0x80, 0xFF, 0x02, 0x00, 0x00, 0x30, 0x00, 0x00, 0x80,
0xFF, 0x02, 0x00, 0x00, 0x30, 0x00, 0x00, 0x80, 0xFF, 0x02, 0x00, 0x00,
0xFC, 0x83, 0x61, 0x80, 0xFF, 0x02, 0x00, 0x00, 0xFC, 0x83, 0x04, 0x80,
0xFF, 0x02, 0x00, 0x00, 0xFC, 0x83, 0x25, 0x80, 0xFF, 0x02, 0x00, 0x00,
0xFC, 0x83, 0x46, 0x80, 0xFF, 0x02, 0x00, 0x00, 0x04, 0x08, 0x00, 0x52,
0xFF, 0x02, 0x00, 0x00, 0xAE, 0x20, 0xF1, 0x01, 0xFF, 0x02, 0x00, 0x00,
0xAE, 0x28, 0xF2, 0x01, 0xFF, 0x02, 0x00, 0x00, 0x03, 0x00, 0x00, 0x40,
0xFF, 0x02, 0x00, 0x00, 0xAE, 0x30, 0xF3, 0x01, 0xFF, 0x02, 0x00, 0x00,
0xAE, 0x28, 0xF3, 0x01, 0xFF, 0x02, 0x00, 0x00, 0xAE, 0x30, 0xF2, 0x01,
0xFF, 0x02, 0x00, 0x00, 0x30, 0x00, 0x00, 0x80, 0xBF, 0x49, 0xE0, 0x01,
0x3C, 0x8B, 0xEF, 0x81, 0xBC, 0x30, 0xF1, 0x01, 0x30, 0x00, 0x00, 0x80,
0xBD, 0x38, 0xF1, 0x01, 0x30, 0x00, 0x00, 0x80, 0x4A, 0x44, 0xF1, 0x01,
0x30, 0x00, 0x00, 0x80, 0xBF, 0x49, 0xE0, 0x01, 0x30, 0x00, 0x00, 0x80,
0x6C, 0x97, 0xEF, 0x01, 0x30, 0x00, 0x00, 0x80, 0xAC, 0x9F, 0xEF, 0x01,
0xBC, 0x63, 0x91, 0x81, 0xBC, 0x30, 0xF2, 0x01, 0x30, 0x00, 0x00, 0x80,
0x6A, 0x8D, 0xE2, 0x01, 0x30, 0x00, 0x00, 0x80, 0xBD, 0x38, 0xF2, 0x01,
0x30, 0x00, 0x00, 0x80, 0x8A, 0x44, 0xF2, 0x01, 0x30, 0x00, 0x00, 0x80,
0xBF, 0x49, 0xE0, 0x01, 0x30, 0x00, 0x00, 0x80, 0xBC, 0x30, 0xF3, 0x01,
0x30, 0x00, 0x00, 0x80, 0xBD, 0x38, 0xF3, 0x01, 0xBC, 0x63, 0x92, 0x81,
0x5C, 0x8C, 0xC0, 0x01, 0x30, 0x00, 0x00, 0x80, 0xCA, 0x44, 0xF3, 0x01,
0x30, 0x00, 0x00, 0x80, 0xAA, 0x95, 0xE2, 0x01, 0x30, 0x00, 0x00, 0x80,
0xFE, 0xEA, 0xDE, 0x01, 0x30, 0x00, 0x00, 0x80, 0x6E, 0xF7, 0xDD, 0x01,
0x30, 0x00, 0x00, 0x80, 0x68, 0x8E, 0x83, 0x01, 0x30, 0x00, 0x00, 0x80,
0x68, 0x8C, 0xE5, 0x01, 0xBC, 0x63, 0x93, 0x81, 0x9C, 0x94, 0xC0, 0x01,
0x30, 0x00, 0x00, 0x80, 0xEA, 0x9D, 0xE2, 0x01, 0x30, 0x00, 0x00, 0x80,
0x6A, 0xEF, 0xCF, 0x01, 0x30, 0x00, 0x00, 0x80, 0x6A, 0xCE, 0x84, 0x01,
0x30, 0x00, 0x00, 0x80, 0xAF, 0x52, 0xF1, 0x01, 0x30, 0x00, 0x00, 0x80,
0xEB, 0x5A, 0xF1, 0x01, 0x30, 0x00, 0x00, 0x80, 0x7D, 0x89, 0xF1, 0x01,
0x30, 0x00, 0x00, 0x80, 0xA8, 0x96, 0x83, 0x01, 0x30, 0x00, 0x00, 0x80,
0xA8, 0x94, 0xE5, 0x01, 0x00, 0x00, 0x00, 0x22, 0x41, 0xEF, 0x1D, 0x01,
0x30, 0x00, 0x00, 0x80, 0xDC, 0x9C, 0xC0, 0x01, 0x04, 0xC8, 0xE2, 0x03,
0xAF, 0x52, 0xF2, 0x01, 0x05, 0x88, 0xE2, 0x03, 0xEB, 0x5A, 0xF2, 0x01,
0x30, 0x00, 0x00, 0x80, 0xFF, 0xA9, 0xD5, 0x01, 0x30, 0x00, 0x00, 0x80,
0xAA, 0xD6, 0x84, 0x01, 0x30, 0x00, 0x00, 0x80, 0x42, 0xEF, 0x1D, 0x01,
0x30, 0x00, 0x00, 0x80, 0x7D, 0x91, 0xF2, 0x01, 0x30, 0x00, 0x00, 0x80,
0xE8, 0x9E, 0x83, 0x01, 0x06, 0xD0, 0xE2, 0x03, 0xE8, 0x9C, 0xE5, 0x01,
0x02, 0x00, 0x01, 0x2C, 0xFF, 0xB1, 0xD6, 0x01, 0x07, 0x90, 0xE2, 0x03,
0xFF, 0xB9, 0xD7, 0x01, 0x03, 0x08, 0x00, 0x50, 0xEA, 0xDE, 0x84, 0x01,
0x30, 0x00, 0x00, 0x80, 0xAF, 0x52, 0xF3, 0x01, 0x02, 0x00, 0x00, 0x40,
0xFF, 0x02, 0x00, 0x00, 0x77, 0x03, 0xFF, 0x01, 0xEB, 0x5A, 0xF3, 0x01,
0x76, 0x03, 0xFF, 0x01, 0xEB, 0x5A, 0xF3, 0x01, 0xFF, 0xFF, 0x03, 0x24,
0x7D, 0x99, 0xF3, 0x01, 0x19, 0x08, 0x00, 0x52, 0xFF, 0x02, 0x00, 0x00,
0xF2, 0x47, 0x08, 0x80, 0xFF, 0x02, 0x00, 0x00, 0x08, 0xD8, 0xE2, 0x03,
0xFF, 0x02, 0x00, 0x00, 0x03, 0xF8, 0xE2, 0x03, 0xFF, 0x02, 0x00, 0x00,
0x09, 0x98, 0xE2, 0x03, 0xFF, 0x02, 0x00, 0x00, 0xFC, 0x16, 0x00, 0x80,
0xFF, 0x02, 0x00, 0x00, 0xFC, 0x0B, 0x22, 0x80, 0xFF, 0x02, 0x00, 0x00,
0x3D, 0x0B, 0xE1, 0x81, 0xFF, 0x02, 0x00, 0x00, 0xB8, 0x47, 0x00, 0x5A,
0xFF, 0x02, 0x00, 0x00, 0x30, 0x00, 0x00, 0x80, 0xFF, 0x02, 0x00, 0x00,
0x30, 0x00, 0x00, 0x80, 0xFF, 0x02, 0x00, 0x40, 0x30, 0x00, 0x00, 0x80,
0xFF, 0x02, 0x00, 0x00, 0xE8, 0xAB, 0xE0, 0x03, 0xFF, 0x02, 0x00, 0x00,
0xEB, 0xB3, 0xE0, 0x03, 0xFF, 0x02, 0x00, 0x00, 0xEE, 0xBB, 0xE0, 0x03,
0xFF, 0x02, 0x00, 0x00, 0xAE, 0xFB, 0xE0, 0x03, 0xFF, 0x02, 0x00, 0x00,
0xFD, 0x13, 0x1D, 0x81, 0xFF, 0x02, 0x00, 0x00, 0xFD, 0x1B, 0x9D, 0x80,
0xFF, 0x02, 0x00, 0x00, 0xFD, 0x3B, 0x5D, 0x80, 0xFF, 0x02, 0x00, 0x00,
0x14, 0x00, 0x0F, 0x42, 0xFF, 0x02, 0x00, 0x00, 0xFD, 0x43, 0x3D, 0x80,
0xFF, 0x02, 0x00, 0x00, 0xFC, 0xEB, 0x68, 0x80, 0xFF, 0x02, 0x00, 0x00,
0xFC, 0xEB, 0x23, 0x80, 0xFF, 0x02, 0x00, 0x00, 0xFC, 0xEB, 0x47, 0x80,
0xFF, 0x02, 0x00, 0x00, 0xA3, 0x07, 0x00, 0x40, 0xFF, 0x02, 0x00, 0x00,
0xFC, 0xEB, 0x02, 0x80, 0xFF, 0x02, 0x00, 0x00, 0xE8, 0xAB, 0xE0, 0x03,
0xFF, 0x02, 0x00, 0x00, 0xEB, 0xB3, 0xE0, 0x03, 0xFF, 0x02, 0x00, 0x00,
0xEE, 0xBB, 0xE0, 0x03, 0xFF, 0x02, 0x00, 0x00, 0xAE, 0xFB, 0xE0, 0x03,
0xFF, 0x02, 0x00, 0x00, 0xFD, 0x13, 0x1D, 0x81, 0xFF, 0x02, 0x00, 0x00,
0xFD, 0x1B, 0x9D, 0x80, 0xFF, 0x02, 0x00, 0x00, 0xFD, 0x3B, 0x5D, 0x80,
0xFF, 0x02, 0x00, 0x00, 0x06, 0x00, 0x0F, 0x42, 0xFF, 0x02, 0x00, 0x00,
0xFD, 0x43, 0x3D, 0x80, 0xFF, 0x02, 0x00, 0x00, 0xFC, 0xEB, 0x68, 0x80,
0xFF, 0x02, 0x00, 0x00, 0xFC, 0xEB, 0x23, 0x80, 0xFF, 0x02, 0x00, 0x00,
0xFC, 0xEB, 0x47, 0x80, 0xFF, 0x02, 0x00, 0x00, 0xE1, 0x07, 0x00, 0x40,
0xFF, 0x02, 0x00, 0x00, 0xFC, 0xEB, 0x02, 0x80, 0xFF, 0x02, 0x00, 0x00,
0x7D, 0x03, 0xE0, 0x03, 0xFF, 0x02, 0x00, 0x00, 0x84, 0x03, 0xE0, 0x03,
0xFF, 0x02, 0x00, 0x00, 0x8B, 0x03, 0xE0, 0x03, 0xFF, 0x02, 0x00, 0x00,
0x92, 0x03, 0xE0, 0x03, 0xFF, 0x02, 0x00, 0x00, 0x99, 0x03, 0xE0, 0x03,
0xFF, 0x02, 0x00, 0x00, 0xA0, 0x03, 0xE0, 0x03, 0xFF, 0x02, 0x00, 0x00,
0xD4, 0x02, 0x01, 0x10, 0xFF, 0x02, 0x00, 0x00, 0x7D, 0x03, 0x41, 0x0A,
0xFF, 0x02, 0x00, 0x00, 0xD6, 0x02, 0x01, 0x10, 0xFF, 0x02, 0x00, 0x00,
0x84, 0x03, 0x41, 0x0A, 0xFF, 0x02, 0x00, 0x00, 0xD8, 0x02, 0x01, 0x10,
0xFF, 0x02, 0x00, 0x00, 0x8B, 0x03, 0x41, 0x0A, 0xFF, 0x02, 0x00, 0x00,
0xDA, 0x02, 0x01, 0x10, 0xFF, 0x02, 0x00, 0x00, 0x92, 0x03, 0x41, 0x0A,
0xFF, 0x02, 0x00, 0x00, 0xDC, 0x02, 0x01, 0x10, 0xFF, 0x02, 0x00, 0x00,
0x99, 0x03, 0x41, 0x0A, 0xFF, 0x02, 0x00, 0x00, 0xDE, 0x02, 0x01, 0x10,
0xFF, 0x02, 0x00, 0x00, 0xA0, 0x03, 0x41, 0x0A, 0xFF, 0x02, 0x00, 0x00,
0xB0, 0x03, 0x03, 0x10, 0xFF, 0x02, 0x00, 0x00, 0xAF, 0x03, 0x04, 0x10,
0xFF, 0x02, 0x00, 0x00, 0xFD, 0x7B, 0x1F, 0x81, 0xFF, 0x02, 0x00, 0x00,
0x32, 0x00, 0x05, 0x80, 0xFF, 0x02, 0x00, 0x00, 0x27, 0x00, 0x0F, 0x42,
0xFF, 0x02, 0x00, 0x00, 0xE8, 0x03, 0x07, 0x10, 0xFF, 0x02, 0x00, 0x00,
0x25, 0x00, 0x0F, 0x42, 0xFF, 0x02, 0x00, 0x00, 0xEB, 0x03, 0x07, 0x10,
0xFF, 0x02, 0x00, 0x00, 0x23, 0x00, 0x0F, 0x42, 0xFF, 0x02, 0x00, 0x00,
0xEE, 0x03, 0x07, 0x10, 0xFF, 0x02, 0x00, 0x00, 0x67, 0x00, 0x00, 0x40,
0xFF, 0x02, 0x00, 0x00, 0x30, 0x00, 0x00, 0x80, 0xFF, 0x02, 0x00, 0x00,
0x7D, 0x03, 0xE0, 0x03, 0xFF, 0x02, 0x00, 0x00, 0x84, 0x03, 0xE0, 0x03,
0xFF, 0x02, 0x00, 0x00, 0x8B, 0x03, 0xE0, 0x03, 0xFF, 0x02, 0x00, 0x00,
0x92, 0x03, 0xE0, 0x03, 0xFF, 0x02, 0x00, 0x00, 0x99, 0x03, 0xE0, 0x03,
0xFF, 0x02, 0x00, 0x00, 0xA0, 0x03, 0xE0, 0x03, 0xFF, 0x02, 0x00, 0x00,
0xD4, 0x02, 0x01, 0x10, 0xFF, 0x02, 0x00, 0x00, 0x7D, 0x03, 0x41, 0x0A,
0xFF, 0x02, 0x00, 0x00, 0xD6, 0x02, 0x01, 0x10, 0xFF, 0x02, 0x00, 0x00,
0x84, 0x03, 0x41, 0x0A, 0xFF, 0x02, 0x00, 0x00, 0xD8, 0x02, 0x01, 0x10,
0xFF, 0x02, 0x00, 0x00, 0x8B, 0x03, 0x41, 0x0A, 0xFF, 0x02, 0x00, 0x00,
0xDA, 0x02, 0x01, 0x10, 0xFF, 0x02, 0x00, 0x00, 0x92, 0x03, 0x41, 0x0A,
0xFF, 0x02, 0x00, 0x00, 0xDC, 0x02, 0x01, 0x10, 0xFF, 0x02, 0x00, 0x00,
0x99, 0x03, 0x41, 0x0A, 0xFF, 0x02, 0x00, 0x00, 0xDE, 0x02, 0x01, 0x10,
0xFF, 0x02, 0x00, 0x00, 0xA0, 0x03, 0x41, 0x0A, 0xFF, 0x02, 0x00, 0x00,
0xB0, 0x03, 0x03, 0x10, 0xFF, 0x02, 0x00, 0x00, 0xAF, 0x03, 0x04, 0x10,
0xFF, 0x02, 0x00, 0x00, 0xFD, 0x7B, 0x1F, 0x81, 0xFF, 0x02, 0x00, 0x00,
0x32, 0x00, 0x05, 0x80, 0xFF, 0x02, 0x00, 0x00, 0x09, 0x00, 0x0F, 0x42,
0xFF, 0x02, 0x00, 0x00, 0xE8, 0x03, 0x07, 0x10, 0xFF, 0x02, 0x00, 0x00,
0x07, 0x00, 0x0F, 0x42, 0xFF, 0x02, 0x00, 0x00, 0xEB, 0x03, 0x07, 0x10,
0xFF, 0x02, 0x00, 0x00, 0x05, 0x00, 0x0F, 0x42, 0xFF, 0x02, 0x00, 0x00,
0xEE, 0x03, 0x07, 0x10, 0xFF, 0x02, 0x00, 0x00, 0x03, 0x00, 0x0F, 0x42,
0xFF, 0x02, 0x00, 0x00, 0xF1, 0x03, 0x07, 0x10, 0xFF, 0x02, 0x00, 0x00,
0x47, 0x00, 0x00, 0x40, 0xFF, 0x02, 0x00, 0x00, 0x30, 0x00, 0x00, 0x80,
0xFF, 0x02, 0x00, 0x00, 0x7D, 0x03, 0x09, 0x10, 0xFF, 0x02, 0x00, 0x00,
0x32, 0x00, 0x0A, 0x80, 0xFF, 0x02, 0x00, 0x00, 0xA7, 0x4B, 0x01, 0x12,
0xFF, 0x02, 0x00, 0x00, 0xFE, 0x4B, 0x88, 0x80, 0xFF, 0x02, 0x00, 0x00,
0x2B, 0x08, 0x00, 0x5E, 0xFF, 0x02, 0x00, 0x00, 0xFE, 0x4B, 0x46, 0x80,
0xFF, 0x02, 0x00, 0x00, 0x00, 0x38, 0xEF, 0x01, 0xFF, 0x02, 0x00, 0x00,
0x00, 0x40, 0xEE, 0x01, 0xFF, 0x02, 0x00, 0x00, 0x0B, 0x40, 0x00, 0x52,
0xFF, 0x02, 0x00, 0x00, 0xFF, 0x4B, 0x87, 0x80, 0xFF, 0x02, 0x00, 0x00,
0x00, 0x30, 0x0B, 0x4A, 0xFF, 0x02, 0x00, 0x00, 0xFF, 0x4B, 0x07, 0x81,
0xFF, 0x02, 0x00, 0x00, 0x30, 0x00, 0x00, 0x80, 0xFF, 0x02, 0x00, 0x00,
0x30, 0x00, 0x00, 0x80, 0xFF, 0x02, 0x00, 0x00, 0x30, 0x00, 0x00, 0x80,
0xFF, 0x02, 0x00, 0x00, 0x02, 0x00, 0x02, 0x2C, 0xFF, 0x02, 0x00, 0x00,
0x2D, 0x10, 0x00, 0x52, 0xFF, 0x02, 0x00, 0x00, 0x30, 0x00, 0x00, 0x80,
0xFF, 0x02, 0x00, 0x00, 0xEF, 0x07, 0x00, 0x40, 0xFF, 0x02, 0x00, 0x00,
0xF2, 0x49, 0x09, 0x80, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x30, 0x0B, 0x4A,
0xFF, 0x02, 0x00, 0x00, 0x30, 0x00, 0x00, 0x80, 0xFF, 0x02, 0x00, 0x00,
0x30, 0x00, 0x00, 0x80, 0xFF, 0x02, 0x00, 0x00, 0x30, 0x00, 0x00, 0x80,
0xFF, 0x02, 0x00, 0x00, 0x02, 0x00, 0x01, 0x2C, 0xFF, 0x02, 0x00, 0x00,
0x02, 0x00, 0x02, 0x2C, 0xFF, 0x02, 0x00, 0x00, 0x0A, 0x08, 0x00, 0x52,
0xFF, 0x02, 0x00, 0x00, 0x30, 0x00, 0x00, 0x80, 0xFF, 0x02, 0x00, 0x00,
0x03, 0x10, 0x00, 0x52, 0xFF, 0x02, 0x00, 0x00, 0x30, 0x00, 0x00, 0x80,
0xFF, 0x02, 0x00, 0x00, 0xE3, 0x07, 0x00, 0x40, 0xFF, 0x02, 0x00, 0x00,
0xF2, 0x49, 0x09, 0x80, 0xFF, 0x02, 0x00, 0x00, 0x6D, 0x00, 0x0B, 0x42,
0xFF, 0x02, 0x00, 0x00, 0x72, 0x48, 0x07, 0x80, 0xFF, 0x02, 0x00, 0x00,
0x01, 0x80, 0xE9, 0x03, 0xFF, 0x02, 0x00, 0x00, 0xDE, 0x07, 0x00, 0x40,
0xFF, 0x02, 0x00, 0x00, 0xF2, 0x49, 0x09, 0x80, 0xFF, 0x02, 0x00, 0x00,
0x18, 0x10, 0x00, 0x52, 0xFF, 0x02, 0x00, 0x00, 0x30, 0x00, 0x00, 0x80,
0xFF, 0x02, 0x00, 0x00, 0x6B, 0x00, 0x0B, 0x42, 0xFF, 0x02, 0x00, 0x00,
0x30, 0x00, 0x00, 0x80, 0xFF, 0x02, 0x00, 0x00, 0x04, 0x80, 0xE9, 0x03,
0xFF, 0x02, 0x00, 0x00, 0xF2, 0x49, 0x09, 0x80, 0xFF, 0x02, 0x00, 0x00,
0xA7, 0x53, 0x09, 0x0B, 0xFF, 0x02, 0x00, 0x00, 0xA7, 0x53, 0x87, 0x0A,
0xFF, 0x02, 0x00, 0x00, 0x72, 0x50, 0x0A, 0x80, 0xFF, 0x02, 0x00, 0x00,
0xD3, 0x07, 0x00, 0x40, 0xFF, 0x02, 0x00, 0x00, 0x72, 0x4F, 0x07, 0x80,
0xFF, 0x02, 0x00, 0x00, 0x00, 0x38, 0xEE, 0x01, 0xFF, 0x02, 0x00, 0x00,
0x72, 0x28, 0x05, 0x80, 0xFF, 0x02, 0x00, 0x00, 0xBC, 0x03, 0xEE, 0x81,
0xFF, 0x02, 0x00, 0x00, 0x30, 0x00, 0x00, 0x80, 0xAA, 0x73, 0xED, 0x01,
0xB2, 0x18, 0x03, 0x80, 0xFF, 0x02, 0x00, 0x00, 0xBF, 0x03, 0x00, 0x80,
0x87, 0x03, 0x20, 0x00, 0x30, 0x00, 0x00, 0x80, 0x9C, 0x73, 0xC0, 0x01,
0x30, 0x00, 0x00, 0x80, 0xA8, 0x76, 0x83, 0x01, 0x30, 0x00, 0x00, 0x80,
0xA8, 0x73, 0xE5, 0x01, 0x30, 0x00, 0x00, 0x80, 0xAA, 0xD6, 0x84, 0x01,
0x30, 0x00, 0x00, 0x80, 0xAF, 0x52, 0xEE, 0x01, 0x30, 0x00, 0x00, 0x80,
0xEB, 0x5A, 0xEE, 0x01, 0xFE, 0xD7, 0xE3, 0x03, 0x7D, 0x71, 0xEE, 0x01,
0xFF, 0x77, 0xE3, 0x03, 0xFF, 0x02, 0x00, 0x00, 0x05, 0x50, 0x00, 0x5C,
0xFF, 0x02, 0x00, 0x00, 0x30, 0x00, 0x00, 0x80, 0xFF, 0x02, 0x00, 0x00,
0xA6, 0x53, 0x09, 0x09, 0xFF, 0x02, 0x00, 0x00, 0xA6, 0x53, 0x87, 0x08,
0xFF, 0x02, 0x00, 0x00, 0xBF, 0x07, 0x00, 0x40, 0xFF, 0x02, 0x00, 0x00,
0xF2, 0x57, 0x0A, 0x80, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x78, 0x00, 0x48,
0xFF, 0x02, 0x00, 0x00, 0x30, 0x00, 0x00, 0x80, 0xFF, 0x02, 0x00, 0x00,
0x7D, 0x03, 0x09, 0x10, 0xFF, 0x02, 0x00, 0x00, 0xFE, 0x4B, 0x08, 0x81,
0xFF, 0x02, 0x00, 0x00, 0xFE, 0x4B, 0x87, 0x80, 0xFF, 0x02, 0x00, 0x00,
0xFE, 0x4B, 0x46, 0x80, 0xFF, 0x02, 0x00, 0x00, 0x30, 0x00, 0x00, 0x80,
0xFF, 0x02, 0x00, 0x00, 0x1E, 0x40, 0x00, 0x50, 0xFF, 0x02, 0x00, 0x00,
0x00, 0x38, 0xEE, 0x01, 0xFF, 0x02, 0x00, 0x00, 0x1C, 0x40, 0x07, 0x50,
0xFF, 0x02, 0x00, 0x00, 0x00, 0x40, 0xEF, 0x01, 0xFF, 0x02, 0x00, 0x00,
0x00, 0x30, 0x0B, 0x4A, 0xFF, 0x02, 0x00, 0x00, 0x30, 0x00, 0x00, 0x80,
0xFF, 0x02, 0x00, 0x00, 0x30, 0x00, 0x00, 0x80, 0xFF, 0x02, 0x00, 0x00,
0x30, 0x00, 0x00, 0x80, 0xFF, 0x02, 0x00, 0x00, 0x02, 0x00, 0x01, 0x2C,
0xFF, 0x02, 0x00, 0x00, 0x02, 0x00, 0x02, 0x2C, 0xFF, 0x02, 0x00, 0x00,
0x14, 0x08, 0x02, 0x50, 0xFF, 0x02, 0x00, 0x00, 0x30, 0x00, 0x00, 0x80,
0xFF, 0x02, 0x00, 0x00, 0x0A, 0x08, 0x00, 0x50, 0xFF, 0x02, 0x00, 0x00,
0x30, 0x00, 0x00, 0x80, 0xFF, 0x02, 0x00, 0x00, 0x39, 0x00, 0x0B, 0x42,
0xFF, 0x02, 0x00, 0x00, 0x30, 0x00, 0x00, 0x80, 0xFF, 0x02, 0x00, 0x00,
0x04, 0x80, 0xE9, 0x03, 0xFF, 0x02, 0x00, 0x00, 0x32, 0x49, 0x07, 0x80,
0xFF, 0x02, 0x00, 0x00, 0x35, 0x4B, 0x00, 0x80, 0xFF, 0x02, 0x00, 0x00,
0xA2, 0x07, 0x0F, 0x42, 0xFF, 0x02, 0x00, 0x00, 0xF2, 0x49, 0x09, 0x80,
0xFF, 0x02, 0x00, 0x00, 0x09, 0x00, 0x00, 0x40, 0xFF, 0x02, 0x00, 0x00,
0x75, 0x62, 0x00, 0x80, 0xFF, 0x02, 0x00, 0x00, 0x2B, 0x00, 0x0B, 0x42,
0xFF, 0x02, 0x00, 0x00, 0x30, 0x00, 0x00, 0x80, 0xFF, 0x02, 0x00, 0x00,
0x01, 0x80, 0xE9, 0x03, 0xFF, 0x02, 0x00, 0x00, 0x72, 0x48, 0x07, 0x80,
0xFF, 0x02, 0x00, 0x00, 0x35, 0x4B, 0x00, 0x80, 0xFF, 0x02, 0x00, 0x00,
0x99, 0x07, 0x0F, 0x42, 0xFF, 0x02, 0x00, 0x00, 0xF2, 0x49, 0x09, 0x80,
0xFF, 0x02, 0x00, 0x00, 0x75, 0x62, 0x00, 0x80, 0xFF, 0x02, 0x00, 0x00,
0xA0, 0x4B, 0x01, 0x12, 0xFF, 0x02, 0x00, 0x00, 0xFF, 0x4B, 0x00, 0x81,
0xFF, 0x02, 0x00, 0x00, 0xFF, 0x4B, 0x80, 0x80, 0xFF, 0x02, 0x00, 0x00,
0xD9, 0x0F, 0x00, 0x58, 0xFF, 0x02, 0x00, 0x00, 0xF2, 0x49, 0x09, 0x80,
0xFF, 0x02, 0x00, 0x00, 0x0F, 0x28, 0x00, 0x50, 0xFF, 0x02, 0x00, 0x00,
0xFC, 0xFB, 0x0F, 0x80, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x28, 0x05, 0x11,
0xFF, 0x02, 0x00, 0x00, 0x00, 0x28, 0x05, 0x11, 0xFF, 0x02, 0x00, 0x00,
0xFF, 0x23, 0x05, 0x81, 0xFF, 0x02, 0x00, 0x00, 0xAC, 0x03, 0x01, 0x10,
0xFF, 0x02, 0x00, 0x00, 0xFC, 0x0E, 0x00, 0x80, 0xFF, 0x02, 0x00, 0x00,
0x78, 0x03, 0xFE, 0x01, 0xFF, 0x02, 0x00, 0x00, 0x7A, 0x03, 0xFF, 0x01,
0xFF, 0x02, 0x00, 0x00, 0xFE, 0x03, 0x01, 0x10, 0xFF, 0x02, 0x00, 0x00,
0xFF, 0x07, 0xE2, 0x13, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xF0, 0xE1, 0x03,
0xFF, 0x02, 0x00, 0x00, 0xFF, 0x0B, 0x02, 0x81, 0xFF, 0x02, 0x00, 0x00,
0x01, 0xF8, 0xE1, 0x03, 0xFF, 0x02, 0x00, 0x00, 0x30, 0x00, 0x00, 0x80,
0xFF, 0x02, 0x00, 0x00, 0xFC, 0x0E, 0x00, 0x80, 0xFF, 0x02, 0x00, 0x00,
0x30, 0x00, 0x00, 0x80, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x78, 0x00, 0x48,
0xFF, 0x02, 0x00, 0x00, 0x30, 0x00, 0x00, 0x80, 0xFF, 0x02, 0x00, 0x00,
0x00, 0x58, 0x00, 0x48, 0x80, 0x77, 0x2E, 0x00, 0x30, 0x00, 0x00, 0x80,
0xC0, 0x7F, 0x2F, 0x00, 0x00, 0x58, 0x00, 0x48, 0x84, 0x77, 0x2E, 0x00,
0x30, 0x00, 0x00, 0x80, 0xC4, 0x7F, 0x2F, 0x00, 0x00, 0x58, 0x00, 0x48,
0x81, 0x77, 0x2E, 0x00, 0x30, 0x00, 0x00, 0x80, 0xC1, 0x7F, 0x2F, 0x00,
0x00, 0x58, 0x00, 0x48, 0x85, 0x77, 0x2E, 0x00, 0x30, 0x00, 0x00, 0x80,
0xC5, 0x7F, 0x2F, 0x00, 0x00, 0x58, 0x00, 0x48, 0x82, 0x77, 0x2E, 0x00,
0x30, 0x00, 0x00, 0x80, 0xC2, 0x7F, 0x2F, 0x00, 0x00, 0x58, 0x00, 0x48,
0x86, 0x77, 0x2E, 0x00, 0x30, 0x00, 0x00, 0x80, 0xC6, 0x7F, 0x2F, 0x00,
0x30, 0x00, 0x00, 0x80, 0xC7, 0xF7, 0x3F, 0x00, 0xBC, 0xF3, 0xFF, 0x81,
0x2C, 0x7C, 0xEE, 0x01, 0xBF, 0x03, 0x00, 0x80, 0x1C, 0x84, 0xE0, 0x01,
0x00, 0x58, 0x00, 0x48, 0x28, 0x74, 0xF0, 0x01, 0x30, 0x00, 0x00, 0x80,
0xFF, 0x02, 0x00, 0x00, 0x30, 0x00, 0x00, 0x80, 0x87, 0xF7, 0x3F, 0x00,
0xBC, 0xFB, 0xFE, 0x81, 0x2C, 0x74, 0xEF, 0x01, 0xBF, 0x03, 0x00, 0x80,
0x1C, 0x84, 0xE0, 0x01, 0x00, 0x58, 0x00, 0x48, 0x2C, 0x7C, 0xF0, 0x01,
0x30, 0x00, 0x00, 0x80, 0xFF, 0x02, 0x00, 0x00
}
local FH5 = function()
-- if we didn't copy over the patched vu1 code, do it
if eeObj.ReadMem32(0x1FFC000) ~= 0x2ea then
for x = 1, #fixedshadowvu1 do
eeObj.WriteMem8(0x1FFC000 + x - 1, fixedshadowvu1[x])
end
end
eeObj.SetGpr(gpr.a1, 0x1FFC000)
-- print("gnarly hack engaged")
end
eeOverlay.AddPostHook("shadow-vu1.seg1", 0x20, 0x24060001, FH5)
---
-- Force NTSC at boot
eeInsnReplace(0x1094E8, 0x24030001, 0x24030000)
-- Disable Video Mode menu
local FH6 = function()
eeObj.SetGpr(gpr.a0, eeObj.GetGPR(gpr.s7))
end
eeOverlay.AddPostHook("progress.seg1", 0x8ed0, 0x66e40008, FH6)
---
local FH1 = function()
-- 15120c 16:9
-- 14e4c4 4:3
local v1 = eeObj.GetGpr(gpr.v1)
print( string.format("ASPECT CALL v1:%08x", v1 ) )
if v1 == 0x14e4c4 or v1 == 0x14e5c4 then
print( string.format("Set 4:3" ) )
emuObj.SetDisplayAspectNormal()
elseif v1 == 0x15120c or v1 == 0x015130c then
print( string.format("Set 16:9" ) )
emuObj.SetDisplayAspectWide()
end
end
eeOverlay.AddPostHook("settings.seg1", 0x374, 0x9f840048, FH1)
--[[
this is the sceScfGetAspect system call, returning the actual PS2 mode (widescreen / not widescreen) (japan version)
00115C78 8FA20000 lw v0,0x0000(sp) .. .. LS .. .. .. .. ..
00115C7C 00021042 srl v0,v0,1 IX .. .. .. .. .. .. .. [02] REG
00115C80 30420003 andi v0,v0,0x3 IX .. .. .. .. .. .. ..
00115C84 DFBF0010 ld ra,0x0010(sp) .. .. LS .. .. .. .. ..
00115C88 03E00008 jr ra .. .. .. BR .. .. .. .. [01] REG
00115C8C 27BD0020 addiu sp,sp,0x20 IX .. .. .. .. .. .. ..
--]]
--[[
called from
0010015C 3C010013 lui at,0x13 IX .. .. .. .. .. .. ..
00100160 A422DFDA sh v0,0xDFDA(at) .. .. LS .. .. .. .. ..
00100164 0C0456F4 jal 0x00115BD0 .. .. .. BR .. .. .. ..
00100168 00000000 nop IX .. .. .. .. .. .. ..
0010016C 3C010013 lui at,0x13 IX .. .. .. .. .. .. ..
00100170 A422DFD8 sh v0,0xDFD8(at) .. .. LS .. .. .. .. ..
00100174 3C010013 lui at,0x13 IX .. .. .. .. .. .. ..
--]]
local ForceWideScreen = function()
local v0 = eeObj.GetGpr(gpr.v0)
print( string.format("sceScfGetAspect call would be returning %08x", v0 ) )
v0 = 2;
print( string.format("sceScfGetAspect call is returning %08x", v0 ) )
eeObj.SetGpr(gpr.v0,v0)
end
eeObj.AddHook(0x0010015C, 0x3C010013, ForceWideScreen)
-- Credits
-- Trophy design and development by SCEA ISD SpecOps
-- David Thach Senior Director
-- George Weising Executive Producer
-- Tim Lindquist Senior Technical PM
-- Clay Cowgill Engineering
-- Nicola Salmoria Engineering
-- David Haywood Engineering
-- Warren Davis Engineering
-- Jenny Murphy Producer
-- David Alonzo Assistant Producer
-- Tyler Chan Associate Producer
-- Karla Quiros Manager Business Finance & Ops
-- Mayene de la Cruz Art Production Lead
-- Thomas Hindmarch Production Coordinator
-- Special thanks to R&D