diff --git a/ReHitman/BloodMoney/CMakeLists.txt b/ReHitman/BloodMoney/CMakeLists.txt index 9a14639..a7dd077 100644 --- a/ReHitman/BloodMoney/CMakeLists.txt +++ b/ReHitman/BloodMoney/CMakeLists.txt @@ -12,4 +12,4 @@ file(GLOB_RECURSE HITMAN_BM_SOURCES add_library(BloodMoney STATIC ${HITMAN_BM_SOURCES}) add_library(Hitman::BloodMoney ALIAS BloodMoney) target_include_directories(BloodMoney PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include) -target_link_libraries(BloodMoney G1::Core HF::Core ReHitman::IClient ImGui::Core ImGui::DX9 spdlog) \ No newline at end of file +target_link_libraries(BloodMoney G1::Core HF::Core ReHitman::IClient ImGui::Core ImGui::DX9 spdlog ScriptingRuntime) \ No newline at end of file diff --git a/ReHitman/BloodMoney/include/BloodMoney/BMConfigurationService.h b/ReHitman/BloodMoney/include/BloodMoney/BMConfigurationService.h index 65c89da..a00b8ce 100644 --- a/ReHitman/BloodMoney/include/BloodMoney/BMConfigurationService.h +++ b/ReHitman/BloodMoney/include/BloodMoney/BMConfigurationService.h @@ -17,5 +17,54 @@ namespace Hitman::BloodMoney static std::intptr_t BMAPI_FunctionAddress_ZHM3ItemBomb_Explode; static std::intptr_t BMAPI_FunctionAddress_CMetalDetector_DoDetectWeapon; static std::intptr_t BMAPI_FunctionAddress_CMetalDetector_DoAlarm; + static std::intptr_t BMAPI_FunctionAddress_ZHM3Actor_PreparePath; + static std::intptr_t BMAPI_FunctionAddress_ZHM3Actor_ActivateBloodSpurt; + static std::intptr_t BMAPI_FunctionAddress_ZTie_HideTie; + static std::intptr_t BMAPI_FunctionAddress_ZTie_HideTieInMirror; + static std::intptr_t BMAPI_FunctionAddress_ZXMLGUISystem_GetTopWindow; + static std::intptr_t BMAPI_FunctionAddress_CTelePortList_TeleportToPointAtIndex; + static std::intptr_t BMAPI_FunctionAddress_ZHM3DialogControl_StartDialog; + static std::intptr_t BMAPI_FunctionAddress_ZHM3DialogControl_SetDialogSkipable; + static std::intptr_t BMAPI_FunctionAddress_CElevatorHouse_GetElevatorDoorStatus; + static std::intptr_t BMAPI_FunctionAddress_ZOSD_AddInfo; + static std::intptr_t BMAPI_FunctionAddress_ZOSD_AddWarning; + static std::intptr_t BMAPI_FunctionAddress_ZOSD_AddHint; + static std::intptr_t BMAPI_FunctionAddress_CKeycardReader_GetNearestDoor; + static std::intptr_t BMAPI_FunctionAddress_CKeycardReader_ValidateKeyCard; + static std::intptr_t BMAPI_FunctionAddress_CKeycardReader_InvalidateKeyCard; + static std::intptr_t BMAPI_FunctionAddress_CKeycardReader_DetermineLnkObjLocation; + static std::intptr_t BMAPI_FunctionAddress_CKeycardReader_GetKeyCard; + static std::intptr_t BMAPI_FunctionAddress_CKeycardReader_GetItemTemplateFromName; + static std::intptr_t BMAPI_FunctionAddress_CKeycardReader_IsKeyCardValid; + static std::intptr_t BMAPI_FunctionAddress_ZLINEOBJ_FactoryConstructor; + static std::intptr_t BMAPI_FunctionAddress_ZTTFONT_FactoryConstructor; + static std::intptr_t BMAPI_FunctionAddress_ZKerningFont_FactoryConstructor; + static std::intptr_t BMAPI_FunctionAddress_ZHM3WeaponUpgradeControl_InitWeaponReferences; + static std::intptr_t BMAPI_FunctionAddress_ZHM3WeaponUpgradeControl_ApplyDefaultUpgrades; + static std::intptr_t BMAPI_FunctionAddress_ZHM3WeaponUpgradeControl_GetWeaponType; + static std::intptr_t BMAPI_FunctionAddress_ZHM3ItemWeaponCustom_ApplyUpgrades; + static std::intptr_t BMAPI_FunctionAddress_ZHM3ItemWeaponCustom_UpdateWeaponPartDrawStatus; + static std::intptr_t BMAPI_FunctionAddress_ZHM3ItemWeaponCustom_ClearUpgrades; + static std::intptr_t BMAPI_FunctionAddress_ZHM3BriefingControl_CompleteObjective; + static std::intptr_t BMAPI_FunctionAddress_ZHM3BriefingControl_PlaySpeech; + static std::intptr_t BMAPI_FunctionAddress_ZHM3BriefingControl_StopSpeech; + static std::intptr_t BMAPI_FunctionAddress_ZWINOBJ_GetTexture; + static std::intptr_t BMAPI_FunctionAddress_ZGUIBase_GetSize; + static std::intptr_t BMAPI_FunctionAddress_PF4_CreatePathFinder; + static std::intptr_t BMAPI_FunctionAddress_ZHM3InventoryMenu_InitInventoryList; + static std::intptr_t BMAPI_FunctionAddress_ZHM3InventoryMenu_CloseItemView; + static std::intptr_t BMAPI_FunctionAddress_ZHM3InventoryMenu_CloseInventoryMenu; + static std::intptr_t BMAPI_FunctionAddress_ZHM3InventoryMenu_UpdateItemView; + static std::intptr_t BMAPI_FunctionAddress_ZHM3InventoryMenu_UpdateItemInfo; + static std::intptr_t BMAPI_FunctionAddress_ZHM3InventoryMenu_SpinCircle; + static std::intptr_t BMAPI_FunctionAddress_ZHM3InventoryMenu_TurnLeft; + static std::intptr_t BMAPI_FunctionAddress_ZHM3InventoryMenu_TurnRight; + static std::intptr_t BMAPI_FunctionAddress_IGUIElement_ChangeColorSet; + static std::intptr_t BMAPI_FunctionAddress_IGUIElement_ChangeColor; + static std::intptr_t BMAPI_FunctionAddress_IGUIElement_SetColor; + static std::intptr_t BMAPI_FunctionAddress_IGUIElement_GetRightPosOfTextGroup; + static std::intptr_t BMAPI_FunctionAddress_ZHM3MenuElements_GetGUIElement; + static std::intptr_t BMAPI_FunctionAddress_ZHM3ItemTool_GetHM3ItemName; + static std::intptr_t BMAPI_GlobalVariableAddress_ZVCR_m_msgStealTape; }; } \ No newline at end of file diff --git a/ReHitman/BloodMoney/include/BloodMoney/Client.h b/ReHitman/BloodMoney/include/BloodMoney/Client.h index 523b759..753d9b2 100644 --- a/ReHitman/BloodMoney/include/BloodMoney/Client.h +++ b/ReHitman/BloodMoney/include/BloodMoney/Client.h @@ -1,10 +1,12 @@ #pragma once #include +#include #include #include #include + namespace Hitman::BloodMoney { class Client : public ReHitman::Client::IClient @@ -13,6 +15,8 @@ namespace Hitman::BloodMoney bool OnAttach() override; void OnDestroy() override; + static Scripting::ScriptingRuntime* GetScriptingRuntime(); + private: static bool RegisterGameConfigurationForGlacier(); diff --git a/ReHitman/BloodMoney/include/BloodMoney/Engine/ZDirect3DDevice.h b/ReHitman/BloodMoney/include/BloodMoney/Engine/ZDirect3DDevice.h index 25f7551..7d2aa80 100644 --- a/ReHitman/BloodMoney/include/BloodMoney/Engine/ZDirect3DDevice.h +++ b/ReHitman/BloodMoney/include/BloodMoney/Engine/ZDirect3DDevice.h @@ -1,6 +1,7 @@ #pragma once #include +#include namespace Hitman::BloodMoney::Engine { diff --git a/ReHitman/BloodMoney/include/BloodMoney/Engine/ZHM3CameraClassBase.h b/ReHitman/BloodMoney/include/BloodMoney/Engine/ZHM3CameraClassBase.h index 6d76704..fccf5ca 100644 --- a/ReHitman/BloodMoney/include/BloodMoney/Engine/ZHM3CameraClassBase.h +++ b/ReHitman/BloodMoney/include/BloodMoney/Engine/ZHM3CameraClassBase.h @@ -7,7 +7,7 @@ namespace Hitman::BloodMoney class ZHM3CameraClassBase : public Glacier::ZCAMERA { public: - + //vftable (no changes) //data (total size is 0x1A8, ZCAMERA size is 0x18C) int m_field18C; int m_field190; diff --git a/ReHitman/BloodMoney/include/BloodMoney/FreeFS/HBMFreeFsProxy.h b/ReHitman/BloodMoney/include/BloodMoney/FreeFS/HBMFreeFsProxy.h new file mode 100644 index 0000000..8a31dde --- /dev/null +++ b/ReHitman/BloodMoney/include/BloodMoney/FreeFS/HBMFreeFsProxy.h @@ -0,0 +1,18 @@ +#pragma once + +#include + +namespace Hitman::BloodMoney::FreeFS { + class HBMFreeFsProxy { + public: + char pad_0000[16]; //0x0000 + char* m_missionZipFilePath; //0x0010 + char pad_0014[100]; //0x0014 + char* m_zipFilePath; //0x0078 + + static std::string findFileInFolderRecursively(const std::string& folder, const std::string& file); + + int readFileProvider(const char* name, void* dest, int fileSize, int unk1); + int getFileSizeProvider(const char* name); + }; +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/include/BloodMoney/Game/CCheat.h b/ReHitman/BloodMoney/include/BloodMoney/Game/CCheat.h new file mode 100644 index 0000000..7000b32 --- /dev/null +++ b/ReHitman/BloodMoney/include/BloodMoney/Game/CCheat.h @@ -0,0 +1,15 @@ +#pragma once + +#include + +#include + +namespace Hitman::BloodMoney { + class CCheat + { + public: + static void GiveItem(Glacier::ZREF rItem); + static void GiveItem(Glacier::ZGROUP* pWeaponsGroup, std::string_view sItemName); + static void GiveSome(); + }; +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/include/BloodMoney/Game/CIngameMap.h b/ReHitman/BloodMoney/include/BloodMoney/Game/CIngameMap.h index e6011fb..d476097 100644 --- a/ReHitman/BloodMoney/include/BloodMoney/Game/CIngameMap.h +++ b/ReHitman/BloodMoney/include/BloodMoney/Game/CIngameMap.h @@ -147,7 +147,7 @@ namespace Hitman::BloodMoney char field_2A3; int field_02A4; int field_02A8; - SMapGroup *m_currentMapGroup; + SMapGroup* m_currentMapGroup; int field_02B0; int field_02B4; int field_02B8; diff --git a/ReHitman/BloodMoney/include/BloodMoney/Game/CTelePortList.h b/ReHitman/BloodMoney/include/BloodMoney/Game/CTelePortList.h new file mode 100644 index 0000000..9c51981 --- /dev/null +++ b/ReHitman/BloodMoney/include/BloodMoney/Game/CTelePortList.h @@ -0,0 +1,17 @@ +#pragma once + +#include +#include + +namespace Hitman::BloodMoney { + class CTelePortList : public Glacier::ZEventBase { + public: + // size is 0x3C + int m_field30; + int m_field34; + Glacier::ZREF m_targetREF; // REF to entity who will be teleported to position + + // public API + void TeleportToPointAtIndex(int index); + }; +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/include/BloodMoney/Game/Elevator/CElevatorHouse.h b/ReHitman/BloodMoney/include/BloodMoney/Game/Elevator/CElevatorHouse.h new file mode 100644 index 0000000..3b13a12 --- /dev/null +++ b/ReHitman/BloodMoney/include/BloodMoney/Game/Elevator/CElevatorHouse.h @@ -0,0 +1,266 @@ +#pragma once + +#include +#include +#include +#include + +namespace Hitman::BloodMoney { + class CElevatorHouse : public Glacier::ZEventBase { + public: + // vftable (not changed) + + // custom structures + struct TUnk10 { + int m_field0; + int m_field4; + int m_field8; + bool m_fieldC : 1; + bool m_fieldD : 1; + bool m_fieldE : 1; + bool m_fieldF : 1; + }; + + enum EElevatorStatus : int { + ELEVATOR_STATUS_STOPPED = 0, + ELEVATOR_STATUS_MOVE_UP = 1, + ELEVATOR_STATUS_MOVE_DOWN = 2, + ELEVATOR_STATUS_PAUSED = 4, + ELEVATOR_STATUS_REACHED_END_POINT = 5, + // --- IDK --- + ELEVATOR_STATUS_UNKNOWN_3 = 3, + ELEVATOR_STATUS_UNKNOWN_7 = 7 + }; + + /** + * @command RequestElevatorInfo + */ + struct ElevatorInfo { + EElevatorStatus m_status; // Value from m_field76C + bool m_unk4; // sub_5C2370(this); + bool m_unk5; // unused + bool m_unk6; // unused + bool m_unk7; // unused + int m_unk8; // unused + Glacier::REFTAB* m_unkRefTab38; + int m_unkField84; + }; + + /** + * @command RequestFloorDef + */ + struct FloorDef { + Glacier::Vector3 m_position; + int pFloorDef; // sub_5C19D0(arg); (?) + }; + + enum EDoorStatus { + DOOR_STATUS_INVALID = -1, + DOOR_STATUS_1 = 1, + DOOR_STATUS_2 = 2, + DOOR_STATUS_3 = 3, + }; + + // Custom methods + /** + * @fn GetDoorStatusOfElevatorByREF + * @param elevatorObjectREF - Glacier REF to ZGEOM object + * @return door status != DOOR_STATUS_INVALID if elevator object valid and interface presented, otherwise DOOR_STATUS_INVALID + */ + static EDoorStatus GetDoorStatusOfElevatorByREF(Glacier::ZREF elevatorObjectREF); + + // data (total size is 0x778) + float m_field30; + int m_field34; + Glacier::REFTAB m_reftab38; + Glacier::REFTAB m_reftab54; + Glacier::ZMSGID m_MSG_70; + Glacier::ZMSGID m_MSG_72; + int m_field74; + int m_field78; + int m_field7c; + int m_field80; + int m_field84; + int m_field88; + int m_field8c; + Glacier::REFTAB m_reftab90; + int m_fieldAC; + int m_fieldDB0_EvREF; + int m_moveToREF; + Glacier::Vector3 m_v3MoveToPos; + int m_fieldc4; + int m_requestElevator; + int m_fieldcc; + int m_fieldd0; + int m_fieldd4; + int m_fieldd8; + int m_fielddc; + int m_fielde0; + int m_fielde4; + int m_fielde8; + int m_fieldec; + int m_fieldf0; + int m_fieldf4; + int m_fieldf8; + int m_fieldfc; + int m_field100; + int m_field104; + int m_field108; + int m_field10c; + int m_field110; + int m_field114; + int m_field118; + int m_field11c; + int m_field120; + int m_field124; + int m_field128; + int m_field12c; + int m_field130; + int m_field134; + int m_field138; + int m_field13c; + int m_field140; + int m_field144; + int m_field148; + int m_field14c; + int m_field150; + int m_field154; + int m_field158; + int m_field15c; + int m_field160; + int m_field164; + int m_field168; + int m_field16c; + int m_field170; + int m_field174; + int m_field178; + int m_field17c; + int m_field180; + int m_field184; + int m_field188; + int m_field18c; + int m_field190; + int m_field194; + int m_field198; + int m_field19c; + int m_field1a0; + int m_field1a4; + int m_field1a8; + int m_field1ac; + int m_field1b0; + int m_field1b4; + int m_field1b8; + int m_field1bc; + int m_field1c0; + int m_field1c4; + int m_field1c8; + int m_field1cc; + int m_field1d0; + int m_field1d4; + int m_field1d8; + int m_field1dc; + int m_field1e0; + int m_field1e4; + int m_field1e8; + int m_field1ec; + int m_field1f0; + int m_field1f4; + int m_field1f8; + int m_field1fc; + int m_field200; + int m_field204; + int m_field208; + int m_field20c; + int m_field210; + int m_field214; + int m_field218; + int m_field21c; + int m_field220; + int m_field224; + int m_field228; + int m_field22c; + int m_field230; + int m_field234; + int m_field238; + int m_field23c; + int m_field240; + int m_field244; + int m_field248; + int m_field24c; + int m_field250; + int m_field254; + int m_field258; + int m_field25c; + int m_field260; + int m_field264; + int m_field268; + int m_field26c; + int m_field270; + int m_field274; + int m_field278; + int m_field27c; + int m_field280; + int m_field284; + int m_field288; + int m_field28c; + int m_field290; + int m_field294; + int m_field298; + int m_field29c; + int m_field2a0; + int m_field2a4; + int m_field2a8; + int m_field2ac; + int m_field2b0; + int m_field2b4; + int m_field2b8; + int m_field2bc; + int m_field2c0; + int m_field2c4; + int m_field2c8; + int m_field2cc; + int m_field2d0; + int m_field2d4; + int m_field2d8; + int m_field2dc; + int m_field2e0; + int m_field2e4; + int m_field2e8; + int m_field2ec; + int m_field2f0; + int m_field2f4; + int m_field2f8; + int m_field2fc; + int m_field300; + int m_field304; + int m_field308; + int m_field30c; + int m_field310; + int m_field314; + int m_field318; + int m_field31c; + int m_field320; + int m_field324; + int m_field328; + int m_field32c; + int m_field330; + int m_field334; + int m_field338; + int m_field33c; + int m_field340; + int m_field344; + int m_field348; + CElevatorHouse::TUnk10 m_unkArr34C[64]; + int m_field74c; + int m_pivotDelta; + int m_field754; + int m_elevBound; + int m_field75c; + int m_field760; + int m_field764; + int m_field768; + int m_currentElevatorStatus; + int m_prevElevatorStatus; + int m_field774; + }; +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/include/BloodMoney/Game/Globals.h b/ReHitman/BloodMoney/include/BloodMoney/Game/Globals.h index 7a9cd42..daae7de 100644 --- a/ReHitman/BloodMoney/include/BloodMoney/Game/Globals.h +++ b/ReHitman/BloodMoney/include/BloodMoney/Game/Globals.h @@ -9,4 +9,5 @@ namespace Hitman::BloodMoney::Globals static constexpr std::uintptr_t kFileSystemAddr = 0x0082081C; static constexpr std::uintptr_t kGeomBufferAddr = 0x008BA0C0; static constexpr std::uintptr_t kActionManagerAddr = 0x008ACAC4; + static constexpr std::uintptr_t kD3DDllAddr = 0x008ACA30; } \ No newline at end of file diff --git a/ReHitman/BloodMoney/include/BloodMoney/Game/Items/ZHM3ItemTool.h b/ReHitman/BloodMoney/include/BloodMoney/Game/Items/ZHM3ItemTool.h new file mode 100644 index 0000000..d7862d1 --- /dev/null +++ b/ReHitman/BloodMoney/include/BloodMoney/Game/Items/ZHM3ItemTool.h @@ -0,0 +1,10 @@ +#pragma once + +#include "EHM3ItemType.h" +#include + +namespace Hitman::BloodMoney { + struct ZHM3ItemTool { + static std::string_view GetHM3ItemName(EHM3ItemType eItemType); + }; +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/include/BloodMoney/Game/Items/ZHM3ItemWeaponCustom.h b/ReHitman/BloodMoney/include/BloodMoney/Game/Items/ZHM3ItemWeaponCustom.h index d2eb0fd..8b5c5d0 100644 --- a/ReHitman/BloodMoney/include/BloodMoney/Game/Items/ZHM3ItemWeaponCustom.h +++ b/ReHitman/BloodMoney/include/BloodMoney/Game/Items/ZHM3ItemWeaponCustom.h @@ -11,6 +11,11 @@ namespace Hitman::BloodMoney virtual void GetAnims(); //Load anims inside virtual void* GetMuzzleVelocity(float); + // api + void ApplyUpgrades(char a1); + void UpdateWeaponPartDrawStatus(); + void ClearUpgrades(); + // data (new size is 0x1C0) int m_field15C; int m_field160; diff --git a/ReHitman/BloodMoney/include/BloodMoney/Game/LevelControls/ESecurityZone.h b/ReHitman/BloodMoney/include/BloodMoney/Game/LevelControls/ESecurityZone.h new file mode 100644 index 0000000..719abe3 --- /dev/null +++ b/ReHitman/BloodMoney/include/BloodMoney/Game/LevelControls/ESecurityZone.h @@ -0,0 +1,9 @@ +#pragma once + +namespace Hitman::BloodMoney +{ + enum ESecurityZone + { + + }; +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/include/BloodMoney/Game/LevelControls/ZHM3LevelControl.h b/ReHitman/BloodMoney/include/BloodMoney/Game/LevelControls/ZHM3LevelControl.h index 7db15c4..97724ea 100644 --- a/ReHitman/BloodMoney/include/BloodMoney/Game/LevelControls/ZHM3LevelControl.h +++ b/ReHitman/BloodMoney/include/BloodMoney/Game/LevelControls/ZHM3LevelControl.h @@ -7,6 +7,7 @@ #include #include +#include namespace Hitman::BloodMoney { @@ -16,8 +17,6 @@ namespace Hitman::BloodMoney class ZHM3ItemWeapon; class ZHM3ClothBundle; - enum class ESecurityZone : int {}; - class ZMusicController; class ZHM3LevelControl : public Glacier::ZEventBase diff --git a/ReHitman/BloodMoney/include/BloodMoney/Game/OnLevel/CKeycardReader.h b/ReHitman/BloodMoney/include/BloodMoney/Game/OnLevel/CKeycardReader.h new file mode 100644 index 0000000..97b3406 --- /dev/null +++ b/ReHitman/BloodMoney/include/BloodMoney/Game/OnLevel/CKeycardReader.h @@ -0,0 +1,49 @@ +#pragma once + +#include +#include +#include + +#include + +namespace Hitman::BloodMoney +{ + /** + * @msg MSG_DETERMINELNKOBJLOC + */ + struct sQueryLnkObjLocation { + Glacier::ZREF m_geomToDetermineREF; //in + bool m_bLocatedNearToKeycardReader; //out + }; + + class CKeycardReader : public Glacier::ZEventBase + { + public: + //vftable (no changes) + // custom API + Glacier::ZEntityLocator* GetNearestDoor(unsigned int iDoorsCount, Glacier::ZEntityLocator** ppDoorsList); + void ValidateKeyCard(Glacier::ZREF cardREF); + void InvalidateKeyCard(Glacier::ZREF cardREF); + void DetermineLnkObjLocation(sQueryLnkObjLocation* pQuery); + Glacier::ZREF GetKeyCard(Glacier::ZREF playerREF, bool* hasCard); + Glacier::ZREF GetItemTemplateFromName(const char* itemName); + bool IsKeyCardValid(BloodMoney::ZHM3Item* pItem); + + // data (total size is 0x8C, base size is 0x30) + Glacier::ZREF m_useKeycardActionREF; // REF to Event (use ZEventBuffer to locate instance) + int m_nearestDoor; + int m_field38; + int m_field3C; + unsigned short m_field40; + unsigned short m_field42; + int m_field44; + int m_field48; + Glacier::REFTAB m_reftab4C; + Glacier::REFTAB m_reftab68; + char m_field84; + char m_field85; + char m_field86; + char m_field87; + int m_bIsElevatorButton; + }; +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/include/BloodMoney/Game/OnLevel/CMetalDetector.h b/ReHitman/BloodMoney/include/BloodMoney/Game/OnLevel/CMetalDetector.h index 2277da8..fbe6600 100644 --- a/ReHitman/BloodMoney/include/BloodMoney/Game/OnLevel/CMetalDetector.h +++ b/ReHitman/BloodMoney/include/BloodMoney/Game/OnLevel/CMetalDetector.h @@ -13,7 +13,7 @@ namespace Hitman::BloodMoney void DoAlarm(); // data (total size is 0xA8, ZEventBase size is 0x30) - Glacier::REFTAB m_reftab0; + Glacier::REFTAB m_pAttachedActorsRefTab; int field_4C; Glacier::REFTAB m_reftab1; Glacier::REFTAB m_reftab2; diff --git a/ReHitman/BloodMoney/include/BloodMoney/Game/OnLevel/ZVCR.h b/ReHitman/BloodMoney/include/BloodMoney/Game/OnLevel/ZVCR.h new file mode 100644 index 0000000..f3600ac --- /dev/null +++ b/ReHitman/BloodMoney/include/BloodMoney/Game/OnLevel/ZVCR.h @@ -0,0 +1,18 @@ +#pragma once + +#include + +namespace Hitman::BloodMoney +{ + class ZVCR : public Glacier::ZEventBase + { + public: + // vtbl (no changes) + // custom api + static void SetTapeStolen(bool value); + static bool TapeWasStolen(); + + // data (size is 0x34) + Glacier::ZAction* m_stealTapeAction; + }; +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/include/BloodMoney/Game/PF4/PF4RunTime.h b/ReHitman/BloodMoney/include/BloodMoney/Game/PF4/PF4RunTime.h new file mode 100644 index 0000000..64aa37f --- /dev/null +++ b/ReHitman/BloodMoney/include/BloodMoney/Game/PF4/PF4RunTime.h @@ -0,0 +1,15 @@ +#pragma once + +namespace Hitman::BloodMoney::PF4RunTime { + class ZData { + public: + //vtable + virtual void Release(bool bFreeMem); + + //static + ZData* CreatePathFinder(void* pData); + //data (total size is 0x5E80) + int m_field4; + //TODO: Complete reverse here + }; +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/include/BloodMoney/Game/SDifficultySettings.h b/ReHitman/BloodMoney/include/BloodMoney/Game/SDifficultySettings.h new file mode 100644 index 0000000..8f4d6b5 --- /dev/null +++ b/ReHitman/BloodMoney/include/BloodMoney/Game/SDifficultySettings.h @@ -0,0 +1,48 @@ +#pragma once + +namespace Hitman::BloodMoney { + struct SDifficultySettings { + //total size is 0xA4 + int m_field0; + int m_field4; + int m_field8; + int m_fieldC; + int m_field10; + int m_field14; + int m_field18; + int m_field1C; + int m_field20; + int m_field24; + int m_field28; + int m_field2C; + int m_field30; + int m_field34; + int m_field38; + int m_field3C; + int m_field40; + int m_field44; + int m_field48; + int m_field4C; + int m_field50; + int m_field54; + int m_field58; + int m_field5C; + int m_field60; + int m_field64; + int m_field68; + int m_field6C; + int m_field70; + int m_field74; + int m_field78; + int m_field7C; + int m_field80; + int m_field84; + int m_field88; + int m_field8C; + int m_field90; + int m_field94; + int m_field98; + int m_field9C; + int m_fieldA0; + }; +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/include/BloodMoney/Game/UI/IGUIElement.h b/ReHitman/BloodMoney/include/BloodMoney/Game/UI/IGUIElement.h new file mode 100644 index 0000000..2cbee74 --- /dev/null +++ b/ReHitman/BloodMoney/include/BloodMoney/Game/UI/IGUIElement.h @@ -0,0 +1,85 @@ +#pragma once + +#include +#include +#include + +namespace Hitman::BloodMoney { + class ZWINDOW; + class ZXMLGUISystem; + class ZResourceManager; + + class IGUIElement : public ZGUIBase { + public: + //pub + enum class EAlignment { + Left = 1, + Right = 0, + Center = 2 + }; + + enum class EFontType { + Header = 0, + Menu = 1, + Text = 2 + }; + + //vftable + virtual void Update(bool); + virtual void Click(eZWUserEvents, int, ZXMLGUISystem*); + virtual void OpenSubwindow(); + virtual void SetValue(int); + virtual void Use(); + virtual void FocusUpdate(); + virtual void Setup(float*, ZResourceManager* pResourceManager, ZWINGROUP* pGroup); + virtual void ReleaseResources(ZResourceManager* pResourceManager); + virtual void SetFocus(bool); + virtual void Cancel(); + virtual void Invalidate(); + virtual ZWINDOW* GetWindow(); + + //api + void ChangeColorSet(ZWINGROUP* pGroup, ZColorSet* pColorSet); + void ChangeColor(ZWINGROUP* pGroup, ZColorSet* pColorSet, ZColorSet::EColorIndex eColorIndex); + void SetColor(uint32_t rgba, ZWINGROUP* pGroup, uint32_t mask = 0xFFFFFFFFu); + void GetRightPosOfTextGroup(ZWINGROUP*, Glacier::Vector3* pPos, int iOffsetByX); + + //data (total size is 0x6C, base size is 0x48) + ZColorSet* m_pColorSet; + int m_field4C; + int m_field50; + EFontType m_eFontType; + EAlignment m_eAlignment; + int m_pButtonGraphic; + bool m_bShadow; + bool m_field61; + bool m_field62; + bool m_field63; + int m_field64; + int m_iActivateButtonKeyCode; + + /* + * @note: + * Why the size of this class is 0x6C? + * Because there are no direct allocations of IGUIElement instance without any inheritance + * we need to find a class with the lowest size and small inheritance tree and if it exists we can choose + * the size of that class as the base size (means that this class does not contain any additional information). + * There are presented the class list which selected to find base size: + * + * Class Size (HEX, in bytes) + * ----------------------------- + * ZBackgroundCameraClear 0x6C + * ZHM3HintDetail 0x6C + * ZAnimation 0x80 + * ZTextBlock 0x80 + * ZXMLFrame 0x80 + * ZGraphic 0x84 + * ZWeaponDetails 0x110 + * ZUpgradeInfo 0x110 + * ZGUIEdit 0x240 + * ZWeaponSelector 0x564 + * ZListBox 0xC14 + * ZGUIList 0x1A48 + */ + }; +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/include/BloodMoney/Game/UI/ZCHAROBJ.h b/ReHitman/BloodMoney/include/BloodMoney/Game/UI/ZCHAROBJ.h index ba61076..fb16c7a 100644 --- a/ReHitman/BloodMoney/include/BloodMoney/Game/UI/ZCHAROBJ.h +++ b/ReHitman/BloodMoney/include/BloodMoney/Game/UI/ZCHAROBJ.h @@ -3,12 +3,32 @@ #include #include #include +#include +#include +#include namespace Hitman::BloodMoney { - class ZCHAROBJ + class ZCHAROBJ : public ZWINOBJ { public: + // vftable + virtual void CreateGeometry(); + virtual void SetFont(ZFONT*); + virtual void SetText(char const*); + virtual void SetText(char const*, uint32_t); + virtual void SetTextId(char const*, char const*); + virtual void Clear(); + virtual int GetCharPosition(int); + // api + + // data (size is 0xA0, base size is 0x88) + int m_field88; + int m_field8C; + int m_field90; + int m_field94; + int m_field98; + int m_field9C; }; } \ No newline at end of file diff --git a/ReHitman/BloodMoney/include/BloodMoney/Game/UI/ZCONTROL.h b/ReHitman/BloodMoney/include/BloodMoney/Game/UI/ZCONTROL.h new file mode 100644 index 0000000..dd3faaa --- /dev/null +++ b/ReHitman/BloodMoney/include/BloodMoney/Game/UI/ZCONTROL.h @@ -0,0 +1,83 @@ +#pragma once + +#include + +namespace Hitman::BloodMoney { + enum class EFocusMove { + TryToFindFocusFromTopValueToBottom = 0, + Value_1 = 1, + Value_2 = 2, + Value_3 = 3, + Value_4 = 4, + }; + + enum class EControlState { + CS_RELEASED = 1u, + CS_PUSHED = 2u, + CS_HOVERED = 8u, + CS_DISABLED = 32u + }; + + enum EControlMask { + CM_DISABLED = 1 << 1 + }; + + class ZCONTROL : public ZWINGROUP { + public: + //vftable + virtual void Enable(); + virtual void Disable(); + virtual bool NotifyControl(); + virtual void SetNotifyControl(bool); + virtual void SetOwner(Glacier::uint); + virtual void SetState(Glacier::uint); + virtual Glacier::uint GetState(); + virtual void UpdateStateGraphics(Glacier::uint); + virtual void SetAvailableStates(Glacier::uint); + virtual void MouseLeave(); + virtual void MouseEnter(bool); + virtual void Push(bool); + virtual void Release(); + virtual void Click(); + virtual void SetControlId(int id); + virtual int GetControlId(); + virtual void GrabFocus(); + virtual ZCONTROL* GetNextFocus(EFocusMove eFocusMove); + virtual void SetNextFocus(ZCONTROL* pControl, EFocusMove eFocusMove); + virtual void OnCommand(Glacier::uint); + virtual void OnMouseMove(Glacier::Vector2* pMousePos); + virtual void OnKeyUp(Glacier::uint); + virtual void OnKeyDown(Glacier::uint); + virtual void OnKeyPress(Glacier::uint); + virtual void OnKeyRepeat(Glacier::uint); + virtual void OnFocusReceived(Glacier::uint); + virtual void OnFocusLost(Glacier::uint); + virtual void OnClick(Glacier::ZVector2* pPos, Glacier::uint); + virtual void OnSliderChange(Glacier::uint, Glacier::uint); + virtual void OnScrollbarChange(Glacier::uint, Glacier::uint); + virtual void OnFocusChanged(Glacier::uint, Glacier::uint); + virtual void OnStateChanged(Glacier::uint, Glacier::uint); + + //data (total size is 0x98, base size is 0x54) + Glacier::ZREF m_rOwner; + int m_field58; + int m_Id; + int m_stateMask; + EControlState m_currentState; + int m_availableStates; + int m_rControlToFocus1; + int m_rControlToFocus2; + int m_rControlToFocus3; + int m_rControlToFocus4; + bool m_bNotifyControl; + bool m_field7D; + bool m_field7E; + bool m_field7F; + int m_field80; + int m_field84; + int m_field88; + int m_field8C; + int m_field90; + int m_field94; + }; +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/include/BloodMoney/Game/UI/ZColorSet.h b/ReHitman/BloodMoney/include/BloodMoney/Game/UI/ZColorSet.h new file mode 100644 index 0000000..46f66e1 --- /dev/null +++ b/ReHitman/BloodMoney/include/BloodMoney/Game/UI/ZColorSet.h @@ -0,0 +1,24 @@ +#pragma once + +#include + +namespace Hitman::BloodMoney { + class ZColorSet : public ZGUIBase { + public: + enum EColorIndex { + DisableColor, + FocusColor, + NormalColor + }; + + //vftable (no changes) + //api + uint32_t GetColor(EColorIndex colorIndex); + + //data (total size is 0x58, base size is 0x48) + int m_field48; + uint32_t m_NormalColor; + uint32_t m_FocusColor; + uint32_t m_DisableColor; + }; +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/include/BloodMoney/Game/UI/ZFONT.h b/ReHitman/BloodMoney/include/BloodMoney/Game/UI/ZFONT.h new file mode 100644 index 0000000..c7f290e --- /dev/null +++ b/ReHitman/BloodMoney/include/BloodMoney/Game/UI/ZFONT.h @@ -0,0 +1,32 @@ +#pragma once + +#include + +namespace Hitman::BloodMoney { + struct SCharInfo { + uint32_t charCode; + uint32_t unk0; + uint32_t unk1; + uint32_t unk2; + uint32_t unk3; + }; + + enum EFontFilterMode { + FFM_Normal, + FFM_Add, + FFM_Sub, + FFM_Invert + }; + + class ZFONT : public ZWINOBJ { + public: + // vftable + // at least 5 virtual methods + virtual int GetNumTextures(); // It's pure virtual for base class ZFONT + virtual SCharInfo* GetCharInfo(unsigned int); // It's pure virtual for base class ZFONT + virtual int GetMaxHeight(); // It's pure virtual for base class ZFONT + virtual bool ContainsChar(unsigned int); // It's pure virtual for base class ZFONT + virtual void* GetKerning(unsigned int, unsigned int); // It's pure virtual for base class ZFONT + // data (size is 0x88, base size is 0x88) + }; +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/include/BloodMoney/Game/UI/ZGUIBase.h b/ReHitman/BloodMoney/include/BloodMoney/Game/UI/ZGUIBase.h index 3db5b9f..5c94525 100644 --- a/ReHitman/BloodMoney/include/BloodMoney/Game/UI/ZGUIBase.h +++ b/ReHitman/BloodMoney/include/BloodMoney/Game/UI/ZGUIBase.h @@ -5,14 +5,20 @@ namespace Hitman::BloodMoney { class ZHM3MenuElements; + class ZWINGROUP; class ZGUIBase { public: - char m_name[64]; //0x0004 - Glacier::ZVector2 m_position; //0x0044 - + // vtable virtual void readParams(const char**, ZHM3MenuElements*); virtual void addElement(const char*, ZGUIBase*); + + // api + void GetSize(ZWINGROUP* pGroup, Glacier::Vector2* pSize); + + // data (total size is 0x48) + char m_name[0x40] { 0 }; //0x0004 + Glacier::ZVector2 m_position {}; //0x0044 }; } \ No newline at end of file diff --git a/ReHitman/BloodMoney/include/BloodMoney/Game/UI/ZHM3InventoryMenu.h b/ReHitman/BloodMoney/include/BloodMoney/Game/UI/ZHM3InventoryMenu.h new file mode 100644 index 0000000..253e152 --- /dev/null +++ b/ReHitman/BloodMoney/include/BloodMoney/Game/UI/ZHM3InventoryMenu.h @@ -0,0 +1,25 @@ +#pragma once + +#include "ZNavigator.h" + +namespace Hitman::BloodMoney { + class ZHM3InventoryMenu : public ZNavigator { + public: + //vftable (no changes) + //api + void InitInventoryList(); + void CloseItemView(); + void CloseInventoryMenu(); + void UpdateItemView(); + void UpdateItemInfo(); + void SpinCircle(bool); + void TurnLeft(); + void TurnRight(); + + //data (total size is 0x1FF8, base size is 0x98) + int m_field98; + int m_field9C; + int m_field100; + //TODO: Complete fields list + }; +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/include/BloodMoney/Game/UI/ZHM3MenuElements.h b/ReHitman/BloodMoney/include/BloodMoney/Game/UI/ZHM3MenuElements.h index 2b83371..9841c87 100644 --- a/ReHitman/BloodMoney/include/BloodMoney/Game/UI/ZHM3MenuElements.h +++ b/ReHitman/BloodMoney/include/BloodMoney/Game/UI/ZHM3MenuElements.h @@ -2,6 +2,7 @@ namespace Hitman::BloodMoney { + class ZGUIBase; class ZXMLGUISystem; class ZStandardMenuFactory; class ZHM3MenuFactory; @@ -27,5 +28,8 @@ namespace Hitman::BloodMoney virtual void WindowClosed(const char* menuName); virtual void GetOptionsInterface(); virtual void GetActivatedBy(int); + + // === api === + ZGUIBase* GetGUIElement(const char* psElementName); }; } \ No newline at end of file diff --git a/ReHitman/BloodMoney/include/BloodMoney/Game/UI/ZKerningFont.h b/ReHitman/BloodMoney/include/BloodMoney/Game/UI/ZKerningFont.h new file mode 100644 index 0000000..aeeedce --- /dev/null +++ b/ReHitman/BloodMoney/include/BloodMoney/Game/UI/ZKerningFont.h @@ -0,0 +1,13 @@ +#include + +namespace Hitman::BloodMoney { + class ZKerningFont : public ZTTFONT { + public: + // vftable + // custom api + static ZKerningFont* Create(); + + // data (size is 0x9C, base size is 0x98) + int m_field98; + }; +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/include/BloodMoney/Game/UI/ZLINEOBJ.h b/ReHitman/BloodMoney/include/BloodMoney/Game/UI/ZLINEOBJ.h new file mode 100644 index 0000000..3bf5aff --- /dev/null +++ b/ReHitman/BloodMoney/include/BloodMoney/Game/UI/ZLINEOBJ.h @@ -0,0 +1,25 @@ +#pragma once + +#include + +namespace Hitman::BloodMoney +{ + class ZLINEOBJ : public ZCHAROBJ + { + public: + // vftable + virtual void Wrap(); + virtual int GetCharWidth(const char**); + virtual int GetStringWidth(const char* str, int length); + virtual void SetWidth(int); + virtual float GetWidth(); + + // custom method + static ZLINEOBJ* Create(); + + // data (total size is 0xAC, base size is 0xA0) + int m_fieldA0; + int m_fieldA4; + int m_fieldA8; + }; +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/include/BloodMoney/Game/UI/ZNavigator.h b/ReHitman/BloodMoney/include/BloodMoney/Game/UI/ZNavigator.h new file mode 100644 index 0000000..b7f522e --- /dev/null +++ b/ReHitman/BloodMoney/include/BloodMoney/Game/UI/ZNavigator.h @@ -0,0 +1,55 @@ +#pragma once + +#include "IGUIElement.h" + +namespace Hitman::BloodMoney { + class ZNavigator : public IGUIElement { + public: + //vftable + virtual void SetText(); + virtual void ForceSetText(const char* psText); + + //data (total size is 0x98, base size is 0x6C) + char m_sText[12]; + char m_sMoveFocus[12]; + int m_iMoveButton; + bool m_bReceiveAllInput; + bool m_bIsLink; + bool m_bDisable; + bool m_bTakeFocus; + bool m_bMouseColiOnHiddenObjects; + bool m_field8D; + bool m_field8E; + bool m_field8F; + int m_field90; + int m_field94; + /** + * Class list: + * + * Class Size + * ---------------------------------- + * ZAgeCheck 0x98 + * ZBribesNavigator 0x98 + * ZBuyUpgrade 0x98 + * ZClearSavedAccount 0x98 + * ZContinueToNextMission 0x98 + * ZCreateAccountClass 0x98 + * ZDefaultButton 0x98 + * ZDemoStartTraining 0x98 + * ZMissionCompleted 0x98 + * ZNetworkUpdateYes 0x98 + * ZNewButton 0x98 + * ZOnlineAgreementAccept 0x98 + * ZQuitGame 0x98 + * ZCloseWindow 0x9C + * ZCompleteMission 0xA0 + * ZNavigatorGeneric 0xA4 + * ZClearLoginNames 0xA4 + * ZLoginNames 0xA4 + * ZLoadScene 0xA4 + * ZNetConfig 0xA8 + * ZCreateProfile 0xB0 + * ZHM3InventoryMenu 0x1FF8 + */ + }; +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/include/BloodMoney/Game/UI/ZOSD.h b/ReHitman/BloodMoney/include/BloodMoney/Game/UI/ZOSD.h index 4fc9e54..c78a565 100644 --- a/ReHitman/BloodMoney/include/BloodMoney/Game/UI/ZOSD.h +++ b/ReHitman/BloodMoney/include/BloodMoney/Game/UI/ZOSD.h @@ -7,10 +7,38 @@ namespace Hitman::BloodMoney { + class ZLINEOBJ; + class ZOSD : public Glacier::ZSTDOBJ { public: //vftable (no custom methods here) + // custom api + /** + * @brief Show notification message + * @param message + * @param shouldPlayNotificationSound + */ + void AddInfo(const char* message, bool shouldPlayNotificationSound); + + /** + * @brief Show warning message in-game + * @param message + * @param shouldPlayNotificationSound + */ + void AddWarning(const char* message, bool shouldPlayNotificationSound); + + /** + * @brief Show hint in-game + * @param message message in brief window + * @param a2 unknown flag + * @param shouldPlayNotificationSound - true - play sound + * @param osdElement - unknown value, but looks like it's not used + * @param a6 - unknown, but it's used only for M00 + * @param tutorialId - if not null will be used localization from m00/Tutorials/{tutorialId} + */ + void AddHint(const char* message, bool a2, bool shouldPlayNotificationSound, int osdElement, bool a6, const char* tutorialId); + //data (total size is 0x8FC, base size is 0x10) char m_field10; char field_11; @@ -47,7 +75,7 @@ namespace Hitman::BloodMoney int m_field48; int m_field4C_REF; int m_field50_REF; - int m_field54; + ZLINEOBJ* m_pSubtitles; int m_field58; int m_field5C; int m_field60; diff --git a/ReHitman/BloodMoney/include/BloodMoney/Game/UI/ZTTFONT.h b/ReHitman/BloodMoney/include/BloodMoney/Game/UI/ZTTFONT.h new file mode 100644 index 0000000..d7bd9c1 --- /dev/null +++ b/ReHitman/BloodMoney/include/BloodMoney/Game/UI/ZTTFONT.h @@ -0,0 +1,19 @@ +#pragma once + +#include + +namespace Hitman::BloodMoney { + class ZTTFONT : public ZFONT + { + public: + // vftable + // custom api + static ZTTFONT* Create(); + + // data (size is 0x98, base size is 0x88) + int m_field88; + int m_field8C; + int m_field90; + int m_field94; + }; +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/include/BloodMoney/Game/UI/ZWINGROUP.h b/ReHitman/BloodMoney/include/BloodMoney/Game/UI/ZWINGROUP.h index 6b9ff2d..2d1180b 100644 --- a/ReHitman/BloodMoney/include/BloodMoney/Game/UI/ZWINGROUP.h +++ b/ReHitman/BloodMoney/include/BloodMoney/Game/UI/ZWINGROUP.h @@ -6,7 +6,6 @@ namespace Hitman::BloodMoney { class ZWINDOWS; - struct SMouseColi; class ZWINGROUP : public Glacier::ZGROUP { @@ -14,7 +13,7 @@ namespace Hitman::BloodMoney //vftable virtual ZWINDOWS* GetSystem(); virtual void WndMessage(Glacier::ZWMEVENT*); - virtual void GetMouseColi(SMouseColi*, float*, float*); + virtual void GetMouseColi(Glacier::SMouseColi*, float*, float*); virtual void RecalcMaxMin(); virtual void CalcRealCenSize(float*, float*); virtual void SetText(const char*); diff --git a/ReHitman/BloodMoney/include/BloodMoney/Game/UI/ZWINOBJ.h b/ReHitman/BloodMoney/include/BloodMoney/Game/UI/ZWINOBJ.h new file mode 100644 index 0000000..b549997 --- /dev/null +++ b/ReHitman/BloodMoney/include/BloodMoney/Game/UI/ZWINOBJ.h @@ -0,0 +1,83 @@ +#pragma once + +#include +#include +#include + +namespace Hitman::BloodMoney +{ + using SPRITETYPE = int; + + class ZWINOBJ : public Glacier::ZSTDOBJ { + public: + // vftable + virtual void CreateSpriteArray(uint32_t, uint32_t, SPRITETYPE); + virtual void FreeSpriteArray(uint32_t); + virtual void DrawRaw(Glacier::ZDrawBuffer*, float const*, float const*, float const*, float); + virtual void Draw(Glacier::ZDrawBuffer *, Glacier::ZCameraSpace*, float const*, float const*); + virtual void Draw(Glacier::ZDrawBuffer*, Glacier::ZCameraSpace*, Glacier::ZMat3x3* transform, Glacier::Vector3* position, unsigned char); + virtual void RecalcMaxMin(); + virtual void GetMouseColi(Glacier::Vector4*, float*, float*); + virtual void RemoveGeometry(); + virtual void LoadSaveGeometry(Glacier::ZPackedInput*, bool); + virtual void SetDrawMode(uint32_t, int); + /** + * a2 table: + * 1 -> 0x16C012; + * 2 -> fault + * 3: -> 0x16C011; + * 4 -> fault + * 5 -> 0x16C210 + * 6 -> 0x16C211 + * other -> 0x16C010 + */ + virtual int32_t CalcDrawMode(int a2, int a3); + virtual void SetDrawing(); + virtual void SetColor(uint32_t, bool); + virtual void SetColor(Glacier::Vector3* pColor); // Vec3F or other + virtual void SetColor(uint32_t); + virtual void SetAlpha(uint8_t); + virtual void SetScale(Glacier::Vector2* scale, bool /* unused */); + virtual void SetAlignment(uint8_t alignType); + virtual uint8_t GetAlignment(); + virtual void SetPos(float, float, float); + virtual void SetType(uint8_t); + virtual uint32_t GetDrawMode(); + virtual void SetPriority(uint8_t); + + // api + int GetTexture(unsigned int iTextureType); + + // data (total size is 0x88, base size is 0x10) + int m_field10; //+0x10 + int m_field14; //+0x14 + int m_field18; //+0x18 + int m_field1C; //+0x1C + int m_field20; //+0x20 + int m_field24; //+0x24 + int m_field28; //+0x28 + int m_field2C; //+0x2C + int m_field30; //+0x30 + int m_field34; //+0x34 + int m_field38; //+0x38 + int m_field3C; //+0x3C + int m_field40; //+0x40 + int m_field44; //+0x44 + int m_field48; //+0x48 + int m_field4C; //+0x4C + int m_field50; //+0x50 + int m_field54; //+0x54 + int m_field58; //+0x58 + int m_field5C; //+0x5C + int m_field60; //+0x60 + int m_field64; //+0x64 + int m_field68; //+0x68 + int m_field6C; //+0x6C + int m_field70; //+0x70 + int m_field74; //+0x74 + int m_field78; //+0x78 + int m_field7C; //+0x7C + int m_field80; //+0x80 + int m_field84; //+0x84 + }; +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/include/BloodMoney/Game/UI/ZXMLGUISystem.h b/ReHitman/BloodMoney/include/BloodMoney/Game/UI/ZXMLGUISystem.h index ccdd6ee..c8c2e4c 100644 --- a/ReHitman/BloodMoney/include/BloodMoney/Game/UI/ZXMLGUISystem.h +++ b/ReHitman/BloodMoney/include/BloodMoney/Game/UI/ZXMLGUISystem.h @@ -19,5 +19,8 @@ namespace Hitman::BloodMoney /// vftable virtual void SetFocus(); virtual void AddOtherWindowCount(int); + + // api + ZWINDOW* GetTopWindow(); }; } \ No newline at end of file diff --git a/ReHitman/BloodMoney/include/BloodMoney/Game/UI/eZWUserEvents.h b/ReHitman/BloodMoney/include/BloodMoney/Game/UI/eZWUserEvents.h new file mode 100644 index 0000000..c42a438 --- /dev/null +++ b/ReHitman/BloodMoney/include/BloodMoney/Game/UI/eZWUserEvents.h @@ -0,0 +1,5 @@ +#pragma once + +namespace Hitman::BloodMoney { + enum class eZWUserEvents; +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/include/BloodMoney/Game/ZActor.h b/ReHitman/BloodMoney/include/BloodMoney/Game/ZActor.h new file mode 100644 index 0000000..cf54060 --- /dev/null +++ b/ReHitman/BloodMoney/include/BloodMoney/Game/ZActor.h @@ -0,0 +1,443 @@ +#pragma once + +#include +#include +#include + +namespace Hitman::BloodMoney +{ + class ZActor : public Glacier::ZLNKWHANDS + { + public: + // pub + enum ACTORSTATE + { + STATE_0 = 0, + STATE_1 = 1, + STATE_2 = 2, + STATE_3 =3 + }; + + enum PATH_CANCEL_REASONS + { + }; + + enum PATH_ERRORS + { + }; + + static constexpr Glacier::ZMSGID kAlarmMsg = 0x81A; + + // vftable + virtual void SetActorRootTM(float const*,float const*); + virtual void SetActorPosDir(float const*,float const*); + virtual void GetActorRootTM(float *,float *); + virtual void GetActorWorldPosition(float *); + virtual void SetActorWorldPosition(float const*); + virtual bool CanPlayAnimSegment(Glacier::Animation::Header*, float, float, float const*, float const*, bool, float, float); + virtual bool IsUnconscious(); + virtual bool IsAwake(); + virtual bool IsSleeping(); + virtual void SetHero(uint32_t); + virtual void SetActorState(ZActor::ACTORSTATE); + virtual void OnViewEnter(); + virtual void OnViewLeave(); + virtual void* GetPathFinder4(); + virtual void EnablePathFinder(bool); + virtual void SetStopDistance(float); + virtual void SetEndDir(const Glacier::Vector3*); + virtual const Glacier::Vector3* GetEndDir(); + virtual void MoveToPosition(Glacier::ZVector3*, Glacier::ZVector3*); + virtual void SlideToPosition(Glacier::ZVector3*, Glacier::ZVector3*); + virtual void SetPathNotify(float); + virtual void SetPathNotifySyncToCycle(bool); + virtual void SetEndAction(bool); + virtual void RemovePath(uint8_t, ZActor::PATH_CANCEL_REASONS, bool); + virtual void SendPathDone(bool); + virtual void GetMoveFromPos(float *); + virtual void* FindNextPathBlocker(); + virtual void SetShootIntoGround(bool); + virtual void SetShootIntoGroundInFullbody(bool); + virtual void SetStayInsidePath(bool); + virtual void ShootIntoGround(float *, bool, bool); + virtual void ShootIntoGroundRegularly(float *, bool, bool, float); + virtual void SetMoveSpeedMultiplier(float); + virtual void SetPathFinderEnabled(bool); + virtual void OnPathRequest(uint32_t); + virtual void OnPathFinished(uint32_t); + virtual void OnPathCanceled(ZActor::PATH_CANCEL_REASONS); + virtual void OnPathCanceledLockedDoor(uint32_t); + virtual void OnPathError(ZActor::PATH_ERRORS); + virtual void OnPathNotify(void); + virtual void OnNewPath(void); + virtual void OnSound(Glacier::REFTAB*); + virtual void Die(); + virtual void DieByForce(float const*, float const*, float, uint32_t); + virtual void Resurrect(); + virtual void Knockout(); + virtual void Revive(); + virtual void* GetKnockedOut(); + virtual void* GetActorList(); + virtual void SetDisableIdleAnimation(bool); + virtual void* GetAudibleRoomList(); + virtual void LookAt(uint32_t); + virtual bool IsSeeing(); + virtual void SetSeeing(bool); + virtual bool IsVisible(); + virtual void SetVisible(bool); + virtual void WantToLookAt(Glacier::ZGEOM*, bool); + virtual void VerifyPlayerVisible(); + virtual void DeterminePathLookAt(Glacier::LocomotionInfo *, float *, float *, float *, float *); + virtual bool CanLookAt(Glacier::ZGEOM*); + virtual bool IsOnStairs(); + virtual void UpdatePositionOffScreen(); + virtual void UpdatePosition(); + virtual Glacier::Animation::Header* GetCurrentUBAnim(Glacier::ZItem*, Glacier::ZItem *, bool&); + virtual void SetHoldWeaponUBAnim(Glacier::Animation::Header*); + virtual uint32_t GetAnimOffset(bool const*); + virtual uint32_t GetAnimOffset(Glacier::Animation::Header*); + virtual Glacier::Animation::Header* GetAnimHeader(uint32_t); + virtual void ShootIntoGroundCallback(Glacier::SExtendedImpactInfo*); + + // Total size is 0x900, base size is 0x3D0) + Glacier::Vector3 m_ContactNormal; + int m_field3DC; + int m_field3E0; + int m_field3E4; + int m_field3E8; + int m_field3EC; + int m_field3F0; + Glacier::ZHumanBoid* m_boid; + int m_field3F8; + int m_field3FC; + int m_field400; + int m_field404; + int m_field408; + int m_field40C; + int m_field410; + int m_field414; + int m_field418; + int m_field41C; + int m_field420; + int m_field424; + int m_field428; + int m_field42C; + int m_field430; + int m_field434; + int m_field438; + int m_field43C; + int m_field440; + int m_field444; + int m_field448; + int m_field44C; + int m_field450; + int m_field454; + int m_field458; + int m_field45C; + int m_field460; + int m_field464; + int m_field468; + int m_field46C; + int m_field470; + int m_field474; + int m_field478; + int m_field47C; + bool m_MoveSetNr; + bool m_PreferredState; + bool m_LastPreferredState; + bool field_B3; + int m_field484; + int m_field488; + int m_field48C; + uint16_t m_iQuePos; + uint16_t m_iProgramQueSize; + int m_field494; + int m_field498; + int m_field49C; + int m_field4A0; + int m_field4A4; + int m_field4A8; + int m_field4AC; + int m_field4B0; + int m_field4B4; + int m_field4B8; + int m_field4BC; + int m_field4C0; + int m_field4C4; + int m_field4C8; + int m_field4CC; + int m_field4D0; + int m_field4D4; + int m_field4D8; + int m_field4DC; + int m_field4E0; + int m_field4E4; + int m_field4E8; + int m_field4EC; + int m_field4F0; + int m_field4F4; + int m_field4F8; + int m_field4FC; + int m_field500; + int m_field504; + int m_field508; + int m_field50C; + int m_field510; + int m_field514; + int m_field518; + int m_field51C; + int m_field520; + int m_field524; + int m_field528; + int m_field52C; + int m_field530; + int m_field534; + int m_field538; + int m_field53C; + int m_field540; + int m_field544; + int m_field548; + int m_field54C; + int m_field550; + int m_field554; + int m_field558; + int m_field55C; + int m_field560; + int m_field564; + int m_field568; + int m_field56C; + int m_pPathFinder; + int m_field574; + int m_field578; + bool m_Action0; + bool m_Action1; + bool m_iEndAction; + bool field_1AF; + int m_iNextPathTarget; + int m_field584; + int m_field588; + int m_iPathfinderDoorKeyMask; + int m_field590; + int m_field594; + int m_field598; + int m_field59C; + int m_field5A0; + int m_field5A4; + int m_field5A8; + int m_field5AC; + float m_fMoveSpeedMultiplier; + int m_field5B4; + int m_field5B8; + Glacier::Vector3 m_vEndDir; + Glacier::Vector3 m_vEndPos; + float m_fEndDist; + float m_fPathNotify; + float m_fPathNotifyNext; + bool m_lPathDoneFlag; + bool m_ePathCancelReason; + bool m_actorState; + bool field_213; + int m_VariationSeed; + int m_VariationMask; + int m_field5EC; + int m_field5F0; + int m_field5F4; + int m_field5F8; + int m_field5FC; + int m_field600; + int m_field604; + int m_field608; + int m_field60C; + int m_field610; + int m_field614; + int m_field618; + int m_field61C; + int m_field620; + int m_field624; + int m_field628; + int m_field62C; + int m_field630; + int m_field634; + int m_field638; + int m_field63C; + int m_field640; + int m_field644; + int m_field648; + int m_field64C; + int m_field650; + int m_field654; + int m_field658; + int m_field65C; + int m_field660; + int m_field664; + int m_field668; + int m_field66C; + int m_field670; + int m_field674; + int m_field678; + int m_field67C; + int m_field680; + int m_field684; + int m_field688; + int m_field68C; + int m_field690; + int m_field694; + int m_field698; + int m_field69C; + int m_field6A0; + int m_field6A4; + int m_field6A8; + int m_field6AC; + int m_field6B0; + int m_field6B4; + int m_field6B8; + int m_field6BC; + int m_field6C0; + int m_field6C4; + int m_field6C8; + int m_field6CC; + int m_field6D0; + int m_field6D4; + int m_field6D8; + int m_field6DC; + int m_field6E0; + int m_field6E4; + int m_field6E8; + int m_field6EC; + int m_field6F0; + int m_field6F4; + int m_field6F8; + int m_field6FC; + int m_field700; + int m_field704; + int m_field708; + int m_field70C; + int m_field710; + int m_field714; + int m_field718; + int m_field71C; + int m_field720; + int m_field724; + int m_field728; + int m_field72C; + int m_field730; + int m_field734; + int m_field738; + int m_field73C; + int m_field740; + int m_field744; + int m_field748; + int m_field74C; + int m_field750; + int m_field754; + int m_field758; + int m_field75C; + int m_field760; + int m_field764; + int m_field768; + int m_field76C; + int m_field770; + int m_field774; + int m_field778; + int m_field77C; + int m_field780; + int m_field784; + int m_field788; + int m_field78C; + int m_field790; + int m_field794; + int m_field798; + int m_field79C; + int m_field7A0; + int m_field7A4; + int m_field7A8; + int m_field7AC; + int m_field7B0; + int m_field7B4; + int m_field7B8; + int m_field7BC; + int m_field7C0; + int m_field7C4; + int m_field7C8; + int m_field7CC; + int m_field7D0; + int m_field7D4; + int m_field7D8; + int m_field7DC; + int m_field7E0; + int m_field7E4; + int m_field7E8; + int m_field7EC; + int m_field7F0; + int m_field7F4; + int m_field7F8; + int m_field7FC; + int m_field800; + int m_field804; + int m_field808; + int m_field80C; + int m_field810; + int m_field814; + int m_field818; + int m_field81C; + int m_field820; + int m_field824; + int m_field828; + int m_field82C; + int m_field830; + int m_field834; + int m_field838; + int m_field83C; + int m_field840; + int m_field844; + int m_field848; + int m_field84C; + int m_field850; + int m_field854; + int m_field858; + int m_field85C; + int m_field860; + int m_field864; + int m_field868; + int m_field86C; + int m_field870; + int m_field874; + int m_field878; + int m_field87C; + int m_field880; + int m_field884; + int m_field888; + int m_field88C; + int m_field890; + int m_field894; + int m_field898; + int m_field89C; + int m_field8A0; + int m_field8A4; + int m_field8A8; + int m_field8AC; + int m_field8B0; + int m_field8B4; + int m_field8B8; + int m_field8BC; + int m_field8C0; + int m_field8C4; + int m_field8C8; + int m_field8CC; + int m_field8D0; + int m_field8D4; + bool m_field8D8; + bool m_field8D9; + bool m_field8DA; + bool m_field8DB; + int m_field8DC; + int m_lShootIntoGroundFlag; + int m_field8E4; + int m_animCurrent; // +0x8E8 + int m_field8EC; + int m_field8F0; + int m_field8F4; + int m_field8F8; + int m_field8FC; + }; +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/include/BloodMoney/Game/ZCloth.h b/ReHitman/BloodMoney/include/BloodMoney/Game/ZCloth.h new file mode 100644 index 0000000..b291fc5 --- /dev/null +++ b/ReHitman/BloodMoney/include/BloodMoney/Game/ZCloth.h @@ -0,0 +1,56 @@ +#pragma once + +#include + +namespace Hitman::BloodMoney +{ + class ZCloth : public Glacier::ZSTDOBJ + { + public: + // vftable + virtual void HandleTensions(float *); + virtual void ClothInitialize(bool); + + // Data (total size is 0xB0, ZSTDOBJ ends at 0xC) + int field_10; + int field_14; + int field_18; + int field_1C; + int field_20; + int field_24; + int field_28; + int field_2C; + int field_30; + int field_34; + int field_38; + int field_3C; + int field_40; + int field_44; + int field_48; + int field_4C; + int field_50; + int field_54; + int field_58; + int field_5C; + int field_60; + int field_64; + int field_68; + int field_6C; + int field_70; + int field_74; + int field_78; + int field_7C; + int field_80; + int field_84; + int field_88; + int field_8C; + int field_90; + int field_94; + int field_98; + int field_9C; + int field_A0; + int field_A4; + int field_A8; + int field_AC; + }; +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/include/BloodMoney/Game/ZClothTracker.h b/ReHitman/BloodMoney/include/BloodMoney/Game/ZClothTracker.h new file mode 100644 index 0000000..58bb84a --- /dev/null +++ b/ReHitman/BloodMoney/include/BloodMoney/Game/ZClothTracker.h @@ -0,0 +1,36 @@ +#pragma once + +#include + +namespace Hitman::BloodMoney { + class ZClothTracker : public Glacier::ZEventBase + { + public: + //vftable (no changes) + //api + //static api + //data (total size is 0x88, base size is 0x30) + int m_field30; + int m_field34; + int m_field38; + int m_field3C; + int m_field40; + int m_field44; + int m_field48; + int m_field4C; + int m_field50; + int m_field54; + int m_field58; + int m_field5C; + int m_field60; + int m_field64; + float m_field68; + float m_field6C; + int m_field70; + int m_field74; + int m_field78; + int m_field7C; + int m_field80; + int m_field84; + }; +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/include/BloodMoney/Game/ZHM3Actor.h b/ReHitman/BloodMoney/include/BloodMoney/Game/ZHM3Actor.h index 4052c98..2ab5294 100644 --- a/ReHitman/BloodMoney/include/BloodMoney/Game/ZHM3Actor.h +++ b/ReHitman/BloodMoney/include/BloodMoney/Game/ZHM3Actor.h @@ -6,30 +6,11 @@ #include #include #include +#include +#include namespace Hitman::BloodMoney { - class ZLnkAction; - class ZHM3Actor; - - class ActorInfos - { - public: - char pad_0000[0x50]; //0x0000 - Glacier::ZEntityLocator* location; //0x0050 - char pad_0054[12]; //0x0054 - ZHM3Actor* actor; //0x0060 - char pad_0064[8]; //0x0064 - char* unkType; //0x006C - char pad_0070[80]; //0x0070 - uint32_t equipment; //0x00C0 [ptr] - char pad_00C4[12]; //0x00C4 - Glacier::ZGEOM* attachment; //0x00D0 [ptr] - char pad_00D4[92]; //0x00D4 - uint32_t unk_equ2; //0x0130 [ptr] - char pad_0134[12]; //0x0134 - }; //Size: 0x0140 - enum EActorMapRole : int { Civilian = 0, Enemy = 1, @@ -41,615 +22,218 @@ namespace Hitman::BloodMoney Default = Civilian }; - enum class UnknownEnum : int { //From 00637BD0 - Value0 = 0x2000000C, - Value1 = 0x2000000E, - Value2 = 0x2000000F, - Value3 = 0x20000010, - Value4 = 0x20000011, - Value5 = 0x20000009, - Value6 = 0x2000000A, - Value7 = 0x2000000D, - Other = 0x0 - }; - - enum class UnknownEnum1 : int { - Value7 = 7, - Value8 = 8, - /// also - Value5 = 5, - Value6 = 6, - Value9 = 9, - Value10 = 10, - Value11 = 11, - Value12 = 12, - Value13 = 13, - Value14 = 14, - Value15 = 15 + enum EBloodSpurtType + { + BloodSpurt = 0x0, + KnifeSlash = 0x1, + KnifeSlit = 0x2, + KnifeImpact = 0x3, + BluntImpact = 0x4, }; - class ZHM3Actor + class ZHM3Actor : public ZActor { public: - // === sub types === - enum class ActorState : int32_t { - // Pure - Status_0 = 0, - Status_1 = 1, - Status_2 = 2, - Status_3 = 3, - Reset = 0xFF, - // User - Sleep = Status_2, ///< Actor will not be dead - Normal = Status_1, ///< Actor will be in normal state - StopAI = Status_0, ///< Actor will not follow by scripts, will stay in inactive mode. Also in this mode actor is in god mode - ResetAI = Status_3 ///< Actor will be resetted. Any damage, screaming or other stuff will be flushed (not in god mode!) - }; + // vftable + virtual void ActivateAnimSegmentWithCameraBone(Glacier::Animation::Header*, int, float, float, float); + virtual void PlaySpeechResource(uint32_t, int); + virtual void PlaySpeechResourceWithFilter(uint32_t, int, float, float, float); + virtual void SetWeapon(Glacier::ZREF); + virtual Glacier::ZREF GetWeapon(); + virtual void SetWeaponTemplate(Glacier::ZREF); + virtual Glacier::ZREF GetWeaponTemplate(); + virtual void FireWeapon(Glacier::ZREF, bool, float, bool); + virtual void Bite(int, float*, float*, float, float); + virtual void Punch(bool); + virtual void StunGunAttack(); + virtual void ThrowKnifeAtRef(Glacier::ZREF, Glacier::ZREF); + virtual void ActivateRagdollOrAnim(); + virtual void ActivateRagdollNextFrame(); + virtual void InitializeHitpoints(float); + virtual void SetHitpoints(float); + virtual float GetHitpoints(); + virtual void TakeDamage(float); + virtual int GetHealth(); + virtual float GetWeaponStrength(); + virtual bool IsDragEnabled(); + virtual Glacier::ZItemTemplate* GetItemTemplate(Glacier::ZREF); + virtual Glacier::ZItem* CreateItemFromItemTemplate(Glacier::ZREF); + virtual void ActivateItem(Glacier::ZREF, int); + virtual void ConcealItem(Glacier::ZREF, bool); + virtual void EnablePickupClothes(); + virtual void DisablePickupClothes(); + virtual bool IsWearingClothes(); + virtual void OnHitmanChangedClothes(); + virtual ZHM3HmAs* GetHitmanAs(); + virtual void* GetActorProperties(); + virtual void SetScriptUBAnim(Glacier::Animation::Header*, bool); + virtual uint32_t GetDeadBodyFlags(Glacier::ZLNKOBJ*); + virtual void StartDrag(uint32_t); + virtual void EndDrag(); + virtual bool GetAutoAimTarget(); + virtual void SetAutoAimTarget(bool); + virtual void StoreUBHoldAnims(); + virtual void MapUBHoldAnimsToIdx(); + virtual void GetItemAssignedUBAnim(Glacier::ZItem*); + virtual void LoadSave(Glacier::ZPackedInput*); + virtual void ActivateRigidBody(Glacier::SRigidBodyVelocity const*); - enum class SuiteMask : int32_t { - NoActor = 0b0000'0000'0000'0000'0000'0000'0000'0000, ///< This is not an actor (M13, wheelchair gui subactor kind) - SkinChangerNotSupported = 0b0000'0000'0000'0000'0000'0000'0000'0001, ///< This actor does not supports skin changer - Nude = 0b0000'0000'0000'0000'0000'0000'0000'0010, ///< Nude view of model (works only if the actor can share their suit, in other case works as Inivisble) - Invisible = 0b0000'0000'0000'0000'0000'0000'0000'0100, ///< Invisible view of the actor (possible model loading failure, I don't know) - OriginalView = 0b0000'0000'0000'0000'0000'0000'0000'0101, ///< Just original view of actor - Agent47_WithoutHeaddress = 0b0000'0000'0000'0000'0000'0000'0000'0110, ///< Sometimes works if suit have headdress (in other case will work as invisible) - Agent47_WithHeaddress = 0b0000'0000'0000'0000'0000'0000'0000'0111 ///< Works in 99% of situations with actors who can share their suit - }; + // api + void PreparePath(); + void ActivateBloodSpurt(const Glacier::Vector3* pInvDir, const Glacier::Vector3* pCollisionPos, EBloodSpurtType type); - // === vftable === - virtual void Function_0000(); //#0 +0 .rdata:00796334 - virtual void Function_0001(); //#1 +4 .rdata:00796338 - virtual void Function_0002(); //#2 +8 .rdata:0079633c - virtual void Function_0003(); //#3 +c .rdata:00796340 - virtual void loadParameters(Glacier::ZPackedInput* params); //#4 +10 .rdata:00796344 - virtual void Function_0005(); //#5 +14 .rdata:00796348 - virtual void Function_0006(); //#6 +18 .rdata:0079634c - virtual void Function_0007(); //#7 +1c .rdata:00796350 - virtual void Function_0008(); //#8 +20 .rdata:00796354 - virtual void Function_0009(); //#9 +24 .rdata:00796358 - virtual void Function_0010(); //#10 +28 .rdata:0079635c - virtual void Function_0011(); //#11 +2c .rdata:00796360 - virtual void Function_0012(); //#12 +30 .rdata:00796364 - virtual void Function_0013(); //#13 +34 .rdata:00796368 - virtual void Function_0014(); //#14 +38 .rdata:0079636c - virtual void Function_0015(); //#15 +3c .rdata:00796370 - virtual void Function_0016(); //#16 +40 .rdata:00796374 - virtual void Function_0017(); //#17 +44 .rdata:00796378 - virtual void Function_0018(); //#18 +48 .rdata:0079637c - virtual void Function_0019(); //#19 +4c .rdata:00796380 - virtual void Function_0020(); //#20 +50 .rdata:00796384 - virtual void Function_0021(); //#21 +54 .rdata:00796388 - virtual void Function_0022(); //#22 +58 .rdata:0079638c - virtual void Function_0023(); //#23 +5c .rdata:00796390 - virtual void Function_0024(); //#24 +60 .rdata:00796394 - virtual void Function_0025(); //#25 +64 .rdata:00796398 - virtual void Function_0026(); //#26 +68 .rdata:0079639c - virtual void Function_0027(); //#27 +6c .rdata:007963a0 - virtual void Function_0028(); //#28 +70 .rdata:007963a4 - virtual void Function_0029(); //#29 +74 .rdata:007963a8 - virtual void Function_0030(); //#30 +78 .rdata:007963ac - virtual void Function_0031(); //#31 +7c .rdata:007963b0 - virtual void Function_0032(); //#32 +80 .rdata:007963b4 - virtual void Function_0033(); //#33 +84 .rdata:007963b8 - virtual void Function_0034(); //#34 +88 .rdata:007963bc - virtual void Function_0035(); //#35 +8c .rdata:007963c0 - virtual void Function_0036(); //#36 +90 .rdata:007963c4 - virtual void Function_0037(); //#37 +94 .rdata:007963c8 - virtual void Function_0038(); //#38 +98 .rdata:007963cc - virtual void Function_0039(); //#39 +9c .rdata:007963d0 - virtual void Function_0040(); //#40 +a0 .rdata:007963d4 - virtual void Function_0041(); //#41 +a4 .rdata:007963d8 - virtual void Function_0042(); //#42 +a8 .rdata:007963dc - virtual void Function_0043(); //#43 +ac .rdata:007963e0 - virtual void Function_0044(); //#44 +b0 .rdata:007963e4 - virtual void Function_0045(); //#45 +b4 .rdata:007963e8 - virtual void Function_0046(); //#46 +b8 .rdata:007963ec - virtual void Function_0047(); //#47 +bc .rdata:007963f0 - virtual void Function_0048(); //#48 +c0 .rdata:007963f4 - virtual void Function_0049(); //#49 +c4 .rdata:007963f8 - virtual void Function_0050(); //#50 +c8 .rdata:007963fc - virtual void Function_0051(); //#51 +cc .rdata:00796400 - virtual void Function_0052(); //#52 +d0 .rdata:00796404 - virtual void Function_0053(); //#53 +d4 .rdata:00796408 - virtual void Function_0054(); //#54 +d8 .rdata:0079640c - virtual void Function_0055(); //#55 +dc .rdata:00796410 - virtual void Function_0056(); //#56 +e0 .rdata:00796414 - virtual void Function_0057(); //#57 +e4 .rdata:00796418 - virtual void Function_0058(); //#58 +e8 .rdata:0079641c - virtual void Function_0059(); //#59 +ec .rdata:00796420 - virtual void Function_0060(); //#60 +f0 .rdata:00796424 - virtual void Function_0061(); //#61 +f4 .rdata:00796428 - virtual void Function_0062(); //#62 +f8 .rdata:0079642c - virtual void Function_0063(); //#63 +fc .rdata:00796430 - virtual Glacier::ZEventBase* FindEvent(const char* name); //#64 +100 .rdata:00796434 - virtual void Function_0065(); //#65 +104 .rdata:00796438 - virtual void Function_0066(); //#66 +108 .rdata:0079643c - virtual void Function_0067(); //#67 +10c .rdata:00796440 - virtual void Function_0068(); //#68 +110 .rdata:00796444 - virtual void Function_0069(); //#69 +114 .rdata:00796448 - virtual void Function_0070(); //#70 +118 .rdata:0079644c - virtual void Function_0071(); //#71 +11c .rdata:00796450 - virtual void sendEvent(std::uintptr_t ev, int unk0, int unk1); //#72 +120 .rdata:00796454 - virtual void Function_0073(); //#73 +124 .rdata:00796458 - virtual void Function_0074(); //#74 +128 .rdata:0079645c - virtual void Function_0075(); //#75 +12c .rdata:00796460 - virtual void Function_0076(); //#76 +130 .rdata:00796464 - virtual void Function_0077(); //#77 +134 .rdata:00796468 - virtual void Function_0078(); //#78 +138 .rdata:0079646c - virtual void Function_0079(); //#79 +13c .rdata:00796470 - virtual void Function_0080(); //#80 +140 .rdata:00796474 - virtual void Function_0081(); //#81 +144 .rdata:00796478 - virtual void Function_0082(); //#82 +148 .rdata:0079647c - virtual void Function_0083(); //#83 +14c .rdata:00796480 - virtual void Function_0084(); //#84 +150 .rdata:00796484 - virtual void Function_0085(); //#85 +154 .rdata:00796488 - virtual void Function_0086(); //#86 +158 .rdata:0079648c - virtual void processAI(); //#87 +15c .rdata:00796490 - virtual void Function_0088(); //#88 +160 .rdata:00796494 - virtual void dropAnimation(int, int); //#89 +164 .rdata:00796498 - virtual void Function_0090(); //#90 +168 .rdata:0079649c - virtual void Function_0091(); //#91 +16c .rdata:007964a0 - virtual void Function_0092(); //#92 +170 .rdata:007964a4 - virtual void Function_0093(); //#93 +174 .rdata:007964a8 - virtual void Function_0094(); //#94 +178 .rdata:007964ac - virtual void Function_0095(); //#95 +17c .rdata:007964b0 - virtual void Function_0096(); //#96 +180 .rdata:007964b4 - virtual void Function_0097(); //#97 +184 .rdata:007964b8 - virtual void Function_0098(); //#98 +188 .rdata:007964bc - virtual void Function_0099(); //#99 +18c .rdata:007964c0 - virtual void Function_0100(); //#100 +190 .rdata:007964c4 - virtual void Function_0101(); //#101 +194 .rdata:007964c8 - virtual void Function_0102(); //#102 +198 .rdata:007964cc - virtual void Function_0103(); //#103 +19c .rdata:007964d0 - virtual void Function_0104(); //#104 +1a0 .rdata:007964d4 - virtual void Function_0105(); //#105 +1a4 .rdata:007964d8 - virtual void Function_0106(); //#106 +1a8 .rdata:007964dc - virtual void Function_0107(); //#107 +1ac .rdata:007964e0 - virtual void Function_0108(); //#108 +1b0 .rdata:007964e4 - virtual void Function_0109(); //#109 +1b4 .rdata:007964e8 - virtual void Function_0110(); //#110 +1b8 .rdata:007964ec - virtual void Function_0111(); //#111 +1bc .rdata:007964f0 - virtual void Function_0112(); //#112 +1c0 .rdata:007964f4 - virtual void Function_0113(); //#113 +1c4 .rdata:007964f8 - virtual void Function_0114(); //#114 +1c8 .rdata:007964fc - virtual void Function_0115(); //#115 +1cc .rdata:00796500 - virtual void Function_0116(); //#116 +1d0 .rdata:00796504 - virtual void Function_0117(); //#117 +1d4 .rdata:00796508 - virtual void Function_0118(); //#118 +1d8 .rdata:0079650c - virtual void Function_0119(); //#119 +1dc .rdata:00796510 - virtual void Function_0120(); //#120 +1e0 .rdata:00796514 - virtual void Function_0121(); //#121 +1e4 .rdata:00796518 - virtual void Function_0122(); //#122 +1e8 .rdata:0079651c - virtual void Function_0123(); //#123 +1ec .rdata:00796520 - virtual void Function_0124(); //#124 +1f0 .rdata:00796524 - virtual void Function_0125(Glacier::ZAnimationInfo* _anim, int _flag, float a0, float a1, float a2); //#125 +1f4 .rdata:00796528 - virtual Glacier::ZAnimationInfo** setAnimation(Glacier::ZAnimationInfo* animation, int unknown0 = 1); //#126 +1f8 .rdata:0079652c - virtual void Function_0127(); //#127 +1fc .rdata:00796530 - virtual void Function_0128(); //#128 +200 .rdata:00796534 - virtual void Function_0129(); //#129 +204 .rdata:00796538 - virtual void Function_0130(); //#130 +208 .rdata:0079653c - virtual void Function_0131(); //#131 +20c .rdata:00796540 - virtual void Function_0132(); //#132 +210 .rdata:00796544 - virtual void Function_0133(); //#133 +214 .rdata:00796548 - virtual void Function_0134(); //#134 +218 .rdata:0079654c - virtual void Function_0135(); //#135 +21c .rdata:00796550 - virtual void Function_0136(); //#136 +220 .rdata:00796554 - virtual void Function_0137(); //#137 +224 .rdata:00796558 - virtual void Function_0138(); //#138 +228 .rdata:0079655c - virtual void Function_0139(); //#139 +22c .rdata:00796560 - virtual void Function_0140(); //#140 +230 .rdata:00796564 - virtual void Function_0141(); //#141 +234 .rdata:00796568 - virtual void Function_0142(); //#142 +238 .rdata:0079656c - virtual void Function_0143(); //#143 +23c .rdata:00796570 - virtual void Function_0144(); //#144 +240 .rdata:00796574 - virtual void Function_0145(); //#145 +244 .rdata:00796578 - virtual void Function_0146(); //#146 +248 .rdata:0079657c - virtual void Function_0147(); //#147 +24c .rdata:00796580 - virtual void Function_0148(); //#148 +250 .rdata:00796584 - virtual void Function_0149(); //#149 +254 .rdata:00796588 - virtual void Function_0150(); //#150 +258 .rdata:0079658c - virtual void Function_0151(); //#151 +25c .rdata:00796590 - virtual void Function_0152(); //#152 +260 .rdata:00796594 - virtual void Function_0153(); //#153 +264 .rdata:00796598 - virtual void Function_0154(); //#154 +268 .rdata:0079659c - virtual void Function_0155(); //#155 +26c .rdata:007965a0 - virtual void Function_0156(); //#156 +270 .rdata:007965a4 - virtual void Function_0157(); //#157 +274 .rdata:007965a8 - virtual void Function_0158(); //#158 +278 .rdata:007965ac - virtual void Function_0159(); //#159 +27c .rdata:007965b0 - virtual void Function_0160(); //#160 +280 .rdata:007965b4 - virtual void Function_0161(); //#161 +284 .rdata:007965b8 - virtual void Function_0162(); //#162 +288 .rdata:007965bc - virtual void Function_0163(); //#163 +28c .rdata:007965c0 - virtual void Function_0164(); //#164 +290 .rdata:007965c4 - virtual void Function_0165(); //#165 +294 .rdata:007965c8 - virtual void Function_0166(); //#166 +298 .rdata:007965cc - virtual void Function_0167(); //#167 +29c .rdata:007965d0 - virtual void Function_0168(); //#168 +2a0 .rdata:007965d4 - virtual void Function_0169(); //#169 +2a4 .rdata:007965d8 - virtual void Function_0170(); //#170 +2a8 .rdata:007965dc - virtual void Function_0171(); //#171 +2ac .rdata:007965e0 - virtual void Function_0172(); //#172 +2b0 .rdata:007965e4 - virtual void Function_0173(); //#173 +2b4 .rdata:007965e8 - virtual void Function_0174(); //#174 +2b8 .rdata:007965ec - virtual void Function_0175(); //#175 +2bc .rdata:007965f0 - virtual void Function_0176(); //#176 +2c0 .rdata:007965f4 - virtual void Function_0177(); //#177 +2c4 .rdata:007965f8 - virtual void Function_0178(); //#178 +2c8 .rdata:007965fc - virtual void Function_0179(); //#179 +2cc .rdata:00796600 - virtual void Function_0180(); //#180 +2d0 .rdata:00796604 - virtual void Function_0181(); //#181 +2d4 .rdata:00796608 - virtual void Function_0182(); //#182 +2d8 .rdata:0079660c - virtual void Function_0183(); //#183 +2dc .rdata:00796610 - virtual void Function_0184(); //#184 +2e0 .rdata:00796614 - virtual void Function_0185(); //#185 +2e4 .rdata:00796618 - virtual void Function_0186(); //#186 +2e8 .rdata:0079661c - virtual void Function_0187(); //#187 +2ec .rdata:00796620 - virtual int Function_0188(); //#188 +2f0 .rdata:00796624 {desc=Get +B40 field from thisptr) - virtual int Function_0189(); //#189 +2f4 .rdata:00796628 - virtual bool Function_0190(); //#190 +2f8 .rdata:0079662c - virtual void Function_0191(); //#191 +2fc .rdata:00796630 - virtual void Function_0192(int _a0, int _a1, int _a2); //#192 +300 .rdata:00796634 (possible rotate actor or navigate) - virtual void Function_0193(); //#193 +304 .rdata:00796638 {load anim cache} - virtual void Function_0194(); //#194 +308 .rdata:0079663c - virtual void Function_0195(); //#195 +30c .rdata:00796640 - virtual void Function_0196(); //#196 +310 .rdata:00796644 - virtual void Function_0197(); //#197 +314 .rdata:00796648 - virtual void Function_0198(); //#198 +318 .rdata:0079664c - virtual void Function_0199(); //#199 +31c .rdata:00796650 - virtual void Function_0200(); //#200 +320 .rdata:00796654 - virtual void Function_0201(); //#201 +324 .rdata:00796658 - virtual void Function_0202(); //#202 +328 .rdata:0079665c - virtual void Function_0203(); //#203 +32c .rdata:00796660 - virtual void Function_0204(); //#204 +330 .rdata:00796664 - virtual void Function_0205(); //#205 +334 .rdata:00796668 - virtual void Function_0206(); //#206 +338 .rdata:0079666c - virtual void Function_0207(); //#207 +33c .rdata:00796670 - virtual void Function_0208(); //#208 +340 .rdata:00796674 - virtual void Function_0209(); //#209 +344 .rdata:00796678 - virtual void Function_0210(); //#210 +348 .rdata:0079667c - virtual void Function_0211(); //#211 +34c .rdata:00796680 - virtual void Function_0212(); //#212 +350 .rdata:00796684 - virtual void Function_0213(); //#213 +354 .rdata:00796688 - virtual void Function_0214(); //#214 +358 .rdata:0079668c - virtual void Function_0215(); //#215 +35c .rdata:00796690 - virtual void Function_0216(); //#216 +360 .rdata:00796694 - virtual void Function_0217(); //#217 +364 .rdata:00796698 - virtual void Function_0218(); //#218 +368 .rdata:0079669c - virtual void Function_0219(); //#219 +36c .rdata:007966a0 - virtual void Function_0220(); //#220 +370 .rdata:007966a4 - virtual void Function_0221(); //#221 +374 .rdata:007966a8 - virtual void Function_0222(); //#222 +378 .rdata:007966ac - virtual void Function_0223(); //#223 +37c .rdata:007966b0 - virtual void Function_0224(); //#224 +380 .rdata:007966b4 - virtual void Function_0225(); //#225 +384 .rdata:007966b8 - virtual void Function_0226(); //#226 +388 .rdata:007966bc - virtual void Function_0227(); //#227 +38c .rdata:007966c0 - virtual ZLnkAction* getActionByEnum(UnknownEnum a0); //#228 +390 .rdata:007966c4 - virtual void Function_0229(); //#229 +394 .rdata:007966c8 - virtual void Function_0230(); //#230 +398 .rdata:007966cc - virtual void Function_0231(); //#231 +39c .rdata:007966d0 - virtual void Function_0232(); //#232 +3a0 .rdata:007966d4 - virtual void Function_0233(); //#233 +3a4 .rdata:007966d8 - virtual void Function_0234(); //#234 +3a8 .rdata:007966dc - virtual void Function_0235(); //#235 +3ac .rdata:007966e0 - virtual void Function_0236(); //#236 +3b0 .rdata:007966e4 - virtual void Function_0237(); //#237 +3b4 .rdata:007966e8 - virtual void Function_0238(); //#238 +3b8 .rdata:007966ec - virtual void Function_0239(int _unk0); //#239 +3bc .rdata:007966f0 - virtual void Function_0240(); //#240 +3c0 .rdata:007966f4 - virtual void Function_0241(int _possibleItemId); //#241 +3c4 .rdata:007966f8 - virtual void Function_0242(); //#242 +3c8 .rdata:007966fc - virtual void Function_0243(); //#243 +3cc .rdata:00796700 - virtual void Function_0244(); //#244 +3d0 .rdata:00796704 - virtual void Function_0245(); //#245 +3d4 .rdata:00796708 - virtual void Function_0246(); //#246 +3d8 .rdata:0079670c - virtual bool Function_0247(); //#247 +3dc .rdata:00796710 - virtual void Function_0248(); //#248 +3e0 .rdata:00796714 - virtual void Function_0249(); //#249 +3e4 .rdata:00796718 - virtual void Function_0250(); //#250 +3e8 .rdata:0079671c - virtual void Function_0251(); //#251 +3ec .rdata:00796720 - virtual void Function_0252(); //#252 +3f0 .rdata:00796724 - virtual void Function_0253(); //#253 +3f4 .rdata:00796728 - virtual void Function_0254(); //#254 +3f8 .rdata:0079672c - virtual void Function_0255(); //#255 +3fc .rdata:00796730 - virtual void Function_0256(); //#256 +400 .rdata:00796734 - virtual void Function_0257(); //#257 +404 .rdata:00796738 - virtual void Function_0258(); //#258 +408 .rdata:0079673c - virtual void Function_0259(); //#259 +40c .rdata:00796740 - virtual void Function_0260(UnknownEnum1 _a0, int _itemID); //#260 +410 .rdata:00796744 - virtual const char* Function_0261(); //#261 +414 .rdata:00796748 - virtual void Function_0262(); //#262 +418 .rdata:0079674c - virtual void Function_0263(); //#263 +41c .rdata:00796750 - virtual void Function_0264(); //#264 +420 .rdata:00796754 - virtual void Function_0265(); //#265 +424 .rdata:00796758 - virtual void Function_0266(); //#266 +428 .rdata:0079675c - virtual void Function_0267(); //#267 +42c .rdata:00796760 - virtual void Function_0268(); //#268 +430 .rdata:00796764 - virtual void Function_0269(); //#269 +434 .rdata:00796768 - virtual void Function_0270(); //#270 +438 .rdata:0079676c - virtual void Function_0271(); //#271 +43c .rdata:00796770 - virtual void Function_0272(); //#272 +440 .rdata:00796774 - virtual bool OnlyVerticalAim(); //#273 +444 .rdata:00796778 { always false } - virtual void GetAimAnim(Glacier::Animation::Header** results, uint32_t& count); //#274 +448 .rdata:0079677c - virtual void GetPoseEffects(float* ,unsigned short*); //#275 +44c .rdata:00796780 { BAD ASSEMBLY! } - virtual int SetHandTarget(int unknownIndex, Glacier::Vector3*, float); //#276 +450 .rdata:00796784 - virtual void DontAnimateAttachers(); //#277 +454 .rdata:00796788 { DO NOT NOTHING } - virtual void RemoveLHandIKTarget(float, void* callback); //#278 +458 .rdata:0079678c - virtual void RemoveRHandIKTarget(float, void* callback); //#279 +45c .rdata:00796790 - virtual void UpdateAimTarget(); //#280 +460 .rdata:00796794 - virtual int SetAimTarget(uint32_t, Glacier::Vector3*, float, void* callback, int, int, int, int); //#281 +464 .rdata:00796798 (called by sub_6A6750) - virtual void SetAimTarget2(/* TODO: Detect args! Do not use this function! */); //#282 +468 .rdata:0079679c - virtual void RemoveAimTarget(float, void* callback); //#283 +46c .rdata:007967a0 - virtual bool FreezeAimTarget(); //#284 +470 .rdata:007967a4 - virtual void DisableAim(); //#285 +474 .rdata:007967a8 - virtual void EnableAim(); //#286 +478 .rdata:007967ac - virtual bool GetAimTarget(); //#287 +47c .rdata:007967b0 - virtual bool GetAimTarget(uint32_t*); //#288 +480 .rdata:007967b4 - virtual bool GetAimTarget(Glacier::Vector3*); //#289 +484 .rdata:007967b8 - virtual float GetDrawWeaponSpeed(); //#290 +488 .rdata:007967bc - virtual bool IsAiming(); //#291 +48c .rdata:007967c0 - virtual void SetAimAnimPrc(float, float, float); //#292 +490 .rdata:007967c4 { DO NOTHING I GUESS } - virtual void FireShotNotify(); //#293 +494 .rdata:007967c8 - virtual void SetHitAnimation(const char*); //#294 +498 .rdata:007967cc - virtual void SetHitAnimHandle(int& handle); //#295 +49c .rdata:007967d0 - virtual void UseItem(Glacier::ZItem*, int); //#296 +4a0 .rdata:007967d4 - virtual void DropItem(Glacier::ZItem*); //#297 +4a4 .rdata:007967d8 - virtual void PickupItem(Glacier::ZItem*); //#298 +4a8 .rdata:007967dc - virtual void Reload(Glacier::ZItem*); //#299 +4ac .rdata:007967e0 - virtual void Chamber(Glacier::ZItem*); //#300 +4b0 .rdata:007967e4 - virtual void PerformDrop(Glacier::ZItem*, bool doPhysicsBody, bool a3); //#301 +4b4 .rdata:007967e8 - virtual Glacier::ZIKHAND* GetRHand(); //#302 +4b8 .rdata:007967ec - virtual Glacier::ZIKHAND* GetLHand(); //#303 +4bc .rdata:007967f0 - virtual Glacier::ZItem* GetLHandItem(); //#304 +4c0 .rdata:007967f4 - virtual Glacier::ZItem* GetRHandItem(); //#305 +4c4 .rdata:007967f8 - virtual Glacier::ZItemWeapon* GetLHandWeapon(); //#306 +4c8 .rdata:007967fc - virtual Glacier::ZItemWeapon* GetRHandWeapon(); //#307 +4cc .rdata:00796800 - virtual Glacier::ZItemTemplate* GetRHandItemType(); //#308 +4d0 .rdata:00796804 - virtual Glacier::ZItemTemplate* GetLHandItemType(); //#309 +4d4 .rdata:00796808 - virtual void SetRHandItemState(int itemState); //#310 +4d8 .rdata:0079680c - virtual void SetLHandItemState(int itemState); //#311 +4dc .rdata:00796810 - virtual void AttachItemToHand(Glacier::ZIKHAND* hand, uint32_t itemId); //#312 +4e0 .rdata:00796814 - virtual bool AttachRHandItem(uint32_t itemID); //#313 +4e4 .rdata:00796818 - virtual bool AttachLHandItem(uint32_t itemID); //#314 +4e8 .rdata:0079681c - virtual void GetNearItems(); //#315 +4ec .rdata:00796820 {similar to next} - virtual void GetNearItems2(); //#316 +4f0 .rdata:00796824 {similar to prev} - virtual void SetDialog(bool); //#317 +4f4 .rdata:00796828 - virtual bool GetDialog(); //#318 +4f8 .rdata:0079682c - virtual void* DialogListen(int variant); //#319 +4fc .rdata:00796830 {variant between 0 and 1} - virtual void* DialogTalk(int variant); //#320 +500 .rdata:00796834 {variant between 0 and 1} - virtual void ForceRHandItem(Glacier::ZItem*, bool); //#321 +504 .rdata:00796838 - virtual void ForceLHandItem(Glacier::ZItem*, bool); //#322 +508 .rdata:0079683c {second bool not used I guess} - virtual void Function_0323(); //#323 +50c .rdata:00796840 - virtual void DestroyRHandItem(); //#324 +510 .rdata:00796844 - virtual void DestroyLHandItem(); //#325 +514 .rdata:00796848 - virtual bool EmptyHands(); //#326 +518 .rdata:0079684c - virtual void SetAmmoFor(Glacier::ZItemWeapon*, int); //#327 +51c .rdata:00796850 (do nothing) - virtual int GetAmmoFor(Glacier::ZItemWeapon*); //#328 +520 .rdata:00796854 {always 999} - virtual void SetLHandIKTarget(const float*, const float*, float, void* callback); //#329 +524 .rdata:00796858 - virtual void SetRHandIKTarget(const float*, const float*, float, void* callback); //#330 +528 .rdata:0079685c - virtual void UpdateItemActions(); //#331 +52c .rdata:00796860 - virtual void CallBackItemAction(); //#332 +530 .rdata:00796864 - virtual int GetNearItems3(); //#333 +534 .rdata:00796868 - virtual void PlaySpeech(uint32_t, int, bool); //#334 +538 .rdata:0079686c - virtual void PlayFootStep(int /* EFootSide */); //#335 +53c .rdata:00796870 - virtual bool IsFirstPersonCamera(); //#336 +540 .rdata:00796874 - virtual float GetCombatStrength(); //#337 +544 .rdata:00796878 - virtual void SetActorRootTM(const Glacier::Vector3*, const Glacier::Vector3*); //#338 +548 .rdata:0079687c - virtual void SetActorPosDir(const Glacier::Vector3*, const Glacier::Vector3*); //#339 +54c .rdata:00796880 - virtual void* GetActorRootTM(const float*, const float*); //#340 +550 .rdata:00796884 - virtual void GetActorWorldPosition(Glacier::Vector3*); //#341 +554 .rdata:00796888 {possible setPosition!!!} - virtual void SetActorWorldPosition(Glacier::Vector3*); //#342 +558 .rdata:0079688c - virtual bool CanPlayAnimSegment(Glacier::Animation::Header*, float, float, const float*, const float*, bool, float, float); //#343 +55c .rdata:00796890 - virtual bool IsUnconscious(); //#344 +560 .rdata:00796894 - virtual bool IsAwake(); //#345 +564 .rdata:00796898 {possible isAlive} - virtual bool IsSleeping(); //#346 +568 .rdata:0079689c - virtual void SetHero(uint8_t); //#347 +56c .rdata:007968a0 - virtual int SetActorState(ActorState status); //#348 +570 .rdata:007968a4 - virtual void OnViewEnter(); //#349 +574 .rdata:007968a8 - virtual void OnViewLeave(); //#350 +578 .rdata:007968ac - virtual void* /* TODO: PF4::RunTime */ GetPathFinder4(); //#351 +57c .rdata:007968b0 (return ZEngineDataBase + 0x14) - virtual bool EnablePathFinder(bool _a0); //#352 +580 .rdata:007968b4 - virtual void SetStopDistance(float ); //#353 +584 .rdata:007968b8 - virtual void SetEndDir(Glacier::ZVector3* pThreeFloats); //#354 +588 .rdata:007968bc (it works with coordinates but not world coordinates [-1.0; 1.0]) - virtual const Glacier::ZVector3* GetEndDir(); //#355 +58c .rdata:007968c0 - virtual void MoveToPosition(const Glacier::Vector3*, const Glacier::Vector3*); //#356 +590 .rdata:007968c4 - virtual void SlideToPosition(const Glacier::Vector3*, const Glacier::Vector3*); //#357 +594 .rdata:007968c8 - virtual void SetPathNotify(float ); //#358 +598 .rdata:007968cc - virtual void SetPathNotifySyncToCycle(bool arg); //#359 +59c .rdata:007968d0 - virtual void SetEndAction(bool arg); //#360 +5a0 .rdata:007968d4 - virtual void RemovePath(uint8_t,void* PATH_CANCEL_REASONS, bool); //#361 +5a4 .rdata:007968d8 - virtual void SendPathDone(bool); //#362 +5a8 .rdata:007968dc - virtual void* GetMoveFromPos(const Glacier::Vector3*); //#363 +5ac .rdata:007968e0 - virtual void* FindNextPathBlocker(); //#364 +5b0 .rdata:007968e4 - virtual int SetShootIntoGround(bool arg); //#365 +5b4 .rdata:007968e8 - virtual bool SetShootIntoGroundInFullbody(bool _a0); //#366 +5b8 .rdata:007968ec - virtual bool SetStayInsidePath(bool _a0); //#367 +5bc .rdata:007968f0 - virtual void ShootIntoGround(float*, bool, bool); //#368 +5c0 .rdata:007968f4 - virtual void ShootIntoGroundRegularly(float*, bool, bool, float); //#369 +5c4 .rdata:007968f8 - virtual float SetMoveSpeedMultiplier(float speedMul); //#370 +5c8 .rdata:007968fc {set 5B0 value} - virtual void SetPathFinderEnabled(bool); //#371 +5cc .rdata:00796900 - virtual void OnPathRequest(uint32_t); //#372 +5d0 .rdata:00796904 - virtual void OnPathFinished(uint32_t); //#373 +5d4 .rdata:00796908 {possible reset actor state} - virtual void OnPathCanceled(void* PATH_CANCEL_ERRORS); //#374 +5d8 .rdata:0079690c - virtual void OnPathCanceledLockedDoor(uint32_t); //#375 +5dc .rdata:00796910 - virtual void OnPathError(void* PATH_ERRORS); //#376 +5e0 .rdata:00796914 - virtual bool OnPathNotify(); //#377 +5e4 .rdata:00796918 - virtual void OnNewPath(); //#378 +5e8 .rdata:0079691c - virtual void OnSound(Glacier::REFTAB* ); //#379 +5ec .rdata:00796920 - virtual void Die(); //#380 +5f0 .rdata:00796924 - virtual void DieByForce(const Glacier::ZVector3*, const Glacier::ZVector3*, float, int); //#381 +5f4 .rdata:00796928 - virtual int Resurrect(); //#382 +5f8 .rdata:0079692c - virtual int Knockout(); //#383 +5fc .rdata:00796930 (possible not but actor not dies here) - virtual int Revive(); //#384 +600 .rdata:00796934 {possible sedate or smth l ths} - virtual int GetKnockedOut(); //#385 +604 .rdata:00796938 - virtual int GetActorList(); //#386 +608 .rdata:0079693c - virtual void SetDisableIdleAnimation(bool); //#387 +60c .rdata:00796940 - virtual int GetAudibleRoomList(); //#388 +610 .rdata:00796944 - virtual void LookAt(int _a0); //#389 +614 .rdata:00796948 - virtual bool IsSeeing(); //#390 +618 .rdata:0079694c - virtual void SetSeeing(bool); //#391 +61c .rdata:00796950 - virtual bool IsVisible(); //#392 +620 .rdata:00796954 - virtual void SetVisible(bool); //#393 +624 .rdata:00796958 - virtual void WantToLookAt(Glacier::ZGEOM*, uint8_t); //#394 +628 .rdata:0079695c - virtual void VerifyPlayerVisible(); //#395 +62c .rdata:00796960 (sync suspicious level with ZOSD) - virtual void DeterminePathLookAt(Glacier::LocomotionInfo *,float *,float *,float *,float *); //#396 +630 .rdata:00796964 - virtual bool CanLookAt(Glacier::ZGEOM*); //#397 +634 .rdata:00796968 - virtual bool IsOnStairs(); //#398 +638 .rdata:0079696c - virtual void UpdatePositionOffScreen(); //#399 +63c .rdata:00796970 - virtual void UpdatePosition(); //#400 +640 .rdata:00796974 - virtual int GetCurrentUBAnim(Glacier::ZItem *, Glacier::ZItem *,bool &); //#401 +644 .rdata:00796978 - virtual Glacier::ZAnimationInfo* SetHoldWeaponUBAnim(Glacier::ZAnimationInfo* _anim); //#402 +648 .rdata:0079697c - virtual void GetAnimOffset(const char*); //#403 +64c .rdata:00796980 - virtual void GetAnimOffset(Glacier::Animation::Header*); //#404 +650 .rdata:00796984 - virtual Glacier::Animation::Header* GetAnimHeader(uint32_t); //#405 +654 .rdata:00796988 - virtual void Function_0406(); //#406 +658 .rdata:0079698c - virtual void Function_0407(); //#407 +65c .rdata:00796990 - virtual void Function_0408(); //#408 +660 .rdata:00796994 - virtual void Function_0409(); //#409 +664 .rdata:00796998 - virtual int SetWeapon(std::intptr_t _itemID); //#410 +668 .rdata:0079699c, possible giveItem method - virtual std::intptr_t GetWeapon(); //#411 +66c .rdata:007969a0 - virtual void SetWeaponTemplate(uint32_t); //#412 +670 .rdata:007969a4 - virtual std::intptr_t GetWeaponTemplate(); //#413 +674 .rdata:007969a8 - virtual int FireWeapon(uint32_t weaponId, bool, float, bool); //#414 +678 .rdata:007969ac - virtual void Bite(int, Glacier::Vector3*, Glacier::Vector3*, float, float); //#415 +67c .rdata:007969b0 [Works but need to have a bit in hands] - virtual void Punch(bool); //#416 +680 .rdata:007969b4 [Works but need to determine condition of usage] - virtual void StunGunAttack(); //#417 +684 .rdata:007969b8 [Works, but need to check that actor has stun gun in hands!] - virtual int ThrowKnifeAtRef(std::intptr_t _itemID0, std::intptr_t _itemID1); //#418 +688 .rdata:007969bc (knife thrower check, maybe item hooking here) - virtual void ActivateRagdollOrAnim(); //#419 +68c .rdata:007969c0 - virtual void ActivateRagdollNextFrame(); //#420 +690 .rdata:007969c4 - virtual void InitializeHitpoints(float ); //#421 +694 .rdata:007969c8 - virtual void SetHitpoints(float ); //#422 +698 .rdata:007969cc - virtual int GetHitpoints(); //#423 +69c .rdata:007969d0 - virtual void TakeDamage(float ); //#424 +6a0 .rdata:007969d4 - virtual float GetHealth(); //#425 +6a4 .rdata:007969d8 - virtual float GetWeaponStrength(); //#426 +6a8 .rdata:007969dc - virtual bool IsDragEnabled(); //#427 +6ac .rdata:007969e0 - virtual Glacier::ZItemTemplate* GetItemTemplate(); //#428 +6b0 .rdata:007969e4 - virtual void CreateItemFromItemTemplate(int _itemOrItemID); //#429 +6b4 .rdata:007969e8 - virtual void ActivateItem(int _itemID, UnknownEnum1 _unk0); //#430 +6b8 .rdata:007969ec | _unk0 allowed only Value7 and Value8 - virtual bool ConcealItem(int _itemID, bool _flag0); //#431 +6bc .rdata:007969f0 - virtual void EnablePickupClothes(); //#432 +6c0 .rdata:007969f4 - virtual void DisablePickupClothes(); //#433 +6c4 .rdata:007969f8 - virtual bool IsWearingClothes(); //#434 +6c8 .rdata:007969fc - virtual void OnHitmanChangedClothes(); //#435 +6cc .rdata:00796a00 - virtual std::intptr_t GetHitmanAs(); //#436 +6d0 .rdata:00796a04 - virtual int GetActorProperties(); //#437 +6d4 .rdata:00796a08 - virtual void SetScriptUBAnim(Glacier::Animation::Header*, bool); //#438 +6d8 .rdata:00796a0c - virtual int GetDeadBodyFlags(Glacier::ZLNKOBJ*); //#439 +6dc .rdata:00796a10 - virtual void StartDrag(int _itemID); //#440 +6e0 .rdata:00796a14 - virtual void EndDrag(); //#441 +6e4 .rdata:00796a18 - virtual int GetAutoAimTarget(); //#442 +6e8 .rdata:00796a1c - virtual void SetAutoAimTarget(bool value); //#443 +6ec .rdata:00796a20 - virtual void StoreUBHoldAnims(); //#444 +6f0 .rdata:00796a24 (loadExtendedAnimations) - virtual int MapUBHoldAnimsToIdx(); //#445 +6f4 .rdata:00796a28 - virtual int GetItemAssignedUBAnim(Glacier::ZItem* item); //#446 +6f8 .rdata:00796a2c - virtual void LoadSave(Glacier::ISerializerStream&); //#447 +6fc .rdata:00796a30 (actor flags, maybe not used by game) - virtual bool ActivateRigidBody(const Glacier::SRigidBodyVelocity*); //#448 +700 .rdata:00796a34 - - // === members === - ActorInfos* ActorInformation; //0x0004 - /// =========================================== - char pad_0008[12]; //0x0008 - uint32_t m_field14; //0x0014 - char pad_0018[52]; //0x0018 - SuiteMask m_suitMask; //0x004C - char pad_0050[20]; //0x0050 - int32_t m_field64; //0x0064 - char pad_0068[28]; //0x0068 - Glacier::ZBodyInfo* m_bodyInfo; //0x0084 - char pad_0088[240]; //0x0088 - float m_field178; //0x0178 - Glacier::ZActionDispatcher* m_actionDispatcher; //0x017C - char pad_0180[140]; //0x0180 - int32_t m_field20C; //0x020C - char pad_0210[12]; //0x0210 - int32_t m_field21C; //0x021C - char pad_0220[16]; //0x0220 - int32_t m_field230; //0x0230 - char pad_0234[4]; //0x0234 - int32_t m_field238; //0x0238 - char pad_023C[244]; //0x023C - int32_t m_field330; //0x0330 - char pad_0334[12]; //0x0334 - int32_t m_field340; //0x0340 - char pad_0344[108]; //0x0344 - int32_t m_field3B0; //0x03B0 - char pad_03B4[12]; //0x03B4 - int32_t m_field3C0; //0x03C0 - char pad_03C4[44]; //0x03C4 - int32_t m_field3F0; //0x03F0 - Glacier::ZHumanBoid* m_boid; //0x03F4 - char pad_03F8[68]; //0x03F8 - float m_field43C; //0x043C - float m_field440; //0x0440 - float m_field444; //0x0444 - char pad_0448[24]; //0x0448 - int32_t m_field460; //0x0460 - char pad_0464[28]; //0x0464 - int32_t m_field480; //0x0480 - int32_t m_field484; //0x0484 - char pad_0488[4]; //0x0488 - int32_t m_field48C; //0x048C - char pad_0490[256]; //0x0490 - float m_field590; //0x0590 - float m_field594; //0x0594 - float m_field598; //0x0598 - char pad_059C[68]; //0x059C - int32_t m_field5E0; //0x05E0 - char pad_05E4[8]; //0x05E4 - float m_field5EC; //0x05EC - float m_field5F0; //0x05F0 - float m_field5F4; //0x05F4 - char pad_05F8[736]; //0x05F8 - int32_t m_field8D8; //0x08D8 - char pad_08DC[4]; //0x08DC - int32_t m_field8E0; //0x08E0 - int32_t m_field8E4; //0x08E4 - uint32_t m_animCurrent; //0x08E8 - char pad_08EC[20]; //0x08EC - EActorMapRole m_actorRole; //0x0900 - int32_t m_HmAsID; //0x0904 - int32_t m_STDOBJID; //0x0908 - int32_t m_field90C; //0x090C - int32_t m_field910; //0x0910 - int32_t m_field914; //0x0914 - char pad_0918[56]; //0x0918 - float m_field950; //0x0950 - char pad_0954[4]; //0x0954 - float m_field958; //0x0958 - char pad_095C[4]; //0x095C - float m_field960; //0x0960 - char pad_0964[4]; //0x0964 - float m_field968; //0x0968 - char pad_096C[8]; //0x096C - float m_field974; //0x0974 - float m_field978; //0x0978 - char pad_097C[88]; //0x097C - int32_t m_field9D4; //0x09D4 - int32_t m_field9D8; //0x09D8 - char pad_09DC[20]; //0x09DC - uint32_t m_animHoldToolbox; //0x09F0 - uint32_t m_animHoldBriefcase; //0x09F4 - char pad_09F8[4]; //0x09F8 - uint32_t m_animHoldCoffee; //0x09FC - char pad_0A00[12]; //0x0A00 - uint32_t m_animHoldBeer; //0x0A0C - char pad_0A10[44]; //0x0A10 - float m_fieldA3C; //0x0A3C - float m_fieldA40; //0x0A40 - char pad_0A44[132]; //0x0A44 - Glacier::ZROOM* m_room; //0x0AC8 - float m_fieldACC; //0x0ACC - char pad_0AD0[8]; //0x0AD0 - int32_t m_lastLogicUpdateTick; //0x0AD8 - char pad_0ADC[32]; //0x0ADC - int32_t m_fieldAFC; //0x0AFC - char pad_0B00[12]; //0x0B00 - float m_fieldB0C; //0x0B0C - int32_t m_fieldB10; //0x0B10 - char pad_0B14[56]; //0x0B14 - int32_t m_fieldB4C; //0x0B4C - char pad_0B50[16]; //0x0B50 - }; //Size: 0x0008 + // data (total size is 0xB60, base size is 0x900) + EActorMapRole m_mapIconType; //+0x900 + Glacier::ZREF m_HmAs; //+0x904 + int m_field908; //+0x908 + int m_field90C; //+0x90C + int m_field910; //+0x910 + int m_field914; //+0x914 + int m_field918; //+0x918 + int m_field91C; //+0x91C + int m_field920; //+0x920 + int m_field924; //+0x924 + int m_field928; //+0x928 + int m_field92C; //+0x92C + int m_field930; //+0x930 + int m_field934; //+0x934 + int m_field938; //+0x938 + int m_field93C; //+0x93C + int m_field940; //+0x940 + int m_field944; //+0x944 + int m_field948; //+0x948 + int m_field94C; //+0x94C + int m_field950; //+0x950 + int m_field954; //+0x954 + int m_field958; //+0x958 + int m_field95C; //+0x95C + int m_field960; //+0x960 + int m_field964; //+0x964 + int m_field968; //+0x968 + int m_field96C; //+0x96C + int m_field970; //+0x970 + int m_field974; //+0x974 + int m_field978; //+0x978 + int m_field97C; //+0x97C + int m_field980; //+0x980 + int m_field984; //+0x984 + int m_field988; //+0x988 + int m_field98C; //+0x98C + int m_field990; //+0x990 + int m_field994; //+0x994 + int m_field998; //+0x998 + int m_field99C; //+0x99C + int m_field9A0; //+0x9A0 + int m_field9A4; //+0x9A4 + int m_field9A8; //+0x9A8 + int m_field9AC; //+0x9AC + int m_field9B0; //+0x9B0 + int m_field9B4; //+0x9B4 + int m_field9B8; //+0x9B8 + int m_field9BC; //+0x9BC + int m_field9C0; //+0x9C0 + int m_field9C4; //+0x9C4 + int m_field9C8; //+0x9C8 + int m_field9CC; //+0x9CC + int m_field9D0; //+0x9D0 + int m_field9D4; //+0x9D4 + int m_field9D8; //+0x9D8 + int m_field9DC; //+0x9DC + int m_field9E0; //+0x9E0 + int m_field9E4; //+0x9E4 + int m_field9E8; //+0x9E8 + int m_field9EC; //+0x9EC + int m_animHoldToolbox; //+0x9F0 + int m_animHoldBriefcase; //+0x9F4 + int m_field9F8; //+0x9F8 + int m_animHoldCoffee; //+0x9FC + int m_fieldA00; //+0xA00 + int m_fieldA04; //+0xA04 + int m_fieldA08; //+0xA08 + int m_animHoldBeer; //+0xA0C + int m_fieldA10; //+0xA10 + int m_fieldA14; //+0xA14 + int m_fieldA18; //+0xA18 + int m_fieldA1C; //+0xA1C + int m_fieldA20; //+0xA20 + int m_fieldA24; //+0xA24 + int m_fieldA28; //+0xA28 + int m_fieldA2C; //+0xA2C + int m_fieldA30; //+0xA30 + int m_fieldA34; //+0xA34 + int m_fieldA38; //+0xA38 + int m_fieldA3C; //+0xA3C + int m_fieldA40; //+0xA40 + int m_fieldA44; //+0xA44 + int m_fieldA48; //+0xA48 + int m_fieldA4C; //+0xA4C + int m_fieldA50; //+0xA50 + int m_fieldA54; //+0xA54 + int m_fieldA58; //+0xA58 + int m_fieldA5C; //+0xA5C + int m_fieldA60; //+0xA60 + int m_fieldA64; //+0xA64 + int m_fieldA68; //+0xA68 + int m_fieldA6C; //+0xA6C + int m_fieldA70; //+0xA70 + int m_fieldA74; //+0xA74 + int m_fieldA78; //+0xA78 + int m_fieldA7C; //+0xA7C + int m_fieldA80; //+0xA80 + int m_fieldA84; //+0xA84 + int m_fieldA88; //+0xA88 + int m_fieldA8C; //+0xA8C + int m_fieldA90; //+0xA90 + int m_fieldA94; //+0xA94 + int m_fieldA98; //+0xA98 + int m_fieldA9C; //+0xA9C + int m_fieldAA0; //+0xAA0 + int m_fieldAA4; //+0xAA4 + int m_fieldAA8; //+0xAA8 + int m_fieldAAC; //+0xAAC + int m_fieldAB0; //+0xAB0 + int m_fieldAB4; //+0xAB4 + int m_fieldAB8; //+0xAB8 + int m_fieldABC; //+0xABC + int m_fieldAC0; //+0xAC0 + int m_fieldAC4; //+0xAC4 + Glacier::ZROOM* m_room; // +0xAC8 + int m_fieldACC; //+0xACC + int m_fieldAD0; //+0xAD0 + int m_fieldAD4; //+0xAD4 + int32_t m_lastLogicUpdateTick; //+0xAD8 + int m_fieldADC; //+0xADC + int m_fieldAE0; //+0xAE0 + int m_fieldAE4; //+0xAE4 + int m_fieldAE8; //+0xAE8 + int m_fieldAEC; //+0xAEC + int m_fieldAF0; //+0xAF0 + int m_fieldAF4; //+0xAF4 + int m_fieldAF8; //+0xAF8 + int m_fieldAFC; //+0xAFC + int m_fieldB00; //+0xB00 + int m_fieldB04; //+0xB04 + int m_fieldB08; //+0xB08 + int m_fieldB0C; //+0xB0C + int m_fieldB10; //+0xB10 + int m_fieldB14; //+0xB14 + int m_fieldB18; //+0xB18 + int m_fieldB1C; //+0xB1C + int m_fieldB20; //+0xB20 + int m_fieldB24; //+0xB24 + int m_fieldB28; //+0xB28 + int m_fieldB2C; //+0xB2C + int m_fieldB30; //+0xB30 + int m_fieldB34; //+0xB34 + int m_fieldB38; //+0xB38 + int m_fieldB3C; //+0xB3C + int m_fieldB40; //+0xB40 + int m_fieldB44; //+0xB44 + int m_fieldB48; //+0xB48 + int m_fieldB4C; //+0xB4C + int m_fieldB50; //+0xB50 + int m_fieldB54; //+0xB54 + int m_fieldB58; //+0xB58 + int m_fieldB5C; //+0xB5C + }; } \ No newline at end of file diff --git a/ReHitman/BloodMoney/include/BloodMoney/Game/ZHM3BriefingControl.h b/ReHitman/BloodMoney/include/BloodMoney/Game/ZHM3BriefingControl.h index 4e5f3ec..204febb 100644 --- a/ReHitman/BloodMoney/include/BloodMoney/Game/ZHM3BriefingControl.h +++ b/ReHitman/BloodMoney/include/BloodMoney/Game/ZHM3BriefingControl.h @@ -20,7 +20,12 @@ namespace Hitman::BloodMoney //vftable virtual void LoadSave(Glacier::ZPackedInput* packedInput, bool a2); - //data + //api + void CompleteObjective(unsigned int iObjectiveId, bool bShowOSDNotification); + void PlaySpeech(bool bRegisterSpeechAsSpoken); + void StopSpeech(); + + //data (total size is int m_field4; int m_field8; int m_fieldC; @@ -33,7 +38,7 @@ namespace Hitman::BloodMoney int m_field28; int m_field2C; int m_field30; - int m_field34; + Glacier::SREF m_rSpeechSoundObjectSREF; int m_field38; int m_field3C; int m_field40; @@ -45,7 +50,10 @@ namespace Hitman::BloodMoney int m_field58; int m_field5C; int m_field60; - int m_field64; + bool m_bIsSpeechPlaying; + bool m_field65; + bool m_field66; + bool m_field67; int m_field68; int m_field6C; char m_bSpoken; diff --git a/ReHitman/BloodMoney/include/BloodMoney/Game/ZHM3ClothBundle.h b/ReHitman/BloodMoney/include/BloodMoney/Game/ZHM3ClothBundle.h new file mode 100644 index 0000000..fd22a41 --- /dev/null +++ b/ReHitman/BloodMoney/include/BloodMoney/Game/ZHM3ClothBundle.h @@ -0,0 +1,27 @@ +#pragma once + +#include + +namespace Hitman::BloodMoney +{ + class ZHM3ClothBundle : public Glacier::ZSTDOBJ + { + public: + //vftable + virtual void CopyDataFromClothBundle(ZHM3ClothBundle* from); + + //data (total size is 0x40, base size is 0x10) + int field_10; + int field_14; + int field_18; + int field_1C; + int field_20; + int field_24; + int field_28; + int field_2C; + int field_30; + int field_34; + int field_38; + int field_3C; + }; +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/include/BloodMoney/Game/ZHM3DialogControl.h b/ReHitman/BloodMoney/include/BloodMoney/Game/ZHM3DialogControl.h new file mode 100644 index 0000000..8c69c9a --- /dev/null +++ b/ReHitman/BloodMoney/include/BloodMoney/Game/ZHM3DialogControl.h @@ -0,0 +1,246 @@ +#pragma once + +#include +#include +#include + +namespace Glacier { + class ZLNKWHANDS; +} + +namespace Hitman::BloodMoney { + class ZHM3DialogControl : public Glacier::ZEventBase + { + public: + struct TPair { + int m_field0; + int m_field4; + }; + + // vftable (unchanged) + + // custom API + void StartDialog(Glacier::ZLNKWHANDS* pFirstPerson, Glacier::ZLNKWHANDS* pSecondPerson, const char* pDialogBaseName, const char* pFirstPersonRoleName, const char* pSecondPersonRoleName, int startRole, bool, bool, bool, bool); + void SetDialogSkipable(bool value); + bool IsPlaying() const; + + // data (total size is 0x6B4) + int m_field30; + int m_field34; + int m_field38; + int m_field3C; + int m_field40; + int m_field44; + int m_field48; + int m_field4C; + int m_field50; + int m_flags; //+0x54 + Glacier::ZVector3 m_posBeforeDialog; + Glacier::ZMSGID m_MSG_DIALOGPLAYING; + Glacier::ZMSGID m_field66; + Glacier::ZREF m_targetRef; + int m_notifyTargetEvent; + int m_field70; + ZHM3DialogControl::TPair m_unknownPairs74[100]; + int m_field394; + int m_field398; + int m_field39C; + int m_field3A0; + int m_field3A4; + int m_field3A8; + int m_field3AC; + int m_field3B0; + int m_field3B4; + int m_field3B8; + int m_field3BC; + int m_field3C0; + int m_field3C4; + int m_field3C8; + int m_field3CC; + int m_field3D0; + int m_field3D4; + int m_field3D8; + int m_field3DC; + int m_field3E0; + int m_field3E4; + int m_field3E8; + int m_field3EC; + int m_field3F0; + int m_field3F4; + int m_field3F8; + int m_field3FC; + int m_field400; + int m_field404; + int m_field408; + int m_field40C; + int m_field410; + int m_field414; + int m_field418; + int m_field41C; + int m_field420; + int m_field424; + int m_field428; + int m_field42C; + int m_field430; + int m_field434; + int m_field438; + int m_field43C; + int m_field440; + int m_field444; + int m_field448; + int m_field44C; + int m_field450; + int m_field454; + int m_field458; + int m_field45C; + int m_field460; + int m_field464; + int m_field468; + int m_field46C; + int m_field470; + int m_field474; + int m_field478; + int m_field47C; + int m_field480; + int m_field484; + int m_field488; + int m_field48C; + int m_field490; + int m_field494; + int m_field498; + int m_field49C; + int m_field4A0; + int m_field4A4; + int m_field4A8; + int m_field4AC; + int m_field4B0; + int m_field4B4; + int m_field4B8; + int m_field4BC; + int m_field4C0; + int m_field4C4; + int m_field4C8; + int m_field4CC; + int m_field4D0; + int m_field4D4; + int m_field4D8; + int m_field4DC; + int m_field4E0; + int m_field4E4; + int m_field4E8; + int m_field4EC; + int m_field4F0; + int m_field4F4; + int m_field4F8; + int m_field4FC; + int m_field500; + int m_field504; + int m_field508; + int m_field50C; + int m_field510; + int m_field514; + int m_field518; + int m_field51C; + int m_field520; + int m_field524; + int m_field528; + int m_field52C; + int m_field530; + int m_field534; + int m_field538; + int m_field53C; + int m_field540; + int m_field544; + int m_field548; + int m_field54C; + int m_field550; + int m_field554; + int m_field558; + int m_field55C; + int m_field560; + int m_field564; + int m_field568; + int m_field56C; + int m_field570; + int m_field574; + int m_field578; + int m_field57C; + int m_field580; + int m_field584; + int m_field588; + int m_field58C; + int m_field590; + int m_field594; + int m_field598; + int m_field59C; + int m_field5A0; + int m_field5A4; + int m_field5A8; + int m_field5AC; + int m_field5B0; + int m_field5B4; + int m_field5B8; + int m_field5BC; + int m_field5C0; + int m_field5C4; + int m_field5C8; + int m_field5CC; + int m_field5D0; + int m_field5D4; + int m_field5D8; + int m_field5DC; + int m_field5E0; + int m_field5E4; + int m_field5E8; + int m_field5EC; + int m_field5F0; + int m_field5F4; + int m_field5F8; + int m_field5FC; + int m_field600; + int m_field604; + int m_field608; + int m_field60C; + int m_field610; + int m_field614; + int m_field618; + int m_field61C; + int m_field620; + int m_field624; + int m_field628; + int m_field62C; + int m_field630; + int m_field634; + int m_field638; + int m_field63C; + int m_field640; + int m_field644; + int m_field648; + int m_field64C; + int m_field650; + int m_field654; + int m_field658; + int m_field65C; + int m_field660; + int m_field664; + int m_field668; + int m_field66C; + int m_field670; + int m_field674; + int m_field678; + int m_field67C; + int m_field680; + int m_field684; + int m_field688; + int m_field68C; + int m_field690; + int m_field694; + int m_field698; + int m_field69C; + int m_field6A0; + int m_field6A4; + int m_field6A8; + int m_field6AC; + int m_field6B0; + }; +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/include/BloodMoney/Game/ZHM3GameData.h b/ReHitman/BloodMoney/include/BloodMoney/Game/ZHM3GameData.h index 9bea3e9..176f3ec 100644 --- a/ReHitman/BloodMoney/include/BloodMoney/Game/ZHM3GameData.h +++ b/ReHitman/BloodMoney/include/BloodMoney/Game/ZHM3GameData.h @@ -13,10 +13,8 @@ namespace Hitman::BloodMoney { DECLARE_UNKNOWN_TYPE_PTR(N00001B3F); DECLARE_UNKNOWN_TYPE_PTR(N000033C1); - DECLARE_UNKNOWN_TYPE_PTR(ZHM3GameStats); DECLARE_UNKNOWN_TYPE_PTR(N0000163D); DECLARE_UNKNOWN_TYPE_PTR(CGlobalCom); - DECLARE_UNKNOWN_TYPE_PTR(ZHM3WeaponUpgradeControl); DECLARE_UNKNOWN_TYPE_PTR(ZHM3CameraEventCameraClass); DECLARE_UNKNOWN_TYPE_PTR(ZClothTracker); @@ -26,8 +24,10 @@ namespace Hitman::BloodMoney class ZGui; class CIngameMap; class ZHM3BriefingControl; + class ZHM3WeaponUpgradeControl; class ZHM3CameraClass; class ZBoidSystem; + class ZHM3GameStats; class ZHM3GameData final : public Glacier::ZGameData { diff --git a/ReHitman/BloodMoney/include/BloodMoney/Game/ZHM3GameStats.h b/ReHitman/BloodMoney/include/BloodMoney/Game/ZHM3GameStats.h new file mode 100644 index 0000000..74669de --- /dev/null +++ b/ReHitman/BloodMoney/include/BloodMoney/Game/ZHM3GameStats.h @@ -0,0 +1,13 @@ +#pragma once + +#include + +namespace Hitman::BloodMoney { + class ZHM3GameStats : public Glacier::ZGameStats { + public: + //vftable (no changes) + //data (total size is 0x14, base size is 0xC) + int m_fieldC; + int m_field10; + }; +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/include/BloodMoney/Game/ZHM3HmAs.h b/ReHitman/BloodMoney/include/BloodMoney/Game/ZHM3HmAs.h new file mode 100644 index 0000000..05debcd --- /dev/null +++ b/ReHitman/BloodMoney/include/BloodMoney/Game/ZHM3HmAs.h @@ -0,0 +1,27 @@ +#pragma once + +#include +#include +#include + +namespace Hitman::BloodMoney +{ + class ZHM3HmAs : public Glacier::ZGROUP + { + public: + /// vftable + virtual void CopyDataFromHmAs(ZHM3HmAs* from); + virtual bool IsZoneAllowed(ESecurityZone zoneKind); + + /// data (total size is 0xA0, parent size is 0x4C) + int m_field4C; //copied at CopyDataFromHmAs + int m_field50; + Glacier::REFTAB m_reftab54; + int m_field70; + uint32_t m_allowedRegionsMask; + Glacier::REFTAB m_reftab78; + int m_field94; + int m_field98; + int m_field9C; + }; +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/include/BloodMoney/Game/ZHM3WeaponUpgradeControl.h b/ReHitman/BloodMoney/include/BloodMoney/Game/ZHM3WeaponUpgradeControl.h new file mode 100644 index 0000000..4dbc1a4 --- /dev/null +++ b/ReHitman/BloodMoney/include/BloodMoney/Game/ZHM3WeaponUpgradeControl.h @@ -0,0 +1,36 @@ +#pragma once + +#include +#include + +namespace Hitman::BloodMoney { + class ZHM3ItemWeaponCustom; + + enum class EWeaponType { + EW_PISTOL = 1, + EW_ASSAULT_RIFLE = 2, + EW_SUB_MACHINE_GUN = 3, + EW_SHOTGUN = 4, + EW_UNKNOWN = 0 + }; + + class ZHM3WeaponUpgradeControl : public Glacier::ZGROUP + { + public: + // vtbl (no ext methods) + + // api + void InitWeaponReferences(); + void ApplyDefaultUpgrades(EWeaponType weaponType, ZHM3ItemWeaponCustom* pCustomGun); + + // static methods + static EWeaponType GetWeaponType(const char* psWeaponName); + + // data (total size is 0x60, base size is 0x4C) + int m_field4C; //Pointer to array of possible weapon upgrade groups (as I understand) + Glacier::ZGEOM* m_pCustomGunHardballerUpgradeWeapon; + Glacier::ZGEOM* m_pCustomRifleAssaultUpgradeWeapon; + Glacier::ZGEOM* m_pCusomSmgUpgradeWeapon; + Glacier::ZGEOM* m_pCustomRifleShotgunUpgradeWeapon; + }; +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/include/BloodMoney/Game/ZTie.h b/ReHitman/BloodMoney/include/BloodMoney/Game/ZTie.h new file mode 100644 index 0000000..0cb7a2a --- /dev/null +++ b/ReHitman/BloodMoney/include/BloodMoney/Game/ZTie.h @@ -0,0 +1,17 @@ +#pragma once + +#include + +namespace Hitman::BloodMoney +{ + class ZTie : public ZCloth + { + public: + // vftable (no changes) + // api + void HideTie(bool); + void HideTieInMirror(bool); + // Data (total size is 0xB4, ZCloth size is 0xB0) + int field_B0; + }; +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/include/BloodMoney/Game/ZUpgradeInfo.h b/ReHitman/BloodMoney/include/BloodMoney/Game/ZUpgradeInfo.h index 2da7b85..d8bdc53 100644 --- a/ReHitman/BloodMoney/include/BloodMoney/Game/ZUpgradeInfo.h +++ b/ReHitman/BloodMoney/include/BloodMoney/Game/ZUpgradeInfo.h @@ -1,29 +1,23 @@ #pragma once +#include + namespace Hitman::BloodMoney { // Type forwardings for class ZUpgradeInfo class ZGUIBase; class ZXMLGUISystem; class ZWINGROUP; - enum class eZWUserEvents; class ZResourceManager; // Class definition ZUpgradeInfo - class ZUpgradeInfo { - virtual void Ctor(); - virtual void addElement(char const*, ZGUIBase*); //#0000 at 0044D9CC org ZGUIBase::addElement(char const*,ZGUIBase*) - virtual void Update(bool); //#0001 at 003C59C8 org ZUpgradeInfo::Update(bool) - virtual void Click(eZWUserEvents,int,ZXMLGUISystem *); //#0002 at 0044DA68 org IGUIElement::Click(eZWUserEvents,int,ZXMLGUISystem *) - virtual void OpenSubwindow(); //#0003 at 0044DA18 org IGUIElement::OpenSubwindow(void) - virtual void SetValue(int); //#0004 at 0044DA20 org IGUIElement::SetValue(int) - virtual void Use(); //#0005 at 0044DA28 org IGUIElement::Use(void) - virtual void FocusUpdate(); //#0006 at 0044DA30 org IGUIElement::FocusUpdate(void) - virtual void Setup(float *,ZResourceManager *,ZWINGROUP *); //#0007 at 003C5A80 org ZUpgradeInfo::Setup(float *,ZResourceManager *,ZWINGROUP *) - virtual void ReleaseResources(ZResourceManager *); //#0008 at 003C5EC0 org ZUpgradeInfo::ReleaseResources(ZResourceManager *) - virtual void SetFocus(bool); //#0009 at 0044DA60 org IGUIElement::SetFocus(bool) - virtual void Cancel(); //#0010 at 0044DA38 org IGUIElement::Cancel(void) - virtual void Invalidate(); //#0011 at 0044DA40 org IGUIElement::Invalidate(void) - virtual void GetWindow(); //#0012 at 0044DA48 org IGUIElement::GetWindow(void) - }; //End of ZUpgradeInfo from 0057B880 + class ZUpgradeInfo : public IGUIElement { + public: + //vftable + //api + void SetupTextGraphic(); + + //data (total size is 0x110, base size is 0x6c) + int m_field6C; + }; } \ No newline at end of file diff --git a/ReHitman/BloodMoney/include/BloodMoney/Game/ZWheelChairLock.h b/ReHitman/BloodMoney/include/BloodMoney/Game/ZWheelChairLock.h new file mode 100644 index 0000000..9c71361 --- /dev/null +++ b/ReHitman/BloodMoney/include/BloodMoney/Game/ZWheelChairLock.h @@ -0,0 +1,21 @@ +#pragma once + +#include + +namespace Hitman::BloodMoney { + class ZHM3Actor; + + class ZWheelChairLock : public Glacier::ZEventBase { + public: + //static + static constexpr Glacier::ZMSGID kDeactivateFrameUpdate = 0x915; + + //vftable (no changes) + //api + //data (total size is 0x3C, base size is 0x30) + int m_rActorREF; + ZHM3Actor* m_pAttachedActor; + short m_rAnimation; + short m_field3A; + }; +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/include/BloodMoney/Patches/All/EnableCheatsPatch.h b/ReHitman/BloodMoney/include/BloodMoney/Patches/All/EnableCheatsPatch.h index c44b37f..23da787 100644 --- a/ReHitman/BloodMoney/include/BloodMoney/Patches/All/EnableCheatsPatch.h +++ b/ReHitman/BloodMoney/include/BloodMoney/Patches/All/EnableCheatsPatch.h @@ -8,6 +8,7 @@ namespace Hitman::BloodMoney class EnableCheatsPatch final : public BasicPatch { HF::Patch m_firstPatch, m_secondPatch; + HF::Hook::TrampolineBasicPtr m_giveSomeTrampoline; public: EnableCheatsPatch() = default; diff --git a/ReHitman/BloodMoney/include/BloodMoney/Patches/All/FreeFileSystemPatch.h b/ReHitman/BloodMoney/include/BloodMoney/Patches/All/FreeFileSystemPatch.h new file mode 100644 index 0000000..39801d0 --- /dev/null +++ b/ReHitman/BloodMoney/include/BloodMoney/Patches/All/FreeFileSystemPatch.h @@ -0,0 +1,17 @@ +#pragma once + +#include +#include + + +namespace Hitman::BloodMoney { + class FreeFileSystemPatch final : public BasicPatch { + HF::Hook::TrampolinePtr<10> m_FsZipConstructor; + public: + FreeFileSystemPatch() = default; + + std::string_view GetName() const override; + bool Apply(const ModPack& modules) override; + void Revert(const ModPack& modules) override; + }; +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/include/BloodMoney/Patches/All/GlacierHooksPatch.h b/ReHitman/BloodMoney/include/BloodMoney/Patches/All/GlacierHooksPatch.h new file mode 100644 index 0000000..634a86d --- /dev/null +++ b/ReHitman/BloodMoney/include/BloodMoney/Patches/All/GlacierHooksPatch.h @@ -0,0 +1,18 @@ +#pragma once + +#include +#include + +namespace Hitman::BloodMoney +{ + class GlacierHooksPatch final : public BasicPatch + { + HF::Hook::TrampolineBasicPtr m_onUpdateTrampoline; + public: + GlacierHooksPatch() = default; + + std::string_view GetName() const override; + bool Apply(const ModPack& modules) override; + void Revert(const ModPack& modules) override; + }; +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/include/BloodMoney/Patches/All/RenderScenePatch.h b/ReHitman/BloodMoney/include/BloodMoney/Patches/All/RenderScenePatch.h new file mode 100644 index 0000000..f731396 --- /dev/null +++ b/ReHitman/BloodMoney/include/BloodMoney/Patches/All/RenderScenePatch.h @@ -0,0 +1,18 @@ +#pragma once + +#include +#include + +namespace Hitman::BloodMoney +{ + class RenderScenePatch final : public BasicPatch + { + HF::Hook::TrampolinePtr<6> m_patch; + public: + RenderScenePatch() = default; + + std::string_view GetName() const override; + bool Apply(const ModPack& modules) override; + void Revert(const ModPack& modules) override; + }; +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/include/BloodMoney/Patches/All/ZHitman3Patches.h b/ReHitman/BloodMoney/include/BloodMoney/Patches/All/ZHitman3Patches.h index cdc4dc1..9e27607 100644 --- a/ReHitman/BloodMoney/include/BloodMoney/Patches/All/ZHitman3Patches.h +++ b/ReHitman/BloodMoney/include/BloodMoney/Patches/All/ZHitman3Patches.h @@ -9,7 +9,7 @@ namespace Hitman::BloodMoney { private: HF::Hook::TrampolineBasicPtr m_constructor; - + public: std::string_view GetName() const override; bool Apply(const ModPack& modules) override; diff --git a/ReHitman/BloodMoney/include/BloodMoney/Patches/Mods/SkinChanger.h b/ReHitman/BloodMoney/include/BloodMoney/Patches/Mods/SkinChanger.h new file mode 100644 index 0000000..fcb5c79 --- /dev/null +++ b/ReHitman/BloodMoney/include/BloodMoney/Patches/Mods/SkinChanger.h @@ -0,0 +1,15 @@ +#pragma once + +#include +#include + +namespace Hitman::BloodMoney +{ + class SkinChanger final : public BasicPatch + { + public: + std::string_view GetName() const override; + bool Apply(const ModPack& modules) override; + void Revert(const ModPack& modules) override; + }; +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/include/BloodMoney/UI/GlacierInspectors.h b/ReHitman/BloodMoney/include/BloodMoney/UI/GlacierInspectors.h index 7570900..cbcbef2 100644 --- a/ReHitman/BloodMoney/include/BloodMoney/UI/GlacierInspectors.h +++ b/ReHitman/BloodMoney/include/BloodMoney/UI/GlacierInspectors.h @@ -1,18 +1,36 @@ #pragma once +#include +#include #include + #include #include +#include +#include +#include + #include #include +#include + #include #include //only for FMT + #include namespace ImGui { // Custom impls + template <> + struct Inspector { + static void Draw(const char* id, float* data) + { + ImGui::InputFloat(id, data); + } + }; + template <> struct Inspector { static void Draw(const char* id, Glacier::ZVector2* data) { @@ -193,4 +211,72 @@ namespace ImGui //TODO: Continue from https://github.com/DronCode/ReHitman/blob/22fb0d77f3bfb593072bdfb8a3c380e7e2dc7c37/HM3CoreKill/HM3CoreKill/ck/HM3InGameTools.cpp#L1121 } }; + + template <> struct Inspector + { + static void Draw(const char* /*id*/, Glacier::ZCAMERA* camera) + { + if (!camera) { + ImGui::TextColored(ImVec4 { 1.f, 0.f, 0.f, 1.f }, "No ZCAMERA INSTANCE"); + return; + } + + Glacier::ZMat3x3 matrixOld, matrix; + Glacier::ZVector3 positionOld, position; + float aspect = camera->GetViewAspect(); + float fov = camera->GetFOV(), fovOld = camera->GetFOV(); + + camera->GetMatPos(&matrix, &position); + camera->GetMatPos(&matrixOld, &positionOld); + + ImGui::Inspector::Draw("Transform", &matrix); + ImGui::Inspector::Draw("Position", &position); + ImGui::Inspector::Draw("Aspect ratio", &aspect); + ImGui::Inspector::Draw("FOV", &fov); + + if (matrix != matrixOld) { + camera->SetMat(&matrix); + } + + if (position != positionOld) { + camera->SetPos(&position); + } + + if (fov != fovOld) { + camera->SetFOV(fov); + } + + if (camera->IsActive() && ImGui::Button("Deactivate")) { + camera->DeactivateCam(); + } + + if (!camera->IsActive() && ImGui::Button("Activate")) { + camera->ActivateCam(); + } + } + }; + + template <> struct Inspector { + static void Draw(const char* /*id*/, Glacier::ZSNDOBJ* sndobj) { + if (!sndobj) { + ImGui::TextColored(ImVec4{1.f, 0.f, 0.f, 1.f}, "No ZSNDOBJ INSTANCE"); + return; + } + + /** + * @todo: Do something ... + */ + } + }; + + template <> struct Inspector + { + static void Draw(const char* id, Glacier::ESuitMask* mask); + }; + + /// BloodMoney stuff + template <> struct Inspector + { + static void Draw(const char* id, Hitman::BloodMoney::ZHM3Actor* actor); + }; } \ No newline at end of file diff --git a/ReHitman/BloodMoney/include/BloodMoney/UI/Widgets/PlayerTeleportWidget.h b/ReHitman/BloodMoney/include/BloodMoney/UI/Widgets/PlayerTeleportWidget.h new file mode 100644 index 0000000..44c1d0a --- /dev/null +++ b/ReHitman/BloodMoney/include/BloodMoney/UI/Widgets/PlayerTeleportWidget.h @@ -0,0 +1,14 @@ +#pragma once + +#include + +namespace Hitman::BloodMoney +{ + class PlayerTeleportWidget final : public DebugWidget + { + public: + static bool g_bIsShowed; + + void draw() override; + }; +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/include/BloodMoney/UI/Widgets/SceneViewer.h b/ReHitman/BloodMoney/include/BloodMoney/UI/Widgets/SceneViewer.h new file mode 100644 index 0000000..d9078cf --- /dev/null +++ b/ReHitman/BloodMoney/include/BloodMoney/UI/Widgets/SceneViewer.h @@ -0,0 +1,16 @@ +#pragma once + + +#include + + +namespace Hitman::BloodMoney +{ + class SceneViewer final : public DebugWidget + { + public: + void draw() override; + + static bool g_bIsVisible; + }; +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/source/BMConfigurationService.cpp b/ReHitman/BloodMoney/source/BMConfigurationService.cpp index 7dfdd05..3bba7c0 100644 --- a/ReHitman/BloodMoney/source/BMConfigurationService.cpp +++ b/ReHitman/BloodMoney/source/BMConfigurationService.cpp @@ -9,4 +9,54 @@ namespace Hitman::BloodMoney std::intptr_t BMConfigurationService::BMAPI_FunctionAddress_ZHM3ItemBomb_Explode = BMConfigurationService::kNotConfiguredOption; std::intptr_t BMConfigurationService::BMAPI_FunctionAddress_CMetalDetector_DoDetectWeapon = BMConfigurationService::kNotConfiguredOption; std::intptr_t BMConfigurationService::BMAPI_FunctionAddress_CMetalDetector_DoAlarm = BMConfigurationService::kNotConfiguredOption; + std::intptr_t BMConfigurationService::BMAPI_FunctionAddress_ZHM3Actor_PreparePath = BMConfigurationService::kNotConfiguredOption; + std::intptr_t BMConfigurationService::BMAPI_FunctionAddress_ZHM3Actor_ActivateBloodSpurt = BMConfigurationService::kNotConfiguredOption; + std::intptr_t BMConfigurationService::BMAPI_FunctionAddress_ZTie_HideTie = BMConfigurationService::kNotConfiguredOption; + std::intptr_t BMConfigurationService::BMAPI_FunctionAddress_ZTie_HideTieInMirror = BMConfigurationService::kNotConfiguredOption; + std::intptr_t BMConfigurationService::BMAPI_FunctionAddress_ZXMLGUISystem_GetTopWindow = BMConfigurationService::kNotConfiguredOption; + std::intptr_t BMConfigurationService::BMAPI_FunctionAddress_CTelePortList_TeleportToPointAtIndex = BMConfigurationService::kNotConfiguredOption; + std::intptr_t BMConfigurationService::BMAPI_FunctionAddress_ZHM3DialogControl_StartDialog = BMConfigurationService::kNotConfiguredOption; + std::intptr_t BMConfigurationService::BMAPI_FunctionAddress_ZHM3DialogControl_SetDialogSkipable = BMConfigurationService::kNotConfiguredOption; + std::intptr_t BMConfigurationService::BMAPI_FunctionAddress_CElevatorHouse_GetElevatorDoorStatus = BMConfigurationService::kNotConfiguredOption; + std::intptr_t BMConfigurationService::BMAPI_FunctionAddress_ZOSD_AddInfo = BMConfigurationService::kNotConfiguredOption; + std::intptr_t BMConfigurationService::BMAPI_FunctionAddress_ZOSD_AddWarning = BMConfigurationService::kNotConfiguredOption; + std::intptr_t BMConfigurationService::BMAPI_FunctionAddress_ZOSD_AddHint = BMConfigurationService::kNotConfiguredOption; + std::intptr_t BMConfigurationService::BMAPI_FunctionAddress_CKeycardReader_GetNearestDoor = BMConfigurationService::kNotConfiguredOption; + std::intptr_t BMConfigurationService::BMAPI_FunctionAddress_CKeycardReader_ValidateKeyCard = BMConfigurationService::kNotConfiguredOption; + std::intptr_t BMConfigurationService::BMAPI_FunctionAddress_CKeycardReader_InvalidateKeyCard = BMConfigurationService::kNotConfiguredOption; + std::intptr_t BMConfigurationService::BMAPI_FunctionAddress_CKeycardReader_DetermineLnkObjLocation = BMConfigurationService::kNotConfiguredOption; + std::intptr_t BMConfigurationService::BMAPI_FunctionAddress_CKeycardReader_GetKeyCard = BMConfigurationService::kNotConfiguredOption; + std::intptr_t BMConfigurationService::BMAPI_FunctionAddress_CKeycardReader_GetItemTemplateFromName = BMConfigurationService::kNotConfiguredOption; + std::intptr_t BMConfigurationService::BMAPI_FunctionAddress_CKeycardReader_IsKeyCardValid = BMConfigurationService::kNotConfiguredOption; + std::intptr_t BMConfigurationService::BMAPI_FunctionAddress_ZLINEOBJ_FactoryConstructor = BMConfigurationService::kNotConfiguredOption; + std::intptr_t BMConfigurationService::BMAPI_FunctionAddress_ZTTFONT_FactoryConstructor = BMConfigurationService::kNotConfiguredOption; + std::intptr_t BMConfigurationService::BMAPI_FunctionAddress_ZKerningFont_FactoryConstructor = BMConfigurationService::kNotConfiguredOption; + std::intptr_t BMConfigurationService::BMAPI_FunctionAddress_ZHM3WeaponUpgradeControl_InitWeaponReferences = BMConfigurationService::kNotConfiguredOption; + std::intptr_t BMConfigurationService::BMAPI_FunctionAddress_ZHM3WeaponUpgradeControl_ApplyDefaultUpgrades = BMConfigurationService::kNotConfiguredOption; + std::intptr_t BMConfigurationService::BMAPI_FunctionAddress_ZHM3WeaponUpgradeControl_GetWeaponType = BMConfigurationService::kNotConfiguredOption; + std::intptr_t BMConfigurationService::BMAPI_FunctionAddress_ZHM3ItemWeaponCustom_ApplyUpgrades = BMConfigurationService::kNotConfiguredOption; + std::intptr_t BMConfigurationService::BMAPI_FunctionAddress_ZHM3ItemWeaponCustom_UpdateWeaponPartDrawStatus = BMConfigurationService::kNotConfiguredOption; + std::intptr_t BMConfigurationService::BMAPI_FunctionAddress_ZHM3ItemWeaponCustom_ClearUpgrades = BMConfigurationService::kNotConfiguredOption; + std::intptr_t BMConfigurationService::BMAPI_FunctionAddress_ZHM3BriefingControl_CompleteObjective = BMConfigurationService::kNotConfiguredOption; + std::intptr_t BMConfigurationService::BMAPI_FunctionAddress_ZHM3BriefingControl_PlaySpeech = BMConfigurationService::kNotConfiguredOption; + std::intptr_t BMConfigurationService::BMAPI_FunctionAddress_ZHM3BriefingControl_StopSpeech = BMConfigurationService::kNotConfiguredOption; + std::intptr_t BMConfigurationService::BMAPI_FunctionAddress_ZWINOBJ_GetTexture = BMConfigurationService::kNotConfiguredOption; + std::intptr_t BMConfigurationService::BMAPI_FunctionAddress_ZGUIBase_GetSize = BMConfigurationService::kNotConfiguredOption; + std::intptr_t BMConfigurationService::BMAPI_FunctionAddress_PF4_CreatePathFinder = BMConfigurationService::kNotConfiguredOption; + std::intptr_t BMConfigurationService::BMAPI_FunctionAddress_ZHM3InventoryMenu_InitInventoryList = BMConfigurationService::kNotConfiguredOption; + std::intptr_t BMConfigurationService::BMAPI_FunctionAddress_ZHM3InventoryMenu_CloseItemView = BMConfigurationService::kNotConfiguredOption; + std::intptr_t BMConfigurationService::BMAPI_FunctionAddress_ZHM3InventoryMenu_CloseInventoryMenu = BMConfigurationService::kNotConfiguredOption; + std::intptr_t BMConfigurationService::BMAPI_FunctionAddress_ZHM3InventoryMenu_UpdateItemView = BMConfigurationService::kNotConfiguredOption; + std::intptr_t BMConfigurationService::BMAPI_FunctionAddress_ZHM3InventoryMenu_UpdateItemInfo = BMConfigurationService::kNotConfiguredOption; + std::intptr_t BMConfigurationService::BMAPI_FunctionAddress_ZHM3InventoryMenu_SpinCircle = BMConfigurationService::kNotConfiguredOption; + std::intptr_t BMConfigurationService::BMAPI_FunctionAddress_ZHM3InventoryMenu_TurnLeft = BMConfigurationService::kNotConfiguredOption; + std::intptr_t BMConfigurationService::BMAPI_FunctionAddress_ZHM3InventoryMenu_TurnRight = BMConfigurationService::kNotConfiguredOption; + std::intptr_t BMConfigurationService::BMAPI_FunctionAddress_IGUIElement_ChangeColorSet = BMConfigurationService::kNotConfiguredOption; + std::intptr_t BMConfigurationService::BMAPI_FunctionAddress_IGUIElement_ChangeColor = BMConfigurationService::kNotConfiguredOption; + std::intptr_t BMConfigurationService::BMAPI_FunctionAddress_IGUIElement_SetColor = BMConfigurationService::kNotConfiguredOption; + std::intptr_t BMConfigurationService::BMAPI_FunctionAddress_IGUIElement_GetRightPosOfTextGroup = BMConfigurationService::kNotConfiguredOption; + std::intptr_t BMConfigurationService::BMAPI_FunctionAddress_ZHM3MenuElements_GetGUIElement = BMConfigurationService::kNotConfiguredOption; + std::intptr_t BMConfigurationService::BMAPI_FunctionAddress_ZHM3ItemTool_GetHM3ItemName = BMConfigurationService::kNotConfiguredOption; + + std::intptr_t BMConfigurationService::BMAPI_GlobalVariableAddress_ZVCR_m_msgStealTape = BMConfigurationService::kNotConfiguredOption; } \ No newline at end of file diff --git a/ReHitman/BloodMoney/source/Client.cpp b/ReHitman/BloodMoney/source/Client.cpp index e2916d5..a867a21 100644 --- a/ReHitman/BloodMoney/source/Client.cpp +++ b/ReHitman/BloodMoney/source/Client.cpp @@ -17,12 +17,18 @@ #include #include #include +#include +#include +#include +#include namespace Hitman::BloodMoney { static constexpr std::string_view kDirectX9DllName = "d3d9.dll"; static constexpr std::string_view kProcessName = "HitmanBloodMoney.exe"; + Scripting::ScriptingRuntime::Ptr g_pScriptingRuntime = nullptr; + bool Client::OnAttach() { spdlog::info("----------[ WELCOME TO RE:HITMAN PROJECT ]----------"); @@ -44,15 +50,28 @@ namespace Hitman::BloodMoney return false; } + g_pScriptingRuntime = std::make_unique(); + if (!g_pScriptingRuntime->Setup()) { + spdlog::error("Failed to initialize scripting subsystem. Scripts are disabled for this session"); + g_pScriptingRuntime = nullptr; + } + spdlog::info("Script subsystem was loaded successfully!"); + return true; } void Client::OnDestroy() { + g_pScriptingRuntime = nullptr; + m_patches->Release(); ReleaseModules(); } + Scripting::ScriptingRuntime* Client::GetScriptingRuntime() { + return g_pScriptingRuntime ? g_pScriptingRuntime.get() : nullptr; + } + bool Client::RegisterGameConfigurationForGlacier() { #pragma region Glacier Engine Configuration Table @@ -63,10 +82,13 @@ namespace Hitman::BloodMoney Glacier::G1ConfigurationService::G1API_FunctionAddress_ZGROUP_IsRoot = 0x004EA2F0; Glacier::G1ConfigurationService::G1API_FunctionAddress_ZGEOM_GetMatPos = 0x004E5E40; + Glacier::G1ConfigurationService::G1API_FunctionAddress_ZGEOM_GetRootTM = 0x004E6990; Glacier::G1ConfigurationService::G1API_FunctionAddress_ZGEOM_RefToPtr = 0x004E5BE0; + Glacier::G1ConfigurationService::G1API_FunctionAddress_ZGEOM_GetRef = 0x004E5BC0; Glacier::G1ConfigurationService::G1API_FunctionAddress_ZHumanBoid_SetTarget = 0x00585670; + Glacier::G1ConfigurationService::G1API_FunctionAddress_ZBaseGeom_DoInit = 0x004316C0; Glacier::G1ConfigurationService::G1API_FunctionAddress_ZBaseGeom_ParentGroup = 0x00432640; Glacier::G1ConfigurationService::G1API_FunctionAddress_ZBaseGeom_SetName = 0x00431570; Glacier::G1ConfigurationService::G1API_FunctionAddress_ZBaseGeom_SetPrim = 0x00431DB0; @@ -100,6 +122,39 @@ namespace Hitman::BloodMoney Glacier::G1ConfigurationService::G1API_FunctionAddress_ZHash_int_SMatPos_Put = 0x00665E20; Glacier::G1ConfigurationService::G1API_FunctionAddress_ZHash_int_SMatPos_Clear = 0x00663FB0; Glacier::G1ConfigurationService::G1API_FunctionAddress_ZHash_int_SMatPos_Find = 0x00664060; + + Glacier::G1ConfigurationService::G1API_FunctionAddress_ZEngineDataBase_GetSceneCom = 0x0045AED0; + Glacier::G1ConfigurationService::G1API_FunctionAddress_ZEngineDataBase_SRefToPtr = 0x0045B280; + + Glacier::G1ConfigurationService::G1API_FunctionAddress_CInventory_AddItem = 0x005C5400; + Glacier::G1ConfigurationService::G1API_FunctionAddress_CInventory_RemoveItem = 0x005C5780; + Glacier::G1ConfigurationService::G1API_FunctionAddress_ZSNDOBJ_AttachToDefaultRoom = 0x004FA240; + + Glacier::G1ConfigurationService::G1API_FunctionAddress_GetGQC = 0x00461A20; + + Glacier::G1ConfigurationService::G1ConfigurationService::G1API_FunctionAddress_ZScriptC_FindScript = 0x00549980; + Glacier::G1ConfigurationService::G1ConfigurationService::G1API_FunctionAddress_ZAction_AddAction = 0x005D3C10; //another func 0x00549980 + Glacier::G1ConfigurationService::G1ConfigurationService::G1API_FunctionAddress_ZAction_Show = 0x0052BC30; + Glacier::G1ConfigurationService::G1ConfigurationService::G1API_FunctionAddress_ZAction_Hide = 0x0052B070; + + Glacier::G1ConfigurationService::G1API_InstanceAddress_ZEngineGeomControl = 0x007F5AA8; + Glacier::G1ConfigurationService::G1API_InstanceAddress_CConfiguration_bSubtitles = 0x008ACA9C; + + Glacier::G1ConfigurationService::G1API_FunctionAddress_ZCameraSpace_AssignOperator = 0x00439DE0; + Glacier::G1ConfigurationService::G1API_FunctionAddress_ZCameraSpace_IsMirror = 0x00439C90; + Glacier::G1ConfigurationService::G1API_FunctionAddress_ZCameraSpace_IsMain = 0x00439CE0; + Glacier::G1ConfigurationService::G1API_FunctionAddress_ZCameraSpace_Proj2D = 0x00439D30; + Glacier::G1ConfigurationService::G1API_FunctionAddress_ZCameraSpace_Proj3D = 0x00439CF0; + Glacier::G1ConfigurationService::G1API_FunctionAddress_ZCameraSpace_GetLocalMatPos = 0x00439DB0; + Glacier::G1ConfigurationService::G1API_FunctionAddress_ZCameraSpace_TransformInversMatPos = 0x00439FC0; + Glacier::G1ConfigurationService::G1API_FunctionAddress_ZCameraSpace_GetViewport = 0x00439D80; + Glacier::G1ConfigurationService::G1API_FunctionAddress_CCom_GetpVal = 0x004267A0; + Glacier::G1ConfigurationService::G1API_FunctionAddress_CCom_GetVal = 0x00426380; + Glacier::G1ConfigurationService::G1API_FunctionAddress_ZENVIRONMENT_ToggleColor = 0x004E5A00; + Glacier::G1ConfigurationService::G1API_FunctionAddress_ZENVIRONMENT_SetDiffuseColor = 0x004E5970; + Glacier::G1ConfigurationService::G1API_FunctionAddress_ZActorHeroCheckInside_IsInside = 0x005D4BC0; + Glacier::G1ConfigurationService::G1API_FunctionAddress_ZGameStats_IncreaseCurrentShotCount = 0x00463E70; + Glacier::G1ConfigurationService::G1API_FunctionAddress_ZGameStats_DecreaseCurrentShotCount = 0x00463E90; #pragma endregion #pragma region BloodMoney Configuration Table BloodMoney::BMConfigurationService::BMAPI_FunctionAddress_ZPathFollower_GetClosestWaypoint = 0x00654450; @@ -109,6 +164,55 @@ namespace Hitman::BloodMoney BloodMoney::BMConfigurationService::BMAPI_FunctionAddress_ZHM3ItemBomb_Explode = 0x0064F810; BloodMoney::BMConfigurationService::BMAPI_FunctionAddress_CMetalDetector_DoDetectWeapon = 0x005D5D60; BloodMoney::BMConfigurationService::BMAPI_FunctionAddress_CMetalDetector_DoAlarm = 0x005D5B50; + BloodMoney::BMConfigurationService::BMAPI_FunctionAddress_ZHM3Actor_PreparePath = 0x00505570; + BloodMoney::BMConfigurationService::BMAPI_FunctionAddress_ZHM3Actor_ActivateBloodSpurt = 0x0063D210; + BloodMoney::BMConfigurationService::BMAPI_FunctionAddress_ZTie_HideTie = 0x00580470; + BloodMoney::BMConfigurationService::BMAPI_FunctionAddress_ZTie_HideTieInMirror = 0x00580480; + BloodMoney::BMConfigurationService::BMAPI_FunctionAddress_ZXMLGUISystem_GetTopWindow = 0x005665E0; + BloodMoney::BMConfigurationService::BMAPI_FunctionAddress_CTelePortList_TeleportToPointAtIndex = 0x0052A970; + BloodMoney::BMConfigurationService::BMAPI_FunctionAddress_ZHM3DialogControl_StartDialog = 0x00645550; + BloodMoney::BMConfigurationService::BMAPI_FunctionAddress_ZHM3DialogControl_SetDialogSkipable = 0x00645060; + BloodMoney::BMConfigurationService::BMAPI_FunctionAddress_CElevatorHouse_GetElevatorDoorStatus = 0x0059F1E0; + BloodMoney::BMConfigurationService::BMAPI_FunctionAddress_ZOSD_AddInfo = 0x00660EE0; + BloodMoney::BMConfigurationService::BMAPI_FunctionAddress_ZOSD_AddWarning = 0x00660F20; + BloodMoney::BMConfigurationService::BMAPI_FunctionAddress_ZOSD_AddHint = 0x00660F40; + BloodMoney::BMConfigurationService::BMAPI_FunctionAddress_CKeycardReader_GetNearestDoor = 0x005C7B60; + BloodMoney::BMConfigurationService::BMAPI_FunctionAddress_CKeycardReader_ValidateKeyCard = 0x005C8280; + BloodMoney::BMConfigurationService::BMAPI_FunctionAddress_CKeycardReader_InvalidateKeyCard = 0x005C8330; + BloodMoney::BMConfigurationService::BMAPI_FunctionAddress_CKeycardReader_DetermineLnkObjLocation = 0x005C8480; + BloodMoney::BMConfigurationService::BMAPI_FunctionAddress_CKeycardReader_GetKeyCard = 0x005C8640; + BloodMoney::BMConfigurationService::BMAPI_FunctionAddress_CKeycardReader_GetItemTemplateFromName = 0x005C8750; + BloodMoney::BMConfigurationService::BMAPI_FunctionAddress_CKeycardReader_IsKeyCardValid = 0x005C7DB0; + BloodMoney::BMConfigurationService::BMAPI_FunctionAddress_ZLINEOBJ_FactoryConstructor = 0x005558E0; + BloodMoney::BMConfigurationService::BMAPI_FunctionAddress_ZTTFONT_FactoryConstructor = 0x0055B480; + BloodMoney::BMConfigurationService::BMAPI_FunctionAddress_ZKerningFont_FactoryConstructor = 0x0055B5F0; + BloodMoney::BMConfigurationService::BMAPI_FunctionAddress_ZHM3WeaponUpgradeControl_InitWeaponReferences = 0x00653820; + BloodMoney::BMConfigurationService::BMAPI_FunctionAddress_ZHM3WeaponUpgradeControl_ApplyDefaultUpgrades = 0x00653A00; + BloodMoney::BMConfigurationService::BMAPI_FunctionAddress_ZHM3WeaponUpgradeControl_GetWeaponType = 0x006535E0; + BloodMoney::BMConfigurationService::BMAPI_FunctionAddress_ZHM3ItemWeaponCustom_ApplyUpgrades = 0x006505E0; + BloodMoney::BMConfigurationService::BMAPI_FunctionAddress_ZHM3ItemWeaponCustom_UpdateWeaponPartDrawStatus = 0x00650450; + BloodMoney::BMConfigurationService::BMAPI_FunctionAddress_ZHM3ItemWeaponCustom_ClearUpgrades = 0x00650450; + BloodMoney::BMConfigurationService::BMAPI_FunctionAddress_ZHM3BriefingControl_CompleteObjective = 0x006CF120; + BloodMoney::BMConfigurationService::BMAPI_FunctionAddress_ZHM3BriefingControl_PlaySpeech = 0x006CF650; + BloodMoney::BMConfigurationService::BMAPI_FunctionAddress_ZHM3BriefingControl_StopSpeech = 0x006CEBB0; + BloodMoney::BMConfigurationService::BMAPI_FunctionAddress_ZWINOBJ_GetTexture = 0x0054F2A0; + BloodMoney::BMConfigurationService::BMAPI_FunctionAddress_ZGUIBase_GetSize = 0x00564040; + BloodMoney::BMConfigurationService::BMAPI_FunctionAddress_PF4_CreatePathFinder = 0x004D8C50; + BloodMoney::BMConfigurationService::BMAPI_FunctionAddress_ZHM3InventoryMenu_InitInventoryList = 0x00681A10; + BloodMoney::BMConfigurationService::BMAPI_FunctionAddress_ZHM3InventoryMenu_CloseItemView = 0x00680DA0; + BloodMoney::BMConfigurationService::BMAPI_FunctionAddress_ZHM3InventoryMenu_CloseInventoryMenu = 0x00681040; + BloodMoney::BMConfigurationService::BMAPI_FunctionAddress_ZHM3InventoryMenu_UpdateItemView = 0x006813F0; + BloodMoney::BMConfigurationService::BMAPI_FunctionAddress_ZHM3InventoryMenu_UpdateItemInfo = 0x00681F10; + BloodMoney::BMConfigurationService::BMAPI_FunctionAddress_ZHM3InventoryMenu_SpinCircle = 0x00680E10; + BloodMoney::BMConfigurationService::BMAPI_FunctionAddress_ZHM3InventoryMenu_TurnLeft = 0x00680F40; + BloodMoney::BMConfigurationService::BMAPI_FunctionAddress_ZHM3InventoryMenu_TurnRight = 0x00680FC0; + BloodMoney::BMConfigurationService::BMAPI_FunctionAddress_IGUIElement_ChangeColorSet = 0x0055E6E0; + BloodMoney::BMConfigurationService::BMAPI_FunctionAddress_IGUIElement_ChangeColor = 0x0055E800; + BloodMoney::BMConfigurationService::BMAPI_FunctionAddress_IGUIElement_SetColor = 0x0055E4E0; + BloodMoney::BMConfigurationService::BMAPI_FunctionAddress_IGUIElement_GetRightPosOfTextGroup = 0x0055E550; + BloodMoney::BMConfigurationService::BMAPI_FunctionAddress_ZHM3MenuElements_GetGUIElement = 0x00564710; + BloodMoney::BMConfigurationService::BMAPI_FunctionAddress_ZHM3ItemTool_GetHM3ItemName = 0x006493D0; + BloodMoney::BMConfigurationService::BMAPI_GlobalVariableAddress_ZVCR_m_msgStealTape = 0x009B3C24; #pragma endregion return true; } @@ -122,7 +226,7 @@ namespace Hitman::BloodMoney return; } - spdlog::info("Module: {} base address at {:08x} of size {:08x}", mod->getName(), mod->getBaseAddress(), mod->getSize()); + spdlog::info("Module: {} base address at {:08x} of size {:08x}", mod->getName().data(), mod->getBaseAddress(), mod->getSize()); }; m_selfProcess = std::make_shared(kProcessName); @@ -130,7 +234,7 @@ namespace Hitman::BloodMoney if (!m_selfProcess->isValid()) { - spdlog::error("Failed to locate {} process", kProcessName); + spdlog::error("Failed to locate {} process", kProcessName.data()); return false; } @@ -144,7 +248,7 @@ namespace Hitman::BloodMoney m_d3d9Module = m_selfProcess->getModule(kDirectX9DllName); if (!m_d3d9Module) { - spdlog::error("Failed to locate {} module!", kDirectX9DllName); + spdlog::error("Failed to locate {} module!", kDirectX9DllName.data()); return false; } @@ -168,8 +272,13 @@ namespace Hitman::BloodMoney m_patches->RegisterPatch(std::make_unique()); m_patches->RegisterPatch(std::make_unique()); m_patches->RegisterPatch(); - //m_patches->RegisterPatch(); m_patches->RegisterPatch(); m_patches->RegisterPatch(); + m_patches->RegisterPatch(); + m_patches->RegisterPatch(); + m_patches->RegisterPatch(); + + // temporary disabled + //m_patches->RegisterPatch(); } } \ No newline at end of file diff --git a/ReHitman/BloodMoney/source/Delegates/DX9Delegate.cpp b/ReHitman/BloodMoney/source/Delegates/DX9Delegate.cpp index 9cdc623..c82dfab 100644 --- a/ReHitman/BloodMoney/source/Delegates/DX9Delegate.cpp +++ b/ReHitman/BloodMoney/source/Delegates/DX9Delegate.cpp @@ -5,6 +5,8 @@ #include #include #include +#include +#include #include #include @@ -52,6 +54,8 @@ namespace Hitman::BloodMoney Globals::g_pDebugTools->addChild(std::make_shared()); Globals::g_pDebugTools->addChild(std::make_shared()); Globals::g_pDebugTools->addChild(std::make_shared()); + Globals::g_pDebugTools->addChild(std::make_shared()); + Globals::g_pDebugTools->addChild(std::make_shared()); } spdlog::info("DX9Delegate initialised!"); @@ -73,8 +77,15 @@ namespace Hitman::BloodMoney void DX9Delegate::OnPresent(IDirect3DDevice9* device) { + ImGuiIO& io = ImGui::GetIO(); + ImGui_ImplDX9_NewFrame(); ImGui_ImplWin32_NewFrame(); + + if (io.DeltaTime <= 0.f) { + io.DeltaTime = 1.f / 60.f; + } + ImGui::NewFrame(); if (Globals::g_pDebugTools) @@ -86,7 +97,6 @@ namespace Hitman::BloodMoney Globals::g_pDebugTools->draw(); } - ImGuiIO& io = ImGui::GetIO(); io.MouseDrawCursor = isDebugToolsVisible; } diff --git a/ReHitman/BloodMoney/source/FreeFS/HBMFreeFsProxy.cpp b/ReHitman/BloodMoney/source/FreeFS/HBMFreeFsProxy.cpp new file mode 100644 index 0000000..b1cc4c6 --- /dev/null +++ b/ReHitman/BloodMoney/source/FreeFS/HBMFreeFsProxy.cpp @@ -0,0 +1,133 @@ +#include +#include +#include + +#include +#include +#include + +namespace Hitman::BloodMoney::FreeFS { + namespace Consts { + static constexpr std::intptr_t FsZip_Read_OriginalPtr = 0x0042C470; + static constexpr std::intptr_t FsZip_GetFileSize_OriginalPtr = 0x0042C2D0; + } + + std::string HBMFreeFsProxy::findFileInFolderRecursively(const std::string& folder, const std::string& file) try + { + namespace fs = std::filesystem; + + try { + for (const auto& entry : fs::directory_iterator(folder)) { + const auto filenameStr = entry.path().filename().string(); + if (entry.is_directory()) { + auto result = findFileInFolderRecursively(entry.path().string(), file); + if (!result.empty()) + return result; + } + else if (entry.is_regular_file()) { + if (filenameStr == file) + return entry.path().string(); + } + } + } + catch (...) { + return ""; + } + + return ""; + } + catch (const std::exception & ex) + { + spdlog::error("FreeFS exception: {}", ex.what()); + assert(false && "See log for details"); + return ""; + } + + int HBMFreeFsProxy::readFileProvider(const char* name, void* dest, int fileSize, int unk1) { + namespace fs = std::filesystem; + + auto sys = Glacier::getInterface(Globals::kSysInterfaceAddr); + + // --- detect scene --- + std::string fileName = name; + std::string zipPackageFileName = fs::path(this->m_missionZipFilePath).stem().string(); + std::string sceneName = fs::path(sys->m_currentScene).stem().string(); + + if (fileName[0] == '*') + { + fileName = findFileInFolderRecursively( + fmt::format("UnpackedScenes\\{}\\{}", sceneName.data(), zipPackageFileName.data()), + fileName.substr(1, fileName.length()) + ); + } + + std::string path = fmt::format(R"(UnpackedScenes\{}\{}\{})", sceneName.data(), zipPackageFileName.data(), fileName.data()); + + FILE* fp = fopen(path.c_str(), "rb"); + if (fp) + { + if (fileSize == 0) + { + // The glacier doesn't know the actual size of file and pass zero to us + // We must recognize how much bytes will be used by file in memory space. + fseek(fp, 0L, SEEK_END); //move to end + fileSize = ftell(fp); //save the endpoint + rewind(fp); //move to start of file + } + + const int readyBytes = fread(dest, 1, fileSize, fp); + fclose(fp); + spdlog::info("FsZip::readContents| Read file from fs {} (got bytes {})", path.data(), readyBytes); + return readyBytes; + } + + spdlog::warn("FsZip::readContents| Read file from ZIP {}", path.data()); + + // original code + typedef int(__thiscall* FsZip_read_t)(Glacier::FsZip_t*, const char*, void*, int, int); + auto original = (FsZip_read_t)Consts::FsZip_Read_OriginalPtr; + int result = original(reinterpret_cast(this), name, dest, fileSize, unk1); + return result; + } + + int HBMFreeFsProxy::getFileSizeProvider(const char* name) { + namespace fs = std::filesystem; + + auto sys = Glacier::getInterface(Globals::kSysInterfaceAddr); + + // --- detect scene --- + std::string fileName = name; + std::string zipPackageFileName = fs::path(this->m_missionZipFilePath).stem().string(); + std::string sceneName = fs::path(sys->m_currentScene).stem().string(); + + if (fileName[0] == '*') + { + fileName = findFileInFolderRecursively( + fmt::format("UnpackedScenes\\{}\\{}", sceneName.data(), zipPackageFileName.data()), + fileName.substr(1, fileName.length()) + ); + } + + std::string path = fmt::format(R"(UnpackedScenes\{}\{}\{})", sceneName.data(), zipPackageFileName.data(), fileName.data()); + + FILE* fp = fopen(path.c_str(), "rb"); + if (fp) + { + int fileSize = 0; + fseek(fp, 0L, SEEK_END); //move to end + fileSize = ftell(fp); //save the endpoint + fclose(fp); + + spdlog::info("FsZip::getFileSize| Got file size {} from fs {}", fileSize, path.data()); + return fileSize; + } + + // original code + typedef int(__thiscall* FsZip_getFileSize_t)(Glacier::FsZip_t*, const char*); + auto original = (FsZip_getFileSize_t)Consts::FsZip_GetFileSize_OriginalPtr; + int result = original(reinterpret_cast(this), name); + + spdlog::warn("FsZip::getFileSize| Got file size {} from ZIP {}", result, path.data()); + return result; + } +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/source/Game/CCheat.cpp b/ReHitman/BloodMoney/source/Game/CCheat.cpp new file mode 100644 index 0000000..928495d --- /dev/null +++ b/ReHitman/BloodMoney/source/Game/CCheat.cpp @@ -0,0 +1,154 @@ +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include + +#include + +namespace Hitman::BloodMoney { + static constexpr std::array kGiveSomeArray = { + "SMG_MP7_01", + "Gun_HKusp_01", + "Equip_Bomb_01", + "Equip_Bomb_01", + "Equip_Bomb_01", + "Equip_BombRemote_01", + "Ammo_SMG_01", + "Ammo_SMG_01", + "Ammo_Custom_Sniper_01", + "Ammo_Custom_Sniper_01", + "Ammo_Custom_Shotgun_01", + "Ammo_Custom_Shotgun_01", + "Ammo_Custom_Shotgun_01", + "Ammo_Custom_Shotgun_01", + "Ammo_Pistol_01", + "Ammo_Pistol_01", + "Ammo_45ACP_01", + "Custom_Pistol", + "Custom_ShotGun", + "Custom_SniperRifle" + }; + + static constexpr std::array, 16> kGiveSomeList = { + std::make_pair(EHM3ItemType::Item_LockPick, 1), + std::make_pair(EHM3ItemType::Custom_Pistol, 1), + std::make_pair(EHM3ItemType::Equip_Bomb_01, 4), + std::make_pair(EHM3ItemType::Equip_BombRemote_01, 1), + std::make_pair(EHM3ItemType::Gun_HKusp_Silenced_01, 1), + std::make_pair(EHM3ItemType::CC_FiberWire_01, 1), + std::make_pair(EHM3ItemType::CC_Knife_Bowie_01, 1), + std::make_pair(EHM3ItemType::CC_Syringe_Poison_01, 4), + std::make_pair(EHM3ItemType::Ammo_SMG_01, 10), + std::make_pair(EHM3ItemType::Ammo_Pistol_01, 10), + std::make_pair(EHM3ItemType::Ammo_Custom_ShotGun_01, 10), + std::make_pair(EHM3ItemType::CC_Scythe_01, 1), + std::make_pair(EHM3ItemType::CC_Scythe_01, 1), + std::make_pair(EHM3ItemType::Equip_KevlarVest_01, 1), + std::make_pair(EHM3ItemType::Item_Coin_01, 4) + }; + + void CCheat::GiveItem(Glacier::ZREF rItem) { + auto pGameData = Glacier::getInterface(Globals::kGameDataAddr); + if (!pGameData) { + return; + } + + auto pInventory = reinterpret_cast(reinterpret_cast(pGameData->m_Hitman3)->FindEvent(Glacier::CInventory::Name)); + if (!pInventory) { + spdlog::error("Failed to locate Inventory ZEventBase instance in player (something goes wrong?), player ptr: {:08X}", reinterpret_cast(pGameData->m_Hitman3)); + } else { + auto pAddedItem = pInventory->AddItem(rItem); + if (!pAddedItem) { + return; + } + + auto eWeaponType = ZHM3WeaponUpgradeControl::GetWeaponType(pAddedItem->m_baseGeom->entityName); + if (eWeaponType != EWeaponType::EW_UNKNOWN) { //TODO: Add fix for WA-2000 (It's not classified as 'custom' weapon but it is) + auto pCustomItem = reinterpret_cast(pAddedItem); + + pCustomItem->ApplyUpgrades(true); + } + } + } + + void CCheat::GiveItem(Glacier::ZGROUP *pWeaponsGroup, std::string_view sItemName) { + Glacier::ZEntityLocator* pCurrentEnt = pWeaponsGroup->m_baseGeom; + Glacier::ZGEOM* pCurrentGeom = nullptr; + + do { + pCurrentGeom = reinterpret_cast(pCurrentEnt->m_assignedTo); + + auto kZItemTemplate_Id = reinterpret_cast(0x0099BF30); + auto kZItemTemplate_Mask = reinterpret_cast(0x0099BF34); + const bool isItemTemplate = ((*kZItemTemplate_Mask) & pCurrentGeom->GetObjectId() )== *(kZItemTemplate_Id); + const std::string_view sCurrentItemName { pCurrentEnt->entityName }; + + if (sCurrentItemName == sItemName) { + if (!isItemTemplate) { + spdlog::warn("Unable to give item '{}', it's not a ZItemTemplate thing", sItemName.data()); + } + else { + CCheat::GiveItem(pCurrentGeom->GetRef()); + } + + return; + } + + pWeaponsGroup->RecurGetNext(&pCurrentEnt); + } + while (pCurrentEnt); + } + + void CCheat::GiveSome() { + auto sysInterface = Glacier::getInterface(Globals::kSysInterfaceAddr); + if (!sysInterface) { + return; + } + + auto engineDB = sysInterface->m_engineDataBase; + if (!engineDB) { + return; + } + + std::intptr_t rpWeaponsGroup = engineDB->GetSceneVar("WeaponsGroup"); + if (!rpWeaponsGroup) { + spdlog::warn("No WeaponsGroup presented"); + return; + } + + Glacier::ZREF rWeaponsGroup = *reinterpret_cast(rpWeaponsGroup); + if (!rWeaponsGroup) { + spdlog::warn("No WeaponsGroup value presented"); + return; + } + + auto pWeaponsGroup = reinterpret_cast(Glacier::ZGEOM::RefToPtr(rWeaponsGroup)); + if (!pWeaponsGroup) { + spdlog::warn("No WeaponsGroup ({}) instance presented", rWeaponsGroup); + return; + } + + for (const auto& [eItemType, amount]: kGiveSomeList) { + for (int i = 0; i < amount; i++) { + CCheat::GiveItem(pWeaponsGroup, ZHM3ItemTool::GetHM3ItemName(eItemType)); + } + } + + for (const auto& sItemName: kGiveSomeArray) { + CCheat::GiveItem(pWeaponsGroup, sItemName); + } + } +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/source/Game/CElevatorHouse.cpp b/ReHitman/BloodMoney/source/Game/CElevatorHouse.cpp new file mode 100644 index 0000000..d86ec60 --- /dev/null +++ b/ReHitman/BloodMoney/source/Game/CElevatorHouse.cpp @@ -0,0 +1,14 @@ +#include +#include +#include + +namespace Hitman::BloodMoney { + CElevatorHouse::EDoorStatus CElevatorHouse::GetDoorStatusOfElevatorByREF(Glacier::ZREF elevatorObjectREF) { + assert(BMConfigurationService::BMAPI_FunctionAddress_CElevatorHouse_GetElevatorDoorStatus != BMConfigurationService::kNotConfiguredOption); + if (BMConfigurationService::BMAPI_FunctionAddress_CElevatorHouse_GetElevatorDoorStatus != BMConfigurationService::kNotConfiguredOption) { + using Func = EDoorStatus(__stdcall*)(Glacier::ZREF); + return ((Func)BMConfigurationService::BMAPI_FunctionAddress_CElevatorHouse_GetElevatorDoorStatus)(elevatorObjectREF); + } + return CElevatorHouse::EDoorStatus::DOOR_STATUS_INVALID; + } +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/source/Game/CTelePortList.cpp b/ReHitman/BloodMoney/source/Game/CTelePortList.cpp new file mode 100644 index 0000000..e2cec4e --- /dev/null +++ b/ReHitman/BloodMoney/source/Game/CTelePortList.cpp @@ -0,0 +1,13 @@ +#include +#include +#include + +namespace Hitman::BloodMoney { + void CTelePortList::TeleportToPointAtIndex(int index) { + assert(BMConfigurationService::BMAPI_FunctionAddress_CTelePortList_TeleportToPointAtIndex != BMConfigurationService::kNotConfiguredOption); + if (BMConfigurationService::BMAPI_FunctionAddress_CTelePortList_TeleportToPointAtIndex != BMConfigurationService::kNotConfiguredOption) { + ((void(__thiscall*)(Hitman::BloodMoney::CTelePortList*, int)) + (BMConfigurationService::BMAPI_FunctionAddress_CTelePortList_TeleportToPointAtIndex))(this, index); + } + } +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/source/Game/Items/ZHM3ItemTool.cpp b/ReHitman/BloodMoney/source/Game/Items/ZHM3ItemTool.cpp new file mode 100644 index 0000000..25d2bef --- /dev/null +++ b/ReHitman/BloodMoney/source/Game/Items/ZHM3ItemTool.cpp @@ -0,0 +1,18 @@ +#include +#include +#include + +namespace Hitman::BloodMoney { + std::string_view ZHM3ItemTool::GetHM3ItemName(EHM3ItemType eItemType) { + assert(BMConfigurationService::BMAPI_FunctionAddress_ZHM3ItemTool_GetHM3ItemName != BMConfigurationService::kNotConfiguredOption); + if (BMConfigurationService::BMAPI_FunctionAddress_ZHM3ItemTool_GetHM3ItemName != BMConfigurationService::kNotConfiguredOption) { + const char* sValue = ((const char*(__cdecl*)(EHM3ItemType))BMConfigurationService::BMAPI_FunctionAddress_ZHM3ItemTool_GetHM3ItemName)(eItemType); + if (!sValue) { + return ""; + } + + return std::string_view { sValue }; + } + return ""; + } +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/source/Game/Items/ZHM3ItemWeaponCustom.cpp b/ReHitman/BloodMoney/source/Game/Items/ZHM3ItemWeaponCustom.cpp new file mode 100644 index 0000000..5b387f7 --- /dev/null +++ b/ReHitman/BloodMoney/source/Game/Items/ZHM3ItemWeaponCustom.cpp @@ -0,0 +1,30 @@ +#include +#include +#include + +namespace Hitman::BloodMoney +{ + void ZHM3ItemWeaponCustom::ApplyUpgrades(char a1) { + assert(BMConfigurationService::BMAPI_FunctionAddress_ZHM3ItemWeaponCustom_ApplyUpgrades != BMConfigurationService::kNotConfiguredOption); + + if (BMConfigurationService::BMAPI_FunctionAddress_ZHM3ItemWeaponCustom_ApplyUpgrades != BMConfigurationService::kNotConfiguredOption) { + ((void(__thiscall*)(ZHM3ItemWeaponCustom*,char))BMConfigurationService::BMAPI_FunctionAddress_ZHM3ItemWeaponCustom_ApplyUpgrades)(this, a1); + } + } + + void ZHM3ItemWeaponCustom::UpdateWeaponPartDrawStatus() { + assert(BMConfigurationService::BMAPI_FunctionAddress_ZHM3ItemWeaponCustom_UpdateWeaponPartDrawStatus != BMConfigurationService::kNotConfiguredOption); + + if (BMConfigurationService::BMAPI_FunctionAddress_ZHM3ItemWeaponCustom_UpdateWeaponPartDrawStatus != BMConfigurationService::kNotConfiguredOption) { + ((void(__thiscall*)(ZHM3ItemWeaponCustom*))BMConfigurationService::BMAPI_FunctionAddress_ZHM3ItemWeaponCustom_UpdateWeaponPartDrawStatus)(this); + } + } + + void ZHM3ItemWeaponCustom::ClearUpgrades() { + assert(BMConfigurationService::BMAPI_FunctionAddress_ZHM3ItemWeaponCustom_ClearUpgrades != BMConfigurationService::kNotConfiguredOption); + + if (BMConfigurationService::BMAPI_FunctionAddress_ZHM3ItemWeaponCustom_ClearUpgrades != BMConfigurationService::kNotConfiguredOption) { + ((void(__thiscall*)(ZHM3ItemWeaponCustom*))BMConfigurationService::BMAPI_FunctionAddress_ZHM3ItemWeaponCustom_ClearUpgrades)(this); + } + } +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/source/Game/OnLevel/CKeycardReader.cpp b/ReHitman/BloodMoney/source/Game/OnLevel/CKeycardReader.cpp new file mode 100644 index 0000000..a4c9c05 --- /dev/null +++ b/ReHitman/BloodMoney/source/Game/OnLevel/CKeycardReader.cpp @@ -0,0 +1,64 @@ +#include +#include +#include + +namespace Hitman::BloodMoney +{ + Glacier::ZEntityLocator* CKeycardReader::GetNearestDoor(unsigned int iDoorsCount, Glacier::ZEntityLocator** ppDoors) { + assert(BMConfigurationService::BMAPI_FunctionAddress_CKeycardReader_GetNearestDoor != BMConfigurationService::kNotConfiguredOption); + if (BMConfigurationService::BMAPI_FunctionAddress_CKeycardReader_GetNearestDoor != BMConfigurationService::kNotConfiguredOption) + { + return ((Glacier::ZEntityLocator*(__thiscall*)(CKeycardReader*, unsigned int, Glacier::ZEntityLocator**))BMConfigurationService::BMAPI_FunctionAddress_CKeycardReader_GetNearestDoor)(this, iDoorsCount, ppDoors); + } + return nullptr; + } + + void CKeycardReader::ValidateKeyCard(Glacier::ZREF cardREF) { + assert(BMConfigurationService::BMAPI_FunctionAddress_CKeycardReader_ValidateKeyCard != BMConfigurationService::kNotConfiguredOption); + if (BMConfigurationService::BMAPI_FunctionAddress_CKeycardReader_ValidateKeyCard != BMConfigurationService::kNotConfiguredOption) { + ((void(__thiscall*)(CKeycardReader*, Glacier::ZREF))BMConfigurationService::BMAPI_FunctionAddress_CKeycardReader_ValidateKeyCard)(this, cardREF); + } + } + + void CKeycardReader::InvalidateKeyCard(Glacier::ZREF cardREF) { + assert(BMConfigurationService::BMAPI_FunctionAddress_CKeycardReader_InvalidateKeyCard != BMConfigurationService::kNotConfiguredOption); + if (BMConfigurationService::BMAPI_FunctionAddress_CKeycardReader_InvalidateKeyCard != BMConfigurationService::kNotConfiguredOption) { + ((void(__thiscall*)(CKeycardReader*, Glacier::ZREF))BMConfigurationService::BMAPI_FunctionAddress_CKeycardReader_InvalidateKeyCard)(this, cardREF); + } + } + + void CKeycardReader::DetermineLnkObjLocation(sQueryLnkObjLocation* pQuery) { + assert(BMConfigurationService::BMAPI_FunctionAddress_CKeycardReader_DetermineLnkObjLocation != BMConfigurationService::kNotConfiguredOption); + if (BMConfigurationService::BMAPI_FunctionAddress_CKeycardReader_DetermineLnkObjLocation != BMConfigurationService::kNotConfiguredOption) { + ((void(__thiscall*)(CKeycardReader*, sQueryLnkObjLocation*))BMConfigurationService::BMAPI_FunctionAddress_CKeycardReader_DetermineLnkObjLocation)(this, pQuery); + } + } + + Glacier::ZREF CKeycardReader::GetKeyCard(Glacier::ZREF playerREF, bool* hasCard) { + assert(BMConfigurationService::BMAPI_FunctionAddress_CKeycardReader_GetKeyCard != BMConfigurationService::kNotConfiguredOption); + if (BMConfigurationService::BMAPI_FunctionAddress_CKeycardReader_GetKeyCard != BMConfigurationService::kNotConfiguredOption) { + return ((Glacier::ZREF(__thiscall*)(CKeycardReader*, Glacier::ZREF, bool*))BMConfigurationService::BMAPI_FunctionAddress_CKeycardReader_GetKeyCard)(this, playerREF, hasCard); + } + + return 0; + } + + Glacier::ZREF CKeycardReader::GetItemTemplateFromName(const char* itemName) { + assert(BMConfigurationService::BMAPI_FunctionAddress_CKeycardReader_GetItemTemplateFromName != BMConfigurationService::kNotConfiguredOption); + if (BMConfigurationService::BMAPI_FunctionAddress_CKeycardReader_GetItemTemplateFromName != BMConfigurationService::kNotConfiguredOption) { + return ((Glacier::ZREF(__thiscall*)(CKeycardReader*, const char*))BMConfigurationService::BMAPI_FunctionAddress_CKeycardReader_GetItemTemplateFromName)(this, itemName); + } + return 0; + } + + bool CKeycardReader::IsKeyCardValid(BloodMoney::ZHM3Item* pItem) { + if (!pItem) return false; + + assert(BMConfigurationService::BMAPI_FunctionAddress_CKeycardReader_IsKeyCardValid != BMConfigurationService::kNotConfiguredOption); + if (BMConfigurationService::BMAPI_FunctionAddress_CKeycardReader_IsKeyCardValid != BMConfigurationService::kNotConfiguredOption) { + return ((bool(__thiscall*)(CKeycardReader*, BloodMoney::ZHM3Item*))BMConfigurationService::BMAPI_FunctionAddress_CKeycardReader_IsKeyCardValid)(this, pItem); + } + + return false; + } +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/source/Game/OnLevel/ZVCR.cpp b/ReHitman/BloodMoney/source/Game/OnLevel/ZVCR.cpp new file mode 100644 index 0000000..83fa4a9 --- /dev/null +++ b/ReHitman/BloodMoney/source/Game/OnLevel/ZVCR.cpp @@ -0,0 +1,26 @@ +#include +#include +#include + +namespace Hitman::BloodMoney +{ + void ZVCR::SetTapeStolen(bool value) { + assert(BMConfigurationService::BMAPI_GlobalVariableAddress_ZVCR_m_msgStealTape != BMConfigurationService::kNotConfiguredOption); + if (BMConfigurationService::BMAPI_GlobalVariableAddress_ZVCR_m_msgStealTape != BMConfigurationService::kNotConfiguredOption) + { + auto pVariable = reinterpret_cast(BMConfigurationService::BMAPI_GlobalVariableAddress_ZVCR_m_msgStealTape); + *pVariable = value; + } + } + + bool ZVCR::TapeWasStolen() { + assert(BMConfigurationService::BMAPI_GlobalVariableAddress_ZVCR_m_msgStealTape != BMConfigurationService::kNotConfiguredOption); + if (BMConfigurationService::BMAPI_GlobalVariableAddress_ZVCR_m_msgStealTape != BMConfigurationService::kNotConfiguredOption) + { + auto pVariable = reinterpret_cast(BMConfigurationService::BMAPI_GlobalVariableAddress_ZVCR_m_msgStealTape); + return *pVariable; + } + + return false; + } +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/source/Game/PF4/PF4RunTime.cpp b/ReHitman/BloodMoney/source/Game/PF4/PF4RunTime.cpp new file mode 100644 index 0000000..736ae48 --- /dev/null +++ b/ReHitman/BloodMoney/source/Game/PF4/PF4RunTime.cpp @@ -0,0 +1,15 @@ +#include +#include +#include + +namespace Hitman::BloodMoney::PF4RunTime { + ZData* ZData::CreatePathFinder(void *pData) { + if (!pData) return nullptr; + assert(BMConfigurationService::BMAPI_FunctionAddress_PF4_CreatePathFinder != BMConfigurationService::kNotConfiguredOption); + if (BMConfigurationService::BMAPI_FunctionAddress_PF4_CreatePathFinder != BMConfigurationService::kNotConfiguredOption) { + return ((ZData*(__cdecl*)(void*))BMConfigurationService::BMAPI_FunctionAddress_PF4_CreatePathFinder)(pData); + } + + return nullptr; + } +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/source/Game/UI/IGUIElement.cpp b/ReHitman/BloodMoney/source/Game/UI/IGUIElement.cpp new file mode 100644 index 0000000..569f1f0 --- /dev/null +++ b/ReHitman/BloodMoney/source/Game/UI/IGUIElement.cpp @@ -0,0 +1,34 @@ +#include +#include +#include +#include + +namespace Hitman::BloodMoney { + void IGUIElement::ChangeColorSet(ZWINGROUP *pGroup, ZColorSet *pColorSet) { + assert(BMConfigurationService::BMAPI_FunctionAddress_IGUIElement_ChangeColorSet != BMConfigurationService::kNotConfiguredOption); + if (BMConfigurationService::BMAPI_FunctionAddress_IGUIElement_ChangeColorSet != BMConfigurationService::kNotConfiguredOption) { + ((void(__thiscall*)(IGUIElement*,ZWINGROUP*,ZColorSet*))BMConfigurationService::BMAPI_FunctionAddress_IGUIElement_ChangeColorSet)(this, pGroup, pColorSet); + } + } + + void IGUIElement::ChangeColor(ZWINGROUP *pGroup, ZColorSet *pColorSet, ZColorSet::EColorIndex eColorIndex) { + assert(BMConfigurationService::BMAPI_FunctionAddress_IGUIElement_ChangeColor != BMConfigurationService::kNotConfiguredOption); + if (BMConfigurationService::BMAPI_FunctionAddress_IGUIElement_ChangeColor != BMConfigurationService::kNotConfiguredOption) { + ((void(__thiscall*)(IGUIElement*,ZWINGROUP*,ZColorSet*,ZColorSet::EColorIndex))BMConfigurationService::BMAPI_FunctionAddress_IGUIElement_ChangeColor)(this, pGroup, pColorSet, eColorIndex); + } + } + + void IGUIElement::SetColor(uint32_t rgba, ZWINGROUP *pGroup, uint32_t mask) { + assert(BMConfigurationService::BMAPI_FunctionAddress_IGUIElement_SetColor != BMConfigurationService::kNotConfiguredOption); + if (BMConfigurationService::BMAPI_FunctionAddress_IGUIElement_SetColor != BMConfigurationService::kNotConfiguredOption) { + ((void(__thiscall*)(IGUIElement*,uint32_t,ZWINGROUP*,uint32_t))BMConfigurationService::BMAPI_FunctionAddress_IGUIElement_SetColor)(this, rgba, pGroup, mask); + } + } + + void IGUIElement::GetRightPosOfTextGroup(ZWINGROUP* pGroup, Glacier::Vector3 *pPos, int iOffsetByX) { + assert(BMConfigurationService::BMAPI_FunctionAddress_IGUIElement_GetRightPosOfTextGroup != BMConfigurationService::kNotConfiguredOption); + if (BMConfigurationService::BMAPI_FunctionAddress_IGUIElement_GetRightPosOfTextGroup != BMConfigurationService::kNotConfiguredOption) { + ((void(__thiscall*)(IGUIElement*,ZWINGROUP*,Glacier::Vector3*,int))BMConfigurationService::BMAPI_FunctionAddress_IGUIElement_GetRightPosOfTextGroup)(this, pGroup, pPos, iOffsetByX); + } + } +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/source/Game/UI/ZColorSet.cpp b/ReHitman/BloodMoney/source/Game/UI/ZColorSet.cpp new file mode 100644 index 0000000..b2531a4 --- /dev/null +++ b/ReHitman/BloodMoney/source/Game/UI/ZColorSet.cpp @@ -0,0 +1,16 @@ +#include + +namespace Hitman::BloodMoney { + uint32_t ZColorSet::GetColor(EColorIndex colorIndex) { + switch (colorIndex) { + case EColorIndex::NormalColor: + return m_NormalColor; + case EColorIndex::DisableColor: + return m_DisableColor; + case EColorIndex::FocusColor: + return m_FocusColor; + } + + return 0u; + } +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/source/Game/UI/ZGUIBase.cpp b/ReHitman/BloodMoney/source/Game/UI/ZGUIBase.cpp new file mode 100644 index 0000000..b1dcdf5 --- /dev/null +++ b/ReHitman/BloodMoney/source/Game/UI/ZGUIBase.cpp @@ -0,0 +1,15 @@ +#include +#include +#include +#include + +namespace Hitman::BloodMoney { + void ZGUIBase::GetSize(ZWINGROUP* pGroup, Glacier::Vector2* pSize) { + assert(pGroup != nullptr); + assert(pSize != nullptr); + assert(BMConfigurationService::BMAPI_FunctionAddress_ZGUIBase_GetSize != BMConfigurationService::kNotConfiguredOption); + if (BMConfigurationService::BMAPI_FunctionAddress_ZGUIBase_GetSize != BMConfigurationService::kNotConfiguredOption) { + ((void(__thiscall*)(ZGUIBase*,ZWINGROUP*,Glacier::Vector2*))BMConfigurationService::BMAPI_FunctionAddress_ZGUIBase_GetSize)(this, pGroup, pSize); + } + } +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/source/Game/UI/ZHM3InventoryMenu.cpp b/ReHitman/BloodMoney/source/Game/UI/ZHM3InventoryMenu.cpp new file mode 100644 index 0000000..ab9be9f --- /dev/null +++ b/ReHitman/BloodMoney/source/Game/UI/ZHM3InventoryMenu.cpp @@ -0,0 +1,61 @@ +#include +#include +#include + +namespace Hitman::BloodMoney { + void ZHM3InventoryMenu::InitInventoryList() { + assert(BMConfigurationService::BMAPI_FunctionAddress_ZHM3InventoryMenu_InitInventoryList != BMConfigurationService::kNotConfiguredOption); + if (BMConfigurationService::BMAPI_FunctionAddress_ZHM3InventoryMenu_InitInventoryList != BMConfigurationService::kNotConfiguredOption) { + ((void(__thiscall*)(ZHM3InventoryMenu*))BMConfigurationService::BMAPI_FunctionAddress_ZHM3InventoryMenu_InitInventoryList)(this); + } + } + + void ZHM3InventoryMenu::CloseItemView() { + assert(BMConfigurationService::BMAPI_FunctionAddress_ZHM3InventoryMenu_CloseItemView != BMConfigurationService::kNotConfiguredOption); + if (BMConfigurationService::BMAPI_FunctionAddress_ZHM3InventoryMenu_CloseItemView != BMConfigurationService::kNotConfiguredOption) { + ((void(__thiscall*)(ZHM3InventoryMenu*))BMConfigurationService::BMAPI_FunctionAddress_ZHM3InventoryMenu_CloseItemView)(this); + } + } + + void ZHM3InventoryMenu::CloseInventoryMenu() { + assert(BMConfigurationService::BMAPI_FunctionAddress_ZHM3InventoryMenu_CloseItemView != BMConfigurationService::kNotConfiguredOption); + if (BMConfigurationService::BMAPI_FunctionAddress_ZHM3InventoryMenu_CloseItemView != BMConfigurationService::kNotConfiguredOption) { + ((void(__thiscall*)(ZHM3InventoryMenu*))BMConfigurationService::BMAPI_FunctionAddress_ZHM3InventoryMenu_CloseItemView)(this); + } + } + + void ZHM3InventoryMenu::UpdateItemView() { + assert(BMConfigurationService::BMAPI_FunctionAddress_ZHM3InventoryMenu_UpdateItemView != BMConfigurationService::kNotConfiguredOption); + if (BMConfigurationService::BMAPI_FunctionAddress_ZHM3InventoryMenu_UpdateItemView != BMConfigurationService::kNotConfiguredOption) { + ((void(__thiscall*)(ZHM3InventoryMenu*))BMConfigurationService::BMAPI_FunctionAddress_ZHM3InventoryMenu_UpdateItemView)(this); + } + } + + void ZHM3InventoryMenu::UpdateItemInfo() { + assert(BMConfigurationService::BMAPI_FunctionAddress_ZHM3InventoryMenu_UpdateItemInfo != BMConfigurationService::kNotConfiguredOption); + if (BMConfigurationService::BMAPI_FunctionAddress_ZHM3InventoryMenu_UpdateItemInfo != BMConfigurationService::kNotConfiguredOption) { + ((void(__thiscall*)(ZHM3InventoryMenu*))BMConfigurationService::BMAPI_FunctionAddress_ZHM3InventoryMenu_UpdateItemInfo)(this); + } + } + + void ZHM3InventoryMenu::SpinCircle(bool a1) { + assert(BMConfigurationService::BMAPI_FunctionAddress_ZHM3InventoryMenu_SpinCircle != BMConfigurationService::kNotConfiguredOption); + if (BMConfigurationService::BMAPI_FunctionAddress_ZHM3InventoryMenu_SpinCircle != BMConfigurationService::kNotConfiguredOption) { + ((void(__thiscall*)(ZHM3InventoryMenu*, bool))BMConfigurationService::BMAPI_FunctionAddress_ZHM3InventoryMenu_SpinCircle)(this, a1); + } + } + + void ZHM3InventoryMenu::TurnLeft() { + assert(BMConfigurationService::BMAPI_FunctionAddress_ZHM3InventoryMenu_TurnLeft != BMConfigurationService::kNotConfiguredOption); + if (BMConfigurationService::BMAPI_FunctionAddress_ZHM3InventoryMenu_TurnLeft != BMConfigurationService::kNotConfiguredOption) { + ((void(__thiscall*)(ZHM3InventoryMenu*))BMConfigurationService::BMAPI_FunctionAddress_ZHM3InventoryMenu_TurnLeft)(this); + } + } + + void ZHM3InventoryMenu::TurnRight() { + assert(BMConfigurationService::BMAPI_FunctionAddress_ZHM3InventoryMenu_TurnRight != BMConfigurationService::kNotConfiguredOption); + if (BMConfigurationService::BMAPI_FunctionAddress_ZHM3InventoryMenu_TurnRight != BMConfigurationService::kNotConfiguredOption) { + ((void(__thiscall*)(ZHM3InventoryMenu*))BMConfigurationService::BMAPI_FunctionAddress_ZHM3InventoryMenu_TurnRight)(this); + } + } +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/source/Game/UI/ZHM3MenuElements.cpp b/ReHitman/BloodMoney/source/Game/UI/ZHM3MenuElements.cpp new file mode 100644 index 0000000..d4b2fc1 --- /dev/null +++ b/ReHitman/BloodMoney/source/Game/UI/ZHM3MenuElements.cpp @@ -0,0 +1,16 @@ +#include +#include +#include + +namespace Hitman::BloodMoney { + ZGUIBase* ZHM3MenuElements::GetGUIElement(const char *psElementName) { + assert(BMConfigurationService::BMAPI_FunctionAddress_ZHM3MenuElements_GetGUIElement != BMConfigurationService::kNotConfiguredOption); + assert(psElementName != nullptr); + + if (BMConfigurationService::BMAPI_FunctionAddress_ZHM3MenuElements_GetGUIElement != BMConfigurationService::kNotConfiguredOption && psElementName) { + return ((ZGUIBase*(__thiscall*)(ZHM3MenuElements*,const char*))BMConfigurationService::BMAPI_FunctionAddress_ZHM3MenuElements_GetGUIElement)(this, psElementName); + } + + return nullptr; + } +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/source/Game/UI/ZKerningFont.cpp b/ReHitman/BloodMoney/source/Game/UI/ZKerningFont.cpp new file mode 100644 index 0000000..1b5ee38 --- /dev/null +++ b/ReHitman/BloodMoney/source/Game/UI/ZKerningFont.cpp @@ -0,0 +1,11 @@ +#include +#include + +namespace Hitman::BloodMoney { + ZKerningFont* ZKerningFont::Create() { + if (BMConfigurationService::BMAPI_FunctionAddress_ZKerningFont_FactoryConstructor != BMConfigurationService::kNotConfiguredOption) { + return ((ZKerningFont*(__cdecl*)())BMConfigurationService::BMAPI_FunctionAddress_ZKerningFont_FactoryConstructor)(); + } + return nullptr; + } +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/source/Game/UI/ZLINEOBJ.cpp b/ReHitman/BloodMoney/source/Game/UI/ZLINEOBJ.cpp new file mode 100644 index 0000000..ee308d2 --- /dev/null +++ b/ReHitman/BloodMoney/source/Game/UI/ZLINEOBJ.cpp @@ -0,0 +1,14 @@ +#include +#include + +namespace Hitman::BloodMoney { + ZLINEOBJ* ZLINEOBJ::Create() { + using ZLINEOBJ_FactoryBuilder_t = ZLINEOBJ*(__cdecl*)(); + + if (BMConfigurationService::BMAPI_FunctionAddress_ZLINEOBJ_FactoryConstructor != BMConfigurationService::kNotConfiguredOption) { + return ((ZLINEOBJ_FactoryBuilder_t)BMConfigurationService::BMAPI_FunctionAddress_ZLINEOBJ_FactoryConstructor)(); + } + + return nullptr; + } +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/source/Game/UI/ZOSD.cpp b/ReHitman/BloodMoney/source/Game/UI/ZOSD.cpp new file mode 100644 index 0000000..f0f84fe --- /dev/null +++ b/ReHitman/BloodMoney/source/Game/UI/ZOSD.cpp @@ -0,0 +1,40 @@ +#include +#include +#include + +namespace Hitman::BloodMoney +{ + void ZOSD::AddInfo(const char* message, bool shouldPlayNotificationSound) { + if (!message) return; + + assert(BMConfigurationService::BMAPI_FunctionAddress_ZOSD_AddInfo != BMConfigurationService::kNotConfiguredOption); + if (BMConfigurationService::BMAPI_FunctionAddress_ZOSD_AddInfo != BMConfigurationService::kNotConfiguredOption) { + ((void(__thiscall*)(ZOSD*, const char*, bool))BMConfigurationService::BMAPI_FunctionAddress_ZOSD_AddInfo)(this, message, shouldPlayNotificationSound); + } + } + + void ZOSD::AddWarning(const char* message, bool shouldPlayNotificationSound) + { + if (!message) return; + + assert(BMConfigurationService::BMAPI_FunctionAddress_ZOSD_AddWarning != BMConfigurationService::kNotConfiguredOption); + if (BMConfigurationService::BMAPI_FunctionAddress_ZOSD_AddWarning != BMConfigurationService::kNotConfiguredOption) { + ((void(__thiscall*)(ZOSD*, const char*, bool))BMConfigurationService::BMAPI_FunctionAddress_ZOSD_AddWarning)(this, message, shouldPlayNotificationSound); + } + } + + void ZOSD::AddHint(const char* message, + bool a2, + bool shouldPlayNotificationSound, + int osdElement, + bool a6, + const char* tutorialId) + { + if (!message) return; + + assert(BMConfigurationService::BMAPI_FunctionAddress_ZOSD_AddHint != BMConfigurationService::kNotConfiguredOption); + if (BMConfigurationService::BMAPI_FunctionAddress_ZOSD_AddHint != BMConfigurationService::kNotConfiguredOption) { + ((void(__thiscall*)(ZOSD*, const char*, bool, bool, int, bool, const char*))BMConfigurationService::BMAPI_FunctionAddress_ZOSD_AddHint)(this, message, a2, shouldPlayNotificationSound, osdElement, a6, tutorialId); + } + } +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/source/Game/UI/ZTTFONT.cpp b/ReHitman/BloodMoney/source/Game/UI/ZTTFONT.cpp new file mode 100644 index 0000000..0f4e7a0 --- /dev/null +++ b/ReHitman/BloodMoney/source/Game/UI/ZTTFONT.cpp @@ -0,0 +1,12 @@ +#include +#include + + +namespace Hitman::BloodMoney { + ZTTFONT* ZTTFONT::Create() { + if (BMConfigurationService::BMAPI_FunctionAddress_ZTTFONT_FactoryConstructor != BMConfigurationService::kNotConfiguredOption) { + return ((ZTTFONT*(__cdecl*)())BMConfigurationService::BMAPI_FunctionAddress_ZTTFONT_FactoryConstructor)(); + } + return nullptr; + } +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/source/Game/UI/ZWINOBJ.cpp b/ReHitman/BloodMoney/source/Game/UI/ZWINOBJ.cpp new file mode 100644 index 0000000..2eb4a00 --- /dev/null +++ b/ReHitman/BloodMoney/source/Game/UI/ZWINOBJ.cpp @@ -0,0 +1,15 @@ +#include +#include +#include + +namespace Hitman::BloodMoney +{ + int ZWINOBJ::GetTexture(unsigned int iTextureType) { + assert(BMConfigurationService::BMAPI_FunctionAddress_ZWINOBJ_GetTexture != BMConfigurationService::kNotConfiguredOption); + + if (BMConfigurationService::BMAPI_FunctionAddress_ZWINOBJ_GetTexture != BMConfigurationService::kNotConfiguredOption) { + return ((int(__thiscall*)(ZWINOBJ*,unsigned int))BMConfigurationService::BMAPI_FunctionAddress_ZWINOBJ_GetTexture)(this, iTextureType); + } + return 0; + } +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/source/Game/UI/ZXMLGUISystem.cpp b/ReHitman/BloodMoney/source/Game/UI/ZXMLGUISystem.cpp new file mode 100644 index 0000000..1991650 --- /dev/null +++ b/ReHitman/BloodMoney/source/Game/UI/ZXMLGUISystem.cpp @@ -0,0 +1,14 @@ +#include +#include +#include + +namespace Hitman::BloodMoney +{ + ZWINDOW* ZXMLGUISystem::GetTopWindow() { + assert(BMConfigurationService::BMAPI_FunctionAddress_ZXMLGUISystem_GetTopWindow != BMConfigurationService::kNotConfiguredOption); + if (BMConfigurationService::BMAPI_FunctionAddress_ZXMLGUISystem_GetTopWindow != BMConfigurationService::kNotConfiguredOption) { + return ((ZWINDOW*(__thiscall*)(ZXMLGUISystem*))BMConfigurationService::BMAPI_FunctionAddress_ZXMLGUISystem_GetTopWindow)(this); + } + return nullptr; + } +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/source/Game/ZClothTracker.cpp b/ReHitman/BloodMoney/source/Game/ZClothTracker.cpp new file mode 100644 index 0000000..316f666 --- /dev/null +++ b/ReHitman/BloodMoney/source/Game/ZClothTracker.cpp @@ -0,0 +1,5 @@ +#include + +namespace Hitman::BloodMoney { + +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/source/Game/ZHM3Actor.cpp b/ReHitman/BloodMoney/source/Game/ZHM3Actor.cpp new file mode 100644 index 0000000..7b1d6bc --- /dev/null +++ b/ReHitman/BloodMoney/source/Game/ZHM3Actor.cpp @@ -0,0 +1,27 @@ +#include +#include + +#include + +namespace Hitman::BloodMoney +{ + void ZHM3Actor::PreparePath() + { + assert(BMConfigurationService::BMAPI_FunctionAddress_ZHM3Actor_PreparePath != BMConfigurationService::kNotConfiguredOption); + if (BMConfigurationService::BMAPI_FunctionAddress_ZHM3Actor_PreparePath != BMConfigurationService::kNotConfiguredOption) + { + ((void(__thiscall*)(Hitman::BloodMoney::ZHM3Actor*))(BMConfigurationService::BMAPI_FunctionAddress_ZHM3Actor_PreparePath))(this); + } + } + + void ZHM3Actor::ActivateBloodSpurt(const Glacier::Vector3* pInvDir, + const Glacier::Vector3* pCollisionPos, + EBloodSpurtType type) + { + assert(BMConfigurationService::BMAPI_FunctionAddress_ZHM3Actor_ActivateBloodSpurt != BMConfigurationService::kNotConfiguredOption); + if (BMConfigurationService::BMAPI_FunctionAddress_ZHM3Actor_ActivateBloodSpurt != BMConfigurationService::kNotConfiguredOption) { + ((void(__thiscall*)(Hitman::BloodMoney::ZHM3Actor*, const Glacier::ZVector3*, const Glacier::ZVector3*, Hitman::BloodMoney::EBloodSpurtType)) + (BMConfigurationService::BMAPI_FunctionAddress_ZHM3Actor_ActivateBloodSpurt))(this, pInvDir, pCollisionPos, type); + } + } +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/source/Game/ZHM3BriefingControl.cpp b/ReHitman/BloodMoney/source/Game/ZHM3BriefingControl.cpp new file mode 100644 index 0000000..07b9e08 --- /dev/null +++ b/ReHitman/BloodMoney/source/Game/ZHM3BriefingControl.cpp @@ -0,0 +1,31 @@ +#include +#include +#include + +namespace Hitman::BloodMoney { + void ZHM3BriefingControl::CompleteObjective(unsigned int iObjectiveId, bool bShowOSDNotification) { + assert(iObjectiveId > 0); + assert(BMConfigurationService::BMAPI_FunctionAddress_ZHM3BriefingControl_CompleteObjective != BMConfigurationService::kNotConfiguredOption); + + if (BMConfigurationService::BMAPI_FunctionAddress_ZHM3BriefingControl_CompleteObjective != BMConfigurationService::kNotConfiguredOption) { + ((void(__thiscall*)(ZHM3BriefingControl*,unsigned int, bool))BMConfigurationService::BMAPI_FunctionAddress_ZHM3BriefingControl_CompleteObjective)(this, iObjectiveId, bShowOSDNotification); + } + } + + void ZHM3BriefingControl::PlaySpeech(bool bRegisterSpeechAsSpoken) { + assert(BMConfigurationService::BMAPI_FunctionAddress_ZHM3BriefingControl_PlaySpeech != BMConfigurationService::kNotConfiguredOption); + + if (BMConfigurationService::BMAPI_FunctionAddress_ZHM3BriefingControl_PlaySpeech != BMConfigurationService::kNotConfiguredOption) { + ((void(__thiscall*)(ZHM3BriefingControl*,bool))BMConfigurationService::BMAPI_FunctionAddress_ZHM3BriefingControl_PlaySpeech)(this, bRegisterSpeechAsSpoken); + } + } + + void ZHM3BriefingControl::StopSpeech() { + if (!m_bIsSpeechPlaying) return; + assert(BMConfigurationService::BMAPI_FunctionAddress_ZHM3BriefingControl_StopSpeech != BMConfigurationService::kNotConfiguredOption); + + if (BMConfigurationService::BMAPI_FunctionAddress_ZHM3BriefingControl_StopSpeech != BMConfigurationService::kNotConfiguredOption) { + ((void(__thiscall*)(ZHM3BriefingControl*))BMConfigurationService::BMAPI_FunctionAddress_ZHM3BriefingControl_StopSpeech)(this); + } + } +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/source/Game/ZHM3DialogControl.cpp b/ReHitman/BloodMoney/source/Game/ZHM3DialogControl.cpp new file mode 100644 index 0000000..50ca579 --- /dev/null +++ b/ReHitman/BloodMoney/source/Game/ZHM3DialogControl.cpp @@ -0,0 +1,37 @@ +#include +#include +#include + +namespace Hitman::BloodMoney { + void ZHM3DialogControl::StartDialog(Glacier::ZLNKWHANDS* pFirstPerson, + Glacier::ZLNKWHANDS* pSecondPerson, + const char* pDialogBaseName, + const char* pFirstPersonRoleName, + const char* pSecondPersonRoleName, + int startRole, + bool a7, + bool a8, + bool a9, + bool a10) { + assert(BMConfigurationService::BMAPI_FunctionAddress_ZHM3DialogControl_StartDialog != BMConfigurationService::kNotConfiguredOption); + if (BMConfigurationService::BMAPI_FunctionAddress_ZHM3DialogControl_StartDialog != BMConfigurationService::kNotConfiguredOption) { + using Func_t = void(__thiscall*)(ZHM3DialogControl*, Glacier::ZLNKWHANDS*, Glacier::ZLNKWHANDS*, const char*, const char*, const char*, int, bool, bool, bool, bool); + ((Func_t)BMConfigurationService::BMAPI_FunctionAddress_ZHM3DialogControl_StartDialog)( + this, + pFirstPerson, pSecondPerson, + pDialogBaseName, pFirstPersonRoleName, pSecondPersonRoleName, startRole, + a7, a8, a9, a10); + } + } + + void ZHM3DialogControl::SetDialogSkipable(bool value) { + assert(BMConfigurationService::BMAPI_FunctionAddress_ZHM3DialogControl_SetDialogSkipable != BMConfigurationService::kNotConfiguredOption); + if (BMConfigurationService::BMAPI_FunctionAddress_ZHM3DialogControl_SetDialogSkipable != BMConfigurationService::kNotConfiguredOption) { + ((void(__thiscall*)(ZHM3DialogControl*, bool))BMConfigurationService::BMAPI_FunctionAddress_ZHM3DialogControl_SetDialogSkipable)(this, value); + } + } + + bool ZHM3DialogControl::IsPlaying() const { + return this->m_flags & 1; + } +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/source/Game/ZHM3WeaponUpgradeControl.cpp b/ReHitman/BloodMoney/source/Game/ZHM3WeaponUpgradeControl.cpp new file mode 100644 index 0000000..e70b31d --- /dev/null +++ b/ReHitman/BloodMoney/source/Game/ZHM3WeaponUpgradeControl.cpp @@ -0,0 +1,32 @@ +#include +#include +#include + +namespace Hitman::BloodMoney +{ + void ZHM3WeaponUpgradeControl::InitWeaponReferences() { + assert(BMConfigurationService::BMAPI_FunctionAddress_ZHM3WeaponUpgradeControl_InitWeaponReferences != BMConfigurationService::kNotConfiguredOption); + if (BMConfigurationService::BMAPI_FunctionAddress_ZHM3WeaponUpgradeControl_InitWeaponReferences != BMConfigurationService::kNotConfiguredOption) { + ((void(__thiscall*)(ZHM3WeaponUpgradeControl*))BMConfigurationService::BMAPI_FunctionAddress_ZHM3WeaponUpgradeControl_InitWeaponReferences)(this); + } + } + + void ZHM3WeaponUpgradeControl::ApplyDefaultUpgrades(EWeaponType weaponType, ZHM3ItemWeaponCustom *pCustomGun) { + assert(BMConfigurationService::BMAPI_FunctionAddress_ZHM3WeaponUpgradeControl_ApplyDefaultUpgrades != BMConfigurationService::kNotConfiguredOption); + + if (BMConfigurationService::BMAPI_FunctionAddress_ZHM3WeaponUpgradeControl_ApplyDefaultUpgrades != BMConfigurationService::kNotConfiguredOption) { + ((void(__thiscall*)(ZHM3WeaponUpgradeControl*,EWeaponType,ZHM3ItemWeaponCustom*))BMConfigurationService::BMAPI_FunctionAddress_ZHM3WeaponUpgradeControl_ApplyDefaultUpgrades)(this, weaponType, pCustomGun); + } + } + + EWeaponType ZHM3WeaponUpgradeControl::GetWeaponType(const char *psWeaponName) { + assert(BMConfigurationService::BMAPI_FunctionAddress_ZHM3WeaponUpgradeControl_GetWeaponType != BMConfigurationService::kNotConfiguredOption); + assert(psWeaponName != nullptr); + + if (psWeaponName && BMConfigurationService::BMAPI_FunctionAddress_ZHM3WeaponUpgradeControl_GetWeaponType != BMConfigurationService::kNotConfiguredOption) { + return ((EWeaponType(__stdcall*)(const char*))BMConfigurationService::BMAPI_FunctionAddress_ZHM3WeaponUpgradeControl_GetWeaponType)(psWeaponName); + } + + return EWeaponType::EW_UNKNOWN; + } +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/source/Game/ZTie.cpp b/ReHitman/BloodMoney/source/Game/ZTie.cpp new file mode 100644 index 0000000..051eda8 --- /dev/null +++ b/ReHitman/BloodMoney/source/Game/ZTie.cpp @@ -0,0 +1,22 @@ +#include +#include +#include + +namespace Hitman::BloodMoney +{ + void ZTie::HideTie(bool value) { + assert(BMConfigurationService::BMAPI_FunctionAddress_ZTie_HideTie != BMConfigurationService::kNotConfiguredOption); + if (BMConfigurationService::BMAPI_FunctionAddress_ZTie_HideTie != BMConfigurationService::kNotConfiguredOption) + { + ((void(__thiscall*)(ZTie*, bool))(BMConfigurationService::BMAPI_FunctionAddress_ZTie_HideTie))(this, value); + } + } + + void ZTie::HideTieInMirror(bool value) { + assert(BMConfigurationService::BMAPI_FunctionAddress_ZTie_HideTieInMirror != BMConfigurationService::kNotConfiguredOption); + if (BMConfigurationService::BMAPI_FunctionAddress_ZTie_HideTieInMirror != BMConfigurationService::kNotConfiguredOption) + { + ((void(__thiscall*)(ZTie*, bool))(BMConfigurationService::BMAPI_FunctionAddress_ZTie_HideTieInMirror))(this, value); + } + } +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/source/Game/ZWheelChairLock.cpp b/ReHitman/BloodMoney/source/Game/ZWheelChairLock.cpp new file mode 100644 index 0000000..d2bb86e --- /dev/null +++ b/ReHitman/BloodMoney/source/Game/ZWheelChairLock.cpp @@ -0,0 +1 @@ +#include \ No newline at end of file diff --git a/ReHitman/BloodMoney/source/Patches/All/EnableCheatsPatch.cpp b/ReHitman/BloodMoney/source/Patches/All/EnableCheatsPatch.cpp index 26d8a24..48cc1e5 100644 --- a/ReHitman/BloodMoney/source/Patches/All/EnableCheatsPatch.cpp +++ b/ReHitman/BloodMoney/source/Patches/All/EnableCheatsPatch.cpp @@ -1,6 +1,10 @@ #include #include +#include +#include + +#include #include namespace Hitman::BloodMoney @@ -14,6 +18,12 @@ namespace Hitman::BloodMoney static constexpr std::array kSecondPatchPayload = { 0xC6, 0x05, 0x89, 0xCA, 0x8A, 0x00, 0x01 }; static constexpr size_t kSecondPatchAddr = 0x00448316; static constexpr size_t kSecondPatchSize = kSecondPatchPayload.size(); + + static constexpr std::intptr_t kGiveSomeHookAddr = 0x0065C1C0; + static constexpr std::array kGiveSomePatch = { HF::X86::NOP, HF::X86::NOP, HF::X86::NOP, HF::X86::NOP, HF::X86::NOP, HF::X86::RETN }; + + static constexpr std::intptr_t kPurgePrimBufferAddr = 0x0045CB20; + static constexpr std::array kPurgePrimBufferPatch = { HF::X86::RETN }; } std::string_view EnableCheatsPatch::GetName() const { return "CheatsEnabler Patch"; } @@ -31,6 +41,17 @@ namespace Hitman::BloodMoney process->writeMemory(Consts::kFirstPatchAddr, Consts::kFirstPatchSize, Consts::kFirstPatchPayload.data()); process->writeMemory(Consts::kSecondPatchAddr, Consts::kSecondPatchSize, Consts::kSecondPatchPayload.data()); + // Prohibit to engine cleanup prims buffer to fix bug with empty models + process->writeMemory(Consts::kPurgePrimBufferAddr, Consts::kPurgePrimBufferPatch.size(), &Consts::kPurgePrimBufferPatch[0]); + + process->writeMemory(Consts::kGiveSomeHookAddr, 6, &Consts::kGiveSomePatch[0]); + m_giveSomeTrampoline = HF::Hook::HookFunction(process, Consts::kGiveSomeHookAddr, &Hitman::BloodMoney::CCheat::GiveSome, {}, {}); + if (!m_giveSomeTrampoline->setup()) { + spdlog::error("Failed to apply CCheat::GiveSome patch"); + } else { + spdlog::info("CCheat::GiveSome patch applied"); + } + return BasicPatch::Apply(modules); } diff --git a/ReHitman/BloodMoney/source/Patches/All/FreeFileSystemPatch.cpp b/ReHitman/BloodMoney/source/Patches/All/FreeFileSystemPatch.cpp new file mode 100644 index 0000000..8435ace --- /dev/null +++ b/ReHitman/BloodMoney/source/Patches/All/FreeFileSystemPatch.cpp @@ -0,0 +1,77 @@ +#include +#include +#include +#include + +namespace Hitman::BloodMoney { + namespace Consts { + static constexpr std::intptr_t FsZip_Ctor = 0x0042D0FC; + //static constexpr std::intptr_t FsZip_Dtor = 0x0042D137; + static constexpr std::intptr_t FsZip_Read_Index = 7; + static constexpr std::intptr_t FsZip_GetFileSize_Index = 4; //TODO: Write hook + } + + namespace Globals { + [[maybe_unused]] static std::unique_ptr> g_FsZip_Read_Hook; + [[maybe_unused]] static std::unique_ptr> g_FsZip_GetFileSize_Hook; + } + + namespace Callbacks { + static void __stdcall OnFsZipConstructed(Glacier::FsZip_t* instance) { + spdlog::info("FsZip| Constructed at {:08X}", ((std::intptr_t)instance)); + auto proxy = reinterpret_cast(instance); + Globals::g_FsZip_Read_Hook = HF::Hook::HookVirtualFunctionWithoutRestore(proxy, + &FreeFS::HBMFreeFsProxy::readFileProvider); + + Globals::g_FsZip_GetFileSize_Hook = HF::Hook::HookVirtualFunctionWithoutRestore(proxy, + &FreeFS::HBMFreeFsProxy::getFileSizeProvider); + } + } + + std::string_view FreeFileSystemPatch::GetName() const { return "FreeFileSystem Patch"; } + + bool FreeFileSystemPatch::Apply(const ModPack& modules) { + if (auto process = modules.process.lock()) + { + //TODO: Make a patch + m_FsZipConstructor = HF::Hook::HookFunction( + process, + Consts::FsZip_Ctor, + &Callbacks::OnFsZipConstructed, + { + HF::X86::PUSH_AD, + HF::X86::PUSH_FD, + HF::X86::PUSH_EAX + }, + { + HF::X86::POP_FD, + HF::X86::POP_AD, + }); + if (!m_FsZipConstructor->setup()) + { + spdlog::error("Failed to apply patch for ZCutSequencePlayerPatch (ctor)"); + return false; + } + + return BasicPatch::Apply(modules); + } + + return false; + } + + void FreeFileSystemPatch::Revert(const ModPack& modules) { + BasicPatch::Revert(modules); + + if (auto process = modules.process.lock()) + { + Globals::g_FsZip_Read_Hook = nullptr; + Globals::g_FsZip_GetFileSize_Hook = nullptr; + + (void)process; // avoid warning + if (m_FsZipConstructor) { + m_FsZipConstructor->remove(); + m_FsZipConstructor = nullptr; + } + } + } +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/source/Patches/All/GlacierHooksPatch.cpp b/ReHitman/BloodMoney/source/Patches/All/GlacierHooksPatch.cpp new file mode 100644 index 0000000..8c8ff36 --- /dev/null +++ b/ReHitman/BloodMoney/source/Patches/All/GlacierHooksPatch.cpp @@ -0,0 +1,70 @@ +#include +#include +#include + +#include + +#include +#include + +namespace Hitman::BloodMoney +{ + namespace Consts + { + static constexpr std::intptr_t kMainLoopAddr = 0x0045D8C4; + } + + namespace Callbacks + { + static void __stdcall ZSysInterfaceWintel_MainLoop() { + constexpr float kFixedTimeDelta = 1.0f / 60.f; //TODO: Locate where actual time delta placed in ZSysInterfaceWintel class + if (auto pRuntime = Client::GetScriptingRuntime()) { + pRuntime->OnUpdate(kFixedTimeDelta); + } + } + } + + std::string_view GlacierHooksPatch::GetName() const { return "GlacierHooksPatch Patch"; } + + bool GlacierHooksPatch::Apply(const ModPack& modules) + { + if (auto process = modules.process.lock()) + { + process->fillMemory(Consts::kMainLoopAddr, HF::X86::NOP, 26); + + m_onUpdateTrampoline = HF::Hook::HookFunction( + process, + Consts::kMainLoopAddr, + &Callbacks::ZSysInterfaceWintel_MainLoop, + { + HF::X86::PUSH_AD, + HF::X86::PUSH_FD + }, + { + HF::X86::POP_FD, + HF::X86::POP_AD + }); + + if (!m_onUpdateTrampoline->setup()) { + spdlog::error("Failed to apply patch for GlacierHooksPatch (MainLoop)"); + return false; + } + + return BasicPatch::Apply(modules); + } + + return false; + } + + void GlacierHooksPatch::Revert(const ModPack& modules) + { + BasicPatch::Revert(modules); + + if (auto process = modules.process.lock()) { + process->fillMemory(Consts::kMainLoopAddr, HF::X86::NOP, 26); + } + + m_onUpdateTrampoline->remove(); + m_onUpdateTrampoline = nullptr; + } +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/source/Patches/All/RenderScenePatch.cpp b/ReHitman/BloodMoney/source/Patches/All/RenderScenePatch.cpp new file mode 100644 index 0000000..b07f0a0 --- /dev/null +++ b/ReHitman/BloodMoney/source/Patches/All/RenderScenePatch.cpp @@ -0,0 +1,96 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +namespace Hitman::BloodMoney { + namespace Callbacks + { + static void __stdcall OnDrawBufferViewUpdate( + Glacier::ZRenderEntry* pRenderCameraEntry, + Glacier::ZDrawBuffer* pDrawBuffer, + Glacier::ZCameraSpace* pCameraSpace, + Glacier::ZRenderEntry* pRenderEntry + ) + { + if (!pDrawBuffer || !pCameraSpace || !pRenderEntry || !pRenderCameraEntry) { + return; + } + + Glacier::ZEntityLocator* pEntityLocator = pRenderEntry->GetEntityLocator(); + if (!pEntityLocator) { + return; + } + + auto pGeom = reinterpret_cast(pEntityLocator->m_assignedTo); + if (!pGeom) { + return; + } + + using OriginalType = int; + HF::Hook::VFHook::invoke( + reinterpret_cast(pGeom), + 56, + pDrawBuffer, + pCameraSpace); + } + + static void __stdcall Proxy() { + + } + } + + std::string_view RenderScenePatch::GetName() const { + return "Scene renderer patch"; + } + + bool RenderScenePatch::Apply(const ModPack& modules) { + if (auto process = modules.process.lock()) + { + //Function in vtbl #4 + //8B 4C 24 24 8B 11 FF 52 28 8B 48 60 8B 01 8D 94 24 ? ? ? ? 52 8D 54 24 2C 52 FF 90 ? ? ? ? + process->fillMemory(0x004B9F9F, HF::X86::NOP, 33); + + m_patch = HF::Hook::HookFunction( + process, + 0x004B9FBA, + &Callbacks::OnDrawBufferViewUpdate, + { + 0x8B, 0x4C, 0x24, 0x24, //mov ecx,DWORD PTR [esp+0x24] + 0x51, //push ecx ; pointer to current entry to draw + 0x8D, 0x94, 0x24, 0xD0, 0x01, 0x00, 0x00, //lea edx,[esp+0x1cc+4] + 0x52, //push edx ; pointer to camera space + 0x8D, 0x54, 0x24, 0x30, //lea edx,[esp+0x2c+4] + 0x52, //push edx ; pointer to draw buffer + 0x56 //push esi ; pointer to render camera entry + }, + {}); + + if (!m_patch->setup()) + { + spdlog::error("Failed to apply patch for RenderScenePatch (renderer of something)"); + return false; + } + + uint8_t buffer[3] = { 0xC2, 0x14, 0x00 }; + process->writeMemory(0x004B7660, 3, &buffer[0]); + + return BasicPatch::Apply(modules); + } + + return false; + } + + void RenderScenePatch::Revert(const ModPack& modules) { + BasicPatch::Revert(modules); + + m_patch->remove(); + } +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/source/Patches/All/ZHitman3Patches.cpp b/ReHitman/BloodMoney/source/Patches/All/ZHitman3Patches.cpp index 3fb13b9..e2f9ff1 100644 --- a/ReHitman/BloodMoney/source/Patches/All/ZHitman3Patches.cpp +++ b/ReHitman/BloodMoney/source/Patches/All/ZHitman3Patches.cpp @@ -52,9 +52,6 @@ namespace Hitman::BloodMoney { HF::X86::PUSH_ECX, HF::X86::PUSH_EAX, HF::X86::PUSH_EAX }, { HF::X86::POP_EAX, HF::X86::POP_EAX }); ENABLE_MODULE(m_constructor, "ZHitman3::Ctor") - /** - * @brief Setup another patch? - */ // On OK BasicPatch::Apply(modules); @@ -68,9 +65,10 @@ namespace Hitman::BloodMoney { BasicPatch::Revert(modules); // Revert changes - m_constructor->remove(); if (auto process = modules.process.lock()) { + m_constructor->remove(); + HF::Hook::MoveInstructions<4>(process, Consts::kZHitman3Ctor + 5, Consts::kZHitman3Ctor); HF::Hook::FillMemoryByNOPs(process, Consts::kZHitman3Ctor + 5, 5); } diff --git a/ReHitman/BloodMoney/source/Patches/CommonPatches.cpp b/ReHitman/BloodMoney/source/Patches/CommonPatches.cpp index abca135..22eb907 100644 --- a/ReHitman/BloodMoney/source/Patches/CommonPatches.cpp +++ b/ReHitman/BloodMoney/source/Patches/CommonPatches.cpp @@ -2,6 +2,7 @@ #include #include + namespace Hitman::BloodMoney { CommonPatches::CommonPatches( @@ -30,14 +31,14 @@ namespace Hitman::BloodMoney { if (!patch->Apply(modPack)) { - spdlog::warn("Failed to apply patch {}", patch->GetName()); + spdlog::warn("Failed to apply patch {}", patch->GetName().data()); } else { - spdlog::info("Patch {} applied!", patch->GetName()); + spdlog::info("Patch {} applied!", patch->GetName().data()); if (!patch->IsApplied()) { - spdlog::error("BAD PATCH IMPLEMENTATION! PATCH {} MUST BE APPLIED BUT IT DOESN'T!", patch->GetName()); + spdlog::error("BAD PATCH IMPLEMENTATION! PATCH {} MUST BE APPLIED BUT IT DOESN'T!", patch->GetName().data()); continue; } } @@ -63,7 +64,7 @@ namespace Hitman::BloodMoney if (patch->IsApplied()) { - spdlog::error("BAD PATCH IMPLEMENTATION! PATCH {} MUST BE REVERTED BUT IT DOESN'T!", patch->GetName()); + spdlog::error("BAD PATCH IMPLEMENTATION! PATCH {} MUST BE REVERTED BUT IT DOESN'T!", patch->GetName().data()); } } diff --git a/ReHitman/BloodMoney/source/Patches/Mods/SkinChanger.cpp b/ReHitman/BloodMoney/source/Patches/Mods/SkinChanger.cpp new file mode 100644 index 0000000..59379fb --- /dev/null +++ b/ReHitman/BloodMoney/source/Patches/Mods/SkinChanger.cpp @@ -0,0 +1,103 @@ +#include + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include + +#define CAPTURE_THIS(type, varname) \ + static type* varname = { nullptr }; \ + __asm { mov varname, ecx } + + +namespace Hitman::BloodMoney +{ + namespace Callbacks + { + + std::intptr_t g_ClassCommand = 0; + std::intptr_t g_EnableClothPickup = 0x0063F890; + static const Glacier::ZMSGID g_ChangeSuitMSGID = 0x512; + + int __stdcall OnClassCommand(Glacier::ZMSGID msg, void* arg) { + CAPTURE_THIS(Glacier::ZGEOM, pSelf) + + auto gameData = Glacier::getInterface(Hitman::BloodMoney::Globals::kGameDataAddr); + if (gameData && msg == g_ChangeSuitMSGID) { + auto playerGeom = reinterpret_cast(gameData->m_Hitman3); + + reinterpret_cast(playerGeom)->CopyGeometryFrom(pSelf->m_baseGeom->m_primitive); + reinterpret_cast(playerGeom)->UpdateGeometry(true); + + ((void(__cdecl*)(Glacier::ZGEOM*, const char*))0x005D3BA0)(pSelf, "Take clothes"); + return 0; + } + + return ((int(__thiscall*)(Glacier::ZGEOM*, Glacier::ZMSGID, void*))g_ClassCommand)(pSelf, msg, arg); + } + + void __stdcall OnPrepareActorBody() { + CAPTURE_THIS(Hitman::BloodMoney::ZHM3Actor, pSelf) + // --- Mod logic --- + auto sysInterface = Glacier::getInterface(Globals::kSysInterfaceAddr); + if (!sysInterface) { return; } + + auto engineDb = sysInterface->m_engineDataBase; + if (!engineDb) { return; } + + auto listener = reinterpret_cast(pSelf); + if (!listener) { return; } + + if (!g_ClassCommand) { + g_ClassCommand = HF::Hook::VFHook::makeHook(listener, 89, &Callbacks::OnClassCommand); + } + + Glacier::ZREF ref = listener->GetRef(); + + auto actionId = Glacier::ZAction::AddAction(reinterpret_cast(pSelf), + "Take clothes", + "Take clothes", + Glacier::EActionType::CUSTOM, + g_ChangeSuitMSGID, + ref, + 0, + 270); + + auto pAction = Glacier::ZEventBuffer::EventRefToInstance(actionId); + if (pAction) { // It's not required but why not + pAction->Show(); + } + + ((void(__thiscall*)(Hitman::BloodMoney::ZHM3Actor*))g_EnableClothPickup)(pSelf); + } + } + + std::string_view SkinChanger::GetName() const { return "Mods/SkinChanger"; } + + bool SkinChanger::Apply(const ModPack& modules) + { + HF::Win32::VProtect protection { 0x007969F4, sizeof(uint32_t), PAGE_READWRITE }; + int* ppTableAddr = (int*)0x007969F4; + auto x = &Callbacks::OnPrepareActorBody; + *ppTableAddr = (reinterpret_cast(reinterpret_cast(x))); + + // On OK + BasicPatch::Apply(modules); + return true; + } + + void SkinChanger::Revert(const ModPack& modules) + { + BasicPatch::Revert(modules); + } +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/source/UI/DebugTools.cpp b/ReHitman/BloodMoney/source/UI/DebugTools.cpp index c7d7ef3..2ed6674 100644 --- a/ReHitman/BloodMoney/source/UI/DebugTools.cpp +++ b/ReHitman/BloodMoney/source/UI/DebugTools.cpp @@ -17,6 +17,8 @@ // Widgets #include #include +#include +#include namespace Hitman::BloodMoney { @@ -122,8 +124,9 @@ namespace Hitman::BloodMoney { ImGui::MenuItem("Actors viewer", nullptr, &ActorsListWidget::g_bIsOpened); ImGui::MenuItem("Cut Sequences player", nullptr, &CutSequencePlayerWidget::g_bIsShowed); + ImGui::MenuItem("Scene viewer", nullptr, &SceneViewer::g_bIsVisible); + ImGui::MenuItem("Teleport", nullptr, &PlayerTeleportWidget::g_bIsShowed); ImGui::MenuItem("Inventory editor", nullptr, &showInventoryEditor); - ImGui::MenuItem("GEOM viewer", nullptr, &showGeomViewer); ImGui::Separator(); if (ImGui::MenuItem("Close game")) { @@ -141,10 +144,5 @@ namespace Hitman::BloodMoney { // showInventoryEditorWindow(&showInventoryEditor); } - - if (showGeomViewer) - { -// showGeomViewerWindow(&showGeomViewer); - } } } \ No newline at end of file diff --git a/ReHitman/BloodMoney/source/UI/Widgets/ActorsListWidget.cpp b/ReHitman/BloodMoney/source/UI/Widgets/ActorsListWidget.cpp index b94eccf..3054a6a 100644 --- a/ReHitman/BloodMoney/source/UI/Widgets/ActorsListWidget.cpp +++ b/ReHitman/BloodMoney/source/UI/Widgets/ActorsListWidget.cpp @@ -9,22 +9,157 @@ #include #include +#include #include #include -#include #include -#include -#include -#include -#include -#include +#include +#include #include -#include - -#include #include +namespace ImGui +{ + void Inspector::Draw(const char* id, Glacier::ESuitMask* mask) { + switch (*mask) { + case Glacier::ESuitMask::NoActor: + ImGui::Text("ESuitMask::NoActor"); + break; + case Glacier::ESuitMask::SkinChangerNotSupported: + ImGui::Text("ESuitMask::SkinChangerNotSupported"); + break; + case Glacier::ESuitMask::Nude: + ImGui::Text("ESuitMask::Nude"); + break; + case Glacier::ESuitMask::Invisible: + ImGui::Text("ESuitMask::Invisible"); + break; + case Glacier::ESuitMask::OriginalView: + ImGui::Text("ESuitMask::OriginalView"); + break; + case Glacier::ESuitMask::Agent47_WithoutHeaddress: + ImGui::Text("ESuitMask::Agent47_WithoutHeaddress"); + break; + case Glacier::ESuitMask::Agent47_WithHeaddress: + ImGui::Text("ESuitMask::Agent47_WithHeaddress"); + break; + default: + ImGui::TextColored(ImVec4 { 1.f, 1.f, 0.f, 1.f }, "Unknown value: %d", *mask); + break; + } + } + + void Inspector::Draw(const char* id, Hitman::BloodMoney::ZHM3Actor* actor) { + //ImGui::Inspector::Draw("actor.entity", actor->ActorInformation->location); + ImGui::Inspector::Draw("actor.entity", actor->m_baseGeom); + ImGui::Separator(); + ImGui::Inspector::Draw("actor.group", actor->m_baseGeom->ParentGroup()->m_baseGeom); + ImGui::Inspector::Draw("Actor boid", actor->m_boid); + ImGui::Text("Group Info: "); + ImGui::Inspector::Draw("ActorGroup", actor->m_baseGeom->ParentGroup()); + ImGui::Inspector::Draw("Actor.PathFollower", reinterpret_cast(actor->FindEvent(Hitman::BloodMoney::ZPathFollower::Name))); + ImGui::Inspector::Draw("Actor.Inventory", reinterpret_cast(actor->FindEvent(Glacier::CInventory::Name))); + ImGui::Inspector::Draw("Actor.SuitMask", &actor->m_suitMask); + + /// ================== + { + auto gameData = Glacier::getInterface(Hitman::BloodMoney::Globals::kGameDataAddr); + if (gameData && actor->m_suitMask != Glacier::ESuitMask::NoActor && ImGui::Button("Swap bodies")) + { + auto actorGeom = reinterpret_cast(actor); + auto playerGeom = reinterpret_cast(gameData->m_Hitman3); + + const int actorPrimId = actorGeom->m_baseGeom->m_primitive; + const int playerPrimId = playerGeom->m_baseGeom->m_primitive; + + reinterpret_cast(actor)->CopyGeometryFrom(playerPrimId); + reinterpret_cast(actor)->UpdateGeometry(true); + + reinterpret_cast(playerGeom)->CopyGeometryFrom(actorPrimId); + reinterpret_cast(playerGeom)->UpdateGeometry(true); + } + } + + // ================== + { + if (ImGui::Button("Clear PF4 path")) + { + using PF4_Path_Clear_t = void(__thiscall*)(std::intptr_t*); + auto PF4_Path_Clear = (PF4_Path_Clear_t)0x004D8D00; + + PF4_Path_Clear(&actor->m_field534); + + actor->PreparePath(); + } + } + + // =================== + { + auto gameData = Glacier::getInterface(Hitman::BloodMoney::Globals::kGameDataAddr); + if (gameData && actor->m_suitMask != Glacier::ESuitMask::NoActor && ImGui::Button("Start human shield with")) + { + using StartActionHumanShield_t = void(__thiscall*)(std::intptr_t*, Hitman::BloodMoney::ZHM3Actor*); + auto StartActionHumanShield = (StartActionHumanShield_t)0x00600590; + + StartActionHumanShield(reinterpret_cast(gameData->m_Hitman3), actor); + } + } + + // =================== + { + auto gameData = Glacier::getInterface(Hitman::BloodMoney::Globals::kGameDataAddr); + if (gameData && actor->m_suitMask != Glacier::ESuitMask::NoActor && ImGui::Button("Make clone")) + { + auto actorOwnerGroup = reinterpret_cast(actor)->m_baseGeom->ParentGroup(); + auto actorRootGroup = reinterpret_cast(actorOwnerGroup)->m_baseGeom->ParentGroup(); + + spdlog::info("Owner: {} / Root: {}", + reinterpret_cast(actorOwnerGroup)->m_baseGeom->entityName, + reinterpret_cast(actorRootGroup)->m_baseGeom->entityName); + + Glacier::ZMat3x3 ownerMat; + Glacier::ZVector3 ownerPos; + + actorOwnerGroup->GetMatPos(&ownerMat, &ownerPos); + auto duplicateGroup = actorOwnerGroup->DuplicateInit( + actorRootGroup, + &ownerMat, + &ownerPos, + fmt::format("Actor!CloneOf!{}", reinterpret_cast(actorOwnerGroup)->m_baseGeom->entityName).c_str(), + true); + auto clonedActor = reinterpret_cast(reinterpret_cast(duplicateGroup)->FindGeom("Ground", nullptr)); + + clonedActor->m_mapIconType = Hitman::BloodMoney::EActorMapRole::VIP; + using ZHM3Actor_InitMapIconFn = void(__thiscall*)(Hitman::BloodMoney::ZHM3Actor*, bool); + auto ZHM3Actor_InitMapIcon = (ZHM3Actor_InitMapIconFn)0x00637460; + + ZHM3Actor_InitMapIcon(clonedActor, true); + + reinterpret_cast(clonedActor)->CopyPoseFrom(reinterpret_cast(actor)); + + // Add actor to tracking list + auto pTrackLinkObjects = *(Glacier::ZLIST**)0x00972DA8; + pTrackLinkObjects->AddGeom(reinterpret_cast(clonedActor)); + + reinterpret_cast(clonedActor)->EnableIK(); + reinterpret_cast(clonedActor)->EnableControls(); + + ((void(__cdecl*)(Glacier::ZREF, bool))0x006AA2B0)(reinterpret_cast(clonedActor)->GetRef(), true); + + //clonedActor->SetActorState(Hitman::BloodMoney::ZActor::ACTORSTATE::STATE_0); + clonedActor->SetActorState(Hitman::BloodMoney::ZActor::ACTORSTATE::STATE_1); + //clonedActor->SetActorState(Hitman::BloodMoney::ZActor::ACTORSTATE::STATE_2); + //clonedActor->SetActorState(Hitman::BloodMoney::ZActor::ACTORSTATE::STATE_3); + + + spdlog::info("TRK: {:08X}", (int)pTrackLinkObjects); + spdlog::info("Dup: {:08X} / ADup: {:08X}", (int)duplicateGroup, (int)clonedActor); + } + } + } +} + namespace Hitman::BloodMoney { static constexpr const char* kWindowTitle = "Actors List"; @@ -36,20 +171,6 @@ namespace Hitman::BloodMoney ImGui::End(); } - void DrawActorGeneralInfo(Hitman::BloodMoney::ZHM3Actor* actor) - { - ImGui::BeginTabItem("General"); - { - ImGui::Inspector::Draw("actor.entity", actor->ActorInformation->location); - ImGui::Inspector::Draw("Actor boid", actor->m_boid); - ImGui::Text("Group Info: "); - ImGui::Inspector::Draw("ActorGroup", actor->ActorInformation->location->ParentGroup()); - ImGui::Inspector::Draw("Actor.PathFollower", reinterpret_cast(actor->FindEvent(ZPathFollower::Name))); - ImGui::Inspector::Draw("Actor.Inventory", reinterpret_cast(actor->FindEvent(Glacier::CInventory::Name))); - } - ImGui::EndTabItem(); - } - void DrawActorInfo(Hitman::BloodMoney::ZHM3Actor* actor, int actorIndex) { ImGui::Text("Actor #%.2d (at 0x%.8X)", actorIndex, reinterpret_cast(actor)); @@ -57,7 +178,9 @@ namespace Hitman::BloodMoney if (ImGui::BeginTabBar("##Tabs", ImGuiTabBarFlags_None)) { - DrawActorGeneralInfo(actor); + ImGui::BeginTabItem("General"); + ImGui::Inspector::Draw("???", actor); + ImGui::EndTabItem(); } ImGui::EndTabBar(); } @@ -70,14 +193,14 @@ namespace Hitman::BloodMoney { ImGui::Separator(); - // Left side + //Left side static int selectedIndex = 0; ImGui::BeginChild("$leftside", ImVec2(300, 0), true); for (int actorIndex = 0; actorIndex < gameData->m_ActorsInPoolCount; actorIndex++) { auto entityName = fmt::format("#{:2d} {}", (actorIndex + 1), - gameData->m_ActorsPool[actorIndex]->ActorInformation->location->entityName); + gameData->m_ActorsPool[actorIndex]->m_baseGeom->ParentGroup()->m_baseGeom->entityName); if (ImGui::Selectable(entityName.data(), selectedIndex == actorIndex)) { selectedIndex = actorIndex; diff --git a/ReHitman/BloodMoney/source/UI/Widgets/PlayerTeleportWidget.cpp b/ReHitman/BloodMoney/source/UI/Widgets/PlayerTeleportWidget.cpp new file mode 100644 index 0000000..37edcbc --- /dev/null +++ b/ReHitman/BloodMoney/source/UI/Widgets/PlayerTeleportWidget.cpp @@ -0,0 +1,117 @@ +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include +#include +#include + +#include + +#include +#include + +namespace Hitman::BloodMoney { + void PlayerTeleportWidget::draw() { + DebugWidget::draw(); + + if (!g_bIsShowed) return; + + auto gameData = Glacier::getInterface(Globals::kGameDataAddr); + if (!gameData) { return; } + + auto sysInterface = Glacier::getInterface(Globals::kSysInterfaceAddr); + if (!sysInterface) { return; } + + auto engineDb = sysInterface->m_engineDataBase; + if (!engineDb) { return; } + + auto sceneCom = engineDb->GetSceneCom(); + if (!sceneCom) { return; } + + auto hitman = reinterpret_cast(gameData->m_Hitman3); + if (!hitman) return; + + ImGui::Begin("Teleport Player", &PlayerTeleportWidget::g_bIsShowed); + ImGui::Text("ZHitman3: 0x%.8X", (std::intptr_t)hitman); ImGui::SameLine(0.f, 5.f); + if (ImGui::Button("PRINT")) { + spdlog::info("ZHitman3 Instance at: 0x{:08X}", ((std::intptr_t)hitman)); + } + + Glacier::ZVector3 visionPos; + reinterpret_cast(hitman)->GetVisionPos(&visionPos); + ImGui::Text("Position: (%.3f; %.3f; %.3f)", + visionPos.x, + visionPos.y, + visionPos.z); + + ImGui::Separator(); + + static Glacier::ZVector3 teleportAt { 0.f, 0.f, 0.f }; + ImGui::Text("Teleport at: "); + ImGui::InputFloat3("New position", reinterpret_cast(&teleportAt)); ImGui::SameLine(0.f, 5.f); + if (ImGui::Button("TELEPORT")) { + hitman->MoveToMatPos(reinterpret_cast(&hitman->m_baseGeom->m_transform.data), + reinterpret_cast(&teleportAt)); + } + + /** + * @brief Try to ask rTeleportList and check that we have any teleport point to preview it + */ + Glacier::ZREF rTeleportListREF = 0; + using CCom = int; + + HF::Hook::VFHook::invoke( + reinterpret_cast(sceneCom), + 31, + "rTeleportList", + &rTeleportListREF); + + + auto pTeleportList = Glacier::ZEventBuffer::EventRefToInstance(rTeleportListREF); + if (pTeleportList) { + ImGui::Separator(); + auto teleportPoints = reinterpret_cast(pTeleportList->m_geom)->m_entries; + const int totalTeleportPoints = teleportPoints->Count(); + ImGui::Text("Teleport points (%d):", totalTeleportPoints); + + if (!totalTeleportPoints) { + ImGui::TextColored(ImVec4 { 1.f, 1.f, 0.f, 1.f }, "No teleport points!"); + } else { + for (int pointIndex = 0; pointIndex < totalTeleportPoints; ++pointIndex) { + Glacier::ZREF pointRef = teleportPoints->GetRefNr(pointIndex); + auto refObj = Glacier::ZGEOM::RefToPtr(pointRef); + if (refObj) { + Glacier::ZMat3x3 transform; + Glacier::ZVector3 position; + refObj->GetRootTM(&transform, &position); + + ImGui::Text("#%d | (%.3f; %.3f; %.3f)", pointIndex + 1, position.x, position.y, position.z); + ImGui::SameLine(0.f, 4.f); + ImGui::PushID(fmt::format("TELEPORT/ACTION/PT#{}", pointIndex).c_str()); + if (ImGui::Button("TELEPORT")) { + hitman->MoveToMatPos(reinterpret_cast(&transform), + reinterpret_cast(&position)); + } + ImGui::PopID(); + } else { + ImGui::TextColored(ImVec4 { 1.f, 0.f, 0.f, 1.f }, "#%d | BAD REF", pointIndex + 1); + } + } + } + + // Add new teleport point + } + + ImGui::End(); + } + + bool PlayerTeleportWidget::g_bIsShowed = false; +} \ No newline at end of file diff --git a/ReHitman/BloodMoney/source/UI/Widgets/SandboxWidget.cpp b/ReHitman/BloodMoney/source/UI/Widgets/SandboxWidget.cpp index 750b9a7..d96f49c 100644 --- a/ReHitman/BloodMoney/source/UI/Widgets/SandboxWidget.cpp +++ b/ReHitman/BloodMoney/source/UI/Widgets/SandboxWidget.cpp @@ -2,8 +2,10 @@ #include #include +#include #include +#include #include #include @@ -21,14 +23,42 @@ #include #include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include -#include #include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include +#include +#include +#include +#include + +#include + namespace Hitman::BloodMoney { + void SandboxWidget::draw() { DebugWidget::draw(); @@ -42,18 +72,111 @@ namespace Hitman::BloodMoney auto engineDb = sysInterface->m_engineDataBase; if (!engineDb) { return; } + auto sceneCom = engineDb->GetSceneCom(); + if (!sceneCom) { return; } + + auto renderDll = Glacier::getInterface(Globals::kD3DDllAddr); + if (!renderDll) { return; } + auto geomBuffer = Glacier::getInterface(Globals::kGeomBufferAddr); if (!geomBuffer) { return; } - ImGui::Begin("Sandbox (scene tree view)"); - { - /// Let's make a party - if (ImGui::Button("Make everybody like 47")) { - auto pPlayerLNK = reinterpret_cast(gameData->m_Hitman3); + auto hitman = reinterpret_cast(gameData->m_Hitman3); + if (!hitman) return; + + ImGui::Begin("Test script"); + if (ImGui::Button("Try to dump few prims")) { + spdlog::info("Hitman prim {:08X}", (int)renderDll->m_primControlWintel->GetPrimData(reinterpret_cast(gameData->m_Hitman3)->m_baseGeom->m_primitive)); + spdlog::info("Actor[0] prim {:08X}", (int)renderDll->m_primControlWintel->GetPrimData(gameData->m_ActorsPool[0]->m_baseGeom->m_primitive)); + spdlog::info("Actor[1] prim {:08X}", (int)renderDll->m_primControlWintel->GetPrimData(gameData->m_ActorsPool[1]->m_baseGeom->m_primitive)); + + char buffer[512] { 0 }; + + using GetPrimStats_t = int(__thiscall*)(int, char*, int, int); + auto GetPrimStats = (GetPrimStats_t)0x00487740; + + auto r = GetPrimStats((int)renderDll->m_primControlWintel, &buffer[0], 511, reinterpret_cast(gameData->m_Hitman3)->m_baseGeom->m_primitive); + spdlog::info("R: {:08X}| {}", r, buffer); + std::memset(&buffer[0], 0x0, 512); + + for (int i = 0; i < gameData->m_ActorsInPoolCount; i++) { + GetPrimStats((int)renderDll->m_primControlWintel, &buffer[0], 511, gameData->m_ActorsPool[i]->m_baseGeom->m_primitive); + spdlog::info("Actor[{}]: {}", i, buffer); + std::memset(&buffer[0], 0x0, 512); + } + } + + ImGui::End(); + + //----------------------------------------------------------------------------------------------- + ImGui::Begin("TEST"); + if (ImGui::Button("Test extract vars")) { + auto& ccom = *engineDb->GetSceneCom(); + Glacier::REFTAB* ccomVars = &engineDb->GetSceneCom()->m_variables; + + for (int i = 0; i < ccomVars->Count(); i++) { + auto pEnt = reinterpret_cast(ccomVars->operator[](i)); + const char* sEntName = pEnt->GetKey(); + std::intptr_t iValue = pEnt->GetValue(); - for (size_t i = 0; i < gameData->m_ActorsInPoolCount; i++) { - auto pActorLNK = reinterpret_cast(gameData->m_ActorsPool[i]); - pActorLNK->CopyGeometryFrom(pPlayerLNK); + switch (pEnt->m_pTypeInfo->m_eKind) { + case Glacier::CCom::Ent::TypeInfo::EKind::Bool: + spdlog::info("[{}] '{}' = {}", i, sEntName, static_cast(iValue)); + break; + case Glacier::CCom::Ent::TypeInfo::EKind::Char: + spdlog::info("[{}] '{}' = {}", i, sEntName, static_cast(iValue)); + break; + case Glacier::CCom::Ent::TypeInfo::EKind::Long: + spdlog::info("[{}] '{}' = {}", i, sEntName, static_cast(iValue)); + break; + case Glacier::CCom::Ent::TypeInfo::EKind::Float32: + spdlog::info("[{}] '{}' = {}", i, sEntName, static_cast(iValue)); + break; + case Glacier::CCom::Ent::TypeInfo::EKind::Real: + spdlog::info("[{}] '{}' = {:X} (REAL)", i, sEntName, iValue); + break; + case Glacier::CCom::Ent::TypeInfo::EKind::P: + spdlog::info("[{}] '{}' = {:X}", i, sEntName, static_cast(iValue)); + break; + case Glacier::CCom::Ent::TypeInfo::EKind::Vec3: + spdlog::info("[{}] '{}' = VEC3? {:X}", i, sEntName, static_cast(iValue)); + break; + case Glacier::CCom::Ent::TypeInfo::EKind::Vec3F: + spdlog::info("[{}] '{}' = VEC3F? {:X}", i, sEntName, static_cast(iValue)); + break; + case Glacier::CCom::Ent::TypeInfo::EKind::Mat33: + spdlog::info("[{}] '{}' = MAT3x3? {:X}", i, sEntName, static_cast(iValue)); + break; + case Glacier::CCom::Ent::TypeInfo::EKind::Mat33F: + spdlog::info("[{}] '{}' = MAT3x3F? {:X}", i, sEntName, static_cast(iValue)); + break; + case Glacier::CCom::Ent::TypeInfo::EKind::Str: + spdlog::info("[{}] '{}' = {}", i, sEntName, reinterpret_cast(&iValue)); + break; + case Glacier::CCom::Ent::TypeInfo::EKind::Blk: + spdlog::info("[{}] '{}' = BLK? {:X}", i, sEntName, static_cast(iValue)); + break; + case Glacier::CCom::Ent::TypeInfo::EKind::File: + spdlog::info("[{}] '{}' = FILE? {:X}", i, sEntName, static_cast(iValue)); + break; + case Glacier::CCom::Ent::TypeInfo::EKind::Data: + spdlog::info("[{}] '{}' = DATA? {:X}", i, sEntName, static_cast(iValue)); + break; + case Glacier::CCom::Ent::TypeInfo::EKind::GREF: + spdlog::info("[{}] '{}' = {:8X} (GEOM REF)", i, sEntName, reinterpret_cast(Glacier::ZGEOM::RefToPtr(iValue))); + break; + case Glacier::CCom::Ent::TypeInfo::EKind::GRFT: + spdlog::info("[{}] '{}' = {:8X} (REF TAB)", i, sEntName, reinterpret_cast(Glacier::ZGEOM::RefToPtr(iValue))); + break; + case Glacier::CCom::Ent::TypeInfo::EKind::ZMSG: + spdlog::info("[{}] '{}' = {} (ZMSG)", i, sEntName, iValue); + break; + case Glacier::CCom::Ent::TypeInfo::EKind::SREF: + spdlog::info("[{}] '{}' = {:X} (SREF?)", i, sEntName, iValue); + break; + default: + spdlog::info("[{}] '{}' = {:8X}, got type mask: '{:4X}'", i, sEntName, reinterpret_cast(pEnt), pEnt->m_pTypeInfo->m_eKind); + break; } } } diff --git a/ReHitman/BloodMoney/source/UI/Widgets/SceneViewer.cpp b/ReHitman/BloodMoney/source/UI/Widgets/SceneViewer.cpp new file mode 100644 index 0000000..d5af7c6 --- /dev/null +++ b/ReHitman/BloodMoney/source/UI/Widgets/SceneViewer.cpp @@ -0,0 +1,122 @@ +#include + +#include +#include + +#include + +#include + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include + +namespace Hitman::BloodMoney +{ + static int g_nodeId = 0; + + static void PrepareGroup(Glacier::ZGROUP* currentGroup) + { + if (!currentGroup) return; + + Glacier::ZEntityLocator* currentEntity = currentGroup->m_pEntity0; + + while (currentEntity) { + auto assignedTo = reinterpret_cast(currentEntity->m_assignedTo); + if (!assignedTo) { + currentEntity = currentEntity->Next(); + continue; + } + + ImGui::PushID(g_nodeId); + + auto classInfo = assignedTo->GetOldClassInfo(); + std::string_view type = "N/A"; + std::string_view parent = "N/A"; + + if (classInfo) { type = classInfo->ComplexTypeName; } + + if (Glacier::ZCast::IsBasedOn(assignedTo)) { + auto childGroup = reinterpret_cast(assignedTo); + if (!childGroup) { + ImGui::TextColored(ImVec4{1.f, 0.f, 0.f, 1.f}, "Bad group pointer!"); + } else { + if (ImGui::TreeNode(fmt::format("Group \"{}\" (type: {} of {}, ID: {:08X})", currentEntity->entityName, type, parent, assignedTo->GetRef()).c_str())) { + ImGui::Inspector::Draw("NONE", assignedTo->m_baseGeom); + ImGui::Separator(); + PrepareGroup(childGroup); + ImGui::TreePop(); + } + } + } + else if (Glacier::ZCast::IsBasedOn(assignedTo)) { + if (ImGui::TreeNode(fmt::format("Actor \"{}\" (type: {} of {}, ID: {:08X})", currentEntity->entityName, type, parent, assignedTo->GetRef()).c_str())) { + ImGui::Inspector::Draw("NONE", reinterpret_cast(assignedTo)); + ImGui::TreePop(); + } + } + else if (Glacier::ZCast::IsBasedOn(assignedTo)) { + if (ImGui::TreeNode(fmt::format("ZCamera \"{}\" (type: {} of {}, ID: {:08X})", currentEntity->entityName, type, parent, assignedTo->GetRef()).c_str())) { + ImGui::Inspector::Draw("None", reinterpret_cast(assignedTo)); + ImGui::TreePop(); + } + } + else if (Glacier::ZCast::IsBasedOn(assignedTo)) { + if (ImGui::TreeNode(fmt::format("ZSoundObject \"{}\" (type: {} of {}, ID: {:08X})", currentEntity->entityName, type, parent, assignedTo->GetRef()).c_str())) { + ImGui::Inspector::Draw("None", reinterpret_cast(assignedTo)); + ImGui::TreePop(); + } + } + else { + if (ImGui::TreeNode(fmt::format("Entity \"{}\" (type: {} of {}, type ptr: {:08X}, ID: {:08X})", currentEntity->entityName, type, parent, (int)classInfo, assignedTo->GetRef()).c_str())) { + ImGui::Inspector::Draw("NONE", currentEntity); + ImGui::TreePop(); + } + } + ImGui::PopID(); + ++g_nodeId; + + //ImGui::Separator(); + currentEntity = currentEntity->Next(); + } + } + + + void SceneViewer::draw() { + DebugWidget::draw(); + + ImGui::Begin("Scene viewer", &SceneViewer::g_bIsVisible); + + auto sysInterface = Glacier::getInterface(Globals::kSysInterfaceAddr); + if (!sysInterface) { return; } + + auto engineDb = sysInterface->m_engineDataBase; + if (!engineDb) { return; } + + ImGui::Text("Scene Inspector"); + ImGui::Separator(); + + g_nodeId = 0; + PrepareGroup(engineDb->m_root); + + ImGui::End(); + } + + bool SceneViewer::g_bIsVisible = false; +} \ No newline at end of file diff --git a/ReHitman/CMakeLists.txt b/ReHitman/CMakeLists.txt index f89c53b..0b2916b 100644 --- a/ReHitman/CMakeLists.txt +++ b/ReHitman/CMakeLists.txt @@ -15,6 +15,7 @@ add_subdirectory(Glacier) add_subdirectory(BloodMoney) add_subdirectory(Launcher) add_subdirectory(Client) +add_subdirectory(ScriptingRuntime) file(GLOB_RECURSE REHITMAN_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/DLL/source/*.cpp) diff --git a/ReHitman/Glacier/CMakeLists.txt b/ReHitman/Glacier/CMakeLists.txt index 37543b3..03045e7 100644 --- a/ReHitman/Glacier/CMakeLists.txt +++ b/ReHitman/Glacier/CMakeLists.txt @@ -6,4 +6,6 @@ file(GLOB_RECURSE GLACIER_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/source/*.cpp) add_library(Glacier STATIC ${GLACIER_SOURCES}) add_library(G1::Core ALIAS Glacier) -target_include_directories(Glacier PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include) \ No newline at end of file +target_include_directories(Glacier PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include) + +target_link_libraries(Glacier PUBLIC HF::Core) \ No newline at end of file diff --git a/ReHitman/Glacier/include/G1ConfigurationService.h b/ReHitman/Glacier/include/G1ConfigurationService.h index 3a9718f..fa031e0 100644 --- a/ReHitman/Glacier/include/G1ConfigurationService.h +++ b/ReHitman/Glacier/include/G1ConfigurationService.h @@ -16,8 +16,11 @@ namespace Glacier static std::intptr_t G1API_FunctionAddress_ZGROUP_CreateGeom; static std::intptr_t G1API_FunctionAddress_ZGROUP_IsRoot; static std::intptr_t G1API_FunctionAddress_ZGEOM_GetMatPos; + static std::intptr_t G1API_FunctionAddress_ZGEOM_GetRootTM; static std::intptr_t G1API_FunctionAddress_ZGEOM_RefToPtr; + static std::intptr_t G1API_FunctionAddress_ZGEOM_GetRef; static std::intptr_t G1API_FunctionAddress_ZHumanBoid_SetTarget; + static std::intptr_t G1API_FunctionAddress_ZBaseGeom_DoInit; static std::intptr_t G1API_FunctionAddress_ZBaseGeom_ParentGroup; static std::intptr_t G1API_FunctionAddress_ZBaseGeom_SetName; static std::intptr_t G1API_FunctionAddress_ZBaseGeom_SetPrim; @@ -46,5 +49,34 @@ namespace Glacier static std::intptr_t G1API_FunctionAddress_ZHash_int_SMatPos_Put; static std::intptr_t G1API_FunctionAddress_ZHash_int_SMatPos_Clear; static std::intptr_t G1API_FunctionAddress_ZHash_int_SMatPos_Find; + static std::intptr_t G1API_FunctionAddress_ZEngineDataBase_GetSceneCom; + static std::intptr_t G1API_FunctionAddress_ZEngineDataBase_SRefToPtr; + static std::intptr_t G1API_FunctionAddress_CInventory_AddItem; + static std::intptr_t G1API_FunctionAddress_CInventory_RemoveItem; + static std::intptr_t G1API_FunctionAddress_ZSNDOBJ_AttachToDefaultRoom; + static std::intptr_t G1API_FunctionAddress_GetGQC; + static std::intptr_t G1API_FunctionAddress_ZScriptC_FindScript; + static std::intptr_t G1API_FunctionAddress_ZAction_AddAction; + static std::intptr_t G1API_FunctionAddress_ZAction_Show; + static std::intptr_t G1API_FunctionAddress_ZAction_Hide; + static std::intptr_t G1API_FunctionAddress_ZCameraSpace_AssignOperator; + static std::intptr_t G1API_FunctionAddress_ZCameraSpace_IsMirror; + static std::intptr_t G1API_FunctionAddress_ZCameraSpace_IsMain; + static std::intptr_t G1API_FunctionAddress_ZCameraSpace_Proj2D; + static std::intptr_t G1API_FunctionAddress_ZCameraSpace_Proj3D; + static std::intptr_t G1API_FunctionAddress_ZCameraSpace_GetLocalMatPos; + static std::intptr_t G1API_FunctionAddress_ZCameraSpace_TransformInversMatPos; + static std::intptr_t G1API_FunctionAddress_ZCameraSpace_GetViewport; + static std::intptr_t G1API_FunctionAddress_CCom_GetpVal; + static std::intptr_t G1API_FunctionAddress_CCom_GetVal; + static std::intptr_t G1API_FunctionAddress_ZENVIRONMENT_ToggleColor; + static std::intptr_t G1API_FunctionAddress_ZENVIRONMENT_SetDiffuseColor; + static std::intptr_t G1API_FunctionAddress_ZGameStats_IncreaseCurrentShotCount; + static std::intptr_t G1API_FunctionAddress_ZGameStats_DecreaseCurrentShotCount; + static std::intptr_t G1API_FunctionAddress_ZActorHeroCheckInside_IsInside; + + static std::intptr_t G1API_InstanceAddress_ZEngineGeomControl; + + static std::intptr_t G1API_InstanceAddress_CConfiguration_bSubtitles; }; } \ No newline at end of file diff --git a/ReHitman/Glacier/include/Glacier/CCom.h b/ReHitman/Glacier/include/Glacier/CCom.h new file mode 100644 index 0000000..bc0b66b --- /dev/null +++ b/ReHitman/Glacier/include/Glacier/CCom.h @@ -0,0 +1,4231 @@ +#pragma once + +#include +#include + +namespace Glacier { + class ZEngineDataBase; + + class CCom { + public: + struct Ent { + struct TypeInfo { + enum EKind { + Bool = '\x62\x20\x20\x20', + Char = '\x63\x20\x20\x20', + Long = '\x6c\x20\x20\x20', + Float32 = '\x66\x20\x20\x20', + Real = '\x72\x20\x20\x20', + P = '\x70\x20\x20\x20', //Pointer? Or Path? + Vec3 = '\x76\x33\x20\x20', + Vec3F = '\x66\x76\x33\x20', + Mat33 = '\x6d\x6d\x33\x20', + Mat33F = '\x33\x6d\x6d\x66', + Str = '\x73\x74\x72\x20', + Blk = '\x62\x6c\x6b\x20', + File = 'file', + Data = 'data', + GREF = 'gref', + GRFT = 'grft', //REFTAB + ZMSG = 'zmsg', + SREF = 'sref' + }; + + EKind m_eKind; + int32_t m_field4; + int32_t m_field8; + int32_t m_fieldC; + int32_t m_field10; + }; + + int m_iKeyLength; //0x0000 + TypeInfo* m_pTypeInfo; //0x0004 + int m_iNativeTypeSize; //0x0008 + + const char* GetKey(); + std::intptr_t GetValue(); + }; + + //vftable + virtual void Release(); + virtual void Clear(); + + //api + Ent* GetPVal(const char* psName, int iSize); + + //data (total size is 0x4150) + void *field_4; + void *field_8; + void *field_C; + void *field_10; + void *field_14; + void *field_18; + void *field_1C; + void *field_20; + void *field_24; + void *field_28; + void *field_2C; + void *field_30; + void *field_34; + void *field_38; + void *field_3C; + void *field_40; + void *field_44; + void *field_48; + void *field_4C; + void *field_50; + void *field_54; + void *field_58; + void *field_5C; + void *field_60; + void *field_64; + void *field_68; + void *field_6C; + void *field_70; + void *field_74; + void *field_78; + void *field_7C; + void *field_80; + void *field_84; + void *field_88; + void *field_8C; + void *field_90; + void *field_94; + void *field_98; + void *field_9C; + void *field_A0; + void *field_A4; + void *field_A8; + void *field_AC; + void *field_B0; + void *field_B4; + void *field_B8; + void *field_BC; + void *field_C0; + void *field_C4; + void *field_C8; + void *field_CC; + void *field_D0; + void *field_D4; + void *field_D8; + void *field_DC; + void *field_E0; + void *field_E4; + void *field_E8; + void *field_EC; + void *field_F0; + void *field_F4; + void *field_F8; + void *field_FC; + void *field_100; + void *field_104; + void *field_108; + void *field_10C; + void *field_110; + void *field_114; + void *field_118; + void *field_11C; + void *field_120; + void *field_124; + void *field_128; + void *field_12C; + void *field_130; + void *field_134; + void *field_138; + void *field_13C; + void *field_140; + void *field_144; + void *field_148; + void *field_14C; + void *field_150; + void *field_154; + void *field_158; + void *field_15C; + void *field_160; + void *field_164; + void *field_168; + void *field_16C; + void *field_170; + void *field_174; + void *field_178; + void *field_17C; + void *field_180; + void *field_184; + void *field_188; + void *field_18C; + void *field_190; + void *field_194; + void *field_198; + void *field_19C; + void *field_1A0; + void *field_1A4; + void *field_1A8; + void *field_1AC; + void *field_1B0; + void *field_1B4; + void *field_1B8; + void *field_1BC; + void *field_1C0; + void *field_1C4; + void *field_1C8; + void *field_1CC; + void *field_1D0; + void *field_1D4; + void *field_1D8; + void *field_1DC; + void *field_1E0; + void *field_1E4; + void *field_1E8; + void *field_1EC; + void *field_1F0; + void *field_1F4; + void *field_1F8; + void *field_1FC; + void *field_200; + void *field_204; + void *field_208; + void *field_20C; + void *field_210; + void *field_214; + void *field_218; + void *field_21C; + void *field_220; + void *field_224; + void *field_228; + void *field_22C; + void *field_230; + void *field_234; + void *field_238; + void *field_23C; + void *field_240; + void *field_244; + void *field_248; + void *field_24C; + void *field_250; + void *field_254; + void *field_258; + void *field_25C; + void *field_260; + void *field_264; + void *field_268; + void *field_26C; + void *field_270; + void *field_274; + void *field_278; + void *field_27C; + void *field_280; + void *field_284; + void *field_288; + void *field_28C; + void *field_290; + void *field_294; + void *field_298; + void *field_29C; + void *field_2A0; + void *field_2A4; + void *field_2A8; + void *field_2AC; + void *field_2B0; + void *field_2B4; + void *field_2B8; + void *field_2BC; + void *field_2C0; + void *field_2C4; + void *field_2C8; + void *field_2CC; + void *field_2D0; + void *field_2D4; + void *field_2D8; + void *field_2DC; + void *field_2E0; + void *field_2E4; + void *field_2E8; + void *field_2EC; + void *field_2F0; + void *field_2F4; + void *field_2F8; + void *field_2FC; + void *field_300; + void *field_304; + void *field_308; + void *field_30C; + void *field_310; + void *field_314; + void *field_318; + void *field_31C; + void *field_320; + void *field_324; + void *field_328; + void *field_32C; + void *field_330; + void *field_334; + void *field_338; + void *field_33C; + void *field_340; + void *field_344; + void *field_348; + void *field_34C; + void *field_350; + void *field_354; + void *field_358; + void *field_35C; + void *field_360; + void *field_364; + void *field_368; + void *field_36C; + void *field_370; + void *field_374; + void *field_378; + void *field_37C; + void *field_380; + void *field_384; + void *field_388; + void *field_38C; + void *field_390; + void *field_394; + void *field_398; + void *field_39C; + void *field_3A0; + void *field_3A4; + void *field_3A8; + void *field_3AC; + void *field_3B0; + void *field_3B4; + void *field_3B8; + void *field_3BC; + void *field_3C0; + void *field_3C4; + void *field_3C8; + void *field_3CC; + void *field_3D0; + void *field_3D4; + void *field_3D8; + void *field_3DC; + void *field_3E0; + void *field_3E4; + void *field_3E8; + void *field_3EC; + void *field_3F0; + void *field_3F4; + void *field_3F8; + void *field_3FC; + void *field_400; + void *field_404; + void *field_408; + void *field_40C; + void *field_410; + void *field_414; + void *field_418; + void *field_41C; + void *field_420; + void *field_424; + void *field_428; + void *field_42C; + void *field_430; + void *field_434; + void *field_438; + void *field_43C; + void *field_440; + void *field_444; + void *field_448; + void *field_44C; + void *field_450; + void *field_454; + void *field_458; + void *field_45C; + void *field_460; + void *field_464; + void *field_468; + void *field_46C; + void *field_470; + void *field_474; + void *field_478; + void *field_47C; + void *field_480; + void *field_484; + void *field_488; + void *field_48C; + void *field_490; + void *field_494; + void *field_498; + void *field_49C; + void *field_4A0; + void *field_4A4; + void *field_4A8; + void *field_4AC; + void *field_4B0; + void *field_4B4; + void *field_4B8; + void *field_4BC; + void *field_4C0; + void *field_4C4; + void *field_4C8; + void *field_4CC; + void *field_4D0; + void *field_4D4; + void *field_4D8; + void *field_4DC; + void *field_4E0; + void *field_4E4; + void *field_4E8; + void *field_4EC; + void *field_4F0; + void *field_4F4; + void *field_4F8; + void *field_4FC; + void *field_500; + void *field_504; + void *field_508; + void *field_50C; + void *field_510; + void *field_514; + void *field_518; + void *field_51C; + void *field_520; + void *field_524; + void *field_528; + void *field_52C; + void *field_530; + void *field_534; + void *field_538; + void *field_53C; + void *field_540; + void *field_544; + void *field_548; + void *field_54C; + void *field_550; + void *field_554; + void *field_558; + void *field_55C; + void *field_560; + void *field_564; + void *field_568; + void *field_56C; + void *field_570; + void *field_574; + void *field_578; + void *field_57C; + void *field_580; + void *field_584; + void *field_588; + void *field_58C; + void *field_590; + void *field_594; + void *field_598; + void *field_59C; + void *field_5A0; + void *field_5A4; + void *field_5A8; + void *field_5AC; + void *field_5B0; + void *field_5B4; + void *field_5B8; + void *field_5BC; + void *field_5C0; + void *field_5C4; + void *field_5C8; + void *field_5CC; + void *field_5D0; + void *field_5D4; + void *field_5D8; + void *field_5DC; + void *field_5E0; + void *field_5E4; + void *field_5E8; + void *field_5EC; + void *field_5F0; + void *field_5F4; + void *field_5F8; + void *field_5FC; + void *field_600; + void *field_604; + void *field_608; + void *field_60C; + void *field_610; + void *field_614; + void *field_618; + void *field_61C; + void *field_620; + void *field_624; + void *field_628; + void *field_62C; + void *field_630; + void *field_634; + void *field_638; + void *field_63C; + void *field_640; + void *field_644; + void *field_648; + void *field_64C; + void *field_650; + void *field_654; + void *field_658; + void *field_65C; + void *field_660; + void *field_664; + void *field_668; + void *field_66C; + void *field_670; + void *field_674; + void *field_678; + void *field_67C; + void *field_680; + void *field_684; + void *field_688; + void *field_68C; + void *field_690; + void *field_694; + void *field_698; + void *field_69C; + void *field_6A0; + void *field_6A4; + void *field_6A8; + void *field_6AC; + void *field_6B0; + void *field_6B4; + void *field_6B8; + void *field_6BC; + void *field_6C0; + void *field_6C4; + void *field_6C8; + void *field_6CC; + void *field_6D0; + void *field_6D4; + void *field_6D8; + void *field_6DC; + void *field_6E0; + void *field_6E4; + void *field_6E8; + void *field_6EC; + void *field_6F0; + void *field_6F4; + void *field_6F8; + void *field_6FC; + void *field_700; + void *field_704; + void *field_708; + void *field_70C; + void *field_710; + void *field_714; + void *field_718; + void *field_71C; + void *field_720; + void *field_724; + void *field_728; + void *field_72C; + void *field_730; + void *field_734; + void *field_738; + void *field_73C; + void *field_740; + void *field_744; + void *field_748; + void *field_74C; + void *field_750; + void *field_754; + void *field_758; + void *field_75C; + void *field_760; + void *field_764; + void *field_768; + void *field_76C; + void *field_770; + void *field_774; + void *field_778; + void *field_77C; + void *field_780; + void *field_784; + void *field_788; + void *field_78C; + void *field_790; + void *field_794; + void *field_798; + void *field_79C; + void *field_7A0; + void *field_7A4; + void *field_7A8; + void *field_7AC; + void *field_7B0; + void *field_7B4; + void *field_7B8; + void *field_7BC; + void *field_7C0; + void *field_7C4; + void *field_7C8; + void *field_7CC; + void *field_7D0; + void *field_7D4; + void *field_7D8; + void *field_7DC; + void *field_7E0; + void *field_7E4; + void *field_7E8; + void *field_7EC; + void *field_7F0; + void *field_7F4; + void *field_7F8; + void *field_7FC; + void *field_800; + void *field_804; + void *field_808; + void *field_80C; + void *field_810; + void *field_814; + void *field_818; + void *field_81C; + void *field_820; + void *field_824; + void *field_828; + void *field_82C; + void *field_830; + void *field_834; + void *field_838; + void *field_83C; + void *field_840; + void *field_844; + void *field_848; + void *field_84C; + void *field_850; + void *field_854; + void *field_858; + void *field_85C; + void *field_860; + void *field_864; + void *field_868; + void *field_86C; + void *field_870; + void *field_874; + void *field_878; + void *field_87C; + void *field_880; + void *field_884; + void *field_888; + void *field_88C; + void *field_890; + void *field_894; + void *field_898; + void *field_89C; + void *field_8A0; + void *field_8A4; + void *field_8A8; + void *field_8AC; + void *field_8B0; + void *field_8B4; + void *field_8B8; + void *field_8BC; + void *field_8C0; + void *field_8C4; + void *field_8C8; + void *field_8CC; + void *field_8D0; + void *field_8D4; + void *field_8D8; + void *field_8DC; + void *field_8E0; + void *field_8E4; + void *field_8E8; + void *field_8EC; + void *field_8F0; + void *field_8F4; + void *field_8F8; + void *field_8FC; + void *field_900; + void *field_904; + void *field_908; + void *field_90C; + void *field_910; + void *field_914; + void *field_918; + void *field_91C; + void *field_920; + void *field_924; + void *field_928; + void *field_92C; + void *field_930; + void *field_934; + void *field_938; + void *field_93C; + void *field_940; + void *field_944; + void *field_948; + void *field_94C; + void *field_950; + void *field_954; + void *field_958; + void *field_95C; + void *field_960; + void *field_964; + void *field_968; + void *field_96C; + void *field_970; + void *field_974; + void *field_978; + void *field_97C; + void *field_980; + void *field_984; + void *field_988; + void *field_98C; + void *field_990; + void *field_994; + void *field_998; + void *field_99C; + void *field_9A0; + void *field_9A4; + void *field_9A8; + void *field_9AC; + void *field_9B0; + void *field_9B4; + void *field_9B8; + void *field_9BC; + void *field_9C0; + void *field_9C4; + void *field_9C8; + void *field_9CC; + void *field_9D0; + void *field_9D4; + void *field_9D8; + void *field_9DC; + void *field_9E0; + void *field_9E4; + void *field_9E8; + void *field_9EC; + void *field_9F0; + void *field_9F4; + void *field_9F8; + void *field_9FC; + void *field_A00; + void *field_A04; + void *field_A08; + void *field_A0C; + void *field_A10; + void *field_A14; + void *field_A18; + void *field_A1C; + void *field_A20; + void *field_A24; + void *field_A28; + void *field_A2C; + void *field_A30; + void *field_A34; + void *field_A38; + void *field_A3C; + void *field_A40; + void *field_A44; + void *field_A48; + void *field_A4C; + void *field_A50; + void *field_A54; + void *field_A58; + void *field_A5C; + void *field_A60; + void *field_A64; + void *field_A68; + void *field_A6C; + void *field_A70; + void *field_A74; + void *field_A78; + void *field_A7C; + void *field_A80; + void *field_A84; + void *field_A88; + void *field_A8C; + void *field_A90; + void *field_A94; + void *field_A98; + void *field_A9C; + void *field_AA0; + void *field_AA4; + void *field_AA8; + void *field_AAC; + void *field_AB0; + void *field_AB4; + void *field_AB8; + void *field_ABC; + void *field_AC0; + void *field_AC4; + void *field_AC8; + void *field_ACC; + void *field_AD0; + void *field_AD4; + void *field_AD8; + void *field_ADC; + void *field_AE0; + void *field_AE4; + void *field_AE8; + void *field_AEC; + void *field_AF0; + void *field_AF4; + void *field_AF8; + void *field_AFC; + void *field_B00; + void *field_B04; + void *field_B08; + void *field_B0C; + void *field_B10; + void *field_B14; + void *field_B18; + void *field_B1C; + void *field_B20; + void *field_B24; + void *field_B28; + void *field_B2C; + void *field_B30; + void *field_B34; + void *field_B38; + void *field_B3C; + void *field_B40; + void *field_B44; + void *field_B48; + void *field_B4C; + void *field_B50; + void *field_B54; + void *field_B58; + void *field_B5C; + void *field_B60; + void *field_B64; + void *field_B68; + void *field_B6C; + void *field_B70; + void *field_B74; + void *field_B78; + void *field_B7C; + void *field_B80; + void *field_B84; + void *field_B88; + void *field_B8C; + void *field_B90; + void *field_B94; + void *field_B98; + void *field_B9C; + void *field_BA0; + void *field_BA4; + void *field_BA8; + void *field_BAC; + void *field_BB0; + void *field_BB4; + void *field_BB8; + void *field_BBC; + void *field_BC0; + void *field_BC4; + void *field_BC8; + void *field_BCC; + void *field_BD0; + void *field_BD4; + void *field_BD8; + void *field_BDC; + void *field_BE0; + void *field_BE4; + void *field_BE8; + void *field_BEC; + void *field_BF0; + void *field_BF4; + void *field_BF8; + void *field_BFC; + void *field_C00; + void *field_C04; + void *field_C08; + void *field_C0C; + void *field_C10; + void *field_C14; + void *field_C18; + void *field_C1C; + void *field_C20; + void *field_C24; + void *field_C28; + void *field_C2C; + void *field_C30; + void *field_C34; + void *field_C38; + void *field_C3C; + void *field_C40; + void *field_C44; + void *field_C48; + void *field_C4C; + void *field_C50; + void *field_C54; + void *field_C58; + void *field_C5C; + void *field_C60; + void *field_C64; + void *field_C68; + void *field_C6C; + void *field_C70; + void *field_C74; + void *field_C78; + void *field_C7C; + void *field_C80; + void *field_C84; + void *field_C88; + void *field_C8C; + void *field_C90; + void *field_C94; + void *field_C98; + void *field_C9C; + void *field_CA0; + void *field_CA4; + void *field_CA8; + void *field_CAC; + void *field_CB0; + void *field_CB4; + void *field_CB8; + void *field_CBC; + void *field_CC0; + void *field_CC4; + void *field_CC8; + void *field_CCC; + void *field_CD0; + void *field_CD4; + void *field_CD8; + void *field_CDC; + void *field_CE0; + void *field_CE4; + void *field_CE8; + void *field_CEC; + void *field_CF0; + void *field_CF4; + void *field_CF8; + void *field_CFC; + void *field_D00; + void *field_D04; + void *field_D08; + void *field_D0C; + void *field_D10; + void *field_D14; + void *field_D18; + void *field_D1C; + void *field_D20; + void *field_D24; + void *field_D28; + void *field_D2C; + void *field_D30; + void *field_D34; + void *field_D38; + void *field_D3C; + void *field_D40; + void *field_D44; + void *field_D48; + void *field_D4C; + void *field_D50; + void *field_D54; + void *field_D58; + void *field_D5C; + void *field_D60; + void *field_D64; + void *field_D68; + void *field_D6C; + void *field_D70; + void *field_D74; + void *field_D78; + void *field_D7C; + void *field_D80; + void *field_D84; + void *field_D88; + void *field_D8C; + void *field_D90; + void *field_D94; + void *field_D98; + void *field_D9C; + void *field_DA0; + void *field_DA4; + void *field_DA8; + void *field_DAC; + void *field_DB0; + void *field_DB4; + void *field_DB8; + void *field_DBC; + void *field_DC0; + void *field_DC4; + void *field_DC8; + void *field_DCC; + void *field_DD0; + void *field_DD4; + void *field_DD8; + void *field_DDC; + void *field_DE0; + void *field_DE4; + void *field_DE8; + void *field_DEC; + void *field_DF0; + void *field_DF4; + void *field_DF8; + void *field_DFC; + void *field_E00; + void *field_E04; + void *field_E08; + void *field_E0C; + void *field_E10; + void *field_E14; + void *field_E18; + void *field_E1C; + void *field_E20; + void *field_E24; + void *field_E28; + void *field_E2C; + void *field_E30; + void *field_E34; + void *field_E38; + void *field_E3C; + void *field_E40; + void *field_E44; + void *field_E48; + void *field_E4C; + void *field_E50; + void *field_E54; + void *field_E58; + void *field_E5C; + void *field_E60; + void *field_E64; + void *field_E68; + void *field_E6C; + void *field_E70; + void *field_E74; + void *field_E78; + void *field_E7C; + void *field_E80; + void *field_E84; + void *field_E88; + void *field_E8C; + void *field_E90; + void *field_E94; + void *field_E98; + void *field_E9C; + void *field_EA0; + void *field_EA4; + void *field_EA8; + void *field_EAC; + void *field_EB0; + void *field_EB4; + void *field_EB8; + void *field_EBC; + void *field_EC0; + void *field_EC4; + void *field_EC8; + void *field_ECC; + void *field_ED0; + void *field_ED4; + void *field_ED8; + void *field_EDC; + void *field_EE0; + void *field_EE4; + void *field_EE8; + void *field_EEC; + void *field_EF0; + void *field_EF4; + void *field_EF8; + void *field_EFC; + void *field_F00; + void *field_F04; + void *field_F08; + void *field_F0C; + void *field_F10; + void *field_F14; + void *field_F18; + void *field_F1C; + void *field_F20; + void *field_F24; + void *field_F28; + void *field_F2C; + void *field_F30; + void *field_F34; + void *field_F38; + void *field_F3C; + void *field_F40; + void *field_F44; + void *field_F48; + void *field_F4C; + void *field_F50; + void *field_F54; + void *field_F58; + void *field_F5C; + void *field_F60; + void *field_F64; + void *field_F68; + void *field_F6C; + void *field_F70; + void *field_F74; + void *field_F78; + void *field_F7C; + void *field_F80; + void *field_F84; + void *field_F88; + void *field_F8C; + void *field_F90; + void *field_F94; + void *field_F98; + void *field_F9C; + void *field_FA0; + void *field_FA4; + void *field_FA8; + void *field_FAC; + void *field_FB0; + void *field_FB4; + void *field_FB8; + void *field_FBC; + void *field_FC0; + void *field_FC4; + void *field_FC8; + void *field_FCC; + void *field_FD0; + void *field_FD4; + void *field_FD8; + void *field_FDC; + void *field_FE0; + void *field_FE4; + void *field_FE8; + void *field_FEC; + void *field_FF0; + void *field_FF4; + void *field_FF8; + void *field_FFC; + void *field_1000; + void *field_1004; + void *field_1008; + void *field_100C; + void *field_1010; + void *field_1014; + void *field_1018; + void *field_101C; + void *field_1020; + void *field_1024; + void *field_1028; + void *field_102C; + void *field_1030; + void *field_1034; + void *field_1038; + void *field_103C; + void *field_1040; + void *field_1044; + void *field_1048; + void *field_104C; + void *field_1050; + void *field_1054; + void *field_1058; + void *field_105C; + void *field_1060; + void *field_1064; + void *field_1068; + void *field_106C; + void *field_1070; + void *field_1074; + void *field_1078; + void *field_107C; + void *field_1080; + void *field_1084; + void *field_1088; + void *field_108C; + void *field_1090; + void *field_1094; + void *field_1098; + void *field_109C; + void *field_10A0; + void *field_10A4; + void *field_10A8; + void *field_10AC; + void *field_10B0; + void *field_10B4; + void *field_10B8; + void *field_10BC; + void *field_10C0; + void *field_10C4; + void *field_10C8; + void *field_10CC; + void *field_10D0; + void *field_10D4; + void *field_10D8; + void *field_10DC; + void *field_10E0; + void *field_10E4; + void *field_10E8; + void *field_10EC; + void *field_10F0; + void *field_10F4; + void *field_10F8; + void *field_10FC; + void *field_1100; + void *field_1104; + void *field_1108; + void *field_110C; + void *field_1110; + void *field_1114; + void *field_1118; + void *field_111C; + void *field_1120; + void *field_1124; + void *field_1128; + void *field_112C; + void *field_1130; + void *field_1134; + void *field_1138; + void *field_113C; + void *field_1140; + void *field_1144; + void *field_1148; + void *field_114C; + void *field_1150; + void *field_1154; + void *field_1158; + void *field_115C; + void *field_1160; + void *field_1164; + void *field_1168; + void *field_116C; + void *field_1170; + void *field_1174; + void *field_1178; + void *field_117C; + void *field_1180; + void *field_1184; + void *field_1188; + void *field_118C; + void *field_1190; + void *field_1194; + void *field_1198; + void *field_119C; + void *field_11A0; + void *field_11A4; + void *field_11A8; + void *field_11AC; + void *field_11B0; + void *field_11B4; + void *field_11B8; + void *field_11BC; + void *field_11C0; + void *field_11C4; + void *field_11C8; + void *field_11CC; + void *field_11D0; + void *field_11D4; + void *field_11D8; + void *field_11DC; + void *field_11E0; + void *field_11E4; + void *field_11E8; + void *field_11EC; + void *field_11F0; + void *field_11F4; + void *field_11F8; + void *field_11FC; + void *field_1200; + void *field_1204; + void *field_1208; + void *field_120C; + void *field_1210; + void *field_1214; + void *field_1218; + void *field_121C; + void *field_1220; + void *field_1224; + void *field_1228; + void *field_122C; + void *field_1230; + void *field_1234; + void *field_1238; + void *field_123C; + void *field_1240; + void *field_1244; + void *field_1248; + void *field_124C; + void *field_1250; + void *field_1254; + void *field_1258; + void *field_125C; + void *field_1260; + void *field_1264; + void *field_1268; + void *field_126C; + void *field_1270; + void *field_1274; + void *field_1278; + void *field_127C; + void *field_1280; + void *field_1284; + void *field_1288; + void *field_128C; + void *field_1290; + void *field_1294; + void *field_1298; + void *field_129C; + void *field_12A0; + void *field_12A4; + void *field_12A8; + void *field_12AC; + void *field_12B0; + void *field_12B4; + void *field_12B8; + void *field_12BC; + void *field_12C0; + void *field_12C4; + void *field_12C8; + void *field_12CC; + void *field_12D0; + void *field_12D4; + void *field_12D8; + void *field_12DC; + void *field_12E0; + void *field_12E4; + void *field_12E8; + void *field_12EC; + void *field_12F0; + void *field_12F4; + void *field_12F8; + void *field_12FC; + void *field_1300; + void *field_1304; + void *field_1308; + void *field_130C; + void *field_1310; + void *field_1314; + void *field_1318; + void *field_131C; + void *field_1320; + void *field_1324; + void *field_1328; + void *field_132C; + void *field_1330; + void *field_1334; + void *field_1338; + void *field_133C; + void *field_1340; + void *field_1344; + void *field_1348; + void *field_134C; + void *field_1350; + void *field_1354; + void *field_1358; + void *field_135C; + void *field_1360; + void *field_1364; + void *field_1368; + void *field_136C; + void *field_1370; + void *field_1374; + void *field_1378; + void *field_137C; + void *field_1380; + void *field_1384; + void *field_1388; + void *field_138C; + void *field_1390; + void *field_1394; + void *field_1398; + void *field_139C; + void *field_13A0; + void *field_13A4; + void *field_13A8; + void *field_13AC; + void *field_13B0; + void *field_13B4; + void *field_13B8; + void *field_13BC; + void *field_13C0; + void *field_13C4; + void *field_13C8; + void *field_13CC; + void *field_13D0; + void *field_13D4; + void *field_13D8; + void *field_13DC; + void *field_13E0; + void *field_13E4; + void *field_13E8; + void *field_13EC; + void *field_13F0; + void *field_13F4; + void *field_13F8; + void *field_13FC; + void *field_1400; + void *field_1404; + void *field_1408; + void *field_140C; + void *field_1410; + void *field_1414; + void *field_1418; + void *field_141C; + void *field_1420; + void *field_1424; + void *field_1428; + void *field_142C; + void *field_1430; + void *field_1434; + void *field_1438; + void *field_143C; + void *field_1440; + void *field_1444; + void *field_1448; + void *field_144C; + void *field_1450; + void *field_1454; + void *field_1458; + void *field_145C; + void *field_1460; + void *field_1464; + void *field_1468; + void *field_146C; + void *field_1470; + void *field_1474; + void *field_1478; + void *field_147C; + void *field_1480; + void *field_1484; + void *field_1488; + void *field_148C; + void *field_1490; + void *field_1494; + void *field_1498; + void *field_149C; + void *field_14A0; + void *field_14A4; + void *field_14A8; + void *field_14AC; + void *field_14B0; + void *field_14B4; + void *field_14B8; + void *field_14BC; + void *field_14C0; + void *field_14C4; + void *field_14C8; + void *field_14CC; + void *field_14D0; + void *field_14D4; + void *field_14D8; + void *field_14DC; + void *field_14E0; + void *field_14E4; + void *field_14E8; + void *field_14EC; + void *field_14F0; + void *field_14F4; + void *field_14F8; + void *field_14FC; + void *field_1500; + void *field_1504; + void *field_1508; + void *field_150C; + void *field_1510; + void *field_1514; + void *field_1518; + void *field_151C; + void *field_1520; + void *field_1524; + void *field_1528; + void *field_152C; + void *field_1530; + void *field_1534; + void *field_1538; + void *field_153C; + void *field_1540; + void *field_1544; + void *field_1548; + void *field_154C; + void *field_1550; + void *field_1554; + void *field_1558; + void *field_155C; + void *field_1560; + void *field_1564; + void *field_1568; + void *field_156C; + void *field_1570; + void *field_1574; + void *field_1578; + void *field_157C; + void *field_1580; + void *field_1584; + void *field_1588; + void *field_158C; + void *field_1590; + void *field_1594; + void *field_1598; + void *field_159C; + void *field_15A0; + void *field_15A4; + void *field_15A8; + void *field_15AC; + void *field_15B0; + void *field_15B4; + void *field_15B8; + void *field_15BC; + void *field_15C0; + void *field_15C4; + void *field_15C8; + void *field_15CC; + void *field_15D0; + void *field_15D4; + void *field_15D8; + void *field_15DC; + void *field_15E0; + void *field_15E4; + void *field_15E8; + void *field_15EC; + void *field_15F0; + void *field_15F4; + void *field_15F8; + void *field_15FC; + void *field_1600; + void *field_1604; + void *field_1608; + void *field_160C; + void *field_1610; + void *field_1614; + void *field_1618; + void *field_161C; + void *field_1620; + void *field_1624; + void *field_1628; + void *field_162C; + void *field_1630; + void *field_1634; + void *field_1638; + void *field_163C; + void *field_1640; + void *field_1644; + void *field_1648; + void *field_164C; + void *field_1650; + void *field_1654; + void *field_1658; + void *field_165C; + void *field_1660; + void *field_1664; + void *field_1668; + void *field_166C; + void *field_1670; + void *field_1674; + void *field_1678; + void *field_167C; + void *field_1680; + void *field_1684; + void *field_1688; + void *field_168C; + void *field_1690; + void *field_1694; + void *field_1698; + void *field_169C; + void *field_16A0; + void *field_16A4; + void *field_16A8; + void *field_16AC; + void *field_16B0; + void *field_16B4; + void *field_16B8; + void *field_16BC; + void *field_16C0; + void *field_16C4; + void *field_16C8; + void *field_16CC; + void *field_16D0; + void *field_16D4; + void *field_16D8; + void *field_16DC; + void *field_16E0; + void *field_16E4; + void *field_16E8; + void *field_16EC; + void *field_16F0; + void *field_16F4; + void *field_16F8; + void *field_16FC; + void *field_1700; + void *field_1704; + void *field_1708; + void *field_170C; + void *field_1710; + void *field_1714; + void *field_1718; + void *field_171C; + void *field_1720; + void *field_1724; + void *field_1728; + void *field_172C; + void *field_1730; + void *field_1734; + void *field_1738; + void *field_173C; + void *field_1740; + void *field_1744; + void *field_1748; + void *field_174C; + void *field_1750; + void *field_1754; + void *field_1758; + void *field_175C; + void *field_1760; + void *field_1764; + void *field_1768; + void *field_176C; + void *field_1770; + void *field_1774; + void *field_1778; + void *field_177C; + void *field_1780; + void *field_1784; + void *field_1788; + void *field_178C; + void *field_1790; + void *field_1794; + void *field_1798; + void *field_179C; + void *field_17A0; + void *field_17A4; + void *field_17A8; + void *field_17AC; + void *field_17B0; + void *field_17B4; + void *field_17B8; + void *field_17BC; + void *field_17C0; + void *field_17C4; + void *field_17C8; + void *field_17CC; + void *field_17D0; + void *field_17D4; + void *field_17D8; + void *field_17DC; + void *field_17E0; + void *field_17E4; + void *field_17E8; + void *field_17EC; + void *field_17F0; + void *field_17F4; + void *field_17F8; + void *field_17FC; + void *field_1800; + void *field_1804; + void *field_1808; + void *field_180C; + void *field_1810; + void *field_1814; + void *field_1818; + void *field_181C; + void *field_1820; + void *field_1824; + void *field_1828; + void *field_182C; + void *field_1830; + void *field_1834; + void *field_1838; + void *field_183C; + void *field_1840; + void *field_1844; + void *field_1848; + void *field_184C; + void *field_1850; + void *field_1854; + void *field_1858; + void *field_185C; + void *field_1860; + void *field_1864; + void *field_1868; + void *field_186C; + void *field_1870; + void *field_1874; + void *field_1878; + void *field_187C; + void *field_1880; + void *field_1884; + void *field_1888; + void *field_188C; + void *field_1890; + void *field_1894; + void *field_1898; + void *field_189C; + void *field_18A0; + void *field_18A4; + void *field_18A8; + void *field_18AC; + void *field_18B0; + void *field_18B4; + void *field_18B8; + void *field_18BC; + void *field_18C0; + void *field_18C4; + void *field_18C8; + void *field_18CC; + void *field_18D0; + void *field_18D4; + void *field_18D8; + void *field_18DC; + void *field_18E0; + void *field_18E4; + void *field_18E8; + void *field_18EC; + void *field_18F0; + void *field_18F4; + void *field_18F8; + void *field_18FC; + void *field_1900; + void *field_1904; + void *field_1908; + void *field_190C; + void *field_1910; + void *field_1914; + void *field_1918; + void *field_191C; + void *field_1920; + void *field_1924; + void *field_1928; + void *field_192C; + void *field_1930; + void *field_1934; + void *field_1938; + void *field_193C; + void *field_1940; + void *field_1944; + void *field_1948; + void *field_194C; + void *field_1950; + void *field_1954; + void *field_1958; + void *field_195C; + void *field_1960; + void *field_1964; + void *field_1968; + void *field_196C; + void *field_1970; + void *field_1974; + void *field_1978; + void *field_197C; + void *field_1980; + void *field_1984; + void *field_1988; + void *field_198C; + void *field_1990; + void *field_1994; + void *field_1998; + void *field_199C; + void *field_19A0; + void *field_19A4; + void *field_19A8; + void *field_19AC; + void *field_19B0; + void *field_19B4; + void *field_19B8; + void *field_19BC; + void *field_19C0; + void *field_19C4; + void *field_19C8; + void *field_19CC; + void *field_19D0; + void *field_19D4; + void *field_19D8; + void *field_19DC; + void *field_19E0; + void *field_19E4; + void *field_19E8; + void *field_19EC; + void *field_19F0; + void *field_19F4; + void *field_19F8; + void *field_19FC; + void *field_1A00; + void *field_1A04; + void *field_1A08; + void *field_1A0C; + void *field_1A10; + void *field_1A14; + void *field_1A18; + void *field_1A1C; + void *field_1A20; + void *field_1A24; + void *field_1A28; + void *field_1A2C; + void *field_1A30; + void *field_1A34; + void *field_1A38; + void *field_1A3C; + void *field_1A40; + void *field_1A44; + void *field_1A48; + void *field_1A4C; + void *field_1A50; + void *field_1A54; + void *field_1A58; + void *field_1A5C; + void *field_1A60; + void *field_1A64; + void *field_1A68; + void *field_1A6C; + void *field_1A70; + void *field_1A74; + void *field_1A78; + void *field_1A7C; + void *field_1A80; + void *field_1A84; + void *field_1A88; + void *field_1A8C; + void *field_1A90; + void *field_1A94; + void *field_1A98; + void *field_1A9C; + void *field_1AA0; + void *field_1AA4; + void *field_1AA8; + void *field_1AAC; + void *field_1AB0; + void *field_1AB4; + void *field_1AB8; + void *field_1ABC; + void *field_1AC0; + void *field_1AC4; + void *field_1AC8; + void *field_1ACC; + void *field_1AD0; + void *field_1AD4; + void *field_1AD8; + void *field_1ADC; + void *field_1AE0; + void *field_1AE4; + void *field_1AE8; + void *field_1AEC; + void *field_1AF0; + void *field_1AF4; + void *field_1AF8; + void *field_1AFC; + void *field_1B00; + void *field_1B04; + void *field_1B08; + void *field_1B0C; + void *field_1B10; + void *field_1B14; + void *field_1B18; + void *field_1B1C; + void *field_1B20; + void *field_1B24; + void *field_1B28; + void *field_1B2C; + void *field_1B30; + void *field_1B34; + void *field_1B38; + void *field_1B3C; + void *field_1B40; + void *field_1B44; + void *field_1B48; + void *field_1B4C; + void *field_1B50; + void *field_1B54; + void *field_1B58; + void *field_1B5C; + void *field_1B60; + void *field_1B64; + void *field_1B68; + void *field_1B6C; + void *field_1B70; + void *field_1B74; + void *field_1B78; + void *field_1B7C; + void *field_1B80; + void *field_1B84; + void *field_1B88; + void *field_1B8C; + void *field_1B90; + void *field_1B94; + void *field_1B98; + void *field_1B9C; + void *field_1BA0; + void *field_1BA4; + void *field_1BA8; + void *field_1BAC; + void *field_1BB0; + void *field_1BB4; + void *field_1BB8; + void *field_1BBC; + void *field_1BC0; + void *field_1BC4; + void *field_1BC8; + void *field_1BCC; + void *field_1BD0; + void *field_1BD4; + void *field_1BD8; + void *field_1BDC; + void *field_1BE0; + void *field_1BE4; + void *field_1BE8; + void *field_1BEC; + void *field_1BF0; + void *field_1BF4; + void *field_1BF8; + void *field_1BFC; + void *field_1C00; + void *field_1C04; + void *field_1C08; + void *field_1C0C; + void *field_1C10; + void *field_1C14; + void *field_1C18; + void *field_1C1C; + void *field_1C20; + void *field_1C24; + void *field_1C28; + void *field_1C2C; + void *field_1C30; + void *field_1C34; + void *field_1C38; + void *field_1C3C; + void *field_1C40; + void *field_1C44; + void *field_1C48; + void *field_1C4C; + void *field_1C50; + void *field_1C54; + void *field_1C58; + void *field_1C5C; + void *field_1C60; + void *field_1C64; + void *field_1C68; + void *field_1C6C; + void *field_1C70; + void *field_1C74; + void *field_1C78; + void *field_1C7C; + void *field_1C80; + void *field_1C84; + void *field_1C88; + void *field_1C8C; + void *field_1C90; + void *field_1C94; + void *field_1C98; + void *field_1C9C; + void *field_1CA0; + void *field_1CA4; + void *field_1CA8; + void *field_1CAC; + void *field_1CB0; + void *field_1CB4; + void *field_1CB8; + void *field_1CBC; + void *field_1CC0; + void *field_1CC4; + void *field_1CC8; + void *field_1CCC; + void *field_1CD0; + void *field_1CD4; + void *field_1CD8; + void *field_1CDC; + void *field_1CE0; + void *field_1CE4; + void *field_1CE8; + void *field_1CEC; + void *field_1CF0; + void *field_1CF4; + void *field_1CF8; + void *field_1CFC; + void *field_1D00; + void *field_1D04; + void *field_1D08; + void *field_1D0C; + void *field_1D10; + void *field_1D14; + void *field_1D18; + void *field_1D1C; + void *field_1D20; + void *field_1D24; + void *field_1D28; + void *field_1D2C; + void *field_1D30; + void *field_1D34; + void *field_1D38; + void *field_1D3C; + void *field_1D40; + void *field_1D44; + void *field_1D48; + void *field_1D4C; + void *field_1D50; + void *field_1D54; + void *field_1D58; + void *field_1D5C; + void *field_1D60; + void *field_1D64; + void *field_1D68; + void *field_1D6C; + void *field_1D70; + void *field_1D74; + void *field_1D78; + void *field_1D7C; + void *field_1D80; + void *field_1D84; + void *field_1D88; + void *field_1D8C; + void *field_1D90; + void *field_1D94; + void *field_1D98; + void *field_1D9C; + void *field_1DA0; + void *field_1DA4; + void *field_1DA8; + void *field_1DAC; + void *field_1DB0; + void *field_1DB4; + void *field_1DB8; + void *field_1DBC; + void *field_1DC0; + void *field_1DC4; + void *field_1DC8; + void *field_1DCC; + void *field_1DD0; + void *field_1DD4; + void *field_1DD8; + void *field_1DDC; + void *field_1DE0; + void *field_1DE4; + void *field_1DE8; + void *field_1DEC; + void *field_1DF0; + void *field_1DF4; + void *field_1DF8; + void *field_1DFC; + void *field_1E00; + void *field_1E04; + void *field_1E08; + void *field_1E0C; + void *field_1E10; + void *field_1E14; + void *field_1E18; + void *field_1E1C; + void *field_1E20; + void *field_1E24; + void *field_1E28; + void *field_1E2C; + void *field_1E30; + void *field_1E34; + void *field_1E38; + void *field_1E3C; + void *field_1E40; + void *field_1E44; + void *field_1E48; + void *field_1E4C; + void *field_1E50; + void *field_1E54; + void *field_1E58; + void *field_1E5C; + void *field_1E60; + void *field_1E64; + void *field_1E68; + void *field_1E6C; + void *field_1E70; + void *field_1E74; + void *field_1E78; + void *field_1E7C; + void *field_1E80; + void *field_1E84; + void *field_1E88; + void *field_1E8C; + void *field_1E90; + void *field_1E94; + void *field_1E98; + void *field_1E9C; + void *field_1EA0; + void *field_1EA4; + void *field_1EA8; + void *field_1EAC; + void *field_1EB0; + void *field_1EB4; + void *field_1EB8; + void *field_1EBC; + void *field_1EC0; + void *field_1EC4; + void *field_1EC8; + void *field_1ECC; + void *field_1ED0; + void *field_1ED4; + void *field_1ED8; + void *field_1EDC; + void *field_1EE0; + void *field_1EE4; + void *field_1EE8; + void *field_1EEC; + void *field_1EF0; + void *field_1EF4; + void *field_1EF8; + void *field_1EFC; + void *field_1F00; + void *field_1F04; + void *field_1F08; + void *field_1F0C; + void *field_1F10; + void *field_1F14; + void *field_1F18; + void *field_1F1C; + void *field_1F20; + void *field_1F24; + void *field_1F28; + void *field_1F2C; + void *field_1F30; + void *field_1F34; + void *field_1F38; + void *field_1F3C; + void *field_1F40; + void *field_1F44; + void *field_1F48; + void *field_1F4C; + void *field_1F50; + void *field_1F54; + void *field_1F58; + void *field_1F5C; + void *field_1F60; + void *field_1F64; + void *field_1F68; + void *field_1F6C; + void *field_1F70; + void *field_1F74; + void *field_1F78; + void *field_1F7C; + void *field_1F80; + void *field_1F84; + void *field_1F88; + void *field_1F8C; + void *field_1F90; + void *field_1F94; + void *field_1F98; + void *field_1F9C; + void *field_1FA0; + void *field_1FA4; + void *field_1FA8; + void *field_1FAC; + void *field_1FB0; + void *field_1FB4; + void *field_1FB8; + void *field_1FBC; + void *field_1FC0; + void *field_1FC4; + void *field_1FC8; + void *field_1FCC; + void *field_1FD0; + void *field_1FD4; + void *field_1FD8; + void *field_1FDC; + void *field_1FE0; + void *field_1FE4; + void *field_1FE8; + void *field_1FEC; + void *field_1FF0; + void *field_1FF4; + void *field_1FF8; + void *field_1FFC; + void *field_2000; + void *field_2004; + void *field_2008; + void *field_200C; + void *field_2010; + void *field_2014; + void *field_2018; + void *field_201C; + void *field_2020; + void *field_2024; + void *field_2028; + void *field_202C; + void *field_2030; + void *field_2034; + void *field_2038; + void *field_203C; + void *field_2040; + void *field_2044; + void *field_2048; + void *field_204C; + void *field_2050; + void *field_2054; + void *field_2058; + void *field_205C; + void *field_2060; + void *field_2064; + void *field_2068; + void *field_206C; + void *field_2070; + void *field_2074; + void *field_2078; + void *field_207C; + void *field_2080; + void *field_2084; + void *field_2088; + void *field_208C; + void *field_2090; + void *field_2094; + void *field_2098; + void *field_209C; + void *field_20A0; + void *field_20A4; + void *field_20A8; + void *field_20AC; + void *field_20B0; + void *field_20B4; + void *field_20B8; + void *field_20BC; + void *field_20C0; + void *field_20C4; + void *field_20C8; + void *field_20CC; + void *field_20D0; + void *field_20D4; + void *field_20D8; + void *field_20DC; + void *field_20E0; + void *field_20E4; + void *field_20E8; + void *field_20EC; + void *field_20F0; + void *field_20F4; + void *field_20F8; + void *field_20FC; + void *field_2100; + void *field_2104; + void *field_2108; + void *field_210C; + void *field_2110; + void *field_2114; + void *field_2118; + void *field_211C; + void *field_2120; + void *field_2124; + void *field_2128; + void *field_212C; + void *field_2130; + void *field_2134; + void *field_2138; + void *field_213C; + void *field_2140; + void *field_2144; + void *field_2148; + void *field_214C; + void *field_2150; + void *field_2154; + void *field_2158; + void *field_215C; + void *field_2160; + void *field_2164; + void *field_2168; + void *field_216C; + void *field_2170; + void *field_2174; + void *field_2178; + void *field_217C; + void *field_2180; + void *field_2184; + void *field_2188; + void *field_218C; + void *field_2190; + void *field_2194; + void *field_2198; + void *field_219C; + void *field_21A0; + void *field_21A4; + void *field_21A8; + void *field_21AC; + void *field_21B0; + void *field_21B4; + void *field_21B8; + void *field_21BC; + void *field_21C0; + void *field_21C4; + void *field_21C8; + void *field_21CC; + void *field_21D0; + void *field_21D4; + void *field_21D8; + void *field_21DC; + void *field_21E0; + void *field_21E4; + void *field_21E8; + void *field_21EC; + void *field_21F0; + void *field_21F4; + void *field_21F8; + void *field_21FC; + void *field_2200; + void *field_2204; + void *field_2208; + void *field_220C; + void *field_2210; + void *field_2214; + void *field_2218; + void *field_221C; + void *field_2220; + void *field_2224; + void *field_2228; + void *field_222C; + void *field_2230; + void *field_2234; + void *field_2238; + void *field_223C; + void *field_2240; + void *field_2244; + void *field_2248; + void *field_224C; + void *field_2250; + void *field_2254; + void *field_2258; + void *field_225C; + void *field_2260; + void *field_2264; + void *field_2268; + void *field_226C; + void *field_2270; + void *field_2274; + void *field_2278; + void *field_227C; + void *field_2280; + void *field_2284; + void *field_2288; + void *field_228C; + void *field_2290; + void *field_2294; + void *field_2298; + void *field_229C; + void *field_22A0; + void *field_22A4; + void *field_22A8; + void *field_22AC; + void *field_22B0; + void *field_22B4; + void *field_22B8; + void *field_22BC; + void *field_22C0; + void *field_22C4; + void *field_22C8; + void *field_22CC; + void *field_22D0; + void *field_22D4; + void *field_22D8; + void *field_22DC; + void *field_22E0; + void *field_22E4; + void *field_22E8; + void *field_22EC; + void *field_22F0; + void *field_22F4; + void *field_22F8; + void *field_22FC; + void *field_2300; + void *field_2304; + void *field_2308; + void *field_230C; + void *field_2310; + void *field_2314; + void *field_2318; + void *field_231C; + void *field_2320; + void *field_2324; + void *field_2328; + void *field_232C; + void *field_2330; + void *field_2334; + void *field_2338; + void *field_233C; + void *field_2340; + void *field_2344; + void *field_2348; + void *field_234C; + void *field_2350; + void *field_2354; + void *field_2358; + void *field_235C; + void *field_2360; + void *field_2364; + void *field_2368; + void *field_236C; + void *field_2370; + void *field_2374; + void *field_2378; + void *field_237C; + void *field_2380; + void *field_2384; + void *field_2388; + void *field_238C; + void *field_2390; + void *field_2394; + void *field_2398; + void *field_239C; + void *field_23A0; + void *field_23A4; + void *field_23A8; + void *field_23AC; + void *field_23B0; + void *field_23B4; + void *field_23B8; + void *field_23BC; + void *field_23C0; + void *field_23C4; + void *field_23C8; + void *field_23CC; + void *field_23D0; + void *field_23D4; + void *field_23D8; + void *field_23DC; + void *field_23E0; + void *field_23E4; + void *field_23E8; + void *field_23EC; + void *field_23F0; + void *field_23F4; + void *field_23F8; + void *field_23FC; + void *field_2400; + void *field_2404; + void *field_2408; + void *field_240C; + void *field_2410; + void *field_2414; + void *field_2418; + void *field_241C; + void *field_2420; + void *field_2424; + void *field_2428; + void *field_242C; + void *field_2430; + void *field_2434; + void *field_2438; + void *field_243C; + void *field_2440; + void *field_2444; + void *field_2448; + void *field_244C; + void *field_2450; + void *field_2454; + void *field_2458; + void *field_245C; + void *field_2460; + void *field_2464; + void *field_2468; + void *field_246C; + void *field_2470; + void *field_2474; + void *field_2478; + void *field_247C; + void *field_2480; + void *field_2484; + void *field_2488; + void *field_248C; + void *field_2490; + void *field_2494; + void *field_2498; + void *field_249C; + void *field_24A0; + void *field_24A4; + void *field_24A8; + void *field_24AC; + void *field_24B0; + void *field_24B4; + void *field_24B8; + void *field_24BC; + void *field_24C0; + void *field_24C4; + void *field_24C8; + void *field_24CC; + void *field_24D0; + void *field_24D4; + void *field_24D8; + void *field_24DC; + void *field_24E0; + void *field_24E4; + void *field_24E8; + void *field_24EC; + void *field_24F0; + void *field_24F4; + void *field_24F8; + void *field_24FC; + void *field_2500; + void *field_2504; + void *field_2508; + void *field_250C; + void *field_2510; + void *field_2514; + void *field_2518; + void *field_251C; + void *field_2520; + void *field_2524; + void *field_2528; + void *field_252C; + void *field_2530; + void *field_2534; + void *field_2538; + void *field_253C; + void *field_2540; + void *field_2544; + void *field_2548; + void *field_254C; + void *field_2550; + void *field_2554; + void *field_2558; + void *field_255C; + void *field_2560; + void *field_2564; + void *field_2568; + void *field_256C; + void *field_2570; + void *field_2574; + void *field_2578; + void *field_257C; + void *field_2580; + void *field_2584; + void *field_2588; + void *field_258C; + void *field_2590; + void *field_2594; + void *field_2598; + void *field_259C; + void *field_25A0; + void *field_25A4; + void *field_25A8; + void *field_25AC; + void *field_25B0; + void *field_25B4; + void *field_25B8; + void *field_25BC; + void *field_25C0; + void *field_25C4; + void *field_25C8; + void *field_25CC; + void *field_25D0; + void *field_25D4; + void *field_25D8; + void *field_25DC; + void *field_25E0; + void *field_25E4; + void *field_25E8; + void *field_25EC; + void *field_25F0; + void *field_25F4; + void *field_25F8; + void *field_25FC; + void *field_2600; + void *field_2604; + void *field_2608; + void *field_260C; + void *field_2610; + void *field_2614; + void *field_2618; + void *field_261C; + void *field_2620; + void *field_2624; + void *field_2628; + void *field_262C; + void *field_2630; + void *field_2634; + void *field_2638; + void *field_263C; + void *field_2640; + void *field_2644; + void *field_2648; + void *field_264C; + void *field_2650; + void *field_2654; + void *field_2658; + void *field_265C; + void *field_2660; + void *field_2664; + void *field_2668; + void *field_266C; + void *field_2670; + void *field_2674; + void *field_2678; + void *field_267C; + void *field_2680; + void *field_2684; + void *field_2688; + void *field_268C; + void *field_2690; + void *field_2694; + void *field_2698; + void *field_269C; + void *field_26A0; + void *field_26A4; + void *field_26A8; + void *field_26AC; + void *field_26B0; + void *field_26B4; + void *field_26B8; + void *field_26BC; + void *field_26C0; + void *field_26C4; + void *field_26C8; + void *field_26CC; + void *field_26D0; + void *field_26D4; + void *field_26D8; + void *field_26DC; + void *field_26E0; + void *field_26E4; + void *field_26E8; + void *field_26EC; + void *field_26F0; + void *field_26F4; + void *field_26F8; + void *field_26FC; + void *field_2700; + void *field_2704; + void *field_2708; + void *field_270C; + void *field_2710; + void *field_2714; + void *field_2718; + void *field_271C; + void *field_2720; + void *field_2724; + void *field_2728; + void *field_272C; + void *field_2730; + void *field_2734; + void *field_2738; + void *field_273C; + void *field_2740; + void *field_2744; + void *field_2748; + void *field_274C; + void *field_2750; + void *field_2754; + void *field_2758; + void *field_275C; + void *field_2760; + void *field_2764; + void *field_2768; + void *field_276C; + void *field_2770; + void *field_2774; + void *field_2778; + void *field_277C; + void *field_2780; + void *field_2784; + void *field_2788; + void *field_278C; + void *field_2790; + void *field_2794; + void *field_2798; + void *field_279C; + void *field_27A0; + void *field_27A4; + void *field_27A8; + void *field_27AC; + void *field_27B0; + void *field_27B4; + void *field_27B8; + void *field_27BC; + void *field_27C0; + void *field_27C4; + void *field_27C8; + void *field_27CC; + void *field_27D0; + void *field_27D4; + void *field_27D8; + void *field_27DC; + void *field_27E0; + void *field_27E4; + void *field_27E8; + void *field_27EC; + void *field_27F0; + void *field_27F4; + void *field_27F8; + void *field_27FC; + void *field_2800; + void *field_2804; + void *field_2808; + void *field_280C; + void *field_2810; + void *field_2814; + void *field_2818; + void *field_281C; + void *field_2820; + void *field_2824; + void *field_2828; + void *field_282C; + void *field_2830; + void *field_2834; + void *field_2838; + void *field_283C; + void *field_2840; + void *field_2844; + void *field_2848; + void *field_284C; + void *field_2850; + void *field_2854; + void *field_2858; + void *field_285C; + void *field_2860; + void *field_2864; + void *field_2868; + void *field_286C; + void *field_2870; + void *field_2874; + void *field_2878; + void *field_287C; + void *field_2880; + void *field_2884; + void *field_2888; + void *field_288C; + void *field_2890; + void *field_2894; + void *field_2898; + void *field_289C; + void *field_28A0; + void *field_28A4; + void *field_28A8; + void *field_28AC; + void *field_28B0; + void *field_28B4; + void *field_28B8; + void *field_28BC; + void *field_28C0; + void *field_28C4; + void *field_28C8; + void *field_28CC; + void *field_28D0; + void *field_28D4; + void *field_28D8; + void *field_28DC; + void *field_28E0; + void *field_28E4; + void *field_28E8; + void *field_28EC; + void *field_28F0; + void *field_28F4; + void *field_28F8; + void *field_28FC; + void *field_2900; + void *field_2904; + void *field_2908; + void *field_290C; + void *field_2910; + void *field_2914; + void *field_2918; + void *field_291C; + void *field_2920; + void *field_2924; + void *field_2928; + void *field_292C; + void *field_2930; + void *field_2934; + void *field_2938; + void *field_293C; + void *field_2940; + void *field_2944; + void *field_2948; + void *field_294C; + void *field_2950; + void *field_2954; + void *field_2958; + void *field_295C; + void *field_2960; + void *field_2964; + void *field_2968; + void *field_296C; + void *field_2970; + void *field_2974; + void *field_2978; + void *field_297C; + void *field_2980; + void *field_2984; + void *field_2988; + void *field_298C; + void *field_2990; + void *field_2994; + void *field_2998; + void *field_299C; + void *field_29A0; + void *field_29A4; + void *field_29A8; + void *field_29AC; + void *field_29B0; + void *field_29B4; + void *field_29B8; + void *field_29BC; + void *field_29C0; + void *field_29C4; + void *field_29C8; + void *field_29CC; + void *field_29D0; + void *field_29D4; + void *field_29D8; + void *field_29DC; + void *field_29E0; + void *field_29E4; + void *field_29E8; + void *field_29EC; + void *field_29F0; + void *field_29F4; + void *field_29F8; + void *field_29FC; + void *field_2A00; + void *field_2A04; + void *field_2A08; + void *field_2A0C; + void *field_2A10; + void *field_2A14; + void *field_2A18; + void *field_2A1C; + void *field_2A20; + void *field_2A24; + void *field_2A28; + void *field_2A2C; + void *field_2A30; + void *field_2A34; + void *field_2A38; + void *field_2A3C; + void *field_2A40; + void *field_2A44; + void *field_2A48; + void *field_2A4C; + void *field_2A50; + void *field_2A54; + void *field_2A58; + void *field_2A5C; + void *field_2A60; + void *field_2A64; + void *field_2A68; + void *field_2A6C; + void *field_2A70; + void *field_2A74; + void *field_2A78; + void *field_2A7C; + void *field_2A80; + void *field_2A84; + void *field_2A88; + void *field_2A8C; + void *field_2A90; + void *field_2A94; + void *field_2A98; + void *field_2A9C; + void *field_2AA0; + void *field_2AA4; + void *field_2AA8; + void *field_2AAC; + void *field_2AB0; + void *field_2AB4; + void *field_2AB8; + void *field_2ABC; + void *field_2AC0; + void *field_2AC4; + void *field_2AC8; + void *field_2ACC; + void *field_2AD0; + void *field_2AD4; + void *field_2AD8; + void *field_2ADC; + void *field_2AE0; + void *field_2AE4; + void *field_2AE8; + void *field_2AEC; + void *field_2AF0; + void *field_2AF4; + void *field_2AF8; + void *field_2AFC; + void *field_2B00; + void *field_2B04; + void *field_2B08; + void *field_2B0C; + void *field_2B10; + void *field_2B14; + void *field_2B18; + void *field_2B1C; + void *field_2B20; + void *field_2B24; + void *field_2B28; + void *field_2B2C; + void *field_2B30; + void *field_2B34; + void *field_2B38; + void *field_2B3C; + void *field_2B40; + void *field_2B44; + void *field_2B48; + void *field_2B4C; + void *field_2B50; + void *field_2B54; + void *field_2B58; + void *field_2B5C; + void *field_2B60; + void *field_2B64; + void *field_2B68; + void *field_2B6C; + void *field_2B70; + void *field_2B74; + void *field_2B78; + void *field_2B7C; + void *field_2B80; + void *field_2B84; + void *field_2B88; + void *field_2B8C; + void *field_2B90; + void *field_2B94; + void *field_2B98; + void *field_2B9C; + void *field_2BA0; + void *field_2BA4; + void *field_2BA8; + void *field_2BAC; + void *field_2BB0; + void *field_2BB4; + void *field_2BB8; + void *field_2BBC; + void *field_2BC0; + void *field_2BC4; + void *field_2BC8; + void *field_2BCC; + void *field_2BD0; + void *field_2BD4; + void *field_2BD8; + void *field_2BDC; + void *field_2BE0; + void *field_2BE4; + void *field_2BE8; + void *field_2BEC; + void *field_2BF0; + void *field_2BF4; + void *field_2BF8; + void *field_2BFC; + void *field_2C00; + void *field_2C04; + void *field_2C08; + void *field_2C0C; + void *field_2C10; + void *field_2C14; + void *field_2C18; + void *field_2C1C; + void *field_2C20; + void *field_2C24; + void *field_2C28; + void *field_2C2C; + void *field_2C30; + void *field_2C34; + void *field_2C38; + void *field_2C3C; + void *field_2C40; + void *field_2C44; + void *field_2C48; + void *field_2C4C; + void *field_2C50; + void *field_2C54; + void *field_2C58; + void *field_2C5C; + void *field_2C60; + void *field_2C64; + void *field_2C68; + void *field_2C6C; + void *field_2C70; + void *field_2C74; + void *field_2C78; + void *field_2C7C; + void *field_2C80; + void *field_2C84; + void *field_2C88; + void *field_2C8C; + void *field_2C90; + void *field_2C94; + void *field_2C98; + void *field_2C9C; + void *field_2CA0; + void *field_2CA4; + void *field_2CA8; + void *field_2CAC; + void *field_2CB0; + void *field_2CB4; + void *field_2CB8; + void *field_2CBC; + void *field_2CC0; + void *field_2CC4; + void *field_2CC8; + void *field_2CCC; + void *field_2CD0; + void *field_2CD4; + void *field_2CD8; + void *field_2CDC; + void *field_2CE0; + void *field_2CE4; + void *field_2CE8; + void *field_2CEC; + void *field_2CF0; + void *field_2CF4; + void *field_2CF8; + void *field_2CFC; + void *field_2D00; + void *field_2D04; + void *field_2D08; + void *field_2D0C; + void *field_2D10; + void *field_2D14; + void *field_2D18; + void *field_2D1C; + void *field_2D20; + void *field_2D24; + void *field_2D28; + void *field_2D2C; + void *field_2D30; + void *field_2D34; + void *field_2D38; + void *field_2D3C; + void *field_2D40; + void *field_2D44; + void *field_2D48; + void *field_2D4C; + void *field_2D50; + void *field_2D54; + void *field_2D58; + void *field_2D5C; + void *field_2D60; + void *field_2D64; + void *field_2D68; + void *field_2D6C; + void *field_2D70; + void *field_2D74; + void *field_2D78; + void *field_2D7C; + void *field_2D80; + void *field_2D84; + void *field_2D88; + void *field_2D8C; + void *field_2D90; + void *field_2D94; + void *field_2D98; + void *field_2D9C; + void *field_2DA0; + void *field_2DA4; + void *field_2DA8; + void *field_2DAC; + void *field_2DB0; + void *field_2DB4; + void *field_2DB8; + void *field_2DBC; + void *field_2DC0; + void *field_2DC4; + void *field_2DC8; + void *field_2DCC; + void *field_2DD0; + void *field_2DD4; + void *field_2DD8; + void *field_2DDC; + void *field_2DE0; + void *field_2DE4; + void *field_2DE8; + void *field_2DEC; + void *field_2DF0; + void *field_2DF4; + void *field_2DF8; + void *field_2DFC; + void *field_2E00; + void *field_2E04; + void *field_2E08; + void *field_2E0C; + void *field_2E10; + void *field_2E14; + void *field_2E18; + void *field_2E1C; + void *field_2E20; + void *field_2E24; + void *field_2E28; + void *field_2E2C; + void *field_2E30; + void *field_2E34; + void *field_2E38; + void *field_2E3C; + void *field_2E40; + void *field_2E44; + void *field_2E48; + void *field_2E4C; + void *field_2E50; + void *field_2E54; + void *field_2E58; + void *field_2E5C; + void *field_2E60; + void *field_2E64; + void *field_2E68; + void *field_2E6C; + void *field_2E70; + void *field_2E74; + void *field_2E78; + void *field_2E7C; + void *field_2E80; + void *field_2E84; + void *field_2E88; + void *field_2E8C; + void *field_2E90; + void *field_2E94; + void *field_2E98; + void *field_2E9C; + void *field_2EA0; + void *field_2EA4; + void *field_2EA8; + void *field_2EAC; + void *field_2EB0; + void *field_2EB4; + void *field_2EB8; + void *field_2EBC; + void *field_2EC0; + void *field_2EC4; + void *field_2EC8; + void *field_2ECC; + void *field_2ED0; + void *field_2ED4; + void *field_2ED8; + void *field_2EDC; + void *field_2EE0; + void *field_2EE4; + void *field_2EE8; + void *field_2EEC; + void *field_2EF0; + void *field_2EF4; + void *field_2EF8; + void *field_2EFC; + void *field_2F00; + void *field_2F04; + void *field_2F08; + void *field_2F0C; + void *field_2F10; + void *field_2F14; + void *field_2F18; + void *field_2F1C; + void *field_2F20; + void *field_2F24; + void *field_2F28; + void *field_2F2C; + void *field_2F30; + void *field_2F34; + void *field_2F38; + void *field_2F3C; + void *field_2F40; + void *field_2F44; + void *field_2F48; + void *field_2F4C; + void *field_2F50; + void *field_2F54; + void *field_2F58; + void *field_2F5C; + void *field_2F60; + void *field_2F64; + void *field_2F68; + void *field_2F6C; + void *field_2F70; + void *field_2F74; + void *field_2F78; + void *field_2F7C; + void *field_2F80; + void *field_2F84; + void *field_2F88; + void *field_2F8C; + void *field_2F90; + void *field_2F94; + void *field_2F98; + void *field_2F9C; + void *field_2FA0; + void *field_2FA4; + void *field_2FA8; + void *field_2FAC; + void *field_2FB0; + void *field_2FB4; + void *field_2FB8; + void *field_2FBC; + void *field_2FC0; + void *field_2FC4; + void *field_2FC8; + void *field_2FCC; + void *field_2FD0; + void *field_2FD4; + void *field_2FD8; + void *field_2FDC; + void *field_2FE0; + void *field_2FE4; + void *field_2FE8; + void *field_2FEC; + void *field_2FF0; + void *field_2FF4; + void *field_2FF8; + void *field_2FFC; + void *field_3000; + void *field_3004; + void *field_3008; + void *field_300C; + void *field_3010; + void *field_3014; + void *field_3018; + void *field_301C; + void *field_3020; + void *field_3024; + void *field_3028; + void *field_302C; + void *field_3030; + void *field_3034; + void *field_3038; + void *field_303C; + void *field_3040; + void *field_3044; + void *field_3048; + void *field_304C; + void *field_3050; + void *field_3054; + void *field_3058; + void *field_305C; + void *field_3060; + void *field_3064; + void *field_3068; + void *field_306C; + void *field_3070; + void *field_3074; + void *field_3078; + void *field_307C; + void *field_3080; + void *field_3084; + void *field_3088; + void *field_308C; + void *field_3090; + void *field_3094; + void *field_3098; + void *field_309C; + void *field_30A0; + void *field_30A4; + void *field_30A8; + void *field_30AC; + void *field_30B0; + void *field_30B4; + void *field_30B8; + void *field_30BC; + void *field_30C0; + void *field_30C4; + void *field_30C8; + void *field_30CC; + void *field_30D0; + void *field_30D4; + void *field_30D8; + void *field_30DC; + void *field_30E0; + void *field_30E4; + void *field_30E8; + void *field_30EC; + void *field_30F0; + void *field_30F4; + void *field_30F8; + void *field_30FC; + void *field_3100; + void *field_3104; + void *field_3108; + void *field_310C; + void *field_3110; + void *field_3114; + void *field_3118; + void *field_311C; + void *field_3120; + void *field_3124; + void *field_3128; + void *field_312C; + void *field_3130; + void *field_3134; + void *field_3138; + void *field_313C; + void *field_3140; + void *field_3144; + void *field_3148; + void *field_314C; + void *field_3150; + void *field_3154; + void *field_3158; + void *field_315C; + void *field_3160; + void *field_3164; + void *field_3168; + void *field_316C; + void *field_3170; + void *field_3174; + void *field_3178; + void *field_317C; + void *field_3180; + void *field_3184; + void *field_3188; + void *field_318C; + void *field_3190; + void *field_3194; + void *field_3198; + void *field_319C; + void *field_31A0; + void *field_31A4; + void *field_31A8; + void *field_31AC; + void *field_31B0; + void *field_31B4; + void *field_31B8; + void *field_31BC; + void *field_31C0; + void *field_31C4; + void *field_31C8; + void *field_31CC; + void *field_31D0; + void *field_31D4; + void *field_31D8; + void *field_31DC; + void *field_31E0; + void *field_31E4; + void *field_31E8; + void *field_31EC; + void *field_31F0; + void *field_31F4; + void *field_31F8; + void *field_31FC; + void *field_3200; + void *field_3204; + void *field_3208; + void *field_320C; + void *field_3210; + void *field_3214; + void *field_3218; + void *field_321C; + void *field_3220; + void *field_3224; + void *field_3228; + void *field_322C; + void *field_3230; + void *field_3234; + void *field_3238; + void *field_323C; + void *field_3240; + void *field_3244; + void *field_3248; + void *field_324C; + void *field_3250; + void *field_3254; + void *field_3258; + void *field_325C; + void *field_3260; + void *field_3264; + void *field_3268; + void *field_326C; + void *field_3270; + void *field_3274; + void *field_3278; + void *field_327C; + void *field_3280; + void *field_3284; + void *field_3288; + void *field_328C; + void *field_3290; + void *field_3294; + void *field_3298; + void *field_329C; + void *field_32A0; + void *field_32A4; + void *field_32A8; + void *field_32AC; + void *field_32B0; + void *field_32B4; + void *field_32B8; + void *field_32BC; + void *field_32C0; + void *field_32C4; + void *field_32C8; + void *field_32CC; + void *field_32D0; + void *field_32D4; + void *field_32D8; + void *field_32DC; + void *field_32E0; + void *field_32E4; + void *field_32E8; + void *field_32EC; + void *field_32F0; + void *field_32F4; + void *field_32F8; + void *field_32FC; + void *field_3300; + void *field_3304; + void *field_3308; + void *field_330C; + void *field_3310; + void *field_3314; + void *field_3318; + void *field_331C; + void *field_3320; + void *field_3324; + void *field_3328; + void *field_332C; + void *field_3330; + void *field_3334; + void *field_3338; + void *field_333C; + void *field_3340; + void *field_3344; + void *field_3348; + void *field_334C; + void *field_3350; + void *field_3354; + void *field_3358; + void *field_335C; + void *field_3360; + void *field_3364; + void *field_3368; + void *field_336C; + void *field_3370; + void *field_3374; + void *field_3378; + void *field_337C; + void *field_3380; + void *field_3384; + void *field_3388; + void *field_338C; + void *field_3390; + void *field_3394; + void *field_3398; + void *field_339C; + void *field_33A0; + void *field_33A4; + void *field_33A8; + void *field_33AC; + void *field_33B0; + void *field_33B4; + void *field_33B8; + void *field_33BC; + void *field_33C0; + void *field_33C4; + void *field_33C8; + void *field_33CC; + void *field_33D0; + void *field_33D4; + void *field_33D8; + void *field_33DC; + void *field_33E0; + void *field_33E4; + void *field_33E8; + void *field_33EC; + void *field_33F0; + void *field_33F4; + void *field_33F8; + void *field_33FC; + void *field_3400; + void *field_3404; + void *field_3408; + void *field_340C; + void *field_3410; + void *field_3414; + void *field_3418; + void *field_341C; + void *field_3420; + void *field_3424; + void *field_3428; + void *field_342C; + void *field_3430; + void *field_3434; + void *field_3438; + void *field_343C; + void *field_3440; + void *field_3444; + void *field_3448; + void *field_344C; + void *field_3450; + void *field_3454; + void *field_3458; + void *field_345C; + void *field_3460; + void *field_3464; + void *field_3468; + void *field_346C; + void *field_3470; + void *field_3474; + void *field_3478; + void *field_347C; + void *field_3480; + void *field_3484; + void *field_3488; + void *field_348C; + void *field_3490; + void *field_3494; + void *field_3498; + void *field_349C; + void *field_34A0; + void *field_34A4; + void *field_34A8; + void *field_34AC; + void *field_34B0; + void *field_34B4; + void *field_34B8; + void *field_34BC; + void *field_34C0; + void *field_34C4; + void *field_34C8; + void *field_34CC; + void *field_34D0; + void *field_34D4; + void *field_34D8; + void *field_34DC; + void *field_34E0; + void *field_34E4; + void *field_34E8; + void *field_34EC; + void *field_34F0; + void *field_34F4; + void *field_34F8; + void *field_34FC; + void *field_3500; + void *field_3504; + void *field_3508; + void *field_350C; + void *field_3510; + void *field_3514; + void *field_3518; + void *field_351C; + void *field_3520; + void *field_3524; + void *field_3528; + void *field_352C; + void *field_3530; + void *field_3534; + void *field_3538; + void *field_353C; + void *field_3540; + void *field_3544; + void *field_3548; + void *field_354C; + void *field_3550; + void *field_3554; + void *field_3558; + void *field_355C; + void *field_3560; + void *field_3564; + void *field_3568; + void *field_356C; + void *field_3570; + void *field_3574; + void *field_3578; + void *field_357C; + void *field_3580; + void *field_3584; + void *field_3588; + void *field_358C; + void *field_3590; + void *field_3594; + void *field_3598; + void *field_359C; + void *field_35A0; + void *field_35A4; + void *field_35A8; + void *field_35AC; + void *field_35B0; + void *field_35B4; + void *field_35B8; + void *field_35BC; + void *field_35C0; + void *field_35C4; + void *field_35C8; + void *field_35CC; + void *field_35D0; + void *field_35D4; + void *field_35D8; + void *field_35DC; + void *field_35E0; + void *field_35E4; + void *field_35E8; + void *field_35EC; + void *field_35F0; + void *field_35F4; + void *field_35F8; + void *field_35FC; + void *field_3600; + void *field_3604; + void *field_3608; + void *field_360C; + void *field_3610; + void *field_3614; + void *field_3618; + void *field_361C; + void *field_3620; + void *field_3624; + void *field_3628; + void *field_362C; + void *field_3630; + void *field_3634; + void *field_3638; + void *field_363C; + void *field_3640; + void *field_3644; + void *field_3648; + void *field_364C; + void *field_3650; + void *field_3654; + void *field_3658; + void *field_365C; + void *field_3660; + void *field_3664; + void *field_3668; + void *field_366C; + void *field_3670; + void *field_3674; + void *field_3678; + void *field_367C; + void *field_3680; + void *field_3684; + void *field_3688; + void *field_368C; + void *field_3690; + void *field_3694; + void *field_3698; + void *field_369C; + void *field_36A0; + void *field_36A4; + void *field_36A8; + void *field_36AC; + void *field_36B0; + void *field_36B4; + void *field_36B8; + void *field_36BC; + void *field_36C0; + void *field_36C4; + void *field_36C8; + void *field_36CC; + void *field_36D0; + void *field_36D4; + void *field_36D8; + void *field_36DC; + void *field_36E0; + void *field_36E4; + void *field_36E8; + void *field_36EC; + void *field_36F0; + void *field_36F4; + void *field_36F8; + void *field_36FC; + void *field_3700; + void *field_3704; + void *field_3708; + void *field_370C; + void *field_3710; + void *field_3714; + void *field_3718; + void *field_371C; + void *field_3720; + void *field_3724; + void *field_3728; + void *field_372C; + void *field_3730; + void *field_3734; + void *field_3738; + void *field_373C; + void *field_3740; + void *field_3744; + void *field_3748; + void *field_374C; + void *field_3750; + void *field_3754; + void *field_3758; + void *field_375C; + void *field_3760; + void *field_3764; + void *field_3768; + void *field_376C; + void *field_3770; + void *field_3774; + void *field_3778; + void *field_377C; + void *field_3780; + void *field_3784; + void *field_3788; + void *field_378C; + void *field_3790; + void *field_3794; + void *field_3798; + void *field_379C; + void *field_37A0; + void *field_37A4; + void *field_37A8; + void *field_37AC; + void *field_37B0; + void *field_37B4; + void *field_37B8; + void *field_37BC; + void *field_37C0; + void *field_37C4; + void *field_37C8; + void *field_37CC; + void *field_37D0; + void *field_37D4; + void *field_37D8; + void *field_37DC; + void *field_37E0; + void *field_37E4; + void *field_37E8; + void *field_37EC; + void *field_37F0; + void *field_37F4; + void *field_37F8; + void *field_37FC; + void *field_3800; + void *field_3804; + void *field_3808; + void *field_380C; + void *field_3810; + void *field_3814; + void *field_3818; + void *field_381C; + void *field_3820; + void *field_3824; + void *field_3828; + void *field_382C; + void *field_3830; + void *field_3834; + void *field_3838; + void *field_383C; + void *field_3840; + void *field_3844; + void *field_3848; + void *field_384C; + void *field_3850; + void *field_3854; + void *field_3858; + void *field_385C; + void *field_3860; + void *field_3864; + void *field_3868; + void *field_386C; + void *field_3870; + void *field_3874; + void *field_3878; + void *field_387C; + void *field_3880; + void *field_3884; + void *field_3888; + void *field_388C; + void *field_3890; + void *field_3894; + void *field_3898; + void *field_389C; + void *field_38A0; + void *field_38A4; + void *field_38A8; + void *field_38AC; + void *field_38B0; + void *field_38B4; + void *field_38B8; + void *field_38BC; + void *field_38C0; + void *field_38C4; + void *field_38C8; + void *field_38CC; + void *field_38D0; + void *field_38D4; + void *field_38D8; + void *field_38DC; + void *field_38E0; + void *field_38E4; + void *field_38E8; + void *field_38EC; + void *field_38F0; + void *field_38F4; + void *field_38F8; + void *field_38FC; + void *field_3900; + void *field_3904; + void *field_3908; + void *field_390C; + void *field_3910; + void *field_3914; + void *field_3918; + void *field_391C; + void *field_3920; + void *field_3924; + void *field_3928; + void *field_392C; + void *field_3930; + void *field_3934; + void *field_3938; + void *field_393C; + void *field_3940; + void *field_3944; + void *field_3948; + void *field_394C; + void *field_3950; + void *field_3954; + void *field_3958; + void *field_395C; + void *field_3960; + void *field_3964; + void *field_3968; + void *field_396C; + void *field_3970; + void *field_3974; + void *field_3978; + void *field_397C; + void *field_3980; + void *field_3984; + void *field_3988; + void *field_398C; + void *field_3990; + void *field_3994; + void *field_3998; + void *field_399C; + void *field_39A0; + void *field_39A4; + void *field_39A8; + void *field_39AC; + void *field_39B0; + void *field_39B4; + void *field_39B8; + void *field_39BC; + void *field_39C0; + void *field_39C4; + void *field_39C8; + void *field_39CC; + void *field_39D0; + void *field_39D4; + void *field_39D8; + void *field_39DC; + void *field_39E0; + void *field_39E4; + void *field_39E8; + void *field_39EC; + void *field_39F0; + void *field_39F4; + void *field_39F8; + void *field_39FC; + void *field_3A00; + void *field_3A04; + void *field_3A08; + void *field_3A0C; + void *field_3A10; + void *field_3A14; + void *field_3A18; + void *field_3A1C; + void *field_3A20; + void *field_3A24; + void *field_3A28; + void *field_3A2C; + void *field_3A30; + void *field_3A34; + void *field_3A38; + void *field_3A3C; + void *field_3A40; + void *field_3A44; + void *field_3A48; + void *field_3A4C; + void *field_3A50; + void *field_3A54; + void *field_3A58; + void *field_3A5C; + void *field_3A60; + void *field_3A64; + void *field_3A68; + void *field_3A6C; + void *field_3A70; + void *field_3A74; + void *field_3A78; + void *field_3A7C; + void *field_3A80; + void *field_3A84; + void *field_3A88; + void *field_3A8C; + void *field_3A90; + void *field_3A94; + void *field_3A98; + void *field_3A9C; + void *field_3AA0; + void *field_3AA4; + void *field_3AA8; + void *field_3AAC; + void *field_3AB0; + void *field_3AB4; + void *field_3AB8; + void *field_3ABC; + void *field_3AC0; + void *field_3AC4; + void *field_3AC8; + void *field_3ACC; + void *field_3AD0; + void *field_3AD4; + void *field_3AD8; + void *field_3ADC; + void *field_3AE0; + void *field_3AE4; + void *field_3AE8; + void *field_3AEC; + void *field_3AF0; + void *field_3AF4; + void *field_3AF8; + void *field_3AFC; + void *field_3B00; + void *field_3B04; + void *field_3B08; + void *field_3B0C; + void *field_3B10; + void *field_3B14; + void *field_3B18; + void *field_3B1C; + void *field_3B20; + void *field_3B24; + void *field_3B28; + void *field_3B2C; + void *field_3B30; + void *field_3B34; + void *field_3B38; + void *field_3B3C; + void *field_3B40; + void *field_3B44; + void *field_3B48; + void *field_3B4C; + void *field_3B50; + void *field_3B54; + void *field_3B58; + void *field_3B5C; + void *field_3B60; + void *field_3B64; + void *field_3B68; + void *field_3B6C; + void *field_3B70; + void *field_3B74; + void *field_3B78; + void *field_3B7C; + void *field_3B80; + void *field_3B84; + void *field_3B88; + void *field_3B8C; + void *field_3B90; + void *field_3B94; + void *field_3B98; + void *field_3B9C; + void *field_3BA0; + void *field_3BA4; + void *field_3BA8; + void *field_3BAC; + void *field_3BB0; + void *field_3BB4; + void *field_3BB8; + void *field_3BBC; + void *field_3BC0; + void *field_3BC4; + void *field_3BC8; + void *field_3BCC; + void *field_3BD0; + void *field_3BD4; + void *field_3BD8; + void *field_3BDC; + void *field_3BE0; + void *field_3BE4; + void *field_3BE8; + void *field_3BEC; + void *field_3BF0; + void *field_3BF4; + void *field_3BF8; + void *field_3BFC; + void *field_3C00; + void *field_3C04; + void *field_3C08; + void *field_3C0C; + void *field_3C10; + void *field_3C14; + void *field_3C18; + void *field_3C1C; + void *field_3C20; + void *field_3C24; + void *field_3C28; + void *field_3C2C; + void *field_3C30; + void *field_3C34; + void *field_3C38; + void *field_3C3C; + void *field_3C40; + void *field_3C44; + void *field_3C48; + void *field_3C4C; + void *field_3C50; + void *field_3C54; + void *field_3C58; + void *field_3C5C; + void *field_3C60; + void *field_3C64; + void *field_3C68; + void *field_3C6C; + void *field_3C70; + void *field_3C74; + void *field_3C78; + void *field_3C7C; + void *field_3C80; + void *field_3C84; + void *field_3C88; + void *field_3C8C; + void *field_3C90; + void *field_3C94; + void *field_3C98; + void *field_3C9C; + void *field_3CA0; + void *field_3CA4; + void *field_3CA8; + void *field_3CAC; + void *field_3CB0; + void *field_3CB4; + void *field_3CB8; + void *field_3CBC; + void *field_3CC0; + void *field_3CC4; + void *field_3CC8; + void *field_3CCC; + void *field_3CD0; + void *field_3CD4; + void *field_3CD8; + void *field_3CDC; + void *field_3CE0; + void *field_3CE4; + void *field_3CE8; + void *field_3CEC; + void *field_3CF0; + void *field_3CF4; + void *field_3CF8; + void *field_3CFC; + void *field_3D00; + void *field_3D04; + void *field_3D08; + void *field_3D0C; + void *field_3D10; + void *field_3D14; + void *field_3D18; + void *field_3D1C; + void *field_3D20; + void *field_3D24; + void *field_3D28; + void *field_3D2C; + void *field_3D30; + void *field_3D34; + void *field_3D38; + void *field_3D3C; + void *field_3D40; + void *field_3D44; + void *field_3D48; + void *field_3D4C; + void *field_3D50; + void *field_3D54; + void *field_3D58; + void *field_3D5C; + void *field_3D60; + void *field_3D64; + void *field_3D68; + void *field_3D6C; + void *field_3D70; + void *field_3D74; + void *field_3D78; + void *field_3D7C; + void *field_3D80; + void *field_3D84; + void *field_3D88; + void *field_3D8C; + void *field_3D90; + void *field_3D94; + void *field_3D98; + void *field_3D9C; + void *field_3DA0; + void *field_3DA4; + void *field_3DA8; + void *field_3DAC; + void *field_3DB0; + void *field_3DB4; + void *field_3DB8; + void *field_3DBC; + void *field_3DC0; + void *field_3DC4; + void *field_3DC8; + void *field_3DCC; + void *field_3DD0; + void *field_3DD4; + void *field_3DD8; + void *field_3DDC; + void *field_3DE0; + void *field_3DE4; + void *field_3DE8; + void *field_3DEC; + void *field_3DF0; + void *field_3DF4; + void *field_3DF8; + void *field_3DFC; + void *field_3E00; + void *field_3E04; + void *field_3E08; + void *field_3E0C; + void *field_3E10; + void *field_3E14; + void *field_3E18; + void *field_3E1C; + void *field_3E20; + void *field_3E24; + void *field_3E28; + void *field_3E2C; + void *field_3E30; + void *field_3E34; + void *field_3E38; + void *field_3E3C; + void *field_3E40; + void *field_3E44; + void *field_3E48; + void *field_3E4C; + void *field_3E50; + void *field_3E54; + void *field_3E58; + void *field_3E5C; + void *field_3E60; + void *field_3E64; + void *field_3E68; + void *field_3E6C; + void *field_3E70; + void *field_3E74; + void *field_3E78; + void *field_3E7C; + void *field_3E80; + void *field_3E84; + void *field_3E88; + void *field_3E8C; + void *field_3E90; + void *field_3E94; + void *field_3E98; + void *field_3E9C; + void *field_3EA0; + void *field_3EA4; + void *field_3EA8; + void *field_3EAC; + void *field_3EB0; + void *field_3EB4; + void *field_3EB8; + void *field_3EBC; + void *field_3EC0; + void *field_3EC4; + void *field_3EC8; + void *field_3ECC; + void *field_3ED0; + void *field_3ED4; + void *field_3ED8; + void *field_3EDC; + void *field_3EE0; + void *field_3EE4; + void *field_3EE8; + void *field_3EEC; + void *field_3EF0; + void *field_3EF4; + void *field_3EF8; + void *field_3EFC; + void *field_3F00; + void *field_3F04; + void *field_3F08; + void *field_3F0C; + void *field_3F10; + void *field_3F14; + void *field_3F18; + void *field_3F1C; + void *field_3F20; + void *field_3F24; + void *field_3F28; + void *field_3F2C; + void *field_3F30; + void *field_3F34; + void *field_3F38; + void *field_3F3C; + void *field_3F40; + void *field_3F44; + void *field_3F48; + void *field_3F4C; + void *field_3F50; + void *field_3F54; + void *field_3F58; + void *field_3F5C; + void *field_3F60; + void *field_3F64; + void *field_3F68; + void *field_3F6C; + void *field_3F70; + void *field_3F74; + void *field_3F78; + void *field_3F7C; + void *field_3F80; + void *field_3F84; + void *field_3F88; + void *field_3F8C; + void *field_3F90; + void *field_3F94; + void *field_3F98; + void *field_3F9C; + void *field_3FA0; + void *field_3FA4; + void *field_3FA8; + void *field_3FAC; + void *field_3FB0; + void *field_3FB4; + void *field_3FB8; + void *field_3FBC; + void *field_3FC0; + void *field_3FC4; + void *field_3FC8; + void *field_3FCC; + void *field_3FD0; + void *field_3FD4; + void *field_3FD8; + void *field_3FDC; + void *field_3FE0; + void *field_3FE4; + void *field_3FE8; + void *field_3FEC; + void *field_3FF0; + void *field_3FF4; + void *field_3FF8; + void *field_3FFC; + void *field_4000; + void *field_4004; + Glacier::REFTAB m_variables; + void *field_4024; + void *field_4028; + void *field_402C; + void *field_4030; + void *field_4034; + void *field_4038; + void *field_403C; + void *field_4040; + void *field_4044; + void *field_4048; + void *field_404C; + void *field_4050; + void *field_4054; + void *field_4058; + void *field_405C; + void *field_4060; + void *field_4064; + void *field_4068; + void *field_406C; + void *field_4070; + void *field_4074; + void *field_4078; + void *field_407C; + void *field_4080; + void *field_4084; + void *field_4088; + void *field_408C; + void *field_4090; + void *field_4094; + void *field_4098; + void *field_409C; + void *field_40A0; + void *field_40A4; + void *field_40A8; + void *field_40AC; + void *field_40B0; + void *field_40B4; + void *field_40B8; + void *field_40BC; + void *field_40C0; + void *field_40C4; + void *field_40C8; + void *field_40CC; + void *field_40D0; + void *field_40D4; + void *field_40D8; + void *field_40DC; + void *field_40E0; + void *field_40E4; + void *field_40E8; + void *field_40EC; + void *field_40F0; + void *field_40F4; + void *field_40F8; + void *field_40FC; + void *field_4100; + void *field_4104; + void *field_4108; + void *field_410C; + void *field_4110; + void *field_4114; + void *field_4118; + void *field_411C; + void *field_4120; + void *field_4124; + void *field_4128; + void *field_412C; + void *field_4130; + void *m_offsetAlloc4134; + void *field_4138; + void *field_413C; + void *field_4140; + void *field_4144; + void *field_4148; + void *field_414C; + }; +} \ No newline at end of file diff --git a/ReHitman/Glacier/include/Glacier/CConfiguration.h b/ReHitman/Glacier/include/Glacier/CConfiguration.h index 2e9b573..0659a8d 100644 --- a/ReHitman/Glacier/include/Glacier/CConfiguration.h +++ b/ReHitman/Glacier/include/Glacier/CConfiguration.h @@ -72,5 +72,9 @@ namespace Glacier virtual void SetGenericOption(char const*, bool); virtual void RemoveOption(char const*); virtual void Load(); + + //public API + static bool CanShowSubtitles(); + static void SetCanShowSubtitles(bool value); }; } \ No newline at end of file diff --git a/ReHitman/Glacier/include/Glacier/CInventory.h b/ReHitman/Glacier/include/Glacier/CInventory.h index 66af87a..ef91514 100644 --- a/ReHitman/Glacier/include/Glacier/CInventory.h +++ b/ReHitman/Glacier/include/Glacier/CInventory.h @@ -8,6 +8,8 @@ namespace Glacier { + class ZItem; + class CInventory : public ZEventBase { public: @@ -20,10 +22,14 @@ namespace Glacier virtual void GiveAllItemsInGroup(ZGROUP* group); virtual void GiveAllItems(); virtual void CreateTakeActions(); - virtual void GetItemFromItemTemplate(ZItemTemplate* itemTemplate, bool); + virtual int GetItemFromItemTemplate(ZItemTemplate* itemTemplate, bool); virtual REFTAB32* GetInventoryList(); virtual void TransferInventoryTo(ZGEOM* target); + // api + ZItem* AddItem(Glacier::ZREF itemREF); + void RemoveItem(Glacier::ZREF itemREF); + // data int field_30; REFTAB m_reftab; diff --git a/ReHitman/Glacier/include/Glacier/CProjectileActivate.h b/ReHitman/Glacier/include/Glacier/CProjectileActivate.h new file mode 100644 index 0000000..0fd9301 --- /dev/null +++ b/ReHitman/Glacier/include/Glacier/CProjectileActivate.h @@ -0,0 +1,20 @@ +#pragma once + +#include + +namespace Glacier { + struct CProjectileActivate { + Glacier::ZREF m_unkREF0; + int m_field4; + float m_field8; + int m_fieldC; + bool m_field10; + bool m_field11; + bool m_field12; + bool m_field13; + Glacier::ZVector3 m_vTargetPosition; + float m_fPrecision; + int m_field24; + int m_field28; + }; +} \ No newline at end of file diff --git a/ReHitman/Glacier/include/Glacier/Fysix/COLI.h b/ReHitman/Glacier/include/Glacier/Fysix/COLI.h new file mode 100644 index 0000000..96a5096 --- /dev/null +++ b/ReHitman/Glacier/include/Glacier/Fysix/COLI.h @@ -0,0 +1,37 @@ +#pragma once + +#include + +namespace Glacier +{ + struct COLI + { + Glacier::Vector3 m_rootPoint; + int m_fieldC; + int m_field10; + int m_field14; + int m_field18; + int m_field1C; + int m_field20; + int m_field24; + int m_field28; + int m_field2C; + int m_field30; + Glacier::ZREF m_unknownREF3C; + int m_field38; + int m_field3C; + int m_field40; + int m_field44; + int m_field48; + int m_field4C; + int m_field50; + int m_field54; + int m_field58; + int m_field5C; + int m_field60; + char m_field64; + char m_field65; + char m_field66; + char m_field67; + }; +} \ No newline at end of file diff --git a/ReHitman/Glacier/include/Glacier/Geom/ZBOUND.h b/ReHitman/Glacier/include/Glacier/Geom/ZBOUND.h new file mode 100644 index 0000000..d6fe91b --- /dev/null +++ b/ReHitman/Glacier/include/Glacier/Geom/ZBOUND.h @@ -0,0 +1,12 @@ +#pragma once + +#include + +namespace Glacier { + class ZBOUND : public ZSTDOBJ { + public: + //vftable + void Draw(ZDrawBuffer* pDrawBuffer, ZCAMERA* pCamera, const float* a2, const float* a3); + //data (total size is 0x10, base size is 0x10) + }; +} \ No newline at end of file diff --git a/ReHitman/Glacier/include/Glacier/Geom/ZENVIRONMENT.h b/ReHitman/Glacier/include/Glacier/Geom/ZENVIRONMENT.h new file mode 100644 index 0000000..fea9cf9 --- /dev/null +++ b/ReHitman/Glacier/include/Glacier/Geom/ZENVIRONMENT.h @@ -0,0 +1,21 @@ +#pragma once + +#include + +namespace Glacier { + class ZENVIRONMENT : public ZLIGHT { + public: + //vftable (no changes) + //api + void ToggleColor(bool value); + void SetDiffuseColor(unsigned int c1, unsigned int c2); + + //data (total size is 0x38, base size is 0x20) + int m_field20; + int m_field24; + int m_color1_1; + int m_color1_2; + int m_color2_1; + int m_color2_2; //0x34 + }; +} \ No newline at end of file diff --git a/ReHitman/Glacier/include/Glacier/Geom/ZEntityLocator.h b/ReHitman/Glacier/include/Glacier/Geom/ZEntityLocator.h index 111ffbd..16d616b 100644 --- a/ReHitman/Glacier/include/Glacier/Geom/ZEntityLocator.h +++ b/ReHitman/Glacier/include/Glacier/Geom/ZEntityLocator.h @@ -31,6 +31,7 @@ namespace Glacier int field_7C; // API + void DoInit(); ZGROUP* ParentGroup(); void SetName(const char* name); bool SetPrim(int primId); diff --git a/ReHitman/Glacier/include/Glacier/Geom/ZGEOM.h b/ReHitman/Glacier/include/Glacier/Geom/ZGEOM.h index ad2724f..92b2ecb 100644 --- a/ReHitman/Glacier/include/Glacier/Geom/ZGEOM.h +++ b/ReHitman/Glacier/include/Glacier/Geom/ZGEOM.h @@ -8,13 +8,23 @@ namespace Glacier class ZRTTI; class ZEntityLocator; + /** + * @brief Reversed from cRTP::Properties container + */ + enum EBoundingBox { + BOUNDING_Static = 0, + BOUNDING_Dynamic = 1, + BOUNDING_DynamicAutoAssign = 2, + }; + class ZGEOM { public: // Data ZEntityLocator* m_baseGeom; //+0x4 int m_field8; //+0x8 - int m_fieldC; //+0xC + uint16_t m_fieldC; //+0xC + uint16_t m_fieldE; //+0xE // VFTable virtual void Release(bool); @@ -49,9 +59,9 @@ namespace Glacier virtual void FreeExData(); virtual void CopyExData(ZGEOM const*); virtual void GetChunkData(int); - virtual void RecurGetNext(ZBaseGeom const**); + virtual void RecurGetNext(ZEntityLocator**); virtual void DisableParentBoundAdjust(); - virtual void ExpandBounds(float *,float *,float *,ZBaseGeom *); + virtual void ExpandBounds(float *,float *,float *,ZEntityLocator *); virtual void SetMat(const Glacier::ZMat3x3*); //#35 at 0x0076A200 virtual void SetPos(const Glacier::ZVector3*); //#36 at 0x0076A204 virtual void SetMatPos(const Glacier::ZMat3x3* mat, const Glacier::Vector3* pos); //#37 at 0x0076A208 @@ -60,19 +70,20 @@ namespace Glacier virtual void Display(bool); //#40 at 0x0076A214 virtual void Select(bool); //#41 at 0x0076A218 virtual void Hide(bool); //#42 at 0x0076A21C + virtual void UnknownMethod(bool flag); virtual void HideRecursive(bool); //#43 at 0x0076A220 virtual void Freeze(bool); //#44 at 0x0076A224 virtual void DispBound(bool); //#45 at 0x0076A228 virtual void SetMoving(bool); virtual void RequestCustomDraw(); virtual void HasOwnerDraw(); - virtual void OwnerDraw(ZBaseGeom *,uint,ZDrawBuffer *,ZCAMERA *,float const*,float const*,void const*); - virtual void CorrectOwnerDrawMatrix(float *,float *,ZBaseGeom *,uint); - virtual void CorrectOwnerDrawPartMatrix(ZMat4x4 *,ZBaseGeom *,ZBone *); + virtual void OwnerDraw(ZEntityLocator *,uint,ZDrawBuffer *,ZCAMERA *,float const*,float const*,void const*); + virtual void CorrectOwnerDrawMatrix(float *,float *,ZEntityLocator *,uint); + virtual void CorrectOwnerDrawPartMatrix(ZMat4x4 *,ZEntityLocator *,ZBone *); virtual void WantDrawBufferControl(); virtual void DrawUpdate(); virtual void DrawBufferViewUpdate(ZDrawBuffer *,ZCameraSpace *); - virtual void DrawBufferViewUpdate(ZDrawBuffer *,ZBaseGeom *,uint); + virtual void DrawBufferViewUpdate(ZDrawBuffer *,ZEntityLocator *,uint); virtual void WantViewPrimHideUnhideRequest(); virtual void WantViewPrimHide(uchar,bool); virtual void WantViewPrimHideMirrors(uchar); @@ -111,14 +122,14 @@ namespace Glacier virtual void CheckPointInside(float const*,float); virtual void CheckPointInsideBound(float const*); virtual void CheckBoxInside(float const*,float const*,float const*); - virtual void GetPointInsideDistance(float const*); - virtual void Visible(); - virtual void Invisible(); - virtual void PushState(); - virtual void PopState(); + virtual float GetPointInsideDistance(float const*); /// OK + virtual void Visible(); /// NOP + virtual void Invisible(); /// NOP + virtual void PushState(); /// NOP + //virtual void PopState(); /// NOP virtual void DuplicateData(ZGEOM*); virtual ZGEOM* Duplicate(ZGROUP *,char const*,bool); - virtual void DuplicateInit(ZGROUP* to, const Glacier::ZMat3x3* mat, const Glacier::ZVector3* pos, char const* name, bool f4); + virtual ZGEOM* DuplicateInit(ZGROUP* to, const Glacier::ZMat3x3* mat, const Glacier::ZVector3* pos, char const* name, bool f4); virtual void DuplicateToResource(ZGROUP *,uint,char const*,bool); virtual void DuplicateToResourceInit(ZGROUP *,uint,float const*,float const*,char const*,bool); virtual void CopyData(ZGEOM const*); @@ -133,11 +144,13 @@ namespace Glacier virtual bool IsAttached(); virtual void SetAttachedTo(ZLNKOBJ *); virtual ZLNKOBJ* GetAttachedTo(); - virtual void IsLinkBaseObj(); + virtual bool IsLinkBaseObj(); virtual void OnCameraEnter(); // API + void GetRootTM(Glacier::ZMat3x3* mat, Glacier::ZVector3* pos); void GetMatPos(Glacier::ZMat3x3* mat, Glacier::ZVector3* pos); + ZREF GetRef(); // Static API static ZGEOM* RefToPtr(unsigned int REF); diff --git a/ReHitman/Glacier/include/Glacier/Geom/ZGateLightOmni.h b/ReHitman/Glacier/include/Glacier/Geom/ZGateLightOmni.h new file mode 100644 index 0000000..77c3f85 --- /dev/null +++ b/ReHitman/Glacier/include/Glacier/Geom/ZGateLightOmni.h @@ -0,0 +1,34 @@ +#pragma once + +#include + +namespace Glacier { + class ZGateLightOmni : public ZOMNILIGHT { + public: + //vftable (no changes) + //data (total size is 0x7C, base size is 0x20) + int m_field20; + int m_field24; + int m_field28; + int m_field2C; + int m_field30; + int m_field34; + int m_field38; + int m_field3C; + int m_field40; + int m_field44; + int m_field48; + int m_field4C; + int m_field50; + int m_field54; + int m_field58; + int m_field5C; + int m_field60; + int m_field64; + int m_field68; + int m_field6C; + int m_field70; + int m_field74; + int m_field78; + }; +} \ No newline at end of file diff --git a/ReHitman/Glacier/include/Glacier/Geom/ZGateLightSpot.h b/ReHitman/Glacier/include/Glacier/Geom/ZGateLightSpot.h new file mode 100644 index 0000000..5201b8a --- /dev/null +++ b/ReHitman/Glacier/include/Glacier/Geom/ZGateLightSpot.h @@ -0,0 +1,27 @@ +#pragma once + +#include + +namespace Glacier { + class ZGateLightSpot : public ZSPOTLIGHT { + public: + //vftable (no changes) + //data (total size is 0x60, base size is 0x20) + int m_field20; + int m_field24; + int m_field28; + int m_field2C; + int m_field30; + int m_field34; + int m_field38; + int m_field3C; + int m_field40; + int m_field44; + int m_field48; + int m_field4C; + int m_field50; + int m_field54; + int m_field58; + int m_field5C; + }; +} \ No newline at end of file diff --git a/ReHitman/Glacier/include/Glacier/Geom/ZGateLightSpotSquare.h b/ReHitman/Glacier/include/Glacier/Geom/ZGateLightSpotSquare.h new file mode 100644 index 0000000..830d973 --- /dev/null +++ b/ReHitman/Glacier/include/Glacier/Geom/ZGateLightSpotSquare.h @@ -0,0 +1,27 @@ +#pragma once + +#include + +namespace Glacier { + class ZGateLightSpotSquare : public ZSPOTLIGHTSQUARE { + public: + //vftable + //data (total size is 0x60, base size is 0x20) + int m_field20; + int m_field24; + int m_field28; + int m_field2C; + int m_field30; + int m_field34; + int m_field38; + int m_field3C; + int m_field40; + int m_field44; + int m_field48; + int m_field4C; + int m_field50; + int m_field54; + int m_field58; + int m_field5C; + }; +} \ No newline at end of file diff --git a/ReHitman/Glacier/include/Glacier/Geom/ZLIGHT.h b/ReHitman/Glacier/include/Glacier/Geom/ZLIGHT.h new file mode 100644 index 0000000..10f563c --- /dev/null +++ b/ReHitman/Glacier/include/Glacier/Geom/ZLIGHT.h @@ -0,0 +1,21 @@ +#pragma once + +#include + +namespace Glacier { + class ZLIGHT : public ZGEOM { + public: + //vftable + virtual void Enable(); + virtual void Disable(); + virtual void SetMultiplier(float fValue); // In default implementation it's do nothing + virtual void SetDiffuseColor(unsigned int rgba); // In default implementation it's do nothing + virtual void MakeLightUnique(); + + //data (total size is 0x20, base size is 0x10) + int m_flags; + int m_field14; + int m_field18; + int m_field1C; + }; +} \ No newline at end of file diff --git a/ReHitman/Glacier/include/Glacier/Geom/ZOMNILIGHT.h b/ReHitman/Glacier/include/Glacier/Geom/ZOMNILIGHT.h new file mode 100644 index 0000000..37e211e --- /dev/null +++ b/ReHitman/Glacier/include/Glacier/Geom/ZOMNILIGHT.h @@ -0,0 +1,16 @@ +#pragma once + +#include + +namespace Glacier { + class ZOMNILIGHT : public ZLIGHT { + public: + //vftable + virtual void SetNearRange(float value); + virtual void SetFarRange(float value); + virtual float GetNearRange(); + virtual float GetFarRange(); + + //data (total size is 0x20, base size is 0x20) + }; +} \ No newline at end of file diff --git a/ReHitman/Glacier/include/Glacier/Geom/ZSNDOBJ.h b/ReHitman/Glacier/include/Glacier/Geom/ZSNDOBJ.h new file mode 100644 index 0000000..23e9468 --- /dev/null +++ b/ReHitman/Glacier/include/Glacier/Geom/ZSNDOBJ.h @@ -0,0 +1,21 @@ +#pragma once + +#include + +namespace Glacier +{ + class ZSNDOBJ : public ZSTDOBJ + { + public: + // vftable + virtual void ModifyGeomCon(int, int); + + // api + bool AttachToDefaultRoom(bool a1); + + // data (total size is 0x1C, base size is 0x10) + int m_field10; + int m_field14; + int m_field18; + }; +} \ No newline at end of file diff --git a/ReHitman/Glacier/include/Glacier/Geom/ZSPOTLIGHT.h b/ReHitman/Glacier/include/Glacier/Geom/ZSPOTLIGHT.h new file mode 100644 index 0000000..549dac4 --- /dev/null +++ b/ReHitman/Glacier/include/Glacier/Geom/ZSPOTLIGHT.h @@ -0,0 +1,16 @@ +#pragma once + +#include + +namespace Glacier { + class ZSPOTLIGHT : public ZLIGHT { + public: + //vftable + virtual float GetHotSpotAngle(); + virtual float GetFallOffAngle(); + virtual float GetNearRange(); + virtual float GetFarRange(); + + //data (total size is 0x20, base size is 0x20) + }; +} \ No newline at end of file diff --git a/ReHitman/Glacier/include/Glacier/Geom/ZSPOTLIGHTSQUARE.h b/ReHitman/Glacier/include/Glacier/Geom/ZSPOTLIGHTSQUARE.h new file mode 100644 index 0000000..3fa27fd --- /dev/null +++ b/ReHitman/Glacier/include/Glacier/Geom/ZSPOTLIGHTSQUARE.h @@ -0,0 +1,11 @@ +#pragma once + +#include + +namespace Glacier { + class ZSPOTLIGHTSQUARE : public ZLIGHT { + public: + //vftable (no changes) + //data (total size is 0x20, base size is 0x20) + }; +} \ No newline at end of file diff --git a/ReHitman/Glacier/include/Glacier/Geom/ZUSERLIGHT.h b/ReHitman/Glacier/include/Glacier/Geom/ZUSERLIGHT.h new file mode 100644 index 0000000..97e6c87 --- /dev/null +++ b/ReHitman/Glacier/include/Glacier/Geom/ZUSERLIGHT.h @@ -0,0 +1,20 @@ +#pragma once + +#include + +namespace Glacier { + class ZUSERLIGHT : public ZLIGHT { + public: + //vftable (no changes) + //data (total size is 0x44, base size is 0x20) + int m_field20; + int m_field24; + int m_field28; + int m_field2C; + int m_field30; + int m_field34; + int m_field38; + int m_field3C; + int m_field40; + }; +} \ No newline at end of file diff --git a/ReHitman/Glacier/include/Glacier/GlacierFWD.h b/ReHitman/Glacier/include/Glacier/GlacierFWD.h index ea2232e..fa7da14 100644 --- a/ReHitman/Glacier/include/Glacier/GlacierFWD.h +++ b/ReHitman/Glacier/include/Glacier/GlacierFWD.h @@ -10,9 +10,10 @@ namespace Glacier using ZMSGID = unsigned short; using ZDATA = void*; using ZREF = unsigned int; + using SREF = unsigned int; using ZWM_MESSAGE = signed int; //Less that 0x1000! - using RefRun = void*; + struct RefRun; using TabBlk = void*; /// FWD @@ -63,7 +64,6 @@ namespace Glacier class CHUNK; class REFTAB; class REFTAB32; - class ZDirect3DDevice; class ZOffsetAlloc; class ZEventBuffer; class ZGeomBufferPoolEntity; @@ -76,7 +76,6 @@ namespace Glacier struct SInputActionDefinition; struct SExtendedImpactInfo; struct SRigidBodyVelocity; - struct SMouseColi; enum ALLOCSEQUENCESTATUS {}; struct ITEMHANDS {}; @@ -84,7 +83,7 @@ namespace Glacier using ITEMSTATE = int; struct WEAPONOPERATION {}; - enum EFootSide {}; + enum EFootSide; class ZCheckPointBuffer; // NOT AVAILABLE FOR PC ? diff --git a/ReHitman/Glacier/include/Glacier/IK/ZIKLNKOBJ.h b/ReHitman/Glacier/include/Glacier/IK/ZIKLNKOBJ.h index cf0950d..2ccce6a 100644 --- a/ReHitman/Glacier/include/Glacier/IK/ZIKLNKOBJ.h +++ b/ReHitman/Glacier/include/Glacier/IK/ZIKLNKOBJ.h @@ -27,7 +27,7 @@ namespace Glacier virtual void GetIKBoneMatPos(int, ZMat3x3*, ZVector3*); virtual void GetIKBoneMat(int, ZMat3x3*); virtual void GetIKBonePos(int,ZVector3*); - virtual void SetHeadTarget(const ZVector3*,float) + virtual void SetHeadTarget(const ZVector3*,float); virtual void ResetHeadTarget(); virtual void HeadBoneIndex(); virtual void NeckBoneIndex(); @@ -37,7 +37,7 @@ namespace Glacier virtual void LToeBoneIndex(); virtual void RToeBoneIndex(); virtual void IKCallBackToId(IKCallBack_t callback); - virtual IKCallBack_t IKCallBackFromId(int)l + virtual IKCallBack_t IKCallBackFromId(int); virtual void SetFacingTarget(unsigned int, float, IKCallBack_t callback); virtual void RemoveFacingTarget(float, IKCallBack_t callback); virtual void DisableFacing(); @@ -61,12 +61,8 @@ namespace Glacier virtual void RemoveTargets(); //data (total size is 0x190, base size is 0xF4) - int m_flagsF4; + int m_fieldF4; int m_fieldF8; - bool m_fieldF8; - bool m_bFacingEnabled; - bool m_fieldFA; - bool m_fieldFB; int m_fieldFC; int m_field100; int m_field104; diff --git a/ReHitman/Glacier/include/Glacier/IK/ZLNKOBJ.h b/ReHitman/Glacier/include/Glacier/IK/ZLNKOBJ.h index f72d29a..15973c9 100644 --- a/ReHitman/Glacier/include/Glacier/IK/ZLNKOBJ.h +++ b/ReHitman/Glacier/include/Glacier/IK/ZLNKOBJ.h @@ -40,6 +40,16 @@ namespace Glacier //Not completed! }; + enum class ESuitMask : int32_t { + NoActor = 0b0000'0000'0000'0000'0000'0000'0000'0000, ///< This is not an actor (M13, wheelchair gui subactor kind) + SkinChangerNotSupported = 0b0000'0000'0000'0000'0000'0000'0000'0001, ///< This actor does not supports skin changer + Nude = 0b0000'0000'0000'0000'0000'0000'0000'0010, ///< Nude view of model (works only if the actor can share their suit, in other case works as Inivisble) + Invisible = 0b0000'0000'0000'0000'0000'0000'0000'0100, ///< Invisible view of the actor (possible model loading failure, I don't know) + OriginalView = 0b0000'0000'0000'0000'0000'0000'0000'0101, ///< Just original view of actor + Agent47_WithoutHeaddress = 0b0000'0000'0000'0000'0000'0000'0000'0110, ///< Sometimes works if suit have headdress (in other case will work as invisible) + Agent47_WithHeaddress = 0b0000'0000'0000'0000'0000'0000'0000'0111 ///< Works in 99% of situations with actors who can share their suit + }; + class ZLNKOBJ : public ZSTDOBJ { public: @@ -86,9 +96,9 @@ namespace Glacier virtual void GetBoneNrFromId(unsigned short ); virtual void GetBoneFromPoint(float const*); virtual void GetBoneNrFromName(char const*); - virtual void GetBoneName(int); + virtual const char* GetBoneName(int); virtual void GetOrigLocalBones(void); - virtual void GetBoneDefinitions(void); + virtual void* GetBoneDefinitions(void); virtual void CopyGeometryFrom(ZGEOM *); virtual void CopyGeometryFrom(unsigned int); virtual void CopyPoseFrom(ZLNKOBJ*); @@ -127,7 +137,7 @@ namespace Glacier int field_40; int field_44; int field_48; - int field_4C; + ESuitMask m_suitMask; int field_50; int field_54; int field_58; diff --git a/ReHitman/Glacier/include/Glacier/IK/ZLNKWHANDS.h b/ReHitman/Glacier/include/Glacier/IK/ZLNKWHANDS.h index 0429fde..601d14d 100644 --- a/ReHitman/Glacier/include/Glacier/IK/ZLNKWHANDS.h +++ b/ReHitman/Glacier/include/Glacier/IK/ZLNKWHANDS.h @@ -100,7 +100,7 @@ namespace Glacier virtual void SetDialog(bool); virtual bool GetDialog(); virtual void DialogListen(int variant); //1 or 0 - virtual void DialogTalk(int) variant; //1 or 0 + virtual void DialogTalk(int variant); //1 or 0 virtual void SlipRHandItem(); virtual void SlipLHandItem(); virtual void ForceLHandItem(ZItem*, bool); @@ -166,20 +166,20 @@ namespace Glacier int field_240; float m_fRecoil; int m_hitAnimationName; - __int16 m_animPullGun_Right; - __int16 field_24E; - __int16 m_animPickPut; - __int16 field_252; - __int16 m_animReloadMagnum; - __int16 field_256; - __int16 m_animReloadHardballer; - __int16 field_25A; - __int16 m_animReloadMP5; - __int16 field_25E; - __int16 m_animReloadRuger; - __int16 field_262; - __int16 m_animReloadGun_OneHand; - __int16 field_266; + uint16_t m_animPullGun_Right; + uint16_t field_24E; + uint16_t m_animPickPut; + uint16_t field_252; + uint16_t m_animReloadMagnum; + uint16_t field_256; + uint16_t m_animReloadHardballer; + uint16_t field_25A; + uint16_t m_animReloadMP5; + uint16_t field_25E; + uint16_t m_animReloadRuger; + uint16_t field_262; + uint16_t m_animReloadGun_OneHand; + uint16_t field_266; int m_pTarget; int field_26C; int field_270; diff --git a/ReHitman/Glacier/include/Glacier/Items/ZItem.h b/ReHitman/Glacier/include/Glacier/Items/ZItem.h index a933ff3..bdf5f72 100644 --- a/ReHitman/Glacier/include/Glacier/Items/ZItem.h +++ b/ReHitman/Glacier/include/Glacier/Items/ZItem.h @@ -16,7 +16,7 @@ namespace Glacier virtual void GetMainItemRootTM(float *,float *); virtual void GetState(); virtual void SetState(ITEMSTATE, CCom*); - virtual void Place(float const*,float const*); + virtual void Place(float const*, float const*); virtual void SetMain(uint); virtual void GetMain(); virtual void GetMainMatPos(float *,float *,uint); @@ -39,7 +39,7 @@ namespace Glacier virtual void UpdateDeactivate(); // data (total size is 0x84, ZGROUP size is 0x4C) - int m_field4C; + int m_lState; int m_field50; bool m_isVisibleForNPCs; bool m_field55; diff --git a/ReHitman/Glacier/include/Glacier/Items/ZItemTemplate.h b/ReHitman/Glacier/include/Glacier/Items/ZItemTemplate.h index 48e7aa7..919804d 100644 --- a/ReHitman/Glacier/include/Glacier/Items/ZItemTemplate.h +++ b/ReHitman/Glacier/include/Glacier/Items/ZItemTemplate.h @@ -8,6 +8,9 @@ namespace Glacier class ZItemTemplate : public ZGROUP { public: + // static consts + static constexpr uint32_t kItemGroupId = 0x4954454D; + // vftable virtual ZItem* CreateItem(ZGROUP*, unsigned int, bool isVisibleForNPC, bool); virtual ZItem* CreateItemAndActuallyUseDestinationParameter(ZGROUP* group, unsigned int, bool isVisibleForNPC, bool); diff --git a/ReHitman/Glacier/include/Glacier/Serializer/IPackedInputVisitor.h b/ReHitman/Glacier/include/Glacier/Serializer/IPackedInputVisitor.h new file mode 100644 index 0000000..d365d5d --- /dev/null +++ b/ReHitman/Glacier/include/Glacier/Serializer/IPackedInputVisitor.h @@ -0,0 +1,28 @@ +#pragma once + +namespace Glacier +{ + class IPackedInputVisitor + { + public: + virtual void Visit_String(unsigned int token, const char* str); + virtual void Visit_Float64(unsigned int token, double); + virtual void Visit_Float32(unsigned int token, float); //+0x8 + virtual void Visit_I32(unsigned int token, void* pData); //+0xC + virtual void Visit_Unknown1(); //+0x10 + virtual void Visit_U16(unsigned int token, unsigned short value); //+0x14 + virtual void Visit_Unknown2(); //+0x18 + virtual void Visit_U8(unsigned int token, char** buffer); //+0x1C + virtual void Visit_Bool(unsigned int token, bool value); //+0x20 + virtual void Visit_RawData(unsigned int token, void* buffer, unsigned int size); //+0x24 + virtual void Visit_Unknown3(unsigned int token, void* pData); //+0x28 + virtual void Visit_Reference(unsigned int token, unsigned int reference); //+0x2C + virtual void Visit_Container(unsigned int token, unsigned int a2); //+0x30 + virtual void Visit_BeginObject(unsigned int token); //+0x34 + virtual void Visit_EndObject(); //+0x38 + virtual void Visit_Array(unsigned int token, void* data); //+0x3C + virtual void Visit_EndArray(); //+0x40 + virtual void Visit_SkipMark(); //+0x44 + virtual void Visit_EndOfStream(); //+0x48 + }; +} \ No newline at end of file diff --git a/ReHitman/Glacier/include/Glacier/ZAction.h b/ReHitman/Glacier/include/Glacier/ZAction.h index 4529fd5..fce3fc6 100644 --- a/ReHitman/Glacier/include/Glacier/ZAction.h +++ b/ReHitman/Glacier/include/Glacier/ZAction.h @@ -5,10 +5,27 @@ namespace Glacier { - enum class EActionType : int { - Type6 = 6, - PlaceAction = 7, - Type8 = 8, + // 0 - N/A + // 1 - N/A + // 2 - Open Door + // 3 - Close Door + // 4 - N/A + // 5 - Talk + // 6 - Our custom action in "bottom" actions slot ("E") + // 7 - Same to 6 + // 8 - N/A + // 9 - Drag Body + // 10 - N/A + // 11 - N/A + enum EActionType { + OPEN_DOOR = 2, + CLOSE_DOOR = 3, + TALK = 5, + CUSTOM = 6, + CUSTOM2 = 7, + ALWAYS_IN_RANGE = 8, + DRAG_BODY = 9, + STEAL_TAPE = 0x29 }; class ZAction : public ZEventBase @@ -30,6 +47,31 @@ namespace Glacier /// api ZAction** GetActionArray(); + void Show(); + void Hide(); + + // custom API + /** + * @brief Allocate and register new action + * @param pGeom pointer to ZGEOM instance on scene + * @param psLocalizedActionName path in LOC file + * @param psActionName action name when localization not available + * @param actionType kind of action (see EActionType for details) + * @param commandId 2-byte command id, it will be sent to Command method of receiver instance + * @param entityRef ref to receiver entity (must be inherited of ZEventBase) + * @param unk0 unknown value, in most cases is zero + * @param radius the radius accessibility of action + * @return action ref + */ + static int AddAction( + ZGEOM* pGeom, + const char* psLocalizedActionName, + const char* psActionName, + EActionType actionType, + Glacier::ZMSGID commandId, + Glacier::ZREF entityRef, + int unk0, + int radius); /// data (total size if 0xFC, size of ZEventBase is 0x30) EActionType m_type; //+0x30 diff --git a/ReHitman/Glacier/include/Glacier/ZActorHeroCheckInside.h b/ReHitman/Glacier/include/Glacier/ZActorHeroCheckInside.h new file mode 100644 index 0000000..f673f65 --- /dev/null +++ b/ReHitman/Glacier/include/Glacier/ZActorHeroCheckInside.h @@ -0,0 +1,92 @@ +#pragma once + +#include + +namespace Glacier { + class ZGEOM; + + class ZActorHeroCheckInside : public Glacier::ZEventBase { + public: + //consts + static constexpr Glacier::ZMSGID kActivateFrameUpdateMsg = 0x83A; + //vftable (no changes) + //api + bool IsInside(Glacier::ZGEOM* pGeom); + //data (total size is 0x15C, base size is 0x30) + int m_field30; + int m_field34; + int m_field38; + int m_field3C; + int m_field40; + int m_field44; + int m_field48; + int m_field4C; + int m_field50; + int m_field54; + int m_field58; + int m_field5C; + int m_field60; + int m_field64; + int m_field68; + int m_field6C; + int m_field70; + int m_field74; + int m_field78; + int m_field7C; + int m_field80; + int m_field84; + int m_field88; + int m_field8C; + int m_field90; + int m_field94; + int m_field98; + int m_field9C; + int m_fieldA0; + int m_fieldA4; + int m_fieldA8; + int m_fieldAC; + int m_fieldB0; + int m_fieldB4; + int m_fieldB8; + int m_fieldBC; + int m_fieldC0; + int m_fieldC4; + int m_fieldC8; + int m_fieldCC; + int m_fieldD0; + int m_fieldD4; + int m_fieldD8; + int m_fieldDC; + int m_fieldE0; + int m_fieldE4; + int m_fieldE8; + int m_fieldEC; + int m_fieldF0; + int m_fieldF4; + int m_fieldF8; + int m_fieldFC; + int m_field100; + int m_field104; + int m_field108; + int m_field10C; + int m_field110; + int m_field114; + int m_field118; + int m_field11C; + int m_field120; + int m_field124; + int m_field128; + int m_field12C; + int m_field130; + int m_field134; + int m_field138; + int m_field13C; + int m_field140; + int m_field144; + int m_field148; + int m_field14C; + int m_field150; + int m_field154; + int m_field158; + }; +} \ No newline at end of file diff --git a/ReHitman/Glacier/include/Glacier/ZCAMERA.h b/ReHitman/Glacier/include/Glacier/ZCAMERA.h index 1d85fab..c288765 100644 --- a/ReHitman/Glacier/include/Glacier/ZCAMERA.h +++ b/ReHitman/Glacier/include/Glacier/ZCAMERA.h @@ -8,6 +8,7 @@ namespace Glacier class ZROOM; class ZRender; class ZEntityLocator; + struct SScreenSelect; class ZCAMERA : public ZGEOM { diff --git a/ReHitman/Glacier/include/Glacier/ZCameraSpace.h b/ReHitman/Glacier/include/Glacier/ZCameraSpace.h new file mode 100644 index 0000000..52f28e4 --- /dev/null +++ b/ReHitman/Glacier/include/Glacier/ZCameraSpace.h @@ -0,0 +1,26 @@ +#pragma once + +#include +#include + +namespace Glacier { + class ZCameraSpace { + public: + // data + Matrix3x3 matrix {}; + Vector3 position {}; + char sub[512] { 0 }; /// That's should be enough, I guess + + // operators + ZCameraSpace& operator=(ZCAMERA* pCamera); + + // api + bool IsMirror(); + bool IsMain(); + void Proj2D(Vector2* pResult, const Vector3* pPoint); + void Proj3D(Vector3* pResult, const Vector3* pPoint); + void GetLocalMatPos(Matrix3x3* mat, Vector3* pos); + void TransformInversMatPos(Matrix3x3* mat, Vector3* pos); + void GetViewport(Vector4* pViewport); + }; +} \ No newline at end of file diff --git a/ReHitman/Glacier/include/Glacier/ZDrawBuffer.h b/ReHitman/Glacier/include/Glacier/ZDrawBuffer.h new file mode 100644 index 0000000..2bd2a17 --- /dev/null +++ b/ReHitman/Glacier/include/Glacier/ZDrawBuffer.h @@ -0,0 +1,41 @@ +#pragma once + +#include +#include +#include + +namespace Glacier { + class ZRenderDrawD3D; + class ZRenderEntryCameraD3D; + class ZRenderEntry; + + class ZDrawBuffer + { + public: + // data + int32_t m_unk4; //0x0004 + ZRenderEntry** m_pVSpritesArray; //0x0008 + int32_t m_iViewportWidth; //0x000C + int32_t m_iViewportHeight; //0x0010 + char pad_0014[4]; //0x0014 + ZRenderEntry** m_pVGeomsArray; //0x0018 + ZRenderDrawD3D* m_pRenderDraw; //0x001C + char pad_0020[4]; //0x0020 + ZRenderWintelD3D* m_pRenderWintel; //0x0024 + char pad_0028[16]; //0x0028 + ZCAMERA* m_pCamera; //0x0038 + ZRenderEntryCameraD3D* m_pRenderEntryCamera; //0x003C + char pad_0040[4]; //0x0040 + ZVector4* m_pV2Viewport; //0x0044 + // vftable + + virtual int32_t GetSizeX(); // return [0xC] + virtual int32_t GetSizeY(); // return [0x10] + virtual double GetPixelAspectXY(); + // possible DrawBonesArray + // possible DrawSpritesArray + + }; //Size: 0x02C0 + + using ZDrawBufferSimple = ZDrawBuffer; // Alias for HBM +} \ No newline at end of file diff --git a/ReHitman/Glacier/include/Glacier/ZELEVATORBOUND.h b/ReHitman/Glacier/include/Glacier/ZELEVATORBOUND.h new file mode 100644 index 0000000..b9d612a --- /dev/null +++ b/ReHitman/Glacier/include/Glacier/ZELEVATORBOUND.h @@ -0,0 +1,17 @@ +#pragma once + +#include +#include + +namespace Glacier +{ + class ZELEVATORBOUND : public ZSTDOBJ + { + public: + // vtable (not changed) + + // data (total size is 0x2C) + Glacier::ZVector3 m_topPoint; + Glacier::ZVector3 m_bottomPoint; + }; +} \ No newline at end of file diff --git a/ReHitman/Glacier/include/Glacier/ZEngineDataBase.h b/ReHitman/Glacier/include/Glacier/ZEngineDataBase.h index 2cc833c..7a445f6 100644 --- a/ReHitman/Glacier/include/Glacier/ZEngineDataBase.h +++ b/ReHitman/Glacier/include/Glacier/ZEngineDataBase.h @@ -3,6 +3,7 @@ #include #include #include +#include namespace Glacier { @@ -111,7 +112,7 @@ namespace Glacier virtual void CreateSoundGraph(void); //#28 virtual void LoadSoundGraph(void); //#29 virtual ZMSGID RegisterZDefine(char const*,char *,int); //#30 - virtual ZMSGID RegisterZMsg(char const*,uint,char *,int); //#31 + virtual ZMSGID RegisterZMsg(char const*,uint, const char *,int); //#31 virtual const char* GetZMsgName(ZMSGID); //#32 virtual void CreateObjectFactories(void); //#33 virtual void StartUp(void); //#34 @@ -163,5 +164,10 @@ namespace Glacier virtual void PackHookMissingOnlyInitialize(void); //#80 virtual void CreatePackedStaticGameLevelData(void); //#81 virtual void LoadPackedStaticGameLevelData(void); //#82 + + // API + CCom* GetSceneCom(); + std::intptr_t GetSceneVar(const char* varname); + std::intptr_t SRefToPtr(Glacier::ZREF sref); }; } \ No newline at end of file diff --git a/ReHitman/Glacier/include/Glacier/ZEngineGeomControl.h b/ReHitman/Glacier/include/Glacier/ZEngineGeomControl.h new file mode 100644 index 0000000..8f72c57 --- /dev/null +++ b/ReHitman/Glacier/include/Glacier/ZEngineGeomControl.h @@ -0,0 +1,31 @@ +#pragma once + +#include + +namespace Glacier +{ + class ZEngineGeomControl + { + public: + // vftable + virtual bool GeomMoved(ZEntityLocator* pEntity); + virtual void UpdateMovedGeoms(); + virtual void Clear(); + virtual void JonsLights(); // crash? + + /** + * @brief Update lights for entities (must be derived from ZLIGHT) + * @param ppEntities pointer to array of pointers to entities + * @param iCount count of pointers in array + */ + virtual void UpdateChangedLights(ZEntityLocator** ppEntities, uint32_t iCount); + + // public api + static ZEngineGeomControl* GetInstance(); + + // data + ZEntityLocator* m_pool[128]; + int field_204; + int field_208; // enable custom light sources? (for weapon in inventory preview) + }; +} \ No newline at end of file diff --git a/ReHitman/Glacier/include/Glacier/ZEventBuffer.h b/ReHitman/Glacier/include/Glacier/ZEventBuffer.h new file mode 100644 index 0000000..70507d9 --- /dev/null +++ b/ReHitman/Glacier/include/Glacier/ZEventBuffer.h @@ -0,0 +1,42 @@ +#pragma once + +#include + +namespace Glacier { + class ZEventBuffer { + public: + //vftable + virtual void Release(bool); + virtual void PreSave(ZPackedInput*); + virtual void PostSave(ZPackedInput*); + virtual void PreLoad(ZPackedInput*); + virtual void PostLoad(ZPackedInput*); + virtual void PostProcess(int, int); + virtual void LoadSave(ZPackedInput*, bool); + virtual void LoadObject(IInputSerializerStream*); + virtual void SaveObject(IOutputSerializerStream*); + virtual void ExchangeObject(ZPackedInput*); + virtual void SetToDefault(); + virtual int GetTypeID(); + + // Methods + + private: + static std::intptr_t GetGQC(Glacier::ZREF ref); + + public: + // Custom API + template + static TEntity* EventRefToInstance(Glacier::ZREF ref) { + return reinterpret_cast(ZEventBuffer::GetGQC(ref)); + } + + // Data (size is 0x1C) + int m_field4; + int m_field8; + int m_fieldC; + int m_field10; + int m_field14; + int m_field18; + }; +} \ No newline at end of file diff --git a/ReHitman/Glacier/include/Glacier/ZGameStats.h b/ReHitman/Glacier/include/Glacier/ZGameStats.h index 84e9263..83964e0 100644 --- a/ReHitman/Glacier/include/Glacier/ZGameStats.h +++ b/ReHitman/Glacier/include/Glacier/ZGameStats.h @@ -7,6 +7,17 @@ namespace Glacier class ZGameStats { public: - //??? + //vftable + virtual void Release(bool); + virtual float GetIntensity(); + + //api + void IncreaseCurrentShotCount(); + void DecreaseCurrentShotCount(); + + //data (total size is 0xC) + unsigned short m_iShootCount; + unsigned short m_field6; + float m_fIntensity; }; } \ No newline at end of file diff --git a/ReHitman/Glacier/include/Glacier/ZOffsetAlloc.h b/ReHitman/Glacier/include/Glacier/ZOffsetAlloc.h new file mode 100644 index 0000000..8e3e623 --- /dev/null +++ b/ReHitman/Glacier/include/Glacier/ZOffsetAlloc.h @@ -0,0 +1,19 @@ +#pragma once + +namespace Glacier { + class ZOffsetAlloc { + public: + // virtual methods + virtual ~ZOffsetAlloc(); + + // data + int m_field0; + void* m_pLocation; + int m_field8; + int m_iChunkSize; //RLY? + bool m_bIsPlacementAllocated; + bool m_field11; + bool m_field12; + bool m_field13; + }; +} \ No newline at end of file diff --git a/ReHitman/Glacier/include/Glacier/ZPrimControlWintel.h b/ReHitman/Glacier/include/Glacier/ZPrimControlWintel.h new file mode 100644 index 0000000..1570e11 --- /dev/null +++ b/ReHitman/Glacier/include/Glacier/ZPrimControlWintel.h @@ -0,0 +1,103 @@ +#pragma once + +namespace Glacier +{ + class SPrimInfo + { + public: + int16_t m_word0; //0x0000 + int16_t m_kind; //0x0002 + int32_t m_primID; //0x0004 + int32_t m_field8; //0x0008 + int8_t m_byteC; //0x000C + int8_t m_byteD; //0x000D + int8_t m_byteE; //0x000E + int8_t m_variantID; //0x000F (mesh variant) + int m_field10; //0x0010 (?) + /** + * @brief Primitive parts visibility flag + * 10010 0x12 (normal) + * 00000 0x00 (invisible) + * 00001 0x01 (head without eye) + * 00011 ???? (head with eye) + * 00110 ???? (torso & head) + * 01110 ???? (torso & head & hands) + * 10000 CRASH + * 11000 CRASH + * 11100 CRASH + * 10111 CRASH + */ + int m_field14; + }; //Size: 0x0014 (struct is not done!!!) + + class ZPrimControlWintel + { + public: + // vftable + virtual void Release(bool); //0x0 + virtual void Function_4(); //+4 + virtual void Function_8(); //+8 + virtual void Function_C(); //+C + virtual void Function_10(); //+10 + virtual SPrimInfo* GetPrimData(int primitiveId); + virtual void Function_18(); //+18 + virtual void Function_1C(); //+1C + virtual void Function_20(); //+20 + virtual void Function_24(); //+24 + virtual void Function_28(); //+28 + virtual void Function_2C(); //+2C + virtual void Function_30(); //+30 + virtual void Function_34(); //+34 + virtual void Function_38(); //+38 + virtual void Function_3C(); //+3C + virtual void Function_40(); //+40 + virtual void Function_44(); //+44 + virtual void Function_48(); //+48 + virtual void Function_4C(); //+4C + virtual void Function_50(); //+50 + virtual void Function_54(); //+54 + virtual void Function_58(); //+58 + virtual void Function_5C(); //+5C + virtual void Function_60(); //+60 + virtual void Function_64(); //+64 + virtual void Function_68(); //+68 + virtual void Function_6C(); //+6C + virtual void Function_70(); //+70 + virtual void Function_74(); //+74 + virtual void Function_78(); //+78 + virtual void Function_7C(); //+7C + virtual void Function_80(); //+80 + virtual void Function_84(); //+84 + virtual void Function_88(); //+88 + virtual void Function_8C(); //+8C + virtual void Function_90(); //+90 + virtual void Function_94(); //+94 + virtual void Function_98(); //+98 + virtual void Function_9C(); //+9C + virtual void Function_A0(); //+A0 + virtual void Function_A4(int primitiveId); //+A4 + virtual void Function_A8(int primitiveId); //+A8 + virtual void Function_AC(); //+AC + virtual void Function_B0(); //+B0 + virtual void Function_B4(); //+B4 + virtual void Function_B8(); //+B8 + virtual void Function_BC(); //+BC + virtual void Function_C0(); //+C0 + virtual void Function_C4(int primitiveId); //+C4 + virtual void Function_C8(); //+C8 + virtual void Function_CC(); //+CC + virtual void Function_D0(); //+D0 + virtual void Function_D4(); //+D4 + virtual void Function_D8(); //+D8 + virtual void Function_DC(); //+DC + virtual void Function_E0(); //+E0 + virtual void Function_E4(); //+E4 + virtual void Function_E8(); //+E8 + virtual void Function_EC(); //+EC + virtual void Function_F0(); //+F0 + virtual void Function_F4(); //+F4 + virtual void Function_F8(); //+F8 + virtual void Function_FC(); //+FC + // data + }; +} \ No newline at end of file diff --git a/ReHitman/Glacier/include/Glacier/ZProjectile.h b/ReHitman/Glacier/include/Glacier/ZProjectile.h new file mode 100644 index 0000000..a6d8437 --- /dev/null +++ b/ReHitman/Glacier/include/Glacier/ZProjectile.h @@ -0,0 +1,42 @@ +#pragma once + +#include +#include +#include + +#include + +namespace Glacier +{ + class ZProjectile : public ZEventBase + { + public: + // vtable + virtual void SetTarget(ZVector3* pTarget); + virtual void SetProjectileInfo(CProjectileActivate* pActivationInfo); + virtual void ShotImpact(COLI* pColi); + + // size is 0x84 (base size is 0x30) + int m_field30; + int m_field34; + int m_field38; + int m_field3C; + int m_field40; + int m_field44; + int m_field48; + int m_field4C; + int m_field50; + int m_field54; + int m_field58; + int m_field5C; + int m_field60; + int m_field64; + int m_field68; + int m_field6C; + int m_field70; + int m_field74; + int m_field78; + int m_field7C; + int m_field80; + }; +} \ No newline at end of file diff --git a/ReHitman/Glacier/include/Glacier/ZProjectileBallistic.h b/ReHitman/Glacier/include/Glacier/ZProjectileBallistic.h new file mode 100644 index 0000000..66bc3e5 --- /dev/null +++ b/ReHitman/Glacier/include/Glacier/ZProjectileBallistic.h @@ -0,0 +1,59 @@ +#pragma once + +#include +#include + +namespace Glacier { + class ZProjectileBallistic : public ZEventBase { + // vtable + virtual void SetTarget(ZVector3* pTarget); + virtual void SetProjectileInfo(CProjectileActivate* pActivationInfo); + virtual void ShotImpact(COLI* pColi); + + // size (total size is 0xE0, base size is 0x30) + int m_field30; + int m_field34; + int m_field38; + int m_field3C; + int m_field40; + int m_field44; + int m_field48; + int m_field4C; + int m_field50; + int m_field54; + int m_field58; + int m_field5C; + int m_field60; + int m_field64; + int m_field68; + int m_field6C; + int m_field70; + int m_field74; + int m_field78; + int m_field7C; + int m_field80; + int m_field84; + int m_field88; + int m_field8C; + int m_field90; + int m_field94; + int m_field98; + int m_field9C; + int m_fieldA0; + int m_fieldA4; + int m_fieldA8; + int m_fieldAC; + int m_fieldB0; + int m_fieldB4; + int m_fieldB8; + int m_fieldBC; + int m_fieldC0; + int m_fieldC4; + int m_fieldC8; + int m_fieldCC; + int m_fieldD0; + int m_fieldD4; + int m_fieldD8; + int m_fieldDC; + }; +} \ No newline at end of file diff --git a/ReHitman/Glacier/include/Glacier/ZRenderDrawD3D.h b/ReHitman/Glacier/include/Glacier/ZRenderDrawD3D.h new file mode 100644 index 0000000..04fc5ef --- /dev/null +++ b/ReHitman/Glacier/include/Glacier/ZRenderDrawD3D.h @@ -0,0 +1,38 @@ +#pragma once + +namespace Glacier { + class IView; + class ZRenderWintelD3D; + + enum EViewTarget { + DEFAULT_TARGET = 1 + }; + + class ZRenderDrawD3D { + public: + // vftable + virtual bool IsValid(); + virtual bool ShouldFlush(); + virtual void InitAllocation(); + virtual int GetLargestFreeBlock(); // always 0 + virtual void* Alloc(int size, const char* source, unsigned int line); // source and line are unused + virtual void Free(void* ptr, int); + virtual void* AllocSprites(int count); + virtual void FreeSprites(void* ptr, int); + virtual IView* CreateView(ZRenderWintelD3D* pRender, unsigned int, EViewTarget target); + virtual IView* FindView(unsigned int); + virtual IView* GetViewByIndex(int); + virtual void RemoveView(IView* pView); + virtual void RemoveViewsUsingRender(ZRenderWintelD3D* pRender); + virtual void Init(); + virtual void End(); + virtual void Unknown_0(); //? + virtual void Unknown_1(); //? + virtual void Unknown_2(); //? + virtual void NullStub_0(); //? + virtual void Flush(); + /// ... Unknown entities ... + + // size (0x58864) + }; +} \ No newline at end of file diff --git a/ReHitman/Glacier/include/Glacier/ZRenderEntry.h b/ReHitman/Glacier/include/Glacier/ZRenderEntry.h new file mode 100644 index 0000000..03596da --- /dev/null +++ b/ReHitman/Glacier/include/Glacier/ZRenderEntry.h @@ -0,0 +1,68 @@ +#pragma once + +#include + +namespace Glacier +{ + /** + * @brief Really don't understand for what but in some cases field 18, 1C are used. + */ + struct SUnknown1 { + float m_field0; // Some percents? (multiplied by 100.f in sub_477D50) + float m_field4; + float m_field8; + float m_fieldC; + float m_field10; + float m_field14; // Multiplied by field0 & 100.f + int m_field18; // used + int m_field1C; // used + //0x40 - Render View + //0x64 - [ptr] some another ZRenderEntry? + }; + + class ZRenderEntry + { + public: + //vftable + virtual void Release(bool freeMem); //+0x0 + virtual int Unknown1(SUnknown1* pUnknown); //+0x4 + virtual void UpdateEntityTransformAndPosition(); //+0x8 + virtual void Unknown3(); //+0xC + virtual bool Unknown4(int, int, int, int, int); //+0x10 (do nothing) + virtual void Unknown5(); //+0x14 + virtual void Unknown6(); //+0x18 + virtual void Unknown7(); //+0x1C + virtual void Unknown8(); //+0x20 + virtual bool Unknown9(); //+0x24 + virtual ZEntityLocator* GetEntityLocator(); //+0x28 + virtual ZREF GetFrameREF(); //+0x2C + virtual bool Unknown12(); //+0x30 + virtual int Unknown13(); //+0x34 + virtual int Unknown14(); //+0x38 + virtual int Unknown15(); //+0x3C + virtual int Unknown16(); //+0x40 + + //data + int m_field4; + int m_field8; + int m_fieldC; + int m_field10; + int m_field14; + int m_field18; + int m_field1C; + int m_field20; + int m_field24; + char m_field28; + bool m_field29; + char m_field2A; + char m_field2B; + int m_field2C; + uint16_t m_field30; // Some mask? + uint16_t m_field32; // Some counter? (iterates at sub_476EE0) + int m_field34; + int m_field38; + int m_field3C; + int m_field40; + int m_field44; + }; +} \ No newline at end of file diff --git a/ReHitman/Glacier/include/Glacier/ZRenderEntryGeomD3D.h b/ReHitman/Glacier/include/Glacier/ZRenderEntryGeomD3D.h new file mode 100644 index 0000000..65a2293 --- /dev/null +++ b/ReHitman/Glacier/include/Glacier/ZRenderEntryGeomD3D.h @@ -0,0 +1,42 @@ +#pragma once + +#include +#include + +namespace Glacier { + class ZRenderEntryGeomD3D { + public: + // vftable + virtual void Release(bool); + + // data (size 0x9C) + int m_field4; //0x0004 + int m_field8; //0x0008 + int m_fieldC; //0x000C + int m_field10; //0x0010 + int m_field14; //0x0014 + int m_field18; //0x0018 + int m_field1C; //0x001C + int m_field20; //0x0020 + int m_field24; //0x0024 + int m_field28; //0x0028 (possible flag) + unsigned int m_field2C; //0x002C (possible mask) + int m_unkFlag30; //0x0030 (possible mask) + int m_field34; //0x0034 + int m_field38; //0x0038 + int m_field3C; //0x003C + int m_field40; //0x0040 + int m_field44; //0x0044 + Glacier::ZMat3x3 m_transform; //0x0048 + Glacier::ZVector3 m_position; //0x006C + Glacier::ZEntityLocator* m_pEntityLocator0; //0x0078 + int m_field7C; //0x007C + int m_field80; //0x0080 + int m_field84; //0x0084 + int m_field88; //0x0088 + Glacier::ZEntityLocator* m_pEntityLocator; //0x008C + int m_ref; //0x0090 + int m_field94; //0x0094 + Glacier::ZEntityLocator* m_pPlayerEntity; //0x0098 (I'm not sure that this is player entity because sometimes this field is null) + }; +} \ No newline at end of file diff --git a/ReHitman/Glacier/include/Glacier/ZRenderObject.h b/ReHitman/Glacier/include/Glacier/ZRenderObject.h new file mode 100644 index 0000000..6d23273 --- /dev/null +++ b/ReHitman/Glacier/include/Glacier/ZRenderObject.h @@ -0,0 +1,15 @@ +#pragma once + +namespace Glacier +{ + class ZRenderObject + { + public: + //vftable + virtual void Release(bool doFreeMem); + virtual void* CreateInstance(); + virtual int DoSmth(); ///??? + + //data + }; +} \ No newline at end of file diff --git a/ReHitman/Glacier/include/Glacier/ZRenderWintelD3D.h b/ReHitman/Glacier/include/Glacier/ZRenderWintelD3D.h index 893a9e4..e731a6d 100644 --- a/ReHitman/Glacier/include/Glacier/ZRenderWintelD3D.h +++ b/ReHitman/Glacier/include/Glacier/ZRenderWintelD3D.h @@ -1,25 +1,39 @@ #pragma once #include +#include +#include #include namespace Glacier { + class ZRenderDrawD3D; + + struct SLODDef + { + int field0; + int field4; + int field8; + int fieldC; + int field10; + int field14; + int field18; + int field1C; + }; // size 0x20 + class ZRenderWintelD3D { public: - char pad_0004[796]; //0x0004 - HWND m_HWND; //0x0320 - - virtual void Function0(); //+0x0 - virtual void Function1(); //+0x4 - virtual void Function2(); //+0x8 - virtual void Function3(); //+0xc - virtual void Function4(); //+0x10 - virtual void Function5(); //+0x14 - virtual void Function6(); //+0x18 - virtual void Function7(); //+0x1c - virtual void Function8(); //+0x20 + // VTBL + virtual void Release(bool shouldFreeMem); //+0x0 + virtual void Close(); //+0x4 + virtual void CrashClose(); //+0x8 + virtual void SetWideScreen(bool wideScreenMode); //+0xc + virtual void SetLetterBox(bool letterBox); //+0x10 + virtual void SetSurroundGaming(bool); //+0x14 + virtual int ShadowMode(); //+0x18 + virtual void SetCopyToFrontAlpha(uint); //+0x1c (nullstub) + virtual ZRenderDrawD3D* GetDrawBase(); //+0x20 virtual void Function9(); //+0x24 virtual void Function10(); //+0x28 virtual void Function11(); //+0x2c @@ -170,5 +184,488 @@ namespace Glacier virtual void Function156(); //+0x270 virtual void Function157(); //+0x274 virtual void Function158(); //+0x278 + + // Data + int m_field4; //+0x4 + int m_field8; //+0x8 + int m_fieldC; //+0xC + int m_field10; //+0x10 + int m_field14; //+0x14 + int m_field18; //+0x18 + int m_field1C; //+0x1C + int m_field20; //+0x20 + int m_field24; //+0x24 + int m_field28; //+0x28 + int m_field2C; //+0x2C + int m_field30; //+0x30 + int m_field34; //+0x34 + int m_field38; //+0x38 + int m_field3C; //+0x3C + int m_field40; //+0x40 + int m_field44; //+0x44 + int m_field48; //+0x48 + int m_field4C; //+0x4C + int m_field50; //+0x50 + int m_field54; //+0x54 + int m_field58; //+0x58 + int m_field5C; //+0x5C + int m_field60; //+0x60 + int m_field64; //+0x64 + int m_field68; //+0x68 + int m_field6C; //+0x6C + int m_field70; //+0x70 + int m_field74; //+0x74 + int m_field78; //+0x78 + int m_field7C; //+0x7C + int m_field80; //+0x80 + int m_field84; //+0x84 + int m_field88; //+0x88 + int m_field8C; //+0x8C + int m_field90; //+0x90 + int m_field94; //+0x94 + int m_field98; //+0x98 + int m_field9C; //+0x9C + int m_fieldA0; //+0xA0 + int m_fieldA4; //+0xA4 + int m_fieldA8; //+0xA8 + int m_fieldAC; //+0xAC + int m_fieldB0; //+0xB0 + int m_fieldB4; //+0xB4 + int m_fieldB8; //+0xB8 + int m_fieldBC; //+0xBC + int m_fieldC0; //+0xC0 + int m_fieldC4; //+0xC4 + int m_fieldC8; //+0xC8 + int m_fieldCC; //+0xCC + int m_fieldD0; //+0xD0 + int m_fieldD4; //+0xD4 + int m_fieldD8; //+0xD8 + int m_fieldDC; //+0xDC + int m_fieldE0; //+0xE0 + int m_fieldE4; //+0xE4 + int m_fieldE8; //+0xE8 + int m_fieldEC; //+0xEC + int m_fieldF0; //+0xF0 + int m_fieldF4; //+0xF4 + int m_fieldF8; //+0xF8 + int m_fieldFC; //+0xFC + int m_field100; //+0x100 + int m_field104; //+0x104 + int m_field108; //+0x108 + int m_field10C; //+0x10C + int m_field110; //+0x110 + int m_field114; //+0x114 + int m_field118; //+0x118 + int m_field11C; //+0x11C + int m_field120; //+0x120 + int m_field124; //+0x124 + int m_field128; //+0x128 + int m_field12C; //+0x12C + int m_field130; //+0x130 + int m_field134; //+0x134 + int m_field138; //+0x138 + int m_field13C; //+0x13C + int m_field140; //+0x140 + int m_field144; //+0x144 + int m_field148; //+0x148 + int m_field14C; //+0x14C + int m_field150; //+0x150 + int m_field154; //+0x154 + int m_field158; //+0x158 + int m_field15C; //+0x15C + int m_field160; //+0x160 + int m_field164; //+0x164 + int m_field168; //+0x168 + int m_field16C; //+0x16C + int m_field170; //+0x170 + int m_field174; //+0x174 + int m_field178; //+0x178 + int m_field17C; //+0x17C + int m_field180; //+0x180 + int m_field184; //+0x184 + int m_field188; //+0x188 + int m_field18C; //+0x18C + int m_field190; //+0x190 + int m_field194; //+0x194 + int m_field198; //+0x198 + int m_field19C; //+0x19C + int m_field1A0; //+0x1A0 + int m_field1A4; //+0x1A4 + int m_field1A8; //+0x1A8 + int m_field1AC; //+0x1AC + int m_field1B0; //+0x1B0 + int m_field1B4; //+0x1B4 + int m_field1B8; //+0x1B8 + int m_field1BC; //+0x1BC + int m_field1C0; //+0x1C0 + int m_field1C4; //+0x1C4 + int m_field1C8; //+0x1C8 + int m_field1CC; //+0x1CC + int m_field1D0; //+0x1D0 + int m_field1D4; //+0x1D4 + int m_field1D8; //+0x1D8 + int m_field1DC; //+0x1DC + int m_field1E0; //+0x1E0 + int m_field1E4; //+0x1E4 + int m_field1E8; //+0x1E8 + int m_field1EC; //+0x1EC + int m_field1F0; //+0x1F0 + int m_field1F4; //+0x1F4 + int m_field1F8; //+0x1F8 + int m_field1FC; //+0x1FC + int m_field200; //+0x200 + int m_field204; //+0x204 + int m_field208; //+0x208 + int m_field20C; //+0x20C + int m_field210; //+0x210 + int m_field214; //+0x214 + int m_field218; //+0x218 + int m_shadowMode; //+0x21C + int m_field220; //+0x220 + int m_field224; //+0x224 + int m_field228; //+0x228 + int m_field22C; //+0x22C + int m_field230; //+0x230 + int m_field234; //+0x234 + int m_field238; //+0x238 + int m_field23C; //+0x23C + int m_field240; //+0x240 + int m_field244; //+0x244 + int m_field248; //+0x248 + int m_field24C; //+0x24C + int m_field250; //+0x250 + int m_field254; //+0x254 + int m_field258; //+0x258 + int m_field25C; //+0x25C + int m_field260; //+0x260 + int m_field264; //+0x264 + int m_field268; //+0x268 + int m_field26C; //+0x26C + int m_field270; //+0x270 + int m_field274; //+0x274 + int m_field278; //+0x278 + int m_field27C; //+0x27C + int m_field280; //+0x280 + int m_field284; //+0x284 + int m_field288; //+0x288 + int m_field28C; //+0x28C + int m_frameUpdateInterval; //+0x290 + Glacier::ZVector3 m_mousePos; //0x294 (in 3D space) In Range {[-0.5f; 0.5f]; [-0.5f; 0.5f]; [0.f, 0.f]} + int m_field2A0; //+0x2A0 + int m_field2A4; //+0x2A4 + bool m_mouse0; //+0x2A8 (DOES NOT WORK) + bool m_mouse1; //+0x2A9 (DOES NOT WORK) + bool m_mouse2; //+0x2AA (DOES NOT WORK) + char m_pad2AB; //+0x2AB + int m_field2AC; //+0x2AC + int m_field2B0; //+0x2B0 + int m_field2B4; //+0x2B4 + bool m_field2B8; //0x2B8 + bool m_bWideScreenMode; //0x2B9 + bool m_bLetterBox; //0x2BA + bool m_field2BB; //0x2BB + int m_sizeX; //+0x2BC (READ ONLY) + int m_sizeY; //+0x2C0 (READ ONLY) + LINKSORTREFTAB m_lnkSortREFTAB_2C4; //0x2C4 + int m_field2F0; //+0x2F0 + Glacier::ZVector2 m_fontSize; //0x2F4; + int m_pRenderDraw; //+0x2FC + int m_field300; //+0x300 + int m_field304; //+0x304 + int m_field308; //+0x308 + int m_field30C; //+0x30C + int m_field310; //+0x310 + int m_field314; //+0x314 + int m_field318; //+0x318 + int m_field31C; //+0x31C + HWND m_HWND; // 0x320 + int m_unkPoolElementsCount; //0x0324 + int m_unkPool[1024]; //0x0328 + int m_field1328; //+0x1328 + int m_field132C; //+0x132C + int m_field1330; //+0x1330 + int m_field1334; //+0x1334 + int m_field1338; //+0x1338 + int m_field133C; //+0x133C + int m_field1340; //+0x1340 + int m_field1344; //+0x1344 + bool m_bDisableRender; //0x1348 NOTE: Be aware, this flag stops all rendering, includes ImGUI overlay + char m_pad1349; //+0x1349 + char m_pad134A; //+0x134A + char m_pad134B; //+0x134B + int m_field134C; //+0x134C + int m_field1350; //+0x1350 + int m_field1354; //+0x1354 + int m_field1358; //+0x1358 + int m_field135C; //+0x135C + int m_field1360; //+0x1360 + int m_field1364; //+0x1364 + int m_field1368; //+0x1368 + int m_field136C; //+0x136C + int m_field1370; //+0x1370 + int m_field1374; //+0x1374 + int m_field1378; //+0x1378 + int m_field137C; //+0x137C + int m_field1380; //+0x1380 + int m_field1384; //+0x1384 + int m_field1388; //+0x1388 + int m_field138C; //+0x138C + int m_field1390; //+0x1390 + int m_field1394; //+0x1394 + int m_field1398; //+0x1398 + int m_field139C; //+0x139C + int m_field13A0; //+0x13A0 + int m_field13A4; //+0x13A4 + int m_field13A8; //+0x13A8 + int m_field13AC; //+0x13AC + int m_field13B0; //+0x13B0 + int m_field13B4; //+0x13B4 + int m_field13B8; //+0x13B8 + int m_field13BC; //+0x13BC + int m_field13C0; //+0x13C0 + int m_field13C4; //+0x13C4 + int m_field13C8; //+0x13C8 + int m_field13CC; //+0x13CC + int m_field13D0; //+0x13D0 + int m_field13D4; //+0x13D4 + int m_field13D8; //+0x13D8 + int m_field13DC; //+0x13DC + int m_field13E0; //+0x13E0 + int m_field13E4; //+0x13E4 + int m_field13E8; //+0x13E8 + int m_field13EC; //+0x13EC + int m_field13F0; //+0x13F0 + int m_field13F4; //+0x13F4 + int m_field13F8; //+0x13F8 + int m_field13FC; //+0x13FC + int m_field1400; //+0x1400 + int m_field1404; //+0x1404 + int m_field1408; //+0x1408 + int m_field140C; //+0x140C + int m_field1410; //+0x1410 + int m_field1414; //+0x1414 + int m_field1418; //+0x1418 + int m_field141C; //+0x141C + int m_field1420; //+0x1420 + int m_field1424; //+0x1424 + int m_field1428; //+0x1428 + int m_field142C; //+0x142C + int m_field1430; //+0x1430 + int m_field1434; //+0x1434 + int m_field1438; //+0x1438 + int m_field143C; //+0x143C + int m_field1440; //+0x1440 + int m_field1444; //+0x1444 + int m_field1448; //+0x1448 + int m_field144C; //+0x144C + int m_field1450; //+0x1450 + int m_field1454; //+0x1454 + int m_field1458; //+0x1458 + int m_field145C; //+0x145C + int m_field1460; //+0x1460 + int m_field1464; //+0x1464 + int m_field1468; //+0x1468 + int m_field146C; //+0x146C + int m_field1470; //+0x1470 + int m_field1474; //+0x1474 + int m_field1478; //+0x1478 + int m_field147C; //+0x147C + int m_field1480; //+0x1480 + int m_field1484; //+0x1484 + int m_field1488; //+0x1488 + int m_field148C; //+0x148C + int m_field1490; //+0x1490 + int m_field1494; //+0x1494 + int m_field1498; //+0x1498 + int m_field149C; //+0x149C + int m_field14A0; //+0x14A0 + int m_field14A4; //+0x14A4 + int m_field14A8; //+0x14A8 + int m_field14AC; //+0x14AC + int m_field14B0; //+0x14B0 + int m_field14B4; //+0x14B4 + int m_field14B8; //+0x14B8 + int m_field14BC; //+0x14BC + int m_field14C0; //+0x14C0 + int m_field14C4; //+0x14C4 + int m_field14C8; //+0x14C8 + int m_field14CC; //+0x14CC + int m_field14D0; //+0x14D0 + int m_field14D4; //+0x14D4 + int m_field14D8; //+0x14D8 + int m_field14DC; //+0x14DC + int m_field14E0; //+0x14E0 + int m_field14E4; //+0x14E4 + int m_field14E8; //+0x14E8 + int m_field14EC; //+0x14EC + int m_field14F0; //+0x14F0 + int m_field14F4; //+0x14F4 + int m_field14F8; //+0x14F8 + int m_field14FC; //+0x14FC + int m_field1500; //+0x1500 + int m_field1504; //+0x1504 + int m_field1508; //+0x1508 + int m_field150C; //+0x150C + int m_field1510; //+0x1510 + int m_field1514; //+0x1514 + int m_field1518; //+0x1518 + int m_field151C; //+0x151C + int m_field1520; //+0x1520 + int m_field1524; //+0x1524 + int m_field1528; //+0x1528 + int m_field152C; //+0x152C + int m_field1530; //+0x1530 + int m_field1534; //+0x1534 + int m_field1538; //+0x1538 + int m_field153C; //+0x153C + int m_field1540; //+0x1540 + int m_field1544; //+0x1544 + int m_field1548; //+0x1548 + int m_field154C; //+0x154C + int m_field1550; //+0x1550 + int m_field1554; //+0x1554 + int m_field1558; //+0x1558 + int m_field155C; //+0x155C + int m_field1560; //+0x1560 + int m_field1564; //+0x1564 + int m_field1568; //+0x1568 + int m_field156C; //+0x156C + int m_field1570; //+0x1570 + int m_field1574; //+0x1574 + int m_field1578; //+0x1578 + int m_field157C; //+0x157C + int m_field1580; //+0x1580 + int m_field1584; //+0x1584 + int m_field1588; //+0x1588 + int m_field158C; //+0x158C + int m_field1590; //+0x1590 + int m_field1594; //+0x1594 + int m_field1598; //+0x1598 + int m_field159C; //+0x159C + int m_field15A0; //+0x15A0 + int m_field15A4; //+0x15A4 + int m_field15A8; //+0x15A8 + int m_field15AC; //+0x15AC + int m_field15B0; //+0x15B0 + int m_field15B4; //+0x15B4 + int m_field15B8; //+0x15B8 + int m_field15BC; //+0x15BC + int m_field15C0; //+0x15C0 + int m_field15C4; //+0x15C4 + int m_field15C8; //+0x15C8 + int m_field15CC; //+0x15CC + int m_field15D0; //+0x15D0 + int m_field15D4; //+0x15D4 + int m_field15D8; //+0x15D8 + int m_field15DC; //+0x15DC + int m_field15E0; //+0x15E0 + int m_field15E4; //+0x15E4 + int m_field15E8; //+0x15E8 + int m_field15EC; //+0x15EC + int m_field15F0; //+0x15F0 + int m_field15F4; //+0x15F4 + int m_field15F8; //+0x15F8 + int m_field15FC; //+0x15FC + int m_field1600; //+0x1600 + int m_field1604; //+0x1604 + int m_field1608; //+0x1608 + int m_field160C; //+0x160C + int m_field1610; //+0x1610 + int m_field1614; //+0x1614 + int m_field1618; //+0x1618 + int m_field161C; //+0x161C + int m_field1620; //+0x1620 + int m_field1624; //+0x1624 + int m_field1628; //+0x1628 + int m_field162C; //+0x162C + int m_field1630; //+0x1630 + int m_field1634; //+0x1634 + int m_field1638; //+0x1638 + int m_field163C; //+0x163C + int m_field1640; //+0x1640 + int m_field1644; //+0x1644 + int m_field1648; //+0x1648 + int m_field164C; //+0x164C + int m_field1650; //+0x1650 + int m_field1654; //+0x1654 + int m_field1658; //+0x1658 + int m_field165C; //+0x165C + int m_field1660; //+0x1660 + int m_field1664; //+0x1664 + int m_field1668; //+0x1668 + int m_field166C; //+0x166C + int m_field1670; //+0x1670 + int m_field1674; //+0x1674 + int m_field1678; //+0x1678 + int m_field167C; //+0x167C + int m_field1680; //+0x1680 + int m_field1684; //+0x1684 + int m_field1688; //+0x1688 + int m_field168C; //+0x168C + int m_field1690; //+0x1690 + int m_field1694; //+0x1694 + int m_field1698; //+0x1698 + int m_field169C; //+0x169C + int m_field16A0; //+0x16A0 + int m_field16A4; //+0x16A4 + int m_field16A8; //+0x16A8 + int m_field16AC; //+0x16AC + int m_field16B0; //+0x16B0 + int m_field16B4; //+0x16B4 + int m_field16B8; //+0x16B8 + int m_field16BC; //+0x16BC + int m_field16C0; //+0x16C0 + int m_field16C4; //+0x16C4 + int m_field16C8; //+0x16C8 + int m_field16CC; //+0x16CC + int m_field16D0; //+0x16D0 + int m_field16D4; //+0x16D4 + int m_field16D8; //+0x16D8 + int m_field16DC; //+0x16DC + int m_field16E0; //+0x16E0 + int m_field16E4; //+0x16E4 + int m_field16E8; //+0x16E8 + int m_field16EC; //+0x16EC + int m_field16F0; //+0x16F0 + int m_field16F4; //+0x16F4 + int m_field16F8; //+0x16F8 + int m_field16FC; //+0x16FC + int m_field1700; //+0x1700 + int m_field1704; //+0x1704 + int m_field1708; //+0x1708 + int m_field170C; //+0x170C + int m_field1710; //+0x1710 + int m_field1714; //+0x1714 + int m_field1718; //+0x1718 + int m_field171C; //+0x171C + int m_field1720; //+0x1720 + int m_field1724; //+0x1724 + int m_field1728; //+0x1728 + int m_field172C; //+0x172C + int m_field1730; //+0x1730 + int m_field1734; //+0x1734 + int m_field1738; //+0x1738 + int m_field173C; //+0x173C + int m_field1740; //+0x1740 + int m_field1744; //+0x1744 + int m_field1748; //+0x1748 + int m_field174C; //+0x174C + int m_field1750; //+0x1750 + int m_field1754; //+0x1754 + int m_field1758; //+0x1758 + int m_field175C; //+0x175C + int m_field1760; //+0x1760 + int m_field1764; //+0x1764 + int m_field1768; //+0x1768 + int m_field176C; //+0x176C + int m_field1770; //+0x1770 + int m_field1774; //+0x1774 + int m_field1778; //+0x1778 + int m_field177C; //+0x177C + int m_field1780; //+0x1780 + int m_field1784; //+0x1784 + int m_field1788; //+0x1788 + int m_field178C; //+0x178C + int m_field1790; //+0x1790 }; //Size: 0x0324 } \ No newline at end of file diff --git a/ReHitman/Glacier/include/Glacier/ZRenderWintelD3DDll.h b/ReHitman/Glacier/include/Glacier/ZRenderWintelD3DDll.h index d954dff..b9f4ecd 100644 --- a/ReHitman/Glacier/include/Glacier/ZRenderWintelD3DDll.h +++ b/ReHitman/Glacier/include/Glacier/ZRenderWintelD3DDll.h @@ -64,12 +64,12 @@ namespace Glacier virtual void Function_46(); // data - char *m_dllName; - HMODULE m_dllHandle; - int m_fieldC; - int m_field10; - ZTextureManagerD3D *m_textureManager; - int m_primControlWintel; + char *m_dllName; //0x4 + HMODULE m_dllHandle; //0x8 + int m_fieldC; //0xC + int m_field10; //0x10 + ZTextureManagerD3D *m_textureManager; //0x14 + ZPrimControlWintel* m_primControlWintel; //0x18 int m_materialBuffer; char *m_prmBuffer; char *m_prmEndOfBuffer; diff --git a/ReHitman/Glacier/include/Glacier/ZSTL/REFTAB.h b/ReHitman/Glacier/include/Glacier/ZSTL/REFTAB.h index c0bec57..e1509be 100644 --- a/ReHitman/Glacier/include/Glacier/ZSTL/REFTAB.h +++ b/ReHitman/Glacier/include/Glacier/ZSTL/REFTAB.h @@ -5,6 +5,12 @@ namespace Glacier { + struct RefRun { + int m_field0; + int m_field4; + int m_field8; + }; + class REFTAB { public: diff --git a/ReHitman/Glacier/include/Glacier/ZSTL/ZLIST.h b/ReHitman/Glacier/include/Glacier/ZSTL/ZLIST.h index decbab7..4d1f2bb 100644 --- a/ReHitman/Glacier/include/Glacier/ZSTL/ZLIST.h +++ b/ReHitman/Glacier/include/Glacier/ZSTL/ZLIST.h @@ -16,6 +16,7 @@ namespace Glacier /// === vftable === virtual void SendCommandToList(Glacier::ZMSGID command, Glacier::ZDATA data); virtual void AddGeom(unsigned int); + virtual void AddGeom(ZGEOM*); virtual void RemoveGeomById(unsigned int); virtual void RemoveGeomByPtr(ZGEOM*); virtual void AddMeshNrs(MeshNrs*); diff --git a/ReHitman/Glacier/include/Glacier/ZSTL/ZMath.h b/ReHitman/Glacier/include/Glacier/ZSTL/ZMath.h index 9f38072..875be2a 100644 --- a/ReHitman/Glacier/include/Glacier/ZSTL/ZMath.h +++ b/ReHitman/Glacier/include/Glacier/ZSTL/ZMath.h @@ -1,42 +1,69 @@ #pragma once #include +#include namespace Glacier { struct Vector2 : public UseManagedAllocator { float x = 0.f, y = 0.f; + + bool operator==(const Vector2& with) const { + return x == with.x && y == with.y; + } }; struct Vector3 : public UseManagedAllocator { float x = 0.f, y = 0.f, z = 0.f; + + Vector3() = default; + Vector3(float _x, float _y, float _z) : x(_x), y(_y), z(_z) {} + + bool operator==(const Vector3& with) const { + return x == with.x && y == with.y && z == with.z; + } }; struct Vector4 : public UseManagedAllocator { float x = 0.f, y = 0.f, z = 0.f, w = 0.f; - }; - struct ZRGB : public UseManagedAllocator - { - float r = 0.f, g = 0.f, b = 0.f; - }; + Vector4() = default; + Vector4(float _x, float _y, float _z, float _w) : x(_x), y(_y), z(_z), w(_w) {} - struct ZRGBA : public UseManagedAllocator - { - float r = 0.f, g = 0.f, b = 0.f, a = 0.f; + bool operator==(const Vector4& with) const { + return x == with.x && y == with.y && z == with.z && w == with.w; + } }; struct Matrix3x3 : public UseManagedAllocator { float data[9]; + + Matrix3x3() = default; + Matrix3x3(float _m00, float _m01, float _m02, float _m10, float _m11, float _m12, float _m20, float _m21, float _m22) + { + #define FILL_GROUP(d, si, a1, a2, a3) d[si] = a1; d[si+1] = a2; d[si+2] = a3; + FILL_GROUP(data, 0, _m00, _m01, _m02) + FILL_GROUP(data, 3, _m10, _m11, _m12) + FILL_GROUP(data, 6, _m20, _m21, _m22) + #undef FILL_GROUP + } + + bool operator==(const Matrix3x3& with) const { + return std::equal(std::begin(data), std::end(data), std::begin(with.data), std::end(with.data)); + } }; struct Matrix4x4 : public UseManagedAllocator { float data[16]; + + bool operator==(const Matrix4x4& with) const { + return std::equal(std::begin(data), std::end(data), std::begin(with.data), std::end(with.data)); + } }; using ZVector2 = Vector2; diff --git a/ReHitman/Glacier/include/Glacier/ZScriptC.h b/ReHitman/Glacier/include/Glacier/ZScriptC.h new file mode 100644 index 0000000..8986d29 --- /dev/null +++ b/ReHitman/Glacier/include/Glacier/ZScriptC.h @@ -0,0 +1,19 @@ +#pragma once + +#include + +namespace Glacier +{ + class ZScriptC : public ZEventBase + { + public: + // vftable + + // api + int FindScript(const char* scriptName); + + // data (0x38) + int m_field30; //m_pScriptsTable + int m_field34; + }; +} \ No newline at end of file diff --git a/ReHitman/Glacier/include/Glacier/ZTextureManagerD3D.h b/ReHitman/Glacier/include/Glacier/ZTextureManagerD3D.h index f6ce6ec..61fbc4b 100644 --- a/ReHitman/Glacier/include/Glacier/ZTextureManagerD3D.h +++ b/ReHitman/Glacier/include/Glacier/ZTextureManagerD3D.h @@ -1,6 +1,7 @@ #pragma once #include +#include #include namespace Glacier @@ -48,7 +49,7 @@ namespace Glacier // data char m_buffer[kLocalBufferSize]; //0x4 - ZDirect3DDevice* m_device; //0x22004 + Hitman::BloodMoney::Engine::ZDirect3DDevice* m_device; //0x22004 int field_22008; int field_2200C; int field_22010; diff --git a/ReHitman/Glacier/include/Glacier/ZTypeTraits.h b/ReHitman/Glacier/include/Glacier/ZTypeTraits.h new file mode 100644 index 0000000..1117d24 --- /dev/null +++ b/ReHitman/Glacier/include/Glacier/ZTypeTraits.h @@ -0,0 +1,72 @@ +#pragma once + +#include +#include +#include +#include + +#include + +namespace Glacier +{ + template + struct ZCast; + + template <> + struct ZCast + { + static bool IsBasedOn(Glacier::ZGEOM* pGeom) { + if (!pGeom) return false; + + int* m_Mask = (int*)0x00972988; + int* m_Id = (int*)0x00972984; + + return ((*m_Mask) & pGeom->GetObjectId()) == (*m_Id); + } + }; + + template <> + struct ZCast + { + static bool IsBasedOn(Glacier::ZGEOM* pGeom) { + if (!pGeom) return false; + + int* m_Mask_ZHM3Actor = (int*)0x009B11E0; + int* m_Id_ZHM3Actor = (int*)0x009B11E4; + + int* m_Mask_ZActor = (int*)0x0097BD64; + int* m_Id_ZActor = (int*)0x0097BD60; + + const bool isZHM3Actor = ((*m_Mask_ZHM3Actor) & pGeom->GetObjectId()) == (*m_Id_ZHM3Actor); + const bool isZActor = ((*m_Mask_ZActor) & pGeom->GetObjectId()) == (*m_Id_ZActor); + + return isZHM3Actor || isZActor; + } + }; + + template <> + struct ZCast + { + static bool IsBasedOn(Glacier::ZGEOM* pGeom) { + if (!pGeom) return false; + + int* m_Mask_ZCAMERA = (int*)0x009727BC; + int* m_Id_ZCAMERA = (int*)0x009727B8; + + return ((*m_Mask_ZCAMERA) & pGeom->GetObjectId()) == (*m_Id_ZCAMERA); + } + }; + + template <> + struct ZCast + { + static bool IsBasedOn(Glacier::ZGEOM* pGeom) { + if (!pGeom) return false; + + int* m_Mask_ZSNDOBJ = (int*)0x0097B5FC; + int* m_Id_ZSNDOBJ = (int*)0x0097B5F8; + + return ((*m_Mask_ZSNDOBJ) & pGeom->GetObjectId()) == (*m_Id_ZSNDOBJ); + } + }; +} \ No newline at end of file diff --git a/ReHitman/Glacier/include/Glacier/ZWinEvents.h b/ReHitman/Glacier/include/Glacier/ZWinEvents.h index 6e1a738..4c3d0cd 100644 --- a/ReHitman/Glacier/include/Glacier/ZWinEvents.h +++ b/ReHitman/Glacier/include/Glacier/ZWinEvents.h @@ -1,7 +1,11 @@ #pragma once +#include + namespace Glacier { + using SMouseColi = Glacier::Vector4; + enum EWMEventType { OPEN_WINDOW = 0x100, diff --git a/ReHitman/Glacier/source/CCom.cpp b/ReHitman/Glacier/source/CCom.cpp new file mode 100644 index 0000000..19bc92c --- /dev/null +++ b/ReHitman/Glacier/source/CCom.cpp @@ -0,0 +1,29 @@ +#include +#include +#include + +namespace Glacier { + const char* CCom::Ent::GetKey() { + return reinterpret_cast(this) + 0xC; + } + + std::intptr_t CCom::Ent::GetValue() { + return *reinterpret_cast(reinterpret_cast(reinterpret_cast(this) + 0xC + m_iKeyLength)); + } + + CCom::Ent* CCom::GetPVal(const char *psName, int iSize) { + assert(psName != nullptr); + assert(iSize > 0); + assert(G1ConfigurationService::G1API_FunctionAddress_CCom_GetpVal != G1ConfigurationService::kNotConfiguredOption); + + if (!psName || !iSize) { + return nullptr; + } + + if (G1ConfigurationService::G1API_FunctionAddress_CCom_GetpVal != G1ConfigurationService::kNotConfiguredOption) { + return ((CCom::Ent*(__thiscall*)(CCom*, const char*, int))G1ConfigurationService::G1API_FunctionAddress_CCom_GetpVal)(this, psName, iSize); + } + + return nullptr; + } +} \ No newline at end of file diff --git a/ReHitman/Glacier/source/CConfiguration.cpp b/ReHitman/Glacier/source/CConfiguration.cpp new file mode 100644 index 0000000..057f877 --- /dev/null +++ b/ReHitman/Glacier/source/CConfiguration.cpp @@ -0,0 +1,18 @@ +#include +#include + +namespace Glacier +{ + bool CConfiguration::CanShowSubtitles() { + if (G1ConfigurationService::G1API_InstanceAddress_CConfiguration_bSubtitles != G1ConfigurationService::kNotConfiguredOption) { + return *reinterpret_cast(G1ConfigurationService::G1API_InstanceAddress_CConfiguration_bSubtitles); + } + return false; + } + + void CConfiguration::SetCanShowSubtitles(bool value) { + if (G1ConfigurationService::G1API_InstanceAddress_CConfiguration_bSubtitles != G1ConfigurationService::kNotConfiguredOption) { + *reinterpret_cast(G1ConfigurationService::G1API_InstanceAddress_CConfiguration_bSubtitles) = value; + } + } +} \ No newline at end of file diff --git a/ReHitman/Glacier/source/CInventory.cpp b/ReHitman/Glacier/source/CInventory.cpp new file mode 100644 index 0000000..166e0b9 --- /dev/null +++ b/ReHitman/Glacier/source/CInventory.cpp @@ -0,0 +1,24 @@ +#include +#include +#include + +namespace Glacier +{ + Glacier::ZItem* CInventory::AddItem(Glacier::ZREF itemREF) + { + assert(G1ConfigurationService::G1API_FunctionAddress_CInventory_AddItem != G1ConfigurationService::kNotConfiguredOption); + if (G1ConfigurationService::G1API_FunctionAddress_CInventory_AddItem != G1ConfigurationService::kNotConfiguredOption) { + return ((Glacier::ZItem*(__thiscall*)(Glacier::CInventory*, Glacier::ZREF))(G1ConfigurationService::G1API_FunctionAddress_CInventory_AddItem))(this, itemREF); + } + + return 0; + } + + void CInventory::RemoveItem(Glacier::ZREF itemREF) + { + assert(G1ConfigurationService::G1API_FunctionAddress_CInventory_RemoveItem != G1ConfigurationService::kNotConfiguredOption); + if (G1ConfigurationService::G1API_FunctionAddress_CInventory_RemoveItem != G1ConfigurationService::kNotConfiguredOption) { + ((void(__thiscall*)(Glacier::CInventory*, Glacier::ZREF))(G1ConfigurationService::G1API_FunctionAddress_CInventory_RemoveItem))(this, itemREF); + } + } +} \ No newline at end of file diff --git a/ReHitman/Glacier/source/G1ConfigurationService.cpp b/ReHitman/Glacier/source/G1ConfigurationService.cpp index 3f7d767..693bd08 100644 --- a/ReHitman/Glacier/source/G1ConfigurationService.cpp +++ b/ReHitman/Glacier/source/G1ConfigurationService.cpp @@ -9,10 +9,13 @@ namespace Glacier std::intptr_t G1ConfigurationService::G1API_FunctionAddress_ZGROUP_IsRoot = G1ConfigurationService::kNotConfiguredOption; std::intptr_t G1ConfigurationService::G1API_FunctionAddress_ZGEOM_GetMatPos = G1ConfigurationService::kNotConfiguredOption; + std::intptr_t G1ConfigurationService::G1API_FunctionAddress_ZGEOM_GetRootTM = G1ConfigurationService::kNotConfiguredOption; std::intptr_t G1ConfigurationService::G1API_FunctionAddress_ZGEOM_RefToPtr = G1ConfigurationService::kNotConfiguredOption; + std::intptr_t G1ConfigurationService::G1API_FunctionAddress_ZGEOM_GetRef = G1ConfigurationService::kNotConfiguredOption; std::intptr_t G1ConfigurationService::G1API_FunctionAddress_ZHumanBoid_SetTarget = G1ConfigurationService::kNotConfiguredOption; + std::intptr_t G1ConfigurationService::G1API_FunctionAddress_ZBaseGeom_DoInit = G1ConfigurationService::kNotConfiguredOption; std::intptr_t G1ConfigurationService::G1API_FunctionAddress_ZBaseGeom_ParentGroup = G1ConfigurationService::kNotConfiguredOption; std::intptr_t G1ConfigurationService::G1API_FunctionAddress_ZBaseGeom_SetName = G1ConfigurationService::kNotConfiguredOption; std::intptr_t G1ConfigurationService::G1API_FunctionAddress_ZBaseGeom_SetPrim = G1ConfigurationService::kNotConfiguredOption; @@ -46,4 +49,40 @@ namespace Glacier std::intptr_t G1ConfigurationService::G1API_FunctionAddress_ZHash_int_SMatPos_Put = G1ConfigurationService::kNotConfiguredOption; std::intptr_t G1ConfigurationService::G1API_FunctionAddress_ZHash_int_SMatPos_Clear = G1ConfigurationService::kNotConfiguredOption; std::intptr_t G1ConfigurationService::G1API_FunctionAddress_ZHash_int_SMatPos_Find = G1ConfigurationService::kNotConfiguredOption; + + std::intptr_t G1ConfigurationService::G1API_FunctionAddress_ZEngineDataBase_GetSceneCom = G1ConfigurationService::kNotConfiguredOption; + std::intptr_t G1ConfigurationService::G1API_FunctionAddress_ZEngineDataBase_SRefToPtr = G1ConfigurationService::kNotConfiguredOption; + + std::intptr_t G1ConfigurationService::G1API_FunctionAddress_CInventory_AddItem = G1ConfigurationService::kNotConfiguredOption; + std::intptr_t G1ConfigurationService::G1API_FunctionAddress_CInventory_RemoveItem = G1ConfigurationService::kNotConfiguredOption; + + std::intptr_t G1ConfigurationService::G1API_FunctionAddress_ZSNDOBJ_AttachToDefaultRoom = G1ConfigurationService::kNotConfiguredOption; + + std::intptr_t G1ConfigurationService::G1API_FunctionAddress_GetGQC = G1ConfigurationService::kNotConfiguredOption; + + std::intptr_t G1ConfigurationService::G1API_FunctionAddress_ZScriptC_FindScript = G1ConfigurationService::kNotConfiguredOption; + + std::intptr_t G1ConfigurationService::G1API_FunctionAddress_ZAction_AddAction = G1ConfigurationService::kNotConfiguredOption; + std::intptr_t G1ConfigurationService::G1API_FunctionAddress_ZAction_Show = G1ConfigurationService::kNotConfiguredOption; + std::intptr_t G1ConfigurationService::G1API_FunctionAddress_ZAction_Hide = G1ConfigurationService::kNotConfiguredOption; + + std::intptr_t G1ConfigurationService::G1API_FunctionAddress_ZCameraSpace_AssignOperator = G1ConfigurationService::kNotConfiguredOption; + std::intptr_t G1ConfigurationService::G1API_FunctionAddress_ZCameraSpace_IsMirror = G1ConfigurationService::kNotConfiguredOption; + std::intptr_t G1ConfigurationService::G1API_FunctionAddress_ZCameraSpace_IsMain = G1ConfigurationService::kNotConfiguredOption; + std::intptr_t G1ConfigurationService::G1API_FunctionAddress_ZCameraSpace_Proj2D = G1ConfigurationService::kNotConfiguredOption; + std::intptr_t G1ConfigurationService::G1API_FunctionAddress_ZCameraSpace_Proj3D = G1ConfigurationService::kNotConfiguredOption; + std::intptr_t G1ConfigurationService::G1API_FunctionAddress_ZCameraSpace_GetLocalMatPos = G1ConfigurationService::kNotConfiguredOption; + std::intptr_t G1ConfigurationService::G1API_FunctionAddress_ZCameraSpace_TransformInversMatPos = G1ConfigurationService::kNotConfiguredOption; + std::intptr_t G1ConfigurationService::G1API_FunctionAddress_ZCameraSpace_GetViewport = G1ConfigurationService::kNotConfiguredOption; + std::intptr_t G1ConfigurationService::G1API_FunctionAddress_CCom_GetpVal = G1ConfigurationService::kNotConfiguredOption; + std::intptr_t G1ConfigurationService::G1API_FunctionAddress_CCom_GetVal = G1ConfigurationService::kNotConfiguredOption; + std::intptr_t G1ConfigurationService::G1API_FunctionAddress_ZENVIRONMENT_ToggleColor = G1ConfigurationService::kNotConfiguredOption; + std::intptr_t G1ConfigurationService::G1API_FunctionAddress_ZENVIRONMENT_SetDiffuseColor = G1ConfigurationService::kNotConfiguredOption; + std::intptr_t G1ConfigurationService::G1API_FunctionAddress_ZGameStats_IncreaseCurrentShotCount = G1ConfigurationService::kNotConfiguredOption; + std::intptr_t G1ConfigurationService::G1API_FunctionAddress_ZGameStats_DecreaseCurrentShotCount = G1ConfigurationService::kNotConfiguredOption; + std::intptr_t G1ConfigurationService::G1API_FunctionAddress_ZActorHeroCheckInside_IsInside = G1ConfigurationService::kNotConfiguredOption; + + std::intptr_t G1ConfigurationService::G1API_InstanceAddress_ZEngineGeomControl = G1ConfigurationService::kNotConfiguredOption; + + std::intptr_t G1ConfigurationService::G1API_InstanceAddress_CConfiguration_bSubtitles = G1ConfigurationService::kNotConfiguredOption; } \ No newline at end of file diff --git a/ReHitman/Glacier/source/Geom/ZENVIRONMENT.cpp b/ReHitman/Glacier/source/Geom/ZENVIRONMENT.cpp new file mode 100644 index 0000000..004b6fc --- /dev/null +++ b/ReHitman/Glacier/source/Geom/ZENVIRONMENT.cpp @@ -0,0 +1,19 @@ +#include +#include +#include + +namespace Glacier { + void ZENVIRONMENT::ToggleColor(bool value) { + assert(G1ConfigurationService::G1API_FunctionAddress_ZENVIRONMENT_ToggleColor != G1ConfigurationService::kNotConfiguredOption); + if (G1ConfigurationService::G1API_FunctionAddress_ZENVIRONMENT_ToggleColor != G1ConfigurationService::kNotConfiguredOption) { + ((void(__thiscall*)(ZENVIRONMENT*,bool))G1ConfigurationService::G1API_FunctionAddress_ZENVIRONMENT_ToggleColor)(this, value); + } + } + + void ZENVIRONMENT::SetDiffuseColor(unsigned int c1, unsigned int c2) { + assert(G1ConfigurationService::G1API_FunctionAddress_ZENVIRONMENT_SetDiffuseColor != G1ConfigurationService::kNotConfiguredOption); + if (G1ConfigurationService::G1API_FunctionAddress_ZENVIRONMENT_SetDiffuseColor != G1ConfigurationService::kNotConfiguredOption) { + ((void(__thiscall*)(ZENVIRONMENT*,unsigned int,unsigned int))G1ConfigurationService::G1API_FunctionAddress_ZENVIRONMENT_SetDiffuseColor)(this,c1,c2); + } + } +} \ No newline at end of file diff --git a/ReHitman/Glacier/source/Geom/ZEntityLocator.cpp b/ReHitman/Glacier/source/Geom/ZEntityLocator.cpp index 06f3fb7..5338098 100644 --- a/ReHitman/Glacier/source/Geom/ZEntityLocator.cpp +++ b/ReHitman/Glacier/source/Geom/ZEntityLocator.cpp @@ -3,6 +3,10 @@ namespace Glacier { + void ZEntityLocator::DoInit() { + ((void*(__thiscall*)(ZEntityLocator*))(G1ConfigurationService::G1API_FunctionAddress_ZBaseGeom_DoInit))(this); + } + ZGROUP* ZEntityLocator::ParentGroup() { return ((ZGROUP*(__thiscall*)(ZEntityLocator*))(G1ConfigurationService::G1API_FunctionAddress_ZBaseGeom_ParentGroup))(this); } diff --git a/ReHitman/Glacier/source/Geom/ZGEOM.cpp b/ReHitman/Glacier/source/Geom/ZGEOM.cpp index 5b181a8..f49e5f4 100644 --- a/ReHitman/Glacier/source/Geom/ZGEOM.cpp +++ b/ReHitman/Glacier/source/Geom/ZGEOM.cpp @@ -3,6 +3,10 @@ namespace Glacier { + void ZGEOM::GetRootTM(Glacier::ZMat3x3* mat, Glacier::ZVector3* pos) { + ((void(__thiscall*)(ZGEOM*, Glacier::ZMat3x3*, Glacier::ZVector3*))(G1ConfigurationService::G1API_FunctionAddress_ZGEOM_GetRootTM))(this, mat, pos); + } + void ZGEOM::GetMatPos(Glacier::ZMat3x3* mat, Glacier::ZVector3* pos) { ((void(__thiscall*)(ZGEOM*, Glacier::ZMat3x3*, Glacier::ZVector3*))(G1ConfigurationService::G1API_FunctionAddress_ZGEOM_GetMatPos))(this, mat, pos); @@ -12,4 +16,8 @@ namespace Glacier { return ((ZGEOM*(__cdecl*)(unsigned int))(G1ConfigurationService::G1API_FunctionAddress_ZGEOM_RefToPtr))(REF); } + + ZREF ZGEOM::GetRef() { + return ((ZREF(__thiscall*)(ZGEOM*))(G1ConfigurationService::G1API_FunctionAddress_ZGEOM_GetRef))(this); + } } \ No newline at end of file diff --git a/ReHitman/Glacier/source/Geom/ZSNDOBJ.cpp b/ReHitman/Glacier/source/Geom/ZSNDOBJ.cpp new file mode 100644 index 0000000..3da2ca4 --- /dev/null +++ b/ReHitman/Glacier/source/Geom/ZSNDOBJ.cpp @@ -0,0 +1,15 @@ +#include +#include +#include + +namespace Glacier +{ + bool ZSNDOBJ::AttachToDefaultRoom(bool a1) + { + assert(G1ConfigurationService::G1API_FunctionAddress_ZSNDOBJ_AttachToDefaultRoom != G1ConfigurationService::kNotConfiguredOption); + if (G1ConfigurationService::G1API_FunctionAddress_ZSNDOBJ_AttachToDefaultRoom != G1ConfigurationService::kNotConfiguredOption) { + return ((bool(__thiscall*)(ZSNDOBJ*,bool))(G1ConfigurationService::G1API_FunctionAddress_ZSNDOBJ_AttachToDefaultRoom))(this, a1); + } + return false; + } +} \ No newline at end of file diff --git a/ReHitman/Glacier/source/ZAction.cpp b/ReHitman/Glacier/source/ZAction.cpp index 0950385..84d76ba 100644 --- a/ReHitman/Glacier/source/ZAction.cpp +++ b/ReHitman/Glacier/source/ZAction.cpp @@ -13,4 +13,35 @@ namespace Glacier } return nullptr; } + + void ZAction::Show() { + assert(G1ConfigurationService::G1API_FunctionAddress_ZAction_Show != G1ConfigurationService::kNotConfiguredOption); + if (G1ConfigurationService::G1API_FunctionAddress_ZAction_Show != G1ConfigurationService::kNotConfiguredOption) { + ((void(__thiscall*)(ZAction*))(G1ConfigurationService::G1API_FunctionAddress_ZAction_Show))(this); + } + } + + void ZAction::Hide() { + assert(G1ConfigurationService::G1API_FunctionAddress_ZAction_Hide != G1ConfigurationService::kNotConfiguredOption); + if (G1ConfigurationService::G1API_FunctionAddress_ZAction_Hide != G1ConfigurationService::kNotConfiguredOption) { + ((void(__thiscall*)(ZAction*))(G1ConfigurationService::G1API_FunctionAddress_ZAction_Hide))(this); + } + } + + int ZAction::AddAction(ZGEOM* pGeom, + const char* psLocalizedActionName, + const char* psActionName, + EActionType actionType, + Glacier::ZMSGID commandId, + Glacier::ZREF entityRef, + int unk0, + int radius) { + assert(G1ConfigurationService::G1API_FunctionAddress_ZAction_AddAction != G1ConfigurationService::kNotConfiguredOption); + if (G1ConfigurationService::G1API_FunctionAddress_ZAction_AddAction != G1ConfigurationService::kNotConfiguredOption) { + return ((int(__cdecl*)(ZGEOM*, const char*, const char*, EActionType, Glacier::ZMSGID, Glacier::ZREF, int, int))(G1ConfigurationService::G1API_FunctionAddress_ZAction_AddAction)) + (pGeom, psLocalizedActionName, psActionName, actionType, commandId, entityRef, unk0, radius); + } + + return 0; + } } \ No newline at end of file diff --git a/ReHitman/Glacier/source/ZActorHeroCheckInside.cpp b/ReHitman/Glacier/source/ZActorHeroCheckInside.cpp new file mode 100644 index 0000000..5add4f2 --- /dev/null +++ b/ReHitman/Glacier/source/ZActorHeroCheckInside.cpp @@ -0,0 +1,17 @@ +#include +#include +#include +#include + +namespace Glacier { + bool ZActorHeroCheckInside::IsInside(Glacier::ZGEOM* pGeom) { + if (!pGeom) { return false; } + + assert(G1ConfigurationService::G1API_FunctionAddress_ZActorHeroCheckInside_IsInside != G1ConfigurationService::kNotConfiguredOption); + if (G1ConfigurationService::G1API_FunctionAddress_ZActorHeroCheckInside_IsInside != G1ConfigurationService::kNotConfiguredOption) { + return ((bool(__thiscall*)(ZActorHeroCheckInside*,ZGEOM*))G1ConfigurationService::G1API_FunctionAddress_ZActorHeroCheckInside_IsInside)(this, pGeom); + } + + return false; + } +} \ No newline at end of file diff --git a/ReHitman/Glacier/source/ZCameraSpace.cpp b/ReHitman/Glacier/source/ZCameraSpace.cpp new file mode 100644 index 0000000..57145aa --- /dev/null +++ b/ReHitman/Glacier/source/ZCameraSpace.cpp @@ -0,0 +1,77 @@ +#include +#include +#include + +namespace Glacier { + ZCameraSpace& ZCameraSpace::operator=(ZCAMERA* pCamera) { + if (!pCamera) { + return *this; + } + + assert(G1ConfigurationService::G1API_FunctionAddress_ZCameraSpace_AssignOperator != G1ConfigurationService::kNotConfiguredOption); + if (G1ConfigurationService::G1API_FunctionAddress_ZCameraSpace_AssignOperator != G1ConfigurationService::kNotConfiguredOption) + { + ((void(__thiscall*)(ZCameraSpace*,ZCAMERA*))(G1ConfigurationService::G1API_FunctionAddress_ZCameraSpace_AssignOperator))(this, pCamera); + } + return *this; + } + + bool ZCameraSpace::IsMirror() { + assert(G1ConfigurationService::G1API_FunctionAddress_ZCameraSpace_IsMirror != G1ConfigurationService::kNotConfiguredOption); + if (G1ConfigurationService::G1API_FunctionAddress_ZCameraSpace_IsMirror != G1ConfigurationService::kNotConfiguredOption) + { + return ((bool(__thiscall*)(ZCameraSpace*))(G1ConfigurationService::G1API_FunctionAddress_ZCameraSpace_IsMirror))(this); + } + return false; + } + + bool ZCameraSpace::IsMain() { + assert(G1ConfigurationService::G1API_FunctionAddress_ZCameraSpace_IsMain != G1ConfigurationService::kNotConfiguredOption); + if (G1ConfigurationService::G1API_FunctionAddress_ZCameraSpace_IsMain != G1ConfigurationService::kNotConfiguredOption) + { + return ((bool(__thiscall*)(ZCameraSpace*))(G1ConfigurationService::G1API_FunctionAddress_ZCameraSpace_IsMain))(this); + } + return false; + } + + void ZCameraSpace::Proj3D(Vector3* pResult, const Vector3* pPoint) { + assert(G1ConfigurationService::G1API_FunctionAddress_ZCameraSpace_Proj3D != G1ConfigurationService::kNotConfiguredOption); + if (G1ConfigurationService::G1API_FunctionAddress_ZCameraSpace_Proj3D != G1ConfigurationService::kNotConfiguredOption) + { + ((void(__thiscall*)(ZCameraSpace*,Vector3*,const Vector3*))(G1ConfigurationService::G1API_FunctionAddress_ZCameraSpace_Proj3D))(this, pResult, pPoint); + } + } + + void ZCameraSpace::Proj2D(Vector2* pResult, const Vector3* pPoint) { + assert(G1ConfigurationService::G1API_FunctionAddress_ZCameraSpace_Proj2D != G1ConfigurationService::kNotConfiguredOption); + if (G1ConfigurationService::G1API_FunctionAddress_ZCameraSpace_Proj2D != G1ConfigurationService::kNotConfiguredOption) + { + ((void(__thiscall*)(ZCameraSpace*,Vector2*,const Vector3*))(G1ConfigurationService::G1API_FunctionAddress_ZCameraSpace_Proj2D))(this, pResult, pPoint); + } + } + + void ZCameraSpace::GetLocalMatPos(Matrix3x3* mat, Vector3* pos) { + assert(G1ConfigurationService::G1API_FunctionAddress_ZCameraSpace_GetLocalMatPos != G1ConfigurationService::kNotConfiguredOption); + if (G1ConfigurationService::G1API_FunctionAddress_ZCameraSpace_GetLocalMatPos != G1ConfigurationService::kNotConfiguredOption) + { + ((void(__thiscall*)(ZCameraSpace*,Matrix3x3*,Vector3*))(G1ConfigurationService::G1API_FunctionAddress_ZCameraSpace_GetLocalMatPos))(this, mat, pos); + } + } + + void ZCameraSpace::TransformInversMatPos(Matrix3x3* mat, Vector3* pos) { + assert(G1ConfigurationService::G1API_FunctionAddress_ZCameraSpace_TransformInversMatPos != G1ConfigurationService::kNotConfiguredOption); + if (G1ConfigurationService::G1API_FunctionAddress_ZCameraSpace_TransformInversMatPos != G1ConfigurationService::kNotConfiguredOption) + { + ((void(__thiscall*)(ZCameraSpace*,Matrix3x3*,Vector3*))(G1ConfigurationService::G1API_FunctionAddress_ZCameraSpace_TransformInversMatPos))(this, mat, pos); + } + } + + void ZCameraSpace::GetViewport(Vector4* pViewport) { + assert(pViewport != nullptr); + assert(G1ConfigurationService::G1API_FunctionAddress_ZCameraSpace_GetViewport != G1ConfigurationService::kNotConfiguredOption); + + if (pViewport && G1ConfigurationService::G1API_FunctionAddress_ZCameraSpace_GetViewport != G1ConfigurationService::kNotConfiguredOption) { + ((void(__thiscall*)(ZCameraSpace*,Vector4*))G1ConfigurationService::G1API_FunctionAddress_ZCameraSpace_GetViewport)(this, pViewport); + } + } +} \ No newline at end of file diff --git a/ReHitman/Glacier/source/ZEngineDataBase.cpp b/ReHitman/Glacier/source/ZEngineDataBase.cpp new file mode 100644 index 0000000..23fb9dd --- /dev/null +++ b/ReHitman/Glacier/source/ZEngineDataBase.cpp @@ -0,0 +1,39 @@ +#include +#include +#include +#include + +namespace Glacier +{ + CCom* ZEngineDataBase::GetSceneCom() + { + assert(G1ConfigurationService::G1API_FunctionAddress_ZEngineDataBase_GetSceneCom != G1ConfigurationService::kNotConfiguredOption); + if (G1ConfigurationService::G1API_FunctionAddress_ZEngineDataBase_GetSceneCom != G1ConfigurationService::kNotConfiguredOption) + { + return ((CCom*(__thiscall*)(ZEngineDataBase*))(G1ConfigurationService::G1API_FunctionAddress_ZEngineDataBase_GetSceneCom))(this); + } + + return 0; + } + + std::intptr_t ZEngineDataBase::GetSceneVar(const char* varname) { + using CCom_t = int; + + auto ccom = (CCom_t*)GetSceneCom(); + if (!ccom) { + return 0; + } + + return HF::Hook::VFHook::invoke(ccom, 36, varname, 2); + } + + std::intptr_t ZEngineDataBase::SRefToPtr(Glacier::ZREF sref) { + assert(G1ConfigurationService::G1API_FunctionAddress_ZEngineDataBase_SRefToPtr != G1ConfigurationService::kNotConfiguredOption); + if (G1ConfigurationService::G1API_FunctionAddress_ZEngineDataBase_SRefToPtr != G1ConfigurationService::kNotConfiguredOption) + { + return ((std::intptr_t(__thiscall*)(ZEngineDataBase*, Glacier::ZREF))(G1ConfigurationService::G1API_FunctionAddress_ZEngineDataBase_SRefToPtr))(this, sref); + } + + return 0; + } +} \ No newline at end of file diff --git a/ReHitman/Glacier/source/ZEngineGeomControl.cpp b/ReHitman/Glacier/source/ZEngineGeomControl.cpp new file mode 100644 index 0000000..a579b98 --- /dev/null +++ b/ReHitman/Glacier/source/ZEngineGeomControl.cpp @@ -0,0 +1,14 @@ +#include +#include +#include + +namespace Glacier +{ + ZEngineGeomControl* ZEngineGeomControl::GetInstance() { + if (G1ConfigurationService::G1API_InstanceAddress_ZEngineGeomControl != G1ConfigurationService::kNotConfiguredOption) { + return reinterpret_cast(G1ConfigurationService::G1API_InstanceAddress_ZEngineGeomControl); + } + + return nullptr; + } +} \ No newline at end of file diff --git a/ReHitman/Glacier/source/ZEventBuffer.cpp b/ReHitman/Glacier/source/ZEventBuffer.cpp new file mode 100644 index 0000000..cad442c --- /dev/null +++ b/ReHitman/Glacier/source/ZEventBuffer.cpp @@ -0,0 +1,14 @@ +#include +#include +#include + +namespace Glacier { + std::intptr_t ZEventBuffer::GetGQC(Glacier::ZREF ref) { + if (G1ConfigurationService::G1API_FunctionAddress_GetGQC != G1ConfigurationService::kNotConfiguredOption) { + return ((std::intptr_t(__cdecl*)(Glacier::ZREF))(G1ConfigurationService::G1API_FunctionAddress_GetGQC))(ref); + } + + assert(false && "Option G1API_FunctionAddress_GetGQC not configured!"); + return 0x0; + } +} \ No newline at end of file diff --git a/ReHitman/Glacier/source/ZGameStats.cpp b/ReHitman/Glacier/source/ZGameStats.cpp new file mode 100644 index 0000000..2f38230 --- /dev/null +++ b/ReHitman/Glacier/source/ZGameStats.cpp @@ -0,0 +1,19 @@ +#include +#include +#include + +namespace Glacier { + void ZGameStats::IncreaseCurrentShotCount() { + assert(G1ConfigurationService::G1API_FunctionAddress_ZGameStats_IncreaseCurrentShotCount != G1ConfigurationService::kNotConfiguredOption); + if (G1ConfigurationService::G1API_FunctionAddress_ZGameStats_IncreaseCurrentShotCount != G1ConfigurationService::kNotConfiguredOption) { + ((void(__thiscall*)(ZGameStats*))G1ConfigurationService::G1API_FunctionAddress_ZGameStats_IncreaseCurrentShotCount)(this); + } + } + + void ZGameStats::DecreaseCurrentShotCount() { + assert(G1ConfigurationService::G1API_FunctionAddress_ZGameStats_DecreaseCurrentShotCount != G1ConfigurationService::kNotConfiguredOption); + if (G1ConfigurationService::G1API_FunctionAddress_ZGameStats_DecreaseCurrentShotCount != G1ConfigurationService::kNotConfiguredOption) { + ((void(__thiscall*)(ZGameStats*))G1ConfigurationService::G1API_FunctionAddress_ZGameStats_DecreaseCurrentShotCount)(this); + } + } +} \ No newline at end of file diff --git a/ReHitman/Glacier/source/ZProjectile.cpp b/ReHitman/Glacier/source/ZProjectile.cpp new file mode 100644 index 0000000..d01386e --- /dev/null +++ b/ReHitman/Glacier/source/ZProjectile.cpp @@ -0,0 +1 @@ +#include \ No newline at end of file diff --git a/ReHitman/Glacier/source/ZProjectileBallistic.cpp b/ReHitman/Glacier/source/ZProjectileBallistic.cpp new file mode 100644 index 0000000..a110d68 --- /dev/null +++ b/ReHitman/Glacier/source/ZProjectileBallistic.cpp @@ -0,0 +1 @@ +#include \ No newline at end of file diff --git a/ReHitman/Glacier/source/ZScriptC.cpp b/ReHitman/Glacier/source/ZScriptC.cpp new file mode 100644 index 0000000..291574a --- /dev/null +++ b/ReHitman/Glacier/source/ZScriptC.cpp @@ -0,0 +1,14 @@ +#include +#include +#include + +namespace Glacier +{ + int ZScriptC::FindScript(const char* scriptName) { + assert(G1ConfigurationService::G1API_FunctionAddress_ZScriptC_FindScript != G1ConfigurationService::kNotConfiguredOption); + if (G1ConfigurationService::G1API_FunctionAddress_ZScriptC_FindScript != G1ConfigurationService::kNotConfiguredOption) { + return ((int(__thiscall*)(ZScriptC*, const char*))(G1ConfigurationService::G1API_FunctionAddress_ZScriptC_FindScript))(this, scriptName); + } + return 0; + } +} \ No newline at end of file diff --git a/ReHitman/Modules/HF/include/HF/HackingFramework.hpp b/ReHitman/Modules/HF/include/HF/HackingFramework.hpp index 55f289b..8808e7a 100644 --- a/ReHitman/Modules/HF/include/HF/HackingFramework.hpp +++ b/ReHitman/Modules/HF/include/HF/HackingFramework.hpp @@ -35,6 +35,7 @@ namespace HF { static constexpr uint8_t NOP = 0x90; static constexpr uint8_t INT3 = 0xCC; + static constexpr uint8_t RETN = 0xC3; static constexpr uint8_t CALL_NEAR = 0xE8; static constexpr uint8_t JMP_NEAR = 0xE9; static constexpr uint16_t CALL_ABS = 0xFF15; @@ -421,7 +422,7 @@ namespace HF namespace Hook { - template + template class VFHook final { std::intptr_t m_originalFunction { 0x0 }; @@ -449,7 +450,9 @@ namespace HF ~VFHook() { - remove(); + if constexpr (ResetToOriginal) { + remove(); + } } [[nodiscard]] std::intptr_t getOriginalPtr() const { return m_originalFunction; } @@ -473,6 +476,34 @@ namespace HF return func(m_instance, std::forward(args)...); } + template + static auto invoke(ClassT* instance, size_t index, Args... args) + { + typedef Ret(__thiscall* Function_t)(ClassT*, Args...); + auto func = (Function_t)getMethodAddrByIndex(instance, index); + return func(instance, args...); + } + + template + static std::intptr_t makeHook(ClassT* instance, size_t index, FuncT* dest) + { + std::intptr_t ptr = *reinterpret_cast(instance); + std::intptr_t entity = ptr + sizeof(std::intptr_t) * index; + std::intptr_t org = *reinterpret_cast(entity); + + { + MEMORY_BASIC_INFORMATION mbi; + VirtualQuery((LPCVOID)entity, &mbi, sizeof(mbi)); + + Win32::VProtect protect(reinterpret_cast(mbi.BaseAddress), + mbi.RegionSize, + PAGE_READWRITE); + *reinterpret_cast(entity) = GET_ADDR_FROM_MEMBER_OR_ENTITY(dest); + } + + return org; + } + private: static std::intptr_t getMethodAddrByIndex(ClassT* instance, size_t index) { @@ -750,6 +781,12 @@ namespace HF return std::make_unique>(instance, MethodIndex, GET_ADDR_FROM_MEMBER_OR_ENTITY(target)); } + template + static std::unique_ptr> HookVirtualFunctionWithoutRestore(TargetClass* instance, Functor target) + { + return std::make_unique>(instance, MethodIndex, GET_ADDR_FROM_MEMBER_OR_ENTITY(target)); + } + static bool FillMemoryByNOPs(const std::shared_ptr& process, std::intptr_t addr, size_t size) { if (!process || !size) diff --git a/ReHitman/Modules/Mono/etc/fonts/fonts.conf b/ReHitman/Modules/Mono/etc/fonts/fonts.conf new file mode 100644 index 0000000..7966fd2 --- /dev/null +++ b/ReHitman/Modules/Mono/etc/fonts/fonts.conf @@ -0,0 +1,155 @@ + + + + + + + + + + WINDOWSFONTDIR + + fonts + + ~/.fonts + + + + + mono + + + monospace + + + + + + + sans serif + + + sans-serif + + + + + + + sans + + + sans-serif + + + + + /usr/i686-w64-mingw32/sys-root/mingw/etc/fonts/conf.d + + + + WINDOWSTEMPDIR_FONTCONFIG_CACHE + fontconfig + + ~/.fontconfig + + + + + 0x0020 + 0x00A0 + 0x00AD + 0x034F + 0x0600 + 0x0601 + 0x0602 + 0x0603 + 0x06DD + 0x070F + 0x115F + 0x1160 + 0x1680 + 0x17B4 + 0x17B5 + 0x180E + 0x2000 + 0x2001 + 0x2002 + 0x2003 + 0x2004 + 0x2005 + 0x2006 + 0x2007 + 0x2008 + 0x2009 + 0x200A + 0x200B + 0x200C + 0x200D + 0x200E + 0x200F + 0x2028 + 0x2029 + 0x202A + 0x202B + 0x202C + 0x202D + 0x202E + 0x202F + 0x205F + 0x2060 + 0x2061 + 0x2062 + 0x2063 + 0x206A + 0x206B + 0x206C + 0x206D + 0x206E + 0x206F + 0x2800 + 0x3000 + 0x3164 + 0xFEFF + 0xFFA0 + 0xFFF9 + 0xFFFA + 0xFFFB + + + + 30 + + + + diff --git a/ReHitman/Modules/Mono/etc/fonts/fonts.dtd b/ReHitman/Modules/Mono/etc/fonts/fonts.dtd new file mode 100644 index 0000000..cbdfdab --- /dev/null +++ b/ReHitman/Modules/Mono/etc/fonts/fonts.dtd @@ -0,0 +1,224 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ReHitman/Modules/Mono/etc/gtk-2.0/gtk.immodules b/ReHitman/Modules/Mono/etc/gtk-2.0/gtk.immodules new file mode 100644 index 0000000..3fc6dd9 --- /dev/null +++ b/ReHitman/Modules/Mono/etc/gtk-2.0/gtk.immodules @@ -0,0 +1,7 @@ +# GTK+ Input Method Modules file +# Automatically generated file, do not edit +# Created by C:\Program Files (x86)\GtkSharp\2.12\bin\gtk-query-immodules-2.0.exe from gtk+-2.24.13 +# +# ModulesPath = C:\Users\duncan\.gtk-2.0\2.10.0\i686-w64-mingw32\immodules;C:\Users\duncan\.gtk-2.0\2.10.0\immodules;C:\Users\duncan\.gtk-2.0\i686-w64-mingw32\immodules;C:\Users\duncan\.gtk-2.0\immodules;C:\Program Files (x86)\GtkSharp\2.12\lib\gtk-2.0\2.10.0\i686-w64-mingw32\immodules;C:\Program Files (x86)\GtkSharp\2.12\lib\gtk-2.0\2.10.0\immodules;C:\Program Files (x86)\GtkSharp\2.12\lib\gtk-2.0\i686-w64-mingw32\immodules;C:\Program Files (x86)\GtkSharp\2.12\lib\gtk-2.0\immodules +# + diff --git a/ReHitman/Modules/Mono/etc/gtk-2.0/gtkrc b/ReHitman/Modules/Mono/etc/gtk-2.0/gtkrc new file mode 100644 index 0000000..a98bb5b --- /dev/null +++ b/ReHitman/Modules/Mono/etc/gtk-2.0/gtkrc @@ -0,0 +1,8 @@ +gtk-theme-name = "MS-Windows" + +style "rules-hint" +{ + GtkTreeView::allow-rules = 1 +} + +class "*" style "rules-hint" diff --git a/ReHitman/Modules/Mono/etc/gtk-2.0/immultipress.conf b/ReHitman/Modules/Mono/etc/gtk-2.0/immultipress.conf new file mode 100644 index 0000000..d6c8129 --- /dev/null +++ b/ReHitman/Modules/Mono/etc/gtk-2.0/immultipress.conf @@ -0,0 +1,22 @@ +# Example configuration file for the GTK+ Multipress Input Method +# Authored by Openismus GmbH, 2009. +# +# This file follows the GKeyFile format. On the left of the equal sign goes +# the key that you press repeatedly to iterate through the text items listed +# on the right-hand side. The list items are separated by semicolons ";" and +# consist of one or more characters each. The backslash "\" is used to escape +# characters; for instance "\;" for a literal semicolon. +# +# The example configuration below imitates the behavior of a standard mobile +# phone by a major manufacturer, with German language setting. +[keys] +KP_1 = .;,;?;!;';";1;-;(;);@;/;:;_ +KP_2 = a;b;c;2;ä;à;á;ã;â;å;æ;ç +KP_3 = d;e;f;3;è;é;ë;ê;ð +KP_4 = g;h;i;4;ì;í;î;ï +KP_5 = j;k;l;5;£ +KP_6 = m;n;o;6;ö;ò;ó;ô;õ;ø;ñ +KP_7 = p;q;r;s;7;ß;$ +KP_8 = t;u;v;8;ü;ù;ú;û +KP_9 = w;x;y;z;9;ý;þ +KP_0 = \s;0 diff --git a/ReHitman/Modules/Mono/etc/mono/2.0/Browsers/Compat.browser b/ReHitman/Modules/Mono/etc/mono/2.0/Browsers/Compat.browser new file mode 100644 index 0000000..dcedf7f --- /dev/null +++ b/ReHitman/Modules/Mono/etc/mono/2.0/Browsers/Compat.browser @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ReHitman/Modules/Mono/etc/mono/2.0/DefaultWsdlHelpGenerator.aspx b/ReHitman/Modules/Mono/etc/mono/2.0/DefaultWsdlHelpGenerator.aspx new file mode 100644 index 0000000..f4d74bf --- /dev/null +++ b/ReHitman/Modules/Mono/etc/mono/2.0/DefaultWsdlHelpGenerator.aspx @@ -0,0 +1,1901 @@ +<%-- +// +// DefaultWsdlHelpGenerator.aspx: +// +// Author: +// Lluis Sanchez Gual (lluis@ximian.com) +// +// (C) 2003 Ximian, Inc. http://www.ximian.com +// +--%> + +<%@ Import Namespace="System.Collections" %> +<%@ Import Namespace="System.Collections.Generic" %> +<%@ Import Namespace="System.IO" %> +<%@ Import Namespace="System.Xml.Serialization" %> +<%@ Import Namespace="System.Xml" %> +<%@ Import Namespace="System.Xml.Schema" %> +<%@ Import Namespace="System.Web.Services" %> +<%@ Import Namespace="System.Web.Services.Description" %> +<%@ Import Namespace="System.Web.Services.Configuration" %> +<%@ Import Namespace="System.Web.Configuration" %> +<%@ Import Namespace="System" %> +<%@ Import Namespace="System.Net" %> +<%@ Import Namespace="System.Globalization" %> +<%@ Import Namespace="System.Resources" %> +<%@ Import Namespace="System.Diagnostics" %> +<%@ Import Namespace="System.CodeDom" %> +<%@ Import Namespace="System.CodeDom.Compiler" %> +<%@ Import Namespace="Microsoft.CSharp" %> +<%@ Import Namespace="Microsoft.VisualBasic" %> +<%@ Import Namespace="System.Text" %> +<%@ Import Namespace="System.Text.RegularExpressions" %> +<%@ Import Namespace="System.Security.Cryptography.X509Certificates" %> +<%@ Assembly name="System.Web.Services" %> +<%@ Page debug="true" %> + + + + + + <% + Response.Write (""); + %> + <%=WebServiceName%> Web Service + + + + + + + +
+Web Service
+<%=WebServiceName%> +
+ + + + + + + + +
+
+Overview
+
+Service Description +
+Client proxy +

+ + + <%#FormatBindingName(DataBinder.Eval(Container.DataItem, "Name").ToString())%> + + + op=<%#GetOpName(Container.DataItem)%>&bnd=<%#DataBinder.Eval(Container.DataItem, "Binding.Name")%>"><%#GetOpName(Container.DataItem)%> +
+
+
+
+
+
+ +
+ +<% if (CurrentPage == "main") {%> + + + +

Web Service Overview

+ <%=WebServiceDescription%> +

+ <% if (ProfileViolations != null && ProfileViolations.Count > 0) { %> +

Basic Profile Conformance

+ This web service does not conform to WS-I Basic Profile v1.1 + <% + Response.Write ("
    "); + foreach (BasicProfileViolation vio in ProfileViolations) { + Response.Write ("
  • " + vio.NormativeStatement + ": " + vio.Details); + Response.Write ("
      "); + foreach (string ele in vio.Elements) + Response.Write ("
    • " + ele + "
    • "); + Response.Write ("
    "); + Response.Write ("
  • "); + } + Response.Write ("
"); + }%> + +<%} if (DefaultBinding == null) {%> +This service does not contain any public web method. +<%} else if (CurrentPage == "op") {%> + + + + <%=CurrentOperationName%> +

+ <% WriteTabs (); %> +


+ + <% if (CurrentTab == "main") { %> + Input Parameters +
+ <% if (InParams.Count == 0) { %> + No input parameters
+ <% } else { %> + + + + + + + + + +
<%#DataBinder.Eval(Container.DataItem, "Name")%><%#DataBinder.Eval(Container.DataItem, "Type")%>
+ <% } %> +
+ + <% if (OutParams.Count > 0) { %> + Output Parameters +
+ + + + + + + + + +
<%#DataBinder.Eval(Container.DataItem, "Name")%><%#DataBinder.Eval(Container.DataItem, "Type")%>
+
+ <% } %> + + Remarks +
+ <%=OperationDocumentation%> +

+ Technical information +
+ Format: <%=CurrentOperationFormat%> +
Supported protocols: <%=CurrentOperationProtocols%> + <% } %> + + + + <% if (CurrentTab == "test") { + if (CurrentOperationSupportsTest) {%> + Enter values for the parameters and click the 'Invoke' button to test this method:

+
+ + + + + + + + + + + + + + + +
<%#DataBinder.Eval(Container.DataItem, "Name")%>: ">
 
+
+
"> + The web service returned the following result:

+
+
+ +
+ <% } else {%> + The test form is not available for this operation because it has parameters with a complex structure. + <% } %> + <% } %> + + + + <% if (CurrentTab == "msg") { %> + + The following are sample SOAP requests and responses for each protocol supported by this method: +

+ + <% if (IsOperationSupported ("Soap")) { %> + Soap +

+
<%=GenerateOperationMessages ("Soap", true)%>
+
+
<%=GenerateOperationMessages ("Soap", false)%>
+
+ <% } %> + <% if (IsOperationSupported ("HttpGet")) { %> + HTTP Get +

+
<%=GenerateOperationMessages ("HttpGet", true)%>
+
+
<%=GenerateOperationMessages ("HttpGet", false)%>
+
+ <% } %> + <% if (IsOperationSupported ("HttpPost")) { %> + HTTP Post +

+
<%=GenerateOperationMessages ("HttpPost", true)%>
+
+
<%=GenerateOperationMessages ("HttpPost", false)%>
+
+ <% } %> + + <% } %> +<%} else if (CurrentPage == "proxy") {%> + +
+ Select the language for which you want to generate a proxy +   + +    +
+
+ <%=CurrentProxytName%>    + Download +

+
+
<%=GetProxyCode ()%>
+
+<%} else if (CurrentPage == "wsdl") {%> + + <% if (descriptions.Count > 1 || schemas.Count > 1) {%> + The description of this web service is composed by several documents. Click on the document you want to see: + + + + <%} else {%> + <%}%> +
+ <%=CurrentDocumentName%>    + Download +

+
+
<%=GenerateDocument ()%>
+
+ +<%}%> + +














+
+ + diff --git a/ReHitman/Modules/Mono/etc/mono/2.0/machine.config b/ReHitman/Modules/Mono/etc/mono/2.0/machine.config new file mode 100644 index 0000000..2577c81 --- /dev/null +++ b/ReHitman/Modules/Mono/etc/mono/2.0/machine.config @@ -0,0 +1,280 @@ + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+ +
+ + +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+
+
+
+
+ + +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ReHitman/Modules/Mono/etc/mono/2.0/settings.map b/ReHitman/Modules/Mono/etc/mono/2.0/settings.map new file mode 100644 index 0000000..9a52ccc --- /dev/null +++ b/ReHitman/Modules/Mono/etc/mono/2.0/settings.map @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/ReHitman/Modules/Mono/etc/mono/2.0/web.config b/ReHitman/Modules/Mono/etc/mono/2.0/web.config new file mode 100644 index 0000000..e1428f8 --- /dev/null +++ b/ReHitman/Modules/Mono/etc/mono/2.0/web.config @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ReHitman/Modules/Mono/etc/mono/4.0/Browsers/Compat.browser b/ReHitman/Modules/Mono/etc/mono/4.0/Browsers/Compat.browser new file mode 100644 index 0000000..dcedf7f --- /dev/null +++ b/ReHitman/Modules/Mono/etc/mono/4.0/Browsers/Compat.browser @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ReHitman/Modules/Mono/etc/mono/4.0/DefaultWsdlHelpGenerator.aspx b/ReHitman/Modules/Mono/etc/mono/4.0/DefaultWsdlHelpGenerator.aspx new file mode 100644 index 0000000..f4d74bf --- /dev/null +++ b/ReHitman/Modules/Mono/etc/mono/4.0/DefaultWsdlHelpGenerator.aspx @@ -0,0 +1,1901 @@ +<%-- +// +// DefaultWsdlHelpGenerator.aspx: +// +// Author: +// Lluis Sanchez Gual (lluis@ximian.com) +// +// (C) 2003 Ximian, Inc. http://www.ximian.com +// +--%> + +<%@ Import Namespace="System.Collections" %> +<%@ Import Namespace="System.Collections.Generic" %> +<%@ Import Namespace="System.IO" %> +<%@ Import Namespace="System.Xml.Serialization" %> +<%@ Import Namespace="System.Xml" %> +<%@ Import Namespace="System.Xml.Schema" %> +<%@ Import Namespace="System.Web.Services" %> +<%@ Import Namespace="System.Web.Services.Description" %> +<%@ Import Namespace="System.Web.Services.Configuration" %> +<%@ Import Namespace="System.Web.Configuration" %> +<%@ Import Namespace="System" %> +<%@ Import Namespace="System.Net" %> +<%@ Import Namespace="System.Globalization" %> +<%@ Import Namespace="System.Resources" %> +<%@ Import Namespace="System.Diagnostics" %> +<%@ Import Namespace="System.CodeDom" %> +<%@ Import Namespace="System.CodeDom.Compiler" %> +<%@ Import Namespace="Microsoft.CSharp" %> +<%@ Import Namespace="Microsoft.VisualBasic" %> +<%@ Import Namespace="System.Text" %> +<%@ Import Namespace="System.Text.RegularExpressions" %> +<%@ Import Namespace="System.Security.Cryptography.X509Certificates" %> +<%@ Assembly name="System.Web.Services" %> +<%@ Page debug="true" %> + + + + + + <% + Response.Write (""); + %> + <%=WebServiceName%> Web Service + + + + + + + +
+Web Service
+<%=WebServiceName%> +
+ + + + + + + + +
+
+Overview
+
+Service Description +
+Client proxy +

+ + + <%#FormatBindingName(DataBinder.Eval(Container.DataItem, "Name").ToString())%> + + + op=<%#GetOpName(Container.DataItem)%>&bnd=<%#DataBinder.Eval(Container.DataItem, "Binding.Name")%>"><%#GetOpName(Container.DataItem)%> +
+
+
+
+
+
+ +
+ +<% if (CurrentPage == "main") {%> + + + +

Web Service Overview

+ <%=WebServiceDescription%> +

+ <% if (ProfileViolations != null && ProfileViolations.Count > 0) { %> +

Basic Profile Conformance

+ This web service does not conform to WS-I Basic Profile v1.1 + <% + Response.Write ("
    "); + foreach (BasicProfileViolation vio in ProfileViolations) { + Response.Write ("
  • " + vio.NormativeStatement + ": " + vio.Details); + Response.Write ("
      "); + foreach (string ele in vio.Elements) + Response.Write ("
    • " + ele + "
    • "); + Response.Write ("
    "); + Response.Write ("
  • "); + } + Response.Write ("
"); + }%> + +<%} if (DefaultBinding == null) {%> +This service does not contain any public web method. +<%} else if (CurrentPage == "op") {%> + + + + <%=CurrentOperationName%> +

+ <% WriteTabs (); %> +


+ + <% if (CurrentTab == "main") { %> + Input Parameters +
+ <% if (InParams.Count == 0) { %> + No input parameters
+ <% } else { %> + + + + + + + + + +
<%#DataBinder.Eval(Container.DataItem, "Name")%><%#DataBinder.Eval(Container.DataItem, "Type")%>
+ <% } %> +
+ + <% if (OutParams.Count > 0) { %> + Output Parameters +
+ + + + + + + + + +
<%#DataBinder.Eval(Container.DataItem, "Name")%><%#DataBinder.Eval(Container.DataItem, "Type")%>
+
+ <% } %> + + Remarks +
+ <%=OperationDocumentation%> +

+ Technical information +
+ Format: <%=CurrentOperationFormat%> +
Supported protocols: <%=CurrentOperationProtocols%> + <% } %> + + + + <% if (CurrentTab == "test") { + if (CurrentOperationSupportsTest) {%> + Enter values for the parameters and click the 'Invoke' button to test this method:

+
+ + + + + + + + + + + + + + + +
<%#DataBinder.Eval(Container.DataItem, "Name")%>: ">
 
+
+
"> + The web service returned the following result:

+
+
+ +
+ <% } else {%> + The test form is not available for this operation because it has parameters with a complex structure. + <% } %> + <% } %> + + + + <% if (CurrentTab == "msg") { %> + + The following are sample SOAP requests and responses for each protocol supported by this method: +

+ + <% if (IsOperationSupported ("Soap")) { %> + Soap +

+
<%=GenerateOperationMessages ("Soap", true)%>
+
+
<%=GenerateOperationMessages ("Soap", false)%>
+
+ <% } %> + <% if (IsOperationSupported ("HttpGet")) { %> + HTTP Get +

+
<%=GenerateOperationMessages ("HttpGet", true)%>
+
+
<%=GenerateOperationMessages ("HttpGet", false)%>
+
+ <% } %> + <% if (IsOperationSupported ("HttpPost")) { %> + HTTP Post +

+
<%=GenerateOperationMessages ("HttpPost", true)%>
+
+
<%=GenerateOperationMessages ("HttpPost", false)%>
+
+ <% } %> + + <% } %> +<%} else if (CurrentPage == "proxy") {%> + +
+ Select the language for which you want to generate a proxy +   + +    +
+
+ <%=CurrentProxytName%>    + Download +

+
+
<%=GetProxyCode ()%>
+
+<%} else if (CurrentPage == "wsdl") {%> + + <% if (descriptions.Count > 1 || schemas.Count > 1) {%> + The description of this web service is composed by several documents. Click on the document you want to see: + + + + <%} else {%> + <%}%> +
+ <%=CurrentDocumentName%>    + Download +

+
+
<%=GenerateDocument ()%>
+
+ +<%}%> + +














+
+ + diff --git a/ReHitman/Modules/Mono/etc/mono/4.0/machine.config b/ReHitman/Modules/Mono/etc/mono/4.0/machine.config new file mode 100644 index 0000000..f3b71c4 --- /dev/null +++ b/ReHitman/Modules/Mono/etc/mono/4.0/machine.config @@ -0,0 +1,307 @@ + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+ +
+ + + +
+ +
+
+
+
+ + + + +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+
+
+
+
+
+
+
+ + +
+
+ +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ReHitman/Modules/Mono/etc/mono/4.0/settings.map b/ReHitman/Modules/Mono/etc/mono/4.0/settings.map new file mode 100644 index 0000000..4c53aca --- /dev/null +++ b/ReHitman/Modules/Mono/etc/mono/4.0/settings.map @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/ReHitman/Modules/Mono/etc/mono/4.0/web.config b/ReHitman/Modules/Mono/etc/mono/4.0/web.config new file mode 100644 index 0000000..2a7dfd2 --- /dev/null +++ b/ReHitman/Modules/Mono/etc/mono/4.0/web.config @@ -0,0 +1,253 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ReHitman/Modules/Mono/etc/mono/4.5/Browsers/Compat.browser b/ReHitman/Modules/Mono/etc/mono/4.5/Browsers/Compat.browser new file mode 100644 index 0000000..dcedf7f --- /dev/null +++ b/ReHitman/Modules/Mono/etc/mono/4.5/Browsers/Compat.browser @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ReHitman/Modules/Mono/etc/mono/4.5/DefaultWsdlHelpGenerator.aspx b/ReHitman/Modules/Mono/etc/mono/4.5/DefaultWsdlHelpGenerator.aspx new file mode 100644 index 0000000..f4d74bf --- /dev/null +++ b/ReHitman/Modules/Mono/etc/mono/4.5/DefaultWsdlHelpGenerator.aspx @@ -0,0 +1,1901 @@ +<%-- +// +// DefaultWsdlHelpGenerator.aspx: +// +// Author: +// Lluis Sanchez Gual (lluis@ximian.com) +// +// (C) 2003 Ximian, Inc. http://www.ximian.com +// +--%> + +<%@ Import Namespace="System.Collections" %> +<%@ Import Namespace="System.Collections.Generic" %> +<%@ Import Namespace="System.IO" %> +<%@ Import Namespace="System.Xml.Serialization" %> +<%@ Import Namespace="System.Xml" %> +<%@ Import Namespace="System.Xml.Schema" %> +<%@ Import Namespace="System.Web.Services" %> +<%@ Import Namespace="System.Web.Services.Description" %> +<%@ Import Namespace="System.Web.Services.Configuration" %> +<%@ Import Namespace="System.Web.Configuration" %> +<%@ Import Namespace="System" %> +<%@ Import Namespace="System.Net" %> +<%@ Import Namespace="System.Globalization" %> +<%@ Import Namespace="System.Resources" %> +<%@ Import Namespace="System.Diagnostics" %> +<%@ Import Namespace="System.CodeDom" %> +<%@ Import Namespace="System.CodeDom.Compiler" %> +<%@ Import Namespace="Microsoft.CSharp" %> +<%@ Import Namespace="Microsoft.VisualBasic" %> +<%@ Import Namespace="System.Text" %> +<%@ Import Namespace="System.Text.RegularExpressions" %> +<%@ Import Namespace="System.Security.Cryptography.X509Certificates" %> +<%@ Assembly name="System.Web.Services" %> +<%@ Page debug="true" %> + + + + + + <% + Response.Write (""); + %> + <%=WebServiceName%> Web Service + + + + + + + +
+Web Service
+<%=WebServiceName%> +
+ + + + + + + + +
+
+Overview
+
+Service Description +
+Client proxy +

+ + + <%#FormatBindingName(DataBinder.Eval(Container.DataItem, "Name").ToString())%> + + + op=<%#GetOpName(Container.DataItem)%>&bnd=<%#DataBinder.Eval(Container.DataItem, "Binding.Name")%>"><%#GetOpName(Container.DataItem)%> +
+
+
+
+
+
+ +
+ +<% if (CurrentPage == "main") {%> + + + +

Web Service Overview

+ <%=WebServiceDescription%> +

+ <% if (ProfileViolations != null && ProfileViolations.Count > 0) { %> +

Basic Profile Conformance

+ This web service does not conform to WS-I Basic Profile v1.1 + <% + Response.Write ("
    "); + foreach (BasicProfileViolation vio in ProfileViolations) { + Response.Write ("
  • " + vio.NormativeStatement + ": " + vio.Details); + Response.Write ("
      "); + foreach (string ele in vio.Elements) + Response.Write ("
    • " + ele + "
    • "); + Response.Write ("
    "); + Response.Write ("
  • "); + } + Response.Write ("
"); + }%> + +<%} if (DefaultBinding == null) {%> +This service does not contain any public web method. +<%} else if (CurrentPage == "op") {%> + + + + <%=CurrentOperationName%> +

+ <% WriteTabs (); %> +


+ + <% if (CurrentTab == "main") { %> + Input Parameters +
+ <% if (InParams.Count == 0) { %> + No input parameters
+ <% } else { %> + + + + + + + + + +
<%#DataBinder.Eval(Container.DataItem, "Name")%><%#DataBinder.Eval(Container.DataItem, "Type")%>
+ <% } %> +
+ + <% if (OutParams.Count > 0) { %> + Output Parameters +
+ + + + + + + + + +
<%#DataBinder.Eval(Container.DataItem, "Name")%><%#DataBinder.Eval(Container.DataItem, "Type")%>
+
+ <% } %> + + Remarks +
+ <%=OperationDocumentation%> +

+ Technical information +
+ Format: <%=CurrentOperationFormat%> +
Supported protocols: <%=CurrentOperationProtocols%> + <% } %> + + + + <% if (CurrentTab == "test") { + if (CurrentOperationSupportsTest) {%> + Enter values for the parameters and click the 'Invoke' button to test this method:

+
+ + + + + + + + + + + + + + + +
<%#DataBinder.Eval(Container.DataItem, "Name")%>: ">
 
+
+
"> + The web service returned the following result:

+
+
+ +
+ <% } else {%> + The test form is not available for this operation because it has parameters with a complex structure. + <% } %> + <% } %> + + + + <% if (CurrentTab == "msg") { %> + + The following are sample SOAP requests and responses for each protocol supported by this method: +

+ + <% if (IsOperationSupported ("Soap")) { %> + Soap +

+
<%=GenerateOperationMessages ("Soap", true)%>
+
+
<%=GenerateOperationMessages ("Soap", false)%>
+
+ <% } %> + <% if (IsOperationSupported ("HttpGet")) { %> + HTTP Get +

+
<%=GenerateOperationMessages ("HttpGet", true)%>
+
+
<%=GenerateOperationMessages ("HttpGet", false)%>
+
+ <% } %> + <% if (IsOperationSupported ("HttpPost")) { %> + HTTP Post +

+
<%=GenerateOperationMessages ("HttpPost", true)%>
+
+
<%=GenerateOperationMessages ("HttpPost", false)%>
+
+ <% } %> + + <% } %> +<%} else if (CurrentPage == "proxy") {%> + +
+ Select the language for which you want to generate a proxy +   + +    +
+
+ <%=CurrentProxytName%>    + Download +

+
+
<%=GetProxyCode ()%>
+
+<%} else if (CurrentPage == "wsdl") {%> + + <% if (descriptions.Count > 1 || schemas.Count > 1) {%> + The description of this web service is composed by several documents. Click on the document you want to see: + + + + <%} else {%> + <%}%> +
+ <%=CurrentDocumentName%>    + Download +

+
+
<%=GenerateDocument ()%>
+
+ +<%}%> + +














+
+ + diff --git a/ReHitman/Modules/Mono/etc/mono/4.5/machine.config b/ReHitman/Modules/Mono/etc/mono/4.5/machine.config new file mode 100644 index 0000000..4557095 --- /dev/null +++ b/ReHitman/Modules/Mono/etc/mono/4.5/machine.config @@ -0,0 +1,310 @@ + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+ +
+ + + +
+ +
+
+
+
+ + + + +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+
+
+
+
+
+
+
+ + +
+
+ +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ReHitman/Modules/Mono/etc/mono/4.5/settings.map b/ReHitman/Modules/Mono/etc/mono/4.5/settings.map new file mode 100644 index 0000000..4c53aca --- /dev/null +++ b/ReHitman/Modules/Mono/etc/mono/4.5/settings.map @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/ReHitman/Modules/Mono/etc/mono/4.5/web.config b/ReHitman/Modules/Mono/etc/mono/4.5/web.config new file mode 100644 index 0000000..324c529 --- /dev/null +++ b/ReHitman/Modules/Mono/etc/mono/4.5/web.config @@ -0,0 +1,253 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ReHitman/Modules/Mono/etc/mono/browscap.ini b/ReHitman/Modules/Mono/etc/mono/browscap.ini new file mode 100644 index 0000000..1267e1d --- /dev/null +++ b/ReHitman/Modules/Mono/etc/mono/browscap.ini @@ -0,0 +1,16979 @@ +;;; Provided courtesy of http://browsers.garykeith.com +;;; Created on Wednesday, June 17, 2009 at 6:30 AM GMT + +[GJK_Browscap_Version] +Version=4476 +Released=Wed, 17 Jun 2009 06:30:21 -0000 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; DefaultProperties + +[DefaultProperties] +Browser=DefaultProperties +Version=0 +MajorVer=0 +MinorVer=0 +Platform=unknown +Alpha=false +Beta=false +Win16=false +Win32=false +Win64=false +Frames=false +IFrames=false +Tables=false +Cookies=false +BackgroundSounds=false +CDF=false +VBScript=false +JavaApplets=false +JavaScript=false +ActiveXControls=false +isBanned=false +isMobileDevice=false +isSyndicationReader=false +Crawler=false +CssVersion=0 +supportsCSS=false +AOL=false +aolVersion=0 +ECMAScriptVersion=0.0 +W3CDOMVersion=0.0 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Ask + +[Ask] +Parent=DefaultProperties +Browser=Ask +Frames=true +Tables=true +Crawler=true + +[Mozilla/?.0 (compatible; Ask Jeeves/Teoma*)] +Parent=Ask +Browser=Teoma + +[Mozilla/2.0 (compatible; Ask Jeeves)] +Parent=Ask +Browser=AskJeeves + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Baidu + +[Baidu] +Parent=DefaultProperties +Browser=Baidu +Frames=true +Tables=true +Crawler=true + +[BaiduImageSpider*] +Parent=Baidu +Browser=BaiduImageSpider + +[Baiduspider*] +Parent=Baidu +Browser=BaiDu + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Google + +[Google] +Parent=DefaultProperties +Browser=Google +Frames=true +IFrames=true +Tables=true +JavaScript=true +Crawler=true + +[* (compatible; Googlebot-Mobile/2.1; *http://www.google.com/bot.html)] +Parent=Google +Browser=Googlebot-Mobile +Frames=false +IFrames=false +Tables=false + +[*Google Wireless Transcoder*] +Parent=Google +Browser=Google Wireless Transcoder + +[AdsBot-Google (?http://www.google.com/adsbot.html)] +Parent=Google +Browser=AdsBot-Google + +[Feedfetcher-Google-iGoogleGadgets;*] +Parent=Google +Browser=iGoogleGadgets +isBanned=true +isSyndicationReader=true + +[Feedfetcher-Google;*] +Parent=Google +Browser=Feedfetcher-Google +isBanned=true +isSyndicationReader=true + +[Google OpenSocial agent (http://www.google.com/feedfetcher.html)] +Parent=Google +Browser=Google OpenSocial + +[Google-Site-Verification/1.0] +Parent=Google +Browser=Google-Site-Verification + +[Google-Sitemaps/*] +Parent=Google +Browser=Google-Sitemaps + +[Googlebot-Image/*] +Parent=Google +Browser=Googlebot-Image +CDF=true + +[googlebot-urlconsole] +Parent=Google +Browser=googlebot-urlconsole + +[Googlebot-Video/1.0] +Parent=Google +Browser=Google-Video + +[Googlebot/2.1 (?http://www.google.com/bot.html)] +Parent=Google +Browser=Googlebot + +[Googlebot/2.1 (?http://www.googlebot.com/bot.html)] +Parent=Google +Browser=Googlebot + +[Googlebot/Test*] +Parent=Google +Browser=Googlebot/Test + +[gsa-crawler*] +Parent=Google +Browser=Google Search Appliance +isBanned=true + +[Mediapartners-Google*] +Parent=Google +Browser=Mediapartners-Google + +[Mozilla/4.0 (compatible; Google Desktop)] +Parent=Google +Browser=Google Desktop + +[Mozilla/4.0 (compatible; GoogleToolbar*)] +Parent=Google +Browser=Google Toolbar +isBanned=true + +[Mozilla/5.0 (compatible; Google Keyword Tool;*)] +Parent=Google +Browser=Google Keyword Tool + +[Mozilla/5.0 (compatible; Googlebot/2.1; ?http://www.google.com/bot.html)] +Parent=Google +Browser=Google Webmaster Tools + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Inktomi + +[Inktomi] +Parent=DefaultProperties +Browser=Inktomi +Frames=true +Tables=true +Crawler=true + +[* (compatible;YahooSeeker/M1A1-R2D2; *)] +Parent=Inktomi +Browser=YahooSeeker-Mobile +Frames=false +Tables=false + +[Mozilla/4.0] +Parent=Inktomi + +[Mozilla/4.0 (compatible; MSIE 5.0; Windows NT)] +Parent=Inktomi +Win32=true + +[Mozilla/4.0 (compatible; Yahoo Japan; for robot study; kasugiya)] +Parent=Inktomi +Browser=Yahoo! RobotStudy +isBanned=true + +[Mozilla/5.0 (compatible; BMC/1.0 (Y!J-AGENT))] +Parent=Inktomi +Browser=Y!J-AGENT/BMC + +[Mozilla/5.0 (compatible; BMF/1.0 (Y!J-AGENT))] +Parent=Inktomi +Browser=Y!J-AGENT/BMF + +[Mozilla/5.0 (compatible; BMI/1.0 (Y!J-AGENT; 1.0))] +Parent=Inktomi +Browser=Y!J-AGENT/BMI + +[Mozilla/5.0 (compatible; Yahoo! DE Slurp; http://help.yahoo.com/help/us/ysearch/slurp)] +Parent=Inktomi +Browser=Yahoo! Directory Engine + +[Mozilla/5.0 (compatible; Yahoo! Slurp China; http://misc.yahoo.com.cn/help.html)] +Parent=Inktomi +Browser=Yahoo! Slurp China + +[Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)] +Parent=Inktomi +Browser=Yahoo! Slurp +Version=3.0 +MajorVer=3 +MinorVer=0 + +[Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)] +Parent=Inktomi +Browser=Yahoo! Slurp + +[Mozilla/5.0 (compatible; Yahoo! Verifier/1.1)] +Parent=Inktomi +Browser=Yahoo! Verifier +Version=1.1 +MajorVer=1 +MinorVer=1 + +[Mozilla/5.0 (Slurp/cat; slurp@inktomi.com; http://www.inktomi.com/slurp.html)] +Parent=Inktomi +Browser=Slurp/cat + +[Mozilla/5.0 (Slurp/si; slurp@inktomi.com; http://www.inktomi.com/slurp.html)] +Parent=Inktomi + +[Mozilla/5.0 (Yahoo-MMCrawler/4.0; mailto:vertical-crawl-support@yahoo-inc.com)] +Parent=Inktomi +Browser=Yahoo-MMCrawler +Version=4.0 +MajorVer=4 +MinorVer=0 + +[Scooter/*] +Parent=Inktomi +Browser=Scooter + +[Scooter/3.3Y!CrawlX] +Parent=Inktomi +Browser=Scooter/3.3Y!CrawlX +Version=3.3 +MajorVer=3 +MinorVer=3 + +[slurp] +Parent=Inktomi +Browser=slurp + +[Y!J-BSC/1.0*] +Parent=Inktomi +Browser=Y!J-BSC +Version=1.0 +MajorVer=1 +MinorVer=0 +isBanned=true + +[Y!J-SRD/1.0] +Parent=Inktomi +Browser=Y!J-SRD +Version=1.0 +MajorVer=1 +MinorVer=0 + +[Yahoo Mindset] +Parent=Inktomi +Browser=Yahoo Mindset + +[Yahoo Pipes*] +Parent=Inktomi +Browser=Yahoo Pipes + +[Yahoo! Mindset] +Parent=Inktomi +Browser=Yahoo! Mindset + +[Yahoo! Slurp/Site Explorer] +Parent=Inktomi +Browser=Yahoo! Site Explorer + +[Yahoo-Blogs/*] +Parent=Inktomi +Browser=Yahoo-Blogs + +[Yahoo-MMAudVid*] +Parent=Inktomi +Browser=Yahoo-MMAudVid + +[Yahoo-MMCrawler*] +Parent=Inktomi +Browser=Yahoo-MMCrawler +isBanned=true + +[YahooFeedSeeker*] +Parent=Inktomi +Browser=YahooFeedSeeker +isSyndicationReader=true +Crawler=false + +[YahooSeeker/*] +Parent=Inktomi +Browser=YahooSeeker +isMobileDevice=true + +[YahooSeeker/CafeKelsa (compatible; Konqueror/3.2; FreeBSD*) (KHTML, like Gecko)] +Parent=Inktomi +Browser=YahooSeeker/CafeKelsa + +[YahooSeeker/CafeKelsa-dev (compatible; Konqueror/3.2; FreeBSD*) (KHTML, like Gecko)] +Parent=Inktomi + +[YahooVideoSearch*] +Parent=Inktomi +Browser=YahooVideoSearch + +[YahooYSMcm*] +Parent=Inktomi +Browser=YahooYSMcm + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; MSN + +[MSN] +Parent=DefaultProperties +Browser=MSN +Frames=true +Tables=true +Crawler=true + +[adidxbot/1.1 (?http://search.msn.com/msnbot.htm)] +Parent=MSN +Browser=adidxbot + +[librabot/1.0 (*)] +Parent=MSN +Browser=librabot + +[llssbot/1.0] +Parent=MSN +Browser=llssbot +Version=1.0 +MajorVer=1 +MinorVer=0 + +[MSMOBOT/1.1*] +Parent=MSN +Browser=msnbot-mobile +Version=1.1 +MajorVer=1 +MinorVer=1 + +[MSNBot-Academic/1.0*] +Parent=MSN +Browser=MSNBot-Academic +Version=1.0 +MajorVer=1 +MinorVer=0 + +[msnbot-media/1.0*] +Parent=MSN +Browser=msnbot-media +Version=1.0 +MajorVer=1 +MinorVer=0 + +[msnbot-media/1.1*] +Parent=MSN +Browser=msnbot-media +Version=1.1 +MajorVer=1 +MinorVer=1 + +[MSNBot-News/1.0*] +Parent=MSN +Browser=MSNBot-News +Version=1.0 +MajorVer=1 +MinorVer=0 + +[MSNBot-NewsBlogs/1.0*] +Parent=MSN +Browser=MSNBot-NewsBlogs +Version=1 +MajorVer=1 +MinorVer=0 + +[msnbot-products] +Parent=MSN +Browser=msnbot-products + +[msnbot-webmaster/1.0 (*http://search.msn.com/msnbot.htm)] +Parent=MSN +Browser=msnbot-webmaster tools + +[msnbot/1.0*] +Parent=MSN +Browser=msnbot +Version=1.0 +MajorVer=1 +MinorVer=0 + +[msnbot/1.1*] +Parent=MSN +Browser=msnbot +Version=1.1 +MajorVer=1 +MinorVer=1 + +[msnbot/2.0b*] +Parent=MSN +Version=2.0 +MajorVer=2 +MinorVer=0 +Beta=true + +[MSR-ISRCCrawler] +Parent=MSN +Browser=MSR-ISRCCrawler + +[renlifangbot/1.0 (?http://search.msn.com/msnbot.htm)] +Parent=MSN +Browser=renlifangbot + +[T-Mobile Dash Mozilla/4.0 (*) MSNBOT-MOBILE/1.1 (*)] +Parent=MSN +Browser=msnbot-mobile + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Yahoo + +[Yahoo] +Parent=DefaultProperties +Browser=Yahoo +Frames=true +Tables=true +Crawler=true + +[Mozilla/4.0 (compatible; Y!J; for robot study*)] +Parent=Yahoo +Browser=Y!J + +[Mozilla/5.0 (Yahoo-Test/4.0*)] +Parent=Yahoo +Browser=Yahoo-Test +Version=4.0 +MajorVer=4 +MinorVer=0 + +[mp3Spider cn-search-devel at yahoo-inc dot com] +Parent=Yahoo +Browser=Yahoo! Media +isBanned=true + +[My Browser] +Parent=Yahoo +Browser=Yahoo! My Browser + +[Y!OASIS/*] +Parent=Yahoo +Browser=Y!OASIS +isBanned=true + +[YahooYSMcm/2.0.0] +Parent=Yahoo +Browser=YahooYSMcm +Version=2.0 +MajorVer=2 +MinorVer=0 +isBanned=true + +[YRL_ODP_CRAWLER] +Parent=Yahoo +Browser=YRL_ODP_CRAWLER +isBanned=true + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Yandex + +[Yandex] +Parent=DefaultProperties +Browser=Yandex +Frames=true +IFrames=true +Tables=true +Cookies=true +Crawler=true + +[Mozilla/4.0 (compatible; MSIE 5.0; YANDEX)] +Parent=Yandex + +[Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.9) Gecko VisualParser/3.0] +Parent=Yandex +Browser=VisualParser +isBanned=true + +[YaDirectBot/*] +Parent=Yandex +Browser=YaDirectBot + +[Yandex/*] +Parent=Yandex + +[YandexBlog/*] +Parent=Yandex +Browser=YandexBlog +isSyndicationReader=true + +[YandexSomething/*] +Parent=Yandex +Browser=YandexSomething +isSyndicationReader=true + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Best of the Web + +[Best of the Web] +Parent=DefaultProperties +Browser=Best of the Web +Frames=true +Tables=true + +[Mozilla/4.0 (compatible; BOTW Feed Grabber; *http://botw.org)] +Parent=Best of the Web +Browser=BOTW Feed Grabber +isSyndicationReader=true +Crawler=false + +[Mozilla/4.0 (compatible; BOTW Spider; *http://botw.org)] +Parent=Best of the Web +Browser=BOTW Spider +isBanned=true + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Boitho + +[Boitho] +Parent=DefaultProperties +Browser=Boitho +Frames=true +Tables=true +Crawler=true + +[boitho.com-dc/*] +Parent=Boitho +Browser=boitho.com-dc + +[boitho.com-robot/*] +Parent=Boitho +Browser=boitho.com-robot + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Convera + +[Convera] +Parent=DefaultProperties +Browser=Convera +Frames=true +Tables=true +Crawler=true + +[ConveraCrawler/*] +Parent=Convera +Browser=ConveraCrawler + +[ConveraMultiMediaCrawler/0.1*] +Parent=Convera +Browser=ConveraMultiMediaCrawler +Version=0.1 +MajorVer=0 +MinorVer=1 + +[CrawlConvera*] +Parent=Convera +Browser=CrawlConvera + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; DotBot + +[DotBot] +Parent=DefaultProperties +Browser=DotBot +Frames=true +Tables=true +isBanned=true +Crawler=true + +[DotBot/* (http://www.dotnetdotcom.org/*)] +Parent=DotBot + +[Mozilla/5.0 (compatible; DotBot/*; http://www.dotnetdotcom.org/*)] +Parent=DotBot + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Entireweb + +[Entireweb] +Parent=DefaultProperties +Browser=Entireweb +Frames=true +IFrames=true +Tables=true +isBanned=true +Crawler=true + +[Mozilla/4.0 (compatible; SpeedySpider; www.entireweb.com)] +Parent=Entireweb + +[Speedy Spider (*Beta/*)] +Parent=Entireweb + +[Speedy?Spider?(http://www.entireweb.com*)] +Parent=Entireweb + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Envolk + +[Envolk] +Parent=DefaultProperties +Browser=Envolk +Frames=true +IFrames=true +Tables=true +isBanned=true +Crawler=true + +[envolk/* (?http://www.envolk.com/envolk*)] +Parent=Envolk + +[envolk?ITS?spider/* (?http://www.envolk.com/envolk*)] +Parent=Envolk + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Exalead + +[Exalead] +Parent=DefaultProperties +Browser=Exalead +Frames=true +Tables=true +isBanned=true +Crawler=true + +[Exabot-Images/1.0] +Parent=Exalead +Browser=Exabot-Images +Version=1.0 +MajorVer=1 +MinorVer=0 + +[Exabot-Test/*] +Parent=Exalead +Browser=Exabot-Test + +[Exabot/2.0] +Parent=Exalead +Browser=Exabot + +[Exabot/3.0] +Parent=Exalead +Browser=Exabot +Version=3.0 +MajorVer=3 +MinorVer=0 +Platform=Liberate + +[Exalead NG/*] +Parent=Exalead +Browser=Exalead NG +isBanned=true + +[Mozilla/5.0 (compatible; Exabot-Images/3.0;*)] +Parent=Exalead +Browser=Exabot-Images + +[Mozilla/5.0 (compatible; Exabot/3.0 (BiggerBetter/tests);*)] +Parent=Exalead +Browser=Exabot/BiggerBetter/tests + +[Mozilla/5.0 (compatible; Exabot/3.0;*)] +Parent=Exalead +Browser=Exabot +isBanned=false + +[Mozilla/5.0 (compatible; NGBot/*)] +Parent=Exalead + +[ng/*] +Parent=Exalead +Browser=Exalead Previewer +Version=1.0 +MajorVer=1 +MinorVer=0 +isBanned=true + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Fast/AllTheWeb + +[Fast/AllTheWeb] +Parent=DefaultProperties +Browser=Fast/AllTheWeb +Alpha=true +Beta=true +Win16=true +Win32=true +Win64=true +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +CDF=true +VBScript=true +JavaApplets=true +JavaScript=true +ActiveXControls=true +isBanned=true +isMobileDevice=true +isSyndicationReader=true +Crawler=true + +[*FAST Enterprise Crawler*] +Parent=Fast/AllTheWeb +Browser=FAST Enterprise Crawler + +[FAST Data Search Document Retriever/4.0*] +Parent=Fast/AllTheWeb +Browser=FAST Data Search Document Retriever + +[FAST MetaWeb Crawler (helpdesk at fastsearch dot com)] +Parent=Fast/AllTheWeb +Browser=FAST MetaWeb Crawler + +[Fast PartnerSite Crawler*] +Parent=Fast/AllTheWeb +Browser=FAST PartnerSite + +[FAST-WebCrawler/*] +Parent=Fast/AllTheWeb +Browser=FAST-WebCrawler + +[FAST-WebCrawler/*/FirstPage*] +Parent=Fast/AllTheWeb +Browser=FAST-WebCrawler/FirstPage + +[FAST-WebCrawler/*/Fresh*] +Parent=Fast/AllTheWeb +Browser=FAST-WebCrawler/Fresh + +[FAST-WebCrawler/*/PartnerSite*] +Parent=Fast/AllTheWeb +Browser=FAST PartnerSite + +[FAST-WebCrawler/*?Multimedia*] +Parent=Fast/AllTheWeb +Browser=FAST-WebCrawler/Multimedia + +[FastSearch Web Crawler for*] +Parent=Fast/AllTheWeb +Browser=FastSearch Web Crawler + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Gigabot + +[Gigabot] +Parent=DefaultProperties +Browser=Gigabot +Frames=true +IFrames=true +Tables=true +Crawler=true + +[Gigabot*] +Parent=Gigabot + +[GigabotSiteSearch/*] +Parent=Gigabot +Browser=GigabotSiteSearch + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Ilse + +[Ilse] +Parent=DefaultProperties +Browser=Ilse +Frames=true +Tables=true +Crawler=true + +[IlseBot/*] +Parent=Ilse + +[INGRID/?.0*] +Parent=Ilse +Browser=Ilse + +[Mozilla/3.0 (INGRID/*] +Parent=Ilse +Browser=Ilse + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; iVia Project + +[iVia Project] +Parent=DefaultProperties +Browser=iVia Project +Frames=true +IFrames=true +Tables=true +Crawler=true + +[DataFountains/DMOZ Downloader*] +Parent=iVia Project +Browser=DataFountains/DMOZ Downloader +isBanned=true + +[DataFountains/DMOZ Feature Vector Corpus Creator*] +Parent=iVia Project +Browser=DataFountains/DMOZ Feature Vector Corpus + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Jayde Online + +[Jayde Online] +Parent=DefaultProperties +Browser=Jayde Online +Frames=true +Tables=true +Crawler=true + +[ExactSeek Crawler/*] +Parent=Jayde Online +Browser=ExactSeek Crawler + +[exactseek-pagereaper-* (crawler@exactseek.com)] +Parent=Jayde Online +Browser=exactseek-pagereaper +isBanned=true + +[exactseek.com] +Parent=Jayde Online +Browser=exactseek.com + +[Jayde Crawler*] +Parent=Jayde Online +Browser=Jayde Crawler + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Lycos + +[Lycos] +Parent=DefaultProperties +Browser=Lycos +Frames=true +Tables=true +Crawler=true + +[Lycos*] +Parent=Lycos +Browser=Lycos + +[Lycos-Proxy] +Parent=Lycos +Browser=Lycos-Proxy + +[Lycos-Spider_(modspider)] +Parent=Lycos +Browser=Lycos-Spider_(modspider) + +[Lycos-Spider_(T-Rex)] +Parent=Lycos +Browser=Lycos-Spider_(T-Rex) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Naver + +[Naver] +Parent=DefaultProperties +Browser=Naver +isBanned=true +Crawler=true + +[Cowbot-* (NHN Corp*naver.com)] +Parent=Naver +Browser=Naver Cowbot + +[Mozilla/4.0 (compatible; NaverBot/*; *)] +Parent=Naver + +[Mozilla/4.0 (compatible; NaverBot/*; nhnbot@naver.com)] +Parent=Naver +Browser=Naver NaverBot + +[NaverBot-* (NHN Corp*naver.com)] +Parent=Naver +Browser=Naver NHN Corp + +[Yeti/*] +Parent=Naver +Browser=Yeti + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Snap + +[Snap] +Parent=DefaultProperties +Browser=Snap +isBanned=true +Crawler=true + +[Mozilla/5.0 (SnapPreviewBot) Gecko/* Firefox/*] +Parent=Snap + +[Snapbot/*] +Parent=Snap + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Sogou + +[Sogou] +Parent=DefaultProperties +Browser=Sogou +Frames=true +Tables=true +isBanned=true +Crawler=true + +[shaboyi spider] +Parent=Sogou +Browser=Sogou/Shaboyi Spider + +[Sogou develop spider/*] +Parent=Sogou +Browser=Sogou Develop Spider + +[Sogou head spider*] +Parent=Sogou +Browser=Sogou/HEAD Spider + +[sogou js robot(*)] +Parent=Sogou + +[Sogou Orion spider/*] +Parent=Sogou +Browser=Sogou Orion spider + +[Sogou Pic Agent] +Parent=Sogou +Browser=Sogou/Image Crawler + +[Sogou Pic Spider] +Parent=Sogou +Browser=Sogou Pic Spider + +[Sogou Push Spider/*] +Parent=Sogou +Browser=Sogou Push Spider + +[sogou spider] +Parent=Sogou +Browser=Sogou/Spider + +[sogou web spider*] +Parent=Sogou +Browser=sogou web spider + +[Sogou-Test-Spider/*] +Parent=Sogou +Browser=Sogou-Test-Spider + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; YodaoBot + +[YodaoBot] +Parent=DefaultProperties +Browser=YodaoBot +Frames=true +IFrames=true +Tables=true +isBanned=true +Crawler=true + +[Mozilla/5.0 (compatible; YodaoBot/1.*)] +Parent=YodaoBot + +[Mozilla/5.0 (compatible;YodaoBot-Image/1.*)] +Parent=YodaoBot +Browser=YodaoBot-Image + +[WAP_Browser/5.0 (compatible; YodaoBot/1.*)] +Parent=YodaoBot + +[YodaoBot/1.* (*)] +Parent=YodaoBot + +[Best Whois (http://www.bestwhois.net/)] +Parent=DNS Tools +Browser=Best Whois + +[DNSGroup/*] +Parent=DNS Tools +Browser=DNS Group Crawler + +[NG-Search/*] +Parent=Exalead +Browser=NG-SearchBot + +[TouchStone] +Parent=Feeds Syndicators +Browser=TouchStone +isSyndicationReader=true + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; General Crawlers + +[General Crawlers] +Parent=DefaultProperties +Browser=General Crawlers +Crawler=true + +[A .NET Web Crawler] +Parent=General Crawlers +isBanned=true + +[BabalooSpider/1.*] +Parent=General Crawlers +Browser=BabalooSpider + +[BilgiBot/*] +Parent=General Crawlers +Browser=BilgiBot +isBanned=true + +[bot/* (bot; *bot@bot.bot)] +Parent=General Crawlers +Browser=bot +isBanned=true + +[CyberPatrol*] +Parent=General Crawlers +Browser=CyberPatrol +isBanned=true + +[Cynthia 1.0] +Parent=General Crawlers +Browser=Cynthia +Version=1.0 +MajorVer=1 +MinorVer=0 + +[ddetailsbot (http://www.displaydetails.com)] +Parent=General Crawlers +Browser=ddetailsbot + +[DomainCrawler/1.0 (info@domaincrawler.com; http://www.domaincrawler.com/domains/view/*)] +Parent=General Crawlers +Browser=DomainCrawler + +[DomainsBotBot/1.*] +Parent=General Crawlers +Browser=DomainsBotBot +isBanned=true + +[DomainsDB.net MetaCrawler*] +Parent=General Crawlers +Browser=DomainsDB + +[Drupal (*)] +Parent=General Crawlers +Browser=Drupal + +[Dumbot (version *)*] +Parent=General Crawlers +Browser=Dumbfind + +[EuripBot/*] +Parent=General Crawlers +Browser=Europe Internet Portal + +[eventax/*] +Parent=General Crawlers +Browser=eventax + +[FANGCrawl/*] +Parent=General Crawlers +Browser=Safe-t.net Web Filtering Service +isBanned=true + +[favorstarbot/*] +Parent=General Crawlers +Browser=favorstarbot +isBanned=true + +[FollowSite.com (*)] +Parent=General Crawlers +Browser=FollowSite +isBanned=true + +[Gaisbot*] +Parent=General Crawlers +Browser=Gaisbot + +[Healthbot/Health_and_Longevity_Project_(HealthHaven.com) ] +Parent=General Crawlers +Browser=Healthbot +isBanned=true + +[hitcrawler_0.*] +Parent=General Crawlers +Browser=hitcrawler +isBanned=true + +[htdig/*] +Parent=General Crawlers +Browser=ht://Dig + +[http://hilfe.acont.de/bot.html ACONTBOT] +Parent=General Crawlers +Browser=ACONTBOT +isBanned=true + +[JetBrains*] +Parent=General Crawlers +Browser=Omea Pro + +[KakleBot - www.kakle.com/0.1] +Parent=General Crawlers +Browser=KakleBot + +[KBeeBot/0.*] +Parent=General Crawlers +Browser=KBeeBot +isBanned=true + +[Keyword Density/*] +Parent=General Crawlers +Browser=Keyword Density + +[LetsCrawl.com/1.0*] +Parent=General Crawlers +Browser=LetsCrawl.com +isBanned=true + +[Lincoln State Web Browser] +Parent=General Crawlers +Browser=Lincoln State Web Browser +isBanned=true + +[Links4US-Crawler,*] +Parent=General Crawlers +Browser=Links4US-Crawler +isBanned=true + +[Lorkyll *.* -- lorkyll@444.net] +Parent=General Crawlers +Browser=Lorkyll +isBanned=true + +[Lsearch/sondeur] +Parent=General Crawlers +Browser=Lsearch/sondeur +isBanned=true + +[LucidMedia ClickSense/4.?] +Parent=General Crawlers +Browser=LucidMedia-ClickSense +isBanned=true + +[MapoftheInternet.com?(?http://MapoftheInternet.com)] +Parent=General Crawlers +Browser=MapoftheInternet +isBanned=true + +[Marvin v0.3] +Parent=General Crawlers +Browser=MedHunt +Version=0.3 +MajorVer=0 +MinorVer=3 + +[masidani_bot_v0.6*] +Parent=General Crawlers +Browser=masidani_bot + +[Metaspinner/0.01 (Metaspinner; http://www.meta-spinner.de/; support@meta-spinner.de/)] +Parent=General Crawlers +Browser=Metaspinner/0.01 +Version=0.01 +MajorVer=0 +MinorVer=01 + +[metatagsdir/*] +Parent=General Crawlers +Browser=metatagsdir +isBanned=true + +[Microsoft Windows Network Diagnostics] +Parent=General Crawlers +Browser=Microsoft Windows Network Diagnostics +isBanned=true + +[Miva (AlgoFeedback@miva.com)] +Parent=General Crawlers +Browser=Miva + +[moget/*] +Parent=General Crawlers +Browser=Goo + +[Mozdex/0.7.2*] +Parent=General Crawlers +Browser=Mozdex + +[Mozilla Compatible (MS IE 3.01 WinNT)] +Parent=General Crawlers +isBanned=true + +[Mozilla/* (compatible; WebCapture*)] +Parent=General Crawlers +Browser=WebCapture + +[Mozilla/4.0 (compatible; DepSpid/*)] +Parent=General Crawlers +Browser=DepSpid + +[Mozilla/4.0 (compatible; MSIE *; Windows NT *; SV1)] +Parent=General Crawlers +Browser=AVG + +[Mozilla/4.0 (compatible; MSIE 4.01; Vonna.com b o t)] +Parent=General Crawlers +Browser=Vonna.com +isBanned=true + +[Mozilla/4.0 (compatible; MSIE 4.01; Windows95)] +Parent=General Crawlers +Win32=true + +[Mozilla/4.0 (compatible; MSIE 4.5; Windows 98; )] +Parent=General Crawlers +Win32=true + +[Mozilla/4.0 (compatible; MyFamilyBot/*)] +Parent=General Crawlers +Browser=MyFamilyBot + +[Mozilla/4.0 (compatible; N-Stealth)] +Parent=General Crawlers +Browser=N-Stealth + +[Mozilla/4.0 (compatible; Scumbot/*; Linux/*)] +Parent=General Crawlers +isBanned=true + +[Mozilla/4.0 (compatible; Spider; Linux)] +Parent=General Crawlers +isBanned=true + +[Mozilla/4.0 (compatible; Win32)] +Parent=General Crawlers +Browser=Unknown Crawler +isBanned=true + +[Mozilla/4.1] +Parent=General Crawlers +isBanned=true + +[Mozilla/4.5] +Parent=General Crawlers +isBanned=true + +[Mozilla/5.0 (*http://gnomit.com/) Gecko/* Gnomit/1.0] +Parent=General Crawlers +Browser=Gnomit +isBanned=true + +[Mozilla/5.0 (compatible; AboutUsBot/*)] +Parent=General Crawlers +Browser=AboutUsBot +isBanned=true + +[Mozilla/5.0 (compatible; BuzzRankingBot/*)] +Parent=General Crawlers +Browser=BuzzRankingBot +isBanned=true + +[Mozilla/5.0 (compatible; Diffbot/0.1; http://www.diffbot.com)] +Parent=General Crawlers +Browser=Diffbot + +[Mozilla/5.0 (compatible; FirstSearchBot/1.0; *)] +Parent=General Crawlers +Browser=FirstSearchBot + +[mozilla/5.0 (compatible; genevabot http://www.healthdash.com)] +Parent=General Crawlers +Browser=Healthdash + +[Mozilla/5.0 (compatible; JadynAveBot; *http://www.jadynave.com/robot*] +Parent=General Crawlers +Browser=JadynAveBot +isBanned=true + +[Mozilla/5.0 (compatible; Kyluka crawl; http://www.kyluka.com/crawl.html; crawl@kyluka.com)] +Parent=General Crawlers +Browser=Kyluka + +[Mozilla/5.0 (compatible; MJ12bot/v1.2.*; http://www.majestic12.co.uk/bot.php*)] +Parent=General Crawlers +Browser=MJ12bot +Version=1.2 +MajorVer=1 +MinorVer=2 + +[Mozilla/5.0 (compatible; MSIE 7.0 ?http://www.europarchive.org)] +Parent=General Crawlers +Browser=Europe Web Archive + +[Mozilla/5.0 (compatible; Seznam screenshot-generator 2.0;*)] +Parent=General Crawlers +Browser=Seznam screenshot-generator +isBanned=true + +[Mozilla/5.0 (compatible; Twingly Recon; http://www.twingly.com/)] +Parent=General Crawlers +Browser=Twingly Recon + +[Mozilla/5.0 (compatible; unwrapbot/2.*; http://www.unwrap.jp*)] +Parent=General Crawlers +Browser=UnWrap + +[Mozilla/5.0 (compatible; Vermut*)] +Parent=General Crawlers +Browser=Vermut + +[Mozilla/5.0 (compatible; Webbot/*)] +Parent=General Crawlers +Browser=Webbot.ru +isBanned=true + +[n4p_bot*] +Parent=General Crawlers +Browser=n4p_bot + +[nabot*] +Parent=General Crawlers +Browser=Nabot + +[NetCarta_WebMapper/*] +Parent=General Crawlers +Browser=NetCarta_WebMapper +isBanned=true + +[NetID.com Bot*] +Parent=General Crawlers +Browser=NetID.com Bot +isBanned=true + +[neTVision AG andreas.heidoetting@thomson-webcast.net] +Parent=General Crawlers +Browser=neTVision + +[NextopiaBOT*] +Parent=General Crawlers +Browser=NextopiaBOT + +[nicebot] +Parent=General Crawlers +Browser=nicebot +isBanned=true + +[niXXieBot?Foster*] +Parent=General Crawlers +Browser=niXXiebot-Foster + +[Nozilla/P.N (Just for IDS woring)] +Parent=General Crawlers +Browser=Nozilla/P.N +isBanned=true + +[Nudelsalat/*] +Parent=General Crawlers +Browser=Nudelsalat +isBanned=true + +[NV32ts] +Parent=General Crawlers +Browser=NV32ts +isBanned=true + +[Ocelli/*] +Parent=General Crawlers +Browser=Ocelli + +[OpenTaggerBot (http://www.opentagger.com/opentaggerbot.htm)] +Parent=General Crawlers +Browser=OpenTaggerBot + +[Oracle Enterprise Search] +Parent=General Crawlers +Browser=Oracle Enterprise Search +isBanned=true + +[Oracle Ultra Search] +Parent=General Crawlers +Browser=Oracle Ultra Search + +[Pajaczek/*] +Parent=General Crawlers +Browser=Pajaczek +isBanned=true + +[panscient.com] +Parent=General Crawlers +Browser=panscient.com +isBanned=true + +[Patwebbot (http://www.herz-power.de/technik.html)] +Parent=General Crawlers +Browser=Patwebbot + +[PDFBot (crawler@pdfind.com)] +Parent=General Crawlers +Browser=PDFBot + +[Pete-Spider/1.*] +Parent=General Crawlers +Browser=Pete-Spider +isBanned=true + +[PhpDig/*] +Parent=General Crawlers +Browser=PhpDig + +[PlantyNet_WebRobot*] +Parent=General Crawlers +Browser=PlantyNet +isBanned=true + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; PluckIt + +[PluckItCrawler/1.0 (*)] +Parent=General Crawlers +isMobileDevice=true + +[PMAFind] +Parent=General Crawlers +Browser=PMAFind +isBanned=true + +[Poodle_predictor_1.0] +Parent=General Crawlers +Browser=Poodle Predictor + +[QuickFinder Crawler] +Parent=General Crawlers +Browser=QuickFinder +isBanned=true + +[Radiation Retriever*] +Parent=General Crawlers +Browser=Radiation Retriever +isBanned=true + +[RedCarpet/*] +Parent=General Crawlers +Browser=RedCarpet +isBanned=true + +[RixBot (http://babelserver.org/rix)] +Parent=General Crawlers +Browser=RixBot + +[Rome Client (http://tinyurl.com/64t5n) Ver: 0.*] +Parent=General Crawlers +Browser=TinyURL + +[SBIder/*] +Parent=General Crawlers +Browser=SiteSell + +[ScollSpider/2.*] +Parent=General Crawlers +Browser=ScollSpider +isBanned=true + +[Search Fst] +Parent=General Crawlers +Browser=Search Fst + +[searchbot admin@google.com] +Parent=General Crawlers +Browser=searchbot +isBanned=true + +[Seeker.lookseek.com] +Parent=General Crawlers +Browser=LookSeek +isBanned=true + +[semanticdiscovery/*] +Parent=General Crawlers +Browser=Semantic Discovery + +[SeznamBot/*] +Parent=General Crawlers +Browser=SeznamBot +isBanned=true + +[Shelob (shelob@gmx.net)] +Parent=General Crawlers +Browser=Shelob +isBanned=true + +[shelob v1.*] +Parent=General Crawlers +Browser=shelob +isBanned=true + +[ShopWiki/1.0*] +Parent=General Crawlers +Browser=ShopWiki +Version=1.0 +MajorVer=1 +MinorVer=0 + +[ShowXML/1.0 libwww/5.4.0] +Parent=General Crawlers +Browser=ShowXML +isBanned=true + +[sitecheck.internetseer.com*] +Parent=General Crawlers +Browser=Internetseer + +[SMBot/*] +Parent=General Crawlers +Browser=SMBot + +[sohu*] +Parent=General Crawlers +Browser=sohu-search +isBanned=true + +[SpankBot*] +Parent=General Crawlers +Browser=SpankBot +isBanned=true + +[spider (tspyyp@tom.com)] +Parent=General Crawlers +Browser=spider (tspyyp@tom.com) +isBanned=true + +[Sunrise/0.*] +Parent=General Crawlers +Browser=Sunrise +isBanned=true + +[Superpages URL Verification Engine] +Parent=General Crawlers +Browser=Superpages + +[Surf Knight] +Parent=General Crawlers +Browser=Surf Knight +isBanned=true + +[SurveyBot/*] +Parent=General Crawlers +Browser=SurveyBot +isBanned=true + +[SynapticSearch/AI Crawler 1.?] +Parent=General Crawlers +Browser=SynapticSearch +isBanned=true + +[SyncMgr] +Parent=General Crawlers +Browser=SyncMgr + +[Tagyu Agent/1.0] +Parent=General Crawlers +Browser=Tagyu + +[Talkro Web-Shot/*] +Parent=General Crawlers +Browser=Talkro Web-Shot +isBanned=true + +[Tecomi Bot (http://www.tecomi.com/bot.htm)] +Parent=General Crawlers +Browser=Tecomi + +[TheInformant*] +Parent=General Crawlers +Browser=TheInformant +isBanned=true + +[Toata dragostea*] +Parent=General Crawlers +Browser=Toata dragostea +isBanned=true + +[Tutorial Crawler*] +Parent=General Crawlers +isBanned=true + +[UbiCrawler/*] +Parent=General Crawlers +Browser=UbiCrawler + +[UCmore] +Parent=General Crawlers +Browser=UCmore + +[User*Agent:*] +Parent=General Crawlers +isBanned=true + +[USER_AGENT] +Parent=General Crawlers +Browser=USER_AGENT +isBanned=true + +[VadixBot] +Parent=General Crawlers +Browser=VadixBot + +[VengaBot/*] +Parent=General Crawlers +Browser=VengaBot +isBanned=true + +[Visicom Toolbar] +Parent=General Crawlers +Browser=Visicom Toolbar + +[W3C-WebCon/*] +Parent=General Crawlers +Browser=W3C-WebCon + +[Webclipping.com] +Parent=General Crawlers +Browser=Webclipping.com +isBanned=true + +[webcollage/*] +Parent=General Crawlers +Browser=WebCollage +isBanned=true + +[WebCrawler_1.*] +Parent=General Crawlers +Browser=WebCrawler + +[WebFilter Robot*] +Parent=General Crawlers +Browser=WebFilter Robot + +[WeBoX/*] +Parent=General Crawlers +Browser=WeBoX + +[WebTrends/*] +Parent=General Crawlers +Browser=WebTrends + +[West Wind Internet Protocols*] +Parent=General Crawlers +Browser=Versatel +isBanned=true + +[WhizBang] +Parent=General Crawlers +Browser=WhizBang + +[Willow Internet Crawler by Twotrees V*] +Parent=General Crawlers +Browser=Willow Internet Crawler + +[WIRE/* (Linux; i686; Bot,Robot,Spider,Crawler)] +Parent=General Crawlers +Browser=WIRE +isBanned=true + +[www.fi crawler, contact crawler@www.fi] +Parent=General Crawlers +Browser=www.fi crawler + +[Xerka WebBot v1.*] +Parent=General Crawlers +Browser=Xerka +isBanned=true + +[XML Sitemaps Generator*] +Parent=General Crawlers +Browser=XML Sitemaps Generator + +[XSpider*] +Parent=General Crawlers +Browser=XSpider +isBanned=true + +[YooW!/* (?http://www.yoow.eu)] +Parent=General Crawlers +Browser=YooW! +isBanned=true + +[HiddenMarket-*] +Parent=General RSS +Browser=HiddenMarket +isBanned=true + +[FOTOCHECKER] +Parent=Image Crawlers +Browser=FOTOCHECKER +isBanned=true + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Search Engines + +[Search Engines] +Parent=DefaultProperties +Browser=Search Engines +Crawler=true + +[*FDSE robot*] +Parent=Search Engines +Browser=FDSE Robot + +[*Fluffy the spider*] +Parent=Search Engines +Browser=SearchHippo + +[Abacho*] +Parent=Search Engines +Browser=Abacho + +[ah-ha.com crawler (crawler@ah-ha.com)] +Parent=Search Engines +Browser=Ah-Ha + +[AIBOT/*] +Parent=Search Engines +Browser=21Seek.Com + +[ALeadSoftbot/*] +Parent=Search Engines +Browser=ALeadSoftbot + +[Amfibibot/*] +Parent=Search Engines +Browser=Amfibi + +[AnswerBus (http://www.answerbus.com/)] +Parent=Search Engines + +[antibot-V*] +Parent=Search Engines +Browser=antibot + +[appie*(www.walhello.com)] +Parent=Search Engines +Browser=Walhello + +[ASPSeek/*] +Parent=Search Engines +Browser=ASPSeek + +[BigCliqueBOT/*] +Parent=Search Engines +Browser=BigClique.com/BigClic.com + +[Blaiz-Bee/*] +Parent=Search Engines +Browser=RawGrunt + +[btbot/*] +Parent=Search Engines +Browser=Bit Torrent Search Engine + +[Busiversebot/v1.0 (http://www.busiverse.com/bot.php)] +Parent=Search Engines +Browser=Busiversebot +isBanned=true + +[CatchBot/*; http://www.catchbot.com] +Parent=Search Engines +Browser=CatchBot +Version=1.0 +MajorVer=1 +MinorVer=0 + +[CipinetBot (http://www.cipinet.com/bot.html)] +Parent=Search Engines +Browser=CipinetBot + +[Cogentbot/1.?*] +Parent=Search Engines +Browser=Cogentbot + +[compatible; Mozilla 4.0; MSIE 5.5; (SqwidgeBot v1.01 - http://www.sqwidge.com/bot/)] +Parent=Search Engines +Browser=SqwidgeBot + +[cosmos*] +Parent=Search Engines +Browser=Xyleme + +[Deepindex] +Parent=Search Engines +Browser=Deepindex + +[DiamondBot] +Parent=Search Engines +Browser=DiamondBot + +[Dumbot*] +Parent=Search Engines +Browser=Dumbot +Version=0.2 +MajorVer=0 +MinorVer=2 +Beta=true + +[Eule?Robot*] +Parent=Search Engines +Browser=Eule-Robot + +[Faxobot/*] +Parent=Search Engines +Browser=Faxo + +[Filangy/*] +Parent=Search Engines +Browser=Filangy + +[flatlandbot/*] +Parent=Search Engines +Browser=Flatland + +[Fooky.com/ScorpionBot/ScoutOut;*] +Parent=Search Engines +Browser=ScorpionBot +isBanned=true + +[FyberSpider*] +Parent=Search Engines +Browser=FyberSpider +isBanned=true + +[Gaisbot/*] +Parent=Search Engines +Browser=Gaisbot + +[gazz/*(gazz@nttr.co.jp)] +Parent=Search Engines +Browser=gazz + +[geniebot*] +Parent=Search Engines +Browser=GenieKnows + +[GOFORITBOT (?http://www.goforit.com/about/?)] +Parent=Search Engines +Browser=GoForIt + +[GoGuidesBot/*] +Parent=Search Engines +Browser=GoGuidesBot + +[GroschoBot/*] +Parent=Search Engines +Browser=GroschoBot + +[GurujiBot/1.*] +Parent=Search Engines +Browser=GurujiBot +isBanned=true + +[HenryTheMiragoRobot*] +Parent=Search Engines +Browser=Mirago + +[HolmesBot (http://holmes.ge)] +Parent=Search Engines +Browser=HolmesBot + +[Hotzonu/*] +Parent=Search Engines +Browser=Hotzonu + +[HyperEstraier/*] +Parent=Search Engines +Browser=HyperEstraier +isBanned=true + +[i1searchbot/*] +Parent=Search Engines +Browser=i1searchbot + +[IIITBOT/1.*] +Parent=Search Engines +Browser=Indian Language Web Search Engine + +[Iltrovatore-?etaccio/*] +Parent=Search Engines +Browser=Iltrovatore-Setaccio + +[InfociousBot (?http://corp.infocious.com/tech_crawler.php)] +Parent=Search Engines +Browser=InfociousBot +isBanned=true + +[Infoseek SideWinder/*] +Parent=Search Engines +Browser=Infoseek + +[iSEEKbot/*] +Parent=Search Engines +Browser=iSEEKbot + +[Knight/0.? (Zook Knight; http://knight.zook.in/; knight@zook.in)] +Parent=Search Engines +Browser=Knight + +[Kolinka Forum Search (www.kolinka.com)] +Parent=Search Engines +Browser=Kolinka Forum Search +isBanned=true + +[KRetrieve/] +Parent=Search Engines +Browser=KRetrieve +isBanned=true + +[LapozzBot/*] +Parent=Search Engines +Browser=LapozzBot + +[Linknzbot*] +Parent=Search Engines +Browser=Linknzbot + +[LocalcomBot/*] +Parent=Search Engines +Browser=LocalcomBot + +[Mail.Ru/1.0] +Parent=Search Engines +Browser=Mail.Ru + +[MaSagool/*] +Parent=Search Engines +Browser=Sagoo +Version=1.0 +MajorVer=1 +MinorVer=0 + +[miniRank/*] +Parent=Search Engines +Browser=miniRank + +[Mnogosearch*] +Parent=Search Engines +Browser=Mnogosearch + +[Mozilla/0.9* no dos :) (Linux)] +Parent=Search Engines +Browser=goliat +isBanned=true + +[Mozilla/4.0 (compatible; Arachmo)] +Parent=Search Engines +Browser=Arachmo + +[Mozilla/4.0 (compatible; http://search.thunderstone.com/texis/websearch/about.html)] +Parent=Search Engines +Browser=ThunderStone +isBanned=true + +[Mozilla/4.0 (compatible; MSIE *; Windows NT; Girafabot; girafabot at girafa dot com; http://www.girafa.com)] +Parent=Search Engines +Browser=Girafabot +Win32=true + +[Mozilla/4.0 (compatible; Vagabondo/*; webcrawler at wise-guys dot nl; *)] +Parent=Search Engines +Browser=Vagabondo + +[Mozilla/4.0(?compatible; MSIE 6.0; Qihoo *)] +Parent=Search Engines +Browser=Qihoo + +[Mozilla/4.7 (compatible; WhizBang; http://www.whizbang.com/crawler)] +Parent=Search Engines +Browser=Inxight Software + +[Mozilla/5.0 (*) VoilaBot*] +Parent=Search Engines +Browser=VoilaBot +isBanned=true + +[Mozilla/5.0 (compatible; ActiveTouristBot*; http://www.activetourist.com)] +Parent=Search Engines +Browser=ActiveTouristBot + +[Mozilla/5.0 (compatible; Butterfly/1.0; *)*] +Parent=Search Engines +Browser=Butterfly + +[Mozilla/5.0 (compatible; Charlotte/*; *)] +Parent=Search Engines +Browser=Charlotte +Beta=true +isBanned=true + +[Mozilla/5.0 (compatible; CXL-FatAssANT*)] +Parent=Search Engines +Browser=FatAssANT + +[Mozilla/5.0 (compatible; DBLBot/1.0; ?http://www.dontbuylists.com/)] +Parent=Search Engines +Browser=DBLBot +Version=1.0 +MajorVer=1 +MinorVer=0 + +[Mozilla/5.0 (compatible; EARTHCOM.info/*)] +Parent=Search Engines +Browser=EARTHCOM + +[Mozilla/5.0 (compatible; Lipperhey Spider; http://www.lipperhey.com/)] +Parent=Search Engines +Browser=Lipperhey Spider + +[Mozilla/5.0 (compatible; MojeekBot/*; http://www.mojeek.com/bot.html)] +Parent=Search Engines +Browser=MojeekBot + +[Mozilla/5.0 (compatible; NLCrawler/*] +Parent=Search Engines +Browser=Northern Light Web Search + +[Mozilla/5.0 (compatible; OsO;*] +Parent=Search Engines +Browser=Octopodus +isBanned=true + +[Mozilla/5.0 (compatible; Pogodak.*)] +Parent=Search Engines +Browser=Pogodak + +[Mozilla/5.0 (compatible; Quantcastbot/1.*)] +Parent=Search Engines +Browser=Quantcastbot + +[Mozilla/5.0 (compatible; ScoutJet; *http://www.scoutjet.com/)] +Parent=Search Engines +Browser=ScoutJet + +[Mozilla/5.0 (compatible; Scrubby/*; http://www.scrubtheweb.com/abs/meta-check.html)] +Parent=Search Engines +Browser=Scrubby +isBanned=true + +[Mozilla/5.0 (compatible; YoudaoBot/1.*; http://www.youdao.com/help/webmaster/spider/*)] +Parent=Search Engines +Browser=YoudaoBot +Version=1.0 +MajorVer=1 +MinorVer=0 + +[Mozilla/5.0 (Twiceler*)] +Parent=Search Engines +Browser=Twiceler +isBanned=true + +[Mozilla/5.0 CostaCider Search*] +Parent=Search Engines +Browser=CostaCider Search + +[Mozilla/5.0 GurujiBot/1.0 (*)] +Parent=Search Engines +Browser=GurujiBot + +[NavissoBot] +Parent=Search Engines +Browser=NavissoBot + +[NextGenSearchBot*(for information visit *)] +Parent=Search Engines +Browser=ZoomInfo +isBanned=true + +[Norbert the Spider(Burf.com)] +Parent=Search Engines +Browser=Norbert the Spider + +[NuSearch Spider*] +Parent=Search Engines +Browser=nuSearch + +[ObjectsSearch/*] +Parent=Search Engines +Browser=ObjectsSearch + +[OpenISearch/1.*] +Parent=Search Engines +Browser=OpenISearch (Amazon) + +[Pagebull http://www.pagebull.com/] +Parent=Search Engines +Browser=Pagebull + +[PEERbot*] +Parent=Search Engines +Browser=PEERbot + +[Pompos/*] +Parent=Search Engines +Browser=Pompos + +[Popdexter/*] +Parent=Search Engines +Browser=Popdex + +[Qweery*] +Parent=Search Engines +Browser=QweeryBot + +[RedCell/* (*)] +Parent=Search Engines +Browser=RedCell + +[Scrubby/*] +Parent=Search Engines +Browser=Scrub The Web + +[Search-10/*] +Parent=Search Engines +Browser=Search-10 + +[search.ch*] +Parent=Search Engines +Browser=Swiss Search Engine + +[Searchmee! Spider*] +Parent=Search Engines +Browser=Searchmee! + +[Seekbot/*] +Parent=Search Engines +Browser=Seekbot + +[SiteSpider (http://www.SiteSpider.com/)] +Parent=Search Engines +Browser=SiteSpider + +[Spinne/*] +Parent=Search Engines +Browser=Spinne + +[sproose/*] +Parent=Search Engines +Browser=Sproose + +[Sqeobot/0.*] +Parent=Search Engines +Browser=Branzel +isBanned=true + +[SquigglebotBot/*] +Parent=Search Engines +Browser=SquigglebotBot +isBanned=true + +[StackRambler/*] +Parent=Search Engines +Browser=StackRambler + +[SygolBot*] +Parent=Search Engines +Browser=SygolBot + +[SynoBot] +Parent=Search Engines +Browser=SynoBot + +[Szukacz/*] +Parent=Search Engines +Browser=Szukacz + +[Tarantula/*] +Parent=Search Engines +Browser=Tarantula +isBanned=true + +[TerrawizBot/*] +Parent=Search Engines +Browser=TerrawizBot +isBanned=true + +[Tkensaku/*] +Parent=Search Engines +Browser=Tkensaku + +[TMCrawler] +Parent=Search Engines +Browser=TMCrawler +isBanned=true + +[Twingly Recon] +Parent=Search Engines +Browser=Twingly Recon +isBanned=true + +[updated/*] +Parent=Search Engines +Browser=Updated! + +[URL Spider Pro/*] +Parent=Search Engines +Browser=URL Spider Pro + +[URL Spider SQL*] +Parent=Search Engines +Browser=Innerprise Enterprise Search + +[VMBot/*] +Parent=Search Engines +Browser=VMBot + +[voyager/2.0 (http://www.kosmix.com/html/crawler.html)] +Parent=Search Engines +Browser=Voyager + +[wadaino.jp-crawler*] +Parent=Search Engines +Browser=wadaino.jp +isBanned=true + +[WebAlta Crawler/*] +Parent=Search Engines +Browser=WebAlta Crawler +isBanned=true + +[WebCorp/*] +Parent=Search Engines +Browser=WebCorp +isBanned=true + +[webcrawl.net] +Parent=Search Engines +Browser=webcrawl.net + +[WISEbot/*] +Parent=Search Engines +Browser=WISEbot +isBanned=true + +[Wotbox/*] +Parent=Search Engines +Browser=Wotbox + +[www.zatka.com] +Parent=Search Engines +Browser=Zatka + +[WWWeasel Robot v*] +Parent=Search Engines +Browser=World Wide Weasel + +[YadowsCrawler*] +Parent=Search Engines +Browser=YadowsCrawler + +[YodaoBot/*] +Parent=Search Engines +Browser=YodaoBot +isBanned=true + +[ZeBot_www.ze.bz*] +Parent=Search Engines +Browser=ZE.bz + +[zibber-v*] +Parent=Search Engines +Browser=Zibb + +[ZipppBot/*] +Parent=Search Engines +Browser=ZipppBot + +[ATA-Translation-Service] +Parent=Translators +Browser=ATA-Translation-Service + +[GJK_Browser_Check] +Parent=Version Checkers +Browser=GJK_Browser_Check + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Hatena + +[Hatena] +Parent=DefaultProperties +Browser=Hatena +isBanned=true +Crawler=true + +[Feed::Find/*] +Parent=Hatena +Browser=Feed Find +isSyndicationReader=true + +[Hatena Antenna/*] +Parent=Hatena +Browser=Hatena Antenna + +[Hatena Bookmark/*] +Parent=Hatena +Browser=Hatena Bookmark + +[Hatena RSS/*] +Parent=Hatena +Browser=Hatena RSS +isSyndicationReader=true + +[Hatena::Crawler/*] +Parent=Hatena +Browser=Hatena Crawler + +[HatenaScreenshot*] +Parent=Hatena +Browser=HatenaScreenshot + +[URI::Fetch/*] +Parent=Hatena +Browser=URI::Fetch + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Internet Archive + +[Internet Archive] +Parent=DefaultProperties +Browser=Internet Archive +Frames=true +IFrames=true +Tables=true +isBanned=true +Crawler=true + +[*heritrix*] +Parent=Internet Archive +Browser=Heritrix +isBanned=true + +[ia_archiver*] +Parent=Internet Archive +Browser=Internet Archive + +[InternetArchive/*] +Parent=Internet Archive +Browser=InternetArchive + +[Mozilla/5.0 (compatible; archive.org_bot/1.*)] +Parent=Internet Archive + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Nutch + +[Nutch] +Parent=DefaultProperties +Browser=Nutch +isBanned=true +Crawler=true + +[*Nutch*] +Parent=Nutch +isBanned=true + +[CazoodleBot/*] +Parent=Nutch +Browser=CazoodleBot + +[LOOQ/0.1*] +Parent=Nutch +Browser=LOOQ + +[Nutch/0.? (OpenX Spider)] +Parent=Nutch + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Webaroo + +[Webaroo] +Parent=DefaultProperties +Browser=Webaroo + +[Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Webaroo/*)] +Parent=Webaroo +Browser=Webaroo + +[Mozilla/5.0 (Windows; U; Windows *; *; rv:*) Gecko/* Firefox/* webaroo/*] +Parent=Webaroo +Browser=Webaroo + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Word Press + +[Word Press] +Parent=DefaultProperties +Browser=Word Press +Alpha=true +Beta=true +Win16=true +Win32=true +Win64=true +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +CDF=true +VBScript=true +JavaApplets=true +JavaScript=true +ActiveXControls=true +isBanned=true +isMobileDevice=true +isSyndicationReader=true +Crawler=true + +[WordPress-B-/2.*] +Parent=Word Press +Browser=WordPress-B + +[WordPress-Do-P-/2.*] +Parent=Word Press +Browser=WordPress-Do-P + +[BlueCoat ProxySG] +Parent=Blue Coat Systems +Browser=BlueCoat ProxySG + +[CerberianDrtrs/*] +Parent=Blue Coat Systems +Browser=Cerberian + +[Inne: Mozilla/4.0 (compatible; Cerberian Drtrs*)] +Parent=Blue Coat Systems +Browser=Cerberian + +[Mozilla/4.0 (compatible; Cerberian Drtrs*)] +Parent=Blue Coat Systems +Browser=Cerberian + +[Mozilla/4.0 (compatible; MSIE 6.0; Bluecoat DRTR)] +Parent=Blue Coat Systems +Browser=Bluecoat + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Copyright/Plagiarism + +[Copyright/Plagiarism] +Parent=DefaultProperties +Browser=Copyright/Plagiarism +isBanned=true +Crawler=true + +[BDFetch] +Parent=Copyright/Plagiarism +Browser=BDFetch + +[copyright sheriff (*)] +Parent=Copyright/Plagiarism +Browser=copyright sheriff + +[CopyRightCheck*] +Parent=Copyright/Plagiarism +Browser=CopyRightCheck + +[FairAd Client*] +Parent=Copyright/Plagiarism +Browser=FairAd Client + +[iCopyright Conductor*] +Parent=Copyright/Plagiarism +Browser=iCopyright Conductor + +[IPiumBot laurion(dot)com] +Parent=Copyright/Plagiarism +Browser=IPiumBot + +[IWAgent/*] +Parent=Copyright/Plagiarism +Browser=Brand Protect + +[Mozilla/5.0 (compatible; DKIMRepBot/*)] +Parent=Copyright/Plagiarism +Browser=DKIMRepBot + +[oBot] +Parent=Copyright/Plagiarism +Browser=oBot + +[SlySearch/*] +Parent=Copyright/Plagiarism +Browser=SlySearch + +[TurnitinBot/*] +Parent=Copyright/Plagiarism +Browser=TurnitinBot + +[TutorGigBot/*] +Parent=Copyright/Plagiarism +Browser=TutorGig + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; DNS Tools + +[DNS Tools] +Parent=DefaultProperties +Browser=DNS Tools +Crawler=true + +[Domain Dossier utility*] +Parent=DNS Tools +Browser=Domain Dossier + +[Mozilla/5.0 (compatible; DNS-Digger/*)] +Parent=DNS Tools +Browser=DNS-Digger + +[OpenDNS Domain Crawler noc@opendns.com] +Parent=DNS Tools +Browser=OpenDNS Domain Crawler + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Download Managers + +[Download Managers] +Parent=DefaultProperties +Browser=Download Managers +Frames=true +IFrames=true +Tables=true +isBanned=true +Crawler=true + +[AndroidDownloadManager] +Parent=Download Managers +Browser=Android Download Manager + +[AutoMate5] +Parent=Download Managers +Browser=AutoMate5 + +[Beamer*] +Parent=Download Managers +Browser=Beamer + +[BitBeamer/*] +Parent=Download Managers +Browser=BitBeamer + +[BitTorrent/*] +Parent=Download Managers +Browser=BitTorrent + +[DA *] +Parent=Download Managers +Browser=Download Accelerator + +[Download Demon*] +Parent=Download Managers +Browser=Download Demon + +[Download Express*] +Parent=Download Managers +Browser=Download Express + +[Download Master*] +Parent=Download Managers +Browser=Download Master + +[Download Ninja*] +Parent=Download Managers +Browser=Download Ninja + +[Download Wonder*] +Parent=Download Managers +Browser=Download Wonder + +[DownloadSession*] +Parent=Download Managers +Browser=DownloadSession + +[EasyDL/*] +Parent=Download Managers +Browser=EasyDL + +[FDM 1.x] +Parent=Download Managers +Browser=Free Download Manager + +[FlashGet] +Parent=Download Managers +Browser=FlashGet + +[FreshDownload/*] +Parent=Download Managers +Browser=FreshDownload + +[GetRight/*] +Parent=Download Managers +Browser=GetRight + +[GetRightPro/*] +Parent=Download Managers +Browser=GetRightPro + +[GetSmart/*] +Parent=Download Managers +Browser=GetSmart + +[Go!Zilla*] +Parent=Download Managers +Browser=GoZilla + +[Gozilla/*] +Parent=Download Managers +Browser=Gozilla + +[Internet Ninja*] +Parent=Download Managers +Browser=Internet Ninja + +[Kontiki Client*] +Parent=Download Managers +Browser=Kontiki Client + +[lftp/3.2.1] +Parent=Download Managers +Browser=lftp + +[LightningDownload/*] +Parent=Download Managers +Browser=LightningDownload + +[LMQueueBot/*] +Parent=Download Managers +Browser=LMQueueBot + +[MetaProducts Download Express/*] +Parent=Download Managers +Browser=Download Express + +[Mozilla/4.0 (compatible; Getleft*)] +Parent=Download Managers +Browser=Getleft + +[Myzilla] +Parent=Download Managers +Browser=Myzilla + +[Net Vampire/*] +Parent=Download Managers +Browser=Net Vampire + +[Net_Vampire*] +Parent=Download Managers +Browser=Net_Vampire + +[NetAnts*] +Parent=Download Managers +Browser=NetAnts + +[NetPumper*] +Parent=Download Managers +Browser=NetPumper + +[NetSucker*] +Parent=Download Managers +Browser=NetSucker + +[NetZip Downloader*] +Parent=Download Managers +Browser=NetZip Downloader + +[NexTools WebAgent*] +Parent=Download Managers +Browser=NexTools WebAgent + +[Offline Downloader*] +Parent=Download Managers +Browser=Offline Downloader + +[P3P Client] +Parent=Download Managers +Browser=P3P Client + +[PageDown*] +Parent=Download Managers +Browser=PageDown + +[PicaLoader*] +Parent=Download Managers +Browser=PicaLoader + +[Prozilla*] +Parent=Download Managers +Browser=Prozilla + +[RealDownload/*] +Parent=Download Managers +Browser=RealDownload + +[sEasyDL/*] +Parent=Download Managers +Browser=EasyDL + +[shareaza*] +Parent=Download Managers +Browser=shareaza + +[SmartDownload/*] +Parent=Download Managers +Browser=SmartDownload + +[SpeedDownload/*] +Parent=Download Managers +Browser=Speed Download + +[Star*Downloader/*] +Parent=Download Managers +Browser=StarDownloader + +[STEROID Download] +Parent=Download Managers +Browser=STEROID Download + +[SuperBot/*] +Parent=Download Managers +Browser=SuperBot + +[Vegas95/*] +Parent=Download Managers +Browser=Vegas95 + +[WebZIP*] +Parent=Download Managers +Browser=WebZIP + +[Wget*] +Parent=Download Managers +Browser=Wget + +[WinTools] +Parent=Download Managers +Browser=WinTools + +[Xaldon WebSpider*] +Parent=Download Managers +Browser=Xaldon WebSpider + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; E-Mail Harvesters + +[E-Mail Harvesters] +Parent=DefaultProperties +Browser=E-Mail Harvesters +Frames=true +IFrames=true +Tables=true +isBanned=true +Crawler=true + +[*E-Mail Address Extractor*] +Parent=E-Mail Harvesters +Browser=E-Mail Address Extractor + +[*Larbin*] +Parent=E-Mail Harvesters +Browser=Larbin + +[*www4mail/*] +Parent=E-Mail Harvesters +Browser=www4mail + +[8484 Boston Project*] +Parent=E-Mail Harvesters +Browser=8484 Boston Project + +[CherryPicker*/*] +Parent=E-Mail Harvesters +Browser=CherryPickerElite + +[Chilkat/*] +Parent=E-Mail Harvesters +Browser=Chilkat + +[ContactBot/*] +Parent=E-Mail Harvesters +Browser=ContactBot + +[eCatch*] +Parent=E-Mail Harvesters +Browser=eCatch + +[EmailCollector*] +Parent=E-Mail Harvesters +Browser=E-Mail Collector + +[EMAILsearcher] +Parent=E-Mail Harvesters +Browser=EMAILsearcher + +[EmailSiphon*] +Parent=E-Mail Harvesters +Browser=E-Mail Siphon + +[EmailWolf*] +Parent=E-Mail Harvesters +Browser=EMailWolf + +[Epsilon SoftWorks' MailMunky] +Parent=E-Mail Harvesters +Browser=MailMunky + +[ExtractorPro*] +Parent=E-Mail Harvesters +Browser=ExtractorPro + +[Franklin Locator*] +Parent=E-Mail Harvesters +Browser=Franklin Locator + +[Missigua Locator*] +Parent=E-Mail Harvesters +Browser=Missigua Locator + +[Mozilla/4.0 (compatible; Advanced Email Extractor*)] +Parent=E-Mail Harvesters +Browser=Advanced Email Extractor + +[Netprospector*] +Parent=E-Mail Harvesters +Browser=Netprospector + +[ProWebWalker*] +Parent=E-Mail Harvesters +Browser=ProWebWalker + +[sna-0.0.*] +Parent=E-Mail Harvesters +Browser=Mike Elliott's E-Mail Harvester + +[WebEnhancer*] +Parent=E-Mail Harvesters +Browser=WebEnhancer + +[WebMiner*] +Parent=E-Mail Harvesters +Browser=WebMiner + +[ZIBB Crawler (email address / WWW address)] +Parent=E-Mail Harvesters +Browser=ZIBB Crawler + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Feeds Blogs + +[Feeds Blogs] +Parent=DefaultProperties +Browser=Feeds Blogs +isSyndicationReader=true +Crawler=true + +[Bloglines Title Fetch/*] +Parent=Feeds Blogs +Browser=Bloglines Title Fetch + +[Bloglines/* (http://www.bloglines.com*)] +Parent=Feeds Blogs +Browser=BlogLines Web + +[BlogPulseLive (support@blogpulse.com)] +Parent=Feeds Blogs +Browser=BlogPulseLive + +[blogsearchbot-pumpkin-2] +Parent=Feeds Blogs +Browser=blogsearchbot-pumpkin +isSyndicationReader=false + +[Irish Blogs Aggregator/*1.0*] +Parent=Feeds Blogs +Browser=Irish Blogs Aggregator +Version=1.0 +MajorVer=1 +MinorVer=0 + +[kinjabot (http://www.kinja.com; *)] +Parent=Feeds Blogs +Browser=kinjabot + +[Net::Trackback/*] +Parent=Feeds Blogs +Browser=Net::Trackback + +[Reblog*] +Parent=Feeds Blogs +Browser=Reblog + +[WordPress/*] +Parent=Feeds Blogs +Browser=WordPress + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Feeds Syndicators + +[Feeds Syndicators] +Parent=DefaultProperties +Browser=Feeds Syndicators +isSyndicationReader=true + +[*LinkLint*] +Parent=Feeds Syndicators +Browser=LinkLint + +[*NetNewsWire/*] +Parent=Feeds Syndicators + +[*NetVisualize*] +Parent=Feeds Syndicators +Browser=NetVisualize + +[AideRSS 2.* (postrank.com)] +Parent=Feeds Syndicators +Browser=AideRSS + +[AideRSS/2.0 (aiderss.com)] +Parent=Feeds Syndicators +Browser=AideRSS +isBanned=true + +[Akregator/*] +Parent=Feeds Syndicators +Browser=Akregator + +[AppleSyndication/*] +Parent=Feeds Syndicators +Browser=Safari RSS +Platform=MacOSX + +[Cocoal.icio.us/* (*)*] +Parent=Feeds Syndicators +Browser=Cocoal.icio.us +isBanned=true + +[Feed43 Proxy/* (*)] +Parent=Feeds Syndicators +Browser=Feed For Free + +[FeedBurner/*] +Parent=Feeds Syndicators +Browser=FeedBurner + +[FeedDemon/* (*)] +Parent=Feeds Syndicators +Browser=FeedDemon +Platform=Win32 + +[FeedDigest/* (*)] +Parent=Feeds Syndicators +Browser=FeedDigest + +[FeedGhost/1.*] +Parent=Feeds Syndicators +Browser=FeedGhost +Version=1.0 +MajorVer=1 +MinorVer=0 + +[FeedOnFeeds/0.1.* ( http://minutillo.com/steve/feedonfeeds/)] +Parent=Feeds Syndicators +Browser=FeedOnFeeds +Version=0.1 +MajorVer=0 +MinorVer=1 + +[Feedreader * (Powered by Newsbrain)] +Parent=Feeds Syndicators +Browser=Newsbrain + +[Feedshow/* (*)] +Parent=Feeds Syndicators +Browser=Feedshow + +[Feedster Crawler/?.0; Feedster, Inc.] +Parent=Feeds Syndicators +Browser=Feedster + +[GreatNews/1.0] +Parent=Feeds Syndicators +Browser=GreatNews +Version=1.0 +MajorVer=1 +MinorVer=0 + +[Gregarius/*] +Parent=Feeds Syndicators +Browser=Gregarius + +[intraVnews/*] +Parent=Feeds Syndicators +Browser=intraVnews + +[JetBrains Omea Reader*] +Parent=Feeds Syndicators +Browser=Omea Reader +isBanned=true + +[Liferea/1.5* (Linux; *; http://liferea.sf.net/)] +Parent=Feeds Syndicators +Browser=Liferea +isBanned=true + +[livedoor FeedFetcher/0.0* (http://reader.livedoor.com/;*)] +Parent=Feeds Syndicators +Browser=FeedFetcher +Version=0.0 +MajorVer=0 +MinorVer=0 + +[MagpieRSS/* (*)] +Parent=Feeds Syndicators +Browser=MagpieRSS + +[Mobitype * (compatible; Mozilla/*; MSIE *.*; Windows *)] +Parent=Feeds Syndicators +Browser=Mobitype +Platform=Win32 + +[Mozilla/5.0 (*; Rojo *; http://www.rojo.com/corporate/help/agg; *)*] +Parent=Feeds Syndicators +Browser=Rojo + +[Mozilla/5.0 (*aggregator:TailRank; http://tailrank.com/robot)*] +Parent=Feeds Syndicators +Browser=TailRank + +[Mozilla/5.0 (compatible; MSIE 6.0; Podtech Network; crawler_admin@podtech.net)] +Parent=Feeds Syndicators +Browser=Podtech Network + +[Mozilla/5.0 (compatible; Newz Crawler *; http://www.newzcrawler.com/?)] +Parent=Feeds Syndicators +Browser=Newz Crawler + +[Mozilla/5.0 (compatible; RSSMicro.com RSS/Atom Feed Robot)] +Parent=Feeds Syndicators +Browser=RSSMicro + +[Mozilla/5.0 (compatible;*newstin.com;*)] +Parent=Feeds Syndicators +Browser=NewsTin + +[Mozilla/5.0 (RSS Reader Panel)] +Parent=Feeds Syndicators +Browser=RSS Reader Panel + +[Mozilla/5.0 (X11; U; Linux*; *; rv:1.*; aggregator:FeedParser; *) Gecko/*] +Parent=Feeds Syndicators +Browser=FeedParser + +[Mozilla/5.0 (X11; U; Linux*; *; rv:1.*; aggregator:NewsMonster; *) Gecko/*] +Parent=Feeds Syndicators +Browser=NewsMonster + +[Mozilla/5.0 (X11; U; Linux*; *; rv:1.*; aggregator:Rojo; *) Gecko/*] +Parent=Feeds Syndicators +Browser=Rojo + +[Netvibes (*)] +Parent=Feeds Syndicators +Browser=Netvibes + +[NewsAlloy/* (*)] +Parent=Feeds Syndicators +Browser=NewsAlloy + +[Omnipelagos*] +Parent=Feeds Syndicators +Browser=Omnipelagos + +[Particls] +Parent=Feeds Syndicators +Browser=Particls + +[Protopage/* (*)] +Parent=Feeds Syndicators +Browser=Protopage + +[PubSub-RSS-Reader/* (*)] +Parent=Feeds Syndicators +Browser=PubSub-RSS-Reader + +[RSS Menu/*] +Parent=Feeds Syndicators +Browser=RSS Menu + +[RssBandit/*] +Parent=Feeds Syndicators +Browser=RssBandit + +[RssBar/1.2*] +Parent=Feeds Syndicators +Browser=RssBar +Version=1.2 +MajorVer=1 +MinorVer=2 + +[SharpReader/*] +Parent=Feeds Syndicators +Browser=SharpReader + +[SimplePie/*] +Parent=Feeds Syndicators +Browser=SimplePie + +[Strategic Board Bot (?http://www.strategicboard.com)] +Parent=Feeds Syndicators +Browser=Strategic Board Bot +isBanned=true + +[TargetYourNews.com bot] +Parent=Feeds Syndicators +Browser=TargetYourNews + +[Technoratibot/*] +Parent=Feeds Syndicators +Browser=Technoratibot + +[Tumblr/* RSS syndication ( http://www.tumblr.com/) (support@tumblr.com)] +Parent=Feeds Syndicators +Browser=Tumblr RSS syndication + +[Windows-RSS-Platform/1.0*] +Parent=Feeds Syndicators +Browser=Windows-RSS-Platform +Version=1.0 +MajorVer=1 +MinorVer=0 +Win32=true + +[Wizz RSS News Reader] +Parent=Feeds Syndicators +Browser=Wizz + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; General RSS + +[General RSS] +Parent=DefaultProperties +Browser=General RSS +isSyndicationReader=true + +[AideRSS/1.0 (aiderss.com); * subscribers] +Parent=General RSS +Browser=AideRSS +Version=1.0 +MajorVer=1 +MinorVer=0 + +[CC Metadata Scaper http://wiki.creativecommons.org/Metadata_Scraper] +Parent=General RSS +Browser=CC Metadata Scaper + +[Mozilla/5.0 (compatible) GM RSS Panel] +Parent=General RSS +Browser=RSS Panel + +[Mozilla/5.0 http://www.inclue.com; graeme@inclue.com] +Parent=General RSS +Browser=Inclue + +[Runnk online rss reader : http://www.runnk.com/ : RSS favorites : RSS ranking : RSS aggregator*] +Parent=General RSS +Browser=Ruunk + +[Windows-RSS-Platform/2.0 (MSIE 8.0; Windows NT 6.0)] +Parent=General RSS +Browser=Windows-RSS-Platform +Platform=WinVista + +[Mozilla/5.0 (X11; ?; Linux; *) AppleWebKit/* (KHTML, like Gecko, Safari/*) Arora/0.4] +Parent=Google Code +Browser=Arora +Version=0.4 +MajorVer=0 +MinorVer=4 +Platform=Linux +CssVersion=2 +supportsCSS=true + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Validation Checkers + +[HTML Validators] +Parent=DefaultProperties +Browser=HTML Validators +Frames=true +IFrames=true +Tables=true +Crawler=true + +[(HTML Validator http://www.searchengineworld.com/validator/)] +Parent=HTML Validators +Browser=Search Engine World HTML Validator + +[FeedValidator/1.3] +Parent=HTML Validators +Browser=FeedValidator +Version=1.3 +MajorVer=1 +MinorVer=3 + +[Jigsaw/* W3C_CSS_Validator_JFouffa/*] +Parent=HTML Validators +Browser=Jigsaw CSS Validator + +[Search Engine World Robots.txt Validator*] +Parent=HTML Validators +Browser=Search Engine World Robots.txt Validator + +[W3C_Validator/*] +Parent=HTML Validators +Browser=W3C Validator + +[W3CLineMode/*] +Parent=HTML Validators +Browser=W3C Line Mode + +[Weblide/2.? beta*] +Parent=HTML Validators +Browser=Weblide +Version=2.0 +MajorVer=2 +MinorVer=0 +Beta=true + +[WebmasterWorld StickyMail Server Header Checker*] +Parent=HTML Validators +Browser=WebmasterWorld Server Header Checker + +[WWWC/*] +Parent=HTML Validators + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Image Crawlers + +[Image Crawlers] +Parent=DefaultProperties +Browser=Image Crawlers +Frames=true +IFrames=true +Tables=true +isBanned=true +Crawler=true + +[*CFNetwork*] +Parent=Image Crawlers +Browser=CFNetwork + +[*PhotoStickies/*] +Parent=Image Crawlers +Browser=PhotoStickies + +[Camcrawler*] +Parent=Image Crawlers +Browser=Camcrawler + +[CydralSpider/*] +Parent=Image Crawlers +Browser=Cydral Web Image Search +isBanned=true + +[Der gro\xdfe BilderSauger*] +Parent=Image Crawlers +Browser=Gallery Grabber + +[Extreme Picture Finder] +Parent=Image Crawlers +Browser=Extreme Picture Finder + +[FLATARTS_FAVICO] +Parent=Image Crawlers +Browser=FlatArts Favorites Icon Tool + +[HTML2JPG Blackbox, http://www.html2jpg.com] +Parent=Image Crawlers +Browser=HTML2JPG + +[IconSurf/2.*] +Parent=Image Crawlers +Browser=IconSurf + +[kalooga/KaloogaBot*] +Parent=Image Crawlers +Browser=KaloogaBot + +[Mister PIX*] +Parent=Image Crawlers +Browser=Mister PIX + +[Mozilla/5.0 (Macintosh; U; *Mac OS X; *) AppleWebKit/* (*) Pandora/2.*] +Parent=Image Crawlers +Browser=Pandora + +[naoFavicon4IE*] +Parent=Image Crawlers +Browser=naoFavicon4IE + +[pixfinder/*] +Parent=Image Crawlers +Browser=pixfinder + +[rssImagesBot/0.1 (*http://herbert.groot.jebbink.nl/?app=rssImages)] +Parent=Image Crawlers +Browser=rssImagesBot + +[Web Image Collector*] +Parent=Image Crawlers +Browser=Web Image Collector + +[WebImages * (?http://herbert.groot.jebbink.nl/?app=WebImages?)] +Parent=Image Crawlers +Browser=WebImages + +[WebPix*] +Parent=Image Crawlers +Browser=Custo + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Link Checkers + +[Link Checkers] +Parent=DefaultProperties +Browser=Link Checkers +Frames=true +IFrames=true +Tables=true +Crawler=true + +[!Susie (http://www.sync2it.com/susie)] +Parent=Link Checkers +Browser=!Susie + +[*AgentName/*] +Parent=Link Checkers +Browser=AgentName + +[*Linkman*] +Parent=Link Checkers +Browser=Linkman + +[*LinksManager.com*] +Parent=Link Checkers +Browser=LinksManager + +[*Powermarks/*] +Parent=Link Checkers +Browser=Powermarks + +[*W3C-checklink/*] +Parent=Link Checkers +Browser=W3C Link Checker + +[*Web Link Validator*] +Parent=Link Checkers +Browser=Web Link Validator + +[*Zeus*] +Parent=Link Checkers +Browser=Zeus +isBanned=true + +[ActiveBookmark *] +Parent=Link Checkers +Browser=ActiveBookmark + +[Bookdog/*] +Parent=Link Checkers +Browser=Bookdog + +[Bookmark Buddy*] +Parent=Link Checkers +Browser=Bookmark Buddy + +[Bookmark Renewal Check Agent*] +Parent=Link Checkers +Browser=Bookmark Renewal Check Agent + +[Bookmark search tool*] +Parent=Link Checkers +Browser=Bookmark search tool + +[Bookmark-Manager] +Parent=Link Checkers +Browser=Bookmark-Manager + +[Checkbot*] +Parent=Link Checkers +Browser=Checkbot + +[CheckLinks/*] +Parent=Link Checkers +Browser=CheckLinks + +[CyberSpyder Link Test/*] +Parent=Link Checkers +Browser=CyberSpyder Link Test + +[DLC/*] +Parent=Link Checkers +Browser=DLC + +[DocWeb Link Crawler (http://doc.php.net)] +Parent=Link Checkers +Browser=DocWeb Link Crawler + +[FavOrg] +Parent=Link Checkers +Browser=FavOrg + +[Favorites Sweeper v.3.*] +Parent=Link Checkers +Browser=Favorites Sweeper + +[FindLinks/*] +Parent=Link Checkers +Browser=FindLinks + +[Funnel Web Profiler*] +Parent=Link Checkers +Browser=Funnel Web Profiler + +[Html Link Validator (www.lithopssoft.com)] +Parent=Link Checkers +Browser=HTML Link Validator + +[IECheck] +Parent=Link Checkers +Browser=IECheck + +[JCheckLinks/*] +Parent=Link Checkers +Browser=JCheckLinks + +[JRTwine Software Check Favorites Utility] +Parent=Link Checkers +Browser=JRTwine + +[Link Valet Online*] +Parent=Link Checkers +Browser=Link Valet +isBanned=true + +[LinkAlarm/*] +Parent=Link Checkers +Browser=LinkAlarm + +[Linkbot*] +Parent=Link Checkers +Browser=Linkbot + +[LinkChecker/*] +Parent=Link Checkers +Browser=LinkChecker + +[LinkextractorPro*] +Parent=Link Checkers +Browser=LinkextractorPro +isBanned=true + +[LinkLint-checkonly/*] +Parent=Link Checkers +Browser=LinkLint + +[LinkScan/*] +Parent=Link Checkers +Browser=LinkScan + +[LinkSweeper/*] +Parent=Link Checkers +Browser=LinkSweeper + +[LinkWalker*] +Parent=Link Checkers +Browser=LinkWalker + +[MetaGer-LinkChecker] +Parent=Link Checkers +Browser=MetaGer-LinkChecker + +[Mozilla/* (compatible; linktiger/*; *http://www.linktiger.com*)] +Parent=Link Checkers +Browser=LinkTiger +isBanned=true + +[Mozilla/4.0 (Compatible); URLBase*] +Parent=Link Checkers +Browser=URLBase + +[Mozilla/4.0 (compatible; Link Utility; http://net-promoter.com)] +Parent=Link Checkers +Browser=NetPromoter Link Utility + +[Mozilla/4.0 (compatible; MSIE 6.0; Windows 98) Web Link Validator*] +Parent=Link Checkers +Browser=Web Link Validator +Win32=true + +[Mozilla/4.0 (compatible; MSIE 7.0; Win32) Link Commander 3.0] +Parent=Link Checkers +Browser=Link Commander +Version=3.0 +MajorVer=3 +MinorVer=0 +Platform=Win32 + +[Mozilla/4.0 (compatible; smartBot/1.*; checking links; *)] +Parent=Link Checkers +Browser=smartBot + +[Mozilla/4.0 (compatible; SuperCleaner*;*)] +Parent=Link Checkers +Browser=SuperCleaner + +[Mozilla/5.0 gURLChecker/*] +Parent=Link Checkers +Browser=gURLChecker +isBanned=true + +[Newsgroupreporter LinkCheck] +Parent=Link Checkers +Browser=Newsgroupreporter LinkCheck + +[onCHECK Linkchecker von www.scientec.de fuer www.onsinn.de] +Parent=Link Checkers +Browser=onCHECK Linkchecker + +[online link validator (http://www.dead-links.com/)] +Parent=Link Checkers +Browser=Dead-Links.com +isBanned=true + +[REL Link Checker*] +Parent=Link Checkers +Browser=REL Link Checker + +[RLinkCheker*] +Parent=Link Checkers +Browser=RLinkCheker + +[Robozilla/*] +Parent=Link Checkers +Browser=Robozilla + +[RPT-HTTPClient/*] +Parent=Link Checkers +Browser=RPT-HTTPClient +isBanned=true + +[SafariBookmarkChecker*(?http://www.coriolis.ch/)] +Parent=Link Checkers +Browser=SafariBookmarkChecker +Platform=MacOSX +CssVersion=2 +supportsCSS=true + +[Simpy/* (Simpy; http://www.simpy.com/?ref=bot; feedback at simpy dot com)] +Parent=Link Checkers +Browser=Simpy + +[SiteBar/*] +Parent=Link Checkers +Browser=SiteBar + +[Susie (http://www.sync2it.com/bms/susie.php] +Parent=Link Checkers +Browser=Susie + +[URLBase/6.*] +Parent=Link Checkers + +[VSE/*] +Parent=Link Checkers +Browser=VSE Link Tester + +[WebTrends Link Analyzer] +Parent=Link Checkers +Browser=WebTrends Link Analyzer + +[WorQmada/*] +Parent=Link Checkers +Browser=WorQmada + +[Xenu* Link Sleuth*] +Parent=Link Checkers +Browser=Xenu's Link Sleuth +isBanned=true + +[Z-Add Link Checker*] +Parent=Link Checkers +Browser=Z-Add Link Checker + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Microsoft + +[Microsoft] +Parent=DefaultProperties +Browser=Microsoft +isBanned=true + +[Live (http://www.live.com/)] +Parent=Microsoft +Browser=Microsoft Live +isBanned=false +isSyndicationReader=true + +[MFC Foundation Class Library*] +Parent=Microsoft +Browser=MFC Foundation Class Library + +[MFHttpScan] +Parent=Microsoft +Browser=MFHttpScan + +[Microsoft BITS/*] +Parent=Microsoft +Browser=BITS + +[Microsoft Data Access Internet Publishing Provider Cache Manager] +Parent=Microsoft +Browser=MS IPP + +[Microsoft Data Access Internet Publishing Provider DAV*] +Parent=Microsoft +Browser=MS IPP DAV + +[Microsoft Data Access Internet Publishing Provider Protocol Discovery] +Parent=Microsoft +Browser=MS IPPPD + +[Microsoft Internet Explorer] +Parent=Microsoft +Browser=Fake IE + +[Microsoft Office Existence Discovery] +Parent=Microsoft +Browser=Microsoft Office Existence Discovery + +[Microsoft Office Protocol Discovery] +Parent=Microsoft +Browser=MS OPD + +[Microsoft Office/* (*Picture Manager*)] +Parent=Microsoft +Browser=Microsoft Office Picture Manager + +[Microsoft URL Control*] +Parent=Microsoft +Browser=Microsoft URL Control + +[Microsoft Visio MSIE] +Parent=Microsoft +Browser=Microsoft Visio + +[Microsoft-WebDAV-MiniRedir/*] +Parent=Microsoft +Browser=Microsoft-WebDAV + +[Mozilla/5.0 (Macintosh; Intel Mac OS X) Excel/12.*] +Parent=Microsoft +Browser=Microsoft Excel +Version=12.0 +MajorVer=12 +MinorVer=0 +Platform=MacOSX + +[MSN Feed Manager] +Parent=Microsoft +Browser=MSN Feed Manager +isBanned=false +isSyndicationReader=true + +[MSProxy/*] +Parent=Microsoft +Browser=MS Proxy + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Miscellaneous Browsers + +[Miscellaneous Browsers] +Parent=DefaultProperties +Browser=Miscellaneous Browsers +Frames=true +Tables=true +Cookies=true + +[*Amiga*] +Parent=Miscellaneous Browsers +Browser=Amiga +Platform=Amiga + +[*avantbrowser*] +Parent=Miscellaneous Browsers +Browser=Avant Browser + +[12345] +Parent=Miscellaneous Browsers +Browser=12345 +isBanned=true + +[Ace Explorer] +Parent=Miscellaneous Browsers +Browser=Ace Explorer + +[Enigma Browser*] +Parent=Miscellaneous Browsers +Browser=Enigma Browser + +[EVE-minibrowser/*] +Parent=Miscellaneous Browsers +Browser=EVE-minibrowser +IFrames=false +Tables=false +BackgroundSounds=false +VBScript=false +JavaApplets=false +JavaScript=false +ActiveXControls=false +isBanned=false +Crawler=false + +[Godzilla/* (Basic*; *; Commodore C=64; *; rv:1.*)*] +Parent=Miscellaneous Browsers +Browser=Godzilla + +[GreenBrowser] +Parent=Miscellaneous Browsers +Browser=GreenBrowser +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +VBScript=true +JavaApplets=true +JavaScript=true +ActiveXControls=true +CssVersion=2 +supportsCSS=true + +[Kopiczek/* (WyderOS*; *)] +Parent=Miscellaneous Browsers +Browser=Kopiczek +Platform=WyderOS +IFrames=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/* (*) - BrowseX (*)] +Parent=Miscellaneous Browsers +Browser=BrowseX + +[Mozilla/* (Win32;*Escape?*; ?)] +Parent=Miscellaneous Browsers +Browser=Escape +Platform=Win32 + +[Mozilla/4.0 (compatible; ibisBrowser)] +Parent=Miscellaneous Browsers +Browser=ibisBrowser + +[Mozilla/5.0 (Macintosh; ?; PPC Mac OS X;*) AppleWebKit/* (*) HistoryHound/*] +Parent=Miscellaneous Browsers +Browser=HistoryHound + +[NetRecorder*] +Parent=Miscellaneous Browsers +Browser=NetRecorder + +[NetSurfer*] +Parent=Miscellaneous Browsers +Browser=NetSurfer + +[ogeb browser , Version 1.1.0] +Parent=Miscellaneous Browsers +Browser=ogeb browser +Version=1.1 +MajorVer=1 +MinorVer=1 + +[SCEJ PSP BROWSER 0102pspNavigator] +Parent=Miscellaneous Browsers +Browser=Wipeout Pure + +[SlimBrowser] +Parent=Miscellaneous Browsers +Browser=SlimBrowser + +[WWW_Browser/*] +Parent=Miscellaneous Browsers +Browser=WWW Browser +Version=1.69 +MajorVer=1 +MinorVer=69 +Platform=Win16 +CssVersion=3 +supportsCSS=true + +[*Netcraft Webserver Survey*] +Parent=Netcraft +Browser=Netcraft Webserver Survey +isBanned=true + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Offline Browsers + +[Offline Browsers] +Parent=DefaultProperties +Browser=Offline Browsers +Frames=true +Tables=true +Cookies=true +isBanned=true +Crawler=true + +[*Check&Get*] +Parent=Offline Browsers +Browser=Check&Get + +[*HTTrack*] +Parent=Offline Browsers +Browser=HTTrack + +[*MSIECrawler*] +Parent=Offline Browsers +Browser=IE Offline Browser + +[*TweakMASTER*] +Parent=Offline Browsers +Browser=TweakMASTER + +[BackStreet Browser *] +Parent=Offline Browsers +Browser=BackStreet Browser + +[Go-Ahead-Got-It*] +Parent=Offline Browsers +Browser=Go Ahead Got-It + +[iGetter/*] +Parent=Offline Browsers +Browser=iGetter + +[Teleport*] +Parent=Offline Browsers +Browser=Teleport + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Online Scanners + +[Online Scanners] +Parent=DefaultProperties +Browser=Online Scanners +isBanned=true + +[JoeDog/* (X11; I; Siege *)] +Parent=Online Scanners +Browser=JoeDog +isBanned=false + +[Morfeus Fucking Scanner] +Parent=Online Scanners +Browser=Morfeus Fucking Scanner + +[Mozilla/4.0 (compatible; Trend Micro tmdr 1.*] +Parent=Online Scanners +Browser=Trend Micro + +[Titanium 2005 (4.02.01)] +Parent=Online Scanners +Browser=Panda Antivirus Titanium + +[virus_detector*] +Parent=Online Scanners +Browser=Secure Computing Corporation + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Proxy Servers + +[Proxy Servers] +Parent=DefaultProperties +Browser=Proxy Servers +isBanned=true + +[*squid*] +Parent=Proxy Servers +Browser=Squid + +[Anonymisiert*] +Parent=Proxy Servers +Browser=Anonymizied + +[Anonymizer/*] +Parent=Proxy Servers +Browser=Anonymizer + +[Anonymizied*] +Parent=Proxy Servers +Browser=Anonymizied + +[Anonymous*] +Parent=Proxy Servers +Browser=Anonymous + +[Anonymous/*] +Parent=Proxy Servers +Browser=Anonymous + +[CE-Preload] +Parent=Proxy Servers +Browser=CE-Preload + +[http://Anonymouse.org/*] +Parent=Proxy Servers +Browser=Anonymouse + +[IE/6.01 (CP/M; 8-bit*)] +Parent=Proxy Servers +Browser=Squid + +[Mozilla/* (TuringOS; Turing Machine; 0.0)] +Parent=Proxy Servers +Browser=Anonymizer + +[Mozilla/4.0 (compatible; MSIE ?.0; SaferSurf*)] +Parent=Proxy Servers +Browser=SaferSurf + +[Mozilla/5.0 (compatible; del.icio.us-thumbnails/*; *) KHTML/* (like Gecko)] +Parent=Proxy Servers +Browser=Yahoo! +isBanned=true +Crawler=true + +[Nutscrape] +Parent=Proxy Servers +Browser=Squid + +[Nutscrape/* (CP/M; 8-bit*)] +Parent=Proxy Servers +Browser=Squid + +[Privoxy/*] +Parent=Proxy Servers +Browser=Privoxy + +[ProxyTester*] +Parent=Proxy Servers +Browser=ProxyTester +isBanned=true +Crawler=true + +[SilentSurf*] +Parent=Proxy Servers +Browser=SilentSurf + +[SmallProxy*] +Parent=Proxy Servers +Browser=SmallProxy + +[Space*Bison/*] +Parent=Proxy Servers +Browser=Proxomitron + +[Sqworm/*] +Parent=Proxy Servers +Browser=Websense + +[SurfControl] +Parent=Proxy Servers +Browser=SurfControl + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Research Projects + +[Research Projects] +Parent=DefaultProperties +Browser=Research Projects +isBanned=true +Crawler=true + +[*research*] +Parent=Research Projects + +[AcadiaUniversityWebCensusClient] +Parent=Research Projects +Browser=AcadiaUniversityWebCensusClient + +[Amico Alpha * (*) Gecko/* AmicoAlpha/*] +Parent=Research Projects +Browser=Amico Alpha + +[annotate_google; http://ponderer.org/*] +Parent=Research Projects +Browser=Annotate Google + +[CMS crawler (?http://buytaert.net/crawler/)] +Parent=Research Projects + +[e-SocietyRobot(http://www.yama.info.waseda.ac.jp/~yamana/es/)] +Parent=Research Projects +Browser=e-SocietyRobot + +[Forschungsportal/*] +Parent=Research Projects +Browser=Forschungsportal + +[Gulper Web *] +Parent=Research Projects +Browser=Gulper Web Bot + +[HooWWWer/*] +Parent=Research Projects +Browser=HooWWWer + +[http://buytaert.net/crawler] +Parent=Research Projects + +[inetbot/* (?http://www.inetbot.com/bot.html)] +Parent=Research Projects +Browser=inetbot + +[IRLbot/*] +Parent=Research Projects +Browser=IRLbot + +[Lachesis] +Parent=Research Projects +Browser=Lachesis + +[Mozilla/5.0 (compatible; nextthing.org/*)] +Parent=Research Projects +Browser=nextthing.org +Version=1.0 +MajorVer=1 +MinorVer=0 + +[Mozilla/5.0 (compatible; Theophrastus/*)] +Parent=Research Projects +Browser=Theophrastus + +[Mozilla/5.0 (compatible; Webscan v0.*; http://otc.dyndns.org/webscan/)] +Parent=Research Projects +Browser=Webscan + +[MQbot*] +Parent=Research Projects +Browser=MQbot + +[OutfoxBot/*] +Parent=Research Projects +Browser=OutfoxBot + +[polybot?*] +Parent=Research Projects +Browser=Polybot + +[Shim?Crawler*] +Parent=Research Projects +Browser=Shim Crawler + +[Steeler/*] +Parent=Research Projects +Browser=Steeler + +[Taiga web spider] +Parent=Research Projects +Browser=Taiga + +[Theme Spider*] +Parent=Research Projects +Browser=Theme Spider + +[UofTDB_experiment* (leehyun@cs.toronto.edu)] +Parent=Research Projects +Browser=UofTDB Experiment + +[USyd-NLP-Spider*] +Parent=Research Projects +Browser=USyd-NLP-Spider + +[woriobot*] +Parent=Research Projects +Browser=woriobot + +[wwwster/* (Beta, mailto:gue@cis.uni-muenchen.de)] +Parent=Research Projects +Browser=wwwster +Beta=true + +[Zao-Crawler] +Parent=Research Projects +Browser=Zao-Crawler + +[Zao/*] +Parent=Research Projects +Browser=Zao + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Rippers + +[Rippers] +Parent=DefaultProperties +Browser=Rippers +Frames=true +IFrames=true +Tables=true +isBanned=true +Crawler=true + +[*grub*] +Parent=Rippers +Browser=grub + +[*ickHTTP*] +Parent=Rippers +Browser=IP*Works + +[*java*] +Parent=Rippers + +[*libwww-perl*] +Parent=Rippers +Browser=libwww-perl + +[*WebGrabber*] +Parent=Rippers + +[*WinHttpRequest*] +Parent=Rippers +Browser=WinHttp + +[3D-FTP/*] +Parent=Rippers +Browser=3D-FTP + +[3wGet/*] +Parent=Rippers +Browser=3wGet + +[ActiveRefresh*] +Parent=Rippers +Browser=ActiveRefresh + +[Artera (Version *)] +Parent=Rippers +Browser=Artera + +[AutoHotkey] +Parent=Rippers +Browser=AutoHotkey + +[b2w/*] +Parent=Rippers +Browser=b2w + +[BasicHTTP/*] +Parent=Rippers +Browser=BasicHTTP + +[BlockNote.Net] +Parent=Rippers +Browser=BlockNote.Net + +[CAST] +Parent=Rippers +Browser=CAST + +[CFNetwork/*] +Parent=Rippers +Browser=CFNetwork + +[CFSCHEDULE*] +Parent=Rippers +Browser=ColdFusion Task Scheduler + +[CobWeb/*] +Parent=Rippers +Browser=CobWeb + +[ColdFusion*] +Parent=Rippers +Browser=ColdFusion + +[Crawl_Application] +Parent=Rippers +Browser=Crawl_Application + +[curl/*] +Parent=Rippers +Browser=cURL + +[Custo*] +Parent=Rippers +Browser=Custo + +[DataCha0s/*] +Parent=Rippers +Browser=DataCha0s + +[DeepIndexer*] +Parent=Rippers +Browser=DeepIndexer + +[DISCo Pump *] +Parent=Rippers +Browser=DISCo Pump + +[eStyleSearch * (compatible; MSIE 6.0; Windows NT 5.0)] +Parent=Rippers +Browser=eStyleSearch +Win32=true + +[ezic.com http agent *] +Parent=Rippers +Browser=Ezic.com + +[fetch libfetch/*] +Parent=Rippers + +[FGet*] +Parent=Rippers +Browser=FGet + +[Flaming AttackBot*] +Parent=Rippers +Browser=Flaming AttackBot + +[Foobot*] +Parent=Rippers +Browser=Foobot + +[GameSpyHTTP/*] +Parent=Rippers +Browser=GameSpyHTTP + +[gnome-vfs/*] +Parent=Rippers +Browser=gnome-vfs + +[Harvest/*] +Parent=Rippers +Browser=Harvest + +[hcat/*] +Parent=Rippers +Browser=hcat + +[HLoader] +Parent=Rippers +Browser=HLoader + +[Holmes/*] +Parent=Rippers +Browser=Holmes + +[HTMLParser/*] +Parent=Rippers +Browser=HTMLParser + +[http generic] +Parent=Rippers +Browser=http generic + +[httpclient*] +Parent=Rippers + +[httperf/*] +Parent=Rippers +Browser=httperf + +[HTTPFetch/*] +Parent=Rippers +Browser=HTTPFetch + +[HTTPGrab] +Parent=Rippers +Browser=HTTPGrab + +[HttpSession] +Parent=Rippers +Browser=HttpSession + +[httpunit/*] +Parent=Rippers +Browser=HttpUnit + +[ICE_GetFile] +Parent=Rippers +Browser=ICE_GetFile + +[iexplore.exe] +Parent=Rippers + +[Inet - Eureka App] +Parent=Rippers +Browser=Inet - Eureka App + +[INetURL/*] +Parent=Rippers +Browser=INetURL + +[InetURL:/*] +Parent=Rippers +Browser=InetURL + +[Internet Exploiter/*] +Parent=Rippers + +[Internet Explore *] +Parent=Rippers +Browser=Fake IE + +[Internet Explorer *] +Parent=Rippers +Browser=Fake IE + +[IP*Works!*/*] +Parent=Rippers +Browser=IP*Works! + +[IrssiUrlLog/*] +Parent=Rippers +Browser=IrssiUrlLog + +[JPluck/*] +Parent=Rippers +Browser=JPluck + +[Kapere (http://www.kapere.com)] +Parent=Rippers +Browser=Kapere + +[LeechFTP] +Parent=Rippers +Browser=LeechFTP + +[LeechGet*] +Parent=Rippers +Browser=LeechGet + +[libcurl-agent/*] +Parent=Rippers +Browser=libcurl + +[libWeb/clsHTTP*] +Parent=Rippers +Browser=libWeb/clsHTTP + +[lwp*] +Parent=Rippers + +[MFC_Tear_Sample] +Parent=Rippers +Browser=MFC_Tear_Sample + +[Moozilla] +Parent=Rippers +Browser=Moozilla + +[MovableType/*] +Parent=Rippers +Browser=MovableType Web Log + +[Mozilla/2.0 (compatible; NEWT ActiveX; Win32)] +Parent=Rippers +Browser=NEWT ActiveX +Platform=Win32 + +[Mozilla/3.0 (compatible)] +Parent=Rippers + +[Mozilla/3.0 (compatible; Indy Library)] +Parent=Rippers +Cookies=true + +[Mozilla/3.01 (compatible;)] +Parent=Rippers + +[Mozilla/4.0 (compatible; BorderManager*)] +Parent=Rippers +Browser=Novell BorderManager + +[Mozilla/4.0 (compatible;)] +Parent=Rippers + +[Mozilla/5.0 (compatible; IPCheck Server Monitor*)] +Parent=Rippers +Browser=IPCheck Server Monitor + +[OCN-SOC/*] +Parent=Rippers +Browser=OCN-SOC + +[Offline Explorer*] +Parent=Rippers +Browser=Offline Explorer + +[Open Web Analytics Bot*] +Parent=Rippers +Browser=Open Web Analytics Bot + +[OSSProxy*] +Parent=Rippers +Browser=OSSProxy + +[Pageload*] +Parent=Rippers +Browser=PageLoad + +[PageNest/*] +Parent=Rippers +Browser=PageNest + +[pavuk/*] +Parent=Rippers +Browser=Pavuk + +[PEAR HTTP_Request*] +Parent=Rippers +Browser=PEAR-PHP + +[PHP*] +Parent=Rippers +Browser=PHP + +[PigBlock (Windows NT 5.1; U)*] +Parent=Rippers +Browser=PigBlock +Win32=true + +[Pockey*] +Parent=Rippers +Browser=Pockey-GetHTML + +[POE-Component-Client-HTTP/*] +Parent=Rippers +Browser=POE-Component-Client-HTTP + +[PycURL/*] +Parent=Rippers +Browser=PycURL + +[Python*] +Parent=Rippers +Browser=Python + +[RepoMonkey*] +Parent=Rippers +Browser=RepoMonkey + +[SBL-BOT*] +Parent=Rippers +Browser=BlackWidow + +[ScoutAbout*] +Parent=Rippers +Browser=ScoutAbout + +[sherlock/*] +Parent=Rippers +Browser=Sherlock + +[SiteParser/*] +Parent=Rippers +Browser=SiteParser + +[SiteSnagger*] +Parent=Rippers +Browser=SiteSnagger + +[SiteSucker/*] +Parent=Rippers +Browser=SiteSucker + +[SiteWinder*] +Parent=Rippers +Browser=SiteWinder + +[Snoopy*] +Parent=Rippers +Browser=Snoopy + +[SOFTWING_TEAR_AGENT*] +Parent=Rippers +Browser=AspTear + +[SuperHTTP/*] +Parent=Rippers +Browser=SuperHTTP + +[Tcl http client package*] +Parent=Rippers +Browser=Tcl http client package + +[Twisted PageGetter] +Parent=Rippers +Browser=Twisted PageGetter + +[URL2File/*] +Parent=Rippers +Browser=URL2File + +[UtilMind HTTPGet] +Parent=Rippers +Browser=UtilMind HTTPGet + +[VCI WebViewer*] +Parent=Rippers +Browser=VCI WebViewer + +[W3CRobot/*] +Parent=Rippers +Browser=W3CRobot + +[Web Downloader*] +Parent=Rippers +Browser=Web Downloader + +[Web Downloader/*] +Parent=Rippers +Browser=Web Downloader + +[Web Magnet*] +Parent=Rippers +Browser=Web Magnet + +[WebAuto/*] +Parent=Rippers + +[webbandit/*] +Parent=Rippers +Browser=webbandit + +[WebCopier*] +Parent=Rippers +Browser=WebCopier + +[WebDownloader*] +Parent=Rippers +Browser=WebDownloader + +[WebFetch] +Parent=Rippers +Browser=WebFetch + +[webfetch/*] +Parent=Rippers +Browser=WebFetch + +[WebGatherer*] +Parent=Rippers +Browser=WebGatherer + +[WebGet] +Parent=Rippers +Browser=WebGet + +[WebReaper*] +Parent=Rippers +Browser=WebReaper + +[WebRipper] +Parent=Rippers +Browser=WebRipper + +[WebSauger*] +Parent=Rippers +Browser=WebSauger + +[Website Downloader*] +Parent=Rippers +Browser=Website Downloader + +[Website eXtractor*] +Parent=Rippers +Browser=Website eXtractor + +[Website Quester] +Parent=Rippers +Browser=Website Quester + +[WebsiteExtractor*] +Parent=Rippers +Browser=Website eXtractor + +[WebSnatcher*] +Parent=Rippers +Browser=WebSnatcher + +[Webster Pro*] +Parent=Rippers +Browser=Webster Pro + +[WebStripper*] +Parent=Rippers +Browser=WebStripper + +[WebWhacker*] +Parent=Rippers +Browser=WebWhacker + +[WinScripter iNet Tools] +Parent=Rippers +Browser=WinScripter iNet Tools + +[WWW-Mechanize/*] +Parent=Rippers +Browser=WWW-Mechanize + +[Zend_Http_Client] +Parent=Rippers +Browser=Zend_Http_Client + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Site Monitors + +[Site Monitors] +Parent=DefaultProperties +Browser=Site Monitors +Cookies=true +isBanned=true +Crawler=true + +[*EasyRider*] +Parent=Site Monitors +Browser=EasyRider + +[*maxamine.com--robot*] +Parent=Site Monitors +Browser=maxamine.com--robot +isBanned=true + +[*WebMon ?.*] +Parent=Site Monitors +Browser=WebMon + +[Kenjin Spider*] +Parent=Site Monitors +Browser=Kenjin Spider + +[Kevin http://*] +Parent=Site Monitors +Browser=Kevin +isBanned=true + +[Mozilla/4.0 (compatible; ChangeDetection/*] +Parent=Site Monitors +Browser=ChangeDetection + +[Myst Monitor Service v*] +Parent=Site Monitors +Browser=Myst Monitor Service + +[Net Probe] +Parent=Site Monitors +Browser=Net Probe + +[NetMechanic*] +Parent=Site Monitors +Browser=NetMechanic + +[NetReality*] +Parent=Site Monitors +Browser=NetReality + +[Pingdom GIGRIB*] +Parent=Site Monitors +Browser=Pingdom + +[Site Valet Online*] +Parent=Site Monitors +Browser=Site Valet +isBanned=true + +[SITECHECKER] +Parent=Site Monitors +Browser=SITECHECKER + +[sitemonitor@dnsvr.com/*] +Parent=Site Monitors +Browser=ZoneEdit Failover Monitor +isBanned=false + +[UpTime Checker*] +Parent=Site Monitors +Browser=UpTime Checker + +[URL Control*] +Parent=Site Monitors +Browser=URL Control + +[URL_Access/*] +Parent=Site Monitors + +[URLCHECK] +Parent=Site Monitors +Browser=URLCHECK + +[URLy Warning*] +Parent=Site Monitors +Browser=URLy Warning + +[Webcheck *] +Parent=Site Monitors +Browser=Webcheck +Version=1.0 +MajorVer=1 +MinorVer=0 + +[WebPatrol/*] +Parent=Site Monitors +Browser=WebPatrol + +[websitepulse checker/*] +Parent=Site Monitors +Browser=websitepulse checker + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Social Bookmarkers + +[Social Bookmarkers] +Parent=DefaultProperties +Browser=Social Bookmarkers +Frames=true +Tables=true +Cookies=true +JavaScript=true + +[BookmarkBase(2/;http://bookmarkbase.com)] +Parent=Social Bookmarkers +Browser=BookmarkBase + +[Cocoal.icio.us/1.0 (v43) (Mac OS X; http://www.scifihifi.com/cocoalicious)] +Parent=Social Bookmarkers +Browser=Cocoalicious + +[Mozilla/5.0 (compatible; FriendFeedBot/0.*; Http://friendfeed.com/about/bot)] +Parent=Social Bookmarkers +Browser=FriendFeedBot + +[Twitturly*] +Parent=Social Bookmarkers +Browser=Twitturly + +[WinkBot/*] +Parent=Social Bookmarkers +Browser=WinkBot + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Translators + +[Translators] +Parent=DefaultProperties +Browser=Translators +Frames=true +Tables=true +Cookies=true + +[Seram Server] +Parent=Translators +Browser=Seram Server + +[TeragramWebcrawler/*] +Parent=Translators +Browser=TeragramWebcrawler +Version=1.0 +MajorVer=1 +MinorVer=0 + +[WebIndexer/* (Web Indexer; *)] +Parent=Translators +Browser=WorldLingo + +[WebTrans] +Parent=Translators +Browser=WebTrans + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Version Checkers + +[Version Checkers] +Parent=DefaultProperties +Browser=Version Checkers +Crawler=true + +[Automated Browscap.ini Updater. To report issues contact us at http://www.skycomp.ca] +Parent=Version Checkers +Browser=Automated Browscap.ini Updater + +[BMC Link Validator (http://www.briansmodelcars.com/links/)] +Parent=Version Checkers +Browser=BMC Link Validator +MajorVer=1 +MinorVer=0 +Platform=Win2000 + +[Browscap updater] +Parent=Version Checkers +Browser=Browscap updater + +[BrowscapUpdater1.0] +Parent=Version Checkers + +[Browser Capabilities Project (http://browsers.garykeith.com; http://browsers.garykeith.com/sitemail/contact-me.asp)] +Parent=Version Checkers +Browser=Gary Keith's Version Checker + +[Browser Capabilities Project AutoDownloader] +Parent=Version Checkers +Browser=TKC AutoDownloader + +[browsers.garykeith.com browscap.ini bot BETA] +Parent=Version Checkers + +[Code Sample Web Client] +Parent=Version Checkers +Browser=Code Sample Web Client + +[Desktop Sidebar*] +Parent=Version Checkers +Browser=Desktop Sidebar +isBanned=true + +[Mono Browser Capabilities Updater*] +Parent=Version Checkers +Browser=Mono Browser Capabilities Updater +isBanned=true + +[Rewmi/*] +Parent=Version Checkers +isBanned=true + +[Subtext Version 1.9* - http://subtextproject.com/ (Microsoft Windows NT 5.2.*)] +Parent=Version Checkers +Browser=Subtext + +[TherapeuticResearch] +Parent=Version Checkers +Browser=TherapeuticResearch + +[UpdateBrowscap*] +Parent=Version Checkers +Browser=UpdateBrowscap + +[www.garykeith.com browscap.ini bot*] +Parent=Version Checkers +Browser=clarkson.edu + +[www.substancia.com AutoHTTPAgent (ver *)] +Parent=Version Checkers +Browser=Subst�ncia + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Become + +[Become] +Parent=DefaultProperties +Browser=Become +Frames=true +Tables=true +isSyndicationReader=true +Crawler=true + +[*BecomeBot/*] +Parent=Become +Browser=BecomeBot + +[*BecomeBot@exava.com*] +Parent=Become +Browser=BecomeBot + +[*Exabot@exava.com*] +Parent=Become +Browser=Exabot + +[MonkeyCrawl/*] +Parent=Become +Browser=MonkeyCrawl + +[Mozilla/5.0 (compatible; BecomeJPBot/2.3; *)] +Parent=Become +Browser=BecomeJPBot + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Blue Coat Systems + +[Blue Coat Systems] +Parent=DefaultProperties +Browser=Blue Coat Systems +isBanned=true +Crawler=true + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Browscap Abusers + +[Browscap Abusers] +Parent=DefaultProperties +Browser=Browscap Abusers +isBanned=true + +[Apple-PubSub/*] +Parent=Browscap Abusers +Browser=Apple-PubSub + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; FeedHub + +[FeedHub] +Parent=DefaultProperties +Browser=FeedHub +isSyndicationReader=true + +[FeedHub FeedDiscovery/1.0 (http://www.feedhub.com)] +Parent=FeedHub +Browser=FeedHub FeedDiscovery +Version=1.0 +MajorVer=1 +MinorVer=0 + +[FeedHub FeedFetcher/1.0 (http://www.feedhub.com)] +Parent=FeedHub +Browser=FeedHub FeedFetcher +Version=1.0 +MajorVer=1 +MinorVer=0 + +[FeedHub MetaDataFetcher/1.0 (http://www.feedhub.com)] +Parent=FeedHub +Browser=FeedHub MetaDataFetcher +Version=1.0 +MajorVer=1 +MinorVer=0 + +[Internet Content Rating Association] +Parent=DefaultProperties +Browser= +Frames=true +IFrames=true +Tables=true +Cookies=true +Crawler=true + +[ICRA_label_generator/1.?] +Parent=Internet Content Rating Association +Browser=ICRA_label_generator + +[ICRA_Semantic_spider/0.?] +Parent=Internet Content Rating Association +Browser=ICRA_Semantic_spider + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; NameProtect + +[NameProtect] +Parent=DefaultProperties +Browser=NameProtect +isBanned=true +Crawler=true + +[abot/*] +Parent=NameProtect +Browser=NameProtect + +[NP/*] +Parent=NameProtect +Browser=NameProtect + +[NPBot*] +Parent=NameProtect +Browser=NameProtect + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netcraft + +[Netcraft] +Parent=DefaultProperties +Browser=Netcraft +isBanned=true +Crawler=true + +[*Netcraft Web Server Survey*] +Parent=Netcraft +Browser=Netcraft Webserver Survey +isBanned=true + +[Mozilla/5.0 (compatible; NetcraftSurveyAgent/1.0; info@netcraft.com)] +Parent=Netcraft +Browser=NetcraftSurveyAgent + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; NewsGator + +[NewsGator] +Parent=DefaultProperties +Browser=NewsGator +isSyndicationReader=true + +[MarsEdit*] +Parent=NewsGator +Browser=MarsEdit + +[NetNewsWire*/*] +Parent=NewsGator +Browser=NetNewsWire +Platform=MacOSX + +[NewsFire/*] +Parent=NewsGator +Browser=NewsFire + +[NewsGator FetchLinks extension/*] +Parent=NewsGator +Browser=NewsGator FetchLinks + +[NewsGator/*] +Parent=NewsGator +Browser=NewsGator +isBanned=true + +[NewsGatorOnline/*] +Parent=NewsGator +Browser=NewsGatorOnline + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 0.2 + +[Chrome 0.2] +Parent=DefaultProperties +Browser=Chrome +Version=0.2 +MinorVer=2 +Beta=true +Win32=true +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=3 +supportsCSS=true + +[Mozilla/5.0 (Windows; U; Windows NT 5.1; *) AppleWebKit/* (KHTML, like Gecko) Chrome/0.2.* Safari/*] +Parent=Chrome 0.2 +Platform=WinXP + +[Mozilla/5.0 (Windows; U; Windows NT 5.2; *) AppleWebKit/* (KHTML, like Gecko) Chrome/0.2.* Safari/*] +Parent=Chrome 0.2 +Platform=Win2003 + +[Mozilla/5.0 (Windows; U; Windows NT 6.0; *) AppleWebKit/* (KHTML, like Gecko) Chrome/0.2.* Safari/*] +Parent=Chrome 0.2 +Platform=WinVista + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 0.3 + +[Chrome 0.3] +Parent=DefaultProperties +Browser=Chrome +Version=0.3 +MinorVer=3 +Beta=true +Win32=true +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=3 +supportsCSS=true + +[Mozilla/5.0 (Windows; U; Windows NT 5.1; *) AppleWebKit/* (KHTML, like Gecko) Chrome/0.3.* Safari/*] +Parent=Chrome 0.3 +Platform=WinXP + +[Mozilla/5.0 (Windows; U; Windows NT 5.2; *) AppleWebKit/* (KHTML, like Gecko) Chrome/0.3.* Safari/*] +Parent=Chrome 0.3 +Platform=Win2003 + +[Mozilla/5.0 (Windows; U; Windows NT 6.0; *) AppleWebKit/* (KHTML, like Gecko) Chrome/0.3.* Safari/*] +Parent=Chrome 0.3 +Platform=WinVista + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 0.4 + +[Chrome 0.4] +Parent=DefaultProperties +Browser=Chrome +Version=0.4 +MinorVer=4 +Win32=true +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=3 +supportsCSS=true + +[Mozilla/5.0 (Windows; U; Windows NT 5.1; *) AppleWebKit/* (KHTML, like Gecko) Chrome/0.4.* Safari/*] +Parent=Chrome 0.4 +Platform=WinXP + +[Mozilla/5.0 (Windows; U; Windows NT 5.2; *) AppleWebKit/* (KHTML, like Gecko) Chrome/0.4.* Safari/*] +Parent=Chrome 0.4 +Platform=Win2003 + +[Mozilla/5.0 (Windows; U; Windows NT 6.0; *) AppleWebKit/* (KHTML, like Gecko) Chrome/0.4.* Safari/*] +Parent=Chrome 0.4 +Platform=WinVista + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 0.5 + +[Chrome 0.5] +Parent=DefaultProperties +Browser=Chrome +Version=0.5 +MinorVer=5 +Beta=true +Win32=true +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=3 +supportsCSS=true + +[Mozilla/5.0 (Windows; U; Windows NT 5.1; *) AppleWebKit/* (KHTML, like Gecko) Chrome/0.5.* Safari/*] +Parent=Chrome 0.5 +Platform=WinXP + +[Mozilla/5.0 (Windows; U; Windows NT 5.2; *) AppleWebKit/* (KHTML, like Gecko) Chrome/0.5.* Safari/*] +Parent=Chrome 0.5 +Platform=Win2003 + +[Mozilla/5.0 (Windows; U; Windows NT 6.0; *) AppleWebKit/* (KHTML, like Gecko) Chrome/0.5.* Safari/*] +Parent=Chrome 0.5 +Platform=WinVista + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 1.0 + +[Chrome 1.0] +Parent=DefaultProperties +Browser=Chrome +Version=1.0 +MajorVer=1 +Win32=true +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=3 +supportsCSS=true + +[Mozilla/5.0 (Windows; U; Windows NT 5.1; *) AppleWebKit/* (KHTML, like Gecko) Chrome/1.0.* Safari/*] +Parent=Chrome 1.0 +Platform=WinXP + +[Mozilla/5.0 (Windows; U; Windows NT 5.2; *) AppleWebKit/* (KHTML, like Gecko) Chrome/1.0.* Safari/*] +Parent=Chrome 1.0 +Platform=Win2003 + +[Mozilla/5.0 (Windows; U; Windows NT 6.0; *) AppleWebKit/* (KHTML, like Gecko) Chrome/1.0.* Safari/*] +Parent=Chrome 1.0 +Platform=WinVista + +[Mozilla/5.0 (Windows; U; Windows NT 6.1; *) AppleWebKit/* (KHTML, like Gecko) Chrome/1.0.* Safari/*] +Parent=Chrome 1.0 +Platform=Win7 + +[Mozilla/5.0 (Windows; U; Windows NT 7.0; *) AppleWebKit/* (KHTML, like Gecko) Chrome/1.0.* Safari/*] +Parent=Chrome 1.0 +Platform=Win7 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 2.0 + +[Chrome 2.0] +Parent=DefaultProperties +Browser=Chrome +Version=2.0 +MajorVer=2 +Win32=true +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=3 +supportsCSS=true + +[Mozilla/5.0 (Windows; U; Windows NT 5.1; *) AppleWebKit/* (KHTML, like Gecko) Chrome/2.0.* Safari/*] +Parent=Chrome 2.0 +Platform=WinXP + +[Mozilla/5.0 (Windows; U; Windows NT 5.2; *) AppleWebKit/* (KHTML, like Gecko) Chrome/2.0.* Safari/*] +Parent=Chrome 2.0 +Platform=Win2003 + +[Mozilla/5.0 (Windows; U; Windows NT 6.0; *) AppleWebKit/* (KHTML, like Gecko) Chrome/2.0.* Safari/*] +Parent=Chrome 2.0 +Platform=WinVista + +[Mozilla/5.0 (Windows; U; Windows NT 6.1; *) AppleWebKit/* (KHTML, like Gecko) Chrome/2.0.* Safari/*] +Parent=Chrome 2.0 +Platform=Win7 + +[Mozilla/5.0 (Windows; U; Windows NT 7.0; *) AppleWebKit/* (KHTML, like Gecko) Chrome/2.0.* Safari/*] +Parent=Chrome 2.0 +Platform=Win7 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 3.0 + +[Chrome 3.0] +Parent=DefaultProperties +Browser=Chrome +Version=3.0 +MajorVer=3 +Win32=true +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=3 +supportsCSS=true + +[Mozilla/5.0 (Windows; U; Windows NT 5.1; *) AppleWebKit/* (KHTML, like Gecko) Chrome/3.0.* Safari/*] +Parent=Chrome 3.0 +Platform=WinXP + +[Mozilla/5.0 (Windows; U; Windows NT 5.2; *) AppleWebKit/* (KHTML, like Gecko) Chrome/3.0.* Safari/*] +Parent=Chrome 3.0 +Platform=Win2003 + +[Mozilla/5.0 (Windows; U; Windows NT 6.0; *) AppleWebKit/* (KHTML, like Gecko) Chrome/3.0.* Safari/*] +Parent=Chrome 3.0 +Platform=WinVista + +[Mozilla/5.0 (Windows; U; Windows NT 6.1; *) AppleWebKit/* (KHTML, like Gecko) Chrome/3.0.* Safari/*] +Parent=Chrome 3.0 +Platform=Win7 + +[Mozilla/5.0 (Windows; U; Windows NT 7.0; *) AppleWebKit/* (KHTML, like Gecko) Chrome/3.0.* Safari/*] +Parent=Chrome 3.0 +Platform=Win7 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Google Code + +[Google Code] +Parent=DefaultProperties +Browser=Google Code +Tables=true +Cookies=true +JavaApplets=true + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Iron 0.2 + +[Iron 0.2] +Parent=DefaultProperties +Browser=Iron +Version=0.2 +MinorVer=2 +Win32=true +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=3 +supportsCSS=true + +[Mozilla/5.0 (Windows; U; Windows NT 5.1; *) AppleWebKit/* (KHTML, like Gecko) Iron/0.2.* Safari/*] +Parent=Iron 0.2 +Platform=WinXP + +[Mozilla/5.0 (Windows; U; Windows NT 5.2; *) AppleWebKit/* (KHTML, like Gecko) Iron/0.2.* Safari/*] +Parent=Iron 0.2 +Platform=WinVista + +[Mozilla/5.0 (Windows; U; Windows NT 6.0; *) AppleWebKit/* (KHTML, like Gecko) Iron/0.2.* Safari/*] +Parent=Iron 0.2 +Platform=Win7 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Iron 0.3 + +[Iron 0.3] +Parent=DefaultProperties +Browser=Iron +Version=0.3 +MinorVer=3 +Win32=true +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=3 +supportsCSS=true + +[Mozilla/5.0 (Windows; U; Windows NT 5.1; *) AppleWebKit/* (KHTML, like Gecko) Iron/0.3.* Safari/*] +Parent=Iron 0.3 +Platform=WinXP + +[Mozilla/5.0 (Windows; U; Windows NT 5.2; *) AppleWebKit/* (KHTML, like Gecko) Iron/0.3.* Safari/*] +Parent=Iron 0.3 +Platform=WinVista + +[Mozilla/5.0 (Windows; U; Windows NT 6.0; *) AppleWebKit/* (KHTML, like Gecko) Iron/0.3.* Safari/*] +Parent=Iron 0.3 +Platform=Win7 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Iron 0.4 + +[Iron 0.4] +Parent=DefaultProperties +Browser=Iron +Version=0.4 +MinorVer=4 +Win32=true +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=3 +supportsCSS=true + +[Mozilla/5.0 (Windows; U; Windows NT 5.1; *) AppleWebKit/* (KHTML, like Gecko) Iron/0.4.* Safari/*] +Parent=Iron 0.4 +Platform=WinXP + +[Mozilla/5.0 (Windows; U; Windows NT 5.2; *) AppleWebKit/* (KHTML, like Gecko) Iron/0.4.* Safari/*] +Parent=Iron 0.4 +Platform=WinVista + +[Mozilla/5.0 (Windows; U; Windows NT 6.0; *) AppleWebKit/* (KHTML, like Gecko) Iron/0.4.* Safari/*] +Parent=Iron 0.4 +Platform=Win7 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; iPod + +[iPod] +Parent=DefaultProperties +Browser=iPod +Platform=iPhone OSX +isMobileDevice=true + +[Mozilla/5.0 (iPod; U; *Mac OS X; *) AppleWebKit/* (*) Version/3.0 Mobile/* Safari/*] +Parent=iPod +Version=3.0 +MajorVer=3 +MinorVer=0 +Platform=MacOSX + +[Mozilla/5.0 (iPod; U; CPU iPhone OS 2_2 like Mac OS X; en-us) AppleWebKit/* (KHTML, like Gecko) Mobile/*] +Parent=iPod + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; iTunes + +[iTunes] +Parent=DefaultProperties +Browser=iTunes +Platform=iPhone OSX + +[iTunes/* (Windows; ?)] +Parent=iTunes +Browser=iTunes +Platform=Win32 +Win32=true + +[MOT-* iTunes/* MIB/* Profile/MIDP-* Configuration/CLDC-* UP.Link/*] +Parent=iTunes + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Media Players + +[Media Players] +Parent=DefaultProperties +Browser=Media Players +Cookies=true + +[Microsoft NetShow(TM) Player with RealVideo(R)] +Parent=Media Players +Browser=Microsoft NetShow + +[Mozilla/5.0 (Macintosh; U; PPC Mac OS X; *) AppleWebKit/* RealPlayer] +Parent=Media Players +Browser=RealPlayer +Platform=MacOSX + +[MPlayer 0.9*] +Parent=Media Players +Browser=MPlayer +Version=0.9 +MajorVer=0 +MinorVer=9 + +[MPlayer 1.*] +Parent=Media Players +Browser=MPlayer +Version=1.0 +MajorVer=1 +MinorVer=0 + +[MPlayer HEAD CVS] +Parent=Media Players +Browser=MPlayer + +[RealPlayer*] +Parent=Media Players +Browser=RealPlayer + +[RMA/*] +Parent=Media Players +Browser=RMA + +[VLC media player*] +Parent=Media Players +Browser=VLC + +[vobsub] +Parent=Media Players +Browser=vobsub +isBanned=true + +[WinampMPEG/*] +Parent=Media Players +Browser=WinAmp + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Nintendo + +[Nintendo Wii] +Parent=DefaultProperties +Browser= +isMobileDevice=true + +[Opera/* (Nintendo DSi; Opera/*; *; *)] +Parent=Nintendo Wii +Browser=DSi + +[Opera/* (Nintendo Wii; U; *)] +Parent=Nintendo Wii +Browser=Wii + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Windows Media Player + +[Windows Media Player] +Parent=DefaultProperties +Browser=Windows Media Player +Cookies=true + +[NSPlayer/10.*] +Parent=Windows Media Player +Version=10.0 +MajorVer=10 +MinorVer=0 + +[NSPlayer/11.*] +Parent=Windows Media Player +Browser=Windows Media Player +Version=11.0 +MajorVer=11 +MinorVer=0 + +[NSPlayer/4.*] +Parent=Windows Media Player +Browser=Windows Media Player +Version=4.0 +MajorVer=4 +MinorVer=0 + +[NSPlayer/7.*] +Parent=Windows Media Player +Browser=Windows Media Player +Version=7.0 +MajorVer=7 +MinorVer=0 + +[NSPlayer/8.*] +Parent=Windows Media Player +Browser=Windows Media Player +Version=8.0 +MajorVer=8 +MinorVer=0 + +[NSPlayer/9.*] +Parent=Windows Media Player +Browser=Windows Media Player +Version=9.0 +MajorVer=9 +MinorVer=0 + +[Windows-Media-Player/10.*] +Parent=Windows Media Player +Browser=Windows-Media-Player +Version=10.0 +MajorVer=10 +MinorVer=0 +Win32=true + +[Windows-Media-Player/11.*] +Parent=Windows Media Player +Version=11.0 +MajorVer=11 +MinorVer=0 +Win32=true + +[Windows-Media-Player/7.*] +Parent=Windows Media Player +Browser=Windows Media Player +Version=7.0 +MajorVer=7 +MinorVer=0 +Win32=true + +[Windows-Media-Player/8.*] +Parent=Windows Media Player +Browser=Windows Media Player +Version=8.0 +MajorVer=8 +MinorVer=0 +Win32=true + +[Windows-Media-Player/9.*] +Parent=Windows Media Player +Version=9.0 +MajorVer=9 +MinorVer=0 +Win32=true + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Zune + +[Zune] +Parent=DefaultProperties +Browser=Zune +Cookies=true + +[Mozilla/4.0 (compatible; MSIE ?.0; *Zune 2.0*)*] +Parent=Zune +Version=2.0 +MajorVer=2 +MinorVer=0 + +[Mozilla/4.0 (compatible; MSIE ?.0; *Zune 2.5*)*] +Parent=Zune +Version=2.5 +MajorVer=2 +MinorVer=5 + +[Mozilla/4.0 (compatible; MSIE ?.0; *Zune 3.0*)*] +Parent=Zune +Version=3.0 +MajorVer=3 +MinorVer=0 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; QuickTime 7.0 + +[QuickTime 7.0] +Parent=DefaultProperties +Browser=QuickTime +Version=7.0 +MajorVer=7 +Cookies=true + +[QuickTime (qtver=7.0*;cpu=PPC;os=Mac 10.*)] +Parent=QuickTime 7.0 +Platform=MacOSX + +[QuickTime (qtver=7.0*;cpu=PPC;os=Mac 9.*)] +Parent=QuickTime 7.0 +Platform=MacPPC + +[QuickTime (qtver=7.0*;os=Windows 95*)] +Parent=QuickTime 7.0 +Platform=Win95 +Win32=true + +[QuickTime (qtver=7.0*;os=Windows 98*)] +Parent=QuickTime 7.0 +Platform=Win98 +Win32=true + +[QuickTime (qtver=7.0*;os=Windows Me*)] +Parent=QuickTime 7.0 +Platform=WinME +Win32=true + +[QuickTime (qtver=7.0*;os=Windows NT 4.0*)] +Parent=QuickTime 7.0 +Platform=WinNT +Win32=true + +[QuickTime (qtver=7.0*;os=Windows NT 5.0*)] +Parent=QuickTime 7.0 +Platform=Win2000 +Win32=true + +[QuickTime (qtver=7.0*;os=Windows NT 5.1*)] +Parent=QuickTime 7.0 +Platform=WinXP +Win32=true + +[QuickTime (qtver=7.0*;os=Windows NT 5.2*)] +Parent=QuickTime 7.0 +Platform=Win2003 +Win32=true + +[QuickTime/7.0.* (qtver=7.0.*;*;os=Mac 10.*)*] +Parent=QuickTime 7.0 +Platform=MacOSX + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; QuickTime 7.1 + +[QuickTime 7.1] +Parent=DefaultProperties +Browser=QuickTime +Version=7.1 +MajorVer=7 +MinorVer=1 +Cookies=true + +[QuickTime (qtver=7.1*;cpu=PPC;os=Mac 10.*)] +Parent=QuickTime 7.1 +Platform=MacOSX + +[QuickTime (qtver=7.1*;cpu=PPC;os=Mac 9.*)] +Parent=QuickTime 7.1 +Platform=MacPPC + +[QuickTime (qtver=7.1*;os=Windows 98*)] +Parent=QuickTime 7.1 +Platform=Win98 +Win32=true + +[QuickTime (qtver=7.1*;os=Windows NT 4.0*)] +Parent=QuickTime 7.1 +Platform=WinNT +Win32=true + +[QuickTime (qtver=7.1*;os=Windows NT 5.0*)] +Parent=QuickTime 7.1 +Platform=Win2000 +Win32=true + +[QuickTime (qtver=7.1*;os=Windows NT 5.1*)] +Parent=QuickTime 7.1 +Platform=WinXP +Win32=true + +[QuickTime (qtver=7.1*;os=Windows NT 5.2*)] +Parent=QuickTime 7.1 +Platform=Win2003 +Win32=true + +[QuickTime/7.1.* (qtver=7.1.*;*;os=Mac 10.*)*] +Parent=QuickTime 7.1 +Platform=MacOSX + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; QuickTime 7.2 + +[QuickTime 7.2] +Parent=DefaultProperties +Browser=QuickTime +Version=7.2 +MajorVer=7 +MinorVer=2 +Platform=MacOSX +Cookies=true + +[QuickTime (qtver=7.2*;cpu=PPC;os=Mac 10.*)] +Parent=QuickTime 7.2 +Platform=MacOSX + +[QuickTime (qtver=7.2*;cpu=PPC;os=Mac 9.*)] +Parent=QuickTime 7.2 +Platform=MacPPC + +[QuickTime (qtver=7.2*;os=Windows 98*)] +Parent=QuickTime 7.2 +Platform=Win98 +Win32=true + +[QuickTime (qtver=7.2*;os=Windows NT 4.0*)] +Parent=QuickTime 7.2 +Platform=WinNT +Win32=true + +[QuickTime (qtver=7.2*;os=Windows NT 5.0*)] +Parent=QuickTime 7.2 +Platform=Win2000 +Win32=true + +[QuickTime (qtver=7.2*;os=Windows NT 5.1*)] +Parent=QuickTime 7.2 +Platform=WinXP +Win32=true + +[QuickTime (qtver=7.2*;os=Windows NT 5.2*)] +Parent=QuickTime 7.2 +Platform=Win2003 +Win32=true + +[QuickTime/7.2.* (qtver=7.2.*;*;os=Mac 10.*)*] +Parent=QuickTime 7.2 +Platform=MacOSX + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; QuickTime 7.3 + +[QuickTime 7.3] +Parent=DefaultProperties +Browser=QuickTime +Version=7.3 +MajorVer=7 +MinorVer=3 +Platform=MacOSX +Cookies=true + +[QuickTime (qtver=7.3*;cpu=PPC;os=Mac 10.*)] +Parent=QuickTime 7.3 +Platform=MacOSX + +[QuickTime (qtver=7.3*;cpu=PPC;os=Mac 9.*)] +Parent=QuickTime 7.3 +Platform=MacPPC + +[QuickTime (qtver=7.3*;os=Windows 98*)] +Parent=QuickTime 7.3 +Platform=Win98 +Win32=true + +[QuickTime (qtver=7.3*;os=Windows NT 4.0*)] +Parent=QuickTime 7.3 +Platform=WinNT +Win32=true + +[QuickTime (qtver=7.3*;os=Windows NT 5.0*)] +Parent=QuickTime 7.3 +Platform=Win2000 +Win32=true + +[QuickTime (qtver=7.3*;os=Windows NT 5.1*)] +Parent=QuickTime 7.3 +Platform=WinXP +Win32=true + +[QuickTime (qtver=7.3*;os=Windows NT 5.2*)] +Parent=QuickTime 7.3 +Platform=Win2003 +Win32=true + +[QuickTime/7.3.* (qtver=7.3.*;*;os=Mac 10.*)*] +Parent=QuickTime 7.3 +Platform=MacOSX + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; QuickTime 7.4 + +[QuickTime 7.4] +Parent=DefaultProperties +Browser=QuickTime +Version=7.4 +MajorVer=7 +MinorVer=4 +Platform=MacOSX +Cookies=true + +[QuickTime (qtver=7.4*;cpu=PPC;os=Mac 10.*)] +Parent=QuickTime 7.4 +Platform=MacOSX + +[QuickTime (qtver=7.4*;cpu=PPC;os=Mac 9.*)] +Parent=QuickTime 7.4 +Platform=MacPPC + +[QuickTime (qtver=7.4*;os=Windows 98*)] +Parent=QuickTime 7.4 +Platform=Win98 +Win32=true + +[QuickTime (qtver=7.4*;os=Windows NT 4.0*)] +Parent=QuickTime 7.4 +Platform=WinNT +Win32=true + +[QuickTime (qtver=7.4*;os=Windows NT 5.0*)] +Parent=QuickTime 7.4 +Platform=Win2000 +Win32=true + +[QuickTime (qtver=7.4*;os=Windows NT 5.1*)] +Parent=QuickTime 7.4 +Platform=WinXP +Win32=true + +[QuickTime (qtver=7.4*;os=Windows NT 5.2*)] +Parent=QuickTime 7.4 +Platform=Win2003 +Win32=true + +[QuickTime/7.4.* (qtver=7.4.*;*;os=Mac 10.*)*] +Parent=QuickTime 7.4 +Platform=MacOSX + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Google Android + +[Android] +Parent=DefaultProperties +Browser=Android +Frames=true +Tables=true +Cookies=true +JavaScript=true +isMobileDevice=true + +[Mozilla/5.0 (Linux; U; Android *; *) AppleWebKit/* (KHTML, like Gecko) Safari/*] +Parent=Android +Browser=Android +Platform=Linux +isMobileDevice=true + +[Mozilla/5.0 (Linux; U; Android *; *) AppleWebKit/* (KHTML, like Gecko) Version/3.0.* Mobile Safari/*] +Parent=Android +Browser=Android +Platform=Linux +isMobileDevice=true + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; BlackBerry + +[BlackBerry] +Parent=DefaultProperties +Browser=BlackBerry +Frames=true +Tables=true +Cookies=true +JavaScript=true +isMobileDevice=true + +[*BlackBerry*] +Parent=BlackBerry + +[*BlackBerrySimulator/*] +Parent=BlackBerry + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Handspring Blazer + +[Blazer] +Parent=DefaultProperties +Browser=Handspring Blazer +Platform=Palm +Frames=true +Tables=true +Cookies=true +isMobileDevice=true + +[Mozilla/4.0 (compatible; MSIE 6.0; Windows 95; PalmSource; Blazer 3.0) 16;160x160] +Parent=Blazer +Version=3.0 +MajorVer=3 +MinorVer=0 + +[Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; PalmSource/*; Blazer/4.0) 16;320x448] +Parent=Blazer +Version=4.0 +MajorVer=4 +MinorVer=0 + +[Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; PalmSource/*; Blazer/4.1) 16;320x320] +Parent=Blazer +Version=4.1 +MajorVer=4 +MinorVer=1 + +[Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; PalmSource/*; Blazer/4.2) 16;320x320] +Parent=Blazer +Version=4.2 +MajorVer=4 +MinorVer=2 + +[Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; PalmSource/*; Blazer/4.4) 16;320x320] +Parent=Blazer +Version=4.4 +MajorVer=4 +MinorVer=4 + +[Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; PalmSource/*; Blazer/4.5) 16;320x320] +Parent=Blazer +Version=4.5 +MajorVer=4 +MinorVer=5 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; DoCoMo + +[DoCoMo] +Parent=DefaultProperties +Browser=DoCoMo +Frames=true +Tables=true +Cookies=true +JavaScript=true +isMobileDevice=true + +[DoCoMo/1.0*] +Parent=DoCoMo +Version=1.0 +MajorVer=1 +MinorVer=0 +Platform=WAP + +[DoCoMo/2.0*] +Parent=DoCoMo +Version=2.0 +MajorVer=2 +MinorVer=0 +Platform=WAP + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IEMobile + +[IEMobile] +Parent=DefaultProperties +Browser=IEMobile +Platform=WinCE +Win32=true +Frames=true +IFrames=true +Tables=true +Cookies=true +VBScript=true +JavaScript=true +ActiveXControls=true +isMobileDevice=true +CssVersion=2 +supportsCSS=true + +[Mozilla/4.0 (compatible; MSIE 6.0; Windows CE; IEMobile 6.*)*] +Parent=IEMobile +Version=6.0 +MajorVer=6 +MinorVer=0 + +[Mozilla/4.0 (compatible; MSIE 6.0; Windows CE; IEMobile 7.*)*] +Parent=IEMobile +Version=7.0 +MajorVer=7 +MinorVer=0 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; iPhone + +[iPhone] +Parent=DefaultProperties +Browser=iPhone +Platform=iPhone OSX +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +JavaApplets=true +JavaScript=true +isMobileDevice=true +CssVersion=3 +supportsCSS=true + +[Mozilla/4.0 (iPhone; *)] +Parent=iPhone + +[Mozilla/4.0 (iPhone; U; CPU like Mac OS X; *)] +Parent=iPhone + +[Mozilla/5.0 (iPhone Simulator; U; CPU iPhone OS 2_* like Mac OS X; *) AppleWebKit/* (KHTML, like Gecko) Version/3.1* Mobile/* Safari/*] +Parent=iPhone +Browser=iPhone Simulator +Version=3.1 +MajorVer=3 +MinorVer=1 + +[Mozilla/5.0 (iPhone Simulator; U; CPU iPhone OS 2_0_1 like Mac OS X; *) AppleWebKit/* (KHTML, like Gecko) Version/3.1* Mobile/* Safari/*] +Parent=iPhone +Browser=iPhone Simulator +Version=3.1 +MajorVer=3 +MinorVer=1 + +[Mozilla/5.0 (iPhone Simulator; U; CPU iPhone OS 2_1 like Mac OS X; *) AppleWebKit/* (KHTML, like Gecko) Version/3.1* Mobile/* Safari/*] +Parent=iPhone +Browser=iPhone Simulator +Version=3.1 +MajorVer=3 +MinorVer=1 + +[Mozilla/5.0 (iPhone)] +Parent=iPhone + +[Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_* like Mac OS X; *) AppleWebKit/* (KHTML, like Gecko)] +Parent=iPhone +Version=3.1 +MajorVer=3 +MinorVer=1 + +[Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_* like Mac OS X; *) AppleWebKit/* (KHTML, like Gecko) Version/3.1* Mobile/* Safari/*] +Parent=iPhone +Version=3.1 +MajorVer=3 +MinorVer=1 + +[Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_0* like Mac OS X; *) AppleWebKit/* (KHTML, like Gecko) Version/3.1* Mobile/* Safari/*] +Parent=iPhone +Version=3.1 +MajorVer=3 +MinorVer=1 + +[Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_0_2 like Mac OS X; *) AppleWebKit/* (KHTML, like Gecko)] +Parent=iPhone + +[Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_1 like Mac OS X; *)*] +Parent=iPhone + +[Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_2_1 like Mac OS X; *)] +Parent=iPhone + +[Mozilla/5.0 (iPhone; U; CPU like Mac OS X; *) AppleWebKit/* (KHTML, like Gecko) Version/3.0 Mobile/* Safari/*] +Parent=iPhone +Version=3.0 +MajorVer=3 +MinorVer=0 + +[Mozilla/5.0 (iPod; U; *Mac OS X; *) AppleWebKit/* (*) Version/* Mobile/*] +Parent=iPhone +Browser=iTouch + +[Mozilla/5.0 (iPod; U; CPU iPhone OS 2_2* like Mac OS X; *)*] +Parent=iPhone +Browser=iTouch +Version=2.2 +MajorVer=2 +MinorVer=2 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; KDDI + +[KDDI] +Parent=DefaultProperties +Browser=KDDI +Frames=true +Tables=true +Cookies=true +BackgroundSounds=true +VBScript=true +JavaScript=true +ActiveXControls=true +isMobileDevice=true +CssVersion=1 +supportsCSS=true + +[KDDI-* UP.Browser/* (GUI) MMP/*] +Parent=KDDI + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Miscellaneous Mobile + +[Miscellaneous Mobile] +Parent=DefaultProperties +Browser= +IFrames=true +Tables=true +Cookies=true +JavaScript=true +isMobileDevice=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (X11; *; CentOS; *) AppleWebKit/* (KHTML, like Gecko) Bolt/0.* Version/3.0 Safari/*] +Parent=Miscellaneous Mobile +Browser=Bolt + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Motorola Internet Browser + +[Motorola Internet Browser] +Parent=DefaultProperties +Browser=Motorola Internet Browser +Frames=true +Tables=true +Cookies=true +isMobileDevice=true + +[MOT-*/*] +Parent=Motorola Internet Browser + +[MOT-1*/* UP.Browser/*] +Parent=Motorola Internet Browser + +[MOT-8700_/* UP.Browser/*] +Parent=Motorola Internet Browser + +[MOT-A-0A/* UP.Browser/*] +Parent=Motorola Internet Browser + +[MOT-A-2B/* UP.Browser/*] +Parent=Motorola Internet Browser + +[MOT-A-88/* UP.Browser/*] +Parent=Motorola Internet Browser + +[MOT-C???/* MIB/*] +Parent=Motorola Internet Browser + +[MOT-GATW_/* UP.Browser/*] +Parent=Motorola Internet Browser + +[MOT-L6/* MIB/*] +Parent=Motorola Internet Browser + +[MOT-L7/* MIB/*] +Parent=Motorola Internet Browser + +[MOT-M*/* UP.Browser/*] +Parent=Motorola Internet Browser + +[MOT-MP*/* Mozilla/* (compatible; MSIE *; Windows CE; *)] +Parent=Motorola Internet Browser +Win32=true + +[MOT-MP*/* Mozilla/4.0 (compatible; MSIE *; Windows CE; *)] +Parent=Motorola Internet Browser +Win32=true + +[MOT-SAP4_/* UP.Browser/*] +Parent=Motorola Internet Browser + +[MOT-T*/*] +Parent=Motorola Internet Browser + +[MOT-T7*/* MIB/*] +Parent=Motorola Internet Browser + +[MOT-T721*] +Parent=Motorola Internet Browser + +[MOT-TA02/* MIB/*] +Parent=Motorola Internet Browser + +[MOT-V*/*] +Parent=Motorola Internet Browser + +[MOT-V*/* MIB/*] +Parent=Motorola Internet Browser + +[MOT-V*/* UP.Browser/*] +Parent=Motorola Internet Browser + +[MOT-V3/* MIB/*] +Parent=Motorola Internet Browser + +[MOT-V4*/* MIB/*] +Parent=Motorola Internet Browser + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; MSN Mobile Proxy + +[MSN Mobile Proxy] +Parent=DefaultProperties +Browser=MSN Mobile Proxy +Win32=true +Frames=true +Tables=true +Cookies=true +JavaScript=true +ActiveXControls=true +isMobileDevice=true + +[Mozilla/* (compatible; MSIE *; Windows*; MSN Mobile Proxy)] +Parent=MSN Mobile Proxy + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; NetFront + +[NetFront] +Parent=DefaultProperties +Browser=NetFront +Frames=true +Tables=true +Cookies=true +JavaScript=true +isMobileDevice=true + +[*NetFront/*] +Parent=NetFront + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Nokia + +[Nokia] +Parent=DefaultProperties +Browser=Nokia +Tables=true +Cookies=true +isMobileDevice=true + +[*Nokia*/*] +Parent=Nokia + +[Mozilla/* (SymbianOS/*; ?; *) AppleWebKit/* (KHTML, like Gecko) Safari/*] +Parent=Nokia +Platform=SymbianOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Openwave Mobile Browser + +[Openwave Mobile Browser] +Parent=DefaultProperties +Browser=Openwave Mobile Browser +Alpha=true +Win32=true +Win64=true +Frames=true +Tables=true +Cookies=true +isMobileDevice=true + +[*UP.Browser/*] +Parent=Openwave Mobile Browser + +[*UP.Link/*] +Parent=Openwave Mobile Browser + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera Mini + +[Opera Mini] +Parent=DefaultProperties +Browser=Opera Mini +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaScript=true +isMobileDevice=true + +[Opera/* (J2ME/MIDP; Opera Mini/1.0*)*] +Parent=Opera Mini +Version=1.0 +MajorVer=1 +MinorVer=0 + +[Opera/* (J2ME/MIDP; Opera Mini/1.1*)*] +Parent=Opera Mini +Version=1.1 +MajorVer=1 +MinorVer=1 + +[Opera/* (J2ME/MIDP; Opera Mini/1.2*)*] +Parent=Opera Mini +Version=1.2 +MajorVer=1 +MinorVer=2 + +[Opera/* (J2ME/MIDP; Opera Mini/2.0*)*] +Parent=Opera Mini +Version=2.0 +MajorVer=2 +MinorVer=0 + +[Opera/* (J2ME/MIDP; Opera Mini/3.0*)*] +Parent=Opera Mini +Version=3.0 +MajorVer=3 +MinorVer=0 + +[Opera/* (J2ME/MIDP; Opera Mini/3.1*)*] +Parent=Opera Mini +Version=3.1 +MajorVer=3 +MinorVer=1 + +[Opera/* (J2ME/MIDP; Opera Mini/4.0*)*] +Parent=Opera Mini +Version=4.0 +MajorVer=4 +MinorVer=0 + +[Opera/* (J2ME/MIDP; Opera Mini/4.1*)*] +Parent=Opera Mini +Version=4.1 +MajorVer=4 +MinorVer=1 + +[Opera/* (J2ME/MIDP; Opera Mini/4.2*)*] +Parent=Opera Mini +Version=4.2 +MajorVer=4 +MinorVer=2 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera Mobile + +[Opera Mobile] +Parent=DefaultProperties +Browser=Opera Mobi +Frames=true +Tables=true +Cookies=true +isMobileDevice=true + +[Opera/9.5 (Microsoft Windows; PPC; *Opera Mobile/*)] +Parent=Opera Mobile +Version=9.5 +MajorVer=9 +MinorVer=5 + +[Opera/9.5 (Microsoft Windows; PPC; Opera Mobi/*)] +Parent=Opera Mobile +Version=9.5 +MajorVer=9 +MinorVer=5 + +[Opera/9.51 Beta (Microsoft Windows; PPC; Opera Mobi/*)*] +Parent=Opera Mobile +Version=9.51 +MajorVer=9 +MinorVer=51 +Beta=true + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Playstation + +[Playstation] +Parent=DefaultProperties +Browser=Playstation +Platform=WAP +Frames=true +Tables=true +Cookies=true +isMobileDevice=true + +[Mozilla/* (PLAYSTATION *; *)] +Parent=Playstation +Browser=PlayStation 3 +Frames=false + +[Mozilla/* (PSP (PlayStation Portable); *)] +Parent=Playstation + +[Sony PS2 (Linux)] +Parent=Playstation +Browser=Sony PS2 +Platform=Linux + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Pocket PC + +[Pocket PC] +Parent=DefaultProperties +Browser=Pocket PC +Platform=WinCE +Win32=true +Frames=true +Tables=true +Cookies=true +JavaScript=true +ActiveXControls=true +isMobileDevice=true +CssVersion=1 +supportsCSS=true + +[*(compatible; MSIE *.*; Windows CE; PPC; *)] +Parent=Pocket PC + +[HTC-*/* Mozilla/* (compatible; MSIE *.*; Windows CE*)*] +Parent=Pocket PC +Win32=true + +[Mozilla/* (compatible; MSPIE *.*; *Windows CE*)*] +Parent=Pocket PC +Win32=true + +[T-Mobile* Mozilla/* (compatible; MSIE *.*; Windows CE; *)] +Parent=Pocket PC + +[Vodafone* Mozilla/* (compatible; MSIE *.*; Windows CE; *)*] +Parent=Pocket PC + +[Windows CE (Pocket PC) - Version *.*] +Parent=Pocket PC +Win32=true + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; SEMC Browser + +[SEMC Browser] +Parent=DefaultProperties +Browser=SEMC Browser +Platform=JAVA +Tables=true +isMobileDevice=true +CssVersion=1 +supportsCSS=true + +[*SEMC-Browser/*] +Parent=SEMC Browser + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; SonyEricsson + +[SonyEricsson] +Parent=DefaultProperties +Browser=SonyEricsson +Frames=true +Tables=true +Cookies=true +JavaScript=true +isMobileDevice=true +CssVersion=1 +supportsCSS=true + +[*Ericsson*] +Parent=SonyEricsson + +[*SonyEricsson*] +Parent=SonyEricsson + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netbox + +[Netbox] +Parent=DefaultProperties +Browser=Netbox +Frames=true +Tables=true +Cookies=true +JavaScript=true +CssVersion=1 +supportsCSS=true + +[Mozilla/3.01 (compatible; Netbox/*; Linux*)] +Parent=Netbox +Browser=Netbox +Platform=Linux + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; PowerTV + +[PowerTV] +Parent=DefaultProperties +Browser=PowerTV +Platform=PowerTV +Frames=true +Tables=true +Cookies=true +JavaScript=true + +[Mozilla/4.0 PowerTV/1.5 (Compatible; Spyglass DM 3.2.1, EXPLORER)] +Parent=PowerTV +Version=1.5 +MajorVer=1 +MinorVer=5 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; WebTV/MSNTV + +[WebTV] +Parent=DefaultProperties +Browser=WebTV/MSNTV +Platform=WebTV +Frames=true +Tables=true +Cookies=true +JavaScript=true + +[Mozilla/3.0 WebTV/1.*(compatible; MSIE 2.0)] +Parent=WebTV +Version=1.0 +MajorVer=1 +MinorVer=0 + +[Mozilla/4.0 WebTV/2.0*(compatible; MSIE 3.0)] +Parent=WebTV +Version=2.0 +MajorVer=2 +MinorVer=0 + +[Mozilla/4.0 WebTV/2.1*(compatible; MSIE 3.0)] +Parent=WebTV +Version=2.1 +MajorVer=2 +MinorVer=1 + +[Mozilla/4.0 WebTV/2.2*(compatible; MSIE 3.0)] +Parent=WebTV +Version=2.2 +MajorVer=2 +MinorVer=2 + +[Mozilla/4.0 WebTV/2.3*(compatible; MSIE 3.0)] +Parent=WebTV +Version=2.3 +MajorVer=2 +MinorVer=3 + +[Mozilla/4.0 WebTV/2.4*(compatible; MSIE 3.0)] +Parent=WebTV +Version=2.4 +MajorVer=2 +MinorVer=4 + +[Mozilla/4.0 WebTV/2.5*(compatible; MSIE 4.0)] +Parent=WebTV +Version=2.5 +MajorVer=2 +MinorVer=5 +CssVersion=1 +supportsCSS=true + +[Mozilla/4.0 WebTV/2.6*(compatible; MSIE 4.0)] +Parent=WebTV +Version=2.6 +MajorVer=2 +MinorVer=6 +CssVersion=1 +supportsCSS=true + +[Mozilla/4.0 WebTV/2.7*(compatible; MSIE 4.0)] +Parent=WebTV +Version=2.7 +MajorVer=2 +MinorVer=7 +CssVersion=1 +supportsCSS=true + +[Mozilla/4.0 WebTV/2.8*(compatible; MSIE 4.0)] +Parent=WebTV +Version=2.8 +MajorVer=2 +MinorVer=8 +JavaApplets=true +CssVersion=1 +supportsCSS=true + +[Mozilla/4.0 WebTV/2.9*(compatible; MSIE 4.0)] +Parent=WebTV +Version=2.9 +MajorVer=2 +MinorVer=9 +JavaApplets=true +CssVersion=1 +supportsCSS=true + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Amaya + +[Amaya] +Parent=DefaultProperties +Browser=Amaya +Tables=true +Cookies=true + +[amaya/7.*] +Parent=Amaya +Version=7.0 +MajorVer=7 +MinorVer=0 + +[amaya/8.0*] +Parent=Amaya +Version=8.0 +MajorVer=8 +MinorVer=0 +CssVersion=2 +supportsCSS=true + +[amaya/8.1*] +Parent=Amaya +Version=8.1 +MajorVer=8 +MinorVer=1 +CssVersion=2 +supportsCSS=true + +[amaya/8.2*] +Parent=Amaya +Version=8.2 +MajorVer=8 +MinorVer=2 +CssVersion=2 +supportsCSS=true + +[amaya/8.3*] +Parent=Amaya +Version=8.3 +MajorVer=8 +MinorVer=3 +CssVersion=2 +supportsCSS=true + +[amaya/8.4*] +Parent=Amaya +Version=8.4 +MajorVer=8 +MinorVer=4 +CssVersion=2 +supportsCSS=true + +[amaya/8.5*] +Parent=Amaya +Version=8.5 +MajorVer=8 +MinorVer=5 +CssVersion=2 +supportsCSS=true + +[amaya/8.6*] +Parent=Amaya +Version=8.6 +MajorVer=8 +MinorVer=6 +CssVersion=2 +supportsCSS=true + +[amaya/8.7*] +Parent=Amaya +Version=8.7 +MajorVer=8 +MinorVer=7 +CssVersion=2 +supportsCSS=true + +[amaya/8.8*] +Parent=Amaya +Version=8.8 +MajorVer=8 +MinorVer=8 +CssVersion=2 +supportsCSS=true + +[amaya/8.9*] +Parent=Amaya +Version=8.9 +MajorVer=8 +MinorVer=9 +CssVersion=2 +supportsCSS=true + +[amaya/9.0*] +Parent=Amaya +Version=9.0 +MajorVer=8 +MinorVer=0 +CssVersion=2 +supportsCSS=true + +[amaya/9.1*] +Parent=Amaya +Version=9.1 +MajorVer=9 +MinorVer=1 +CssVersion=2 +supportsCSS=true + +[amaya/9.2*] +Parent=Amaya +Version=9.2 +MajorVer=9 +MinorVer=2 +CssVersion=2 +supportsCSS=true + +[amaya/9.3*] +Parent=Amaya +Version=9.3 +MajorVer=9 +MinorVer=3 + +[amaya/9.4*] +Parent=Amaya +Version=9.4 +MajorVer=9 +MinorVer=4 + +[amaya/9.5*] +Parent=Amaya +Version=9.5 +MajorVer=9 +MinorVer=5 + +[Emacs-w3m/*] +Parent=Emacs/W3 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Links + +[Links] +Parent=DefaultProperties +Browser=Links +Frames=true +Tables=true + +[Links (0.9*; CYGWIN_NT-5.1*)] +Parent=Links +Browser=Links +Version=0.9 +MajorVer=0 +MinorVer=9 +Platform=WinXP + +[Links (0.9*; Darwin*)] +Parent=Links +Version=0.9 +MajorVer=0 +MinorVer=9 +Platform=MacPPC + +[Links (0.9*; FreeBSD*)] +Parent=Links +Browser=Links +Version=0.9 +MajorVer=0 +MinorVer=9 +Platform=FreeBSD + +[Links (0.9*; Linux*)] +Parent=Links +Browser=Links +Version=0.9 +MajorVer=0 +MinorVer=9 +Platform=Linux + +[Links (0.9*; OS/2*)] +Parent=Links +Browser=Links +Version=0.9 +MajorVer=0 +MinorVer=9 +Platform=OS/2 + +[Links (0.9*; Unix*)] +Parent=Links +Browser=Links +Version=0.9 +MajorVer=0 +MinorVer=9 +Platform=Unix + +[Links (0.9*; Win32*)] +Parent=Links +Browser=Links +Version=0.9 +MajorVer=0 +MinorVer=9 +Platform=Win32 +Win32=true + +[Links (1.0*; CYGWIN_NT-5.1*)] +Parent=Links +Browser=Links +Version=1.0 +MajorVer=1 +MinorVer=0 +Platform=WinXP + +[Links (1.0*; FreeBSD*)] +Parent=Links +Browser=Links +Version=1.0 +MajorVer=1 +MinorVer=0 +Platform=FreeBSD + +[Links (1.0*; Linux*)] +Parent=Links +Browser=Links +Version=1.0 +MajorVer=1 +MinorVer=0 +Platform=Linux + +[Links (1.0*; OS/2*)] +Parent=Links +Browser=Links +Version=1.0 +MajorVer=1 +MinorVer=0 +Platform=OS/2 + +[Links (1.0*; Unix*)] +Parent=Links +Browser=Links +Version=1.0 +MajorVer=1 +MinorVer=0 +Platform=Unix + +[Links (1.0*; Win32*)] +Parent=Links +Browser=Links +Version=1.0 +MajorVer=1 +MinorVer=0 +Platform=Win32 +Win32=true + +[Links (2.0*; Linux*)] +Parent=Links +Browser=Links +Version=2.0 +MajorVer=2 +MinorVer=0 +Platform=Linux + +[Links (2.1*; FreeBSD*)] +Parent=Links +Browser=Links +Version=2.1 +MajorVer=2 +MinorVer=1 +Platform=FreeBSD + +[Links (2.1*; Linux *)] +Parent=Links +Browser=Links +Version=2.1 +MajorVer=2 +MinorVer=1 +Platform=Linux + +[Links (2.1*; OpenBSD*)] +Parent=Links +Browser=Links +Version=2.1 +MajorVer=2 +MinorVer=1 +Platform=OpenBSD + +[Links (2.2*; FreeBSD*)] +Parent=Links +Version=2.2 +MajorVer=2 +MinorVer=2 +Platform=FreeBSD + +[Links (2.2*; Linux *)] +Parent=Links +Version=2.2 +MajorVer=2 +MinorVer=2 +Platform=Linux + +[Links (2.2*; OpenBSD*)] +Parent=Links +Version=2.2 +MajorVer=2 +MinorVer=2 +Platform=OpenBSD + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Lynx + +[Lynx] +Parent=DefaultProperties +Browser=Lynx +Frames=true +Tables=true + +[Lynx *] +Parent=Lynx +Browser=Lynx + +[Lynx/2.3*] +Parent=Lynx +Browser=Lynx +Version=2.3 +MajorVer=2 +MinorVer=3 + +[Lynx/2.4*] +Parent=Lynx +Browser=Lynx +Version=2.4 +MajorVer=2 +MinorVer=4 + +[Lynx/2.5*] +Parent=Lynx +Browser=Lynx +Version=2.5 +MajorVer=2 +MinorVer=5 + +[Lynx/2.6*] +Parent=Lynx +Browser=Lynx +Version=2.6 +MajorVer=2 +MinorVer=6 + +[Lynx/2.7*] +Parent=Lynx +Browser=Lynx +Version=2.7 +MajorVer=2 +MinorVer=7 + +[Lynx/2.8*] +Parent=Lynx +Browser=Lynx +Version=2.8 +MajorVer=2 +MinorVer=8 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; NCSA Mosaic + +[Mosaic] +Parent=DefaultProperties +Browser=Mosaic + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; w3m + +[w3m] +Parent=DefaultProperties +Browser=w3m +Frames=true +Tables=true + +[w3m/0.1*] +Parent=w3m +Browser=w3m +Version=0.1 +MajorVer=0 +MinorVer=1 + +[w3m/0.2*] +Parent=w3m +Browser=w3m +Version=0.2 +MajorVer=0 +MinorVer=2 + +[w3m/0.3*] +Parent=w3m +Browser=w3m +Version=0.3 +MajorVer=0 +MinorVer=3 + +[w3m/0.4*] +Parent=w3m +Browser=w3m +Version=0.4 +MajorVer=0 +MinorVer=4 +Cookies=true + +[w3m/0.5*] +Parent=w3m +Browser=w3m +Version=0.5 +MajorVer=0 +MinorVer=5 +Cookies=true + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ELinks 0.10 + +[ELinks 0.10] +Parent=DefaultProperties +Browser=ELinks +Version=0.10 +MinorVer=10 +Frames=true +Tables=true + +[ELinks (0.10*; *AIX*)] +Parent=ELinks 0.10 +Platform=AIX + +[ELinks (0.10*; *BeOS*)] +Parent=ELinks 0.10 +Platform=BeOS + +[ELinks (0.10*; *CygWin*)] +Parent=ELinks 0.10 +Platform=CygWin + +[ELinks (0.10*; *Darwin*)] +Parent=ELinks 0.10 +Platform=Darwin + +[ELinks (0.10*; *Digital Unix*)] +Parent=ELinks 0.10 +Platform=Digital Unix + +[ELinks (0.10*; *FreeBSD*)] +Parent=ELinks 0.10 +Platform=FreeBSD + +[ELinks (0.10*; *HPUX*)] +Parent=ELinks 0.10 +Platform=HP-UX + +[ELinks (0.10*; *IRIX*)] +Parent=ELinks 0.10 +Platform=IRIX + +[ELinks (0.10*; *Linux*)] +Parent=ELinks 0.10 +Platform=Linux + +[ELinks (0.10*; *NetBSD*)] +Parent=ELinks 0.10 +Platform=NetBSD + +[ELinks (0.10*; *OpenBSD*)] +Parent=ELinks 0.10 +Platform=OpenBSD + +[ELinks (0.10*; *OS/2*)] +Parent=ELinks 0.10 +Platform=OS/2 + +[ELinks (0.10*; *RISC*)] +Parent=ELinks 0.10 +Platform=RISC OS + +[ELinks (0.10*; *Solaris*)] +Parent=ELinks 0.10 +Platform=Solaris + +[ELinks (0.10*; *Unix*)] +Parent=ELinks 0.10 +Platform=Unix + +[ELinks/0.10* (*AIX*)] +Parent=ELinks 0.10 +Platform=AIX + +[ELinks/0.10* (*BeOS*)] +Parent=ELinks 0.10 +Platform=BeOS + +[ELinks/0.10* (*CygWin*)] +Parent=ELinks 0.10 +Platform=CygWin + +[ELinks/0.10* (*Darwin*)] +Parent=ELinks 0.10 +Platform=Darwin + +[ELinks/0.10* (*Digital Unix*)] +Parent=ELinks 0.10 +Platform=Digital Unix + +[ELinks/0.10* (*FreeBSD*)] +Parent=ELinks 0.10 +Platform=FreeBSD + +[ELinks/0.10* (*HPUX*)] +Parent=ELinks 0.10 +Platform=HP-UX + +[ELinks/0.10* (*IRIX*)] +Parent=ELinks 0.10 +Platform=IRIX + +[ELinks/0.10* (*Linux*)] +Parent=ELinks 0.10 +Platform=Linux + +[ELinks/0.10* (*NetBSD*)] +Parent=ELinks 0.10 +Platform=NetBSD + +[ELinks/0.10* (*OpenBSD*)] +Parent=ELinks 0.10 +Platform=OpenBSD + +[ELinks/0.10* (*OS/2*)] +Parent=ELinks 0.10 +Platform=OS/2 + +[ELinks/0.10* (*RISC*)] +Parent=ELinks 0.10 +Platform=RISC OS + +[ELinks/0.10* (*Solaris*)] +Parent=ELinks 0.10 +Platform=Solaris + +[ELinks/0.10* (*Unix*)] +Parent=ELinks 0.10 +Platform=Unix + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ELinks 0.11 + +[ELinks 0.11] +Parent=DefaultProperties +Browser=ELinks +Version=0.11 +MinorVer=11 +Frames=true +Tables=true + +[ELinks (0.11*; *AIX*)] +Parent=ELinks 0.11 +Platform=AIX + +[ELinks (0.11*; *BeOS*)] +Parent=ELinks 0.11 +Platform=BeOS + +[ELinks (0.11*; *CygWin*)] +Parent=ELinks 0.11 +Platform=CygWin + +[ELinks (0.11*; *Darwin*)] +Parent=ELinks 0.11 +Platform=Darwin + +[ELinks (0.11*; *Digital Unix*)] +Parent=ELinks 0.11 +Platform=Digital Unix + +[ELinks (0.11*; *FreeBSD*)] +Parent=ELinks 0.11 +Platform=FreeBSD + +[ELinks (0.11*; *HPUX*)] +Parent=ELinks 0.11 +Platform=HP-UX + +[ELinks (0.11*; *IRIX*)] +Parent=ELinks 0.11 +Platform=IRIX + +[ELinks (0.11*; *Linux*)] +Parent=ELinks 0.11 +Platform=Linux + +[ELinks (0.11*; *NetBSD*)] +Parent=ELinks 0.11 +Platform=NetBSD + +[ELinks (0.11*; *OpenBSD*)] +Parent=ELinks 0.11 +Platform=OpenBSD + +[ELinks (0.11*; *OS/2*)] +Parent=ELinks 0.11 +Platform=OS/2 + +[ELinks (0.11*; *RISC*)] +Parent=ELinks 0.11 +Platform=RISC OS + +[ELinks (0.11*; *Solaris*)] +Parent=ELinks 0.11 +Platform=Solaris + +[ELinks (0.11*; *Unix*)] +Parent=ELinks 0.11 +Platform=Unix + +[ELinks/0.11* (*AIX*)] +Parent=ELinks 0.11 +Platform=AIX + +[ELinks/0.11* (*BeOS*)] +Parent=ELinks 0.11 +Platform=BeOS + +[ELinks/0.11* (*CygWin*)] +Parent=ELinks 0.11 +Platform=CygWin + +[ELinks/0.11* (*Darwin*)] +Parent=ELinks 0.11 +Platform=Darwin + +[ELinks/0.11* (*Digital Unix*)] +Parent=ELinks 0.11 +Platform=Digital Unix + +[ELinks/0.11* (*FreeBSD*)] +Parent=ELinks 0.11 +Platform=FreeBSD + +[ELinks/0.11* (*HPUX*)] +Parent=ELinks 0.11 +Platform=HP-UX + +[ELinks/0.11* (*IRIX*)] +Parent=ELinks 0.11 +Platform=IRIX + +[ELinks/0.11* (*Linux*)] +Parent=ELinks 0.11 +Platform=Linux + +[ELinks/0.11* (*NetBSD*)] +Parent=ELinks 0.11 +Platform=NetBSD + +[ELinks/0.11* (*OpenBSD*)] +Parent=ELinks 0.11 +Platform=OpenBSD + +[ELinks/0.11* (*OS/2*)] +Parent=ELinks 0.11 +Platform=OS/2 + +[ELinks/0.11* (*RISC*)] +Parent=ELinks 0.11 +Platform=RISC OS + +[ELinks/0.11* (*Solaris*)] +Parent=ELinks 0.11 +Platform=Solaris + +[ELinks/0.11* (*Unix*)] +Parent=ELinks 0.11 +Platform=Unix + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ELinks 0.12 + +[ELinks 0.12] +Parent=DefaultProperties +Browser=ELinks +Version=0.12 +MinorVer=12 +Frames=true +Tables=true + +[ELinks (0.12*; *AIX*)] +Parent=ELinks 0.12 +Platform=AIX + +[ELinks (0.12*; *BeOS*)] +Parent=ELinks 0.12 +Platform=BeOS + +[ELinks (0.12*; *CygWin*)] +Parent=ELinks 0.12 +Platform=CygWin + +[ELinks (0.12*; *Darwin*)] +Parent=ELinks 0.12 +Platform=Darwin + +[ELinks (0.12*; *Digital Unix*)] +Parent=ELinks 0.12 +Platform=Digital Unix + +[ELinks (0.12*; *FreeBSD*)] +Parent=ELinks 0.12 +Platform=FreeBSD + +[ELinks (0.12*; *HPUX*)] +Parent=ELinks 0.12 +Platform=HP-UX + +[ELinks (0.12*; *IRIX*)] +Parent=ELinks 0.12 +Platform=IRIX + +[ELinks (0.12*; *Linux*)] +Parent=ELinks 0.12 +Platform=Linux + +[ELinks (0.12*; *NetBSD*)] +Parent=ELinks 0.12 +Platform=NetBSD + +[ELinks (0.12*; *OpenBSD*)] +Parent=ELinks 0.12 +Platform=OpenBSD + +[ELinks (0.12*; *OS/2*)] +Parent=ELinks 0.12 +Platform=OS/2 + +[ELinks (0.12*; *RISC*)] +Parent=ELinks 0.12 +Platform=RISC OS + +[ELinks (0.12*; *Solaris*)] +Parent=ELinks 0.12 +Platform=Solaris + +[ELinks (0.12*; *Unix*)] +Parent=ELinks 0.12 +Platform=Unix + +[ELinks/0.12* (*AIX*)] +Parent=ELinks 0.12 +Platform=AIX + +[ELinks/0.12* (*BeOS*)] +Parent=ELinks 0.12 +Platform=BeOS + +[ELinks/0.12* (*CygWin*)] +Parent=ELinks 0.12 +Platform=CygWin + +[ELinks/0.12* (*Darwin*)] +Parent=ELinks 0.12 +Platform=Darwin + +[ELinks/0.12* (*Digital Unix*)] +Parent=ELinks 0.12 +Platform=Digital Unix + +[ELinks/0.12* (*FreeBSD*)] +Parent=ELinks 0.12 +Platform=FreeBSD + +[ELinks/0.12* (*HPUX*)] +Parent=ELinks 0.12 +Platform=HP-UX + +[ELinks/0.12* (*IRIX*)] +Parent=ELinks 0.12 +Platform=IRIX + +[ELinks/0.12* (*Linux*)] +Parent=ELinks 0.12 +Platform=Linux + +[ELinks/0.12* (*NetBSD*)] +Parent=ELinks 0.12 +Platform=NetBSD + +[ELinks/0.12* (*OpenBSD*)] +Parent=ELinks 0.12 +Platform=OpenBSD + +[ELinks/0.12* (*OS/2*)] +Parent=ELinks 0.12 +Platform=OS/2 + +[ELinks/0.12* (*RISC*)] +Parent=ELinks 0.12 +Platform=RISC OS + +[ELinks/0.12* (*Solaris*)] +Parent=ELinks 0.12 +Platform=Solaris + +[ELinks/0.12* (*Unix*)] +Parent=ELinks 0.12 +Platform=Unix + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ELinks 0.9 + +[ELinks 0.9] +Parent=DefaultProperties +Browser=ELinks +Version=0.9 +MinorVer=9 +Frames=true +Tables=true + +[ELinks (0.9*; *AIX*)] +Parent=ELinks 0.9 +Platform=AIX + +[ELinks (0.9*; *BeOS*)] +Parent=ELinks 0.9 +Platform=BeOS + +[ELinks (0.9*; *CygWin*)] +Parent=ELinks 0.9 +Platform=CygWin + +[ELinks (0.9*; *Darwin*)] +Parent=ELinks 0.9 +Platform=Darwin + +[ELinks (0.9*; *Digital Unix*)] +Parent=ELinks 0.9 +Platform=Digital Unix + +[ELinks (0.9*; *FreeBSD*)] +Parent=ELinks 0.9 +Platform=FreeBSD + +[ELinks (0.9*; *HPUX*)] +Parent=ELinks 0.9 +Platform=HP-UX + +[ELinks (0.9*; *IRIX*)] +Parent=ELinks 0.9 +Platform=IRIX + +[ELinks (0.9*; *Linux*)] +Parent=ELinks 0.9 +Platform=Linux + +[ELinks (0.9*; *NetBSD*)] +Parent=ELinks 0.9 +Platform=NetBSD + +[ELinks (0.9*; *OpenBSD*)] +Parent=ELinks 0.9 +Platform=OpenBSD + +[ELinks (0.9*; *OS/2*)] +Parent=ELinks 0.9 +Platform=OS/2 + +[ELinks (0.9*; *RISC*)] +Parent=ELinks 0.9 +Platform=RISC OS + +[ELinks (0.9*; *Solaris*)] +Parent=ELinks 0.9 +Platform=Solaris + +[ELinks (0.9*; *Unix*)] +Parent=ELinks 0.9 +Platform=Unix + +[ELinks/0.9* (*AIX*)] +Parent=ELinks 0.9 +Platform=AIX + +[ELinks/0.9* (*BeOS*)] +Parent=ELinks 0.9 +Platform=BeOS + +[ELinks/0.9* (*CygWin*)] +Parent=ELinks 0.9 +Platform=CygWin + +[ELinks/0.9* (*Darwin*)] +Parent=ELinks 0.9 +Platform=Darwin + +[ELinks/0.9* (*Digital Unix*)] +Parent=ELinks 0.9 +Platform=Digital Unix + +[ELinks/0.9* (*FreeBSD*)] +Parent=ELinks 0.9 +Platform=FreeBSD + +[ELinks/0.9* (*HPUX*)] +Parent=ELinks 0.9 +Platform=HP-UX + +[ELinks/0.9* (*IRIX*)] +Parent=ELinks 0.9 +Platform=IRIX + +[ELinks/0.9* (*Linux*)] +Parent=ELinks 0.9 +Platform=Linux + +[ELinks/0.9* (*NetBSD*)] +Parent=ELinks 0.9 +Platform=NetBSD + +[ELinks/0.9* (*OpenBSD*)] +Parent=ELinks 0.9 +Platform=OpenBSD + +[ELinks/0.9* (*OS/2*)] +Parent=ELinks 0.9 +Platform=OS/2 + +[ELinks/0.9* (*RISC*)] +Parent=ELinks 0.9 +Platform=RISC OS + +[ELinks/0.9* (*Solaris*)] +Parent=ELinks 0.9 +Platform=Solaris + +[ELinks/0.9* (*Unix*)] +Parent=ELinks 0.9 +Platform=Unix + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; AppleWebKit + +[AppleWebKit] +Parent=DefaultProperties +Browser=AppleWebKit +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (KHTML, like Gecko)] +Parent=AppleWebKit + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Camino + +[Camino] +Parent=DefaultProperties +Browser=Camino +Platform=MacOSX +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (Macintosh; *Mac OS X*) Gecko/* Camino/0.7*] +Parent=Camino +Version=0.7 +MajorVer=0 +MinorVer=7 +Beta=true + +[Mozilla/5.0 (Macintosh; *Mac OS X*) Gecko/* Camino/0.8*] +Parent=Camino +Version=0.8 +MajorVer=0 +MinorVer=8 +Beta=true + +[Mozilla/5.0 (Macintosh; *Mac OS X*) Gecko/* Camino/0.9*] +Parent=Camino +Version=0.9 +MajorVer=0 +MinorVer=9 +Beta=true + +[Mozilla/5.0 (Macintosh; *Mac OS X*) Gecko/* Camino/1.0*] +Parent=Camino +Version=1.0 +MajorVer=1 +MinorVer=0 + +[Mozilla/5.0 (Macintosh; *Mac OS X*) Gecko/* Camino/1.2*] +Parent=Camino +Version=1.2 +MajorVer=1 +MinorVer=2 + +[Mozilla/5.0 (Macintosh; *Mac OS X*) Gecko/* Camino/1.3*] +Parent=Camino +Version=1.3 +MajorVer=1 +MinorVer=3 +Platform=MacOSX + +[Mozilla/5.0 (Macintosh; *Mac OS X*) Gecko/* Camino/1.4*] +Parent=Camino +Version=1.4 +MajorVer=1 +MinorVer=4 +Platform=MacOSX + +[Mozilla/5.0 (Macintosh; *Mac OS X*) Gecko/* Camino/1.5*] +Parent=Camino +Version=1.5 +MajorVer=1 +MinorVer=5 +Platform=MacOSX + +[Mozilla/5.0 (Macintosh; *Mac OS X*) Gecko/* Camino/1.6*] +Parent=Camino +Version=1.6 +MajorVer=1 +MinorVer=6 +Platform=MacOSX + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chimera + +[Chimera] +Parent=DefaultProperties +Browser=Chimera +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true + +[Mozilla/5.0 (Macintosh; U; *Mac OS X*; *; rv:1.*) Gecko/* Chimera/*] +Parent=Chimera +Platform=MacOSX + +[Mozilla/5.0 Gecko/* Chimera/*] +Parent=Chimera + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Dillo + +[Dillo] +Parent=DefaultProperties +Browser=Dillo +Platform=Linux +Frames=true +IFrames=true +Tables=true +Cookies=true +CssVersion=2 +supportsCSS=true + +[Dillo/0.6*] +Parent=Dillo +Version=0.6 +MajorVer=0 +MinorVer=6 + +[Dillo/0.7*] +Parent=Dillo +Version=0.7 +MajorVer=0 +MinorVer=7 + +[Dillo/0.8*] +Parent=Dillo +Version=0.8 +MajorVer=0 +MinorVer=8 + +[Dillo/2.0] +Parent=Dillo +Version=2.0 +MajorVer=2 +MinorVer=0 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Emacs/W3 + +[Emacs/W3] +Parent=DefaultProperties +Browser=Emacs/W3 +Frames=true +Tables=true +Cookies=true + +[Emacs/W3/2.* (Unix*] +Parent=Emacs/W3 +Version=2.0 +MajorVer=2 +MinorVer=0 +Platform=Unix + +[Emacs/W3/2.* (X11*] +Parent=Emacs/W3 +Version=2.0 +MajorVer=2 +MinorVer=0 +Platform=Linux + +[Emacs/W3/3.* (Unix*] +Parent=Emacs/W3 +Version=3.0 +MajorVer=3 +MinorVer=0 +Platform=Unix + +[Emacs/W3/3.* (X11*] +Parent=Emacs/W3 +Version=3.0 +MajorVer=3 +MinorVer=0 +Platform=Linux + +[Emacs/W3/4.* (Unix*] +Parent=Emacs/W3 +Version=4.0 +MajorVer=4 +MinorVer=0 +Platform=Unix + +[Emacs/W3/4.* (X11*] +Parent=Emacs/W3 +Version=4.0 +MajorVer=4 +MinorVer=0 +Platform=Linux + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; fantomas + +[fantomas] +Parent=DefaultProperties +Browser=fantomas +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaScript=true + +[Mozilla/4.0 (cloakBrowser)] +Parent=fantomas +Browser=fantomas cloakBrowser + +[Mozilla/4.0 (fantomas shadowMaker Browser)] +Parent=fantomas +Browser=fantomas shadowMaker Browser + +[Mozilla/4.0 (fantomBrowser)] +Parent=fantomas +Browser=fantomas fantomBrowser + +[Mozilla/4.0 (fantomCrew Browser)] +Parent=fantomas +Browser=fantomas fantomCrew Browser + +[Mozilla/4.0 (stealthBrowser)] +Parent=fantomas +Browser=fantomas stealthBrowser + +[multiBlocker browser*] +Parent=fantomas +Browser=fantomas multiBlocker browser + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; FrontPage + +[FrontPage] +Parent=DefaultProperties +Browser=FrontPage +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaScript=true + +[Mozilla/?* (compatible; MS FrontPage*)] +Parent=FrontPage + +[MSFrontPage/*] +Parent=FrontPage + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Galeon + +[Galeon] +Parent=DefaultProperties +Browser=Galeon +Platform=Linux +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (X11; U; Linux*) Gecko/* Galeon/1.*] +Parent=Galeon +Version=1.0 +MajorVer=1 +MinorVer=0 + +[Mozilla/5.0 (X11; U; Linux*) Gecko/* Galeon/2.*] +Parent=Galeon +Version=2.0 +MajorVer=2 +MinorVer=0 + +[Mozilla/5.0 Galeon/1.* (X11; Linux*)*] +Parent=Galeon +Version=1.0 +MajorVer=1 +MinorVer=0 + +[Mozilla/5.0 Galeon/2.* (X11; Linux*)*] +Parent=Galeon +Version=2.0 +MajorVer=2 +MinorVer=0 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; HP Secure Web Browser + +[HP Secure Web Browser] +Parent=DefaultProperties +Browser=HP Secure Web Browser +Platform=OpenVMS +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (X11; U; OpenVMS*; *; rv:1.0*) Gecko/*] +Parent=HP Secure Web Browser +Version=1.0 +MajorVer=1 +MinorVer=0 + +[Mozilla/5.0 (X11; U; OpenVMS*; *; rv:1.1*) Gecko/*] +Parent=HP Secure Web Browser +Version=1.1 +MajorVer=1 +MinorVer=1 + +[Mozilla/5.0 (X11; U; OpenVMS*; *; rv:1.2*) Gecko/*] +Parent=HP Secure Web Browser +Version=1.2 +MajorVer=1 +MinorVer=2 + +[Mozilla/5.0 (X11; U; OpenVMS*; *; rv:1.3*) Gecko/*] +Parent=HP Secure Web Browser +Version=1.3 +MajorVer=1 +MinorVer=3 + +[Mozilla/5.0 (X11; U; OpenVMS*; *; rv:1.4*) Gecko/*] +Parent=HP Secure Web Browser +Version=1.4 +MajorVer=1 +MinorVer=4 + +[Mozilla/5.0 (X11; U; OpenVMS*; *; rv:1.5*) Gecko/*] +Parent=HP Secure Web Browser +Version=1.5 +MajorVer=1 +MinorVer=5 + +[Mozilla/5.0 (X11; U; OpenVMS*; *; rv:1.6*) Gecko/*] +Parent=HP Secure Web Browser +Version=1.6 +MajorVer=1 +MinorVer=6 + +[Mozilla/5.0 (X11; U; OpenVMS*; *; rv:1.7*) Gecko/*] +Parent=HP Secure Web Browser +Version=1.7 +MajorVer=1 +MinorVer=7 + +[Mozilla/5.0 (X11; U; OpenVMS*; *; rv:1.8*) Gecko/*] +Parent=HP Secure Web Browser +Version=1.8 +MajorVer=1 +MinorVer=8 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IBrowse + +[IBrowse] +Parent=DefaultProperties +Browser=IBrowse +Platform=Amiga +Frames=true +Tables=true +Cookies=true +JavaScript=true + +[Arexx (compatible; MSIE 6.0; AmigaOS5.0) IBrowse 4.0] +Parent=IBrowse +Version=4.0 +MajorVer=4 +MinorVer=0 + +[IBrowse/1.22 (AmigaOS *)] +Parent=IBrowse +Version=1.22 +MajorVer=1 +MinorVer=22 + +[IBrowse/2.1 (AmigaOS *)] +Parent=IBrowse +Version=2.1 +MajorVer=2 +MinorVer=1 + +[IBrowse/2.2 (AmigaOS *)] +Parent=IBrowse +Version=2.2 +MajorVer=2 +MinorVer=2 + +[IBrowse/2.3 (AmigaOS *)] +Parent=IBrowse +Version=2.2 +MajorVer=2 +MinorVer=3 + +[Mozilla/* (Win98; I) IBrowse/2.1 (AmigaOS 3.1)] +Parent=IBrowse +Version=2.1 +MajorVer=2 +MinorVer=1 + +[Mozilla/* (Win98; I) IBrowse/2.2 (AmigaOS 3.1)] +Parent=IBrowse +Version=2.2 +MajorVer=2 +MinorVer=2 + +[Mozilla/* (Win98; I) IBrowse/2.3 (AmigaOS 3.1)] +Parent=IBrowse +Version=2.3 +MajorVer=2 +MinorVer=3 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; iCab + +[iCab] +Parent=DefaultProperties +Browser=iCab +Frames=true +Tables=true +Cookies=true +JavaScript=true +CssVersion=1 +supportsCSS=true + +[iCab/2.7* (Macintosh; ?; 68K*)] +Parent=iCab +Version=2.7 +MajorVer=2 +MinorVer=7 +Platform=Mac68K + +[iCab/2.7* (Macintosh; ?; PPC*)] +Parent=iCab +Version=2.7 +MajorVer=2 +MinorVer=7 +Platform=MacPPC + +[iCab/2.8* (Macintosh; ?; *Mac OS X*)] +Parent=iCab +Version=2.8 +MajorVer=2 +MinorVer=8 +Platform=MacOSX + +[iCab/2.8* (Macintosh; ?; 68K*)] +Parent=iCab +Version=2.8 +MajorVer=2 +MinorVer=8 +Platform=Mac68K + +[iCab/2.8* (Macintosh; ?; PPC)] +Parent=iCab +Version=2.8 +MajorVer=2 +MinorVer=8 +Platform=MacPPC + +[iCab/2.9* (Macintosh; ?; *Mac OS X*)] +Parent=iCab +Version=2.9 +MajorVer=2 +MinorVer=9 +Platform=MacOSX + +[iCab/2.9* (Macintosh; ?; 68K*)] +Parent=iCab +Version=2.9 +MajorVer=2 +MinorVer=9 +Platform=Mac68K + +[iCab/2.9* (Macintosh; ?; PPC*)] +Parent=iCab +Version=2.9 +MajorVer=2 +MinorVer=9 +Platform=MacPPC + +[iCab/3.0* (Macintosh; ?; *Mac OS X*)] +Parent=iCab +Version=3.0 +MajorVer=3 +MinorVer=0 +Platform=MacOSX +CssVersion=2 +supportsCSS=true + +[iCab/3.0* (Macintosh; ?; PPC*)] +Parent=iCab +Version=3.0 +MajorVer=3 +MinorVer=0 +Platform=MacPPC +CssVersion=2 +supportsCSS=true + +[iCab/4.0 (Macintosh; U; *Mac OS X)] +Parent=iCab +Version=4.0 +MajorVer=4 +MinorVer=0 +Platform=MacOSX + +[Mozilla/* (compatible; iCab 3.0*; Macintosh; *Mac OS X*)] +Parent=iCab +Version=3.0 +MajorVer=3 +MinorVer=0 +Platform=MacOSX +CssVersion=2 +supportsCSS=true + +[Mozilla/* (compatible; iCab 3.0*; Macintosh; ?; PPC*)] +Parent=iCab +Version=3.0 +MajorVer=3 +MinorVer=0 +Platform=MacPPC +CssVersion=2 +supportsCSS=true + +[Mozilla/4.5 (compatible; iCab 2.7*; Macintosh; ?; 68K*)] +Parent=iCab +Version=2.7 +MajorVer=2 +MinorVer=7 +Platform=Mac68K + +[Mozilla/4.5 (compatible; iCab 2.7*; Macintosh; ?; PPC*)] +Parent=iCab +Version=2.7 +MajorVer=2 +MinorVer=7 +Platform=MacPPC + +[Mozilla/4.5 (compatible; iCab 2.8*; Macintosh; ?; *Mac OS X*)] +Parent=iCab +Version=2.8 +MajorVer=2 +MinorVer=8 +Platform=MacOSX + +[Mozilla/4.5 (compatible; iCab 2.8*; Macintosh; ?; PPC*)] +Parent=iCab +Version=2.8 +MajorVer=2 +MinorVer=8 +Platform=MacPPC + +[Mozilla/4.5 (compatible; iCab 2.9*; Macintosh; *Mac OS X*)] +Parent=iCab +Version=2.9 +MajorVer=2 +MinorVer=9 +Platform=MacOSX + +[Mozilla/4.5 (compatible; iCab 2.9*; Macintosh; ?; PPC*)] +Parent=iCab +Version=2.9 +MajorVer=2 +MinorVer=9 +Platform=MacPPC + +[Mozilla/4.5 (compatible; iCab 4.2*; Macintosh; *Mac OS X*)] +Parent=iCab +Version=4.2 +MajorVer=4 +MinorVer=2 +Platform=MacOSX + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; iSiloX + +[iSiloX] +Parent=DefaultProperties +Browser=iSiloX +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaScript=true +Crawler=true +CssVersion=2 +supportsCSS=true + +[iSiloX/4.0* MacOS] +Parent=iSiloX +Version=4.0 +MajorVer=4 +MinorVer=0 +Platform=MacPPC + +[iSiloX/4.0* Windows/32] +Parent=iSiloX +Version=4.0 +MajorVer=4 +MinorVer=0 +Platform=Win32 +Win32=true + +[iSiloX/4.1* MacOS] +Parent=iSiloX +Version=4.1 +MajorVer=4 +MinorVer=1 +Platform=MacPPC + +[iSiloX/4.1* Windows/32] +Parent=iSiloX +Version=4.1 +MajorVer=4 +MinorVer=1 +Platform=Win32 +Win32=true + +[iSiloX/4.2* MacOS] +Parent=iSiloX +Version=4.2 +MajorVer=4 +MinorVer=2 +Platform=MacPPC + +[iSiloX/4.2* Windows/32] +Parent=iSiloX +Version=4.2 +MajorVer=4 +MinorVer=2 +Platform=Win32 +Win32=true + +[iSiloX/4.3* MacOS] +Parent=iSiloX +Version=4.3 +MajorVer=4 +MinorVer=4 +Platform=MacOSX + +[iSiloX/4.3* Windows/32] +Parent=iSiloX +Version=4.3 +MajorVer=4 +MinorVer=3 +Platform=Win32 +Win32=true + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Lycoris Desktop/LX + +[Lycoris Desktop/LX] +Parent=DefaultProperties +Browser=Lycoris Desktop/LX +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +Crawler=true + +[Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.*: Desktop/LX Amethyst) Gecko/*] +Parent=Lycoris Desktop/LX +Version=1.1 +MajorVer=1 +MinorVer=1 +Platform=Linux + +[Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.*; Desktop/LX Amethyst) Gecko/*] +Parent=Lycoris Desktop/LX +Version=1.0 +MajorVer=1 +MinorVer=0 +Platform=Linux + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mosaic + +[Mosaic] +Parent=DefaultProperties +Browser=Mosaic +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true + +[Mozilla/4.0 (VMS_Mosaic)] +Parent=Mosaic +Platform=OpenVMS + +[VMS_Mosaic/3.7*] +Parent=Mosaic +Version=3.7 +MajorVer=3 +MinorVer=7 +Platform=OpenVMS + +[VMS_Mosaic/3.8*] +Parent=Mosaic +Version=3.8 +MajorVer=3 +MinorVer=8 +Platform=OpenVMS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; NetPositive + +[NetPositive] +Parent=DefaultProperties +Browser=NetPositive +Platform=BeOS +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true + +[*NetPositive/2.2*] +Parent=NetPositive +Version=2.2 +MajorVer=2 +MinorVer=2 + +[*NetPositive/2.2*BeOS*] +Parent=NetPositive +Version=2.2 +MajorVer=2 +MinorVer=2 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; OmniWeb + +[OmniWeb] +Parent=DefaultProperties +Browser=OmniWeb +Platform=MacOSX +Frames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +isMobileDevice=true +CssVersion=2 +supportsCSS=true + +[Mozilla/* (Macintosh; ?; *Mac OS X; *) AppleWebKit/* (*) OmniWeb/v4*] +Parent=OmniWeb +Version=4.5 +MajorVer=4 +MinorVer=5 +Platform=MacOSX + +[Mozilla/* (Macintosh; ?; *Mac OS X; *) AppleWebKit/* (*) OmniWeb/v5*] +Parent=OmniWeb +Version=5. +MajorVer=5 +MinorVer=0 +Platform=MacOSX + +[Mozilla/* (Macintosh; ?; *Mac OS X; *) AppleWebKit/* (*) OmniWeb/v6*] +Parent=OmniWeb +Version=6.0 +MajorVer=6 +MinorVer=0 +Platform=MacOSX + +[Mozilla/* (Macintosh; ?; PPC) OmniWeb/4*] +Parent=OmniWeb +Version=4.0 +MajorVer=4 +MinorVer=0 +Platform=MacPPC + +[Mozilla/* (Macintosh; ?; PPC) OmniWeb/5*] +Parent=OmniWeb +Version=5.0 +MajorVer=5 +MinorVer=0 +Platform=MacOSX + +[Mozilla/* (Macintosh; ?; PPC) OmniWeb/6*] +Parent=OmniWeb +Version=6.0 +MajorVer=6 +MinorVer=0 +Platform=MacPPC + +[Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/125.4 (KHTML, like Gecko, Safari) OmniWeb/v563.34] +Parent=OmniWeb +Version=5.1 +MajorVer=5 +MinorVer=1 + +[Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/125.4 (KHTML, like Gecko, Safari) OmniWeb/v563.34] +Parent=OmniWeb +Version=5.1 +MajorVer=5 +MinorVer=1 + +[Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/420+ (KHTML, like Gecko, Safari/420) OmniWeb/v607] +Parent=OmniWeb +Version=5.5 +MajorVer=5 +MinorVer=5 + +[Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/420+ (KHTML, like Gecko, Safari/420) OmniWeb/v607] +Parent=OmniWeb +Version=5.5 +MajorVer=5 +MinorVer=5 + +[Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/522+ (KHTML, like Gecko, Safari/522) OmniWeb/v613] +Parent=OmniWeb +Version=5.6 +MajorVer=5 +MinorVer=6 + +[Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/522+ (KHTML, like Gecko, Safari/522) OmniWeb/v613] +Parent=OmniWeb +Version=5.6 +MajorVer=5 +MinorVer=6 + +[Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/85 (KHTML, like Gecko) OmniWeb/v496] +Parent=OmniWeb +Version=4.5 +MajorVer=4 +MinorVer=5 + +[Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/85 (KHTML, like Gecko) OmniWeb/v558.36 ] +Parent=OmniWeb +Version=5.0 +MajorVer=5 +MinorVer=0 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Shiira + +[Shiira] +Parent=DefaultProperties +Browser=Shiira +Platform=MacOSX +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Shiira/0.9*] +Parent=Shiira +Version=0.9 +MajorVer=0 +MinorVer=9 + +[Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Shiira/1.0*] +Parent=Shiira +Version=1.0 +MajorVer=1 +MinorVer=0 + +[Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Shiira/1.1*] +Parent=Shiira +Version=1.1 +MajorVer=1 +MinorVer=1 + +[Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Shiira/1.2*] +Parent=Shiira +Version=1.2 +MajorVer=1 +MinorVer=2 + +[Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Shiira/2.1*] +Parent=Shiira +Version=2.1 +MajorVer=2 +MinorVer=1 + +[Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Shiira/2.2*] +Parent=Shiira +Version=2.2 +MajorVer=2 +MinorVer=2 + +[Windows Maker] +Parent=DefaultProperties +Browser=WMaker +Platform=Linux +Frames=true +IFrames=true +Tables=true +Cookies=true +VBScript=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[WMaker*] +Parent=Windows Maker + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; K-Meleon 1.0 + +[K-Meleon 1.0] +Parent=DefaultProperties +Browser=K-Meleon +Version=1.0 +MajorVer=1 +Win32=true +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (Windows; *; Win95; *; rv:1.*) Gecko/* K-Meleon/1.0*] +Parent=K-Meleon 1.0 +Version=1.0 +MajorVer=1 +MinorVer=0 +Platform=Win95 +Win32=true + +[Mozilla/5.0 (Windows; *; Win98; *; rv:1.*) Gecko/* K-Meleon/1.0*] +Parent=K-Meleon 1.0 +Version=1.0 +MajorVer=1 +MinorVer=0 +Platform=Win98 +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.0; *; rv:1.*) Gecko/* K-Meleon?1.0*] +Parent=K-Meleon 1.0 +Version=1.0 +MajorVer=1 +MinorVer=0 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.1; *; rv:1.*) Gecko/* K-Meleon/1.0*] +Parent=K-Meleon 1.0 +Version=1.0 +MajorVer=1 +MinorVer=0 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.2; *; rv:1.*) Gecko/* K-Meleon/1.0*] +Parent=K-Meleon 1.0 +Version=1.0 +MajorVer=1 +MinorVer=0 +Platform=Win2003 +Win32=true + +[Mozilla/5.0 (Windows; *; WinNT4.0; *; rv:1.*) Gecko/* K-Meleon/1.0*] +Parent=K-Meleon 1.0 +Version=1.0 +MajorVer=1 +MinorVer=0 +Platform=WinNT +Win32=true + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; K-Meleon 1.1 + +[K-Meleon 1.1] +Parent=DefaultProperties +Browser=K-Meleon +Version=1.1 +MajorVer=1 +MinorVer=1 +Win32=true +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (Windows; *; Win95; *; rv:1.*) Gecko/* K-Meleon/1.1*] +Parent=K-Meleon 1.1 +Version=1.0 +MajorVer=1 +MinorVer=0 +Platform=Win95 +Win32=true + +[Mozilla/5.0 (Windows; *; Win98; *; rv:1.*) Gecko/* K-Meleon/1.1*] +Parent=K-Meleon 1.1 +Version=1.0 +MajorVer=1 +MinorVer=0 +Platform=Win98 +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.0; *; rv:1.*) Gecko/* K-Meleon?1.1*] +Parent=K-Meleon 1.1 +Version=1.0 +MajorVer=1 +MinorVer=0 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.1; *; rv:1.*) Gecko/* K-Meleon/1.1*] +Parent=K-Meleon 1.1 +Version=1.0 +MajorVer=1 +MinorVer=0 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.2; *; rv:1.*) Gecko/* K-Meleon/1.1*] +Parent=K-Meleon 1.1 +Version=1.0 +MajorVer=1 +MinorVer=0 +Platform=Win2003 +Win32=true + +[Mozilla/5.0 (Windows; *; WinNT4.0; *; rv:1.*) Gecko/* K-Meleon/1.1*] +Parent=K-Meleon 1.1 +Version=1.0 +MajorVer=1 +MinorVer=0 +Platform=WinNT +Win32=true + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; K-Meleon 1.5 + +[K-Meleon 1.5] +Parent=DefaultProperties +Browser=K-Meleon +Version=1.5 +MajorVer=1 +MinorVer=5 +Win32=true +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (Windows; *; Win95; *; rv:1.*) Gecko/* K-Meleon/1.5*] +Parent=K-Meleon 1.5 +Version=1.0 +MajorVer=1 +MinorVer=0 +Platform=Win95 +Win32=true + +[Mozilla/5.0 (Windows; *; Win98; *; rv:1.*) Gecko/* K-Meleon/1.5*] +Parent=K-Meleon 1.5 +Version=1.0 +MajorVer=1 +MinorVer=0 +Platform=Win98 +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.0; *; rv:1.*) Gecko/* K-Meleon?1.5*] +Parent=K-Meleon 1.5 +Version=1.0 +MajorVer=1 +MinorVer=0 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.1; *; rv:1.*) Gecko/* K-Meleon/1.5*] +Parent=K-Meleon 1.5 +Version=1.0 +MajorVer=1 +MinorVer=0 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.2; *; rv:1.*) Gecko/* K-Meleon/1.5*] +Parent=K-Meleon 1.5 +Version=1.0 +MajorVer=1 +MinorVer=0 +Platform=Win2003 +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 6.0; *; rv:1.*) Gecko/* K-Meleon/1.5*] +Parent=K-Meleon 1.5 +Platform=WinVista + +[Mozilla/5.0 (Windows; *; Windows NT 6.1; *; rv:1.*) Gecko/* K-Meleon/1.5*] +Parent=K-Meleon 1.5 +Platform=Win7 + +[Mozilla/5.0 (Windows; *; WinNT4.0; *; rv:1.*) Gecko/* K-Meleon/1.5*] +Parent=K-Meleon 1.5 +Version=1.0 +MajorVer=1 +MinorVer=0 +Platform=WinNT +Win32=true + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Konqueror 3.0 + +[Konqueror 3.0] +Parent=DefaultProperties +Browser=Konqueror +Platform=Linux +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[*Konqueror/3.0*] +Parent=Konqueror 3.0 +Version=3.0 +MajorVer=3 +MinorVer=0 +IFrames=false + +[*Konqueror/3.0*FreeBSD*] +Parent=Konqueror 3.0 +Version=3.0 +MajorVer=3 +MinorVer=0 +Platform=FreeBSD +IFrames=false + +[*Konqueror/3.0*Linux*] +Parent=Konqueror 3.0 +Version=3.0 +MajorVer=3 +MinorVer=0 +Platform=Linux +IFrames=false + +[*Konqueror/3.1*] +Parent=Konqueror 3.0 +Version=3.1 +MajorVer=3 +MinorVer=1 + +[*Konqueror/3.1*FreeBSD*] +Parent=Konqueror 3.0 +Version=3.1 +MajorVer=3 +MinorVer=1 +Platform=FreeBSD + +[*Konqueror/3.1*Linux*] +Parent=Konqueror 3.0 +Version=3.1 +MajorVer=3 +MinorVer=1 + +[*Konqueror/3.2*] +Parent=Konqueror 3.0 +Version=3.2 +MajorVer=3 +MinorVer=2 + +[*Konqueror/3.2*FreeBSD*] +Parent=Konqueror 3.0 +Version=3.2 +MajorVer=3 +MinorVer=2 +Platform=FreeBSD + +[*Konqueror/3.2*Linux*] +Parent=Konqueror 3.0 +Version=3.2 +MajorVer=3 +MinorVer=2 +Platform=Linux + +[*Konqueror/3.3*] +Parent=Konqueror 3.0 +Version=3.3 +MajorVer=3 +MinorVer=3 + +[*Konqueror/3.3*FreeBSD*] +Parent=Konqueror 3.0 +Version=3.3 +MajorVer=3 +MinorVer=3 +Platform=FreeBSD + +[*Konqueror/3.3*Linux*] +Parent=Konqueror 3.0 +Version=3.3 +MajorVer=3 +MinorVer=3 +Platform=Linux + +[*Konqueror/3.3*OpenBSD*] +Parent=Konqueror 3.0 +Version=3.3 +MajorVer=3 +MinorVer=3 +Platform=OpenBSD + +[*Konqueror/3.4*] +Parent=Konqueror 3.0 +Version=3.4 +MajorVer=3 +MinorVer=4 + +[*Konqueror/3.4*FreeBSD*] +Parent=Konqueror 3.0 +Version=3.4 +MajorVer=3 +MinorVer=4 +Platform=FreeBSD + +[*Konqueror/3.4*Linux*] +Parent=Konqueror 3.0 +Version=3.4 +MajorVer=3 +MinorVer=4 +Platform=Linux + +[*Konqueror/3.4*OpenBSD*] +Parent=Konqueror 3.0 +Version=3.4 +MajorVer=3 +MinorVer=4 +Platform=OpenBSD + +[*Konqueror/3.5*] +Parent=Konqueror 3.0 +Version=3.5 +MajorVer=3 +MinorVer=5 + +[*Konqueror/3.5*FreeBSD*] +Parent=Konqueror 3.0 +Version=3.5 +MajorVer=3 +MinorVer=5 +Platform=FreeBSD + +[*Konqueror/3.5*Linux*] +Parent=Konqueror 3.0 +Version=3.5 +MajorVer=3 +MinorVer=5 +Platform=Linux + +[*Konqueror/3.5*OpenBSD*] +Parent=Konqueror 3.0 +Version=3.5 +MajorVer=3 +MinorVer=5 +Platform=OpenBSD + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Konqueror 4.0 + +[Konqueror 4.0] +Parent=DefaultProperties +Browser=Konqueror +Version=4.0 +MajorVer=4 +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (compatible; Konqueror/4.0*; Debian) KHTML/4.* (like Gecko)] +Parent=Konqueror 4.0 +Platform=Debian + +[Mozilla/5.0 (compatible; Konqueror/4.0.*; *Linux) KHTML/4.* (like Gecko)] +Parent=Konqueror 4.0 +Platform=Linux + +[Mozilla/5.0 (compatible; Konqueror/4.0.*; FreeBSD) KHTML/4.* (like Gecko)] +Parent=Konqueror 4.0 +Platform=FreeBSD + +[Mozilla/5.0 (compatible; Konqueror/4.0.*; NetBSD) KHTML/4.* (like Gecko)] +Parent=Konqueror 4.0 +Platform=NetBSD + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Konqueror 4.1 + +[Konqueror 4.1] +Parent=DefaultProperties +Browser=Konqueror +Version=4.1 +MajorVer=4 +MinorVer=1 +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (compatible; Konqueror/4.1*; *Linux*) KHTML/4.* (like Gecko)*] +Parent=Konqueror 4.1 +Platform=Linux + +[Mozilla/5.0 (compatible; Konqueror/4.1*; Debian) KHTML/4.* (like Gecko)*] +Parent=Konqueror 4.1 +Platform=Debian + +[Mozilla/5.0 (compatible; Konqueror/4.1*; FreeBSD) KHTML/4.* (like Gecko)*] +Parent=Konqueror 4.1 +Platform=FreeBSD + +[Mozilla/5.0 (compatible; Konqueror/4.1*; NetBSD) KHTML/4.* (like Gecko)*] +Parent=Konqueror 4.1 +Platform=NetBSD + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Konqueror 4.2 + +[Konqueror 4.2] +Parent=DefaultProperties +Browser=Konqueror +Version=4.2 +MajorVer=4 +MinorVer=2 +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (compatible; Konqueror/4.2*; *Linux*) KHTML/4.* (like Gecko)*] +Parent=Konqueror 4.2 +Platform=Linux + +[Mozilla/5.0 (compatible; Konqueror/4.2*; Debian) KHTML/4.* (like Gecko)*] +Parent=Konqueror 4.2 +Platform=Debian + +[Mozilla/5.0 (compatible; Konqueror/4.2*; FreeBSD) KHTML/4.* (like Gecko)*] +Parent=Konqueror 4.2 +Platform=FreeBSD + +[Mozilla/5.0 (compatible; Konqueror/4.2*; NetBSD) KHTML/4.* (like Gecko)*] +Parent=Konqueror 4.2 +Platform=NetBSD + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Safari + +[Safari] +Parent=DefaultProperties +Browser=Safari +Platform=MacOSX +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true +ecmascriptversion=1.3 +w3cdomversion=1.0 + +[Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Safari/100*] +Parent=Safari +Version=1.1 +MajorVer=1 +MinorVer=1 + +[Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Safari/125*] +Parent=Safari +Version=1.2 +MajorVer=1 +MinorVer=2 + +[Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Safari/312*] +Parent=Safari +Version=1.3 +MajorVer=1 +MinorVer=3 + +[Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Safari/412*] +Parent=Safari +Version=2.0 +MajorVer=2 +MinorVer=0 + +[Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Safari/416*] +Parent=Safari +Version=2.0 +MajorVer=2 +MinorVer=0 + +[Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Safari/417*] +Parent=Safari +Version=2.0 +MajorVer=2 +MinorVer=0 + +[Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Safari/418*] +Parent=Safari +Version=2.0 +MajorVer=2 +MinorVer=0 + +[Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Safari/419*] +Parent=Safari +Version=2.0 +MajorVer=2 +MinorVer=0 + +[Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Safari/52*] +Parent=Safari +Beta=true + +[Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Safari/85*] +Parent=Safari +Version=1.0 +MajorVer=1 +MinorVer=0 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Safari 3.0 + +[Safari 3.0] +Parent=DefaultProperties +Browser=Safari +Version=3.0 +MajorVer=3 +Platform=MacOSX +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (Macintosh; ?; *Mac OS X*) AppleWebKit/* (*) Version/3.0* Safari/*] +Parent=Safari 3.0 +Platform=MacOSX + +[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *) AppleWebKit/* (*) Version/3.0* Safari/*] +Parent=Safari 3.0 +Platform=WinXP + +[Mozilla/5.0 (Windows; ?; Windows NT 5.2; *) AppleWebKit/* (*) Version/3.0* Safari/*] +Parent=Safari 3.0 +Platform=Win2003 + +[Mozilla/5.0 (Windows; ?; Windows NT 6.0; *) AppleWebKit/* (*) Version/3.0* Safari/*] +Parent=Safari 3.0 +Platform=WinVista + +[Mozilla/5.0 (Windows; ?; Windows NT 6.1; *) AppleWebKit/* (*) Version/3.0* Safari/*] +Parent=Safari 3.0 +Platform=Win7 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Safari 3.1 + +[Safari 3.1] +Parent=DefaultProperties +Browser=Safari +Version=3.1 +MajorVer=3 +MinorVer=1 +Platform=MacOSX +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (Macintosh; ?; *Mac OS X*) AppleWebKit/* (*) Version/3.1* Safari/*] +Parent=Safari 3.1 +Platform=MacOSX + +[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *) AppleWebKit/* (*) Version/3.1* Safari/*] +Parent=Safari 3.1 +Platform=WinXP + +[Mozilla/5.0 (Windows; ?; Windows NT 5.2; *) AppleWebKit/* (*) Version/3.1* Safari/*] +Parent=Safari 3.1 +Platform=Win2003 + +[Mozilla/5.0 (Windows; ?; Windows NT 6.0; *) AppleWebKit/* (*) Version/3.1* Safari/*] +Parent=Safari 3.1 +Platform=WinVista + +[Mozilla/5.0 (Windows; ?; Windows NT 6.1; *) AppleWebKit/* (*) Version/3.1* Safari/*] +Parent=Safari 3.1 +Platform=Win7 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Safari 3.2 + +[Safari 3.2] +Parent=DefaultProperties +Browser=Safari +Version=3.2 +MajorVer=3 +MinorVer=2 +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +JavaApplets=true +JavaScript=true +CssVersion=3 +supportsCSS=true + +[Mozilla/5.0 (Macintosh; ?; *Mac OS X*) AppleWebKit/* (*) Version/3.2* Safari/*] +Parent=Safari 3.2 +Platform=MacOSX + +[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *) AppleWebKit/* (*) Version/3.2* Safari/*] +Parent=Safari 3.2 +Platform=WinXP + +[Mozilla/5.0 (Windows; ?; Windows NT 5.2; *) AppleWebKit/* (*) Version/3.2* Safari/*] +Parent=Safari 3.2 +Platform=Win2003 + +[Mozilla/5.0 (Windows; ?; Windows NT 6.0; *) AppleWebKit/* (*) Version/3.2* Safari/*] +Parent=Safari 3.2 +Platform=WinVista + +[Mozilla/5.0 (Windows; ?; Windows NT 6.1; *) AppleWebKit/* (*) Version/3.2* Safari/*] +Parent=Safari 3.2 +Platform=Win7 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Safari 4.0 + +[Safari 4.0] +Parent=DefaultProperties +Browser=Safari +Version=4.0 +MajorVer=4 +Beta=true +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +JavaApplets=true +JavaScript=true +CssVersion=3 +supportsCSS=true + +[Mozilla/5.0 (Macintosh; ?; *Mac OS X*; *) AppleWebKit/* (KHTML, like Gecko) Version/4.0* Safari/*] +Parent=Safari 4.0 +Platform=MacOSX + +[Mozilla/5.0 (Macintosh; U; *Mac OS X*; *) AppleWebKit/* (KHTML, like Gecko) Version/4 Public Beta Safari/*] +Parent=Safari 4.0 + +[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *) AppleWebKit/* (*) Version/4 Public Beta Safari/*] +Parent=Safari 4.0 +Platform=WinXP + +[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *) AppleWebKit/* (*) Version/4.0* Safari/*] +Parent=Safari 4.0 +Platform=WinXP + +[Mozilla/5.0 (Windows; ?; Windows NT 5.2; *) AppleWebKit/* (*) Version/4 Public Beta Safari/*] +Parent=Safari 4.0 +Platform=Win2003 + +[Mozilla/5.0 (Windows; ?; Windows NT 5.2; *) AppleWebKit/* (*) Version/4.0* Safari/*] +Parent=Safari 4.0 +Platform=Win2003 + +[Mozilla/5.0 (Windows; ?; Windows NT 6.0; *) AppleWebKit/* (*) Version/4 Public Beta Safari/*] +Parent=Safari 4.0 +Platform=WinVista + +[Mozilla/5.0 (Windows; ?; Windows NT 6.0; *) AppleWebKit/* (*) Version/4.0* Safari/*] +Parent=Safari 4.0 +Platform=WinVista + +[Mozilla/5.0 (Windows; ?; Windows NT 6.1; *) AppleWebKit/* (*) Version/4 Public Beta Safari/*] +Parent=Safari 4.0 +Platform=Win7 + +[Mozilla/5.0 (Windows; ?; Windows NT 6.1; *) AppleWebKit/* (*) Version/4.0* Safari/*] +Parent=Safari 4.0 +Platform=Win7 + +[Mozilla/5.0 (Windows; ?; Windows NT 7.0; *) AppleWebKit/* (*) Version/4 Public Beta Safari/*] +Parent=Safari 4.0 +Platform=Win7 + +[Mozilla/5.0 (Windows; ?; Windows NT 7.0; *) AppleWebKit/* (*) Version/4.0* Safari/*] +Parent=Safari 4.0 +Platform=Win7 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 10.0 + +[Opera 10.0] +Parent=DefaultProperties +Browser=Opera +Version=10.0 +MajorVer=10 +Alpha=true +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/* (compatible; MSIE*; Linux*) Opera 10.0*] +Parent=Opera 10.0 +Platform=Linux + +[Mozilla/* (compatible; MSIE*; Mac_PowerPC Mac OS X;*) Opera 10.0*] +Parent=Opera 10.0 +Platform=MacOSX + +[Mozilla/* (compatible; MSIE*; Mac_PowerPC) Opera 10.0*] +Parent=Opera 10.0 +Platform=MacPPC + +[Mozilla/* (compatible; MSIE*; Windows 2000*) Opera 10.0*] +Parent=Opera 10.0 +Platform=Win2000 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows 95*) Opera 10.0*] +Parent=Opera 10.0 +Platform=Win95 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows 98*) Opera 10.0*] +Parent=Opera 10.0 +Platform=Win98 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows CE*) Opera 10.0*] +Parent=Opera 10.0 +Platform=WinCE +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows ME*) Opera 10.0*] +Parent=Opera 10.0 +Platform=WinME +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 4.0*) Opera 10.0*] +Parent=Opera 10.0 +Platform=WinNT +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 5.0*) Opera 10.0*] +Parent=Opera 10.0 +Platform=Win2000 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 5.1*) Opera 10.0*] +Parent=Opera 10.0 +Platform=WinXP +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 5.2*) Opera 10.0*] +Parent=Opera 10.0 +Platform=Win2003 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 6.0*) Opera 10.0*] +Parent=Opera 10.0 +Platform=WinVista +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 6.1*) Opera 10.0*] +Parent=Opera 10.0 +Platform=Win7 + +[Mozilla/* (compatible; MSIE*; Windows XP*) Opera 10.0*] +Parent=Opera 10.0 +Platform=WinXP +Win32=true + +[Mozilla/* (compatible; MSIE*; X11; FreeBSD*) Opera 10.0*] +Parent=Opera 10.0 +Platform=FreeBSD + +[Mozilla/* (compatible; MSIE*; X11; Linux*) Opera 10.0*] +Parent=Opera 10.0 +Platform=Linux + +[Mozilla/* (compatible; MSIE*; X11; SunOS*) Opera 10.0*] +Parent=Opera 10.0 +Platform=SunOS + +[Mozilla/* (Macintosh; *Mac OS X; ?) Opera 10.0*] +Parent=Opera 10.0 +Platform=MacOSX + +[Mozilla/* (Windows 2000;*) Opera 10.0*] +Parent=Opera 10.0 +Platform=Win2000 +Win32=true + +[Mozilla/* (Windows 95;*) Opera 10.0*] +Parent=Opera 10.0 +Platform=Win95 +Win32=true + +[Mozilla/* (Windows 98;*) Opera 10.0*] +Parent=Opera 10.0 +Platform=Win98 +Win32=true + +[Mozilla/* (Windows ME;*) Opera 10.0*] +Parent=Opera 10.0 +Platform=WinME +Win32=true + +[Mozilla/* (Windows NT 4.0;*) Opera 10.0*] +Parent=Opera 10.0 +Platform=WinNT +Win32=true + +[Mozilla/* (Windows NT 5.0;*) Opera 10.0*] +Parent=Opera 10.0 +Platform=Win2000 +Win32=true + +[Mozilla/* (Windows NT 5.1;*) Opera 10.0*] +Parent=Opera 10.0 +Platform=WinXP +Win32=true + +[Mozilla/* (Windows NT 5.2;*) Opera 10.0*] +Parent=Opera 10.0 +Platform=Win2003 +Win32=true + +[Mozilla/* (Windows NT 6.0;*) Opera 10.0*] +Parent=Opera 10.0 +Platform=WinVista + +[Mozilla/* (Windows NT 6.1;*) Opera 10.0*] +Parent=Opera 10.0 +Platform=Win7 + +[Mozilla/* (X11; Linux*) Opera 10.0*] +Parent=Opera 10.0 +Platform=Linux + +[Opera/10.0* (Linux*)*] +Parent=Opera 10.0 +Platform=Linux + +[Opera/10.0* (Macintosh; *Mac OS X;*)*] +Parent=Opera 10.0 +Platform=MacOSX + +[Opera/10.0* (Windows 95*)*] +Parent=Opera 10.0 +Platform=Win95 +Win32=true + +[Opera/10.0* (Windows 98*)*] +Parent=Opera 10.0 +Platform=Win98 +Win32=true + +[Opera/10.0* (Windows CE*)*] +Parent=Opera 10.0 +Platform=WinCE +Win32=true + +[Opera/10.0* (Windows ME*)*] +Parent=Opera 10.0 +Platform=WinME +Win32=true + +[Opera/10.0* (Windows NT 4.0*)*] +Parent=Opera 10.0 +Platform=WinNT +Win32=true + +[Opera/10.0* (Windows NT 5.0*)*] +Parent=Opera 10.0 +Platform=Win2000 +Win32=true + +[Opera/10.0* (Windows NT 5.1*)*] +Parent=Opera 10.0 +Platform=WinXP +Win32=true + +[Opera/10.0* (Windows NT 5.2*)*] +Parent=Opera 10.0 +Platform=Win2003 +Win32=true + +[Opera/10.0* (Windows NT 6.0*)*] +Parent=Opera 10.0 +Platform=WinVista +Win32=true + +[Opera/10.0* (Windows NT 6.1*)*] +Parent=Opera 10.0 +Platform=Win7 + +[Opera/10.0* (Windows XP*)*] +Parent=Opera 10.0 +Platform=WinXP +Win32=true + +[Opera/10.0* (X11; FreeBSD*)*] +Parent=Opera 10.0 +Platform=FreeBSD + +[Opera/10.0* (X11; Linux*)*] +Parent=Opera 10.0 +Platform=Linux + +[Opera/10.0* (X11; SunOS*)*] +Parent=Opera 10.0 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 7.0 + +[Opera 7.0] +Parent=DefaultProperties +Browser=Opera +Version=7.0 +MajorVer=7 +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/3.0 (Windows 2000; ?) Opera 7.0*] +Parent=Opera 7.0 +Platform=Win2000 +Win32=true + +[Mozilla/3.0 (Windows 95; ?) Opera 7.0*] +Parent=Opera 7.0 +Platform=Win95 +Win32=true + +[Mozilla/3.0 (Windows 98; ?) Opera 7.0*] +Parent=Opera 7.0 +Platform=Win98 +Win32=true + +[Mozilla/3.0 (Windows ME; ?) Opera 7.0*] +Parent=Opera 7.0 +Platform=WinME +Win32=true + +[Mozilla/3.0 (Windows NT 4.0; ?) Opera 7.0*] +Parent=Opera 7.0 +Platform=WinNT +Win32=true + +[Mozilla/3.0 (Windows XP; ?) Opera 7.0*] +Parent=Opera 7.0 +Platform=WinXP +Win32=true + +[Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows 2000) Opera 7.0*] +Parent=Opera 7.0 +Platform=Win2000 +Win32=true + +[Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows 95) Opera 7.0*] +Parent=Opera 7.0 +Platform=Win95 +Win32=true + +[Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows 98) Opera 7.0*] +Parent=Opera 7.0 +Platform=Win98 +Win32=true + +[Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows ME) Opera 7.0*] +Parent=Opera 7.0 +Platform=WinME +Win32=true + +[Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows NT 4.0) Opera 7.0*] +Parent=Opera 7.0 +Platform=WinNT +Win32=true + +[Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows NT 5.0) Opera 7.0*] +Parent=Opera 7.0 +Platform=Win2000 +Win32=true + +[Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows NT 5.1) Opera 7.0*] +Parent=Opera 7.0 +Platform=WinXP +Win32=true + +[Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows XP) Opera 7.0*] +Parent=Opera 7.0 +Platform=WinXP +Win32=true + +[Mozilla/4.78 (Windows 2000; ?) Opera 7.0*] +Parent=Opera 7.0 +Platform=Win2000 +Win32=true + +[Mozilla/4.78 (Windows 95; ?) Opera 7.0*] +Parent=Opera 7.0 +Platform=Win95 +Win32=true + +[Mozilla/4.78 (Windows 98; ?) Opera 7.0*] +Parent=Opera 7.0 +Platform=Win98 +Win32=true + +[Mozilla/4.78 (Windows ME; ?) Opera 7.0*] +Parent=Opera 7.0 +Platform=WinME +Win32=true + +[Mozilla/4.78 (Windows NT 4.0; ?) Opera 7.0*] +Parent=Opera 7.0 +Platform=WinNT +Win32=true + +[Mozilla/4.78 (Windows NT 5.1; ?) Opera 7.0*] +Parent=Opera 7.0 +Platform=WinXP +Win32=true + +[Mozilla/4.78 (Windows Windows NT 5.0; ?) Opera 7.0*] +Parent=Opera 7.0 +Platform=Win2000 +Win32=true + +[Mozilla/4.78 (Windows XP; ?) Opera 7.0*] +Parent=Opera 7.0 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows 2000; ?) Opera 7.0*] +Parent=Opera 7.0 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows 95; ?) Opera 7.0*] +Parent=Opera 7.0 +Platform=Win95 +Win32=true + +[Mozilla/5.0 (Windows 98; ?) Opera 7.0*] +Parent=Opera 7.0 +Platform=Win98 +Win32=true + +[Mozilla/5.0 (Windows ME; ?) Opera 7.0*] +Parent=Opera 7.0 +Platform=WinME +Win32=true + +[Mozilla/5.0 (Windows NT 4.0; ?) Opera 7.0*] +Parent=Opera 7.0 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (Windows NT 5.1; ?) Opera 7.0*] +Parent=Opera 7.0 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows XP; ?) Opera 7.0*] +Parent=Opera 7.0 +Platform=WinXP +Win32=true + +[Opera/7.0* (Windows 2000; ?)*] +Parent=Opera 7.0 +Platform=Win2000 +Win32=true + +[Opera/7.0* (Windows 95; ?)*] +Parent=Opera 7.0 +Platform=Win95 +Win32=true + +[Opera/7.0* (Windows 98; ?)*] +Parent=Opera 7.0 +Platform=Win98 +Win32=true + +[Opera/7.0* (Windows ME; ?)*] +Parent=Opera 7.0 +Platform=WinME +Win32=true + +[Opera/7.0* (Windows NT 4.0; ?)*] +Parent=Opera 7.0 +Platform=WinNT +Win32=true + +[Opera/7.0* (Windows NT 5.0; ?)*] +Parent=Opera 7.0 +Platform=Win2000 +Win32=true + +[Opera/7.0* (Windows NT 5.1; ?)*] +Parent=Opera 7.0 +Platform=WinXP +Win32=true + +[Opera/7.0* (Windows XP; ?)*] +Parent=Opera 7.0 +Platform=WinXP +Win32=true + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 7.1 + +[Opera 7.1] +Parent=DefaultProperties +Browser=Opera +Version=7.1 +MajorVer=7 +MinorVer=1 +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows 2000) Opera 7.1*] +Parent=Opera 7.1 +Platform=Win2000 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows 95) Opera 7.1*] +Parent=Opera 7.1 +Platform=Win95 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows 98) Opera 7.1*] +Parent=Opera 7.1 +Platform=Win98 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows ME) Opera 7.1*] +Parent=Opera 7.1 +Platform=WinME +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 4.0) Opera 7.1*] +Parent=Opera 7.1 +Platform=WinNT +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.0) Opera 7.1*] +Parent=Opera 7.1 +Platform=Win2000 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.1) Opera 7.1*] +Parent=Opera 7.1 +Platform=WinXP +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows XP) Opera 7.1*] +Parent=Opera 7.1 +Platform=WinXP +Win32=true + +[Mozilla/?.* (Windows 2000; ?) Opera 7.1*] +Parent=Opera 7.1 +Platform=Win2000 +Win32=true + +[Mozilla/?.* (Windows 95; ?) Opera 7.1*] +Parent=Opera 7.1 +Platform=Win95 +Win32=true + +[Mozilla/?.* (Windows 98; ?) Opera 7.1*] +Parent=Opera 7.1 +Platform=Win98 +Win32=true + +[Mozilla/?.* (Windows ME; ?) Opera 7.1*] +Parent=Opera 7.1 +Platform=WinME +Win32=true + +[Mozilla/?.* (Windows NT 4.0; U) Opera 7.1*] +Parent=Opera 7.1 +Platform=WinNT +Win32=true + +[Mozilla/?.* (Windows NT 5.0; U) Opera 7.1*] +Parent=Opera 7.1 +Platform=Win2000 +Win32=true + +[Mozilla/?.* (Windows NT 5.1; ?) Opera 7.1*] +Parent=Opera 7.1 +Platform=WinXP +Win32=true + +[Opera/7.1* (Linux*; ?)*] +Parent=Opera 7.1 +Platform=Linux + +[Opera/7.1* (Windows 95; ?)*] +Parent=Opera 7.1 +Platform=Win95 +Win32=true + +[Opera/7.1* (Windows 98; ?)*] +Parent=Opera 7.1 +Platform=Win98 +Win32=true + +[Opera/7.1* (Windows ME; ?)*] +Parent=Opera 7.1 +Platform=WinME +Win32=true + +[Opera/7.1* (Windows NT 4.0; ?)*] +Parent=Opera 7.1 +Platform=WinNT +Win32=true + +[Opera/7.1* (Windows NT 5.0; ?)*] +Parent=Opera 7.1 +Platform=Win2000 +Win32=true + +[Opera/7.1* (Windows NT 5.1; ?)*] +Parent=Opera 7.1 +Platform=WinXP +Win32=true + +[Opera/7.1* (Windows XP; ?)*] +Parent=Opera 7.1 +Platform=WinXP +Win32=true + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 7.2 + +[Opera 7.2] +Parent=DefaultProperties +Browser=Opera +Version=7.2 +MajorVer=7 +MinorVer=2 +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/?.* (compatible; MSIE ?.*; Linux*) Opera 7.2*] +Parent=Opera 7.2 +Platform=Linux + +[Mozilla/?.* (compatible; MSIE ?.*; Windows 2000) Opera 7.2*] +Parent=Opera 7.2 +Platform=Win2000 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows 95) Opera 7.2*] +Parent=Opera 7.2 +Platform=Win95 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows 98) Opera 7.2*] +Parent=Opera 7.2 +Platform=Win98 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows ME) Opera 7.2*] +Parent=Opera 7.2 +Platform=WinME +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 4.0) Opera 7.2*] +Parent=Opera 7.2 +Platform=WinNT +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.0) Opera 7.2*] +Parent=Opera 7.2 +Platform=Win2000 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.1) Opera 7.2*] +Parent=Opera 7.2 +Platform=WinXP +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.2) Opera 7.2*] +Parent=Opera 7.2 +Platform=Win2003 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows XP) Opera 7.2*] +Parent=Opera 7.2 +Platform=WinXP +Win32=true + +[Mozilla/?.* (Windows 2000; ?) Opera 7.2*] +Parent=Opera 7.2 +Platform=Win2000 +Win32=true + +[Mozilla/?.* (Windows 95; ?) Opera 7.2*] +Parent=Opera 7.2 +Platform=Win95 +Win32=true + +[Mozilla/?.* (Windows 98; ?) Opera 7.2*] +Parent=Opera 7.2 +Platform=Win98 +Win32=true + +[Mozilla/?.* (Windows ME; ?) Opera 7.2*] +Parent=Opera 7.2 +Platform=WinME +Win32=true + +[Mozilla/?.* (Windows NT 4.0; U) Opera 7.2*] +Parent=Opera 7.2 +Platform=WinNT +Win32=true + +[Mozilla/?.* (Windows NT 5.0; U) Opera 7.2*] +Parent=Opera 7.2 +Platform=Win2000 +Win32=true + +[Mozilla/?.* (Windows NT 5.1; ?) Opera 7.2*] +Parent=Opera 7.2 +Platform=WinXP +Win32=true + +[Mozilla/?.* (Windows NT 5.2; ?) Opera 7.2*] +Parent=Opera 7.2 +Platform=Win2003 +Win32=true + +[Opera/7.2* (Linux*; ?)*] +Parent=Opera 7.2 +Platform=Linux + +[Opera/7.2* (Windows 95; ?)*] +Parent=Opera 7.2 +Platform=Win95 +Win32=true + +[Opera/7.2* (Windows 98; ?)*] +Parent=Opera 7.2 +Platform=Win98 +Win32=true + +[Opera/7.2* (Windows ME; ?)*] +Parent=Opera 7.2 +Platform=WinME +Win32=true + +[Opera/7.2* (Windows NT 4.0; ?)*] +Parent=Opera 7.2 +Platform=WinNT +Win32=true + +[Opera/7.2* (Windows NT 5.0; ?)*] +Parent=Opera 7.2 +Platform=Win2000 +Win32=true + +[Opera/7.2* (Windows NT 5.1; ?)*] +Parent=Opera 7.2 +Platform=WinXP +Win32=true + +[Opera/7.2* (Windows NT 5.2; ?)*] +Parent=Opera 7.2 +Platform=Win2003 +Win32=true + +[Opera/7.2* (Windows XP; ?)*] +Parent=Opera 7.2 +Platform=WinXP +Win32=true + +[Opera/7.2* (X11; FreeBSD*; ?)*] +Parent=Opera 7.2 +Platform=FreeBSD + +[Opera/7.2* (X11; Linux*; ?)*] +Parent=Opera 7.2 +Platform=Linux + +[Opera/7.2* (X11; SunOS*)*] +Parent=Opera 7.2 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 7.5 + +[Opera 7.5] +Parent=DefaultProperties +Browser=Opera +Version=7.5 +MajorVer=7 +MinorVer=5 +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/?.* (compatible; MSIE ?.*; Linux*) Opera 7.5*] +Parent=Opera 7.5 +Platform=Linux + +[Mozilla/?.* (compatible; MSIE ?.*; Mac_PowerPC) Opera 7.5*] +Parent=Opera 7.5 +Platform=MacPPC + +[Mozilla/?.* (compatible; MSIE ?.*; Windows 2000) Opera 7.5*] +Parent=Opera 7.5 +Platform=Win2000 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows 95) Opera 7.5*] +Parent=Opera 7.5 +Platform=Win95 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows 98) Opera 7.5*] +Parent=Opera 7.5 +Platform=Win98 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows ME) Opera 7.5*] +Parent=Opera 7.5 +Platform=WinME +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 4.0) Opera 7.5*] +Parent=Opera 7.5 +Platform=WinNT +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.0) Opera 7.5*] +Parent=Opera 7.5 +Platform=Win2000 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.1) Opera 7.5*] +Parent=Opera 7.5 +Platform=WinXP +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.2) Opera 7.5*] +Parent=Opera 7.5 +Platform=Win2003 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows XP) Opera 7.5*] +Parent=Opera 7.5 +Platform=WinXP +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; X11; Linux*) Opera 7.5*] +Parent=Opera 7.5 +Platform=Linux + +[Mozilla/?.* (Macintosh; *Mac OS X; ?) Opera 7.5*] +Parent=Opera 7.5 +Platform=MacOSX + +[Mozilla/?.* (Windows 2000; ?) Opera 7.5*] +Parent=Opera 7.5 +Platform=Win2000 +Win32=true + +[Mozilla/?.* (Windows 95; ?) Opera 7.5*] +Parent=Opera 7.5 +Platform=Win95 +Win32=true + +[Mozilla/?.* (Windows 98; ?) Opera 7.5*] +Parent=Opera 7.5 +Platform=Win98 +Win32=true + +[Mozilla/?.* (Windows ME; ?) Opera 7.5*] +Parent=Opera 7.5 +Platform=WinME +Win32=true + +[Mozilla/?.* (Windows NT 4.0; U) Opera 7.5*] +Parent=Opera 7.5 +Platform=WinNT +Win32=true + +[Mozilla/?.* (Windows NT 5.0; U) Opera 7.5*] +Parent=Opera 7.5 +Platform=Win2000 +Win32=true + +[Mozilla/?.* (Windows NT 5.1; ?) Opera 7.5*] +Parent=Opera 7.5 +Platform=WinXP +Win32=true + +[Mozilla/?.* (Windows NT 5.2; ?) Opera 7.5*] +Parent=Opera 7.5 +Platform=Win2003 +Win32=true + +[Mozilla/?.* (X11; Linux*; ?) Opera 7.5*] +Parent=Opera 7.5 +Platform=Linux + +[Opera/7.5* (Linux*; ?)*] +Parent=Opera 7.5 +Platform=Linux + +[Opera/7.5* (Macintosh; *Mac OS X; ?)*] +Parent=Opera 7.5 +Platform=MacOSX + +[Opera/7.5* (Windows 95; ?)*] +Parent=Opera 7.5 +Platform=Win95 +Win32=true + +[Opera/7.5* (Windows 98; ?)*] +Parent=Opera 7.5 +Platform=Win98 +Win32=true + +[Opera/7.5* (Windows ME; ?)*] +Parent=Opera 7.5 +Platform=WinME +Win32=true + +[Opera/7.5* (Windows NT 4.0; ?)*] +Parent=Opera 7.5 +Platform=WinNT +Win32=true + +[Opera/7.5* (Windows NT 5.0; ?)*] +Parent=Opera 7.5 +Platform=Win2000 +Win32=true + +[Opera/7.5* (Windows NT 5.1; ?)*] +Parent=Opera 7.5 +Platform=WinXP +Win32=true + +[Opera/7.5* (Windows NT 5.2; ?)*] +Parent=Opera 7.5 +Platform=Win2003 +Win32=true + +[Opera/7.5* (Windows XP; ?)*] +Parent=Opera 7.5 +Platform=WinXP +Win32=true + +[Opera/7.5* (X11; FreeBSD*; ?)*] +Parent=Opera 7.5 +Platform=FreeBSD + +[Opera/7.5* (X11; Linux*; ?)*] +Parent=Opera 7.5 +Platform=Linux + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 7.6 + +[Opera 7.6] +Parent=DefaultProperties +Browser=Opera +Version=7.6 +MajorVer=7 +MinorVer=6 +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/?.* (compatible; MSIE ?.*; Linux*) Opera 7.6*] +Parent=Opera 7.6 +Platform=Linux + +[Mozilla/?.* (compatible; MSIE ?.*; Mac_PowerPC) Opera 7.6*] +Parent=Opera 7.6 +Platform=MacPPC + +[Mozilla/?.* (compatible; MSIE ?.*; Windows 2000) Opera 7.6*] +Parent=Opera 7.6 +Platform=Win2000 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows 95) Opera 7.6*] +Parent=Opera 7.6 +Platform=Win95 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows 98) Opera 7.6*] +Parent=Opera 7.6 +Platform=Win98 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows ME) Opera 7.6*] +Parent=Opera 7.6 +Platform=WinME +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 4.0) Opera 7.6*] +Parent=Opera 7.6 +Platform=WinNT +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.0) Opera 7.6*] +Parent=Opera 7.6 +Platform=Win2000 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.1) Opera 7.6*] +Parent=Opera 7.6 +Platform=WinXP +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.2) Opera 7.6*] +Parent=Opera 7.6 +Platform=Win2003 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows XP) Opera 7.6*] +Parent=Opera 7.6 +Platform=WinXP +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; X11; Linux*) Opera 7.6*] +Parent=Opera 7.6 +Platform=Linux + +[Mozilla/?.* (Macintosh; *Mac OS X; ?) Opera 7.6*] +Parent=Opera 7.6 +Platform=MacOSX + +[Mozilla/?.* (Windows 2000; ?) Opera 7.6*] +Parent=Opera 7.6 +Platform=Win2000 +Win32=true + +[Mozilla/?.* (Windows 95; ?) Opera 7.6*] +Parent=Opera 7.6 +Platform=Win95 +Win32=true + +[Mozilla/?.* (Windows 98; ?) Opera 7.6*] +Parent=Opera 7.6 +Platform=Win98 +Win32=true + +[Mozilla/?.* (Windows ME; ?) Opera 7.6*] +Parent=Opera 7.6 +Platform=WinME +Win32=true + +[Mozilla/?.* (Windows NT 4.0; U) Opera 7.6*] +Parent=Opera 7.6 +Platform=WinNT +Win32=true + +[Mozilla/?.* (Windows NT 5.0; U) Opera 7.6*] +Parent=Opera 7.6 +Platform=Win2000 +Win32=true + +[Mozilla/?.* (Windows NT 5.1; ?) Opera 7.6*] +Parent=Opera 7.6 +Platform=WinXP +Win32=true + +[Mozilla/?.* (Windows NT 5.2; ?) Opera 7.6*] +Parent=Opera 7.6 +Platform=Win2003 +Win32=true + +[Mozilla/?.* (X11; Linux*; ?) Opera 7.6*] +Parent=Opera 7.6 +Platform=Linux + +[Opera/7.6* (Linux*)*] +Parent=Opera 7.6 +Platform=Linux + +[Opera/7.6* (Macintosh; *Mac OS X; ?)*] +Parent=Opera 7.6 +Platform=MacOSX + +[Opera/7.6* (Windows 95*)*] +Parent=Opera 7.6 +Platform=Win95 +Win32=true + +[Opera/7.6* (Windows 98*)*] +Parent=Opera 7.6 +Platform=Win98 +Win32=true + +[Opera/7.6* (Windows ME*)*] +Parent=Opera 7.6 +Platform=WinME +Win32=true + +[Opera/7.6* (Windows NT 4.0*)*] +Parent=Opera 7.6 +Platform=WinNT +Win32=true + +[Opera/7.6* (Windows NT 5.0*)*] +Parent=Opera 7.6 +Platform=Win2000 +Win32=true + +[Opera/7.6* (Windows NT 5.1*)*] +Parent=Opera 7.6 +Platform=WinXP +Win32=true + +[Opera/7.6* (Windows NT 5.2*)*] +Parent=Opera 7.6 +Platform=Win2003 +Win32=true + +[Opera/7.6* (Windows XP*)*] +Parent=Opera 7.6 +Platform=WinXP +Win32=true + +[Opera/7.6* (X11; FreeBSD*)*] +Parent=Opera 7.6 +Platform=FreeBSD + +[Opera/7.6* (X11; Linux*)*] +Parent=Opera 7.6 +Platform=Linux + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 8.0 + +[Opera 8.0] +Parent=DefaultProperties +Browser=Opera +Version=8.0 +MajorVer=8 +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/?.* (compatible; MSIE ?.*; Linux*) Opera 8.0*] +Parent=Opera 8.0 +Platform=Linux + +[Mozilla/?.* (compatible; MSIE ?.*; Mac_PowerPC Mac OS X; *) Opera 8.0*] +Parent=Opera 8.0 +Platform=MacOSX + +[Mozilla/?.* (compatible; MSIE ?.*; Mac_PowerPC) Opera 8.0*] +Parent=Opera 8.0 +Platform=MacPPC + +[Mozilla/?.* (compatible; MSIE ?.*; Windows 2000*) Opera 8.0*] +Parent=Opera 8.0 +Platform=Win2000 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows 95*) Opera 8.0*] +Parent=Opera 8.0 +Platform=Win95 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows 98*) Opera 8.0*] +Parent=Opera 8.0 +Platform=Win98 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows CE) Opera 8.0*] +Parent=Opera 8.0 +Platform=WinCE +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows ME*) Opera 8.0*] +Parent=Opera 8.0 +Platform=WinME +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 4.0*) Opera 8.0*] +Parent=Opera 8.0 +Platform=WinNT +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.0*) Opera 8.0*] +Parent=Opera 8.0 +Platform=Win2000 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.1*) Opera 8.0*] +Parent=Opera 8.0 +Platform=WinXP +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.2*) Opera 8.0*] +Parent=Opera 8.0 +Platform=Win2003 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows XP*) Opera 8.0*] +Parent=Opera 8.0 +Platform=WinXP +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; X11; FreeBSD*) Opera 8.0*] +Parent=Opera 8.0 +Platform=FreeBSD + +[Mozilla/?.* (compatible; MSIE ?.*; X11; Linux*) Opera 8.0*] +Parent=Opera 8.0 +Platform=Linux + +[Mozilla/?.* (Macintosh; *Mac OS X; ?) Opera 8.0*] +Parent=Opera 8.0 +Platform=MacOSX + +[Mozilla/?.* (Windows 2000; *) Opera 8.0*] +Parent=Opera 8.0 +Platform=Win2000 +Win32=true + +[Mozilla/?.* (Windows 95; *) Opera 8.0*] +Parent=Opera 8.0 +Platform=Win95 +Win32=true + +[Mozilla/?.* (Windows 98; *) Opera 8.0*] +Parent=Opera 8.0 +Platform=Win98 +Win32=true + +[Mozilla/?.* (Windows ME; *) Opera 8.0*] +Parent=Opera 8.0 +Platform=WinME +Win32=true + +[Mozilla/?.* (Windows NT 4.0; *) Opera 8.0*] +Parent=Opera 8.0 +Platform=WinNT +Win32=true + +[Mozilla/?.* (Windows NT 5.0; *) Opera 8.0*] +Parent=Opera 8.0 +Platform=Win2000 +Win32=true + +[Mozilla/?.* (Windows NT 5.1; *) Opera 8.0*] +Parent=Opera 8.0 +Platform=WinXP +Win32=true + +[Mozilla/?.* (Windows NT 5.2; *) Opera 8.0*] +Parent=Opera 8.0 +Platform=Win2003 +Win32=true + +[Mozilla/?.* (X11; Linux*; *) Opera 8.0*] +Parent=Opera 8.0 +Platform=Linux + +[Opera/8.0* (Linux*)*] +Parent=Opera 8.0 +Platform=Linux + +[Opera/8.0* (Macintosh; *Mac OS X; *)*] +Parent=Opera 8.0 +Platform=MacOSX + +[Opera/8.0* (Windows 95*)*] +Parent=Opera 8.0 +Platform=Win95 +Win32=true + +[Opera/8.0* (Windows 98*)*] +Parent=Opera 8.0 +Platform=Win98 +Win32=true + +[Opera/8.0* (Windows CE*)*] +Parent=Opera 8.0 +Platform=WinCE +Win32=true + +[Opera/8.0* (Windows ME*)*] +Parent=Opera 8.0 +Platform=WinME +Win32=true + +[Opera/8.0* (Windows NT 4.0*)*] +Parent=Opera 8.0 +Platform=WinNT +Win32=true + +[Opera/8.0* (Windows NT 5.0*)*] +Parent=Opera 8.0 +Platform=Win2000 +Win32=true + +[Opera/8.0* (Windows NT 5.1*)*] +Parent=Opera 8.0 +Platform=WinXP +Win32=true + +[Opera/8.0* (Windows NT 5.2*)*] +Parent=Opera 8.0 +Platform=Win2003 +Win32=true + +[Opera/8.0* (Windows XP*)*] +Parent=Opera 8.0 +Platform=WinXP +Win32=true + +[Opera/8.0* (X11; FreeBSD*)*] +Parent=Opera 8.0 +Platform=FreeBSD + +[Opera/8.0* (X11; Linux*)*] +Parent=Opera 8.0 +Platform=Linux + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 8.1 + +[Opera 8.1] +Parent=DefaultProperties +Browser=Opera +Version=8.1 +MajorVer=8 +MinorVer=1 +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/?.* (compatible; MSIE ?.*; Linux*) Opera 8.1*] +Parent=Opera 8.1 +Platform=Linux + +[Mozilla/?.* (compatible; MSIE ?.*; Mac_PowerPC) Opera 8.1*] +Parent=Opera 8.1 +Platform=MacPPC + +[Mozilla/?.* (compatible; MSIE ?.*; Windows 2000*) Opera 8.1*] +Parent=Opera 8.1 +Platform=Win2000 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows 95*) Opera 8.1*] +Parent=Opera 8.1 +Platform=Win95 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows 98*) Opera 8.1*] +Parent=Opera 8.1 +Platform=Win98 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows CE) Opera 8.1*] +Parent=Opera 8.1 +Platform=WinCE +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows ME*) Opera 8.1*] +Parent=Opera 8.1 +Platform=WinME +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 4.0*) Opera 8.1*] +Parent=Opera 8.1 +Platform=WinNT +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.0*) Opera 8.1*] +Parent=Opera 8.1 +Platform=Win2000 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.1*) Opera 8.1*] +Parent=Opera 8.1 +Platform=WinXP +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.2*) Opera 8.1*] +Parent=Opera 8.1 +Platform=Win2003 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows XP*) Opera 8.1*] +Parent=Opera 8.1 +Platform=WinXP +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; X11; FreeBSD*) Opera 8.1*] +Parent=Opera 8.1 +Platform=FreeBSD + +[Mozilla/?.* (compatible; MSIE ?.*; X11; Linux*) Opera 8.1*] +Parent=Opera 8.1 +Platform=Linux + +[Mozilla/?.* (Macintosh; *Mac OS X; ?) Opera 8.1*] +Parent=Opera 8.1 +Platform=MacOSX + +[Mozilla/?.* (Windows 2000; *) Opera 8.1*] +Parent=Opera 8.1 +Platform=Win2000 +Win32=true + +[Mozilla/?.* (Windows 95; *) Opera 8.1*] +Parent=Opera 8.1 +Platform=Win95 +Win32=true + +[Mozilla/?.* (Windows 98; *) Opera 8.1*] +Parent=Opera 8.1 +Platform=Win98 +Win32=true + +[Mozilla/?.* (Windows ME; *) Opera 8.1*] +Parent=Opera 8.1 +Platform=WinME +Win32=true + +[Mozilla/?.* (Windows NT 4.0; *) Opera 8.1*] +Parent=Opera 8.1 +Platform=WinNT +Win32=true + +[Mozilla/?.* (Windows NT 5.0; *) Opera 8.1*] +Parent=Opera 8.1 +Platform=Win2000 +Win32=true + +[Mozilla/?.* (Windows NT 5.1; *) Opera 8.1*] +Parent=Opera 8.1 +Platform=WinXP +Win32=true + +[Mozilla/?.* (Windows NT 5.2; *) Opera 8.1*] +Parent=Opera 8.1 +Platform=Win2003 +Win32=true + +[Mozilla/?.* (X11; Linux*; *) Opera 8.1*] +Parent=Opera 8.1 +Platform=Linux + +[Opera/8.1* (Linux*)*] +Parent=Opera 8.1 +Platform=Linux + +[Opera/8.1* (Macintosh; *Mac OS X; *)*] +Parent=Opera 8.1 +Platform=MacOSX + +[Opera/8.1* (Windows 95*)*] +Parent=Opera 8.1 +Platform=Win95 +Win32=true + +[Opera/8.1* (Windows 98*)*] +Parent=Opera 8.1 +Platform=Win98 +Win32=true + +[Opera/8.1* (Windows CE*)*] +Parent=Opera 8.1 +Platform=WinCE +Win32=true + +[Opera/8.1* (Windows ME*)*] +Parent=Opera 8.1 +Platform=WinME +Win32=true + +[Opera/8.1* (Windows NT 4.0*)*] +Parent=Opera 8.1 +Platform=WinNT +Win32=true + +[Opera/8.1* (Windows NT 5.0*)*] +Parent=Opera 8.1 +Platform=Win2000 +Win32=true + +[Opera/8.1* (Windows NT 5.1*)*] +Parent=Opera 8.1 +Platform=WinXP +Win32=true + +[Opera/8.1* (Windows NT 5.2*)*] +Parent=Opera 8.1 +Platform=Win2003 +Win32=true + +[Opera/8.1* (Windows XP*)*] +Parent=Opera 8.1 +Platform=WinXP +Win32=true + +[Opera/8.1* (X11; FreeBSD*)*] +Parent=Opera 8.1 +Platform=FreeBSD + +[Opera/8.1* (X11; Linux*)*] +Parent=Opera 8.1 +Platform=Linux + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 8.5 + +[Opera 8.5] +Parent=DefaultProperties +Browser=Opera +Version=8.5 +MajorVer=8 +MinorVer=5 +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true +ecmascriptversion=1.3 +w3cdomversion=1.0 + +[Mozilla/?.* (compatible; MSIE ?.*; Linux*) Opera 8.5*] +Parent=Opera 8.5 +Platform=Linux + +[Mozilla/?.* (compatible; MSIE ?.*; Mac_PowerPC Mac OS X;*) Opera 8.5*] +Parent=Opera 8.5 +Platform=MacOSX + +[Mozilla/?.* (compatible; MSIE ?.*; Mac_PowerPC) Opera 8.5*] +Parent=Opera 8.5 +Platform=MacPPC + +[Mozilla/?.* (compatible; MSIE ?.*; Windows 2000*) Opera 8.5*] +Parent=Opera 8.5 +Platform=Win2000 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows 95*) Opera 8.5*] +Parent=Opera 8.5 +Platform=Win95 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows 98*) Opera 8.5*] +Parent=Opera 8.5 +Platform=Win98 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows CE) Opera 8.5*] +Parent=Opera 8.5 +Platform=WinCE +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows ME*) Opera 8.5*] +Parent=Opera 8.5 +Platform=WinME +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 4.0*) Opera 8.5*] +Parent=Opera 8.5 +Platform=WinNT +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.0*) Opera 8.5*] +Parent=Opera 8.5 +Platform=Win2000 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.1*) Opera 8.5*] +Parent=Opera 8.5 +Platform=WinXP +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.2*) Opera 8.5*] +Parent=Opera 8.5 +Platform=Win2003 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows XP*) Opera 8.5*] +Parent=Opera 8.5 +Platform=WinXP +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; X11; FreeBSD*) Opera 8.5*] +Parent=Opera 8.5 +Platform=FreeBSD + +[Mozilla/?.* (compatible; MSIE ?.*; X11; Linux*) Opera 8.5*] +Parent=Opera 8.5 +Platform=Linux + +[Mozilla/?.* (Macintosh; *Mac OS X; ?) Opera 8.5*] +Parent=Opera 8.5 +Platform=MacOSX + +[Mozilla/?.* (Macintosh; PPC Mac OS X;*) Opera 8.5*] +Parent=Opera 8.5 +Platform=MacOSX + +[Mozilla/?.* (Windows 2000; *) Opera 8.5*] +Parent=Opera 8.5 +Platform=Win2000 +Win32=true + +[Mozilla/?.* (Windows 95; *) Opera 8.5*] +Parent=Opera 8.5 +Platform=Win95 +Win32=true + +[Mozilla/?.* (Windows 98; *) Opera 8.5*] +Parent=Opera 8.5 +Platform=Win98 +Win32=true + +[Mozilla/?.* (Windows ME; *) Opera 8.5*] +Parent=Opera 8.5 +Platform=WinME +Win32=true + +[Mozilla/?.* (Windows NT 4.0; *) Opera 8.5*] +Parent=Opera 8.5 +Platform=WinNT +Win32=true + +[Mozilla/?.* (Windows NT 5.0; *) Opera 8.5*] +Parent=Opera 8.5 +Platform=Win2000 +Win32=true + +[Mozilla/?.* (Windows NT 5.1; *) Opera 8.5*] +Parent=Opera 8.5 +Platform=WinXP +Win32=true + +[Mozilla/?.* (Windows NT 5.2; *) Opera 8.5*] +Parent=Opera 8.5 +Platform=Win2003 +Win32=true + +[Mozilla/?.* (X11; Linux*; *) Opera 8.5*] +Parent=Opera 8.5 +Platform=Linux + +[Opera/8.5* (Linux*)*] +Parent=Opera 8.5 +Platform=Linux + +[Opera/8.5* (Macintosh; *Mac OS X; *)*] +Parent=Opera 8.5 +Platform=MacOSX + +[Opera/8.5* (Windows 95*)*] +Parent=Opera 8.5 +Platform=Win95 +Win32=true + +[Opera/8.5* (Windows 98*)*] +Parent=Opera 8.5 +Platform=Win98 +Win32=true + +[Opera/8.5* (Windows CE*)*] +Parent=Opera 8.5 +Platform=WinCE +Win32=true + +[Opera/8.5* (Windows ME*)*] +Parent=Opera 8.5 +Platform=WinME +Win32=true + +[Opera/8.5* (Windows NT 4.0*)*] +Parent=Opera 8.5 +Platform=WinNT +Win32=true + +[Opera/8.5* (Windows NT 5.0*)*] +Parent=Opera 8.5 +Platform=Win2000 +Win32=true + +[Opera/8.5* (Windows NT 5.1*)*] +Parent=Opera 8.5 +Platform=WinXP +Win32=true + +[Opera/8.5* (Windows NT 5.2*)*] +Parent=Opera 8.5 +Platform=Win2003 +Win32=true + +[Opera/8.5* (Windows XP*)*] +Parent=Opera 8.5 +Platform=WinXP +Win32=true + +[Opera/8.5* (X11; FreeBSD*)*] +Parent=Opera 8.5 +Platform=FreeBSD + +[Opera/8.5* (X11; Linux*)*] +Parent=Opera 8.5 +Platform=Linux + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 9.0 + +[Opera 9.0] +Parent=DefaultProperties +Browser=Opera +Version=9.0 +MajorVer=9 +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true +ecmascriptversion=1.5 +w3cdomversion=1.0 + +[Mozilla/* (compatible; MSIE*; Linux*) Opera 9.0*] +Parent=Opera 9.0 +Platform=Linux + +[Mozilla/* (compatible; MSIE*; Mac_PowerPC Mac OS X;*) Opera 9.0*] +Parent=Opera 9.0 +Platform=MacOSX + +[Mozilla/* (compatible; MSIE*; Mac_PowerPC) Opera 9.0*] +Parent=Opera 9.0 +Platform=MacPPC + +[Mozilla/* (compatible; MSIE*; Windows 2000*) Opera 9.0*] +Parent=Opera 9.0 +Platform=Win2000 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows 95*) Opera 9.0*] +Parent=Opera 9.0 +Platform=Win95 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows 98*) Opera 9.0*] +Parent=Opera 9.0 +Platform=Win98 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows CE*) Opera 9.0*] +Parent=Opera 9.0 +Platform=WinCE +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows ME*) Opera 9.0*] +Parent=Opera 9.0 +Platform=WinME +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 4.0*) Opera 9.0*] +Parent=Opera 9.0 +Platform=WinNT +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 5.0*) Opera 9.0*] +Parent=Opera 9.0 +Platform=Win2000 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 5.1*) Opera 9.0*] +Parent=Opera 9.0 +Platform=WinXP +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 5.2*) Opera 9.0*] +Parent=Opera 9.0 +Platform=Win2003 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 6.0*) Opera 9.0*] +Parent=Opera 9.0 +Platform=WinVista +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows XP*) Opera 9.0*] +Parent=Opera 9.0 +Platform=WinXP +Win32=true + +[Mozilla/* (compatible; MSIE*; X11; FreeBSD*) Opera 9.0*] +Parent=Opera 9.0 +Platform=FreeBSD + +[Mozilla/* (compatible; MSIE*; X11; Linux*) Opera 9.0*] +Parent=Opera 9.0 +Platform=Linux + +[Mozilla/* (compatible; MSIE*; X11; SunOS*) Opera 9.0*] +Parent=Opera 9.0 +Platform=SunOS + +[Mozilla/* (Macintosh; *Mac OS X; ?) Opera 9.0*] +Parent=Opera 9.0 +Platform=MacOSX + +[Mozilla/* (Windows 2000;*) Opera 9.0*] +Parent=Opera 9.0 +Platform=Win2000 +Win32=true + +[Mozilla/* (Windows 95;*) Opera 9.0*] +Parent=Opera 9.0 +Platform=Win95 +Win32=true + +[Mozilla/* (Windows 98;*) Opera 9.0*] +Parent=Opera 9.0 +Platform=Win98 +Win32=true + +[Mozilla/* (Windows ME;*) Opera 9.0*] +Parent=Opera 9.0 +Platform=WinME +Win32=true + +[Mozilla/* (Windows NT 4.0;*) Opera 9.0*] +Parent=Opera 9.0 +Platform=WinNT +Win32=true + +[Mozilla/* (Windows NT 5.0;*) Opera 9.0*] +Parent=Opera 9.0 +Platform=Win2000 +Win32=true + +[Mozilla/* (Windows NT 5.1;*) Opera 9.0*] +Parent=Opera 9.0 +Platform=WinXP +Win32=true + +[Mozilla/* (Windows NT 5.2;*) Opera 9.0*] +Parent=Opera 9.0 +Platform=Win2003 +Win32=true + +[Mozilla/* (X11; Linux*) Opera 9.0*] +Parent=Opera 9.0 +Platform=Linux + +[Opera/9.0* (Linux*)*] +Parent=Opera 9.0 +Platform=Linux + +[Opera/9.0* (Macintosh; *Mac OS X;*)*] +Parent=Opera 9.0 +Platform=MacOSX + +[Opera/9.0* (Windows 95*)*] +Parent=Opera 9.0 +Platform=Win95 +Win32=true + +[Opera/9.0* (Windows 98*)*] +Parent=Opera 9.0 +Platform=Win98 +Win32=true + +[Opera/9.0* (Windows CE*)*] +Parent=Opera 9.0 +Platform=WinCE +Win32=true + +[Opera/9.0* (Windows ME*)*] +Parent=Opera 9.0 +Platform=WinME +Win32=true + +[Opera/9.0* (Windows NT 4.0*)*] +Parent=Opera 9.0 +Platform=WinNT +Win32=true + +[Opera/9.0* (Windows NT 5.0*)*] +Parent=Opera 9.0 +Platform=Win2000 +Win32=true + +[Opera/9.0* (Windows NT 5.1*)*] +Parent=Opera 9.0 +Platform=WinXP +Win32=true + +[Opera/9.0* (Windows NT 5.2*)*] +Parent=Opera 9.0 +Platform=Win2003 +Win32=true + +[Opera/9.0* (Windows NT 6.0*)*] +Parent=Opera 9.0 +Platform=WinVista +Win32=true + +[Opera/9.0* (Windows XP*)*] +Parent=Opera 9.0 +Platform=WinXP +Win32=true + +[Opera/9.0* (X11; FreeBSD*)*] +Parent=Opera 9.0 +Platform=FreeBSD + +[Opera/9.0* (X11; Linux*)*] +Parent=Opera 9.0 +Platform=Linux + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 9.1 + +[Opera 9.1] +Parent=DefaultProperties +Browser=Opera +Version=9.1 +MajorVer=9 +MinorVer=1 +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/* (compatible; MSIE*; Linux*) Opera 9.1*] +Parent=Opera 9.1 +Platform=Linux + +[Mozilla/* (compatible; MSIE*; Mac_PowerPC Mac OS X;*) Opera 9.1*] +Parent=Opera 9.1 +Platform=MacOSX + +[Mozilla/* (compatible; MSIE*; Mac_PowerPC;*) Opera 9.1*] +Parent=Opera 9.1 +Platform=MacPPC + +[Mozilla/* (compatible; MSIE*; Windows 2000*) Opera 9.1*] +Parent=Opera 9.1 +Platform=Win2000 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows 95*) Opera 9.1*] +Parent=Opera 9.1 +Platform=Win95 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows 98*) Opera 9.1*] +Parent=Opera 9.1 +Platform=Win98 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows CE*) Opera 9.1*] +Parent=Opera 9.1 +Platform=WinCE +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows ME*) Opera 9.1*] +Parent=Opera 9.1 +Platform=WinME +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 4.0*) Opera 9.1*] +Parent=Opera 9.1 +Platform=WinNT +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 5.0*) Opera 9.1*] +Parent=Opera 9.1 +Platform=Win2000 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 5.1*) Opera 9.1*] +Parent=Opera 9.1 +Platform=WinXP +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 5.2*) Opera 9.1*] +Parent=Opera 9.1 +Platform=Win2003 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 6.0*) Opera 9.1*] +Parent=Opera 9.1 +Platform=WinVista +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows XP*) Opera 9.1*] +Parent=Opera 9.1 +Platform=WinXP +Win32=true + +[Mozilla/* (compatible; MSIE*; X11; FreeBSD*) Opera 9.1*] +Parent=Opera 9.1 +Platform=FreeBSD + +[Mozilla/* (compatible; MSIE*; X11; Linux*) Opera 9.1*] +Parent=Opera 9.1 +Platform=Linux + +[Mozilla/* (compatible; MSIE*; X11; SunOS*) Opera 9.1*] +Parent=Opera 9.1 +Platform=SunOS + +[Mozilla/* (Macintosh; *Mac OS X; ?) Opera 9.1*] +Parent=Opera 9.1 +Platform=MacOSX + +[Mozilla/* (Windows 2000;*) Opera 9.1*] +Parent=Opera 9.1 +Platform=Win2000 +Win32=true + +[Mozilla/* (Windows 95;*) Opera 9.1*] +Parent=Opera 9.1 +Platform=Win95 +Win32=true + +[Mozilla/* (Windows 98;*) Opera 9.1*] +Parent=Opera 9.1 +Platform=Win98 +Win32=true + +[Mozilla/* (Windows ME;*) Opera 9.1*] +Parent=Opera 9.1 +Platform=WinME +Win32=true + +[Mozilla/* (Windows NT 4.0;*) Opera 9.1*] +Parent=Opera 9.1 +Platform=WinNT +Win32=true + +[Mozilla/* (Windows NT 5.0;*) Opera 9.1*] +Parent=Opera 9.1 +Platform=Win2000 +Win32=true + +[Mozilla/* (Windows NT 5.1;*) Opera 9.1*] +Parent=Opera 9.1 +Platform=WinXP +Win32=true + +[Mozilla/* (Windows NT 5.2;*) Opera 9.1*] +Parent=Opera 9.1 +Platform=Win2003 +Win32=true + +[Mozilla/* (X11; Linux*) Opera 9.1*] +Parent=Opera 9.1 +Platform=Linux + +[Opera/9.1* (Linux*)*] +Parent=Opera 9.1 +Platform=Linux + +[Opera/9.1* (Macintosh; *Mac OS X;*)*] +Parent=Opera 9.1 +Platform=MacOSX + +[Opera/9.1* (Windows 95*)*] +Parent=Opera 9.1 +Platform=Win95 +Win32=true + +[Opera/9.1* (Windows 98*)*] +Parent=Opera 9.1 +Platform=Win98 +Win32=true + +[Opera/9.1* (Windows CE*)*] +Parent=Opera 9.1 +Platform=WinCE +Win32=true + +[Opera/9.1* (Windows ME*)*] +Parent=Opera 9.1 +Platform=WinME +Win32=true + +[Opera/9.1* (Windows NT 4.0*)*] +Parent=Opera 9.1 +Platform=WinNT +Win32=true + +[Opera/9.1* (Windows NT 5.0*)*] +Parent=Opera 9.1 +Platform=Win2000 +Win32=true + +[Opera/9.1* (Windows NT 5.1*)*] +Parent=Opera 9.1 +Platform=WinXP +Win32=true + +[Opera/9.1* (Windows NT 5.2*)*] +Parent=Opera 9.1 +Platform=Win2003 +Win32=true + +[Opera/9.1* (Windows NT 6.0*)*] +Parent=Opera 9.1 +Platform=WinVista +Win32=true + +[Opera/9.1* (Windows XP*)*] +Parent=Opera 9.1 +Platform=WinXP +Win32=true + +[Opera/9.1* (X11; FreeBSD*)*] +Parent=Opera 9.1 +Platform=FreeBSD + +[Opera/9.1* (X11; Linux*)*] +Parent=Opera 9.1 +Platform=Linux + +[Opera/9.1* (X11; SunOS*)*] +Parent=Opera 9.1 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 9.2 + +[Opera 9.2] +Parent=DefaultProperties +Browser=Opera +Version=9.2 +MajorVer=9 +MinorVer=2 +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/* (compatible; MSIE*; Linux*) Opera 9.2*] +Parent=Opera 9.2 +Platform=Linux + +[Mozilla/* (compatible; MSIE*; Mac_PowerPC Mac OS X;*) Opera 9.2*] +Parent=Opera 9.2 +Platform=MacOSX + +[Mozilla/* (compatible; MSIE*; Mac_PowerPC) Opera 9.2*] +Parent=Opera 9.2 +Platform=MacPPC + +[Mozilla/* (compatible; MSIE*; Windows 2000*) Opera 9.2*] +Parent=Opera 9.2 +Platform=Win2000 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows 95*) Opera 9.2*] +Parent=Opera 9.2 +Platform=Win95 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows 98*) Opera 9.2*] +Parent=Opera 9.2 +Platform=Win98 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows CE*) Opera 9.2*] +Parent=Opera 9.2 +Platform=WinCE +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows ME*) Opera 9.2*] +Parent=Opera 9.2 +Platform=WinME +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 4.0*) Opera 9.2*] +Parent=Opera 9.2 +Platform=WinNT +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 5.0*) Opera 9.2*] +Parent=Opera 9.2 +Platform=Win2000 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 5.1*) Opera 9.2*] +Parent=Opera 9.2 +Platform=WinXP +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 5.2*) Opera 9.2*] +Parent=Opera 9.2 +Platform=Win2003 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 6.0*) Opera 9.2*] +Parent=Opera 9.2 +Platform=WinVista +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 6.1*) Opera 9.2*] +Parent=Opera 9.2 +Platform=Win7 + +[Mozilla/* (compatible; MSIE*; Windows XP*) Opera 9.2*] +Parent=Opera 9.2 +Platform=WinXP +Win32=true + +[Mozilla/* (compatible; MSIE*; X11; FreeBSD*) Opera 9.2*] +Parent=Opera 9.2 +Platform=FreeBSD + +[Mozilla/* (compatible; MSIE*; X11; Linux*) Opera 9.2*] +Parent=Opera 9.2 +Platform=Linux + +[Mozilla/* (compatible; MSIE*; X11; SunOS*) Opera 9.2*] +Parent=Opera 9.2 +Platform=SunOS + +[Mozilla/* (Macintosh; *Mac OS X; ?) Opera 9.2*] +Parent=Opera 9.2 +Platform=MacOSX + +[Mozilla/* (Windows 2000;*) Opera 9.2*] +Parent=Opera 9.2 +Platform=Win2000 +Win32=true + +[Mozilla/* (Windows 95;*) Opera 9.2*] +Parent=Opera 9.2 +Platform=Win95 +Win32=true + +[Mozilla/* (Windows 98;*) Opera 9.2*] +Parent=Opera 9.2 +Platform=Win98 +Win32=true + +[Mozilla/* (Windows ME;*) Opera 9.2*] +Parent=Opera 9.2 +Platform=WinME +Win32=true + +[Mozilla/* (Windows NT 4.0;*) Opera 9.2*] +Parent=Opera 9.2 +Platform=WinNT +Win32=true + +[Mozilla/* (Windows NT 5.0;*) Opera 9.2*] +Parent=Opera 9.2 +Platform=Win2000 +Win32=true + +[Mozilla/* (Windows NT 5.1;*) Opera 9.2*] +Parent=Opera 9.2 +Platform=WinXP +Win32=true + +[Mozilla/* (Windows NT 5.2;*) Opera 9.2*] +Parent=Opera 9.2 +Platform=Win2003 +Win32=true + +[Mozilla/* (Windows NT 6.0;*) Opera 9.2*] +Parent=Opera 9.2 +Platform=WinVista + +[Mozilla/* (Windows NT 6.1;*) Opera 9.2*] +Parent=Opera 9.2 +Platform=Win7 + +[Mozilla/* (X11; Linux*) Opera 9.2*] +Parent=Opera 9.2 +Platform=Linux + +[Opera/9.2* (Linux*)*] +Parent=Opera 9.2 +Platform=Linux + +[Opera/9.2* (Macintosh; *Mac OS X;*)*] +Parent=Opera 9.2 +Platform=MacOSX + +[Opera/9.2* (Windows 95*)*] +Parent=Opera 9.2 +Platform=Win95 +Win32=true + +[Opera/9.2* (Windows 98*)*] +Parent=Opera 9.2 +Platform=Win98 +Win32=true + +[Opera/9.2* (Windows CE*)*] +Parent=Opera 9.2 +Platform=WinCE +Win32=true + +[Opera/9.2* (Windows ME*)*] +Parent=Opera 9.2 +Platform=WinME +Win32=true + +[Opera/9.2* (Windows NT 4.0*)*] +Parent=Opera 9.2 +Platform=WinNT +Win32=true + +[Opera/9.2* (Windows NT 5.0*)*] +Parent=Opera 9.2 +Platform=Win2000 +Win32=true + +[Opera/9.2* (Windows NT 5.1*)*] +Parent=Opera 9.2 +Platform=WinXP +Win32=true + +[Opera/9.2* (Windows NT 5.2*)*] +Parent=Opera 9.2 +Platform=Win2003 +Win32=true + +[Opera/9.2* (Windows NT 6.0*)*] +Parent=Opera 9.2 +Platform=WinVista +Win32=true + +[Opera/9.2* (Windows NT 6.1*)*] +Parent=Opera 9.2 +Platform=Win7 + +[Opera/9.2* (Windows XP*)*] +Parent=Opera 9.2 +Platform=WinXP +Win32=true + +[Opera/9.2* (X11; FreeBSD*)*] +Parent=Opera 9.2 +Platform=FreeBSD + +[Opera/9.2* (X11; Linux*)*] +Parent=Opera 9.2 +Platform=Linux + +[Opera/9.2* (X11; SunOS*)*] +Parent=Opera 9.2 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 9.3 + +[Opera 9.3] +Parent=DefaultProperties +Browser=Opera +Version=9.3 +MajorVer=9 +MinorVer=3 +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/* (compatible; MSIE*; Linux*) Opera 9.3*] +Parent=Opera 9.3 +Platform=Linux + +[Mozilla/* (compatible; MSIE*; Mac_PowerPC Mac OS X;*) Opera 9.3*] +Parent=Opera 9.3 +Platform=MacOSX + +[Mozilla/* (compatible; MSIE*; Mac_PowerPC) Opera 9.3*] +Parent=Opera 9.3 +Platform=MacPPC + +[Mozilla/* (compatible; MSIE*; Windows 2000*) Opera 9.3*] +Parent=Opera 9.3 +Platform=Win2000 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows 95*) Opera 9.3*] +Parent=Opera 9.3 +Platform=Win95 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows 98*) Opera 9.3*] +Parent=Opera 9.3 +Platform=Win98 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows CE*) Opera 9.3*] +Parent=Opera 9.3 +Platform=WinCE +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows ME*) Opera 9.3*] +Parent=Opera 9.3 +Platform=WinME +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 4.0*) Opera 9.3*] +Parent=Opera 9.3 +Platform=WinNT +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 5.0*) Opera 9.3*] +Parent=Opera 9.3 +Platform=Win2000 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 5.1*) Opera 9.3*] +Parent=Opera 9.3 +Platform=WinXP +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 5.2*) Opera 9.3*] +Parent=Opera 9.3 +Platform=Win2003 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 6.0*) Opera 9.3*] +Parent=Opera 9.3 +Platform=WinVista +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 6.1*) Opera 9.3*] +Parent=Opera 9.3 +Platform=Win7 + +[Mozilla/* (compatible; MSIE*; Windows XP*) Opera 9.3*] +Parent=Opera 9.3 +Platform=WinXP +Win32=true + +[Mozilla/* (compatible; MSIE*; X11; FreeBSD*) Opera 9.3*] +Parent=Opera 9.3 +Platform=FreeBSD + +[Mozilla/* (compatible; MSIE*; X11; Linux*) Opera 9.3*] +Parent=Opera 9.3 +Platform=Linux + +[Mozilla/* (compatible; MSIE*; X11; SunOS*) Opera 9.3*] +Parent=Opera 9.3 +Platform=SunOS + +[Mozilla/* (Macintosh; *Mac OS X; ?) Opera 9.3*] +Parent=Opera 9.3 +Platform=MacOSX + +[Mozilla/* (Windows 2000;*) Opera 9.3*] +Parent=Opera 9.3 +Platform=Win2000 +Win32=true + +[Mozilla/* (Windows 95;*) Opera 9.3*] +Parent=Opera 9.3 +Platform=Win95 +Win32=true + +[Mozilla/* (Windows 98;*) Opera 9.3*] +Parent=Opera 9.3 +Platform=Win98 +Win32=true + +[Mozilla/* (Windows ME;*) Opera 9.3*] +Parent=Opera 9.3 +Platform=WinME +Win32=true + +[Mozilla/* (Windows NT 4.0;*) Opera 9.3*] +Parent=Opera 9.3 +Platform=WinNT +Win32=true + +[Mozilla/* (Windows NT 5.0;*) Opera 9.3*] +Parent=Opera 9.3 +Platform=Win2000 +Win32=true + +[Mozilla/* (Windows NT 5.1;*) Opera 9.3*] +Parent=Opera 9.3 +Platform=WinXP +Win32=true + +[Mozilla/* (Windows NT 5.2;*) Opera 9.3*] +Parent=Opera 9.3 +Platform=Win2003 +Win32=true + +[Mozilla/* (Windows NT 6.0;*) Opera 9.3*] +Parent=Opera 9.3 +Platform=WinVista + +[Mozilla/* (Windows NT 6.1;*) Opera 9.3*] +Parent=Opera 9.3 +Platform=Win7 + +[Mozilla/* (X11; Linux*) Opera 9.3*] +Parent=Opera 9.3 +Platform=Linux + +[Opera/9.3* (Linux*)*] +Parent=Opera 9.3 +Platform=Linux + +[Opera/9.3* (Macintosh; *Mac OS X;*)*] +Parent=Opera 9.3 +Platform=MacOSX + +[Opera/9.3* (Windows 95*)*] +Parent=Opera 9.3 +Platform=Win95 +Win32=true + +[Opera/9.3* (Windows 98*)*] +Parent=Opera 9.3 +Platform=Win98 +Win32=true + +[Opera/9.3* (Windows CE*)*] +Parent=Opera 9.3 +Platform=WinCE +Win32=true + +[Opera/9.3* (Windows ME*)*] +Parent=Opera 9.3 +Platform=WinME +Win32=true + +[Opera/9.3* (Windows NT 4.0*)*] +Parent=Opera 9.3 +Platform=WinNT +Win32=true + +[Opera/9.3* (Windows NT 5.0*)*] +Parent=Opera 9.3 +Platform=Win2000 +Win32=true + +[Opera/9.3* (Windows NT 5.1*)*] +Parent=Opera 9.3 +Platform=WinXP +Win32=true + +[Opera/9.3* (Windows NT 5.2*)*] +Parent=Opera 9.3 +Platform=Win2003 +Win32=true + +[Opera/9.3* (Windows NT 6.0*)*] +Parent=Opera 9.3 +Platform=WinVista +Win32=true + +[Opera/9.3* (Windows NT 6.1*)*] +Parent=Opera 9.3 +Platform=Win7 + +[Opera/9.3* (Windows XP*)*] +Parent=Opera 9.3 +Platform=WinXP +Win32=true + +[Opera/9.3* (X11; FreeBSD*)*] +Parent=Opera 9.3 +Platform=FreeBSD + +[Opera/9.3* (X11; Linux*)*] +Parent=Opera 9.3 +Platform=Linux + +[Opera/9.3* (X11; SunOS*)*] +Parent=Opera 9.3 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 9.4 + +[Opera 9.4] +Parent=DefaultProperties +Browser=Opera +Version=9.4 +MajorVer=9 +MinorVer=4 +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/* (compatible; MSIE*; Linux*) Opera 9.4*] +Parent=Opera 9.4 +Platform=Linux + +[Mozilla/* (compatible; MSIE*; Mac_PowerPC Mac OS X;*) Opera 9.4*] +Parent=Opera 9.4 +Platform=MacOSX + +[Mozilla/* (compatible; MSIE*; Mac_PowerPC) Opera 9.4*] +Parent=Opera 9.4 +Platform=MacPPC + +[Mozilla/* (compatible; MSIE*; Windows 2000*) Opera 9.4*] +Parent=Opera 9.4 +Platform=Win2000 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows 95*) Opera 9.4*] +Parent=Opera 9.4 +Platform=Win95 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows 98*) Opera 9.4*] +Parent=Opera 9.4 +Platform=Win98 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows CE*) Opera 9.4*] +Parent=Opera 9.4 +Platform=WinCE +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows ME*) Opera 9.4*] +Parent=Opera 9.4 +Platform=WinME +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 4.0*) Opera 9.4*] +Parent=Opera 9.4 +Platform=WinNT +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 5.0*) Opera 9.4*] +Parent=Opera 9.4 +Platform=Win2000 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 5.1*) Opera 9.4*] +Parent=Opera 9.4 +Platform=WinXP +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 5.2*) Opera 9.4*] +Parent=Opera 9.4 +Platform=Win2003 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 6.0*) Opera 9.4*] +Parent=Opera 9.4 +Platform=WinVista +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 6.1*) Opera 9.4*] +Parent=Opera 9.4 +Platform=Win7 + +[Mozilla/* (compatible; MSIE*; Windows XP*) Opera 9.4*] +Parent=Opera 9.4 +Platform=WinXP +Win32=true + +[Mozilla/* (compatible; MSIE*; X11; FreeBSD*) Opera 9.4*] +Parent=Opera 9.4 +Platform=FreeBSD + +[Mozilla/* (compatible; MSIE*; X11; Linux*) Opera 9.4*] +Parent=Opera 9.4 +Platform=Linux + +[Mozilla/* (compatible; MSIE*; X11; SunOS*) Opera 9.4*] +Parent=Opera 9.4 +Platform=SunOS + +[Mozilla/* (Macintosh; *Mac OS X; ?) Opera 9.4*] +Parent=Opera 9.4 +Platform=MacOSX + +[Mozilla/* (Windows 2000;*) Opera 9.4*] +Parent=Opera 9.4 +Platform=Win2000 +Win32=true + +[Mozilla/* (Windows 95;*) Opera 9.4*] +Parent=Opera 9.4 +Platform=Win95 +Win32=true + +[Mozilla/* (Windows 98;*) Opera 9.4*] +Parent=Opera 9.4 +Platform=Win98 +Win32=true + +[Mozilla/* (Windows ME;*) Opera 9.4*] +Parent=Opera 9.4 +Platform=WinME +Win32=true + +[Mozilla/* (Windows NT 4.0;*) Opera 9.4*] +Parent=Opera 9.4 +Platform=WinNT +Win32=true + +[Mozilla/* (Windows NT 5.0;*) Opera 9.4*] +Parent=Opera 9.4 +Platform=Win2000 +Win32=true + +[Mozilla/* (Windows NT 5.1;*) Opera 9.4*] +Parent=Opera 9.4 +Platform=WinXP +Win32=true + +[Mozilla/* (Windows NT 5.2;*) Opera 9.4*] +Parent=Opera 9.4 +Platform=Win2003 +Win32=true + +[Mozilla/* (Windows NT 6.0;*) Opera 9.4*] +Parent=Opera 9.4 +Platform=WinVista + +[Mozilla/* (Windows NT 6.1;*) Opera 9.4*] +Parent=Opera 9.4 +Platform=Win7 + +[Mozilla/* (X11; Linux*) Opera 9.4*] +Parent=Opera 9.4 +Platform=Linux + +[Opera/9.4* (Linux*)*] +Parent=Opera 9.4 +Platform=Linux + +[Opera/9.4* (Macintosh; *Mac OS X;*)*] +Parent=Opera 9.4 +Platform=MacOSX + +[Opera/9.4* (Windows 95*)*] +Parent=Opera 9.4 +Platform=Win95 +Win32=true + +[Opera/9.4* (Windows 98*)*] +Parent=Opera 9.4 +Platform=Win98 +Win32=true + +[Opera/9.4* (Windows CE*)*] +Parent=Opera 9.4 +Platform=WinCE +Win32=true + +[Opera/9.4* (Windows ME*)*] +Parent=Opera 9.4 +Platform=WinME +Win32=true + +[Opera/9.4* (Windows NT 4.0*)*] +Parent=Opera 9.4 +Platform=WinNT +Win32=true + +[Opera/9.4* (Windows NT 5.0*)*] +Parent=Opera 9.4 +Platform=Win2000 +Win32=true + +[Opera/9.4* (Windows NT 5.1*)*] +Parent=Opera 9.4 +Platform=WinXP +Win32=true + +[Opera/9.4* (Windows NT 5.2*)*] +Parent=Opera 9.4 +Platform=Win2003 +Win32=true + +[Opera/9.4* (Windows NT 6.0*)*] +Parent=Opera 9.4 +Platform=WinVista +Win32=true + +[Opera/9.4* (Windows NT 6.1*)*] +Parent=Opera 9.4 +Platform=Win7 + +[Opera/9.4* (Windows XP*)*] +Parent=Opera 9.4 +Platform=WinXP +Win32=true + +[Opera/9.4* (X11; FreeBSD*)*] +Parent=Opera 9.4 +Platform=FreeBSD + +[Opera/9.4* (X11; Linux*)*] +Parent=Opera 9.4 +Platform=Linux + +[Opera/9.4* (X11; SunOS*)*] +Parent=Opera 9.4 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 9.5 + +[Opera 9.5] +Parent=DefaultProperties +Browser=Opera +Version=9.5 +MajorVer=9 +MinorVer=5 +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/* (compatible; MSIE*; Linux*) Opera 9.5*] +Parent=Opera 9.5 +Platform=Linux + +[Mozilla/* (compatible; MSIE*; Mac_PowerPC Mac OS X;*) Opera 9.5*] +Parent=Opera 9.5 +Platform=MacOSX + +[Mozilla/* (compatible; MSIE*; Mac_PowerPC) Opera 9.5*] +Parent=Opera 9.5 +Platform=MacPPC + +[Mozilla/* (compatible; MSIE*; Windows 2000*) Opera 9.5*] +Parent=Opera 9.5 +Platform=Win2000 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows 95*) Opera 9.5*] +Parent=Opera 9.5 +Platform=Win95 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows 98*) Opera 9.5*] +Parent=Opera 9.5 +Platform=Win98 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows CE*) Opera 9.5*] +Parent=Opera 9.5 +Platform=WinCE +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows ME*) Opera 9.5*] +Parent=Opera 9.5 +Platform=WinME +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 4.0*) Opera 9.5*] +Parent=Opera 9.5 +Platform=WinNT +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 5.0*) Opera 9.5*] +Parent=Opera 9.5 +Platform=Win2000 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 5.1*) Opera 9.5*] +Parent=Opera 9.5 +Platform=WinXP +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 5.2*) Opera 9.5*] +Parent=Opera 9.5 +Platform=Win2003 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 6.0*) Opera 9.5*] +Parent=Opera 9.5 +Platform=WinVista +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 6.1*) Opera 9.5*] +Parent=Opera 9.5 +Platform=Win7 + +[Mozilla/* (compatible; MSIE*; Windows XP*) Opera 9.5*] +Parent=Opera 9.5 +Platform=WinXP +Win32=true + +[Mozilla/* (compatible; MSIE*; X11; FreeBSD*) Opera 9.5*] +Parent=Opera 9.5 +Platform=FreeBSD + +[Mozilla/* (compatible; MSIE*; X11; Linux*) Opera 9.5*] +Parent=Opera 9.5 +Platform=Linux + +[Mozilla/* (compatible; MSIE*; X11; SunOS*) Opera 9.5*] +Parent=Opera 9.5 +Platform=SunOS + +[Mozilla/* (Macintosh; *Mac OS X; ?) Opera 9.5*] +Parent=Opera 9.5 +Platform=MacOSX + +[Mozilla/* (Windows 2000;*) Opera 9.5*] +Parent=Opera 9.5 +Platform=Win2000 +Win32=true + +[Mozilla/* (Windows 95;*) Opera 9.5*] +Parent=Opera 9.5 +Platform=Win95 +Win32=true + +[Mozilla/* (Windows 98;*) Opera 9.5*] +Parent=Opera 9.5 +Platform=Win98 +Win32=true + +[Mozilla/* (Windows ME;*) Opera 9.5*] +Parent=Opera 9.5 +Platform=WinME +Win32=true + +[Mozilla/* (Windows NT 4.0;*) Opera 9.5*] +Parent=Opera 9.5 +Platform=WinNT +Win32=true + +[Mozilla/* (Windows NT 5.0;*) Opera 9.5*] +Parent=Opera 9.5 +Platform=Win2000 +Win32=true + +[Mozilla/* (Windows NT 5.1;*) Opera 9.5*] +Parent=Opera 9.5 +Platform=WinXP +Win32=true + +[Mozilla/* (Windows NT 5.2;*) Opera 9.5*] +Parent=Opera 9.5 +Platform=Win2003 +Win32=true + +[Mozilla/* (Windows NT 6.0;*) Opera 9.5*] +Parent=Opera 9.5 +Platform=WinVista + +[Mozilla/* (Windows NT 6.1;*) Opera 9.5*] +Parent=Opera 9.5 +Platform=Win7 + +[Mozilla/* (X11; Linux*) Opera 9.5*] +Parent=Opera 9.5 +Platform=Linux + +[Opera/9.5* (Linux*)*] +Parent=Opera 9.5 +Platform=Linux + +[Opera/9.5* (Macintosh; *Mac OS X;*)*] +Parent=Opera 9.5 +Platform=MacOSX + +[Opera/9.5* (Windows 95*)*] +Parent=Opera 9.5 +Platform=Win95 +Win32=true + +[Opera/9.5* (Windows 98*)*] +Parent=Opera 9.5 +Platform=Win98 +Win32=true + +[Opera/9.5* (Windows CE*)*] +Parent=Opera 9.5 +Platform=WinCE +Win32=true + +[Opera/9.5* (Windows ME*)*] +Parent=Opera 9.5 +Platform=WinME +Win32=true + +[Opera/9.5* (Windows NT 4.0*)*] +Parent=Opera 9.5 +Platform=WinNT +Win32=true + +[Opera/9.5* (Windows NT 5.0*)*] +Parent=Opera 9.5 +Platform=Win2000 +Win32=true + +[Opera/9.5* (Windows NT 5.1*)*] +Parent=Opera 9.5 +Platform=WinXP +Win32=true + +[Opera/9.5* (Windows NT 5.2*)*] +Parent=Opera 9.5 +Platform=Win2003 +Win32=true + +[Opera/9.5* (Windows NT 6.0*)*] +Parent=Opera 9.5 +Platform=WinVista +Win32=true + +[Opera/9.5* (Windows NT 6.1*)*] +Parent=Opera 9.5 +Platform=Win7 + +[Opera/9.5* (Windows XP*)*] +Parent=Opera 9.5 +Platform=WinXP +Win32=true + +[Opera/9.5* (X11; FreeBSD*)*] +Parent=Opera 9.5 +Platform=FreeBSD + +[Opera/9.5* (X11; Linux*)*] +Parent=Opera 9.5 +Platform=Linux + +[Opera/9.5* (X11; SunOS*)*] +Parent=Opera 9.5 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 9.6 + +[Opera 9.6] +Parent=DefaultProperties +Browser=Opera +Version=9.6 +MajorVer=9 +MinorVer=6 +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/* (compatible; MSIE*; Linux*) Opera 9.6*] +Parent=Opera 9.6 +Platform=Linux + +[Mozilla/* (compatible; MSIE*; Mac_PowerPC Mac OS X;*) Opera 9.6*] +Parent=Opera 9.6 +Platform=MacOSX + +[Mozilla/* (compatible; MSIE*; Mac_PowerPC) Opera 9.6*] +Parent=Opera 9.6 +Platform=MacPPC + +[Mozilla/* (compatible; MSIE*; Windows 2000*) Opera 9.6*] +Parent=Opera 9.6 +Platform=Win2000 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows 95*) Opera 9.6*] +Parent=Opera 9.6 +Platform=Win95 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows 98*) Opera 9.6*] +Parent=Opera 9.6 +Platform=Win98 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows CE*) Opera 9.6*] +Parent=Opera 9.6 +Platform=WinCE +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows ME*) Opera 9.6*] +Parent=Opera 9.6 +Platform=WinME +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 4.0*) Opera 9.6*] +Parent=Opera 9.6 +Platform=WinNT +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 5.0*) Opera 9.6*] +Parent=Opera 9.6 +Platform=Win2000 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 5.1*) Opera 9.6*] +Parent=Opera 9.6 +Platform=WinXP +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 5.2*) Opera 9.6*] +Parent=Opera 9.6 +Platform=Win2003 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 6.0*) Opera 9.6*] +Parent=Opera 9.6 +Platform=WinVista +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 6.1*) Opera 9.6*] +Parent=Opera 9.6 +Platform=Win7 + +[Mozilla/* (compatible; MSIE*; Windows XP*) Opera 9.6*] +Parent=Opera 9.6 +Platform=WinXP +Win32=true + +[Mozilla/* (compatible; MSIE*; X11; FreeBSD*) Opera 9.6*] +Parent=Opera 9.6 +Platform=FreeBSD + +[Mozilla/* (compatible; MSIE*; X11; Linux*) Opera 9.6*] +Parent=Opera 9.6 +Platform=Linux + +[Mozilla/* (compatible; MSIE*; X11; SunOS*) Opera 9.6*] +Parent=Opera 9.6 +Platform=SunOS + +[Mozilla/* (Macintosh; *Mac OS X; ?) Opera 9.6*] +Parent=Opera 9.6 +Platform=MacOSX + +[Mozilla/* (Windows 2000;*) Opera 9.6*] +Parent=Opera 9.6 +Platform=Win2000 +Win32=true + +[Mozilla/* (Windows 95;*) Opera 9.6*] +Parent=Opera 9.6 +Platform=Win95 +Win32=true + +[Mozilla/* (Windows 98;*) Opera 9.6*] +Parent=Opera 9.6 +Platform=Win98 +Win32=true + +[Mozilla/* (Windows ME;*) Opera 9.6*] +Parent=Opera 9.6 +Platform=WinME +Win32=true + +[Mozilla/* (Windows NT 4.0;*) Opera 9.6*] +Parent=Opera 9.6 +Platform=WinNT +Win32=true + +[Mozilla/* (Windows NT 5.0;*) Opera 9.6*] +Parent=Opera 9.6 +Platform=Win2000 +Win32=true + +[Mozilla/* (Windows NT 5.1;*) Opera 9.6*] +Parent=Opera 9.6 +Platform=WinXP +Win32=true + +[Mozilla/* (Windows NT 5.2;*) Opera 9.6*] +Parent=Opera 9.6 +Platform=Win2003 +Win32=true + +[Mozilla/* (Windows NT 6.0;*) Opera 9.6*] +Parent=Opera 9.6 +Platform=WinVista + +[Mozilla/* (Windows NT 6.1;*) Opera 9.6*] +Parent=Opera 9.6 +Platform=Win7 + +[Mozilla/* (X11; Linux*) Opera 9.6*] +Parent=Opera 9.6 +Platform=Linux + +[Opera/9.6* (Linux*)*] +Parent=Opera 9.6 +Platform=Linux + +[Opera/9.6* (Macintosh; *Mac OS X;*)*] +Parent=Opera 9.6 +Platform=MacOSX + +[Opera/9.6* (Windows 95*)*] +Parent=Opera 9.6 +Platform=Win95 +Win32=true + +[Opera/9.6* (Windows 98*)*] +Parent=Opera 9.6 +Platform=Win98 +Win32=true + +[Opera/9.6* (Windows CE*)*] +Parent=Opera 9.6 +Platform=WinCE +Win32=true + +[Opera/9.6* (Windows ME*)*] +Parent=Opera 9.6 +Platform=WinME +Win32=true + +[Opera/9.6* (Windows NT 4.0*)*] +Parent=Opera 9.6 +Platform=WinNT +Win32=true + +[Opera/9.6* (Windows NT 5.0*)*] +Parent=Opera 9.6 +Platform=Win2000 +Win32=true + +[Opera/9.6* (Windows NT 5.1*)*] +Parent=Opera 9.6 +Platform=WinXP +Win32=true + +[Opera/9.6* (Windows NT 5.2*)*] +Parent=Opera 9.6 +Platform=Win2003 +Win32=true + +[Opera/9.6* (Windows NT 6.0*)*] +Parent=Opera 9.6 +Platform=WinVista +Win32=true + +[Opera/9.6* (Windows NT 6.1*)*] +Parent=Opera 9.6 +Platform=Win7 + +[Opera/9.6* (Windows XP*)*] +Parent=Opera 9.6 +Platform=WinXP +Win32=true + +[Opera/9.6* (X11; FreeBSD*)*] +Parent=Opera 9.6 +Platform=FreeBSD + +[Opera/9.6* (X11; Linux*)*] +Parent=Opera 9.6 +Platform=Linux + +[Opera/9.6* (X11; SunOS*)*] +Parent=Opera 9.6 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netscape 4.0 + +[Netscape 4.0] +Parent=DefaultProperties +Browser=Netscape +Version=4.0 +MajorVer=4 +Frames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=1 +supportsCSS=true + +[Mozilla/4.0*(Macintosh*] +Parent=Netscape 4.0 +Version=4.03 +MinorVer=03 +Platform=MacPPC + +[Mozilla/4.0*(Win95;*] +Parent=Netscape 4.0 +Platform=Win95 + +[Mozilla/4.0*(Win98;*] +Parent=Netscape 4.0 +Version=4.03 +MinorVer=03 +Platform=Win98 + +[Mozilla/4.0*(WinNT*] +Parent=Netscape 4.0 +Version=4.03 +MinorVer=03 +Platform=WinNT + +[Mozilla/4.0*(X11;*)] +Parent=Netscape 4.0 +Platform=Linux + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netscape 4.5 + +[Netscape 4.5] +Parent=DefaultProperties +Browser=Netscape +Version=4.5 +MajorVer=4 +MinorVer=5 +Frames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=1 +supportsCSS=true + +[Mozilla/4.5*(Macintosh; ?; PPC)] +Parent=Netscape 4.5 +Platform=MacPPC + +[Mozilla/4.5*(Win2000; ?)] +Parent=Netscape 4.5 +Platform=Win2000 + +[Mozilla/4.5*(Win95; ?)] +Parent=Netscape 4.5 +Platform=Win95 + +[Mozilla/4.5*(Win98; ?)] +Parent=Netscape 4.5 +Platform=Win98 + +[Mozilla/4.5*(WinME; ?)] +Parent=Netscape 4.5 +Platform=WinME + +[Mozilla/4.5*(WinNT; ?)] +Parent=Netscape 4.5 +Platform=WinNT + +[Mozilla/4.5*(WinXP; ?)] +Parent=Netscape 4.5 +Platform=WinXP + +[Mozilla/4.5*(X11*)] +Parent=Netscape 4.5 +Platform=Linux + +[Mozilla/4.51*(Macintosh; ?; PPC)] +Parent=Netscape 4.5 +Version=4.51 +MinorVer=51 + +[Mozilla/4.51*(Win2000; ?)] +Parent=Netscape 4.5 +Version=4.51 +MinorVer=51 +Platform=Win2000 + +[Mozilla/4.51*(Win95; ?)] +Parent=Netscape 4.5 +Version=4.51 +MinorVer=51 +Platform=Win95 + +[Mozilla/4.51*(Win98; ?)] +Parent=Netscape 4.5 +Version=4.51 +MinorVer=51 +Platform=Win98 + +[Mozilla/4.51*(WinME; ?)] +Parent=Netscape 4.5 +Version=4.51 +MinorVer=51 +Platform=WinME + +[Mozilla/4.51*(WinNT; ?)] +Parent=Netscape 4.5 +Version=4.51 +MinorVer=51 +Platform=WinNT + +[Mozilla/4.51*(WinXP; ?)] +Parent=Netscape 4.5 +Version=4.51 +MinorVer=51 +Platform=WinXP + +[Mozilla/4.51*(X11*)] +Parent=Netscape 4.5 +Version=4.51 +MinorVer=51 +Platform=Linux + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netscape 4.6 + +[Netscape 4.6] +Parent=DefaultProperties +Browser=Netscape +Version=4.6 +MajorVer=4 +MinorVer=6 +Frames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=1 +supportsCSS=true + +[Mozilla/4.6 * (OS/2; ?)] +Parent=Netscape 4.6 +Platform=OS/2 + +[Mozilla/4.6*(Macintosh; ?; PPC)] +Parent=Netscape 4.6 +Platform=MacPPC + +[Mozilla/4.6*(Win95; ?)] +Parent=Netscape 4.6 +Platform=Win95 + +[Mozilla/4.6*(Win98; ?)] +Parent=Netscape 4.6 +Platform=Win98 + +[Mozilla/4.6*(WinNT; ?)] +Parent=Netscape 4.6 +Platform=WinNT + +[Mozilla/4.61*(Macintosh; ?; PPC)] +Parent=Netscape 4.6 +Version=4.61 +MajorVer=4 +MinorVer=61 +Platform=MacPPC + +[Mozilla/4.61*(OS/2; ?)] +Parent=Netscape 4.6 +Version=4.61 +MajorVer=4 +MinorVer=61 +Platform=OS/2 + +[Mozilla/4.61*(Win95; ?)] +Parent=Netscape 4.6 +Version=4.61 +MajorVer=4 +MinorVer=61 +Platform=Win95 + +[Mozilla/4.61*(Win98; ?)] +Parent=Netscape 4.6 +Version=4.61 +Platform=Win98 + +[Mozilla/4.61*(WinNT; ?)] +Parent=Netscape 4.6 +Version=4.61 +MajorVer=4 +MinorVer=61 +Platform=WinNT + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netscape 4.7 + +[Netscape 4.7] +Parent=DefaultProperties +Browser=Netscape +Version=4.7 +MajorVer=4 +MinorVer=7 +Frames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=1 +supportsCSS=true + +[Mozilla/4.7 * (Win2000; ?)] +Parent=Netscape 4.7 +Platform=Win2000 + +[Mozilla/4.7*(Macintosh; ?; PPC)*] +Parent=Netscape 4.7 +MinorVer=7 +Platform=MacPPC + +[Mozilla/4.7*(Win95; ?)*] +Parent=Netscape 4.7 +MinorVer=7 +Platform=Win95 + +[Mozilla/4.7*(Win98; ?)*] +Parent=Netscape 4.7 +MinorVer=7 +Platform=Win98 + +[Mozilla/4.7*(Windows NT 4.0; ?)*] +Parent=Netscape 4.7 +MinorVer=7 +Platform=WinNT +Win32=true + +[Mozilla/4.7*(Windows NT 5.0; ?)*] +Parent=Netscape 4.7 +MinorVer=7 +Platform=Win2000 +Win32=true + +[Mozilla/4.7*(Windows NT 5.1; ?)*] +Parent=Netscape 4.7 +MinorVer=7 +Platform=WinXP +Win32=true + +[Mozilla/4.7*(WinNT; ?)*] +Parent=Netscape 4.7 +Platform=WinNT + +[Mozilla/4.7*(X11*)*] +Parent=Netscape 4.7 +Platform=Linux + +[Mozilla/4.7*(X11; ?; SunOS*)*] +Parent=Netscape 4.7 +Platform=SunOS + +[Mozilla/4.71*(Macintosh; ?; PPC)*] +Parent=Netscape 4.7 +Version=4.71 +MinorVer=71 +Platform=MacPPC + +[Mozilla/4.71*(Win95; ?)*] +Parent=Netscape 4.7 +Version=4.71 +MinorVer=71 +Platform=Win95 + +[Mozilla/4.71*(Win98; ?)*] +Parent=Netscape 4.7 +Version=4.71 +MinorVer=71 +Platform=Win98 + +[Mozilla/4.71*(Windows NT 4.0; ?)*] +Parent=Netscape 4.7 +Version=4.71 +MinorVer=71 +Platform=WinNT +Win32=true + +[Mozilla/4.71*(Windows NT 5.0; ?)*] +Parent=Netscape 4.7 +Version=4.71 +MinorVer=71 +Platform=Win2000 +Win32=true + +[Mozilla/4.71*(Windows NT 5.1; ?)*] +Parent=Netscape 4.7 +Version=4.71 +MinorVer=71 +Platform=WinXP +Win32=true + +[Mozilla/4.71*(WinNT; ?)*] +Parent=Netscape 4.7 +Version=4.71 +MinorVer=71 +Platform=WinNT + +[Mozilla/4.71*(X11*)*] +Parent=Netscape 4.7 +Version=4.71 +MinorVer=71 +Platform=Linux + +[Mozilla/4.71*(X11; ?; SunOS*)*] +Parent=Netscape 4.7 +Version=4.71 +MinorVer=71 +Platform=SunOS + +[Mozilla/4.72*(Macintosh; ?; PPC)*] +Parent=Netscape 4.7 +MinorVer=72 +Platform=MacPPC + +[Mozilla/4.72*(Win95; ?)*] +Parent=Netscape 4.7 +MinorVer=72 +Platform=Win95 + +[Mozilla/4.72*(Win98; ?)*] +Parent=Netscape 4.7 +MinorVer=72 +Platform=Win98 + +[Mozilla/4.72*(Windows NT 4.0; ?)*] +Parent=Netscape 4.7 +MinorVer=72 +Platform=WinNT +Win32=true + +[Mozilla/4.72*(Windows NT 5.0; ?)*] +Parent=Netscape 4.7 +MinorVer=72 +Platform=Win2000 +Win32=true + +[Mozilla/4.72*(Windows NT 5.1; ?)*] +Parent=Netscape 4.7 +MinorVer=72 +Platform=WinXP +Win32=true + +[Mozilla/4.72*(WinNT; ?)*] +Parent=Netscape 4.7 +MinorVer=72 +Platform=WinNT + +[Mozilla/4.72*(X11*)*] +Parent=Netscape 4.7 +MinorVer=72 +Platform=Linux + +[Mozilla/4.72*(X11; ?; SunOS*)*] +Parent=Netscape 4.7 +MinorVer=72 +Platform=SunOS + +[Mozilla/4.73*(Macintosh; ?; PPC)*] +Parent=Netscape 4.7 +MinorVer=73 +Platform=MacPPC + +[Mozilla/4.73*(Win95; ?)*] +Parent=Netscape 4.7 +MinorVer=73 +Platform=Win95 + +[Mozilla/4.73*(Win98; ?)*] +Parent=Netscape 4.7 +MinorVer=73 +Platform=Win98 + +[Mozilla/4.73*(Windows NT 4.0; ?)*] +Parent=Netscape 4.7 +MinorVer=73 +Platform=WinNT +Win32=true + +[Mozilla/4.73*(Windows NT 5.0; ?)*] +Parent=Netscape 4.7 +MinorVer=73 +Platform=Win2000 +Win32=true + +[Mozilla/4.73*(Windows NT 5.1; ?)*] +Parent=Netscape 4.7 +MinorVer=73 +Platform=WinXP +Win32=true + +[Mozilla/4.73*(WinNT; ?)*] +Parent=Netscape 4.7 +MinorVer=73 +Platform=WinNT + +[Mozilla/4.73*(X11*)*] +Parent=Netscape 4.7 +MinorVer=73 +Platform=Linux + +[Mozilla/4.73*(X11; ?; SunOS*)*] +Parent=Netscape 4.7 +MinorVer=73 +Platform=SunOS + +[Mozilla/4.74*(Macintosh; ?; PPC)*] +Parent=Netscape 4.7 +MinorVer=74 +Platform=MacPPC + +[Mozilla/4.74*(Win95; ?)*] +Parent=Netscape 4.7 +MinorVer=74 +Platform=Win95 + +[Mozilla/4.74*(Win98; ?)*] +Parent=Netscape 4.7 +MinorVer=74 +Platform=Win98 + +[Mozilla/4.74*(Windows NT 4.0; ?)*] +Parent=Netscape 4.7 +MinorVer=74 +Platform=WinNT +Win32=true + +[Mozilla/4.74*(Windows NT 5.0; ?)*] +Parent=Netscape 4.7 +MinorVer=74 +Platform=Win2000 +Win32=true + +[Mozilla/4.74*(Windows NT 5.1; ?)*] +Parent=Netscape 4.7 +MinorVer=74 +Platform=WinXP +Win32=true + +[Mozilla/4.74*(WinNT; ?)*] +Parent=Netscape 4.7 +MinorVer=74 +Platform=WinNT + +[Mozilla/4.74*(X11*)*] +Parent=Netscape 4.7 +MinorVer=74 +Platform=Linux + +[Mozilla/4.74*(X11; ?; SunOS*)*] +Parent=Netscape 4.7 +MinorVer=74 +Platform=SunOS + +[Mozilla/4.75*(Macintosh; ?; PPC)*] +Parent=Netscape 4.7 +MinorVer=75 +Platform=MacPPC + +[Mozilla/4.75*(Win95; ?)*] +Parent=Netscape 4.7 +MinorVer=75 +Platform=Win95 + +[Mozilla/4.75*(Win98; ?)*] +Parent=Netscape 4.7 +MinorVer=75 +Platform=Win98 + +[Mozilla/4.75*(Windows NT 4.0; ?)*] +Parent=Netscape 4.7 +MinorVer=75 +Platform=WinNT +Win32=true + +[Mozilla/4.75*(Windows NT 5.0; ?)*] +Parent=Netscape 4.7 +MinorVer=75 +Platform=Win2000 +Win32=true + +[Mozilla/4.75*(Windows NT 5.1; ?)*] +Parent=Netscape 4.7 +MinorVer=75 +Platform=WinXP +Win32=true + +[Mozilla/4.75*(WinNT; ?)*] +Parent=Netscape 4.7 +MinorVer=75 +Platform=WinNT + +[Mozilla/4.75*(X11*)*] +Parent=Netscape 4.7 +MinorVer=75 +Platform=Linux + +[Mozilla/4.75*(X11; ?; SunOS*)*] +Parent=Netscape 4.7 +MinorVer=75 +Platform=SunOS + +[Mozilla/4.76*(Macintosh; ?; PPC)*] +Parent=Netscape 4.7 +MinorVer=76 +Platform=MacPPC + +[Mozilla/4.76*(Win95; ?)*] +Parent=Netscape 4.7 +MinorVer=76 +Platform=Win95 + +[Mozilla/4.76*(Win98; ?)*] +Parent=Netscape 4.7 +MinorVer=76 +Platform=Win98 + +[Mozilla/4.76*(Windows NT 4.0; ?)*] +Parent=Netscape 4.7 +MinorVer=76 +Platform=WinNT +Win32=true + +[Mozilla/4.76*(Windows NT 5.0; ?)*] +Parent=Netscape 4.7 +MinorVer=76 +Platform=Win2000 +Win32=true + +[Mozilla/4.76*(Windows NT 5.1; ?)*] +Parent=Netscape 4.7 +MinorVer=76 +Platform=WinXP +Win32=true + +[Mozilla/4.76*(WinNT; ?)*] +Parent=Netscape 4.7 +MinorVer=76 +Platform=WinNT + +[Mozilla/4.76*(X11*)*] +Parent=Netscape 4.7 +MinorVer=76 +Platform=Linux + +[Mozilla/4.76*(X11; ?; SunOS*)*] +Parent=Netscape 4.7 +MinorVer=76 +Platform=SunOS + +[Mozilla/4.77*(Macintosh; ?; PPC)*] +Parent=Netscape 4.7 +MinorVer=77 +Platform=MacPPC + +[Mozilla/4.77*(Win95; ?)*] +Parent=Netscape 4.7 +MinorVer=77 +Platform=Win95 + +[Mozilla/4.77*(Win98; ?)*] +Parent=Netscape 4.7 +MinorVer=77 +Platform=Win98 + +[Mozilla/4.77*(Windows NT 4.0; ?)*] +Parent=Netscape 4.7 +MinorVer=77 +Platform=WinNT +Win32=true + +[Mozilla/4.77*(Windows NT 5.0; ?)*] +Parent=Netscape 4.7 +MinorVer=77 +Platform=Win2000 +Win32=true + +[Mozilla/4.77*(Windows NT 5.1; ?)*] +Parent=Netscape 4.7 +MinorVer=77 +Platform=WinXP +Win32=true + +[Mozilla/4.77*(WinNT; ?)*] +Parent=Netscape 4.7 +MinorVer=77 +Platform=WinNT + +[Mozilla/4.77*(X11*)*] +Parent=Netscape 4.7 +MinorVer=77 +Platform=Linux + +[Mozilla/4.77*(X11; ?; SunOS*)*] +Parent=Netscape 4.7 +MinorVer=77 +Platform=SunOS + +[Mozilla/4.78*(Macintosh; ?; PPC)*] +Parent=Netscape 4.7 +MinorVer=78 +Platform=MacPPC + +[Mozilla/4.78*(Win95; ?)*] +Parent=Netscape 4.7 +MinorVer=78 +Platform=Win95 + +[Mozilla/4.78*(Win98; ?)*] +Parent=Netscape 4.7 +MinorVer=78 +Platform=Win98 + +[Mozilla/4.78*(Windows NT 4.0; ?)*] +Parent=Netscape 4.7 +MinorVer=78 +Platform=WinNT +Win32=true + +[Mozilla/4.78*(Windows NT 5.0; ?)*] +Parent=Netscape 4.7 +MinorVer=78 +Platform=Win2000 +Win32=true + +[Mozilla/4.78*(Windows NT 5.1; ?)*] +Parent=Netscape 4.7 +MinorVer=78 +Platform=WinXP +Win32=true + +[Mozilla/4.78*(WinNT; ?)*] +Parent=Netscape 4.7 +MinorVer=78 +Platform=WinNT + +[Mozilla/4.78*(X11*)*] +Parent=Netscape 4.7 +MinorVer=78 +Platform=Linux + +[Mozilla/4.78*(X11; ?; SunOS*)*] +Parent=Netscape 4.7 +MinorVer=78 +Platform=SunOS + +[Mozilla/4.79*(Macintosh; ?; PPC)*] +Parent=Netscape 4.7 +Version=4.79 +MinorVer=79 +Platform=MacPPC + +[Mozilla/4.79*(Win95; ?)*] +Parent=Netscape 4.7 +Version=4.79 +MinorVer=79 +Platform=Win95 + +[Mozilla/4.79*(Win98; ?)*] +Parent=Netscape 4.7 +Version=4.79 +MinorVer=79 +Platform=Win98 + +[Mozilla/4.79*(Windows NT 4.0; ?)*] +Parent=Netscape 4.7 +Version=4.79 +MinorVer=79 +Platform=WinNT +Win32=true + +[Mozilla/4.79*(Windows NT 5.0; ?)*] +Parent=Netscape 4.7 +Version=4.79 +MinorVer=79 +Platform=Win2000 +Win32=true + +[Mozilla/4.79*(Windows NT 5.1; ?)*] +Parent=Netscape 4.7 +Version=4.79 +MinorVer=79 +Platform=WinXP +Win32=true + +[Mozilla/4.79*(WinNT; ?)*] +Parent=Netscape 4.7 +Version=4.79 +MinorVer=79 +Platform=WinNT + +[Mozilla/4.79*(X11*)*] +Parent=Netscape 4.7 +Version=4.79 +MinorVer=79 +Platform=Linux + +[Mozilla/4.79*(X11; ?; SunOS*)*] +Parent=Netscape 4.7 +Version=4.79 +MinorVer=79 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netscape 4.8 + +[Netscape 4.8] +Parent=DefaultProperties +Browser=Netscape +Version=4.8 +MajorVer=4 +MinorVer=8 +Frames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=1 +supportsCSS=true + +[Mozilla/4.8*(Macintosh; ?; MacPPC)*] +Parent=Netscape 4.8 +Platform=MacPPC + +[Mozilla/4.8*(Macintosh; ?; PPC Mac OS X*] +Parent=Netscape 4.8 +Platform=MacOSX + +[Mozilla/4.8*(Macintosh; ?; PPC)*] +Parent=Netscape 4.8 +Platform=MacPPC + +[Mozilla/4.8*(Win95; *)*] +Parent=Netscape 4.8 + +[Mozilla/4.8*(Win98; *)*] +Parent=Netscape 4.8 +Platform=Win98 + +[Mozilla/4.8*(Windows NT 4.0; *)*] +Parent=Netscape 4.8 +Platform=WinNT +Win32=true + +[Mozilla/4.8*(Windows NT 5.0; *)*] +Parent=Netscape 4.8 +Platform=Win2000 +Win32=true + +[Mozilla/4.8*(Windows NT 5.1; *)*] +Parent=Netscape 4.8 +Platform=WinXP +Win32=true + +[Mozilla/4.8*(WinNT; *)*] +Parent=Netscape 4.8 +Platform=WinNT + +[Mozilla/4.8*(X11; *)*] +Parent=Netscape 4.8 +Platform=Linux + +[Mozilla/4.8*(X11; *SunOS*)*] +Parent=Netscape 4.8 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netscape 6.0 + +[Netscape 6.0] +Parent=DefaultProperties +Browser=Netscape +Version=6.0 +MajorVer=6 +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (Macintosh; ?; PPC;*) Gecko/* Netscape6/6.0*] +Parent=Netscape 6.0 +Platform=MacPPC + +[Mozilla/5.0 (Windows; ?; Win95;*) Gecko/* Netscape6/6.0*] +Parent=Netscape 6.0 +Platform=Win95 +Win32=true + +[Mozilla/5.0 (Windows; ?; Win98; *) Gecko/* Netscape6/6.0*] +Parent=Netscape 6.0 +Platform=Win98 +Win32=true + +[Mozilla/5.0 (Windows; ?; Win9x 4.90; *) Gecko/* Netscape6/6.0*] +Parent=Netscape 6.0 +Platform=WinME +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 4.0; *) Gecko/* Netscape6/6.0*] +Parent=Netscape 6.0 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.0; *) Gecko/* Netscape6/6.0*] +Parent=Netscape 6.0 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *) Gecko/* Netscape6/6.0*] +Parent=Netscape 6.0 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.2; *) Gecko/* Netscape6/6.0*] +Parent=Netscape 6.0 +Platform=WinXP + +[Mozilla/5.0 (Windows; ?; Windows NT 6.0; *) Gecko/* Netscape6/6.0*] +Parent=Netscape 6.0 +Platform=WinVista + +[Mozilla/5.0 (Windows; ?; Windows NT 6.1; *) Gecko/* Netscape6/6.0*] +Parent=Netscape 6.0 +Platform=Win7 + +[Mozilla/5.0 (Windows; ?; WinNT4.0; *) Gecko/* Netscape6/6.0*] +Parent=Netscape 6.0 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT5.0; *) Gecko/* Netscape6/6.0*] +Parent=Netscape 6.0 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT5.1; *) Gecko/* Netscape6/6.0*] +Parent=Netscape 6.0 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT5.2; *) Gecko/* Netscape6/6.0*] +Parent=Netscape 6.0 +Platform=WinXP + +[Mozilla/5.0 (Windows; ?; WinNT6.0; *) Gecko/* Netscape6/6.0*] +Parent=Netscape 6.0 +Platform=WinVista + +[Mozilla/5.0 (Windows; ?; WinNT6.1; *) Gecko/* Netscape6/6.0*] +Parent=Netscape 6.0 +Platform=Win7 + +[Mozilla/5.0 (X11; ?; *) Gecko/* Netscape6/6.0*] +Parent=Netscape 6.0 +Platform=Linux + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netscape 6.1 + +[Netscape 6.1] +Parent=DefaultProperties +Browser=Netscape +Version=6.1 +MajorVer=6 +MinorVer=1 +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (Macintosh; ?; PPC;*) Gecko/* Netscape6/6.1*] +Parent=Netscape 6.1 +Platform=MacPPC + +[Mozilla/5.0 (Windows; ?; Win95;*) Gecko/* Netscape6/6.1*] +Parent=Netscape 6.1 +Platform=Win95 +Win32=true + +[Mozilla/5.0 (Windows; ?; Win98; *) Gecko/* Netscape6/6.1*] +Parent=Netscape 6.1 +Platform=Win98 +Win32=true + +[Mozilla/5.0 (Windows; ?; Win9x 4.90; *) Gecko/* Netscape6/6.1*] +Parent=Netscape 6.1 +Platform=WinME +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 4.0; *) Gecko/* Netscape6/6.1*] +Parent=Netscape 6.1 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.0; *) Gecko/* Netscape6/6.1*] +Parent=Netscape 6.1 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *) Gecko/* Netscape6/6.1*] +Parent=Netscape 6.1 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.2; *) Gecko/* Netscape6/6.1*] +Parent=Netscape 6.1 +Platform=WinXP + +[Mozilla/5.0 (Windows; ?; Windows NT 6.0; *) Gecko/* Netscape6/6.1*] +Parent=Netscape 6.1 +Platform=WinVista + +[Mozilla/5.0 (Windows; ?; Windows NT 6.1; *) Gecko/* Netscape6/6.1*] +Parent=Netscape 6.1 +Platform=Win7 + +[Mozilla/5.0 (Windows; ?; WinNT4.0; *) Gecko/* Netscape6/6.1*] +Parent=Netscape 6.1 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT5.0; *) Gecko/* Netscape6/6.1*] +Parent=Netscape 6.1 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT5.1; *) Gecko/* Netscape6/6.1*] +Parent=Netscape 6.1 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT5.2; *) Gecko/* Netscape6/6.1*] +Parent=Netscape 6.1 +Platform=WinXP + +[Mozilla/5.0 (Windows; ?; WinNT6.0; *) Gecko/* Netscape6/6.1*] +Parent=Netscape 6.1 +Platform=WinVista + +[Mozilla/5.0 (Windows; ?; WinNT6.1; *) Gecko/* Netscape6/6.1*] +Parent=Netscape 6.1 +Platform=Win7 + +[Mozilla/5.0 (X11; ?; *) Gecko/* Netscape6/6.1*] +Parent=Netscape 6.1 +Platform=Linux + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netscape 6.2 + +[Netscape 6.2] +Parent=DefaultProperties +Browser=Netscape +Version=6.2 +MajorVer=6 +MinorVer=2 +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (Macintosh; ?; PPC Mac OS X*) Gecko/* Netscape6/6.2*] +Parent=Netscape 6.2 +Platform=MacOSX + +[Mozilla/5.0 (Macintosh; ?; PPC;*) Gecko/* Netscape6/6.2*] +Parent=Netscape 6.2 +Platform=MacPPC + +[Mozilla/5.0 (Windows; ?; Win 9x 4.90; *) Gecko/* Netscape6/6.2*] +Parent=Netscape 6.2 +Win32=true + +[Mozilla/5.0 (Windows; ?; Win95;*) Gecko/* Netscape6/6.2*] +Parent=Netscape 6.2 +Platform=Win95 +Win32=true + +[Mozilla/5.0 (Windows; ?; Win98; *) Gecko/* Netscape6/6.2*] +Parent=Netscape 6.2 +Platform=Win98 +Win32=true + +[Mozilla/5.0 (Windows; ?; Win9x 4.90; *) Gecko/* Netscape6/6.2*] +Parent=Netscape 6.2 +Platform=WinME +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 4.0; *) Gecko/* Netscape6/6.2*] +Parent=Netscape 6.2 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.0; *) Gecko/* Netscape6/6.2*] +Parent=Netscape 6.2 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *) Gecko/* Netscape6/6.2*] +Parent=Netscape 6.2 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.2; *) Gecko/* Netscape6/6.2*] +Parent=Netscape 6.2 +Platform=Win2003 +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 6.0; *) Gecko/* Netscape6/6.2*] +Parent=Netscape 6.2 +Platform=WinVista + +[Mozilla/5.0 (Windows; ?; Windows NT 6.1; *) Gecko/* Netscape6/6.2*] +Parent=Netscape 6.2 +Platform=Win7 + +[Mozilla/5.0 (Windows; ?; WinNT4.0; *) Gecko/* Netscape6/6.2*] +Parent=Netscape 6.2 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT5.0; *) Gecko/* Netscape6/6.2*] +Parent=Netscape 6.2 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT5.1; *) Gecko/* Netscape6/6.2*] +Parent=Netscape 6.2 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT5.2; *) Gecko/* Netscape6/6.2*] +Parent=Netscape 6.2 +Platform=Win2003 +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT6.0; *) Gecko/* Netscape6/6.2*] +Parent=Netscape 6.2 +Platform=WinVista + +[Mozilla/5.0 (Windows; ?; WinNT6.1; *) Gecko/* Netscape6/6.2*] +Parent=Netscape 6.2 +Platform=Win7 + +[Mozilla/5.0 (X11; ?; *) Gecko/* Netscape6/6.2*] +Parent=Netscape 6.2 +Platform=Linux + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netscape 7.0 + +[Netscape 7.0] +Parent=DefaultProperties +Browser=Netscape +Version=7.0 +MajorVer=7 +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (Macintosh; ?; PPC Mac OS X;*) Gecko/* Netscape*/7.0*] +Parent=Netscape 7.0 +Platform=MacOSX + +[Mozilla/5.0 (Macintosh; ?; PPC;*) Gecko/* Netscape*/7.0*] +Parent=Netscape 7.0 +Platform=MacPPC + +[Mozilla/5.0 (Windows; ?; Win*9x 4.90; *) Gecko/* Netscape*/7.0*] +Parent=Netscape 7.0 +Platform=WinME +Win32=true + +[Mozilla/5.0 (Windows; ?; Win95;*) Gecko/* Netscape*/7.0*] +Parent=Netscape 7.0 +Platform=Win95 +Win32=true + +[Mozilla/5.0 (Windows; ?; Win98; *) Gecko/* Netscape*/7.0*] +Parent=Netscape 7.0 +Platform=Win98 +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 4.0; *) Gecko/* Netscape*/7.0*] +Parent=Netscape 7.0 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.0; *) Gecko/* Netscape*/7.0*] +Parent=Netscape 7.0 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *) Gecko/* Netscape*/7.0*] +Parent=Netscape 7.0 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.2; *) Gecko/* Netscape*/7.0*] +Parent=Netscape 7.0 +Platform=Win2003 +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 6.0; *) Gecko/* Netscape*/7.0*] +Parent=Netscape 7.0 +Platform=WinVista + +[Mozilla/5.0 (Windows; ?; Windows NT 6.1; *) Gecko/* Netscape*/7.0*] +Parent=Netscape 7.0 +Platform=Win7 + +[Mozilla/5.0 (Windows; ?; WinNT4.0; *) Gecko/* Netscape*/7.0*] +Parent=Netscape 7.0 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT5.0; *) Gecko/* Netscape*/7.0*] +Parent=Netscape 7.0 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT5.1; *) Gecko/* Netscape*/7.0*] +Parent=Netscape 7.0 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT5.2; *) Gecko/* Netscape*/7.0*] +Parent=Netscape 7.0 +Platform=Win2003 +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT6.0; *) Gecko/* Netscape*/7.0*] +Parent=Netscape 7.0 +Platform=WinVista + +[Mozilla/5.0 (Windows; ?; WinNT6.1; *) Gecko/* Netscape*/7.0*] +Parent=Netscape 7.0 +Platform=Win7 + +[Mozilla/5.0 (X11; ?; *) Gecko/* Netscape*/7.0*] +Parent=Netscape 7.0 +Platform=Linux + +[Mozilla/5.0 (X11; ?; SunOS*) Gecko/* Netscape*/7.0*] +Parent=Netscape 7.0 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netscape 7.1 + +[Netscape 7.1] +Parent=DefaultProperties +Browser=Netscape +Version=7.1 +MajorVer=7 +MinorVer=1 +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (Macintosh; ?; PPC Mac OS X Mach-O; *; rv:*) Gecko/* Netscape*/7.1] +Parent=Netscape 7.1 +Platform=MacOSX + +[Mozilla/5.0 (Macintosh; ?; PPC Mac OS X;*) Gecko/* Netscape*/7.1*] +Parent=Netscape 7.1 +Platform=MacOSX + +[Mozilla/5.0 (Macintosh; ?; PPC;*) Gecko/* Netscape*/7.1*] +Parent=Netscape 7.1 +Platform=MacPPC + +[Mozilla/5.0 (Windows; ?; Win 9x 4.90; *) Gecko/* Netscape*/7.1*] +Parent=Netscape 7.1 +Platform=WinME +Win32=true + +[Mozilla/5.0 (Windows; ?; Win95;*) Gecko/* Netscape*/7.1*] +Parent=Netscape 7.1 +Platform=Win95 +Win32=true + +[Mozilla/5.0 (Windows; ?; Win98; *) Gecko/* Netscape*/7.1*] +Parent=Netscape 7.1 +Platform=Win98 +Win32=true + +[Mozilla/5.0 (Windows; ?; Win9x 4.90; *) Gecko/* Netscape*/7.1*] +Parent=Netscape 7.1 +Platform=WinME +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 4.0; *) Gecko/* Netscape*/7.1*] +Parent=Netscape 7.1 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.0; *) Gecko/* Netscape*/7.1*] +Parent=Netscape 7.1 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *) Gecko/* Netscape*/7.1*] +Parent=Netscape 7.1 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.2; *) Gecko/* Netscape*/7.1*] +Parent=Netscape 7.1 +Platform=Win2003 +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 6.0; *) Gecko/* Netscape*/7.1*] +Parent=Netscape 7.1 +Platform=WinVista + +[Mozilla/5.0 (Windows; ?; Windows NT 6.1; *) Gecko/* Netscape*/7.1*] +Parent=Netscape 7.1 +Platform=Win7 + +[Mozilla/5.0 (Windows; ?; WinNT4.0; *) Gecko/* Netscape*/7.1*] +Parent=Netscape 7.1 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT5.0; *) Gecko/* Netscape*/7.1*] +Parent=Netscape 7.1 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT5.1; *) Gecko/* Netscape*/7.1*] +Parent=Netscape 7.1 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT5.2; *) Gecko/* Netscape*/7.1*] +Parent=Netscape 7.1 +Platform=Win2003 +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT6.0; *) Gecko/* Netscape*/7.1*] +Parent=Netscape 7.1 +Platform=WinVista + +[Mozilla/5.0 (Windows; ?; WinNT6.1; *) Gecko/* Netscape*/7.1*] +Parent=Netscape 7.1 +Platform=Win7 + +[Mozilla/5.0 (X11; ?; *) Gecko/* Netscape*/7.1*] +Parent=Netscape 7.1 +Platform=Linux + +[Mozilla/5.0 (X11; ?; SunOS*) Gecko/* Netscape*/7.1*] +Parent=Netscape 7.1 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netscape 7.2 + +[Netscape 7.2] +Parent=DefaultProperties +Browser=Netscape +Version=7.2 +MajorVer=7 +MinorVer=2 +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (Macintosh; ?; PPC Mac OS X Mach-O; *; rv:*) Gecko/* Netscape*/7.2*] +Parent=Netscape 7.2 +Platform=MacOSX + +[Mozilla/5.0 (Macintosh; ?; PPC Mac OS X;*) Gecko/* Netscape*/7.2*] +Parent=Netscape 7.2 +Platform=MacOSX + +[Mozilla/5.0 (Macintosh; ?; PPC;*) Gecko/* Netscape*/7.2*] +Parent=Netscape 7.2 +Platform=MacPPC + +[Mozilla/5.0 (Windows; ?; Win 9x 4.90; *) Gecko/* Netscape*/7.2*] +Parent=Netscape 7.2 +Platform=WinME +Win32=true + +[Mozilla/5.0 (Windows; ?; Win95;*) Gecko/* Netscape*/7.2*] +Parent=Netscape 7.2 +Platform=Win95 +Win32=true + +[Mozilla/5.0 (Windows; ?; Win98; *) Gecko/* Netscape*/7.2*] +Parent=Netscape 7.2 +Platform=Win98 +Win32=true + +[Mozilla/5.0 (Windows; ?; Win9x 4.90; *) Gecko/* Netscape*/7.2*] +Parent=Netscape 7.2 +Platform=WinME +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 4.0; *) Gecko/* Netscape*/7.2*] +Parent=Netscape 7.2 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.0; *) Gecko/* Netscape*/7.2*] +Parent=Netscape 7.2 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *) Gecko/* Netscape*/7.2*] +Parent=Netscape 7.2 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.2; *) Gecko/* Netscape*/7.2*] +Parent=Netscape 7.2 +Platform=Win2003 +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 6.0; *) Gecko/* Netscape*/7.2*] +Parent=Netscape 7.2 +Platform=WinVista + +[Mozilla/5.0 (Windows; ?; Windows NT 6.1; *) Gecko/* Netscape*/7.2*] +Parent=Netscape 7.2 +Platform=Win7 + +[Mozilla/5.0 (Windows; ?; WinNT4.0; *) Gecko/* Netscape*/7.2*] +Parent=Netscape 7.2 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT5.0; *) Gecko/* Netscape*/7.2*] +Parent=Netscape 7.2 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT5.1; *) Gecko/* Netscape*/7.2*] +Parent=Netscape 7.2 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT5.2; *) Gecko/* Netscape*/7.2*] +Parent=Netscape 7.2 +Platform=Win2003 +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT6.0; *) Gecko/* Netscape*/7.2*] +Parent=Netscape 7.2 +Platform=WinVista + +[Mozilla/5.0 (Windows; ?; WinNT6.1; *) Gecko/* Netscape*/7.2*] +Parent=Netscape 7.2 +Platform=Win7 + +[Mozilla/5.0 (X11; ?; *) Gecko/* Netscape*/7.2*] +Parent=Netscape 7.2 +Platform=Linux + +[Mozilla/5.0 (X11; ?; SunOS*) Gecko/* Netscape*/7.2*] +Parent=Netscape 7.2 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netscape 8.0 + +[Netscape 8.0] +Parent=DefaultProperties +Browser=Netscape +Version=8.0 +MajorVer=8 +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (Macintosh; ?; PPC Mac OS X Mach-O; *; rv:*) Gecko/* Netscape*/8.0*] +Parent=Netscape 8.0 +Platform=MacOSX + +[Mozilla/5.0 (Macintosh; ?; PPC Mac OS X;*) Gecko/* Netscape*/8.0*] +Parent=Netscape 8.0 +Platform=MacOSX + +[Mozilla/5.0 (Macintosh; ?; PPC;*) Gecko/* Netscape*/8.0*] +Parent=Netscape 8.0 +Platform=MacPPC + +[Mozilla/5.0 (Windows; ?; Win 9x 4.90; *) Gecko/* Netscape*/8.0*] +Parent=Netscape 8.0 +Platform=WinME +Win32=true + +[Mozilla/5.0 (Windows; ?; Win95;*) Gecko/* Netscape*/8.0*] +Parent=Netscape 8.0 +Platform=Win95 +Win32=true + +[Mozilla/5.0 (Windows; ?; Win98; *) Gecko/* Netscape*/8.0*] +Parent=Netscape 8.0 +Platform=Win98 +Win32=true + +[Mozilla/5.0 (Windows; ?; Win9x 4.90; *) Gecko/* Netscape*/8.0*] +Parent=Netscape 8.0 +Platform=WinME +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 4.0; *) Gecko/* Netscape*/8.0*] +Parent=Netscape 8.0 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.0; *) Gecko/* Netscape*/8.0*] +Parent=Netscape 8.0 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *) Gecko/* Netscape*/8.0*] +Parent=Netscape 8.0 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.2; *) Gecko/* Netscape*/8.0*] +Parent=Netscape 8.0 +Platform=Win2003 +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 6.0; *) Gecko/* Netscape*/8.0*] +Parent=Netscape 8.0 +Platform=WinVista + +[Mozilla/5.0 (Windows; ?; Windows NT 6.1; *) Gecko/* Netscape*/8.0*] +Parent=Netscape 8.0 +Platform=Win7 + +[Mozilla/5.0 (Windows; ?; WinNT4.0; *) Gecko/* Netscape*/8.0*] +Parent=Netscape 8.0 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT5.0; *) Gecko/* Netscape*/8.0*] +Parent=Netscape 8.0 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT5.1; *) Gecko/* Netscape*/8.0*] +Parent=Netscape 8.0 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT5.2; *) Gecko/* Netscape*/8.0*] +Parent=Netscape 8.0 +Platform=Win2003 +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT6.0; *) Gecko/* Netscape*/8.0*] +Parent=Netscape 8.0 +Platform=WinVista + +[Mozilla/5.0 (Windows; ?; WinNT6.1; *) Gecko/* Netscape*/8.0*] +Parent=Netscape 8.0 +Platform=Win7 + +[Mozilla/5.0 (X11; ?; *) Gecko/* Netscape*/8.0*] +Parent=Netscape 8.0 +Platform=Linux + +[Mozilla/5.0 (X11; ?; SunOS*) Gecko/* Netscape*/8.0*] +Parent=Netscape 8.0 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netscape 8.1 + +[Netscape 8.1] +Parent=DefaultProperties +Browser=Netscape +Version=8.1 +MajorVer=8 +MinorVer=1 +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (Macintosh; ?; *Mac OS X*) Gecko/* Netscape*/8.1*] +Parent=Netscape 8.1 +Platform=MacOSX + +[Mozilla/5.0 (Macintosh; ?; PPC;*) Gecko/* Netscape*/8.1*] +Parent=Netscape 8.1 +Platform=MacPPC + +[Mozilla/5.0 (Windows; ?; Win 9x 4.90; *) Gecko/* Netscape*/8.1*] +Parent=Netscape 8.1 +Platform=WinME +Win32=true + +[Mozilla/5.0 (Windows; ?; Win95;*) Gecko/* Netscape*/8.1*] +Parent=Netscape 8.1 +Platform=Win95 +Win32=true + +[Mozilla/5.0 (Windows; ?; Win98; *) Gecko/* Netscape*/8.1*] +Parent=Netscape 8.1 +Platform=Win98 +Win32=true + +[Mozilla/5.0 (Windows; ?; Win9x 4.90; *) Gecko/* Netscape*/8.1*] +Parent=Netscape 8.1 +Platform=WinME +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 4.0; *) Gecko/* Netscape*/8.1*] +Parent=Netscape 8.1 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.0; *) Gecko/* Netscape*/8.1*] +Parent=Netscape 8.1 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *) Gecko/* Netscape*/8.1*] +Parent=Netscape 8.1 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.2; *) Gecko/* Netscape*/8.1*] +Parent=Netscape 8.1 +Platform=Win2003 +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 6.0; *) Gecko/* Netscape*/8.1*] +Parent=Netscape 8.1 +Platform=WinVista +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 6.1; *) Gecko/* Netscape*/8.1*] +Parent=Netscape 8.1 +Platform=Win7 + +[Mozilla/5.0 (Windows; ?; WinNT4.0; *) Gecko/* Netscape*/8.1*] +Parent=Netscape 8.1 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT5.0; *) Gecko/* Netscape*/8.1*] +Parent=Netscape 8.1 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT5.1; *) Gecko/* Netscape*/8.1*] +Parent=Netscape 8.1 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT5.2; *) Gecko/* Netscape*/8.1*] +Parent=Netscape 8.1 +Platform=Win2003 +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT6.0; *) Gecko/* Netscape*/8.1*] +Parent=Netscape 8.1 +Platform=WinVista +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT6.1; *) Gecko/* Netscape*/8.1*] +Parent=Netscape 8.1 +Platform=Win7 + +[Mozilla/5.0 (X11; ?; *) Gecko/* Netscape*/8.1*] +Parent=Netscape 8.1 +Platform=Linux + +[Mozilla/5.0 (X11; ?; SunOS*) Gecko/* Netscape*/8.1*] +Parent=Netscape 8.1 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; SeaMonkey 1.0 + +[SeaMonkey 1.0] +Parent=DefaultProperties +Browser=SeaMonkey +Version=1.0 +MajorVer=1 +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (Macintosh; ?; *Mac OS X*; *; rv:1.8*) Gecko/* SeaMonkey/1.0*] +Parent=SeaMonkey 1.0 +Platform=MacOSX + +[Mozilla/5.0 (Windows; ?; Win 9x 4.90; *; rv:1.8*) Gecko/* SeaMonkey/1.0*] +Parent=SeaMonkey 1.0 +Platform=WinME + +[Mozilla/5.0 (Windows; ?; Win98; *; rv:1.8*) Gecko/* SeaMonkey/1.0*] +Parent=SeaMonkey 1.0 +Platform=Win98 + +[Mozilla/5.0 (Windows; ?; Windows NT 5.0; *; rv:1.8*) Gecko/* SeaMonkey/1.0*] +Parent=SeaMonkey 1.0 +Platform=Win2000 + +[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *; rv:1.8*) Gecko/* SeaMonkey/1.0*] +Parent=SeaMonkey 1.0 +Platform=WinXP + +[Mozilla/5.0 (Windows; ?; Windows NT 5.2; *; rv:1.8*) Gecko/* SeaMonkey/1.0*] +Parent=SeaMonkey 1.0 +Platform=Win2003 + +[Mozilla/5.0 (Windows; ?; Windows NT 6.0; *; rv:1.8*) Gecko/* SeaMonkey/1.0*] +Parent=SeaMonkey 1.0 +Platform=WinVista + +[Mozilla/5.0 (Windows; ?; Windows NT 6.1; *; rv:1.8*) Gecko/* SeaMonkey/1.0*] +Parent=SeaMonkey 1.0 +Platform=Win7 + +[Mozilla/5.0 (X11; ?; FreeBSD*; *; rv:1.8*) Gecko/* SeaMonkey/1.0*] +Parent=SeaMonkey 1.0 +Platform=FreeBSD + +[Mozilla/5.0 (X11; ?; Linux*; *; rv:1.8*) Gecko/20060221 SeaMonkey/1.0*] +Parent=SeaMonkey 1.0 +Platform=Linux + +[Mozilla/5.0 (X11; ?; SunOS*; *; rv:1.8*) Gecko/* SeaMonkey/1.0*] +Parent=SeaMonkey 1.0 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; SeaMonkey 1.1 + +[SeaMonkey 1.1] +Parent=DefaultProperties +Browser=SeaMonkey +Version=1.1 +MajorVer=1 +MinorVer=1 +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (Macintosh; ?; *Mac OS X*; *; rv:1.8*) Gecko/* SeaMonkey/1.1*] +Parent=SeaMonkey 1.1 +Platform=MacOSX + +[Mozilla/5.0 (Windows; ?; Win 9x 4.90; *; rv:1.8*) Gecko/* SeaMonkey/1.1*] +Parent=SeaMonkey 1.1 +Platform=WinME + +[Mozilla/5.0 (Windows; ?; Win98; *; rv:1.8*) Gecko/* SeaMonkey/1.1*] +Parent=SeaMonkey 1.1 +Platform=Win98 + +[Mozilla/5.0 (Windows; ?; Windows NT 5.0; *; rv:1.8*) Gecko/* SeaMonkey/1.1*] +Parent=SeaMonkey 1.1 +Platform=Win2000 + +[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *; rv:1.8*) Gecko/* SeaMonkey/1.1*] +Parent=SeaMonkey 1.1 +Platform=WinXP + +[Mozilla/5.0 (Windows; ?; Windows NT 5.2; *; rv:1.8*) Gecko/* SeaMonkey/1.1*] +Parent=SeaMonkey 1.1 +Platform=Win2003 + +[Mozilla/5.0 (Windows; ?; Windows NT 6.0; *; rv:1.8*) Gecko/* SeaMonkey/1.1*] +Parent=SeaMonkey 1.1 +Platform=WinVista + +[Mozilla/5.0 (Windows; ?; Windows NT 6.1; *; rv:1.8*) Gecko/* SeaMonkey/1.1*] +Parent=SeaMonkey 1.1 +Platform=Win7 + +[Mozilla/5.0 (X11; ?; FreeBSD*; *; rv:1.8*) Gecko/* SeaMonkey/1.1*] +Parent=SeaMonkey 1.1 +Platform=FreeBSD + +[Mozilla/5.0 (X11; ?; Linux*; *; rv:1.8*) Gecko/20060221 SeaMonkey/1.1*] +Parent=SeaMonkey 1.1 +Platform=Linux + +[Mozilla/5.0 (X11; ?; SunOS*; *; rv:1.8*) Gecko/* SeaMonkey/1.1*] +Parent=SeaMonkey 1.1 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; SeaMonkey 2.0 + +[SeaMonkey 2.0] +Parent=DefaultProperties +Browser=SeaMonkey +Version=2.0 +MajorVer=2 +Alpha=true +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (Macintosh; ?; *Mac OS X*; *; rv:1.9*) Gecko/* SeaMonkey/2.0*] +Parent=SeaMonkey 2.0 +Platform=MacOSX + +[Mozilla/5.0 (Windows; ?; Win 9x 4.90; *; rv:1.9*) Gecko/* SeaMonkey/2.0*] +Parent=SeaMonkey 2.0 +Platform=WinME + +[Mozilla/5.0 (Windows; ?; Win98; *; rv:1.9*) Gecko/* SeaMonkey/2.0*] +Parent=SeaMonkey 2.0 +Platform=Win98 + +[Mozilla/5.0 (Windows; ?; Windows NT 5.0; *; rv:1.9*) Gecko/* SeaMonkey/2.0*] +Parent=SeaMonkey 2.0 +Platform=Win2000 + +[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *; rv:1.9*) Gecko/* SeaMonkey/2.0*] +Parent=SeaMonkey 2.0 +Platform=WinXP + +[Mozilla/5.0 (Windows; ?; Windows NT 5.2; *; rv:1.9*) Gecko/* SeaMonkey/2.0*] +Parent=SeaMonkey 2.0 +Platform=Win2003 + +[Mozilla/5.0 (Windows; ?; Windows NT 6.0; *; rv:1.9*) Gecko/* SeaMonkey/2.0*] +Parent=SeaMonkey 2.0 +Platform=WinVista + +[Mozilla/5.0 (Windows; ?; Windows NT 6.1; *; rv:1.9*) Gecko/* SeaMonkey/2.0*] +Parent=SeaMonkey 2.0 +Platform=Win7 + +[Mozilla/5.0 (X11; ?; FreeBSD*; *; rv:1.9*) Gecko/* SeaMonkey/2.0*] +Parent=SeaMonkey 2.0 +Platform=FreeBSD + +[Mozilla/5.0 (X11; ?; Linux*; *; rv:1.9*) Gecko/20060221 SeaMonkey/2.0*] +Parent=SeaMonkey 2.0 +Platform=Linux + +[Mozilla/5.0 (X11; ?; SunOS*; *; rv:1.9*) Gecko/* SeaMonkey/2.0*] +Parent=SeaMonkey 2.0 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Flock 1.0 + +[Flock 1.0] +Parent=DefaultProperties +Browser=Flock +Version=1.0 +MajorVer=1 +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (Macintosh; U; *Mac OS X*; *; rv:1.*) Gecko/* Firefox/2.* Flock/1.*] +Parent=Flock 1.0 +Platform=MacOSX + +[Mozilla/5.0 (Windows; U; Win 9x 4.90; *; rv:1.*) Gecko/* Firefox/2.* Flock/1.*] +Parent=Flock 1.0 +Platform=WinME + +[Mozilla/5.0 (Windows; U; Windows NT 5.0*; *; rv:1.*) Gecko/* Firefox/2.* Flock/1.*] +Parent=Flock 1.0 +Platform=Win2000 + +[Mozilla/5.0 (Windows; U; Windows NT 5.1*; *; rv:1.*) Gecko/* Firefox/2.* Flock/1.*] +Parent=Flock 1.0 +Platform=WinXP + +[Mozilla/5.0 (Windows; U; Windows NT 5.2*; *; rv:1.*) Gecko/* Firefox/2.* Flock/1.*] +Parent=Flock 1.0 +Platform=Win2003 + +[Mozilla/5.0 (Windows; U; Windows NT 6.0*; *; rv:1.*) Gecko/* Firefox/2.* Flock/1.*] +Parent=Flock 1.0 +Platform=WinVista + +[Mozilla/5.0 (Windows; U; Windows NT 6.1*; *; rv:1.*) Gecko/* Firefox/2.* Flock/1.*] +Parent=Flock 1.0 +Platform=Win7 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Flock 2.0 + +[Flock 2.0] +Parent=DefaultProperties +Browser=Flock +Version=2.0 +MajorVer=2 +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (Macintosh; U; *Mac OS X*; *; rv:1.*) Gecko/* Firefox/3.* Flock/2.*] +Parent=Flock 2.0 +Platform=MacOSX + +[Mozilla/5.0 (Windows; U; Win 9x 4.90; *; rv:1.*) Gecko/* Firefox/3.* Flock/2.*] +Parent=Flock 2.0 +Platform=WinME + +[Mozilla/5.0 (Windows; U; Windows NT 5.0*; *; rv:1.*) Gecko/* Firefox/3.* Flock/2.*] +Parent=Flock 2.0 +Platform=Win2000 + +[Mozilla/5.0 (Windows; U; Windows NT 5.1*; *; rv:1.*) Gecko/* Firefox/3.* Flock/2.*] +Parent=Flock 2.0 +Platform=WinXP + +[Mozilla/5.0 (Windows; U; Windows NT 5.2*; *; rv:1.*) Gecko/* Firefox/3.* Flock/2.*] +Parent=Flock 2.0 +Platform=Win2003 + +[Mozilla/5.0 (Windows; U; Windows NT 6.0*; *; rv:1.*) Gecko/* Firefox/3.* Flock/2.*] +Parent=Flock 2.0 +Platform=WinVista + +[Mozilla/5.0 (Windows; U; Windows NT 6.1*; *; rv:1.*) Gecko/* Firefox/3.* Flock/2.*] +Parent=Flock 2.0 +Platform=Win7 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Sleipnir 2.0 + +[Sleipnir] +Parent=DefaultProperties +Browser=Sleipnir +Version=2.0 +MajorVer=2 +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/4.0 (compatible; MSIE ?.0; Windows NT 5.0*) Sleipnir/2.*] +Parent=Sleipnir +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE ?.0; Windows NT 5.1*) Sleipnir/2.*] +Parent=Sleipnir +Platform=WinXP + +[Mozilla/4.0 (compatible; MSIE ?.0; Windows NT 5.2*) Sleipnir/2.*] +Parent=Sleipnir +Platform=Win2003 + +[Mozilla/4.0 (compatible; MSIE ?.0; Windows NT 6.0*) Sleipnir/2.*] +Parent=Sleipnir +Platform=WinVista + +[Mozilla/4.0 (compatible; MSIE ?.0; Windows NT 6.1*) Sleipnir/2.*] +Parent=Sleipnir +Platform=Win7 + +[Sleipnir*] +Parent=Sleipnir + +[Sleipnir/2.*] +Parent=Sleipnir + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Fennec 1.0 + +[Fennec 1.0] +Parent=DefaultProperties +Browser=Firefox Mobile +Version=1.0 +MajorVer=1 +Alpha=true +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=3 +supportsCSS=true + +[Mozilla/5.0 (Windows; U; Windows NT 5.1; *; rv:1.9*) Gecko/* Fennec/1.0*] +Parent=Fennec 1.0 +Platform=WinXP + +[Mozilla/5.0 (Windows; U; Windows NT 6.0; *; rv:1.9*) Gecko/* Fennec/1.0*] +Parent=Fennec 1.0 +Platform=WinVista + +[Mozilla/5.0 (Windows; U; Windows NT 6.1; *; rv:1.9*) Gecko/* Fennec/1.0*] +Parent=Fennec 1.0 +Platform=Win7 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Firebird + +[Firebird] +Parent=DefaultProperties +Browser=Firebird +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (Linux; *; rv:1.*) Gecko/* Mozilla Firebird/0.*] +Parent=Firebird + +[Mozilla/5.0 (Macintosh; *; *Mac OS X*; *; rv:1.*) Gecko/* Firebird/0.*] +Parent=Firebird + +[Mozilla/5.0 (Macintosh; *; *Mac OS X*; *; rv:1.*) Gecko/* Mozilla Firebird/0.*] +Parent=Firebird + +[Mozilla/5.0 (OS/2; *; Warp*; *; rv:1.*) Gecko/* Firebird/0.*] +Parent=Firebird + +[Mozilla/5.0 (Windows; *; Win 9x 4.90; *; rv:1.*) Gecko/* Firebird/0.*] +Parent=Firebird +Win32=true + +[Mozilla/5.0 (Windows; *; Win 9x 4.90; *; rv:1.*) Gecko/* Mozilla Firebird/0.*] +Parent=Firebird +Win32=true + +[Mozilla/5.0 (Windows; *; Win95; *; rv:1.*) Gecko/* Firebird/0.*] +Parent=Firebird +Win32=true + +[Mozilla/5.0 (Windows; *; Win98; *; rv:1.*) Gecko/* Firebird/0.*] +Parent=Firebird +Win32=true + +[Mozilla/5.0 (Windows; *; Win98; *; rv:1.*) Gecko/* Mozilla Firebird/0.*] +Parent=Firebird +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.?; *; rv:1.*) Gecko/* Firebird Browser/0.*] +Parent=Firebird +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.?; *; rv:1.*) Gecko/* Firebird/0.*] +Parent=Firebird +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.?; *; rv:1.*) Gecko/* Mozilla Firebird/0.*] +Parent=Firebird +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.?; rv:1.*) Gecko/* Firebird/0.*] +Parent=Firebird +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 6.*; *; rv:1.*) Gecko/* Firebird/0.*] +Parent=Firebird +Win32=true + +[Mozilla/5.0 (Windows; *; WinNT4.0; *; rv:1.*) Gecko/* Firebird/0.*] +Parent=Firebird +Win32=true + +[Mozilla/5.0 (Windows; *; WinNT4.0; *; rv:1.*) Gecko/* Mozilla Firebird/0.*] +Parent=Firebird +Win32=true + +[Mozilla/5.0 (X11; *; FreeBSD*; *; rv:1.*) Gecko/* Firebird/0.*] +Parent=Firebird + +[Mozilla/5.0 (X11; *; FreeBSD*; *; rv:1.*) Gecko/* Mozilla Firebird/0.*] +Parent=Firebird + +[Mozilla/5.0 (X11; *; IRIX*; *; rv:1.*) Gecko/* Mozilla Firebird/0.*] +Parent=Firebird + +[Mozilla/5.0 (X11; *; Linux*; *; rv:1.*) Gecko/* Firebird/0.*] +Parent=Firebird + +[Mozilla/5.0 (X11; *; OpenBSD*; *; rv:1.*) Gecko/* Mozilla Firebird/0.*] +Parent=Firebird + +[Mozilla/5.0 (X11; *; SunOS*; *; rv:1.*) Gecko/* Firebird/0.*] +Parent=Firebird + +[Mozilla/5.0 (X11; *; SunOS*; *; rv:1.*) Gecko/* Mozilla Firebird/0.*] +Parent=Firebird + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Firefox + +[Firefox] +Parent=DefaultProperties +Browser=Firefox +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true +ecmascriptversion=1.3 +w3cdomversion=1.0 + +[Mozilla/5.0 (Macintosh; *; *Mac OS X*; *; rv:1.*) Gecko/* Firefox/0.*] +Parent=Firefox +Platform=MacOSX + +[Mozilla/5.0 (Macintosh; *; *Mac OS X*; rv:1.*) Gecko/* Firefox/0.*] +Parent=Firefox + +[Mozilla/5.0 (OS/2; *; Warp*; rv:1.*) Gecko/* Firefox/0.*] +Parent=Firefox + +[Mozilla/5.0 (Windows NT 5.?; ?; rv:1.*) Gecko/* Firefox] +Parent=Firefox +Win32=true + +[Mozilla/5.0 (Windows; *; *; rv:1.*) Gecko/* Firefox/0.*] +Parent=Firefox +Win32=true + +[Mozilla/5.0 (Windows; *; Win 9x 4.90; *; rv:1.*) Gecko/* Firefox/0.*] +Parent=Firefox +Platform=WinME +Win32=true + +[Mozilla/5.0 (Windows; *; Win 9x 4.90; rv:1.*) Gecko/* Firefox/0.*] +Parent=Firefox +Win32=true + +[Mozilla/5.0 (Windows; *; Win95; *; rv:1.*) Gecko/* Firefox/0.*] +Parent=Firefox +Platform=Win95 +Win32=true + +[Mozilla/5.0 (Windows; *; Win95; rv:1.*) Gecko/* Firefox/0.*] +Parent=Firefox +Win32=true + +[Mozilla/5.0 (Windows; *; Win98; *; rv:1.*) Gecko/* Firefox/0.*] +Parent=Firefox +Platform=Win98 +Win32=true + +[Mozilla/5.0 (Windows; *; Win98; rv:1.*) Gecko/* Firefox/0.*] +Parent=Firefox +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.*; *; rv:1.*) Gecko/* Deer Park/Alpha*] +Parent=Firefox +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.?; *; rv:1.*) Gecko/* Firefox/10.5] +Parent=Firefox +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.0; *; rv:1.*) Gecko/* Firefox/0.*] +Parent=Firefox +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.0; rv:1.*) Gecko/* Firefox/0.*] +Parent=Firefox +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.1; *; rv:1.*) Gecko/* Firefox/0.*] +Parent=Firefox +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.1; rv:1.*) Gecko/* Firefox/0.*] +Parent=Firefox +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.2; *; rv:1.*) Gecko/* Firefox/0.*] +Parent=Firefox +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.2; rv:1.*) Gecko/* Firefox/0.*] +Parent=Firefox +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 6.0*; *; rv:1.*) Gecko/* Firefox/0.*] +Parent=Firefox +Platform=WinVista +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 6.0*; rv:1.*) Gecko/* Firefox/0.*] +Parent=Firefox +Win32=true + +[Mozilla/5.0 (Windows; *; WinNT4.0; *; rv:1.*) Gecko/* Firefox/0.*] +Parent=Firefox +Platform=WinNT +Win32=true + +[Mozilla/5.0 (Windows; *; WinNT4.0; rv:1.*) Gecko/* Firefox/0.*] +Parent=Firefox +Win32=true + +[Mozilla/5.0 (X11; *; FreeBSD*; *; rv:1.*) Gecko/* Firefox/0.*] +Parent=Firefox +Platform=FreeBSD + +[Mozilla/5.0 (X11; *; FreeBSD*; rv:1.*) Gecko/* Firefox/0.*] +Parent=Firefox + +[Mozilla/5.0 (X11; *; HP-UX*; rv:1.*) Gecko/* Firefox/0.*] +Parent=Firefox +Platform=HP-UX + +[Mozilla/5.0 (X11; *; IRIX64*; *; rv:1.*) Gecko/* Firefox/0.*] +Parent=Firefox +Platform=IRIX64 + +[Mozilla/5.0 (X11; *; Linux*; *; rv:1.*) Gecko/* Firefox/0.*] +Parent=Firefox + +[Mozilla/5.0 (X11; *; Linux*; rv:1.*) Gecko/* Firefox/0.*] +Parent=Firefox + +[Mozilla/5.0 (X11; *; OpenBSD*; *; rv:1.*) Gecko/* Firefox/0.*] +Parent=Firefox +Platform=OpenBSD + +[Mozilla/5.0 (X11; *; SunOS*; *; rv:1.*) Gecko/* Firefox/0.*] +Parent=Firefox +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Firefox 1.0 + +[Firefox 1.0] +Parent=DefaultProperties +Browser=Firefox +Version=1.0 +MajorVer=1 +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true +ecmascriptversion=1.3 +w3cdomversion=1.0 + +[Mozilla/5.0 (Linux; *; PPC*; *; rv:1.*) Gecko/* Firefox/1.0*] +Parent=Firefox 1.0 +Platform=MacPPC + +[Mozilla/5.0 (Macintosh; *; *Mac OS X*; *; rv:1.*) Gecko/* Firefox/1.0*] +Parent=Firefox 1.0 +Platform=MacOSX + +[Mozilla/5.0 (OS/2; *; Warp*; *; rv:1.*) Gecko/* Firefox/1.0*] +Parent=Firefox 1.0 +Platform=OS/2 + +[Mozilla/5.0 (Windows; *; Win 9x 4.90*; *; rv:1.*) Gecko/* Firefox/1.0*] +Parent=Firefox 1.0 +Platform=WinME +Win32=true + +[Mozilla/5.0 (Windows; *; Win95; *; rv:1.*) Gecko/* Firefox/1.0*] +Parent=Firefox 1.0 +Platform=Win95 +Win32=true + +[Mozilla/5.0 (Windows; *; Win98; *; rv:1.*) Gecko/* Firefox/1.0*] +Parent=Firefox 1.0 +Platform=Win98 +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.0; *; rv:1.*) Gecko/* Firefox/1.0*] +Parent=Firefox 1.0 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.1; *; rv:1.*) Gecko/* Firefox/1.0*] +Parent=Firefox 1.0 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.1; rv:1.*) Gecko/* Firefox/1.0*] +Parent=Firefox 1.0 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.2; *; rv:1.*) Gecko/* Firefox/1.0*] +Parent=Firefox 1.0 +Platform=Win2003 +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 6.0*; *; rv:1.*) Gecko/* Firefox/1.0*] +Parent=Firefox 1.0 +Platform=WinVista +Win32=true + +[Mozilla/5.0 (Windows; *; WinNT4.0; *; rv:1.*) Gecko/* Firefox/1.0*] +Parent=Firefox 1.0 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (X11; *; *Linux*; *; rv:1.*) Gecko/* Firefox/1.0*] +Parent=Firefox 1.0 +Platform=Linux + +[Mozilla/5.0 (X11; *; *Linux*; rv:1.*) Gecko/* Firefox/1.0*] +Parent=Firefox 1.0 +Platform=Linux + +[Mozilla/5.0 (X11; *; DragonFly*; *; rv:1.*) Gecko/* Firefox/1.0*] +Parent=Firefox 1.0 + +[Mozilla/5.0 (X11; *; FreeBSD*; *; rv:1.*) Gecko/* Firefox/1.0*] +Parent=Firefox 1.0 +Platform=FreeBSD + +[Mozilla/5.0 (X11; *; HP-UX*; *; rv:1.*) Gecko/* Firefox/1.0*] +Parent=Firefox 1.0 +Platform=HP-UX + +[Mozilla/5.0 (X11; *; IRIX64*; *; rv:1.*) Gecko/* Firefox/1.0*] +Parent=Firefox 1.0 +Platform=IRIX64 + +[Mozilla/5.0 (X11; *; OpenBSD*; *; rv:1.*) Gecko/* Firefox/1.0*] +Parent=Firefox 1.0 +Platform=OpenBSD + +[Mozilla/5.0 (X11; *; SunOS*; *; rv:1.*) Gecko/* Firefox/1.0*] +Parent=Firefox 1.0 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Firefox 1.4 + +[Firefox 1.4] +Parent=DefaultProperties +Browser=Firefox +Version=1.4 +MajorVer=1 +MinorVer=4 +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true +ecmascriptversion=1.3 +w3cdomversion=1.0 + +[Mozilla/5.0 (Linux; *; PPC*; *; rv:1.*) Gecko/* Firefox/1.4*] +Parent=Firefox 1.4 +Platform=Linux + +[Mozilla/5.0 (Macintosh; *; *Mac OS X*; *; rv:1.*) Gecko/* Firefox/1.4*] +Parent=Firefox 1.4 +Platform=MacOSX + +[Mozilla/5.0 (OS/2; *; Warp*; *; rv:1.*) Gecko/* Firefox/1.4*] +Parent=Firefox 1.4 +Platform=OS/2 + +[Mozilla/5.0 (Windows; *; Win 9x 4.90; *; rv:1.*) Gecko/* Firefox/1.4*] +Parent=Firefox 1.4 +Platform=WinME +Win32=true + +[Mozilla/5.0 (Windows; *; Win95*; *; rv:1.*) Gecko/* Firefox/1.4*] +Parent=Firefox 1.4 +Platform=Win95 +Win32=true + +[Mozilla/5.0 (Windows; *; Win98; *; rv:1.*) Gecko/* Firefox/1.4*] +Parent=Firefox 1.4 +Platform=Win98 +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.0; *; rv:1.*) Gecko/* Firefox/1.4*] +Parent=Firefox 1.4 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.1; *; rv:1.*) Gecko/* Firefox/1.4*] +Parent=Firefox 1.4 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.2; *; rv:1.*) Gecko/* Firefox/1.4*] +Parent=Firefox 1.4 +Platform=Win2003 +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 6.0; *; rv:1.*) Gecko/* Firefox/1.4*] +Parent=Firefox 1.4 +Platform=WinVista +Win32=true + +[Mozilla/5.0 (Windows; *; WinNT4.0; *; rv:1.*) Gecko/* Firefox/1.4*] +Parent=Firefox 1.4 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (X11; *; *Linux*; *; rv:1.*) Gecko/* Firefox/1.4*] +Parent=Firefox 1.4 +Platform=Linux + +[Mozilla/5.0 (X11; *; FreeBSD*; *; rv:1.*) Gecko/* Firefox/1.4*] +Parent=Firefox 1.4 +Platform=FreeBSD + +[Mozilla/5.0 (X11; *; HP-UX*; *; rv:1.*) Gecko/* Firefox/1.4*] +Parent=Firefox 1.4 +Platform=HP-UX + +[Mozilla/5.0 (X11; *; IRIX64*; *; rv:1.*) Gecko/* Firefox/1.4*] +Parent=Firefox 1.4 +Platform=IRIX64 + +[Mozilla/5.0 (X11; *; OpenBSD*; *; rv:1.*) Gecko/* Firefox/1.4*] +Parent=Firefox 1.4 +Platform=OpenBSD + +[Mozilla/5.0 (X11; *; SunOS*; *; rv:1.*) Gecko/* Firefox/1.4*] +Parent=Firefox 1.4 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Firefox 1.5 + +[Firefox 1.5] +Parent=DefaultProperties +Browser=Firefox +Version=1.5 +MajorVer=1 +MinorVer=5 +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true +ecmascriptversion=1.5 +w3cdomversion=1.0 + +[Mozilla/5.0 (Linux; *; PPC*; *; rv:1.*) Gecko/* Firefox/1.5*] +Parent=Firefox 1.5 +Platform=Linux + +[Mozilla/5.0 (Macintosh; *; *Mac OS X*; *; rv:1.*) Gecko/* Firefox/1.5*] +Parent=Firefox 1.5 +Platform=MacOSX + +[Mozilla/5.0 (OS/2; *; Warp*; *; rv:1.*) Gecko/* Firefox/1.5*] +Parent=Firefox 1.5 +Platform=OS/2 + +[Mozilla/5.0 (rv:1.*) Gecko/* Firefox/1.5*] +Parent=Firefox 1.5 + +[Mozilla/5.0 (Windows; *; Win 9x 4.90; *; rv:1.*) Gecko/* Firefox/1.5*] +Parent=Firefox 1.5 +Platform=WinME +Win32=true + +[Mozilla/5.0 (Windows; *; Win95; *; rv:1.*) Gecko/* Firefox/1.5*] +Parent=Firefox 1.5 +Platform=Win95 +Win32=true + +[Mozilla/5.0 (Windows; *; Win98; *; rv:1.*) Gecko/* Firefox/1.5*] +Parent=Firefox 1.5 +Platform=Win98 +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.0; *; rv:1.*) Gecko/* Firefox/1.5*] +Parent=Firefox 1.5 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.1; *; rv:1.*) Gecko/* Firefox/1.5*] +Parent=Firefox 1.5 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.2 x64; *; rv:1.*) Gecko/* Firefox/1.5*] +Parent=Firefox 1.5 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.2; *; rv:1.*) Gecko/* Firefox/1.5*] +Parent=Firefox 1.5 +Platform=Win2003 +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 6.0; *; rv:1.*) Gecko/* Firefox/1.5*] +Parent=Firefox 1.5 +Platform=WinVista +Win32=true + +[Mozilla/5.0 (Windows; *; WinNT4.0; *; rv:1.*) Gecko/* Firefox/1.5*] +Parent=Firefox 1.5 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (X11; *; *Linux*; *; rv:1.*) Gecko/* Firefox/1.5*] +Parent=Firefox 1.5 +Platform=Linux + +[Mozilla/5.0 (X11; *; FreeBSD*; *; rv:1.*) Gecko/* Firefox/1.5*] +Parent=Firefox 1.5 +Platform=FreeBSD + +[Mozilla/5.0 (X11; *; HP-UX*; *; rv:1.*) Gecko/* Firefox/1.5*] +Parent=Firefox 1.5 +Platform=HP-UX + +[Mozilla/5.0 (X11; *; IRIX64*; *; rv:1.*) Gecko/* Firefox/1.5*] +Parent=Firefox 1.5 +Platform=IRIX64 + +[Mozilla/5.0 (X11; *; OpenBSD*; *; rv:1.*) Gecko/* Firefox/1.5*] +Parent=Firefox 1.5 +Platform=OpenBSD + +[Mozilla/5.0 (X11; *; SunOS*; *; rv:1.*) Gecko/* Firefox/1.5*] +Parent=Firefox 1.5 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Firefox 2.0 + +[Firefox 2.0] +Parent=DefaultProperties +Browser=Firefox +Version=2.0 +MajorVer=2 +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true +ecmascriptversion=1.5 +w3cdomversion=1.0 + +[Mozilla/5.0 (Linux; *; PPC*; *; rv:1.8*) Gecko/* Firefox/2.0*] +Parent=Firefox 2.0 +Platform=Linux + +[Mozilla/5.0 (Macintosh; *; *Mac OS X*; *; rv:1.8*) Gecko/* Firefox/2.0*] +Parent=Firefox 2.0 +Platform=MacOSX + +[Mozilla/5.0 (OS/2; *; Warp*; *; rv:1.8*) Gecko/* Firefox/2.0*] +Parent=Firefox 2.0 +Platform=OS/2 + +[Mozilla/5.0 (Windows; *; Win 9x 4.90; *; rv:1.8*) Gecko/* Firefox/2.0*] +Parent=Firefox 2.0 +Platform=WinME +Win32=true + +[Mozilla/5.0 (Windows; *; Win95; *; rv:1.8*) Gecko/* Firefox/2.0*] +Parent=Firefox 2.0 +Platform=Win95 +Win32=true + +[Mozilla/5.0 (Windows; *; Win98; *; rv:1.8*) Gecko/* Firefox/2.0*] +Parent=Firefox 2.0 +Platform=Win98 +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.0; *; rv:1.*) Gecko/* Firefox/2.0*] +Parent=Firefox 2.0 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.1; *; rv:1.8*) Gecko/* Firefox/2.0*] +Parent=Firefox 2.0 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.2; *; rv:1.8*) Gecko/* Firefox/2.0*] +Parent=Firefox 2.0 +Platform=Win2003 +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 6.0; *; rv:1.8*) Gecko/* Firefox/2.0*] +Parent=Firefox 2.0 +Platform=WinVista +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 6.1; *; rv:1.8*) Gecko/* Firefox/2.0*] +Parent=Firefox 2.0 +Platform=Win7 + +[Mozilla/5.0 (Windows; *; WinNT4.0; *; rv:1.8*) Gecko/* Firefox/2.0*] +Parent=Firefox 2.0 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (X11; *; *Linux*; *; rv:1.8*) Gecko/* Firefox/2.0*] +Parent=Firefox 2.0 +Platform=Linux + +[Mozilla/5.0 (X11; *; FreeBSD*; *; rv:1.8*) Gecko/* Firefox/2.0*] +Parent=Firefox 2.0 +Platform=FreeBSD + +[Mozilla/5.0 (X11; *; HP-UX*; *; rv:1.8*) Gecko/* Firefox/2.0*] +Parent=Firefox 2.0 +Platform=HP-UX + +[Mozilla/5.0 (X11; *; IRIX64*; *; rv:1.8*) Gecko/* Firefox/2.0*] +Parent=Firefox 2.0 +Platform=IRIX64 + +[Mozilla/5.0 (X11; *; OpenBSD*; *; rv:1.8*) Gecko/* Firefox/2.0*] +Parent=Firefox 2.0 +Platform=OpenBSD + +[Mozilla/5.0 (X11; *; SunOS*; *; rv:1.8*) Gecko/* Firefox/2.0*] +Parent=Firefox 2.0 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Firefox 3.0 + +[Firefox 3.0] +Parent=DefaultProperties +Browser=Firefox +Version=3.0 +MajorVer=3 +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=3 +supportsCSS=true +ecmascriptversion=1.5 +w3cdomversion=1.0 + +[Mozilla/5.0 (Macintosh; *; *Mac OS X*; *; rv:1.9*) Gecko/* Firefox/3.0*] +Parent=Firefox 3.0 +Platform=MacOSX + +[Mozilla/5.0 (Windows; *; Windows NT 5.0; *; rv:1.*) Gecko/* Firefox/3.0*] +Parent=Firefox 3.0 +Platform=Win2000 + +[Mozilla/5.0 (Windows; *; Windows NT 5.1; *; rv:1.9*) Gecko/* Firefox/3.0*] +Parent=Firefox 3.0 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.2; *; rv:1.9*) Gecko/* Firefox/3.0*] +Parent=Firefox 3.0 +Platform=Win2003 +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 6.0; *; rv:1.9*) Gecko/* Firefox/3.0*] +Parent=Firefox 3.0 +Platform=WinVista +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 6.1; *; rv:1.*) Gecko/* Firefox/3.0*] +Parent=Firefox 3.0 +Platform=Win7 + +[Mozilla/5.0 (Windows; *; WinNT4.0; *; rv:1.9*) Gecko/* Firefox/3.0*] +Parent=Firefox 3.0 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (Windows; U; Windows NT 5.1 x64; *; rv:1.9*) Gecko/* Firefox/3.0*] +Parent=Firefox 3.0 +Platform=WinXP +Win32=false +Win64=true + +[Mozilla/5.0 (Windows; U; Windows NT 5.2 x64; *; rv:1.9*) Gecko/* Firefox/3.0*] +Parent=Firefox 3.0 +Platform=Win2003 +Win32=false +Win64=true + +[Mozilla/5.0 (Windows; U; Windows NT 6.0 x64; *; rv:1.9*) Gecko/* Firefox/3.0*] +Parent=Firefox 3.0 +Platform=WinVista + +[Mozilla/5.0 (Windows; U; Windows NT 6.1 x64; *; rv:1.9*) Gecko/* Firefox/3.0*] +Parent=Firefox 3.0 +Platform=Win7 + +[Mozilla/5.0 (X11; *; *Linux*; *; rv:1.9*) Gecko/* Firefox/3.0*] +Parent=Firefox 3.0 +Platform=Linux + +[Mozilla/5.0 (X11; *; FreeBSD*; *; rv:1.9*) Gecko/* Firefox/3.0*] +Parent=Firefox 3.0 +Platform=FreeBSD + +[Mozilla/5.0 (X11; *; HP-UX*; *; rv:1.9*) Gecko/* Firefox/3.0*] +Parent=Firefox 3.0 +Platform=HP-UX + +[Mozilla/5.0 (X11; *; IRIX64*; *; rv:1.9*) Gecko/* Firefox/3.0*] +Parent=Firefox 3.0 +Platform=IRIX64 + +[Mozilla/5.0 (X11; *; OpenBSD*; *; rv:1.9*) Gecko/* Firefox/3.0*] +Parent=Firefox 3.0 +Platform=OpenBSD + +[Mozilla/5.0 (X11; *; SunOS*; *; rv:1.9*) Gecko/* Firefox/3.0*] +Parent=Firefox 3.0 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Firefox 3.1 + +[Firefox 3.1] +Parent=DefaultProperties +Browser=Firefox +Version=3.1 +MajorVer=3 +MinorVer=1 +Beta=true +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=3 +supportsCSS=true + +[Mozilla/5.0 (Macintosh; *; *Mac OS X*; *; rv:1.9*) Gecko/* Firefox/3.1*] +Parent=Firefox 3.1 +Platform=MacOSX + +[Mozilla/5.0 (Windows; *; Windows NT 5.1; *; rv:1.9*) Gecko/* Firefox/3.1*] +Parent=Firefox 3.1 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.2; *; rv:1.9*) Gecko/* Firefox/3.1*] +Parent=Firefox 3.1 +Platform=Win2003 +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 6.0; *; rv:1.9*) Gecko/* Firefox/3.1*] +Parent=Firefox 3.1 +Platform=WinVista +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 6.1; *; rv:1.9*) Gecko/* Firefox/3.1*] +Parent=Firefox 3.1 +Platform=Win7 + +[Mozilla/5.0 (Windows; *; WinNT4.0; *; rv:1.9*) Gecko/* Firefox/3.1*] +Parent=Firefox 3.1 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (Windows; U; Windows NT 5.1 x64; *; rv:1.9*) Gecko/* Firefox/3.1*] +Parent=Firefox 3.1 +Platform=WinXP +Win32=false +Win64=true + +[Mozilla/5.0 (Windows; U; Windows NT 5.2 x64; *; rv:1.9*) Gecko/* Firefox/3.1*] +Parent=Firefox 3.1 +Platform=Win2003 +Win32=false +Win64=true + +[Mozilla/5.0 (Windows; U; Windows NT 6.0 x64; *; rv:1.9*) Gecko/* Firefox/3.1*] +Parent=Firefox 3.1 +Platform=WinVista + +[Mozilla/5.0 (Windows; U; Windows NT 6.1 x64; *; rv:1.9*) Gecko/* Firefox/3.1*] +Parent=Firefox 3.1 +Platform=Win7 + +[Mozilla/5.0 (X11; *; *Linux*; *; rv:1.9*) Gecko/* Firefox/3.1*] +Parent=Firefox 3.1 +Platform=Linux + +[Mozilla/5.0 (X11; *; FreeBSD*; *; rv:1.9*) Gecko/* Firefox/3.1*] +Parent=Firefox 3.1 +Platform=FreeBSD + +[Mozilla/5.0 (X11; *; HP-UX*; *; rv:1.9*) Gecko/* Firefox/3.1*] +Parent=Firefox 3.1 +Platform=HP-UX + +[Mozilla/5.0 (X11; *; IRIX64*; *; rv:1.9*) Gecko/* Firefox/3.1*] +Parent=Firefox 3.1 +Platform=IRIX64 + +[Mozilla/5.0 (X11; *; OpenBSD*; *; rv:1.9*) Gecko/* Firefox/3.1*] +Parent=Firefox 3.1 +Platform=OpenBSD + +[Mozilla/5.0 (X11; *; SunOS*; *; rv:1.9*) Gecko/* Firefox/3.1*] +Parent=Firefox 3.1 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Firefox 3.5 + +[Firefox 3.5] +Parent=DefaultProperties +Browser=Firefox +Version=3.5 +MajorVer=3 +MinorVer=5 +Beta=true +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=3 +supportsCSS=true + +[Mozilla/5.0 (Macintosh; *; *Mac OS X*; *; rv:1.9.*) Gecko/* Firefox/3.5b*] +Parent=Firefox 3.5 +Platform=MacOSX + +[Mozilla/5.0 (Windows; *; Windows NT 5.1; *; rv:1.9.*) Gecko/* Firefox/3.5b*] +Parent=Firefox 3.5 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.2; *; rv:1.9.*) Gecko/* Firefox/3.5b*] +Parent=Firefox 3.5 +Platform=Win2003 +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 6.0; *; rv:1.9.*) Gecko/* Firefox/3.5b*] +Parent=Firefox 3.5 +Platform=WinVista +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 6.1; *; rv:1.9.*) Gecko/* Firefox/3.5b*] +Parent=Firefox 3.5 +Platform=Win7 + +[Mozilla/5.0 (Windows; *; WinNT4.0; *; rv:1.9.*) Gecko/* Firefox/3.5b*] +Parent=Firefox 3.5 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (Windows; U; Windows NT 5.1 x64; *; rv:1.9.*) Gecko/* Firefox/3.5b*] +Parent=Firefox 3.5 +Platform=WinXP +Win32=false +Win64=true + +[Mozilla/5.0 (Windows; U; Windows NT 5.2 x64; *; rv:1.9.*) Gecko/* Firefox/3.5b*] +Parent=Firefox 3.5 +Platform=Win2003 +Win32=false +Win64=true + +[Mozilla/5.0 (Windows; U; Windows NT 6.0 x64; *; rv:1.9.*) Gecko/* Firefox/3.5b*] +Parent=Firefox 3.5 +Platform=WinVista + +[Mozilla/5.0 (Windows; U; Windows NT 6.1 x64; *; rv:1.9.*) Gecko/* Firefox/3.5b*] +Parent=Firefox 3.5 +Platform=Win7 + +[Mozilla/5.0 (X11; *; *Linux*; *; rv:1.9.*) Gecko/* Firefox/3.5b*] +Parent=Firefox 3.5 +Platform=Linux + +[Mozilla/5.0 (X11; *; FreeBSD*; *; rv:1.9.*) Gecko/* Firefox/3.5b*] +Parent=Firefox 3.5 +Platform=FreeBSD + +[Mozilla/5.0 (X11; *; HP-UX*; *; rv:1.9.*) Gecko/* Firefox/3.5b*] +Parent=Firefox 3.5 +Platform=HP-UX + +[Mozilla/5.0 (X11; *; IRIX64*; *; rv:1.9.*) Gecko/* Firefox/3.5b*] +Parent=Firefox 3.5 +Platform=IRIX64 + +[Mozilla/5.0 (X11; *; OpenBSD*; *; rv:1.9.*) Gecko/* Firefox/3.5b*] +Parent=Firefox 3.5 +Platform=OpenBSD + +[Mozilla/5.0 (X11; *; SunOS*; *; rv:1.9.*) Gecko/* Firefox/3.5b*] +Parent=Firefox 3.5 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Phoenix + +[Phoenix] +Parent=DefaultProperties +Browser=Phoenix +Version=0.5 +MinorVer=5 +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (Windows; *; Win 9x 4.90; *; rv:1.4*) Gecko/* Phoenix/0.5*] +Parent=Phoenix +Platform=WinME +Win32=true + +[Mozilla/5.0 (Windows; *; Win98; *; rv:1.4*) Gecko/* Phoenix/0.5*] +Parent=Phoenix +Platform=Win98 +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.0*; *; rv:1.4*) Gecko/* Phoenix/0.5*] +Parent=Phoenix +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.1; *; rv:1.4*) Gecko/* Phoenix/0.5*] +Parent=Phoenix +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.2*; *; rv:1.4*) Gecko/* Phoenix/0.5*] +Parent=Phoenix +Platform=Win2003 +Win32=true + +[Mozilla/5.0 (X11; *; Linux*; *; rv:1.4*) Gecko/* Phoenix/0.5*] +Parent=Phoenix +Platform=Linux + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Iceweasel + +[Iceweasel] +Parent=DefaultProperties +Browser=Iceweasel +Platform=Linux +Beta=true +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (X11; U; Linux*; *; rv:1.8*) Gecko/* Iceweasel/2.0* (Debian-*)] +Parent=Iceweasel +Version=2.0 +MajorVer=2 +MinorVer=0 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mozilla 1.0 + +[Mozilla 1.0] +Parent=DefaultProperties +Browser=Mozilla +Version=1.0 +MajorVer=1 +Beta=true +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (*rv:1.0.*) Gecko/*] +Parent=Mozilla 1.0 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mozilla 1.1 + +[Mozilla 1.1] +Parent=DefaultProperties +Browser=Mozilla +Version=1.1 +MajorVer=1 +MinorVer=1 +Beta=true +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (*rv:1.1.*) Gecko/*] +Parent=Mozilla 1.1 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mozilla 1.2 + +[Mozilla 1.2] +Parent=DefaultProperties +Browser=Mozilla +Version=1.2 +MajorVer=1 +MinorVer=2 +Beta=true +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (*rv:1.2.*) Gecko/*] +Parent=Mozilla 1.2 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mozilla 1.3 + +[Mozilla 1.3] +Parent=DefaultProperties +Browser=Mozilla +Version=1.3 +MajorVer=1 +MinorVer=3 +Beta=true +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (*rv:1.3.*) Gecko/*] +Parent=Mozilla 1.3 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mozilla 1.4 + +[Mozilla 1.4] +Parent=DefaultProperties +Browser=Mozilla +Version=1.4 +MajorVer=1 +MinorVer=4 +Beta=true +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (*rv:1.4*) Gecko/*] +Parent=Mozilla 1.4 + +[Mozilla/5.0 (Macintosh; ?; *Mac OS X*; *rv:1.4*) Gecko/*] +Parent=Mozilla 1.4 +Platform=MacOSX + +[Mozilla/5.0 (Windows; ?; Win 9x 4.90; *rv:1.4*) Gecko/*] +Parent=Mozilla 1.4 +Platform=WinME +Win32=true + +[Mozilla/5.0 (Windows; ?; Win3.1; *rv:1.4*) Gecko/*] +Parent=Mozilla 1.4 +Platform=Win31 +Win32=true + +[Mozilla/5.0 (Windows; ?; Win3.11; *rv:1.4*) Gecko/*] +Parent=Mozilla 1.4 +Platform=Win31 +Win16=true +Win32=true + +[Mozilla/5.0 (Windows; ?; Win95; *rv:1.4*) Gecko/*] +Parent=Mozilla 1.4 +Platform=Win95 +Win32=true + +[Mozilla/5.0 (Windows; ?; Win98; *rv:1.4*) Gecko/*] +Parent=Mozilla 1.4 +Platform=Win98 +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.0; *rv:1.4*) Gecko/*] +Parent=Mozilla 1.4 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *rv:1.4*) Gecko/*] +Parent=Mozilla 1.4 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT4.0; *rv:1.4*) Gecko/*] +Parent=Mozilla 1.4 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (X11; *FreeBSD*; *rv:1.4*) Gecko/*] +Parent=Mozilla 1.4 +Platform=FreeBSD + +[Mozilla/5.0 (X11; *Linux*; *rv:1.4*) Gecko/*] +Parent=Mozilla 1.4 +Platform=Linux + +[Mozilla/5.0 (X11; *OpenBSD*; *rv:1.4*) Gecko/*] +Parent=Mozilla 1.4 +Platform=OpenBSD + +[Mozilla/5.0 (X11; *SunOS*; *rv:1.4*) Gecko/*] +Parent=Mozilla 1.4 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mozilla 1.5 + +[Mozilla 1.5] +Parent=DefaultProperties +Browser=Mozilla +Version=1.5 +MajorVer=1 +MinorVer=5 +Beta=true +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (*rv:1.5*) Gecko/*] +Parent=Mozilla 1.5 + +[Mozilla/5.0 (Macintosh; ?; *Mac OS X*; *rv:1.5*) Gecko/*] +Parent=Mozilla 1.5 +Platform=MacOSX + +[Mozilla/5.0 (Windows; ?; Win 9x 4.90; *rv:1.5*) Gecko/*] +Parent=Mozilla 1.5 +Platform=WinME +Win32=true + +[Mozilla/5.0 (Windows; ?; Win3.1; *rv:1.5*) Gecko/*] +Parent=Mozilla 1.5 +Platform=Win31 +Win32=true + +[Mozilla/5.0 (Windows; ?; Win3.11; *rv:1.5*) Gecko/*] +Parent=Mozilla 1.5 +Platform=Win31 +Win16=true +Win32=true + +[Mozilla/5.0 (Windows; ?; Win95; *rv:1.5*) Gecko/*] +Parent=Mozilla 1.5 +Platform=Win95 +Win32=true + +[Mozilla/5.0 (Windows; ?; Win98; *rv:1.5*) Gecko/*] +Parent=Mozilla 1.5 +Platform=Win98 +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.0; *rv:1.5*) Gecko/*] +Parent=Mozilla 1.5 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *rv:1.5*) Gecko/*] +Parent=Mozilla 1.5 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT4.0; *rv:1.5*) Gecko/*] +Parent=Mozilla 1.5 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (X11; *FreeBSD*; *rv:1.5*) Gecko/*] +Parent=Mozilla 1.5 +Platform=FreeBSD + +[Mozilla/5.0 (X11; *Linux*; *rv:1.5*) Gecko/*] +Parent=Mozilla 1.5 +Platform=Linux + +[Mozilla/5.0 (X11; *OpenBSD*; *rv:1.5*) Gecko/*] +Parent=Mozilla 1.5 +Platform=OpenBSD + +[Mozilla/5.0 (X11; *SunOS*; *rv:1.5*) Gecko/*] +Parent=Mozilla 1.5 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mozilla 1.6 + +[Mozilla 1.6] +Parent=DefaultProperties +Browser=Mozilla +Version=1.6 +MajorVer=1 +MinorVer=6 +Beta=true +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (*rv:1.6*) Gecko/*] +Parent=Mozilla 1.6 + +[Mozilla/5.0 (Macintosh; ?; *Mac OS X*; *rv:1.6*) Gecko/*] +Parent=Mozilla 1.6 +Platform=MacOSX + +[Mozilla/5.0 (Windows; ?; Win 9x 4.90; *rv:1.6*) Gecko/*] +Parent=Mozilla 1.6 +Platform=WinME +Win32=true + +[Mozilla/5.0 (Windows; ?; Win3.1; *rv:1.6*) Gecko/*] +Parent=Mozilla 1.6 +Platform=Win31 +Win32=true + +[Mozilla/5.0 (Windows; ?; Win3.11; *rv:1.6*) Gecko/*] +Parent=Mozilla 1.6 +Platform=Win31 +Win16=true +Win32=true + +[Mozilla/5.0 (Windows; ?; Win95; *rv:1.6*) Gecko/*] +Parent=Mozilla 1.6 +Platform=Win95 +Win32=true + +[Mozilla/5.0 (Windows; ?; Win98; *rv:1.6*) Gecko/*] +Parent=Mozilla 1.6 +Platform=Win98 +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.0; *rv:1.6*) Gecko/*] +Parent=Mozilla 1.6 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *rv:1.6*) Gecko/*] +Parent=Mozilla 1.6 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT4.0; *rv:1.6*) Gecko/*] +Parent=Mozilla 1.6 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (X11; *FreeBSD*; *rv:1.6*) Gecko/*] +Parent=Mozilla 1.6 +Platform=FreeBSD + +[Mozilla/5.0 (X11; *Linux*; *rv:1.6*) Gecko/*] +Parent=Mozilla 1.6 +Platform=Linux + +[Mozilla/5.0 (X11; *OpenBSD*; *rv:1.6*) Gecko/*] +Parent=Mozilla 1.6 +Platform=OpenBSD + +[Mozilla/5.0 (X11; *SunOS*; *rv:1.6*) Gecko/*] +Parent=Mozilla 1.6 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mozilla 1.7 + +[Mozilla 1.7] +Parent=DefaultProperties +Browser=Mozilla +Version=1.7 +MajorVer=1 +MinorVer=7 +Beta=true +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true +ecmascriptversion=1.5 +w3cdomversion=1.0 + +[Mozilla/5.0 (*rv:1.7*) Gecko/*] +Parent=Mozilla 1.7 + +[Mozilla/5.0 (Macintosh; ?; *Mac OS X*; *rv:1.7*) Gecko/*] +Parent=Mozilla 1.7 +Platform=MacOSX + +[Mozilla/5.0 (Windows; ?; Win 9x 4.90; *rv:1.7*) Gecko/*] +Parent=Mozilla 1.7 +Platform=WinME +Win32=true + +[Mozilla/5.0 (Windows; ?; Win3.1; *rv:1.7*) Gecko/*] +Parent=Mozilla 1.7 +Platform=Win31 +Win32=true + +[Mozilla/5.0 (Windows; ?; Win3.11; *rv:1.7*) Gecko/*] +Parent=Mozilla 1.7 +Platform=Win31 +Win16=true +Win32=true + +[Mozilla/5.0 (Windows; ?; Win95; *rv:1.7*) Gecko/*] +Parent=Mozilla 1.7 +Platform=Win95 +Win32=true + +[Mozilla/5.0 (Windows; ?; Win98; *rv:1.7*) Gecko/*] +Parent=Mozilla 1.7 +Platform=Win98 +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.0; *rv:1.7*) Gecko/*] +Parent=Mozilla 1.7 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *rv:1.7*) Gecko/*] +Parent=Mozilla 1.7 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.2; *rv:1.7*) Gecko/*] +Parent=Mozilla 1.7 +Platform=Win2003 +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT4.0; *rv:1.7*) Gecko/*] +Parent=Mozilla 1.7 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (X11; *FreeBSD*; *rv:1.7*) Gecko/*] +Parent=Mozilla 1.7 +Platform=FreeBSD + +[Mozilla/5.0 (X11; *Linux*; *rv:1.7*) Gecko/*] +Parent=Mozilla 1.7 +Platform=Linux + +[Mozilla/5.0 (X11; *OpenBSD*; *rv:1.7*) Gecko/*] +Parent=Mozilla 1.7 +Platform=OpenBSD + +[Mozilla/5.0 (X11; *SunOS*; *rv:1.7*) Gecko/*] +Parent=Mozilla 1.7 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mozilla 1.8 + +[Mozilla 1.8] +Parent=DefaultProperties +Browser=Mozilla +Version=1.8 +MajorVer=1 +MinorVer=8 +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true +ecmascriptversion=1.5 +w3cdomversion=1.0 + +[Mozilla/5.0 (*rv:1.8*) Gecko/*] +Parent=Mozilla 1.8 + +[Mozilla/5.0 (Macintosh; ?; *Mac OS X*; *rv:1.8*) Gecko/*] +Parent=Mozilla 1.8 +Platform=MacOSX + +[Mozilla/5.0 (Windows; ?; Win 9x 4.90; *rv:1.8*) Gecko/*] +Parent=Mozilla 1.8 +Platform=WinME +Win32=true + +[Mozilla/5.0 (Windows; ?; Win3.1; *rv:1.8*) Gecko/*] +Parent=Mozilla 1.8 +Win32=true + +[Mozilla/5.0 (Windows; ?; Win3.11; *rv:1.8*) Gecko/*] +Parent=Mozilla 1.8 +Platform=Win31 +Win16=true +Win32=true + +[Mozilla/5.0 (Windows; ?; Win95; *rv:1.8*) Gecko/*] +Parent=Mozilla 1.8 +Platform=Win95 +Win32=true + +[Mozilla/5.0 (Windows; ?; Win98; *rv:1.8*) Gecko/*] +Parent=Mozilla 1.8 +Platform=Win98 +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.0; *rv:1.8*) Gecko/*] +Parent=Mozilla 1.8 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *rv:1.8*) Gecko/*] +Parent=Mozilla 1.8 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.2; *rv:1.8*) Gecko/*] +Parent=Mozilla 1.8 +Platform=Win2003 +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT4.0; *rv:1.8*) Gecko/*] +Parent=Mozilla 1.8 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (X11; *FreeBSD*; *rv:1.8*) Gecko/*] +Parent=Mozilla 1.8 +Platform=FreeBSD + +[Mozilla/5.0 (X11; *Linux*; *rv:1.8*) Gecko/*] +Parent=Mozilla 1.8 +Platform=Linux + +[Mozilla/5.0 (X11; *OpenBSD*; *rv:1.8*) Gecko/*] +Parent=Mozilla 1.8 +Platform=OpenBSD + +[Mozilla/5.0 (X11; *SunOS*; *rv:1.8*) Gecko/*] +Parent=Mozilla 1.8 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mozilla 1.9 + +[Mozilla 1.9] +Parent=DefaultProperties +Browser=Mozilla +Version=1.9 +MajorVer=1 +MinorVer=9 +Alpha=true +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (*rv:1.9*) Gecko/*] +Parent=Mozilla 1.9 + +[Mozilla/5.0 (Macintosh; ?; *Mac OS X*; *rv:1.9*) Gecko/*] +Parent=Mozilla 1.9 +Platform=MacOSX + +[Mozilla/5.0 (Windows; ?; Win 9x 4.90; *rv:1.9*) Gecko/*] +Parent=Mozilla 1.9 +Platform=WinME +Win32=true + +[Mozilla/5.0 (Windows; ?; Win3.1; *rv:1.9*) Gecko/*] +Parent=Mozilla 1.9 +Win32=true + +[Mozilla/5.0 (Windows; ?; Win3.11; *rv:1.9*) Gecko/*] +Parent=Mozilla 1.9 +Platform=Win31 +Win16=true +Win32=true + +[Mozilla/5.0 (Windows; ?; Win95; *rv:1.9*) Gecko/*] +Parent=Mozilla 1.9 +Platform=Win95 +Win32=true + +[Mozilla/5.0 (Windows; ?; Win98; *rv:1.9*) Gecko/*] +Parent=Mozilla 1.9 +Platform=Win98 +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.0; *rv:1.9*) Gecko/*] +Parent=Mozilla 1.9 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *rv:1.9*) Gecko/*] +Parent=Mozilla 1.9 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.2; *rv:1.9*) Gecko/*] +Parent=Mozilla 1.9 +Platform=Win2003 +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT4.0; *rv:1.9*) Gecko/*] +Parent=Mozilla 1.9 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (X11; *FreeBSD*; *rv:1.9*) Gecko/*] +Parent=Mozilla 1.9 +Platform=FreeBSD + +[Mozilla/5.0 (X11; *Linux*; *rv:1.9*) Gecko/*] +Parent=Mozilla 1.9 +Platform=Linux + +[Mozilla/5.0 (X11; *OpenBSD*; *rv:1.9*) Gecko/*] +Parent=Mozilla 1.9 +Platform=OpenBSD + +[Mozilla/5.0 (X11; *SunOS*; *rv:1.9*) Gecko/*] +Parent=Mozilla 1.9 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IE Mac + +[IE Mac] +Parent=DefaultProperties +Browser=IE +Platform=MacPPC +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +CDF=true +JavaApplets=true +JavaScript=true +CssVersion=1 +supportsCSS=true + +[Mozilla/?.? (compatible; MSIE 4.0*; *Mac_PowerPC*] +Parent=IE Mac +Version=4.0 +MajorVer=4 +MinorVer=0 + +[Mozilla/?.? (compatible; MSIE 4.5*; *Mac_PowerPC*] +Parent=IE Mac +Version=4.5 +MajorVer=4 +MinorVer=5 + +[Mozilla/?.? (compatible; MSIE 5.0*; *Mac_PowerPC*] +Parent=IE Mac +Version=5.0 +MajorVer=5 +MinorVer=0 + +[Mozilla/?.? (compatible; MSIE 5.1*; *Mac_PowerPC*] +Parent=IE Mac +Version=5.1 +MajorVer=5 +MinorVer=1 + +[Mozilla/?.? (compatible; MSIE 5.2*; *Mac_PowerPC*] +Parent=IE Mac +Version=5.2 +MajorVer=5 +MinorVer=2 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; AOL 9.0/IE 5.5 + +[AOL 9.0/IE 5.5] +Parent=DefaultProperties +Browser=AOL +Version=5.5 +MajorVer=5 +MinorVer=5 +Win32=true +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +CDF=true +VBScript=true +JavaApplets=true +JavaScript=true +ActiveXControls=true +CssVersion=2 +supportsCSS=true +AOL=true +aolVersion=9.0 +ecmascriptversion=1.3 +w3cdomversion=1.0 + +[Mozilla/?.* (?compatible; *MSIE 5.5; *AOL 9.0*)*] +Parent=AOL 9.0/IE 5.5 + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Win 9x 4.90*)*] +Parent=AOL 9.0/IE 5.5 +Platform=WinME + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows 95*)*] +Parent=AOL 9.0/IE 5.5 +Platform=Win95 + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows 98*)*] +Parent=AOL 9.0/IE 5.5 +Platform=Win98 + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows 98*.NET CLR 1*)*] +Parent=AOL 9.0/IE 5.5 + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows 98*.NET CLR 1*.NET CLR 2*)*] +Parent=AOL 9.0/IE 5.5 + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows 98*.NET CLR 2*)*] +Parent=AOL 9.0/IE 5.5 +CssVersion=2 +supportsCSS=true + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows 98*.NET CLR 2*.NET CLR 1*)*] +Parent=AOL 9.0/IE 5.5 + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows 98; Win 9x 4.90*)*] +Parent=AOL 9.0/IE 5.5 +Platform=WinME + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows 98; Win 9x 4.90*.NET CLR 1*)*] +Parent=AOL 9.0/IE 5.5 +Platform=WinME + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows 98; Win 9x 4.90*.NET CLR 1*.NET CLR 2*)*] +Parent=AOL 9.0/IE 5.5 +Platform=WinME + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows 98; Win 9x 4.90*.NET CLR 2*)*] +Parent=AOL 9.0/IE 5.5 +Platform=WinME + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows 98; Win 9x 4.90*.NET CLR 2*.NET CLR 1*)*] +Parent=AOL 9.0/IE 5.5 +Platform=WinME + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 4.0*)*] +Parent=AOL 9.0/IE 5.5 +Platform=WinNT + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.0*)*] +Parent=AOL 9.0/IE 5.5 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.0*.NET CLR 1*)*] +Parent=AOL 9.0/IE 5.5 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.0*.NET CLR 1*.NET CLR 2*)*] +Parent=AOL 9.0/IE 5.5 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.0*.NET CLR 2*)*] +Parent=AOL 9.0/IE 5.5 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.0*.NET CLR 2*.NET CLR 1*)*] +Parent=AOL 9.0/IE 5.5 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.01*)*] +Parent=AOL 9.0/IE 5.5 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.01*.NET CLR 1*)*] +Parent=AOL 9.0/IE 5.5 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.01*.NET CLR 1*.NET CLR 2*)*] +Parent=AOL 9.0/IE 5.5 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.01*.NET CLR 2*)*] +Parent=AOL 9.0/IE 5.5 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.01*.NET CLR 2*.NET CLR 1*)*] +Parent=AOL 9.0/IE 5.5 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.1*)*] +Parent=AOL 9.0/IE 5.5 +Platform=WinXP + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.1*.NET CLR 1*)*] +Parent=AOL 9.0/IE 5.5 +Platform=WinXP + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.1*.NET CLR 1*.NET CLR 2*)*] +Parent=AOL 9.0/IE 5.5 +Platform=WinXP + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.1*.NET CLR 2*)*] +Parent=AOL 9.0/IE 5.5 +Platform=WinXP + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.1*.NET CLR 2*.NET CLR 1*)*] +Parent=AOL 9.0/IE 5.5 +Platform=WinXP + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.2*)*] +Parent=AOL 9.0/IE 5.5 +Platform=Win2003 + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.2*.NET CLR 1*)*] +Parent=AOL 9.0/IE 5.5 +Platform=Win2003 + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.2*.NET CLR 1*.NET CLR 2*)*] +Parent=AOL 9.0/IE 5.5 +Platform=Win2003 + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.2*.NET CLR 2*)*] +Parent=AOL 9.0/IE 5.5 +Platform=Win2003 + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.2*.NET CLR 2*.NET CLR 1*)*] +Parent=AOL 9.0/IE 5.5 +Platform=Win2003 + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 6.0*)*] +Parent=AOL 9.0/IE 5.5 +Platform=WinVista + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 6.0*.NET CLR 1*)*] +Parent=AOL 9.0/IE 5.5 +Platform=WinVista + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 6.0*.NET CLR 1*.NET CLR 2*)*] +Parent=AOL 9.0/IE 5.5 +Platform=WinVista + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 6.0*.NET CLR 2*)*] +Parent=AOL 9.0/IE 5.5 +Platform=WinVista + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 6.0*.NET CLR 2*.NET CLR 1*)*] +Parent=AOL 9.0/IE 5.5 +Platform=WinVista + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; AOL 9.0/IE 6.0 + +[AOL 9.0/IE 6.0] +Parent=DefaultProperties +Browser=AOL +Version=6.0 +MajorVer=6 +Win32=true +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +CDF=true +VBScript=true +JavaApplets=true +JavaScript=true +ActiveXControls=true +CssVersion=2 +supportsCSS=true +AOL=true +aolVersion=9.0 +ecmascriptversion=1.3 +w3cdomversion=1.0 + +[Mozilla/?.* (?compatible; *MSIE 6.0; *AOL 9.0*)*] +Parent=AOL 9.0/IE 6.0 + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Win 9x 4.90*)*] +Parent=AOL 9.0/IE 6.0 +Platform=WinME + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows 95*)*] +Parent=AOL 9.0/IE 6.0 +Platform=Win95 + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows 98*)*] +Parent=AOL 9.0/IE 6.0 +Platform=Win98 + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows 98*.NET CLR 1*)*] +Parent=AOL 9.0/IE 6.0 + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows 98*.NET CLR 1*.NET CLR 2*)*] +Parent=AOL 9.0/IE 6.0 + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows 98*.NET CLR 2*)*] +Parent=AOL 9.0/IE 6.0 +CssVersion=2 +supportsCSS=true + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows 98*.NET CLR 2*.NET CLR 1*)*] +Parent=AOL 9.0/IE 6.0 + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows 98; Win 9x 4.90*)*] +Parent=AOL 9.0/IE 6.0 +Platform=WinME + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows 98; Win 9x 4.90*.NET CLR 1*)*] +Parent=AOL 9.0/IE 6.0 +Platform=WinME + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows 98; Win 9x 4.90*.NET CLR 1*.NET CLR 2*)*] +Parent=AOL 9.0/IE 6.0 +Platform=WinME + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows 98; Win 9x 4.90*.NET CLR 2*)*] +Parent=AOL 9.0/IE 6.0 +Platform=WinME + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows 98; Win 9x 4.90*.NET CLR 2*.NET CLR 1*)*] +Parent=AOL 9.0/IE 6.0 +Platform=WinME + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 4.0*)*] +Parent=AOL 9.0/IE 6.0 +Platform=WinNT + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.0*)*] +Parent=AOL 9.0/IE 6.0 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.0*.NET CLR 1*)*] +Parent=AOL 9.0/IE 6.0 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.0*.NET CLR 1*.NET CLR 2*)*] +Parent=AOL 9.0/IE 6.0 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.0*.NET CLR 2*)*] +Parent=AOL 9.0/IE 6.0 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.0*.NET CLR 2*.NET CLR 1*)*] +Parent=AOL 9.0/IE 6.0 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.01*)*] +Parent=AOL 9.0/IE 6.0 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.01*.NET CLR 1*)*] +Parent=AOL 9.0/IE 6.0 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.01*.NET CLR 1*.NET CLR 2*)*] +Parent=AOL 9.0/IE 6.0 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.01*.NET CLR 2*)*] +Parent=AOL 9.0/IE 6.0 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.01*.NET CLR 2*.NET CLR 1*)*] +Parent=AOL 9.0/IE 6.0 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.1*)*] +Parent=AOL 9.0/IE 6.0 +Platform=WinXP + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.1*.NET CLR 1*)*] +Parent=AOL 9.0/IE 6.0 +Platform=WinXP + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.1*.NET CLR 1*.NET CLR 2*)*] +Parent=AOL 9.0/IE 6.0 +Platform=WinXP + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.1*.NET CLR 2*)*] +Parent=AOL 9.0/IE 6.0 +Platform=WinXP + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.1*.NET CLR 2*.NET CLR 1*)*] +Parent=AOL 9.0/IE 6.0 +Platform=WinXP + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.2*)*] +Parent=AOL 9.0/IE 6.0 +Platform=Win2003 + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.2*.NET CLR 1*)*] +Parent=AOL 9.0/IE 6.0 +Platform=Win2003 + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.2*.NET CLR 1*.NET CLR 2*)*] +Parent=AOL 9.0/IE 6.0 +Platform=Win2003 + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.2*.NET CLR 2*)*] +Parent=AOL 9.0/IE 6.0 +Platform=Win2003 + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.2*.NET CLR 2*.NET CLR 1*)*] +Parent=AOL 9.0/IE 6.0 +Platform=Win2003 + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 6.0*)*] +Parent=AOL 9.0/IE 6.0 +Platform=WinVista + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 6.0*.NET CLR 1*)*] +Parent=AOL 9.0/IE 6.0 +Platform=WinVista + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 6.0*.NET CLR 1*.NET CLR 2*)*] +Parent=AOL 9.0/IE 6.0 +Platform=WinVista + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 6.0*.NET CLR 2*)*] +Parent=AOL 9.0/IE 6.0 +Platform=WinVista + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 6.0*.NET CLR 2*.NET CLR 1*)*] +Parent=AOL 9.0/IE 6.0 +Platform=WinVista + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; AOL 9.0/IE 7.0 + +[AOL 9.0/IE 7.0] +Parent=DefaultProperties +Browser=AOL +Version=7.0 +MajorVer=7 +Win32=true +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +CDF=true +VBScript=true +JavaApplets=true +JavaScript=true +ActiveXControls=true +CssVersion=2 +supportsCSS=true +AOL=true +aolVersion=9.0 + +[Mozilla/?.* (?compatible; *MSIE 7.0; *AOL 9.0*)*] +Parent=AOL 9.0/IE 7.0 + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Win 9x 4.90*)*] +Parent=AOL 9.0/IE 7.0 +Platform=WinME + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows 95*)*] +Parent=AOL 9.0/IE 7.0 +Platform=Win95 + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows 98*)*] +Parent=AOL 9.0/IE 7.0 +Platform=Win98 + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows 98*.NET CLR 1*)*] +Parent=AOL 9.0/IE 7.0 + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows 98*.NET CLR 1*.NET CLR 2*)*] +Parent=AOL 9.0/IE 7.0 + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows 98*.NET CLR 2*)*] +Parent=AOL 9.0/IE 7.0 +CssVersion=2 +supportsCSS=true + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows 98*.NET CLR 2*.NET CLR 1*)*] +Parent=AOL 9.0/IE 7.0 + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows 98; Win 9x 4.90*)*] +Parent=AOL 9.0/IE 7.0 +Platform=WinME + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows 98; Win 9x 4.90*.NET CLR 1*)*] +Parent=AOL 9.0/IE 7.0 +Platform=WinME + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows 98; Win 9x 4.90*.NET CLR 1*.NET CLR 2*)*] +Parent=AOL 9.0/IE 7.0 +Platform=WinME + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows 98; Win 9x 4.90*.NET CLR 2*)*] +Parent=AOL 9.0/IE 7.0 +Platform=WinME + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows 98; Win 9x 4.90*.NET CLR 2*.NET CLR 1*)*] +Parent=AOL 9.0/IE 7.0 +Platform=WinME + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 4.0*)*] +Parent=AOL 9.0/IE 7.0 +Platform=WinNT + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.0*)*] +Parent=AOL 9.0/IE 7.0 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.0*.NET CLR 1*)*] +Parent=AOL 9.0/IE 7.0 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.0*.NET CLR 1*.NET CLR 2*)*] +Parent=AOL 9.0/IE 7.0 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.0*.NET CLR 2*)*] +Parent=AOL 9.0/IE 7.0 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.0*.NET CLR 2*.NET CLR 1*)*] +Parent=AOL 9.0/IE 7.0 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.01*)*] +Parent=AOL 9.0/IE 7.0 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.01*.NET CLR 1*)*] +Parent=AOL 9.0/IE 7.0 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.01*.NET CLR 1*.NET CLR 2*)*] +Parent=AOL 9.0/IE 7.0 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.01*.NET CLR 2*)*] +Parent=AOL 9.0/IE 7.0 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.01*.NET CLR 2*.NET CLR 1*)*] +Parent=AOL 9.0/IE 7.0 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.1*)*] +Parent=AOL 9.0/IE 7.0 +Platform=WinXP + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.1*.NET CLR 1*)*] +Parent=AOL 9.0/IE 7.0 +Platform=WinXP + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.1*.NET CLR 1*.NET CLR 2*)*] +Parent=AOL 9.0/IE 7.0 +Platform=WinXP + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.1*.NET CLR 2*)*] +Parent=AOL 9.0/IE 7.0 +Platform=WinXP + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.1*.NET CLR 2*.NET CLR 1*)*] +Parent=AOL 9.0/IE 7.0 +Platform=WinXP + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.2*)*] +Parent=AOL 9.0/IE 7.0 +Platform=Win2003 + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.2*.NET CLR 1*)*] +Parent=AOL 9.0/IE 7.0 +Platform=Win2003 + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.2*.NET CLR 1*.NET CLR 2*)*] +Parent=AOL 9.0/IE 7.0 +Platform=Win2003 + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.2*.NET CLR 2*)*] +Parent=AOL 9.0/IE 7.0 +Platform=Win2003 + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.2*.NET CLR 2*.NET CLR 1*)*] +Parent=AOL 9.0/IE 7.0 +Platform=Win2003 + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 6.0*)*] +Parent=AOL 9.0/IE 7.0 +Platform=WinVista + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 6.0*.NET CLR 1*)*] +Parent=AOL 9.0/IE 7.0 +Platform=WinVista + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 6.0*.NET CLR 1*.NET CLR 2*)*] +Parent=AOL 9.0/IE 7.0 +Platform=WinVista + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 6.0*.NET CLR 2*)*] +Parent=AOL 9.0/IE 7.0 +Platform=WinVista + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 6.0*.NET CLR 2*.NET CLR 1*)*] +Parent=AOL 9.0/IE 7.0 +Platform=WinVista + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Avant Browser + +[Avant Browser] +Parent=DefaultProperties +Browser=Avant Browser +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +CDF=true +VBScript=true +JavaApplets=true +JavaScript=true +ActiveXControls=true +CssVersion=2 +supportsCSS=true + +[Advanced Browser (http://www.avantbrowser.com)] +Parent=Avant Browser + +[Avant Browser*] +Parent=Avant Browser + +[Avant Browser/*] +Parent=Avant Browser + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IE 4.01 + +[IE 4.01] +Parent=DefaultProperties +Browser=IE +Version=4.01 +MajorVer=4 +MinorVer=01 +Win32=true +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +CDF=true +VBScript=true +JavaApplets=true +JavaScript=true +ActiveXControls=true +CssVersion=2 +supportsCSS=true + +[Mozilla/?.* (?compatible; *MSIE 4.01*)*] +Parent=IE 4.01 + +[Mozilla/4.0 (compatible; MSIE 4.01; *Windows 95*)*] +Parent=IE 4.01 +Platform=Win95 + +[Mozilla/4.0 (compatible; MSIE 4.01; *Windows 98*)*] +Parent=IE 4.01 +Platform=Win98 + +[Mozilla/4.0 (compatible; MSIE 4.01; *Windows 98; Win 9x 4.90;*)*] +Parent=IE 4.01 +Platform=WinME + +[Mozilla/4.0 (compatible; MSIE 4.01; *Windows NT 4.0*)*] +Parent=IE 4.01 +Platform=WinNT + +[Mozilla/4.0 (compatible; MSIE 4.01; *Windows NT 5.0*)*] +Parent=IE 4.01 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 4.01; *Windows NT 5.01*)*] +Parent=IE 4.01 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 4.01; Windows NT)] +Parent=IE 4.01 +Platform=WinNT + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IE 5.0 + +[IE 5.0] +Parent=DefaultProperties +Browser=IE +Version=5.0 +MajorVer=5 +Win32=true +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +CDF=true +VBScript=true +JavaApplets=true +JavaScript=true +ActiveXControls=true +CssVersion=2 +supportsCSS=true + +[Mozilla/?.* (?compatible; *MSIE 5.0*)*] +Parent=IE 5.0 + +[Mozilla/4.0 (compatible; MSIE 5.0; *Windows 95*)*] +Parent=IE 5.0 +Platform=Win95 + +[Mozilla/4.0 (compatible; MSIE 5.0; *Windows 98*)*] +Parent=IE 5.0 +Platform=Win98 + +[Mozilla/4.0 (compatible; MSIE 5.0; *Windows 98; Win 9x 4.90;*)*] +Parent=IE 5.0 +Platform=WinME + +[Mozilla/4.0 (compatible; MSIE 5.0; *Windows NT 4.0*)*] +Parent=IE 5.0 +Platform=WinNT + +[Mozilla/4.0 (compatible; MSIE 5.0; *Windows NT 5.0*)*] +Parent=IE 5.0 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 5.0; *Windows NT 5.01*)*] +Parent=IE 5.0 +Platform=Win2000 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IE 5.01 + +[IE 5.01] +Parent=DefaultProperties +Browser=IE +Version=5.01 +MajorVer=5 +MinorVer=01 +Win32=true +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +CDF=true +VBScript=true +JavaApplets=true +JavaScript=true +ActiveXControls=true +CssVersion=2 +supportsCSS=true + +[Mozilla/?.* (?compatible; *MSIE 5.01*)*] +Parent=IE 5.01 + +[Mozilla/4.0 (compatible; MSIE 5.01; *Windows 95*)*] +Parent=IE 5.01 +Platform=Win95 + +[Mozilla/4.0 (compatible; MSIE 5.01; *Windows 98*)*] +Parent=IE 5.01 +Platform=Win98 + +[Mozilla/4.0 (compatible; MSIE 5.01; *Windows 98; Win 9x 4.90;*)*] +Parent=IE 5.01 +Platform=WinME + +[Mozilla/4.0 (compatible; MSIE 5.01; *Windows NT 4.0*)*] +Parent=IE 5.01 +Platform=WinNT + +[Mozilla/4.0 (compatible; MSIE 5.01; *Windows NT 5.0*)*] +Parent=IE 5.01 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 5.01; *Windows NT 5.01*)*] +Parent=IE 5.01 +Platform=Win2000 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IE 5.5 + +[IE 5.5] +Parent=DefaultProperties +Browser=IE +Version=5.5 +MajorVer=5 +MinorVer=5 +Win32=true +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +CDF=true +VBScript=true +JavaApplets=true +JavaScript=true +ActiveXControls=true +CssVersion=2 +supportsCSS=true +ecmascriptversion=1.2 +w3cdomversion=1.0 + +[Mozilla/?.* (?compatible; *MSIE 5.5*)*] +Parent=IE 5.5 + +[Mozilla/4.0 (compatible; MSIE 5.5; *Windows 95*)*] +Parent=IE 5.5 +Platform=Win95 + +[Mozilla/4.0 (compatible; MSIE 5.5; *Windows 98*)*] +Parent=IE 5.5 +Platform=Win98 + +[Mozilla/4.0 (compatible; MSIE 5.5; *Windows 98; Win 9x 4.90*)*] +Parent=IE 5.5 +Platform=WinME + +[Mozilla/4.0 (compatible; MSIE 5.5; *Windows NT 4.0*)*] +Parent=IE 5.5 +Platform=WinNT + +[Mozilla/4.0 (compatible; MSIE 5.5; *Windows NT 5.0*)*] +Parent=IE 5.5 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 5.5; *Windows NT 5.01*)*] +Parent=IE 5.5 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 5.5; *Windows NT 5.1*)*] +Parent=IE 5.5 +Platform=WinXP + +[Mozilla/4.0 (compatible; MSIE 5.5; *Windows NT 5.2*)*] +Parent=IE 5.5 +Platform=Win2003 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IE 6.0 + +[IE 6.0] +Parent=DefaultProperties +Browser=IE +Version=6.0 +MajorVer=6 +Win32=true +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +CDF=true +VBScript=true +JavaApplets=true +JavaScript=true +ActiveXControls=true +CssVersion=2 +supportsCSS=true +ecmascriptversion=1.2 +w3cdomversion=1.0 +msdomversion=6.0 + +[Mozilla/?.* (?compatible; *MSIE 6.0*)*] +Parent=IE 6.0 + +[Mozilla/4.0 (compatible; MSIE 6.0; *Windows 95*)*] +Parent=IE 6.0 +Platform=Win95 + +[Mozilla/4.0 (compatible; MSIE 6.0; *Windows 98*)*] +Parent=IE 6.0 +Platform=Win98 + +[Mozilla/4.0 (compatible; MSIE 6.0; *Windows 98; Win 9x 4.90*)*] +Parent=IE 6.0 +Platform=WinME + +[Mozilla/4.0 (compatible; MSIE 6.0; *Windows NT 4.0*)*] +Parent=IE 6.0 +Platform=WinNT + +[Mozilla/4.0 (compatible; MSIE 6.0; *Windows NT 5.0*)*] +Parent=IE 6.0 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 6.0; *Windows NT 5.01*)*] +Parent=IE 6.0 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 6.0; *Windows NT 5.1*)*] +Parent=IE 6.0 +Platform=WinXP + +[Mozilla/4.0 (compatible; MSIE 6.0; *Windows NT 5.2*)*] +Parent=IE 6.0 +Platform=Win2003 + +[Mozilla/4.0 (compatible; MSIE 6.0; *Windows NT 5.2;*Win64;*)*] +Parent=IE 6.0 +Platform=WinXP +Win32=false +Win64=true + +[Mozilla/4.0 (compatible; MSIE 6.0; *Windows NT 5.2;*WOW64;*)*] +Parent=IE 6.0 +Platform=WinXP + +[Mozilla/4.0 (compatible; MSIE 6.0; *Windows NT 6.0*)*] +Parent=IE 6.0 +Platform=WinVista + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IE 7.0 + +[IE 7.0] +Parent=DefaultProperties +Browser=IE +Version=7.0 +MajorVer=7 +Win32=true +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +CDF=true +VBScript=true +JavaApplets=true +JavaScript=true +ActiveXControls=true +CssVersion=2 +supportsCSS=true +ecmascriptversion=1.2 +msdomversion=7.0 +w3cdomversion=1.0 + +[Mozilla/?.* (?compatible; *MSIE 7.0*)*] +Parent=IE 7.0 + +[Mozilla/4.0 (compatible; MSIE 7.0; *Windows 98*)*] +Parent=IE 7.0 +Platform=Win98 + +[Mozilla/4.0 (compatible; MSIE 7.0; *Windows 98; Win 9x 4.90;*)*] +Parent=IE 7.0 +Platform=WinME + +[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 4.0*)*] +Parent=IE 7.0 +Platform=WinNT + +[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 5.0*)*] +Parent=IE 7.0 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 5.01*)*] +Parent=IE 7.0 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 5.1*)*] +Parent=IE 7.0 +Platform=WinXP + +[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 5.2*)*] +Parent=IE 7.0 +Platform=Win2003 + +[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 5.2;*Win64;*)*] +Parent=IE 7.0 +Platform=WinXP +Win32=false +Win64=true + +[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 5.2;*WOW64;*)*] +Parent=IE 7.0 +Platform=WinXP + +[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 6.0*)*] +Parent=IE 7.0 +Platform=WinVista + +[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 6.1*)*] +Parent=IE 7.0 +Platform=Win7 + +[Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/4.0; *)*] +Parent=IE 7.0 +Platform=Win7 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IE 8.0 + +[IE 8.0] +Parent=DefaultProperties +Browser=IE +Version=8.0 +MajorVer=8 +Win32=true +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +CDF=true +VBScript=true +JavaApplets=true +JavaScript=true +ActiveXControls=true +CssVersion=3 +supportsCSS=true +ecmascriptversion=1.2 +msdomversion=8.0 +w3cdomversion=1.0 + +[Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/4.0*)*] +Parent=IE 8.0 +Platform=WinVista + +[Mozilla/4.0 (compatible; MSIE 8.0; Win32*)*] +Parent=IE 8.0 +Platform=Win32 + +[Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.0*)*] +Parent=IE 8.0 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1*)*] +Parent=IE 8.0 +Platform=WinXP + +[Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2*)*] +Parent=IE 8.0 +Platform=Win2003 + +[Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0*)*] +Parent=IE 8.0 +Platform=WinVista + +[Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0*)*] +Parent=IE 8.0 +Platform=WinVista + +[Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Win64; x64; Trident/4.0*)*] +Parent=IE 8.0 +Platform=WinVista +Win32=false +Win64=true + +[Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; WOW64; Trident/4.0*)*] +Parent=IE 8.0 +Platform=WinVista +Win64=false + +[Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1*)*] +Parent=IE 8.0 +Platform=Win7 + +[Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0*)*] +Parent=IE 8.0 +Platform=Win7 + +[Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Win64; x64; Trident/4.0*)*] +Parent=IE 8.0 +Platform=Win7 +Win32=false +Win64=true + +[Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0*)*] +Parent=IE 8.0 +Platform=Win7 +Win64=false + +[Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 7.0; Trident/4.0*)*] +Parent=IE 8.0 +Platform=Win7 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Default Browser + +[*] +Browser=Default Browser +Version=0 +MajorVer=0 +MinorVer=0 +Platform=unknown +Alpha=false +Beta=false +Win16=false +Win32=false +Win64=false +Frames=true +IFrames=false +Tables=true +Cookies=false +BackgroundSounds=false +CDF=false +VBScript=false +JavaApplets=false +JavaScript=false +ActiveXControls=false +Stripper=false +isBanned=false +isMobileDevice=false +isSyndicationReader=false +Crawler=false +CssVersion=0 +supportsCSS=false +AOL=false +aolVersion=0 +AuthenticodeUpdate=0 +CSS=0 +WAP=false +netCLR=false +ClrVersion=0 +ECMAScriptVersion=0.0 +W3CDOMVersion=0.0 diff --git a/ReHitman/Modules/Mono/etc/mono/config b/ReHitman/Modules/Mono/etc/mono/config new file mode 100644 index 0000000..68bb0b7 --- /dev/null +++ b/ReHitman/Modules/Mono/etc/mono/config @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ReHitman/Modules/Mono/etc/mono/mconfig/config.xml b/ReHitman/Modules/Mono/etc/mono/mconfig/config.xml new file mode 100644 index 0000000..a3df3b5 --- /dev/null +++ b/ReHitman/Modules/Mono/etc/mono/mconfig/config.xml @@ -0,0 +1,616 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + + +]]> + + + + + + +
+
+
+ + + + + +
+ +
+
+
+
+ + + +]]> + + + + + +
+
+
+
+
+
+
+ + + + + +]]> + + + + + +
+
+
+
+
+
+
+ + + + + + + + +]]> + + + + + +
+
+
+
+
+ + + + + + + +]]> + + + + + +
+
+
+
+
+ + + + +]]> + + + + + +
+
+
+
+
+ + + + + + + + + + + + +]]> + + + + + +
+
+
+ + + + + + + + + + + + + +]]> + + + + + +
+
+
+ + + + + + + + + + + + + + + + + +]]> + + + + + + + +
+
+
+ + + + + +
+ +
+
+
+ + + + ]]> + + + + + +
+
+
+
+
+
+
+ + + + +]]> + + + + + +
+
+
+
+
+
+
+ + + + +]]> + + + + + +
+
+
+
+
+ + + + + + + +]]> + + + + + +
+
+
+
+
+ + + + +]]> + + + + + +
+
+
+ + + + + + + + + + + + + + + +]]> + + + + + +
+
+
+ + + + + + + + + + + + + +]]> + + + + + + +
+
+
+
+
+
+
+ + + + +]]> + + + + + +
+
+
+
+
+
+
+ + + + + + + + + + + +]]> + + + + + +
+
+
+
+
+ + + + +]]> + + + + + + + + ]]> + + + + + + ]]> + + + + + + ]]> + + + + + +]]> + + + + + +]]> + + + + + +]]> + + + + + +]]> + + + + + +]]> + + + + + +]]> + + + + + +]]> + + + + + +]]> + + + + +]]> + + + + + +]]> + + + + + +]]> + + + + + +]]> + + + + +
+
+
+
+
+
+ + diff --git a/ReHitman/Modules/Mono/etc/pango/pango.modules b/ReHitman/Modules/Mono/etc/pango/pango.modules new file mode 100644 index 0000000..cb2a8ac --- /dev/null +++ b/ReHitman/Modules/Mono/etc/pango/pango.modules @@ -0,0 +1,5 @@ +# Pango Modules file +# Automatically generated file, do not edit +# +# ModulesPath = c:/devel/target/7c1d1e55b5080eb9d56515f132945bb4/lib/pango\1.6.0\modules +# diff --git a/ReHitman/Modules/Mono/include/mono-2.0/mono/cil/opcode.def b/ReHitman/Modules/Mono/include/mono-2.0/mono/cil/opcode.def new file mode 100644 index 0000000..43722f6 --- /dev/null +++ b/ReHitman/Modules/Mono/include/mono-2.0/mono/cil/opcode.def @@ -0,0 +1,347 @@ +/* GENERATED FILE, DO NOT EDIT. Edit cil-opcodes.xml instead and run "make opcode.def" to regenerate. */ +OPDEF(CEE_NOP, "nop", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0x00, NEXT) +OPDEF(CEE_BREAK, "break", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0x01, ERROR) +OPDEF(CEE_LDARG_0, "ldarg.0", Pop0, Push1, InlineNone, 0, 1, 0xFF, 0x02, NEXT) +OPDEF(CEE_LDARG_1, "ldarg.1", Pop0, Push1, InlineNone, 1, 1, 0xFF, 0x03, NEXT) +OPDEF(CEE_LDARG_2, "ldarg.2", Pop0, Push1, InlineNone, 2, 1, 0xFF, 0x04, NEXT) +OPDEF(CEE_LDARG_3, "ldarg.3", Pop0, Push1, InlineNone, 3, 1, 0xFF, 0x05, NEXT) +OPDEF(CEE_LDLOC_0, "ldloc.0", Pop0, Push1, InlineNone, 0, 1, 0xFF, 0x06, NEXT) +OPDEF(CEE_LDLOC_1, "ldloc.1", Pop0, Push1, InlineNone, 1, 1, 0xFF, 0x07, NEXT) +OPDEF(CEE_LDLOC_2, "ldloc.2", Pop0, Push1, InlineNone, 2, 1, 0xFF, 0x08, NEXT) +OPDEF(CEE_LDLOC_3, "ldloc.3", Pop0, Push1, InlineNone, 3, 1, 0xFF, 0x09, NEXT) +OPDEF(CEE_STLOC_0, "stloc.0", Pop1, Push0, InlineNone, 0, 1, 0xFF, 0x0A, NEXT) +OPDEF(CEE_STLOC_1, "stloc.1", Pop1, Push0, InlineNone, 1, 1, 0xFF, 0x0B, NEXT) +OPDEF(CEE_STLOC_2, "stloc.2", Pop1, Push0, InlineNone, 2, 1, 0xFF, 0x0C, NEXT) +OPDEF(CEE_STLOC_3, "stloc.3", Pop1, Push0, InlineNone, 3, 1, 0xFF, 0x0D, NEXT) +OPDEF(CEE_LDARG_S, "ldarg.s", Pop0, Push1, ShortInlineVar, 0, 1, 0xFF, 0x0E, NEXT) +OPDEF(CEE_LDARGA_S, "ldarga.s", Pop0, PushI, ShortInlineVar, 0, 1, 0xFF, 0x0F, NEXT) +OPDEF(CEE_STARG_S, "starg.s", Pop1, Push0, ShortInlineVar, 0, 1, 0xFF, 0x10, NEXT) +OPDEF(CEE_LDLOC_S, "ldloc.s", Pop0, Push1, ShortInlineVar, 0, 1, 0xFF, 0x11, NEXT) +OPDEF(CEE_LDLOCA_S, "ldloca.s", Pop0, PushI, ShortInlineVar, 0, 1, 0xFF, 0x12, NEXT) +OPDEF(CEE_STLOC_S, "stloc.s", Pop1, Push0, ShortInlineVar, 0, 1, 0xFF, 0x13, NEXT) +OPDEF(CEE_LDNULL, "ldnull", Pop0, PushRef, InlineNone, 0, 1, 0xFF, 0x14, NEXT) +OPDEF(CEE_LDC_I4_M1, "ldc.i4.m1", Pop0, PushI, InlineNone, -1, 1, 0xFF, 0x15, NEXT) +OPDEF(CEE_LDC_I4_0, "ldc.i4.0", Pop0, PushI, InlineNone, 0, 1, 0xFF, 0x16, NEXT) +OPDEF(CEE_LDC_I4_1, "ldc.i4.1", Pop0, PushI, InlineNone, 1, 1, 0xFF, 0x17, NEXT) +OPDEF(CEE_LDC_I4_2, "ldc.i4.2", Pop0, PushI, InlineNone, 2, 1, 0xFF, 0x18, NEXT) +OPDEF(CEE_LDC_I4_3, "ldc.i4.3", Pop0, PushI, InlineNone, 3, 1, 0xFF, 0x19, NEXT) +OPDEF(CEE_LDC_I4_4, "ldc.i4.4", Pop0, PushI, InlineNone, 4, 1, 0xFF, 0x1A, NEXT) +OPDEF(CEE_LDC_I4_5, "ldc.i4.5", Pop0, PushI, InlineNone, 5, 1, 0xFF, 0x1B, NEXT) +OPDEF(CEE_LDC_I4_6, "ldc.i4.6", Pop0, PushI, InlineNone, 6, 1, 0xFF, 0x1C, NEXT) +OPDEF(CEE_LDC_I4_7, "ldc.i4.7", Pop0, PushI, InlineNone, 7, 1, 0xFF, 0x1D, NEXT) +OPDEF(CEE_LDC_I4_8, "ldc.i4.8", Pop0, PushI, InlineNone, 8, 1, 0xFF, 0x1E, NEXT) +OPDEF(CEE_LDC_I4_S, "ldc.i4.s", Pop0, PushI, ShortInlineI, 0, 1, 0xFF, 0x1F, NEXT) +OPDEF(CEE_LDC_I4, "ldc.i4", Pop0, PushI, InlineI, 0, 1, 0xFF, 0x20, NEXT) +OPDEF(CEE_LDC_I8, "ldc.i8", Pop0, PushI8, InlineI8, 0, 1, 0xFF, 0x21, NEXT) +OPDEF(CEE_LDC_R4, "ldc.r4", Pop0, PushR4, ShortInlineR, 0, 1, 0xFF, 0x22, NEXT) +OPDEF(CEE_LDC_R8, "ldc.r8", Pop0, PushR8, InlineR, 0, 1, 0xFF, 0x23, NEXT) +OPDEF(CEE_UNUSED99, "unused99", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0x24, NEXT) +OPDEF(CEE_DUP, "dup", Pop1, Push1+Push1, InlineNone, 0, 1, 0xFF, 0x25, NEXT) +OPDEF(CEE_POP, "pop", Pop1, Push0, InlineNone, 0, 1, 0xFF, 0x26, NEXT) +OPDEF(CEE_JMP, "jmp", Pop0, Push0, InlineMethod, 0, 1, 0xFF, 0x27, CALL) +OPDEF(CEE_CALL, "call", VarPop, VarPush, InlineMethod, 0, 1, 0xFF, 0x28, CALL) +OPDEF(CEE_CALLI, "calli", VarPop, VarPush, InlineSig, 0, 1, 0xFF, 0x29, CALL) +OPDEF(CEE_RET, "ret", VarPop, Push0, InlineNone, 0, 1, 0xFF, 0x2A, RETURN) +OPDEF(CEE_BR_S, "br.s", Pop0, Push0, ShortInlineBrTarget, 0, 1, 0xFF, 0x2B, BRANCH) +OPDEF(CEE_BRFALSE_S, "brfalse.s", PopI, Push0, ShortInlineBrTarget, 0, 1, 0xFF, 0x2C, COND_BRANCH) +OPDEF(CEE_BRTRUE_S, "brtrue.s", PopI, Push0, ShortInlineBrTarget, 0, 1, 0xFF, 0x2D, COND_BRANCH) +OPDEF(CEE_BEQ_S, "beq.s", Pop1+Pop1, Push0, ShortInlineBrTarget, 0, 1, 0xFF, 0x2E, COND_BRANCH) +OPDEF(CEE_BGE_S, "bge.s", Pop1+Pop1, Push0, ShortInlineBrTarget, 0, 1, 0xFF, 0x2F, COND_BRANCH) +OPDEF(CEE_BGT_S, "bgt.s", Pop1+Pop1, Push0, ShortInlineBrTarget, 0, 1, 0xFF, 0x30, COND_BRANCH) +OPDEF(CEE_BLE_S, "ble.s", Pop1+Pop1, Push0, ShortInlineBrTarget, 0, 1, 0xFF, 0x31, COND_BRANCH) +OPDEF(CEE_BLT_S, "blt.s", Pop1+Pop1, Push0, ShortInlineBrTarget, 0, 1, 0xFF, 0x32, COND_BRANCH) +OPDEF(CEE_BNE_UN_S, "bne.un.s", Pop1+Pop1, Push0, ShortInlineBrTarget, 0, 1, 0xFF, 0x33, COND_BRANCH) +OPDEF(CEE_BGE_UN_S, "bge.un.s", Pop1+Pop1, Push0, ShortInlineBrTarget, 0, 1, 0xFF, 0x34, COND_BRANCH) +OPDEF(CEE_BGT_UN_S, "bgt.un.s", Pop1+Pop1, Push0, ShortInlineBrTarget, 0, 1, 0xFF, 0x35, COND_BRANCH) +OPDEF(CEE_BLE_UN_S, "ble.un.s", Pop1+Pop1, Push0, ShortInlineBrTarget, 0, 1, 0xFF, 0x36, COND_BRANCH) +OPDEF(CEE_BLT_UN_S, "blt.un.s", Pop1+Pop1, Push0, ShortInlineBrTarget, 0, 1, 0xFF, 0x37, COND_BRANCH) +OPDEF(CEE_BR, "br", Pop0, Push0, InlineBrTarget, 0, 1, 0xFF, 0x38, BRANCH) +OPDEF(CEE_BRFALSE, "brfalse", PopI, Push0, InlineBrTarget, 0, 1, 0xFF, 0x39, COND_BRANCH) +OPDEF(CEE_BRTRUE, "brtrue", PopI, Push0, InlineBrTarget, 0, 1, 0xFF, 0x3A, COND_BRANCH) +OPDEF(CEE_BEQ, "beq", Pop1+Pop1, Push0, InlineBrTarget, 0, 1, 0xFF, 0x3B, COND_BRANCH) +OPDEF(CEE_BGE, "bge", Pop1+Pop1, Push0, InlineBrTarget, 0, 1, 0xFF, 0x3C, COND_BRANCH) +OPDEF(CEE_BGT, "bgt", Pop1+Pop1, Push0, InlineBrTarget, 0, 1, 0xFF, 0x3D, COND_BRANCH) +OPDEF(CEE_BLE, "ble", Pop1+Pop1, Push0, InlineBrTarget, 0, 1, 0xFF, 0x3E, COND_BRANCH) +OPDEF(CEE_BLT, "blt", Pop1+Pop1, Push0, InlineBrTarget, 0, 1, 0xFF, 0x3F, COND_BRANCH) +OPDEF(CEE_BNE_UN, "bne.un", Pop1+Pop1, Push0, InlineBrTarget, 0, 1, 0xFF, 0x40, COND_BRANCH) +OPDEF(CEE_BGE_UN, "bge.un", Pop1+Pop1, Push0, InlineBrTarget, 0, 1, 0xFF, 0x41, COND_BRANCH) +OPDEF(CEE_BGT_UN, "bgt.un", Pop1+Pop1, Push0, InlineBrTarget, 0, 1, 0xFF, 0x42, COND_BRANCH) +OPDEF(CEE_BLE_UN, "ble.un", Pop1+Pop1, Push0, InlineBrTarget, 0, 1, 0xFF, 0x43, COND_BRANCH) +OPDEF(CEE_BLT_UN, "blt.un", Pop1+Pop1, Push0, InlineBrTarget, 0, 1, 0xFF, 0x44, COND_BRANCH) +OPDEF(CEE_SWITCH, "switch", PopI, Push0, InlineSwitch, 0, 1, 0xFF, 0x45, COND_BRANCH) +OPDEF(CEE_LDIND_I1, "ldind.i1", PopI, PushI, InlineNone, 0, 1, 0xFF, 0x46, NEXT) +OPDEF(CEE_LDIND_U1, "ldind.u1", PopI, PushI, InlineNone, 0, 1, 0xFF, 0x47, NEXT) +OPDEF(CEE_LDIND_I2, "ldind.i2", PopI, PushI, InlineNone, 0, 1, 0xFF, 0x48, NEXT) +OPDEF(CEE_LDIND_U2, "ldind.u2", PopI, PushI, InlineNone, 0, 1, 0xFF, 0x49, NEXT) +OPDEF(CEE_LDIND_I4, "ldind.i4", PopI, PushI, InlineNone, 0, 1, 0xFF, 0x4A, NEXT) +OPDEF(CEE_LDIND_U4, "ldind.u4", PopI, PushI, InlineNone, 0, 1, 0xFF, 0x4B, NEXT) +OPDEF(CEE_LDIND_I8, "ldind.i8", PopI, PushI8, InlineNone, 0, 1, 0xFF, 0x4C, NEXT) +OPDEF(CEE_LDIND_I, "ldind.i", PopI, PushI, InlineNone, 0, 1, 0xFF, 0x4D, NEXT) +OPDEF(CEE_LDIND_R4, "ldind.r4", PopI, PushR4, InlineNone, 0, 1, 0xFF, 0x4E, NEXT) +OPDEF(CEE_LDIND_R8, "ldind.r8", PopI, PushR8, InlineNone, 0, 1, 0xFF, 0x4F, NEXT) +OPDEF(CEE_LDIND_REF, "ldind.ref", PopI, PushRef, InlineNone, 0, 1, 0xFF, 0x50, NEXT) +OPDEF(CEE_STIND_REF, "stind.ref", PopI+PopI, Push0, InlineNone, 0, 1, 0xFF, 0x51, NEXT) +OPDEF(CEE_STIND_I1, "stind.i1", PopI+PopI, Push0, InlineNone, 0, 1, 0xFF, 0x52, NEXT) +OPDEF(CEE_STIND_I2, "stind.i2", PopI+PopI, Push0, InlineNone, 0, 1, 0xFF, 0x53, NEXT) +OPDEF(CEE_STIND_I4, "stind.i4", PopI+PopI, Push0, InlineNone, 0, 1, 0xFF, 0x54, NEXT) +OPDEF(CEE_STIND_I8, "stind.i8", PopI+PopI8, Push0, InlineNone, 0, 1, 0xFF, 0x55, NEXT) +OPDEF(CEE_STIND_R4, "stind.r4", PopI+PopR4, Push0, InlineNone, 0, 1, 0xFF, 0x56, NEXT) +OPDEF(CEE_STIND_R8, "stind.r8", PopI+PopR8, Push0, InlineNone, 0, 1, 0xFF, 0x57, NEXT) +OPDEF(CEE_ADD, "add", Pop1+Pop1, Push1, InlineNone, 0, 1, 0xFF, 0x58, NEXT) +OPDEF(CEE_SUB, "sub", Pop1+Pop1, Push1, InlineNone, 0, 1, 0xFF, 0x59, NEXT) +OPDEF(CEE_MUL, "mul", Pop1+Pop1, Push1, InlineNone, 0, 1, 0xFF, 0x5A, NEXT) +OPDEF(CEE_DIV, "div", Pop1+Pop1, Push1, InlineNone, 0, 1, 0xFF, 0x5B, NEXT) +OPDEF(CEE_DIV_UN, "div.un", Pop1+Pop1, Push1, InlineNone, 0, 1, 0xFF, 0x5C, NEXT) +OPDEF(CEE_REM, "rem", Pop1+Pop1, Push1, InlineNone, 0, 1, 0xFF, 0x5D, NEXT) +OPDEF(CEE_REM_UN, "rem.un", Pop1+Pop1, Push1, InlineNone, 0, 1, 0xFF, 0x5E, NEXT) +OPDEF(CEE_AND, "and", Pop1+Pop1, Push1, InlineNone, 0, 1, 0xFF, 0x5F, NEXT) +OPDEF(CEE_OR, "or", Pop1+Pop1, Push1, InlineNone, 0, 1, 0xFF, 0x60, NEXT) +OPDEF(CEE_XOR, "xor", Pop1+Pop1, Push1, InlineNone, 0, 1, 0xFF, 0x61, NEXT) +OPDEF(CEE_SHL, "shl", Pop1+Pop1, Push1, InlineNone, 0, 1, 0xFF, 0x62, NEXT) +OPDEF(CEE_SHR, "shr", Pop1+Pop1, Push1, InlineNone, 0, 1, 0xFF, 0x63, NEXT) +OPDEF(CEE_SHR_UN, "shr.un", Pop1+Pop1, Push1, InlineNone, 0, 1, 0xFF, 0x64, NEXT) +OPDEF(CEE_NEG, "neg", Pop1, Push1, InlineNone, 0, 1, 0xFF, 0x65, NEXT) +OPDEF(CEE_NOT, "not", Pop1, Push1, InlineNone, 0, 1, 0xFF, 0x66, NEXT) +OPDEF(CEE_CONV_I1, "conv.i1", Pop1, PushI, InlineNone, 0, 1, 0xFF, 0x67, NEXT) +OPDEF(CEE_CONV_I2, "conv.i2", Pop1, PushI, InlineNone, 0, 1, 0xFF, 0x68, NEXT) +OPDEF(CEE_CONV_I4, "conv.i4", Pop1, PushI, InlineNone, 0, 1, 0xFF, 0x69, NEXT) +OPDEF(CEE_CONV_I8, "conv.i8", Pop1, PushI8, InlineNone, 0, 1, 0xFF, 0x6A, NEXT) +OPDEF(CEE_CONV_R4, "conv.r4", Pop1, PushR4, InlineNone, 0, 1, 0xFF, 0x6B, NEXT) +OPDEF(CEE_CONV_R8, "conv.r8", Pop1, PushR8, InlineNone, 0, 1, 0xFF, 0x6C, NEXT) +OPDEF(CEE_CONV_U4, "conv.u4", Pop1, PushI, InlineNone, 0, 1, 0xFF, 0x6D, NEXT) +OPDEF(CEE_CONV_U8, "conv.u8", Pop1, PushI8, InlineNone, 0, 1, 0xFF, 0x6E, NEXT) +OPDEF(CEE_CALLVIRT, "callvirt", VarPop, VarPush, InlineMethod, 0, 1, 0xFF, 0x6F, CALL) +OPDEF(CEE_CPOBJ, "cpobj", PopI+PopI, Push0, InlineType, 0, 1, 0xFF, 0x70, NEXT) +OPDEF(CEE_LDOBJ, "ldobj", PopI, Push1, InlineType, 0, 1, 0xFF, 0x71, NEXT) +OPDEF(CEE_LDSTR, "ldstr", Pop0, PushRef, InlineString, 0, 1, 0xFF, 0x72, NEXT) +OPDEF(CEE_NEWOBJ, "newobj", VarPop, PushRef, InlineMethod, 0, 1, 0xFF, 0x73, CALL) +OPDEF(CEE_CASTCLASS, "castclass", PopRef, PushRef, InlineType, 0, 1, 0xFF, 0x74, NEXT) +OPDEF(CEE_ISINST, "isinst", PopRef, PushI, InlineType, 0, 1, 0xFF, 0x75, NEXT) +OPDEF(CEE_CONV_R_UN, "conv.r.un", Pop1, PushR8, InlineNone, 0, 1, 0xFF, 0x76, NEXT) +OPDEF(CEE_UNUSED58, "unused58", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0x77, NEXT) +OPDEF(CEE_UNUSED1, "unused1", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0x78, NEXT) +OPDEF(CEE_UNBOX, "unbox", PopRef, PushI, InlineType, 0, 1, 0xFF, 0x79, NEXT) +OPDEF(CEE_THROW, "throw", PopRef, Push0, InlineNone, 0, 1, 0xFF, 0x7A, ERROR) +OPDEF(CEE_LDFLD, "ldfld", PopRef, Push1, InlineField, 0, 1, 0xFF, 0x7B, NEXT) +OPDEF(CEE_LDFLDA, "ldflda", PopRef, PushI, InlineField, 0, 1, 0xFF, 0x7C, NEXT) +OPDEF(CEE_STFLD, "stfld", PopRef+Pop1, Push0, InlineField, 0, 1, 0xFF, 0x7D, NEXT) +OPDEF(CEE_LDSFLD, "ldsfld", Pop0, Push1, InlineField, 0, 1, 0xFF, 0x7E, NEXT) +OPDEF(CEE_LDSFLDA, "ldsflda", Pop0, PushI, InlineField, 0, 1, 0xFF, 0x7F, NEXT) +OPDEF(CEE_STSFLD, "stsfld", Pop1, Push0, InlineField, 0, 1, 0xFF, 0x80, NEXT) +OPDEF(CEE_STOBJ, "stobj", PopI+Pop1, Push0, InlineType, 0, 1, 0xFF, 0x81, NEXT) +OPDEF(CEE_CONV_OVF_I1_UN, "conv.ovf.i1.un", Pop1, PushI, InlineNone, 0, 1, 0xFF, 0x82, NEXT) +OPDEF(CEE_CONV_OVF_I2_UN, "conv.ovf.i2.un", Pop1, PushI, InlineNone, 0, 1, 0xFF, 0x83, NEXT) +OPDEF(CEE_CONV_OVF_I4_UN, "conv.ovf.i4.un", Pop1, PushI, InlineNone, 0, 1, 0xFF, 0x84, NEXT) +OPDEF(CEE_CONV_OVF_I8_UN, "conv.ovf.i8.un", Pop1, PushI8, InlineNone, 0, 1, 0xFF, 0x85, NEXT) +OPDEF(CEE_CONV_OVF_U1_UN, "conv.ovf.u1.un", Pop1, PushI, InlineNone, 0, 1, 0xFF, 0x86, NEXT) +OPDEF(CEE_CONV_OVF_U2_UN, "conv.ovf.u2.un", Pop1, PushI, InlineNone, 0, 1, 0xFF, 0x87, NEXT) +OPDEF(CEE_CONV_OVF_U4_UN, "conv.ovf.u4.un", Pop1, PushI, InlineNone, 0, 1, 0xFF, 0x88, NEXT) +OPDEF(CEE_CONV_OVF_U8_UN, "conv.ovf.u8.un", Pop1, PushI8, InlineNone, 0, 1, 0xFF, 0x89, NEXT) +OPDEF(CEE_CONV_OVF_I_UN, "conv.ovf.i.un", Pop1, PushI, InlineNone, 0, 1, 0xFF, 0x8A, NEXT) +OPDEF(CEE_CONV_OVF_U_UN, "conv.ovf.u.un", Pop1, PushI, InlineNone, 0, 1, 0xFF, 0x8B, NEXT) +OPDEF(CEE_BOX, "box", Pop1, PushRef, InlineType, 0, 1, 0xFF, 0x8C, NEXT) +OPDEF(CEE_NEWARR, "newarr", PopI, PushRef, InlineType, 0, 1, 0xFF, 0x8D, NEXT) +OPDEF(CEE_LDLEN, "ldlen", PopRef, PushI, InlineNone, 0, 1, 0xFF, 0x8E, NEXT) +OPDEF(CEE_LDELEMA, "ldelema", PopRef+PopI, PushI, InlineType, 0, 1, 0xFF, 0x8F, NEXT) +OPDEF(CEE_LDELEM_I1, "ldelem.i1", PopRef+PopI, PushI, InlineNone, 0, 1, 0xFF, 0x90, NEXT) +OPDEF(CEE_LDELEM_U1, "ldelem.u1", PopRef+PopI, PushI, InlineNone, 0, 1, 0xFF, 0x91, NEXT) +OPDEF(CEE_LDELEM_I2, "ldelem.i2", PopRef+PopI, PushI, InlineNone, 0, 1, 0xFF, 0x92, NEXT) +OPDEF(CEE_LDELEM_U2, "ldelem.u2", PopRef+PopI, PushI, InlineNone, 0, 1, 0xFF, 0x93, NEXT) +OPDEF(CEE_LDELEM_I4, "ldelem.i4", PopRef+PopI, PushI, InlineNone, 0, 1, 0xFF, 0x94, NEXT) +OPDEF(CEE_LDELEM_U4, "ldelem.u4", PopRef+PopI, PushI, InlineNone, 0, 1, 0xFF, 0x95, NEXT) +OPDEF(CEE_LDELEM_I8, "ldelem.i8", PopRef+PopI, PushI8, InlineNone, 0, 1, 0xFF, 0x96, NEXT) +OPDEF(CEE_LDELEM_I, "ldelem.i", PopRef+PopI, PushI, InlineNone, 0, 1, 0xFF, 0x97, NEXT) +OPDEF(CEE_LDELEM_R4, "ldelem.r4", PopRef+PopI, PushR4, InlineNone, 0, 1, 0xFF, 0x98, NEXT) +OPDEF(CEE_LDELEM_R8, "ldelem.r8", PopRef+PopI, PushR8, InlineNone, 0, 1, 0xFF, 0x99, NEXT) +OPDEF(CEE_LDELEM_REF, "ldelem.ref", PopRef+PopI, PushRef, InlineNone, 0, 1, 0xFF, 0x9A, NEXT) +OPDEF(CEE_STELEM_I, "stelem.i", PopRef+PopI+PopI, Push0, InlineNone, 0, 1, 0xFF, 0x9B, NEXT) +OPDEF(CEE_STELEM_I1, "stelem.i1", PopRef+PopI+PopI, Push0, InlineNone, 0, 1, 0xFF, 0x9C, NEXT) +OPDEF(CEE_STELEM_I2, "stelem.i2", PopRef+PopI+PopI, Push0, InlineNone, 0, 1, 0xFF, 0x9D, NEXT) +OPDEF(CEE_STELEM_I4, "stelem.i4", PopRef+PopI+PopI, Push0, InlineNone, 0, 1, 0xFF, 0x9E, NEXT) +OPDEF(CEE_STELEM_I8, "stelem.i8", PopRef+PopI+PopI8, Push0, InlineNone, 0, 1, 0xFF, 0x9F, NEXT) +OPDEF(CEE_STELEM_R4, "stelem.r4", PopRef+PopI+PopR4, Push0, InlineNone, 0, 1, 0xFF, 0xA0, NEXT) +OPDEF(CEE_STELEM_R8, "stelem.r8", PopRef+PopI+PopR8, Push0, InlineNone, 0, 1, 0xFF, 0xA1, NEXT) +OPDEF(CEE_STELEM_REF, "stelem.ref", PopRef+PopI+PopRef, Push0, InlineNone, 0, 1, 0xFF, 0xA2, NEXT) +OPDEF(CEE_LDELEM, "ldelem", PopRef+PopI, Push1, InlineType, 0, 1, 0xFF, 0xA3, NEXT) +OPDEF(CEE_STELEM, "stelem", PopRef+PopI+Pop1, Push0, InlineType, 0, 1, 0xFF, 0xA4, NEXT) +OPDEF(CEE_UNBOX_ANY, "unbox.any", PopRef, Push1, InlineType, 0, 1, 0xFF, 0xA5, NEXT) +OPDEF(CEE_UNUSED5, "unused5", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xA6, NEXT) +OPDEF(CEE_UNUSED6, "unused6", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xA7, NEXT) +OPDEF(CEE_UNUSED7, "unused7", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xA8, NEXT) +OPDEF(CEE_UNUSED8, "unused8", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xA9, NEXT) +OPDEF(CEE_UNUSED9, "unused9", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xAA, NEXT) +OPDEF(CEE_UNUSED10, "unused10", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xAB, NEXT) +OPDEF(CEE_UNUSED11, "unused11", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xAC, NEXT) +OPDEF(CEE_UNUSED12, "unused12", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xAD, NEXT) +OPDEF(CEE_UNUSED13, "unused13", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xAE, NEXT) +OPDEF(CEE_UNUSED14, "unused14", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xAF, NEXT) +OPDEF(CEE_UNUSED15, "unused15", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xB0, NEXT) +OPDEF(CEE_UNUSED16, "unused16", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xB1, NEXT) +OPDEF(CEE_UNUSED17, "unused17", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xB2, NEXT) +OPDEF(CEE_CONV_OVF_I1, "conv.ovf.i1", Pop1, PushI, InlineNone, 0, 1, 0xFF, 0xB3, NEXT) +OPDEF(CEE_CONV_OVF_U1, "conv.ovf.u1", Pop1, PushI, InlineNone, 0, 1, 0xFF, 0xB4, NEXT) +OPDEF(CEE_CONV_OVF_I2, "conv.ovf.i2", Pop1, PushI, InlineNone, 0, 1, 0xFF, 0xB5, NEXT) +OPDEF(CEE_CONV_OVF_U2, "conv.ovf.u2", Pop1, PushI, InlineNone, 0, 1, 0xFF, 0xB6, NEXT) +OPDEF(CEE_CONV_OVF_I4, "conv.ovf.i4", Pop1, PushI, InlineNone, 0, 1, 0xFF, 0xB7, NEXT) +OPDEF(CEE_CONV_OVF_U4, "conv.ovf.u4", Pop1, PushI, InlineNone, 0, 1, 0xFF, 0xB8, NEXT) +OPDEF(CEE_CONV_OVF_I8, "conv.ovf.i8", Pop1, PushI8, InlineNone, 0, 1, 0xFF, 0xB9, NEXT) +OPDEF(CEE_CONV_OVF_U8, "conv.ovf.u8", Pop1, PushI8, InlineNone, 0, 1, 0xFF, 0xBA, NEXT) +OPDEF(CEE_UNUSED50, "unused50", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xBB, NEXT) +OPDEF(CEE_UNUSED18, "unused18", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xBC, NEXT) +OPDEF(CEE_UNUSED19, "unused19", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xBD, NEXT) +OPDEF(CEE_UNUSED20, "unused20", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xBE, NEXT) +OPDEF(CEE_UNUSED21, "unused21", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xBF, NEXT) +OPDEF(CEE_UNUSED22, "unused22", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xC0, NEXT) +OPDEF(CEE_UNUSED23, "unused23", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xC1, NEXT) +OPDEF(CEE_REFANYVAL, "refanyval", Pop1, PushI, InlineType, 0, 1, 0xFF, 0xC2, NEXT) +OPDEF(CEE_CKFINITE, "ckfinite", Pop1, PushR8, InlineNone, 0, 1, 0xFF, 0xC3, NEXT) +OPDEF(CEE_UNUSED24, "unused24", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xC4, NEXT) +OPDEF(CEE_UNUSED25, "unused25", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xC5, NEXT) +OPDEF(CEE_MKREFANY, "mkrefany", PopI, Push1, InlineType, 0, 1, 0xFF, 0xC6, NEXT) +OPDEF(CEE_UNUSED59, "unused59", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xC7, NEXT) +OPDEF(CEE_UNUSED60, "unused60", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xC8, NEXT) +OPDEF(CEE_UNUSED61, "unused61", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xC9, NEXT) +OPDEF(CEE_UNUSED62, "unused62", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xCA, NEXT) +OPDEF(CEE_UNUSED63, "unused63", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xCB, NEXT) +OPDEF(CEE_UNUSED64, "unused64", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xCC, NEXT) +OPDEF(CEE_UNUSED65, "unused65", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xCD, NEXT) +OPDEF(CEE_UNUSED66, "unused66", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xCE, NEXT) +OPDEF(CEE_UNUSED67, "unused67", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xCF, NEXT) +OPDEF(CEE_LDTOKEN, "ldtoken", Pop0, PushI, InlineTok, 0, 1, 0xFF, 0xD0, NEXT) +OPDEF(CEE_CONV_U2, "conv.u2", Pop1, PushI, InlineNone, 0, 1, 0xFF, 0xD1, NEXT) +OPDEF(CEE_CONV_U1, "conv.u1", Pop1, PushI, InlineNone, 0, 1, 0xFF, 0xD2, NEXT) +OPDEF(CEE_CONV_I, "conv.i", Pop1, PushI, InlineNone, 0, 1, 0xFF, 0xD3, NEXT) +OPDEF(CEE_CONV_OVF_I, "conv.ovf.i", Pop1, PushI, InlineNone, 0, 1, 0xFF, 0xD4, NEXT) +OPDEF(CEE_CONV_OVF_U, "conv.ovf.u", Pop1, PushI, InlineNone, 0, 1, 0xFF, 0xD5, NEXT) +OPDEF(CEE_ADD_OVF, "add.ovf", Pop1+Pop1, Push1, InlineNone, 0, 1, 0xFF, 0xD6, NEXT) +OPDEF(CEE_ADD_OVF_UN, "add.ovf.un", Pop1+Pop1, Push1, InlineNone, 0, 1, 0xFF, 0xD7, NEXT) +OPDEF(CEE_MUL_OVF, "mul.ovf", Pop1+Pop1, Push1, InlineNone, 0, 1, 0xFF, 0xD8, NEXT) +OPDEF(CEE_MUL_OVF_UN, "mul.ovf.un", Pop1+Pop1, Push1, InlineNone, 0, 1, 0xFF, 0xD9, NEXT) +OPDEF(CEE_SUB_OVF, "sub.ovf", Pop1+Pop1, Push1, InlineNone, 0, 1, 0xFF, 0xDA, NEXT) +OPDEF(CEE_SUB_OVF_UN, "sub.ovf.un", Pop1+Pop1, Push1, InlineNone, 0, 1, 0xFF, 0xDB, NEXT) +OPDEF(CEE_ENDFINALLY, "endfinally", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xDC, RETURN) +OPDEF(CEE_LEAVE, "leave", Pop0, Push0, InlineBrTarget, 0, 1, 0xFF, 0xDD, BRANCH) +OPDEF(CEE_LEAVE_S, "leave.s", Pop0, Push0, ShortInlineBrTarget, 0, 1, 0xFF, 0xDE, BRANCH) +OPDEF(CEE_STIND_I, "stind.i", PopI+PopI, Push0, InlineNone, 0, 1, 0xFF, 0xDF, NEXT) +OPDEF(CEE_CONV_U, "conv.u", Pop1, PushI, InlineNone, 0, 1, 0xFF, 0xE0, NEXT) +OPDEF(CEE_UNUSED26, "unused26", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xE1, NEXT) +OPDEF(CEE_UNUSED27, "unused27", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xE2, NEXT) +OPDEF(CEE_UNUSED28, "unused28", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xE3, NEXT) +OPDEF(CEE_UNUSED29, "unused29", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xE4, NEXT) +OPDEF(CEE_UNUSED30, "unused30", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xE5, NEXT) +OPDEF(CEE_UNUSED31, "unused31", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xE6, NEXT) +OPDEF(CEE_UNUSED32, "unused32", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xE7, NEXT) +OPDEF(CEE_UNUSED33, "unused33", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xE8, NEXT) +OPDEF(CEE_UNUSED34, "unused34", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xE9, NEXT) +OPDEF(CEE_UNUSED35, "unused35", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xEA, NEXT) +OPDEF(CEE_UNUSED36, "unused36", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xEB, NEXT) +OPDEF(CEE_UNUSED37, "unused37", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xEC, NEXT) +OPDEF(CEE_UNUSED38, "unused38", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xED, NEXT) +OPDEF(CEE_UNUSED39, "unused39", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xEE, NEXT) +OPDEF(CEE_UNUSED40, "unused40", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xEF, NEXT) +OPDEF(CEE_UNUSED41, "unused41", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xF0, NEXT) +OPDEF(CEE_UNUSED42, "unused42", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xF1, NEXT) +OPDEF(CEE_UNUSED43, "unused43", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xF2, NEXT) +OPDEF(CEE_UNUSED44, "unused44", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xF3, NEXT) +OPDEF(CEE_UNUSED45, "unused45", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xF4, NEXT) +OPDEF(CEE_UNUSED46, "unused46", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xF5, NEXT) +OPDEF(CEE_UNUSED47, "unused47", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xF6, NEXT) +OPDEF(CEE_UNUSED48, "unused48", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xF7, NEXT) +OPDEF(CEE_PREFIX7, "prefix7", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xF8, META) +OPDEF(CEE_PREFIX6, "prefix6", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xF9, META) +OPDEF(CEE_PREFIX5, "prefix5", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xFA, META) +OPDEF(CEE_PREFIX4, "prefix4", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xFB, META) +OPDEF(CEE_PREFIX3, "prefix3", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xFC, META) +OPDEF(CEE_PREFIX2, "prefix2", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xFD, META) +OPDEF(CEE_PREFIX1, "prefix1", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xFE, META) +OPDEF(CEE_PREFIXREF, "prefixref", Pop0, Push0, InlineNone, 0, 1, 0xFF, 0xFF, META) +OPDEF(CEE_ARGLIST, "arglist", Pop0, PushI, InlineNone, 0, 2, 0xFE, 0x00, NEXT) +OPDEF(CEE_CEQ, "ceq", Pop1+Pop1, PushI, InlineNone, 0, 2, 0xFE, 0x01, NEXT) +OPDEF(CEE_CGT, "cgt", Pop1+Pop1, PushI, InlineNone, 0, 2, 0xFE, 0x02, NEXT) +OPDEF(CEE_CGT_UN, "cgt.un", Pop1+Pop1, PushI, InlineNone, 0, 2, 0xFE, 0x03, NEXT) +OPDEF(CEE_CLT, "clt", Pop1+Pop1, PushI, InlineNone, 0, 2, 0xFE, 0x04, NEXT) +OPDEF(CEE_CLT_UN, "clt.un", Pop1+Pop1, PushI, InlineNone, 0, 2, 0xFE, 0x05, NEXT) +OPDEF(CEE_LDFTN, "ldftn", Pop0, PushI, InlineMethod, 0, 2, 0xFE, 0x06, NEXT) +OPDEF(CEE_LDVIRTFTN, "ldvirtftn", PopRef, PushI, InlineMethod, 0, 2, 0xFE, 0x07, NEXT) +OPDEF(CEE_UNUSED56, "unused56", Pop0, Push0, InlineNone, 0, 2, 0xFE, 0x08, NEXT) +OPDEF(CEE_LDARG, "ldarg", Pop0, Push1, InlineVar, 0, 2, 0xFE, 0x09, NEXT) +OPDEF(CEE_LDARGA, "ldarga", Pop0, PushI, InlineVar, 0, 2, 0xFE, 0x0A, NEXT) +OPDEF(CEE_STARG, "starg", Pop1, Push0, InlineVar, 0, 2, 0xFE, 0x0B, NEXT) +OPDEF(CEE_LDLOC, "ldloc", Pop0, Push1, InlineVar, 0, 2, 0xFE, 0x0C, NEXT) +OPDEF(CEE_LDLOCA, "ldloca", Pop0, PushI, InlineVar, 0, 2, 0xFE, 0x0D, NEXT) +OPDEF(CEE_STLOC, "stloc", Pop1, Push0, InlineVar, 0, 2, 0xFE, 0x0E, NEXT) +OPDEF(CEE_LOCALLOC, "localloc", PopI, PushI, InlineNone, 0, 2, 0xFE, 0x0F, NEXT) +OPDEF(CEE_UNUSED57, "unused57", Pop0, Push0, InlineNone, 0, 2, 0xFE, 0x10, NEXT) +OPDEF(CEE_ENDFILTER, "endfilter", PopI, Push0, InlineNone, 0, 2, 0xFE, 0x11, RETURN) +OPDEF(CEE_UNALIGNED_, "unaligned.", Pop0, Push0, ShortInlineI, 0, 2, 0xFE, 0x12, META) +OPDEF(CEE_VOLATILE_, "volatile.", Pop0, Push0, InlineNone, 0, 2, 0xFE, 0x13, META) +OPDEF(CEE_TAIL_, "tail.", Pop0, Push0, InlineNone, 0, 2, 0xFE, 0x14, META) +OPDEF(CEE_INITOBJ, "initobj", PopI, Push0, InlineType, 0, 2, 0xFE, 0x15, NEXT) +OPDEF(CEE_CONSTRAINED_, "constrained.", Pop0, Push0, InlineType, 0, 2, 0xFE, 0x16, META) +OPDEF(CEE_CPBLK, "cpblk", PopI+PopI+PopI, Push0, InlineNone, 0, 2, 0xFE, 0x17, NEXT) +OPDEF(CEE_INITBLK, "initblk", PopI+PopI+PopI, Push0, InlineNone, 0, 2, 0xFE, 0x18, NEXT) +OPDEF(CEE_NO_, "no.", Pop0, Push0, ShortInlineI, 0, 2, 0xFE, 0x19, NEXT) +OPDEF(CEE_RETHROW, "rethrow", Pop0, Push0, InlineNone, 0, 2, 0xFE, 0x1A, ERROR) +OPDEF(CEE_UNUSED, "unused", Pop0, Push0, InlineNone, 0, 2, 0xFE, 0x1B, NEXT) +OPDEF(CEE_SIZEOF, "sizeof", Pop0, PushI, InlineType, 0, 2, 0xFE, 0x1C, NEXT) +OPDEF(CEE_REFANYTYPE, "refanytype", Pop1, PushI, InlineNone, 0, 2, 0xFE, 0x1D, NEXT) +OPDEF(CEE_READONLY_, "readonly.", Pop0, Push0, InlineNone, 0, 2, 0xFE, 0x1E, META) +OPDEF(CEE_UNUSED53, "unused53", Pop0, Push0, InlineNone, 0, 2, 0xFE, 0x1F, NEXT) +OPDEF(CEE_UNUSED54, "unused54", Pop0, Push0, InlineNone, 0, 2, 0xFE, 0x20, NEXT) +OPDEF(CEE_UNUSED55, "unused55", Pop0, Push0, InlineNone, 0, 2, 0xFE, 0x21, NEXT) +OPDEF(CEE_UNUSED70, "unused70", Pop0, Push0, InlineNone, 0, 2, 0xFE, 0x22, NEXT) +OPDEF(CEE_ILLEGAL, "illegal", Pop0, Push0, InlineNone, 0, 2, 0x00, 0x00, META) +OPDEF(CEE_ENDMAC, "endmac", Pop0, Push0, InlineNone, 0, 2, 0x00, 0x00, META) +OPDEF(CEE_MONO_ICALL, "mono_icall", VarPop, VarPush, InlineI, 0, 2, 0xF0, 0x00, NEXT) +OPDEF(CEE_MONO_OBJADDR, "mono_objaddr", Pop1, PushI, InlineNone, 0, 2, 0xF0, 0x01, NEXT) +OPDEF(CEE_MONO_LDPTR, "mono_ldptr", Pop0, PushI, InlineI, 0, 2, 0xF0, 0x02, NEXT) +OPDEF(CEE_MONO_VTADDR, "mono_vtaddr", Pop1, PushI, InlineNone, 0, 2, 0xF0, 0x03, NEXT) +OPDEF(CEE_MONO_NEWOBJ, "mono_newobj", Pop0, PushRef, InlineType, 0, 2, 0xF0, 0x04, NEXT) +OPDEF(CEE_MONO_RETOBJ, "mono_retobj", PopI, Push0, InlineType, 0, 2, 0xF0, 0x05, RETURN) +OPDEF(CEE_MONO_LDNATIVEOBJ, "mono_ldnativeobj", PopI, Push1, InlineType, 0, 2, 0xF0, 0x06, RETURN) +OPDEF(CEE_MONO_CISINST, "mono_cisinst", PopRef, Push1, InlineType, 0, 2, 0xF0, 0x07, NEXT) +OPDEF(CEE_MONO_CCASTCLASS, "mono_ccastclass", PopRef, Push1, InlineType, 0, 2, 0xF0, 0x08, NEXT) +OPDEF(CEE_MONO_SAVE_LMF, "mono_save_lmf", Pop0, Push0, InlineNone, 0, 2, 0xF0, 0x09, NEXT) +OPDEF(CEE_MONO_RESTORE_LMF, "mono_restore_lmf", Pop0, Push0, InlineNone, 0, 2, 0xF0, 0x0A, NEXT) +OPDEF(CEE_MONO_CLASSCONST, "mono_classconst", Pop0, PushI, InlineI, 0, 2, 0xF0, 0x0B, NEXT) +OPDEF(CEE_MONO_NOT_TAKEN, "mono_not_taken", Pop0, Push0, InlineNone, 0, 2, 0xF0, 0x0C, NEXT) +OPDEF(CEE_MONO_TLS, "mono_tls", Pop0, PushI, InlineI, 0, 2, 0xF0, 0x0D, NEXT) +OPDEF(CEE_MONO_ICALL_ADDR, "mono_icall_addr", Pop0, PushI, InlineI, 0, 2, 0xF0, 0x0E, NEXT) +OPDEF(CEE_MONO_DYN_CALL, "mono_dyn_call", Pop0, PushI, InlineNone, 0, 2, 0xF0, 0x0F, NEXT) +OPDEF(CEE_MONO_MEMORY_BARRIER, "mono_memory_barrier", Pop0, Push0, InlineI, 0, 2, 0xF0, 0x10, NEXT) +OPDEF(CEE_UNUSED71, "unused71", Pop0, Push0, InlineNone, 0, 2, 0xF0, 0x11, NEXT) +OPDEF(CEE_UNUSED72, "unused72", Pop0, Push0, InlineNone, 0, 2, 0xF0, 0x12, NEXT) +OPDEF(CEE_MONO_JIT_ICALL_ADDR, "mono_jit_icall_addr", Pop0, PushI, InlineI, 0, 2, 0xF0, 0x13, NEXT) +OPDEF(CEE_MONO_LDPTR_INT_REQ_FLAG, "mono_ldptr_int_req_flag", Pop0, PushI, InlineNone, 0, 2, 0xF0, 0x14, NEXT) +OPDEF(CEE_MONO_LDPTR_CARD_TABLE, "mono_ldptr_card_table", Pop0, PushI, InlineNone, 0, 2, 0xF0, 0x15, NEXT) +OPDEF(CEE_MONO_LDPTR_NURSERY_START, "mono_ldptr_nursery_start", Pop0, PushI, InlineNone, 0, 2, 0xF0, 0x16, NEXT) +OPDEF(CEE_MONO_LDPTR_NURSERY_BITS, "mono_ldptr_nursery_bits", Pop0, PushI, InlineNone, 0, 2, 0xF0, 0x17, NEXT) +OPDEF(CEE_MONO_CALLI_EXTRA_ARG, "mono_calli_extra_arg", VarPop, VarPush, InlineSig, 0, 2, 0xF0, 0x18, CALL) +OPDEF(CEE_MONO_LDDOMAIN, "mono_lddomain", Pop0, PushI, InlineNone, 0, 2, 0xF0, 0x19, NEXT) +OPDEF(CEE_MONO_ATOMIC_STORE_I4, "mono_atomic_store_i4", PopI+PopI, Push0, InlineI, 0, 2, 0xF0, 0x1A, NEXT) +OPDEF(CEE_MONO_SAVE_LAST_ERROR, "mono_save_last_error", Pop0, Push0, InlineNone, 0, 2, 0xF0, 0x1B, NEXT) +OPDEF(CEE_MONO_GET_RGCTX_ARG, "mono_get_rgctx_arg", Pop0, PushI, InlineNone, 0, 2, 0xF0, 0x1C, NEXT) +OPDEF(CEE_MONO_LDPTR_PROFILER_ALLOCATION_COUNT, "mono_ldptr_profiler_allocation_count", Pop0, PushI, InlineNone, 0, 2, 0xF0, 0x1D, NEXT) +OPDEF(CEE_MONO_LD_DELEGATE_METHOD_PTR, "mono_ld_delegate_method_ptr", Pop1, PushI, InlineNone, 0, 2, 0xF0, 0x1E, NEXT) +OPDEF(CEE_MONO_RETHROW, "mono_rethrow", PopRef, Push0, InlineNone, 0, 2, 0xF0, 0x1F, ERROR) +OPDEF(CEE_MONO_GET_SP, "mono_get_sp", Pop0, PushI, InlineNone, 0, 2, 0xF0, 0x20, NEXT) +#ifndef OPALIAS +#define _MONO_CIL_OPALIAS_DEFINED_ +#define OPALIAS(a,s,r) +#endif + +OPALIAS(CEE_BRNULL, "brnull", CEE_BRFALSE) +OPALIAS(CEE_BRNULL_S, "brnull.s", CEE_BRFALSE_S) +OPALIAS(CEE_BRZERO, "brzero", CEE_BRFALSE) +OPALIAS(CEE_BRZERO_S, "brzero.s", CEE_BRFALSE_S) +OPALIAS(CEE_BRINST, "brinst", CEE_BRTRUE) +OPALIAS(CEE_BRINST_S, "brinst.s", CEE_BRTRUE_S) +OPALIAS(CEE_LDIND_U8, "ldind.u8", CEE_LDIND_I8) +OPALIAS(CEE_LDELEM_U8, "ldelem.u8", CEE_LDELEM_I8) +OPALIAS(CEE_LDX_I4_MIX, "ldc.i4.M1", CEE_LDC_I4_M1) +OPALIAS(CEE_ENDFAULT, "endfault", CEE_ENDFINALLY) + +#ifdef _MONO_CIL_OPALIAS_DEFINED_ +#undef OPALIAS +#undef _MONO_CIL_OPALIAS_DEFINED_ +#endif diff --git a/ReHitman/Modules/Mono/include/mono-2.0/mono/jit/jit.h b/ReHitman/Modules/Mono/include/mono-2.0/mono/jit/jit.h new file mode 100644 index 0000000..9fc6a18 --- /dev/null +++ b/ReHitman/Modules/Mono/include/mono-2.0/mono/jit/jit.h @@ -0,0 +1,119 @@ +/** + * \file + * Author: + * Dietmar Maurer (dietmar@ximian.com) + * + * (C) 2001, 2002, 2003 Ximian, Inc. + */ + +#ifndef _MONO_JIT_JIT_H_ +#define _MONO_JIT_JIT_H_ + +#include + +MONO_BEGIN_DECLS + +MONO_API MONO_RT_EXTERNAL_ONLY MonoDomain * +mono_jit_init (const char *file); + +MONO_API MONO_RT_EXTERNAL_ONLY MonoDomain * +mono_jit_init_version (const char *root_domain_name, const char *runtime_version); + +MONO_API MonoDomain * +mono_jit_init_version_for_test_only (const char *root_domain_name, const char *runtime_version); + +MONO_API int +mono_jit_exec (MonoDomain *domain, MonoAssembly *assembly, + int argc, char *argv[]); +MONO_API void +mono_jit_cleanup (MonoDomain *domain); + +MONO_API mono_bool +mono_jit_set_trace_options (const char* options); + +MONO_API void +mono_set_signal_chaining (mono_bool chain_signals); + +MONO_API void +mono_set_crash_chaining (mono_bool chain_signals); + +/** + * This function is deprecated, use mono_jit_set_aot_mode instead. + */ +MONO_API void +mono_jit_set_aot_only (mono_bool aot_only); + +/** + * Allows control over our AOT (Ahead-of-time) compilation mode. + */ +typedef enum { + /* Disables AOT mode */ + MONO_AOT_MODE_NONE, + /* Enables normal AOT mode, equivalent to mono_jit_set_aot_only (false) */ + MONO_AOT_MODE_NORMAL, + /* Enables hybrid AOT mode, JIT can still be used for wrappers */ + MONO_AOT_MODE_HYBRID, + /* Enables full AOT mode, JIT is disabled and not allowed, + * equivalent to mono_jit_set_aot_only (true) */ + MONO_AOT_MODE_FULL, + /* Same as full, but use only llvm compiled code */ + MONO_AOT_MODE_LLVMONLY, + /* Uses Interpreter, JIT is disabled and not allowed, + * equivalent to "--full-aot --interpreter" */ + MONO_AOT_MODE_INTERP, + /* Same as INTERP, but use only llvm compiled code */ + MONO_AOT_MODE_INTERP_LLVMONLY, + /* Use only llvm compiled code, fall back to the interpeter */ + MONO_AOT_MODE_LLVMONLY_INTERP, + /* Sentinel value used internally by the runtime. We use a large number to avoid clashing with some internal values. */ + MONO_AOT_MODE_LAST = 1000, +} MonoAotMode; + +MONO_API void +mono_jit_set_aot_mode (MonoAotMode mode); + +/* + * Returns whether the runtime was invoked for the purpose of AOT-compiling an + * assembly, i.e. no managed code will run. + */ +MONO_API mono_bool +mono_jit_aot_compiling (void); + +/* Allow embedders to decide wherther to actually obey breakpoint instructions + * in specific methods (works for both break IL instructions and Debugger.Break () + * method calls). + */ +typedef enum { + /* the default is to always obey the breakpoint */ + MONO_BREAK_POLICY_ALWAYS, + /* a nop is inserted instead of a breakpoint */ + MONO_BREAK_POLICY_NEVER, + /* the breakpoint is executed only if the program has ben started under + * the debugger (that is if a debugger was attached at the time the method + * was compiled). + */ + MONO_BREAK_POLICY_ON_DBG +} MonoBreakPolicy; + +typedef MonoBreakPolicy (*MonoBreakPolicyFunc) (MonoMethod *method); +MONO_API void mono_set_break_policy (MonoBreakPolicyFunc policy_callback); + +MONO_API void +mono_jit_parse_options (int argc, char * argv[]); + +MONO_API char* mono_get_runtime_build_info (void); + +MONO_API MONO_RT_EXTERNAL_ONLY void +mono_set_use_llvm (mono_bool use_llvm); + +MONO_API MONO_RT_EXTERNAL_ONLY void +mono_aot_register_module (void **aot_info); + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoDomain* mono_jit_thread_attach (MonoDomain *domain); + + +MONO_END_DECLS + +#endif + diff --git a/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/appdomain.h b/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/appdomain.h new file mode 100644 index 0000000..ab26064 --- /dev/null +++ b/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/appdomain.h @@ -0,0 +1,231 @@ +/** + * \file + * AppDomain functions + * + * Author: + * Dietmar Maurer (dietmar@ximian.com) + * + * (C) 2001 Ximian, Inc. + */ + +#ifndef _MONO_METADATA_APPDOMAIN_H_ +#define _MONO_METADATA_APPDOMAIN_H_ + +#include + +#include +#include +#include + +MONO_BEGIN_DECLS + +typedef void (*MonoThreadStartCB) (intptr_t tid, void* stack_start, + void* func); +typedef void (*MonoThreadAttachCB) (intptr_t tid, void* stack_start); + +typedef struct _MonoAppDomain MonoAppDomain; + +typedef void (*MonoDomainFunc) (MonoDomain *domain, void* user_data); + +MONO_API MonoDomain* +mono_init (const char *filename); + +MONO_API MonoDomain * +mono_init_from_assembly (const char *domain_name, const char *filename); + +MONO_API MonoDomain * +mono_init_version (const char *domain_name, const char *version); + +MONO_API MonoDomain* +mono_get_root_domain (void); + +MONO_API MONO_RT_EXTERNAL_ONLY void +mono_runtime_init (MonoDomain *domain, MonoThreadStartCB start_cb, + MonoThreadAttachCB attach_cb); + +MONO_API void +mono_runtime_cleanup (MonoDomain *domain); + +MONO_API void +mono_install_runtime_cleanup (MonoDomainFunc func); + +MONO_API MONO_RT_EXTERNAL_ONLY void +mono_runtime_quit (void); + +MONO_API void +mono_runtime_set_shutting_down (void); + +MONO_API mono_bool +mono_runtime_is_shutting_down (void); + +MONO_API const char* +mono_check_corlib_version (void); + +MONO_API MonoDomain * +mono_domain_create (void); + +MONO_API MONO_RT_EXTERNAL_ONLY MonoDomain * +mono_domain_create_appdomain (char *friendly_name, char *configuration_file); + +MONO_API MONO_RT_EXTERNAL_ONLY void +mono_domain_set_config (MonoDomain *domain, const char *base_dir, const char *config_file_name); + +MONO_API MonoDomain * +mono_domain_get (void); + +MONO_API MonoDomain * +mono_domain_get_by_id (int32_t domainid); + +MONO_API int32_t +mono_domain_get_id (MonoDomain *domain); + +MONO_API const char * +mono_domain_get_friendly_name (MonoDomain *domain); + +MONO_API MONO_RT_EXTERNAL_ONLY mono_bool +mono_domain_set (MonoDomain *domain, mono_bool force); + +MONO_API MONO_RT_EXTERNAL_ONLY void +mono_domain_set_internal (MonoDomain *domain); + +MONO_API MONO_RT_EXTERNAL_ONLY void +mono_domain_unload (MonoDomain *domain); + +MONO_API void +mono_domain_try_unload (MonoDomain *domain, MonoObject **exc); + +MONO_API mono_bool +mono_domain_is_unloading (MonoDomain *domain); + +MONO_API MONO_RT_EXTERNAL_ONLY MonoDomain * +mono_domain_from_appdomain (MonoAppDomain *appdomain); + +MONO_API void +mono_domain_foreach (MonoDomainFunc func, void* user_data); + +MONO_API MONO_RT_EXTERNAL_ONLY MonoAssembly * +mono_domain_assembly_open (MonoDomain *domain, const char *name); + +MONO_API mono_bool +mono_domain_finalize (MonoDomain *domain, uint32_t timeout); + +MONO_API void +mono_domain_free (MonoDomain *domain, mono_bool force); + +MONO_API mono_bool +mono_domain_has_type_resolve (MonoDomain *domain); + +MONO_API MONO_RT_EXTERNAL_ONLY MonoReflectionAssembly * +mono_domain_try_type_resolve (MonoDomain *domain, char *name, MonoObject *tb); + +MONO_API mono_bool +mono_domain_owns_vtable_slot (MonoDomain *domain, void* vtable_slot); + +MONO_API MONO_RT_EXTERNAL_ONLY void +mono_context_init (MonoDomain *domain); + +MONO_API MONO_RT_EXTERNAL_ONLY void +mono_context_set (MonoAppContext *new_context); + +MONO_API MonoAppContext * +mono_context_get (void); + +MONO_API int32_t +mono_context_get_id (MonoAppContext *context); + +MONO_API int32_t +mono_context_get_domain_id (MonoAppContext *context); + +MONO_API MonoJitInfo * +mono_jit_info_table_find (MonoDomain *domain, void* addr); + +/* MonoJitInfo accessors */ + +MONO_API void* +mono_jit_info_get_code_start (MonoJitInfo* ji); + +MONO_API int +mono_jit_info_get_code_size (MonoJitInfo* ji); + +MONO_API MonoMethod* +mono_jit_info_get_method (MonoJitInfo* ji); + + +MONO_API MonoImage* +mono_get_corlib (void); + +MONO_API MonoClass* +mono_get_object_class (void); + +MONO_API MonoClass* +mono_get_byte_class (void); + +MONO_API MonoClass* +mono_get_void_class (void); + +MONO_API MonoClass* +mono_get_boolean_class (void); + +MONO_API MonoClass* +mono_get_sbyte_class (void); + +MONO_API MonoClass* +mono_get_int16_class (void); + +MONO_API MonoClass* +mono_get_uint16_class (void); + +MONO_API MonoClass* +mono_get_int32_class (void); + +MONO_API MonoClass* +mono_get_uint32_class (void); + +MONO_API MonoClass* +mono_get_intptr_class (void); + +MONO_API MonoClass* +mono_get_uintptr_class (void); + +MONO_API MonoClass* +mono_get_int64_class (void); + +MONO_API MonoClass* +mono_get_uint64_class (void); + +MONO_API MonoClass* +mono_get_single_class (void); + +MONO_API MonoClass* +mono_get_double_class (void); + +MONO_API MonoClass* +mono_get_char_class (void); + +MONO_API MonoClass* +mono_get_string_class (void); + +MONO_API MonoClass* +mono_get_enum_class (void); + +MONO_API MonoClass* +mono_get_array_class (void); + +MONO_API MonoClass* +mono_get_thread_class (void); + +MONO_API MonoClass* +mono_get_exception_class (void); + +MONO_API void +mono_security_enable_core_clr (void); + +typedef mono_bool (*MonoCoreClrPlatformCB) (const char *image_name); + +MONO_API void +mono_security_set_core_clr_platform_callback (MonoCoreClrPlatformCB callback); + +MONO_END_DECLS + +#endif /* _MONO_METADATA_APPDOMAIN_H_ */ + diff --git a/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/assembly.h b/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/assembly.h new file mode 100644 index 0000000..e9c02ee --- /dev/null +++ b/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/assembly.h @@ -0,0 +1,136 @@ +/** + * \file + */ + +#ifndef _MONONET_METADATA_ASSEMBLY_H_ +#define _MONONET_METADATA_ASSEMBLY_H_ + +#include +#include + +MONO_BEGIN_DECLS + +MONO_API void mono_assemblies_init (void); +MONO_API void mono_assemblies_cleanup (void); +MONO_API MONO_RT_EXTERNAL_ONLY +MonoAssembly *mono_assembly_open (const char *filename, + MonoImageOpenStatus *status); +MONO_API MONO_RT_EXTERNAL_ONLY +MonoAssembly *mono_assembly_open_full (const char *filename, + MonoImageOpenStatus *status, + mono_bool refonly); +MONO_API MONO_RT_EXTERNAL_ONLY +MonoAssembly* mono_assembly_load (MonoAssemblyName *aname, + const char *basedir, + MonoImageOpenStatus *status); +MONO_API MONO_RT_EXTERNAL_ONLY +MonoAssembly* mono_assembly_load_full (MonoAssemblyName *aname, + const char *basedir, + MonoImageOpenStatus *status, + mono_bool refonly); +MONO_API MONO_RT_EXTERNAL_ONLY +MonoAssembly* mono_assembly_load_from (MonoImage *image, const char *fname, + MonoImageOpenStatus *status); +MONO_API MONO_RT_EXTERNAL_ONLY +MonoAssembly* mono_assembly_load_from_full (MonoImage *image, const char *fname, + MonoImageOpenStatus *status, + mono_bool refonly); + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoAssembly* mono_assembly_load_with_partial_name (const char *name, MonoImageOpenStatus *status); + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoAssembly* mono_assembly_loaded (MonoAssemblyName *aname); +MONO_API MONO_RT_EXTERNAL_ONLY +MonoAssembly* mono_assembly_loaded_full (MonoAssemblyName *aname, mono_bool refonly); +MONO_API void mono_assembly_get_assemblyref (MonoImage *image, int index, MonoAssemblyName *aname); +MONO_API void mono_assembly_load_reference (MonoImage *image, int index); +MONO_API void mono_assembly_load_references (MonoImage *image, MonoImageOpenStatus *status); +MONO_API MONO_RT_EXTERNAL_ONLY MonoImage* mono_assembly_load_module (MonoAssembly *assembly, uint32_t idx); +MONO_API void mono_assembly_close (MonoAssembly *assembly); +MONO_API void mono_assembly_setrootdir (const char *root_dir); +MONO_API MONO_CONST_RETURN char *mono_assembly_getrootdir (void); +MONO_API char *mono_native_getrootdir (void); +MONO_API void mono_assembly_foreach (MonoFunc func, void* user_data); +MONO_API void mono_assembly_set_main (MonoAssembly *assembly); +MONO_API MonoAssembly *mono_assembly_get_main (void); +MONO_API MONO_RT_EXTERNAL_ONLY +MonoImage *mono_assembly_get_image (MonoAssembly *assembly); +MONO_API MONO_RT_EXTERNAL_ONLY +MonoAssemblyName *mono_assembly_get_name (MonoAssembly *assembly); +MONO_API mono_bool mono_assembly_fill_assembly_name (MonoImage *image, MonoAssemblyName *aname); +MONO_API mono_bool mono_assembly_names_equal (MonoAssemblyName *l, MonoAssemblyName *r); +MONO_API char* mono_stringify_assembly_name (MonoAssemblyName *aname); + +/* Installs a function which is called each time a new assembly is loaded. */ +typedef void (*MonoAssemblyLoadFunc) (MonoAssembly *assembly, void* user_data); +MONO_API MONO_RT_EXTERNAL_ONLY void +mono_install_assembly_load_hook (MonoAssemblyLoadFunc func, void* user_data); + +/* + * Installs a new function which is used to search the list of loaded + * assemblies for a given assembly name. + */ +typedef MonoAssembly *(*MonoAssemblySearchFunc) (MonoAssemblyName *aname, void* user_data); +MONO_API MONO_RT_EXTERNAL_ONLY +void mono_install_assembly_search_hook (MonoAssemblySearchFunc func, void* user_data); +MONO_API MONO_RT_EXTERNAL_ONLY +void mono_install_assembly_refonly_search_hook (MonoAssemblySearchFunc func, void* user_data); + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoAssembly* mono_assembly_invoke_search_hook (MonoAssemblyName *aname); + +/* + * Installs a new search function which is used as a last resort when loading + * an assembly fails. This could invoke AssemblyResolve events. + */ +MONO_API MONO_RT_EXTERNAL_ONLY +void +mono_install_assembly_postload_search_hook (MonoAssemblySearchFunc func, void* user_data); + +MONO_API MONO_RT_EXTERNAL_ONLY +void +mono_install_assembly_postload_refonly_search_hook (MonoAssemblySearchFunc func, void* user_data); + + +/* Installs a function which is called before a new assembly is loaded + * The hook are invoked from last hooked to first. If any of them returns + * a non-null value, that will be the value returned in mono_assembly_load */ +typedef MonoAssembly * (*MonoAssemblyPreLoadFunc) (MonoAssemblyName *aname, + char **assemblies_path, + void* user_data); + +MONO_API MONO_RT_EXTERNAL_ONLY +void mono_install_assembly_preload_hook (MonoAssemblyPreLoadFunc func, void* user_data); +MONO_API MONO_RT_EXTERNAL_ONLY +void mono_install_assembly_refonly_preload_hook (MonoAssemblyPreLoadFunc func, void* user_data); + +MONO_API MONO_RT_EXTERNAL_ONLY void +mono_assembly_invoke_load_hook (MonoAssembly *ass); + +MONO_API MonoAssemblyName* mono_assembly_name_new (const char *name); +MONO_API const char* mono_assembly_name_get_name (MonoAssemblyName *aname); +MONO_API const char* mono_assembly_name_get_culture (MonoAssemblyName *aname); +MONO_API uint16_t mono_assembly_name_get_version (MonoAssemblyName *aname, + uint16_t *minor, uint16_t *build, uint16_t *revision); +MONO_API mono_byte* mono_assembly_name_get_pubkeytoken (MonoAssemblyName *aname); +MONO_API MONO_RT_EXTERNAL_ONLY void mono_assembly_name_free (MonoAssemblyName *aname); + +typedef struct { + const char *name; + const unsigned char *data; + unsigned int size; +} MonoBundledAssembly; + +MONO_API void mono_register_bundled_assemblies (const MonoBundledAssembly **assemblies); +MONO_API void mono_register_config_for_assembly (const char* assembly_name, const char* config_xml); +MONO_API void mono_register_symfile_for_assembly (const char* assembly_name, const mono_byte *raw_contents, int size); +MONO_API void mono_register_machine_config (const char *config_xml); + +MONO_API void mono_set_rootdir (void); +MONO_API void mono_set_dirs (const char *assembly_dir, const char *config_dir); +MONO_API void mono_set_assemblies_path (const char* path); +MONO_END_DECLS + +#endif + diff --git a/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/attrdefs.h b/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/attrdefs.h new file mode 100644 index 0000000..504c6c6 --- /dev/null +++ b/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/attrdefs.h @@ -0,0 +1,274 @@ +/** + * \file + * This file contains the various definitions for constants + * found on the metadata tables + * + * Author: + * Miguel de Icaza (miguel@ximian.com) + * Paolo Molaro (lupus@ximian.com) + * + * (C) 2001 Ximian, Inc. + * (C) 2006 Novell, Inc. + * + * From the ECMA documentation + */ + +#ifndef _MONO_METADATA_ATTRDEFS_H_ +#define _MONO_METADATA_ATTRDEFS_H_ + +/* + * 23.1.1 Values for AssemblyHashAlgorithm + */ +enum { + MONO_ASSEMBLY_HASH_NONE, + MONO_ASSEMBLY_HASH_MD5 = 0x8003, + MONO_ASSEMBLY_HASH_SHA1 = 0x8004 +}; + +/* + * 23.1.2 AssemblyRefs + */ +enum { + MONO_ASSEMBLYREF_FULL_PUBLIC_KEY = 0x0001, + MONO_ASSEMBLYREF_RETARGETABLE = 0x0100, + MONO_ASSEMBLYREF_JIT_TRACKING = 0x8000, + MONO_ASSEMBLYREF_NO_JIT_OPT = 0x4000 +}; + +/* + * 23.1.4 Flags for Event.EventAttributes + */ +enum { + MONO_EVENT_SPECIALNAME = 0x0200, + MONO_EVENT_RTSPECIALNAME = 0x0400 +}; + +/* + * Field Attributes (23.1.5). + */ +enum { + MONO_FIELD_ATTR_FIELD_ACCESS_MASK = 0x0007, + MONO_FIELD_ATTR_COMPILER_CONTROLLED = 0x0000, + MONO_FIELD_ATTR_PRIVATE = 0x0001, + MONO_FIELD_ATTR_FAM_AND_ASSEM = 0x0002, + MONO_FIELD_ATTR_ASSEMBLY = 0x0003, + MONO_FIELD_ATTR_FAMILY = 0x0004, + MONO_FIELD_ATTR_FAM_OR_ASSEM = 0x0005, + MONO_FIELD_ATTR_PUBLIC = 0x0006, + + MONO_FIELD_ATTR_STATIC = 0x0010, + MONO_FIELD_ATTR_INIT_ONLY = 0x0020, + MONO_FIELD_ATTR_LITERAL = 0x0040, + MONO_FIELD_ATTR_NOT_SERIALIZED = 0x0080, + MONO_FIELD_ATTR_SPECIAL_NAME = 0x0200, + MONO_FIELD_ATTR_PINVOKE_IMPL = 0x2000, + +/* For runtime use only */ + MONO_FIELD_ATTR_RESERVED_MASK = 0x9500, + MONO_FIELD_ATTR_RT_SPECIAL_NAME = 0x0400, + MONO_FIELD_ATTR_HAS_MARSHAL = 0x1000, + MONO_FIELD_ATTR_HAS_DEFAULT = 0x8000, + MONO_FIELD_ATTR_HAS_RVA = 0x0100 +}; + +/* + * 23.1.6 Flags for FileAttributes + */ +enum { + MONO_FILE_HAS_METADATA = 0, + MONO_FILE_HAS_NO_METADATA = 1 +}; + +/* + * 23.1.7 Flags for generic parameters + */ +enum { + MONO_GEN_PARAM_VARIANCE_MASK = 0x0003, + MONO_GEN_PARAM_NON_VARIANT = 0x0000, + MONO_GEN_PARAM_VARIANT = 0x0001, + MONO_GEN_PARAM_COVARIANT = 0x0002, + MONO_GEN_PARAM_CONSTRAINT_MASK = 0x001c, + MONO_GEN_PARAM_CONSTRAINT_CLASS = 0x0004, + MONO_GEN_PARAM_CONSTRAINT_VTYPE = 0x0008, + MONO_GEN_PARAM_CONSTRAINT_DCTOR = 0x0010 +}; + +/* + * 23.1.8 Flags for ImplMap [PInvokeAttributes] + */ +enum { + MONO_PINVOKE_NO_MANGLE = 0x0001, + MONO_PINVOKE_CHAR_SET_MASK = 0x0006, + MONO_PINVOKE_CHAR_SET_NOT_SPEC = 0x0000, + MONO_PINVOKE_CHAR_SET_ANSI = 0x0002, + MONO_PINVOKE_CHAR_SET_UNICODE = 0x0004, + MONO_PINVOKE_CHAR_SET_AUTO = 0x0006, + MONO_PINVOKE_BEST_FIT_ENABLED = 0x0010, + MONO_PINVOKE_BEST_FIT_DISABLED = 0x0020, + MONO_PINVOKE_BEST_FIT_MASK = 0x0030, + MONO_PINVOKE_SUPPORTS_LAST_ERROR = 0x0040, + MONO_PINVOKE_CALL_CONV_MASK = 0x0700, + MONO_PINVOKE_CALL_CONV_WINAPI = 0x0100, + MONO_PINVOKE_CALL_CONV_CDECL = 0x0200, + MONO_PINVOKE_CALL_CONV_STDCALL = 0x0300, + MONO_PINVOKE_CALL_CONV_THISCALL = 0x0400, + MONO_PINVOKE_CALL_CONV_FASTCALL = 0x0500, + MONO_PINVOKE_THROW_ON_UNMAPPABLE_ENABLED = 0x1000, + MONO_PINVOKE_THROW_ON_UNMAPPABLE_DISABLED = 0x2000, + MONO_PINVOKE_THROW_ON_UNMAPPABLE_MASK = 0x3000, + MONO_PINVOKE_CALL_CONV_GENERIC = 0x0010, + MONO_PINVOKE_CALL_CONV_GENERICINST = 0x000a +}; + +/* + * 23.1.9 Flags for ManifestResource + */ +enum { + MONO_MANIFEST_RESOURCE_VISIBILITY_MASK = 0x00000007, + MONO_MANIFEST_RESOURCE_PUBLIC = 0x00000001, + MONO_MANIFEST_RESOURCE_PRIVATE = 0x00000002 +}; + +/* + * Method Attributes (23.1.10) + */ +enum { + MONO_METHOD_ATTR_ACCESS_MASK = 0x0007, + MONO_METHOD_ATTR_COMPILER_CONTROLLED = 0x0000, + MONO_METHOD_ATTR_PRIVATE = 0x0001, + MONO_METHOD_ATTR_FAM_AND_ASSEM = 0x0002, + MONO_METHOD_ATTR_ASSEM = 0x0003, + MONO_METHOD_ATTR_FAMILY = 0x0004, + MONO_METHOD_ATTR_FAM_OR_ASSEM = 0x0005, + MONO_METHOD_ATTR_PUBLIC = 0x0006, + + MONO_METHOD_ATTR_STATIC = 0x0010, + MONO_METHOD_ATTR_FINAL = 0x0020, + MONO_METHOD_ATTR_VIRTUAL = 0x0040, + MONO_METHOD_ATTR_HIDE_BY_SIG = 0x0080, + + MONO_METHOD_ATTR_VTABLE_LAYOUT_MASK = 0x0100, + MONO_METHOD_ATTR_REUSE_SLOT = 0x0000, + MONO_METHOD_ATTR_NEW_SLOT = 0x0100, + MONO_METHOD_ATTR_STRICT = 0x0200, + MONO_METHOD_ATTR_ABSTRACT = 0x0400, + + MONO_METHOD_ATTR_SPECIAL_NAME = 0x0800, + + MONO_METHOD_ATTR_PINVOKE_IMPL = 0x2000, + MONO_METHOD_ATTR_UNMANAGED_EXPORT = 0x0008, + +/* + * For runtime use only + */ + MONO_METHOD_ATTR_RESERVED_MASK = 0xd000, + MONO_METHOD_ATTR_RT_SPECIAL_NAME = 0x1000, + MONO_METHOD_ATTR_HAS_SECURITY = 0x4000, + MONO_METHOD_ATTR_REQUIRE_SEC_OBJECT = 0x8000 +}; + +/* + * Method Impl Attributes (23.1.11) + */ +enum { + MONO_METHOD_IMPL_ATTR_CODE_TYPE_MASK = 0x0003, + MONO_METHOD_IMPL_ATTR_IL = 0x0000, + MONO_METHOD_IMPL_ATTR_NATIVE = 0x0001, + MONO_METHOD_IMPL_ATTR_OPTIL = 0x0002, + MONO_METHOD_IMPL_ATTR_RUNTIME = 0x0003, + + MONO_METHOD_IMPL_ATTR_MANAGED_MASK = 0x0004, + MONO_METHOD_IMPL_ATTR_UNMANAGED = 0x0004, + MONO_METHOD_IMPL_ATTR_MANAGED = 0x0000, + + MONO_METHOD_IMPL_ATTR_FORWARD_REF = 0x0010, + MONO_METHOD_IMPL_ATTR_PRESERVE_SIG = 0x0080, + MONO_METHOD_IMPL_ATTR_INTERNAL_CALL = 0x1000, + MONO_METHOD_IMPL_ATTR_SYNCHRONIZED = 0x0020, + MONO_METHOD_IMPL_ATTR_NOINLINING = 0x0008, + MONO_METHOD_IMPL_ATTR_NOOPTIMIZATION = 0x0040, + MONO_METHOD_IMPL_ATTR_MAX_METHOD_IMPL_VAL = 0xffff +}; + +/* + * Method Semantics ([MethodSemanticAttributes]) 23.1.12, + */ +enum { + MONO_METHOD_SEMANTIC_SETTER = 0x0001, + MONO_METHOD_SEMANTIC_GETTER = 0x0002, + MONO_METHOD_SEMANTIC_OTHER = 0x0004, + MONO_METHOD_SEMANTIC_ADD_ON = 0x0008, + MONO_METHOD_SEMANTIC_REMOVE_ON = 0x0010, + MONO_METHOD_SEMANTIC_FIRE = 0x0020 +}; + +/* + * Flags for Params (23.1.13) + */ +enum { + MONO_PARAM_ATTR_IN = 0x0001, + MONO_PARAM_ATTR_OUT = 0x0002, + MONO_PARAM_ATTR_OPTIONAL = 0x0010, + MONO_PARAM_ATTR_RESERVED_MASK = 0xf000, + MONO_PARAM_ATTR_HAS_DEFAULT = 0x1000, + MONO_PARAM_ATTR_HAS_MARSHAL = 0x2000, + MONO_PARAM_ATTR_UNUSED = 0xcfe0 +}; + +/* + * 23.1.14 PropertyAttributes + */ +enum { + MONO_PROPERTY_ATTR_SPECIAL_NAME = 0x0200, + MONO_PROPERTY_ATTR_RESERVED_MASK = 0xf400, + MONO_PROPERTY_ATTR_RT_SPECIAL_NAME = 0x0400, + MONO_PROPERTY_ATTR_HAS_DEFAULT = 0x1000, + MONO_PROPERTY_ATTR_UNUSED = 0xe9ff +}; + +/* + * Type Attributes (23.1.15). + */ +enum { + MONO_TYPE_ATTR_VISIBILITY_MASK = 0x00000007, + MONO_TYPE_ATTR_NOT_PUBLIC = 0x00000000, + MONO_TYPE_ATTR_PUBLIC = 0x00000001, + MONO_TYPE_ATTR_NESTED_PUBLIC = 0x00000002, + MONO_TYPE_ATTR_NESTED_PRIVATE = 0x00000003, + MONO_TYPE_ATTR_NESTED_FAMILY = 0x00000004, + MONO_TYPE_ATTR_NESTED_ASSEMBLY = 0x00000005, + MONO_TYPE_ATTR_NESTED_FAM_AND_ASSEM = 0x00000006, + MONO_TYPE_ATTR_NESTED_FAM_OR_ASSEM = 0x00000007, + + MONO_TYPE_ATTR_LAYOUT_MASK = 0x00000018, + MONO_TYPE_ATTR_AUTO_LAYOUT = 0x00000000, + MONO_TYPE_ATTR_SEQUENTIAL_LAYOUT = 0x00000008, + MONO_TYPE_ATTR_EXPLICIT_LAYOUT = 0x00000010, + + MONO_TYPE_ATTR_CLASS_SEMANTIC_MASK = 0x00000020, + MONO_TYPE_ATTR_CLASS = 0x00000000, + MONO_TYPE_ATTR_INTERFACE = 0x00000020, + + MONO_TYPE_ATTR_ABSTRACT = 0x00000080, + MONO_TYPE_ATTR_SEALED = 0x00000100, + MONO_TYPE_ATTR_SPECIAL_NAME = 0x00000400, + + MONO_TYPE_ATTR_IMPORT = 0x00001000, + MONO_TYPE_ATTR_SERIALIZABLE = 0x00002000, + + MONO_TYPE_ATTR_STRING_FORMAT_MASK = 0x00030000, + MONO_TYPE_ATTR_ANSI_CLASS = 0x00000000, + MONO_TYPE_ATTR_UNICODE_CLASS = 0x00010000, + MONO_TYPE_ATTR_AUTO_CLASS = 0x00020000, + MONO_TYPE_ATTR_CUSTOM_CLASS = 0x00030000, + MONO_TYPE_ATTR_CUSTOM_MASK = 0x00c00000, + + MONO_TYPE_ATTR_BEFORE_FIELD_INIT = 0x00100000, + MONO_TYPE_ATTR_FORWARDER = 0x00200000, + + MONO_TYPE_ATTR_RESERVED_MASK = 0x00040800, + MONO_TYPE_ATTR_RT_SPECIAL_NAME = 0x00000800, + MONO_TYPE_ATTR_HAS_SECURITY = 0x00040000 +}; + +#endif diff --git a/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/blob.h b/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/blob.h new file mode 100644 index 0000000..df26858 --- /dev/null +++ b/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/blob.h @@ -0,0 +1,118 @@ +/** + * \file + * Definitions used to pull information out of the Blob + * + */ +#ifndef _MONO_METADATA_BLOB_H_ +#define _MONO_METADATA_BLOB_H_ + +/* + * Encoding for type signatures used in the Metadata + */ +typedef enum { + MONO_TYPE_END = 0x00, /* End of List */ + MONO_TYPE_VOID = 0x01, + MONO_TYPE_BOOLEAN = 0x02, + MONO_TYPE_CHAR = 0x03, + MONO_TYPE_I1 = 0x04, + MONO_TYPE_U1 = 0x05, + MONO_TYPE_I2 = 0x06, + MONO_TYPE_U2 = 0x07, + MONO_TYPE_I4 = 0x08, + MONO_TYPE_U4 = 0x09, + MONO_TYPE_I8 = 0x0a, + MONO_TYPE_U8 = 0x0b, + MONO_TYPE_R4 = 0x0c, + MONO_TYPE_R8 = 0x0d, + MONO_TYPE_STRING = 0x0e, + MONO_TYPE_PTR = 0x0f, /* arg: token */ + MONO_TYPE_BYREF = 0x10, /* arg: token */ + MONO_TYPE_VALUETYPE = 0x11, /* arg: token */ + MONO_TYPE_CLASS = 0x12, /* arg: token */ + MONO_TYPE_VAR = 0x13, /* number */ + MONO_TYPE_ARRAY = 0x14, /* type, rank, boundsCount, bound1, loCount, lo1 */ + MONO_TYPE_GENERICINST= 0x15, /* \x{2026} */ + MONO_TYPE_TYPEDBYREF = 0x16, + MONO_TYPE_I = 0x18, + MONO_TYPE_U = 0x19, + MONO_TYPE_FNPTR = 0x1b, /* arg: full method signature */ + MONO_TYPE_OBJECT = 0x1c, + MONO_TYPE_SZARRAY = 0x1d, /* 0-based one-dim-array */ + MONO_TYPE_MVAR = 0x1e, /* number */ + MONO_TYPE_CMOD_REQD = 0x1f, /* arg: typedef or typeref token */ + MONO_TYPE_CMOD_OPT = 0x20, /* optional arg: typedef or typref token */ + MONO_TYPE_INTERNAL = 0x21, /* CLR internal type */ + + MONO_TYPE_MODIFIER = 0x40, /* Or with the following types */ + MONO_TYPE_SENTINEL = 0x41, /* Sentinel for varargs method signature */ + MONO_TYPE_PINNED = 0x45, /* Local var that points to pinned object */ + + MONO_TYPE_ENUM = 0x55 /* an enumeration */ +} MonoTypeEnum; + +typedef enum { + MONO_TABLE_MODULE, + MONO_TABLE_TYPEREF, + MONO_TABLE_TYPEDEF, + MONO_TABLE_FIELD_POINTER, + MONO_TABLE_FIELD, + MONO_TABLE_METHOD_POINTER, + MONO_TABLE_METHOD, + MONO_TABLE_PARAM_POINTER, + MONO_TABLE_PARAM, + MONO_TABLE_INTERFACEIMPL, + MONO_TABLE_MEMBERREF, /* 0xa */ + MONO_TABLE_CONSTANT, + MONO_TABLE_CUSTOMATTRIBUTE, + MONO_TABLE_FIELDMARSHAL, + MONO_TABLE_DECLSECURITY, + MONO_TABLE_CLASSLAYOUT, + MONO_TABLE_FIELDLAYOUT, /* 0x10 */ + MONO_TABLE_STANDALONESIG, + MONO_TABLE_EVENTMAP, + MONO_TABLE_EVENT_POINTER, + MONO_TABLE_EVENT, + MONO_TABLE_PROPERTYMAP, + MONO_TABLE_PROPERTY_POINTER, + MONO_TABLE_PROPERTY, + MONO_TABLE_METHODSEMANTICS, + MONO_TABLE_METHODIMPL, + MONO_TABLE_MODULEREF, /* 0x1a */ + MONO_TABLE_TYPESPEC, + MONO_TABLE_IMPLMAP, + MONO_TABLE_FIELDRVA, + MONO_TABLE_UNUSED6, + MONO_TABLE_UNUSED7, + MONO_TABLE_ASSEMBLY, /* 0x20 */ + MONO_TABLE_ASSEMBLYPROCESSOR, + MONO_TABLE_ASSEMBLYOS, + MONO_TABLE_ASSEMBLYREF, + MONO_TABLE_ASSEMBLYREFPROCESSOR, + MONO_TABLE_ASSEMBLYREFOS, + MONO_TABLE_FILE, + MONO_TABLE_EXPORTEDTYPE, + MONO_TABLE_MANIFESTRESOURCE, + MONO_TABLE_NESTEDCLASS, + MONO_TABLE_GENERICPARAM, /* 0x2a */ + MONO_TABLE_METHODSPEC, + MONO_TABLE_GENERICPARAMCONSTRAINT, + MONO_TABLE_UNUSED8, + MONO_TABLE_UNUSED9, + MONO_TABLE_UNUSED10, + /* Portable PDB tables */ + MONO_TABLE_DOCUMENT, /* 0x30 */ + MONO_TABLE_METHODBODY, + MONO_TABLE_LOCALSCOPE, + MONO_TABLE_LOCALVARIABLE, + MONO_TABLE_LOCALCONSTANT, + MONO_TABLE_IMPORTSCOPE, + MONO_TABLE_STATEMACHINEMETHOD, + MONO_TABLE_CUSTOMDEBUGINFORMATION + +#define MONO_TABLE_LAST MONO_TABLE_CUSTOMDEBUGINFORMATION +#define MONO_TABLE_NUM (MONO_TABLE_LAST + 1) + +} MonoMetaTableEnum; + +#endif + diff --git a/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/class.h b/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/class.h new file mode 100644 index 0000000..8966e02 --- /dev/null +++ b/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/class.h @@ -0,0 +1,313 @@ +/** + * \file + */ + +#ifndef _MONO_CLI_CLASS_H_ +#define _MONO_CLI_CLASS_H_ + +#include +#include +#include +#include + +MONO_BEGIN_DECLS + +typedef struct MonoVTable MonoVTable; + +typedef struct _MonoClassField MonoClassField; +typedef struct _MonoProperty MonoProperty; +typedef struct _MonoEvent MonoEvent; + +typedef enum { + MONO_TYPE_NAME_FORMAT_IL, + MONO_TYPE_NAME_FORMAT_REFLECTION, + MONO_TYPE_NAME_FORMAT_FULL_NAME, + MONO_TYPE_NAME_FORMAT_ASSEMBLY_QUALIFIED +} MonoTypeNameFormat; + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoClass * +mono_class_get (MonoImage *image, uint32_t type_token); + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoClass * +mono_class_get_full (MonoImage *image, uint32_t type_token, MonoGenericContext *context); + +MONO_API MONO_RT_EXTERNAL_ONLY mono_bool +mono_class_init (MonoClass *klass); + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoVTable * +mono_class_vtable (MonoDomain *domain, MonoClass *klass); + +MONO_API MONO_RT_EXTERNAL_ONLY MonoClass * +mono_class_from_name (MonoImage *image, const char* name_space, const char *name); + +MONO_API MONO_RT_EXTERNAL_ONLY MonoClass * +mono_class_from_name_case (MonoImage *image, const char* name_space, const char *name); + +MONO_API MONO_RT_EXTERNAL_ONLY MonoMethod * +mono_class_get_method_from_name_flags (MonoClass *klass, const char *name, int param_count, int flags); + +MONO_API MONO_RT_EXTERNAL_ONLY MonoClass * +mono_class_from_typeref (MonoImage *image, uint32_t type_token); + +MONO_API MonoClass * +mono_class_from_typeref_checked (MonoImage *image, uint32_t type_token, MonoError *error); + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoClass * +mono_class_from_generic_parameter (MonoGenericParam *param, MonoImage *image, mono_bool is_mvar); + +MONO_API MONO_RT_EXTERNAL_ONLY MonoType* +mono_class_inflate_generic_type (MonoType *type, MonoGenericContext *context) /* MONO_DEPRECATED */; + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoMethod* +mono_class_inflate_generic_method (MonoMethod *method, MonoGenericContext *context); + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoMethod * +mono_get_inflated_method (MonoMethod *method); + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoClassField* +mono_field_from_token (MonoImage *image, uint32_t token, MonoClass **retklass, MonoGenericContext *context); + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoClass * +mono_bounded_array_class_get (MonoClass *element_class, uint32_t rank, mono_bool bounded); + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoClass * +mono_array_class_get (MonoClass *element_class, uint32_t rank); + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoClass * +mono_ptr_class_get (MonoType *type); + +MONO_API MonoClassField * +mono_class_get_field (MonoClass *klass, uint32_t field_token); + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoClassField * +mono_class_get_field_from_name (MonoClass *klass, const char *name); + +MONO_API uint32_t +mono_class_get_field_token (MonoClassField *field); + +MONO_API uint32_t +mono_class_get_event_token (MonoEvent *event); + +MONO_API MONO_RT_EXTERNAL_ONLY MonoProperty * +mono_class_get_property_from_name (MonoClass *klass, const char *name); + +MONO_API uint32_t +mono_class_get_property_token (MonoProperty *prop); + +MONO_API int32_t +mono_array_element_size (MonoClass *ac); + +MONO_API int32_t +mono_class_instance_size (MonoClass *klass); + +MONO_API int32_t +mono_class_array_element_size (MonoClass *klass); + +MONO_API int32_t +mono_class_data_size (MonoClass *klass); + +MONO_API int32_t +mono_class_value_size (MonoClass *klass, uint32_t *align); + +MONO_API int32_t +mono_class_min_align (MonoClass *klass); + +MONO_API MONO_RT_EXTERNAL_ONLY MonoClass * +mono_class_from_mono_type (MonoType *type); + +MONO_API MONO_RT_EXTERNAL_ONLY mono_bool +mono_class_is_subclass_of (MonoClass *klass, MonoClass *klassc, + mono_bool check_interfaces); + +MONO_API MONO_RT_EXTERNAL_ONLY mono_bool +mono_class_is_assignable_from (MonoClass *klass, MonoClass *oklass); + +MONO_API MONO_RT_EXTERNAL_ONLY +void* +mono_ldtoken (MonoImage *image, uint32_t token, MonoClass **retclass, MonoGenericContext *context); + +MONO_API char * +mono_type_get_name_full (MonoType *type, MonoTypeNameFormat format); + +MONO_API char* +mono_type_get_name (MonoType *type); + +MONO_API MonoType* +mono_type_get_underlying_type (MonoType *type); + +/* MonoClass accessors */ +MONO_API MonoImage* +mono_class_get_image (MonoClass *klass); + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoClass* +mono_class_get_element_class (MonoClass *klass); + +MONO_API MONO_RT_EXTERNAL_ONLY +mono_bool +mono_class_is_valuetype (MonoClass *klass); + +MONO_API MONO_RT_EXTERNAL_ONLY +mono_bool +mono_class_is_enum (MonoClass *klass); + +MONO_API MONO_RT_EXTERNAL_ONLY MonoType* +mono_class_enum_basetype (MonoClass *klass); + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoClass* +mono_class_get_parent (MonoClass *klass); + +MONO_API MonoClass* +mono_class_get_nesting_type (MonoClass *klass); + +MONO_API int +mono_class_get_rank (MonoClass *klass); + +MONO_API uint32_t +mono_class_get_flags (MonoClass *klass); + +MONO_API MONO_RT_EXTERNAL_ONLY +const char* +mono_class_get_name (MonoClass *klass); + +MONO_API MONO_RT_EXTERNAL_ONLY +const char* +mono_class_get_namespace (MonoClass *klass); + +MONO_API MONO_RT_EXTERNAL_ONLY MonoType* +mono_class_get_type (MonoClass *klass); + +MONO_API uint32_t +mono_class_get_type_token (MonoClass *klass); + +MONO_API MonoType* +mono_class_get_byref_type (MonoClass *klass); + +MONO_API int +mono_class_num_fields (MonoClass *klass); + +MONO_API int +mono_class_num_methods (MonoClass *klass); + +MONO_API int +mono_class_num_properties (MonoClass *klass); + +MONO_API int +mono_class_num_events (MonoClass *klass); + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoClassField* +mono_class_get_fields (MonoClass* klass, void **iter); + +MONO_API MonoMethod* +mono_class_get_methods (MonoClass* klass, void **iter); + +MONO_API MonoProperty* +mono_class_get_properties (MonoClass* klass, void **iter); + +MONO_API MonoEvent* +mono_class_get_events (MonoClass* klass, void **iter); + +MONO_API MonoClass* +mono_class_get_interfaces (MonoClass* klass, void **iter); + +MONO_API MonoClass* +mono_class_get_nested_types (MonoClass* klass, void **iter); + +MONO_API MONO_RT_EXTERNAL_ONLY +mono_bool +mono_class_is_delegate (MonoClass* klass); + +MONO_API MONO_RT_EXTERNAL_ONLY mono_bool +mono_class_implements_interface (MonoClass* klass, MonoClass* iface); + +/* MonoClassField accessors */ +MONO_API const char* +mono_field_get_name (MonoClassField *field); + +MONO_API MonoType* +mono_field_get_type (MonoClassField *field); + +MONO_API MonoClass* +mono_field_get_parent (MonoClassField *field); + +MONO_API uint32_t +mono_field_get_flags (MonoClassField *field); + +MONO_API uint32_t +mono_field_get_offset (MonoClassField *field); + +MONO_API const char * +mono_field_get_data (MonoClassField *field); + +/* MonoProperty acessors */ +MONO_API const char* +mono_property_get_name (MonoProperty *prop); + +MONO_API MonoMethod* +mono_property_get_set_method (MonoProperty *prop); + +MONO_API MonoMethod* +mono_property_get_get_method (MonoProperty *prop); + +MONO_API MonoClass* +mono_property_get_parent (MonoProperty *prop); + +MONO_API uint32_t +mono_property_get_flags (MonoProperty *prop); + +/* MonoEvent accessors */ +MONO_API const char* +mono_event_get_name (MonoEvent *event); + +MONO_API MonoMethod* +mono_event_get_add_method (MonoEvent *event); + +MONO_API MonoMethod* +mono_event_get_remove_method (MonoEvent *event); + +MONO_API MonoMethod* +mono_event_get_remove_method (MonoEvent *event); + +MONO_API MonoMethod* +mono_event_get_raise_method (MonoEvent *event); + +MONO_API MonoClass* +mono_event_get_parent (MonoEvent *event); + +MONO_API uint32_t +mono_event_get_flags (MonoEvent *event); + +MONO_API MONO_RT_EXTERNAL_ONLY MonoMethod * +mono_class_get_method_from_name (MonoClass *klass, const char *name, int param_count); + +MONO_API char * +mono_class_name_from_token (MonoImage *image, uint32_t type_token); + +MONO_API mono_bool +mono_method_can_access_field (MonoMethod *method, MonoClassField *field); + +MONO_API mono_bool +mono_method_can_access_method (MonoMethod *method, MonoMethod *called); + +MONO_API mono_bool +mono_class_is_nullable (MonoClass *klass); + +MONO_API MONO_RT_EXTERNAL_ONLY MonoClass* +mono_class_get_nullable_param (MonoClass *klass); + +MONO_END_DECLS + +#endif /* _MONO_CLI_CLASS_H_ */ diff --git a/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/debug-helpers.h b/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/debug-helpers.h new file mode 100644 index 0000000..8ecdf8e --- /dev/null +++ b/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/debug-helpers.h @@ -0,0 +1,54 @@ +/** + * \file + */ + +#ifndef __MONO_DEBUG_HELPERS_H__ +#define __MONO_DEBUG_HELPERS_H__ + +#include + +MONO_BEGIN_DECLS + +typedef struct MonoDisHelper MonoDisHelper; + +typedef char* (*MonoDisIndenter) (MonoDisHelper *dh, MonoMethod *method, uint32_t ip_offset); +typedef char* (*MonoDisTokener) (MonoDisHelper *dh, MonoMethod *method, uint32_t token); + +struct MonoDisHelper { + const char *newline; + const char *label_format; + const char *label_target; + MonoDisIndenter indenter; + MonoDisTokener tokener; + void* user_data; +}; + +MONO_API char* mono_disasm_code_one (MonoDisHelper *dh, MonoMethod *method, const mono_byte *ip, const mono_byte** endp); +MONO_API char* mono_disasm_code (MonoDisHelper *dh, MonoMethod *method, const mono_byte *ip, const mono_byte* end); + +typedef struct MonoMethodDesc MonoMethodDesc; + +MONO_API char* mono_type_full_name (MonoType *type); + +MONO_API char* mono_signature_get_desc (MonoMethodSignature *sig, mono_bool include_namespace); + +MONO_API char* mono_context_get_desc (MonoGenericContext *context); + +MONO_API MonoMethodDesc* mono_method_desc_new (const char *name, mono_bool include_namespace); +MONO_API MonoMethodDesc* mono_method_desc_from_method (MonoMethod *method); +MONO_API void mono_method_desc_free (MonoMethodDesc *desc); +MONO_API mono_bool mono_method_desc_match (MonoMethodDesc *desc, MonoMethod *method); +MONO_API mono_bool mono_method_desc_is_full (MonoMethodDesc *desc); +MONO_API mono_bool mono_method_desc_full_match (MonoMethodDesc *desc, MonoMethod *method); +MONO_API MonoMethod* mono_method_desc_search_in_class (MonoMethodDesc *desc, MonoClass *klass); +MONO_API MonoMethod* mono_method_desc_search_in_image (MonoMethodDesc *desc, MonoImage *image); + +MONO_API char* mono_method_full_name (MonoMethod *method, mono_bool signature); +MONO_API char* mono_method_get_reflection_name (MonoMethod *method); + +MONO_API char* mono_field_full_name (MonoClassField *field); + +MONO_END_DECLS + +#endif /* __MONO_DEBUG_HELPERS_H__ */ + diff --git a/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/debug-mono-symfile.h b/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/debug-mono-symfile.h new file mode 100644 index 0000000..cebc943 --- /dev/null +++ b/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/debug-mono-symfile.h @@ -0,0 +1,114 @@ +/** + * \file + * This header is only installed for use by the debugger: + * the structures and the API declared here are not supported. + * Copyright 2012 Xamarin Inc (http://www.xamarin.com) + * Licensed under the MIT license. See LICENSE file in the project root for full license information. + */ + +#ifndef __MONO_DEBUG_MONO_SYMFILE_H__ +#define __MONO_DEBUG_MONO_SYMFILE_H__ + +#include +#include +#include +#include +#include + +typedef struct MonoSymbolFileOffsetTable MonoSymbolFileOffsetTable; +typedef struct MonoSymbolFileLineNumberEntry MonoSymbolFileLineNumberEntry; +typedef struct MonoSymbolFileMethodAddress MonoSymbolFileMethodAddress; +typedef struct MonoSymbolFileDynamicTable MonoSymbolFileDynamicTable; +typedef struct MonoSymbolFileSourceEntry MonoSymbolFileSourceEntry; +typedef struct MonoSymbolFileMethodEntry MonoSymbolFileMethodEntry; + +/* Keep in sync with OffsetTable in mcs/class/Mono.CSharp.Debugger/MonoSymbolTable.cs */ +struct MonoSymbolFileOffsetTable { + uint32_t _total_file_size; + uint32_t _data_section_offset; + uint32_t _data_section_size; + uint32_t _compile_unit_count; + uint32_t _compile_unit_table_offset; + uint32_t _compile_unit_table_size; + uint32_t _source_count; + uint32_t _source_table_offset; + uint32_t _source_table_size; + uint32_t _method_count; + uint32_t _method_table_offset; + uint32_t _method_table_size; + uint32_t _type_count; + uint32_t _anonymous_scope_count; + uint32_t _anonymous_scope_table_offset; + uint32_t _anonymous_scope_table_size; + uint32_t _line_number_table_line_base; + uint32_t _line_number_table_line_range; + uint32_t _line_number_table_opcode_base; + uint32_t _is_aspx_source; +}; + +struct MonoSymbolFileSourceEntry { + uint32_t _index; + uint32_t _data_offset; +}; + +struct MonoSymbolFileMethodEntry { + uint32_t _token; + uint32_t _data_offset; + uint32_t _line_number_table; +}; + +struct MonoSymbolFileMethodAddress { + uint32_t size; + const uint8_t *start_address; + const uint8_t *end_address; + const uint8_t *method_start_address; + const uint8_t *method_end_address; + const uint8_t *wrapper_address; + uint32_t has_this; + uint32_t num_params; + uint32_t variable_table_offset; + uint32_t type_table_offset; + uint32_t num_line_numbers; + uint32_t line_number_offset; + uint8_t data [MONO_ZERO_LEN_ARRAY]; +}; + +#define MONO_SYMBOL_FILE_MAJOR_VERSION 50 +#define MONO_SYMBOL_FILE_MINOR_VERSION 0 +#define MONO_SYMBOL_FILE_MAGIC 0x45e82623fd7fa614ULL + +MONO_BEGIN_DECLS + +MONO_API MonoSymbolFile * +mono_debug_open_mono_symbols (MonoDebugHandle *handle, + const uint8_t *raw_contents, + int size, + mono_bool in_the_debugger); + +MONO_API void +mono_debug_close_mono_symbol_file (MonoSymbolFile *symfile); + +MONO_API mono_bool +mono_debug_symfile_is_loaded (MonoSymbolFile *symfile); + +MONO_API MonoDebugSourceLocation * +mono_debug_symfile_lookup_location (MonoDebugMethodInfo *minfo, + uint32_t offset); + +MONO_API void +mono_debug_symfile_free_location (MonoDebugSourceLocation *location); + +MONO_API MonoDebugMethodInfo * +mono_debug_symfile_lookup_method (MonoDebugHandle *handle, + MonoMethod *method); + +MONO_API MonoDebugLocalsInfo* +mono_debug_symfile_lookup_locals (MonoDebugMethodInfo *minfo); + +void +mono_debug_symfile_get_seq_points (MonoDebugMethodInfo *minfo, char **source_file, GPtrArray **source_file_list, int **source_files, MonoSymSeqPoint **seq_points, int *n_seq_points); + +MONO_END_DECLS + +#endif /* __MONO_SYMFILE_H__ */ + diff --git a/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/environment.h b/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/environment.h new file mode 100644 index 0000000..1fb5a57 --- /dev/null +++ b/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/environment.h @@ -0,0 +1,23 @@ +/** + * \file + * System.Environment support internal calls + * + * Author: + * Dick Porter (dick@ximian.com) + * + * (C) 2002 Ximian, Inc + */ + +#ifndef _MONO_METADATA_ENVIRONMENT_H_ +#define _MONO_METADATA_ENVIRONMENT_H_ + +#include + +MONO_BEGIN_DECLS + +MONO_API int32_t mono_environment_exitcode_get (void); +MONO_API void mono_environment_exitcode_set (int32_t value); + +MONO_END_DECLS + +#endif /* _MONO_METADATA_ENVIRONMENT_H_ */ diff --git a/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/exception.h b/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/exception.h new file mode 100644 index 0000000..721dd49 --- /dev/null +++ b/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/exception.h @@ -0,0 +1,178 @@ +/** + * \file + */ + +#ifndef _MONO_METADATA_EXCEPTION_H_ +#define _MONO_METADATA_EXCEPTION_H_ + +#include +#include +#include + +MONO_BEGIN_DECLS + +MONO_API MonoException * +mono_exception_from_name (MonoImage *image, + const char* name_space, + const char *name); + +MONO_API MonoException * +mono_exception_from_token (MonoImage *image, uint32_t token); + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoException * +mono_exception_from_name_two_strings (MonoImage *image, const char *name_space, + const char *name, MonoString *a1, MonoString *a2); + +MONO_API MonoException * +mono_exception_from_name_msg (MonoImage *image, const char *name_space, + const char *name, const char *msg); + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoException * +mono_exception_from_token_two_strings (MonoImage *image, uint32_t token, + MonoString *a1, MonoString *a2); + +MONO_API MonoException * +mono_exception_from_name_domain (MonoDomain *domain, MonoImage *image, + const char* name_space, + const char *name); + +MONO_API MonoException * +mono_get_exception_divide_by_zero (void); + +MONO_API MonoException * +mono_get_exception_security (void); + +MONO_API MonoException * +mono_get_exception_arithmetic (void); + +MONO_API MonoException * +mono_get_exception_overflow (void); + +MONO_API MonoException * +mono_get_exception_null_reference (void); + +MONO_API MonoException * +mono_get_exception_execution_engine (const char *msg); + +MONO_API MonoException * +mono_get_exception_thread_abort (void); + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoException * +mono_get_exception_thread_state (const char *msg); + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoException * +mono_get_exception_thread_interrupted (void); + +MONO_API MonoException * +mono_get_exception_serialization (const char *msg); + +MONO_API MonoException * +mono_get_exception_invalid_cast (void); + +MONO_API MonoException * +mono_get_exception_invalid_operation (const char *msg); + +MONO_API MonoException * +mono_get_exception_index_out_of_range (void); + +MONO_API MonoException * +mono_get_exception_array_type_mismatch (void); + +MONO_API MonoException * +mono_get_exception_type_load (MonoString *class_name, char *assembly_name); + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoException * +mono_get_exception_missing_method (const char *class_name, const char *member_name); + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoException * +mono_get_exception_missing_field (const char *class_name, const char *member_name); + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoException * +mono_get_exception_not_implemented (const char *msg); + +MONO_API MonoException * +mono_get_exception_not_supported (const char *msg); + +MONO_API MONO_RT_EXTERNAL_ONLY MonoException* +mono_get_exception_argument_null (const char *arg); + +MONO_API MonoException * +mono_get_exception_argument (const char *arg, const char *msg); + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoException * +mono_get_exception_argument_out_of_range (const char *arg); + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoException * +mono_get_exception_io (const char *msg); + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoException * +mono_get_exception_file_not_found (MonoString *fname); + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoException * +mono_get_exception_file_not_found2 (const char *msg, MonoString *fname); + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoException * +mono_get_exception_type_initialization (const char *type_name, MonoException *inner); + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoException * +mono_get_exception_synchronization_lock (const char *msg); + +MONO_API MonoException * +mono_get_exception_cannot_unload_appdomain (const char *msg); + +MONO_API MonoException * +mono_get_exception_appdomain_unloaded (void); + +MONO_API MonoException * +mono_get_exception_bad_image_format (const char *msg); + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoException * +mono_get_exception_bad_image_format2 (const char *msg, MonoString *fname); + +MONO_API MonoException * +mono_get_exception_stack_overflow (void); + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoException * +mono_get_exception_out_of_memory (void); + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoException * +mono_get_exception_field_access (void); + +MONO_API MonoException * +mono_get_exception_method_access (void); + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoException * +mono_get_exception_reflection_type_load (MonoArray *types, MonoArray *exceptions); + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoException * +mono_get_exception_runtime_wrapped (MonoObject *wrapped_exception); + +/* Installs a function which is called when the runtime encounters an unhandled exception. + * This hook isn't expected to return. + * If no hook has been installed, the runtime will print a message before aborting. + */ +typedef void (*MonoUnhandledExceptionFunc) (MonoObject *exc, void *user_data); +MONO_API void mono_install_unhandled_exception_hook (MonoUnhandledExceptionFunc func, void *user_data); +void mono_invoke_unhandled_exception_hook (MonoObject *exc); + +MONO_END_DECLS + +#endif /* _MONO_METADATA_EXCEPTION_H_ */ diff --git a/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/image.h b/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/image.h new file mode 100644 index 0000000..1d8fd9e --- /dev/null +++ b/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/image.h @@ -0,0 +1,97 @@ +/** + * \file + */ + +#ifndef _MONONET_METADATA_IMAGE_H_ +#define _MONONET_METADATA_IMAGE_H_ + +#include +#include +#include +#include + +MONO_BEGIN_DECLS + +typedef struct _MonoAssembly MonoAssembly; +typedef struct _MonoAssemblyName MonoAssemblyName; +typedef struct _MonoTableInfo MonoTableInfo; + +typedef enum { + MONO_IMAGE_OK, + MONO_IMAGE_ERROR_ERRNO, + MONO_IMAGE_MISSING_ASSEMBLYREF, + MONO_IMAGE_IMAGE_INVALID +} MonoImageOpenStatus; + +MONO_API void mono_images_init (void); +MONO_API void mono_images_cleanup (void); + +MONO_API MonoImage *mono_image_open (const char *fname, + MonoImageOpenStatus *status); +MONO_API MONO_RT_EXTERNAL_ONLY +MonoImage *mono_image_open_full (const char *fname, + MonoImageOpenStatus *status, mono_bool refonly); +MONO_API MONO_RT_EXTERNAL_ONLY +MonoImage *mono_pe_file_open (const char *fname, + MonoImageOpenStatus *status); +MONO_API MONO_RT_EXTERNAL_ONLY +MonoImage *mono_image_open_from_data (char *data, uint32_t data_len, mono_bool need_copy, + MonoImageOpenStatus *status); +MONO_API MONO_RT_EXTERNAL_ONLY +MonoImage *mono_image_open_from_data_full (char *data, uint32_t data_len, mono_bool need_copy, + MonoImageOpenStatus *status, mono_bool refonly); +MONO_API MONO_RT_EXTERNAL_ONLY +MonoImage *mono_image_open_from_data_with_name (char *data, uint32_t data_len, mono_bool need_copy, + MonoImageOpenStatus *status, mono_bool refonly, const char *name); +MONO_API void mono_image_fixup_vtable (MonoImage *image); +MONO_API MONO_RT_EXTERNAL_ONLY +MonoImage *mono_image_loaded (const char *name); +MONO_API MONO_RT_EXTERNAL_ONLY +MonoImage *mono_image_loaded_full (const char *name, mono_bool refonly); +MONO_API MONO_RT_EXTERNAL_ONLY +MonoImage *mono_image_loaded_by_guid (const char *guid); +MONO_API MONO_RT_EXTERNAL_ONLY +MonoImage *mono_image_loaded_by_guid_full (const char *guid, mono_bool refonly); +MONO_API void mono_image_init (MonoImage *image); +MONO_API void mono_image_close (MonoImage *image); +MONO_API void mono_image_addref (MonoImage *image); +MONO_API const char *mono_image_strerror (MonoImageOpenStatus status); + +MONO_API int mono_image_ensure_section (MonoImage *image, + const char *section); +MONO_API int mono_image_ensure_section_idx (MonoImage *image, + int section); + +MONO_API uint32_t mono_image_get_entry_point (MonoImage *image); +MONO_API const char *mono_image_get_resource (MonoImage *image, uint32_t offset, uint32_t *size); +MONO_API MONO_RT_EXTERNAL_ONLY MonoImage* mono_image_load_file_for_image (MonoImage *image, int fileidx); + +MONO_API MONO_RT_EXTERNAL_ONLY MonoImage* mono_image_load_module (MonoImage *image, int idx); + +MONO_API const char* mono_image_get_name (MonoImage *image); +MONO_API const char* mono_image_get_filename (MonoImage *image); +MONO_API const char * mono_image_get_guid (MonoImage *image); +MONO_API MonoAssembly* mono_image_get_assembly (MonoImage *image); +MONO_API mono_bool mono_image_is_dynamic (MonoImage *image); +MONO_API char* mono_image_rva_map (MonoImage *image, uint32_t rva); + +MONO_API const MonoTableInfo *mono_image_get_table_info (MonoImage *image, int table_id); +MONO_API int mono_image_get_table_rows (MonoImage *image, int table_id); +MONO_API int mono_table_info_get_rows (const MonoTableInfo *table); + +/* This actually returns a MonoPEResourceDataEntry *, but declaring it + * causes an include file loop. + */ +MONO_API void* mono_image_lookup_resource (MonoImage *image, uint32_t res_id, + uint32_t lang_id, mono_unichar2 *name); + +MONO_API const char* mono_image_get_public_key (MonoImage *image, uint32_t *size); +MONO_API const char* mono_image_get_strong_name (MonoImage *image, uint32_t *size); +MONO_API uint32_t mono_image_strong_name_position (MonoImage *image, uint32_t *size); +MONO_API void mono_image_add_to_name_cache (MonoImage *image, + const char *nspace, const char *name, uint32_t idx); +MONO_API mono_bool mono_image_has_authenticode_entry (MonoImage *image); + +MONO_END_DECLS + +#endif diff --git a/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/loader.h b/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/loader.h new file mode 100644 index 0000000..42c8928 --- /dev/null +++ b/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/loader.h @@ -0,0 +1,109 @@ +/** + * \file + */ + +#ifndef _MONO_METADATA_LOADER_H_ +#define _MONO_METADATA_LOADER_H_ 1 + +#include +#include +#include +#include + +MONO_BEGIN_DECLS + +typedef mono_bool (*MonoStackWalk) (MonoMethod *method, int32_t native_offset, int32_t il_offset, mono_bool managed, void* data); + +MONO_API MONO_RT_EXTERNAL_ONLY MonoMethod * +mono_get_method (MonoImage *image, uint32_t token, MonoClass *klass); + +MONO_API MONO_RT_EXTERNAL_ONLY MonoMethod * +mono_get_method_full (MonoImage *image, uint32_t token, MonoClass *klass, + MonoGenericContext *context); + +MONO_API MONO_RT_EXTERNAL_ONLY MonoMethod * +mono_get_method_constrained (MonoImage *image, uint32_t token, MonoClass *constrained_class, + MonoGenericContext *context, MonoMethod **cil_method); + +MONO_API void +mono_free_method (MonoMethod *method); + +MONO_API MONO_RT_EXTERNAL_ONLY MonoMethodSignature* +mono_method_get_signature_full (MonoMethod *method, MonoImage *image, uint32_t token, + MonoGenericContext *context); + +MONO_API MONO_RT_EXTERNAL_ONLY MonoMethodSignature* +mono_method_get_signature (MonoMethod *method, MonoImage *image, uint32_t token); + +MONO_API MONO_RT_EXTERNAL_ONLY MonoMethodSignature* +mono_method_signature (MonoMethod *method); + +MONO_API MONO_RT_EXTERNAL_ONLY MonoMethodHeader* +mono_method_get_header (MonoMethod *method); + +MONO_API const char* +mono_method_get_name (MonoMethod *method); + +MONO_API MonoClass* +mono_method_get_class (MonoMethod *method); + +MONO_API uint32_t +mono_method_get_token (MonoMethod *method); + +MONO_API uint32_t +mono_method_get_flags (MonoMethod *method, uint32_t *iflags); + +MONO_API uint32_t +mono_method_get_index (MonoMethod *method); + +MONO_API MONO_RT_EXTERNAL_ONLY void +mono_add_internal_call (const char *name, const void* method); + +MONO_API MONO_RT_EXTERNAL_ONLY void +mono_dangerous_add_raw_internal_call (const char *name, const void* method); + +MONO_API void* +mono_lookup_internal_call (MonoMethod *method); + +MONO_API const char* +mono_lookup_icall_symbol (MonoMethod *m); + +MONO_API MONO_RT_EXTERNAL_ONLY void +mono_dllmap_insert (MonoImage *assembly, const char *dll, const char *func, const char *tdll, const char *tfunc); + +MONO_API MONO_RT_EXTERNAL_ONLY void* +mono_lookup_pinvoke_call (MonoMethod *method, const char **exc_class, const char **exc_arg); + +MONO_API void +mono_method_get_param_names (MonoMethod *method, const char **names); + +MONO_API uint32_t +mono_method_get_param_token (MonoMethod *method, int idx); + +MONO_API void +mono_method_get_marshal_info (MonoMethod *method, MonoMarshalSpec **mspecs); + +MONO_API mono_bool +mono_method_has_marshal_info (MonoMethod *method); + +MONO_API MonoMethod* +mono_method_get_last_managed (void); + +MONO_API void +mono_stack_walk (MonoStackWalk func, void* user_data); + +/* Use this if the IL offset is not needed: it's faster */ +MONO_API void +mono_stack_walk_no_il (MonoStackWalk func, void* user_data); + +typedef mono_bool (*MonoStackWalkAsyncSafe) (MonoMethod *method, MonoDomain *domain, void *base_address, int offset, void* data); +MONO_API void +mono_stack_walk_async_safe (MonoStackWalkAsyncSafe func, void *initial_sig_context, void* user_data); + +MONO_API MonoMethodHeader* +mono_method_get_header_checked (MonoMethod *method, MonoError *error); + +MONO_END_DECLS + +#endif + diff --git a/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/metadata.h b/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/metadata.h new file mode 100644 index 0000000..f6646d6 --- /dev/null +++ b/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/metadata.h @@ -0,0 +1,515 @@ +/** + * \file + */ + +#ifndef __MONO_METADATA_H__ +#define __MONO_METADATA_H__ + +#include + +#include +#include +#include +#include +#include + +MONO_BEGIN_DECLS + +#define MONO_TYPE_ISSTRUCT(t) mono_type_is_struct (t) +#define MONO_TYPE_IS_VOID(t) mono_type_is_void (t) +#define MONO_TYPE_IS_POINTER(t) mono_type_is_pointer (t) +#define MONO_TYPE_IS_REFERENCE(t) mono_type_is_reference (t) + +#define MONO_CLASS_IS_INTERFACE(c) ((mono_class_get_flags (c) & TYPE_ATTRIBUTE_INTERFACE) || mono_type_is_generic_parameter (mono_class_get_type (c))) + +#define MONO_CLASS_IS_IMPORT(c) ((mono_class_get_flags (c) & TYPE_ATTRIBUTE_IMPORT)) + +typedef enum { + MONO_EXCEPTION_CLAUSE_NONE, + MONO_EXCEPTION_CLAUSE_FILTER, + MONO_EXCEPTION_CLAUSE_FINALLY, + MONO_EXCEPTION_CLAUSE_FAULT = 4 +} MonoExceptionEnum; + +typedef enum { + MONO_CALL_DEFAULT, + MONO_CALL_C, + MONO_CALL_STDCALL, + MONO_CALL_THISCALL, + MONO_CALL_FASTCALL, + MONO_CALL_VARARG +} MonoCallConvention; + +/* ECMA lamespec: the old spec had more info... */ +typedef enum { + MONO_NATIVE_BOOLEAN = 0x02, /* 4 bytes, 0 is false, != 0 is true */ + MONO_NATIVE_I1 = 0x03, + MONO_NATIVE_U1 = 0x04, + MONO_NATIVE_I2 = 0x05, + MONO_NATIVE_U2 = 0x06, + MONO_NATIVE_I4 = 0x07, + MONO_NATIVE_U4 = 0x08, + MONO_NATIVE_I8 = 0x09, + MONO_NATIVE_U8 = 0x0a, + MONO_NATIVE_R4 = 0x0b, + MONO_NATIVE_R8 = 0x0c, + MONO_NATIVE_CURRENCY = 0x0f, + MONO_NATIVE_BSTR = 0x13, /* prefixed length, Unicode */ + MONO_NATIVE_LPSTR = 0x14, /* ANSI, null terminated */ + MONO_NATIVE_LPWSTR = 0x15, /* UNICODE, null terminated */ + MONO_NATIVE_LPTSTR = 0x16, /* plattform dep., null terminated */ + MONO_NATIVE_BYVALTSTR = 0x17, + MONO_NATIVE_IUNKNOWN = 0x19, + MONO_NATIVE_IDISPATCH = 0x1a, + MONO_NATIVE_STRUCT = 0x1b, + MONO_NATIVE_INTERFACE = 0x1c, + MONO_NATIVE_SAFEARRAY = 0x1d, + MONO_NATIVE_BYVALARRAY = 0x1e, + MONO_NATIVE_INT = 0x1f, + MONO_NATIVE_UINT = 0x20, + MONO_NATIVE_VBBYREFSTR = 0x22, + MONO_NATIVE_ANSIBSTR = 0x23, /* prefixed length, ANSI */ + MONO_NATIVE_TBSTR = 0x24, /* prefixed length, plattform dep. */ + MONO_NATIVE_VARIANTBOOL = 0x25, + MONO_NATIVE_FUNC = 0x26, + MONO_NATIVE_ASANY = 0x28, + MONO_NATIVE_LPARRAY = 0x2a, + MONO_NATIVE_LPSTRUCT = 0x2b, + MONO_NATIVE_CUSTOM = 0x2c, + MONO_NATIVE_ERROR = 0x2d, + // TODO: MONO_NATIVE_IINSPECTABLE = 0x2e + // TODO: MONO_NATIVE_HSTRING = 0x2f + MONO_NATIVE_UTF8STR = 0x30, + MONO_NATIVE_MAX = 0x50 /* no info */ +} MonoMarshalNative; + +/* Used only in context of SafeArray */ +typedef enum { + MONO_VARIANT_EMPTY = 0x00, + MONO_VARIANT_NULL = 0x01, + MONO_VARIANT_I2 = 0x02, + MONO_VARIANT_I4 = 0x03, + MONO_VARIANT_R4 = 0x04, + MONO_VARIANT_R8 = 0x05, + MONO_VARIANT_CY = 0x06, + MONO_VARIANT_DATE = 0x07, + MONO_VARIANT_BSTR = 0x08, + MONO_VARIANT_DISPATCH = 0x09, + MONO_VARIANT_ERROR = 0x0a, + MONO_VARIANT_BOOL = 0x0b, + MONO_VARIANT_VARIANT = 0x0c, + MONO_VARIANT_UNKNOWN = 0x0d, + MONO_VARIANT_DECIMAL = 0x0e, + MONO_VARIANT_I1 = 0x10, + MONO_VARIANT_UI1 = 0x11, + MONO_VARIANT_UI2 = 0x12, + MONO_VARIANT_UI4 = 0x13, + MONO_VARIANT_I8 = 0x14, + MONO_VARIANT_UI8 = 0x15, + MONO_VARIANT_INT = 0x16, + MONO_VARIANT_UINT = 0x17, + MONO_VARIANT_VOID = 0x18, + MONO_VARIANT_HRESULT = 0x19, + MONO_VARIANT_PTR = 0x1a, + MONO_VARIANT_SAFEARRAY = 0x1b, + MONO_VARIANT_CARRAY = 0x1c, + MONO_VARIANT_USERDEFINED = 0x1d, + MONO_VARIANT_LPSTR = 0x1e, + MONO_VARIANT_LPWSTR = 0x1f, + MONO_VARIANT_RECORD = 0x24, + MONO_VARIANT_FILETIME = 0x40, + MONO_VARIANT_BLOB = 0x41, + MONO_VARIANT_STREAM = 0x42, + MONO_VARIANT_STORAGE = 0x43, + MONO_VARIANT_STREAMED_OBJECT = 0x44, + MONO_VARIANT_STORED_OBJECT = 0x45, + MONO_VARIANT_BLOB_OBJECT = 0x46, + MONO_VARIANT_CF = 0x47, + MONO_VARIANT_CLSID = 0x48, + MONO_VARIANT_VECTOR = 0x1000, + MONO_VARIANT_ARRAY = 0x2000, + MONO_VARIANT_BYREF = 0x4000 +} MonoMarshalVariant; + +typedef enum { + MONO_MARSHAL_CONV_NONE, + MONO_MARSHAL_CONV_BOOL_VARIANTBOOL, + MONO_MARSHAL_CONV_BOOL_I4, + MONO_MARSHAL_CONV_STR_BSTR, + MONO_MARSHAL_CONV_STR_LPSTR, + MONO_MARSHAL_CONV_LPSTR_STR, + MONO_MARSHAL_CONV_LPTSTR_STR, + MONO_MARSHAL_CONV_STR_LPWSTR, + MONO_MARSHAL_CONV_LPWSTR_STR, + MONO_MARSHAL_CONV_STR_LPTSTR, + MONO_MARSHAL_CONV_STR_ANSIBSTR, + MONO_MARSHAL_CONV_STR_TBSTR, + MONO_MARSHAL_CONV_STR_BYVALSTR, + MONO_MARSHAL_CONV_STR_BYVALWSTR, + MONO_MARSHAL_CONV_SB_LPSTR, + MONO_MARSHAL_CONV_SB_LPTSTR, + MONO_MARSHAL_CONV_SB_LPWSTR, + MONO_MARSHAL_CONV_LPSTR_SB, + MONO_MARSHAL_CONV_LPTSTR_SB, + MONO_MARSHAL_CONV_LPWSTR_SB, + MONO_MARSHAL_CONV_ARRAY_BYVALARRAY, + MONO_MARSHAL_CONV_ARRAY_BYVALCHARARRAY, + MONO_MARSHAL_CONV_ARRAY_SAVEARRAY, + MONO_MARSHAL_CONV_ARRAY_LPARRAY, + MONO_MARSHAL_FREE_LPARRAY, + MONO_MARSHAL_CONV_OBJECT_INTERFACE, + MONO_MARSHAL_CONV_OBJECT_IDISPATCH, + MONO_MARSHAL_CONV_OBJECT_IUNKNOWN, + MONO_MARSHAL_CONV_OBJECT_STRUCT, + MONO_MARSHAL_CONV_DEL_FTN, + MONO_MARSHAL_CONV_FTN_DEL, + MONO_MARSHAL_FREE_ARRAY, + MONO_MARSHAL_CONV_BSTR_STR, + MONO_MARSHAL_CONV_SAFEHANDLE, + MONO_MARSHAL_CONV_HANDLEREF, + MONO_MARSHAL_CONV_STR_UTF8STR, + MONO_MARSHAL_CONV_SB_UTF8STR, + MONO_MARSHAL_CONV_UTF8STR_STR, + MONO_MARSHAL_CONV_UTF8STR_SB, + MONO_MARSHAL_CONV_FIXED_BUFFER +} MonoMarshalConv; + +#define MONO_MARSHAL_CONV_INVALID ((MonoMarshalConv)-1) + +typedef struct { + MonoMarshalNative native; + union { + struct { + MonoMarshalNative elem_type; + int32_t num_elem; /* -1 if not set */ + int16_t param_num; /* -1 if not set */ + int16_t elem_mult; /* -1 if not set */ + } array_data; + struct { + char *custom_name; + char *cookie; + MonoImage *image; + } custom_data; + struct { + MonoMarshalVariant elem_type; + int32_t num_elem; + } safearray_data; + } data; +} MonoMarshalSpec; + +MONO_API void mono_metadata_init (void); + +MONO_API void mono_metadata_decode_row (const MonoTableInfo *t, + int idx, + uint32_t *res, + int res_size); + +MONO_API uint32_t mono_metadata_decode_row_col (const MonoTableInfo *t, + int idx, + unsigned int col); + +/* + * This macro is used to extract the size of the table encoded in + * the size_bitfield of MonoTableInfo. + */ +#define mono_metadata_table_size(bitfield,table) ((((bitfield) >> ((table)*2)) & 0x3) + 1) +#define mono_metadata_table_count(bitfield) ((bitfield) >> 24) + +MONO_API int mono_metadata_compute_size (MonoImage *meta, + int tableindex, + uint32_t *result_bitfield); + +/* + * + */ +MONO_API const char *mono_metadata_locate (MonoImage *meta, int table, int idx); +MONO_API const char *mono_metadata_locate_token (MonoImage *meta, uint32_t token); + +MONO_API const char *mono_metadata_string_heap (MonoImage *meta, uint32_t table_index); +MONO_API const char *mono_metadata_blob_heap (MonoImage *meta, uint32_t table_index); +MONO_API const char *mono_metadata_user_string (MonoImage *meta, uint32_t table_index); +MONO_API const char *mono_metadata_guid_heap (MonoImage *meta, uint32_t table_index); + +MONO_API uint32_t mono_metadata_typedef_from_field (MonoImage *meta, uint32_t table_index); +MONO_API uint32_t mono_metadata_typedef_from_method (MonoImage *meta, uint32_t table_index); +MONO_API uint32_t mono_metadata_nested_in_typedef (MonoImage *meta, uint32_t table_index); +MONO_API uint32_t mono_metadata_nesting_typedef (MonoImage *meta, uint32_t table_index, uint32_t start_index); + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoClass** mono_metadata_interfaces_from_typedef (MonoImage *meta, uint32_t table_index, unsigned int *count); + +MONO_API uint32_t mono_metadata_events_from_typedef (MonoImage *meta, uint32_t table_index, unsigned int *end_idx); +MONO_API uint32_t mono_metadata_methods_from_event (MonoImage *meta, uint32_t table_index, unsigned int *end); +MONO_API uint32_t mono_metadata_properties_from_typedef (MonoImage *meta, uint32_t table_index, unsigned int *end); +MONO_API uint32_t mono_metadata_methods_from_property (MonoImage *meta, uint32_t table_index, unsigned int *end); +MONO_API uint32_t mono_metadata_packing_from_typedef (MonoImage *meta, uint32_t table_index, uint32_t *packing, uint32_t *size); +MONO_API const char* mono_metadata_get_marshal_info (MonoImage *meta, uint32_t idx, mono_bool is_field); +MONO_API uint32_t mono_metadata_custom_attrs_from_index (MonoImage *meta, uint32_t cattr_index); + +MONO_API MonoMarshalSpec *mono_metadata_parse_marshal_spec (MonoImage *image, const char *ptr); + +MONO_API void mono_metadata_free_marshal_spec (MonoMarshalSpec *spec); + +MONO_API uint32_t mono_metadata_implmap_from_method (MonoImage *meta, uint32_t method_idx); + +MONO_API void mono_metadata_field_info (MonoImage *meta, + uint32_t table_index, + uint32_t *offset, + uint32_t *rva, + MonoMarshalSpec **marshal_spec); + +MONO_API uint32_t mono_metadata_get_constant_index (MonoImage *meta, uint32_t token, uint32_t hint); + +/* + * Functions to extract information from the Blobs + */ +MONO_API uint32_t mono_metadata_decode_value (const char *ptr, + const char **rptr); +MONO_API int32_t mono_metadata_decode_signed_value (const char *ptr, const char **rptr); + +MONO_API uint32_t mono_metadata_decode_blob_size (const char *ptr, + const char **rptr); + +MONO_API void mono_metadata_encode_value (uint32_t value, char *bug, char **endbuf); + +#define MONO_OFFSET_IN_CLAUSE(clause,offset) \ + ((clause)->try_offset <= (offset) && (offset) < ((clause)->try_offset + (clause)->try_len)) +#define MONO_OFFSET_IN_HANDLER(clause,offset) \ + ((clause)->handler_offset <= (offset) && (offset) < ((clause)->handler_offset + (clause)->handler_len)) +#define MONO_OFFSET_IN_FILTER(clause,offset) \ + ((clause)->flags == MONO_EXCEPTION_CLAUSE_FILTER && (clause)->data.filter_offset <= (offset) && (offset) < ((clause)->handler_offset)) + +typedef struct { + uint32_t flags; + uint32_t try_offset; + uint32_t try_len; + uint32_t handler_offset; + uint32_t handler_len; + union { + uint32_t filter_offset; + MonoClass *catch_class; + } data; +} MonoExceptionClause; + +typedef struct _MonoType MonoType; +typedef struct _MonoGenericInst MonoGenericInst; +typedef struct _MonoGenericClass MonoGenericClass; +typedef struct _MonoGenericContext MonoGenericContext; +typedef struct _MonoGenericContainer MonoGenericContainer; +typedef struct _MonoGenericParam MonoGenericParam; +typedef struct _MonoArrayType MonoArrayType; +typedef struct _MonoMethodSignature MonoMethodSignature; + +/* FIXME: Keeping this name alive for now, since it is part of the exposed API, even though no entrypoint uses it. */ +typedef struct invalid_name MonoGenericMethod; + +typedef struct { + unsigned int required : 1; + unsigned int token : 31; +} MonoCustomMod; + +typedef struct _MonoCustomModContainer { + uint8_t count; /* max 64 modifiers follow at the end */ + MonoImage *image; /* Image containing types in modifiers array */ + MonoCustomMod modifiers [1]; /* Actual length is count */ +} MonoCustomModContainer; + +struct _MonoArrayType { + MonoClass *eklass; + // Number of dimensions of the array + uint8_t rank; + + // Arrays recording known upper and lower index bounds for each dimension + uint8_t numsizes; + uint8_t numlobounds; + int *sizes; + int *lobounds; +}; + +typedef struct _MonoMethodHeader MonoMethodHeader; + +typedef enum { + MONO_PARSE_TYPE, + MONO_PARSE_MOD_TYPE, + MONO_PARSE_LOCAL, + MONO_PARSE_PARAM, + MONO_PARSE_RET, + MONO_PARSE_FIELD +} MonoParseTypeMode; + +MONO_API MONO_RT_EXTERNAL_ONLY mono_bool +mono_type_is_byref (MonoType *type); + +MONO_API MONO_RT_EXTERNAL_ONLY int +mono_type_get_type (MonoType *type); + +/* For MONO_TYPE_FNPTR */ +MONO_API MONO_RT_EXTERNAL_ONLY MonoMethodSignature* +mono_type_get_signature (MonoType *type); + +/* For MONO_TYPE_CLASS, VALUETYPE */ +MONO_API MONO_RT_EXTERNAL_ONLY MonoClass* +mono_type_get_class (MonoType *type); + +MONO_API MonoArrayType* +mono_type_get_array_type (MonoType *type); + +/* For MONO_TYPE_PTR */ +MONO_API MonoType* +mono_type_get_ptr_type (MonoType *type); + +MONO_API MonoClass* +mono_type_get_modifiers (MonoType *type, mono_bool *is_required, void **iter); + +MONO_API mono_bool mono_type_is_struct (MonoType *type); +MONO_API mono_bool mono_type_is_void (MonoType *type); +MONO_API mono_bool mono_type_is_pointer (MonoType *type); +MONO_API mono_bool mono_type_is_reference (MonoType *type); +MONO_API mono_bool mono_type_is_generic_parameter (MonoType *type); + +MONO_API MonoType* +mono_signature_get_return_type (MonoMethodSignature *sig); + +MONO_API MonoType* +mono_signature_get_params (MonoMethodSignature *sig, void **iter); + +MONO_API uint32_t +mono_signature_get_param_count (MonoMethodSignature *sig); + +MONO_API uint32_t +mono_signature_get_call_conv (MonoMethodSignature *sig); + +MONO_API int +mono_signature_vararg_start (MonoMethodSignature *sig); + +MONO_API mono_bool +mono_signature_is_instance (MonoMethodSignature *sig); + +MONO_API mono_bool +mono_signature_explicit_this (MonoMethodSignature *sig); + +MONO_API mono_bool +mono_signature_param_is_out (MonoMethodSignature *sig, int param_num); + +MONO_API uint32_t mono_metadata_parse_typedef_or_ref (MonoImage *m, + const char *ptr, + const char **rptr); +MONO_API int mono_metadata_parse_custom_mod (MonoImage *m, + MonoCustomMod *dest, + const char *ptr, + const char **rptr); +MONO_API MONO_RT_EXTERNAL_ONLY +MonoArrayType *mono_metadata_parse_array (MonoImage *m, + const char *ptr, + const char **rptr); +MONO_API void mono_metadata_free_array (MonoArrayType *array); +MONO_API MONO_RT_EXTERNAL_ONLY MonoType *mono_metadata_parse_type (MonoImage *m, + MonoParseTypeMode mode, + short opt_attrs, + const char *ptr, + const char **rptr); +MONO_API MONO_RT_EXTERNAL_ONLY +MonoType *mono_metadata_parse_param (MonoImage *m, + const char *ptr, + const char **rptr); +MONO_API MONO_RT_EXTERNAL_ONLY +MonoType *mono_metadata_parse_field_type (MonoImage *m, + short field_flags, + const char *ptr, + const char **rptr); +MONO_API MONO_RT_EXTERNAL_ONLY +MonoType *mono_type_create_from_typespec (MonoImage *image, + uint32_t type_spec); +MONO_API void mono_metadata_free_type (MonoType *type); +MONO_API int mono_type_size (MonoType *type, + int *alignment); +MONO_API int mono_type_stack_size (MonoType *type, + int *alignment); + +MONO_API mono_bool mono_type_generic_inst_is_valuetype (MonoType *type); +MONO_API mono_bool mono_metadata_generic_class_is_valuetype (MonoGenericClass *gclass); + +MONO_API unsigned int mono_metadata_type_hash (MonoType *t1); +MONO_API mono_bool mono_metadata_type_equal (MonoType *t1, MonoType *t2); + +MONO_API MonoMethodSignature *mono_metadata_signature_alloc (MonoImage *image, uint32_t nparams); + +MONO_API MonoMethodSignature *mono_metadata_signature_dup (MonoMethodSignature *sig); + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoMethodSignature *mono_metadata_parse_signature (MonoImage *image, + uint32_t token); + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoMethodSignature *mono_metadata_parse_method_signature (MonoImage *m, + int def, + const char *ptr, + const char **rptr); +MONO_API void mono_metadata_free_method_signature (MonoMethodSignature *method); + +MONO_API mono_bool mono_metadata_signature_equal (MonoMethodSignature *sig1, + MonoMethodSignature *sig2); + +MONO_API unsigned int mono_signature_hash (MonoMethodSignature *sig); + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoMethodHeader *mono_metadata_parse_mh (MonoImage *m, const char *ptr); +MONO_API void mono_metadata_free_mh (MonoMethodHeader *mh); + +/* MonoMethodHeader acccessors */ +MONO_API const unsigned char* +mono_method_header_get_code (MonoMethodHeader *header, uint32_t* code_size, uint32_t* max_stack); + +MONO_API MonoType** +mono_method_header_get_locals (MonoMethodHeader *header, uint32_t* num_locals, mono_bool *init_locals); + +MONO_API int +mono_method_header_get_num_clauses (MonoMethodHeader *header); + +MONO_API int +mono_method_header_get_clauses (MonoMethodHeader *header, MonoMethod *method, void **iter, MonoExceptionClause *clause); + +MONO_API uint32_t +mono_type_to_unmanaged (MonoType *type, MonoMarshalSpec *mspec, + mono_bool as_field, mono_bool unicode, MonoMarshalConv *conv); + +/* + * Makes a token based on a table and an index + */ +#define mono_metadata_make_token(table,idx) (((table) << 24)| (idx)) + +/* + * Returns the table index that this token encodes. + */ +#define mono_metadata_token_table(token) ((token) >> 24) + + /* + * Returns the index that a token refers to + */ +#define mono_metadata_token_index(token) ((token) & 0xffffff) + + +#define mono_metadata_token_code(token) ((token) & 0xff000000) + +MONO_API uint32_t mono_metadata_token_from_dor (uint32_t dor_index); + +MONO_API char *mono_guid_to_string (const uint8_t *guid); + +MONO_API char *mono_guid_to_string_minimal (const uint8_t *guid); + +MONO_API uint32_t mono_metadata_declsec_from_index (MonoImage *meta, uint32_t idx); + +MONO_API uint32_t mono_metadata_translate_token_index (MonoImage *image, int table, uint32_t idx); + +MONO_API void mono_metadata_decode_table_row (MonoImage *image, int table, + int idx, + uint32_t *res, + int res_size); + +MONO_API uint32_t mono_metadata_decode_table_row_col (MonoImage *image, int table, + int idx, + unsigned int col); + +MONO_END_DECLS + +#endif /* __MONO_METADATA_H__ */ diff --git a/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/mono-config.h b/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/mono-config.h new file mode 100644 index 0000000..91cdccd --- /dev/null +++ b/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/mono-config.h @@ -0,0 +1,38 @@ +/** + * \file + * + * Author: Paolo Molaro (lupus@ximian.com) + * + * (C) 2002 Ximian, Inc. + */ +#ifndef __MONO_METADATA_CONFIG_H__ +#define __MONO_METADATA_CONFIG_H__ + +#include +#include + +MONO_BEGIN_DECLS + +MONO_API const char *mono_config_get_os (void); +MONO_API const char *mono_config_get_cpu (void); +MONO_API const char *mono_config_get_wordsize (void); + +MONO_API const char* mono_get_config_dir (void); +MONO_API void mono_set_config_dir (const char *dir); + +MONO_API const char* mono_get_machine_config (void); + +MONO_API void mono_config_cleanup (void); +MONO_API void mono_config_parse (const char *filename); +MONO_API MONO_RT_EXTERNAL_ONLY void mono_config_for_assembly (MonoImage *assembly); +MONO_API void mono_config_parse_memory (const char *buffer); + +MONO_API const char* mono_config_string_for_assembly_file (const char *filename); + +MONO_API void mono_config_set_server_mode (mono_bool server_mode); +MONO_API mono_bool mono_config_is_server_mode (void); + +MONO_END_DECLS + +#endif /* __MONO_METADATA_CONFIG_H__ */ + diff --git a/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/mono-debug.h b/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/mono-debug.h new file mode 100644 index 0000000..b9948b6 --- /dev/null +++ b/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/mono-debug.h @@ -0,0 +1,232 @@ +/** + * \file + * This header is only installed for use by the debugger: + * the structures and the API declared here are not supported. + */ + +#ifndef __MONO_DEBUG_H__ +#define __MONO_DEBUG_H__ + +#include +#include +#include + +MONO_BEGIN_DECLS + +typedef struct _MonoSymbolTable MonoSymbolTable; +typedef struct _MonoDebugDataTable MonoDebugDataTable; + +typedef struct _MonoSymbolFile MonoSymbolFile; +typedef struct _MonoPPDBFile MonoPPDBFile; + +typedef struct _MonoDebugHandle MonoDebugHandle; + +typedef struct _MonoDebugLineNumberEntry MonoDebugLineNumberEntry; + +typedef struct _MonoDebugVarInfo MonoDebugVarInfo; +typedef struct _MonoDebugMethodJitInfo MonoDebugMethodJitInfo; +typedef struct _MonoDebugMethodAddress MonoDebugMethodAddress; +typedef struct _MonoDebugMethodAddressList MonoDebugMethodAddressList; +typedef struct _MonoDebugClassEntry MonoDebugClassEntry; + +typedef struct _MonoDebugMethodInfo MonoDebugMethodInfo; +typedef struct _MonoDebugLocalsInfo MonoDebugLocalsInfo; +typedef struct _MonoDebugMethodAsyncInfo MonoDebugMethodAsyncInfo; +typedef struct _MonoDebugSourceLocation MonoDebugSourceLocation; + +typedef struct _MonoDebugList MonoDebugList; + +typedef enum { + MONO_DEBUG_FORMAT_NONE, + MONO_DEBUG_FORMAT_MONO, + /* Deprecated, the mdb debugger is not longer supported. */ + MONO_DEBUG_FORMAT_DEBUGGER +} MonoDebugFormat; + +/* + * NOTE: + * We intentionally do not use GList here since the debugger needs to know about + * the layout of the fields. +*/ +struct _MonoDebugList { + MonoDebugList *next; + const void* data; +}; + +struct _MonoSymbolTable { + uint64_t magic; + uint32_t version; + uint32_t total_size; + + /* + * Corlib and metadata info. + */ + MonoDebugHandle *corlib; + MonoDebugDataTable *global_data_table; + MonoDebugList *data_tables; + + /* + * The symbol files. + */ + MonoDebugList *symbol_files; +}; + +struct _MonoDebugHandle { + uint32_t index; + char *image_file; + MonoImage *image; + MonoDebugDataTable *type_table; + MonoSymbolFile *symfile; + MonoPPDBFile *ppdb; +}; + +struct _MonoDebugMethodJitInfo { + const mono_byte *code_start; + uint32_t code_size; + uint32_t prologue_end; + uint32_t epilogue_begin; + const mono_byte *wrapper_addr; + uint32_t num_line_numbers; + MonoDebugLineNumberEntry *line_numbers; + uint32_t has_var_info; + uint32_t num_params; + MonoDebugVarInfo *this_var; + MonoDebugVarInfo *params; + uint32_t num_locals; + MonoDebugVarInfo *locals; + MonoDebugVarInfo *gsharedvt_info_var; + MonoDebugVarInfo *gsharedvt_locals_var; +}; + +struct _MonoDebugMethodAddressList { + uint32_t size; + uint32_t count; + mono_byte data [MONO_ZERO_LEN_ARRAY]; +}; + +struct _MonoDebugSourceLocation { + char *source_file; + uint32_t row, column; + uint32_t il_offset; +}; + +MONO_API mono_bool mono_debug_enabled (void); + +/* + * These bits of the MonoDebugLocalInfo's "index" field are flags specifying + * where the variable is actually stored. + * + * See relocate_variable() in debug-symfile.c for more info. + */ +#define MONO_DEBUG_VAR_ADDRESS_MODE_FLAGS 0xf0000000 + +/* The variable is in register "index". */ +#define MONO_DEBUG_VAR_ADDRESS_MODE_REGISTER 0 + +/* The variable is at offset "offset" from register "index". */ +#define MONO_DEBUG_VAR_ADDRESS_MODE_REGOFFSET 0x10000000 + +/* The variable is in the two registers "offset" and "index". */ +#define MONO_DEBUG_VAR_ADDRESS_MODE_TWO_REGISTERS 0x20000000 + +/* The variable is dead. */ +#define MONO_DEBUG_VAR_ADDRESS_MODE_DEAD 0x30000000 + +/* Same as REGOFFSET, but do an indirection */ +#define MONO_DEBUG_VAR_ADDRESS_MODE_REGOFFSET_INDIR 0x40000000 + +/* gsharedvt local */ +#define MONO_DEBUG_VAR_ADDRESS_MODE_GSHAREDVT_LOCAL 0x50000000 + +/* variable is a vt address */ +#define MONO_DEBUG_VAR_ADDRESS_MODE_VTADDR 0x60000000 + +struct _MonoDebugVarInfo { + uint32_t index; + uint32_t offset; + uint32_t size; + uint32_t begin_scope; + uint32_t end_scope; + MonoType *type; +}; + +#define MONO_DEBUGGER_MAJOR_VERSION 81 +#define MONO_DEBUGGER_MINOR_VERSION 6 +#define MONO_DEBUGGER_MAGIC 0x7aff65af4253d427ULL + +MONO_API void mono_debug_init (MonoDebugFormat format); +MONO_API void mono_debug_open_image_from_memory (MonoImage *image, const mono_byte *raw_contents, int size); +MONO_API void mono_debug_cleanup (void); + +MONO_API void mono_debug_close_image (MonoImage *image); + +MONO_API void mono_debug_domain_unload (MonoDomain *domain); +MONO_API void mono_debug_domain_create (MonoDomain *domain); + +MONO_API MonoDebugMethodAddress * +mono_debug_add_method (MonoMethod *method, MonoDebugMethodJitInfo *jit, MonoDomain *domain); + +MONO_API void +mono_debug_remove_method (MonoMethod *method, MonoDomain *domain); + +MONO_API MonoDebugMethodInfo * +mono_debug_lookup_method (MonoMethod *method); + +MONO_API MonoDebugMethodAddressList * +mono_debug_lookup_method_addresses (MonoMethod *method); + +MONO_API MonoDebugMethodJitInfo* +mono_debug_find_method (MonoMethod *method, MonoDomain *domain); + +MONO_API MonoDebugHandle * +mono_debug_get_handle (MonoImage *image); + +MONO_API void +mono_debug_free_method_jit_info (MonoDebugMethodJitInfo *jit); + + +MONO_API void +mono_debug_add_delegate_trampoline (void* code, int size); + +MONO_API MonoDebugLocalsInfo* +mono_debug_lookup_locals (MonoMethod *method); + +MonoDebugMethodAsyncInfo* +mono_debug_lookup_method_async_debug_info (MonoMethod *method); + +// The intent here is really MONO_LLVM_INTERNAL but that is not necessarily available. +MONO_API +MonoDebugSourceLocation * +mono_debug_method_lookup_location (MonoDebugMethodInfo *minfo, int il_offset); + +/* + * Line number support. + */ + +MONO_API MonoDebugSourceLocation * +mono_debug_lookup_source_location (MonoMethod *method, uint32_t address, MonoDomain *domain); + +MONO_API int32_t +mono_debug_il_offset_from_address (MonoMethod *method, MonoDomain *domain, uint32_t native_offset); + +MONO_API void +mono_debug_free_source_location (MonoDebugSourceLocation *location); + +MONO_API char * +mono_debug_print_stack_frame (MonoMethod *method, uint32_t native_offset, MonoDomain *domain); + +/* + * Mono Debugger support functions + * + * These methods are used by the JIT while running inside the Mono Debugger. + */ + +MONO_API int mono_debugger_method_has_breakpoint (MonoMethod *method); +MONO_API int mono_debugger_insert_breakpoint (const char *method_name, mono_bool include_namespace); + +MONO_API void mono_set_is_debugger_attached (mono_bool attached); +MONO_API mono_bool mono_is_debugger_attached (void); + +MONO_END_DECLS + +#endif /* __MONO_DEBUG_H__ */ diff --git a/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/mono-gc.h b/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/mono-gc.h new file mode 100644 index 0000000..86111ac --- /dev/null +++ b/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/mono-gc.h @@ -0,0 +1,129 @@ +/** + * \file + * GC related public interface + * + */ +#ifndef __METADATA_MONO_GC_H__ +#define __METADATA_MONO_GC_H__ + +#include + +MONO_BEGIN_DECLS + +typedef int (*MonoGCReferences) (MonoObject *obj, MonoClass *klass, uintptr_t size, uintptr_t num, MonoObject **refs, uintptr_t *offsets, void *data); + +/** + * This enum is used by the profiler API when reporting root registration. + */ +typedef enum { + /** + * Roots external to Mono. Embedders may only use this value. + */ + MONO_ROOT_SOURCE_EXTERNAL = 0, + /** + * Thread call stack. + * + * The \c key parameter is a thread ID as a \c uintptr_t. + */ + MONO_ROOT_SOURCE_STACK = 1, + /** + * Roots in the finalizer queue. This is a pseudo-root. + */ + MONO_ROOT_SOURCE_FINALIZER_QUEUE = 2, + /** + * Managed \c static variables. + * + * The \c key parameter is a \c MonoVTable pointer. + */ + MONO_ROOT_SOURCE_STATIC = 3, + /** + * Managed \c static variables with \c ThreadStaticAttribute. + * + * The \c key parameter is a thread ID as a \c uintptr_t. + */ + MONO_ROOT_SOURCE_THREAD_STATIC = 4, + /** + * Managed \c static variables with \c ContextStaticAttribute. + * + * The \c key parameter is a \c MonoAppContext pointer. + */ + MONO_ROOT_SOURCE_CONTEXT_STATIC = 5, + /** + * \c GCHandle structures. + */ + MONO_ROOT_SOURCE_GC_HANDLE = 6, + /** + * Roots in the just-in-time compiler. + */ + MONO_ROOT_SOURCE_JIT = 7, + /** + * Roots in the threading subsystem. + * + * The \c key parameter, if not \c NULL, is a thread ID as a \c uintptr_t. + */ + MONO_ROOT_SOURCE_THREADING = 8, + /** + * Roots in application domains. + * + * The \c key parameter, if not \c NULL, is a \c MonoDomain pointer. + */ + MONO_ROOT_SOURCE_DOMAIN = 9, + /** + * Roots in reflection code. + * + * The \c key parameter, if not \c NULL, is a \c MonoVTable pointer. + */ + MONO_ROOT_SOURCE_REFLECTION = 10, + /** + * Roots from P/Invoke or other marshaling infrastructure. + */ + MONO_ROOT_SOURCE_MARSHAL = 11, + /** + * Roots in the thread pool data structures. + */ + MONO_ROOT_SOURCE_THREAD_POOL = 12, + /** + * Roots in the debugger agent. + */ + MONO_ROOT_SOURCE_DEBUGGER = 13, + /** + * Roots in the runtime handle stack. This is a pseudo-root. + * + * The \c key parameter is a thread ID as a \c uintptr_t. + */ + MONO_ROOT_SOURCE_HANDLE = 14, + /** + * Roots in the ephemeron arrays. This is a pseudo-root. + */ + MONO_ROOT_SOURCE_EPHEMERON = 15, + /** + * Roots in the toggleref arrays. This is a pseudo-root. + */ + MONO_ROOT_SOURCE_TOGGLEREF = 16, +} MonoGCRootSource; + +typedef enum { + MONO_GC_HANDLE_TYPE_MIN = 0, + MONO_GC_HANDLE_WEAK = MONO_GC_HANDLE_TYPE_MIN, + MONO_GC_HANDLE_WEAK_TRACK_RESURRECTION, + MONO_GC_HANDLE_NORMAL, + MONO_GC_HANDLE_PINNED, + MONO_GC_HANDLE_TYPE_MAX, +} MonoGCHandleType; + +MONO_API void mono_gc_collect (int generation); +MONO_API int mono_gc_max_generation (void); +MONO_API int mono_gc_get_generation (MonoObject *object); +MONO_API int mono_gc_collection_count (int generation); +MONO_API int64_t mono_gc_get_used_size (void); +MONO_API int64_t mono_gc_get_heap_size (void); +MONO_API MonoBoolean mono_gc_pending_finalizers (void); +MONO_API void mono_gc_finalize_notify (void); +MONO_API int mono_gc_invoke_finalizers (void); +/* heap walking is only valid in the pre-stop-world event callback */ +MONO_API int mono_gc_walk_heap (int flags, MonoGCReferences callback, void *data); + +MONO_END_DECLS + +#endif /* __METADATA_MONO_GC_H__ */ + diff --git a/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/object-forward.h b/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/object-forward.h new file mode 100644 index 0000000..010dc8b --- /dev/null +++ b/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/object-forward.h @@ -0,0 +1,22 @@ +/** + * \file + * + * Forward declarations of opaque types, and typedefs thereof. + * + */ + +#ifndef __MONO_OBJECT_FORWARD_H__ +#define __MONO_OBJECT_FORWARD_H__ + +#include + +typedef struct _MonoClass MonoClass; +typedef struct _MonoImage MonoImage; +typedef struct _MonoMethod MonoMethod; + +typedef struct _MonoObject MONO_RT_MANAGED_ATTR MonoObject; +typedef struct _MonoException MONO_RT_MANAGED_ATTR MonoException; +typedef struct _MonoReflectionAssembly MONO_RT_MANAGED_ATTR MonoReflectionAssembly; +typedef struct _MonoReflectionTypeBuilder MONO_RT_MANAGED_ATTR MonoReflectionTypeBuilder; + +#endif /* __MONO_OBJECT_FORWARD_H__ */ diff --git a/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/object.h b/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/object.h new file mode 100644 index 0000000..da19d3d --- /dev/null +++ b/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/object.h @@ -0,0 +1,403 @@ +/** + * \file + */ + +#ifndef _MONO_CLI_OBJECT_H_ +#define _MONO_CLI_OBJECT_H_ + +#include +#include +#include +#include + +MONO_BEGIN_DECLS + +typedef struct _MonoString MONO_RT_MANAGED_ATTR MonoString; +typedef struct _MonoArray MONO_RT_MANAGED_ATTR MonoArray; +typedef struct _MonoReflectionMethod MONO_RT_MANAGED_ATTR MonoReflectionMethod; +typedef struct _MonoReflectionModule MONO_RT_MANAGED_ATTR MonoReflectionModule; +typedef struct _MonoReflectionField MONO_RT_MANAGED_ATTR MonoReflectionField; +typedef struct _MonoReflectionProperty MONO_RT_MANAGED_ATTR MonoReflectionProperty; +typedef struct _MonoReflectionEvent MONO_RT_MANAGED_ATTR MonoReflectionEvent; +typedef struct _MonoReflectionType MONO_RT_MANAGED_ATTR MonoReflectionType; +typedef struct _MonoDelegate MONO_RT_MANAGED_ATTR MonoDelegate; +typedef struct _MonoThreadsSync MonoThreadsSync; +#ifdef ENABLE_NETCORE +typedef struct _MonoInternalThread MONO_RT_MANAGED_ATTR MonoThread; +#else +typedef struct _MonoThread MONO_RT_MANAGED_ATTR MonoThread; +#endif +typedef struct _MonoDynamicAssembly MonoDynamicAssembly; +typedef struct _MonoDynamicImage MonoDynamicImage; +typedef struct _MonoReflectionMethodBody MONO_RT_MANAGED_ATTR MonoReflectionMethodBody; +typedef struct _MonoAppContext MONO_RT_MANAGED_ATTR MonoAppContext; + +struct _MonoObject { + MonoVTable *vtable; + MonoThreadsSync *synchronisation; +}; + +typedef MonoObject* (*MonoInvokeFunc) (MonoMethod *method, void *obj, void **params, MonoObject **exc, MonoError *error); +typedef void* (*MonoCompileFunc) (MonoMethod *method); +typedef void (*MonoMainThreadFunc) (void* user_data); + +#define MONO_OBJECT_SETREF(obj,fieldname,value) do { \ + mono_gc_wbarrier_set_field ((MonoObject*)(obj), &((obj)->fieldname), (MonoObject*)value); \ + /*(obj)->fieldname = (value);*/ \ + } while (0) + +/* This should be used if 's' can reside on the heap */ +#define MONO_STRUCT_SETREF(s,field,value) do { \ + mono_gc_wbarrier_generic_store (&((s)->field), (MonoObject*)(value)); \ + } while (0) + +#define mono_array_addr(array,type,index) ((type*)mono_array_addr_with_size ((array), sizeof (type), (index))) +#define mono_array_get(array,type,index) ( *(type*)mono_array_addr ((array), type, (index)) ) +#define mono_array_set(array,type,index,value) \ + do { \ + type *__p = (type *) mono_array_addr ((array), type, (index)); \ + *__p = (value); \ + } while (0) +#define mono_array_setref(array,index,value) \ + do { \ + void **__p = (void **) mono_array_addr ((array), void*, (index)); \ + mono_gc_wbarrier_set_arrayref ((array), __p, (MonoObject*)(value)); \ + /* *__p = (value);*/ \ + } while (0) +#define mono_array_memcpy_refs(dest,destidx,src,srcidx,count) \ + do { \ + void **__p = (void **) mono_array_addr ((dest), void*, (destidx)); \ + void **__s = mono_array_addr ((src), void*, (srcidx)); \ + mono_gc_wbarrier_arrayref_copy (__p, __s, (count)); \ + } while (0) + +MONO_API MONO_RT_EXTERNAL_ONLY mono_unichar2 *mono_string_chars (MonoString *s); +MONO_API MONO_RT_EXTERNAL_ONLY int mono_string_length (MonoString *s); + +MONO_API MONO_RT_EXTERNAL_ONLY MonoObject * +mono_object_new (MonoDomain *domain, MonoClass *klass); + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoObject * +mono_object_new_specific (MonoVTable *vtable); + +/* can be used for classes without finalizer in non-profiling mode */ +MONO_API MONO_RT_EXTERNAL_ONLY +MonoObject * +mono_object_new_fast (MonoVTable *vtable); + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoObject * +mono_object_new_alloc_specific (MonoVTable *vtable); + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoObject * +mono_object_new_from_token (MonoDomain *domain, MonoImage *image, uint32_t token); + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoArray* +mono_array_new (MonoDomain *domain, MonoClass *eclass, uintptr_t n); + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoArray* +mono_array_new_full (MonoDomain *domain, MonoClass *array_class, + uintptr_t *lengths, intptr_t *lower_bounds); + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoArray * +mono_array_new_specific (MonoVTable *vtable, uintptr_t n); + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoArray* +mono_array_clone (MonoArray *array); + +MONO_API MONO_RT_EXTERNAL_ONLY char* +mono_array_addr_with_size (MonoArray *array, int size, uintptr_t idx); + +MONO_API MONO_RT_EXTERNAL_ONLY uintptr_t +mono_array_length (MonoArray *array); + +MONO_API MONO_RT_EXTERNAL_ONLY MonoString* +mono_string_empty (MonoDomain *domain); + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoString* +mono_string_empty_wrapper (void); + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoString* +mono_string_new_utf16 (MonoDomain *domain, const mono_unichar2 *text, int32_t len); + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoString* +mono_string_new_size (MonoDomain *domain, int32_t len); + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoString* +mono_ldstr (MonoDomain *domain, MonoImage *image, uint32_t str_index); + +MONO_API MONO_RT_EXTERNAL_ONLY MonoString* +mono_string_is_interned (MonoString *str); + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoString* +mono_string_intern (MonoString *str); + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoString* +mono_string_new (MonoDomain *domain, const char *text); + +MONO_API MONO_RT_EXTERNAL_ONLY MonoString* +mono_string_new_wrapper (const char *text); + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoString* +mono_string_new_len (MonoDomain *domain, const char *text, unsigned int length); + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoString* +mono_string_new_utf32 (MonoDomain *domain, const mono_unichar4 *text, int32_t len); + +MONO_API MONO_RT_EXTERNAL_ONLY +char * +mono_string_to_utf8 (MonoString *string_obj); + +MONO_API MONO_RT_EXTERNAL_ONLY char * +mono_string_to_utf8_checked (MonoString *string_obj, MonoError *error); + +MONO_API MONO_RT_EXTERNAL_ONLY mono_unichar2 * +mono_string_to_utf16 (MonoString *string_obj); + +MONO_API MONO_RT_EXTERNAL_ONLY mono_unichar4 * +mono_string_to_utf32 (MonoString *string_obj); + +MONO_API MONO_RT_EXTERNAL_ONLY MonoString * +mono_string_from_utf16 (/*const*/ mono_unichar2 *data); + +MONO_API MONO_RT_EXTERNAL_ONLY MonoString * +mono_string_from_utf32 (/*const*/ mono_unichar4 *data); + +MONO_API MONO_RT_EXTERNAL_ONLY mono_bool +mono_string_equal (MonoString *s1, MonoString *s2); + +MONO_API MONO_RT_EXTERNAL_ONLY unsigned int +mono_string_hash (MonoString *s); + +MONO_API MONO_RT_EXTERNAL_ONLY int +mono_object_hash (MonoObject* obj); + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoString * +mono_object_to_string (MonoObject *obj, MonoObject **exc); + +MONO_API MONO_RT_EXTERNAL_ONLY MonoObject * +mono_value_box (MonoDomain *domain, MonoClass *klass, void* val); + +MONO_API MONO_RT_EXTERNAL_ONLY void +mono_value_copy (void* dest, /*const*/ void* src, MonoClass *klass); + +MONO_API MONO_RT_EXTERNAL_ONLY void +mono_value_copy_array (MonoArray *dest, int dest_idx, void* src, int count); + +MONO_API MONO_RT_EXTERNAL_ONLY MonoVTable* +mono_object_get_vtable (MonoObject *obj); + +MONO_API MONO_RT_EXTERNAL_ONLY MonoDomain* +mono_object_get_domain (MonoObject *obj); + +MONO_API MONO_RT_EXTERNAL_ONLY MonoClass* +mono_object_get_class (MonoObject *obj); + +MONO_API MONO_RT_EXTERNAL_ONLY void* +mono_object_unbox (MonoObject *obj); + +MONO_API MONO_RT_EXTERNAL_ONLY MonoObject * +mono_object_clone (MonoObject *obj); + +MONO_API MONO_RT_EXTERNAL_ONLY MonoObject * +mono_object_isinst (MonoObject *obj, MonoClass *klass); + +MONO_API MONO_RT_EXTERNAL_ONLY MonoObject * +mono_object_isinst_mbyref (MonoObject *obj, MonoClass *klass); + +MONO_API MONO_RT_EXTERNAL_ONLY MonoObject * +mono_object_castclass_mbyref (MonoObject *obj, MonoClass *klass); + +MONO_API MONO_RT_EXTERNAL_ONLY mono_bool +mono_monitor_try_enter (MonoObject *obj, uint32_t ms); + +MONO_API MONO_RT_EXTERNAL_ONLY mono_bool +mono_monitor_enter (MonoObject *obj); + +MONO_API MONO_RT_EXTERNAL_ONLY void +mono_monitor_enter_v4 (MonoObject *obj, char *lock_taken); + +MONO_API MONO_RT_EXTERNAL_ONLY unsigned int +mono_object_get_size (MonoObject *o); + +MONO_API MONO_RT_EXTERNAL_ONLY void +mono_monitor_exit (MonoObject *obj); + +MONO_API MONO_RT_EXTERNAL_ONLY void +mono_raise_exception (MonoException *ex); + +MONO_API MONO_RT_EXTERNAL_ONLY mono_bool +mono_runtime_set_pending_exception (MonoException *exc, mono_bool overwrite); + +MONO_API MONO_RT_EXTERNAL_ONLY void +mono_reraise_exception (MonoException *ex); + +MONO_API MONO_RT_EXTERNAL_ONLY void +mono_runtime_object_init (MonoObject *this_obj); + +MONO_API MONO_RT_EXTERNAL_ONLY void +mono_runtime_class_init (MonoVTable *vtable); + +MONO_API MONO_RT_EXTERNAL_ONLY MonoDomain* +mono_vtable_domain (MonoVTable *vtable); + +MONO_API MONO_RT_EXTERNAL_ONLY MonoClass* +mono_vtable_class (MonoVTable *vtable); + +MONO_API MONO_RT_EXTERNAL_ONLY MonoMethod* +mono_object_get_virtual_method (MonoObject *obj, MonoMethod *method); + +MONO_API MONO_RT_EXTERNAL_ONLY MonoObject* +mono_runtime_invoke (MonoMethod *method, void *obj, void **params, + MonoObject **exc); + +MONO_API MONO_RT_EXTERNAL_ONLY MonoMethod* +mono_get_delegate_invoke (MonoClass *klass); + +MONO_API MONO_RT_EXTERNAL_ONLY MonoMethod* +mono_get_delegate_begin_invoke (MonoClass *klass); + +MONO_API MONO_RT_EXTERNAL_ONLY MonoMethod* +mono_get_delegate_end_invoke (MonoClass *klass); + +MONO_API MONO_RT_EXTERNAL_ONLY MonoObject* +mono_runtime_delegate_invoke (MonoObject *delegate, void **params, + MonoObject **exc); + +MONO_API MONO_RT_EXTERNAL_ONLY MonoObject* +mono_runtime_invoke_array (MonoMethod *method, void *obj, MonoArray *params, + MonoObject **exc); + +MONO_API MONO_RT_EXTERNAL_ONLY void* +mono_method_get_unmanaged_thunk (MonoMethod *method); + +MONO_API MONO_RT_EXTERNAL_ONLY MonoArray* +mono_runtime_get_main_args (void); + +MONO_API MONO_RT_EXTERNAL_ONLY void +mono_runtime_exec_managed_code (MonoDomain *domain, + MonoMainThreadFunc main_func, + void* main_args); + +MONO_API MONO_RT_EXTERNAL_ONLY int +mono_runtime_run_main (MonoMethod *method, int argc, char* argv[], + MonoObject **exc); + +MONO_API MONO_RT_EXTERNAL_ONLY int +mono_runtime_exec_main (MonoMethod *method, MonoArray *args, + MonoObject **exc); + +MONO_API MONO_RT_EXTERNAL_ONLY int +mono_runtime_set_main_args (int argc, char* argv[]); + +/* The following functions won't be available with mono was configured with remoting disabled. */ +/*#ifndef DISABLE_REMOTING */ +MONO_API MONO_RT_EXTERNAL_ONLY void* +mono_load_remote_field (MonoObject *this_obj, MonoClass *klass, MonoClassField *field, void **res); + +MONO_API MONO_RT_EXTERNAL_ONLY MonoObject * +mono_load_remote_field_new (MonoObject *this_obj, MonoClass *klass, MonoClassField *field); + +MONO_API MONO_RT_EXTERNAL_ONLY void +mono_store_remote_field (MonoObject *this_obj, MonoClass *klass, MonoClassField *field, void* val); + +MONO_API MONO_RT_EXTERNAL_ONLY void +mono_store_remote_field_new (MonoObject *this_obj, MonoClass *klass, MonoClassField *field, MonoObject *arg); + +/* #endif */ + +MONO_API MONO_RT_EXTERNAL_ONLY void +mono_unhandled_exception (MonoObject *exc); + +MONO_API MONO_RT_EXTERNAL_ONLY void +mono_print_unhandled_exception (MonoObject *exc); + +MONO_API MONO_RT_EXTERNAL_ONLY +void* +mono_compile_method (MonoMethod *method); + +/* accessors for fields and properties */ +MONO_API MONO_RT_EXTERNAL_ONLY void +mono_field_set_value (MonoObject *obj, MonoClassField *field, void *value); + +MONO_API MONO_RT_EXTERNAL_ONLY void +mono_field_static_set_value (MonoVTable *vt, MonoClassField *field, void *value); + +MONO_API MONO_RT_EXTERNAL_ONLY void +mono_field_get_value (MonoObject *obj, MonoClassField *field, void *value); + +MONO_API MONO_RT_EXTERNAL_ONLY void +mono_field_static_get_value (MonoVTable *vt, MonoClassField *field, void *value); + +MONO_API MONO_RT_EXTERNAL_ONLY MonoObject * +mono_field_get_value_object (MonoDomain *domain, MonoClassField *field, MonoObject *obj); + +MONO_API MONO_RT_EXTERNAL_ONLY void +mono_property_set_value (MonoProperty *prop, void *obj, void **params, MonoObject **exc); + +MONO_API MONO_RT_EXTERNAL_ONLY MonoObject* +mono_property_get_value (MonoProperty *prop, void *obj, void **params, MonoObject **exc); + +/* GC handles support + * + * A handle can be created to refer to a managed object and either prevent it + * from being garbage collected or moved or to be able to know if it has been + * collected or not (weak references). + * mono_gchandle_new () is used to prevent an object from being garbage collected + * until mono_gchandle_free() is called. Use a TRUE value for the pinned argument to + * prevent the object from being moved (this should be avoided as much as possible + * and this should be used only for shorts periods of time or performance will suffer). + * To create a weakref use mono_gchandle_new_weakref (): track_resurrection should + * usually be false (see the GC docs for more details). + * mono_gchandle_get_target () can be used to get the object referenced by both kinds + * of handle: for a weakref handle, if an object has been collected, it will return NULL. + */ +MONO_API MONO_RT_EXTERNAL_ONLY uint32_t mono_gchandle_new (MonoObject *obj, mono_bool pinned); +MONO_API MONO_RT_EXTERNAL_ONLY uint32_t mono_gchandle_new_weakref (MonoObject *obj, mono_bool track_resurrection); +MONO_API MONO_RT_EXTERNAL_ONLY MonoObject* mono_gchandle_get_target (uint32_t gchandle); +MONO_API MONO_RT_EXTERNAL_ONLY void mono_gchandle_free (uint32_t gchandle); + +/* Reference queue support + * + * A reference queue is used to get notifications of when objects are collected. + * Call mono_gc_reference_queue_new to create a new queue and pass the callback that + * will be invoked when registered objects are collected. + * Call mono_gc_reference_queue_add to register a pair of objects and data within a queue. + * The callback will be triggered once an object is both unreachable and finalized. + */ + +typedef void (*mono_reference_queue_callback) (void *user_data); +typedef struct _MonoReferenceQueue MonoReferenceQueue; + +MONO_API MONO_RT_EXTERNAL_ONLY MonoReferenceQueue* mono_gc_reference_queue_new (mono_reference_queue_callback callback); +MONO_API MONO_RT_EXTERNAL_ONLY void mono_gc_reference_queue_free (MonoReferenceQueue *queue); +MONO_API MONO_RT_EXTERNAL_ONLY mono_bool mono_gc_reference_queue_add (MonoReferenceQueue *queue, MonoObject *obj, void *user_data); + +/* GC write barriers support */ +MONO_API MONO_RT_EXTERNAL_ONLY void mono_gc_wbarrier_set_field (MonoObject *obj, void* field_ptr, MonoObject* value); +MONO_API MONO_RT_EXTERNAL_ONLY void mono_gc_wbarrier_set_arrayref (MonoArray *arr, void* slot_ptr, MonoObject* value); +MONO_API MONO_RT_EXTERNAL_ONLY void mono_gc_wbarrier_arrayref_copy (void* dest_ptr, /*const*/ void* src_ptr, int count); +MONO_API MONO_RT_EXTERNAL_ONLY void mono_gc_wbarrier_generic_store (void* ptr, MonoObject* value); +MONO_API MONO_RT_EXTERNAL_ONLY void mono_gc_wbarrier_generic_store_atomic (void *ptr, MonoObject *value); +MONO_API MONO_RT_EXTERNAL_ONLY void mono_gc_wbarrier_generic_nostore (void* ptr); +MONO_API MONO_RT_EXTERNAL_ONLY void mono_gc_wbarrier_value_copy (void* dest, /*const*/ void* src, int count, MonoClass *klass); +MONO_API MONO_RT_EXTERNAL_ONLY void mono_gc_wbarrier_object_copy (MonoObject* obj, MonoObject *src); + +MONO_END_DECLS + +#endif diff --git a/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/opcodes.h b/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/opcodes.h new file mode 100644 index 0000000..107755c --- /dev/null +++ b/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/opcodes.h @@ -0,0 +1,81 @@ +/** + * \file + */ + +#ifndef __MONO_METADATA_OPCODES_H__ +#define __MONO_METADATA_OPCODES_H__ + +/* + * opcodes.h: CIL instruction information + * + * Author: + * Paolo Molaro (lupus@ximian.com) + * + * (C) 2002 Ximian, Inc. + */ + +#include + +MONO_BEGIN_DECLS + +#define MONO_CUSTOM_PREFIX 0xf0 + +#define OPDEF(a,b,c,d,e,f,g,h,i,j) \ + MONO_ ## a, + +typedef enum MonoOpcodeEnum { + MonoOpcodeEnum_Invalid = -1, +#include "mono/cil/opcode.def" + MONO_CEE_LAST +} MonoOpcodeEnum; + +#undef OPDEF + +enum { + MONO_FLOW_NEXT, + MONO_FLOW_BRANCH, + MONO_FLOW_COND_BRANCH, + MONO_FLOW_ERROR, + MONO_FLOW_CALL, + MONO_FLOW_RETURN, + MONO_FLOW_META +}; + +enum { + MonoInlineNone = 0, + MonoInlineType = 1, + MonoInlineField = 2, + MonoInlineMethod = 3, + MonoInlineTok = 4, + MonoInlineString = 5, + MonoInlineSig = 6, + MonoInlineVar = 7, + MonoShortInlineVar = 8, + MonoInlineBrTarget = 9, + MonoShortInlineBrTarget = 10, + MonoInlineSwitch = 11, + MonoInlineR = 12, + MonoShortInlineR = 13, + MonoInlineI = 14, + MonoShortInlineI = 15, + MonoInlineI8 = 16, +}; + +typedef struct { + unsigned char argument; + unsigned char flow_type; + unsigned short opval; +} MonoOpcode; + +MONO_API_DATA const MonoOpcode mono_opcodes []; + +MONO_API const char* +mono_opcode_name (int opcode); + +MONO_API MonoOpcodeEnum +mono_opcode_value (const mono_byte **ip, const mono_byte *end); + +MONO_END_DECLS + +#endif /* __MONO_METADATA_OPCODES_H__ */ + diff --git a/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/profiler-events.h b/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/profiler-events.h new file mode 100644 index 0000000..9413480 --- /dev/null +++ b/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/profiler-events.h @@ -0,0 +1,109 @@ +/* + * Licensed to the .NET Foundation under one or more agreements. + * The .NET Foundation licenses this file to you under the MIT license. + * See the LICENSE file in the project root for more information. + */ + +/* + * To #include this file, #define the following macros first: + * + * MONO_PROFILER_EVENT_0(name, type) + * MONO_PROFILER_EVENT_1(name, type, arg1_type, arg1_name) + * MONO_PROFILER_EVENT_2(name, type, arg1_type, arg1_name, arg2_type, arg2_name) + * MONO_PROFILER_EVENT_3(name, type, arg1_type, arg1_name, arg2_type, arg2_name, arg3_type, arg3_name) + * MONO_PROFILER_EVENT_4(name, type, arg1_type, arg1_name, arg2_type, arg2_name, arg3_type, arg3_name, arg4_type, arg4_name) + * MONO_PROFILER_EVENT_5(name, type, arg1_type, arg1_name, arg2_type, arg2_name, arg3_type, arg3_name, arg4_type, arg4_name, arg5_type, arg5_name) + * + * To add new callbacks to the API, simply add a line in this file and use + * MONO_PROFILER_RAISE to raise the event wherever. + * + * If you need more arguments then the current macros provide, add another + * macro and update all areas where the macros are used. Remember that this is + * a public header and not all users will be defining the newly added macro. So + * to prevent errors in existing code, you must add something like this at the + * beginning of this file: + * + * #ifndef MONO_PROFILER_EVENT_6 + * #define MONO_PROFILER_EVENT_6(...) # Do nothing. + * #endif + */ + +#ifndef MONO_PROFILER_EVENT_5 +#define MONO_PROFILER_EVENT_5(...) +#endif + +MONO_PROFILER_EVENT_0(runtime_initialized, RuntimeInitialized) +MONO_PROFILER_EVENT_0(runtime_shutdown_begin, RuntimeShutdownBegin) +MONO_PROFILER_EVENT_0(runtime_shutdown_end, RuntimeShutdownEnd) + +MONO_PROFILER_EVENT_1(context_loaded, ContextLoaded, MonoAppContext *, context) +MONO_PROFILER_EVENT_1(context_unloaded, ContextUnloaded, MonoAppContext *, context) + +MONO_PROFILER_EVENT_1(domain_loading, DomainLoading, MonoDomain *, domain) +MONO_PROFILER_EVENT_1(domain_loaded, DomainLoaded, MonoDomain *, domain) +MONO_PROFILER_EVENT_1(domain_unloading, DomainUnloading, MonoDomain *, domain) +MONO_PROFILER_EVENT_1(domain_unloaded, DomainUnloaded, MonoDomain *, domain) +MONO_PROFILER_EVENT_2(domain_name, DomainName, MonoDomain *, domain, const char *, name) + +MONO_PROFILER_EVENT_1(jit_begin, JitBegin, MonoMethod *, method) +MONO_PROFILER_EVENT_1(jit_failed, JitFailed, MonoMethod *, method) +MONO_PROFILER_EVENT_2(jit_done, JitDone, MonoMethod *, method, MonoJitInfo *, jinfo) +MONO_PROFILER_EVENT_2(jit_chunk_created, JitChunkCreated, const mono_byte *, chunk, uintptr_t, size) +MONO_PROFILER_EVENT_1(jit_chunk_destroyed, JitChunkDestroyed, const mono_byte *, chunk) +MONO_PROFILER_EVENT_4(jit_code_buffer, JitCodeBuffer, const mono_byte *, buffer, uint64_t, size, MonoProfilerCodeBufferType, type, const void *, data) + +MONO_PROFILER_EVENT_1(class_loading, ClassLoading, MonoClass *, klass) +MONO_PROFILER_EVENT_1(class_failed, ClassFailed, MonoClass *, klass) +MONO_PROFILER_EVENT_1(class_loaded, ClassLoaded, MonoClass *, klass) + +MONO_PROFILER_EVENT_1(vtable_loading, VTableLoading, MonoVTable *, vtable) +MONO_PROFILER_EVENT_1(vtable_failed, VTableFailed, MonoVTable *, vtable) +MONO_PROFILER_EVENT_1(vtable_loaded, VTableLoaded, MonoVTable *, vtable) + +MONO_PROFILER_EVENT_1(image_loading, ModuleLoading, MonoImage *, image) +MONO_PROFILER_EVENT_1(image_failed, ModuleFailed, MonoImage *, image) +MONO_PROFILER_EVENT_1(image_loaded, ModuleLoaded, MonoImage *, image) +MONO_PROFILER_EVENT_1(image_unloading, ModuleUnloading, MonoImage *, image) +MONO_PROFILER_EVENT_1(image_unloaded, ModuleUnloaded, MonoImage *, image) + +MONO_PROFILER_EVENT_1(assembly_loading, AssemblyLoading, MonoAssembly *, assembly) +MONO_PROFILER_EVENT_1(assembly_loaded, AssemblyLLoaded, MonoAssembly *, assembly) +MONO_PROFILER_EVENT_1(assembly_unloading, AssemblyLUnloading, MonoAssembly *, assembly) +MONO_PROFILER_EVENT_1(assembly_unloaded, AssemblyLUnloaded, MonoAssembly *, assembly) + +MONO_PROFILER_EVENT_2(method_enter, MethodEnter, MonoMethod *, method, MonoProfilerCallContext *, context) +MONO_PROFILER_EVENT_2(method_leave, MethodLeave, MonoMethod *, method, MonoProfilerCallContext *, context) +MONO_PROFILER_EVENT_2(method_tail_call, MethodTailCall, MonoMethod *, method, MonoMethod *, target) +MONO_PROFILER_EVENT_2(method_exception_leave, MethodExceptionLeave, MonoMethod *, method, MonoObject *, exception) +MONO_PROFILER_EVENT_1(method_free, MethodFree, MonoMethod *, method) +MONO_PROFILER_EVENT_1(method_begin_invoke, MethodBeginInvoke, MonoMethod *, method) +MONO_PROFILER_EVENT_1(method_end_invoke, MethodEndInvoke, MonoMethod *, method) + +MONO_PROFILER_EVENT_1(exception_throw, ExceptionThrow, MonoObject *, exception) +MONO_PROFILER_EVENT_4(exception_clause, ExceptionClause, MonoMethod *, method, uint32_t, index, MonoExceptionEnum, type, MonoObject *, exception) + +MONO_PROFILER_EVENT_3(gc_event, GCEvent2, MonoProfilerGCEvent, event, uint32_t, generation, mono_bool, is_serial) +MONO_PROFILER_EVENT_1(gc_allocation, GCAllocation, MonoObject *, object) +MONO_PROFILER_EVENT_2(gc_moves, GCMoves, MonoObject *const *, objects, uint64_t, count) +MONO_PROFILER_EVENT_1(gc_resize, GCResize, uintptr_t, size) +MONO_PROFILER_EVENT_3(gc_handle_created, GCHandleCreated, uint32_t, handle, MonoGCHandleType, type, MonoObject *, object) +MONO_PROFILER_EVENT_2(gc_handle_deleted, GCHandleDeleted, uint32_t, handle, MonoGCHandleType, type) +MONO_PROFILER_EVENT_0(gc_finalizing, GCFinalizing) +MONO_PROFILER_EVENT_0(gc_finalized, GCFinalized) +MONO_PROFILER_EVENT_1(gc_finalizing_object, GCFinalizingObject, MonoObject *, object) +MONO_PROFILER_EVENT_1(gc_finalized_object, GCFinalizedObject, MonoObject *, object) +MONO_PROFILER_EVENT_5(gc_root_register, RootRegister, const mono_byte *, start, uintptr_t, size, MonoGCRootSource, source, const void *, key, const char *, name) +MONO_PROFILER_EVENT_1(gc_root_unregister, RootUnregister, const mono_byte *, start) +MONO_PROFILER_EVENT_3(gc_roots, GCRoots, uint64_t, count, const mono_byte *const *, addresses, MonoObject *const *, objects) + +MONO_PROFILER_EVENT_1(monitor_contention, MonitorContention, MonoObject *, object) +MONO_PROFILER_EVENT_1(monitor_failed, MonitorFailed, MonoObject *, object) +MONO_PROFILER_EVENT_1(monitor_acquired, MonitorAcquired, MonoObject *, object) + +MONO_PROFILER_EVENT_1(thread_started, ThreadStarted, uintptr_t, tid) +MONO_PROFILER_EVENT_1(thread_stopping, ThreadStopping, uintptr_t, tid) +MONO_PROFILER_EVENT_1(thread_stopped, ThreadStopped, uintptr_t, tid) +MONO_PROFILER_EVENT_1(thread_exited, ThreadExited, uintptr_t, tid) +MONO_PROFILER_EVENT_2(thread_name, ThreadName, uintptr_t, tid, const char *, name) + +MONO_PROFILER_EVENT_2(sample_hit, SampleHit, const mono_byte *, ip, const void *, context) diff --git a/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/profiler.h b/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/profiler.h new file mode 100644 index 0000000..bc60397 --- /dev/null +++ b/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/profiler.h @@ -0,0 +1,249 @@ +/* + * Licensed to the .NET Foundation under one or more agreements. + * The .NET Foundation licenses this file to you under the MIT license. + * See the LICENSE file in the project root for more information. + */ + +#ifndef __MONO_PROFILER_H__ +#define __MONO_PROFILER_H__ + +#include +#include +#include + +MONO_BEGIN_DECLS + +/** + * This value will be incremented whenever breaking changes to the profiler API + * are made. This macro is intended for use in profiler modules that wish to + * support older versions of the profiler API. + * + * Version 2: + * - Major overhaul of the profiler API. + * Version 3: + * - Added mono_profiler_enable_clauses (). This must now be called to enable + * raising exception_clause events. + * - The exception argument to exception_clause events can now be NULL for + * finally clauses invoked in the non-exceptional case. + * - The type argument to exception_clause events will now correctly indicate + * that the catch portion of the clause is being executed in the case of + * try-filter-catch clauses. + * - Removed the iomap_report event. + * - Removed the old gc_event event and renamed gc_event2 to gc_event. + */ +#define MONO_PROFILER_API_VERSION 3 + +typedef struct _MonoProfiler MonoProfiler; +typedef struct _MonoProfilerDesc *MonoProfilerHandle; + +typedef void (*MonoProfilerCleanupCallback) (MonoProfiler *prof); + +MONO_API void mono_profiler_load (const char *desc); +MONO_API MonoProfilerHandle mono_profiler_create (MonoProfiler *prof); +MONO_API void mono_profiler_set_cleanup_callback (MonoProfilerHandle handle, MonoProfilerCleanupCallback cb); + +typedef struct { + MonoMethod *method; + uint32_t il_offset; + uint32_t counter; + const char *file_name; + uint32_t line; + uint32_t column; +} MonoProfilerCoverageData; + +typedef mono_bool (*MonoProfilerCoverageFilterCallback) (MonoProfiler *prof, MonoMethod *method); +typedef void (*MonoProfilerCoverageCallback) (MonoProfiler *prof, const MonoProfilerCoverageData *data); + +MONO_API mono_bool mono_profiler_enable_coverage (void); +MONO_API void mono_profiler_set_coverage_filter_callback (MonoProfilerHandle handle, MonoProfilerCoverageFilterCallback cb); +MONO_API mono_bool mono_profiler_get_coverage_data (MonoProfilerHandle handle, MonoMethod *method, MonoProfilerCoverageCallback cb); + +typedef enum { + /** + * Do not perform sampling. Will make the sampling thread sleep until the + * sampling mode is changed to one of the below modes. + */ + MONO_PROFILER_SAMPLE_MODE_NONE = 0, + /** + * Try to base sampling frequency on process activity. Falls back to + * MONO_PROFILER_SAMPLE_MODE_REAL if such a clock is not available. + */ + MONO_PROFILER_SAMPLE_MODE_PROCESS = 1, + /** + * Base sampling frequency on wall clock time. Uses a monotonic clock when + * available (all major platforms). + */ + MONO_PROFILER_SAMPLE_MODE_REAL = 2, +} MonoProfilerSampleMode; + +MONO_API mono_bool mono_profiler_enable_sampling (MonoProfilerHandle handle); +MONO_API mono_bool mono_profiler_set_sample_mode (MonoProfilerHandle handle, MonoProfilerSampleMode mode, uint32_t freq); +MONO_API mono_bool mono_profiler_get_sample_mode (MonoProfilerHandle handle, MonoProfilerSampleMode *mode, uint32_t *freq); + +MONO_API mono_bool mono_profiler_enable_allocations (void); +MONO_API mono_bool mono_profiler_enable_clauses (void); + +typedef struct _MonoProfilerCallContext MonoProfilerCallContext; + +typedef enum { + /** + * Do not instrument calls. + */ + MONO_PROFILER_CALL_INSTRUMENTATION_NONE = 0, + /** + * Instrument method entries. + */ + MONO_PROFILER_CALL_INSTRUMENTATION_ENTER = 1 << 1, + /** + * Also capture a call context for method entries. + */ + MONO_PROFILER_CALL_INSTRUMENTATION_ENTER_CONTEXT = 1 << 2, + /** + * Instrument method exits. + */ + MONO_PROFILER_CALL_INSTRUMENTATION_LEAVE = 1 << 3, + /** + * Also capture a call context for method exits. + */ + MONO_PROFILER_CALL_INSTRUMENTATION_LEAVE_CONTEXT = 1 << 4, + /** + * Instrument method exits as a result of a tail call. + */ + MONO_PROFILER_CALL_INSTRUMENTATION_TAIL_CALL = 1 << 5, + /** + * Instrument exceptional method exits. + */ + MONO_PROFILER_CALL_INSTRUMENTATION_EXCEPTION_LEAVE = 1 << 6, +} MonoProfilerCallInstrumentationFlags; + +typedef MonoProfilerCallInstrumentationFlags (*MonoProfilerCallInstrumentationFilterCallback) (MonoProfiler *prof, MonoMethod *method); + +MONO_API void mono_profiler_set_call_instrumentation_filter_callback (MonoProfilerHandle handle, MonoProfilerCallInstrumentationFilterCallback cb); +MONO_API mono_bool mono_profiler_enable_call_context_introspection (void); +MONO_API void *mono_profiler_call_context_get_this (MonoProfilerCallContext *context); +MONO_API void *mono_profiler_call_context_get_argument (MonoProfilerCallContext *context, uint32_t position); +MONO_API void *mono_profiler_call_context_get_local (MonoProfilerCallContext *context, uint32_t position); +MONO_API void *mono_profiler_call_context_get_result (MonoProfilerCallContext *context); +MONO_API void mono_profiler_call_context_free_buffer (void *buffer); + +typedef enum { + /** + * The \c data parameter is a \c MonoMethod pointer. + */ + MONO_PROFILER_CODE_BUFFER_METHOD = 0, + /** + * \deprecated No longer used. + */ + MONO_PROFILER_CODE_BUFFER_METHOD_TRAMPOLINE = 1, + /** + * The \c data parameter is a \c MonoMethod pointer. + */ + MONO_PROFILER_CODE_BUFFER_UNBOX_TRAMPOLINE = 2, + MONO_PROFILER_CODE_BUFFER_IMT_TRAMPOLINE = 3, + MONO_PROFILER_CODE_BUFFER_GENERICS_TRAMPOLINE = 4, + /** + * The \c data parameter is a C string. + */ + MONO_PROFILER_CODE_BUFFER_SPECIFIC_TRAMPOLINE = 5, + MONO_PROFILER_CODE_BUFFER_HELPER = 6, + /** + * \deprecated No longer used. + */ + MONO_PROFILER_CODE_BUFFER_MONITOR = 7, + MONO_PROFILER_CODE_BUFFER_DELEGATE_INVOKE = 8, + MONO_PROFILER_CODE_BUFFER_EXCEPTION_HANDLING = 9, +} MonoProfilerCodeBufferType; + +typedef enum { + MONO_GC_EVENT_PRE_STOP_WORLD = 6, + /** + * When this event arrives, the GC and suspend locks are acquired. + */ + MONO_GC_EVENT_PRE_STOP_WORLD_LOCKED = 10, + MONO_GC_EVENT_POST_STOP_WORLD = 7, + MONO_GC_EVENT_START = 0, + MONO_GC_EVENT_END = 5, + MONO_GC_EVENT_PRE_START_WORLD = 8, + /** + * When this event arrives, the GC and suspend locks are released. + */ + MONO_GC_EVENT_POST_START_WORLD_UNLOCKED = 11, + MONO_GC_EVENT_POST_START_WORLD = 9, +} MonoProfilerGCEvent; + +/* + * The macros below will generate the majority of the callback API. Refer to + * mono/metadata/profiler-events.h for a list of callbacks. They are expanded + * like so: + * + * typedef void (*MonoProfilerRuntimeInitializedCallback (MonoProfiler *prof); + * MONO_API void mono_profiler_set_runtime_initialized_callback (MonoProfiler *prof, MonoProfilerRuntimeInitializedCallback cb); + * + * typedef void (*MonoProfilerRuntimeShutdownCallback (MonoProfiler *prof); + * MONO_API void mono_profiler_set_runtime_shutdown_callback (MonoProfiler *prof, MonoProfilerRuntimeShutdownCallback cb); + * + * typedef void (*MonoProfilerContextLoadedCallback (MonoProfiler *prof); + * MONO_API void mono_profiler_set_context_loaded_callback (MonoProfiler *prof, MonoProfilerContextLoadedCallback cb); + * + * typedef void (*MonoProfilerContextUnloadedCallback (MonoProfiler *prof); + * MONO_API void mono_profiler_set_context_unloaded_callback (MonoProfiler *prof, MonoProfilerContextUnloadedCallback cb); + * + * Etc. + * + * To remove a callback, pass NULL instead of a valid function pointer. + * Callbacks can be changed at any point, but note that doing so is inherently + * racy with respect to threads that aren't suspended, i.e. you may still see a + * call from another thread right after you change a callback. + * + * These functions are async safe. + */ + +#define _MONO_PROFILER_EVENT(type, ...) \ + typedef void (*MonoProfiler ## type ## Callback) (__VA_ARGS__); +#define MONO_PROFILER_EVENT_0(name, type) \ + _MONO_PROFILER_EVENT(type, MonoProfiler *prof) +#define MONO_PROFILER_EVENT_1(name, type, arg1_type, arg1_name) \ + _MONO_PROFILER_EVENT(type, MonoProfiler *prof, arg1_type arg1_name) +#define MONO_PROFILER_EVENT_2(name, type, arg1_type, arg1_name, arg2_type, arg2_name) \ + _MONO_PROFILER_EVENT(type, MonoProfiler *prof, arg1_type arg1_name, arg2_type arg2_name) +#define MONO_PROFILER_EVENT_3(name, type, arg1_type, arg1_name, arg2_type, arg2_name, arg3_type, arg3_name) \ + _MONO_PROFILER_EVENT(type, MonoProfiler *prof, arg1_type arg1_name, arg2_type arg2_name, arg3_type arg3_name) +#define MONO_PROFILER_EVENT_4(name, type, arg1_type, arg1_name, arg2_type, arg2_name, arg3_type, arg3_name, arg4_type, arg4_name) \ + _MONO_PROFILER_EVENT(type, MonoProfiler *prof, arg1_type arg1_name, arg2_type arg2_name, arg3_type arg3_name, arg4_type arg4_name) +#define MONO_PROFILER_EVENT_5(name, type, arg1_type, arg1_name, arg2_type, arg2_name, arg3_type, arg3_name, arg4_type, arg4_name, arg5_type, arg5_name) \ + _MONO_PROFILER_EVENT(type, MonoProfiler *prof, arg1_type arg1_name, arg2_type arg2_name, arg3_type arg3_name, arg4_type arg4_name, arg5_type arg5_name) +#include +#undef MONO_PROFILER_EVENT_0 +#undef MONO_PROFILER_EVENT_1 +#undef MONO_PROFILER_EVENT_2 +#undef MONO_PROFILER_EVENT_3 +#undef MONO_PROFILER_EVENT_4 +#undef MONO_PROFILER_EVENT_5 +#undef _MONO_PROFILER_EVENT + +#define _MONO_PROFILER_EVENT(name, type) \ + MONO_API void mono_profiler_set_ ## name ## _callback (MonoProfilerHandle handle, MonoProfiler ## type ## Callback cb); +#define MONO_PROFILER_EVENT_0(name, type) \ + _MONO_PROFILER_EVENT(name, type) +#define MONO_PROFILER_EVENT_1(name, type, arg1_type, arg1_name) \ + _MONO_PROFILER_EVENT(name, type) +#define MONO_PROFILER_EVENT_2(name, type, arg1_type, arg1_name, arg2_type, arg2_name) \ + _MONO_PROFILER_EVENT(name, type) +#define MONO_PROFILER_EVENT_3(name, type, arg1_type, arg1_name, arg2_type, arg2_name, arg3_type, arg3_name) \ + _MONO_PROFILER_EVENT(name, type) +#define MONO_PROFILER_EVENT_4(name, type, arg1_type, arg1_name, arg2_type, arg2_name, arg3_type, arg3_name, arg4_type, arg4_name) \ + _MONO_PROFILER_EVENT(name, type) +#define MONO_PROFILER_EVENT_5(name, type, arg1_type, arg1_name, arg2_type, arg2_name, arg3_type, arg3_name, arg4_type, arg4_name, arg5_type, arg5_name) \ + _MONO_PROFILER_EVENT(name, type) +#include +#undef MONO_PROFILER_EVENT_0 +#undef MONO_PROFILER_EVENT_1 +#undef MONO_PROFILER_EVENT_2 +#undef MONO_PROFILER_EVENT_3 +#undef MONO_PROFILER_EVENT_4 +#undef MONO_PROFILER_EVENT_5 +#undef _MONO_PROFILER_EVENT + +MONO_END_DECLS + +#endif // __MONO_PROFILER_H__ diff --git a/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/reflection.h b/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/reflection.h new file mode 100644 index 0000000..83bcfcc --- /dev/null +++ b/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/reflection.h @@ -0,0 +1,174 @@ +/** + * \file + */ + +#ifndef __METADATA_REFLECTION_H__ +#define __METADATA_REFLECTION_H__ + +#include +#include + +MONO_BEGIN_DECLS + +typedef struct MonoTypeNameParse MonoTypeNameParse; + +typedef struct { + MonoMethod *ctor; + uint32_t data_size; + const mono_byte* data; +} MonoCustomAttrEntry; + +typedef struct { + int num_attrs; + int cached; + MonoImage *image; + MonoCustomAttrEntry attrs [MONO_ZERO_LEN_ARRAY]; +} MonoCustomAttrInfo; + +#define MONO_SIZEOF_CUSTOM_ATTR_INFO (offsetof (MonoCustomAttrInfo, attrs)) + +/* + * Information which isn't in the MonoMethod structure is stored here for + * dynamic methods. + */ +typedef struct { + char **param_names; + MonoMarshalSpec **param_marshall; + MonoCustomAttrInfo **param_cattr; + uint8_t** param_defaults; + uint32_t *param_default_types; + char *dllentry, *dll; +} MonoReflectionMethodAux; + +typedef enum { + ResolveTokenError_OutOfRange, + ResolveTokenError_BadTable, + ResolveTokenError_Other +} MonoResolveTokenError; + +MONO_API MONO_RT_EXTERNAL_ONLY +int mono_reflection_parse_type (char *name, MonoTypeNameParse *info); +MONO_API MONO_RT_EXTERNAL_ONLY +MonoType* mono_reflection_get_type (MonoImage* image, MonoTypeNameParse *info, mono_bool ignorecase, mono_bool *type_resolve); +MONO_API void mono_reflection_free_type_info (MonoTypeNameParse *info); +MONO_API MONO_RT_EXTERNAL_ONLY +MonoType* mono_reflection_type_from_name (char *name, MonoImage *image); +MONO_API MONO_RT_EXTERNAL_ONLY +uint32_t mono_reflection_get_token (MonoObject *obj); + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoReflectionAssembly* mono_assembly_get_object (MonoDomain *domain, MonoAssembly *assembly); +MONO_API MONO_RT_EXTERNAL_ONLY +MonoReflectionModule* mono_module_get_object (MonoDomain *domain, MonoImage *image); +MONO_API MONO_RT_EXTERNAL_ONLY +MonoReflectionModule* mono_module_file_get_object (MonoDomain *domain, MonoImage *image, int table_index); +MONO_API MONO_RT_EXTERNAL_ONLY +MonoReflectionType* mono_type_get_object (MonoDomain *domain, MonoType *type); +MONO_API MONO_RT_EXTERNAL_ONLY +MonoReflectionMethod* mono_method_get_object (MonoDomain *domain, MonoMethod *method, MonoClass *refclass); +MONO_API MONO_RT_EXTERNAL_ONLY +MonoReflectionField* mono_field_get_object (MonoDomain *domain, MonoClass *klass, MonoClassField *field); +MONO_API MONO_RT_EXTERNAL_ONLY +MonoReflectionProperty* mono_property_get_object (MonoDomain *domain, MonoClass *klass, MonoProperty *property); +MONO_API MONO_RT_EXTERNAL_ONLY +MonoReflectionEvent* mono_event_get_object (MonoDomain *domain, MonoClass *klass, MonoEvent *event); +/* note: this one is slightly different: we keep the whole array of params in the cache */ +MONO_API MONO_RT_EXTERNAL_ONLY +MonoArray* mono_param_get_objects (MonoDomain *domain, MonoMethod *method); +MONO_API MONO_RT_EXTERNAL_ONLY +MonoReflectionMethodBody* mono_method_body_get_object (MonoDomain *domain, MonoMethod *method); + +MONO_API MonoObject *mono_get_dbnull_object (MonoDomain *domain); + +MONO_API MonoArray* mono_reflection_get_custom_attrs_by_type (MonoObject *obj, MonoClass *attr_klass, MonoError *error); +MONO_API MonoArray* mono_reflection_get_custom_attrs (MonoObject *obj); +MONO_API MONO_RT_EXTERNAL_ONLY +MonoArray* mono_reflection_get_custom_attrs_data (MonoObject *obj); +MONO_API MONO_RT_EXTERNAL_ONLY +MonoArray* mono_reflection_get_custom_attrs_blob (MonoReflectionAssembly *assembly, MonoObject *ctor, MonoArray *ctorArgs, MonoArray *properties, MonoArray *porpValues, MonoArray *fields, MonoArray* fieldValues); + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoCustomAttrInfo* mono_reflection_get_custom_attrs_info (MonoObject *obj); +MONO_API MONO_RT_EXTERNAL_ONLY +MonoArray* mono_custom_attrs_construct (MonoCustomAttrInfo *cinfo); +MONO_API MONO_RT_EXTERNAL_ONLY +MonoCustomAttrInfo* mono_custom_attrs_from_index (MonoImage *image, uint32_t idx); +MONO_API MONO_RT_EXTERNAL_ONLY +MonoCustomAttrInfo* mono_custom_attrs_from_method (MonoMethod *method); +MONO_API MONO_RT_EXTERNAL_ONLY +MonoCustomAttrInfo* mono_custom_attrs_from_class (MonoClass *klass); +MONO_API MONO_RT_EXTERNAL_ONLY +MonoCustomAttrInfo* mono_custom_attrs_from_assembly (MonoAssembly *assembly); +MONO_API MONO_RT_EXTERNAL_ONLY +MonoCustomAttrInfo* mono_custom_attrs_from_property (MonoClass *klass, MonoProperty *property); +MONO_API MONO_RT_EXTERNAL_ONLY +MonoCustomAttrInfo* mono_custom_attrs_from_event (MonoClass *klass, MonoEvent *event); +MONO_API MONO_RT_EXTERNAL_ONLY +MonoCustomAttrInfo* mono_custom_attrs_from_field (MonoClass *klass, MonoClassField *field); +MONO_API MONO_RT_EXTERNAL_ONLY +MonoCustomAttrInfo* mono_custom_attrs_from_param (MonoMethod *method, uint32_t param); +MONO_API mono_bool mono_custom_attrs_has_attr (MonoCustomAttrInfo *ainfo, MonoClass *attr_klass); +MONO_API MONO_RT_EXTERNAL_ONLY +MonoObject* mono_custom_attrs_get_attr (MonoCustomAttrInfo *ainfo, MonoClass *attr_klass); +MONO_API void mono_custom_attrs_free (MonoCustomAttrInfo *ainfo); + + +#define MONO_DECLSEC_ACTION_MIN 0x1 +#define MONO_DECLSEC_ACTION_MAX 0x12 + +enum { + MONO_DECLSEC_FLAG_REQUEST = 0x00000001, + MONO_DECLSEC_FLAG_DEMAND = 0x00000002, + MONO_DECLSEC_FLAG_ASSERT = 0x00000004, + MONO_DECLSEC_FLAG_DENY = 0x00000008, + MONO_DECLSEC_FLAG_PERMITONLY = 0x00000010, + MONO_DECLSEC_FLAG_LINKDEMAND = 0x00000020, + MONO_DECLSEC_FLAG_INHERITANCEDEMAND = 0x00000040, + MONO_DECLSEC_FLAG_REQUEST_MINIMUM = 0x00000080, + MONO_DECLSEC_FLAG_REQUEST_OPTIONAL = 0x00000100, + MONO_DECLSEC_FLAG_REQUEST_REFUSE = 0x00000200, + MONO_DECLSEC_FLAG_PREJIT_GRANT = 0x00000400, + MONO_DECLSEC_FLAG_PREJIT_DENY = 0x00000800, + MONO_DECLSEC_FLAG_NONCAS_DEMAND = 0x00001000, + MONO_DECLSEC_FLAG_NONCAS_LINKDEMAND = 0x00002000, + MONO_DECLSEC_FLAG_NONCAS_INHERITANCEDEMAND = 0x00004000, + MONO_DECLSEC_FLAG_LINKDEMAND_CHOICE = 0x00008000, + MONO_DECLSEC_FLAG_INHERITANCEDEMAND_CHOICE = 0x00010000, + MONO_DECLSEC_FLAG_DEMAND_CHOICE = 0x00020000 +}; + +MONO_API uint32_t mono_declsec_flags_from_method (MonoMethod *method); +MONO_API uint32_t mono_declsec_flags_from_class (MonoClass *klass); +MONO_API uint32_t mono_declsec_flags_from_assembly (MonoAssembly *assembly); + +/* this structure MUST be kept in synch with RuntimeDeclSecurityEntry + * located in /mcs/class/corlib/System.Security/SecurityFrame.cs */ +typedef struct { + char *blob; /* pointer to metadata blob */ + uint32_t size; /* size of the metadata blob */ + uint32_t index; +} MonoDeclSecurityEntry; + +typedef struct { + MonoDeclSecurityEntry demand; + MonoDeclSecurityEntry noncasdemand; + MonoDeclSecurityEntry demandchoice; +} MonoDeclSecurityActions; + +MONO_API MonoBoolean mono_declsec_get_demands (MonoMethod *callee, MonoDeclSecurityActions* demands); +MONO_API MonoBoolean mono_declsec_get_linkdemands (MonoMethod *callee, MonoDeclSecurityActions* klass, MonoDeclSecurityActions* cmethod); +MONO_API MonoBoolean mono_declsec_get_inheritdemands_class (MonoClass *klass, MonoDeclSecurityActions* demands); +MONO_API MonoBoolean mono_declsec_get_inheritdemands_method (MonoMethod *callee, MonoDeclSecurityActions* demands); + +MONO_API MonoBoolean mono_declsec_get_method_action (MonoMethod *method, uint32_t action, MonoDeclSecurityEntry *entry); +MONO_API MonoBoolean mono_declsec_get_class_action (MonoClass *klass, uint32_t action, MonoDeclSecurityEntry *entry); +MONO_API MonoBoolean mono_declsec_get_assembly_action (MonoAssembly *assembly, uint32_t action, MonoDeclSecurityEntry *entry); + +MONO_API MONO_RT_EXTERNAL_ONLY +MonoType* mono_reflection_type_get_type (MonoReflectionType *reftype); + +MONO_API MonoAssembly* mono_reflection_assembly_get_assembly (MonoReflectionAssembly *refassembly); + +MONO_END_DECLS + +#endif /* __METADATA_REFLECTION_H__ */ diff --git a/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/row-indexes.h b/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/row-indexes.h new file mode 100644 index 0000000..d7837d0 --- /dev/null +++ b/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/row-indexes.h @@ -0,0 +1,492 @@ +/** + * \file + */ + +#ifndef __MONO_METADATA_ROW_INDEXES_H__ +#define __MONO_METADATA_ROW_INDEXES_H__ + +/* + * The last entry in the enum is used to give the number + * of columns in the row. + */ + +enum { + MONO_ASSEMBLY_HASH_ALG, + MONO_ASSEMBLY_MAJOR_VERSION, + MONO_ASSEMBLY_MINOR_VERSION, + MONO_ASSEMBLY_BUILD_NUMBER, + MONO_ASSEMBLY_REV_NUMBER, + MONO_ASSEMBLY_FLAGS, + MONO_ASSEMBLY_PUBLIC_KEY, + MONO_ASSEMBLY_NAME, + MONO_ASSEMBLY_CULTURE, + MONO_ASSEMBLY_SIZE +}; + +enum { + MONO_ASSEMBLYOS_PLATFORM, + MONO_ASSEMBLYOS_MAJOR_VERSION, + MONO_ASSEMBLYOS_MINOR_VERSION, + MONO_ASSEMBLYOS_SIZE +}; + +enum { + MONO_ASSEMBLY_PROCESSOR, + MONO_ASSEMBLY_PROCESSOR_SIZE +}; + +enum { + MONO_ASSEMBLYREF_MAJOR_VERSION, + MONO_ASSEMBLYREF_MINOR_VERSION, + MONO_ASSEMBLYREF_BUILD_NUMBER, + MONO_ASSEMBLYREF_REV_NUMBER, + MONO_ASSEMBLYREF_FLAGS, + MONO_ASSEMBLYREF_PUBLIC_KEY, + MONO_ASSEMBLYREF_NAME, + MONO_ASSEMBLYREF_CULTURE, + MONO_ASSEMBLYREF_HASH_VALUE, + MONO_ASSEMBLYREF_SIZE +}; + +enum { + MONO_ASSEMBLYREFOS_PLATFORM, + MONO_ASSEMBLYREFOS_MAJOR_VERSION, + MONO_ASSEMBLYREFOS_MINOR_VERSION, + MONO_ASSEMBLYREFOS_ASSEMBLYREF, + MONO_ASSEMBLYREFOS_SIZE +}; + +enum { + MONO_ASSEMBLYREFPROC_PROCESSOR, + MONO_ASSEMBLYREFPROC_ASSEMBLYREF, + MONO_ASSEMBLYREFPROC_SIZE +}; + +enum { + MONO_CLASS_LAYOUT_PACKING_SIZE, + MONO_CLASS_LAYOUT_CLASS_SIZE, + MONO_CLASS_LAYOUT_PARENT, + MONO_CLASS_LAYOUT_SIZE +}; + +enum { + MONO_CONSTANT_TYPE, + MONO_CONSTANT_PADDING, + MONO_CONSTANT_PARENT, + MONO_CONSTANT_VALUE, + MONO_CONSTANT_SIZE +}; + +enum { + MONO_CUSTOM_ATTR_PARENT, + MONO_CUSTOM_ATTR_TYPE, + MONO_CUSTOM_ATTR_VALUE, + MONO_CUSTOM_ATTR_SIZE +}; + +enum { + MONO_DECL_SECURITY_ACTION, + MONO_DECL_SECURITY_PARENT, + MONO_DECL_SECURITY_PERMISSIONSET, + MONO_DECL_SECURITY_SIZE +}; + +enum { + MONO_EVENT_MAP_PARENT, + MONO_EVENT_MAP_EVENTLIST, + MONO_EVENT_MAP_SIZE +}; + +enum { + MONO_EVENT_FLAGS, + MONO_EVENT_NAME, + MONO_EVENT_TYPE, + MONO_EVENT_SIZE +}; + +enum { + MONO_EVENT_POINTER_EVENT, + MONO_EVENT_POINTER_SIZE +}; + +enum { + MONO_EXP_TYPE_FLAGS, + MONO_EXP_TYPE_TYPEDEF, + MONO_EXP_TYPE_NAME, + MONO_EXP_TYPE_NAMESPACE, + MONO_EXP_TYPE_IMPLEMENTATION, + MONO_EXP_TYPE_SIZE +}; + +enum { + MONO_FIELD_FLAGS, + MONO_FIELD_NAME, + MONO_FIELD_SIGNATURE, + MONO_FIELD_SIZE +}; + +enum { + MONO_FIELD_LAYOUT_OFFSET, + MONO_FIELD_LAYOUT_FIELD, + MONO_FIELD_LAYOUT_SIZE +}; + +enum { + MONO_FIELD_MARSHAL_PARENT, + MONO_FIELD_MARSHAL_NATIVE_TYPE, + MONO_FIELD_MARSHAL_SIZE +}; + +enum { + MONO_FIELD_POINTER_FIELD, + MONO_FIELD_POINTER_SIZE +}; + +enum { + MONO_FIELD_RVA_RVA, + MONO_FIELD_RVA_FIELD, + MONO_FIELD_RVA_SIZE +}; + +enum { + MONO_FILE_FLAGS, + MONO_FILE_NAME, + MONO_FILE_HASH_VALUE, + MONO_FILE_SIZE +}; + +enum { + MONO_IMPLMAP_FLAGS, + MONO_IMPLMAP_MEMBER, + MONO_IMPLMAP_NAME, + MONO_IMPLMAP_SCOPE, + MONO_IMPLMAP_SIZE +}; + +enum { + MONO_INTERFACEIMPL_CLASS, + MONO_INTERFACEIMPL_INTERFACE, + MONO_INTERFACEIMPL_SIZE +}; + +enum { + MONO_MANIFEST_OFFSET, + MONO_MANIFEST_FLAGS, + MONO_MANIFEST_NAME, + MONO_MANIFEST_IMPLEMENTATION, + MONO_MANIFEST_SIZE +}; + +enum { + MONO_MEMBERREF_CLASS, + MONO_MEMBERREF_NAME, + MONO_MEMBERREF_SIGNATURE, + MONO_MEMBERREF_SIZE +}; + +enum { + MONO_METHOD_RVA, + MONO_METHOD_IMPLFLAGS, + MONO_METHOD_FLAGS, + MONO_METHOD_NAME, + MONO_METHOD_SIGNATURE, + MONO_METHOD_PARAMLIST, + MONO_METHOD_SIZE +}; + +enum { + MONO_METHODIMPL_CLASS, + MONO_METHODIMPL_BODY, + MONO_METHODIMPL_DECLARATION, + MONO_METHODIMPL_SIZE +}; + +enum { + MONO_METHOD_POINTER_METHOD, + MONO_METHOD_POINTER_SIZE +}; + +enum { + MONO_METHOD_SEMA_SEMANTICS, + MONO_METHOD_SEMA_METHOD, + MONO_METHOD_SEMA_ASSOCIATION, + MONO_METHOD_SEMA_SIZE +}; + +enum { + MONO_MODULE_GENERATION, + MONO_MODULE_NAME, + MONO_MODULE_MVID, + MONO_MODULE_ENC, + MONO_MODULE_ENCBASE, + MONO_MODULE_SIZE +}; + +enum { + MONO_MODULEREF_NAME, + MONO_MODULEREF_SIZE +}; + +enum { + MONO_NESTED_CLASS_NESTED, + MONO_NESTED_CLASS_ENCLOSING, + MONO_NESTED_CLASS_SIZE +}; + +enum { + MONO_PARAM_FLAGS, + MONO_PARAM_SEQUENCE, + MONO_PARAM_NAME, + MONO_PARAM_SIZE +}; + +enum { + MONO_PARAM_POINTER_PARAM, + MONO_PARAM_POINTER_SIZE +}; + +enum { + MONO_PROPERTY_FLAGS, + MONO_PROPERTY_NAME, + MONO_PROPERTY_TYPE, + MONO_PROPERTY_SIZE +}; + +enum { + MONO_PROPERTY_POINTER_PROPERTY, + MONO_PROPERTY_POINTER_SIZE +}; + +enum { + MONO_PROPERTY_MAP_PARENT, + MONO_PROPERTY_MAP_PROPERTY_LIST, + MONO_PROPERTY_MAP_SIZE +}; + +enum { + MONO_STAND_ALONE_SIGNATURE, + MONO_STAND_ALONE_SIGNATURE_SIZE +}; + +enum { + MONO_TYPEDEF_FLAGS, + MONO_TYPEDEF_NAME, + MONO_TYPEDEF_NAMESPACE, + MONO_TYPEDEF_EXTENDS, + MONO_TYPEDEF_FIELD_LIST, + MONO_TYPEDEF_METHOD_LIST, + MONO_TYPEDEF_SIZE +}; + +enum { + MONO_TYPEREF_SCOPE, + MONO_TYPEREF_NAME, + MONO_TYPEREF_NAMESPACE, + MONO_TYPEREF_SIZE +}; + +enum { + MONO_TYPESPEC_SIGNATURE, + MONO_TYPESPEC_SIZE +}; + +enum { + MONO_GENERICPARAM_NUMBER, + MONO_GENERICPARAM_FLAGS, + MONO_GENERICPARAM_OWNER, + MONO_GENERICPARAM_NAME, + + MONO_GENERICPARAM_SIZE +}; + +enum { + MONO_METHODSPEC_METHOD, + MONO_METHODSPEC_SIGNATURE, + MONO_METHODSPEC_SIZE +}; + +enum { + MONO_GENPARCONSTRAINT_GENERICPAR, + MONO_GENPARCONSTRAINT_CONSTRAINT, + MONO_GENPARCONSTRAINT_SIZE +}; + +enum { + MONO_DOCUMENT_NAME, + MONO_DOCUMENT_HASHALG, + MONO_DOCUMENT_HASH, + MONO_DOCUMENT_LANGUAGE, + MONO_DOCUMENT_SIZE +}; + +enum { + MONO_METHODBODY_DOCUMENT, + MONO_METHODBODY_SEQ_POINTS, + MONO_METHODBODY_SIZE +}; + +enum { + MONO_LOCALSCOPE_METHOD, + MONO_LOCALSCOPE_IMPORTSCOPE, + MONO_LOCALSCOPE_VARIABLELIST, + MONO_LOCALSCOPE_CONSTANTLIST, + MONO_LOCALSCOPE_STARTOFFSET, + MONO_LOCALSCOPE_LENGTH, + MONO_LOCALSCOPE_SIZE +}; + +enum { + MONO_LOCALVARIABLE_ATTRIBUTES, + MONO_LOCALVARIABLE_INDEX, + MONO_LOCALVARIABLE_NAME, + MONO_LOCALVARIABLE_SIZE +}; + +enum { + MONO_CUSTOMDEBUGINFORMATION_PARENT, + MONO_CUSTOMDEBUGINFORMATION_KIND, + MONO_CUSTOMDEBUGINFORMATION_VALUE, + MONO_CUSTOMDEBUGINFORMATION_SIZE +}; + +/* + * Coded Tokens + * The _BITS entry is for the bits used in the token. + * The _MASK entry is for mask the index out. + */ + +enum { + MONO_TYPEDEFORREF_TYPEDEF, + MONO_TYPEDEFORREF_TYPEREF, + MONO_TYPEDEFORREF_TYPESPEC, + MONO_TYPEDEFORREF_BITS = 2, + MONO_TYPEDEFORREF_MASK = 3 +}; + +enum { + MONO_HASCONSTANT_FIEDDEF, + MONO_HASCONSTANT_PARAM, + MONO_HASCONSTANT_PROPERTY, + MONO_HASCONSTANT_BITS = 2, + MONO_HASCONSTANT_MASK = 3 +}; + +enum { + MONO_CUSTOM_ATTR_METHODDEF, + MONO_CUSTOM_ATTR_FIELDDEF, + MONO_CUSTOM_ATTR_TYPEREF, + MONO_CUSTOM_ATTR_TYPEDEF, + MONO_CUSTOM_ATTR_PARAMDEF, + MONO_CUSTOM_ATTR_INTERFACE, + MONO_CUSTOM_ATTR_MEMBERREF, + MONO_CUSTOM_ATTR_MODULE, + MONO_CUSTOM_ATTR_PERMISSION, + MONO_CUSTOM_ATTR_PROPERTY, + MONO_CUSTOM_ATTR_EVENT, + MONO_CUSTOM_ATTR_SIGNATURE, + MONO_CUSTOM_ATTR_MODULEREF, + MONO_CUSTOM_ATTR_TYPESPEC, + MONO_CUSTOM_ATTR_ASSEMBLY, + MONO_CUSTOM_ATTR_ASSEMBLYREF, + MONO_CUSTOM_ATTR_FILE, + MONO_CUSTOM_ATTR_EXP_TYPE, + MONO_CUSTOM_ATTR_MANIFEST, + MONO_CUSTOM_ATTR_GENERICPAR, + MONO_CUSTOM_ATTR_GENERICPARAMCONSTRAINT, + MONO_CUSTOM_ATTR_BITS = 5, + MONO_CUSTOM_ATTR_MASK = 0x1F +}; + +enum { + MONO_HAS_FIELD_MARSHAL_FIELDSREF, + MONO_HAS_FIELD_MARSHAL_PARAMDEF, + MONO_HAS_FIELD_MARSHAL_BITS = 1, + MONO_HAS_FIELD_MARSHAL_MASK = 1 +}; + +enum { + MONO_HAS_DECL_SECURITY_TYPEDEF, + MONO_HAS_DECL_SECURITY_METHODDEF, + MONO_HAS_DECL_SECURITY_ASSEMBLY, + MONO_HAS_DECL_SECURITY_BITS = 2, + MONO_HAS_DECL_SECURITY_MASK = 3 +}; + +enum { + MONO_MEMBERREF_PARENT_TYPEDEF, /* not used */ + MONO_MEMBERREF_PARENT_TYPEREF, + MONO_MEMBERREF_PARENT_MODULEREF, + MONO_MEMBERREF_PARENT_METHODDEF, + MONO_MEMBERREF_PARENT_TYPESPEC, + MONO_MEMBERREF_PARENT_BITS = 3, + MONO_MEMBERREF_PARENT_MASK = 7 +}; + +enum { + MONO_HAS_SEMANTICS_EVENT, + MONO_HAS_SEMANTICS_PROPERTY, + MONO_HAS_SEMANTICS_BITS = 1, + MONO_HAS_SEMANTICS_MASK = 1 +}; + +enum { + MONO_METHODDEFORREF_METHODDEF, + MONO_METHODDEFORREF_METHODREF, + MONO_METHODDEFORREF_BITS = 1, + MONO_METHODDEFORREF_MASK = 1 +}; + +enum { + MONO_MEMBERFORWD_FIELDDEF, + MONO_MEMBERFORWD_METHODDEF, + MONO_MEMBERFORWD_BITS = 1, + MONO_MEMBERFORWD_MASK = 1 +}; + +enum { + MONO_IMPLEMENTATION_FILE, + MONO_IMPLEMENTATION_ASSEMBLYREF, + MONO_IMPLEMENTATION_EXP_TYPE, + MONO_IMPLEMENTATION_BITS = 2, + MONO_IMPLEMENTATION_MASK = 3 +}; + +enum { + MONO_CUSTOM_ATTR_TYPE_TYPEREF, /* not used */ + MONO_CUSTOM_ATTR_TYPE_TYPEDEF, /* not used */ + MONO_CUSTOM_ATTR_TYPE_METHODDEF, + MONO_CUSTOM_ATTR_TYPE_MEMBERREF, + MONO_CUSTOM_ATTR_TYPE_STRING, /* not used */ + MONO_CUSTOM_ATTR_TYPE_BITS = 3, + MONO_CUSTOM_ATTR_TYPE_MASK = 7 +}; + +enum { + MONO_RESOLUTION_SCOPE_MODULE, + MONO_RESOLUTION_SCOPE_MODULEREF, + MONO_RESOLUTION_SCOPE_ASSEMBLYREF, + MONO_RESOLUTION_SCOPE_TYPEREF, + MONO_RESOLUTION_SCOPE_BITS = 2, + MONO_RESOLUTION_SCOPE_MASK = 3 +}; + +/* Kept for compatibility since this is a public header file */ +enum { + MONO_RESOLTION_SCOPE_MODULE, + MONO_RESOLTION_SCOPE_MODULEREF, + MONO_RESOLTION_SCOPE_ASSEMBLYREF, + MONO_RESOLTION_SCOPE_TYPEREF, + MONO_RESOLTION_SCOPE_BITS = 2, + MONO_RESOLTION_SCOPE_MASK = 3 +}; + +enum { + MONO_TYPEORMETHOD_TYPE, + MONO_TYPEORMETHOD_METHOD, + MONO_TYPEORMETHOD_BITS = 1, + MONO_TYPEORMETHOD_MASK = 1 +}; + +#endif /* __MONO_METADATA_ROW_INDEXES_H__ */ + + diff --git a/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/sgen-bridge.h b/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/sgen-bridge.h new file mode 100644 index 0000000..c131f30 --- /dev/null +++ b/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/sgen-bridge.h @@ -0,0 +1,110 @@ +/** + * \file + * Copyright 2011 Novell, Inc. + * + * Licensed under the MIT license. See LICENSE file in the project root for full license information. + */ + +/* + * The bridge is a mechanism for SGen to let clients override the death of some + * unreachable objects. We use it in monodroid to do garbage collection across + * the Mono and Java heaps. + * + * The client (Monodroid) can designate some objects as "bridged", which means + * that they participate in the bridge processing step once SGen considers them + * unreachable, i.e., dead. Bridged objects must be registered for + * finalization. + * + * When SGen is done marking, it puts together a list of all dead bridged + * objects. This is passed to the bridge processor, which does an analysis to + * simplify the graph: It replaces strongly-connected components with single + * nodes, and may remove nodes corresponding to components which do not contain + * bridged objects. + * + * The output of the SCC analysis is passed to the client's `cross_references()` + * callback. This consists of 2 arrays, an array of SCCs (MonoGCBridgeSCC), + * and an array of "xrefs" (edges between SCCs, MonoGCBridgeXRef). Edges are + * encoded as pairs of "API indices", ie indexes in the SCC array. The client + * is expected to set the `is_alive` flag on those strongly connected components + * that it wishes to be kept alive. + * + * In monodroid each bridged object has a corresponding Java mirror object. In + * the bridge callback it reifies the Mono object graph in the Java heap so that + * the full, combined object graph is now instantiated on the Java side. Then + * it triggers a Java GC, waits for it to finish, and checks which of the Java + * mirror objects are still alive. For those it sets the `is_alive` flag and + * returns from the callback. + * + * The SCC analysis is done while the world is stopped, but the callback is made + * with the world running again. Weak links to bridged objects and other + * objects reachable from them are kept until the callback returns, at which + * point all links to bridged objects that don't have `is_alive` set are nulled. + * Note that weak links to non-bridged objects reachable from bridged objects + * are not nulled. This might be considered a bug. + * + * There are three different implementations of the bridge processor, each of + * which implements 8 callbacks (see SgenBridgeProcessor). The implementations + * differ in the algorithm they use to compute the "simplified" SCC graph. + */ + +#ifndef _MONO_SGEN_BRIDGE_H_ +#define _MONO_SGEN_BRIDGE_H_ + +#include + +MONO_BEGIN_DECLS + +enum { + SGEN_BRIDGE_VERSION = 5 +}; + +typedef enum { + /* Instances of this class should be scanned when computing the transitive dependency among bridges. E.g. List*/ + GC_BRIDGE_TRANSPARENT_CLASS, + /* Instances of this class should not be scanned when computing the transitive dependency among bridges. E.g. String*/ + GC_BRIDGE_OPAQUE_CLASS, + /* Instances of this class should be bridged and have their dependency computed. */ + GC_BRIDGE_TRANSPARENT_BRIDGE_CLASS, + /* Instances of this class should be bridged but no dependencies should not be calculated. */ + GC_BRIDGE_OPAQUE_BRIDGE_CLASS, +} MonoGCBridgeObjectKind; + +typedef struct { + mono_bool is_alive; /* to be set by the cross reference callback */ + int num_objs; + MonoObject *objs [MONO_ZERO_LEN_ARRAY]; +} MonoGCBridgeSCC; + +typedef struct { + int src_scc_index; + int dst_scc_index; +} MonoGCBridgeXRef; + +typedef struct { + int bridge_version; + /* + * Tells the runtime which classes to even consider when looking for + * bridged objects. If subclasses are to be considered as well, the + * subclass check must be done in the callback. + */ + MonoGCBridgeObjectKind (*bridge_class_kind) (MonoClass *klass); + /* + * This is only called on objects for whose classes + * `bridge_class_kind()` returned `XXX_BRIDGE_CLASS`. + */ + mono_bool (*is_bridge_object) (MonoObject *object); + void (*cross_references) (int num_sccs, MonoGCBridgeSCC **sccs, int num_xrefs, MonoGCBridgeXRef *xrefs); +} MonoGCBridgeCallbacks; + +/* + * Note: This may be called at any time, but cannot be called concurrently + * with (during and on a separate thread from) sgen init. Callers are + * responsible for enforcing this. + */ +MONO_API void mono_gc_register_bridge_callbacks (MonoGCBridgeCallbacks *callbacks); + +MONO_API void mono_gc_wait_for_bridge_processing (void); + +MONO_END_DECLS + +#endif diff --git a/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/threads.h b/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/threads.h new file mode 100644 index 0000000..b1b9103 --- /dev/null +++ b/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/threads.h @@ -0,0 +1,67 @@ +/** + * \file + * Threading API + * + * Author: + * Dick Porter (dick@ximian.com) + * Patrik Torstensson (patrik.torstensson@labs2.com) + * + * (C) 2001 Ximian, Inc + */ + +#ifndef _MONO_METADATA_THREADS_H_ +#define _MONO_METADATA_THREADS_H_ + +#include +#include +#include + +MONO_BEGIN_DECLS + +/* This callback should return TRUE if the runtime must wait for the thread, FALSE otherwise */ +typedef mono_bool (*MonoThreadManageCallback) (MonoThread* thread); + +MONO_API void mono_thread_init (MonoThreadStartCB start_cb, + MonoThreadAttachCB attach_cb); +MONO_API void mono_thread_cleanup (void); +MONO_API MONO_RT_EXTERNAL_ONLY +void mono_thread_manage(void); + +MONO_API MonoThread *mono_thread_current (void); + +MONO_API void mono_thread_set_main (MonoThread *thread); +MONO_API MonoThread *mono_thread_get_main (void); + +MONO_API MONO_RT_EXTERNAL_ONLY void mono_thread_stop (MonoThread *thread); + +MONO_API void mono_thread_new_init (intptr_t tid, void* stack_start, + void* func); + +MONO_API MONO_RT_EXTERNAL_ONLY void +mono_thread_create (MonoDomain *domain, void* func, void* arg); + +MONO_API MonoThread *mono_thread_attach (MonoDomain *domain); +MONO_API void mono_thread_detach (MonoThread *thread); +MONO_API void mono_thread_exit (void); + +MONO_API MONO_RT_EXTERNAL_ONLY void +mono_threads_attach_tools_thread (void); + +MONO_API char *mono_thread_get_name_utf8 (MonoThread *thread); +MONO_API int32_t mono_thread_get_managed_id (MonoThread *thread); + +MONO_API void mono_thread_set_manage_callback (MonoThread *thread, MonoThreadManageCallback func); + +MONO_API void mono_threads_set_default_stacksize (uint32_t stacksize); +MONO_API uint32_t mono_threads_get_default_stacksize (void); + +MONO_API void mono_threads_request_thread_dump (void); + +MONO_API mono_bool mono_thread_is_foreign (MonoThread *thread); + +MONO_API MONO_RT_EXTERNAL_ONLY mono_bool +mono_thread_detach_if_exiting (void); + +MONO_END_DECLS + +#endif /* _MONO_METADATA_THREADS_H_ */ diff --git a/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/tokentype.h b/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/tokentype.h new file mode 100644 index 0000000..a1c5894 --- /dev/null +++ b/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/tokentype.h @@ -0,0 +1,45 @@ +/** + * \file + */ + +#ifndef _MONO_METADATA_TOKENTYPE_H_ +#define _MONO_METADATA_TOKENTYPE_H_ + +/* + * These tokens match the table ID except for the last + * three (string, name and base type which are special) + */ + +typedef enum { + MONO_TOKEN_MODULE = 0x00000000, + MONO_TOKEN_TYPE_REF = 0x01000000, + MONO_TOKEN_TYPE_DEF = 0x02000000, + MONO_TOKEN_FIELD_DEF = 0x04000000, + MONO_TOKEN_METHOD_DEF = 0x06000000, + MONO_TOKEN_PARAM_DEF = 0x08000000, + MONO_TOKEN_INTERFACE_IMPL = 0x09000000, + MONO_TOKEN_MEMBER_REF = 0x0a000000, + MONO_TOKEN_CUSTOM_ATTRIBUTE = 0x0c000000, + MONO_TOKEN_PERMISSION = 0x0e000000, + MONO_TOKEN_SIGNATURE = 0x11000000, + MONO_TOKEN_EVENT = 0x14000000, + MONO_TOKEN_PROPERTY = 0x17000000, + MONO_TOKEN_MODULE_REF = 0x1a000000, + MONO_TOKEN_TYPE_SPEC = 0x1b000000, + MONO_TOKEN_ASSEMBLY = 0x20000000, + MONO_TOKEN_ASSEMBLY_REF = 0x23000000, + MONO_TOKEN_FILE = 0x26000000, + MONO_TOKEN_EXPORTED_TYPE = 0x27000000, + MONO_TOKEN_MANIFEST_RESOURCE = 0x28000000, + MONO_TOKEN_GENERIC_PARAM = 0x2a000000, + MONO_TOKEN_METHOD_SPEC = 0x2b000000, + + /* + * These do not match metadata tables directly + */ + MONO_TOKEN_STRING = 0x70000000, + MONO_TOKEN_NAME = 0x71000000, + MONO_TOKEN_BASE_TYPE = 0x72000000 +} MonoTokenType; + +#endif /* _MONO_METADATA_TOKENTYPE_H_ */ diff --git a/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/verify.h b/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/verify.h new file mode 100644 index 0000000..162ef44 --- /dev/null +++ b/ReHitman/Modules/Mono/include/mono-2.0/mono/metadata/verify.h @@ -0,0 +1,66 @@ +/** + * \file + */ + +#ifndef __MONO_METADATA_VERIFY_H__ +#define __MONO_METADATA_VERIFY_H__ + +#include +#include +#include +#include /* GSList dep */ + +MONO_BEGIN_DECLS + +typedef enum { + MONO_VERIFY_OK, + MONO_VERIFY_ERROR, + MONO_VERIFY_WARNING, + MONO_VERIFY_CLS = 4, + MONO_VERIFY_ALL = 7, + + /* Status signaling code that is not verifiable.*/ + MONO_VERIFY_NOT_VERIFIABLE = 8, + + /*OR it with other flags*/ + + /* Abort the verification if the code is not verifiable. + * The standard behavior is to abort if the code is not valid. + * */ + MONO_VERIFY_FAIL_FAST = 16, + + + /* Perform less verification of the code. This flag should be used + * if one wants the verifier to be more compatible to the MS runtime. + * Mind that this is not to be more compatible with MS peverify, but + * with the runtime itself, that has a less strict verifier. + */ + MONO_VERIFY_NON_STRICT = 32, + + /*Skip all visibility related checks*/ + MONO_VERIFY_SKIP_VISIBILITY = 64, + + /*Skip all visibility related checks*/ + MONO_VERIFY_REPORT_ALL_ERRORS = 128 + +} MonoVerifyStatus; + +typedef struct { + char *message; + MonoVerifyStatus status; +} MonoVerifyInfo; + +typedef struct { + MonoVerifyInfo info; + int8_t exception_type; /*should be one of MONO_EXCEPTION_* */ +} MonoVerifyInfoExtended; + + +MONO_API GSList* mono_method_verify (MonoMethod *method, int level); +MONO_API void mono_free_verify_list (GSList *list); +MONO_API char* mono_verify_corlib (void); + +MONO_END_DECLS + +#endif /* __MONO_METADATA_VERIFY_H__ */ + diff --git a/ReHitman/Modules/Mono/include/mono-2.0/mono/utils/mono-counters.h b/ReHitman/Modules/Mono/include/mono-2.0/mono/utils/mono-counters.h new file mode 100644 index 0000000..77175b3 --- /dev/null +++ b/ReHitman/Modules/Mono/include/mono-2.0/mono/utils/mono-counters.h @@ -0,0 +1,105 @@ +/** + * \file + */ + +#ifndef __MONO_COUNTERS_H__ +#define __MONO_COUNTERS_H__ + +#include +#include + +enum { + /* Counter type, bits 0-7. */ + MONO_COUNTER_INT, /* 32 bit int */ + MONO_COUNTER_UINT, /* 32 bit uint */ + MONO_COUNTER_WORD, /* pointer-sized int */ + MONO_COUNTER_LONG, /* 64 bit int */ + MONO_COUNTER_ULONG, /* 64 bit uint */ + MONO_COUNTER_DOUBLE, + MONO_COUNTER_STRING, /* char* */ + MONO_COUNTER_TIME_INTERVAL, /* 64 bits signed int holding usecs. */ + MONO_COUNTER_TYPE_MASK = 0xf, + MONO_COUNTER_CALLBACK = 128, /* ORed with the other values */ + MONO_COUNTER_SECTION_MASK = 0x00ffff00, + /* Sections, bits 8-23 (16 bits) */ + MONO_COUNTER_JIT = 1 << 8, + MONO_COUNTER_GC = 1 << 9, + MONO_COUNTER_METADATA = 1 << 10, + MONO_COUNTER_GENERICS = 1 << 11, + MONO_COUNTER_SECURITY = 1 << 12, + MONO_COUNTER_RUNTIME = 1 << 13, + MONO_COUNTER_SYSTEM = 1 << 14, + MONO_COUNTER_PERFCOUNTERS = 1 << 15, + MONO_COUNTER_PROFILER = 1 << 16, + MONO_COUNTER_INTERP = 1 << 17, + MONO_COUNTER_TIERED = 1 << 18, + MONO_COUNTER_LAST_SECTION, + + /* Unit, bits 24-27 (4 bits) */ + MONO_COUNTER_UNIT_SHIFT = 24, + MONO_COUNTER_UNIT_MASK = 0xFu << MONO_COUNTER_UNIT_SHIFT, + MONO_COUNTER_RAW = 0 << 24, /* Raw value */ + MONO_COUNTER_BYTES = 1 << 24, /* Quantity of bytes. RSS, active heap, etc */ + MONO_COUNTER_TIME = 2 << 24, /* Time interval in 100ns units. Minor pause, JIT compilation*/ + MONO_COUNTER_COUNT = 3 << 24, /* Number of things (threads, queued jobs) or Number of events triggered (Major collections, Compiled methods).*/ + MONO_COUNTER_PERCENTAGE = 4 << 24, /* [0-1] Fraction Percentage of something. Load average. */ + + /* Monotonicity, bits 28-31 (4 bits) */ + MONO_COUNTER_VARIANCE_SHIFT = 28, + MONO_COUNTER_VARIANCE_MASK = 0xFu << MONO_COUNTER_VARIANCE_SHIFT, + MONO_COUNTER_MONOTONIC = 1 << 28, /* This counter value always increase/decreases over time. Reported by --stat. */ + MONO_COUNTER_CONSTANT = 1 << 29, /* Fixed value. Used by configuration data. */ + MONO_COUNTER_VARIABLE = 1 << 30, /* This counter value can be anything on each sampling. Only interesting when sampling. */ +}; + +typedef struct _MonoCounter MonoCounter; + +MONO_API void mono_counters_enable (int section_mask); +MONO_API void mono_counters_init (void); + +/* + * register addr as the address of a counter of type type. + * It may be a function pointer if MONO_COUNTER_CALLBACK is specified: + * the function should return the value and take no arguments. + */ +MONO_API void mono_counters_register (const char* descr, int type, void *addr); +MONO_API void mono_counters_register_with_size (const char *name, int type, void *addr, int size); + +typedef void (*MonoCounterRegisterCallback) (MonoCounter*); +MONO_API void mono_counters_on_register (MonoCounterRegisterCallback callback); + +/* + * Create a readable dump of the counters for section_mask sections (ORed section values) + */ +MONO_API void mono_counters_dump (int section_mask, FILE *outfile); + +MONO_API void mono_counters_cleanup (void); + +typedef mono_bool (*CountersEnumCallback) (MonoCounter *counter, void *user_data); + +MONO_API void mono_counters_foreach (CountersEnumCallback cb, void *user_data); + +MONO_API int mono_counters_sample (MonoCounter *counter, void *buffer, int buffer_size); + +MONO_API const char* mono_counter_get_name (MonoCounter *name); +MONO_API int mono_counter_get_type (MonoCounter *counter); +MONO_API int mono_counter_get_section (MonoCounter *counter); +MONO_API int mono_counter_get_unit (MonoCounter *counter); +MONO_API int mono_counter_get_variance (MonoCounter *counter); +MONO_API size_t mono_counter_get_size (MonoCounter *counter); + +typedef enum { + MONO_RESOURCE_JIT_CODE, /* bytes */ + MONO_RESOURCE_METADATA, /* bytes */ + MONO_RESOURCE_GC_HEAP, /* bytes */ + MONO_RESOURCE_COUNT /* non-ABI value */ +} MonoResourceType; + +typedef void (*MonoResourceCallback) (int resource_type, uintptr_t value, int is_soft); + +MONO_API int mono_runtime_resource_limit (int resource_type, uintptr_t soft_limit, uintptr_t hard_limit); +MONO_API void mono_runtime_resource_set_callback (MonoResourceCallback callback); +MONO_API void mono_runtime_resource_check_limit (int resource_type, uintptr_t value); + +#endif /* __MONO_COUNTERS_H__ */ + diff --git a/ReHitman/Modules/Mono/include/mono-2.0/mono/utils/mono-dl-fallback.h b/ReHitman/Modules/Mono/include/mono-2.0/mono/utils/mono-dl-fallback.h new file mode 100644 index 0000000..11ec4f3 --- /dev/null +++ b/ReHitman/Modules/Mono/include/mono-2.0/mono/utils/mono-dl-fallback.h @@ -0,0 +1,43 @@ +/** + * \file + */ + +#ifndef __MONO_UTILS_DL_FALLBACK_H__ +#define __MONO_UTILS_DL_FALLBACK_H__ + +#include + +MONO_BEGIN_DECLS + +enum { + MONO_DL_EAGER = 0, + MONO_DL_LAZY = 1, + // If MONO_DL_LOCAL is set, it will trump MONO_DL_GLOBAL. + MONO_DL_LOCAL = 2, + // MONO_DL_MASK is unused internally and no longer a full mask on netcore, given the introduction of MONO_DL_GLOBAL. Avoid. + MONO_DL_MASK = 3, + // Only applicable when building Mono in netcore mode. + MONO_DL_GLOBAL = 4 +}; + +/* + * This is the dynamic loader fallback API + */ +typedef struct MonoDlFallbackHandler MonoDlFallbackHandler; + +/* + * The "err" variable contents must be allocated using g_malloc or g_strdup + */ +typedef void* (*MonoDlFallbackLoad) (const char *name, int flags, char **err, void *user_data); +typedef void* (*MonoDlFallbackSymbol) (void *handle, const char *name, char **err, void *user_data); +typedef void* (*MonoDlFallbackClose) (void *handle, void *user_data); + +MONO_API MonoDlFallbackHandler *mono_dl_fallback_register (MonoDlFallbackLoad load_func, MonoDlFallbackSymbol symbol_func, + MonoDlFallbackClose close_func, void *user_data); + +MONO_API void mono_dl_fallback_unregister (MonoDlFallbackHandler *handler); + +MONO_END_DECLS + +#endif /* __MONO_UTILS_DL_FALLBACK_H__ */ + diff --git a/ReHitman/Modules/Mono/include/mono-2.0/mono/utils/mono-error.h b/ReHitman/Modules/Mono/include/mono-2.0/mono/utils/mono-error.h new file mode 100644 index 0000000..69bfb8a --- /dev/null +++ b/ReHitman/Modules/Mono/include/mono-2.0/mono/utils/mono-error.h @@ -0,0 +1,105 @@ +/** + * \file + */ + +#ifndef __MONO_ERROR_H__ +#define __MONO_ERROR_H__ + +#include + +enum { + /* + The supplied strings were dup'd by means of calling mono_error_dup_strings. + */ + MONO_ERROR_FREE_STRINGS = 0x0001, + + /* + Something happened while processing the error and the resulting message is incomplete. + */ + MONO_ERROR_INCOMPLETE = 0x0002, + /* + This MonoError is heap allocated in a mempool + */ + MONO_ERROR_MEMPOOL_BOXED = 0x0004 +}; + +enum { + MONO_ERROR_NONE = 0, + MONO_ERROR_MISSING_METHOD = 1, + MONO_ERROR_MISSING_FIELD = 2, + MONO_ERROR_TYPE_LOAD = 3, + MONO_ERROR_FILE_NOT_FOUND = 4, + MONO_ERROR_BAD_IMAGE = 5, + MONO_ERROR_OUT_OF_MEMORY = 6, + MONO_ERROR_ARGUMENT = 7, + MONO_ERROR_ARGUMENT_NULL = 11, + MONO_ERROR_ARGUMENT_OUT_OF_RANGE = 14, + MONO_ERROR_NOT_VERIFIABLE = 8, + MONO_ERROR_INVALID_PROGRAM = 12, + MONO_ERROR_MEMBER_ACCESS = 13, + + /* + * This is a generic error mechanism is you need to raise an arbitrary corlib exception. + * You must pass the exception name otherwise prepare_exception will fail with internal execution. + */ + MONO_ERROR_GENERIC = 9, + /* This one encapsulates a managed exception instance */ + MONO_ERROR_EXCEPTION_INSTANCE = 10, + + /* Not a valid error code - indicates that the error was cleaned up and reused */ + MONO_ERROR_CLEANUP_CALLED_SENTINEL = 0xffff +}; + +#ifdef _MSC_VER +__pragma(warning (push)) +__pragma(warning (disable:4201)) +#endif + +/*Keep in sync with MonoErrorInternal*/ +typedef union _MonoError { + // Merge two uint16 into one uint32 so it can be initialized + // with one instruction instead of two. + uint32_t init; + struct { + uint16_t error_code; + uint16_t private_flags; /*DON'T TOUCH */ + void *hidden_1 [12]; /*DON'T TOUCH */ + }; +} MonoErrorExternal; + +#ifdef _MSC_VER +__pragma(warning (pop)) +#endif + +#ifdef MONO_INSIDE_RUNTIME +typedef union _MonoErrorInternal MonoError; +#else +typedef MonoErrorExternal MonoError; +#endif + +/* Mempool-allocated MonoError.*/ +typedef struct _MonoErrorBoxed MonoErrorBoxed; + +MONO_BEGIN_DECLS + +MONO_API MONO_RT_EXTERNAL_ONLY void +mono_error_init (MonoError *error); + +MONO_API void +mono_error_init_flags (MonoError *error, unsigned short flags); + +MONO_API void +mono_error_cleanup (MonoError *error); + +MONO_API MONO_RT_EXTERNAL_ONLY mono_bool +mono_error_ok (MonoError *error); + +MONO_API unsigned short +mono_error_get_error_code (MonoError *error); + +MONO_API const char* +mono_error_get_message (MonoError *error); + +MONO_END_DECLS + +#endif diff --git a/ReHitman/Modules/Mono/include/mono-2.0/mono/utils/mono-forward.h b/ReHitman/Modules/Mono/include/mono-2.0/mono/utils/mono-forward.h new file mode 100644 index 0000000..9f270f2 --- /dev/null +++ b/ReHitman/Modules/Mono/include/mono-2.0/mono/utils/mono-forward.h @@ -0,0 +1,13 @@ +/** + * \file + * + * (C) 2018 Microsoft, Inc. + * + */ +#ifndef _MONO_UTILS_FORWARD_ +#define _MONO_UTILS_FORWARD_ + +typedef struct _MonoDomain MonoDomain; +typedef struct _MonoJitInfo MonoJitInfo; + +#endif diff --git a/ReHitman/Modules/Mono/include/mono-2.0/mono/utils/mono-jemalloc.h b/ReHitman/Modules/Mono/include/mono-2.0/mono/utils/mono-jemalloc.h new file mode 100644 index 0000000..6721877 --- /dev/null +++ b/ReHitman/Modules/Mono/include/mono-2.0/mono/utils/mono-jemalloc.h @@ -0,0 +1,36 @@ +/** + * \file + * + * Header for jemalloc registration code + */ + +#ifndef __MONO_JEMALLOC_H__ +#define __MONO_JEMALLOC_H__ + +#if defined(MONO_JEMALLOC_ENABLED) + +#include + +/* Jemalloc can be configured in three ways. + * 1. You can use it with library loading hacks at run-time + * 2. You can use it as a global malloc replacement + * 3. You can use it with a prefix. If you use it with a prefix, you have to explicitly name the malloc function. + * + * In order to make this feature able to be toggled at run-time, I chose to use a prefix of mono_je. + * This mapping is captured below in the header, in the spirit of "no magic constants". + * + * The place that configures jemalloc and sets this prefix is in the Makefile in + * mono/jemalloc/Makefile.am + * + */ +#define MONO_JEMALLOC_MALLOC mono_jemalloc +#define MONO_JEMALLOC_REALLOC mono_jerealloc +#define MONO_JEMALLOC_FREE mono_jefree +#define MONO_JEMALLOC_CALLOC mono_jecalloc + +void mono_init_jemalloc (void); + +#endif + +#endif + diff --git a/ReHitman/Modules/Mono/include/mono-2.0/mono/utils/mono-logger.h b/ReHitman/Modules/Mono/include/mono-2.0/mono/utils/mono-logger.h new file mode 100644 index 0000000..a90e6c5 --- /dev/null +++ b/ReHitman/Modules/Mono/include/mono-2.0/mono/utils/mono-logger.h @@ -0,0 +1,31 @@ +/** + * \file + */ + +#ifndef __MONO_LOGGER_H__ +#define __MONO_LOGGER_H__ + +#include +MONO_BEGIN_DECLS + +MONO_API void +mono_trace_set_level_string (const char *value); + +MONO_API void +mono_trace_set_mask_string (const char *value); + +typedef void (*MonoPrintCallback) (const char *string, mono_bool is_stdout); +typedef void (*MonoLogCallback) (const char *log_domain, const char *log_level, const char *message, mono_bool fatal, void *user_data); + +MONO_API void +mono_trace_set_log_handler (MonoLogCallback callback, void *user_data); + +MONO_API void +mono_trace_set_print_handler (MonoPrintCallback callback); + +MONO_API void +mono_trace_set_printerr_handler (MonoPrintCallback callback); + +MONO_END_DECLS + +#endif /* __MONO_LOGGER_H__ */ diff --git a/ReHitman/Modules/Mono/include/mono-2.0/mono/utils/mono-publib.h b/ReHitman/Modules/Mono/include/mono-2.0/mono/utils/mono-publib.h new file mode 100644 index 0000000..1209f5c --- /dev/null +++ b/ReHitman/Modules/Mono/include/mono-2.0/mono/utils/mono-publib.h @@ -0,0 +1,194 @@ +/** + * \file + */ + +#ifndef __MONO_PUBLIB_H__ +#define __MONO_PUBLIB_H__ + +/* + * Minimal general purpose header for use in public mono header files. + * We can't include config.h, so we use compiler-specific preprocessor + * directives where needed. + */ + +#ifdef __cplusplus +#define MONO_BEGIN_DECLS extern "C" { +#define MONO_END_DECLS } +#else +#define MONO_BEGIN_DECLS /* nothing */ +#define MONO_END_DECLS /* nothing */ +#endif + +MONO_BEGIN_DECLS + +/* VS 2010 and later have stdint.h */ +#if defined(_MSC_VER) + +#if _MSC_VER < 1600 + +typedef __int8 int8_t; +typedef unsigned __int8 uint8_t; +typedef __int16 int16_t; +typedef unsigned __int16 uint16_t; +typedef __int32 int32_t; +typedef unsigned __int32 uint32_t; +typedef __int64 int64_t; +typedef unsigned __int64 uint64_t; + +#else + +#include + +#endif + +#define MONO_API_EXPORT __declspec(dllexport) +#define MONO_API_IMPORT __declspec(dllimport) + +#else + +#include + +#if defined (__clang__) || defined (__GNUC__) +#define MONO_API_EXPORT __attribute__ ((__visibility__ ("default"))) +#else +#define MONO_API_EXPORT +#endif +#define MONO_API_IMPORT + +#endif /* end of compiler-specific stuff */ + +#include + +#ifdef __cplusplus +#define MONO_EXTERN_C extern "C" +#else +#define MONO_EXTERN_C /* nothing */ +#endif + +#if defined(MONO_DLL_EXPORT) + #define MONO_API_NO_EXTERN_C MONO_API_EXPORT +#elif defined(MONO_DLL_IMPORT) + #define MONO_API_NO_EXTERN_C MONO_API_IMPORT +#else + #define MONO_API_NO_EXTERN_C /* nothing */ +#endif + +#define MONO_API MONO_EXTERN_C MONO_API_NO_EXTERN_C + +// extern "C" extern int c; // warning: duplicate 'extern' declaration specifier [-Wduplicate-decl-specifier] +// +// Therefore, remove extern on functions as always meaningless/redundant, +// and provide MONO_API_DATA for data, that always has one and only one extern. +#ifdef __cplusplus +#define MONO_API_DATA MONO_API +#else +#define MONO_API_DATA extern MONO_API +#endif + +typedef int32_t mono_bool; +typedef uint8_t mono_byte; +typedef mono_byte MonoBoolean; +#ifdef _WIN32 +MONO_END_DECLS +#include +typedef wchar_t mono_unichar2; +MONO_BEGIN_DECLS +#else +typedef uint16_t mono_unichar2; +#endif +typedef uint32_t mono_unichar4; + +typedef void (*MonoFunc) (void* data, void* user_data); +typedef void (*MonoHFunc) (void* key, void* value, void* user_data); + +MONO_API void mono_free (void *); + +#define MONO_ALLOCATOR_VTABLE_VERSION 1 + +typedef struct { + int version; + void *(*malloc) (size_t size); + void *(*realloc) (void *mem, size_t count); + void (*free) (void *mem); + void *(*calloc) (size_t count, size_t size); +} MonoAllocatorVTable; + +MONO_API mono_bool +mono_set_allocator_vtable (MonoAllocatorVTable* vtable); + + +#define MONO_CONST_RETURN const + +/* + * When embedding, you have to define MONO_ZERO_LEN_ARRAY before including any + * other Mono header file if you use a different compiler from the one used to + * build Mono. + */ +#ifndef MONO_ZERO_LEN_ARRAY +#ifdef __GNUC__ +#define MONO_ZERO_LEN_ARRAY 0 +#else +#define MONO_ZERO_LEN_ARRAY 1 +#endif +#endif + +#if defined (MONO_INSIDE_RUNTIME) + +#if defined (__CENTRINEL__) +/* Centrinel is an analyzer that warns about raw pointer to managed objects + * inside Mono. + */ +#define MONO_RT_MANAGED_ATTR __CENTRINEL_MANAGED_ATTR +#define MONO_RT_CENTRINEL_SUPPRESS __CENTRINEL_SUPPRESS_ATTR(1) +#else +#define MONO_RT_MANAGED_ATTR +#define MONO_RT_CENTRINEL_SUPPRESS +#endif + +#if defined (__clang__) || defined (__GNUC__) +// attribute(deprecated(message)) was introduced in gcc 4.5. +// attribute(deprecated)) was introduced in gcc 4.0. +// Compare: https://gcc.gnu.org/onlinedocs/gcc-3.4.6/gcc/Function-Attributes.html +// https://gcc.gnu.org/onlinedocs/gcc-4.4.0/gcc/Function-Attributes.html +// https://gcc.gnu.org/onlinedocs/gcc-4.5.0/gcc/Function-Attributes.html +#if defined (__clang__) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5) +#define MONO_RT_EXTERNAL_ONLY \ + __attribute__ ((__deprecated__ ("The mono runtime must not call this function."))) \ + MONO_RT_CENTRINEL_SUPPRESS +#elif __GNUC__ >= 4 +#define MONO_RT_EXTERNAL_ONLY __attribute__ ((__deprecated__)) MONO_RT_CENTRINEL_SUPPRESS +#else +#define MONO_RT_EXTERNAL_ONLY MONO_RT_CENTRINEL_SUPPRESS +#endif + +#if defined (__clang__) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2) +// Pragmas for controlling diagnostics appear to be from gcc 4.2. +// This is used in place of configure gcc -Werror=deprecated-declarations: +// 1. To be portable across build systems. +// 2. configure is very sensitive to compiler flags; they break autoconf's probes. +// Though #2 can be mitigated by being late in configure. +#pragma GCC diagnostic error "-Wdeprecated-declarations" +#endif + +#else +#define MONO_RT_EXTERNAL_ONLY MONO_RT_CENTRINEL_SUPPRESS +#endif // clang or gcc + +#else +#define MONO_RT_EXTERNAL_ONLY +#define MONO_RT_MANAGED_ATTR +#endif /* MONO_INSIDE_RUNTIME */ + +#if defined (__clang__) || defined (__GNUC__) +#define _MONO_DEPRECATED __attribute__ ((__deprecated__)) +#elif defined (_MSC_VER) +#define _MONO_DEPRECATED __declspec (deprecated) +#else +#define _MONO_DEPRECATED +#endif + +#define MONO_DEPRECATED MONO_API MONO_RT_EXTERNAL_ONLY _MONO_DEPRECATED + +MONO_END_DECLS + +#endif /* __MONO_PUBLIB_H__ */ diff --git a/ReHitman/Modules/Mono/lib/libmono-static-sgen.lib b/ReHitman/Modules/Mono/lib/libmono-static-sgen.lib new file mode 100644 index 0000000..f820616 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/libmono-static-sgen.lib differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Accessibility.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Accessibility.dll new file mode 100644 index 0000000..fc557d0 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Accessibility.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Commons.Xml.Relaxng.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Commons.Xml.Relaxng.dll new file mode 100644 index 0000000..979c84d Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Commons.Xml.Relaxng.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/CustomMarshalers.dll b/ReHitman/Modules/Mono/lib/mono/4.5/CustomMarshalers.dll new file mode 100644 index 0000000..8273c0a Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/CustomMarshalers.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/Microsoft.Win32.Primitives.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/Microsoft.Win32.Primitives.dll new file mode 100644 index 0000000..74aaa58 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/Microsoft.Win32.Primitives.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/Microsoft.Win32.Registry.AccessControl.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/Microsoft.Win32.Registry.AccessControl.dll new file mode 100644 index 0000000..019932e Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/Microsoft.Win32.Registry.AccessControl.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/Microsoft.Win32.Registry.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/Microsoft.Win32.Registry.dll new file mode 100644 index 0000000..b9beebe Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/Microsoft.Win32.Registry.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.AppContext.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.AppContext.dll new file mode 100644 index 0000000..3402bb0 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.AppContext.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Collections.Concurrent.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Collections.Concurrent.dll new file mode 100644 index 0000000..bcb9a5e Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Collections.Concurrent.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Collections.NonGeneric.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Collections.NonGeneric.dll new file mode 100644 index 0000000..9dba86c Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Collections.NonGeneric.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Collections.Specialized.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Collections.Specialized.dll new file mode 100644 index 0000000..d04d6a0 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Collections.Specialized.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Collections.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Collections.dll new file mode 100644 index 0000000..51a515a Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Collections.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.ComponentModel.Annotations.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.ComponentModel.Annotations.dll new file mode 100644 index 0000000..d40f0da Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.ComponentModel.Annotations.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.ComponentModel.EventBasedAsync.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.ComponentModel.EventBasedAsync.dll new file mode 100644 index 0000000..3725252 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.ComponentModel.EventBasedAsync.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.ComponentModel.Primitives.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.ComponentModel.Primitives.dll new file mode 100644 index 0000000..9b74a93 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.ComponentModel.Primitives.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.ComponentModel.TypeConverter.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.ComponentModel.TypeConverter.dll new file mode 100644 index 0000000..5f26d92 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.ComponentModel.TypeConverter.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.ComponentModel.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.ComponentModel.dll new file mode 100644 index 0000000..8f72374 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.ComponentModel.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Console.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Console.dll new file mode 100644 index 0000000..8c0725b Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Console.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Data.Common.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Data.Common.dll new file mode 100644 index 0000000..e43b145 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Data.Common.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Data.SqlClient.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Data.SqlClient.dll new file mode 100644 index 0000000..af53159 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Data.SqlClient.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Diagnostics.Contracts.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Diagnostics.Contracts.dll new file mode 100644 index 0000000..a4e6d6e Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Diagnostics.Contracts.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Diagnostics.Debug.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Diagnostics.Debug.dll new file mode 100644 index 0000000..dcf1ebc Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Diagnostics.Debug.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Diagnostics.FileVersionInfo.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Diagnostics.FileVersionInfo.dll new file mode 100644 index 0000000..fe07d9e Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Diagnostics.FileVersionInfo.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Diagnostics.Process.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Diagnostics.Process.dll new file mode 100644 index 0000000..985716f Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Diagnostics.Process.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Diagnostics.StackTrace.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Diagnostics.StackTrace.dll new file mode 100644 index 0000000..3b12234 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Diagnostics.StackTrace.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Diagnostics.TextWriterTraceListener.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Diagnostics.TextWriterTraceListener.dll new file mode 100644 index 0000000..cfbcb80 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Diagnostics.TextWriterTraceListener.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Diagnostics.Tools.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Diagnostics.Tools.dll new file mode 100644 index 0000000..afc38bc Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Diagnostics.Tools.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Diagnostics.TraceEvent.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Diagnostics.TraceEvent.dll new file mode 100644 index 0000000..480a182 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Diagnostics.TraceEvent.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Diagnostics.TraceSource.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Diagnostics.TraceSource.dll new file mode 100644 index 0000000..8b84851 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Diagnostics.TraceSource.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Diagnostics.Tracing.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Diagnostics.Tracing.dll new file mode 100644 index 0000000..20f1965 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Diagnostics.Tracing.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Drawing.Primitives.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Drawing.Primitives.dll new file mode 100644 index 0000000..6359afd Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Drawing.Primitives.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Dynamic.Runtime.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Dynamic.Runtime.dll new file mode 100644 index 0000000..c996be5 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Dynamic.Runtime.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Globalization.Calendars.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Globalization.Calendars.dll new file mode 100644 index 0000000..8d36102 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Globalization.Calendars.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Globalization.Extensions.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Globalization.Extensions.dll new file mode 100644 index 0000000..aa1938c Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Globalization.Extensions.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Globalization.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Globalization.dll new file mode 100644 index 0000000..7599003 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Globalization.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.IO.Compression.ZipFile.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.IO.Compression.ZipFile.dll new file mode 100644 index 0000000..94a7653 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.IO.Compression.ZipFile.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.IO.FileSystem.AccessControl.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.IO.FileSystem.AccessControl.dll new file mode 100644 index 0000000..7a00997 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.IO.FileSystem.AccessControl.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.IO.FileSystem.DriveInfo.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.IO.FileSystem.DriveInfo.dll new file mode 100644 index 0000000..897f289 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.IO.FileSystem.DriveInfo.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.IO.FileSystem.Primitives.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.IO.FileSystem.Primitives.dll new file mode 100644 index 0000000..5ad17b2 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.IO.FileSystem.Primitives.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.IO.FileSystem.Watcher.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.IO.FileSystem.Watcher.dll new file mode 100644 index 0000000..ddc6e90 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.IO.FileSystem.Watcher.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.IO.FileSystem.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.IO.FileSystem.dll new file mode 100644 index 0000000..b259fc2 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.IO.FileSystem.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.IO.IsolatedStorage.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.IO.IsolatedStorage.dll new file mode 100644 index 0000000..3cc54e8 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.IO.IsolatedStorage.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.IO.MemoryMappedFiles.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.IO.MemoryMappedFiles.dll new file mode 100644 index 0000000..49e108a Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.IO.MemoryMappedFiles.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.IO.Pipes.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.IO.Pipes.dll new file mode 100644 index 0000000..427a054 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.IO.Pipes.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.IO.UnmanagedMemoryStream.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.IO.UnmanagedMemoryStream.dll new file mode 100644 index 0000000..76241a0 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.IO.UnmanagedMemoryStream.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.IO.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.IO.dll new file mode 100644 index 0000000..8dcb896 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.IO.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Linq.Expressions.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Linq.Expressions.dll new file mode 100644 index 0000000..ff9e76d Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Linq.Expressions.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Linq.Parallel.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Linq.Parallel.dll new file mode 100644 index 0000000..8828118 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Linq.Parallel.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Linq.Queryable.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Linq.Queryable.dll new file mode 100644 index 0000000..cf1aaba Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Linq.Queryable.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Linq.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Linq.dll new file mode 100644 index 0000000..16a4414 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Linq.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Net.AuthenticationManager.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Net.AuthenticationManager.dll new file mode 100644 index 0000000..f8266fc Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Net.AuthenticationManager.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Net.Cache.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Net.Cache.dll new file mode 100644 index 0000000..49d2566 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Net.Cache.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Net.Http.Rtc.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Net.Http.Rtc.dll new file mode 100644 index 0000000..1845e9d Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Net.Http.Rtc.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Net.HttpListener.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Net.HttpListener.dll new file mode 100644 index 0000000..0141f2b Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Net.HttpListener.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Net.Mail.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Net.Mail.dll new file mode 100644 index 0000000..e473231 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Net.Mail.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Net.NameResolution.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Net.NameResolution.dll new file mode 100644 index 0000000..14aa7bc Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Net.NameResolution.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Net.NetworkInformation.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Net.NetworkInformation.dll new file mode 100644 index 0000000..5aefaed Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Net.NetworkInformation.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Net.Ping.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Net.Ping.dll new file mode 100644 index 0000000..7ec8dd5 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Net.Ping.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Net.Primitives.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Net.Primitives.dll new file mode 100644 index 0000000..40a904c Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Net.Primitives.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Net.Requests.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Net.Requests.dll new file mode 100644 index 0000000..95cfc1f Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Net.Requests.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Net.Security.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Net.Security.dll new file mode 100644 index 0000000..f4d4b28 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Net.Security.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Net.ServicePoint.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Net.ServicePoint.dll new file mode 100644 index 0000000..ee8c322 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Net.ServicePoint.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Net.Sockets.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Net.Sockets.dll new file mode 100644 index 0000000..142de1b Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Net.Sockets.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Net.Utilities.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Net.Utilities.dll new file mode 100644 index 0000000..407eb1b Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Net.Utilities.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Net.WebHeaderCollection.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Net.WebHeaderCollection.dll new file mode 100644 index 0000000..8585f16 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Net.WebHeaderCollection.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Net.WebSockets.Client.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Net.WebSockets.Client.dll new file mode 100644 index 0000000..18078f6 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Net.WebSockets.Client.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Net.WebSockets.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Net.WebSockets.dll new file mode 100644 index 0000000..0dcb15e Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Net.WebSockets.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.ObjectModel.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.ObjectModel.dll new file mode 100644 index 0000000..b06a0f3 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.ObjectModel.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Reflection.Emit.ILGeneration.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Reflection.Emit.ILGeneration.dll new file mode 100644 index 0000000..4435ea2 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Reflection.Emit.ILGeneration.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Reflection.Emit.Lightweight.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Reflection.Emit.Lightweight.dll new file mode 100644 index 0000000..d5d7b54 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Reflection.Emit.Lightweight.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Reflection.Emit.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Reflection.Emit.dll new file mode 100644 index 0000000..2fbf443 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Reflection.Emit.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Reflection.Extensions.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Reflection.Extensions.dll new file mode 100644 index 0000000..d7dc48d Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Reflection.Extensions.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Reflection.Primitives.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Reflection.Primitives.dll new file mode 100644 index 0000000..1897033 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Reflection.Primitives.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Reflection.TypeExtensions.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Reflection.TypeExtensions.dll new file mode 100644 index 0000000..5acc281 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Reflection.TypeExtensions.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Reflection.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Reflection.dll new file mode 100644 index 0000000..d1fe470 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Reflection.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Resources.Reader.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Resources.Reader.dll new file mode 100644 index 0000000..3c55fe0 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Resources.Reader.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Resources.ReaderWriter.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Resources.ReaderWriter.dll new file mode 100644 index 0000000..593bdf0 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Resources.ReaderWriter.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Resources.ResourceManager.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Resources.ResourceManager.dll new file mode 100644 index 0000000..40e2095 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Resources.ResourceManager.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Resources.Writer.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Resources.Writer.dll new file mode 100644 index 0000000..d4edd9c Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Resources.Writer.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Runtime.CompilerServices.VisualC.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Runtime.CompilerServices.VisualC.dll new file mode 100644 index 0000000..07921d7 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Runtime.CompilerServices.VisualC.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Runtime.Extensions.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Runtime.Extensions.dll new file mode 100644 index 0000000..e746f4a Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Runtime.Extensions.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Runtime.Handles.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Runtime.Handles.dll new file mode 100644 index 0000000..2f08c90 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Runtime.Handles.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Runtime.InteropServices.RuntimeInformation.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Runtime.InteropServices.RuntimeInformation.dll new file mode 100644 index 0000000..e104a9b Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Runtime.InteropServices.RuntimeInformation.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Runtime.InteropServices.WindowsRuntime.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Runtime.InteropServices.WindowsRuntime.dll new file mode 100644 index 0000000..0853d89 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Runtime.InteropServices.WindowsRuntime.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Runtime.InteropServices.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Runtime.InteropServices.dll new file mode 100644 index 0000000..3735b02 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Runtime.InteropServices.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Runtime.Numerics.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Runtime.Numerics.dll new file mode 100644 index 0000000..f123f35 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Runtime.Numerics.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Runtime.Serialization.Formatters.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Runtime.Serialization.Formatters.dll new file mode 100644 index 0000000..43be29b Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Runtime.Serialization.Formatters.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Runtime.Serialization.Json.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Runtime.Serialization.Json.dll new file mode 100644 index 0000000..072a194 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Runtime.Serialization.Json.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Runtime.Serialization.Primitives.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Runtime.Serialization.Primitives.dll new file mode 100644 index 0000000..aa99edb Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Runtime.Serialization.Primitives.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Runtime.Serialization.Xml.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Runtime.Serialization.Xml.dll new file mode 100644 index 0000000..31677a8 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Runtime.Serialization.Xml.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Runtime.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Runtime.dll new file mode 100644 index 0000000..5546504 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Runtime.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.AccessControl.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.AccessControl.dll new file mode 100644 index 0000000..e9d98c6 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.AccessControl.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.Claims.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.Claims.dll new file mode 100644 index 0000000..e2afecf Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.Claims.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.Algorithms.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.Algorithms.dll new file mode 100644 index 0000000..638a4cf Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.Algorithms.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.Csp.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.Csp.dll new file mode 100644 index 0000000..85e5165 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.Csp.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.DeriveBytes.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.DeriveBytes.dll new file mode 100644 index 0000000..ce4915b Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.DeriveBytes.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.Encoding.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.Encoding.dll new file mode 100644 index 0000000..772db7c Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.Encoding.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.Encryption.Aes.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.Encryption.Aes.dll new file mode 100644 index 0000000..86177f5 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.Encryption.Aes.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.Encryption.ECDiffieHellman.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.Encryption.ECDiffieHellman.dll new file mode 100644 index 0000000..d47a100 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.Encryption.ECDiffieHellman.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.Encryption.ECDsa.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.Encryption.ECDsa.dll new file mode 100644 index 0000000..6a7f249 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.Encryption.ECDsa.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.Encryption.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.Encryption.dll new file mode 100644 index 0000000..6b43182 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.Encryption.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.Hashing.Algorithms.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.Hashing.Algorithms.dll new file mode 100644 index 0000000..119082a Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.Hashing.Algorithms.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.Hashing.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.Hashing.dll new file mode 100644 index 0000000..1930b07 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.Hashing.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.Primitives.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.Primitives.dll new file mode 100644 index 0000000..2a3a180 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.Primitives.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.ProtectedData.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.ProtectedData.dll new file mode 100644 index 0000000..6eba49b Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.ProtectedData.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.RSA.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.RSA.dll new file mode 100644 index 0000000..debcab3 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.RSA.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.RandomNumberGenerator.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.RandomNumberGenerator.dll new file mode 100644 index 0000000..2155e75 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.RandomNumberGenerator.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.X509Certificates.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.X509Certificates.dll new file mode 100644 index 0000000..ad021ec Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.Cryptography.X509Certificates.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.Principal.Windows.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.Principal.Windows.dll new file mode 100644 index 0000000..11cd569 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.Principal.Windows.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.Principal.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.Principal.dll new file mode 100644 index 0000000..bbc4540 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.Principal.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.SecureString.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.SecureString.dll new file mode 100644 index 0000000..bcfb595 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Security.SecureString.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.ServiceModel.Duplex.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.ServiceModel.Duplex.dll new file mode 100644 index 0000000..dbc0857 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.ServiceModel.Duplex.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.ServiceModel.Http.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.ServiceModel.Http.dll new file mode 100644 index 0000000..5dc9a7e Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.ServiceModel.Http.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.ServiceModel.NetTcp.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.ServiceModel.NetTcp.dll new file mode 100644 index 0000000..149c86b Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.ServiceModel.NetTcp.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.ServiceModel.Primitives.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.ServiceModel.Primitives.dll new file mode 100644 index 0000000..b33d849 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.ServiceModel.Primitives.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.ServiceModel.Security.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.ServiceModel.Security.dll new file mode 100644 index 0000000..eab1f52 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.ServiceModel.Security.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.ServiceProcess.ServiceController.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.ServiceProcess.ServiceController.dll new file mode 100644 index 0000000..5bee89a Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.ServiceProcess.ServiceController.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Text.Encoding.CodePages.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Text.Encoding.CodePages.dll new file mode 100644 index 0000000..744634c Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Text.Encoding.CodePages.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Text.Encoding.Extensions.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Text.Encoding.Extensions.dll new file mode 100644 index 0000000..0d9db9d Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Text.Encoding.Extensions.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Text.Encoding.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Text.Encoding.dll new file mode 100644 index 0000000..5bdf543 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Text.Encoding.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Text.RegularExpressions.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Text.RegularExpressions.dll new file mode 100644 index 0000000..ce93271 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Text.RegularExpressions.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Threading.AccessControl.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Threading.AccessControl.dll new file mode 100644 index 0000000..ac53fbe Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Threading.AccessControl.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Threading.Overlapped.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Threading.Overlapped.dll new file mode 100644 index 0000000..9adbb2f Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Threading.Overlapped.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Threading.Tasks.Parallel.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Threading.Tasks.Parallel.dll new file mode 100644 index 0000000..86fc1e2 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Threading.Tasks.Parallel.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Threading.Tasks.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Threading.Tasks.dll new file mode 100644 index 0000000..ca68dd4 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Threading.Tasks.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Threading.Thread.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Threading.Thread.dll new file mode 100644 index 0000000..9fd6fb0 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Threading.Thread.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Threading.ThreadPool.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Threading.ThreadPool.dll new file mode 100644 index 0000000..f577541 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Threading.ThreadPool.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Threading.Timer.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Threading.Timer.dll new file mode 100644 index 0000000..ccbe1de Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Threading.Timer.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Threading.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Threading.dll new file mode 100644 index 0000000..c7823d3 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Threading.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.ValueTuple.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.ValueTuple.dll new file mode 100644 index 0000000..02f997d Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.ValueTuple.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Xml.ReaderWriter.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Xml.ReaderWriter.dll new file mode 100644 index 0000000..1812acf Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Xml.ReaderWriter.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Xml.XDocument.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Xml.XDocument.dll new file mode 100644 index 0000000..fde2b25 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Xml.XDocument.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Xml.XPath.XDocument.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Xml.XPath.XDocument.dll new file mode 100644 index 0000000..e1269c3 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Xml.XPath.XDocument.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Xml.XPath.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Xml.XPath.dll new file mode 100644 index 0000000..e1d74b4 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Xml.XPath.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Xml.XmlDocument.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Xml.XmlDocument.dll new file mode 100644 index 0000000..e79fc8e Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Xml.XmlDocument.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Xml.XmlSerializer.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Xml.XmlSerializer.dll new file mode 100644 index 0000000..3f3b638 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Xml.XmlSerializer.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Xml.Xsl.Primitives.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Xml.Xsl.Primitives.dll new file mode 100644 index 0000000..4040464 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/System.Xml.Xsl.Primitives.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Facades/netstandard.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/netstandard.dll new file mode 100644 index 0000000..13df695 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Facades/netstandard.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/I18N.CJK.dll b/ReHitman/Modules/Mono/lib/mono/4.5/I18N.CJK.dll new file mode 100644 index 0000000..98fdb76 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/I18N.CJK.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/I18N.MidEast.dll b/ReHitman/Modules/Mono/lib/mono/4.5/I18N.MidEast.dll new file mode 100644 index 0000000..1172ebf Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/I18N.MidEast.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/I18N.Other.dll b/ReHitman/Modules/Mono/lib/mono/4.5/I18N.Other.dll new file mode 100644 index 0000000..99823b7 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/I18N.Other.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/I18N.Rare.dll b/ReHitman/Modules/Mono/lib/mono/4.5/I18N.Rare.dll new file mode 100644 index 0000000..725aace Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/I18N.Rare.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/I18N.West.dll b/ReHitman/Modules/Mono/lib/mono/4.5/I18N.West.dll new file mode 100644 index 0000000..6d63680 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/I18N.West.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/I18N.dll b/ReHitman/Modules/Mono/lib/mono/4.5/I18N.dll new file mode 100644 index 0000000..8a917aa Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/I18N.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/IBM.Data.DB2.dll b/ReHitman/Modules/Mono/lib/mono/4.5/IBM.Data.DB2.dll new file mode 100644 index 0000000..4a7b2b3 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/IBM.Data.DB2.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/ICSharpCode.SharpZipLib.dll b/ReHitman/Modules/Mono/lib/mono/4.5/ICSharpCode.SharpZipLib.dll new file mode 100644 index 0000000..02fcdb3 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/ICSharpCode.SharpZipLib.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/MSBuild/Microsoft.Build.CommonTypes.xsd b/ReHitman/Modules/Mono/lib/mono/4.5/MSBuild/Microsoft.Build.CommonTypes.xsd new file mode 100644 index 0000000..148f6bf --- /dev/null +++ b/ReHitman/Modules/Mono/lib/mono/4.5/MSBuild/Microsoft.Build.CommonTypes.xsd @@ -0,0 +1,1581 @@ + + + + + + + + + + + Reference to an assembly + + + + + + + + + Relative or absolute path to the assembly (optional) + + + + + Friendly display name (optional) + + + + + Fusion name of the assembly (optional) + + + + + Whether only the version in the fusion name should be referenced (optional, boolean) + + + + + Aliases for the reference (optional) + + + + + Whether the reference should be copied to the output folder (optional, boolean) + + + + + + + + Assembly name or filename + + + + + + + + + Reference to a COM component + + + + + + + + + Friendly display name (optional) + + + + + GUID in the form {00000000-0000-0000-0000-000000000000} + + + + + Major part of the version number + + + + + Minor part of the version number + + + + + Locale ID + + + + + Wrapper tool, such as tlbimp + + + + + Is it isolated (boolean) + + + + + + + + COM component name + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Path to native reference + + + + + + + + + Reference to another project + + + + + + + + + Friendly display name (optional) + + + + + Project GUID, in the form {00000000-0000-0000-0000-000000000000} + + + + + + + + + Path to project file + + + + + + + + + Source files for compiler + + + + + + + + + + + Whether file was generated from another file (boolean) + + + + + + Notional path within project to display if the file is physically located outside of the project file's cone (optional) + + + + + + Display in user interface (optional, boolean) + + + + + + + + Semi-colon separated list of source files (wildcards are allowed) + + + + + + + + + Resources to be embedded in the generated assembly + + + + + + + + + + Name of any file generator that is run on this item + + + + + File that was created by any file generator that was run on this item + + + + + Namespace into which any file generator that is run on this item should create code + + + + + Notional path within project to display if the file is physically located outside of the project file's cone (optional) + + + + + Display in user interface (optional, boolean) + + + + + + + + + Semi-colon separated list of resource files (wildcards are allowed) + + + + + + + + + Files that are not compiled, but may be embedded or published + + + + + + + + + + Name of any file generator that is run on this item + + + + + + + Notional path within project to display if the file is physically located outside of the project file's cone (optional) + + + + + + Default, Included, Excluded, DataFile, or Prerequisite + + + + + + Display in user interface (optional, boolean) + + + + + + Copy file to output directory (optional, boolean, default false) + + + + + + + + Semi-colon separated list of content files (wildcards are allowed) + + + + + + + + + Files that should have no role in the build process + + + + + + + + + + + Name of any file generator that is run on this item + + + + + + + Notional path within project to display if the file is physically located outside of the project file's cone (optional) + + + + + Display in user interface (optional, boolean) + + + + + + + + + + + Folder on disk + + + + + Assemblies whose namespaces should be imported by the Visual Basic compiler + + + + + + Name of Web References folder to display in user interface + + + + + Represents a reference to a web service + + + + + + + + + + + + + + + + + + + URL to web service + + + + + + + + + + + + + + + Display in user interface (optional, boolean) + + + + + + + + + + + + + + + + + + + Display in user interface (optional, boolean) + + + + + + (boolean) + + + + + Default, Included, Excluded, DataFile, or Prerequisite + + + + + + + + + + + + + + + integer + + + + + Matches the expression "\d\.\d\.\d\.(\d|\*)" + + + + + Name of folder for Application Designer + + + + + + + Name of output assembly + + + + + + + + + boolean + + + + + + HomeSite, Relative, or Absolute + + + + + + boolean + + + + + + + + + boolean + + + + + + Whether to emit symbols (boolean) + + + + + none, pdbonly, or full + + + + + + + + + Whether DEBUG is defined (boolean) + + + + + Whether TRACE is defined (boolean) + + + + + + + boolean + + + + + + + + + + + + + + + + + + + + + + + + Web, Unc, or Disk + + + + + + + + + + + boolean + + + + + Matches the expression "\d\.\d\.\d\.\d" + + + + + + + + Whether standard libraries (such as mscorlib) should be referenced automatically (boolean) + + + + + Comma separated list of disabled warnings + + + + + boolean + + + + + Should compiler optimize output (boolean) + + + + + Option Compare setting (Text or Binary) + + + + + Should Option Explicit be set (On or Off) + + + + + Should Option Strict be set (On or Off) + + + + + + Path to output folder, with trailing slash + + + + + Type of output to generate (WinExe, Exe, or Library) + + + + + + + + + Command line to be run at the end of build + + + + + Command line to be run at the start of build + + + + + + + + + + + + + Semi-colon separated list of folders to search during reference resolution + + + + + + + + + + + + + + + + + + + + + + + + Type that contains the main entry point + + + + + + + + + boolean + + + + + + boolean + + + + + + Hours, Days, or Weeks + + + + + Foreground or Background + + + + + boolean + + + + + boolean + + + + + + + + + integer between 0 and 4 inclusive + + + + + Comma separated list of warning numbers to treat as errors + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/MSBuild/Microsoft.Build.Core.xsd b/ReHitman/Modules/Mono/lib/mono/4.5/MSBuild/Microsoft.Build.Core.xsd new file mode 100644 index 0000000..c8f2aac --- /dev/null +++ b/ReHitman/Modules/Mono/lib/mono/4.5/MSBuild/Microsoft.Build.Core.xsd @@ -0,0 +1,390 @@ + + + + + + + + + + + + + + Optional semi-colon separated list of one or more targets that will be built if no targets are otherwise specified + + + + + + + + + + + + + Logs an Error event + + + + + Logs a Warning event + + + + + + + + + + + + + + + + Logs an Error event + + + + + Logs a Warning event + + + + + + + + + + + + + + + + + + + + Groups tasks into a section of the build process + + + + + + + + + + + Name of the target + + + + + Optional semi-colon separated list of targets that should be run before this target + + + + + Optional semi-colon separated list of files that form inputs into this target. Their timestamps will be compared with the timestamps of files in Outputs to determine whether the Target is up to date + + + + + Optional semi-colon separated list of files that form outputs into this target. Their timestamps will be compared with the timestamps of files in Inputs to determine whether the Target is up to date + + + + + Optional expression evaluated to determine whether the Target and the targets it depends on should be run + + + + + + + Groups property definitions + + + + + + + Optional expression evaluated to determine whether the PropertyGroup should be used + + + + + + + Groups item list definitions + + + + + + + Optional expression evaluated to determine whether the ItemGroup should be used + + + + + + + Groups When and Otherwise elements + + + + + + + + + + Groups PropertyGroup and/or ItemGroup elements + + + + + + + + + + + Optional expression evaluated to determine whether the child PropertyGroups and/or ItemGroups should be used + + + + + + + Groups PropertyGroup and/or ItemGroup elements that are used if no Conditions on sibling When elements evaluate to true + + + + + + + + + + + + + Specifies targets to execute in the event of a recoverable error + + + + Optional expression evaluated to determine whether the targets should be executed + + + + + Semi-colon separated list of targets to execute + + + + + + + Logs an informational Message event, with an optional Importance + + + + Optional expression evaluated to determine whether the Message should be logged + + + + + Optional priority level. Allowed values are Low, Normal (default), and High + + + + + Text to log + + + + + + + + Optional expression evaluated to determine whether the text should be logged + + + + + Text to log + + + + + + + Declares where to load a task that will be used in the project + + + + Optional expression evaluated to determine whether the declaration should be evaluated + + + + + Optional name of assembly containing the task. Either AssemblyName or AssemblyFile must be used + + + + + Optional path to assembly containing the task. Either AssemblyName or AssemblyFile must be used + + + + + Name of task class in the assembly + + + + + + + Declares that the contents of another project file should be inserted at this location + + + + Optional expression evaluated to determine whether the import should occur + + + + + Project file to import + + + + + + + Optional section used by MSBuild hosts, that may contain arbitrary XML content that is ignored by MSBuild itself + + + + + + + + + + + + + Optional expression evaluated to determine whether the items should be evaluated + + + + + Semi-colon separated list of files (wildcards are allowed) or other item names to include in this item list + + + + + Semi-colon separated list of files (wildcards are allowed) or other item names to exclude from the Include list + + + + + + + + + + + + + + + + + + + + + + + + + Optional expression evaluated to determine whether the property should be evaluated + + + + + + + + + + + + + + Optional expression evaluated to determine whether the property should be evaluated + + + + + + + + + + + Optional element specifying a specific task output to be gathered + + + + + Task parameter to gather. Matches the name of a .NET Property on the task class that has an [Output] attribute + + + + + Optional name of an item list to put the gathered outputs into. Either ItemName or PropertyName must be specified + + + + + Optional name of a property to put the gathered output into. Either PropertyName or ItemName must be specified + + + + + Optional expression evaluated to determine whether the output should be gathered + + + + + + + + Optional expression evaluated to determine whether the task should be executed + + + + + Optional boolean indicating whether a recoverable task error should be ignored. Default false + + + + + + + + + + + + diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Microsoft.Build.Engine.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Microsoft.Build.Engine.dll new file mode 100644 index 0000000..59c2ad0 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Microsoft.Build.Engine.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Microsoft.Build.Framework.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Microsoft.Build.Framework.dll new file mode 100644 index 0000000..6350fa1 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Microsoft.Build.Framework.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Microsoft.Build.Tasks.v4.0.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Microsoft.Build.Tasks.v4.0.dll new file mode 100644 index 0000000..992f3b4 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Microsoft.Build.Tasks.v4.0.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Microsoft.Build.Utilities.v4.0.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Microsoft.Build.Utilities.v4.0.dll new file mode 100644 index 0000000..3823aaf Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Microsoft.Build.Utilities.v4.0.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Microsoft.Build.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Microsoft.Build.dll new file mode 100644 index 0000000..69cd92a Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Microsoft.Build.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Microsoft.Build.xsd b/ReHitman/Modules/Mono/lib/mono/4.5/Microsoft.Build.xsd new file mode 100644 index 0000000..e88f00f --- /dev/null +++ b/ReHitman/Modules/Mono/lib/mono/4.5/Microsoft.Build.xsd @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Microsoft.CSharp.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Microsoft.CSharp.dll new file mode 100644 index 0000000..e7775f9 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Microsoft.CSharp.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Microsoft.CSharp.targets b/ReHitman/Modules/Mono/lib/mono/4.5/Microsoft.CSharp.targets new file mode 100644 index 0000000..2cd20a1 --- /dev/null +++ b/ReHitman/Modules/Mono/lib/mono/4.5/Microsoft.CSharp.targets @@ -0,0 +1,142 @@ + + + .cs + C# + + + + false + + + + + + + + $(MSBuildAllProjects);$(MSBuildToolsPath)\Microsoft.CSharp.targets + + + + true + + + + + + + + + + <_ExplicitReference Include="@(_TargetFrameworkDirectories->'%(FullPath)\mscorlib.dll')" Condition="Exists('%(FullPath)\mscorlib.dll')"> + false + + + + <_ExplicitMSCorlibPath>$([Microsoft.Build.Utilities.ToolLocationHelper]::GetPathToStandardLibraries ('$(TargetFrameworkIdentifier)', '$(TargetFrameworkVersion)', '$(TargetFrameworkProfile)'))\mscorlib.dll + + + <_ExplicitReference Include="@(_TargetFrameworkDirectories->'%(FullPath)\mscorlib.dll')" Condition="Exists('%(FullPath)\mscorlib.dll')"> + false + + + + <_ExplicitReference Include="$(_ExplicitMSCorlibPath)" Condition="Exists('$(_ExplicitMSCorlibPath)')"> + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $(ResolveAssemblyReferencesDependsOn);_AddCorlibReference + + + + +// <autogenerated /> +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute("$(TargetFrameworkMoniker)", FrameworkDisplayName = "$(TargetFrameworkMonikerDisplayName)")] + + + + diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Microsoft.CodeAnalysis.CSharp.Scripting.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Microsoft.CodeAnalysis.CSharp.Scripting.dll new file mode 100644 index 0000000..114605a Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Microsoft.CodeAnalysis.CSharp.Scripting.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Microsoft.CodeAnalysis.CSharp.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Microsoft.CodeAnalysis.CSharp.dll new file mode 100644 index 0000000..d798e20 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Microsoft.CodeAnalysis.CSharp.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Microsoft.CodeAnalysis.Scripting.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Microsoft.CodeAnalysis.Scripting.dll new file mode 100644 index 0000000..41aa5c4 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Microsoft.CodeAnalysis.Scripting.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Microsoft.CodeAnalysis.VisualBasic.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Microsoft.CodeAnalysis.VisualBasic.dll new file mode 100644 index 0000000..d511939 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Microsoft.CodeAnalysis.VisualBasic.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Microsoft.CodeAnalysis.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Microsoft.CodeAnalysis.dll new file mode 100644 index 0000000..4f816c1 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Microsoft.CodeAnalysis.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Microsoft.Common.targets b/ReHitman/Modules/Mono/lib/mono/4.5/Microsoft.Common.targets new file mode 100644 index 0000000..ff82f81 --- /dev/null +++ b/ReHitman/Modules/Mono/lib/mono/4.5/Microsoft.Common.targets @@ -0,0 +1,957 @@ + + + true + true + + + + + + + + Exe + .exe + .exe + .dll + .netmodule + + + + $(MSBuildProjectDirectory)\ + + + + + 11.0 + + + + $(MSBuildProjectName) + $(OutputPath)\ + bin\Debug\ + + .NETFramework + v4.0 + + $(TargetFrameworkIdentifier),Version=$(TargetFrameworkVersion),Profile=$(TargetFrameworkProfile) + $(TargetFrameworkIdentifier),Version=$(TargetFrameworkVersion) + + + + $(OutputPath) + $(OutDir)\ + + <_OriginalConfiguration>$(Configuration) + Debug + $(Configuration) + + <_OriginalPlatform>$(Platform) + AnyCPU + $(Platform) + + + + + true + System.Core;$(AdditionalExplicitAssemblyReferences) + + + + true + + + + obj\ + $(BaseIntermediateOutputPath)\ + $(MSBuildProjectFile).FilesWrittenAbsolute.txt + + + + $(BaseIntermediateOutputPath)$(Configuration)\ + $(BaseIntermediateOutputPath)$(PlatformName)\$(Configuration)\ + + + + $(IntermediateOutputPath)\ + + + + + + + <_OutDirItem Include="$(OutDir)"/> + + + + $(AssemblyName) + $(TargetName)$(TargetExt) + @(_OutDirItem->'%(FullPath)') + @(_OutDirItem->'%(FullPath)\$(TargetFileName)') + $(MSBuildAllProjects);$(MSBuildProjectFullPath);$(MSBuildToolsPath)\Microsoft.Common.targets + $(AssemblyOriginatorKeyFile) + true + + + + + + + + + + + + + AssignLinkMetadata + + + + + + + + + + + + + + + + + + + + + + + + + <_EmbeddedResourceWithLinkAssigned Remove="@(_EmbeddedResourceWithLinkAssigned)" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_TargetFrameworkDirectories Include="$(_TargetFrameworkDirectories);$(TargetFrameworkDirectory)" KeepDuplicates="false" /> + + + @(_TargetFrameworkDirectories) + + + + + + <_DesignTimeFacadeAssemblies Include="%(DesignTimeFacadeDirectories.Identity)\*.dll"/> + + + + $(TargetFrameworkDirectory);@(DesignTimeFacadeDirectories) + + + + + + + .exe; + .dll + + + + .exe.mdb; + .dll.mdb; + .pdb; + .xml + + + + {CandidateAssemblyFiles}; + $(ReferencePath); + @(AdditionalReferencePath); + {HintPathFromItem}; + {TargetFrameworkDirectory}; + {PkgConfig}; + {GAC}; + {RawFileName}; + $(OutDir) + + + + BeforeResolveReferences; + ResolveProjectReferences; + ResolveAssemblyReferences; + AfterResolveReferences + + + + GetFrameworkPaths; + GetReferenceAssemblyPaths; + PrepareForBuild + + + + + $(IntermediateOutputPath)$(TargetFrameworkMoniker).AssemblyAttribute$(DefaultLanguageSourceExtension) + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + BuildOnlySettings; + BeforeBuild; + CoreBuild; + AfterBuild + + + + + + + + + + + + PrepareForBuild; + GetFrameworkPaths; + GetReferenceAssemblyPaths; + PreBuildEvent; + ResolveReferences; + CopyFilesMarkedCopyLocal; + PrepareResources; + Compile; + PrepareForRun; + DeployOutputFiles; + _RecordCleanFile; + PostBuildEvent + + + + + + + + + + + + + ResolveReferences; + GenerateTargetFrameworkMonikerAttribute; + BeforeCompile; + _TimestampBeforeCompile; + CoreCompile; + _TimestampAfterCompile; + AfterCompile + + + + + + + + + + + DeployOutputFiles + + + + + + + AssignTargetPaths; + SplitResourcesByCulture; + CreateManifestResourceNames; + CopyNonResxEmbeddedResources; + GenerateResources; + GenerateSatelliteAssemblies; + CompileLicxFiles + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + BeforeRebuild; + Clean; + $(MSBuildProjectDefaultTargets); + AfterRebuild; + + + + BeforeRebuild; + Clean; + Build; + AfterRebuild; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + BeforeClean; + CleanReferencedProjects; + CoreClean; + AfterClean + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + + + $(ResolveReferencesDependsOn); + ImplicitlyExpandDesignTimeFacades + + + + $(ImplicitlyExpandDesignTimeFacadesDependsOn); + GetReferenceAssemblyPaths + + + + + + + <_HasReferenceToSystemRuntime Condition="'%(_ResolvedDependencyFiles.Filename)' == 'System.Runtime'">true + + + + + + + false + false + ImplicitlyExpandDesignTimeFacades + + <_ResolveAssemblyReferenceResolvedFiles Include="@(ReferencePath)" Condition="'%(ReferencePath.ResolvedFrom)' == 'ImplicitlyExpandDesignTimeFacades'" /> + + + + + + + + diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Microsoft.Common.tasks b/ReHitman/Modules/Mono/lib/mono/4.5/Microsoft.Common.tasks new file mode 100644 index 0000000..caf108e --- /dev/null +++ b/ReHitman/Modules/Mono/lib/mono/4.5/Microsoft.Common.tasks @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Microsoft.VisualBasic.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Microsoft.VisualBasic.dll new file mode 100644 index 0000000..bc8814c Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Microsoft.VisualBasic.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Microsoft.VisualBasic.targets b/ReHitman/Modules/Mono/lib/mono/4.5/Microsoft.VisualBasic.targets new file mode 100644 index 0000000..cf35f82 --- /dev/null +++ b/ReHitman/Modules/Mono/lib/mono/4.5/Microsoft.VisualBasic.targets @@ -0,0 +1,120 @@ + + + .vb + VB + + + + + + + + CONFIG="$(Configuration)" + $(FinalDefineConstants),DEBUG=-1 + $(FinalDefineConstants),TRACE=-1 + $(FinalDefineConstants),_MyType="$(MyType)" + $(FinalDefineConstants),PLATFORM="$(Platform)" + $(FinalDefineConstants),PLATFORM="AnyCPU" + $(FinalDefineConstants),$(DefineConstants) + + <_NoWarnings Condition=" '$(WarningLevel)' == '0' ">true + <_NoWarnings Condition=" '$(WarningLevel)' == '1' ">false + + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + vbnc.exe + + + diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Microsoft.VisualC.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Microsoft.VisualC.dll new file mode 100644 index 0000000..c0d8954 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Microsoft.VisualC.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Microsoft.Web.Infrastructure.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Microsoft.Web.Infrastructure.dll new file mode 100644 index 0000000..58e0496 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Microsoft.Web.Infrastructure.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Mono.Btls.Interface.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Mono.Btls.Interface.dll new file mode 100644 index 0000000..090a803 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Mono.Btls.Interface.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Mono.CSharp.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Mono.CSharp.dll new file mode 100644 index 0000000..f4b61e2 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Mono.CSharp.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Mono.Cairo.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Mono.Cairo.dll new file mode 100644 index 0000000..440d0cd Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Mono.Cairo.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Mono.Cecil.VB.Mdb.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Mono.Cecil.VB.Mdb.dll new file mode 100644 index 0000000..34d78ba Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Mono.Cecil.VB.Mdb.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Mono.Cecil.VB.Pdb.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Mono.Cecil.VB.Pdb.dll new file mode 100644 index 0000000..1d9b686 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Mono.Cecil.VB.Pdb.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Mono.Cecil.VB.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Mono.Cecil.VB.dll new file mode 100644 index 0000000..0011e84 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Mono.Cecil.VB.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Mono.CodeContracts.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Mono.CodeContracts.dll new file mode 100644 index 0000000..40b1772 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Mono.CodeContracts.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Mono.CompilerServices.SymbolWriter.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Mono.CompilerServices.SymbolWriter.dll new file mode 100644 index 0000000..8e6976b Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Mono.CompilerServices.SymbolWriter.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Mono.Data.Sqlite.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Mono.Data.Sqlite.dll new file mode 100644 index 0000000..3d4f4e9 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Mono.Data.Sqlite.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Mono.Data.Tds.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Mono.Data.Tds.dll new file mode 100644 index 0000000..d196a1c Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Mono.Data.Tds.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Mono.Debugger.Soft.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Mono.Debugger.Soft.dll new file mode 100644 index 0000000..ae6b497 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Mono.Debugger.Soft.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Mono.Http.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Mono.Http.dll new file mode 100644 index 0000000..d1ff0d4 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Mono.Http.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Mono.Management.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Mono.Management.dll new file mode 100644 index 0000000..2e9ba99 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Mono.Management.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Mono.Messaging.RabbitMQ.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Mono.Messaging.RabbitMQ.dll new file mode 100644 index 0000000..9d1c977 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Mono.Messaging.RabbitMQ.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Mono.Messaging.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Mono.Messaging.dll new file mode 100644 index 0000000..6ef56b4 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Mono.Messaging.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Mono.Parallel.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Mono.Parallel.dll new file mode 100644 index 0000000..a2ba5be Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Mono.Parallel.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Mono.Posix.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Mono.Posix.dll new file mode 100644 index 0000000..8a85dac Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Mono.Posix.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Mono.Profiler.Log.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Mono.Profiler.Log.dll new file mode 100644 index 0000000..c6e0d0b Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Mono.Profiler.Log.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Mono.Security.Win32.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Mono.Security.Win32.dll new file mode 100644 index 0000000..32d2510 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Mono.Security.Win32.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Mono.Security.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Mono.Security.dll new file mode 100644 index 0000000..119bbb5 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Mono.Security.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Mono.Simd.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Mono.Simd.dll new file mode 100644 index 0000000..31e6af3 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Mono.Simd.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Mono.Tasklets.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Mono.Tasklets.dll new file mode 100644 index 0000000..a2511f0 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Mono.Tasklets.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Mono.WebBrowser.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Mono.WebBrowser.dll new file mode 100644 index 0000000..704c3ae Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Mono.WebBrowser.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Mono.WebServer2.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Mono.WebServer2.dll new file mode 100644 index 0000000..6a00e14 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Mono.WebServer2.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Mono.XBuild.Tasks.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Mono.XBuild.Tasks.dll new file mode 100644 index 0000000..a7b99fd Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Mono.XBuild.Tasks.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/Novell.Directory.Ldap.dll b/ReHitman/Modules/Mono/lib/mono/4.5/Novell.Directory.Ldap.dll new file mode 100644 index 0000000..f3485fd Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/Novell.Directory.Ldap.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/PEAPI.dll b/ReHitman/Modules/Mono/lib/mono/4.5/PEAPI.dll new file mode 100644 index 0000000..38f00f5 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/PEAPI.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/RabbitMQ.Client.dll b/ReHitman/Modules/Mono/lib/mono/4.5/RabbitMQ.Client.dll new file mode 100644 index 0000000..506cd50 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/RabbitMQ.Client.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/SMDiagnostics.dll b/ReHitman/Modules/Mono/lib/mono/4.5/SMDiagnostics.dll new file mode 100644 index 0000000..7ba4bea Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/SMDiagnostics.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Collections.Immutable.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Collections.Immutable.dll new file mode 100644 index 0000000..049149f Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Collections.Immutable.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.ComponentModel.Composition.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.ComponentModel.Composition.dll new file mode 100644 index 0000000..963ddf2 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.ComponentModel.Composition.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.ComponentModel.DataAnnotations.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.ComponentModel.DataAnnotations.dll new file mode 100644 index 0000000..96a5504 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.ComponentModel.DataAnnotations.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Configuration.Install.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Configuration.Install.dll new file mode 100644 index 0000000..8b5d236 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Configuration.Install.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Configuration.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Configuration.dll new file mode 100644 index 0000000..9ff00aa Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Configuration.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Core.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Core.dll new file mode 100644 index 0000000..cf04ae2 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Core.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Data.DataSetExtensions.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Data.DataSetExtensions.dll new file mode 100644 index 0000000..1bd4855 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Data.DataSetExtensions.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Data.Entity.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Data.Entity.dll new file mode 100644 index 0000000..6fb22b7 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Data.Entity.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Data.Linq.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Data.Linq.dll new file mode 100644 index 0000000..3ab238a Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Data.Linq.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Data.OracleClient.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Data.OracleClient.dll new file mode 100644 index 0000000..ef33164 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Data.OracleClient.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Data.Services.Client.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Data.Services.Client.dll new file mode 100644 index 0000000..5a27b78 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Data.Services.Client.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Data.Services.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Data.Services.dll new file mode 100644 index 0000000..6f67e47 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Data.Services.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Data.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Data.dll new file mode 100644 index 0000000..1b9708a Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Data.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Deployment.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Deployment.dll new file mode 100644 index 0000000..9cc7c5e Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Deployment.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Design.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Design.dll new file mode 100644 index 0000000..88f54c1 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Design.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.DirectoryServices.Protocols.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.DirectoryServices.Protocols.dll new file mode 100644 index 0000000..84b0838 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.DirectoryServices.Protocols.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.DirectoryServices.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.DirectoryServices.dll new file mode 100644 index 0000000..375e872 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.DirectoryServices.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Drawing.Design.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Drawing.Design.dll new file mode 100644 index 0000000..3452467 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Drawing.Design.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Drawing.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Drawing.dll new file mode 100644 index 0000000..4b358bb Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Drawing.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Dynamic.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Dynamic.dll new file mode 100644 index 0000000..a6ca83f Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Dynamic.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.EnterpriseServices.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.EnterpriseServices.dll new file mode 100644 index 0000000..0fa44a0 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.EnterpriseServices.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.IO.Compression.FileSystem.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.IO.Compression.FileSystem.dll new file mode 100644 index 0000000..5f07808 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.IO.Compression.FileSystem.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.IO.Compression.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.IO.Compression.dll new file mode 100644 index 0000000..66e1da7 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.IO.Compression.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.IdentityModel.Selectors.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.IdentityModel.Selectors.dll new file mode 100644 index 0000000..44e659a Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.IdentityModel.Selectors.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.IdentityModel.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.IdentityModel.dll new file mode 100644 index 0000000..7201332 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.IdentityModel.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Json.Microsoft.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Json.Microsoft.dll new file mode 100644 index 0000000..c89bbc7 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Json.Microsoft.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Json.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Json.dll new file mode 100644 index 0000000..4b84046 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Json.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Management.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Management.dll new file mode 100644 index 0000000..35e8d2b Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Management.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Memory.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Memory.dll new file mode 100644 index 0000000..bdfc501 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Memory.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Messaging.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Messaging.dll new file mode 100644 index 0000000..fb274c2 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Messaging.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Net.Http.Formatting.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Net.Http.Formatting.dll new file mode 100644 index 0000000..eae00ed Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Net.Http.Formatting.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Net.Http.WebRequest.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Net.Http.WebRequest.dll new file mode 100644 index 0000000..500a3dc Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Net.Http.WebRequest.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Net.Http.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Net.Http.dll new file mode 100644 index 0000000..d87380c Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Net.Http.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Net.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Net.dll new file mode 100644 index 0000000..49c0c66 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Net.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Numerics.Vectors.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Numerics.Vectors.dll new file mode 100644 index 0000000..2211c36 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Numerics.Vectors.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Numerics.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Numerics.dll new file mode 100644 index 0000000..469aa2a Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Numerics.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Reactive.Core.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Reactive.Core.dll new file mode 100644 index 0000000..00e1498 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Reactive.Core.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Reactive.Debugger.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Reactive.Debugger.dll new file mode 100644 index 0000000..804e679 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Reactive.Debugger.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Reactive.Experimental.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Reactive.Experimental.dll new file mode 100644 index 0000000..6fb0eba Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Reactive.Experimental.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Reactive.Interfaces.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Reactive.Interfaces.dll new file mode 100644 index 0000000..e533352 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Reactive.Interfaces.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Reactive.Linq.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Reactive.Linq.dll new file mode 100644 index 0000000..bbafe8a Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Reactive.Linq.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Reactive.Observable.Aliases.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Reactive.Observable.Aliases.dll new file mode 100644 index 0000000..600dc67 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Reactive.Observable.Aliases.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Reactive.PlatformServices.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Reactive.PlatformServices.dll new file mode 100644 index 0000000..ebca9de Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Reactive.PlatformServices.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Reactive.Providers.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Reactive.Providers.dll new file mode 100644 index 0000000..dfcc0c4 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Reactive.Providers.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Reactive.Runtime.Remoting.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Reactive.Runtime.Remoting.dll new file mode 100644 index 0000000..d379f46 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Reactive.Runtime.Remoting.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Reactive.Windows.Forms.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Reactive.Windows.Forms.dll new file mode 100644 index 0000000..339ede4 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Reactive.Windows.Forms.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Reactive.Windows.Threading.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Reactive.Windows.Threading.dll new file mode 100644 index 0000000..8fd326b Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Reactive.Windows.Threading.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Reflection.Context.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Reflection.Context.dll new file mode 100644 index 0000000..b6cad17 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Reflection.Context.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Reflection.Metadata.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Reflection.Metadata.dll new file mode 100644 index 0000000..5208236 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Reflection.Metadata.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Runtime.Caching.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Runtime.Caching.dll new file mode 100644 index 0000000..98b7dd4 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Runtime.Caching.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Runtime.CompilerServices.Unsafe.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Runtime.CompilerServices.Unsafe.dll new file mode 100644 index 0000000..c66b445 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Runtime.CompilerServices.Unsafe.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Runtime.DurableInstancing.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Runtime.DurableInstancing.dll new file mode 100644 index 0000000..9ede90e Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Runtime.DurableInstancing.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Runtime.Remoting.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Runtime.Remoting.dll new file mode 100644 index 0000000..47c7452 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Runtime.Remoting.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Runtime.Serialization.Formatters.Soap.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Runtime.Serialization.Formatters.Soap.dll new file mode 100644 index 0000000..4e509d3 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Runtime.Serialization.Formatters.Soap.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Runtime.Serialization.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Runtime.Serialization.dll new file mode 100644 index 0000000..4eaaa5c Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Runtime.Serialization.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Security.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Security.dll new file mode 100644 index 0000000..13d3644 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Security.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.ServiceModel.Activation.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.ServiceModel.Activation.dll new file mode 100644 index 0000000..f3076f4 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.ServiceModel.Activation.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.ServiceModel.Discovery.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.ServiceModel.Discovery.dll new file mode 100644 index 0000000..13bc15e Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.ServiceModel.Discovery.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.ServiceModel.Internals.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.ServiceModel.Internals.dll new file mode 100644 index 0000000..e7af69d Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.ServiceModel.Internals.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.ServiceModel.Routing.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.ServiceModel.Routing.dll new file mode 100644 index 0000000..483401d Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.ServiceModel.Routing.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.ServiceModel.Web.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.ServiceModel.Web.dll new file mode 100644 index 0000000..e7605c6 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.ServiceModel.Web.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.ServiceModel.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.ServiceModel.dll new file mode 100644 index 0000000..9c0df03 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.ServiceModel.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.ServiceProcess.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.ServiceProcess.dll new file mode 100644 index 0000000..3e8265d Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.ServiceProcess.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Threading.Tasks.Dataflow.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Threading.Tasks.Dataflow.dll new file mode 100644 index 0000000..91e0a68 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Threading.Tasks.Dataflow.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Threading.Tasks.Extensions.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Threading.Tasks.Extensions.dll new file mode 100644 index 0000000..e059050 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Threading.Tasks.Extensions.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Transactions.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Transactions.dll new file mode 100644 index 0000000..7bf5438 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Transactions.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Web.Abstractions.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Web.Abstractions.dll new file mode 100644 index 0000000..527aa22 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Web.Abstractions.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Web.ApplicationServices.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Web.ApplicationServices.dll new file mode 100644 index 0000000..b9282c4 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Web.ApplicationServices.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Web.DynamicData.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Web.DynamicData.dll new file mode 100644 index 0000000..6bc7d10 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Web.DynamicData.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Web.Extensions.Design.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Web.Extensions.Design.dll new file mode 100644 index 0000000..709dea9 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Web.Extensions.Design.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Web.Extensions.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Web.Extensions.dll new file mode 100644 index 0000000..5ac9960 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Web.Extensions.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Web.Http.SelfHost.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Web.Http.SelfHost.dll new file mode 100644 index 0000000..99a0cc2 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Web.Http.SelfHost.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Web.Http.WebHost.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Web.Http.WebHost.dll new file mode 100644 index 0000000..2e1b7d7 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Web.Http.WebHost.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Web.Http.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Web.Http.dll new file mode 100644 index 0000000..d039d76 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Web.Http.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Web.Mobile.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Web.Mobile.dll new file mode 100644 index 0000000..662c3df Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Web.Mobile.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Web.Mvc.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Web.Mvc.dll new file mode 100644 index 0000000..aa532fe Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Web.Mvc.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Web.Razor.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Web.Razor.dll new file mode 100644 index 0000000..a4f5ec2 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Web.Razor.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Web.RegularExpressions.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Web.RegularExpressions.dll new file mode 100644 index 0000000..275b790 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Web.RegularExpressions.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Web.Routing.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Web.Routing.dll new file mode 100644 index 0000000..be4c804 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Web.Routing.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Web.Services.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Web.Services.dll new file mode 100644 index 0000000..22c3583 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Web.Services.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Web.WebPages.Deployment.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Web.WebPages.Deployment.dll new file mode 100644 index 0000000..9f55bc5 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Web.WebPages.Deployment.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Web.WebPages.Razor.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Web.WebPages.Razor.dll new file mode 100644 index 0000000..bdb003f Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Web.WebPages.Razor.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Web.WebPages.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Web.WebPages.dll new file mode 100644 index 0000000..7736917 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Web.WebPages.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Web.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Web.dll new file mode 100644 index 0000000..d172985 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Web.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Windows.Forms.DataVisualization.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Windows.Forms.DataVisualization.dll new file mode 100644 index 0000000..74e3546 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Windows.Forms.DataVisualization.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Windows.Forms.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Windows.Forms.dll new file mode 100644 index 0000000..0579c44 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Windows.Forms.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Windows.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Windows.dll new file mode 100644 index 0000000..ea4c137 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Windows.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Workflow.Activities.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Workflow.Activities.dll new file mode 100644 index 0000000..d79abe9 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Workflow.Activities.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Workflow.ComponentModel.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Workflow.ComponentModel.dll new file mode 100644 index 0000000..e10cd91 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Workflow.ComponentModel.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Workflow.Runtime.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Workflow.Runtime.dll new file mode 100644 index 0000000..b0838b6 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Workflow.Runtime.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Xaml.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Xaml.dll new file mode 100644 index 0000000..301cceb Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Xaml.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Xml.Linq.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Xml.Linq.dll new file mode 100644 index 0000000..3068456 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Xml.Linq.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Xml.Serialization.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Xml.Serialization.dll new file mode 100644 index 0000000..5d1e6fc Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Xml.Serialization.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.Xml.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.Xml.dll new file mode 100644 index 0000000..c6345b1 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.Xml.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/System.dll b/ReHitman/Modules/Mono/lib/mono/4.5/System.dll new file mode 100644 index 0000000..eb0ddc1 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/System.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/VBCSCompiler.exe.config b/ReHitman/Modules/Mono/lib/mono/4.5/VBCSCompiler.exe.config new file mode 100644 index 0000000..f819b1b --- /dev/null +++ b/ReHitman/Modules/Mono/lib/mono/4.5/VBCSCompiler.exe.config @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/WebMatrix.Data.dll b/ReHitman/Modules/Mono/lib/mono/4.5/WebMatrix.Data.dll new file mode 100644 index 0000000..a6f756d Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/WebMatrix.Data.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/WindowsBase.dll b/ReHitman/Modules/Mono/lib/mono/4.5/WindowsBase.dll new file mode 100644 index 0000000..d2eab24 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/WindowsBase.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/csc.exe.config b/ReHitman/Modules/Mono/lib/mono/4.5/csc.exe.config new file mode 100644 index 0000000..7c9bab3 --- /dev/null +++ b/ReHitman/Modules/Mono/lib/mono/4.5/csc.exe.config @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/csc.rsp b/ReHitman/Modules/Mono/lib/mono/4.5/csc.rsp new file mode 100644 index 0000000..7b1e629 --- /dev/null +++ b/ReHitman/Modules/Mono/lib/mono/4.5/csc.rsp @@ -0,0 +1,48 @@ +# Licensed to the .NET Foundation under one or more agreements. +# The .NET Foundation licenses this file to you under the MIT license. +# See the LICENSE file in the project root for more information. + +# This file contains command-line options that the C# +# command line compiler (CSC) will process as part +# of every compilation, unless the "/noconfig" option +# is specified. + +# Reference the common Framework libraries +/r:Accessibility.dll +/r:Microsoft.CSharp.dll +/r:System.Configuration.dll +/r:System.Configuration.Install.dll +/r:System.Core.dll +/r:System.Data.dll +/r:System.Data.DataSetExtensions.dll +/r:System.Data.Linq.dll +/r:System.Data.OracleClient.dll +/r:System.Deployment.dll +/r:System.Design.dll +/r:System.DirectoryServices.dll +/r:System.dll +/r:System.Drawing.Design.dll +/r:System.Drawing.dll +/r:System.EnterpriseServices.dll +/r:System.Management.dll +/r:System.Messaging.dll +/r:System.Runtime.Remoting.dll +/r:System.Runtime.Serialization.dll +/r:System.Runtime.Serialization.Formatters.Soap.dll +/r:System.Security.dll +/r:System.ServiceModel.dll +/r:System.ServiceModel.Web.dll +/r:System.ServiceProcess.dll +/r:System.Transactions.dll +/r:System.Web.dll +/r:System.Web.Extensions.Design.dll +/r:System.Web.Extensions.dll +/r:System.Web.Mobile.dll +/r:System.Web.RegularExpressions.dll +/r:System.Web.Services.dll +/r:System.Windows.Forms.dll +/r:System.Workflow.Activities.dll +/r:System.Workflow.ComponentModel.dll +/r:System.Workflow.Runtime.dll +/r:System.Xml.dll +/r:System.Xml.Linq.dll diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/cscompmgd.dll b/ReHitman/Modules/Mono/lib/mono/4.5/cscompmgd.dll new file mode 100644 index 0000000..2873509 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/cscompmgd.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/csi.exe.config b/ReHitman/Modules/Mono/lib/mono/4.5/csi.exe.config new file mode 100644 index 0000000..8bc0cd2 --- /dev/null +++ b/ReHitman/Modules/Mono/lib/mono/4.5/csi.exe.config @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/csi.rsp b/ReHitman/Modules/Mono/lib/mono/4.5/csi.rsp new file mode 100644 index 0000000..f012133 --- /dev/null +++ b/ReHitman/Modules/Mono/lib/mono/4.5/csi.rsp @@ -0,0 +1,15 @@ +/r:System.dll +/r:System.Core.dll +/r:Microsoft.CSharp.dll +/r:Facades/System.Runtime.dll +/r:Facades/netstandard.dll +/u:System +/u:System.IO +/u:System.Collections.Generic +/u:System.Console +/u:System.Diagnostics +/u:System.Dynamic +/u:System.Linq +/u:System.Linq.Expressions +/u:System.Text +/u:System.Threading.Tasks diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/mono-shlib-cop.exe.config b/ReHitman/Modules/Mono/lib/mono/4.5/mono-shlib-cop.exe.config new file mode 100644 index 0000000..0e06d21 --- /dev/null +++ b/ReHitman/Modules/Mono/lib/mono/4.5/mono-shlib-cop.exe.config @@ -0,0 +1,4 @@ + + + + diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/mscorlib.dll b/ReHitman/Modules/Mono/lib/mono/4.5/mscorlib.dll new file mode 100644 index 0000000..f473cb3 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/mscorlib.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/sqlmetal.exe.config b/ReHitman/Modules/Mono/lib/mono/4.5/sqlmetal.exe.config new file mode 100644 index 0000000..c22a98b --- /dev/null +++ b/ReHitman/Modules/Mono/lib/mono/4.5/sqlmetal.exe.config @@ -0,0 +1,38 @@ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/vbc.exe.config b/ReHitman/Modules/Mono/lib/mono/4.5/vbc.exe.config new file mode 100644 index 0000000..eef79ef --- /dev/null +++ b/ReHitman/Modules/Mono/lib/mono/4.5/vbc.exe.config @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/vbc.rsp b/ReHitman/Modules/Mono/lib/mono/4.5/vbc.rsp new file mode 100644 index 0000000..794335a --- /dev/null +++ b/ReHitman/Modules/Mono/lib/mono/4.5/vbc.rsp @@ -0,0 +1,57 @@ +# Licensed to the .NET Foundation under one or more agreements. +# The .NET Foundation licenses this file to you under the MIT license. +# See the LICENSE file in the project root for more information. + +# This file contains command-line options that the VB +# command line compiler (VBC) will process as part +# of every compilation, unless the "/noconfig" option +# is specified. + +# Reference the common Framework libraries +/r:Accessibility.dll +/r:System.Configuration.dll +/r:System.Configuration.Install.dll +/r:System.Data.dll +/r:System.Data.OracleClient.dll +/r:System.Deployment.dll +/r:System.Design.dll +/r:System.DirectoryServices.dll +/r:System.dll +/r:System.Drawing.Design.dll +/r:System.Drawing.dll +/r:System.EnterpriseServices.dll +/r:System.Management.dll +/r:System.Messaging.dll +/r:System.Runtime.Remoting.dll +/r:System.Runtime.Serialization.Formatters.Soap.dll +/r:System.Security.dll +/r:System.ServiceProcess.dll +/r:System.Transactions.dll +/r:System.Web.dll +/r:System.Web.Mobile.dll +/r:System.Web.RegularExpressions.dll +/r:System.Web.Services.dll +/r:System.Windows.Forms.dll +/r:System.Xml.dll + +/r:System.Workflow.Activities.dll +/r:System.Workflow.ComponentModel.dll +/r:System.Workflow.Runtime.dll +/r:System.Runtime.Serialization.dll +/r:System.ServiceModel.dll + +/r:System.Core.dll +/r:System.Xml.Linq.dll +/r:System.Data.Linq.dll +/r:System.Data.DataSetExtensions.dll +/r:System.Web.Extensions.dll +/r:System.Web.Extensions.Design.dll +/r:System.ServiceModel.Web.dll + +# Import System and Microsoft.VisualBasic +/imports:System +/imports:Microsoft.VisualBasic +/imports:System.Linq +/imports:System.Xml.Linq + +/optioninfer+ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/vbnc.exe.mdb b/ReHitman/Modules/Mono/lib/mono/4.5/vbnc.exe.mdb new file mode 100644 index 0000000..1584ef4 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/4.5/vbnc.exe.mdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/vbnc.rsp b/ReHitman/Modules/Mono/lib/mono/4.5/vbnc.rsp new file mode 100644 index 0000000..ff63dee --- /dev/null +++ b/ReHitman/Modules/Mono/lib/mono/4.5/vbnc.rsp @@ -0,0 +1,14 @@ +-r:Accessibility.dll +-r:System.Configuration.dll +-r:System.Data.dll +-r:System.Design.dll +-r:System.dll +-r:System.Drawing.Design.dll +-r:System.Drawing.dll +-r:System.Web.dll +-r:System.Web.Services.dll +-r:System.Windows.Forms.dll +-r:System.Xml.dll + +-imports:System +-imports:Microsoft.VisualBasic diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/xbuild.exe.config b/ReHitman/Modules/Mono/lib/mono/4.5/xbuild.exe.config new file mode 100644 index 0000000..30df748 --- /dev/null +++ b/ReHitman/Modules/Mono/lib/mono/4.5/xbuild.exe.config @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/ReHitman/Modules/Mono/lib/mono/4.5/xbuild.rsp b/ReHitman/Modules/Mono/lib/mono/4.5/xbuild.rsp new file mode 100644 index 0000000..9b9ce70 --- /dev/null +++ b/ReHitman/Modules/Mono/lib/mono/4.5/xbuild.rsp @@ -0,0 +1,3 @@ +# xbuild command line options specified here will be used +# by xbuild on every build, unless /noautoresponse is passed +# on the command line. diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Accessibility/4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll b/ReHitman/Modules/Mono/lib/mono/gac/Accessibility/4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll new file mode 100644 index 0000000..fc557d0 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Accessibility/4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Accessibility/4.0.0.0__b03f5f7f11d50a3a/Accessibility.pdb b/ReHitman/Modules/Mono/lib/mono/gac/Accessibility/4.0.0.0__b03f5f7f11d50a3a/Accessibility.pdb new file mode 100644 index 0000000..66867b0 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Accessibility/4.0.0.0__b03f5f7f11d50a3a/Accessibility.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Commons.Xml.Relaxng/4.0.0.0__0738eb9f132ed756/Commons.Xml.Relaxng.dll b/ReHitman/Modules/Mono/lib/mono/gac/Commons.Xml.Relaxng/4.0.0.0__0738eb9f132ed756/Commons.Xml.Relaxng.dll new file mode 100644 index 0000000..979c84d Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Commons.Xml.Relaxng/4.0.0.0__0738eb9f132ed756/Commons.Xml.Relaxng.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Commons.Xml.Relaxng/4.0.0.0__0738eb9f132ed756/Commons.Xml.Relaxng.pdb b/ReHitman/Modules/Mono/lib/mono/gac/Commons.Xml.Relaxng/4.0.0.0__0738eb9f132ed756/Commons.Xml.Relaxng.pdb new file mode 100644 index 0000000..229e780 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Commons.Xml.Relaxng/4.0.0.0__0738eb9f132ed756/Commons.Xml.Relaxng.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/CustomMarshalers/4.0.0.0__b03f5f7f11d50a3a/CustomMarshalers.dll b/ReHitman/Modules/Mono/lib/mono/gac/CustomMarshalers/4.0.0.0__b03f5f7f11d50a3a/CustomMarshalers.dll new file mode 100644 index 0000000..8273c0a Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/CustomMarshalers/4.0.0.0__b03f5f7f11d50a3a/CustomMarshalers.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/CustomMarshalers/4.0.0.0__b03f5f7f11d50a3a/CustomMarshalers.pdb b/ReHitman/Modules/Mono/lib/mono/gac/CustomMarshalers/4.0.0.0__b03f5f7f11d50a3a/CustomMarshalers.pdb new file mode 100644 index 0000000..d07b4df Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/CustomMarshalers/4.0.0.0__b03f5f7f11d50a3a/CustomMarshalers.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/I18N.CJK/4.0.0.0__0738eb9f132ed756/I18N.CJK.dll b/ReHitman/Modules/Mono/lib/mono/gac/I18N.CJK/4.0.0.0__0738eb9f132ed756/I18N.CJK.dll new file mode 100644 index 0000000..98fdb76 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/I18N.CJK/4.0.0.0__0738eb9f132ed756/I18N.CJK.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/I18N.CJK/4.0.0.0__0738eb9f132ed756/I18N.CJK.pdb b/ReHitman/Modules/Mono/lib/mono/gac/I18N.CJK/4.0.0.0__0738eb9f132ed756/I18N.CJK.pdb new file mode 100644 index 0000000..2a91760 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/I18N.CJK/4.0.0.0__0738eb9f132ed756/I18N.CJK.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/I18N.MidEast/4.0.0.0__0738eb9f132ed756/I18N.MidEast.dll b/ReHitman/Modules/Mono/lib/mono/gac/I18N.MidEast/4.0.0.0__0738eb9f132ed756/I18N.MidEast.dll new file mode 100644 index 0000000..1172ebf Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/I18N.MidEast/4.0.0.0__0738eb9f132ed756/I18N.MidEast.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/I18N.MidEast/4.0.0.0__0738eb9f132ed756/I18N.MidEast.pdb b/ReHitman/Modules/Mono/lib/mono/gac/I18N.MidEast/4.0.0.0__0738eb9f132ed756/I18N.MidEast.pdb new file mode 100644 index 0000000..f2b5907 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/I18N.MidEast/4.0.0.0__0738eb9f132ed756/I18N.MidEast.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/I18N.Other/4.0.0.0__0738eb9f132ed756/I18N.Other.dll b/ReHitman/Modules/Mono/lib/mono/gac/I18N.Other/4.0.0.0__0738eb9f132ed756/I18N.Other.dll new file mode 100644 index 0000000..99823b7 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/I18N.Other/4.0.0.0__0738eb9f132ed756/I18N.Other.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/I18N.Other/4.0.0.0__0738eb9f132ed756/I18N.Other.pdb b/ReHitman/Modules/Mono/lib/mono/gac/I18N.Other/4.0.0.0__0738eb9f132ed756/I18N.Other.pdb new file mode 100644 index 0000000..84ea2c9 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/I18N.Other/4.0.0.0__0738eb9f132ed756/I18N.Other.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/I18N.Rare/4.0.0.0__0738eb9f132ed756/I18N.Rare.dll b/ReHitman/Modules/Mono/lib/mono/gac/I18N.Rare/4.0.0.0__0738eb9f132ed756/I18N.Rare.dll new file mode 100644 index 0000000..725aace Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/I18N.Rare/4.0.0.0__0738eb9f132ed756/I18N.Rare.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/I18N.Rare/4.0.0.0__0738eb9f132ed756/I18N.Rare.pdb b/ReHitman/Modules/Mono/lib/mono/gac/I18N.Rare/4.0.0.0__0738eb9f132ed756/I18N.Rare.pdb new file mode 100644 index 0000000..26d8f93 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/I18N.Rare/4.0.0.0__0738eb9f132ed756/I18N.Rare.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/I18N.West/4.0.0.0__0738eb9f132ed756/I18N.West.dll b/ReHitman/Modules/Mono/lib/mono/gac/I18N.West/4.0.0.0__0738eb9f132ed756/I18N.West.dll new file mode 100644 index 0000000..6d63680 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/I18N.West/4.0.0.0__0738eb9f132ed756/I18N.West.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/I18N.West/4.0.0.0__0738eb9f132ed756/I18N.West.pdb b/ReHitman/Modules/Mono/lib/mono/gac/I18N.West/4.0.0.0__0738eb9f132ed756/I18N.West.pdb new file mode 100644 index 0000000..42cdd4a Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/I18N.West/4.0.0.0__0738eb9f132ed756/I18N.West.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/I18N/4.0.0.0__0738eb9f132ed756/I18N.dll b/ReHitman/Modules/Mono/lib/mono/gac/I18N/4.0.0.0__0738eb9f132ed756/I18N.dll new file mode 100644 index 0000000..8a917aa Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/I18N/4.0.0.0__0738eb9f132ed756/I18N.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/I18N/4.0.0.0__0738eb9f132ed756/I18N.pdb b/ReHitman/Modules/Mono/lib/mono/gac/I18N/4.0.0.0__0738eb9f132ed756/I18N.pdb new file mode 100644 index 0000000..dff7173 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/I18N/4.0.0.0__0738eb9f132ed756/I18N.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/IBM.Data.DB2/1.0.0.0__7c307b91aa13d208/IBM.Data.DB2.dll b/ReHitman/Modules/Mono/lib/mono/gac/IBM.Data.DB2/1.0.0.0__7c307b91aa13d208/IBM.Data.DB2.dll new file mode 100644 index 0000000..4a7b2b3 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/IBM.Data.DB2/1.0.0.0__7c307b91aa13d208/IBM.Data.DB2.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/IBM.Data.DB2/1.0.0.0__7c307b91aa13d208/IBM.Data.DB2.pdb b/ReHitman/Modules/Mono/lib/mono/gac/IBM.Data.DB2/1.0.0.0__7c307b91aa13d208/IBM.Data.DB2.pdb new file mode 100644 index 0000000..793fb94 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/IBM.Data.DB2/1.0.0.0__7c307b91aa13d208/IBM.Data.DB2.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/ICSharpCode.SharpZipLib/4.84.0.0__1b03e6acf1164f73/ICSharpCode.SharpZipLib.dll b/ReHitman/Modules/Mono/lib/mono/gac/ICSharpCode.SharpZipLib/4.84.0.0__1b03e6acf1164f73/ICSharpCode.SharpZipLib.dll new file mode 100644 index 0000000..02fcdb3 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/ICSharpCode.SharpZipLib/4.84.0.0__1b03e6acf1164f73/ICSharpCode.SharpZipLib.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/ICSharpCode.SharpZipLib/4.84.0.0__1b03e6acf1164f73/ICSharpCode.SharpZipLib.pdb b/ReHitman/Modules/Mono/lib/mono/gac/ICSharpCode.SharpZipLib/4.84.0.0__1b03e6acf1164f73/ICSharpCode.SharpZipLib.pdb new file mode 100644 index 0000000..02e0537 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/ICSharpCode.SharpZipLib/4.84.0.0__1b03e6acf1164f73/ICSharpCode.SharpZipLib.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Engine/12.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Engine.dll b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Engine/12.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Engine.dll new file mode 100644 index 0000000..66251ae Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Engine/12.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Engine.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Engine/12.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Engine.pdb b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Engine/12.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Engine.pdb new file mode 100644 index 0000000..94b9e19 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Engine/12.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Engine.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Engine/14.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Engine.dll b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Engine/14.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Engine.dll new file mode 100644 index 0000000..3e01f07 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Engine/14.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Engine.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Engine/14.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Engine.pdb b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Engine/14.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Engine.pdb new file mode 100644 index 0000000..a8bada6 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Engine/14.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Engine.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Engine/4.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Engine.dll b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Engine/4.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Engine.dll new file mode 100644 index 0000000..59c2ad0 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Engine/4.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Engine.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Engine/4.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Engine.pdb b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Engine/4.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Engine.pdb new file mode 100644 index 0000000..8c9eabc Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Engine/4.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Engine.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Framework/12.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Framework.dll b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Framework/12.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Framework.dll new file mode 100644 index 0000000..7203c42 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Framework/12.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Framework.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Framework/12.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Framework.pdb b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Framework/12.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Framework.pdb new file mode 100644 index 0000000..a12a0c2 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Framework/12.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Framework.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Framework/14.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Framework.dll b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Framework/14.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Framework.dll new file mode 100644 index 0000000..4b11480 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Framework/14.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Framework.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Framework/14.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Framework.pdb b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Framework/14.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Framework.pdb new file mode 100644 index 0000000..a12a0c2 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Framework/14.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Framework.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Framework/4.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Framework.dll b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Framework/4.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Framework.dll new file mode 100644 index 0000000..6350fa1 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Framework/4.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Framework.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Framework/4.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Framework.pdb b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Framework/4.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Framework.pdb new file mode 100644 index 0000000..a12a0c2 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Framework/4.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Framework.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Tasks.Core/14.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Tasks.Core.dll b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Tasks.Core/14.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Tasks.Core.dll new file mode 100644 index 0000000..f5c2fd8 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Tasks.Core/14.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Tasks.Core.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Tasks.Core/14.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Tasks.Core.pdb b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Tasks.Core/14.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Tasks.Core.pdb new file mode 100644 index 0000000..210e2e5 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Tasks.Core/14.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Tasks.Core.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Tasks.v12.0/12.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Tasks.v12.0.dll b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Tasks.v12.0/12.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Tasks.v12.0.dll new file mode 100644 index 0000000..798e13b Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Tasks.v12.0/12.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Tasks.v12.0.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Tasks.v12.0/12.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Tasks.v12.0.pdb b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Tasks.v12.0/12.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Tasks.v12.0.pdb new file mode 100644 index 0000000..67f54aa Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Tasks.v12.0/12.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Tasks.v12.0.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Tasks.v4.0/4.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Tasks.v4.0.dll b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Tasks.v4.0/4.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Tasks.v4.0.dll new file mode 100644 index 0000000..992f3b4 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Tasks.v4.0/4.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Tasks.v4.0.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Tasks.v4.0/4.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Tasks.v4.0.pdb b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Tasks.v4.0/4.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Tasks.v4.0.pdb new file mode 100644 index 0000000..e978fdd Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Tasks.v4.0/4.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Tasks.v4.0.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Utilities.Core/14.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Utilities.Core.dll b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Utilities.Core/14.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Utilities.Core.dll new file mode 100644 index 0000000..eed4961 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Utilities.Core/14.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Utilities.Core.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Utilities.Core/14.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Utilities.Core.pdb b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Utilities.Core/14.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Utilities.Core.pdb new file mode 100644 index 0000000..5163788 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Utilities.Core/14.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Utilities.Core.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Utilities.v12.0/12.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Utilities.v12.0.dll b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Utilities.v12.0/12.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Utilities.v12.0.dll new file mode 100644 index 0000000..570a008 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Utilities.v12.0/12.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Utilities.v12.0.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Utilities.v12.0/12.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Utilities.v12.0.pdb b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Utilities.v12.0/12.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Utilities.v12.0.pdb new file mode 100644 index 0000000..3b04703 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Utilities.v12.0/12.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Utilities.v12.0.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Utilities.v4.0/4.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Utilities.v4.0.dll b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Utilities.v4.0/4.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Utilities.v4.0.dll new file mode 100644 index 0000000..3823aaf Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Utilities.v4.0/4.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Utilities.v4.0.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Utilities.v4.0/4.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Utilities.v4.0.pdb b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Utilities.v4.0/4.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Utilities.v4.0.pdb new file mode 100644 index 0000000..92a0042 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build.Utilities.v4.0/4.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.Utilities.v4.0.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build/12.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.dll b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build/12.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.dll new file mode 100644 index 0000000..efad419 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build/12.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build/12.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.pdb b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build/12.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.pdb new file mode 100644 index 0000000..fb83471 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build/12.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build/14.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.dll b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build/14.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.dll new file mode 100644 index 0000000..6169fd1 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build/14.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build/14.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.pdb b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build/14.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.pdb new file mode 100644 index 0000000..67abf34 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build/14.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build/4.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.dll b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build/4.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.dll new file mode 100644 index 0000000..69cd92a Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build/4.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build/4.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.pdb b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build/4.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.pdb new file mode 100644 index 0000000..16f0f92 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Build/4.0.0.0__b03f5f7f11d50a3a/Microsoft.Build.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.CSharp/4.0.0.0__b03f5f7f11d50a3a/Microsoft.CSharp.dll b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.CSharp/4.0.0.0__b03f5f7f11d50a3a/Microsoft.CSharp.dll new file mode 100644 index 0000000..e7775f9 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.CSharp/4.0.0.0__b03f5f7f11d50a3a/Microsoft.CSharp.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.CSharp/4.0.0.0__b03f5f7f11d50a3a/Microsoft.CSharp.pdb b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.CSharp/4.0.0.0__b03f5f7f11d50a3a/Microsoft.CSharp.pdb new file mode 100644 index 0000000..843aa28 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.CSharp/4.0.0.0__b03f5f7f11d50a3a/Microsoft.CSharp.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.VisualBasic/10.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.VisualBasic/10.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll new file mode 100644 index 0000000..bc8814c Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.VisualBasic/10.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.VisualC/10.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualC.dll b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.VisualC/10.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualC.dll new file mode 100644 index 0000000..c0d8954 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.VisualC/10.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualC.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.VisualC/10.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualC.pdb b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.VisualC/10.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualC.pdb new file mode 100644 index 0000000..9c61536 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.VisualC/10.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualC.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Web.Infrastructure/1.0.0.0__31bf3856ad364e35/Microsoft.Web.Infrastructure.dll b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Web.Infrastructure/1.0.0.0__31bf3856ad364e35/Microsoft.Web.Infrastructure.dll new file mode 100644 index 0000000..58e0496 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Web.Infrastructure/1.0.0.0__31bf3856ad364e35/Microsoft.Web.Infrastructure.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Web.Infrastructure/1.0.0.0__31bf3856ad364e35/Microsoft.Web.Infrastructure.pdb b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Web.Infrastructure/1.0.0.0__31bf3856ad364e35/Microsoft.Web.Infrastructure.pdb new file mode 100644 index 0000000..57be06e Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Microsoft.Web.Infrastructure/1.0.0.0__31bf3856ad364e35/Microsoft.Web.Infrastructure.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Mono.Btls.Interface/4.0.0.0__0738eb9f132ed756/Mono.Btls.Interface.dll b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Btls.Interface/4.0.0.0__0738eb9f132ed756/Mono.Btls.Interface.dll new file mode 100644 index 0000000..090a803 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Btls.Interface/4.0.0.0__0738eb9f132ed756/Mono.Btls.Interface.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Mono.Btls.Interface/4.0.0.0__0738eb9f132ed756/Mono.Btls.Interface.pdb b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Btls.Interface/4.0.0.0__0738eb9f132ed756/Mono.Btls.Interface.pdb new file mode 100644 index 0000000..28c3f37 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Btls.Interface/4.0.0.0__0738eb9f132ed756/Mono.Btls.Interface.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Mono.CSharp/4.0.0.0__0738eb9f132ed756/Mono.CSharp.dll b/ReHitman/Modules/Mono/lib/mono/gac/Mono.CSharp/4.0.0.0__0738eb9f132ed756/Mono.CSharp.dll new file mode 100644 index 0000000..f4b61e2 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Mono.CSharp/4.0.0.0__0738eb9f132ed756/Mono.CSharp.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Mono.CSharp/4.0.0.0__0738eb9f132ed756/Mono.CSharp.pdb b/ReHitman/Modules/Mono/lib/mono/gac/Mono.CSharp/4.0.0.0__0738eb9f132ed756/Mono.CSharp.pdb new file mode 100644 index 0000000..cc2b6d1 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Mono.CSharp/4.0.0.0__0738eb9f132ed756/Mono.CSharp.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Mono.Cairo/4.0.0.0__0738eb9f132ed756/Mono.Cairo.dll b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Cairo/4.0.0.0__0738eb9f132ed756/Mono.Cairo.dll new file mode 100644 index 0000000..440d0cd Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Cairo/4.0.0.0__0738eb9f132ed756/Mono.Cairo.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Mono.Cairo/4.0.0.0__0738eb9f132ed756/Mono.Cairo.pdb b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Cairo/4.0.0.0__0738eb9f132ed756/Mono.Cairo.pdb new file mode 100644 index 0000000..3c585bb Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Cairo/4.0.0.0__0738eb9f132ed756/Mono.Cairo.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Mono.Cecil.VB.Mdb/0.9.5.0__0738eb9f132ed756/Mono.Cecil.VB.Mdb.dll b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Cecil.VB.Mdb/0.9.5.0__0738eb9f132ed756/Mono.Cecil.VB.Mdb.dll new file mode 100644 index 0000000..34d78ba Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Cecil.VB.Mdb/0.9.5.0__0738eb9f132ed756/Mono.Cecil.VB.Mdb.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Mono.Cecil.VB.Pdb/0.9.5.0__0738eb9f132ed756/Mono.Cecil.VB.Pdb.dll b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Cecil.VB.Pdb/0.9.5.0__0738eb9f132ed756/Mono.Cecil.VB.Pdb.dll new file mode 100644 index 0000000..1d9b686 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Cecil.VB.Pdb/0.9.5.0__0738eb9f132ed756/Mono.Cecil.VB.Pdb.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Mono.Cecil.VB/0.9.5.0__0738eb9f132ed756/Mono.Cecil.VB.dll b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Cecil.VB/0.9.5.0__0738eb9f132ed756/Mono.Cecil.VB.dll new file mode 100644 index 0000000..0011e84 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Cecil.VB/0.9.5.0__0738eb9f132ed756/Mono.Cecil.VB.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Mono.Cecil/0.11.1.0__0738eb9f132ed756/Mono.Cecil.dll b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Cecil/0.11.1.0__0738eb9f132ed756/Mono.Cecil.dll new file mode 100644 index 0000000..a78407d Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Cecil/0.11.1.0__0738eb9f132ed756/Mono.Cecil.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Mono.Cecil/0.11.1.0__0738eb9f132ed756/Mono.Cecil.pdb b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Cecil/0.11.1.0__0738eb9f132ed756/Mono.Cecil.pdb new file mode 100644 index 0000000..38a64fc Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Cecil/0.11.1.0__0738eb9f132ed756/Mono.Cecil.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Mono.Cecil/0.9.5.0__0738eb9f132ed756/Mono.Cecil.dll b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Cecil/0.9.5.0__0738eb9f132ed756/Mono.Cecil.dll new file mode 100644 index 0000000..97a879c Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Cecil/0.9.5.0__0738eb9f132ed756/Mono.Cecil.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Mono.Cecil/0.9.5.0__0738eb9f132ed756/Mono.Cecil.pdb b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Cecil/0.9.5.0__0738eb9f132ed756/Mono.Cecil.pdb new file mode 100644 index 0000000..d9bb6d7 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Cecil/0.9.5.0__0738eb9f132ed756/Mono.Cecil.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Mono.CodeContracts/4.0.0.0__0738eb9f132ed756/Mono.CodeContracts.dll b/ReHitman/Modules/Mono/lib/mono/gac/Mono.CodeContracts/4.0.0.0__0738eb9f132ed756/Mono.CodeContracts.dll new file mode 100644 index 0000000..40b1772 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Mono.CodeContracts/4.0.0.0__0738eb9f132ed756/Mono.CodeContracts.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Mono.CodeContracts/4.0.0.0__0738eb9f132ed756/Mono.CodeContracts.pdb b/ReHitman/Modules/Mono/lib/mono/gac/Mono.CodeContracts/4.0.0.0__0738eb9f132ed756/Mono.CodeContracts.pdb new file mode 100644 index 0000000..91c5b80 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Mono.CodeContracts/4.0.0.0__0738eb9f132ed756/Mono.CodeContracts.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Mono.CompilerServices.SymbolWriter/4.0.0.0__0738eb9f132ed756/Mono.CompilerServices.SymbolWriter.dll b/ReHitman/Modules/Mono/lib/mono/gac/Mono.CompilerServices.SymbolWriter/4.0.0.0__0738eb9f132ed756/Mono.CompilerServices.SymbolWriter.dll new file mode 100644 index 0000000..8e6976b Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Mono.CompilerServices.SymbolWriter/4.0.0.0__0738eb9f132ed756/Mono.CompilerServices.SymbolWriter.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Mono.CompilerServices.SymbolWriter/4.0.0.0__0738eb9f132ed756/Mono.CompilerServices.SymbolWriter.pdb b/ReHitman/Modules/Mono/lib/mono/gac/Mono.CompilerServices.SymbolWriter/4.0.0.0__0738eb9f132ed756/Mono.CompilerServices.SymbolWriter.pdb new file mode 100644 index 0000000..36b8f3f Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Mono.CompilerServices.SymbolWriter/4.0.0.0__0738eb9f132ed756/Mono.CompilerServices.SymbolWriter.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Mono.Data.Sqlite/4.0.0.0__0738eb9f132ed756/Mono.Data.Sqlite.dll b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Data.Sqlite/4.0.0.0__0738eb9f132ed756/Mono.Data.Sqlite.dll new file mode 100644 index 0000000..3d4f4e9 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Data.Sqlite/4.0.0.0__0738eb9f132ed756/Mono.Data.Sqlite.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Mono.Data.Sqlite/4.0.0.0__0738eb9f132ed756/Mono.Data.Sqlite.pdb b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Data.Sqlite/4.0.0.0__0738eb9f132ed756/Mono.Data.Sqlite.pdb new file mode 100644 index 0000000..d656021 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Data.Sqlite/4.0.0.0__0738eb9f132ed756/Mono.Data.Sqlite.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Mono.Data.Tds/4.0.0.0__0738eb9f132ed756/Mono.Data.Tds.dll b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Data.Tds/4.0.0.0__0738eb9f132ed756/Mono.Data.Tds.dll new file mode 100644 index 0000000..d196a1c Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Data.Tds/4.0.0.0__0738eb9f132ed756/Mono.Data.Tds.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Mono.Data.Tds/4.0.0.0__0738eb9f132ed756/Mono.Data.Tds.pdb b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Data.Tds/4.0.0.0__0738eb9f132ed756/Mono.Data.Tds.pdb new file mode 100644 index 0000000..a6ae144 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Data.Tds/4.0.0.0__0738eb9f132ed756/Mono.Data.Tds.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Mono.Debugger.Soft/4.0.0.0__0738eb9f132ed756/Mono.Debugger.Soft.dll b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Debugger.Soft/4.0.0.0__0738eb9f132ed756/Mono.Debugger.Soft.dll new file mode 100644 index 0000000..ae6b497 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Debugger.Soft/4.0.0.0__0738eb9f132ed756/Mono.Debugger.Soft.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Mono.Debugger.Soft/4.0.0.0__0738eb9f132ed756/Mono.Debugger.Soft.pdb b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Debugger.Soft/4.0.0.0__0738eb9f132ed756/Mono.Debugger.Soft.pdb new file mode 100644 index 0000000..f09eddc Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Debugger.Soft/4.0.0.0__0738eb9f132ed756/Mono.Debugger.Soft.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Mono.Http/4.0.0.0__0738eb9f132ed756/Mono.Http.dll b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Http/4.0.0.0__0738eb9f132ed756/Mono.Http.dll new file mode 100644 index 0000000..d1ff0d4 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Http/4.0.0.0__0738eb9f132ed756/Mono.Http.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Mono.Http/4.0.0.0__0738eb9f132ed756/Mono.Http.pdb b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Http/4.0.0.0__0738eb9f132ed756/Mono.Http.pdb new file mode 100644 index 0000000..d5093a5 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Http/4.0.0.0__0738eb9f132ed756/Mono.Http.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Mono.Management/4.0.0.0__0738eb9f132ed756/Mono.Management.dll b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Management/4.0.0.0__0738eb9f132ed756/Mono.Management.dll new file mode 100644 index 0000000..2e9ba99 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Management/4.0.0.0__0738eb9f132ed756/Mono.Management.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Mono.Management/4.0.0.0__0738eb9f132ed756/Mono.Management.pdb b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Management/4.0.0.0__0738eb9f132ed756/Mono.Management.pdb new file mode 100644 index 0000000..47538ab Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Management/4.0.0.0__0738eb9f132ed756/Mono.Management.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Mono.Messaging.RabbitMQ/4.0.0.0__0738eb9f132ed756/Mono.Messaging.RabbitMQ.dll b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Messaging.RabbitMQ/4.0.0.0__0738eb9f132ed756/Mono.Messaging.RabbitMQ.dll new file mode 100644 index 0000000..9d1c977 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Messaging.RabbitMQ/4.0.0.0__0738eb9f132ed756/Mono.Messaging.RabbitMQ.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Mono.Messaging.RabbitMQ/4.0.0.0__0738eb9f132ed756/Mono.Messaging.RabbitMQ.pdb b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Messaging.RabbitMQ/4.0.0.0__0738eb9f132ed756/Mono.Messaging.RabbitMQ.pdb new file mode 100644 index 0000000..3a349b1 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Messaging.RabbitMQ/4.0.0.0__0738eb9f132ed756/Mono.Messaging.RabbitMQ.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Mono.Messaging/4.0.0.0__0738eb9f132ed756/Mono.Messaging.dll b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Messaging/4.0.0.0__0738eb9f132ed756/Mono.Messaging.dll new file mode 100644 index 0000000..6ef56b4 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Messaging/4.0.0.0__0738eb9f132ed756/Mono.Messaging.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Mono.Messaging/4.0.0.0__0738eb9f132ed756/Mono.Messaging.pdb b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Messaging/4.0.0.0__0738eb9f132ed756/Mono.Messaging.pdb new file mode 100644 index 0000000..ff9b14e Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Messaging/4.0.0.0__0738eb9f132ed756/Mono.Messaging.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Mono.Parallel/4.0.0.0__0738eb9f132ed756/Mono.Parallel.dll b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Parallel/4.0.0.0__0738eb9f132ed756/Mono.Parallel.dll new file mode 100644 index 0000000..a2ba5be Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Parallel/4.0.0.0__0738eb9f132ed756/Mono.Parallel.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Mono.Parallel/4.0.0.0__0738eb9f132ed756/Mono.Parallel.pdb b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Parallel/4.0.0.0__0738eb9f132ed756/Mono.Parallel.pdb new file mode 100644 index 0000000..6a0afb9 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Parallel/4.0.0.0__0738eb9f132ed756/Mono.Parallel.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Mono.Posix/4.0.0.0__0738eb9f132ed756/Mono.Posix.dll b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Posix/4.0.0.0__0738eb9f132ed756/Mono.Posix.dll new file mode 100644 index 0000000..8a85dac Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Posix/4.0.0.0__0738eb9f132ed756/Mono.Posix.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Mono.Posix/4.0.0.0__0738eb9f132ed756/Mono.Posix.pdb b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Posix/4.0.0.0__0738eb9f132ed756/Mono.Posix.pdb new file mode 100644 index 0000000..3fd23c3 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Posix/4.0.0.0__0738eb9f132ed756/Mono.Posix.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Mono.Profiler.Log/4.0.0.0__0738eb9f132ed756/Mono.Profiler.Log.dll b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Profiler.Log/4.0.0.0__0738eb9f132ed756/Mono.Profiler.Log.dll new file mode 100644 index 0000000..c6e0d0b Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Profiler.Log/4.0.0.0__0738eb9f132ed756/Mono.Profiler.Log.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Mono.Profiler.Log/4.0.0.0__0738eb9f132ed756/Mono.Profiler.Log.pdb b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Profiler.Log/4.0.0.0__0738eb9f132ed756/Mono.Profiler.Log.pdb new file mode 100644 index 0000000..8a23dc8 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Profiler.Log/4.0.0.0__0738eb9f132ed756/Mono.Profiler.Log.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Mono.Security.Win32/4.0.0.0__0738eb9f132ed756/Mono.Security.Win32.dll b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Security.Win32/4.0.0.0__0738eb9f132ed756/Mono.Security.Win32.dll new file mode 100644 index 0000000..32d2510 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Security.Win32/4.0.0.0__0738eb9f132ed756/Mono.Security.Win32.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Mono.Security.Win32/4.0.0.0__0738eb9f132ed756/Mono.Security.Win32.pdb b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Security.Win32/4.0.0.0__0738eb9f132ed756/Mono.Security.Win32.pdb new file mode 100644 index 0000000..55740b1 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Security.Win32/4.0.0.0__0738eb9f132ed756/Mono.Security.Win32.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Mono.Security/4.0.0.0__0738eb9f132ed756/Mono.Security.dll b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Security/4.0.0.0__0738eb9f132ed756/Mono.Security.dll new file mode 100644 index 0000000..119bbb5 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Security/4.0.0.0__0738eb9f132ed756/Mono.Security.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Mono.Security/4.0.0.0__0738eb9f132ed756/Mono.Security.pdb b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Security/4.0.0.0__0738eb9f132ed756/Mono.Security.pdb new file mode 100644 index 0000000..fdcb300 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Security/4.0.0.0__0738eb9f132ed756/Mono.Security.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Mono.Simd/4.0.0.0__0738eb9f132ed756/Mono.Simd.dll b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Simd/4.0.0.0__0738eb9f132ed756/Mono.Simd.dll new file mode 100644 index 0000000..31e6af3 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Simd/4.0.0.0__0738eb9f132ed756/Mono.Simd.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Mono.Simd/4.0.0.0__0738eb9f132ed756/Mono.Simd.pdb b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Simd/4.0.0.0__0738eb9f132ed756/Mono.Simd.pdb new file mode 100644 index 0000000..6185597 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Simd/4.0.0.0__0738eb9f132ed756/Mono.Simd.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Mono.Tasklets/4.0.0.0__0738eb9f132ed756/Mono.Tasklets.dll b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Tasklets/4.0.0.0__0738eb9f132ed756/Mono.Tasklets.dll new file mode 100644 index 0000000..a2511f0 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Tasklets/4.0.0.0__0738eb9f132ed756/Mono.Tasklets.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Mono.Tasklets/4.0.0.0__0738eb9f132ed756/Mono.Tasklets.pdb b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Tasklets/4.0.0.0__0738eb9f132ed756/Mono.Tasklets.pdb new file mode 100644 index 0000000..6e9d311 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Mono.Tasklets/4.0.0.0__0738eb9f132ed756/Mono.Tasklets.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Mono.WebBrowser/4.0.0.0__0738eb9f132ed756/Mono.WebBrowser.dll b/ReHitman/Modules/Mono/lib/mono/gac/Mono.WebBrowser/4.0.0.0__0738eb9f132ed756/Mono.WebBrowser.dll new file mode 100644 index 0000000..704c3ae Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Mono.WebBrowser/4.0.0.0__0738eb9f132ed756/Mono.WebBrowser.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Mono.WebBrowser/4.0.0.0__0738eb9f132ed756/Mono.WebBrowser.pdb b/ReHitman/Modules/Mono/lib/mono/gac/Mono.WebBrowser/4.0.0.0__0738eb9f132ed756/Mono.WebBrowser.pdb new file mode 100644 index 0000000..b1a9736 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Mono.WebBrowser/4.0.0.0__0738eb9f132ed756/Mono.WebBrowser.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Mono.WebServer2/0.4.0.0__0738eb9f132ed756/Mono.WebServer2.dll b/ReHitman/Modules/Mono/lib/mono/gac/Mono.WebServer2/0.4.0.0__0738eb9f132ed756/Mono.WebServer2.dll new file mode 100644 index 0000000..6a00e14 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Mono.WebServer2/0.4.0.0__0738eb9f132ed756/Mono.WebServer2.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Mono.XBuild.Tasks/12.0.0.0__0738eb9f132ed756/Mono.XBuild.Tasks.dll b/ReHitman/Modules/Mono/lib/mono/gac/Mono.XBuild.Tasks/12.0.0.0__0738eb9f132ed756/Mono.XBuild.Tasks.dll new file mode 100644 index 0000000..79ef768 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Mono.XBuild.Tasks/12.0.0.0__0738eb9f132ed756/Mono.XBuild.Tasks.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Mono.XBuild.Tasks/12.0.0.0__0738eb9f132ed756/Mono.XBuild.Tasks.pdb b/ReHitman/Modules/Mono/lib/mono/gac/Mono.XBuild.Tasks/12.0.0.0__0738eb9f132ed756/Mono.XBuild.Tasks.pdb new file mode 100644 index 0000000..3147e40 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Mono.XBuild.Tasks/12.0.0.0__0738eb9f132ed756/Mono.XBuild.Tasks.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Mono.XBuild.Tasks/14.0.0.0__0738eb9f132ed756/Mono.XBuild.Tasks.dll b/ReHitman/Modules/Mono/lib/mono/gac/Mono.XBuild.Tasks/14.0.0.0__0738eb9f132ed756/Mono.XBuild.Tasks.dll new file mode 100644 index 0000000..f11f175 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Mono.XBuild.Tasks/14.0.0.0__0738eb9f132ed756/Mono.XBuild.Tasks.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Mono.XBuild.Tasks/14.0.0.0__0738eb9f132ed756/Mono.XBuild.Tasks.pdb b/ReHitman/Modules/Mono/lib/mono/gac/Mono.XBuild.Tasks/14.0.0.0__0738eb9f132ed756/Mono.XBuild.Tasks.pdb new file mode 100644 index 0000000..3147e40 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Mono.XBuild.Tasks/14.0.0.0__0738eb9f132ed756/Mono.XBuild.Tasks.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Mono.XBuild.Tasks/4.0.0.0__0738eb9f132ed756/Mono.XBuild.Tasks.dll b/ReHitman/Modules/Mono/lib/mono/gac/Mono.XBuild.Tasks/4.0.0.0__0738eb9f132ed756/Mono.XBuild.Tasks.dll new file mode 100644 index 0000000..a7b99fd Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Mono.XBuild.Tasks/4.0.0.0__0738eb9f132ed756/Mono.XBuild.Tasks.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Mono.XBuild.Tasks/4.0.0.0__0738eb9f132ed756/Mono.XBuild.Tasks.pdb b/ReHitman/Modules/Mono/lib/mono/gac/Mono.XBuild.Tasks/4.0.0.0__0738eb9f132ed756/Mono.XBuild.Tasks.pdb new file mode 100644 index 0000000..3147e40 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Mono.XBuild.Tasks/4.0.0.0__0738eb9f132ed756/Mono.XBuild.Tasks.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Novell.Directory.Ldap/4.0.0.0__0738eb9f132ed756/Novell.Directory.Ldap.dll b/ReHitman/Modules/Mono/lib/mono/gac/Novell.Directory.Ldap/4.0.0.0__0738eb9f132ed756/Novell.Directory.Ldap.dll new file mode 100644 index 0000000..f3485fd Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Novell.Directory.Ldap/4.0.0.0__0738eb9f132ed756/Novell.Directory.Ldap.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/Novell.Directory.Ldap/4.0.0.0__0738eb9f132ed756/Novell.Directory.Ldap.pdb b/ReHitman/Modules/Mono/lib/mono/gac/Novell.Directory.Ldap/4.0.0.0__0738eb9f132ed756/Novell.Directory.Ldap.pdb new file mode 100644 index 0000000..0a95822 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/Novell.Directory.Ldap/4.0.0.0__0738eb9f132ed756/Novell.Directory.Ldap.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/PEAPI/4.0.0.0__0738eb9f132ed756/PEAPI.dll b/ReHitman/Modules/Mono/lib/mono/gac/PEAPI/4.0.0.0__0738eb9f132ed756/PEAPI.dll new file mode 100644 index 0000000..38f00f5 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/PEAPI/4.0.0.0__0738eb9f132ed756/PEAPI.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/PEAPI/4.0.0.0__0738eb9f132ed756/PEAPI.pdb b/ReHitman/Modules/Mono/lib/mono/gac/PEAPI/4.0.0.0__0738eb9f132ed756/PEAPI.pdb new file mode 100644 index 0000000..8f75a29 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/PEAPI/4.0.0.0__0738eb9f132ed756/PEAPI.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/RabbitMQ.Client/4.0.0.0__b03f5f7f11d50a3a/RabbitMQ.Client.dll b/ReHitman/Modules/Mono/lib/mono/gac/RabbitMQ.Client/4.0.0.0__b03f5f7f11d50a3a/RabbitMQ.Client.dll new file mode 100644 index 0000000..506cd50 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/RabbitMQ.Client/4.0.0.0__b03f5f7f11d50a3a/RabbitMQ.Client.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/RabbitMQ.Client/4.0.0.0__b03f5f7f11d50a3a/RabbitMQ.Client.pdb b/ReHitman/Modules/Mono/lib/mono/gac/RabbitMQ.Client/4.0.0.0__b03f5f7f11d50a3a/RabbitMQ.Client.pdb new file mode 100644 index 0000000..dcaa4ff Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/RabbitMQ.Client/4.0.0.0__b03f5f7f11d50a3a/RabbitMQ.Client.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/SMDiagnostics/0.0.0.0__b77a5c561934e089/SMDiagnostics.dll b/ReHitman/Modules/Mono/lib/mono/gac/SMDiagnostics/0.0.0.0__b77a5c561934e089/SMDiagnostics.dll new file mode 100644 index 0000000..7ba4bea Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/SMDiagnostics/0.0.0.0__b77a5c561934e089/SMDiagnostics.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/SMDiagnostics/0.0.0.0__b77a5c561934e089/SMDiagnostics.pdb b/ReHitman/Modules/Mono/lib/mono/gac/SMDiagnostics/0.0.0.0__b77a5c561934e089/SMDiagnostics.pdb new file mode 100644 index 0000000..1a2a67d Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/SMDiagnostics/0.0.0.0__b77a5c561934e089/SMDiagnostics.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.ComponentModel.Composition/4.0.0.0__b77a5c561934e089/System.ComponentModel.Composition.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.ComponentModel.Composition/4.0.0.0__b77a5c561934e089/System.ComponentModel.Composition.dll new file mode 100644 index 0000000..963ddf2 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.ComponentModel.Composition/4.0.0.0__b77a5c561934e089/System.ComponentModel.Composition.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.ComponentModel.Composition/4.0.0.0__b77a5c561934e089/System.ComponentModel.Composition.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.ComponentModel.Composition/4.0.0.0__b77a5c561934e089/System.ComponentModel.Composition.pdb new file mode 100644 index 0000000..5e44ff8 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.ComponentModel.Composition/4.0.0.0__b77a5c561934e089/System.ComponentModel.Composition.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.ComponentModel.DataAnnotations/4.0.0.0__31bf3856ad364e35/System.ComponentModel.DataAnnotations.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.ComponentModel.DataAnnotations/4.0.0.0__31bf3856ad364e35/System.ComponentModel.DataAnnotations.dll new file mode 100644 index 0000000..96a5504 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.ComponentModel.DataAnnotations/4.0.0.0__31bf3856ad364e35/System.ComponentModel.DataAnnotations.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.ComponentModel.DataAnnotations/4.0.0.0__31bf3856ad364e35/System.ComponentModel.DataAnnotations.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.ComponentModel.DataAnnotations/4.0.0.0__31bf3856ad364e35/System.ComponentModel.DataAnnotations.pdb new file mode 100644 index 0000000..eef3d6b Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.ComponentModel.DataAnnotations/4.0.0.0__31bf3856ad364e35/System.ComponentModel.DataAnnotations.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Configuration.Install/4.0.0.0__b03f5f7f11d50a3a/System.Configuration.Install.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Configuration.Install/4.0.0.0__b03f5f7f11d50a3a/System.Configuration.Install.dll new file mode 100644 index 0000000..8b5d236 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Configuration.Install/4.0.0.0__b03f5f7f11d50a3a/System.Configuration.Install.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Configuration.Install/4.0.0.0__b03f5f7f11d50a3a/System.Configuration.Install.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Configuration.Install/4.0.0.0__b03f5f7f11d50a3a/System.Configuration.Install.pdb new file mode 100644 index 0000000..de58caf Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Configuration.Install/4.0.0.0__b03f5f7f11d50a3a/System.Configuration.Install.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Configuration/4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Configuration/4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll new file mode 100644 index 0000000..9ff00aa Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Configuration/4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Configuration/4.0.0.0__b03f5f7f11d50a3a/System.Configuration.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Configuration/4.0.0.0__b03f5f7f11d50a3a/System.Configuration.pdb new file mode 100644 index 0000000..ab23d91 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Configuration/4.0.0.0__b03f5f7f11d50a3a/System.Configuration.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Core/4.0.0.0__b77a5c561934e089/System.Core.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Core/4.0.0.0__b77a5c561934e089/System.Core.dll new file mode 100644 index 0000000..cf04ae2 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Core/4.0.0.0__b77a5c561934e089/System.Core.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Core/4.0.0.0__b77a5c561934e089/System.Core.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Core/4.0.0.0__b77a5c561934e089/System.Core.pdb new file mode 100644 index 0000000..1864453 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Core/4.0.0.0__b77a5c561934e089/System.Core.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Data.DataSetExtensions/4.0.0.0__b77a5c561934e089/System.Data.DataSetExtensions.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Data.DataSetExtensions/4.0.0.0__b77a5c561934e089/System.Data.DataSetExtensions.dll new file mode 100644 index 0000000..1bd4855 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Data.DataSetExtensions/4.0.0.0__b77a5c561934e089/System.Data.DataSetExtensions.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Data.DataSetExtensions/4.0.0.0__b77a5c561934e089/System.Data.DataSetExtensions.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Data.DataSetExtensions/4.0.0.0__b77a5c561934e089/System.Data.DataSetExtensions.pdb new file mode 100644 index 0000000..3a4c6cd Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Data.DataSetExtensions/4.0.0.0__b77a5c561934e089/System.Data.DataSetExtensions.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Data.Entity/4.0.0.0__b77a5c561934e089/System.Data.Entity.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Data.Entity/4.0.0.0__b77a5c561934e089/System.Data.Entity.dll new file mode 100644 index 0000000..6fb22b7 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Data.Entity/4.0.0.0__b77a5c561934e089/System.Data.Entity.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Data.Entity/4.0.0.0__b77a5c561934e089/System.Data.Entity.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Data.Entity/4.0.0.0__b77a5c561934e089/System.Data.Entity.pdb new file mode 100644 index 0000000..6d37a37 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Data.Entity/4.0.0.0__b77a5c561934e089/System.Data.Entity.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Data.Linq/4.0.0.0__b77a5c561934e089/System.Data.Linq.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Data.Linq/4.0.0.0__b77a5c561934e089/System.Data.Linq.dll new file mode 100644 index 0000000..3ab238a Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Data.Linq/4.0.0.0__b77a5c561934e089/System.Data.Linq.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Data.Linq/4.0.0.0__b77a5c561934e089/System.Data.Linq.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Data.Linq/4.0.0.0__b77a5c561934e089/System.Data.Linq.pdb new file mode 100644 index 0000000..ee4cabf Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Data.Linq/4.0.0.0__b77a5c561934e089/System.Data.Linq.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Data.OracleClient/4.0.0.0__b77a5c561934e089/System.Data.OracleClient.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Data.OracleClient/4.0.0.0__b77a5c561934e089/System.Data.OracleClient.dll new file mode 100644 index 0000000..ef33164 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Data.OracleClient/4.0.0.0__b77a5c561934e089/System.Data.OracleClient.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Data.OracleClient/4.0.0.0__b77a5c561934e089/System.Data.OracleClient.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Data.OracleClient/4.0.0.0__b77a5c561934e089/System.Data.OracleClient.pdb new file mode 100644 index 0000000..5852d77 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Data.OracleClient/4.0.0.0__b77a5c561934e089/System.Data.OracleClient.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Data.Services.Client/4.0.0.0__b77a5c561934e089/System.Data.Services.Client.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Data.Services.Client/4.0.0.0__b77a5c561934e089/System.Data.Services.Client.dll new file mode 100644 index 0000000..5a27b78 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Data.Services.Client/4.0.0.0__b77a5c561934e089/System.Data.Services.Client.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Data.Services.Client/4.0.0.0__b77a5c561934e089/System.Data.Services.Client.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Data.Services.Client/4.0.0.0__b77a5c561934e089/System.Data.Services.Client.pdb new file mode 100644 index 0000000..68a15fa Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Data.Services.Client/4.0.0.0__b77a5c561934e089/System.Data.Services.Client.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Data.Services/4.0.0.0__b77a5c561934e089/System.Data.Services.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Data.Services/4.0.0.0__b77a5c561934e089/System.Data.Services.dll new file mode 100644 index 0000000..6f67e47 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Data.Services/4.0.0.0__b77a5c561934e089/System.Data.Services.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Data.Services/4.0.0.0__b77a5c561934e089/System.Data.Services.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Data.Services/4.0.0.0__b77a5c561934e089/System.Data.Services.pdb new file mode 100644 index 0000000..f1f80cd Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Data.Services/4.0.0.0__b77a5c561934e089/System.Data.Services.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Data/4.0.0.0__b77a5c561934e089/System.Data.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Data/4.0.0.0__b77a5c561934e089/System.Data.dll new file mode 100644 index 0000000..1b9708a Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Data/4.0.0.0__b77a5c561934e089/System.Data.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Data/4.0.0.0__b77a5c561934e089/System.Data.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Data/4.0.0.0__b77a5c561934e089/System.Data.pdb new file mode 100644 index 0000000..c04ca0c Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Data/4.0.0.0__b77a5c561934e089/System.Data.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Deployment/4.0.0.0__b03f5f7f11d50a3a/System.Deployment.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Deployment/4.0.0.0__b03f5f7f11d50a3a/System.Deployment.dll new file mode 100644 index 0000000..9cc7c5e Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Deployment/4.0.0.0__b03f5f7f11d50a3a/System.Deployment.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Deployment/4.0.0.0__b03f5f7f11d50a3a/System.Deployment.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Deployment/4.0.0.0__b03f5f7f11d50a3a/System.Deployment.pdb new file mode 100644 index 0000000..a3de295 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Deployment/4.0.0.0__b03f5f7f11d50a3a/System.Deployment.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Design/4.0.0.0__b03f5f7f11d50a3a/System.Design.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Design/4.0.0.0__b03f5f7f11d50a3a/System.Design.dll new file mode 100644 index 0000000..88f54c1 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Design/4.0.0.0__b03f5f7f11d50a3a/System.Design.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Design/4.0.0.0__b03f5f7f11d50a3a/System.Design.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Design/4.0.0.0__b03f5f7f11d50a3a/System.Design.pdb new file mode 100644 index 0000000..3fa0516 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Design/4.0.0.0__b03f5f7f11d50a3a/System.Design.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.DirectoryServices.Protocols/4.0.0.0__b03f5f7f11d50a3a/System.DirectoryServices.Protocols.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.DirectoryServices.Protocols/4.0.0.0__b03f5f7f11d50a3a/System.DirectoryServices.Protocols.dll new file mode 100644 index 0000000..84b0838 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.DirectoryServices.Protocols/4.0.0.0__b03f5f7f11d50a3a/System.DirectoryServices.Protocols.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.DirectoryServices.Protocols/4.0.0.0__b03f5f7f11d50a3a/System.DirectoryServices.Protocols.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.DirectoryServices.Protocols/4.0.0.0__b03f5f7f11d50a3a/System.DirectoryServices.Protocols.pdb new file mode 100644 index 0000000..a86f78a Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.DirectoryServices.Protocols/4.0.0.0__b03f5f7f11d50a3a/System.DirectoryServices.Protocols.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.DirectoryServices/4.0.0.0__b03f5f7f11d50a3a/System.DirectoryServices.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.DirectoryServices/4.0.0.0__b03f5f7f11d50a3a/System.DirectoryServices.dll new file mode 100644 index 0000000..375e872 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.DirectoryServices/4.0.0.0__b03f5f7f11d50a3a/System.DirectoryServices.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.DirectoryServices/4.0.0.0__b03f5f7f11d50a3a/System.DirectoryServices.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.DirectoryServices/4.0.0.0__b03f5f7f11d50a3a/System.DirectoryServices.pdb new file mode 100644 index 0000000..f724202 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.DirectoryServices/4.0.0.0__b03f5f7f11d50a3a/System.DirectoryServices.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Drawing.Design/4.0.0.0__b03f5f7f11d50a3a/System.Drawing.Design.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Drawing.Design/4.0.0.0__b03f5f7f11d50a3a/System.Drawing.Design.dll new file mode 100644 index 0000000..3452467 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Drawing.Design/4.0.0.0__b03f5f7f11d50a3a/System.Drawing.Design.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Drawing.Design/4.0.0.0__b03f5f7f11d50a3a/System.Drawing.Design.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Drawing.Design/4.0.0.0__b03f5f7f11d50a3a/System.Drawing.Design.pdb new file mode 100644 index 0000000..428c8f0 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Drawing.Design/4.0.0.0__b03f5f7f11d50a3a/System.Drawing.Design.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Drawing/4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Drawing/4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll new file mode 100644 index 0000000..4b358bb Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Drawing/4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Drawing/4.0.0.0__b03f5f7f11d50a3a/System.Drawing.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Drawing/4.0.0.0__b03f5f7f11d50a3a/System.Drawing.pdb new file mode 100644 index 0000000..e728086 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Drawing/4.0.0.0__b03f5f7f11d50a3a/System.Drawing.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Dynamic/4.0.0.0__b03f5f7f11d50a3a/System.Dynamic.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Dynamic/4.0.0.0__b03f5f7f11d50a3a/System.Dynamic.dll new file mode 100644 index 0000000..a6ca83f Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Dynamic/4.0.0.0__b03f5f7f11d50a3a/System.Dynamic.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Dynamic/4.0.0.0__b03f5f7f11d50a3a/System.Dynamic.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Dynamic/4.0.0.0__b03f5f7f11d50a3a/System.Dynamic.pdb new file mode 100644 index 0000000..46e4447 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Dynamic/4.0.0.0__b03f5f7f11d50a3a/System.Dynamic.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.EnterpriseServices/4.0.0.0__b03f5f7f11d50a3a/System.EnterpriseServices.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.EnterpriseServices/4.0.0.0__b03f5f7f11d50a3a/System.EnterpriseServices.dll new file mode 100644 index 0000000..0fa44a0 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.EnterpriseServices/4.0.0.0__b03f5f7f11d50a3a/System.EnterpriseServices.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.EnterpriseServices/4.0.0.0__b03f5f7f11d50a3a/System.EnterpriseServices.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.EnterpriseServices/4.0.0.0__b03f5f7f11d50a3a/System.EnterpriseServices.pdb new file mode 100644 index 0000000..97cf87b Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.EnterpriseServices/4.0.0.0__b03f5f7f11d50a3a/System.EnterpriseServices.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.IO.Compression.FileSystem/4.0.0.0__b77a5c561934e089/System.IO.Compression.FileSystem.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.IO.Compression.FileSystem/4.0.0.0__b77a5c561934e089/System.IO.Compression.FileSystem.dll new file mode 100644 index 0000000..5f07808 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.IO.Compression.FileSystem/4.0.0.0__b77a5c561934e089/System.IO.Compression.FileSystem.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.IO.Compression.FileSystem/4.0.0.0__b77a5c561934e089/System.IO.Compression.FileSystem.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.IO.Compression.FileSystem/4.0.0.0__b77a5c561934e089/System.IO.Compression.FileSystem.pdb new file mode 100644 index 0000000..771e791 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.IO.Compression.FileSystem/4.0.0.0__b77a5c561934e089/System.IO.Compression.FileSystem.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.IO.Compression/4.0.0.0__b77a5c561934e089/System.IO.Compression.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.IO.Compression/4.0.0.0__b77a5c561934e089/System.IO.Compression.dll new file mode 100644 index 0000000..66e1da7 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.IO.Compression/4.0.0.0__b77a5c561934e089/System.IO.Compression.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.IO.Compression/4.0.0.0__b77a5c561934e089/System.IO.Compression.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.IO.Compression/4.0.0.0__b77a5c561934e089/System.IO.Compression.pdb new file mode 100644 index 0000000..263872c Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.IO.Compression/4.0.0.0__b77a5c561934e089/System.IO.Compression.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.IdentityModel.Selectors/4.0.0.0__b77a5c561934e089/System.IdentityModel.Selectors.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.IdentityModel.Selectors/4.0.0.0__b77a5c561934e089/System.IdentityModel.Selectors.dll new file mode 100644 index 0000000..44e659a Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.IdentityModel.Selectors/4.0.0.0__b77a5c561934e089/System.IdentityModel.Selectors.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.IdentityModel.Selectors/4.0.0.0__b77a5c561934e089/System.IdentityModel.Selectors.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.IdentityModel.Selectors/4.0.0.0__b77a5c561934e089/System.IdentityModel.Selectors.pdb new file mode 100644 index 0000000..6b2957d Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.IdentityModel.Selectors/4.0.0.0__b77a5c561934e089/System.IdentityModel.Selectors.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.IdentityModel/4.0.0.0__b77a5c561934e089/System.IdentityModel.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.IdentityModel/4.0.0.0__b77a5c561934e089/System.IdentityModel.dll new file mode 100644 index 0000000..7201332 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.IdentityModel/4.0.0.0__b77a5c561934e089/System.IdentityModel.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.IdentityModel/4.0.0.0__b77a5c561934e089/System.IdentityModel.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.IdentityModel/4.0.0.0__b77a5c561934e089/System.IdentityModel.pdb new file mode 100644 index 0000000..2e1592a Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.IdentityModel/4.0.0.0__b77a5c561934e089/System.IdentityModel.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Json.Microsoft/4.0.0.0__31bf3856ad364e35/System.Json.Microsoft.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Json.Microsoft/4.0.0.0__31bf3856ad364e35/System.Json.Microsoft.dll new file mode 100644 index 0000000..c89bbc7 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Json.Microsoft/4.0.0.0__31bf3856ad364e35/System.Json.Microsoft.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Json.Microsoft/4.0.0.0__31bf3856ad364e35/System.Json.Microsoft.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Json.Microsoft/4.0.0.0__31bf3856ad364e35/System.Json.Microsoft.pdb new file mode 100644 index 0000000..72b5d7b Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Json.Microsoft/4.0.0.0__31bf3856ad364e35/System.Json.Microsoft.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Json/4.0.0.0__31bf3856ad364e35/System.Json.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Json/4.0.0.0__31bf3856ad364e35/System.Json.dll new file mode 100644 index 0000000..4b84046 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Json/4.0.0.0__31bf3856ad364e35/System.Json.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Json/4.0.0.0__31bf3856ad364e35/System.Json.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Json/4.0.0.0__31bf3856ad364e35/System.Json.pdb new file mode 100644 index 0000000..b179497 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Json/4.0.0.0__31bf3856ad364e35/System.Json.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Management/4.0.0.0__b03f5f7f11d50a3a/System.Management.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Management/4.0.0.0__b03f5f7f11d50a3a/System.Management.dll new file mode 100644 index 0000000..35e8d2b Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Management/4.0.0.0__b03f5f7f11d50a3a/System.Management.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Management/4.0.0.0__b03f5f7f11d50a3a/System.Management.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Management/4.0.0.0__b03f5f7f11d50a3a/System.Management.pdb new file mode 100644 index 0000000..4569508 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Management/4.0.0.0__b03f5f7f11d50a3a/System.Management.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Messaging/4.0.0.0__b03f5f7f11d50a3a/System.Messaging.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Messaging/4.0.0.0__b03f5f7f11d50a3a/System.Messaging.dll new file mode 100644 index 0000000..fb274c2 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Messaging/4.0.0.0__b03f5f7f11d50a3a/System.Messaging.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Messaging/4.0.0.0__b03f5f7f11d50a3a/System.Messaging.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Messaging/4.0.0.0__b03f5f7f11d50a3a/System.Messaging.pdb new file mode 100644 index 0000000..0c150bf Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Messaging/4.0.0.0__b03f5f7f11d50a3a/System.Messaging.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Net.Http.Formatting/4.0.0.0__31bf3856ad364e35/System.Net.Http.Formatting.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Net.Http.Formatting/4.0.0.0__31bf3856ad364e35/System.Net.Http.Formatting.dll new file mode 100644 index 0000000..eae00ed Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Net.Http.Formatting/4.0.0.0__31bf3856ad364e35/System.Net.Http.Formatting.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Net.Http.Formatting/4.0.0.0__31bf3856ad364e35/System.Net.Http.Formatting.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Net.Http.Formatting/4.0.0.0__31bf3856ad364e35/System.Net.Http.Formatting.pdb new file mode 100644 index 0000000..d585d17 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Net.Http.Formatting/4.0.0.0__31bf3856ad364e35/System.Net.Http.Formatting.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Net.Http.WebRequest/4.0.0.0__b03f5f7f11d50a3a/System.Net.Http.WebRequest.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Net.Http.WebRequest/4.0.0.0__b03f5f7f11d50a3a/System.Net.Http.WebRequest.dll new file mode 100644 index 0000000..500a3dc Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Net.Http.WebRequest/4.0.0.0__b03f5f7f11d50a3a/System.Net.Http.WebRequest.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Net.Http.WebRequest/4.0.0.0__b03f5f7f11d50a3a/System.Net.Http.WebRequest.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Net.Http.WebRequest/4.0.0.0__b03f5f7f11d50a3a/System.Net.Http.WebRequest.pdb new file mode 100644 index 0000000..fe92b2b Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Net.Http.WebRequest/4.0.0.0__b03f5f7f11d50a3a/System.Net.Http.WebRequest.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Net.Http/4.0.0.0__b03f5f7f11d50a3a/System.Net.Http.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Net.Http/4.0.0.0__b03f5f7f11d50a3a/System.Net.Http.dll new file mode 100644 index 0000000..d87380c Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Net.Http/4.0.0.0__b03f5f7f11d50a3a/System.Net.Http.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Net.Http/4.0.0.0__b03f5f7f11d50a3a/System.Net.Http.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Net.Http/4.0.0.0__b03f5f7f11d50a3a/System.Net.Http.pdb new file mode 100644 index 0000000..72495b5 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Net.Http/4.0.0.0__b03f5f7f11d50a3a/System.Net.Http.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Net/4.0.0.0__b03f5f7f11d50a3a/System.Net.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Net/4.0.0.0__b03f5f7f11d50a3a/System.Net.dll new file mode 100644 index 0000000..49c0c66 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Net/4.0.0.0__b03f5f7f11d50a3a/System.Net.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Net/4.0.0.0__b03f5f7f11d50a3a/System.Net.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Net/4.0.0.0__b03f5f7f11d50a3a/System.Net.pdb new file mode 100644 index 0000000..9f28112 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Net/4.0.0.0__b03f5f7f11d50a3a/System.Net.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Numerics.Vectors/4.0.0.0__b03f5f7f11d50a3a/System.Numerics.Vectors.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Numerics.Vectors/4.0.0.0__b03f5f7f11d50a3a/System.Numerics.Vectors.dll new file mode 100644 index 0000000..2211c36 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Numerics.Vectors/4.0.0.0__b03f5f7f11d50a3a/System.Numerics.Vectors.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Numerics.Vectors/4.0.0.0__b03f5f7f11d50a3a/System.Numerics.Vectors.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Numerics.Vectors/4.0.0.0__b03f5f7f11d50a3a/System.Numerics.Vectors.pdb new file mode 100644 index 0000000..d1a0783 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Numerics.Vectors/4.0.0.0__b03f5f7f11d50a3a/System.Numerics.Vectors.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Numerics/4.0.0.0__b77a5c561934e089/System.Numerics.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Numerics/4.0.0.0__b77a5c561934e089/System.Numerics.dll new file mode 100644 index 0000000..469aa2a Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Numerics/4.0.0.0__b77a5c561934e089/System.Numerics.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Numerics/4.0.0.0__b77a5c561934e089/System.Numerics.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Numerics/4.0.0.0__b77a5c561934e089/System.Numerics.pdb new file mode 100644 index 0000000..0f2ebac Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Numerics/4.0.0.0__b77a5c561934e089/System.Numerics.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Core/2.2.0.0__31bf3856ad364e35/System.Reactive.Core.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Core/2.2.0.0__31bf3856ad364e35/System.Reactive.Core.dll new file mode 100644 index 0000000..00e1498 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Core/2.2.0.0__31bf3856ad364e35/System.Reactive.Core.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Core/2.2.0.0__31bf3856ad364e35/System.Reactive.Core.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Core/2.2.0.0__31bf3856ad364e35/System.Reactive.Core.pdb new file mode 100644 index 0000000..9a68578 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Core/2.2.0.0__31bf3856ad364e35/System.Reactive.Core.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Debugger/2.2.0.0__31bf3856ad364e35/System.Reactive.Debugger.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Debugger/2.2.0.0__31bf3856ad364e35/System.Reactive.Debugger.dll new file mode 100644 index 0000000..804e679 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Debugger/2.2.0.0__31bf3856ad364e35/System.Reactive.Debugger.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Debugger/2.2.0.0__31bf3856ad364e35/System.Reactive.Debugger.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Debugger/2.2.0.0__31bf3856ad364e35/System.Reactive.Debugger.pdb new file mode 100644 index 0000000..60ca8d9 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Debugger/2.2.0.0__31bf3856ad364e35/System.Reactive.Debugger.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Experimental/2.2.0.0__31bf3856ad364e35/System.Reactive.Experimental.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Experimental/2.2.0.0__31bf3856ad364e35/System.Reactive.Experimental.dll new file mode 100644 index 0000000..6fb0eba Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Experimental/2.2.0.0__31bf3856ad364e35/System.Reactive.Experimental.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Experimental/2.2.0.0__31bf3856ad364e35/System.Reactive.Experimental.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Experimental/2.2.0.0__31bf3856ad364e35/System.Reactive.Experimental.pdb new file mode 100644 index 0000000..cad60b4 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Experimental/2.2.0.0__31bf3856ad364e35/System.Reactive.Experimental.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Interfaces/2.2.0.0__31bf3856ad364e35/System.Reactive.Interfaces.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Interfaces/2.2.0.0__31bf3856ad364e35/System.Reactive.Interfaces.dll new file mode 100644 index 0000000..e533352 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Interfaces/2.2.0.0__31bf3856ad364e35/System.Reactive.Interfaces.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Interfaces/2.2.0.0__31bf3856ad364e35/System.Reactive.Interfaces.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Interfaces/2.2.0.0__31bf3856ad364e35/System.Reactive.Interfaces.pdb new file mode 100644 index 0000000..098fb45 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Interfaces/2.2.0.0__31bf3856ad364e35/System.Reactive.Interfaces.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Linq/2.2.0.0__31bf3856ad364e35/System.Reactive.Linq.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Linq/2.2.0.0__31bf3856ad364e35/System.Reactive.Linq.dll new file mode 100644 index 0000000..bbafe8a Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Linq/2.2.0.0__31bf3856ad364e35/System.Reactive.Linq.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Linq/2.2.0.0__31bf3856ad364e35/System.Reactive.Linq.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Linq/2.2.0.0__31bf3856ad364e35/System.Reactive.Linq.pdb new file mode 100644 index 0000000..dd6ab15 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Linq/2.2.0.0__31bf3856ad364e35/System.Reactive.Linq.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Observable.Aliases/0.0.0.0__31bf3856ad364e35/System.Reactive.Observable.Aliases.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Observable.Aliases/0.0.0.0__31bf3856ad364e35/System.Reactive.Observable.Aliases.dll new file mode 100644 index 0000000..600dc67 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Observable.Aliases/0.0.0.0__31bf3856ad364e35/System.Reactive.Observable.Aliases.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Observable.Aliases/0.0.0.0__31bf3856ad364e35/System.Reactive.Observable.Aliases.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Observable.Aliases/0.0.0.0__31bf3856ad364e35/System.Reactive.Observable.Aliases.pdb new file mode 100644 index 0000000..050a5d9 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Observable.Aliases/0.0.0.0__31bf3856ad364e35/System.Reactive.Observable.Aliases.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.PlatformServices/2.2.0.0__31bf3856ad364e35/System.Reactive.PlatformServices.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.PlatformServices/2.2.0.0__31bf3856ad364e35/System.Reactive.PlatformServices.dll new file mode 100644 index 0000000..ebca9de Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.PlatformServices/2.2.0.0__31bf3856ad364e35/System.Reactive.PlatformServices.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.PlatformServices/2.2.0.0__31bf3856ad364e35/System.Reactive.PlatformServices.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.PlatformServices/2.2.0.0__31bf3856ad364e35/System.Reactive.PlatformServices.pdb new file mode 100644 index 0000000..b55d764 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.PlatformServices/2.2.0.0__31bf3856ad364e35/System.Reactive.PlatformServices.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Providers/2.2.0.0__31bf3856ad364e35/System.Reactive.Providers.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Providers/2.2.0.0__31bf3856ad364e35/System.Reactive.Providers.dll new file mode 100644 index 0000000..dfcc0c4 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Providers/2.2.0.0__31bf3856ad364e35/System.Reactive.Providers.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Providers/2.2.0.0__31bf3856ad364e35/System.Reactive.Providers.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Providers/2.2.0.0__31bf3856ad364e35/System.Reactive.Providers.pdb new file mode 100644 index 0000000..7c33ba4 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Providers/2.2.0.0__31bf3856ad364e35/System.Reactive.Providers.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Runtime.Remoting/2.2.0.0__31bf3856ad364e35/System.Reactive.Runtime.Remoting.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Runtime.Remoting/2.2.0.0__31bf3856ad364e35/System.Reactive.Runtime.Remoting.dll new file mode 100644 index 0000000..d379f46 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Runtime.Remoting/2.2.0.0__31bf3856ad364e35/System.Reactive.Runtime.Remoting.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Runtime.Remoting/2.2.0.0__31bf3856ad364e35/System.Reactive.Runtime.Remoting.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Runtime.Remoting/2.2.0.0__31bf3856ad364e35/System.Reactive.Runtime.Remoting.pdb new file mode 100644 index 0000000..193669c Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Runtime.Remoting/2.2.0.0__31bf3856ad364e35/System.Reactive.Runtime.Remoting.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Windows.Forms/2.2.0.0__31bf3856ad364e35/System.Reactive.Windows.Forms.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Windows.Forms/2.2.0.0__31bf3856ad364e35/System.Reactive.Windows.Forms.dll new file mode 100644 index 0000000..339ede4 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Windows.Forms/2.2.0.0__31bf3856ad364e35/System.Reactive.Windows.Forms.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Windows.Forms/2.2.0.0__31bf3856ad364e35/System.Reactive.Windows.Forms.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Windows.Forms/2.2.0.0__31bf3856ad364e35/System.Reactive.Windows.Forms.pdb new file mode 100644 index 0000000..b512556 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Windows.Forms/2.2.0.0__31bf3856ad364e35/System.Reactive.Windows.Forms.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Windows.Threading/2.2.0.0__31bf3856ad364e35/System.Reactive.Windows.Threading.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Windows.Threading/2.2.0.0__31bf3856ad364e35/System.Reactive.Windows.Threading.dll new file mode 100644 index 0000000..8fd326b Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Windows.Threading/2.2.0.0__31bf3856ad364e35/System.Reactive.Windows.Threading.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Windows.Threading/2.2.0.0__31bf3856ad364e35/System.Reactive.Windows.Threading.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Windows.Threading/2.2.0.0__31bf3856ad364e35/System.Reactive.Windows.Threading.pdb new file mode 100644 index 0000000..c600df5 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Reactive.Windows.Threading/2.2.0.0__31bf3856ad364e35/System.Reactive.Windows.Threading.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Reflection.Context/4.0.0.0__b77a5c561934e089/System.Reflection.Context.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Reflection.Context/4.0.0.0__b77a5c561934e089/System.Reflection.Context.dll new file mode 100644 index 0000000..b6cad17 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Reflection.Context/4.0.0.0__b77a5c561934e089/System.Reflection.Context.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Reflection.Context/4.0.0.0__b77a5c561934e089/System.Reflection.Context.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Reflection.Context/4.0.0.0__b77a5c561934e089/System.Reflection.Context.pdb new file mode 100644 index 0000000..4c38cd3 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Reflection.Context/4.0.0.0__b77a5c561934e089/System.Reflection.Context.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Runtime.Caching/4.0.0.0__b03f5f7f11d50a3a/System.Runtime.Caching.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Runtime.Caching/4.0.0.0__b03f5f7f11d50a3a/System.Runtime.Caching.dll new file mode 100644 index 0000000..98b7dd4 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Runtime.Caching/4.0.0.0__b03f5f7f11d50a3a/System.Runtime.Caching.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Runtime.Caching/4.0.0.0__b03f5f7f11d50a3a/System.Runtime.Caching.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Runtime.Caching/4.0.0.0__b03f5f7f11d50a3a/System.Runtime.Caching.pdb new file mode 100644 index 0000000..d365731 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Runtime.Caching/4.0.0.0__b03f5f7f11d50a3a/System.Runtime.Caching.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Runtime.DurableInstancing/4.0.0.0__31bf3856ad364e35/System.Runtime.DurableInstancing.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Runtime.DurableInstancing/4.0.0.0__31bf3856ad364e35/System.Runtime.DurableInstancing.dll new file mode 100644 index 0000000..9ede90e Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Runtime.DurableInstancing/4.0.0.0__31bf3856ad364e35/System.Runtime.DurableInstancing.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Runtime.DurableInstancing/4.0.0.0__31bf3856ad364e35/System.Runtime.DurableInstancing.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Runtime.DurableInstancing/4.0.0.0__31bf3856ad364e35/System.Runtime.DurableInstancing.pdb new file mode 100644 index 0000000..c154251 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Runtime.DurableInstancing/4.0.0.0__31bf3856ad364e35/System.Runtime.DurableInstancing.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Runtime.Remoting/4.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Runtime.Remoting/4.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll new file mode 100644 index 0000000..47c7452 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Runtime.Remoting/4.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Runtime.Remoting/4.0.0.0__b77a5c561934e089/System.Runtime.Remoting.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Runtime.Remoting/4.0.0.0__b77a5c561934e089/System.Runtime.Remoting.pdb new file mode 100644 index 0000000..68a70cc Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Runtime.Remoting/4.0.0.0__b77a5c561934e089/System.Runtime.Remoting.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Runtime.Serialization.Formatters.Soap/4.0.0.0__b03f5f7f11d50a3a/System.Runtime.Serialization.Formatters.Soap.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Runtime.Serialization.Formatters.Soap/4.0.0.0__b03f5f7f11d50a3a/System.Runtime.Serialization.Formatters.Soap.dll new file mode 100644 index 0000000..4e509d3 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Runtime.Serialization.Formatters.Soap/4.0.0.0__b03f5f7f11d50a3a/System.Runtime.Serialization.Formatters.Soap.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Runtime.Serialization.Formatters.Soap/4.0.0.0__b03f5f7f11d50a3a/System.Runtime.Serialization.Formatters.Soap.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Runtime.Serialization.Formatters.Soap/4.0.0.0__b03f5f7f11d50a3a/System.Runtime.Serialization.Formatters.Soap.pdb new file mode 100644 index 0000000..99df65f Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Runtime.Serialization.Formatters.Soap/4.0.0.0__b03f5f7f11d50a3a/System.Runtime.Serialization.Formatters.Soap.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Runtime.Serialization/4.0.0.0__b77a5c561934e089/System.Runtime.Serialization.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Runtime.Serialization/4.0.0.0__b77a5c561934e089/System.Runtime.Serialization.dll new file mode 100644 index 0000000..4eaaa5c Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Runtime.Serialization/4.0.0.0__b77a5c561934e089/System.Runtime.Serialization.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Runtime.Serialization/4.0.0.0__b77a5c561934e089/System.Runtime.Serialization.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Runtime.Serialization/4.0.0.0__b77a5c561934e089/System.Runtime.Serialization.pdb new file mode 100644 index 0000000..d6a0246 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Runtime.Serialization/4.0.0.0__b77a5c561934e089/System.Runtime.Serialization.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Security/4.0.0.0__b03f5f7f11d50a3a/System.Security.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Security/4.0.0.0__b03f5f7f11d50a3a/System.Security.dll new file mode 100644 index 0000000..13d3644 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Security/4.0.0.0__b03f5f7f11d50a3a/System.Security.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Security/4.0.0.0__b03f5f7f11d50a3a/System.Security.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Security/4.0.0.0__b03f5f7f11d50a3a/System.Security.pdb new file mode 100644 index 0000000..5704797 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Security/4.0.0.0__b03f5f7f11d50a3a/System.Security.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.ServiceModel.Activation/4.0.0.0__31bf3856ad364e35/System.ServiceModel.Activation.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.ServiceModel.Activation/4.0.0.0__31bf3856ad364e35/System.ServiceModel.Activation.dll new file mode 100644 index 0000000..f3076f4 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.ServiceModel.Activation/4.0.0.0__31bf3856ad364e35/System.ServiceModel.Activation.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.ServiceModel.Activation/4.0.0.0__31bf3856ad364e35/System.ServiceModel.Activation.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.ServiceModel.Activation/4.0.0.0__31bf3856ad364e35/System.ServiceModel.Activation.pdb new file mode 100644 index 0000000..dabe295 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.ServiceModel.Activation/4.0.0.0__31bf3856ad364e35/System.ServiceModel.Activation.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.ServiceModel.Discovery/4.0.0.0__31bf3856ad364e35/System.ServiceModel.Discovery.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.ServiceModel.Discovery/4.0.0.0__31bf3856ad364e35/System.ServiceModel.Discovery.dll new file mode 100644 index 0000000..13bc15e Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.ServiceModel.Discovery/4.0.0.0__31bf3856ad364e35/System.ServiceModel.Discovery.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.ServiceModel.Discovery/4.0.0.0__31bf3856ad364e35/System.ServiceModel.Discovery.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.ServiceModel.Discovery/4.0.0.0__31bf3856ad364e35/System.ServiceModel.Discovery.pdb new file mode 100644 index 0000000..d759fae Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.ServiceModel.Discovery/4.0.0.0__31bf3856ad364e35/System.ServiceModel.Discovery.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.ServiceModel.Internals/0.0.0.0__b77a5c561934e089/System.ServiceModel.Internals.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.ServiceModel.Internals/0.0.0.0__b77a5c561934e089/System.ServiceModel.Internals.dll new file mode 100644 index 0000000..e7af69d Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.ServiceModel.Internals/0.0.0.0__b77a5c561934e089/System.ServiceModel.Internals.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.ServiceModel.Internals/0.0.0.0__b77a5c561934e089/System.ServiceModel.Internals.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.ServiceModel.Internals/0.0.0.0__b77a5c561934e089/System.ServiceModel.Internals.pdb new file mode 100644 index 0000000..da8b636 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.ServiceModel.Internals/0.0.0.0__b77a5c561934e089/System.ServiceModel.Internals.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.ServiceModel.Routing/4.0.0.0__31bf3856ad364e35/System.ServiceModel.Routing.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.ServiceModel.Routing/4.0.0.0__31bf3856ad364e35/System.ServiceModel.Routing.dll new file mode 100644 index 0000000..483401d Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.ServiceModel.Routing/4.0.0.0__31bf3856ad364e35/System.ServiceModel.Routing.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.ServiceModel.Routing/4.0.0.0__31bf3856ad364e35/System.ServiceModel.Routing.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.ServiceModel.Routing/4.0.0.0__31bf3856ad364e35/System.ServiceModel.Routing.pdb new file mode 100644 index 0000000..9b037af Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.ServiceModel.Routing/4.0.0.0__31bf3856ad364e35/System.ServiceModel.Routing.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.ServiceModel.Web/4.0.0.0__31bf3856ad364e35/System.ServiceModel.Web.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.ServiceModel.Web/4.0.0.0__31bf3856ad364e35/System.ServiceModel.Web.dll new file mode 100644 index 0000000..e7605c6 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.ServiceModel.Web/4.0.0.0__31bf3856ad364e35/System.ServiceModel.Web.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.ServiceModel.Web/4.0.0.0__31bf3856ad364e35/System.ServiceModel.Web.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.ServiceModel.Web/4.0.0.0__31bf3856ad364e35/System.ServiceModel.Web.pdb new file mode 100644 index 0000000..d8e17e5 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.ServiceModel.Web/4.0.0.0__31bf3856ad364e35/System.ServiceModel.Web.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.ServiceModel/4.0.0.0__b77a5c561934e089/System.ServiceModel.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.ServiceModel/4.0.0.0__b77a5c561934e089/System.ServiceModel.dll new file mode 100644 index 0000000..9c0df03 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.ServiceModel/4.0.0.0__b77a5c561934e089/System.ServiceModel.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.ServiceModel/4.0.0.0__b77a5c561934e089/System.ServiceModel.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.ServiceModel/4.0.0.0__b77a5c561934e089/System.ServiceModel.pdb new file mode 100644 index 0000000..fe0ad0b Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.ServiceModel/4.0.0.0__b77a5c561934e089/System.ServiceModel.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.ServiceProcess/4.0.0.0__b03f5f7f11d50a3a/System.ServiceProcess.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.ServiceProcess/4.0.0.0__b03f5f7f11d50a3a/System.ServiceProcess.dll new file mode 100644 index 0000000..3e8265d Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.ServiceProcess/4.0.0.0__b03f5f7f11d50a3a/System.ServiceProcess.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.ServiceProcess/4.0.0.0__b03f5f7f11d50a3a/System.ServiceProcess.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.ServiceProcess/4.0.0.0__b03f5f7f11d50a3a/System.ServiceProcess.pdb new file mode 100644 index 0000000..a5a64bc Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.ServiceProcess/4.0.0.0__b03f5f7f11d50a3a/System.ServiceProcess.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Threading.Tasks.Dataflow/4.0.0.0__b77a5c561934e089/System.Threading.Tasks.Dataflow.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Threading.Tasks.Dataflow/4.0.0.0__b77a5c561934e089/System.Threading.Tasks.Dataflow.dll new file mode 100644 index 0000000..91e0a68 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Threading.Tasks.Dataflow/4.0.0.0__b77a5c561934e089/System.Threading.Tasks.Dataflow.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Threading.Tasks.Dataflow/4.0.0.0__b77a5c561934e089/System.Threading.Tasks.Dataflow.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Threading.Tasks.Dataflow/4.0.0.0__b77a5c561934e089/System.Threading.Tasks.Dataflow.pdb new file mode 100644 index 0000000..79a0a6b Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Threading.Tasks.Dataflow/4.0.0.0__b77a5c561934e089/System.Threading.Tasks.Dataflow.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Transactions/4.0.0.0__b77a5c561934e089/System.Transactions.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Transactions/4.0.0.0__b77a5c561934e089/System.Transactions.dll new file mode 100644 index 0000000..7bf5438 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Transactions/4.0.0.0__b77a5c561934e089/System.Transactions.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Transactions/4.0.0.0__b77a5c561934e089/System.Transactions.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Transactions/4.0.0.0__b77a5c561934e089/System.Transactions.pdb new file mode 100644 index 0000000..6712c6b Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Transactions/4.0.0.0__b77a5c561934e089/System.Transactions.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Abstractions/4.0.0.0__31bf3856ad364e35/System.Web.Abstractions.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Abstractions/4.0.0.0__31bf3856ad364e35/System.Web.Abstractions.dll new file mode 100644 index 0000000..527aa22 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Abstractions/4.0.0.0__31bf3856ad364e35/System.Web.Abstractions.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Abstractions/4.0.0.0__31bf3856ad364e35/System.Web.Abstractions.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Abstractions/4.0.0.0__31bf3856ad364e35/System.Web.Abstractions.pdb new file mode 100644 index 0000000..cd823c9 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Abstractions/4.0.0.0__31bf3856ad364e35/System.Web.Abstractions.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Web.ApplicationServices/4.0.0.0__31bf3856ad364e35/System.Web.ApplicationServices.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.ApplicationServices/4.0.0.0__31bf3856ad364e35/System.Web.ApplicationServices.dll new file mode 100644 index 0000000..b9282c4 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.ApplicationServices/4.0.0.0__31bf3856ad364e35/System.Web.ApplicationServices.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Web.ApplicationServices/4.0.0.0__31bf3856ad364e35/System.Web.ApplicationServices.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.ApplicationServices/4.0.0.0__31bf3856ad364e35/System.Web.ApplicationServices.pdb new file mode 100644 index 0000000..05f1972 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.ApplicationServices/4.0.0.0__31bf3856ad364e35/System.Web.ApplicationServices.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Web.DynamicData/4.0.0.0__31bf3856ad364e35/System.Web.DynamicData.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.DynamicData/4.0.0.0__31bf3856ad364e35/System.Web.DynamicData.dll new file mode 100644 index 0000000..6bc7d10 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.DynamicData/4.0.0.0__31bf3856ad364e35/System.Web.DynamicData.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Web.DynamicData/4.0.0.0__31bf3856ad364e35/System.Web.DynamicData.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.DynamicData/4.0.0.0__31bf3856ad364e35/System.Web.DynamicData.pdb new file mode 100644 index 0000000..7942074 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.DynamicData/4.0.0.0__31bf3856ad364e35/System.Web.DynamicData.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Extensions.Design/4.0.0.0__31bf3856ad364e35/System.Web.Extensions.Design.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Extensions.Design/4.0.0.0__31bf3856ad364e35/System.Web.Extensions.Design.dll new file mode 100644 index 0000000..709dea9 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Extensions.Design/4.0.0.0__31bf3856ad364e35/System.Web.Extensions.Design.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Extensions.Design/4.0.0.0__31bf3856ad364e35/System.Web.Extensions.Design.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Extensions.Design/4.0.0.0__31bf3856ad364e35/System.Web.Extensions.Design.pdb new file mode 100644 index 0000000..2563443 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Extensions.Design/4.0.0.0__31bf3856ad364e35/System.Web.Extensions.Design.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Extensions/4.0.0.0__31bf3856ad364e35/System.Web.Extensions.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Extensions/4.0.0.0__31bf3856ad364e35/System.Web.Extensions.dll new file mode 100644 index 0000000..5ac9960 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Extensions/4.0.0.0__31bf3856ad364e35/System.Web.Extensions.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Extensions/4.0.0.0__31bf3856ad364e35/System.Web.Extensions.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Extensions/4.0.0.0__31bf3856ad364e35/System.Web.Extensions.pdb new file mode 100644 index 0000000..7753735 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Extensions/4.0.0.0__31bf3856ad364e35/System.Web.Extensions.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Http.SelfHost/4.0.0.0__31bf3856ad364e35/System.Web.Http.SelfHost.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Http.SelfHost/4.0.0.0__31bf3856ad364e35/System.Web.Http.SelfHost.dll new file mode 100644 index 0000000..99a0cc2 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Http.SelfHost/4.0.0.0__31bf3856ad364e35/System.Web.Http.SelfHost.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Http.SelfHost/4.0.0.0__31bf3856ad364e35/System.Web.Http.SelfHost.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Http.SelfHost/4.0.0.0__31bf3856ad364e35/System.Web.Http.SelfHost.pdb new file mode 100644 index 0000000..177badf Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Http.SelfHost/4.0.0.0__31bf3856ad364e35/System.Web.Http.SelfHost.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Http.WebHost/4.0.0.0__31bf3856ad364e35/System.Web.Http.WebHost.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Http.WebHost/4.0.0.0__31bf3856ad364e35/System.Web.Http.WebHost.dll new file mode 100644 index 0000000..2e1b7d7 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Http.WebHost/4.0.0.0__31bf3856ad364e35/System.Web.Http.WebHost.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Http.WebHost/4.0.0.0__31bf3856ad364e35/System.Web.Http.WebHost.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Http.WebHost/4.0.0.0__31bf3856ad364e35/System.Web.Http.WebHost.pdb new file mode 100644 index 0000000..3694c0e Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Http.WebHost/4.0.0.0__31bf3856ad364e35/System.Web.Http.WebHost.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Http/4.0.0.0__31bf3856ad364e35/System.Web.Http.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Http/4.0.0.0__31bf3856ad364e35/System.Web.Http.dll new file mode 100644 index 0000000..d039d76 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Http/4.0.0.0__31bf3856ad364e35/System.Web.Http.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Http/4.0.0.0__31bf3856ad364e35/System.Web.Http.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Http/4.0.0.0__31bf3856ad364e35/System.Web.Http.pdb new file mode 100644 index 0000000..36c75db Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Http/4.0.0.0__31bf3856ad364e35/System.Web.Http.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Mobile/4.0.0.0__b03f5f7f11d50a3a/System.Web.Mobile.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Mobile/4.0.0.0__b03f5f7f11d50a3a/System.Web.Mobile.dll new file mode 100644 index 0000000..662c3df Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Mobile/4.0.0.0__b03f5f7f11d50a3a/System.Web.Mobile.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Mobile/4.0.0.0__b03f5f7f11d50a3a/System.Web.Mobile.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Mobile/4.0.0.0__b03f5f7f11d50a3a/System.Web.Mobile.pdb new file mode 100644 index 0000000..f2c89ec Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Mobile/4.0.0.0__b03f5f7f11d50a3a/System.Web.Mobile.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Mvc/3.0.0.0__31bf3856ad364e35/System.Web.Mvc.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Mvc/3.0.0.0__31bf3856ad364e35/System.Web.Mvc.dll new file mode 100644 index 0000000..aa532fe Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Mvc/3.0.0.0__31bf3856ad364e35/System.Web.Mvc.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Mvc/3.0.0.0__31bf3856ad364e35/System.Web.Mvc.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Mvc/3.0.0.0__31bf3856ad364e35/System.Web.Mvc.pdb new file mode 100644 index 0000000..a873784 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Mvc/3.0.0.0__31bf3856ad364e35/System.Web.Mvc.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Razor/2.0.0.0__31bf3856ad364e35/System.Web.Razor.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Razor/2.0.0.0__31bf3856ad364e35/System.Web.Razor.dll new file mode 100644 index 0000000..a4f5ec2 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Razor/2.0.0.0__31bf3856ad364e35/System.Web.Razor.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Razor/2.0.0.0__31bf3856ad364e35/System.Web.Razor.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Razor/2.0.0.0__31bf3856ad364e35/System.Web.Razor.pdb new file mode 100644 index 0000000..6c584bf Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Razor/2.0.0.0__31bf3856ad364e35/System.Web.Razor.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Web.RegularExpressions/4.0.0.0__b03f5f7f11d50a3a/System.Web.RegularExpressions.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.RegularExpressions/4.0.0.0__b03f5f7f11d50a3a/System.Web.RegularExpressions.dll new file mode 100644 index 0000000..275b790 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.RegularExpressions/4.0.0.0__b03f5f7f11d50a3a/System.Web.RegularExpressions.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Web.RegularExpressions/4.0.0.0__b03f5f7f11d50a3a/System.Web.RegularExpressions.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.RegularExpressions/4.0.0.0__b03f5f7f11d50a3a/System.Web.RegularExpressions.pdb new file mode 100644 index 0000000..178a922 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.RegularExpressions/4.0.0.0__b03f5f7f11d50a3a/System.Web.RegularExpressions.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Routing/4.0.0.0__31bf3856ad364e35/System.Web.Routing.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Routing/4.0.0.0__31bf3856ad364e35/System.Web.Routing.dll new file mode 100644 index 0000000..be4c804 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Routing/4.0.0.0__31bf3856ad364e35/System.Web.Routing.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Routing/4.0.0.0__31bf3856ad364e35/System.Web.Routing.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Routing/4.0.0.0__31bf3856ad364e35/System.Web.Routing.pdb new file mode 100644 index 0000000..2aa0c37 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Routing/4.0.0.0__31bf3856ad364e35/System.Web.Routing.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Services/4.0.0.0__b03f5f7f11d50a3a/System.Web.Services.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Services/4.0.0.0__b03f5f7f11d50a3a/System.Web.Services.dll new file mode 100644 index 0000000..22c3583 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Services/4.0.0.0__b03f5f7f11d50a3a/System.Web.Services.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Services/4.0.0.0__b03f5f7f11d50a3a/System.Web.Services.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Services/4.0.0.0__b03f5f7f11d50a3a/System.Web.Services.pdb new file mode 100644 index 0000000..6a91c7d Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.Services/4.0.0.0__b03f5f7f11d50a3a/System.Web.Services.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Web.WebPages.Deployment/2.0.0.0__31bf3856ad364e35/System.Web.WebPages.Deployment.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.WebPages.Deployment/2.0.0.0__31bf3856ad364e35/System.Web.WebPages.Deployment.dll new file mode 100644 index 0000000..9f55bc5 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.WebPages.Deployment/2.0.0.0__31bf3856ad364e35/System.Web.WebPages.Deployment.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Web.WebPages.Deployment/2.0.0.0__31bf3856ad364e35/System.Web.WebPages.Deployment.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.WebPages.Deployment/2.0.0.0__31bf3856ad364e35/System.Web.WebPages.Deployment.pdb new file mode 100644 index 0000000..35fc5b6 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.WebPages.Deployment/2.0.0.0__31bf3856ad364e35/System.Web.WebPages.Deployment.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Web.WebPages.Razor/2.0.0.0__31bf3856ad364e35/System.Web.WebPages.Razor.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.WebPages.Razor/2.0.0.0__31bf3856ad364e35/System.Web.WebPages.Razor.dll new file mode 100644 index 0000000..bdb003f Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.WebPages.Razor/2.0.0.0__31bf3856ad364e35/System.Web.WebPages.Razor.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Web.WebPages.Razor/2.0.0.0__31bf3856ad364e35/System.Web.WebPages.Razor.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.WebPages.Razor/2.0.0.0__31bf3856ad364e35/System.Web.WebPages.Razor.pdb new file mode 100644 index 0000000..179ee6f Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.WebPages.Razor/2.0.0.0__31bf3856ad364e35/System.Web.WebPages.Razor.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Web.WebPages/2.0.0.0__31bf3856ad364e35/System.Web.WebPages.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.WebPages/2.0.0.0__31bf3856ad364e35/System.Web.WebPages.dll new file mode 100644 index 0000000..7736917 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.WebPages/2.0.0.0__31bf3856ad364e35/System.Web.WebPages.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Web.WebPages/2.0.0.0__31bf3856ad364e35/System.Web.WebPages.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.WebPages/2.0.0.0__31bf3856ad364e35/System.Web.WebPages.pdb new file mode 100644 index 0000000..eb4669b Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Web.WebPages/2.0.0.0__31bf3856ad364e35/System.Web.WebPages.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Web/4.0.0.0__b03f5f7f11d50a3a/System.Web.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Web/4.0.0.0__b03f5f7f11d50a3a/System.Web.dll new file mode 100644 index 0000000..d172985 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Web/4.0.0.0__b03f5f7f11d50a3a/System.Web.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Web/4.0.0.0__b03f5f7f11d50a3a/System.Web.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Web/4.0.0.0__b03f5f7f11d50a3a/System.Web.pdb new file mode 100644 index 0000000..89b0e32 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Web/4.0.0.0__b03f5f7f11d50a3a/System.Web.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Windows.Forms.DataVisualization/4.0.0.0__31bf3856ad364e35/System.Windows.Forms.DataVisualization.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Windows.Forms.DataVisualization/4.0.0.0__31bf3856ad364e35/System.Windows.Forms.DataVisualization.dll new file mode 100644 index 0000000..74e3546 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Windows.Forms.DataVisualization/4.0.0.0__31bf3856ad364e35/System.Windows.Forms.DataVisualization.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Windows.Forms.DataVisualization/4.0.0.0__31bf3856ad364e35/System.Windows.Forms.DataVisualization.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Windows.Forms.DataVisualization/4.0.0.0__31bf3856ad364e35/System.Windows.Forms.DataVisualization.pdb new file mode 100644 index 0000000..a5a80d2 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Windows.Forms.DataVisualization/4.0.0.0__31bf3856ad364e35/System.Windows.Forms.DataVisualization.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Windows.Forms/4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Windows.Forms/4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll new file mode 100644 index 0000000..0579c44 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Windows.Forms/4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Windows.Forms/4.0.0.0__b77a5c561934e089/System.Windows.Forms.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Windows.Forms/4.0.0.0__b77a5c561934e089/System.Windows.Forms.pdb new file mode 100644 index 0000000..eadae0f Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Windows.Forms/4.0.0.0__b77a5c561934e089/System.Windows.Forms.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Windows/4.0.0.0__b03f5f7f11d50a3a/System.Windows.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Windows/4.0.0.0__b03f5f7f11d50a3a/System.Windows.dll new file mode 100644 index 0000000..ea4c137 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Windows/4.0.0.0__b03f5f7f11d50a3a/System.Windows.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Workflow.Activities/4.0.0.0__31bf3856ad364e35/System.Workflow.Activities.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Workflow.Activities/4.0.0.0__31bf3856ad364e35/System.Workflow.Activities.dll new file mode 100644 index 0000000..d79abe9 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Workflow.Activities/4.0.0.0__31bf3856ad364e35/System.Workflow.Activities.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Workflow.Activities/4.0.0.0__31bf3856ad364e35/System.Workflow.Activities.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Workflow.Activities/4.0.0.0__31bf3856ad364e35/System.Workflow.Activities.pdb new file mode 100644 index 0000000..a86043c Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Workflow.Activities/4.0.0.0__31bf3856ad364e35/System.Workflow.Activities.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Workflow.ComponentModel/4.0.0.0__31bf3856ad364e35/System.Workflow.ComponentModel.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Workflow.ComponentModel/4.0.0.0__31bf3856ad364e35/System.Workflow.ComponentModel.dll new file mode 100644 index 0000000..e10cd91 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Workflow.ComponentModel/4.0.0.0__31bf3856ad364e35/System.Workflow.ComponentModel.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Workflow.ComponentModel/4.0.0.0__31bf3856ad364e35/System.Workflow.ComponentModel.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Workflow.ComponentModel/4.0.0.0__31bf3856ad364e35/System.Workflow.ComponentModel.pdb new file mode 100644 index 0000000..4eac322 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Workflow.ComponentModel/4.0.0.0__31bf3856ad364e35/System.Workflow.ComponentModel.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Workflow.Runtime/4.0.0.0__31bf3856ad364e35/System.Workflow.Runtime.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Workflow.Runtime/4.0.0.0__31bf3856ad364e35/System.Workflow.Runtime.dll new file mode 100644 index 0000000..b0838b6 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Workflow.Runtime/4.0.0.0__31bf3856ad364e35/System.Workflow.Runtime.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Workflow.Runtime/4.0.0.0__31bf3856ad364e35/System.Workflow.Runtime.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Workflow.Runtime/4.0.0.0__31bf3856ad364e35/System.Workflow.Runtime.pdb new file mode 100644 index 0000000..1aadca5 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Workflow.Runtime/4.0.0.0__31bf3856ad364e35/System.Workflow.Runtime.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Xaml/4.0.0.0__b77a5c561934e089/System.Xaml.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Xaml/4.0.0.0__b77a5c561934e089/System.Xaml.dll new file mode 100644 index 0000000..301cceb Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Xaml/4.0.0.0__b77a5c561934e089/System.Xaml.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Xaml/4.0.0.0__b77a5c561934e089/System.Xaml.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Xaml/4.0.0.0__b77a5c561934e089/System.Xaml.pdb new file mode 100644 index 0000000..a3d6d12 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Xaml/4.0.0.0__b77a5c561934e089/System.Xaml.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Xml.Linq/4.0.0.0__b77a5c561934e089/System.Xml.Linq.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Xml.Linq/4.0.0.0__b77a5c561934e089/System.Xml.Linq.dll new file mode 100644 index 0000000..3068456 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Xml.Linq/4.0.0.0__b77a5c561934e089/System.Xml.Linq.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Xml.Linq/4.0.0.0__b77a5c561934e089/System.Xml.Linq.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Xml.Linq/4.0.0.0__b77a5c561934e089/System.Xml.Linq.pdb new file mode 100644 index 0000000..c9a8a22 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Xml.Linq/4.0.0.0__b77a5c561934e089/System.Xml.Linq.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Xml.Serialization/4.0.0.0__b77a5c561934e089/System.Xml.Serialization.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Xml.Serialization/4.0.0.0__b77a5c561934e089/System.Xml.Serialization.dll new file mode 100644 index 0000000..5d1e6fc Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Xml.Serialization/4.0.0.0__b77a5c561934e089/System.Xml.Serialization.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Xml/4.0.0.0__b77a5c561934e089/System.Xml.dll b/ReHitman/Modules/Mono/lib/mono/gac/System.Xml/4.0.0.0__b77a5c561934e089/System.Xml.dll new file mode 100644 index 0000000..c6345b1 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Xml/4.0.0.0__b77a5c561934e089/System.Xml.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System.Xml/4.0.0.0__b77a5c561934e089/System.Xml.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System.Xml/4.0.0.0__b77a5c561934e089/System.Xml.pdb new file mode 100644 index 0000000..d2df869 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System.Xml/4.0.0.0__b77a5c561934e089/System.Xml.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System/4.0.0.0__b77a5c561934e089/System.dll b/ReHitman/Modules/Mono/lib/mono/gac/System/4.0.0.0__b77a5c561934e089/System.dll new file mode 100644 index 0000000..eb0ddc1 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System/4.0.0.0__b77a5c561934e089/System.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/System/4.0.0.0__b77a5c561934e089/System.pdb b/ReHitman/Modules/Mono/lib/mono/gac/System/4.0.0.0__b77a5c561934e089/System.pdb new file mode 100644 index 0000000..e0ca35b Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/System/4.0.0.0__b77a5c561934e089/System.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/WebMatrix.Data/4.0.0.0__0738eb9f132ed756/WebMatrix.Data.dll b/ReHitman/Modules/Mono/lib/mono/gac/WebMatrix.Data/4.0.0.0__0738eb9f132ed756/WebMatrix.Data.dll new file mode 100644 index 0000000..a6f756d Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/WebMatrix.Data/4.0.0.0__0738eb9f132ed756/WebMatrix.Data.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/WebMatrix.Data/4.0.0.0__0738eb9f132ed756/WebMatrix.Data.pdb b/ReHitman/Modules/Mono/lib/mono/gac/WebMatrix.Data/4.0.0.0__0738eb9f132ed756/WebMatrix.Data.pdb new file mode 100644 index 0000000..5b45ffd Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/WebMatrix.Data/4.0.0.0__0738eb9f132ed756/WebMatrix.Data.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/WindowsBase/4.0.0.0__31bf3856ad364e35/WindowsBase.dll b/ReHitman/Modules/Mono/lib/mono/gac/WindowsBase/4.0.0.0__31bf3856ad364e35/WindowsBase.dll new file mode 100644 index 0000000..d2eab24 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/WindowsBase/4.0.0.0__31bf3856ad364e35/WindowsBase.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/WindowsBase/4.0.0.0__31bf3856ad364e35/WindowsBase.pdb b/ReHitman/Modules/Mono/lib/mono/gac/WindowsBase/4.0.0.0__31bf3856ad364e35/WindowsBase.pdb new file mode 100644 index 0000000..122edf5 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/WindowsBase/4.0.0.0__31bf3856ad364e35/WindowsBase.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/atk-sharp/2.12.0.0__35e10195dab3c99f/atk-sharp.dll b/ReHitman/Modules/Mono/lib/mono/gac/atk-sharp/2.12.0.0__35e10195dab3c99f/atk-sharp.dll new file mode 100644 index 0000000..cea9380 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/atk-sharp/2.12.0.0__35e10195dab3c99f/atk-sharp.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/atk-sharp/2.12.0.0__35e10195dab3c99f/atk-sharp.pdb b/ReHitman/Modules/Mono/lib/mono/gac/atk-sharp/2.12.0.0__35e10195dab3c99f/atk-sharp.pdb new file mode 100644 index 0000000..d0fbe6e Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/atk-sharp/2.12.0.0__35e10195dab3c99f/atk-sharp.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/cscompmgd/0.0.0.0__b03f5f7f11d50a3a/cscompmgd.dll b/ReHitman/Modules/Mono/lib/mono/gac/cscompmgd/0.0.0.0__b03f5f7f11d50a3a/cscompmgd.dll new file mode 100644 index 0000000..2873509 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/cscompmgd/0.0.0.0__b03f5f7f11d50a3a/cscompmgd.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/cscompmgd/0.0.0.0__b03f5f7f11d50a3a/cscompmgd.pdb b/ReHitman/Modules/Mono/lib/mono/gac/cscompmgd/0.0.0.0__b03f5f7f11d50a3a/cscompmgd.pdb new file mode 100644 index 0000000..603d02c Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/cscompmgd/0.0.0.0__b03f5f7f11d50a3a/cscompmgd.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/fastcgi-mono-server4/4.6.0.0__0738eb9f132ed756/fastcgi-mono-server4.exe b/ReHitman/Modules/Mono/lib/mono/gac/fastcgi-mono-server4/4.6.0.0__0738eb9f132ed756/fastcgi-mono-server4.exe new file mode 100644 index 0000000..5422261 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/fastcgi-mono-server4/4.6.0.0__0738eb9f132ed756/fastcgi-mono-server4.exe differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/gdk-sharp/2.12.0.0__35e10195dab3c99f/gdk-sharp.dll b/ReHitman/Modules/Mono/lib/mono/gac/gdk-sharp/2.12.0.0__35e10195dab3c99f/gdk-sharp.dll new file mode 100644 index 0000000..603c163 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/gdk-sharp/2.12.0.0__35e10195dab3c99f/gdk-sharp.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/gdk-sharp/2.12.0.0__35e10195dab3c99f/gdk-sharp.pdb b/ReHitman/Modules/Mono/lib/mono/gac/gdk-sharp/2.12.0.0__35e10195dab3c99f/gdk-sharp.pdb new file mode 100644 index 0000000..c2ec743 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/gdk-sharp/2.12.0.0__35e10195dab3c99f/gdk-sharp.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/glade-sharp/2.12.0.0__35e10195dab3c99f/glade-sharp.dll b/ReHitman/Modules/Mono/lib/mono/gac/glade-sharp/2.12.0.0__35e10195dab3c99f/glade-sharp.dll new file mode 100644 index 0000000..0ba9120 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/glade-sharp/2.12.0.0__35e10195dab3c99f/glade-sharp.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/glade-sharp/2.12.0.0__35e10195dab3c99f/glade-sharp.pdb b/ReHitman/Modules/Mono/lib/mono/gac/glade-sharp/2.12.0.0__35e10195dab3c99f/glade-sharp.pdb new file mode 100644 index 0000000..3af441f Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/glade-sharp/2.12.0.0__35e10195dab3c99f/glade-sharp.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/glib-sharp/2.12.0.0__35e10195dab3c99f/glib-sharp.dll b/ReHitman/Modules/Mono/lib/mono/gac/glib-sharp/2.12.0.0__35e10195dab3c99f/glib-sharp.dll new file mode 100644 index 0000000..bc2f30d Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/glib-sharp/2.12.0.0__35e10195dab3c99f/glib-sharp.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/glib-sharp/2.12.0.0__35e10195dab3c99f/glib-sharp.pdb b/ReHitman/Modules/Mono/lib/mono/gac/glib-sharp/2.12.0.0__35e10195dab3c99f/glib-sharp.pdb new file mode 100644 index 0000000..791823e Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/glib-sharp/2.12.0.0__35e10195dab3c99f/glib-sharp.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/gtk-dotnet/2.12.0.0__35e10195dab3c99f/gtk-dotnet.dll b/ReHitman/Modules/Mono/lib/mono/gac/gtk-dotnet/2.12.0.0__35e10195dab3c99f/gtk-dotnet.dll new file mode 100644 index 0000000..88d8e8a Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/gtk-dotnet/2.12.0.0__35e10195dab3c99f/gtk-dotnet.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/gtk-dotnet/2.12.0.0__35e10195dab3c99f/gtk-dotnet.pdb b/ReHitman/Modules/Mono/lib/mono/gac/gtk-dotnet/2.12.0.0__35e10195dab3c99f/gtk-dotnet.pdb new file mode 100644 index 0000000..cccdb3b Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/gtk-dotnet/2.12.0.0__35e10195dab3c99f/gtk-dotnet.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/gtk-sharp/2.12.0.0__35e10195dab3c99f/gtk-sharp.dll b/ReHitman/Modules/Mono/lib/mono/gac/gtk-sharp/2.12.0.0__35e10195dab3c99f/gtk-sharp.dll new file mode 100644 index 0000000..33d217e Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/gtk-sharp/2.12.0.0__35e10195dab3c99f/gtk-sharp.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/mod-mono-server4/4.6.0.0__0738eb9f132ed756/mod-mono-server4.exe b/ReHitman/Modules/Mono/lib/mono/gac/mod-mono-server4/4.6.0.0__0738eb9f132ed756/mod-mono-server4.exe new file mode 100644 index 0000000..a63129c Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/mod-mono-server4/4.6.0.0__0738eb9f132ed756/mod-mono-server4.exe differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/mono-fpm/4.6.0.0__0738eb9f132ed756/mono-fpm.exe b/ReHitman/Modules/Mono/lib/mono/gac/mono-fpm/4.6.0.0__0738eb9f132ed756/mono-fpm.exe new file mode 100644 index 0000000..0ab8be3 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/mono-fpm/4.6.0.0__0738eb9f132ed756/mono-fpm.exe differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/mono-service/4.0.0.0__0738eb9f132ed756/mono-service.exe b/ReHitman/Modules/Mono/lib/mono/gac/mono-service/4.0.0.0__0738eb9f132ed756/mono-service.exe new file mode 100644 index 0000000..f5cf404 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/mono-service/4.0.0.0__0738eb9f132ed756/mono-service.exe differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/mono-service/4.0.0.0__0738eb9f132ed756/mono-service.pdb b/ReHitman/Modules/Mono/lib/mono/gac/mono-service/4.0.0.0__0738eb9f132ed756/mono-service.pdb new file mode 100644 index 0000000..8322316 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/mono-service/4.0.0.0__0738eb9f132ed756/mono-service.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/monodoc/1.0.0.0__0738eb9f132ed756/monodoc.dll b/ReHitman/Modules/Mono/lib/mono/gac/monodoc/1.0.0.0__0738eb9f132ed756/monodoc.dll new file mode 100644 index 0000000..a4032e1 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/monodoc/1.0.0.0__0738eb9f132ed756/monodoc.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/monodoc/1.0.0.0__0738eb9f132ed756/monodoc.dll.config b/ReHitman/Modules/Mono/lib/mono/gac/monodoc/1.0.0.0__0738eb9f132ed756/monodoc.dll.config new file mode 100644 index 0000000..ecf9883 --- /dev/null +++ b/ReHitman/Modules/Mono/lib/mono/gac/monodoc/1.0.0.0__0738eb9f132ed756/monodoc.dll.config @@ -0,0 +1,7 @@ + + + + + + + diff --git a/ReHitman/Modules/Mono/lib/mono/gac/monodoc/1.0.0.0__0738eb9f132ed756/monodoc.pdb b/ReHitman/Modules/Mono/lib/mono/gac/monodoc/1.0.0.0__0738eb9f132ed756/monodoc.pdb new file mode 100644 index 0000000..5316df9 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/monodoc/1.0.0.0__0738eb9f132ed756/monodoc.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/pango-sharp/2.12.0.0__35e10195dab3c99f/pango-sharp.dll b/ReHitman/Modules/Mono/lib/mono/gac/pango-sharp/2.12.0.0__35e10195dab3c99f/pango-sharp.dll new file mode 100644 index 0000000..08e6b5a Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/pango-sharp/2.12.0.0__35e10195dab3c99f/pango-sharp.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/pango-sharp/2.12.0.0__35e10195dab3c99f/pango-sharp.pdb b/ReHitman/Modules/Mono/lib/mono/gac/pango-sharp/2.12.0.0__35e10195dab3c99f/pango-sharp.pdb new file mode 100644 index 0000000..3d3b041 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/pango-sharp/2.12.0.0__35e10195dab3c99f/pango-sharp.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/gac/xsp4/4.6.0.0__0738eb9f132ed756/xsp4.exe b/ReHitman/Modules/Mono/lib/mono/gac/xsp4/4.6.0.0__0738eb9f132ed756/xsp4.exe new file mode 100644 index 0000000..90b5447 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/gac/xsp4/4.6.0.0__0738eb9f132ed756/xsp4.exe differ diff --git a/ReHitman/Modules/Mono/lib/mono/mono-configuration-crypto/4.5/Mono.Configuration.Crypto.dll b/ReHitman/Modules/Mono/lib/mono/mono-configuration-crypto/4.5/Mono.Configuration.Crypto.dll new file mode 100644 index 0000000..691a245 Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/mono-configuration-crypto/4.5/Mono.Configuration.Crypto.dll differ diff --git a/ReHitman/Modules/Mono/lib/mono/mono-configuration-crypto/4.5/Mono.Configuration.Crypto.pdb b/ReHitman/Modules/Mono/lib/mono/mono-configuration-crypto/4.5/Mono.Configuration.Crypto.pdb new file mode 100644 index 0000000..29bc52e Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/mono-configuration-crypto/4.5/Mono.Configuration.Crypto.pdb differ diff --git a/ReHitman/Modules/Mono/lib/mono/mono-configuration-crypto/4.5/mono-configuration-crypto.exe b/ReHitman/Modules/Mono/lib/mono/mono-configuration-crypto/4.5/mono-configuration-crypto.exe new file mode 100644 index 0000000..97b410f Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/mono-configuration-crypto/4.5/mono-configuration-crypto.exe differ diff --git a/ReHitman/Modules/Mono/lib/mono/mono-configuration-crypto/4.5/mono-configuration-crypto.pdb b/ReHitman/Modules/Mono/lib/mono/mono-configuration-crypto/4.5/mono-configuration-crypto.pdb new file mode 100644 index 0000000..02b39ba Binary files /dev/null and b/ReHitman/Modules/Mono/lib/mono/mono-configuration-crypto/4.5/mono-configuration-crypto.pdb differ diff --git a/ReHitman/ScriptingRuntime/CMakeLists.txt b/ReHitman/ScriptingRuntime/CMakeLists.txt new file mode 100644 index 0000000..db138b8 --- /dev/null +++ b/ReHitman/ScriptingRuntime/CMakeLists.txt @@ -0,0 +1,25 @@ +cmake_minimum_required(VERSION 3.16) +project(ScriptingRuntime CXX) +set(CMAKE_CXX_STANDARD 20) + +add_library(ScriptingRuntime STATIC + ${CMAKE_CURRENT_SOURCE_DIR}/source/ScriptingRuntime.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/source/MonoBindings.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/source/MonoException.cpp +) + +add_library(MonoRuntime STATIC IMPORTED) +set_property(TARGET MonoRuntime PROPERTY IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/../Modules/Mono/lib/libmono-static-sgen.lib") + +target_include_directories(ScriptingRuntime PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/../Modules/Mono/include/mono-2.0") +target_include_directories(ScriptingRuntime PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include) + +target_link_libraries(ScriptingRuntime PUBLIC + # MonoRuntime & deps + MonoRuntime Winmm.lib Ws2_32.lib Version.lib Bcrypt.lib + # ReHitman & ReGlacier + Hitman::BloodMoney G1::Core) + +# ------- Sandbox --------- +add_executable(MonoRuntime_Sandbox ${CMAKE_CURRENT_SOURCE_DIR}/source/Sandbox.cpp) +target_link_libraries(MonoRuntime_Sandbox PUBLIC ScriptingRuntime) \ No newline at end of file diff --git a/ReHitman/ScriptingRuntime/include/MonoBindings.h b/ReHitman/ScriptingRuntime/include/MonoBindings.h new file mode 100644 index 0000000..e6e42ed --- /dev/null +++ b/ReHitman/ScriptingRuntime/include/MonoBindings.h @@ -0,0 +1,8 @@ +#pragma once + +namespace Hitman::BloodMoney::Scripting { + class MonoBindings { + public: + static void DeclareFunctions(); + }; +} \ No newline at end of file diff --git a/ReHitman/ScriptingRuntime/include/MonoException.h b/ReHitman/ScriptingRuntime/include/MonoException.h new file mode 100644 index 0000000..942a49b --- /dev/null +++ b/ReHitman/ScriptingRuntime/include/MonoException.h @@ -0,0 +1,31 @@ +#pragma once + +#include +#include +#include + +namespace Hitman::BloodMoney::Scripting { + class MonoException { + public: + explicit MonoException(MonoObject* pExceptionObject); + + explicit operator bool() noexcept; + + [[nodiscard]] std::string_view GetMessage() const; + [[nodiscard]] std::string_view GetTypeName() const; + [[nodiscard]] std::string_view GetSource() const; + [[nodiscard]] std::string_view GetStackTrace() const; + + template + friend OStream& operator<<(OStream& os, const MonoException& monoException) { + return os << "Exception : " << monoException.GetTypeName() + << "\nMessage : " << monoException.GetMessage() + << "\nSource : " << monoException.GetSource() + << "\nStack trace :\n" << monoException.GetStackTrace(); + } + private: + MonoObject* m_pExceptionObject { nullptr }; + MonoClass* m_pExceptionClass { nullptr }; + MonoType* m_pExceptionType { nullptr }; + }; +} \ No newline at end of file diff --git a/ReHitman/ScriptingRuntime/include/ScriptingRuntime.h b/ReHitman/ScriptingRuntime/include/ScriptingRuntime.h new file mode 100644 index 0000000..f39e8f1 --- /dev/null +++ b/ReHitman/ScriptingRuntime/include/ScriptingRuntime.h @@ -0,0 +1,25 @@ +#pragma once + +#include +#include + +namespace Hitman::BloodMoney::Scripting { + class ScriptingRuntime final + { + public: + using Ptr = std::unique_ptr; + + ScriptingRuntime(); + ~ScriptingRuntime(); + + bool Setup(); + + /// Common methods + void OnDraw(); + void OnUpdate(float dt); + + private: + struct RuntimeContext; + RuntimeContext* m_pRuntimeContext; + }; +} \ No newline at end of file diff --git a/ReHitman/ScriptingRuntime/source/MonoBindings.cpp b/ReHitman/ScriptingRuntime/source/MonoBindings.cpp new file mode 100644 index 0000000..08a5d16 --- /dev/null +++ b/ReHitman/ScriptingRuntime/source/MonoBindings.cpp @@ -0,0 +1,374 @@ +#include +#include +#include + +#include +#include +#include +#include +#include + +namespace API { + namespace DeveloperConsole { + static void Info(MonoString* psMessage) { + if (psMessage) { + spdlog::info("(Managed) {}", mono_string_to_utf8(psMessage)); + } + } + static void Warning(MonoString* psMessage) { + if (psMessage) { + spdlog::warn("(Managed) {}", mono_string_to_utf8(psMessage)); + } + } + static void Error(MonoString* psMessage) { + if (psMessage) { + spdlog::error("(Managed) {}", mono_string_to_utf8(psMessage)); + } + } + } + namespace Game { + static float GetTimeScale() { + auto pSysInterface = Glacier::getInterface( + Hitman::BloodMoney::Globals::kSysInterfaceAddr); + if (!pSysInterface) { + return .0f; + } + //TODO: Refactor this place + return *reinterpret_cast(reinterpret_cast(pSysInterface) + 0xB24); + } + + static void SetTimeScale(float value) { + auto pSysInterface = Glacier::getInterface( + Hitman::BloodMoney::Globals::kSysInterfaceAddr); + if (!pSysInterface) { + return; + } + + //TODO: Refactor this place + *reinterpret_cast(reinterpret_cast(pSysInterface) + 0xB24) = value; + } + + static MonoString* GetSceneName() { + auto pSysInterface = Glacier::getInterface( + Hitman::BloodMoney::Globals::kSysInterfaceAddr); + if (!pSysInterface) { + return nullptr; + } + + auto pEngineDb = pSysInterface->m_engineDataBase; + if (!pEngineDb) { + return nullptr; + } + + if (!pEngineDb->GetSceneName()) { + return nullptr; + } + + return mono_string_new(mono_domain_get(), pEngineDb->GetSceneName()); + } + + static MonoString* GetProfileName() { + auto pGameData = Glacier::getInterface( + Hitman::BloodMoney::Globals::kGameDataAddr); + if (!pGameData) { + return nullptr; + } + + return mono_string_new(mono_domain_get(), &pGameData->m_ProfileName[0]); + } + + static int32_t GetProfileMoney() { + auto pGameData = Glacier::getInterface( + Hitman::BloodMoney::Globals::kGameDataAddr); + if (!pGameData) { + return 0; + } + + return pGameData->m_PlayerMoney; + } + + static void SetProfileMoney(int32_t money) { + auto pGameData = Glacier::getInterface( + Hitman::BloodMoney::Globals::kGameDataAddr); + if (pGameData) { + pGameData->m_PlayerMoney = money; + } + } + + static uint32_t GetRootGroup() { + auto pSysInterface = Glacier::getInterface(Hitman::BloodMoney::Globals::kSysInterfaceAddr); + if (!pSysInterface) { + return 0; + } + + if (!pSysInterface->m_engineDataBase || !pSysInterface->m_engineDataBase->m_root) { + return 0; + } + + return pSysInterface->m_engineDataBase->m_root->GetRef(); + } + } + namespace ZGEOM { + static bool IsNull(uint32_t zref) { + return Glacier::ZGEOM::RefToPtr(zref) == nullptr; + } + + static void DetachAndDestroy(uint32_t zref) { + Glacier::ZGEOM* pGeom = Glacier::ZGEOM::RefToPtr(zref); + if (!pGeom) { + return; + } + + auto pParentGroup = pGeom->m_baseGeom->ParentGroup(); + pParentGroup->DetachGeom(pGeom->m_baseGeom, true); /* NOTE: true? What is it? */ + + //TODO: Free mem of pGeom! + } + + static MonoString* GetName(uint32_t zref) { + Glacier::ZGEOM* pGeom = Glacier::ZGEOM::RefToPtr(zref); + if (!pGeom) { + return nullptr; + } + + return mono_string_new(mono_domain_get(), &pGeom->m_baseGeom->entityName[0]); + } + + static MonoArray* GetPosition(uint32_t zref) { + Glacier::ZGEOM* pGeom = Glacier::ZGEOM::RefToPtr(zref); + if (!pGeom) { + return nullptr; + } + + Glacier::ZMat3x3 mat; + Glacier::ZVector3 pos; + + pGeom->GetMatPos(&mat, &pos); + + /// Build managed instance + MonoArray* ret = mono_array_new(mono_domain_get(), mono_get_single_class(), 3); + if (ret) { + mono_array_set(ret, float, 0, pos.x); + mono_array_set(ret, float, 1, pos.y); + mono_array_set(ret, float, 2, pos.z); + } + + return ret; + } + + static void SetPosition(uint32_t zref, float x, float y, float z) { + Glacier::ZGEOM* pGeom = Glacier::ZGEOM::RefToPtr(zref); + if (!pGeom) { + return; + } + + Glacier::ZMat3x3 mat; + Glacier::ZVector3 pos; + + pGeom->GetMatPos(&mat, &pos); + pos.x = x; + pos.y = y; + pos.z = z; + + pGeom->SetMatPos(&mat, &pos); + } + + static MonoArray* GetTransform(uint32_t zref) { + Glacier::ZGEOM* pGeom = Glacier::ZGEOM::RefToPtr(zref); + if (!pGeom) { + return nullptr; + } + + Glacier::ZMat3x3 mat; + Glacier::ZVector3 pos; + + pGeom->GetMatPos(&mat, &pos); + + MonoArray* ret = mono_array_new(mono_domain_get(), mono_get_single_class(), 9); + if (ret) { + for (int i = 0; i < 9; i++) { + mono_array_set(ret, float, i, mat.data[i]); + } + } + + return ret; + } + + static void SetTransform(uint32_t zref, float m00, float m10, float m20, float m01, float m11, float m21, float m02, float m12, float m22) { + Glacier::ZGEOM* pGeom = Glacier::ZGEOM::RefToPtr(zref); + if (!pGeom) { + return; + } + + Glacier::ZMat3x3 mat; + Glacier::ZVector3 pos; + + pGeom->GetMatPos(&mat, &pos); + + mat.data[0] = m00; + mat.data[1] = m10; + mat.data[2] = m20; + mat.data[3] = m01; + mat.data[4] = m11; + mat.data[5] = m21; + mat.data[6] = m02; + mat.data[7] = m12; + mat.data[8] = m22; + + pGeom->SetMatPos(&mat, &pos); + } + + static uint32_t GetPrimitiveId(uint32_t zref) { + Glacier::ZGEOM* pGeom = Glacier::ZGEOM::RefToPtr(zref); + if (!pGeom) { + return 0; + } + + return pGeom->m_baseGeom->m_primitive; + } + + static void SetPrimitiveId(uint32_t zref, uint32_t primId, bool shouldUpdateView) { + Glacier::ZGEOM* pGeom = Glacier::ZGEOM::RefToPtr(zref); + if (!pGeom) { + return; + } + + pGeom->m_baseGeom->SetPrim(primId); + if (shouldUpdateView) { + //TODO: Think how to make it for any kind of ZGEOM + } + } + } + namespace ZGROUP { + static bool ZGeomIsZGroup(Glacier::ZGEOM* pGeom) { + //TODO: Add check for type of pGeom + return true; + } + + static uint32_t CreateGeom(uint32_t zgroupRef, MonoString* psName, MonoArray* pfPosition, MonoArray* pfTransform, uint32_t geomClassId) + { + Glacier::ZGEOM* pGeom = Glacier::ZGEOM::RefToPtr(zgroupRef); + if (!pGeom) { + return 0; + } + + if (!ZGeomIsZGroup(pGeom)) { + return 0; + } + + Glacier::ZGROUP* pGroup = reinterpret_cast(pGeom); + Glacier::ZGEOM* pNewGeom = pGroup->CreateGeom(mono_string_to_utf8(psName), geomClassId, true); + if (!pNewGeom) { + return 0; + } + + Glacier::ZMat3x3 mat; + Glacier::ZVector3 pos; + + pos.x = mono_array_get(pfPosition, float, 0); + pos.y = mono_array_get(pfPosition, float, 1); + pos.z = mono_array_get(pfPosition, float, 2); + + for (int i = 0; i < 9; i++) { + mat.data[i] = mono_array_get(pfTransform, float, i); + } + + pNewGeom->SetMatPos(&mat, &pos); + return pNewGeom->GetRef(); + } + + static void DetachGeom(uint32_t group, uint32_t geom) + { + Glacier::ZGEOM* pGeom = Glacier::ZGEOM::RefToPtr(group); + if (!pGeom) { + return; + } + + if (!ZGeomIsZGroup(pGeom)) { + return; + } + + Glacier::ZGEOM* pGeomToRemove = Glacier::ZGEOM::RefToPtr(geom); + if (!pGeomToRemove) { + return; + } + + reinterpret_cast(pGeom)->DetachGeom(pGeomToRemove->m_baseGeom, true); + } + + static void AttachGeom(uint32_t group, uint32_t geom) + { + Glacier::ZGEOM* pGeom = Glacier::ZGEOM::RefToPtr(group); + if (!pGeom) { + return; + } + + if (!ZGeomIsZGroup(pGeom)) { + return; + } + + Glacier::ZGEOM* pGeomToAttach = Glacier::ZGEOM::RefToPtr(group); + if (!pGeomToAttach) { + return; + } + + reinterpret_cast(pGeom)->AttachGeom(pGeomToAttach->m_baseGeom, true); + } + } +} + +namespace Hitman::BloodMoney::Scripting { + void DeclareDeveloperConsole(); + void DeclareGame(); + void DeclareZGeom(); + void DeclareZGroup(); + + void MonoBindings::DeclareFunctions() { + DeclareDeveloperConsole(); + DeclareGame(); + DeclareZGeom(); + DeclareZGroup(); + } + + void DeclareDeveloperConsole() + { + // DeveloperConsole + mono_add_internal_call("ReHitman.ScriptingRuntime.Native.DeveloperConsole::Info", API::DeveloperConsole::Info); + mono_add_internal_call("ReHitman.ScriptingRuntime.Native.DeveloperConsole::Warning", API::DeveloperConsole::Warning); + mono_add_internal_call("ReHitman.ScriptingRuntime.Native.DeveloperConsole::Error", API::DeveloperConsole::Error); + } + + void DeclareGame() + { + // Game + mono_add_internal_call("ReHitman.ScriptingRuntime.Native.Game::GetTimeScale", API::Game::GetTimeScale); + mono_add_internal_call("ReHitman.ScriptingRuntime.Native.Game::SetTimeScale", API::Game::SetTimeScale); + mono_add_internal_call("ReHitman.ScriptingRuntime.Native.Game::GetSceneName", API::Game::GetSceneName); + mono_add_internal_call("ReHitman.ScriptingRuntime.Native.Game::GetProfileName", API::Game::GetProfileName); + mono_add_internal_call("ReHitman.ScriptingRuntime.Native.Game::GetProfileMoney", API::Game::GetProfileMoney); + mono_add_internal_call("ReHitman.ScriptingRuntime.Native.Game::SetProfileMoney", API::Game::SetProfileMoney); + mono_add_internal_call("ReHitman.ScriptingRuntime.Native.Game::GetRootGroup", API::Game::GetRootGroup); + } + + void DeclareZGeom() + { + // ZGEOM + mono_add_internal_call("ReHitman.ScriptingRuntime.Native.ZGEOM::IsNull", API::ZGEOM::IsNull); + mono_add_internal_call("ReHitman.ScriptingRuntime.Native.ZGEOM::DetachAndDestroy", API::ZGEOM::DetachAndDestroy); + mono_add_internal_call("ReHitman.ScriptingRuntime.Native.ZGEOM::GetName", API::ZGEOM::GetName); + mono_add_internal_call("ReHitman.ScriptingRuntime.Native.ZGEOM::GetPosition", API::ZGEOM::GetPosition); + mono_add_internal_call("ReHitman.ScriptingRuntime.Native.ZGEOM::SetPosition", API::ZGEOM::SetPosition); + mono_add_internal_call("ReHitman.ScriptingRuntime.Native.ZGEOM::GetTransform", API::ZGEOM::GetTransform); + mono_add_internal_call("ReHitman.ScriptingRuntime.Native.ZGEOM::SetTransform", API::ZGEOM::SetTransform); + mono_add_internal_call("ReHitman.ScriptingRuntime.Native.ZGEOM::GetPrimitiveId", API::ZGEOM::GetPrimitiveId); + mono_add_internal_call("ReHitman.ScriptingRuntime.Native.ZGEOM::SetPrimitiveId", API::ZGEOM::SetPrimitiveId); + } + + void DeclareZGroup() + { + //ZGROUP + mono_add_internal_call("ReHitman.ScriptingRuntime.Native.ZGROUP::CreateGeom", API::ZGROUP::CreateGeom); + mono_add_internal_call("ReHitman.ScriptingRuntime.Native.ZGROUP::AttachGeom", API::ZGROUP::AttachGeom); + mono_add_internal_call("ReHitman.ScriptingRuntime.Native.ZGROUP::DetachGeom", API::ZGROUP::DetachGeom); + } +} \ No newline at end of file diff --git a/ReHitman/ScriptingRuntime/source/MonoException.cpp b/ReHitman/ScriptingRuntime/source/MonoException.cpp new file mode 100644 index 0000000..eab1d7a --- /dev/null +++ b/ReHitman/ScriptingRuntime/source/MonoException.cpp @@ -0,0 +1,53 @@ +#include + +namespace Hitman::BloodMoney::Scripting { + static const char* mono_get_string_property(std::string_view psPropertyName, MonoClass* pClass, MonoObject* pInstance) { + MonoProperty* pMessageProperty = nullptr; + MonoMethod* pMessageGetter = nullptr; + MonoString* pMessageStringInstance = nullptr; + + pMessageProperty = mono_class_get_property_from_name(pClass, psPropertyName.data()); + pMessageGetter = mono_property_get_get_method(pMessageProperty); + pMessageStringInstance = (MonoString*)mono_runtime_invoke(pMessageGetter, pInstance, nullptr, nullptr); + return mono_string_to_utf8(pMessageStringInstance); + }; + + constexpr std::string_view kEmptyString = ""; + constexpr std::string_view kMessageProperty = "Message"; + constexpr std::string_view kSourceProperty = "Source"; + constexpr std::string_view kStackTraceProperty = "StackTrace"; + + MonoException::MonoException(MonoObject *pExceptionObject) : m_pExceptionObject(pExceptionObject) { + if (pExceptionObject) { + m_pExceptionClass = mono_object_get_class(pExceptionObject); + } + + if (m_pExceptionClass) { + m_pExceptionType = mono_class_get_type(m_pExceptionClass); + } + } + + MonoException::operator bool() noexcept { + return m_pExceptionObject != nullptr && m_pExceptionClass != nullptr && m_pExceptionType != nullptr; + } + + std::string_view MonoException::GetMessage() const { + if (!m_pExceptionObject || !m_pExceptionClass) return kEmptyString; + return mono_get_string_property(kMessageProperty, m_pExceptionClass, m_pExceptionObject); + } + + std::string_view MonoException::GetTypeName() const { + if (!m_pExceptionObject || !m_pExceptionType) return kEmptyString; + return mono_type_get_name(m_pExceptionType); + } + + std::string_view MonoException::GetSource() const { + if (!m_pExceptionObject) return kEmptyString; + return mono_get_string_property(kSourceProperty, m_pExceptionClass, m_pExceptionObject); + } + + std::string_view MonoException::GetStackTrace() const { + if (!m_pExceptionObject) return kEmptyString; + return mono_get_string_property(kStackTraceProperty, m_pExceptionClass, m_pExceptionObject); + } +} \ No newline at end of file diff --git a/ReHitman/ScriptingRuntime/source/Sandbox.cpp b/ReHitman/ScriptingRuntime/source/Sandbox.cpp new file mode 100644 index 0000000..77bb0d2 --- /dev/null +++ b/ReHitman/ScriptingRuntime/source/Sandbox.cpp @@ -0,0 +1,13 @@ +#include +#include + +int main(int argc, char** argv) { + spdlog::info("Trying to load DLL"); + + Hitman::BloodMoney::Scripting::ScriptingRuntime runtime; + runtime.Setup(); + runtime.OnUpdate(10.f); + runtime.OnDraw(); + + return 0; +} \ No newline at end of file diff --git a/ReHitman/ScriptingRuntime/source/ScriptingRuntime.cpp b/ReHitman/ScriptingRuntime/source/ScriptingRuntime.cpp new file mode 100644 index 0000000..e75f1f5 --- /dev/null +++ b/ReHitman/ScriptingRuntime/source/ScriptingRuntime.cpp @@ -0,0 +1,220 @@ +#include +#include +#include + +#include +#include +#include + +#include + +// Mono +#include +#include +#include +#include + +namespace Hitman::BloodMoney::Scripting { + constexpr const char* kRuntimeName = "ReHitman.ScriptingRuntime"; + constexpr const char* kScriptingRuntimeAssemblyName = "ReHitman.ScriptingRuntime.dll"; + + struct ScriptingRuntime::RuntimeContext { + // Mono & JIT specific things + MonoDomain* m_pMonoDomain {}; + MonoAssembly* m_pRuntimeAssembly {}; + + MonoMethod* m_pRuntimeBroker_Init_Method; + + // Methods + ~RuntimeContext(); + bool CheckRuntimeBeforeConstruct() const; + bool Init(); + bool RuntimeBroker_Init(); + void RuntimeBroker_Update(float dt); + void RuntimeBroker_Draw(); + + static void HandleMonoException(MonoObject* pException); + }; + + struct Callbacks { + using OnUpdateCallback_t = void(__stdcall *)(float); //__stdcall is important! + using OnDrawCallback_t = void(__stdcall *)(); //__stdcall is important! + + private: + static OnUpdateCallback_t g_pOnUpdateCallback; + static OnDrawCallback_t g_pOnDrawCallback; + + public: + static void SetOnUpdateCallback(OnUpdateCallback_t pCallback) { + g_pOnUpdateCallback = pCallback; + } + + static void SetOnDrawCallback(OnDrawCallback_t pCallback) { + g_pOnDrawCallback = pCallback; + } + + static void TryInvokeOnUpdate(float dt) { + if (g_pOnUpdateCallback) { + (*g_pOnUpdateCallback)(dt); + } + } + + static void TryInvokeOnDraw() { + if (g_pOnDrawCallback) { + (*g_pOnDrawCallback)(); + } + } + }; + + Callbacks::OnUpdateCallback_t Callbacks::g_pOnUpdateCallback = nullptr; + Callbacks::OnDrawCallback_t Callbacks::g_pOnDrawCallback = nullptr; + + ScriptingRuntime::ScriptingRuntime() + : m_pRuntimeContext(new ScriptingRuntime::RuntimeContext()) + { + } + + ScriptingRuntime::~ScriptingRuntime() { + if (m_pRuntimeContext) { + delete m_pRuntimeContext; + m_pRuntimeContext = nullptr; + } + } + + bool ScriptingRuntime::Setup() { + return m_pRuntimeContext->Init(); + } + + void ScriptingRuntime::OnDraw() { + if (m_pRuntimeContext) { + m_pRuntimeContext->RuntimeBroker_Draw(); + } + } + + void ScriptingRuntime::OnUpdate(float dt) { + if (m_pRuntimeContext) { + m_pRuntimeContext->RuntimeBroker_Update(dt); + } + } + + ScriptingRuntime::RuntimeContext::~RuntimeContext() { + if (m_pMonoDomain) { + mono_jit_cleanup(m_pMonoDomain); + m_pMonoDomain = nullptr; + } + } + + bool ScriptingRuntime::RuntimeContext::CheckRuntimeBeforeConstruct() const { + std::filesystem::path kRuntimeLibraryPath = std::filesystem::current_path() / kScriptingRuntimeAssemblyName; + std::filesystem::path kMonoPath = std::filesystem::current_path() / "Mono"; + std::filesystem::path kMonoEtcPath = kMonoPath / "etc"; + std::filesystem::path kMonoLibPath = kMonoPath / "lib"; + + if (!std::filesystem::is_regular_file(kRuntimeLibraryPath)) { + spdlog::error("No ReHitman.ScriptingRuntime.dll in current folder. Scripting support will be disabled"); + return false; + } + + if (!std::filesystem::is_directory(kMonoPath)) { + spdlog::error("No Mono folder in current folder. Scripting support will be disabled"); + return false; + } + + if (!std::filesystem::is_directory(kMonoEtcPath)) { + spdlog::error("No Mono/lib folder in current folder. Scripting support will be disabled"); + return false; + } + + if (!std::filesystem::is_directory(kMonoLibPath)) { + spdlog::error("No Mono/etc folder in current folder. Scripting support will be disabled"); + return false; + } + + return true; + } + + bool ScriptingRuntime::RuntimeContext::Init() { + if (!CheckRuntimeBeforeConstruct()) { + return false; + } + + mono_set_dirs("Mono\\lib","Mono\\etc"); + + m_pMonoDomain = mono_jit_init_version(kRuntimeName, "v4.0"); + if (!m_pMonoDomain) { + spdlog::error("Failed to initialise MonoRuntime"); + return false; + } + + MonoBindings::DeclareFunctions(); + mono_add_internal_call("ReHitman.ScriptingRuntime.RuntimeBroker::SetOnUpdateCallbackCxxPtr", Callbacks::SetOnUpdateCallback); + mono_add_internal_call("ReHitman.ScriptingRuntime.RuntimeBroker::SetOnDrawCallbackCxxPtr", Callbacks::SetOnDrawCallback); + + // Load our ReHitman.ScriptingRuntime.dll as assembly + m_pRuntimeAssembly = mono_domain_assembly_open(m_pMonoDomain, kScriptingRuntimeAssemblyName); + if (!m_pRuntimeAssembly) { + spdlog::error("Failed to load runtime assembly!"); + return false; + } + + MonoImage* pImage = mono_assembly_get_image(m_pRuntimeAssembly); + if (!pImage) { + spdlog::error("Failed to locate image of runtime assembly!"); + return false; + } + + // Load methods map + MonoClass* pRuntimeBrokerClass = mono_class_from_name(pImage, "ReHitman.ScriptingRuntime", "RuntimeBroker"); + if (!pRuntimeBrokerClass) { + spdlog::error("No RuntimeBroker class found!"); + return false; + } + + void* ptr = nullptr; + MonoMethod* pIter = nullptr; + while ((pIter = mono_class_get_methods(pRuntimeBrokerClass, &ptr)) != nullptr) { + std::string_view kName = mono_method_get_name(pIter); + constexpr std::string_view kInit = "Init"; + + if (kName == kInit) { + m_pRuntimeBroker_Init_Method = pIter; + break; + } + } + + if (!m_pRuntimeBroker_Init_Method) { + spdlog::error("Failed to locate method RuntimeBroker::Init()"); + return false; + } + + spdlog::info("Scripting: RuntimeBroker found and valid. Scripting is ready to be started!"); + return RuntimeBroker_Init(); + } + + bool ScriptingRuntime::RuntimeContext::RuntimeBroker_Init() { + if (m_pRuntimeBroker_Init_Method != nullptr) { + MonoObject* pException = nullptr; + mono_runtime_invoke(m_pRuntimeBroker_Init_Method, nullptr, nullptr, &pException); + HandleMonoException(pException); + + return (pException == nullptr); + } + + return false; + } + + void ScriptingRuntime::RuntimeContext::RuntimeBroker_Update(float dt) { + Callbacks::TryInvokeOnUpdate(dt); + } + + void ScriptingRuntime::RuntimeContext::RuntimeBroker_Draw() { + Callbacks::TryInvokeOnDraw(); + } + + void ScriptingRuntime::RuntimeContext::HandleMonoException(MonoObject* pException) { + MonoException exception { pException }; + if (exception) { + spdlog::error("---------[ MONO RUNTIME EXCEPTION ]---------\n{}", exception); + } + } +} \ No newline at end of file