The Wine development release 1.1.33 is now available.

What's new in this release (see below for details):
  - Gecko now installed at wineprefix creation time.
  - Better support for certificates in crypt32.
  - Improved sound support in mciwave.
  - Some more Direct3D 10 functions.
  - Many cleanups for issues spotted by Valgrind.
  - Various bug fixes.

The source is available from the following locations:

  http://ibiblio.org/pub/linux/system/emulators/wine/wine-1.1.33.tar.bz2
  http://prdownloads.sourceforge.net/wine/wine-1.1.33.tar.bz2

Binary packages for various distributions will be available from:

  http://www.winehq.org/site/download

You will find documentation on http://www.winehq.org/site/documentation

You can also get the current source directly from the git
repository. Check http://www.winehq.org/site/git for details.

Wine is available thanks to the work of many people. See the file
AUTHORS in the distribution for the complete list.

----------------------------------------------------------------

Bugs fixed in 1.1.33:

   2329  DrawText() with DT_CALCRECT incorrect in MM_HIENGLISH mode
   5395  Windows Vista Upgrade Advisor beta won't install
   6208  Diamond Mind Baseball used to work now does not
   6481  Bada janggi korean chess application hangs
   8436  Port Royale II - Crashes at start-up
   9575  IBExpert need windows native ole32.dll to run
   9682  NVDVD fails to start due to saxxml error
   9856  winecfg freezes when alt+ certain keys are pressed in certain places
   9895  Alzip crashes: Invalid float operation
  11423  Canon Digital Photo Professional (DPP) upgrader crash
  12003  foobar2000-0.9.4.4 status bar not updated
  12074  The conformance tests fail on Windows
  12297  Movie Magic Screenwriter 6: Initialization Error requiring installation of a device driver
  12453  Bad performance in Source based games
  12578  err:mshtml:init_xpcom NS_InitXPCOM2 failed: 80004005 in htmlhelp
  12721  Various cygwin executables fail with Exception: STATUS_ACCESS_VIOLATION
  13029  winetest should make it possible to just extract the individual tests
  13100  Sanitarium - D3D fails to create DIB section and page fault
  13345  Mr Robot: silently fails to start
  13488  pixel shader does not work after update
  13571  Direct-buy & play tool for EA games does not work
  13630  Crash when clearing ie6 cache - needs FreeUrlCacheSpaceA
  13647  DSM Plugin for UltraVNC 1.0.4 Doesn't Work
  13822  Excel 2002/2003/2007 can't save over OpenOffice created files. A "Disk full" error message appears.
  13948  Glossomatheia crashes on startup
  14427  widl crashes in dlls/rpcrt4
  14541  WinExec() fails when starts Unix binaries
  15036  'Gift' game crash with a D3D/OpenGL error
  15060  MCI_WAVE_SET_SAMPLESPERSEC not implimented, patch (needs cleanup)
  15272  Pipes (PeekNamedPipe, NtQueryInformationFile) crash Wine
  15367  "Using help" or "Help on help"  crashes winhlp32
  15421  go.exe does not work
  15469  windows in a virtual desktop only get keyboard focus when the mouse is on them
  15599  S.T.A.L.K.E.R. - no sound with OpenAL
  15706  iphplapi: iphplapi.ok test fails in OpenSolaris but not Ubuntu
  15755  Some applications do not correctly detect administrative privileges
  15839  Games for Windows Live fails to initialize, resulting Fallout 3 crash
  15935  Carbide c++ 1.3 crashes
  16202  Counter-Strike 1.6 makes wineserver run busy
  16688  tests/rsaenh: array size smaller than bound length
  16939  NASA WorldWind renders everything black, unless ran with native oleaut32.
  17034  IBExpert hung up with wine gecko 0.9.0
  17412  oleaut32/tmarshal tests fail with +heap enabled
  18092  Race Driver: GRID - not rendered correctly
  18112  Long time play of Assasine's Creed Ver. 1.02
  18134  Drawing artifact in Lotus Notes 5.0.10
  18139  WineD3D: add version information to DLL
  18168  cmd fails when passing environment variables in a batfile
  18183  Crazy Machines with CD-ROM: no mouse, no exit
  18264  AutoCAD 2008: QuickCalc doesn't show up
  18337  CertVerifyCertificateChainPolicy doesn't implement CERT_CHAIN_POLICY_SSL
  18636  All source games crash on exit
  18711  Digsby pagefaults when accessing Preferences => Skins
  18743  UltraEdit setup: Some text is hidden
  18861  GameZone Downloader: Window is partly blacked-out
  19031  Alpha Centauri failes with GLXBadDrawable/X_GLXMakeCurrent
  19352  Windows Live Messenger 2009 installer doesn't start
  19383  [Monkey Island Special Edition] Version Hotswap does not work
  19391  HxD hides a List
  19450  Notation Composer: toolbar and menu icons missing or white
  19489  WinHttpSendRequest does not support empty string ("") as headers argument
  19490  WINHTTP_QUERY_VERSION not implemented in WinHttp query_headers()
  19878  TrackMania UnitedForever - mouse does not work
  19931  winedbg crashes entering an infinite self-launch loops
  19948  Starscape OpenGL mode - screen stays black
  20160  iexplore: automatic gecko installer crashes
  20201  winetest64 no longer runs on 64-bit wine
  20227  msi: Table Join on two tables that have same (non-join) column name causes only first column data to be returned.  (Affects Visual Studio 2008 Standard Edition.)
  20263  Fifa 09 Demo crash while starting
  20348  Cannot install Mirror's Edge
  20353  chromium ipc_tests.exe fails when KERNEL32.GetQueuedCompletionStatus() hangs on peer disconnect of named pipe?
  20358  chromium's base_unittests.exe fails on RSAPrivateKeyUnitTest.*
  20371  SolidWorks 2008: Installation fails
  20417  Uninstall software list
  20452  Particle Systems' Pog Compiler crashes when outputting debug info
  20477  Dragon NaturallySpeaking MSI installer fails
  20503  ref counting bug in crypt32
  20518  winetest-1.1.32 Can't enumerate test files: 998 after refusing to install Gecko
  20523  Installing Internet Explorer fails due to problem in setupapi
  20567  Uninitialised memory reference in RSAENH_CPImportKey
  20619  chromium's unit_tests.exe's RenderViewTest.PrintLayoutTest fails with FATAL:image.cc(211)] Check failed: rect.x() == 0 (-1 vs. 0)
  20626  Chromium's unit_tests.exe's DownloadManagerTest.TestDownloadFilename fails
  20627  chromium's base_unittests's StackTrace.OutputToStream fails (RtlCaptureStackBackTrace unimplemented)
  20641  Problems loading dispatch and dual types in SLTG TypeLibs
  20642  Installing codecs fails due to insufficient administrator rights

----------------------------------------------------------------

Changes since 1.1.32:

Alexander Nicolaysen Sørnes (3):
      include: Add defines for GetProductInfo.
      ntdll: Add RtlGetProductInfo stub.
      kernel32: Implement GetProductInfo on top of ntdll stub.

Alexandre Julliard (51):
      winetest: Refuse to submit results if we are using native dlls.
      ole32: Specify the full application path when starting rpcss.exe.
      rpcrt4: Specify the full application path when starting rpcss.exe.
      shell32: Specify the full application path when starting winemenubuilder.exe.
      shdocvw: Specify the full application path when starting winemenubuilder.exe.
      user32: Specify the full application path when starting builtin apps.
      explorer: Specify the full application path when starting winefile.exe.
      oleview: Specify the full application path when starting regedit.exe.
      shdocvw: Specify the full path to iexplore.exe.
      wine.inf: Specify the full path to iexplore.exe and winemenubuiler.exe.
      setupapi: Create fake dlls before performing dll registration.
      kernel32: Make GetQueuedCompletionStatus return failure for I/O errors, as per MSDN.
      libwine: Reserve some low memory space even without a preloader.
      ntdll: The meaning of the flag is inverted between RtlWow64EnableFsRedirection and RtlWow64EnableFsRedirectionEx.
      kernel32: Specify the full application path when starting wineboot.exe.
      kernel32: Add a structure to store all the information about an executable.
      kernel32: Retrieve the executable information as soon as we open the file.
      kernel32: Set the 64-bit flag for builtin executables based on their load directory.
      libwine: Fix handling of precision argument in vsnprintfW.
      kernel32/tests: Add some tests for width and precision formatting in FormatMessage.
      kernel32: Reimplement the formatting of inserts in FormatMessageA.
      kernel32: Reimplement the formatting of inserts in FormatMessageW.
      kernel32: Propagate the error result from RtlFindMessage in FormatMessage.
      kernel32: Fix handling of width and precision arguments and remove assumptions about va_list implementation in FormatMessage.
      kernel32/tests: Use __ms_va_list in the FormatMessage test.
      kernel32: Replicate the MS bug with va_list argument counting in FormatMessage.
      kernel32/tests: Fix FormatMessage test failures on various Windows versions.
      kernel32: Make sure the codepage registry keys are set correctly on wineprefix creation.
      setupx: Use the correct field index for string substitutions.
      wia: Force specifying the correct header version in Wine code.
      ntdll: Reject VirtualAlloc blocks in NtUnmapViewOfSection.
      gdi32: Don't update the metafile bounding box in ExtTextOut if there's no rectangle.
      ntdll: Moved RtlCaptureStackBackTrace stub to the cpu-specific files.
      ntdll: Implemented RtlCaptureStackBackTrace for i386.
      mshtml: Move some Content-Type registry keys to mshtml.inf.
      mshtml: Register a few more MIME types.
      comdlg32: Reimplement the 16-bit font dialog on top of the 32-bit one.
      comdlg32: Reimplement the 16-bit print dialog on top of the 32-bit one.
      comdlg32: Reimplement the 16-bit color dialog on top of the 32-bit one.
      comdlg32: Reimplement the 16-bit file dialog on top of the 32-bit one.
      comdlg32: Create a 32-bit dialog for find/replace.
      comdlg32: Make commdlg.dll into a stand-alone 16-bit module.
      winmm: Use PeekMessageW instead of UserYield.
      mmsystem: Use PeekMessageW instead of UserYield.
      kernel32: Use PeekMessageW instead of UserYield.
      user32: Reimplement UserYield using PeekMessageW.
      user32: Move driver support to mmsystem and replace it with stubs in user.exe.
      ctl3d: Stub out Ctl3dDlgFramePaint16 to avoid calling DefWindowProc16.
      user32: Reimplement DefDlgProc16 using message mapping functions.
      user32: Use the correct type for the return value of DefDlgProcA/W.
      user32: No longer export the 16-bit dialog and message functions.

Andrew Eikum (1):
      mshtml: Fix typo in TRACE.

André Hentschel (7):
      ntdll: Stub for RtlNumberGenericTableElements.
      ntdll: Implement KeyNameInformation.
      appwiz: Ignore apps without title in the list.
      msvcrt: Do not overlap in strcpy (Valgrind).
      ws2_32: Fix a comment.
      ws2_32/tests: Test for initial state of SIOCATMARK.
      jscript: Update German translation.

Aric Stewart (1):
      msctf/tests: Handle an occasional unexpected SetFocus from wine.

Aurimas Fišeras (2):
      cryptui: Fix Lithuanian translation.
      jscript: Update Lithuanian translation.

Austin English (5):
      configure: preloader is Linux specific, don't build it elsewhere.
      ntdll: Add support for Windows 7 version.
      mshta: Add a stub program.
      wininet: Add stubs for FreeUrlCacheSpace.
      wined3d: Add version resource.

Chris Robinson (1):
      openal32: Use the correct prototype for function pointers.

Damjan Jovanovic (6):
      wia: Add rudimentary wia headers.
      sti: Marshal WIA COM interfaces.
      wiaservc: Add wiaservc.dll and implement its svchost entrypoint.
      wiaservc: Add the class factory and IWiaDevMgr stubs.
      wiaservc: Add self registration.
      winemenubuilder: Escape XML special characters in MIME types.

Dan Kegel (3):
      crypt32/tests: CryptUnprotectData: test zero-length payload.
      user32: Fix uninitialized variable so first call to DdeGetLastError isn't undefined.
      wininet: FTP_FtpOpenFileW: initialize dwInternalFlags.

Detlef Riekenberg (2):
      msi/tests: MsiSetExternalUIRecord not present before Installer 3.1.
      ntdll/tests: GetVolumePathnameW is not present before w2k.

Dmitry Timoshkov (2):
      msi: Limit the progress to its maximal value, use MulDiv for better results.
      msi: Add support for msidbControlAttributesProgress95.

Eric Pouech (11):
      msvfw32: Remove 16bit driver references (now that they no longer exist in winmm).
      winedump: Ensure all PDB fields are printed.
      winedump: Correctly handle the constant fields.
      winedump, dbghelp: In .pdb files (>= VC2005), handle the case where the codeview_linetab2_file structure is not the first one.
      mmsystem.dll16: Fix the callback function.
      richedit: Only increment objects' reference by one when inserting an OLE object.
      richedit: When inserting an OLE object from an RTF stream, don't force update as the stream is not fully read.
      winhlp32: Added support for macros as hotspots' target.
      winedbg: In proxy mode, correctly init the wine_segs fields.
      mmsystem.dll16: Correctly send messages up to winmm.dll.
      dbghelp: Fix the threads stream size.

Erich Hoover (1):
      wineconsole: Fix Alt+F10 sent when F10 pressed.

Francois Gouget (9):
      winapi_check: Add support for the new architectures in the spec files.
      mmsystem.dll16: Reorder the thread and time functions to avoid the need for forward declarations.
      mmsystem.dll16: Make MMSYSTEM_MMTIME16to32() static.
      msi/tests: Make the handler_xxx() functions static.
      cryptui: Remove WINAPI on the cert_mgr_sort_by_text() static function that does not need it.
      winmm/tests: Add a trailing '\n' to an ok() call.
      winmm: WINMM_CheckForMMSystem() is not used, remove it.
      mshtml/tests: Fix a trailing '\n' in an ok() call.
      Assorted spelling fixes.

Frédéric Delanoy (1):
      jscript: Update French translation.

Gerald Pfeifer (1):
      winex11: Handle error situation earlier in X11DRV_GetDIBits().

Hans Leidekker (24):
      wininet: Avoid accessing uninitialized memory.
      winhttp: Implement HTTP_OPTION_PARENT_HANDLE for connection handles.
      wininet: Avoid accessing uninitialized memory in ConvertUrlComponentValue.
      wininet: Avoid accessing uninitialized memory in HttpSendRequestExW.
      winhttp: Clean up locks after closing libssl and libcrypto.
      wininet: Clean up locks after closing libssl and libcrypto.
      msi/tests: Fix a couple of user SID string leaks.
      msi: Avoid accessing uninitialized memory in ACTION_AppSearchReg.
      ws2_32: Avoid accessing uninitialized memory in GetAddrInfoW.
      ws2_32: Add a test for GetAddrInfoW.
      winhttp: Accept empty headers parameter in WinHttpSendRequest.
      winhttp: Implement WinHttpQueryHeaders(WINHTTP_QUERY_VERSION).
      msi: Add support for the Unicode version of the global UI handler.
      msi: Unicode and ANSI global UI handlers are mutually exclusive.
      msi: Implement MsiSetExternalUIRecord.
      rpcrt4: Correct spelling of RPC_C_QOS_IDENTITY_STATIC and RPC_C_QOS_IDENTITY_DYNAMIC.
      rpcrt4: Add a test for the ncalrpc protocol sequence.
      ole32: Return success from OleLockRunning when the object does not support IRunnableObject.
      include: Add protocol sequence constants.
      rpcrt4: Implement RpcBindingInqAuthClient{, Ex}.
      rpcrt4: Implement RpcBindingInqAuthInfo{, Ex}.
      rpcrt4: Add tests for RpcBindingInqAuthInfo.
      msi: Handle environment strings without a value.
      msi: Test more variations of environment string prefixes.

Henri Verbeet (44):
      wined3d: Remove a redundant ActivateContext() call.
      wined3d: Add a separate structure for driver info.
      wined3d: Refuse to parse shaders with an invalid version token.
      wined3d: Fix a typo.
      wined3d: Print an ERR instead of crashing in context_check_fbo_status().
      wined3d: Store PCI IDs in wined3d_driver_info instead of wined3d_gl_info.
      wined3d: Apply PCI ID overrides in init_driver_info() instead of IWineD3DImpl_GetAdapterIdentifier().
      wined3d: Set a driver name appropriate for the vendor in init_driver_info().
      wined3d: Restore the wglMakeCurrent() call in context_destroy_gl_resources().
      wined3d: Restore the thread's previous GL context in WineD3D_ReleaseFakeGLContext().
      wined3d: Restore the thread's previous GL context in context_destroy_gl_resources().
      wined3d: Keep better track of where we're using wined3d contexts.
      wined3d: Call context_release() for wined3d contexts made current by context_create().
      wined3d: Restore the thread's GL context on context_release() if it wasn't created by wined3d.
      wined3d: Rename DestroyContext() to context_destroy().
      wined3d: Remove some unused GLINFO_LOCATION definitions.
      wined3d: Introduce a separate structure for various OpenGL implementation limits.
      wined3d: Get rid of the GL_SUPPORT macro.
      wined3d: directly pass gl_info to stream_info_element_from_strided().
      wined3d: Don't depend on uninitialized data in the CreateSurface() thunks (Valgrind).
      wined3d: It's not an error to request multisampling.
      wined3d: Map D3DFMT_D24S8 to WINED3DFMT_D24_UNORM_S8_UINT.
      d3d10core: Add a separate function for d3d10_geometry_shader initialization.
      d3d10core: Add a separate function for d3d10_rendertarget_view initialization.
      d3d10core: Fix a small whitespace error.
      d3d10core: Add a stub ID3D10DepthStencilView implementation.
      d3d10core: Add a stub ID3D10ShaderResourceView implementation.
      d3d10core: Add a stub ID3D10DepthStencilState implementation.
      d3d10core: Add a stub ID3D10RasterizerState implementation.
      d3d10core: Add a stub ID3D10SamplerState implementation.
      d3d10core: Add a stub ID3D10BlendState implementation.
      d3d10: Add a D3D10GetVertexShaderProfile() stub.
      d3d10: Add a D3D10GetGeometryShaderProfile() stub.
      d3d10: Add a D3D10GetPixelShaderProfile() stub.
      wined3d: Initialize "context[0]" in IWineD3DDeviceImpl_CreateSwapChain() when not using OpenGL (Valgrind).
      d3d8/tests: Only run the vertex/pixel shader constant apply tests when the implementation supports them.
      d3d8/tests: Don't require dynamic usage for textures in the stateblock tests.
      d3d9/tests: Don't require dynamic usage for textures in the stateblock tests.
      wined3d: Report a driver version appropriate for the reported OS.
      server: Store the Unix name in the fd.
      ntdll: Implement the FileNameInformation class for NtQueryInformationFile().
      ntdll/tests: Add some tests for the NtQueryInformationFile() FileNameInformation class.
      ntdll: Fix the FileNameInformation info size.
      wine.inf: Create the mui directory.

Huw Davies (31):
      rpcrt4: Move the full pointer table init to after a potential call to NdrServerInitializeNew().
      widl: Add support for parsing the annotation attribute.
      include: Remove comments around annotation attributes.
      include: Flesh out dbs.idl a bit.
      include: Add access.idl.
      msdaps: Implement CreateAccessor Proxy and Stub.
      msdaps: Implement ReleaseAccessor Proxy and Stub.
      include: Add cmdbas.idl.
      include: Add cmdtxt.idl.
      msdaps: Implement SetCommandText proxy and stub.
      include: Add rstinf.idl.
      msdaps: Implement IRowsetInfo_GetProperties proxy and stub.
      oledb32: Add CanConvert support for DBTYPE_FILETIME.
      oledb32: Add a couple of conversions to DBTYPE_FILETIME.
      oledb32: Add a few simple conversions to DBTYPE_GUID.
      oledb32: Add some conversions to DBTYPE_UI1.
      oledb32: Add some conversions to DBTYPE_UI4;.
      oledb32: Add some conversions to DBTYPE_R4.
      oledb32: Add some conversions to DBTYPE_CY.
      oledb32: Add some conversions to DBTYPE_UI8.
      include: Add rstbas.idl.
      include: Add rstloc.idl.
      include: Add row.idl.
      include: Add rowchg.idl.
      oledb32/tests: Fix some failing tests on win98.
      ntdll/tests: Fix spelling of succeeded.
      include: Add asynot.idl.
      include: Add asysta.idl.
      msctf: Correctly initialize the description field.
      msctf/tests: Don't convert past the end of a nul terminated string.
      gdi32/tests: Test the return value of GetClipBox before trying to access the rect.

Ilya Shpigor (3):
      extrac32: Add command-line parsing.
      user32: Fix switching focus to parent after child hiding.
      extrac32: Implementation of the CAB archive extraction.

Jacek Caban (41):
      mshtml: Fail to create HTMLDocument if Gecko is not available.
      mshtml: Store window reference in nsURI.
      mshtml: Use HTMLWindow in AsyncOpen implementation.
      mshtml: Moved bscallback to HTMLWindow.
      mshtml: Moved url and mon to HTMLWindow.
      mshtml: Allow task queue to be used for different targets.
      mshtml: Moved binding list to HTMLDocumentNode.
      mshtml: Moved nsIDOMEventListener implementations to HTMLDocumentNode.
      mshtml: Moved event_vector to HTMLDocumentNode.
      mshtml: Avoid crash in nsIURI:Equals if other_url is NULL.
      mshtml: Added HTML frames support.
      jscript: Store a copy of code in parser_ctx_t.
      mshtml: Improve debug traces.
      mshtml: Inherit scriptmode from parent window.
      mshtml: Added IHTMLDOMNode::nextSibling implementation.
      jscript: Pass global object as this if 'this' argument is null or undefined in Function.call.
      jscript: Pass global object as this if 'this' argument is null or undefined in Function.apply.
      mshtml: Moved whole element initialization to HTMLElement_Init.
      mshtml: Moved IHTMLFrameBase to separated object to allow sharing implementation with HTMLFrame.
      mshtml: Store content window on HTMLIFrameElement creation.
      mshtml: Moved content_window to HTMLFrameBase.
      mshtml: Associate HTMLWindow with HTMLIFrame.
      mshtml: Added HTMLFrameElement object and associate it with frame window.
      mshtml: Return NS_OK for empty aRef in nsIURL::SetRef.
      mshtml: Added InvokeEx(DISPATCH_PROPERTYPUT|DISPATCH_PROPERTYPUTREF) implementation.
      mshtml: Added fdexNameCaseInsensitive support.
      mshtml: Don't create dynamic property if alloc arg is false.
      mshtml: Moved global property allocation to separated function.
      mshtml: Added support for accessing elements id by global properties.
      mshtml: Return NULL ownerDocument for document node.
      mshtml: Moved readystate changes to separated function.
      mshtml: Handle EndLoad via script runner.
      mshtml: Moved add_script_runner call to push_mutation_queue.
      mshtml: Moved readystate to HTMLWindow.
      jscript: Don't return function value it's unless explicitly returned.
      mshtml: Split parse_complete to handle_load and mutation observer.
      mshtml: Correctly handle NULL nschannel in channelbsc_load_stream (Coverity).
      mshtml: Get rid of no longer needed bind_complete in set_moniker.
      mshtml: Moved GeckoUrl registry to mshtml.inf.
      mshtml: Download Gecko in DllRegisterServer.
      mshtml: Update description in Gecko installer dialog.

Jeremy White (4):
      oleaut32: StructArg tests cannot rely on an unpacked structure memcmp.
      oleaut32: Implement the ability to marshall VT_CARRAY's of user defined types.
      advapi32/tests: Prevent test failure when computer name and user name are the same.
      advapi32/tests: Only release providers and free keys if we've had success creating them.

Jerome Leclanche (2):
      msvcirt: Implement MSVCIRT_operator_sl_callback.
      msvcirt: Make sure a FIXME doesn't overflow.

Juan Lang (126):
      crypt32: Move tracing of key usage extension to common extension tracing location.
      crypt32: Fix a test failure on systems with no c: drive.
      cryptui: Support sorting columns by clicking on their headers.
      cryptui: Sort certificates by subject name by default.
      cryptui: Display <None> for a cert's friendly name if no friendly name property is set.
      crypt32: Trace enhanced key usage extension.
      crypt32: Trace cert policies extension.
      crypt32: Trace name constraints extension.
      crypt32: Trace the alt name extensions.
      crypt32: Accept either the subject alt name 2 or subject alt name extensions, and prefer the former when both are present.
      crypt32: Correct a prototype.
      crypt32: Trace directory name of alt name entries.
      crypt32: Trace netscape cert type extension.
      crypt32: Support IPv6 addresses in name constraint comparison.
      crypt32: Add the Google website's cert to tests.
      crypt32: Allow the caller of checkChainPolicyStatus to specify the date to test with and additional policy parameters.
      crypt32: Add some tests of the SSL policy.
      crypt32: Implement CertVerifyCertificateChainPolicy for CERT_CHAIN_POLICY_SSL.
      cryptui: Fix German translation.
      crypt32: Add basic constraints and key usage to chain0_0.
      crypt32: Add basic constraints and key usage to chain2_0.
      crypt32: Add basic constraints and key usage to chain5_0.
      crypt32: Add basic constraints and key usage to chain8_0.
      crypt32: Add basic constraints and key usage to chain12_0.
      crypt32: Add basic constraints to chain14_0.
      crypt32: Add basic constraints to chain15_0.
      crypt32: Remove redundant if clause.
      crypt32: Add basic constraints to chain quality selection algorithm.
      crypt32: Only permit v1 or v2 CA certificates without a basic constraints extension if they're installed locally.
      crypt32: Add key usage extension to chain4_0.
      crypt32: Use a helper function to find an existing cert by hash.
      crypt32: Only permit v1 or v2 CA certificates without a key usage extension if they're installed locally.
      crypt32: Check CA certificates for the enhanced key usage extension.
      crypt32: Create a V1 certificate if it doesn't have extensions.
      crypt32: Trace policy error status in CertVerifyCertificateChainPolicy.
      crypt32: Partially implement CryptBinaryToStringW.
      crypt32: Add support for the CRYPT_STRING_NOCRLF flag to CryptBinaryToStringA/W.
      crypt32: Trace contents of CERT_CHAIN_PARA.
      crypt32: Allow errors in locally installed root certs.
      crypt32: Abstract function used to read from reading a serialized store.
      crypt32: Support reading a serialized store object from memory in CryptQueryObject.
      crypt32: Fix a memory leak querying a message object.
      crypt32: Fix a memory leak reading trusted root certs.
      crypt32: Fix a memory leak in a test.
      crypt32: Add stub for CryptGetIntendedKeyUsage.
      crypt32: Correct spec entries for certificate stores.
      rsaenh: Test exporting an RSA private key with the most significant bit set.
      crypt32: Add tests for CertGetIntendedKeyUsage.
      crypt32: Implement CryptGetIntendedKeyUsage.
      crypt32: Add stub for CertAddCertificateLinkToStore.
      crypt32: Implement CertAddEncodedCertificateToSystemStoreA/W.
      wintrust: Only close a file in SoftpubCleanup if the WINTRUST_DATA contains a WINTRUST_FILE_INFO.
      crypt32: Add return value to Context_Release to allow detecting reference counting errors.
      crypt32: Propagate errors from CertFree*Context to CertDelete*FromStore.
      crypt32: Correct reference counting when deleting contexts from collections.
      crypt32: When removing contexts from a list, make sure the context no longer references the list.
      crypt32: When add-ref'ing a context, add-ref its linked contexts too.
      crypt32: When creating a link context, call Context_AddRef to add-ref it so its children get add-ref'd too.
      crypt32: Release a link context's linked context on every release, not just when it reaches 0.
      crypt32: Trace whenever a reference count changes, and change default debug channel to quiet the main crypt channel.
      crypt32: Add an error if the ref count is invalid when releasing a context.
      crypt32: Don't delete a context when removing it from a list.
      crypt32: Release contexts when removing them from the mem store.
      crypt32: Rename a function to reflect its behavior better, and return whether it succeeds.
      crypt32: Eliminate a double free in the tests.
      crypt32: Add tests of committing a collection store.
      crypt32: Add an implementation of CertControlStore for memory stores.
      crypt32: Implement CertStoreControl for collection stores.
      crypt32: Fix a test failure on NT 4.
      wintrust: Fix a test failure on Win2008.
      crypt32: Don't copy past end of buffer when removing the last string in a multistring.
      crypt32: Add a warning if a store's ref count is invalid.
      crypt32: Don't free a file store's mem store, it's already freed by the provider store.
      cryptui/tests: Remove a double free.
      cryptui/tests: Fix typos.
      rsaenh: Explicitly clear unused memory when exporting a private key.
      rsaenh: Explicitly clear unused memory when exporting a public key.
      rsaenh/tests: Add round-trip test of RSA.
      rsaenh: Only reverse the significant bytes of an exported private key.
      rsaenh: Only reverse the significant bytes of an exported public key.
      crypt32: Permit lack of key usage extension on root certificates.
      crypt32: Permit lack of basic constraints extension on root certificates.
      crypt32: Add more tests of cert encoding/decoding.
      crypt32: Fix encoding cert issuer/subject unique ids.
      crypt32: Fix decoding cert issuer/subject unique ids.
      crypt32: Add tests for encoding/decoding cert policy mappings.
      crypt32: Implement encoding cert policy mappings.
      crypt32: Implement decoding cert policy mappings.
      crypt32: Add tests for encoding/decoding cert policy constraints.
      crypt32: Implement encoding cert policy constraints.
      crypt32: Implement decoding cert policy constraints.
      crypt32: Fix test failures on Win9x/NT4.
      wincrypt.h: Define szOID_INHIBIT_ANY_POLICY.
      crypt32: Fix decoding unicode names when CRYPT_DECODE_ALLOC_FLAG is not specified.
      crypt32: Fix decoding names when CRYPT_DECODE_ALLOC_FLAG is not specified.
      crypt32: Forbid minimum or maximum fields in name constraints.
      crypt32: Reject certificates whose fields don't match their versions.
      crypt32: Test encoding and decoding name values with embedded NULLs.
      crypt32: Test decoding alternate names with embedded NULLs.
      crypt32: Disallow embedded NULLs in alternate names.
      crypt32: Test more chains against different policies.
      crypt32: Add more tests of name constraints.
      crypt32: Check the issued certificate for name constraint violations, not the issuing certificate.
      crypt32: Correct error when the subject alternate name can't be decoded.
      crypt32: Use helper function to find the subject alternate name extension wherever it's needed.
      crypt32: Correct error when a constrained, permitted name type isn't found in the subject name.
      crypt32: Update a comment to reflect a fixed vulnerability.
      rsaenh/tests: Fix some test failures.
      crypt32: Fix some test failures on older crypt32 versions.
      crypt32: Fix test failures across Windows versions.
      rsaenh/tests: Fix a couple typos.
      crypt32: Trace cert version.
      crypt32: Stop reading a serialized store if a non-context prop ID appears before a context prop ID.
      crypt32: Correct error when a matching name constraint is found.
      crypt32: Fix test failures on multiple Windows versions.
      crypt32/tests: Fix test failures.
      crypt32: Fix more test failures on older crypt32 versions.
      crypt32: Fix more test failures on older crypt32 versions.
      rsaenh/tests: Fix length of copied buffer.
      crypt32: Add openssl.org's cert to the tested chains.
      crypt32: Test matching a certificate with a wildcard in its name.
      crypt32: Implement matching a certificate with a wildcard in its name.
      crypt32: Use broken() to mark an expected result from a broken version of crypt32.
      crypt32: Add tests for cs.stanford.edu's chain.
      crypt32: Accept any matching dNSName in a subject alternate name.
      crypt32: Fix test failures.

Jörg Höhle (29):
      mciwave: Pause/resume is not accepted from every state.
      mciwave: Do not lie about state when winmm fails in Pause or Resume.
      mciwave: Do not transition via Resume from Record into Play.
      mciwave: Send notification after everything else.
      winmm: Time formats hms/tmsf use leading zeroes as in 00:00:00.
      mciwave: Fix wave format first, then compute position.
      mciwave: Default wave format is 11025x8x1.
      mciwave: Update message and comments.
      mciwave: waveaudio does not support the shareable flag.
      mciwave: Correct MCI return codes.
      winmm/tests: Add MCI waveaudio tests.
      winmm: Do not crash on NULL MCI Sysinfo command output buffer pointer.
      mciwave: Set wave format PCM is the only one accepted.
      mciwave: Allow (again) to set wave format parameters prior to recording.
      winmm/tests: Fix MCI test failure on Win9x/WinME.
      mciwave: Return on error in Seek.
      mciwave: Stop must not reset current position.
      winmm: MCI Close all causes one notification per open driver.
      winmm/tests: Give flaky progress test more time.
      mciwave: Favour return over ExitThread.
      mciwave: Rework MCI notification system.
      mciwave: Implement Cue as no-op.
      mciwave: Allow MCI to Save non-PCM formats, obtained via Open.
      mciwave: Seek stops and rounds position down modulo nBlockAlign.
      mciwave: Play/Record return MCIERR_OUTOFRANGE as required.
      mciwave: Store only slots from OpenParms that we need.
      mciwave: Use the current device ID for notification.
      msg711: Correct wave format parameters to remove stuttering.
      mciwave/tests: Fix a few tests including one hang on Win9X.

Kai Blin (2):
      netapi32: Implement NetUserGetGroups stub.
      secur32: Use empty credentials when cached creds fail.

Ken Thomases (3):
      winex11: Assign OEM virtual key codes in a separate loop.
      winex11: Use a table of available OEM virtual key codes.
      winex11: Allow assigning non-OEM virtual key codes for remaining keys.

Kirill K. Smirnov (1):
      gdiplus: Avoid deleting non-existent object.

Louis Lenders (4):
      wuaueng: Add stubbed wuaueng.dll.
      wuaueng: Add version resource.
      kernel32/tests: Add more tests for FormatMessageA.
      d3d9: Quiet a few noisy fixme's.

Luca Bennati (3):
      cmd: Add Italian translation.
      start: Update Italian translation.
      clock: Update Italian translation.

Maarten Lankhorst (13):
      winealsa.drv: Fix underrun recovery.
      include: Add audiosessiontypes header.
      include: Add some more defines to winerror.h.
      include: Add avrt header.
      include: Add SHCOLSTATE to shtypes.idl.
      include: Add partial structuredqueryexception header.
      include: Add PROPERTYKEY to wtypes.idl.
      include: Add DEFINE_ENUM_FLAG_OPERATORS to winnt.h.
      avrt: Add initial stub implementation.
      include: Fix REFPROPVARIANT definition.
      include: Add propkeydef header.
      avrt: Add stub for Av(Set,Revert)MmThreadCharacteristics.
      include: Add partial propsys header.

Marcus Meissner (7):
      mapi32: Check folder for NULL (Coverity).
      wined3d: Check for NULL before context_release (Coverity).
      ws2_32: Use correct buffer for 17 byte write.
      d3d8: Removed superflous NULL checks (Coverity).
      crypt32: Pass the correct pointer into CertificateFindStore.
      rpcrt4: Compare network options correctly (Coverity).
      mciavi32: Removed duplicate strlen/NULL check (Coverity).

Markus Stockhausen (1):
      ddraw: Avoid memory overwrite in GetDeviceIdentifier().

Matteo Bruni (1):
      d3dx9: Add D3DXAssembleShader tests.

Michael Martin (1):
      kernel32/tests: Additional tests for CopyFile/MoveFile used on mapped files.

Michael Stefaniuc (1):
      mshtml: Free the right variable (Smatch).

Mikey Alexander (1):
      shell32/tests: Add Program Manager DDE conformance tests.

Nate Gallaher (2):
      msi: Add tablename tracking to VIEW_find_column.
      msi: Test that a query on a join of two tables returns data from the correct table.

Nicolas Le Cam (1):
      winmm/tests: Skip tests when running on non-english locale.

Nikolay Sivov (6):
      comctl32/toolbar: Don't leak button strings.
      comctl32/tests: Release Imagelist handles when no needed anymore.
      comctl32/toolbar: Use single handler for TB_SETBUTTONINFOW/TB_SETBUTTONINFOA pair.
      comctl32/toolbar: Use single handler for TB_GETBUTTONTEXTW/TB_GETBUTTONTEXTA.
      comctl32/toolbar: Call handlers in more general way.
      comctl32/treeview: Collapse some message handlers.

Owen Rudge (9):
      mapi32: Use separate pointer for drafts folder when sending via extended MAPI.
      mapi32: Pass several extended MAPI functions through to provider.
      comctl32: Add absolute version of iterator_frameditems.
      comctl32: Move marquee logic into separate function.
      comctl32: Cancel marquee selection if we lose focus in listview.
      comctl32: Add support for scrolling during marquee selection.
      shell32: Add Unicode version of GetFileNameFromBrowse.
      comctl32: Add basic structure for IImageList interface.
      comctl32/tests: Add IImageList creation test.

Paul Bolle (1):
      dbghelp: elf_load_file: return if elf_map_file fails.

Paul Chitescu (7):
      sccbase: Stubs for DllRegisterServer() and DllUnregisterServer().
      mssip32: Stubs for DllRegisterServer() and DllUnregisterServer().
      dssenh: Stubs for DllRegisterServer() and DllUnregisterServer().
      initpki: Stubs for DllRegisterServer() and DllUnregisterServer().
      slbcsp: Stubs for DllRegisterServer() and DllUnregisterServer().
      gpkcsp: Stubs for DllRegisterServer() and DllUnregisterServer().
      crypt32: Check the result of CryptAcquireContextW() when initializing default provider.

Paul Vriens (27):
      advapi32/tests: Add some basic eventlog tests.
      advapi32/tests: Add some input parameter checks.
      advapi32/tests: Cope with empty servername.
      advapi32/tests: Add a input parameter check (CloseEventLog).
      advapi32/tests: Add some GetEventLogInformation tests.
      advapi32: Add a stubbed GetEventLogInformation with input param checking.
      comctl32/tests: Use A-functions.
      advapi32/tests: Add some GetNumberOfEventLogRecords tests.
      advapi32: Add some input parameter checks to GetNumberOfEventLogRecords.
      advapi32/tests: Add some GetOldestEventLogRecord tests.
      advapi32: Add some input parameter checks to GetOldestEventLogRecord.
      advapi32/tests: Add some BackupEventLog tests.
      advapi32: Add some input parameter checks to BackupEventLog.
      advapi32/tests: Add some ReadEventLogA tests.
      advapi32/tests: Add some OpenBackupEventLog tests.
      advapi32: Add some input parameter checks to OpenBackupEventLog.
      ddraw/tests: Fix a test failure on systems with no DirectDraw7.
      advapi32/tests: Add some ClearEventLog tests.
      advapi32: Add a input parameter check to ClearEventLog.
      advapi32/tests: Add some tests for handling a backup file.
      advapi32/tests: Fix a test failure on Vista+.
      advapi32/tests: Run tests on Win9x/WinMe again.
      kernel32/tests: Fix some test failures on Win9x/WinMe.
      shell32/tests: Run tests again on NT4.
      setupapi/tests: Fix some test failures on Win9x/WinMe.
      comctl32/tests: Remove unused parameter.
      advapi32/tests: Add tests for reading and writing to a real eventlog.

Peter Urbanec (1):
      winex11: Implement AlphaBlend mode for the case where SourceConstantAlpha is combined with source alpha.

Piotr Caban (2):
      jscript: Fix Error.toString() test.
      jscript: Throw URIError in encodeURI function.

Rico Schüller (35):
      d3d10: Improve d3d10_variable_type().
      d3d10: Add matrix column major parsing.
      d3d10: Improve parse_fx10_type().
      d3d10: Parse local_variables.
      d3d10: Implement ID3D10Effect::GetVariableByIndex().
      d3d10: Improve ID3D10Effect::GetVariableByName().
      d3d10: Add ID3D10EffectBlendVariableVtbl.
      d3d10: Add ID3D10EffectDepthStencilVariableVtbl.
      d3d10: Add ID3D10EffectRasterizerVariableVtbl.
      d3d10: Add ID3D10EffectSamplerVariableVtbl.
      d3d10: Add ID3D10EffectStringVariableVtbl.
      d3d10: Add ID3D10EffectShaderResourceVariableVtbl.
      d3d10: Add ID3D10EffectRenderTargetViewVariableVtbl.
      d3d10: Add ID3D10EffectDepthStencilViewVariableVtbl.
      d3d10: Add ID3D10EffectShaderVariableVtbl.
      d3d10: Improve set_variable_vtbl().
      d3d10: Fix a HeapFree() in d3d10_effect_Release().
      d3d10: Implement ID3D10EffectVariable::AsString().
      d3d10: Implement ID3D10EffectVariable::AsShaderResource().
      d3d10: Implement ID3D10EffectVariable::AsRenderTargetView().
      d3d10: Implement ID3D10EffectVariable::AsDepthStencilView().
      d3d10: Implement ID3D10EffectVariable::AsConstantBuffer().
      d3d10: Implement ID3D10EffectVariable::AsBlend().
      d3d10: Implement ID3D10EffectVariable::AsDepthStencil().
      d3d10: Implement ID3D10EffectVariable::AsRasterizer().
      d3d10: Implement ID3D10EffectVariable::AsSampler().
      d3d10: Implement ID3D10EffectVariable::AsShader().
      d3d10: Mark annotation variable as annotation.
      d3d10: Improve constant buffer stride and size_unpacked calculation.
      d3d10: Initialize *->buffer for all effect variables.
      d3d10/tests: Add effect variable type and class test.
      d3d10/tests: Add IsValid() checks to effect variable type and class test.
      d3d10/tests: Add GetParentConstantBuffer() checks to effect variable type and class test.
      d3d10/tests: Add constant buffer stride test.
      user32: Add argument check for PTITLEBARINFO in GetTitleBarInfo().

Rob Shearman (26):
      secur32: Output extra data in NTLM sign & seal test to diagnose failures seen on some Windows machines.
      msi: Improve stub for MsiGetFeatureCost{A, W} and hook the stub into the VolumeCostList dialog control.
      winhlp32: Restore the original window proc for the richedit control before freeing the winhelp window memory.
      advapi32: Implement CheckTokenMembership.
      msdaps: Implement IDBProperties_GetProperties_Proxy and IDBProperties_GetProperties_Stub.
      oledb32: Add test for marshalling IDBProperties.
      Revert "widl: A structure that contains an embedded interface ptr in an array is a BOGUS_STRUCT.".
      widl: Enhance the IDL grammar to support unnamed arguments to functions.
      widl: Implement [range] attribute.
      widl: Check for [string] attribute being applied when the elements are ranged.
      widl: Rename set_type to declare_var.
      widl: Implement __int3264 keyword.
      include: Declare the *_PTR types on top of the __int3264 intrinsic IDL types for widl in basetsd.h.
      widl: Add support for bit-fields in non-remote structures.
      widl: Add support for varargs functions.
      widl: Allow pointers, type-qualifiers and other more complicated constructions in sizeof and cast expressions.
      advapi32: Fix CheckTokenMembership test on Windows.
      advapi32: Use a duplicate of the process token if a NULL token is passed into CheckTokenMembership and there is no thread token.
      rpcrt4: The get_ranged_enum test doesn't work on Windows, so don't execute it for the moment.
      rpcrt4: Support multiple interfaces and transfer syntaxes in bind and bind ack messages.
      oledb32: Fix IDBProperties::GetProperties test on Windows.
      oledb32: Fix style of accessing prgPropertySets in Test_DBProperties_GetProperty.
      rpcrt4: Stop searching through transfer syntaxes in process_bind_packet when one has been found.
      rpcrt4: Replace sizeofs with FIELD_OFFSET in RPCRT4_BuildBindNackHeader to avoid relying on ANYSIZE_ARRAY being 1.
      widl: Include range types in constant BufferLength calculation for server function.
      Revert "rpcrt4: The get_ranged_enum test doesn't work on Windows, so don't execute it for the moment.".

Roderick Colenbrander (6):
      winex11: Make sure the formats are the same instead of the depths since the bit ordering can be different.
      winex11: Check format in XRender_GetSrcAreaStretch instead of depth.
      wgl: Fix a violation of the GLX specs in ConvertAttribWGLtoGLX.
      winex11: Fix a regression when the same depth was used but in a different bit-ordering.
      wgl: None of the WGL_render_texture attribute values makes sense for GLX_X_RENDERABLE, so get rid of it.
      wgl: Make sure we set a valid value for GLX_DRAWABLE_TYPE. Right now we default to 0 which is illegal.

Stefan Dösinger (17):
      wined3d: Use the shader backend reported constant limit outside the shader backend.
      wined3d: Get rid of the general shader constant limit.
      wined3d: Use the ARB native constant limit in the GLSL-ARB constants quirk.
      wined3d: Take native constants into account when reporting ARB limits.
      wined3d: Remove dead code.
      wined3d: Use the native constant limit for fitting private constants.
      wined3d: Add a parameter for SetRenderTarget viewport setup.
      wined3d: Add a usage flag for vertex buffer optimization.
      wined3d: Add a usage flag for static buffer declarations.
      d3d8: Fix device creation error handling.
      d3d: Handle the pointsize_min default difference in d3d8.
      d3d8: Read the backbuffer in the visual test.
      d3d8: Run the visual tests in a window.
      d3d9: Make the visual test read the backbuffer.
      d3d9: Run the visual tests in a window.
      wined3d: Create clip coords only if they are used.
      d3d9: Abort the x8l8v8u8 test if the format is not supported.

Stefan Leichter (1):
      setupapi: Add stub and some tests for SetupGetInfFileListW.

Sunil Mohan Adapa (4):
      oleaut32: Fix SLTG parser so that dispatch interface can inherit another interface.
      oleaut32: Fix SLTG parser so that dual interfaces are returned as IDispatch first.
      oleaut32: Do no check for dispatchable flag on dual interfaces.
      oleaut32: Update comment about a newly seen value in SLTG TypeLib.

Viliam Lejcik (1):
      kernel32: Fix GetCurrencyFormat grouping.

Vincent Povirk (42):
      ole32: Clarify the timestamp fields in StgProperty.
      ole32: Rename previous/nextProperty to left/rightChild.
      ole32: Don't use IEnumSTATSTG to search for elements of storages.
      ole32: Fix the LEFTCHILD and RIGHTCHILD offset defines.
      ole32: Don't use IEnumSTATSTGImpl to search for a parent directory entry.
      ole32: Reduce duplicated code in adjustPropertyChain.
      ole32: Further simplify adjustPropertyChain and fold in findPlaceholder.
      ole32: Move the low-level functionality of ReadProperty to a new function.
      ole32: Move the low-level functionality of WriteProperty to a new function.
      ole32: Use the raw directory entry functions in getFreeProperty.
      ole32: Split the data conversion functions out of WriteProperty.
      ole32: Write the new data in getFreeProperty and rename the function.
      ole32: Remove directory entries from the tree before we free them.
      ole32: Convert adjustPropertyChain into real binary tree removal.
      ole32: Take a StorageBaseImpl in updatePropertyChain.
      ole32: Rename StorageImpl_CreateStorage to StorageBaseImpl_CreateStorage.
      ole32: Don't call internal functions from OLECONVERT_GetOLE20FromOLE10.
      ole32: Don't call internal functions from OLECONVERT_WriteOLE20ToBuffer.
      ole32: Rename StorageImpl_CopyTo to StorageBaseImpl_CopyTo.
      ole32: Rename StorageImpl_MoveElementTo to StorageBaseImpl_MoveElementTo.
      ole32: Rename StorageImpl_DestroyElement to StorageBaseImpl_DestroyElement.
      ole32: Rename StorageImpl_SetElementTimes to StorageBaseImpl_SetElementTimes.
      ole32: Rename StorageImpl_SetStateBits to StorageBaseImpl_SetStateBits.
      ole32: Remove uses of This->base.ancestorStorage in createDirEntry.
      ole32: Remove uses of This->base.ancestorStorage in removeFromTree.
      ole32: Add and use a destroyDirEntry function for deleting directory entries.
      ole32: Adjust updatePropertyChain signature and name to match removeFromTree.
      ole32: Simplify RenameElement by using the same entry in the file.
      ole32: Add tests for IStorage_RenameElement.
      ole32: Remove the term "property type", it's just an STGTY.
      ole32: Rename the StgProperty structure to DirEntry.
      ole32: Rename StorageImpl_ReadProperty to StorageImpl_ReadDirEntry.
      ole32: Rename StorageImpl_WriteProperty to StorageImpl_WriteDirEntry.
      ole32: Rename StorageUtl_CopyPropertyToSTATSTG.
      winex11.drv: Allow windows in a virtual desktop to have X focus.
      winex11.drv: Allow explorer to focus other process windows.
      winex11.drv: Ignore FocusOut events on virtual desktop windows.
      ole32: Rename PROPERTY_NULL to DIRENTRY_NULL.
      ole32: Rename PROPERTY_NAME_*_LEN to DIRENTRY_NAME_*_LEN.
      ole32: Rename PROPSET_BLOCK_SIZE to RAW_DIRENTRY_SIZE.
      ole32: Rename dirProperty to dirRootEntry.
      ole32: Rename PROPERTY_RELATION constants to DIRENTRY_RELATION.

Vladimir Pankratov (2):
      setupapi: Update Russian translation.
      jscript: Update Russian translation.

Yann Droneaud (3):
      libwine: Test against __linux__ define instead of just linux.
      loader: Use __asm__ keyword instead of asm.
      ntdll: Use __asm__ keyword instead of asm in signal_sparc.c.

--
Alexandre Julliard
julliard@winehq.org
