diff --git a/games-fps/quakespasm/additional-files/QuakeSpasm.rdef.in b/games-fps/quakespasm/additional-files/QuakeSpasm.rdef.in
new file mode 100644
index 000000000..0812e5867
--- /dev/null
+++ b/games-fps/quakespasm/additional-files/QuakeSpasm.rdef.in
@@ -0,0 +1,649 @@
+resource app_signature "@APP_SIGNATURE@";
+
+resource app_flags B_SINGLE_LAUNCH;
+
+resource app_version {
+ major = @MAJOR@,
+ middle = @MIDDLE@,
+ minor = @MINOR@,
+ variety = B_APPV_DEVELOPMENT,
+ internal = 0,
+ short_info = "QuakeSpasm",
+ long_info = "@LONG_INFO@"
+};
+
+resource vector_icon {
+ $"6E6369660B0400A70580050003FFB380020006023475423B6C12BB6C12347542"
+ $"48B4A64A00E500BD4E0EFFFFC5810200060234A9F63A2FD8BA2FD834A9F64952"
+ $"C34ACD2000BD4E0EFFFFC5810200060234EAEA386941B8694134EAEA49B88C4B"
+ $"91B900BD4E0EFFFFC58102000602BC9C93BB97E13B97E1BC9C934B432A486ADD"
+ $"00BD4E0EFFFFC58102000602397A11000000000000397A114910F04A6F6300BD"
+ $"4E0EFFFFC58102000602384502385133B8513338450246199949E8F200BD4E0E"
+ $"FFFFC58102000602375AB42B4B47AB4B47375AB449C37A4AD52F00BD4E0EFFFF"
+ $"C581480204BEEDC9A0BEEDC9A0BEEDC9A1BEEDC9A1BEEDC9A1BED859BEAEC9E1"
+ $"BEC3C9CBBEC3C9CBBEEDC9A0BED859BEEDC9A00205C46EC880C46EC880C46DC8"
+ $"80C46CC880C46DC880C449C88BC403C8A2C426C896C407C8A0C40FC89EC40BC8"
+ $"9FC42FC894C46EC880C44EC88AC46EC8800206C10EC7E0C10EC7E0C12DC7E2C1"
+ $"6BC7E6C14CC7E4C18CC7E9C1CEC7EDC1ADC7EBC1AFC7EBC170C7E7C190C7E9C1"
+ $"51C7E5C113C7E1C132C7E3C111C7E1C10EC7E0C10FC7E0C10EC7E00207C107C7"
+ $"83C107C783C0B9C78FC01DC7A8C06BC79CC01FC7A9C023C7ACC021C7AAC024C7"
+ $"ADC027C7AF41C7AEC020C7ADC012C7A9C019C7ABC057C79FC0E2C789C09DC794"
+ $"C0EFC787C107C783C0FBC785C107C7830204C3BDC7A9C3BDC7A9C3A4C7B1C372"
+ $"C7C1C38BC7B9C372C7C1C372C7C1C372C7C1C38BC7B9C3BDC7A9C3A4C7B1C3BD"
+ $"C7A90206BEBBC706BEBBC706BEC4C70CBED6C718BECDC712BEE2C720BEFBC730"
+ $"BEEFC728BEFAC730BEF7C72EBEF9C72FBEECC727BED5C719BEE0C720BECDC713"
+ $"BEBBC706BEC4C70CBEBBC7060205BE46C6A7BE46C6A7BE51C6B0BE66C6C3BE5C"
+ $"C6BABE6DC6C9BE7BC6D5BE74C6CFBE71C6CEBE5EC6BFBE67C6C6BE56C6B7BE46"
+ $"C6A7BE4EC6AFBE46C6A70205BF76C69EBF76C69EBF57C6D5BF19C742BF38C70C"
+ $"BF19C742BF18C742BF18C742BF19C742BF19C742BF19C742BF38C70BBF76C69E"
+ $"BF57C6D5BF76C69E0205BDE9C643BDE9C643BDF5C651BE0DC66BBE01C65EBE10"
+ $"C66EBE16C675BE13C672BE0AC668BDF1C64FBDFDC65CBDEFC64BBDE9C643BDEC"
+ $"C647BDE9C6430206C178C639C178C639C184C63DC19BC643C18FC640C1A7C646"
+ $"45C64CC1B2C64945C64C45C64C45C64CC1B2C649C19BC643C1A6C646C18FC640"
+ $"C178C639C183C63DC178C6390209C298C61CC298C61CC256C625C1D1C637C214"
+ $"C62EC1CEC63BC1C7C642C1CBC63EC1C5C644C1C1C649C1C3C647C1C3C646C1C6"
+ $"C641C1C4C644C1C8C63DC1CDC635C1CAC639C1CEC636C1D1C637C1D0C636C209"
+ $"C62FC27A50C241C628C284C61EC298C61CC28EC61DC298C61C0204BD80C5A5BD"
+ $"80C5A5BD8BC5B6BDA1C5D7BD96C5C6BD96C5C7BD81C5A7BD8BC5B7BD81C5A6BD"
+ $"80C5A5BD80C5A6BD80C5A50208BF81C54EBF81C54EBF75C54FBF5DC552BF69C5"
+ $"51BFC4C578C093C5C3C02BC59DC02EC59EBF65C556BFCAC57ABF64C555BF60C5"
+ $"55BF62C555BF5FC555BF5CC555BF5DC555BF5C4EBF5DC552BF5DC553BF69C551"
+ $"BF81C54EBF75C54FBF81C54E0206C69BC186C69BC186C69FC189C6A7C190C6A3"
+ $"C18CC6B7C1A1C6D7C1C4C6C7C1B3C6E6C1D5C705C1F7C6F6C1E6C6F2C1E2C6CA"
+ $"C1B8C6DEC1CDC6BBC1A8C69BC186C6ABC197C69BC186020BC2E0C013C2E0C013"
+ $"C2BEC015C27BC018C29DC016C20AC01DC129C027C19AC022C12AC027C12CC027"
+ $"C12BC027C12DC027C12F41C12E41C130C022C131C01BC130C01FC131C01EC130"
+ $"C025C131C021C133C025C138C025C135C025C13AC025C14041C13D41C1B2C021"
+ $"C296C01646C01CC2AFC015C2E0C013C2C7C014C2E0C01302CFC3FABFE4C3FABF"
+ $"E4C386BFE9C29EBFF4C312BFEEC22ABFF9C142C004C1B6BFFEC140C004C13AC0"
+ $"06C13DC005C139C007C135C008C137C007C135C007C136C004C135C005C11EC0"
+ $"08C0EFC010C107C00CC0D8C014C0A9C01CC0C0C01842C024C053C034C070C02C"
+ $"C037C03BBFFEC04BC01BC043BFE6C054BFB7C065BFCEC05DBF9FC06EBF6FC080"
+ $"BF87C0773FC089BF32C09CBF46C093BF1DC0A6BEF5C0B9BF09C0AFBEDDC0C6BE"
+ $"AFC0E2BEC6C0D4BE97C0EFBE68C10BBE80C0FDBE58C116BE38C12DBE48C1213C"
+ $"C138BE07C14FBE17C144BDF4C15FBDCFC180BDE2C170BDBCC190BD97C1B1BDA9"
+ $"C1A1BD86C1C2BD64C1E5BD75C1D4BD53C1F6BD32C219BD42C208BD15C249BCDB"
+ $"C2A8BCF8C279BCBFC2D8BC85C338BCA2C308BC7FC34DBC73C376BC79C362BC6D"
+ $"C38BBC61C3B4BC67C3A0BC5DC3C7BC56C3EBBC59C3D9BC52C3FDBC4B4BBC4FC4"
+ $"10BC4AC43CBC48C472BC49C457BC47C48CBC45C4C1BC46C4A7BC48C4D7BC4EC5"
+ $"01BC4BC4ECBC51C517BC57C542BC54C52CBC5AC551BC62C56FBC5EC560BC65C5"
+ $"7EBC6DC59BBC69C58DBC74C5AFBC82C5D5BC7BC5C2BC89C5E8BC98C60EBC91C5"
+ $"FBBCA1C61FBCB3C641BCAAC630BCBCC652BCCEC674BCC5C663BCDBC68739C6AD"
+ $"BCE8C69ABD03C6C1BD1EC6E7BD10C6D4BD2DC6F8BD4BC719BD3CC708BD59C72A"
+ $"BD77C74BBD68C73ABD90C75FBDC1C789BDA8C774BDD9C79DBE0AC7C7BDF1C7B2"
+ $"BE22C7D6BE53C7F4BE3BC7E5BE6BC804BE9CC822BE84C813BE82C851BE4DC8AE"
+ $"BE67C87FBE32C8DCBDFDC939BE18C90BBDE5C98CBDB4CA32BDCCC9DFBD9CCA85"
+ $"BD6BCB2ABD83CAD7BD6DCB29BD70CB26BD6ECB27BD72CB24BD75CB22BD73CB23"
+ $"BD76CB21BD78CB1FBD77CB20BD77CB20BD76CB22BD76CB21BD74CB25BD72CB29"
+ $"BD73CB27BDDCCB14BEAFCAEABE46CAFFBF19CAD4BFEDCAAABF83CABFC02FCA6B"
+ $"C0B3C9EDC071CA2CC0F5C9AEC179C930C137C96FC17FC925C18CC910C186C91B"
+ $"C193C905C1A0C8EFC199C8FAC186C8EDC153C8E9C16DC8EBC14FC8E9C146C8E8"
+ $"C14AC8E9C15757C17AC8ECC169C8EBC19EC8EEC1E5C8F3C1C2C8F0C1F9C8F2C2"
+ $"21C8F1C20DC8F1C235C8F0C25CC8EFC249C8F0C278C8ECC2AFC8E7C29357C2CA"
+ $"C8E4C301C8DFC2E5C8E1C31EC8D9C358C8CDC33BC8D3C375C8C8C3AFC8BCC392"
+ $"C8C2C3A8C8BEC39AC8C3C3A1C8C1C3ACC8BFC3D2C8B8C3BFC8BCC3E4C8B5C40A"
+ $"C8AEC3F7C8B1C465C89DC51AC87CC4BFC88DC575C86BC62BC84AC5D0C85BC642"
+ $"C844C672C838C65AC83EC68AC832C6B9C826C6A2C82CC6D6C81CC710C808C6F3"
+ $"C812C72DC7FEC767C7EAC74AC7F4C783C7DDC7BAC7C3C79FC7D0C7D6C7B5C80E"
+ $"C79BC7F2C7A8C822C78FC84AC778C836C783C85EC76CC886C754C872C760C89D"
+ $"C743C8CBC721C8B4C732C8E2C710C910C6EEC8F9C6FFC925C6DBC94FC6B4C93A"
+ $"C6C7C964C6A0C98EC679C979C68CC99DC668C9BBC647C9ACC658C9C9C637C9E7"
+ $"C616C9D8C626C9FEC5EFCA2BC5A3CA14C5C9CA42C57DCA6FC531CA58C557CA76"
+ $"C51ACA85C4EDCA7EC504CA8CC4D7CA9BC4AACA94C4C0CA9EC495CAA5C46BCAA1"
+ $"C480CAA8C456CAAFC42CCAABC441CAAFC416CAB0C3EACAAFC400CAB0C3D4CAB1"
+ $"C3A7CAB0C3BECAACC38DCAA3C359CAA8C373CA9EC33FCA95C30BCA99C325CA8C"
+ $"C2F5CA7CC2C8CA84C2DECA73C2B2CA63C285CA6BC29CCA56C270CA3DC244CA4A"
+ $"C25ACA30C22FCA17C203CA24C219CA08C1F1C9EBC1CDC9FAC1DFC9DCC1BBC9BF"
+ $"C197C9CDC1A9C9A9C183C97FC15AC994C16EC96AC146C93FC11DC954C132C933"
+ $"C116C91CC107C928C10FC910C100C8F9C0F1C905C0F9C885C0F9C79EC108C812"
+ $"C100C72AC10FC643C11EC6B7C117C63DC11FC632C120C638C11FC62CC120C621"
+ $"C121C627C121C628C127C637C133C630C12DC630C12EC624C124C62AC12950C1"
+ $"2AC618C137C61CC131C615C13DC60DC14AC611C143C61EC15AC63FC17BC62EC1"
+ $"6BC650C18CC671C1ADC660C19DC67E45C697C1DFC68AC1CEC6A4C1EFC6BDC210"
+ $"C6B0C200C6C7C222C6DCC247C6D1C234C6E6C259C6FBC27DC6F1C26BC704C295"
+ $"C715C2C4C70CC2ACC71DC2DBC72FC30AC726C2F3C732C320C73AC34BC736C335"
+ $"C73EC360C746C38BC742C375C746C3A0C746C3CAC746C3B5C746C3E0C746C40A"
+ $"C746C3F5C742C41FC73CC449C73FC434C739C45EC7324CC735C473C72CC49DC7"
+ $"1EC4C9C725C4B3C718C4DEC70BC50AC711C4F4C6F4C530C6C6C57CC6DDC556C6"
+ $"B0C5A2C682C5EEC699C5C8C674C5FDC658C61BC666C60CC64BC629C62FC647C6"
+ $"3DC63850C655C602C670C611C662C5F3C67EC5D5C699C5E4C68CC5C0C6A9C596"
+ $"C6C7C5ABC6B8C582C6D6C558C6F5C56DC6E6C54AC6FDC52EC70EC53CC705C51F"
+ $"C716C503C727C511C71EC4E7C734C4B0C74EC4CCC741C494C75BC45DC776C479"
+ $"C768C456C778C446C77DC44EC77BC424C77AC3DEC773C401C776C3BBC770C375"
+ $"C769C398C76CC365C766C345C75FC355C763C335C75CC315C756C325C759C305"
+ $"53C2E7C74BC2F6C74EC2D7C747C2B8C73FC2C8C743C28DC746C237C754C262C7"
+ $"4DC262C74DC2BAC73FC28EC746C2C5C72DC2DAC709C2CFC71BC2E5C6F7C2FAC6"
+ $"D448C6E5C310C6B3C33DC671C327C692C353C651C37FC60FC369C630C3A8C60A"
+ $"C3FBC5FFC3D1C604C424C5F9C477C5EEC44DC5F3C479C5EAC47EC5E3C47BC5E6"
+ $"C480C5DFC485C5D7C482C5DBC481C5D8C479C5D9C47DC5D8C479C5D8C47AC5D6"
+ $"C47AC5D7C47BC5D5C47CC5D3C47BC5D4C419C5B2C354C570C3B7C591C2F1C54F"
+ $"C22CC50DC28FC52EC226C50BC219C507C21FC509C212C505C205C500C20BC503"
+ $"C194C50EC0B1C529C122C51CC07BC530C00FC53DC045C536C00FC53CC00EC53A"
+ $"C00FC53BC00EC539C00DC537C00EC538C004C520BFF3C4F3BFFBC509BFEAC4DC"
+ $"BFD8C4AFBFE1C4C6BFD4C49DBFCBC47ABFD0C48BBFC7C468BFBFC444BFC3C456"
+ $"BFBEC432BFBAC40CBFBCC41FBFB9C3F9BFB5C3D3BFB7C3E6BFB8C3B9BFBEC385"
+ $"BFBBC39F40C36BBFC6C336BFC3C350BFCCC322BFD8C2FBBFD2C30FBFDEC2E7BF"
+ $"EBC2BFBFE5C2D3BFFDC2A0C023C262C010C281C035C243C05BC205C04846C06C"
+ $"C1F2C08FC1CCC07EC1DFC0A0C1B9C0C3C192C0B2C1A5C0D3C185C0F1C16AC0E2"
+ $"C178C100C15DC11EC143C10FC150C12FC136C151C11EC140C12AC162C111C184"
+ $"C0F9C173C105C19AC0ECC1C7C0D2C1B1C0DFC1DDC0C5C20AC0AAC1F4C0B8C21F"
+ $"C0A1C249C08DC234C097C25EC083C289C06FC273C079C2A9C064C2EBC04DC2CA"
+ $"C058C30CC042C34EC02BC32DC036C366C025C398C01AC37FC020C3B1C014C3E3"
+ $"C009C3CAC00FC3E0C009C3DAC008C3DDC009C3D8C008C3D3C008C3D6C008C3DC"
+ $"C008C3EDC007C3E4C007C3F0C001C3F7BFF6C3F4BFFBC3FBBFF0C402BFE4C3FE"
+ $"BFEAC400BFE4C3FEBFE4C3FFBFE4C3FCBFE4C3FABFE4C3FBBFE4C3FABFE40204"
+ $"BC33C856BC33C856BC33C857BC33C857BC33C857BC2BC885BC1AC8E1BC22C8B3"
+ $"BC22C8B3BC33C856BC2B56BC33C8560205C121C551C121C551C121C551C120C5"
+ $"52C120C552C103C56DC0C9C5A4C0E6C589C0CCC5A1C0D3C59BC0CFC59EC0EDC5"
+ $"82C121C551C107C569C121C5510206BD4CC47CBD4CC47CBD6DC47DBDB0C47DBD"
+ $"8EC47DBDD2C47EBE18C47EBDF5C47EBDF7C47EBDB5C47EBDD6C47EBD94C47EBD"
+ $"52C47EBD73C47EBD50C47DBD4CC47CBD4EC47DBD4CC47C0207BD0CC3C0BD0CC3"
+ $"C0BCC4C3E3BC34C429BC7CC406BC36C42CBC3CC431BC39C42EBC3EC432BC42C4"
+ $"36BC40C434BC3AC433BC29C42EBC31C431BC69C40FBCEAC3D1BCAAC3F0BCF5C3"
+ $"CBBD0CC3C0BD01C3C6BD0CC3C00204BFE8C3B2BFE8C3B2BFD4C3C5BFAAC3ECBF"
+ $"BFC3D9BFAAC3EDBFAAC3EDBFAAC3EDBFBFC3D9BFE8C3B2BFD4C3C5BFE8C3B202"
+ $"06BA67C30EBA67C30EBA73C319BA8DC32EBA80C323BA9EC33DBAC2C35CBAB0C3"
+ $"4DBAC0C35ABABCC357BABEC359BAACC34BBA8DC332BA9DC33EBA80C326BA67C3"
+ $"0EBA73C31ABA67C30E0205B9B4C25BB9B4C25BB9C5C26DB9E6C290B9D6C27EB9"
+ $"F1C29CBA07C2B2B9FCC2A7B9F8C2A5B9DBC289B9EAC297B9CEC27AB9B4C25BB9"
+ $"C1C26AB9B4C25B0205BAE6C222BAE6C222BAE8C295BAECC37CBAEAC309BAEBC3"
+ $"7CBAEAC37BBAEBC37CBAEBC37BBAEBC37BBAEBC37BBAEAC308BAE6C222BAE8C2"
+ $"95BAE6C2220205B919C19DB919C19DB92DC1B6B955C1E8B941C1CFB95AC1EFB9"
+ $"64C1FBB95FC1F5B950C1E3B928C1B3B93CC1CBB923C1ACB919C19DB91EC1A4B9"
+ $"19C19D0206BCB4C111BCB4C111BCC3C116BCDFC120BCD1C11BBCECC125BD08C1"
+ $"2FBCFAC12ABD08C12FBD08C12FBD08C12FBCFAC12ABCDEC120BCECC125BCD0C1"
+ $"1BBCB4C111BCC2C116BCB4C1110209BDC9C0AEBDC9C0AEBD8BC0CABD0FC101BD"
+ $"4DC0E5BD0DC109BD0BC118BD0CC110BD0AC11DBD09C127BD0AC122BD09C121BD"
+ $"09C116BD09C11CBD09C10EBD09C0FEBD09C106BD0BC0FEBD0FC100BD0DC0FFBD"
+ $"43C0E9BDACC0BBBD78C0D2BDB6C0B7BDC9C0AEBDBFC0B3BDC9C0AE0204B84BC0"
+ $"67B84BC067B861C088B88BC0C8B876C0A8B877C0A9B84EC06CB862C08AB84DC0"
+ $"6AB84BC067B84CC069B84BC0670208BA22BF73BA22BF73BA17BF77BA00BF80BA"
+ $"0BBF7CBA81BFBFBB82C03DBB01BFFEBB05C000BA0BBF86BA88BFC3BA09BF86BA"
+ $"05BF86BA07BF86BA04BF86BA00BF86BA02BF86BA00BF84BA00BF80BA00BF82BA"
+ $"0BBF7BBA22BF73BA16BF77BA22BF730206BF11B6CFBF11B6CFBF17B6D5BF23B6"
+ $"E1BF1DB6DBBF3EB703BF74B746BF59B725BF8EB767BFC3B7A7BFA9B787BFA2B7"
+ $"7FBF60B730BF81B757BF46B70FBF11B6CFBF2BB6EFBF11B6CF020BBA5DB458BA"
+ $"5DB458BA3BB45FB9F9B46EBA1AB467B989B488B8A9B4BBB919B4A1B8AAB4BAB8"
+ $"ABB4B9B8ABB4BAB8ACB4B9B8AEB4B7B8ADB4B8B8ADB4B0B8AAB4A0B8ABB4A8B8"
+ $"ABB4A7B8AFB4B4B8ADB4ADB8B1B4B4B8B7B4B4B8B4B4B4B8BAB4B4B8BFB4B4B8"
+ $"BCB4B4B931B49BBA14B468B9A2B48232B463BA5DB458BA44B45DBA5DB45802CF"
+ $"BB60B3D3BB60B3D3BAEDB3EDBA06B420BA79B406B993B43AB8ADB46EB920B454"
+ $"B8AAB470B8A6B474B8A8B472B8A5B476B8A2B479B8A3B477B8A1B476B8A0B470"
+ $"B8A1B473B88BB47CB860B493B875B487B84AB49EB81FB4B5B835B4AAB807B4C9"
+ $"B7D6B4F0B7EFB4DCB7BEB503B78EB52AB7A6B517B77BB53FB755B569B768B554"
+ $"B742B57FB71CB5A9B72FB594B70DB5BFB6EFB5EBB6FEB5D5B6E0B601B6C2B62D"
+ $"B6D1B617B6B2B64CB693B68AB6A3B66BB684B6A9B665B6E6B674B6C7B65BB700"
+ $"B648B732B652B719B63EB74CB62BB77EB635B765B622B7A2B610B7EAB619B7C6"
+ $"B607B80DB5F5B855B5FEB831B5EEB87AB5E1B8C5B5E7B8A0B5DAB8EBB5CDB936"
+ $"B5D4B910B5CDB99BB5CDBA66B5CDBA01B5CEBACBB5CEBB96B5CEBB31B5D4BBC1"
+ $"B5E1BC17B5DBBBECB5E8BC42B5F5BC98B5EEBC6DB5FCBCBEB60BBD09B604BCE4"
+ $"B613BD2FB622BD7AB61ABD55B631BDB1B650BE1DB640BDE7B65FBE54B67DBEC0"
+ $"B66EBE8AB68EBEEBB6AEBF42B69EBF17B6BEBF6DB6DFBFC4B6CEBF98B6EBBFE2"
+ $"B705C01EB6F8C000B712C03CB72CC078B71FC05AB73FC09EB766C0EAB752C0C4"
+ $"B779C110B79FC15CB78CC136B7B3C17EB7DAC1C0B7C6C19FB7EDC1E1B81446B8"
+ $"01C2032DC249B861C294B847C26FB87AC2BAB8ADC3052EC2DFB8C6C325B8F9C3"
+ $"65B8E0C345B913C385B946C3C4B92CC3A4B96BC3EBB9B7C439B991C412B9DCC4"
+ $"60BA27C4AEBA02C487BA4AC4C9BA8EC501BA6CC4E5BAB1C51DBAF6C555BAD3C5"
+ $"39BAF7C5B7BAFAC67C34C61ABAFBC6DFBAFEC7A3BAFDC741BB18C84FBB4CC9A7"
+ $"BB32C8FBBB66CA53BB9ACBABBB80CAFFBB9BCBA8BB9DCBA2BB9CCBA5BB9ECB9F"
+ $"BB9FCB99BB9FCB9CBBA0CB97BBA1CB92BBA0CB94BBA1CB95BBA1CB9ABBA1CB97"
+ $"BBA1CB9FBBA1CBA8BBA1CBA4BC00CB6FBCBECAFDBC5FCB36BD1ECAC4BDDCCA52"
+ $"BD7DCA8BBDF9C9C9BE32C8B7BE15C940BE4FC82EBE88C71CBE6BC7A5BE88C705"
+ $"BE88C6D7BE88C6EEBE88C6C0BE88C692BE88C6A9BE6DC692BE36C691BE51C691"
+ $"BE31C6903CC690BE2DC690BE3AC690BE5FC690BE4DC690BE85C690BED1C690BE"
+ $"ABC690BEE5C68CBF0DC685BEF9C688BF21C681BF48C679BF35C67DBF63C670BF"
+ $"97C65EBF7DC667BFB2C655BFE6C642BFCCC64CC000C633C035C613C01BC623C0"
+ $"4FC604C083C5E5C069C5F5C07DC5EBC072C5F6C077C5F0C082C5ECC0A4C5D9C0"
+ $"93C5E2C0B5C5CFC0D7C5BCC0C6C5C5C12AC58EC1CFC533C17CC560C221C505C2"
+ $"C6C4A9C274C4D7C2DBC49AC304C47B48C48BC319C46CC342C44DC32EC45CC35A"
+ $"C435C389C405C371C41DC3A0C3EDC3CFC3BDC3B8C3D5C3E3C39EC40CC361C3F7"
+ $"C37FC420C342C448C305C434C324C456C2EAC470C2B5C463C2D0C47DC29BC498"
+ $"C266C48BC280C4A5C240C4BFC1F5C4B2C21AC4CCC1CFC4E7C183C4DAC1A9C4F0"
+ $"C159C503C103C4FAC12EC50CC0D9C51FC083C516C0AEC524C05FC52EC018C529"
+ $"C03CC533BFF5C53DBFADC538BFD1C53CBF5CC53CBEBBC53CBF0CC53CBE6AC53B"
+ $"BDC9C53CBE1AC535BD9AC528BD3CC52EBD6BC522BD0DC515BCB0C51BBCDEC50B"
+ $"BC84C4F8BC2EC502BC59C4EFBC03C4DCBBADC4E5BBD8C4CFBB7FC4B4BB25C4C1"
+ $"BB52C4A734C48DBA9EC49ABACBC478BA6AC44EBA01C463BA35C439B9CCC410B9"
+ $"63C425B998C3FAB937C3CDB8DEC3E3B90AC3B7B8B2C38BB859C3A1B885C370B8"
+ $"2FC33CB7DA49B804C322B7AFC2EDB75AC308B784C2D3B737C29FB6F1C2B9B714"
+ $"C285B6CEC250B688C26AB6ABC22EB662C1EAB615C20CB63BC1C8B5EEC183B5A1"
+ $"C1A6B5C8C173B594C152B579C162B586C141B56BC121B550C131B55EC0AFB56F"
+ $"BFCCB5ACC03DB58D3F27BE77B607BEE8B5E8BE71B609BE67B60CBE6CB60ABE61"
+ $"B60EBE56B612BE5CB610BE61B61DBE77B633BE6CB628BE6EB62ABE5BB617BE64"
+ $"B621BE5BB624BE5BB63FBE5BB632BE5BB64CBE5BB667BE5BB659BE76B686BEAC"
+ $"B6C6BE91B6A6BEC8B6E5BEFEB725BEE3B705BF15B745BF43B784BF2CB7653FB7"
+ $"A4BF88B7E4BF71B7C4BF9EB808BFC9B84FBFB4B82BBFDFB873C00BB8BABFF5B8"
+ $"96C022B8E9C050B947C039B918C068B976C096B9D4C07FB9A5C0A7B9FFC0CABA"
+ $"55C0B8BA2AC0DBBA80C0FDBAD7C0ECBAABC10ABB02C124BB58C117BB2DC131BB"
+ $"83C14BBBDAC13EBBAEC154BC05C168BC5BC15EBC30C171BC86C184BCDDC17BBC"
+ $"B1C18BBD0AC198BD64C191BD37C19FBD91C1ACBDEBC1A5BDBEC1ACBE3BC1ACBE"
+ $"DDC1ACBE8CC1ACBF2EC1ADBFCFC1ADBF7EC1A8BFEFC19EC02FC1A3C00FC198C0"
+ $"4FC18EC08EC193C06EC187C0ACC17AC0E8C180C0CAC173C107C165C143C16CC1"
+ $"25C159C164C141C1A8C14DC186C135C1CAC11EC20DC129C1EBC114C220C101C2"
+ $"46C10BC233C0F8C258C0E5C27EC0EFC26BC0D1C29CC0A9C2D9C0BDC2BBC095C2"
+ $"F8C06DC335C081C316C066C33BC05AC347C060C341C034C344BFE9C340C00EC3"
+ $"42BFC3C33DBF77C339BF9DC33BBF65C334BF40C32CBF53C330BF2EC328BF09C3"
+ $"1FBF1CC323BEF7C319BED3C30EBEE5C314BEC1C308BE9DC2FDBEAFC303BE75C3"
+ $"11BE25C337BE4DC324BE4EC324BE9EC2FCBE76C310BE9EC2D6BE9E47BE9EC2B0"
+ $"BE9EC264BE9EC218BE9EC23EBEA1C1D3BEA6C148BEA3C18DBEA8C102BEADC077"
+ $"BEABC0BDBED4C067BF21C045BEFBC056BF48C034BF96C013BF6FC023BF96C00B"
+ $"BF96BFFBBF96C003BF96BFF3BF96BFE2BF96BFEABF92BFE4BF8BBFE7BF8FBFE6"
+ $"BF8BBFE5BF8ABFE1BF8BBFE3BF8ABFDFBF8ABFDABF8ABFDCBF11BFA4BE1FBF38"
+ $"BE98BF6EBDA6BF01BCB4BE95BD2DBECBBCACBE92BC9CBE8BBCA43DBC94BE87BC"
+ $"84BE80BC8CBE84BC19BEABBB42BF00BBAEBED6BB0FBF15BAA9BF3DBADCBF29BA"
+ $"A8BF3BBAA6BF38BAA7BF3ABAA5BF36BAA3BF31BAA4BF33BA8CBF04BA5EBEAABA"
+ $"75BED7BA47BE7DBA19BE23BA30BE50BA0ABDFFB9ECBDB8B9FBBDDCB9DDBD94B9"
+ $"BFBD4DB9CEBD71B9B1BD27B997BCDAB9A4BD01B989BCB4B96FBC68B97CBC8EB9"
+ $"62BC32B947BBC6B954BBFCB93ABB91B91FBB25B92DBB5BB919BAFCB90EBAAAB9"
+ $"13BAD3B908BA80B8FCBA2EB902BA57B8FCB9ECB8FCB969B8FCB9AAB8FCB927B8"
+ $"FCB8A4B8FCB8E5B902B87AB90EB828B908B851B914B7FEB920B7ACB91AB7D5B9"
+ $"28B78FB936B755B92FB772B93EB738B94CB6FDB945B71AB956B6E2B969B6AC30"
+ $"B6C7B973B691B987B65AB97DB675B995B63CB9B3B601B9A4B61FB9C2B5E4B9DF"
+ $"B5A8B9D1B5C6B9EFB591BA0E26B9FEB57BBA1DB54DBA3CB51FBA2DB536BA57B5"
+ $"03BA8CB4CCBA71B4E8BAA6B4B1BADCB47ABAC1B495BAF2B46BBB1EB44EBB08B4"
+ $"5CBB34B43FBB60B421BB4AB430BB5CB421BB56B421BB59B421BB54B421BB4FB4"
+ $"21BB51B421BB57B420BB68B41CBB60B41EBB68B410BB68B3F7BB68B403BB68B3"
+ $"EBBB68B3D3BB68B3DFBB67B3D3BB64B3D3BB65B3D3BB63B3D3BB60B3D3BB61B3"
+ $"D3BB60B3D30204BC33C856BC33C856BC33C857BC33C857BC33C857BC2BC885BC"
+ $"1AC8E1BC22C8B3BC22C8B3BC33C856BC2B56BC33C8560205C121C551C121C551"
+ $"C121C551C120C552C120C552C103C56DC0C9C5A4C0E6C589C0CCC5A1C0D3C59B"
+ $"C0CFC59EC0EDC582C121C551C107C569C121C5510206BD4CC47CBD4CC47CBD6D"
+ $"C47DBDB0C47DBD8EC47DBDD2C47EBE18C47EBDF5C47EBDF7C47EBDB5C47EBDD6"
+ $"C47EBD94C47EBD52C47EBD73C47EBD50C47DBD4CC47CBD4EC47DBD4CC47C0207"
+ $"BD0CC3C0BD0CC3C0BCC4C3E3BC34C429BC7CC406BC36C42CBC3CC431BC39C42E"
+ $"BC3EC432BC42C436BC40C434BC3AC433BC29C42EBC31C431BC69C40FBCEAC3D1"
+ $"BCAAC3F0BCF5C3CBBD0CC3C0BD01C3C6BD0CC3C00204BFE8C3B2BFE8C3B2BFD4"
+ $"C3C5BFAAC3ECBFBFC3D9BFAAC3EDBFAAC3EDBFAAC3EDBFBFC3D9BFE8C3B2BFD4"
+ $"C3C5BFE8C3B20206BA67C30EBA67C30EBA73C319BA8DC32EBA80C323BA9EC33D"
+ $"BAC2C35CBAB0C34DBAC0C35ABABCC357BABEC359BAACC34BBA8DC332BA9DC33E"
+ $"BA80C326BA67C30EBA73C31ABA67C30E0205B9B4C25BB9B4C25BB9C5C26DB9E6"
+ $"C290B9D6C27EB9F1C29CBA07C2B2B9FCC2A7B9F8C2A5B9DBC289B9EAC297B9CE"
+ $"C27AB9B4C25BB9C1C26AB9B4C25B0205BAE6C222BAE6C222BAE8C295BAECC37C"
+ $"BAEAC309BAEBC37CBAEAC37BBAEBC37CBAEBC37BBAEBC37BBAEBC37BBAEAC308"
+ $"BAE6C222BAE8C295BAE6C2220205B919C19DB919C19DB92DC1B6B955C1E8B941"
+ $"C1CFB95AC1EFB964C1FBB95FC1F5B950C1E3B928C1B3B93CC1CBB923C1ACB919"
+ $"C19DB91EC1A4B919C19D0206BCB4C111BCB4C111BCC3C116BCDFC120BCD1C11B"
+ $"BCECC125BD08C12FBCFAC12ABD08C12FBD08C12FBD08C12FBCFAC12ABCDEC120"
+ $"BCECC125BCD0C11BBCB4C111BCC2C116BCB4C1110209BDC9C0AEBDC9C0AEBD8B"
+ $"C0CABD0FC101BD4DC0E5BD0DC109BD0BC118BD0CC110BD0AC11DBD09C127BD0A"
+ $"C122BD09C121BD09C116BD09C11CBD09C10EBD09C0FEBD09C106BD0BC0FEBD0F"
+ $"C100BD0DC0FFBD43C0E9BDACC0BBBD78C0D2BDB6C0B7BDC9C0AEBDBFC0B3BDC9"
+ $"C0AE0204B84BC067B84BC067B861C088B88BC0C8B876C0A8B877C0A9B84EC06C"
+ $"B862C08AB84DC06AB84BC067B84CC069B84BC0670208BA22BF73BA22BF73BA17"
+ $"BF77BA00BF80BA0BBF7CBA81BFBFBB82C03DBB01BFFEBB05C000BA0BBF86BA88"
+ $"BFC3BA09BF86BA05BF86BA07BF86BA04BF86BA00BF86BA02BF86BA00BF84BA00"
+ $"BF80BA00BF82BA0BBF7BBA22BF73BA16BF77BA22BF730206BF11B6CFBF11B6CF"
+ $"BF17B6D5BF23B6E1BF1DB6DBBF3EB703BF74B746BF59B725BF8EB767BFC3B7A7"
+ $"BFA9B787BFA2B77FBF60B730BF81B757BF46B70FBF11B6CFBF2BB6EFBF11B6CF"
+ $"020BBA5DB458BA5DB458BA3BB45FB9F9B46EBA1AB467B989B488B8A9B4BBB919"
+ $"B4A1B8AAB4BAB8ABB4B9B8ABB4BAB8ACB4B9B8AEB4B7B8ADB4B8B8ADB4B0B8AA"
+ $"B4A0B8ABB4A8B8ABB4A7B8AFB4B4B8ADB4ADB8B1B4B4B8B7B4B4B8B4B4B4B8BA"
+ $"B4B4B8BFB4B4B8BCB4B4B931B49BBA14B468B9A2B48232B463BA5DB458BA44B4"
+ $"5DBA5DB45802CFBB60B3D3BB60B3D3BAEDB3EDBA06B420BA79B406B993B43AB8"
+ $"ADB46EB920B454B8AAB470B8A6B474B8A8B472B8A5B476B8A2B479B8A3B477B8"
+ $"A1B476B8A0B470B8A1B473B88BB47CB860B493B875B487B84AB49EB81FB4B5B8"
+ $"35B4AAB807B4C9B7D6B4F0B7EFB4DCB7BEB503B78EB52AB7A6B517B77BB53FB7"
+ $"55B569B768B554B742B57FB71CB5A9B72FB594B70DB5BFB6EFB5EBB6FEB5D5B6"
+ $"E0B601B6C2B62DB6D1B617B6B2B64CB693B68AB6A3B66BB684B6A9B665B6E6B6"
+ $"74B6C7B65BB700B648B732B652B719B63EB74CB62BB77EB635B765B622B7A2B6"
+ $"10B7EAB619B7C6B607B80DB5F5B855B5FEB831B5EEB87AB5E1B8C5B5E7B8A0B5"
+ $"DAB8EBB5CDB936B5D4B910B5CDB99BB5CDBA66B5CDBA01B5CEBACBB5CEBB96B5"
+ $"CEBB31B5D4BBC1B5E1BC17B5DBBBECB5E8BC42B5F5BC98B5EEBC6DB5FCBCBEB6"
+ $"0BBD09B604BCE4B613BD2FB622BD7AB61ABD55B631BDB1B650BE1DB640BDE7B6"
+ $"5FBE54B67DBEC0B66EBE8AB68EBEEBB6AEBF42B69EBF17B6BEBF6DB6DFBFC4B6"
+ $"CEBF98B6EBBFE2B705C01EB6F8C000B712C03CB72CC078B71FC05AB73FC09EB7"
+ $"66C0EAB752C0C4B779C110B79FC15CB78CC136B7B3C17EB7DAC1C0B7C6C19FB7"
+ $"EDC1E1B81446B801C2032DC249B861C294B847C26FB87AC2BAB8ADC3052EC2DF"
+ $"B8C6C325B8F9C365B8E0C345B913C385B946C3C4B92CC3A4B96BC3EBB9B7C439"
+ $"B991C412B9DCC460BA27C4AEBA02C487BA4AC4C9BA8EC501BA6CC4E5BAB1C51D"
+ $"BAF6C555BAD3C539BAF7C5B7BAFAC67C34C61ABAFBC6DFBAFEC7A3BAFDC741BB"
+ $"18C84FBB4CC9A7BB32C8FBBB66CA53BB9ACBABBB80CAFFBB9BCBA8BB9DCBA2BB"
+ $"9CCBA5BB9ECB9FBB9FCB99BB9FCB9CBBA0CB97BBA1CB92BBA0CB94BBA1CB95BB"
+ $"A1CB9ABBA1CB97BBA1CB9FBBA1CBA8BBA1CBA4BC00CB6FBCBECAFDBC5FCB36BD"
+ $"1ECAC4BDDCCA52BD7DCA8BBDF9C9C9BE32C8B7BE15C940BE4FC82EBE88C71CBE"
+ $"6BC7A5BE88C705BE88C6D7BE88C6EEBE88C6C0BE88C692BE88C6A9BE6DC692BE"
+ $"36C691BE51C691BE31C6903CC690BE2DC690BE3AC690BE5FC690BE4DC690BE85"
+ $"C690BED1C690BEABC690BEE5C68CBF0DC685BEF9C688BF21C681BF48C679BF35"
+ $"C67DBF63C670BF97C65EBF7DC667BFB2C655BFE6C642BFCCC64CC000C633C035"
+ $"C613C01BC623C04FC604C083C5E5C069C5F5C07DC5EBC072C5F6C077C5F0C082"
+ $"C5ECC0A4C5D9C093C5E2C0B5C5CFC0D7C5BCC0C6C5C5C12AC58EC1CFC533C17C"
+ $"C560C221C505C2C6C4A9C274C4D7C2DBC49AC304C47B48C48BC319C46CC342C4"
+ $"4DC32EC45CC35AC435C389C405C371C41DC3A0C3EDC3CFC3BDC3B8C3D5C3E3C3"
+ $"9EC40CC361C3F7C37FC420C342C448C305C434C324C456C2EAC470C2B5C463C2"
+ $"D0C47DC29BC498C266C48BC280C4A5C240C4BFC1F5C4B2C21AC4CCC1CFC4E7C1"
+ $"83C4DAC1A9C4F0C159C503C103C4FAC12EC50CC0D9C51FC083C516C0AEC524C0"
+ $"5FC52EC018C529C03CC533BFF5C53DBFADC538BFD1C53CBF5CC53CBEBBC53CBF"
+ $"0CC53CBE6AC53BBDC9C53CBE1AC535BD9AC528BD3CC52EBD6BC522BD0DC515BC"
+ $"B0C51BBCDEC50BBC84C4F8BC2EC502BC59C4EFBC03C4DCBBADC4E5BBD8C4CFBB"
+ $"7FC4B4BB25C4C1BB52C4A734C48DBA9EC49ABACBC478BA6AC44EBA01C463BA35"
+ $"C439B9CCC410B963C425B998C3FAB937C3CDB8DEC3E3B90AC3B7B8B2C38BB859"
+ $"C3A1B885C370B82FC33CB7DA49B804C322B7AFC2EDB75AC308B784C2D3B737C2"
+ $"9FB6F1C2B9B714C285B6CEC250B688C26AB6ABC22EB662C1EAB615C20CB63BC1"
+ $"C8B5EEC183B5A1C1A6B5C8C173B594C152B579C162B586C141B56BC121B550C1"
+ $"31B55EC0AFB56FBFCCB5ACC03DB58D3F27BE77B607BEE8B5E8BE71B609BE67B6"
+ $"0CBE6CB60ABE61B60EBE56B612BE5CB610BE61B61DBE77B633BE6CB628BE6EB6"
+ $"2ABE5BB617BE64B621BE5BB624BE5BB63FBE5BB632BE5BB64CBE5BB667BE5BB6"
+ $"59BE76B686BEACB6C6BE91B6A6BEC8B6E5BEFEB725BEE3B705BF15B745BF43B7"
+ $"84BF2CB7653FB7A4BF88B7E4BF71B7C4BF9EB808BFC9B84FBFB4B82BBFDFB873"
+ $"C00BB8BABFF5B896C022B8E9C050B947C039B918C068B976C096B9D4C07FB9A5"
+ $"C0A7B9FFC0CABA55C0B8BA2AC0DBBA80C0FDBAD7C0ECBAABC10ABB02C124BB58"
+ $"C117BB2DC131BB83C14BBBDAC13EBBAEC154BC05C168BC5BC15EBC30C171BC86"
+ $"C184BCDDC17BBCB1C18BBD0AC198BD64C191BD37C19FBD91C1ACBDEBC1A5BDBE"
+ $"C1ACBE3BC1ACBEDDC1ACBE8CC1ACBF2EC1ADBFCFC1ADBF7EC1A8BFEFC19EC02F"
+ $"C1A3C00FC198C04FC18EC08EC193C06EC187C0ACC17AC0E8C180C0CAC173C107"
+ $"C165C143C16CC125C159C164C141C1A8C14DC186C135C1CAC11EC20DC129C1EB"
+ $"C114C220C101C246C10BC233C0F8C258C0E5C27EC0EFC26BC0D1C29CC0A9C2D9"
+ $"C0BDC2BBC095C2F8C06DC335C081C316C066C33BC05AC347C060C341C034C344"
+ $"BFE9C340C00EC342BFC3C33DBF77C339BF9DC33BBF65C334BF40C32CBF53C330"
+ $"BF2EC328BF09C31FBF1CC323BEF7C319BED3C30EBEE5C314BEC1C308BE9DC2FD"
+ $"BEAFC303BE75C311BE25C337BE4DC324BE4EC324BE9EC2FCBE76C310BE9EC2D6"
+ $"BE9E47BE9EC2B0BE9EC264BE9EC218BE9EC23EBEA1C1D3BEA6C148BEA3C18DBE"
+ $"A8C102BEADC077BEABC0BDBED4C067BF21C045BEFBC056BF48C034BF96C013BF"
+ $"6FC023BF96C00BBF96BFFBBF96C003BF96BFF3BF96BFE2BF96BFEABF92BFE4BF"
+ $"8BBFE7BF8FBFE6BF8BBFE5BF8ABFE1BF8BBFE3BF8ABFDFBF8ABFDABF8ABFDCBF"
+ $"11BFA4BE1FBF38BE98BF6EBDA6BF01BCB4BE95BD2DBECBBCACBE92BC9CBE8BBC"
+ $"A43DBC94BE87BC84BE80BC8CBE84BC19BEABBB42BF00BBAEBED6BB0FBF15BAA9"
+ $"BF3DBADCBF29BAA8BF3BBAA6BF38BAA7BF3ABAA5BF36BAA3BF31BAA4BF33BA8C"
+ $"BF04BA5EBEAABA75BED7BA47BE7DBA19BE23BA30BE50BA0ABDFFB9ECBDB8B9FB"
+ $"BDDCB9DDBD94B9BFBD4DB9CEBD71B9B1BD27B997BCDAB9A4BD01B989BCB4B96F"
+ $"BC68B97CBC8EB962BC32B947BBC6B954BBFCB93ABB91B91FBB25B92DBB5BB919"
+ $"BAFCB90EBAAAB913BAD3B908BA80B8FCBA2EB902BA57B8FCB9ECB8FCB969B8FC"
+ $"B9AAB8FCB927B8FCB8A4B8FCB8E5B902B87AB90EB828B908B851B914B7FEB920"
+ $"B7ACB91AB7D5B928B78FB936B755B92FB772B93EB738B94CB6FDB945B71AB956"
+ $"B6E2B969B6AC30B6C7B973B691B987B65AB97DB675B995B63CB9B3B601B9A4B6"
+ $"1FB9C2B5E4B9DFB5A8B9D1B5C6B9EFB591BA0E26B9FEB57BBA1DB54DBA3CB51F"
+ $"BA2DB536BA57B503BA8CB4CCBA71B4E8BAA6B4B1BADCB47ABAC1B495BAF2B46B"
+ $"BB1EB44EBB08B45CBB34B43FBB60B421BB4AB430BB5CB421BB56B421BB59B421"
+ $"BB54B421BB4FB421BB51B421BB57B420BB68B41CBB60B41EBB68B410BB68B3F7"
+ $"BB68B403BB68B3EBBB68B3D3BB68B3DFBB67B3D3BB64B3D3BB65B3D3BB63B3D3"
+ $"BB60B3D3BB61B3D3BB60B3D30204BC33C856BC33C856BC33C857BC33C857BC33"
+ $"C857BC2BC885BC1AC8E1BC22C8B3BC22C8B3BC33C856BC2B56BC33C8560205C1"
+ $"21C551C121C551C121C551C120C552C120C552C103C56DC0C9C5A4C0E6C589C0"
+ $"CCC5A1C0D3C59BC0CFC59EC0EDC582C121C551C107C569C121C5510206BD4CC4"
+ $"7CBD4CC47CBD6DC47DBDB0C47DBD8EC47DBDD2C47EBE18C47EBDF5C47EBDF7C4"
+ $"7EBDB5C47EBDD6C47EBD94C47EBD52C47EBD73C47EBD50C47DBD4CC47CBD4EC4"
+ $"7DBD4CC47C0207BD0CC3C0BD0CC3C0BCC4C3E3BC34C429BC7CC406BC36C42CBC"
+ $"3CC431BC39C42EBC3EC432BC42C436BC40C434BC3AC433BC29C42EBC31C431BC"
+ $"69C40FBCEAC3D1BCAAC3F0BCF5C3CBBD0CC3C0BD01C3C6BD0CC3C00204BFE8C3"
+ $"B2BFE8C3B2BFD4C3C5BFAAC3ECBFBFC3D9BFAAC3EDBFAAC3EDBFAAC3EDBFBFC3"
+ $"D9BFE8C3B2BFD4C3C5BFE8C3B20206BA67C30EBA67C30EBA73C319BA8DC32EBA"
+ $"80C323BA9EC33DBAC2C35CBAB0C34DBAC0C35ABABCC357BABEC359BAACC34BBA"
+ $"8DC332BA9DC33EBA80C326BA67C30EBA73C31ABA67C30E0205B9B4C25BB9B4C2"
+ $"5BB9C5C26DB9E6C290B9D6C27EB9F1C29CBA07C2B2B9FCC2A7B9F8C2A5B9DBC2"
+ $"89B9EAC297B9CEC27AB9B4C25BB9C1C26AB9B4C25B0205BAE6C222BAE6C222BA"
+ $"E8C295BAECC37CBAEAC309BAEBC37CBAEAC37BBAEBC37CBAEBC37BBAEBC37BBA"
+ $"EBC37BBAEAC308BAE6C222BAE8C295BAE6C2220205B919C19DB919C19DB92DC1"
+ $"B6B955C1E8B941C1CFB95AC1EFB964C1FBB95FC1F5B950C1E3B928C1B3B93CC1"
+ $"CBB923C1ACB919C19DB91EC1A4B919C19D0206BCB4C111BCB4C111BCC3C116BC"
+ $"DFC120BCD1C11BBCECC125BD08C12FBCFAC12ABD08C12FBD08C12FBD08C12FBC"
+ $"FAC12ABCDEC120BCECC125BCD0C11BBCB4C111BCC2C116BCB4C1110209BDC9C0"
+ $"AEBDC9C0AEBD8BC0CABD0FC101BD4DC0E5BD0DC109BD0BC118BD0CC110BD0AC1"
+ $"1DBD09C127BD0AC122BD09C121BD09C116BD09C11CBD09C10EBD09C0FEBD09C1"
+ $"06BD0BC0FEBD0FC100BD0DC0FFBD43C0E9BDACC0BBBD78C0D2BDB6C0B7BDC9C0"
+ $"AEBDBFC0B3BDC9C0AE0204B84BC067B84BC067B861C088B88BC0C8B876C0A8B8"
+ $"77C0A9B84EC06CB862C08AB84DC06AB84BC067B84CC069B84BC0670208BA22BF"
+ $"73BA22BF73BA17BF77BA00BF80BA0BBF7CBA81BFBFBB82C03DBB01BFFEBB05C0"
+ $"00BA0BBF86BA88BFC3BA09BF86BA05BF86BA07BF86BA04BF86BA00BF86BA02BF"
+ $"86BA00BF84BA00BF80BA00BF82BA0BBF7BBA22BF73BA16BF77BA22BF730206BF"
+ $"11B6CFBF11B6CFBF17B6D5BF23B6E1BF1DB6DBBF3EB703BF74B746BF59B725BF"
+ $"8EB767BFC3B7A7BFA9B787BFA2B77FBF60B730BF81B757BF46B70FBF11B6CFBF"
+ $"2BB6EFBF11B6CF020BBA5DB458BA5DB458BA3BB45FB9F9B46EBA1AB467B989B4"
+ $"88B8A9B4BBB919B4A1B8AAB4BAB8ABB4B9B8ABB4BAB8ACB4B9B8AEB4B7B8ADB4"
+ $"B8B8ADB4B0B8AAB4A0B8ABB4A8B8ABB4A7B8AFB4B4B8ADB4ADB8B1B4B4B8B7B4"
+ $"B4B8B4B4B4B8BAB4B4B8BFB4B4B8BCB4B4B931B49BBA14B468B9A2B48232B463"
+ $"BA5DB458BA44B45DBA5DB45802CFBB60B3D3BB60B3D3BAEDB3EDBA06B420BA79"
+ $"B406B993B43AB8ADB46EB920B454B8AAB470B8A6B474B8A8B472B8A5B476B8A2"
+ $"B479B8A3B477B8A1B476B8A0B470B8A1B473B88BB47CB860B493B875B487B84A"
+ $"B49EB81FB4B5B835B4AAB807B4C9B7D6B4F0B7EFB4DCB7BEB503B78EB52AB7A6"
+ $"B517B77BB53FB755B569B768B554B742B57FB71CB5A9B72FB594B70DB5BFB6EF"
+ $"B5EBB6FEB5D5B6E0B601B6C2B62DB6D1B617B6B2B64CB693B68AB6A3B66BB684"
+ $"B6A9B665B6E6B674B6C7B65BB700B648B732B652B719B63EB74CB62BB77EB635"
+ $"B765B622B7A2B610B7EAB619B7C6B607B80DB5F5B855B5FEB831B5EEB87AB5E1"
+ $"B8C5B5E7B8A0B5DAB8EBB5CDB936B5D4B910B5CDB99BB5CDBA66B5CDBA01B5CE"
+ $"BACBB5CEBB96B5CEBB31B5D4BBC1B5E1BC17B5DBBBECB5E8BC42B5F5BC98B5EE"
+ $"BC6DB5FCBCBEB60BBD09B604BCE4B613BD2FB622BD7AB61ABD55B631BDB1B650"
+ $"BE1DB640BDE7B65FBE54B67DBEC0B66EBE8AB68EBEEBB6AEBF42B69EBF17B6BE"
+ $"BF6DB6DFBFC4B6CEBF98B6EBBFE2B705C01EB6F8C000B712C03CB72CC078B71F"
+ $"C05AB73FC09EB766C0EAB752C0C4B779C110B79FC15CB78CC136B7B3C17EB7DA"
+ $"C1C0B7C6C19FB7EDC1E1B81446B801C2032DC249B861C294B847C26FB87AC2BA"
+ $"B8ADC3052EC2DFB8C6C325B8F9C365B8E0C345B913C385B946C3C4B92CC3A4B9"
+ $"6BC3EBB9B7C439B991C412B9DCC460BA27C4AEBA02C487BA4AC4C9BA8EC501BA"
+ $"6CC4E5BAB1C51DBAF6C555BAD3C539BAF7C5B7BAFAC67C34C61ABAFBC6DFBAFE"
+ $"C7A3BAFDC741BB18C84FBB4CC9A7BB32C8FBBB66CA53BB9ACBABBB80CAFFBB9B"
+ $"CBA8BB9DCBA2BB9CCBA5BB9ECB9FBB9FCB99BB9FCB9CBBA0CB97BBA1CB92BBA0"
+ $"CB94BBA1CB95BBA1CB9ABBA1CB97BBA1CB9FBBA1CBA8BBA1CBA4BC00CB6FBCBE"
+ $"CAFDBC5FCB36BD1ECAC4BDDCCA52BD7DCA8BBDF9C9C9BE32C8B7BE15C940BE4F"
+ $"C82EBE88C71CBE6BC7A5BE88C705BE88C6D7BE88C6EEBE88C6C0BE88C692BE88"
+ $"C6A9BE6DC692BE36C691BE51C691BE31C6903CC690BE2DC690BE3AC690BE5FC6"
+ $"90BE4DC690BE85C690BED1C690BEABC690BEE5C68CBF0DC685BEF9C688BF21C6"
+ $"81BF48C679BF35C67DBF63C670BF97C65EBF7DC667BFB2C655BFE6C642BFCCC6"
+ $"4CC000C633C035C613C01BC623C04FC604C083C5E5C069C5F5C07DC5EBC072C5"
+ $"F6C077C5F0C082C5ECC0A4C5D9C093C5E2C0B5C5CFC0D7C5BCC0C6C5C5C12AC5"
+ $"8EC1CFC533C17CC560C221C505C2C6C4A9C274C4D7C2DBC49AC304C47B48C48B"
+ $"C319C46CC342C44DC32EC45CC35AC435C389C405C371C41DC3A0C3EDC3CFC3BD"
+ $"C3B8C3D5C3E3C39EC40CC361C3F7C37FC420C342C448C305C434C324C456C2EA"
+ $"C470C2B5C463C2D0C47DC29BC498C266C48BC280C4A5C240C4BFC1F5C4B2C21A"
+ $"C4CCC1CFC4E7C183C4DAC1A9C4F0C159C503C103C4FAC12EC50CC0D9C51FC083"
+ $"C516C0AEC524C05FC52EC018C529C03CC533BFF5C53DBFADC538BFD1C53CBF5C"
+ $"C53CBEBBC53CBF0CC53CBE6AC53BBDC9C53CBE1AC535BD9AC528BD3CC52EBD6B"
+ $"C522BD0DC515BCB0C51BBCDEC50BBC84C4F8BC2EC502BC59C4EFBC03C4DCBBAD"
+ $"C4E5BBD8C4CFBB7FC4B4BB25C4C1BB52C4A734C48DBA9EC49ABACBC478BA6AC4"
+ $"4EBA01C463BA35C439B9CCC410B963C425B998C3FAB937C3CDB8DEC3E3B90AC3"
+ $"B7B8B2C38BB859C3A1B885C370B82FC33CB7DA49B804C322B7AFC2EDB75AC308"
+ $"B784C2D3B737C29FB6F1C2B9B714C285B6CEC250B688C26AB6ABC22EB662C1EA"
+ $"B615C20CB63BC1C8B5EEC183B5A1C1A6B5C8C173B594C152B579C162B586C141"
+ $"B56BC121B550C131B55EC0AFB56FBFCCB5ACC03DB58D3F27BE77B607BEE8B5E8"
+ $"BE71B609BE67B60CBE6CB60ABE61B60EBE56B612BE5CB610BE61B61DBE77B633"
+ $"BE6CB628BE6EB62ABE5BB617BE64B621BE5BB624BE5BB63FBE5BB632BE5BB64C"
+ $"BE5BB667BE5BB659BE76B686BEACB6C6BE91B6A6BEC8B6E5BEFEB725BEE3B705"
+ $"BF15B745BF43B784BF2CB7653FB7A4BF88B7E4BF71B7C4BF9EB808BFC9B84FBF"
+ $"B4B82BBFDFB873C00BB8BABFF5B896C022B8E9C050B947C039B918C068B976C0"
+ $"96B9D4C07FB9A5C0A7B9FFC0CABA55C0B8BA2AC0DBBA80C0FDBAD7C0ECBAABC1"
+ $"0ABB02C124BB58C117BB2DC131BB83C14BBBDAC13EBBAEC154BC05C168BC5BC1"
+ $"5EBC30C171BC86C184BCDDC17BBCB1C18BBD0AC198BD64C191BD37C19FBD91C1"
+ $"ACBDEBC1A5BDBEC1ACBE3BC1ACBEDDC1ACBE8CC1ACBF2EC1ADBFCFC1ADBF7EC1"
+ $"A8BFEFC19EC02FC1A3C00FC198C04FC18EC08EC193C06EC187C0ACC17AC0E8C1"
+ $"80C0CAC173C107C165C143C16CC125C159C164C141C1A8C14DC186C135C1CAC1"
+ $"1EC20DC129C1EBC114C220C101C246C10BC233C0F8C258C0E5C27EC0EFC26BC0"
+ $"D1C29CC0A9C2D9C0BDC2BBC095C2F8C06DC335C081C316C066C33BC05AC347C0"
+ $"60C341C034C344BFE9C340C00EC342BFC3C33DBF77C339BF9DC33BBF65C334BF"
+ $"40C32CBF53C330BF2EC328BF09C31FBF1CC323BEF7C319BED3C30EBEE5C314BE"
+ $"C1C308BE9DC2FDBEAFC303BE75C311BE25C337BE4DC324BE4EC324BE9EC2FCBE"
+ $"76C310BE9EC2D6BE9E47BE9EC2B0BE9EC264BE9EC218BE9EC23EBEA1C1D3BEA6"
+ $"C148BEA3C18DBEA8C102BEADC077BEABC0BDBED4C067BF21C045BEFBC056BF48"
+ $"C034BF96C013BF6FC023BF96C00BBF96BFFBBF96C003BF96BFF3BF96BFE2BF96"
+ $"BFEABF92BFE4BF8BBFE7BF8FBFE6BF8BBFE5BF8ABFE1BF8BBFE3BF8ABFDFBF8A"
+ $"BFDABF8ABFDCBF11BFA4BE1FBF38BE98BF6EBDA6BF01BCB4BE95BD2DBECBBCAC"
+ $"BE92BC9CBE8BBCA43DBC94BE87BC84BE80BC8CBE84BC19BEABBB42BF00BBAEBE"
+ $"D6BB0FBF15BAA9BF3DBADCBF29BAA8BF3BBAA6BF38BAA7BF3ABAA5BF36BAA3BF"
+ $"31BAA4BF33BA8CBF04BA5EBEAABA75BED7BA47BE7DBA19BE23BA30BE50BA0ABD"
+ $"FFB9ECBDB8B9FBBDDCB9DDBD94B9BFBD4DB9CEBD71B9B1BD27B997BCDAB9A4BD"
+ $"01B989BCB4B96FBC68B97CBC8EB962BC32B947BBC6B954BBFCB93ABB91B91FBB"
+ $"25B92DBB5BB919BAFCB90EBAAAB913BAD3B908BA80B8FCBA2EB902BA57B8FCB9"
+ $"ECB8FCB969B8FCB9AAB8FCB927B8FCB8A4B8FCB8E5B902B87AB90EB828B908B8"
+ $"51B914B7FEB920B7ACB91AB7D5B928B78FB936B755B92FB772B93EB738B94CB6"
+ $"FDB945B71AB956B6E2B969B6AC30B6C7B973B691B987B65AB97DB675B995B63C"
+ $"B9B3B601B9A4B61FB9C2B5E4B9DFB5A8B9D1B5C6B9EFB591BA0E26B9FEB57BBA"
+ $"1DB54DBA3CB51FBA2DB536BA57B503BA8CB4CCBA71B4E8BAA6B4B1BADCB47ABA"
+ $"C1B495BAF2B46BBB1EB44EBB08B45CBB34B43FBB60B421BB4AB430BB5CB421BB"
+ $"56B421BB59B421BB54B421BB4FB421BB51B421BB57B420BB68B41CBB60B41EBB"
+ $"68B410BB68B3F7BB68B403BB68B3EBBB68B3D3BB68B3DFBB67B3D3BB64B3D3BB"
+ $"65B3D3BB63B3D3BB60B3D3BB61B3D3BB60B3D3020FB8B7B4B4B8B7B4B4B8B4B4"
+ $"B4B8AFB4B4B8B1B4B4B8ACB4AAB8A7B497B8AAB4A1B8A5B48EB8A0B47AB8A3B4"
+ $"84B8A2B478B8A6B474B8A4B476B8A8B472B8ADB46EB8AAB470B920B454BA06B4"
+ $"20B993B43ABA79B406BB60B3D3BAEDB3EDBB61B3D3BB64B3D3BB63B3D3BB65B3"
+ $"D3BB68B3D3BB67B3D3BB68B3DFBB68B3F7BB68B3EBBB68B403BB68B41CBB68B4"
+ $"10BAF7B435BA14B468BA85B44FB9A2B482B8BFB4B4B931B49BB8BCB4B4B8B7B4"
+ $"B4B8BAB4B4B8B7B4B4021ABCEAC3D1BCEAC3D1BCA9C3F0BC28C42EBC68C40FBC"
+ $"28C3B1BC28C2B6BC28C334BC28C239BC28C13FBC28C1BCBC32C137BC45C127BC"
+ $"3CC12FBC4FC11FBC63C110BC59C118BC71C110BC8CC110BC7EC110BC99C111BC"
+ $"B4C111BCA7C111BCC2C116BCDEC120BCD0C11BBCECC125BD08C12FBCFAC12ABD"
+ $"09C127BD0BC118BD0AC11FBD0CC110BD0FC101BD0DC109BD7AC0D1BE52C072BD"
+ $"E6C0A1BEBEC042BF96BFE2BF2AC012BF96BFEABF96BFFBBF96BFF3BF96C003BF"
+ $"96C013BF96C00BBF6FC023BF21C045BF48C034BEFBC056BEADC077BED4C067BE"
+ $"ABC0BDBEA6C148BEA8C102BEA3C18DBE9EC218BEA1C1D3BE9EC23EBE9E47BE9E"
+ $"C264BE9EC2B0BE9EC2FCBE9EC2D6BE76C310BE25C337BE4EC324BDFDC34BBDAC"
+ $"C373BDD5C35FBD6BC392BCEAC3D1BD2BC3B1BCEAC3D1BCEAC3D1BCEAC3D1BCEA"
+ $"C3D1024EC0A4C5D9C0A4C5D9C093C5E2C072C5F6C082C5ECC08FC5DAC0C9C5A4"
+ $"C0ACC5BFC0E6C589C120C552C103C56DC133C53944C507C145C520C16B4DC191"
+ $"C4BCC17EC4D5C1A3C498C1C8C451C1B6C475C1DAC42DC1FFC3E6C1EDC40AC20C"
+ $"C3C1C226C376C219C39BC233C350C24DC305C240C32AC255C2E1C265C29AC25D"
+ $"C2BEC26CC276C27CC22FC274C253C280C217C287C1E6C284C1FEC28BC1CDC293"
+ $"C19DC28FC1B5C297C162C29FC0EEC29BC128C2A3C0B4C2ABC040C2A7C07AC2A7"
+ $"C005C2A0BF8FC2A3BFCAC29CBF54C294BEDEC298BF19C28EBEB6C283BE64C288"
+ $"BE8DC27DBE3CC271BDEBC277BE13C267BDC0C254BD69C25EBD94C24ABD3EC237"
+ $"BCE8C241BD13C22BBCBBC211BC63C21EBC8FC204BC36C1EBBBDEC1F8BC0AC1D8"
+ $"BBAAC1B2BB44C1C5BB77C19EBB10C178BAAAC18BBADDC15FBA74C12CBA0AC145"
+ $"BA3FC112B9D5C0DFB96AC0F8B99FC0C9B945C09EB8FCC0B4B920C088B8D7C05D"
+ $"B88DC073B8B2C044B867C011B81CC02BB842BFF8B7F6BFC6B7ABBFDFB7D1BFAB"
+ $"B789BF74B746BF8FB768BF59B725BF23B6E1BF3EB703BF01B6BFBEBDB679BEDF"
+ $"B69CBE9BB657BE56B612BE79B634BE5CB610BE67B60CBE61B60EBE6CB60ABE77"
+ $"B607BE71B609BEE8B5E8BFCCB5AC3F27C03DB58DC121B550C0AFB56FC131B55E"
+ $"C152B579C141B56BC162B586C183B5A1C173B594C1A6B5C8C1EAB615C1C8B5EE"
+ $"C20CB63BC250B688C22EB662C26AB6ABC29FB6F1C285B6CEC2B9B714C2EDB75A"
+ $"C2D3B737C308B784C33CB7DAC322B7AF49B804C38BB859C370B82FC3A1B885C3"
+ $"CDB8DEC3B7B8B2C3E3B90AC410B963C3FAB937C425B998C44EBA01C439B9CCC4"
+ $"63BA35C48DBA9EC478BA6AC49ABACBC4B4BB25C4A734C4C1BB52C4DCBBADC4CF"
+ $"BB7FC4E5BBD8C4F8BC2EC4EFBC03C502BC59C515BCB0C50BBC84C51BBCDEC528"
+ $"BD3CC522BD0DC52EBD6BC53BBDC9C535BD9AC53CBE1AC53CBEBBC53CBE6AC53C"
+ $"BF0CC53DBFADC53CBF5CC538BFD1C52EC018C533BFF5C529C03CC51FC083C524"
+ $"C05FC516C0AEC503C103C50CC0D9C4FAC12EC4E7C183C4F0C159C4DAC1A9C4BF"
+ $"C1F5C4CCC1CFC4B2C21AC498C266C4A5C240C48BC280C470C2B5C47DC29BC463"
+ $"C2D0C448C305C456C2EAC434C324C40CC361C420C342C3F7C37FC3CFC3BDC3E3"
+ $"C39EC3B8C3D5C389C405C3A0C3EDC371C41DC342C44DC35AC435C32EC45CC304"
+ $"C47BC319C46C48C48BC2C6C4A9C2DBC49AC274C4D7C1CFC533C221C505C17CC5"
+ $"60C0D7C5BCC12AC58EC0C6C5C5C0A4C5D9C0B5C5CFC0A4C5D9C0A4C5D9C0A4C5"
+ $"D9C0A4C5D90216BCBECAFDBCBECAFDBC5FCB36BBA1CBA8BC00CB6FBBA1CBA4BB"
+ $"A1CB9ABBA1CB9FBBA1CB95BBA1CB8CBBA1CB91BBB9CB03BBEAC9F2BBD1CA7ABC"
+ $"02C969BC33C857BC1AC8E0BC33C7F6BC33C734BC33C795BC33C6D3BC33C611BC"
+ $"33C672BC3AC614BC47C61ABC40C617BC4DC61CBC5AC622BC54C61FBC84C630BC"
+ $"D6C64DBCADC63FBD00C65BBD52C678BD29C66ABD6BC67CBD9BC683BD83C680BD"
+ $"B4C687BDE4C68FBDCCC68BBE00C68FBE36C691BE1BC690BE51C691BE88C692BE"
+ $"6DC692BE88C6A9BE88C6D7BE88C6C0BE88C6EEBE88C71CBE88C705BE6BC7A5BE"
+ $"32C8B7BE4FC82EBE15C940BDDCCA52BDF9C9C9BD7DCA8BBCBECAFDBD1ECAC4BC"
+ $"BECAFDBCBECAFDBCBECAFDBCBECAFD02CABB9DCBA2BB9DCBA2BB9CCBA5BB9ACB"
+ $"ABBB9BCBA8BB80CAFFBB4CC9A7BB66CA53BB32C8FBBAFEC7A3BB18C84FBAFDC7"
+ $"41BAFAC67CBAFBC6DF34C61ABAF6C555BAF7C5B7BAD3C539BA8EC501BAB1C51D"
+ $"BA6CC4E5BA27C4AEBA4AC4C9BA02C487B9B7C439B9DCC460B991C412B946C3C4"
+ $"B96BC3EBB92CC3A4B8F9C365B913C385B8E0C345B8ADC305B8C6C3252EC2DFB8"
+ $"61C294B87AC2BAB847C26FB814462DC249B801C203B7DAC1C0B7EDC1E1B7C6C1"
+ $"9FB79FC15CB7B3C17EB78CC136B766C0EAB779C110B752C0C4B72CC078B73FC0"
+ $"9EB71FC05AB705C01EB712C03CB6F8C000B6DFBFC4B6EBBFE2B6CEBF98B6AEBF"
+ $"42B6BEBF6DB69EBF17B67DBEC0B68EBEEBB66EBE8AB650BE1DB65FBE53B640BD"
+ $"E7B622BD7AB631BDB1B61ABD55B60BBD09B613BD2FB604BCE4B5F5BC98B5FCBC"
+ $"BEB5EEBC6DB5E1BC17B5E8BC42B5DBBBECB5CEBB96B5D4BBC1B5CEBB31B5CDBA"
+ $"66B5CEBACBB5CDBA01B5CDB936B5CDB99BB5D4B910B5E1B8C5B5DAB8EBB5E7B8"
+ $"A0B5F5B855B5EEB87AB5FEB831B610B7EAB607B80DB619B7C6B62BB77FB622B7"
+ $"A2B635B765B648B732B63EB74CB652B719B665B6E6B65BB700B674B6C7B693B6"
+ $"8AB684B6A9B6A3B66BB6C2B62DB6B2B64CB6D1B617B6EFB5EBB6E0B601B6FEB5"
+ $"D5B71CB5A9B70DB5BFB72FB594B755B569B742B57FB768B554B78EB52AB77BB5"
+ $"3FB7A6B517B7D6B4F0B7BEB503B7EFB4DCB81FB4B5B807B4C9B835B4AAB860B4"
+ $"93B84AB49EB875B487B8A0B470B88BB47CB8A3B47CB8A7B494B8A5B488B8AAB4"
+ $"A0B8AEB4B7B8ACB4ACB8ADB4B8B8ABB4B9B8ACB4B9B8AAB4BAB8A9B4BBB8AAB4"
+ $"BAB890B4CCB85EB4EFB877B4DEB845B501B813B524B82CB512B7FEB53BB7D3B5"
+ $"6AB7E8B553B7BEB582B793B5B1B7A9B599B786B5C5B76CB5ECB779B5D9B75FB6"
+ $"00B744B628B751B614B736B646B718B680B727B663B709B69EB6ECB6D9B6FAB6"
+ $"BBB6DEB702B6C4B753B6D1B72AB6B6B77CB69CB7CDB6A9B7A4B694B7F8B685B8"
+ $"4FB68CB824B67DB87AB66EB8D1B676B8A5B66CB916B668B9A1B66AB95CB666B9"
+ $"E6B662BA71B66432B668BAA5B674BB0DB66EBAD9B67ABB41B686BBAAB680BB76"
+ $"B690BBD5B6A4BC2BB69ABC00B6ADBC57B6C1BCADB6B7BC82B6CEBCD9B6E8BD30"
+ $"B6DBBD04B6F5BD5BB710BDB2B702BD87B724BDE7B74EBE50B739BE1C2BBE85B7"
+ $"8CBEEEB777BEB9B7ACBF2DB7EDBFADB7CCBF6DB80DBFECB84EC06CB82DC02CB8"
+ $"72C0A2B8BBC10FB896C0D9B8DFC146B928C1B3B903C17DB946C1D7B981C21EB9"
+ $"63C1FAB99FC242B9DBC289B9BDC265B9F9C2A5BA34C2DEBA16C2C1BA52C2FABA"
+ $"8DC332BA6FC316BA9DC33EBABCC357BAACC34BBACCC364BAECC37CBADCC370BA"
+ $"EAC309BAE6C222BAE8C295BAE4C1AEBAE0C0C7BAE2C13ABADCC0B7BAD4C099BA"
+ $"D8C0A8BAD0C089BAC9C06ABACDC07ABABBC058BA9FC033BAADC046BA91C021BA"
+ $"75BFFCBA83C00EBA62BFEFBA3BBFD5BA4FBFE2BA28BFC7BA01BFADBA14BFBABA"
+ $"01BFA7BA00BF99BA01BFA0BA00BF93BA00BF86BA00BF8CBA02BF86BA05BF86BA"
+ $"04BF86BA07BF86BA0BBF86BA09BF86BA8ABFC4BB8AC041BB0AC003BC09C080BD"
+ $"09C0FDBC89C0BEBD09C105BD09C116BD09C10EBD09C11EBD09C12FBD09C127BC"
+ $"FBC12ABCDFC120BCEDC125BCD1C11BBCB4C111BCC3C116BCA7C111BC8CC110BC"
+ $"99C111BC7EC110BC63C110BC71C110BC59C118BC45C127BC4FC11FBC3CC12FBC"
+ $"28C13FBC32C137BC28C1BCBC28C2B6BC28C239BC28C333BC28C42EBC28C3B0BC"
+ $"3FC435BC6EC445BC57C43DBC86C44DBCB5C45CBC9DC455BCCFC462BD03C46DBC"
+ $"E9C468BD1EC473BD52C47EBD38C478BD73C47EBDB5C47EBD94C47EBDD6C47EBE"
+ $"18C47EBDF7C47EBE35C478BE6FC46DBE52C472BE8CC467BEC6C45BBEA9C461BE"
+ $"ECC449BF38C424BF12C436BF5EC411BFAAC3ECBF84C3FFBFCBC3CEC00BC391BF"
+ $"EBC3AFC02CC372C06DC335C04CC353C081C316C0A9C2D9C095C2F8C0BDC2BBC0"
+ $"E5C27EC0D1C29CC0EFC26BC101C246C0F8C258C10BC233C11EC20DC114C220C1"
+ $"29C1EBC141C1A8C135C1CAC14DC186C165C143C159C164C16CC125C17AC0E8C1"
+ $"73C107C180C0CAC18EC08EC187C0ACC193C06EC19EC02FC198C04FC1A3C00FC1"
+ $"ADBFCFC1A8BFEFC1ADBF7EC1ACBEDDC1ACBF2EC1ACBE8CC1ACBDEBC1ACBE3BC1"
+ $"A5BDBEC198BD64C19FBD91C191BD37C184BCDDC18BBD0AC17BBCB1C168BC5BC1"
+ $"71BC86C15EBC30C14BBBDAC154BC05C13EBBAEC124BB58C131BB83C117BB2DC0"
+ $"FDBAD7C10ABB02C0ECBAABC0CABA55C0DBBA80C0B8BA2AC096B9D4C0A7B9FFC0"
+ $"7FB9A5C050B947C068B976C039B918C00BB8BAC022B8E9BFF5B896BFC9B84FBF"
+ $"DFB873BFB4B82BBF88B7E4BF9EB808BF71B7C4BF43B7843FB7A4BF2CB765BEFE"
+ $"B725BF15B745BEE3B705BEACB6C6BEC8B6E5BE91B6A6BE5BB667BE76B686BE5B"
+ $"B659BE5BB63FBE5BB64CBE5BB632BE5BB617BE5BB624BE75B631BEABB666BE90"
+ $"B64BBEC5B680BEFBB6B4BEE0B69ABF1DB6DDBF60B730BF3EB706BF82B759BFC6"
+ $"B7ABBFA4B782BFDFB7D1C011B81CBFF8B7F6C02BB842C05DB88DC044B867C073"
+ $"B8B2C09EB8FCC088B8D7C0B4B920C0DFB96AC0C9B945C0F8B99FC12CBA0AC112"
+ $"B9D5C145BA3FC178BAAAC15FBA74C18BBADDC1B2BB44C19EBB10C1C5BB77C1EB"
+ $"BBDEC1D8BBAAC1F8BC0AC211BC63C204BC36C21EBC8FC237BCE8C22BBCBBC241"
+ $"BD13C254BD69C24ABD3EC25EBD94C271BDEBC267BDC0C277BE13C283BE64C27D"
+ $"BE3CC288BE8DC294BEDEC28EBEB6C298BF19C2A0BF8FC29CBF54C2A3BFCAC2AB"
+ $"C040C2A7C005C2A7C07AC29FC0EEC2A3C0B4C29BC128C293C19DC297C162C28F"
+ $"C1B5C287C1E6C28BC1CDC284C1FEC27CC22FC280C217C274C253C265C29AC26C"
+ $"C276C25DC2BEC24DC305C255C2E1C240C32AC226C376C233C350C219C39BC1FF"
+ $"C3E6C20CC3C1C1EDC40AC1C8C451C1DAC42DC1B6C475C191C4BCC1A3C498C17E"
+ $"C4D5C159C506C16C4DC146C51FC121C551C134C538C107C569C0D3C59BC0EDC5"
+ $"82C0B8C5B3C084C5E4C09EC5CCC06AC5F4C035C613C050C604C01BC623BFE6C6"
+ $"42C000C633BFCCC64CBF97C65EBFB2C655BF7DC667BF48C679BF63C670BF35C6"
+ $"7DBF0DC685BF21C681BEF9C688BED1C690BEE5C68CBEABC690BE5FC690BE85C6"
+ $"90BE39C690BDEDC690BE13C690BDD3C68CBDA0C684BDBAC688BD86C680BD52C6"
+ $"78BD6CC67CBD29C66ABCD6C64DBD00C65BBCADC63FBC5AC622BC84C630BC54C6"
+ $"1FBC47C61ABC4DC61CBC40C617BC33C611BC3AC614BC33C672BC33C733BC33C6"
+ $"D2BC33C794BC33C855BC33C7F5BC1AC8E0BBE9C9F7BC02C96CBBD15BBB9FCB99"
+ $"BBB8CB0DBB9FCB9CBB9DCBA2BB9ECB9FBB9DCBA2BB9DCBA2BB9DCBA2BB9DCBA2"
+ $"0210BDACC0BBBDACC0BBBD78C0D2BD0FC100BD43C0E9BC8CC0C0BB87C040BC0A"
+ $"C080BB05C000BA00BF80BA8340BA6CBF56BB42BF00BAD7BF2BBBAEBED6BC84BE"
+ $"80BC19BEABBC8CBE84BC9CBE8BBC94BE87BCA43DBCB4BE95BCACBE92BD2DBECB"
+ $"BE1FBF38BDA6BF01BE98BF6EBF8ABFDABF11BFA4BF8ABFDCBF8ABFE1BF8ABFDF"
+ $"BF8BBFE3BF8BBFE8BF8BBFE5BF55BFFFBEEAC02FBF20C017BEB5C046BE4AC076"
+ $"BE7FC05EBE15C08DBDACC0BBBDE1C0A4BDACC0BBBDACC0BBBDACC0BBBDACC0BB"
+ $"0250BAE9C37BBAE9C37BBAE8C37BBAE7C37BBAE8C37BBAC9C362BA8DC32EBAAB"
+ $"C348BA6FC315BA33C2E1BA51C2FBBA19C2C6B9E6C290BA00C2ABB9CDC275B99A"
+ $"C23FB9B4C25AB983C222B955C1E8B96CC205B93EC1CBB910C191B927C1AEB8EF"
+ $"C160B8ADC0FCB8CEC12EB88DC0CAB84BC067B86CC099B82BC028B7ECBFAAB80B"
+ $"BFE9B7CCBF6CB78CBEEEB7ACBF2DB777BEB9B74EBE502BBE85B739BE1CB710BD"
+ $"B2B724BDE7B702BD87B6E8BD30B6F5BD5BB6DBBD04B6C1BCADB6CEBCD9B6B7BC"
+ $"82B6A4BC2BB6ADBC57B69ABC00B686BBAAB690BBD5B680BB76B674BB0DB67ABB"
+ $"41B66EBAD9B662BA71B668BAA5B66432B668B9A1B666B9E6B66AB95CB66EB8D1"
+ $"B66CB916B676B8A5B685B84FB67DB87AB68CB824B69CB7CDB694B7F8B6A9B7A4"
+ $"B6C4B753B6B6B77CB6D1B72AB6ECB6D9B6DEB702B6FAB6BBB718B680B709B69E"
+ $"B727B663B744B628B736B646B751B614B76CB5ECB75FB600B779B5D9B793B5B1"
+ $"B786B5C5B7A9B599B7D3B56AB7BEB582B7E8B553B813B524B7FEB53BB82BB512"
+ $"B85CB4F0B844B501B875B4DEB8A5B4BBB88DB4CDB917B4A2B9F9B46EB988B488"
+ $"BA6AB455BB4CB421BADBB43BBB4FB421BB56B421BB53B421BB59B421BB60B421"
+ $"BB5CB421BB4AB430BB1EB44EBB34B43FBB08B45CBADCB47ABAF2B46BBAC1B495"
+ $"BA8CB4CCBAA6B4B1BA71B4E8BA3CB51FBA57B503BA2DB536BA0E26BA1DB54DB9"
+ $"FEB57BB9DFB5A8B9EFB591B9D1B5C6B9B3B601B9C2B5E4B9A4B61FB987B65AB9"
+ $"95B63CB97DB675B969B6ACB973B69130B6C7B94CB6FDB956B6E2B945B71AB936"
+ $"B755B93EB738B92FB772B920B7ACB928B78FB91AB7D5B90EB828B914B7FEB908"
+ $"B851B8FCB8A4B902B87AB8FCB8E5B8FCB969B8FCB927B8FCB9AAB8FCBA2EB8FC"
+ $"B9ECB902BA57B90EBAAAB908BA80B913BAD3B91FBB25B919BAFCB92DBB5BB947"
+ $"BBC6B93ABB91B954BBFCB96FBC68B962BC32B97CBC8EB997BCDAB989BCB4B9A4"
+ $"BD01B9BFBD4DB9B1BD27B9CEBD71B9ECBDB8B9DDBD94B9FBBDDCBA19BE23BA0A"
+ $"BDFFBA30BE50BA5EBEAABA47BE7DBA75BED7BAA3BF31BA8CBF04BAA4BF33BAA6"
+ $"BF38BAA5BF36BAA8BF3ABAAABF3FBAA9BF3DBA8DBF4ABA55BF5FBA71BF55BA39"
+ $"BF6ABA00BF80BA1CBF75BA00BF87BA00BF96BA00BF8FBA01BF9EBA01BFADBA01"
+ $"BFA6BA14BFBABA3BBFD5BA28BFC7BA4EBFE2BA75BFFCBA62BFEFBA83C00EBA9F"
+ $"C033BA91C021BAADC046BAC9C06ABABBC058BACDC07ABAD4C099BAD0C089BAD8"
+ $"C0A8BAE0C0C7BADCC0B7BAE2C13ABAE6C221BAE4C1AEBAE8C294BAEBC37BBAEA"
+ $"C308BAEBC37BBAE9C37BBAEAC37BBAE9C37BBAE9C37BBAE9C37BBAE9C37B0217"
+ $"BDB0C47DBDB0C47DBD8DC47DBD47C47CBD6AC47DBD2FC477BCFFC46DBD17C472"
+ $"BCE7C468BCB7C45DBCCFC462BCA4C457BC7DC44BBC91C451BC6AC444BC44C438"
+ $"BC57C43EBC41C435BC3CC431BC3EC433BC39C42EBC34C429BC36C42CBC9BC3F7"
+ $"BD68C393BD02C3C5BDCFC361BE9DC2FDBE36C32FBEAFC303BED3C30EBEC1C308"
+ $"BEE5C314BF09C31FBEF7C319BF1CC323BF40C32CBF2EC328BF53C330BF77C339"
+ $"BF65C334BF9DC33BBFE9C340BFC3C33DC00EC342C05AC347C034C344C03DC362"
+ $"C002C39AC01FC37EBFE5C3B5BFAAC3EDBFC7C3D1BF84C3FFBF38C424BF5EC412"
+ $"BF12C436BEC6C45BBEECC449BEA9C461BE6FC46DBE8CC467BE52C472BE18C47E"
+ $"BE35C478BDF5C47EBDB0C47DBDD2C47EBDB0C47D0C0A00100001020304050607"
+ $"08090A0B0C0D0E0F000A0110101112131415161718191A1B1C1D1E1F000A0210"
+ $"202122232425262728292A2B2C2D2E2F1001178402040A031030313233343536"
+ $"3738393A3B3C3D3E3F000A040140000A050141000A040142000A060143000A07"
+ $"0144000A080145000A090146000A0A014700"
+};
diff --git a/games-fps/quakespasm/additional-files/haiku_readme.txt b/games-fps/quakespasm/additional-files/haiku_readme.txt
new file mode 100644
index 000000000..b8c6f917a
--- /dev/null
+++ b/games-fps/quakespasm/additional-files/haiku_readme.txt
@@ -0,0 +1,18 @@
+
+Installing game data files for QuakeSpasm on Haiku
+===============================================================
+
+QuakeSpasm for Haiku searches for game data at the system directory specified
+by the symbolic constant `B_USER_NONPACKAGED_DATA_DIRECTORY` + `/QuakeSpasm/`.
+
+On a normal system install, this would be located at:
+`/boot/home/config/non-packaged/data/QuakeSpasm/`
+
+Screenshots and configuration files are also saved here.
+
+To install the shareware or registered versions of Quake, place the files
+pak0.pak and pak1.pak into the following directory:
+`/boot/home/config/non-packaged/data/QuakeSpasm/id1/`
+
+Any mods for Quake should be installed accordingly, with the folder name "id1"
+being replaced with the name of the mod (no spaces).
diff --git a/games-fps/quakespasm/additional-files/qgrad-plain.svg b/games-fps/quakespasm/additional-files/qgrad-plain.svg
new file mode 100644
index 000000000..4ed783a39
--- /dev/null
+++ b/games-fps/quakespasm/additional-files/qgrad-plain.svg
@@ -0,0 +1,145 @@
+
+
+
+
diff --git a/games-fps/quakespasm/patches/quakespasm-0.96.0~git.patchset b/games-fps/quakespasm/patches/quakespasm-0.96.0~git.patchset
new file mode 100644
index 000000000..3d59a224e
--- /dev/null
+++ b/games-fps/quakespasm/patches/quakespasm-0.96.0~git.patchset
@@ -0,0 +1,190 @@
+From 77b165e3088b42842a0119cb919908e86ab6127f Mon Sep 17 00:00:00 2001
+From: Jaycie Ewald
+Date: Sat, 3 Jun 2023 10:43:28 -0500
+Subject: Haiku support.
+
+Changes already submitted upstream.
+---
+ Quake/Makefile | 23 +++++++++++++++--------
+ Quake/build_cross_haiku32-sdl2.sh | 2 +-
+ Quake/build_cross_haiku64-sdl2.sh | 2 +-
+ Quake/common.c | 23 +++++++++++++++++++++++
+ Quake/sys_sdl_unix.c | 21 +++++++++++++++++++++
+ 5 files changed, 61 insertions(+), 10 deletions(-)
+
+diff --git a/Quake/Makefile b/Quake/Makefile
+index beea5e1..91141a0 100644
+--- a/Quake/Makefile
++++ b/Quake/Makefile
+@@ -10,9 +10,6 @@ DO_USERDIRS=0
+ ### Enable/Disable SDL2
+ USE_SDL2=0
+
+-### Do we need to link the math library?
+-LINK_M=1
+-
+ ### Enable/Disable codecs for streaming music support
+ USE_CODEC_WAVE=1
+ USE_CODEC_FLAC=0
+@@ -38,7 +35,7 @@ check_gcc = $(shell if echo | $(CC) $(1) -Werror -S -o /dev/null -xc - > /dev/nu
+
+ # ---------------------------
+
+-HOST_OS := $(shell uname|sed -e s/_.*//|tr '[:upper:]' '[:lower:]')
++HOST_OS ?= $(shell uname|sed -e s/_.*//|tr '[:upper:]' '[:lower:]')
+
+ DEBUG ?= 0
+
+@@ -112,7 +109,7 @@ SDL_LIBS := $(shell $(SDL_CONFIG) --libs)
+
+ ifeq ($(HOST_OS),sunos)
+ NET_LIBS :=-lsocket -lnsl -lresolv
+-else ifdef HAIKU_OS
++else ifeq ($(HOST_OS),haiku)
+ NET_LIBS :=-lnetwork
+ else
+ NET_LIBS :=
+@@ -185,10 +182,10 @@ ifeq ($(USE_CODEC_UMX),1)
+ CFLAGS+= -DUSE_CODEC_UMX
+ endif
+
++ifeq ($(HOST_OS),haiku)
+ COMMON_LIBS:= -lGL
+-
+-ifeq ($(LINK_M),1)
+-COMMON_LIBS += -lm
++else
++COMMON_LIBS:= -lGL -lm
+ endif
+
+ LIBS := $(COMMON_LIBS) $(NET_LIBS) $(CODECLIBS)
+@@ -305,7 +302,17 @@ debug:
+ clean:
+ $(RM) *.o *.d $(DEFAULT_TARGET)
+
++ifeq ($(HOST_OS),haiku)
++QS_DATA_DIR=$(shell finddir B_USER_NONPACKAGED_DATA_DIRECTORY)/QuakeSpasm/
++QS_APP_DIR=$(shell finddir B_APPS_DIRECTORY)/QuakeSpasm/
++install: quakespasm
++ mkdir -p $(QS_APP_DIR)
++ mkdir -p $(QS_DATA_DIR)
++ cp quakespasm $(QS_APP_DIR)
++ cp quakespasm.pak $(QS_DATA_DIR)
++else
+ install: quakespasm
+ cp quakespasm /usr/local/games/quake
++endif
+
+ sinclude $(OBJS:.o=.d)
+diff --git a/Quake/build_cross_haiku32-sdl2.sh b/Quake/build_cross_haiku32-sdl2.sh
+index b180335..d6c5e55 100755
+--- a/Quake/build_cross_haiku32-sdl2.sh
++++ b/Quake/build_cross_haiku32-sdl2.sh
+@@ -14,4 +14,4 @@ STRIP="$TARGET-strip"
+ LDFLAGS=-L/usr/lib32 # hack
+ export CC AS AR RANLIB STRIP LDFLAGS
+
+-exec $MAKE_CMD HAIKU_OS=1 LINK_M=0 USE_SDL2=1 LDFLAGS=$LDFLAGS CC=$CC AS=$AS RANLIB=$RANLIB AR=$AR STRIP=$STRIP -f Makefile $*
++exec $MAKE_CMD HOST_OS=haiku USE_SDL2=1 LDFLAGS=$LDFLAGS CC=$CC AS=$AS RANLIB=$RANLIB AR=$AR STRIP=$STRIP -f Makefile $*
+diff --git a/Quake/build_cross_haiku64-sdl2.sh b/Quake/build_cross_haiku64-sdl2.sh
+index 0b43404..8090528 100755
+--- a/Quake/build_cross_haiku64-sdl2.sh
++++ b/Quake/build_cross_haiku64-sdl2.sh
+@@ -13,4 +13,4 @@ AR="$TARGET-ar"
+ STRIP="$TARGET-strip"
+ export CC AS AR RANLIB STRIP
+
+-exec $MAKE_CMD HAIKU_OS=1 LINK_M=0 USE_SDL2=1 CC=$CC AS=$AS RANLIB=$RANLIB AR=$AR STRIP=$STRIP -f Makefile $*
++exec $MAKE_CMD HOST_OS=haiku USE_SDL2=1 CC=$CC AS=$AS RANLIB=$RANLIB AR=$AR STRIP=$STRIP -f Makefile $*
+diff --git a/Quake/common.c b/Quake/common.c
+index c604a0a..931f971 100644
+--- a/Quake/common.c
++++ b/Quake/common.c
+@@ -28,6 +28,12 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ #include "miniz.h"
+
++#include "arch_def.h"
++#ifdef PLATFORM_HAIKU
++#include
++#include
++#endif
++
+ static char *largv[MAX_NUM_ARGVS + 1];
+ static char argvdummy[] = " ";
+
+@@ -2052,11 +2058,28 @@ _add_path:
+ if (i != 0 || path_id != 1 || fitzmode)
+ qspak = NULL;
+ else {
++ #ifdef PLATFORM_HAIKU
++ qboolean old = com_modified;
++ dev_t volume = dev_for_path("/boot");
++ char buffer[B_PATH_NAME_LENGTH];
++ status_t result;
++
++ result = find_directory(B_SYSTEM_DATA_DIRECTORY, volume, false, buffer, sizeof(buffer));
++ if (result != B_OK)
++ Sys_Error ("Couldn't determine userspace directory");
++
++ q_snprintf (pakfile, sizeof(pakfile), "%s/QuakeSpasm/quakespasm.pak", buffer);
++
++ qspak = COM_LoadPackFile (pakfile);
++
++ com_modified = old;
++ #else
+ qboolean old = com_modified;
+ if (been_here) base = host_parms->userdir;
+ q_snprintf (pakfile, sizeof(pakfile), "%s/quakespasm.pak", base);
+ qspak = COM_LoadPackFile (pakfile);
+ com_modified = old;
++ #endif
+ }
+ if (pak) {
+ search = (searchpath_t *) Z_Malloc(sizeof(searchpath_t));
+diff --git a/Quake/sys_sdl_unix.c b/Quake/sys_sdl_unix.c
+index 71c8595..ab683ca 100644
+--- a/Quake/sys_sdl_unix.c
++++ b/Quake/sys_sdl_unix.c
+@@ -244,10 +244,30 @@ static char cwd[MAX_OSPATH];
+ static char userdir[MAX_OSPATH];
+ #ifdef PLATFORM_OSX
+ #define SYS_USERDIR "Library/Application Support/QuakeSpasm"
++#elif defined(PLATFORM_HAIKU)
++#define SYS_USERDIR "QuakeSpasm"
+ #else
+ #define SYS_USERDIR ".quakespasm"
+ #endif
+
++#ifdef PLATFORM_HAIKU
++
++#include
++#include
++
++static void Sys_GetUserdir (char *dst, size_t dstsize)
++{
++ dev_t volume = dev_for_path("/boot");
++ char buffer[B_PATH_NAME_LENGTH];
++ status_t result;
++
++ result = find_directory(B_USER_NONPACKAGED_DATA_DIRECTORY, volume, false, buffer, sizeof(buffer));
++ if (result != B_OK)
++ Sys_Error ("Couldn't determine userspace directory");
++
++ q_snprintf (dst, dstsize, "%s/%s", buffer, SYS_USERDIR);
++}
++#else
+ static void Sys_GetUserdir (char *dst, size_t dstsize)
+ {
+ size_t n;
+@@ -274,6 +294,7 @@ static void Sys_GetUserdir (char *dst, size_t dstsize)
+
+ q_snprintf (dst, dstsize, "%s/%s", home_dir, SYS_USERDIR);
+ }
++#endif /* PLATFORM_HAIKU */
+ #endif /* DO_USERDIRS */
+
+ #ifdef PLATFORM_OSX
+--
+2.41.0
+
diff --git a/games-fps/quakespasm/quakespasm-0.96.0~git.recipe b/games-fps/quakespasm/quakespasm-0.96.0~git.recipe
new file mode 100644
index 000000000..e20f09b81
--- /dev/null
+++ b/games-fps/quakespasm/quakespasm-0.96.0~git.recipe
@@ -0,0 +1,102 @@
+SUMMARY="An engine for id software's Quake"
+DESCRIPTION="QuakeSpasm is a Haiku friendly Quake Engine based on the SDL port of the popular \
+FitzQuake.
+It includes some new features, important fixes, and aims for portability and 64 bit correctness.
+
+Installation:
+
+To install the game data under Haiku, copy the "id1" folder from a normal Quake installation \
+to the following directory: ~/config/non-packaged/data/QuakeSpasm/. Mods should be installed \
+to the same directory.
+
+Features:
+
+- Supports Windows, Mac OS X, Haiku, Linux, and other unices.
+- Well tested on both 32 bit and 64 bit platforms. Well tested on both little endian and big \
+endian platforms.
+- OpenGL improvements. In-game resolution changing.
+- Widescreen FOV (field of view) support and automatic Hor+ FOV scaling.
+- Improved sound support. Support for OGG, MP3, Opus and WAV external music files.
+- Improved game controller support using SDL2.
+- Countless bug fixes, security fixes and other improvements.
+- Support for playing the 'Quake 2021 re-release' content."
+HOMEPAGE="https://quakespasm.sourceforge.net/"
+COPYRIGHT="1996-2001 Id Software, Inc.
+ 2002-2009 John Fitzgibbons and others
+ 2010-2014 QuakeSpasm developers"
+LICENSE="GNU GPL v2"
+REVISION="1"
+srcGitRev="70df2b661e9c632d04825b259e63ad58c29c01ac"
+SOURCE_URI="https://github.com/sezero/quakespasm/archive/$srcGitRev.tar.gz"
+CHECKSUM_SHA256="b89ba914d061376945b1fbe2cd0631e162f4f0d835e004eba87a0a9cce107ad4"
+SOURCE_DIR="quakespasm-$srcGitRev"
+ADDITIONAL_FILES="QuakeSpasm.rdef.in
+ haiku_readme.txt"
+PATCHES="quakespasm-$portVersion.patchset"
+
+ARCHITECTURES="all !x86_gcc2"
+SECONDARY_ARCHITECTURES="x86"
+
+PROVIDES="
+ quakespasm$secondaryArchSuffix = $portVersion
+ app:QuakeSpasm
+ "
+REQUIRES="
+ haiku$secondaryArchSuffix
+ lib:libGL$secondaryArchSuffix
+ lib:libogg$secondaryArchSuffix
+ lib:libmad$secondaryArchSuffix
+ lib:libSDL2_2.0$secondaryArchSuffix
+ lib:libvorbis$secondaryArchSuffix
+ "
+
+BUILD_REQUIRES="
+ haiku${secondaryArchSuffix}_devel
+ devel:libGL$secondaryArchSuffix
+ devel:libogg$secondaryArchSuffix
+ devel:libmad$secondaryArchSuffix
+ devel:libSDL2_2.0$secondaryArchSuffix
+ devel:libvorbis$secondaryArchSuffix
+ "
+BUILD_PREREQUIRES="
+ cmd:gcc$secondaryArchSuffix
+ cmd:ld$secondaryArchSuffix
+ cmd:make
+ "
+
+BUILD()
+{
+ cd $sourceDir/Quake
+ make $jobArgs DO_USERDIRS=1 USE_SDL2=1 -f Makefile
+}
+
+INSTALL()
+{
+ local APP_SIGNATURE="application/x-vnd.QuakeSpasm"
+ local MAJOR="`echo "$portVersion" | cut -d. -f1`"
+ local MIDDLE="`echo "$portVersion" | cut -d. -f2`"
+ local MINOR="`echo "${portVersion//~git}" | cut -d. -f3`"
+ local LONG_INFO="$SUMMARY"
+ sed \
+ -e "s|@APP_SIGNATURE@|$APP_SIGNATURE|" \
+ -e "s|@MAJOR@|$MAJOR|" \
+ -e "s|@MIDDLE@|$MIDDLE|" \
+ -e "s|@MINOR@|$MINOR|" \
+ -e "s|@LONG_INFO@|$LONG_INFO|" \
+ $portDir/additional-files/QuakeSpasm.rdef.in > QuakeSpasm.rdef
+
+ addResourcesToBinaries QuakeSpasm.rdef $sourceDir/Quake/quakespasm
+ mimeset -f $sourceDir/Quake/quakespasm
+
+ mkdir -p $appsDir
+ cp -a $sourceDir/Quake/quakespasm $appsDir/QuakeSpasm
+
+ mkdir -p $docDir
+ cp $sourceDir/Quakespasm.html $docDir/Quakespasm.html
+ cp $portDir/additional-files/haiku_readme.txt $docDir/haiku_readme.txt
+
+ mkdir -p $dataDir/QuakeSpasm
+ cp $sourceDir/Quake/quakespasm.pak $dataDir/QuakeSpasm/quakespasm.pak
+
+ addAppDeskbarSymlink $appsDir/QuakeSpasm
+}