Changelog
Versions 0.3.x
Version 0.3.28
October 27 2012
- 3D avatars(but still one per world)
- Better error handling after the connection to the universe server is lost(solves issue #11)
- Clickable links in the chat of the Mac OS X version
- Jumping
- Specular lighting support in Direct3D 9 renderer
- Support TriangleExt command in RWX files
- Use specular light values from RWX files
Version 0.3.27
October 21 2012
- Fallback to 16-bit depth/z buffer for Direct3D 9, restores compatibility with older GPUs that don't support 24-bit depth buffers(like a Geforce 2MX)
- Fixed bug causing DrawPrimitive calls with PrimitiveCount set to 0
- Fixed D3D errors when restoring lights after device reset in Direct3D 9 renderer
- Fixed D3DSAMP_MIPFILTER being set to D3DTEXF_ANISOTROPIC in Direct3D 9(causes undefined behavior according to Direct3D documentation)
- Fixed falling after using shift key(issue #10)
- Fixed selection menu on Mac OS X
- Fixed view distance resetting to automatic after switching worlds(issue #9)
- Holding CTRL while duplicating an object makes it move the distance of the longest side of the object, making it easier to build repetitive things like roads or walls
- Improved object selection, distant objects can now be selected(fixed issue #1)
- Limited (up/down) camera rotation for all input devices, not just the keyboard(issue #7)
- No longer create a backbuffer the size of the main display when initializing the Direct3D 9 device
- URL command
- WASD keyboard controls
Version 0.3.26
October 10 2012
- Pass through objects when holding shift key
- Solid command
- Chat log
- Changeable color for highlighted messages
- Shearing of 3D objects using the shear command(issue #5)
- Some changes in VP SDK socket handling, this could solve some problems with corrupted data on connection loss
- Mac OS X: duplicate objects using space bar
- More space for user names in chat
- Fixed issue #8: Duplicating objects causes crash
Version 0.3.25
September 26 2012
- Action messages with /me
- More space for the usernames in the chat view
- Disabled teleporting back to the starting point of the world when you go below -50m Y
- Fixed Direct3D 9 rendering bug
- Fixed bug that occurred when duplicating objects with animations, the animations are now disabled for the new object(s) after duplicating.
- Fixed crashes when loading some bitmap mask files
- Fixed problems loading some RWX objects
Version 0.3.24
September 6 2012
- Strip unnecessary information from vertex buffers when using a renderer that doesn't support normal maps
- Setting for disabling multi-threaded OpenGL on Mac OS X
- Frustum culling for terrain tiles
- Frustum culling for sectors before sorting and culling each object in the sectors
- Terrain height offset world option
- Object path password world option (this is not secured, but it does allow using password protected object paths)
- Improved hex color parsing
Version 0.3.23
August 5 2012
- Normal mapping for Direct3D renderer(also affected by user created lights instead of just the world light)
- Handle Direct3D 9 lost device(fixes broken 3D view after locking the screen or pressing ctrl+alt+delete)
- Faster parsing and normal generation of RWX files
- Keep old model until new model is loaded when an object is changed(reduces flicker of objects that are regularly changed by bots)
- Fixed memory leak after each terrain query
- Fixed uninitialized data in selection bounding box vertex buffer
- Fixed crashes decoding messages from server when receiving object click event
Version 0.3.22
July 18 2012
- Terrain (incomplete, hard to use without keyboard controls and holes in the terrain can't be selected)
- Store data for multiple objects in one vertex buffer when using OpenGL (opengl_shared_buffers=0 to disable in configuration file)
- IPv6 connection support
- Support for connecting to world servers at different TCP ports
- Changed cache directory layout
- Windows: File downloader no longer stores 404 and other error pages as succesful downloads in the cache
- Windows/Linux: Changed layout on the graphics tab in the settings dialog
- Windows/Linux: Highlight messages with certain words(settings on the chat tab of the settings dialog)
- Windows/Linux: Clickable links in chat
- Windows/Linux: Frame rate limiting enable/disable setting
- Windows/Linux: Settings option in the menu of the main window
- Windows/Linux: Teleport window size improved for some window themes
- Mac OS X: Animate tab bar opening, closing and switching tabs
- Mac OS X: Fix corrupted display while resizing window
- Fix black surface on MD2 models when using the Direct3D 11 renderer
- Fix incorrect coordinate system conversion of MD2 models
- Fix incorrect use of lock flags for vertex buffers in some cases
- Fix random bounding box when selecting an object that does not have a bounding box
Version 0.3.21
Released March 4 2012
- DDS Texture loader(only works with DXT1, DXT3 and DXT5 textures)
- Account info window(display only, no editing)
- Better layout for settings dialog, especially on Linux when using larger fonts
- Removed 120 vertex limit for polygons in RWX loader
- Option to force using gluBuild2DMipmaps for loading textures, seems to prevent some problems with Intel drivers on Linux. Add use_glubuild2dmipmaps=1 to the configuration file to use
- View distance now affects lights
- Better handling of lost connections
- Action triggers and command names are no longer case sensitive
- Disable the Direct3D renderer options in the settings dialog when not running on Windows
- Fixed hang in RWX loader when reading a prototype with lines longer than 512 characters
- Fixed leaking textures when switching worlds
- Windows/Linux: Remember window size and position
- Windows/Linux: Focusing chat text field by pressing return/enter key now also works if the chat window is detached from the main window
- Windows/Linux: Show version number in the login window
- Mac OS X: Use CVDisplayLink for rendering when V-Sync is enabled
- Mac OS X: Focus chat text field by pressing return key
- Mac OS X: Changed login window layout
- Mac OS X: Fix incorrect display of add friend dialog
Version 0.3.20
Released January 3 2011
- Support for user created point lights
- Alpha to coverage option(can be enabled using alpha_to_coverage=1 in the configuration file, requires multisampling)
- Option to disable distance sorting of objects(disable_distance_sort=1 in the configuration file, for use with the alpha to coverage option)
- Improved sorting and merging of RWX render groups
- Query cells further away when using higher view distance
- Crosshair cursor when using the mouse to control the camera
- Fixed objects animations not resetting after the object has changed.
- Fixed avatar names not working
- Fixed incorrect scale if only 2 scale factors are given in the scale command
Version 0.3.19
Released September 6 2011
- 64-bit build for Windows
- Selection menu. Hold alt/option when right-clicking to select any object under the mouse pointer, even if it's behind another object
- Move command, animate the position of an object
- Rotate command, animate the rotation of an object
- Added world option to swap the left and right faces of the skybox
- Merge and sort RWX mesh groups, improves rendering performance for many models
- Improved sorting of which cells to query first
- Sort objects by vertex buffer to reduce switching vertex buffers
- Downloads on Linux and Mac OS X can now be interrupted when switching worlds
- Mac OS X: Support for multisample anti-alias
- Mac OS X: Support for V-Sync
- Mac OS X: Show error in chat when entering a world failed
- OpenGL mipmap generation using GL_ARB_framebuffer_object, GL_EXT_framebuffer_object or GL_SGIS_generate_mipmap(tried in that order)
- Sign textures no longer load halfway through rendering a frame
- Don't render MD2 mesh when updating the animation failed
- Fixed memory leaks in MD2 mesh loader
- Fixed memory leaks in texture mask loader
Version 0.3.18
Released June 16 2011
- Don't reopen model files that are already loaded
- Made some changes to the Direct3D 11 renderer that may help fix device creation errors some people were having
- Removed object space normal mapping code, it was broken anyway
- Added frame time indicator, enabled by adding show_performance_indicators=1 to the configuration file
- Don't reopen model files on every use just to check the file type in the zip file
- Added commands for setting MD2 animation("animation [start frame] [end frame]" and "framerate [frames per second]")
- Better text alignment of chat on Mac OS X
- Added field of view world option
- Added near and far clipping planes world options
- Added timeout to login
- Ignore joint transform commands in RWX files, they were treated the same as the other transform commands in earlier versions
- MD2 loader now works on big endian platforms, but there aren't any where VP is used right now
- Use less render commands for RWX models in some cases
- Fixed crash changing model ambient/diffuse/specular when the model isn't loaded
- Fixed crash creating collision shape after MD2 model failed to load
- Fixed parts of objects without texture coordinates being invisible when using normal maps
- Fixed bug where previously hidden objects(create visible no) would not reappear after editing the object
Version 0.3.17
Released April 16 2011
- Smooth movement
- Flashing taskbar item when a new chat message arrives
- OpenGL matrix stack no longer used, improves performance with some graphics drivers
- Reduced delay in downloaders on Mac OS and Linux
- Added minimum and maximum frame rate for automatic view distance(option was already available, but not
- Added maximum number of simultaneous queries
- Load nearby cells first
- Fixed some problems with the Ubuntu installation package
- Fixed VP not working on some old CPUs
- Fixed invisible objects when the model fails to download on Windows
Version 0.3.16
Released March 13 2011
- Max cloth resolution set to 100
- Some small collision fixes
- Support for greyscale colors in color command and sign command
- Opacity command
- Fixed cloth rendering when using Direct3D 11
- Faster camera rotation
- Vertex buffers for static objects now marked as immutable in Direct3D 11 renderer, this makes rendering faster
- Downloaders stop faster when switching worlds
- Fixed Direct3D 11 renderer not working if an older version of DirectX is installed
- Direct3D 11 renderer no longer depends on d3dx11_43.dll
- Use precompiled shaders for Direct3D 11
- Fixed memory leaks in Direct3D 11 renderer
- Fixed problems resizing and moving windows
- Added missing 2x multisample option to settings dialog
- Direct3D 9 and 11 renderers now support multisampling, vertical sync and anisotropic texture filtering
- Fixed objects with masks appearing black when using texture compression(OpenGL)
- Fixed bug that could cause a crash when the resolution of a cloth object is set too low(reported by cube3)
- Fixed invisible selection boxes
- Improved alpha/depth sorting
- Width and height options for cloth objects
Version 0.3.15
Released February 6 2011
- The resize_textures configuration option now works again
- Run action commands on background when loading
- Generate sign textures on background thread(reduces lag while loading)
- Reduced downloader CPU usage on non-Windows platforms
- Lower frame rate when the application is inactive
- Increased timing precision on Windows(smoother movement)
- Changed character height to 1.75m
- Use a sphere as the collision object for tiny objects
- Don't distance sort objects in zones that are too far away to be seen
- Support for cloth simulation, but it's not really usable right now and doesn't interact with other objects
- Added max_texture_level configuration option
- Added texture_lod_bias configuration option
- Added auto_view_distance_min_fps and auto_view_distance_max_fps configuration options
- Tools window moved to collapsable sidebar on Mac OS X
- Fixed incorrect current height on teleport dialog
- Fixed selection boxes not working on Direct3D 11 renderer
- Fixed multisampling always being enabled after using the settings dialog
- Fixed mask textures not loading when using Direct3D 11 renderer with Direct3D 9 hardware
- Fixed crash that occurs when running action commands if the model hasn't loaded
Version 0.3.14
Released January 3 2011
- Direct3D 11 renderer, still incomplete but mostly works fine for me
- Smoother movement, it accelerates a bit before reaching full speed
- Settings dialog
- Load mask files saved as 24 bit bitmaps
- Clear the users list when changing worlds on Mac OS X
- Changed skybox texture mapping
- Larger socket read buffers to speed up loading of world data
- Group downloads by URL so objects aren't unnecessarily waiting to load when the download has already finished
- Load password from file if set
- Distance fade is now optional
- Fixed black screen on start that stays until an object using a texture mask has been loaded
- Fixed incorrect view on start that stays until the user resizes the window
- Fixed non-solid ground object when further away from world center
- Fixed object paths with question marks in the URL not working
- Fixed selection boxes not appearing when the last object drawn uses normal mapping
- Fixed bottom face of skybox not working
- Fixed impossible to select objects after using reset rotation button
Version 0.3.13
Released December 23 2010
- Fallback to software vertex processing in Direct3D 9 renderer
- Button to align selection to half meter grid
- Button to reset object rotation
- Correctly update object distance for objects over 200m away from the camera
- Read server host name from configuration file on Mac OS X
- Optional texture compression with OpenGL renderer
- Optional anisotropic filter with OpenGL renderer
- Optional multisample anti-aliasing with OpenGL renderer
- Option to disable vertical synchronisation with OpenGL renderer
- "visible" action command radius= option
- Teleport to coordinates in world
- Read start world from configuration file on Mac OS X
- Disabled specular light on avatars that could make them too bright
- Improved object depth sort near zone boundaries
- Reduced number of draw calls necessary for some RWX models
- Fixed black sky problem on some graphics cards
- Fixed black selection boxes on some graphics cards
- Fixed crash in RWX loader when incorrect indices are used with the polygon command
Version 0.3.12
Released December 11 2010
- Fixed crash when unloading texture
- Fixed crash when clearing socket write buffer
- Fixed incorrect ambient light color in OpenGL renderer
- Support margin and alignment for signs
- Added color tint action command
- Use local viewer light model in OpenGL renderer
- Use triangle strips instead of triangle fans for skybox and avatars
- Use WASD keys for controls on Mac OS X
- Added setting to disable hardware mipmap generation in OpenGL renderer
- Added setting to disable the use of BGRA textures
- Added setting for avatar texture URL
Version 0.3.11
Released November 20 2010
- Fixed crash on failed connection for Mac OS X
- Added world lighting settings
- Added object deselection
- Read sign font size from configuration file
- Removed dependency on D3DX for Direct3D renderer, it should now work without having to run the DirectX Web Installer on your computer
- Don't load objects that are over 60m away until they are visible on screen
Version 0.3.10
Released November 5 2010
- Improved rendering of avatar names
- Users list for Windows and Linux
- Save window positions
- Fixed distant objects not rendering when visibility is higher then 200m(still some performance issues)
Version 0.3.9
Released October 25 2010
- Support for normal mapping when using pixel shaded OpenGL render mode
- Added ambient, diffuse and specular action commands to set the material values for an object
- Create less groups when loading RWX models with tags specified per face
- Improved normal generation on RWX models
- Load masks as alpha only textures instead of RGBA textures
- Load textures without alpha as RGB textures instead of RGBA
- Made sign font size smaller on Mac OS X
- Fly and move objects using plus and minus keys without holding shift
- Read minimum and maximum view distance from configuration file
- Return key moves keyboard focus to chat input
- Fixed mask bitmap loading
- Fixed bug where you would not receive any updates from the server on the Mac OS X version after someone left
Version 0.3.8
Released October 4 2010
- Support MD2 models(inluding animation)
- Resize textures to power of 2 sizes on Mac OS X
- Work around a crash in the Mac OS X OpenGL stack by using a different vertex format for placeholder meshes(black triangles)
- Fixed skybox vertex buffer memory leak
- Fixed crashes when loading objects before OpenGL or Direct3D is initialized
- Fixed most crashes when switching worlds
- Fixed missing ground object when loading before OpenGL or Direct3D is initialized
- Fixed texture mask files not being closed after loading
Version 0.3.7
Released September 24 2010
- Use HTTP Keep-Alive for downloading objects if available(much faster downloads)
- Support for loading masks from Gzip files
- Support for SOCKS4A proxy
- Move sideways when holding shift key
- Support for Data Execution Prevention(DEP) on Windows
- Added timeout for connecting and entering world
- Added loading indicator on status bar of Qt GUI(Windows/Linux)
- Added frame rate indicator on status bar of Qt GUI
- Added view distance indicator on status bar of Qt GUI
- Fixed uninitialized variable that made the client send object changes even when the objects didn't change
- Fixed possible crash parsing incorrectly formatted message from the server
- Fixed possible buffer overflow when connecting to world server
- Fixed incorrectly recognizing certain textures as animations
- Fixed inability to select non-RWX models
- Fixed extra arguments to picture command being included in the URL
Version 0.3.6
Released September 8 2010
- Faster loading(especially for very large models)
- View distance menu on Mac OS X version
- Object moving relative to object rotations
- Correctly rotate multiple objects
- Use axis/angle instead of Euler angles to store rotations
- Free look mode
- Added application icon on Mac OS X
- Show axis of last selected object instead of first selected object
- Removed unnecessary texture mirror in texture loading code
- Rotate objects with scroll wheel
- Added color name 0 as black
- Added support for color command
- Don't use non-power-of-two textures as that seemed to cause a slowdown on most systems
- Support for object scaling
- Add http:// to picture URLs if it is not included yet
- Fixed last used mask visible on avatars
- Fixed slowdown after activating or selecting objects
- Fixed seams on skybox mesh
- Fixed physics meshes being left in scene when they are too far away, causing slowdown after exploring larger worlds for some time
- Fixed possible crash when loading RWX files
- Fixed crash when using buttons on object properties window while not in building mode
- Fixed crash when using scroll wheel when not in building mode on Mac OS X
- Fixed possible crash because of uninitialized variable
- Fixed incorrect translation on some RWX models
- Fixed keys / and * for rotation not working
- Fixed incorrect parsing of object change message
Version 0.3.5
Released August 24 2010
- Removed unnecessary error checking in OpenGL renderer(speedup)
- Removed unnecessary texture bind in OpenGL renderer(also possible speedup)
- Support for double sided faces from RWX files
- Removed unnecessary texture bind in RWX renderer
- Disable texture masks when rendering skybox
- Send object clicks to world server
- Loading indicator for Mac OS X version
- Set 24 bit Z-buffer in Direct3D renderer
- Fixed Direct3D transparency issues
- Users list on Mac OS X version
- Physics mesh generation on background thread
- Selecting placeholder objects(black triangles) now possible
- Ground object updates when changing worlds
- Add messages in chat box when connection to universe or world server is lost
- Fixed race condition that could result in a crash
- Added b and x for black as color names
- Fix partly transparent object placeholders(black triangles)
- Removed unused material calls for specular lighting
- Added check to prevent crash when object is not found in object change event handler
- Better normal generation for RWX models
- Support avatar model RWX files
- Don't load texture if it doesn't have any references left after downloading
- Added OpenGL renderer using shaders
- Fade objects in distance for OpenGL renderer with shaders
- Gradually change view distance
- Added support for mask= and tag= in texture command
- Read configuration file to select renderer
- Read configuration file to get frames per second limit
- Less format conversions when loading images
Version 0.3.4
Released July 21 2010
- Fixed model not changing when others are building
- Fixed incorrect user ID displayed for newly built objects
- Fixed incorrect timestamp on changed objects
- Fixed incorrect timestamp on new objects
- Fixed crash when reselecting an object after duplicating it while it is still selected.
- Added colors on sign textures
Version 0.3.3
Released July 15 2010
- Fixed object selection in Direct3D mode
- Fixed bounding box display in Direct3D mode
- Added lines that show local X, Y and Z axis of a selected object
- Fixed unable to activate objects that are over 40 meters away
- Fixed wrong rotation with home and end keys
- Added support for texture masks when specified in RWX files(In Direct3D mode, only power of 2 sized masks work)
- Added AW style filmstrip animations
- Fixed missing smooth lighting on RWX models where the lighting mode was specified using one or more uppercase letters(Like on the mailbox model)
- Fixed incorrect camera orientation when looking up and down in Direct3D mode
Version 0.3.2
Released July 4 2010
- Fixed possible(very likely) crash when deselecting a newly created object.
Version 0.3.1
Released July 3 2010
- Renderer abstracted from other code
- Support for multiple renderers
- Direct3D 9 Renderer
- Vertex buffers are used for in-world objects.
- Mesh data shared between objects.
- Fixed materials on RWX models that did not specify any materials
- Fixed incorrect tags on RWX models that specify tags for a single face.
- Axis aligned RWX models(mostly trees)
- Restore previous material after ProtoInstance(black borders around doors and windows like pw01.rwx)
- Support for worlds over 10x10 km in size(500 cells in each direction)
- Support for worlds with over 10000 objects
- Objects dynamically added to and removed from collision world
- Support for gzipped object files, even when they end in .zip like on some object paths.
- Less out of control walking speed
- Repeating ground object
- Automatic view distance
- Adjustable fixed view distance
- World welcome messages
- Aligned chat messages in Qt(used for Windows and Linux) version
- Support for colored messages in Qt(used for Windows and Linux) version, used for welcome messages
- Fixed crash while logging in to world after switching world a few times(dangling pointer)
- Fixed crash when deleting data about a texture that failed to load
- Fixed aspect ratio on user name tags
- Smiley face placeholder for avatars :-)
Versions 0.2.x
Version 0.2.13
Released 28th December 2009
- Added particle emitter.
- First load nearby cells before loading distant ones.
- Added object depth sorting.
Version 0.2.12
Released 20th December 2009
- Fixed bug where the program would hang when changing worlds on Windows(bug was introduced in 0.2.11)
- Empty chat messages are no longer sent on Windows and Linux.
Version 0.2.11
Released 14th December 2009
- Fixed loading transparent textures on Mac OS X
- Added support for double-sided faces for RWX files.
- Fixed opacity on some RWX models.
- Fixed possible crash when deleting texture from wrong thread.
Version 0.2.10
Released 30th November 2009
- Windows GUI rewritten, lots of changes there.
- Enabled alpha testing so you can see through the (fully) transparent parts of a texture
- Fixed crash in Lua script
- Rotating objects using scroll wheel in Windows
- Fixed collision for Milkshape3D(.ms3d) files
- Fixed hang on big endian machines(like PowerPC macs)
- Fixed possible memory leak in JPEG loading code for Mac OS X
- Updated Bullet Physics engine to 2.75
- Added Lua dependency to Debian package.
Version 0.2.9
All operating systems:
- Friend list
- Lua scripts on objects
- Show warning messages when connection is lost
- Home world is read from config file
- Fog world settings
- Fixed crashing when leaving a world with Milkshape3D models
Linux(GTK):
- World list updates instead of adding new items for every change.
Mac OS X:
- Fixed crash when closing and reopening toolbox/tabs window
- Toolbox window using selectable toolbar instead of tab control
- World list updates instead of adding new items for every change.
- Script editor with basic highlighting
Windows:
- Fullscreen mode
- Fixed error messages to show error codes again
Version 0.2.8
All operating systems:
- Writing to sockets is buffered
- Fixed crash when deleting rigid body without collision shape.
- Fixed crash due to double delete when removing a just created object from the scene.
- Partial support for MS3D files again, this time with animation. You just can't control the animation yet.
- Flying works again.
- Added support for some world settings.
- 3D sound actually comes from the right place now(the object location).
Linux(GTK):
- Created installable deb package.
Mac OS X:
- Disabled color correction on textures done by the system.
Windows
- Fixed crash when selecting object with incorrect timestamp.
- Fixed lag/hang when building.
- Fixed typing K or M in chat while the 3D view has focus.
- Fixed crash when clicking an object while VP is loading.
- Fixed lag when clicking an object.
- Load JPEG files with CImage instead of libjpeg.
- Removed dependency on pthreads-win32.
- Moved sockets to main thread.
- Added icon to executable.
- Error messages instead of numbers on login.
Version 0.2.7
All operating systems:
- Non-blocking sockets.
- Textures load on different thread.
- Avatars are now removed when you leave the world.
- 3-axis rotation
- Sound using OpenAL and Ogg Vorbis
- Object click now gets sent to server for use with bots.
- Added picture command for loading textures on locations other then the object path.
- Download 3 files at the same time.
Mac OS X:
- Fixed JPEG loading errors for some files.
Windows
- Copy/paste for text now works.
- Colored, bold and italic text support in the chat Window, but not actually used for chat.
- Added tab stop to chat window so the chat looks better and is more readable.
Version 0.2.6
All operating systems:
- Fixed a bug in the vertex buffers that made VP crash on most systems.
- Use ray picking for selecting objects instead of the GL_SELECT render mode, which caused problems with many graphics cards.
Version 0.2.5
All operating systems:
- Works with new world server.
- Show errors when changing an object fails.
- Objects reset to their original properties when changing an object fails.
- Automatically create object cache folder.
- Use vertex buffer objects when available.
- Fixed crash when DNS lookup for server fails.
Linux(GTK):
- Use system font DejaVu Sans when available.
Version 0.2.4
All operating systems:
- Rotating multiple selected objects now works.
- Some minor memory leaks fixed.
- Object properties don't get overwritten when multiple objects with different properties are selected.
- Build window changes depending on the type of object that's currently selected, but there is only one type at the moment.
Linux(GTK):
- Added working world list.
Mac OS X:
- Sockets now run on the main thread.
- Separate login window instead of login sheet on top of the main window.
- Added DMG installer.
Windows:
- Fixed bug where the background of the chat window was not repainted.
Version 0.2.3
All operating systems:
- Added collision detection.
Linux(GTK):
- GUI is now usable. Moving around, chatting and building work.
- Now works with NVidia graphics drivers.
Mac OS X:
- Added working build window.
Windows:
- Added the possibility to type chat messages while the 3D view is selected.
- New look for tabs window.
- Fixed bug that prevented names from showing up in chat.
- Themed border for chat display.
- Added user id of object owner to the object properties window.
Older versions
Information about older versions is not available.