Áƒ*žE²@’~âAvL3Œô®î=D£YlÖE]ÝÞ’²None GetClassName LoadDefaultsWarningEUTAuthenticateAdmin QueryMainQueryMainMenu QueryOptionsQueryHomePageQueryMessages QueryRoot QueryMenuQueryRestartPage UsedMutators LoadMutatorsEUTServerAdminInitSystem SendTextCoreMyRoot RootPage DefaultBGHighlightedBGPadLeft ServerTravel AddElementAddSortedElementDeleteElementFailAuthenticationQueryUWebM GameClassNextGame PasswordAdminPassword BaseMutator NextMutator NextDescTraceDistanceWidthkPageGetNextIntDesc WebResponse WebRequest ScriptText ReturnValue IncludeUHTM ClearSubstSubstWebApplication GetVariableRequest ResponseURIData UsernameTagNumMutatorClasses TempItemMyGameUTServerAdminStaticSaveConfigInStrDynamicLoadObjectMutatorClassPackage TextBufferObject LevelInfo GameInfo DefaultsPageLevel MenuPage CurrentPage AdminRealm ListItemAdminUsernameIncludeMutatorsExcludeMutatorsOutStrPadStr EUTSource FunctionEngineEUTTeamGamePlusActor bShowIPS bTeamBeaconbLeaderBeaconbScoreBoardEffbUsesCustomWeapon bIpToCountrybEnhancedMessagesSetFOV RedTeamName BlueTeamNameTransKillMessageImpactKillMessageEnforcerKillMessageBioKillMessageShockRifleKillMessagePulseGunKillMessageRipperKillMessageMiniGunKillMessageFlakCannonKillMessageRocketLauncherKillMessageSniperRifleKillMessageCustomWeaponKillMessageIpToCountryTexturePackageAerialKillBioAerialKillRipperAerialKillFlakAerialKillRocketsAerialKillSniperAerialKillSuperAerialKillTransAerialKillComboAerialKillEnforcerAerialKillPulseAerialKillMiniAerialKillPistonAerialKillCustomCustomWeaponNameMessageOfTheDay bAutoTauntsbTDMbCTFbDMbEnhancedSprees bLogModsbCheckDefaults bHitSounds bDemoRequestbKickSpeedHackbReportbEnhancedDeathMessages bAntiTimer bStatLinkbAlwaysRecordTourney bKickMinY bNoOverTimebNoFlockPawnsbNoDroppedFlagsFlagCap AssistsBonus FlagKill CoversBonus SealsBonus DeniedBonus SavesBonusAnnouncerLevelMinYFlagSaveDistanceFlagDeniedDistanceFlagCoverVisibleDistanceFlagCoverHiddenDistancebSuddenDeathOverTime ClassName SmartCTFGameGameClassNameTGPDMG StrPropertyClassPropertyObjectProperty AdminUser AdminPassFloatProperty BoolProperty IntProperty BytePropertyEUTDeathMatchPlus>…–€ˆ€‰€‰€ˆ@@5@M@€ˆU@Z' jP@@! €‰N‘7@C@-@V&@(@)@*@%@,@6@.@/@2@@@@3@$@+@8@9@:@;@<@=@4@B@€@0@G‘A‘ @O@D@K@Q@@L€@n€ˆL@1@E@^™F@G@H@Y‘#@@ h€ˆS@@ `@€ˆQ€@€ˆ@XO‡e„C€‰b†€ˆ]€@liJ€‰ €ˆ@W€‰g€@to©W˜ho‹PageoptionsWŠIndexURImain_menuWŠMainURIhWšp?/main.uhtmW¥ qkµ+Xnk‹PageoptionsJŠHomeURImain?Page=HomeJ%ŠOptionsURImain?Page=optionsJ'ŠmessagesURImain?Page=messagesJ-ŠRestartURImain?Page=options_restartJšp?/main_menu.uhtmJ¥ f€‰ws ¡]V3fšp?/menu.uhtmf¥ \€‰rÂÕY­0Ë{‹Apply> w SMARTCTFGAME-K‹HitSoundsfalse„-¸--K‹CheckDefaultsfalse„-·--K‹EnhancedSpreesfalse„-Ì--K‹EnhancedMessagesfalse„-Ë--K‹ShowIPSfalse„-Ê--K‹LogModsfalse„-É--K‹DemoRequestfalse„-¹--'K‹TeamBeaconfalse„-À-'-K$‹EnhancedDeathMessagesfalse„-¾--K‹bKickSpeedHackfalse„-º--K‹bReportfalse„-»--K‹bAutoTauntsfalse„-½--K‹bAntiTimerfalse„-¿-- K‹bStatLinkfalse„-Á- -!K#‹bAlwaysRecordTourneyfalse„-Â-!-K‹bKickMinYfalse„-Ã--K‹bNoOverTimefalse„-Ä--K‹bScoreBoardEfffalse„-¼--K‹bIpToCountryfalse„-Å-- K ‹bUsesCustomWeaponfalse„-Æ- - K‹bNoFlockPawnsfalse„-Ç- -UK‹bNoDroppedFlagsfalse„-È-U1‹RedTeamName„ñ12‹BlueTeamName„ò2 (‹IpToCountryTexturePackagefalse„ô ‹CustomWeaponNamefalse„ó *‹AnnouncerLevelR„« SúJ %„«=J M#‹FlagCapR„¶MSúJM%„¶=JME(‹AssistsBonusR„µESúJE%„µ=JED$‹FlagKillR„´DSúJD%„´=JDO'‹CoversBonusR„³OSúJO%„³=JOF&‹SealsBonusR„®FSúJF%„®=JFK'‹DeniedBonusR„­KSúJK%„­=JKL&‹SavesBonusR„¬LSúJL%„¬=JL)‹TraceDistanceS„œSúJ%„œJ ‹MinYU„¤SúDL%„¤L"‹SetFOVR„¨Sú:I%„¨I‹MessageOfTheDay„õP,‹FlagSaveDistanceU„¡PSúDLP%„¡LPG.‹FlagDeniedDistanceU„¯GSúDLG%„¯LGQ4‹FlagCoverVisibleDistanceU„QSúDLQ%„LQH3‹FlagCoverHiddenDistanceU„²HSúDLH%„²LHË ‚EUTTEAMGAMEPLUS-K‹HitSoundsfalse†-û--K‹CheckDefaultsfalse†-ú--K‹EnhancedSpreesfalse†-ö--K‹EnhancedMessagesfalse†-÷--K‹ShowIPSfalse†-ø--K‹LogModsfalse†-ù--K‹DemoRequestfalse†-ü--'K‹TeamBeaconfalse†-À-'-K$‹EnhancedDeathMessagesfalse†-Â--K‹bKickSpeedHackfalse†-ý--K‹bReportfalse†-þ--K‹bAutoTauntsfalse†-Á--K‹bAntiTimerfalse†-ÿ-- K‹bStatLinkfalse†-Ä- -!K#‹bAlwaysRecordTourneyfalse†-Å-!-K‹bKickMinYfalse†-Æ--K‹bNoOverTimefalse†-Ç--K‹bScoreBoardEfffalse†-Ã--K‹bIpToCountryfalse†-È-- K ‹bUsesCustomWeaponfalse†-É- -ZK#‹bSuddenDeathOverTimefalse†-Ê-Z- K‹bNoFlockPawnsfalse†-Ë- 1‹RedTeamName†é12‹BlueTeamName†ê2 (‹IpToCountryTexturePackagefalse†ì ‹CustomWeaponNamefalse†ë *‹AnnouncerLevelR†£ SúJ %†£=J )‹TraceDistanceS†ŸSúJ%†ŸJ ‹MinYU†¦SúDL%†¦L"‹SetFOVR†§Sú:I%†§I‹MessageOfTheDay†íË ÈEUTDEATHMATCHPLUS-K‹HitSoundsfalse‡-ó--K‹CheckDefaultsfalse‡-ò--K‹EnhancedSpreesfalse‡-î--K‹EnhancedMessagesfalse‡-ï--K‹ShowIPSfalse‡-ð--K‹LogModsfalse‡-ñ--K‹DemoRequestfalse‡-ô--K$‹EnhancedDeathMessagesfalse‡-û--VK‹bLeaderBeaconfalse‡-ù-V-K‹bKickSpeedHackfalse‡-õ--K‹bReportfalse‡-ö--K‹bAutoTauntsfalse‡-ú--K‹bAntiTimerfalse‡-÷-- K‹bStatLinkfalse‡-ü- -!K#‹bAlwaysRecordTourneyfalse‡-ý-!-K‹bKickMinYfalse‡-þ--K‹bNoOverTimefalse‡-ÿ--K‹bScoreBoardEfffalse‡-ø--K‹bIpToCountryfalse‡-À-- K ‹bUsesCustomWeaponfalse‡-Á- - K‹bNoFlockPawnsfalse‡-Â-  (‹IpToCountryTexturePackagefalse‡Å ‹CustomWeaponNamefalse‡Ã *‹AnnouncerLevelR‡° SúJ %‡°=J )‹TraceDistanceS‡›SúJ%‡›J ‹MinYU‡ SúDL%‡ L"‹SetFOVR‡±Sú:I%‡±I‹MessageOfTheDay‡×Ë ÿÿ> Î%SMARTCTFGAME-ŠHitSounds checkedA-ŠCheckDefaults checkeds- ŠEnhancedSprees checked§-"ŠEnhancedMessages checkedÒ-ŠShowIPS checkedý-ŠLogMods checked, -ŠDemoRequest checkede -'ŠEnhancedDeathMessages checked“ -'ŠTeamBeacon checkedÅ - ŠbKickSpeedHack checkedð -ŠbReport checked!-ŠbAutoTaunts checkedM!-ŠbAntiTimer checkedz!- ŠbStatLink checked²!-!&ŠbAlwaysRecordTourney checkedß!-ŠbKickMinY checked"-ŠbNoOverTime checked@"- ŠbScoreBoardEff checkedp"-ŠbIpToCountry checked¥"- #ŠbUsesCustomWeapon checkedÖ"- ŠbNoFlockPawns checked #-U!ŠbNoDroppedFlags checkedŠRedTeamName1ŠBlueTeamName2&ŠIpToCountryTexturePackage ŠCustomWeaponNameŠAnnouncerLevel ŠFlagCapMŠAssistsBonusEŠFlagKillDŠCoversBonusOŠSealsBonusFŠDeniedBonusKŠSavesBonusLŠTraceDistanceŠMinYŠSetFOVŠMessageOfTheDayŠFlagSaveDistancePŠFlagDeniedDistanceG%ŠFlagCoverVisibleDistanceQ$ŠFlagCoverHiddenDistanceHS0 J+EUTTEAMGAMEPLUS&-ŠHitSounds checked@&-ŠCheckDefaults checkedr&- ŠEnhancedSprees checked¦&-"ŠEnhancedMessages checkedÑ&-ŠShowIPS checkedü&-ŠLogMods checked+'-ŠDemoRequest checkedd'-'ŠEnhancedDeathMessages checked’'-'ŠTeamBeacon checkedÄ'- ŠbKickSpeedHack checkedï'-ŠbReport checked(-ŠbAutoTaunts checkedL(-ŠbAntiTimer checkedy(- ŠbStatLink checked±(-!&ŠbAlwaysRecordTourney checkedÞ(-ŠbKickMinY checked )-ŠbNoOverTime checked?)- ŠbScoreBoardEff checkedo)-ŠbIpToCountry checked¤)- #ŠbUsesCustomWeapon checkedÜ)-Z&ŠbSuddenDeathOverTime checked *- ŠbNoFlockPawns checkedŠRedTeamName1ŠBlueTeamName2&ŠIpToCountryTexturePackage ŠCustomWeaponNameŠAnnouncerLevel ŠTraceDistanceŠMinYŠSetFOVŠMessageOfTheDayS0 P0EUTDEATHMATCHPLUS+-ŠHitSounds checked¾+-ŠCheckDefaults checkedð+- ŠEnhancedSprees checked$,-"ŠEnhancedMessages checkedO,-ŠShowIPS checkedz,-ŠLogMods checked©,-ŠDemoRequest checkedâ,-'ŠEnhancedDeathMessages checked--VŠbLeaderBeacon checkedE-- ŠbKickSpeedHack checkedp--ŠbReport checkedŸ--ŠbAutoTaunts checkedÍ--ŠbAntiTimer checkedú-- ŠbStatLink checked2.-!&ŠbAlwaysRecordTourney checked_.-ŠbKickMinY checkedŽ.-ŠbNoOverTime checkedÀ.- ŠbScoreBoardEff checkedð.-ŠbIpToCountry checked%/- #ŠbUsesCustomWeapon checkedV/- ŠbNoFlockPawns checked&ŠIpToCountryTexturePackage ŠCustomWeaponNameŠAnnouncerLevel ŠTraceDistanceŠMinYŠSetFOVŠMessageOfTheDayS0 ÿÿŠPostActionoptionsšp?/options.uhtmÍ ~u ™žU`\ŠMenuURImenu\ŠMainURImain\šp?/root.uhtm @@v 5 Åß {‹Apply7‹EnforcerKillMessage8‹BioKillMessage9‹ShockRifleKillMessage:‹PulseGunKillMessage;‹RipperKillMessage<‹MiniGunKillMessage=‹FlakCannonKillMessage4#‹RocketLauncherKillMessage3 ‹SniperRifleKillMessage@!‹CustomWeaponKillMessage0‹AerialKillBio/‹AerialKillRipper.‹AerialKillFlak6‹AerialKillRockets+‹AerialKillSniper*‹AerialKillSuper)‹AerialKillTrans(‹AerialKillCombo&‹AerialKillEnforcer-‹AerialKillPulse,‹AerialKillMini%‹AerialKillPiston$‹ImpactKillMessage5‹TransKillMessageC‹AerialKillCustom> ëSMARTCTFGAME„ž$„Ø5„Ú7„Û8„Ü9„Ý:„Þ;„ß<„à=„á4„â3„ã@„Æ0„å/„æ.„ç6„è+„é*„ê)„ë(„ì&„í-„î,„ï%„ž$„ðC s EUTTEAMGAMEPLUS†Ñ$†Ð5†Ò7†Ó8†Ô9†Õ:†Ö;†×<†Ø=†Ù4†Ú3†Û@†Ü0†Ý/†Þ.†ß6†à+†á*†â)†ã(†ä&†å-†æ,†ç%†èC ý EUTDEATHMATCHPLUS‡È$‡Ç5‡É7‡Ê8‡Ë9‡Ì:‡Í;‡Î<‡Ï=‡Ð4‡Ñ3‡Ò@‡Ó0‡Ô/‡Õ.‡Ö6‡Í+‡Î*‡Ï)‡Ó(‡Ô&‡Õ-‡Ö,‡Ù%‡ÏC ÿÿ ŠEnforcerKillMessage7ŠBioKillMessage8"ŠShockRifleKillMessage9 ŠPulseGunKillMessage:ŠRipperKillMessage;ŠMiniGunKillMessage<"ŠFlakCannonKillMessage=&ŠRocketLauncherKillMessage4#ŠSniperRifleKillMessage3ŠAerialKillBio0ŠAerialKillRipper/ŠAerialKillFlak.ŠAerialKillRockets6ŠAerialKillSniper+ŠAerialKillSuper*ŠAerialKillTrans)ŠAerialKillCombo(ŠAerialKillEnforcer&ŠAerialKillPulse-ŠAerialKillMini,ŠAerialKillPiston%ŠImpactKillMessage$ŠTransKillMessage5ŠPostActionmessagesšp?/messages.uhtmÍ x@@z@@y} Ì9ñ2”[ppppp€V”~V”..unr?game=V”Ì©?mutator=(_ŠTitlePlease Wait_{ŠMessageThe server is now restarting the current map. Please allow 10-15 seconds while the server changes levels._šp?/options.uhtm _€‰ÝD"lãPÙ¥"  !ŠBugAddresshelp@help.net"Ü& X¥ troot " ¥ menu " ¥ ¬main" ¥ Ímain_menu" ¥ ìoptions" ¥ options_restart " ¥ /home " ¥ Omessages " ¥ ÿÿ JERROR: Page not found or enabled.×"   —â |@ Ôñòm š/Web m€‰[€aß·óA*”!×Engine.Mutator%XS,‚{X –a,ú#* ‘^=~S,’š:^ÿÿÿÿ#ÐS®#ЀS:^#ªXÛrA*A#ôAA#¥a”%×Engine.MutatoraXS1B*N”ÌÞä wN*#AAVN©Èw#*±rB*B#ÅB #õç¨Unknown Mutator in use: VN©NNäY A€ˆHd_yO„[ —Ø` —Ù€„„|[{ëdÛë[(„|`{ëdÚë`(' {@@E@@F@@N–9> áSMARTCTFGAME-„-¸-„-·-„-Ì-„-Ë-„-Ê-„-É-„-¹-'„-À-„-¾-„-º-„-»-„-½- „-Á-!„-Â-„-Ã-„-Ä-„-¼-„-Å- „-Æ-„-¿- „-Ç-U„-È5„Ø$„ž7„Ú8„Û9„Ü:„Ý;„Þ<„ß=„à4„á3„â@„ã0„Æ/„å.„æ6„ç+„è*„é)„ê(„ë&„ì-„í,„î%„ïC„ð1„ñ2„ò„ó „ô„õU„¤S„œ R„«MR„¶ER„µDR„´OR„³FR„®KR„­LR„¬R„¨PU„¡GU„¯QU„HU„²   EUTTEAMGAMEPLUS-†-û-†-ú-†-ö-†-÷-†-ø-†-ù-†-ü-'†-À-†-Â-†-ý-†-þ-†-Á- †-Ä-!†-Å-†-Æ-†-Ç-†-Ã-†-È- †-É-†-ÿ-Z†-Ê- †-Ë7†Ò8†Ó9†Ô:†Õ;†Ö<†×=†Ø4†Ù3†ÚC†è@†Û0†Ü/†Ý.†Þ6†ß+†à*†á)†â(†ã&†ä-†å,†æ%†ç$†Ñ5†Ð1†é2†ê †ì†ë†íU†¦S†Ÿ R†£R†§ EUTDEATHMATCHPLUS-‡-ó-‡-ò-‡-î-‡-ï-‡-ð-‡-ñ-‡-ô-V‡-ù-‡-û-‡-õ-‡-ö-‡-ú- ‡-ü-!‡-ý-‡-þ-‡-ÿ-‡-ø-‡-À- ‡-Á-‡-÷- ‡-Â7‡É8‡Ê9‡Ë:‡Ì;‡Í<‡Î=‡Ï4‡Ð3‡ÑC‡Ï@‡Ò0‡Ó/‡Ô.‡Õ6‡Ö+‡Í*‡Î)‡Ï(‡Ó&‡Ô-‡Õ,‡Ö%‡Ù$‡È5‡Ç ‡Å‡Ã‡×U‡ S‡› R‡°R‡± ÿÿ BJý÷€rB*YBªRBÑxwR*YppY,RªRRÑ6Y R€@Cçclass EUTServerAdmin expands WebApplication config; var localized string MyRoot; var class GameClass; var string GameClassName; var ListItem IncludeMutators; var ListItem ExcludeMutators; var config string MenuPage; var config string RootPage; var config string CurrentPage; var config string DefaultsPage; var config string DefaultBG; var config string HighlightedBG; var bool bHitSounds, bCheckDefaults, bEnhancedSprees, bEnhancedMessages, bShowIPS, bLogMods, bDemoRequest, bTeamBeacon, bLeaderBeacon, bAutoTaunts, bAntiTimer, bIpToCountry, bEnhancedDeathMessages, bKickSpeedHack, bReport, bCTF, bTDM, bDM, bStatLink, bAlwaysRecordTourney, bKickMinY, bNoOverTime, bScoreBoardEff, bUsesCustomWeapon, bSuddenDeathOverTime, bNoFlockPawns, bNoDroppedFlags; var string AnnouncerLevel, FlagCap, AssistsBonus, FlagKill, CoversBonus, SealsBonus, DeniedBonus, SavesBonus, RedTeamName, BlueTeamName, TraceDistance, MinY, TransKillMessage, ImpactKillMessage, EnforcerKillMessage, BioKillMessage, ShockRifleKillMessage, PulseGunKillMessage, RipperKillMessage, MiniGunKillMessage, FlakCannonKillMessage, RocketLauncherKillMessage, SniperRifleKillMessage, CustomWeaponKillMessage, AerialKillBio, AerialKillRipper, AerialKillFlak, AerialKillRockets, AerialKillSniper, AerialKillSuper, AerialKillTrans, AerialKillCombo, AerialKillEnforcer, AerialKillPulse, AerialKillMini, AerialKillPiston, AerialKillCustom, IpToCountryTexturePackage, CustomWeaponName, SetFOV, MessageOfTheDay, FlagSaveDistance, FlagDeniedDistance, FlagCoverVisibleDistance, FlagCoverHiddenDistance; event Init() { local SmartCTFGame MyGame; local EUTTeamGamePlus TGP; local EUTDeathMatchPlus DMG; local string ClassName; Super.Init(); bCTF = false; bTDM = false; bDM = false; foreach Level.AllActors(class'SmartCTFGame', MyGame) { if(MyGame != none) { GameClass = class(DynamicLoadObject("EUTSource.SmartCTFGame", class'Class')); GameClassName = GetClassName(string(GameClass)); log("EUT CTF Web Server Initialized",'EUT'); } else log("EUT CTF Web Server Failure",'Warning'); } foreach Level.AllActors(class'EUTTeamGamePlus', TGP) { if(TGP != none) { GameClass = class(DynamicLoadObject("EUTSource.EUTTeamGamePlus", class'Class')); GameClassName = GetClassName(string(GameClass)); log("EUT TDM Web Server Initialized",'EUT'); } else log("EUT TDM Web Server Failure",'Warning'); } foreach Level.AllActors(class'EUTDeathMatchPlus', DMG) { if(DMG != none) { GameClass = class(DynamicLoadObject("EUTSource.EUTDeathMatchPlus", class'Class')); GameClassName = GetClassName(string(GameClass)); log("EUT DM Web Server Initialized",'EUT'); } else log("EUT DM Web Server Failure",'Warning'); } LoadDefaults(); LoadMutators(); } function string GetClassName(string ClassName) { ClassName = mid(ClassName, instr(ClassName, ".") + 1); ClassName = caps(ClassName); return ClassName; } function LoadDefaults() { switch(GameClassName) { case "SMARTCTFGAME": bHitSounds = class(GameClass).default.bHitSounds; bCheckDefaults = class(GameClass).default.bCheckDefaults; bEnhancedSprees = class(GameClass).default.bEnhancedSprees; bEnhancedMessages = class(GameClass).default.bEnhancedMessages; bShowIPS = class(GameClass).default.bShowIPS; bLogMods = class(GameClass).default.bLogMods; bDemoRequest = class(GameClass).Default.bDemoRequest; bTeamBeacon = class(GameClass).Default.bTeamBeacon; bEnhancedDeathMessages = class(GameClass).Default.bEnhancedDeathMessages; bKickSpeedHack = class(GameClass).Default.bKickSpeedHack; bReport = class(GameClass).Default.bReport; bAutoTaunts = class(GameClass).Default.bAutoTaunts; bStatLink = class(GameClass).Default.bStatLink; bAlwaysRecordTourney = class(GameClass).default.bAlwaysRecordTourney; bKickMinY = class(GameClass).default.bKickMinY; bNoOverTime = class(GameClass).Default.bNoOverTime; bScoreBoardEff = class(GameClass).Default.bScoreBoardEff; bIpToCountry = class(GameClass).Default.bIpToCountry; bUsesCustomWeapon = class(GameClass).Default.bUsesCustomWeapon; bAntiTimer = class(GameClass).Default.bAntiTimer; bNoFlockPawns = class(GameClass).Default.bNoFlockPawns; bNoDroppedFlags = class(GameClass).Default.bNoDroppedFlags; TransKillMessage = class(GameClass).default.TransKillMessage; ImpactKillMessage = class(GameClass).default.ImpactKillMessage; EnforcerKillMessage = class(GameClass).default.EnforcerKillMessage; BioKillMessage = class(GameClass).default.BioKillMessage; ShockRifleKillMessage = class(GameClass).default.ShockRifleKillMessage; PulseGunKillMessage = class(GameClass).default.PulseGunKillMessage; RipperKillMessage = class(GameClass).default.RipperKillMessage; MiniGunKillMessage = class(GameClass).default.MiniGunKillMessage; FlakCannonKillMessage = class(GameClass).default.FlakCannonKillMessage; RocketLauncherKillMessage = class(GameClass).default.RocketLauncherKillMessage; SniperRifleKillMessage = class(GameClass).default.SniperRifleKillMessage; CustomWeaponKillMessage = class(GameClass).Default.CustomWeaponKillMessage; AerialKillBio = class(GameClass).default.AerialKillBio; AerialKillRipper = class(GameClass).default.AerialKillRipper; AerialKillFlak = class(GameClass).default.AerialKillFlak; AerialKillRockets = class(GameClass).default.AerialKillRockets; AerialKillSniper = class(GameClass).default.AerialKillSniper; AerialKillSuper = class(GameClass).default.AerialKillSuper; AerialKillTrans = class(GameClass).default.AerialKillTrans; AerialKillCombo = class(GameClass).default.AerialKillCombo; AerialKillEnforcer = class(GameClass).default.AerialKillEnforcer; AerialKillPulse = class(GameClass).default.AerialKillPulse; AerialKillMini = class(GameClass).default.AerialKillMini; AerialKillPiston = class(GameClass).default.AerialKillPiston; AerialKillCustom = class(GameClass).Default.AerialKillCustom; RedTeamName = class(GameClass).default.RedTeamName; BlueTeamName = class(GameClass).default.BlueTeamName; CustomWeaponName = class(GameClass).Default.CustomWeaponName; IpToCountryTexturePackage = class(GameClass).Default.IpToCountryTexturePackage; MessageOfTheDay = class(GameClass).Default.MessageOfTheDay; MinY = String(class(GameClass).Default.MinY); TraceDistance = String(class(GameClass).Default.TraceDistance); AnnouncerLevel = String(class(GameClass).Default.AnnouncerLevel); FlagCap = String(class(GameClass).Default.FlagCap); AssistsBonus = String(class(GameClass).Default.AssistsBonus); FlagKill = String(class(GameClass).Default.FlagKill); CoversBonus = String(class(GameClass).Default.CoversBonus); SealsBonus = String(class(GameClass).Default.SealsBonus); DeniedBonus = String(class(GameClass).Default.DeniedBonus); SavesBonus = String(class(GameClass).Default.SavesBonus); SetFOV = String(class(GameClass).Default.SetFOV); FlagSaveDistance = String(class(GameClass).Default.FlagSaveDistance); FlagDeniedDistance = String(class(GameClass).Default.FlagDeniedDistance); FlagCoverVisibleDistance = String(class(GameClass).Default.FlagCoverVisibleDistance); FlagCoverHiddenDistance = String(class(GameClass).Default.FlagCoverHiddenDistance); break; case "EUTTEAMGAMEPLUS": bHitSounds = class(GameClass).default.bHitSounds; bCheckDefaults = class(GameClass).default.bCheckDefaults; bEnhancedSprees = class(GameClass).default.bEnhancedSprees; bEnhancedMessages = class(GameClass).default.bEnhancedMessages; bShowIPS = class(GameClass).default.bShowIPS; bLogMods = class(GameClass).default.bLogMods; bDemoRequest = class(GameClass).Default.bDemoRequest; bTeamBeacon = class(GameClass).Default.bTeamBeacon; bEnhancedDeathMessages = class(GameClass).Default.bEnhancedDeathMessages; bKickSpeedHack = class(GameClass).Default.bKickSpeedHack; bReport = class(GameClass).Default.bReport; bAutoTaunts = class(GameClass).Default.bAutoTaunts; bStatLink = class(GameClass).default.bStatLink; bAlwaysRecordTourney = class(GameClass).default.bAlwaysRecordTourney; bKickMinY = class(GameClass).default.bKickMinY; bNoOverTime = class(GameClass).Default.bNoOverTime; bScoreBoardEff = class(GameClass).Default.bScoreBoardEff; bIpToCountry = class(GameClass).Default.bIpToCountry; bUsesCustomWeapon = class(GameClass).Default.bUsesCustomWeapon; bAntiTimer = class(GameClass).Default.bAntiTimer; bSuddenDeathOverTime = class(GameClass).Default.bSuddenDeathOverTime; bNoFlockPawns = class(GameClass).Default.bNoFlockPawns; EnforcerKillMessage = class(GameClass).default.EnforcerKillMessage; BioKillMessage = class(GameClass).default.BioKillMessage; ShockRifleKillMessage = class(GameClass).default.ShockRifleKillMessage; PulseGunKillMessage = class(GameClass).default.PulseGunKillMessage; RipperKillMessage = class(GameClass).default.RipperKillMessage; MiniGunKillMessage = class(GameClass).default.MiniGunKillMessage; FlakCannonKillMessage = class(GameClass).default.FlakCannonKillMessage; RocketLauncherKillMessage = class(GameClass).default.RocketLauncherKillMessage; SniperRifleKillMessage = class(GameClass).default.SniperRifleKillMessage; AerialKillCustom = class(GameClass).Default.AerialKillCustom; CustomWeaponKillMessage = class(GameClass).Default.CustomWeaponKillMessage; AerialKillBio = class(GameClass).default.AerialKillBio; AerialKillRipper = class(GameClass).default.AerialKillRipper; AerialKillFlak = class(GameClass).default.AerialKillFlak; AerialKillRockets = class(GameClass).default.AerialKillRockets; AerialKillSniper = class(GameClass).default.AerialKillSniper; AerialKillSuper = class(GameClass).default.AerialKillSuper; AerialKillTrans = class(GameClass).default.AerialKillTrans; AerialKillCombo = class(GameClass).default.AerialKillCombo; AerialKillEnforcer = class(GameClass).default.AerialKillEnforcer; AerialKillPulse = class(GameClass).default.AerialKillPulse; AerialKillMini = class(GameClass).default.AerialKillMini; AerialKillPiston = class(GameClass).default.AerialKillPiston; ImpactKillMessage = class(GameClass).default.ImpactKillMessage; TransKillMessage = class(GameClass).default.TransKillMessage; RedTeamName = class(GameClass).default.RedTeamName; BlueTeamName = class(GameClass).default.BlueTeamName; IpToCountryTexturePackage = class(GameClass).default.IpToCountryTexturePackage; CustomWeaponName = class(GameClass).Default.CustomWeaponName; MessageOfTheDay = class(GameClass).Default.MessageOfTheDay; MinY = String(class(GameClass).Default.MinY); TraceDistance = String(class(GameClass).Default.TraceDistance); AnnouncerLevel = String(class(GameClass).Default.AnnouncerLevel); SetFOV = String(class(GameClass).Default.SetFOV); break; case "EUTDEATHMATCHPLUS": bHitSounds = class(GameClass).default.bHitSounds; bCheckDefaults = class(GameClass).default.bCheckDefaults; bEnhancedSprees = class(GameClass).default.bEnhancedSprees; bEnhancedMessages = class(GameClass).default.bEnhancedMessages; bShowIPS = class(GameClass).default.bShowIPS; bLogMods = class(GameClass).default.bLogMods; bDemoRequest = class(GameClass).Default.bDemoRequest; bLeaderBeacon = class(GameClass).Default.bLeaderBeacon; bEnhancedDeathMessages = class(GameClass).Default.bEnhancedDeathMessages; bKickSpeedHack = class(GameClass).Default.bKickSpeedHack; bReport = class(GameClass).Default.bReport; bAutoTaunts = class(GameClass).Default.bAutoTaunts; bStatLink = class(GameClass).default.bStatLink; bAlwaysRecordTourney = class(GameClass).default.bAlwaysRecordTourney; bKickMinY = class(GameClass).default.bKickMinY; bNoOverTime = class(GameClass).Default.bNoOverTime; bScoreBoardEff = class(GameClass).Default.bScoreBoardEff; bIpToCountry = class(GameClass).Default.bIpToCountry; bUsesCustomWeapon = class(GameClass).Default.bUsesCustomWeapon; bAntiTimer = class(GameClass).Default.bAntiTimer; bNoFlockPawns = class(GameClass).Default.bNoFlockPawns; EnforcerKillMessage = class(GameClass).default.EnforcerKillMessage; BioKillMessage = class(GameClass).default.BioKillMessage; ShockRifleKillMessage = class(GameClass).default.ShockRifleKillMessage; PulseGunKillMessage = class(GameClass).default.PulseGunKillMessage; RipperKillMessage = class(GameClass).default.RipperKillMessage; MiniGunKillMessage = class(GameClass).default.MiniGunKillMessage; FlakCannonKillMessage = class(GameClass).default.FlakCannonKillMessage; RocketLauncherKillMessage = class(GameClass).default.RocketLauncherKillMessage; SniperRifleKillMessage = class(GameClass).default.SniperRifleKillMessage; AerialKillCustom = class(GameClass).Default.AerialKillCustom; CustomWeaponKillMessage = class(GameClass).Default.CustomWeaponKillMessage; AerialKillBio = class(GameClass).default.AerialKillBio; AerialKillRipper = class(GameClass).default.AerialKillRipper; AerialKillFlak = class(GameClass).default.AerialKillFlak; AerialKillRockets = class(GameClass).default.AerialKillRockets; AerialKillSniper = class(GameClass).default.AerialKillSniper; AerialKillSuper = class(GameClass).default.AerialKillSuper; AerialKillTrans = class(GameClass).default.AerialKillTrans; AerialKillCombo = class(GameClass).default.AerialKillCombo; AerialKillEnforcer = class(GameClass).default.AerialKillEnforcer; AerialKillPulse = class(GameClass).default.AerialKillPulse; AerialKillMini = class(GameClass).default.AerialKillMini; AerialKillPiston = class(GameClass).default.AerialKillPiston; ImpactKillMessage = class(GameClass).default.ImpactKillMessage; TransKillMessage = class(GameClass).default.TransKillMessage; IpToCountryTexturePackage = class(GameClass).default.IpToCountryTexturePackage; CustomWeaponName = class(GameClass).Default.CustomWeaponName; MessageOfTheDay = class(GameClass).Default.MessageOfTheDay; MinY = String(class(GameClass).Default.MinY); TraceDistance = String(class(GameClass).Default.TraceDistance); AnnouncerLevel = String(class(GameClass).Default.AnnouncerLevel); SetFOV = String(class(GameClass).Default.SetFOV); break; } } function bool AuthenticateAdmin(WebRequest Request, WebResponse Response) { local string AdminUser, AdminPass; AdminUser = class'UTServerAdmin'.default.AdminUserName; AdminPass = class'UTServerAdmin'.default.AdminPassword; if((AdminUser ~= "" || (Caps(Request.UserName) != Caps(AdminUser))) || (AdminPass ~= "" || (Caps(Request.Password) != Caps(AdminPass)))) { return false; } return true; } event Query(WebRequest Request, WebResponse Response) { if(AuthenticateAdmin(Request, Response)) { response.Subst("BugAddress", "help@help.net"); switch(Mid(Request.URI, 1)) { case "": break; case "root": QueryRoot(Request, Response); break; case "menu": QueryMenu(Request, Response); break; case "main": QueryMain(Request, Response); break; case "main_menu": QueryMainMenu(Request, Response); break; case "options": QueryOptions(Request, Response); break; case "options_restart": QueryRestartPage(Request, Response); break; case "home": QueryHomePage(Request, Response); break; case "messages": QueryMessages(Request, Response); break; default: Response.SendText("ERROR: Page not found or enabled."); } } if(!AuthenticateAdmin(Request, Response)) { Response.FailAuthentication(class'UTServerAdmin'.default.AdminRealm); } } function QueryRoot(WebRequest Request, WebResponse Response) { Response.Subst("MenuURI", "menu"); Response.Subst("MainURI", "main"); Response.IncludeUHTM(MyRoot$"/root.uhtm"); } function QueryMenu(WebRequest Request, WebResponse Response) { Response.IncludeUHTM(MyRoot$"/menu.uhtm"); Response.ClearSubst(); } function QueryMain(WebRequest Request, WebResponse Response) { local string page; page = Request.GetVariable("Page", "options"); Response.Subst("IndexURI", "main_menu"); Response.Subst("MainURI", Page); Response.IncludeUHTM(MyRoot$"/main.uhtm"); Response.ClearSubst(); } function QueryMainMenu(WebRequest Request, WebResponse Response) { local string page; page = Request.GetVariable("Page", "options"); Response.Subst("HomeURI", "main?Page=Home"); Response.Subst("OptionsURI", "main?Page=options"); Response.Subst("messagesURI", "main?Page=messages"); Response.Subst("RestartURI", "main?Page=options_restart"); Response.IncludeUHTM(MyRoot$"/main_menu.uhtm"); Response.ClearSubst(); } function QueryOptions(WebRequest Request, WebResponse Response) { LoadDefaults(); if(Request.GetVariable("Apply", "") != "") { switch(GameClassName) { case "SMARTCTFGAME": bHitSounds = bool(Request.GetVariable("HitSounds", "false")); class(GameClass).default.bHitSounds = bHitSounds; bCheckDefaults = bool(Request.GetVariable("CheckDefaults", "false")); class(GameClass).default.bCheckDefaults = bCheckDefaults; bEnhancedSprees = bool(Request.GetVariable("EnhancedSprees", "false")); class(GameClass).default.bEnhancedSprees = bEnhancedSprees; bEnhancedMessages = bool(Request.GetVariable("EnhancedMessages", "false")); class(GameClass).Default.bEnhancedMessages = bEnhancedMessages; bShowIPS = bool(Request.GetVariable("ShowIPS", "false")); class(GameClass).Default.bShowIPS = bShowIPS; bLogMods = bool(Request.GetVariable("LogMods", "false")); class(GameClass).Default.bLogMods = bLogMods; bDemoRequest = bool(Request.GetVariable("DemoRequest", "false")); class(GameClass).Default.bDemoRequest = bDemoRequest; bTeamBeacon = bool(Request.GetVariable("TeamBeacon", "false")); class(GameClass).Default.bTeamBeacon = bTeamBeacon; bEnhancedDeathMessages = bool(Request.GetVariable("EnhancedDeathMessages", "false")); class(GameClass).Default.bEnhancedDeathMessages = bEnhancedDeathMessages; bKickSpeedHack = bool(Request.GetVariable("bKickSpeedHack", "false")); class(GameClass).Default.bKickSpeedHack = bKickSpeedHack; bReport = bool(Request.GetVariable("bReport", "false")); class(GameClass).Default.bReport = bReport; bAutoTaunts = bool(Request.GetVariable("bAutoTaunts", "false")); class(GameClass).Default.bAutoTaunts = bAutoTaunts; bAntiTimer = bool(Request.GetVariable("bAntiTimer", "false")); class(GameClass).Default.bAntiTimer = bAntiTimer; bStatLink = bool(Request.GetVariable("bStatLink", "false")); class(GameClass).Default.bStatLink = bStatLink; bAlwaysRecordTourney = bool(Request.GetVariable("bAlwaysRecordTourney", "false")); class(GameClass).Default.bAlwaysRecordTourney = bAlwaysRecordTourney; bKickMinY = bool(Request.GetVariable("bKickMinY", "false")); class(GameClass).Default.bKickMinY = bKickMinY; bNoOverTime = bool(Request.GetVariable("bNoOverTime", "false")); class(GameClass).Default.bNoOverTime = bNoOverTime; bScoreBoardEff = bool(Request.GetVariable("bScoreBoardEff", "false")); class(GameClass).Default.bScoreBoardEff = bScoreBoardEff; bIpToCountry = bool(Request.GetVariable("bIpToCountry", "false")); class(GameClass).Default.bIpToCountry = bIpToCountry; bUsesCustomWeapon = bool(Request.GetVariable("bUsesCustomWeapon", "false")); class(GameClass).Default.bUsesCustomWeapon = bUsesCustomWeapon; bNoFlockPawns = bool(Request.GetVariable("bNoFlockPawns", "false")); class(GameClass).Default.bNoFlockPawns = bNoFlockPawns; bNoDroppedFlags = bool(Request.GetVariable("bNoDroppedFlags", "false")); class(GameClass).Default.bNoDroppedFlags = bNoDroppedFlags; RedTeamName = Request.GetVariable("RedTeamName", ""); class(GameClass).Default.RedTeamName = RedTeamName; BlueTeamName = Request.GetVariable("BlueTeamName", ""); class(GameClass).Default.BlueTeamName = BlueTeamName; IpToCountryTexturePackage = Request.GetVariable("IpToCountryTexturePackage","false"); class(GameClass).Default.IpToCountryTexturePackage = IpToCountryTexturePackage; CustomWeaponName = Request.GetVariable("CustomWeaponName", "false"); class(GameClass).Default.CustomWeaponName = CustomWeaponName; AnnouncerLevel = Request.GetVariable("AnnouncerLevel", String(class(GameClass).Default.AnnouncerLevel)); AnnouncerLevel = String(max(int(AnnouncerLevel), 0)); class(GameClass).Default.AnnouncerLevel = int(AnnouncerLevel); FlagCap = Request.GetVariable("FlagCap", String(class(GameClass).Default.FlagCap)); FlagCap = String(max(int(FlagCap), 0)); class(GameClass).Default.FlagCap = int(FlagCap); AssistsBonus = Request.GetVariable("AssistsBonus", String(class(GameClass).Default.AssistsBonus)); AssistsBonus = String(max(int(AssistsBonus), 0)); class(GameClass).Default.AssistsBonus = int(AssistsBonus); FlagKill = Request.GetVariable("FlagKill", String(class(GameClass).Default.FlagKill)); FlagKill = String(max(int(FlagKill), 0)); class(GameClass).Default.FlagKill = int(FlagKill); CoversBonus = Request.GetVariable("CoversBonus", String(class(GameClass).Default.CoversBonus)); CoversBonus = String(max(int(CoversBonus), 0)); class(GameClass).Default.CoversBonus = int(CoversBonus); SealsBonus = Request.GetVariable("SealsBonus", String(class(GameClass).Default.SealsBonus)); SealsBonus = String(max(int(SealsBonus), 0)); class(GameClass).Default.SealsBonus = int(SealsBonus); DeniedBonus = Request.GetVariable("DeniedBonus", String(class(GameClass).Default.DeniedBonus)); DeniedBonus = String(max(int(DeniedBonus), 0)); class(GameClass).Default.DeniedBonus = int(DeniedBonus); SavesBonus = Request.GetVariable("SavesBonus", String(class(GameClass).Default.SavesBonus)); SavesBonus = String(max(int(SavesBonus), 0)); class(GameClass).Default.SavesBonus = int(SavesBonus); TraceDistance = Request.GetVariable("TraceDistance", String(class(GameClass).Default.TraceDistance)); TraceDistance = String(max(int(TraceDistance), 0)); class(GameClass).Default.TraceDistance = int(TraceDistance); MinY = Request.GetVariable("MinY", String(class(GameClass).Default.MinY)); MinY = String(max(float(MinY), 0)); class(GameClass).Default.MinY = float(MinY); SetFOV = Request.GetVariable("SetFOV", String(class(GameClass).Default.SetFOV)); SetFOV = String(max(byte(SetFOV), 0)); class(GameClass).Default.SetFOV = byte(SetFOV); MessageOfTheDay = Request.GetVariable("MessageOfTheDay", ""); class(GameClass).Default.MessageOfTheDay = MessageOfTheDay; FlagSaveDistance = Request.GetVariable("FlagSaveDistance", String(class(GameClass).Default.FlagSaveDistance)); FlagSaveDistance = String(max(float(FlagSaveDistance), 0)); class(GameClass).Default.FlagSaveDistance = float(FlagSaveDistance); FlagDeniedDistance = Request.GetVariable("FlagDeniedDistance", String(class(GameClass).Default.FlagDeniedDistance)); FlagDeniedDistance = String(max(float(FlagDeniedDistance), 0)); class(GameClass).Default.FlagDeniedDistance = float(FlagDeniedDistance); FlagCoverVisibleDistance = Request.GetVariable("FlagCoverVisibleDistance", String(class(GameClass).Default.FlagCoverVisibleDistance)); FlagCoverVisibleDistance = String(max(float(FlagCoverVisibleDistance), 0)); class(GameClass).Default.FlagCoverVisibleDistance = float(FlagCoverVisibleDistance); FlagCoverHiddenDistance = Request.GetVariable("FlagCoverHiddenDistance", String(class(GameClass).Default.FlagCoverHiddenDistance)); FlagCoverHiddenDistance = String(max(float(FlagCoverHiddenDistance), 0)); class(GameClass).Default.FlagCoverHiddenDistance = float(FlagCoverHiddenDistance); break; case "EUTTEAMGAMEPLUS": bHitSounds = bool(Request.GetVariable("HitSounds", "false")); class(GameClass).default.bHitSounds = bHitSounds; bCheckDefaults = bool(Request.GetVariable("CheckDefaults", "false")); class(GameClass).default.bCheckDefaults = bCheckDefaults; bEnhancedSprees = bool(Request.GetVariable("EnhancedSprees", "false")); class(GameClass).default.bEnhancedSprees = bEnhancedSprees; bEnhancedMessages = bool(Request.GetVariable("EnhancedMessages", "false")); class(GameClass).Default.bEnhancedMessages = bEnhancedMessages; bShowIPS = bool(Request.GetVariable("ShowIPS", "false")); class(GameClass).Default.bShowIPS = bShowIPS; bLogMods = bool(Request.GetVariable("LogMods", "false")); class(GameClass).Default.bLogMods = bLogMods; bDemoRequest = bool(Request.GetVariable("DemoRequest", "false")); class(GameClass).Default.bDemoRequest = bDemoRequest; bTeamBeacon = bool(Request.GetVariable("TeamBeacon", "false")); class(GameClass).Default.bTeamBeacon = bTeamBeacon; bEnhancedDeathMessages = bool(Request.GetVariable("EnhancedDeathMessages", "false")); class(GameClass).Default.bEnhancedDeathMessages = bEnhancedDeathMessages; bKickSpeedHack = bool(Request.GetVariable("bKickSpeedHack", "false")); class(GameClass).Default.bKickSpeedHack = bKickSpeedHack; bReport = bool(Request.GetVariable("bReport", "false")); class(GameClass).Default.bReport = bReport; bAutoTaunts = bool(Request.GetVariable("bAutoTaunts", "false")); class(GameClass).Default.bAutoTaunts = bAutoTaunts; bAntiTimer = bool(Request.GetVariable("bAntiTimer", "false")); class(GameClass).Default.bAntiTimer = bAntiTimer; bStatLink = bool(Request.GetVariable("bStatLink", "false")); class(GameClass).Default.bStatLink = bStatLink; bAlwaysRecordTourney = bool(Request.GetVariable("bAlwaysRecordTourney", "false")); class(GameClass).Default.bAlwaysRecordTourney = bAlwaysRecordTourney; bKickMinY = bool(Request.GetVariable("bKickMinY", "false")); class(GameClass).Default.bKickMinY = bKickMinY; bNoOverTime = bool(Request.GetVariable("bNoOverTime", "false")); class(GameClass).Default.bNoOverTime = bNoOverTime; bScoreBoardEff = bool(Request.GetVariable("bScoreBoardEff", "false")); class(GameClass).Default.bScoreBoardEff = bScoreBoardEff; bIpToCountry = bool(Request.GetVariable("bIpToCountry", "false")); class(GameClass).Default.bIpToCountry = bIpToCountry; bUsesCustomWeapon = bool(Request.GetVariable("bUsesCustomWeapon", "false")); class(GameClass).Default.bUsesCustomWeapon = bUsesCustomWeapon; bSuddenDeathOverTime = bool(Request.GetVariable("bSuddenDeathOverTime", "false")); class(GameClass).Default.bSuddenDeathOverTime = bSuddenDeathOverTime; bNoFlockPawns = bool(Request.GetVariable("bNoFlockPawns", "false")); class(GameClass).Default.bNoFlockPawns = bNoFlockPawns; RedTeamName = Request.GetVariable("RedTeamName", ""); class(GameClass).Default.RedTeamName = RedTeamName; BlueTeamName = Request.GetVariable("BlueTeamName", ""); class(GameClass).Default.BlueTeamName = BlueTeamName; IpToCountryTexturePackage = Request.GetVariable("IpToCountryTexturePackage","false"); class(GameClass).Default.IpToCountryTexturePackage = IpToCountryTexturePackage; CustomWeaponName = Request.GetVariable("CustomWeaponName", "false"); class(GameClass).Default.CustomWeaponName = CustomWeaponName; AnnouncerLevel = Request.GetVariable("AnnouncerLevel", String(class(GameClass).Default.AnnouncerLevel)); AnnouncerLevel = String(max(int(AnnouncerLevel), 0)); class(GameClass).Default.AnnouncerLevel = int(AnnouncerLevel); TraceDistance = Request.GetVariable("TraceDistance", String(class(GameClass).Default.TraceDistance)); TraceDistance = String(max(int(TraceDistance), 0)); class(GameClass).Default.TraceDistance = int(TraceDistance); MinY = Request.GetVariable("MinY", String(class(GameClass).Default.MinY)); MinY = String(max(float(MinY), 0)); class(GameClass).Default.MinY = float(MinY); SetFOV = Request.GetVariable("SetFOV", String(class(GameClass).Default.SetFOV)); SetFOV = String(max(byte(SetFOV), 0)); class(GameClass).Default.SetFOV = byte(SetFOV); MessageOfTheDay = Request.GetVariable("MessageOfTheDay", ""); class(GameClass).Default.MessageOfTheDay = MessageOfTheDay; break; case "EUTDEATHMATCHPLUS": bHitSounds = bool(Request.GetVariable("HitSounds", "false")); class(GameClass).default.bHitSounds = bHitSounds; bCheckDefaults = bool(Request.GetVariable("CheckDefaults", "false")); class(GameClass).default.bCheckDefaults = bCheckDefaults; bEnhancedSprees = bool(Request.GetVariable("EnhancedSprees", "false")); class(GameClass).default.bEnhancedSprees = bEnhancedSprees; bEnhancedMessages = bool(Request.GetVariable("EnhancedMessages", "false")); class(GameClass).Default.bEnhancedMessages = bEnhancedMessages; bShowIPS = bool(Request.GetVariable("ShowIPS", "false")); class(GameClass).Default.bShowIPS = bShowIPS; bLogMods = bool(Request.GetVariable("LogMods", "false")); class(GameClass).Default.bLogMods = bLogMods; bDemoRequest = bool(Request.GetVariable("DemoRequest", "false")); class(GameClass).Default.bDemoRequest = bDemoRequest; bEnhancedDeathMessages = bool(Request.GetVariable("EnhancedDeathMessages", "false")); class(GameClass).Default.bEnhancedDeathMessages = bEnhancedDeathMessages; bLeaderBeacon = bool(Request.GetVariable("bLeaderBeacon", "false")); class(GameClass).Default.bLeaderBeacon = bLeaderBeacon; bKickSpeedHack = bool(Request.GetVariable("bKickSpeedHack", "false")); class(GameClass).Default.bKickSpeedHack = bKickSpeedHack; bReport = bool(Request.GetVariable("bReport", "false")); class(GameClass).Default.bReport = bReport; bAutoTaunts = bool(Request.GetVariable("bAutoTaunts", "false")); class(GameClass).Default.bAutoTaunts = bAutoTaunts; bAntiTimer = bool(Request.GetVariable("bAntiTimer", "false")); class(GameClass).Default.bAntiTimer = bAntiTimer; bStatLink = bool(Request.GetVariable("bStatLink", "false")); class(GameClass).Default.bStatLink = bStatLink; bAlwaysRecordTourney = bool(Request.GetVariable("bAlwaysRecordTourney", "false")); class(GameClass).Default.bAlwaysRecordTourney = bAlwaysRecordTourney; bKickMinY = bool(Request.GetVariable("bKickMinY", "false")); class(GameClass).Default.bKickMinY = bKickMinY; bNoOverTime = bool(Request.GetVariable("bNoOverTime", "false")); class(GameClass).Default.bNoOverTime = bNoOverTime; bScoreBoardEff = bool(Request.GetVariable("bScoreBoardEff", "false")); class(GameClass).Default.bScoreBoardEff = bScoreBoardEff; bIpToCountry = bool(Request.GetVariable("bIpToCountry", "false")); class(GameClass).Default.bIpToCountry = bIpToCountry; bUsesCustomWeapon = bool(Request.GetVariable("bUsesCustomWeapon", "false")); class(GameClass).Default.bUsesCustomWeapon = bUsesCustomWeapon; bNoFlockPawns = bool(Request.GetVariable("bNoFlockPawns", "false")); class(GameClass).Default.bNoFlockPawns = bNoFlockPawns; IpToCountryTexturePackage = Request.GetVariable("IpToCountryTexturePackage","false"); class(GameClass).Default.IpToCountryTexturePackage = IpToCountryTexturePackage; CustomWeaponName = Request.GetVariable("CustomWeaponName", "false"); class(GameClass).Default.CustomWeaponName = CustomWeaponName; AnnouncerLevel = Request.GetVariable("AnnouncerLevel", String(class(GameClass).Default.AnnouncerLevel)); AnnouncerLevel = String(max(int(AnnouncerLevel), 0)); class(GameClass).Default.AnnouncerLevel = int(AnnouncerLevel); TraceDistance = Request.GetVariable("TraceDistance", String(class(GameClass).Default.TraceDistance)); TraceDistance = String(max(int(TraceDistance), 0)); class(GameClass).Default.TraceDistance = int(TraceDistance); MinY = Request.GetVariable("MinY", String(class(GameClass).Default.MinY)); MinY = String(max(float(MinY), 0)); class(GameClass).Default.MinY = float(MinY); SetFOV = Request.GetVariable("SetFOV", String(class(GameClass).Default.SetFOV)); SetFOV = String(max(byte(SetFOV), 0)); class(GameClass).Default.SetFOV = byte(SetFOV); MessageOfTheDay = Request.GetVariable("MessageOfTheDay", ""); class(GameClass).Default.MessageOfTheDay = MessageOfTheDay; break; } } switch(GameClassName) { case "SMARTCTFGAME": if (bHitSounds) Response.Subst("HitSounds", " checked"); if (bCheckDefaults) Response.Subst("CheckDefaults", " checked"); if (bEnhancedSprees) Response.Subst("EnhancedSprees", " checked"); if (bEnhancedMessages) Response.Subst("EnhancedMessages", " checked"); if (bShowIPS) Response.Subst("ShowIPS", " checked"); if (bLogMods) Response.Subst("LogMods", " checked"); if (bDemoRequest) Response.Subst("DemoRequest", " checked"); if (bEnhancedDeathMessages) Response.Subst("EnhancedDeathMessages", " checked"); if (bTeamBeacon) Response.Subst("TeamBeacon", " checked"); if (bKickSpeedHack) Response.Subst("bKickSpeedHack", " checked"); if (bReport) Response.Subst("bReport"," checked"); if (bAutoTaunts) Response.Subst("bAutoTaunts"," checked"); if (bAntiTimer) Response.Subst("bAntiTimer"," checked"); if (bStatLink) Response.Subst("bStatLink"," checked"); if (bAlwaysRecordTourney) Response.Subst("bAlwaysRecordTourney", " checked"); if (bKickMinY) Response.Subst("bKickMinY", " checked"); if (bNoOverTime) Response.Subst("bNoOverTime", " checked"); if (bScoreBoardEff) Response.Subst("bScoreBoardEff", " checked"); if (bIpToCountry) Response.Subst("bIpToCountry", " checked"); if (bUsesCustomWeapon) Response.Subst("bUsesCustomWeapon", " checked"); if (bNoFlockPawns) Response.Subst("bNoFlockPawns", " checked"); if (bNoDroppedFlags) Response.Subst("bNoDroppedFlags", " checked"); Response.Subst("RedTeamName", RedTeamName); Response.Subst("BlueTeamName", BlueTeamName); Response.Subst("IpToCountryTexturePackage", IpToCountryTexturePackage); Response.Subst("CustomWeaponName",CustomWeaponName); Response.Subst("AnnouncerLevel", AnnouncerLevel); Response.Subst("FlagCap", FlagCap); Response.Subst("AssistsBonus", AssistsBonus); Response.Subst("FlagKill", FlagKill); Response.Subst("CoversBonus", CoversBonus); Response.Subst("SealsBonus", SealsBonus); Response.Subst("DeniedBonus", DeniedBonus); Response.Subst("SavesBonus", SavesBonus); Response.Subst("TraceDistance", TraceDistance); Response.Subst("MinY", MinY); Response.Subst("SetFOV", SetFOV); Response.Subst("MessageOfTheDay", MessageOfTheDay); Response.Subst("FlagSaveDistance", FlagSaveDistance); Response.Subst("FlagDeniedDistance", FlagDeniedDistance); Response.Subst("FlagCoverVisibleDistance", FlagCoverVisibleDistance); Response.Subst("FlagCoverHiddenDistance", FlagCoverHiddenDistance); break; case "EUTTEAMGAMEPLUS": if (bHitSounds) Response.Subst("HitSounds", " checked"); if (bCheckDefaults) Response.Subst("CheckDefaults", " checked"); if (bEnhancedSprees) Response.Subst("EnhancedSprees", " checked"); if (bEnhancedMessages) Response.Subst("EnhancedMessages", " checked"); if (bShowIPS) Response.Subst("ShowIPS", " checked"); if (bLogMods) Response.Subst("LogMods", " checked"); if (bDemoRequest) Response.Subst("DemoRequest", " checked"); if (bEnhancedDeathMessages) Response.Subst("EnhancedDeathMessages", " checked"); if (bTeamBeacon) Response.Subst("TeamBeacon", " checked"); if (bKickSpeedHack) Response.Subst("bKickSpeedHack", " checked"); if (bReport) Response.Subst("bReport"," checked"); if (bAutoTaunts) Response.Subst("bAutoTaunts"," checked"); if (bAntiTimer) Response.Subst("bAntiTimer"," checked"); if (bStatLink) Response.Subst("bStatLink"," checked"); if (bAlwaysRecordTourney) Response.Subst("bAlwaysRecordTourney", " checked"); if (bKickMinY) Response.Subst("bKickMinY", " checked"); if (bNoOverTime) Response.Subst("bNoOverTime", " checked"); if (bScoreBoardEff) Response.Subst("bScoreBoardEff", " checked"); if (bIpToCountry) Response.Subst("bIpToCountry", " checked"); if (bUsesCustomWeapon) Response.Subst("bUsesCustomWeapon", " checked"); if (bSuddenDeathOverTime) Response.Subst("bSuddenDeathOverTime", " checked"); if (bNoFlockPawns) Response.Subst("bNoFlockPawns", " checked"); Response.Subst("RedTeamName", RedTeamName); Response.Subst("BlueTeamName", BlueTeamName); Response.Subst("IpToCountryTexturePackage", IpToCountryTexturePackage); Response.Subst("CustomWeaponName",CustomWeaponName); Response.Subst("AnnouncerLevel", AnnouncerLevel); Response.Subst("TraceDistance", TraceDistance); Response.Subst("MinY", MinY); Response.Subst("SetFOV", SetFOV); Response.Subst("MessageOfTheDay", MessageOfTheDay); break; case "EUTDEATHMATCHPLUS": if (bHitSounds) Response.Subst("HitSounds", " checked"); if (bCheckDefaults) Response.Subst("CheckDefaults", " checked"); if (bEnhancedSprees) Response.Subst("EnhancedSprees", " checked"); if (bEnhancedMessages) Response.Subst("EnhancedMessages", " checked"); if (bShowIPS) Response.Subst("ShowIPS", " checked"); if (bLogMods) Response.Subst("LogMods", " checked"); if (bDemoRequest) Response.Subst("DemoRequest", " checked"); if (bEnhancedDeathMessages) Response.Subst("EnhancedDeathMessages", " checked"); if (bLeaderBeacon) Response.Subst("bLeaderBeacon", " checked"); if (bKickSpeedHack) Response.Subst("bKickSpeedHack", " checked"); if (bReport) Response.Subst("bReport"," checked"); if (bAutoTaunts) Response.Subst("bAutoTaunts"," checked"); if (bAntiTimer) Response.Subst("bAntiTimer"," checked"); if (bStatLink) Response.Subst("bStatLink"," checked"); if (bAlwaysRecordTourney) Response.Subst("bAlwaysRecordTourney", " checked"); if (bKickMinY) Response.Subst("bKickMinY", " checked"); if (bNoOverTime) Response.Subst("bNoOverTime", " checked"); if (bScoreBoardEff) Response.Subst("bScoreBoardEff", " checked"); if (bIpToCountry) Response.Subst("bIpToCountry", " checked"); if (bUsesCustomWeapon) Response.Subst("bUsesCustomWeapon", " checked"); if (bNoFlockPawns) Response.Subst("bNoFlockPawns", " checked"); Response.Subst("IpToCountryTexturePackage", IpToCountryTexturePackage); Response.Subst("CustomWeaponName",CustomWeaponName); Response.Subst("AnnouncerLevel", AnnouncerLevel); Response.Subst("TraceDistance", TraceDistance); Response.Subst("MinY", MinY); Response.Subst("SetFOV", SetFOV); Response.Subst("MessageOfTheDay", MessageOfTheDay); break; } Response.Subst("PostAction", "options"); Response.IncludeUHTM(MyRoot$"/options.uhtm"); GameClass.Static.StaticSaveConfig(); } //CustomWeaponKillMessage //AerialKillCustom function QueryMessages(WebRequest Request, WebResponse Response) { LoadDefaults(); if(Request.GetVariable("Apply", "") != "") { EnforcerKillMessage = Request.GetVariable("EnforcerKillMessage", ""); BioKillMessage = Request.GetVariable("BioKillMessage", ""); ShockRifleKillMessage = Request.GetVariable("ShockRifleKillMessage", ""); PulseGunKillMessage = Request.GetVariable("PulseGunKillMessage", ""); RipperKillMessage = Request.GetVariable("RipperKillMessage", ""); MiniGunKillMessage = Request.GetVariable("MiniGunKillMessage", ""); FlakCannonKillMessage = Request.GetVariable("FlakCannonKillMessage", ""); RocketLauncherKillMessage = Request.GetVariable("RocketLauncherKillMessage", ""); SniperRifleKillMessage = Request.GetVariable("SniperRifleKillMessage", ""); CustomWeaponKillMessage = Request.GetVariable("CustomWeaponKillMessage", ""); AerialKillBio = Request.GetVariable("AerialKillBio", ""); AerialKillRipper = Request.GetVariable("AerialKillRipper", ""); AerialKillFlak = Request.GetVariable("AerialKillFlak", ""); AerialKillRockets = Request.GetVariable("AerialKillRockets", ""); AerialKillSniper = Request.GetVariable("AerialKillSniper", ""); AerialKillSuper = Request.GetVariable("AerialKillSuper", ""); AerialKillTrans = Request.GetVariable("AerialKillTrans", ""); AerialKillCombo = Request.GetVariable("AerialKillCombo", ""); AerialKillEnforcer = Request.GetVariable("AerialKillEnforcer", ""); AerialKillPulse = Request.GetVariable("AerialKillPulse", ""); AerialKillMini = Request.GetVariable("AerialKillMini", ""); AerialKillPiston = Request.GetVariable("AerialKillPiston", ""); ImpactKillMessage = Request.GetVariable("ImpactKillMessage", ""); TransKillMessage = Request.GetVariable("TransKillMessage", ""); AerialKillCustom = Request.GetVariable("AerialKillCustom", ""); switch(GameClassName) { case "SMARTCTFGAME": class(GameClass).Default.ImpactKillMessage = ImpactKillMessage; class(GameClass).Default.TransKillMessage = TransKillMessage; class(GameClass).Default.EnforcerKillMessage = EnforcerKillMessage; class(GameClass).Default.BioKillMessage = BioKillMessage; class(GameClass).Default.ShockRifleKillMessage = ShockRifleKillMessage; class(GameClass).Default.PulseGunKillMessage = PulseGunKillMessage; class(GameClass).Default.RipperKillMessage = RipperKillMessage; class(GameClass).Default.MiniGunKillMessage = MiniGunKillMessage; class(GameClass).Default.FlakCannonKillMessage = FlakCannonKillMessage; class(GameClass).Default.RocketLauncherKillMessage = RocketLauncherKillMessage; class(GameClass).Default.SniperRifleKillMessage = SniperRifleKillMessage; class(GameClass).Default.CustomWeaponKillMessage = CustomWeaponKillMessage; class(GameClass).Default.AerialKillBio = AerialKillBio; class(GameClass).Default.AerialKillRipper = AerialKillRipper; class(GameClass).Default.AerialKillFlak = AerialKillFlak; class(GameClass).Default.AerialKillRockets = AerialKillRockets; class(GameClass).Default.AerialKillSniper = AerialKillSniper; class(GameClass).Default.AerialKillSuper = AerialKillSuper; class(GameClass).Default.AerialKillTrans = AerialKillTrans; class(GameClass).Default.AerialKillCombo = AerialKillCombo; class(GameClass).Default.AerialKillEnforcer = AerialKillEnforcer; class(GameClass).Default.AerialKillPulse = AerialKillPulse; class(GameClass).Default.AerialKillMini = AerialKillMini; class(GameClass).Default.AerialKillPiston = AerialKillPiston; class(GameClass).Default.ImpactKillMessage = ImpactKillMessage; class(GameClass).Default.AerialKillCustom = AerialKillCustom; break; case "EUTTEAMGAMEPLUS": class(GameClass).Default.ImpactKillMessage = ImpactKillMessage; class(GameClass).Default.TransKillMessage = TransKillMessage; class(GameClass).Default.EnforcerKillMessage = EnforcerKillMessage; class(GameClass).Default.BioKillMessage = BioKillMessage; class(GameClass).Default.ShockRifleKillMessage = ShockRifleKillMessage; class(GameClass).Default.PulseGunKillMessage = PulseGunKillMessage; class(GameClass).Default.RipperKillMessage = RipperKillMessage; class(GameClass).Default.MiniGunKillMessage = MiniGunKillMessage; class(GameClass).Default.FlakCannonKillMessage = FlakCannonKillMessage; class(GameClass).Default.RocketLauncherKillMessage = RocketLauncherKillMessage; class(GameClass).Default.SniperRifleKillMessage = SniperRifleKillMessage; class(GameClass).Default.CustomWeaponKillMessage = CustomWeaponKillMessage; class(GameClass).Default.AerialKillBio = AerialKillBio; class(GameClass).Default.AerialKillRipper = AerialKillRipper; class(GameClass).Default.AerialKillFlak = AerialKillFlak; class(GameClass).Default.AerialKillRockets = AerialKillRockets; class(GameClass).Default.AerialKillSniper = AerialKillSniper; class(GameClass).Default.AerialKillSuper = AerialKillSuper; class(GameClass).Default.AerialKillTrans = AerialKillTrans; class(GameClass).Default.AerialKillCombo = AerialKillCombo; class(GameClass).Default.AerialKillEnforcer = AerialKillEnforcer; class(GameClass).Default.AerialKillPulse = AerialKillPulse; class(GameClass).Default.AerialKillMini = AerialKillMini; class(GameClass).Default.AerialKillPiston = AerialKillPiston; class(GameClass).Default.AerialKillCustom = AerialKillCustom; break; case "EUTDEATHMATCHPLUS": class(GameClass).Default.ImpactKillMessage = ImpactKillMessage; class(GameClass).Default.TransKillMessage = TransKillMessage; class(GameClass).Default.EnforcerKillMessage = EnforcerKillMessage; class(GameClass).Default.BioKillMessage = BioKillMessage; class(GameClass).Default.ShockRifleKillMessage = ShockRifleKillMessage; class(GameClass).Default.PulseGunKillMessage = PulseGunKillMessage; class(GameClass).Default.RipperKillMessage = RipperKillMessage; class(GameClass).Default.MiniGunKillMessage = MiniGunKillMessage; class(GameClass).Default.FlakCannonKillMessage = FlakCannonKillMessage; class(GameClass).Default.RocketLauncherKillMessage = RocketLauncherKillMessage; class(GameClass).Default.SniperRifleKillMessage = SniperRifleKillMessage; class(GameClass).Default.CustomWeaponKillMessage = CustomWeaponKillMessage; class(GameClass).Default.AerialKillBio = AerialKillBio; class(GameClass).Default.AerialKillRipper = AerialKillRipper; class(GameClass).Default.AerialKillFlak = AerialKillFlak; class(GameClass).Default.AerialKillRockets = AerialKillRockets; class(GameClass).Default.AerialKillSniper = AerialKillSniper; class(GameClass).Default.AerialKillSuper = AerialKillSuper; class(GameClass).Default.AerialKillTrans = AerialKillTrans; class(GameClass).Default.AerialKillCombo = AerialKillCombo; class(GameClass).Default.AerialKillEnforcer = AerialKillEnforcer; class(GameClass).Default.AerialKillPulse = AerialKillPulse; class(GameClass).Default.AerialKillMini = AerialKillMini; class(GameClass).Default.AerialKillPiston = AerialKillPiston; class(GameClass).Default.AerialKillCustom = AerialKillCustom; break; } } Response.Subst("EnforcerKillMessage", EnforcerKillMessage); Response.Subst("BioKillMessage", BioKillMessage); Response.Subst("ShockRifleKillMessage", ShockRifleKillMessage); Response.Subst("PulseGunKillMessage", PulseGunKillMessage); Response.Subst("RipperKillMessage", RipperKillMessage); Response.Subst("MiniGunKillMessage", MiniGunKillMessage); Response.Subst("FlakCannonKillMessage", FlakCannonKillMessage); Response.Subst("RocketLauncherKillMessage", RocketLauncherKillMessage); Response.Subst("SniperRifleKillMessage", SniperRifleKillMessage); Response.Subst("AerialKillBio", AerialKillBio); Response.Subst("AerialKillRipper", AerialKillRipper); Response.Subst("AerialKillFlak", AerialKillFlak); Response.Subst("AerialKillRockets", AerialKillRockets); Response.Subst("AerialKillSniper", AerialKillSniper); Response.Subst("AerialKillSuper", AerialKillSuper); Response.Subst("AerialKillTrans", AerialKillTrans); Response.Subst("AerialKillCombo", AerialKillCombo); Response.Subst("AerialKillEnforcer", AerialKillEnforcer); Response.Subst("AerialKillPulse", AerialKillPulse); Response.Subst("AerialKillMini", AerialKillMini); Response.Subst("AerialKillPiston", AerialKillPiston); Response.Subst("ImpactKillMessage", ImpactKillMessage); Response.Subst("TransKillMessage", TransKillMessage); Response.Subst("PostAction", "messages"); Response.IncludeUHTM(MyRoot$"/messages.uhtm"); GameClass.Static.StaticSaveConfig(); } function QueryRestartPage(WebRequest Request, WebResponse Response) { Level.ServerTravel(Left(string(Level), InStr(string(Level), "."))$".unr"$"?game="$Level.Game.Class$"?mutator="$UsedMutators(), false); Response.Subst("Title", "Please Wait"); Response.Subst("Message", "The server is now restarting the current map. Please allow 10-15 seconds while the server changes levels."); Response.IncludeUHTM(MyRoot$"/options.uhtm"); } function QueryHomePage(WebRequest Request, WebResponse Response) { Response.IncludeUHTM("/Web"); } function LoadMutators() { local int NumMutatorClasses; local string NextMutator, NextDesc; local listitem TempItem; local Mutator M; local byte k; ExcludeMutators = None; Level.GetNextIntDesc("Engine.Mutator", 0, NextMutator, NextDesc); while( (NextMutator != "") && (NumMutatorClasses < 250) ) { TempItem = new(None) class'ListItem'; k = InStr(NextDesc, ","); if (k == -1) TempItem.Tag = NextDesc; else TempItem.Tag = Left(NextDesc, k); TempItem.Data = NextMutator; if (ExcludeMutators == None) ExcludeMutators = TempItem; else ExcludeMutators.AddSortedElement(ExcludeMutators, TempItem); NumMutatorClasses++; Level.GetNextIntDesc("Engine.Mutator", NumMutatorClasses, NextMutator, NextDesc); } IncludeMutators = None; for (M = Level.Game.BaseMutator.NextMutator; M != None; M = M.NextMutator) { TempItem = ExcludeMutators.DeleteElement(ExcludeMutators, String(M.Class)); if (TempItem != None) { if (IncludeMutators == None) IncludeMutators = TempItem; else IncludeMutators.AddElement(TempItem); } else log("Unknown Mutator in use: "@String(M.Class)); } } function String UsedMutators() { local ListItem TempItem; local String OutStr; if(IncludeMutators == None) return ""; OutStr = IncludeMutators.Data; for (TempItem = IncludeMutators.Next; TempItem != None; TempItem = TempItem.Next) OutStr = OutStr$","$TempItem.Data; return OutStr; } function String PadLeft(String InStr, int Width, String PadStr) { local String OutStr; if (Len(PadStr) == 0) PadStr = " "; for (OutStr=InStr; Len(OutStr) < Width; OutStr=PadStr$OutStr); return Right(OutStr, Width); } €@Ip8ùVš}]%] TpG–}TgTp]T!êTg PI£/II’~I.&IëII @Ò?cbO KÒ-j(-i(-l(/” a0 „cЬwc*–¢EUTSource.SmartCTFGame …>VçEUT CTF Web Server Initialized!ÏçEUT CTF Web Server Failure!10/” a0 †e†bwe*–¢EUTSource.EUTTeamGamePlus …>VçEUT TDM Web Server Initialized!…çEUT TDM Web Server Failure!10/” a0 ‡b<wb*–¢EUTSource.EUTDeathMatchPlus …>VçEUT DM Web Server Initialized!;çEUT DM Web Server Failure!10 T€@“KMÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ6qR*§üÄ“ ¼x‘C†ªÑ‘C†ªÑ‘C†ªÑ‘C†ªÑ‘C†ªÑ•Ž”‘C†ªÑ‘C†ªÑ‘C†ªÑ‘C†ªÑ•Ž”•Ž”–@1C™=$:e™=$:e‘C†ªÑ™=$:e‘C†ªÑ™=$:e™=$:eˆ «$~•Ž”•Ž”–@1Cˆ «$~ˆ «$~ˆ «$~‰Dˆÿ¹‰Dˆÿ¹‰Dˆÿ¹‰Dˆÿ¹‰Dˆÿ¹‰Dˆÿ¹‰Dˆÿ¹‰Dˆÿ¹‰Dˆÿ¹‰Dˆÿ¹‰Dˆÿ¹‰Dˆÿ¹‰Dˆÿ¹‰Dˆÿ¹‰Dˆÿ¹‰Dˆÿ¹‰Dˆÿ¹‰Dˆÿ¹‰Dˆÿ¹‰Dˆÿ¹‰Dˆÿ¹‰Dˆÿ¹‰Dˆÿ¹‰Dˆÿ¹‰Dˆÿ¹‰Dˆÿ¹…„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ…ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~…–@1C‰Dˆÿ¹‰Dˆÿ¹…„Vs] ‰Dˆÿ¹…„Vs] ‰Dˆÿ¹…„Vs] ‰Dˆÿ¹…„Vs] ‰Dˆÿ¹…„Vs] ‰Dˆÿ¹…„Vs] ‰Dˆÿ¹…„Vs] ‰Dˆÿ¹…„Vs] ‰Dˆÿ¹…„Vs] ‰Dˆÿ¹…„Vs] ‰Dˆÿ¹…„Vs] ‰Dˆÿ¹…„Vs] ‰Dˆÿ¹…„Vs] ‰Dˆÿ¹…„Vs] ‰Dˆÿ¹…„Vs] ‰Dˆÿ¹…„Vs] ‰Dˆÿ¹…„Vs] ‰Dˆÿ¹…„Vs] ‰Dˆÿ¹…„Vs] ‰Dˆÿ¹…„Vs] ‰Dˆÿ¹…„Vs] ‰Dˆÿ¹…„Vs] ‰Dˆÿ¹…„Vs] ‰Dˆÿ¹…„Vs] ‰Dˆÿ¹…„Vs] ‰Dˆÿ¹…„Vs] ‰Dˆÿ¹…„Vs] …„Vs] ‰Dˆÿ¹…„Vs] …„Vs] ‰Dˆÿ¹…„Vs] …„Vs] ‰Dˆÿ¹…„Vs] …„Vs] ‰Dˆÿ¹…„Vs] …„Vs] ‰Dˆÿ¹…„Vs] …„Vs] ‰Dˆÿ¹…„Vs] …„Vs] ‰Dˆÿ¹…„Vs] …„Vs] ‰Dˆÿ¹…„Vs] …„Vs] ‰Dˆÿ¹…„Vs] …„Vs] ‰Dˆÿ¹…„Vs] …„Vs] ‰Dˆÿ¹…„Vs] ‰Dˆÿ¹…„Vs] …„Vs] ‰Dˆÿ¹…„Vs] …„Vs] ‰Dˆÿ¹…„Vs] …„Vs] ‰Dˆÿ¹…„Vs] …„Vs] ‰Dˆÿ¹…†`‚RŒ‰Dˆÿ¹…†`‚RŒ‰Dˆÿ¹…†`‚RŒ‰Dˆÿ¹…†`‚RŒ‰Dˆÿ¹…†`‚RŒ‰Dˆÿ¹…†`‚RŒ‰Dˆÿ¹…†`‚RŒ‰Dˆÿ¹…†`‚RŒ‰Dˆÿ¹…†`‚RŒ‰Dˆÿ¹…†`‚RŒ‰Dˆÿ¹…†`‚RŒ‰Dˆÿ¹…†`‚RŒ‰Dˆÿ¹…†`‚RŒ‰Dˆÿ¹…†`‚RŒ‰Dˆÿ¹…†`‚RŒ‰Dˆÿ¹…†`‚RŒ‰Dˆÿ¹…†`‚RŒ‰Dˆÿ¹…†`‚RŒ‰Dˆÿ¹…†`‚RŒ‰Dˆÿ¹…†`‚RŒ‰Dˆÿ¹…†`‚RŒ‰Dˆÿ¹…†`‚RŒ‰Dˆÿ¹…†`‚RŒ‰Dˆÿ¹…†`‚RŒ‰Dˆÿ¹…†`‚RŒ‰Dˆÿ¹…†`‚RŒ‰Dˆÿ¹…†`‚RŒ…†`‚RŒ‰Dˆÿ¹…†`‚RŒ…†`‚RŒ‰Dˆÿ¹…†`‚RŒ…†`‚RŒ‰Dˆÿ¹…†`‚RŒ…†`‚RŒ‰Dˆÿ¹…†`‚RŒ‰Dˆÿ¹…‡ÃôÂ…‰Dˆÿ¹…‡ÃôÂ…‰Dˆÿ¹…‡ÃôÂ…‰Dˆÿ¹…‡ÃôÂ…‰Dˆÿ¹…‡ÃôÂ…‰Dˆÿ¹…‡ÃôÂ…‰Dˆÿ¹…‡ÃôÂ…‰Dˆÿ¹…‡ÃôÂ…‰Dˆÿ¹…‡ÃôÂ…‰Dˆÿ¹…‡ÃôÂ…‰Dˆÿ¹…‡ÃôÂ…‰Dˆÿ¹…‡ÃôÂ…‰Dˆÿ¹…‡ÃôÂ…‰Dˆÿ¹…‡ÃôÂ…‰Dˆÿ¹…‡ÃôÂ…‰Dˆÿ¹…‡ÃôÂ…‰Dˆÿ¹…‡ÃôÂ…‰Dˆÿ¹…‡ÃôÂ…‰Dˆÿ¹…‡ÃôÂ…‰Dˆÿ¹…‡ÃôÂ…‰Dˆÿ¹…‡ÃôÂ…‰Dˆÿ¹…‡ÃôÂ…‰Dˆÿ¹…‡ÃôÂ…‰Dˆÿ¹…‡ÃôÂ……‡ÃôÂ…‰Dˆÿ¹…‡ÃôÂ……‡ÃôÂ…‰Dˆÿ¹…‡ÃôÂ……‡ÃôÂ…‰Dˆÿ¹…‡ÃôÂ……‡ÃôÂ…‰Dˆÿ¹…‡ÃôÂ…ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~…–@1C‰Dˆÿ¹ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~‰Dˆÿ¹ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~ˆ «$~‰Dˆÿ¹ˆ «$~ˆ «$~…—ÙÝ^…—ÙÝ^…—ÙÝ^‰Dˆÿ¹‰Dˆÿ¹…„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …„Vs] …†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…†`‚RŒ…‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ……‡ÃôÂ…•Ž”•Ž”•Ž” ˜]EUT]root] #aaaaaa] #ffffffGWG GFÿÿÿÿdFýÿÿÿFFÿÿÿÿZFÿÿÿÿqFþÿÿÿ/Fþÿÿÿ0Xøÿÿÿ5X÷ÿÿÿ7FýÿÿÿhGAGYFýÿÿÿjFýÿÿÿnFóÿÿÿQFýÿÿÿXFþÿÿÿ6jíÿÿÿMFòÿÿÿJFòÿÿÿKFóÿÿÿAFýÿÿÿIFòÿÿÿEXøÿÿÿ3oùÿÿÿ*oüÿÿÿ*müÿÿÿ`hüÿÿÿgoúÿÿÿ*mùÿÿÿ]müÿÿÿ^XèÿÿÿDpúÿÿÿ\müÿÿÿ]Xøÿÿÿ4múÿÿÿ]púÿÿÿcpüÿÿÿcièÿÿÿFhïÿÿÿ;püÿÿÿ\püÿÿÿ[püÿÿÿZpüÿÿÿYmüÿÿÿ_pùÿÿÿ\pùÿÿÿcmüÿÿÿapüÿÿÿXpüÿÿÿWpüÿÿÿVpüÿÿÿUnüÿÿÿHnüÿÿÿInüÿÿÿJnüÿÿÿKnüÿÿÿLnüÿÿÿ_nüÿÿÿBnüÿÿÿMnüÿÿÿNnüÿÿÿ]nüÿÿÿOnüÿÿÿPnüÿÿÿQnüÿÿÿRnüÿÿÿanüÿÿÿ`nüÿÿÿSnüÿÿÿTnüÿÿÿGnüÿÿÿ\nüÿÿÿbnüÿÿÿFhùÿÿÿwhùÿÿÿxhùÿÿÿyhïÿÿÿ=jïÿÿÿ#Xíÿÿÿhùÿÿÿzhùÿÿÿ{hùÿÿÿ|hùÿÿÿ}Xrÿÿÿ.hüÿÿÿfhùÿÿÿ~hüÿÿÿhhüÿÿÿihüÿÿÿjhüÿÿÿkhüÿÿÿlhüÿÿÿmhüÿÿÿnhüÿÿÿohüÿÿÿphüÿÿÿqjçÿÿÿ(hüÿÿÿthüÿÿÿuhüÿÿÿvhüÿÿÿwhüÿÿÿxhüÿÿÿyhüÿÿÿzhüÿÿÿ{hüÿÿÿ|hüÿÿÿ}hüÿÿÿ~hüÿÿÿhüÿÿÿdhüÿÿÿehüÿÿÿ@hüÿÿÿrhüÿÿÿAnúÿÿÿFnúÿÿÿbnúÿÿÿ\núÿÿÿGnúÿÿÿHnúÿÿÿInúÿÿÿJnúÿÿÿKnúÿÿÿLnúÿÿÿNnúÿÿÿ]núÿÿÿBnúÿÿÿMnúÿÿÿ_núÿÿÿOnúÿÿÿPnúÿÿÿQnúÿÿÿRnúÿÿÿanúÿÿÿ`núÿÿÿbnúÿÿÿSjëÿÿÿ$XèÿÿÿBFòÿÿÿ[hùÿÿÿhúÿÿÿfhúÿÿÿghúÿÿÿhhúÿÿÿihúÿÿÿjhúÿÿÿkhúÿÿÿlhúÿÿÿmhúÿÿÿnhúÿÿÿohúÿÿÿphúÿÿÿqhúÿÿÿshúÿÿÿthúÿÿÿuhúÿÿÿvhúÿÿÿwhúÿÿÿxhúÿÿÿyhúÿÿÿzhúÿÿÿ{húÿÿÿ|húÿÿÿ}húÿÿÿ~húÿÿÿhúÿÿÿdhúÿÿÿehúÿÿÿ@húÿÿÿrhúÿÿÿAnùÿÿÿFnùÿÿÿbnùÿÿÿ\nùÿÿÿGnùÿÿÿHnùÿÿÿInùÿÿÿJnùÿÿÿKnùÿÿÿLnùÿÿÿNnùÿÿÿ_nùÿÿÿ^nùÿÿÿBnùÿÿÿMnùÿÿÿOnùÿÿÿPnùÿÿÿQnùÿÿÿRnùÿÿÿanùÿÿÿ`nùÿÿÿShùÿÿÿ@FýÿÿÿohùÿÿÿrhüÿÿÿshùÿÿÿfhùÿÿÿghùÿÿÿhhùÿÿÿihùÿÿÿjhùÿÿÿkhùÿÿÿlhùÿÿÿmhùÿÿÿnhùÿÿÿohùÿÿÿphùÿÿÿqhùÿÿÿshùÿÿÿthùÿÿÿuhùÿÿÿvhùÿÿÿAhéÿÿÿRhéÿÿÿ&h÷ÿÿÿ%h÷ÿÿÿ<h÷ÿÿÿ:Xíÿÿÿjêÿÿÿ'FýÿÿÿHFýÿÿÿpFýÿÿÿihéÿÿÿPá’"M1v9 [1v8 h1y8 u1y9 B2Œ’c O2Œ’* [2Œ’] g2Œ’\ s2~9 @3’S M3Œ’r Z3’` f3’I s3’H 3’F K4’b W4’\ c4’G o4’J {4’_ G5’R S5’B _5’N k5’a w5’M C6’K O6’L [6Œ’A h6Œ’@ u6’Q A7’O M7’P Y7~8 e7‚?r7Œ’g @8Œ’~ L8Œ’{ Y8’] e8Œ’z r8Œ’y ~8Œ’x J9Œ’w V9Œ’} b9Œ’| n9Œ’u z9Œ’t F:Œ’s R:Œ’d ^:Œ’e j:Œ’p v:Œ’o C;Œ’f O;Œ’v [;Œ’h g;Œ’i s;Œ’j ;Œ’k K<Œ’l W<Œ’m c<Œ’n o<Œ’e {<Œ’ H=Œ’q T=’T`=’Sn=Œ’ |=Œ’W H>Œ’V U>Œ’Y b>Œ’_ o>Œ’a |>ŒŽc H?r9U?Œ’Z c?Œ’[ p?Œ’U |?‚!I@Œ’X W@Œ’^ d@Œ’` q@‰?~@Œ‚) LAŒU XA’T dA’^ pAq9|AŒ‚( JBŒ‰U WB’b cBŒ„k oBw9 |BŒV ICà‚, VC|9 cCŒ„l pCÄ‚> |CgID@WD„8eDfsDt9 AEÄ+ NEŒq- [E’C gE’D tEr8AF’E OF9 [FŒr- hFq8tFŒC BG’’SOG’’KbIt8mM’’ A{Mw8|N’’zJO’’ iDߌ’ mà’’ k+yàŒ’ dŒŒ’L qŒ’’ d~Œ|8b‘’Ý’~p‘’’ -n—8[˜„2 i˜’’]v˜„9SŸ’’AaŸŒ’O b¡Œ’ o¡Œ’N |¡’’S*I¢’’y\ÌŒ‰2 UÎß’14OçbÎŒŽ2 qµ ’’[}µ ’’>X· Œc V¸ ’Ò’ib¸ Œ2 KÀ “i˜XÀ