348 lines
23 KiB
INI
348 lines
23 KiB
INI
; DS2 Revival settings - one file for all of its plugins, in the game folder next to DungeonSiege2.exe.
|
|
;
|
|
; Every setting is listed here with its default value. Change a value and restart the game; a line you remove means the
|
|
; default. One [section] per feature group. Yes/no settings: 1 = on, 0 = off.
|
|
;
|
|
; [Network] [Multiplayer] DS2Multiplayer.asi
|
|
; [Fixes] DS2Fixes.asi
|
|
; [Display] [Camera] [Photo] DS2Widescreen.asi
|
|
; [Graphics] DS2Graphics.asi
|
|
; [BrokenWorld] DS2BrokenWorld.asi
|
|
; [ModLoader] DS2ModLoader.asi
|
|
; (The controller plugin, an optional extra, has its own DS2Controller.ini.)
|
|
;
|
|
; COMMON MISCONCEPTIONS
|
|
; * Deleting a section, a line or this whole file does NOT turn anything off: the plugins then use the defaults listed here.
|
|
; To turn a plugin off, set it to 0 under [Plugins] below (or delete its .asi). A section whose plugin is not installed does nothing.
|
|
; * Broken World started from the Steam game's "Broken World" folder reads this same file, next to the main game's
|
|
; DungeonSiege2.exe: one file for both games, no second copy needed. (A Broken World folder on its own, with no Dungeon
|
|
; Siege II around it, keeps its own DS2Revival.ini next to its DungeonSiege2.exe.)
|
|
; * Versions 1.2.0 and 1.2.1 kept this file in the "scripts" folder. The first start of a newer version moves it here (your
|
|
; values stay). The plugins' log files are in "scripts\logs" (DS2Widescreen.log, ...): send those when you report a problem.
|
|
; * Old per-plugin files (DS2Multiplayer.ini, DS2Widescreen.ini, ...) are only used when this file does not exist. If both
|
|
; exist this file wins and the plugin says in its log which one it used. When the plugins create this file (the first
|
|
; start) they move the values you had changed in the old files here and rename those to .old.
|
|
; * This file is created by the plugins at the first start and is not part of the download, so an update never overwrites it.
|
|
; A new version adds its new settings to this file (with their comments) at the next start and changes nothing else - with
|
|
; one exception: when a new version changes the DEFAULT of a setting (1.3: AntiAliasing smaa -> msaa4+smaa), a value that
|
|
; is still the old default is changed to the new one, once (the log says so; [Settings] at the end of this file). A value
|
|
; you set yourself is never changed. Delete the file to get the default one back.
|
|
; * Mode and Resolution: with the default Mode=borderless the window is as big as your desktop and the game never changes
|
|
; your monitor's video mode. Resolution=1280x720 only makes the game render at that size and scale it up to fill the screen.
|
|
; * HudScale, HudFilter and MenuScale only apply with Mode=borderless. HudScale accepts decimals (1.5, 1.75), not only 1, 2, 3.
|
|
; * MaxFps is the game's frame-rate limiter (the game stops at 75 in a window; "refresh" = your monitor's refresh rate,
|
|
; 0 = no limit). It is not vsync, and it does not make the game faster.
|
|
; * Sharpen=0 turns the sharpening filter off completely (AntiAliasing=off does the same for anti-aliasing). Sharpen is gentle
|
|
; by default (0.2); older versions used 0.4.
|
|
; * The [Graphics] options (anti-aliasing, sharpening, anisotropy, Shaders, ShadowSize, FinerGlow) work in every Mode, also the
|
|
; game's own fullscreen and window; only the photo-mode picture needs borderless.
|
|
; * Broken World uses the same plugins and settings as the main game. Its own old plugin copies in "Broken World\scripts" are
|
|
; retired (only DS2Revival.asi is needed there). Old Broken World saves load (AcceptAnySaveSinglePlayer).
|
|
; * FastCpuid (Broken World) only matters on PCs where Windows runs its hypervisor (Memory Integrity, WSL2, Hyper-V,
|
|
; Docker, ...); elsewhere it changes nothing, and it is safe to leave on.
|
|
; * DirectPlay=auto needs no Windows feature: with Windows DirectPlay missing, the game uses the plugin's own replacement.
|
|
; * You do not need port forwarding to host: Relay=auto sends the game through the server only when a joiner cannot
|
|
; connect directly. Everyone in an online game needs DS2Multiplayer.
|
|
|
|
|
|
[Plugins]
|
|
; Broken World runs these same plugin files (loaded from the main game's scripts folder by "Broken World\scripts\DS2Revival.asi").
|
|
; 1 = on in both games; 0 = off in both (the same as deleting its .asi); ds2 = on in Dungeon Siege II only;
|
|
; bw = on in Broken World only. Example: DS2Graphics=ds2 keeps the graphics plugin out of Broken World.
|
|
; Players in an online game all need DS2Multiplayer.
|
|
DS2Multiplayer=1
|
|
DS2Widescreen=1
|
|
DS2Graphics=1
|
|
DS2Fixes=1
|
|
DS2BrokenWorld=1
|
|
DS2ModLoader=1
|
|
|
|
; ======================================================================================================================
|
|
; DS2Multiplayer.asi - online play and LAN without GameSpy
|
|
; ======================================================================================================================
|
|
|
|
[Network]
|
|
; The multiplayer server that replaces the dead GameSpy (host name or IP). 127.0.0.1 = a server on this PC.
|
|
Server=use1.dsii.uk
|
|
; Hosting behind a router without port forwarding: games go through the server.
|
|
; auto = only when needed, always = every game, off = never (the host must forward UDP 2302).
|
|
Relay=auto
|
|
; DirectPlay transport. auto = Windows DirectPlay when it is installed, otherwise our replacement (also on Linux/Steam Deck
|
|
; under Proton, whose built-in DirectPlay cannot host); native = Windows DirectPlay only; shim = always the replacement.
|
|
; Both kinds of player can be in the same game.
|
|
DirectPlay=auto
|
|
; News in the game: where the game's version check goes (its "new patch available" banner becomes the news banner).
|
|
; https://dsii.uk = the project site; an http://host:port address for a test server; empty = leave it alone.
|
|
NewsUrl=https://dsii.uk
|
|
; 0 = the version check shows the game's own text instead of the news banner.
|
|
NewsBanner=1
|
|
; Broken World's News screen (it asks www.gaspowered.com): 1 = show the revival news there too, 0 = leave it.
|
|
NewsScreen=1
|
|
; Steam copies have no CD key: 1 = give them a per-user identity (never touches the registry's game keys), 0 = off.
|
|
VirtualCdKey=1
|
|
; Advanced: a fixed identity number for the virtual CD key. Empty = a random one kept per Windows user.
|
|
CdKeyHash=
|
|
; Advanced: the product id served to the game.
|
|
ProductId=00000-000-0000000-00000
|
|
; Advanced: the distribution id served to the game; it only gates the version check (news banner).
|
|
; auto = 1 while NewsUrl is usable, else 0; or a number.
|
|
DistroId=auto
|
|
; 1 = when the game looks up its own host name it gets only the main IPv4 address, which stops LAN games failing with
|
|
; "name is already in use" on PCs with several network adapters.
|
|
SingleLanAddress=1
|
|
|
|
[Multiplayer]
|
|
; Re-enable the Multiplayer button of the main menu (the Steam build greys it out).
|
|
EnableMenuButton=1
|
|
; Fix the START button staying disabled in a fresh session's staging screen.
|
|
FixStartGuard=1
|
|
; Do not ask the Windows Firewall question when hosting (see "Firewall setup.cmd").
|
|
SkipFirewallPrompt=1
|
|
; Seconds a direct (IP) connection is tried before it gives up.
|
|
DirectConnectTimeout=60
|
|
; Create the multiplayer server when you enter a lobby, so a fresh session can host.
|
|
LobbyServer=1
|
|
; Close the lobby screens when you leave a lobby instead of leaving them on screen.
|
|
CloseLobbyOnExit=1
|
|
; Warn (and offer Windows' installer) when DirectPlay is missing and the replacement is not in use.
|
|
CheckDirectPlay=1
|
|
; Offer the game's hidden 8-player modes when hosting (Old School Mode, Couples Mode++); only the host needs this.
|
|
EightPlayers=1
|
|
; When the host's game differs from yours (another DungeonSiege2.exe file, another version) the game used to stay silently
|
|
; in the staging area when the host started; 1 = say so and go back to the game list. 0 = the game's own behaviour.
|
|
JoinVersionMessage=1
|
|
|
|
|
|
; ======================================================================================================================
|
|
; DS2Fixes.asi - bug fixes, all on by default; here you can switch single ones off
|
|
; ======================================================================================================================
|
|
|
|
[Fixes]
|
|
; The game installs a system-wide keyboard hook that makes typing lag in every other program. 1 = it is not installed.
|
|
NoGlobalKeyboardHook=1
|
|
; The game changes the mouse cursor twice per mouse event (stutter while moving or clicking). 1 = those calls are filtered.
|
|
QuietCursor=1
|
|
; Rotating the camera with the middle mouse button recentres the cursor every frame; 1 = keep that stable at any frame rate.
|
|
SteadyCameraDrag=1
|
|
; The game's vertex upload (shadows, particles, character meshes) read up to 168 bytes past the end of its data and could
|
|
; crash. 1 = fixed.
|
|
SafeVertexUpload=1
|
|
; The "below minimum specification" box that graphics chips unknown to the game get at the first start. 1 = not shown.
|
|
SkipMinSpecWarning=1
|
|
; The Gas Powered Games newsletter form at the first single-player start. 1 = skipped.
|
|
SkipSignUpForm=1
|
|
; Give back the animation memory (about 7 MB per region) of objects left behind when you leave a region, so long sessions do
|
|
; not run out of address space. 1 = on, 0 = off, auto = on for Dungeon Siege II, off for Broken World (not proven there yet).
|
|
DormantAnimations=auto
|
|
; How long (seconds) an object must be out of view before its animation memory is released.
|
|
DormantDelaySeconds=10
|
|
; Diagnostic: 1 = count the dormant-animation hook calls and cycles in the log.
|
|
DormantProfile=0
|
|
; A Documents path with characters the game's code page cannot hold (a Cyrillic or Chinese user name on an English Windows)
|
|
; makes the game save into its install folder. 1 = the game is given an ASCII path (a junction in %ProgramData%\DS2Revival).
|
|
AsciiDocumentsPath=1
|
|
; A few seconds after the start, check that Documents\My Games\<game> can be written and say why if not (Controlled folder
|
|
; access, security software) instead of the game's silent fallback. 1 = on.
|
|
SaveFolderCheck=1
|
|
; Language packs under a Windows that uses UTF-8 for legacy programs break text, typing and saves.
|
|
; auto = code page 1252 only when Windows uses UTF-8 for legacy programs; off or 0 = leave everything alone;
|
|
; a number = force that code page (e.g. 1252, or 1251 for a Cyrillic pack).
|
|
TextCodepage=auto
|
|
|
|
|
|
; ======================================================================================================================
|
|
; DS2Widescreen.asi - window and resolution, interface size, frame limiter, camera, photo mode
|
|
; DS2Graphics.asi - the graphics (GPU) options, section [Graphics] below
|
|
; Quick answers: sharpening off = Sharpen=0 [Graphics]; anti-aliasing off = AntiAliasing=off [Graphics]; bigger interface =
|
|
; HudScale=2; uncapped frame rate = MaxFps=0; the game's own video modes = Mode=off.
|
|
; ======================================================================================================================
|
|
|
|
[Display]
|
|
; How the game's window is made.
|
|
; borderless = a frameless window the size of your screen (works with every Steam launch option and the Steam overlay; the
|
|
; 800x600 / 1024x768 menus are scaled to fit with black bars); window = the game's normal window; off = leave the game's
|
|
; video alone (exclusive fullscreen at its own modes).
|
|
Mode=borderless
|
|
; The game's own exclusive fullscreen (Mode=off, or fullscreen=true on the command line) shows no mouse pointer on Windows 10
|
|
; and 11. 1 = the pointer is brought back there (two checks of the game that hide it are skipped in memory, in Dungeon Siege II
|
|
; and in Broken World; a Broken World exe that has those two edits already keeps them). Nothing changes in borderless / window.
|
|
ExclusiveCursor=1
|
|
; The size the 3D world is rendered at. desktop = your screen's size; or WIDTHxHEIGHT such as 1280x720 (rendered at that size
|
|
; and stretched to fit with the aspect ratio kept; a smaller size also makes the interface bigger; a size above your screen is
|
|
; refused by the game). It does not change your monitor's video mode.
|
|
Resolution=desktop
|
|
; The game's frame limiter (not vsync). refresh = your screen's refresh rate; 0 = no limit; a number = that many frames per
|
|
; second. "maxfps=" on the game's command line wins.
|
|
MaxFps=refresh
|
|
; How the 800x600 / 1024x768 menus are enlarged (Mode=borderless only). sharp = whole-number enlargement with hard pixels,
|
|
; then a smooth shrink to fit; integer = whole multiples only (black border, perfectly sharp); smooth = the old blurry stretch.
|
|
MenuScale=sharp
|
|
; Size of the in-game interface (Mode=borderless only). auto = screen height / 720 (1080p 1.5, 1440p 2, 2160p 3; snapped to
|
|
; a whole number within 0.05, off below 1.2); 1 = off; or a number from 1 to 4 such as 1.25 or 2. Decimals are fine.
|
|
HudScale=auto
|
|
; Interface scaling filter at fractional scales (Mode=borderless only). sharp = crisp text; smooth = plain bilinear;
|
|
; point = nearest.
|
|
HudFilter=sharp
|
|
; After a failed graphics reset (alt-tab, overlay) retry for 10 seconds instead of ending at once. 0 = the game's behaviour.
|
|
RetryDeviceReset=1
|
|
; Once per frame check that the plugin's Direct3D hooks are still installed. With the native Direct3D 9 driver on AMD cards the
|
|
; game dropped them a few frames after the start, so the graphics options silently did nothing. 0 only for diagnosing.
|
|
RevalidateHooks=1
|
|
; Diagnostic: 1 = write cursor-recentring statistics to the log once a second.
|
|
LogCursor=0
|
|
|
|
[Graphics]
|
|
; DS2Graphics.asi: the graphics (GPU) options. Older files had these in [Display]; the plugin still reads them there when
|
|
; [Graphics] lacks the key, and the plugins move them. DS2Graphics works without DS2Widescreen and in every Mode (borderless,
|
|
; window, off); SSAO is still experimental.
|
|
; Smooths jagged edges of the 3D world (text and interface stay sharp). msaa4+smaa = 4x multisampling plus SMAA: the cleanest
|
|
; picture (edges, and the leaf cut-outs that multisampling alone leaves jagged); msaa2 / msaa4 / msaa8 = multisampling only (sharp
|
|
; textures, the same kind of anti-aliasing as dgVoodoo's); smaa = SMAA only (cheapest, slightly softer textures); off = none.
|
|
; "msaa4+smaa" and the like need no other tool: you do not need dgVoodoo for anti-aliasing. (A file from 1.2.x that still had
|
|
; the old default, smaa, gets msaa4+smaa once at the first start of 1.3; if you prefer smaa, set it again, it stays.) A sample count your graphics card
|
|
; does not support is lowered to the best it has, and if none works the plugin falls back to SMAA (the log says which).
|
|
; MSAA turns SSAO off (SSAO needs the single-sampled depth), and RevalidateHooks=0 disables MSAA (SMAA is used instead).
|
|
AntiAliasing=msaa4+smaa
|
|
; The 3D scenes of the menus (hero selection and creation) are anti-aliased with SMAA before the interface is drawn, so their
|
|
; text stays crisp. auto = SMAA unless AntiAliasing=off; smaa = always; off = never.
|
|
MenuAntiAliasing=auto
|
|
; Contrast-adaptive sharpening of the 3D world after anti-aliasing. 0 = off, up to 1 = strongest.
|
|
Sharpen=0.2
|
|
; Experimental ambient occlusion. off, on, or debug-depth / debug-ao (show the depth or the occlusion alone, for testing).
|
|
SSAO=off
|
|
; SSAO sample radius in game units and strength.
|
|
SSAORadius=1.5
|
|
SSAOIntensity=3.0
|
|
; Anisotropic texture filtering (sharper ground textures at a slant). 16 = default, capped at what your graphics card
|
|
; supports; 0 or 1 = the game's own filtering; 2, 4, 8 = weaker.
|
|
Anisotropy=16
|
|
; Shifts the texture detail level the graphics card picks. 0 = the game's own; negative = sharper (and shimmerier).
|
|
TextureLodBias=0
|
|
; The game forgets its "Shaders" video option at every start, so glow, water and shine stay off. fix = read it correctly;
|
|
; game = leave the game's behaviour.
|
|
Shaders=fix
|
|
; Size of the shadow pictures in pixels (Steam v2.3 only; the game uses 256). game = leave it; 512, 1024, 2048 or 4096 = sharper.
|
|
ShadowSize=game
|
|
; The glow around crystals, lanterns and magic is drawn at 256x256 and looks blocky and shimmery at today's resolutions. A number
|
|
; = the same glow drawn at that size (done in memory, no files written): 512 (default), 1024, or 2048; 0 = the game's own glow.
|
|
; Replaces the old ModsFinerGlow folder (you can delete it). Only your own screen changes.
|
|
FinerGlow=512
|
|
; Hero portraits at the top left are wrong above 1280 pixels wide: black in Dungeon Siege II multiplayer, dark and garbled in
|
|
; Broken World (single player too). 1 = fixed.
|
|
PortraitFix=1
|
|
; NVIDIA RTX Remix support. auto = the Remix profile when ".trex\NvRemixBridge.exe" is next to the game, else normal;
|
|
; remix = force the profile; d3d9 = never. The profile turns off MenuScale filtering, HudScale, AntiAliasing, Sharpen, SSAO,
|
|
; Anisotropy, TextureLodBias and Shaders. The next four apply to the Remix profile only.
|
|
Renderer=auto
|
|
; Draw a sky in the fog colour so Remix has one.
|
|
RemixSky=1
|
|
; Do not draw the shadow pass (Remix would take it for the main camera).
|
|
RemixSkipOffscreen=1
|
|
; Build the game's mouse pointer in the game process (Remix shows none).
|
|
RemixCursor=1
|
|
; A dim directional light in the menus: red,green,blue, or off.
|
|
RemixMenuLight=0.10,0.022,0.013
|
|
|
|
[Camera]
|
|
; An empty setting is off (the game's own value).
|
|
; Field of view. auto = a wide screen sees more to the sides instead of less above and below; game = the original view;
|
|
; or a vertical angle in degrees from 20 to 100, e.g. 55.
|
|
FOV=auto
|
|
; Zoom out further: 1.5 or 2 times the game's limit (at most 4). Fog and view distance move out with the camera.
|
|
MaxZoom=
|
|
; Flattest camera angle in degrees (at least 5; the game stops at 32).
|
|
MinPitch=
|
|
; Steepest camera angle in degrees (at most 89; the game stops at 85).
|
|
MaxPitch=
|
|
; Zoom per mouse-wheel notch as a fraction of the zoom range (at most 0.9; the game uses 0.25), e.g. 0.1.
|
|
ZoomStep=
|
|
|
|
[Photo]
|
|
; Photo mode: pauses a single-player game (never multiplayer), hides the interface and names, frees the camera limits.
|
|
; A key is a name (Insert, Return, Delete, PageUp, PageDown, Home, End, Pause, F1-F12, a letter or digit, ...) or a
|
|
; virtual-key number; none = off.
|
|
; Toggle photo mode (the same key leaves it; Escape also does). none turns the whole photo mode off.
|
|
Key=Insert
|
|
; In photo mode: save a PNG of the world without the interface into the game's Screenshots folder (needs Mode=borderless).
|
|
CaptureKey=Return
|
|
; In photo mode: detach the camera from the party (W A S D fly, R / F up / down, arrows or the middle button look, wheel =
|
|
; forward / back, Shift = fast); the same key brings the party camera back.
|
|
FreeCameraKey=Delete
|
|
; In photo mode, hold: wider / narrower field of view.
|
|
FovWiderKey=PageUp
|
|
FovNarrowerKey=PageDown
|
|
; Zoom limit in photo mode, times the game's (1-5).
|
|
MaxZoom=3
|
|
; Camera angle limits in photo mode, degrees above the ground (MinPitch 5-60, MaxPitch 60-89).
|
|
MinPitch=10
|
|
MaxPitch=89
|
|
; Field of view limits in degrees (FovMin 10-60, FovMax 60-140) and speed in degrees per second (5-120).
|
|
FovMin=20
|
|
FovMax=110
|
|
FovSpeed=30
|
|
; Free camera speed in metres per second (0.5-60).
|
|
FreeCameraSpeed=6
|
|
; How far the free camera may leave the loaded part of the world (0-500). 0 = from the map.
|
|
FreeCameraRadius=0
|
|
; 1 = no selection rings and no hover outline in the picture, 0 = keep them.
|
|
HideSelection=1
|
|
|
|
|
|
; ======================================================================================================================
|
|
; DS2BrokenWorld.asi - starts Broken World, imports Steam heroes and old saves, frame-rate fix, DLL search
|
|
; ======================================================================================================================
|
|
|
|
[BrokenWorld]
|
|
; Starting the game starts Broken World when it is installed in the "Broken World" folder (hold Shift for the original game).
|
|
; auto = do that; off = never start Broken World.
|
|
Launch=auto
|
|
; Before starting Broken World, rename the 2018 repack's Resources\Widescreen Fix.ds2res to .off: DS2Widescreen does its job, and
|
|
; it changes the game data checksum, so players with and without it could not join each other. 0 = keep it.
|
|
RetireWidescreenFix=1
|
|
; Broken World can read heroes made in the Steam game (it refused their file format). 1 = allow.
|
|
AcceptSteamParties=1
|
|
; Heroes are listed (single player, multiplayer, the vault) when they were made with a known edition of the game, by content id:
|
|
; D4EE6791 Steam Dungeon Siege 2 v2.3 D4EE4A9F the GOG exe (fixed files v3)
|
|
; 790BFE9F Broken World 75112728 Broken World with the 2018 repack's Widescreen Fix.ds2res
|
|
; CA03370A DE60C4EB 1A300219 older Dungeon Siege 2 versions (built into the games) AB123ABC the disc's premade heroes
|
|
; The log names the edition ("party made with the GOG exe"). 0 = only what the game itself knows.
|
|
AcceptKnownEditions=1
|
|
; More content CRCs (hexadecimal, separated by comma or space) whose heroes are accepted, e.g. a modded game's id from the log.
|
|
AcceptContentCrcs=
|
|
; Single player only: also list heroes saved with other game data (a mod, a retail install). The log says "unknown game data,
|
|
; accepted in single player". Multiplayer and the vault stay strict for ids not in the table above. 0 = off.
|
|
AcceptAnySaveSinglePlayer=1
|
|
; The frame-rate fix for PCs where Windows runs its hypervisor (Memory Integrity, WSL2, Hyper-V, Docker...). 1 = on.
|
|
FastCpuid=1
|
|
; Undo a repacker's edits of Broken World's mouse handling (cursor recentring). 1 = on.
|
|
RestoreMouse=1
|
|
; Let Broken World find binkw32.dll and mss32.dll in the main game's system folder when its own is missing. 1 = on.
|
|
SystemDllSearch=1
|
|
; The Dungeon Siege 2 folder, if Broken World is not in a "Broken World" folder inside it. Empty = the folder above.
|
|
BaseGame=
|
|
|
|
|
|
; ======================================================================================================================
|
|
; DS2ModLoader.asi - drop-in mods (a "Mods" folder next to DungeonSiege2.exe, one folder per mod)
|
|
; ======================================================================================================================
|
|
|
|
[ModLoader]
|
|
; 0 = load no mods
|
|
Enabled=1
|
|
; The mods folder, relative to the game's folder (or a full path). Each mod is a folder in it.
|
|
Folder=Mods
|
|
; 0 = only archives (.ds2res/.ds2map), no loose files (and no glTF files)
|
|
LooseFiles=1
|
|
; Broken World: also load the main game's Mods folder (before Broken World's own). Which of those mods Broken World takes is
|
|
; up to each mod (optional file <mod folder>\modinfo.ini: [Mod] Games=ds2 / bw / both). Without Games=, a main-folder mod
|
|
; loads in both games, but in Broken World its loose files whose path Broken World's own archives also hold are skipped.
|
|
BaseGameMods=1
|
|
; glTF models (.glb/.gltf) in mods are used directly (converted at start-up into Mods\.cache when they changed). 0 = ignore.
|
|
GLTF=1
|
|
|
|
|
|
[Settings]
|
|
; Written by the plugins - do not edit. Which defaults this file has been brought up to. When a version changes the default of a
|
|
; setting, a value that is still the old default is changed once, then this number is raised so it is never done again (a file
|
|
; without this line is from 1.2.x). Values you set yourself are never touched.
|
|
Version=2
|