Index: trunk/server/WHATSNEW.txt
===================================================================
--- trunk/server/WHATSNEW.txt	(revision 857)
+++ trunk/server/WHATSNEW.txt	(revision 862)
@@ -1,2 +1,998 @@
+                   ==============================
+                   Release Notes for Samba 3.6.23
+                           March 11, 2014
+                   ==============================
+
+
+This is a security release in order to address
+CVE-2013-4496 (Password lockout not enforced for SAMR password changes).
+
+o  CVE-2013-4496:
+   Samba versions 3.4.0 and above allow the administrator to implement
+   locking out Samba accounts after a number of bad password attempts.
+
+   However, all released versions of Samba did not implement this check for
+   password changes, such as are available over multiple SAMR and RAP
+   interfaces, allowing password guessing attacks.
+
+
+Changes since 3.6.22:
+---------------------
+
+o   Andrew Bartlett <abartlet@samba.org>
+    * BUG 10245: CVE-2013-4496: Enforce password lockout for SAMR password
+      changes.
+
+
+o   Stefan Metzmacher <metze@samba.org>
+    * BUG 10245: CVE-2013-4496: Enforce password lockout for SAMR password
+      changes.
+
+
+######################################################################
+Reporting bugs & Development Discussion
+#######################################
+
+Please discuss this release on the samba-technical mailing list or by
+joining the #samba-technical IRC channel on irc.freenode.net.
+
+If you do report problems then please try to send high quality
+feedback. If you don't provide vital information to help us track down
+the problem then you will probably be ignored.  All bug reports should
+be filed under the Samba 3.6 product in the project's Bugzilla
+database (https://bugzilla.samba.org/).
+
+
+======================================================================
+== Our Code, Our Bugs, Our Responsibility.
+== The Samba Team
+======================================================================
+
+
+Release notes for older releases follow:
+----------------------------------------
+
+                   ==============================
+                   Release Notes for Samba 3.6.22
+                          December 9, 2013
+                   ==============================
+
+
+This is a security release in order to address
+CVE-2013-4408 (DCE-RPC fragment length field is incorrectly checked) and
+CVE-2012-6150 (pam_winbind login without require_membership_of restrictions).
+
+o  CVE-2013-4408:
+   Samba versions 3.4.0 and above (versions 3.4.0 - 3.4.17, 3.5.0 -
+   3.5.22, 3.6.0 - 3.6.21, 4.0.0 - 4.0.12 and including 4.1.2) are
+   vulnerable to buffer overrun exploits in the client processing of
+   DCE-RPC packets. This is due to incorrect checking of the DCE-RPC
+   fragment length in the client code.
+
+   This is a critical vulnerability as the DCE-RPC client code is part of
+   the winbindd authentication and identity mapping daemon, which is
+   commonly configured as part of many server installations (when joined
+   to an Active Directory Domain). A malicious Active Directory Domain
+   Controller or man-in-the-middle attacker impersonating an Active
+   Directory Domain Controller could achieve root-level access by
+   compromising the winbindd process.
+
+   Samba server versions 3.4.0 - 3.4.17 and versions 3.5.0 - 3.5.22 are
+   also vulnerable to a denial of service attack (server crash) due to a
+   similar error in the server code of those versions.
+
+   Samba server versions 3.6.0 and above (including all 3.6.x versions,
+   all 4.0.x versions and 4.1.x) are not vulnerable to this problem.
+
+   In addition range checks were missing on arguments returned from calls
+   to the DCE-RPC functions LookupSids (lsa and samr), LookupNames (lsa and samr)
+   and LookupRids (samr) which could also cause similar problems.
+
+   As this was found during an internal audit of the Samba code there are
+   no currently known exploits for this problem (as of December 9th 2013).
+
+o  CVE-2012-6150:
+   Winbind allows for the further restriction of authenticated PAM logins using
+   the require_membership_of parameter. System administrators may specify a list
+   of SIDs or groups for which an authenticated user must be a member of. If an
+   authenticated user does not belong to any of the entries, then login should
+   fail. Invalid group name entries are ignored.
+
+   Samba versions 3.3.10, 3.4.3, 3.5.0 and later incorrectly allow login from
+   authenticated users if the require_membership_of parameter specifies only
+   invalid group names.
+
+   This is a vulnerability with low impact. All require_membership_of group
+   names must be invalid for this bug to be encountered.
+
+
+Changes since 3.6.21:
+---------------------
+
+o   Jeremy Allison <jra@samba.org>
+    * BUG 10185: CVE-2013-4408: Correctly check DCE-RPC fragment length field.
+
+
+o   Stefan Metzmacher <metze@samba.org>
+    * BUG 10185: CVE-2013-4408: Correctly check DCE-RPC fragment length field.
+
+
+o   Noel Power <noel.power@suse.com>
+    * BUGs 10300, 10306: CVE-2012-6150: Fail authentication if user isn't
+      member of *any* require_membership_of specified groups.
+
+
+######################################################################
+Reporting bugs & Development Discussion
+#######################################
+
+Please discuss this release on the samba-technical mailing list or by
+joining the #samba-technical IRC channel on irc.freenode.net.
+
+If you do report problems then please try to send high quality
+feedback. If you don't provide vital information to help us track down
+the problem then you will probably be ignored.  All bug reports should
+be filed under the Samba 3.6 product in the project's Bugzilla
+database (https://bugzilla.samba.org/).
+
+
+======================================================================
+== Our Code, Our Bugs, Our Responsibility.
+== The Samba Team
+======================================================================
+
+
+----------------------------------------------------------------------
+
+
+                   ==============================
+                   Release Notes for Samba 3.6.21
+                         November 29, 2013
+                   ==============================
+
+
+This is is the latest stable release of Samba 3.6.
+
+
+Changes since 3.6.20:
+---------------------
+
+o   Jeremy Allison <jra@samba.org>
+    * BUG 10139: Valid utf8 filenames cause "invalid conversion error"
+      messages.
+    * BUG 10167: s3-smb2 server: smb2 breaks "smb encryption = mandatory".
+    * BUG 10187: Missing talloc_free can leak stackframe in error path.
+    * BUG 10247: xattr: Fix listing EAs on *BSD for non-root users.
+
+
+o   Korobkin <korobkin+samba@gmail.com>
+    * BUG 10118: Raise debug level for being unable to open a printer.
+
+
+o   Volker Lendecke <vl@samba.org>
+    * BUG 10195: nsswitch: Fix short writes in winbind_write_sock.
+
+
+o   Arvid Requate <requate@univention.de>
+    * BUG 10267: Fix Windows 8 printing via local printer drivers.
+
+
+o   Andreas Schneider <asn@cryptomilk.org>
+    * BUG 10194: Make offline logon cache updating for cross child domain
+      group membership.
+
+
+######################################################################
+Reporting bugs & Development Discussion
+#######################################
+
+Please discuss this release on the samba-technical mailing list or by
+joining the #samba-technical IRC channel on irc.freenode.net.
+
+If you do report problems then please try to send high quality
+feedback. If you don't provide vital information to help us track down
+the problem then you will probably be ignored.  All bug reports should
+be filed under the Samba 3.6 product in the project's Bugzilla
+database (https://bugzilla.samba.org/).
+
+
+======================================================================
+== Our Code, Our Bugs, Our Responsibility.
+== The Samba Team
+======================================================================
+
+
+----------------------------------------------------------------------
+
+
+                   ==============================
+                   Release Notes for Samba 3.6.20
+                         November 11, 2013
+                   ==============================
+
+
+This is a security release in order to address
+CVE-2013-4475 (ACLs are not checked on opening an alternate
+data stream on a file or directory).
+
+o  CVE-2013-4475:
+   Samba versions 3.2.0 and above (all versions of 3.2.x, 3.3.x,
+   3.4.x, 3.5.x, 3.6.x, 4.0.x and 4.1.x) do not check the underlying
+   file or directory ACL when opening an alternate data stream.
+
+   According to the SMB1 and SMB2+ protocols the ACL on an underlying
+   file or directory should control what access is allowed to alternate
+   data streams that are associated with the file or directory.
+
+   By default no version of Samba supports alternate data streams
+   on files or directories.
+
+   Samba can be configured to support alternate data streams by loading
+   either one of two virtual file system modues (VFS) vfs_streams_depot or
+   vfs_streams_xattr supplied with Samba, so this bug only affects Samba
+   servers configured this way.
+
+   To determine if your server is vulnerable, check for the strings
+   "streams_depot" or "streams_xattr" inside your smb.conf configuration
+   file.
+
+
+Changes since 3.6.19:
+---------------------
+
+o   Jeremy Allison <jra@samba.org>
+    * BUGs 10234 + 10229: CVE-2013-4475: Fix access check verification on stream
+      files.
+
+
+######################################################################
+Reporting bugs & Development Discussion
+#######################################
+
+Please discuss this release on the samba-technical mailing list or by
+joining the #samba-technical IRC channel on irc.freenode.net.
+
+If you do report problems then please try to send high quality
+feedback. If you don't provide vital information to help us track down
+the problem then you will probably be ignored.  All bug reports should
+be filed under the Samba 3.6 product in the project's Bugzilla
+database (https://bugzilla.samba.org/).
+
+
+======================================================================
+== Our Code, Our Bugs, Our Responsibility.
+== The Samba Team
+======================================================================
+
+
+----------------------------------------------------------------------
+
+
+                   ==============================
+                   Release Notes for Samba 3.6.19
+                         September 25, 2013
+                   ==============================
+
+
+This is is the latest maintenance release of Samba 3.6.
+
+Please note that this will probably be the last maintenance release
+of the Samba 3.6 release series. With the release of Samba 4.1.0, the
+3.6 release series will be turned into the "security fixes only" mode.
+
+
+Changes since 3.6.18:
+---------------------
+
+o   Jeremy Allison <jra@samba.org>
+    * BUG 5917: Make Samba work on site with Read Only Domain Controller.
+
+
+o   Christian Ambach <ambi@samba.org>
+    * BUG 8955: NetrServerPasswordSet2 timeout is too short.
+
+
+o   GÃŒnther Deschner <gd@samba.org>
+    * BUG 9899: Fix fallback to ncacn_np in cm_connect_lsat().
+    * BUG 9615: Fix fallback to ncacn_np in cm_connect_lsat().
+    * BUG 10127: Fix 'smbstatus' as non-root user.
+
+
+o   Volker Lendecke <vl@samba.org>
+    * BUG 8955: Give machine password changes 10 minutes of time.
+    * BUG 10106: Honour output buffer length set by the client for SMB2 GetInfo
+      requests.
+    * BUG 10114: Handle Dropbox (write-only-directory) case correctly in
+      pathname lookup.
+
+
+o   Karolin Seeger <kseeger@samba.org>
+    * BUG 10076: Fix variable list in man vfs_crossrename.
+
+
+o   Andreas Schneider <asn@samba.org>
+    * BUG 9994: s3-winbind: Do not delete an existing valid credential cache.
+    * BUG 10073: 'net ads join': Fix segmentation fault in
+      create_local_private_krb5_conf_for_domain.
+
+
+o   Richard Sharpe <realrichardsharpe@gmail.com>
+    * BUG 10097: MacOSX 10.9 will not follow path-based DFS referrals handed
+      out by Samba.
+
+
+######################################################################
+Reporting bugs & Development Discussion
+#######################################
+
+Please discuss this release on the samba-technical mailing list or by
+joining the #samba-technical IRC channel on irc.freenode.net.
+
+If you do report problems then please try to send high quality
+feedback. If you don't provide vital information to help us track down
+the problem then you will probably be ignored.  All bug reports should
+be filed under the Samba 3.6 product in the project's Bugzilla
+database (https://bugzilla.samba.org/).
+
+
+======================================================================
+== Our Code, Our Bugs, Our Responsibility.
+== The Samba Team
+======================================================================
+
+
+----------------------------------------------------------------------
+
+
+                   ==============================
+                   Release Notes for Samba 3.6.18
+                          August 14, 2013
+                   ==============================
+
+
+This is is the latest stable release of Samba 3.6.
+
+
+Changes since 3.6.17:
+---------------------
+
+o   Jeremy Allison <jra@samba.org>
+    * BUG 9777: vfs_dirsort uses non-stackable calls, dirfd(), malloc instead
+      of talloc and doesn't cope with directories being modified whilst reading.
+
+
+o   Gregor Beck <gbeck@sernet.de>
+    * BUG 9678: Windows 8 Roaming profiles fail.
+
+
+o   Alexander Bokovoy <ab@samba.org>
+    * BUG 9636: Fix parsing linemarkers in preprocessor output.
+
+
+o   BjÃ¶rn Jacke <bj@sernet.de>
+    * BUG 9880: Use of wrong RFC2307 primary group field.
+    * BUG 9983: Fix output of syslog-facility check.
+
+
+o   Ralph Wuerthner <ralphw@de.ibm.com>
+    * BUG 10064: Linux kernel oplock breaks can miss signals.
+
+
+######################################################################
+Reporting bugs & Development Discussion
+#######################################
+
+Please discuss this release on the samba-technical mailing list or by
+joining the #samba-technical IRC channel on irc.freenode.net.
+
+If you do report problems then please try to send high quality
+feedback. If you don't provide vital information to help us track down
+the problem then you will probably be ignored.  All bug reports should
+be filed under the Samba 3.6 product in the project's Bugzilla
+database (https://bugzilla.samba.org/).
+
+
+======================================================================
+== Our Code, Our Bugs, Our Responsibility.
+== The Samba Team
+======================================================================
+
+
+----------------------------------------------------------------------
+
+
+                   ==============================
+                   Release Notes for Samba 3.6.17
+                          August 05, 2013
+                   ==============================
+
+
+This is a security release in order to address
+CVE-2013-4124 (Missing integer wrap protection in EA list reading can cause
+server to loop with DOS).
+
+o  CVE-2013-4124:
+   All current released versions of Samba are vulnerable to a denial of
+   service on an authenticated or guest connection. A malformed packet
+   can cause the smbd server to loop the CPU performing memory
+   allocations and preventing any further service.
+
+   A connection to a file share, or a local account is needed to exploit
+   this problem, either authenticated or unauthenticated if guest
+   connections are allowed.
+
+   This flaw is not exploitable beyond causing the code to loop
+   allocating memory, which may cause the machine to exceed memory
+   limits.
+
+
+Changes since 3.6.16:
+---------------------
+
+o   Jeremy Allison <jra@samba.org>
+    * BUG 10010: CVE-2013-4124: Missing integer wrap protection in EA list
+      reading can cause server to loop with DOS.
+
+
+######################################################################
+Reporting bugs & Development Discussion
+#######################################
+
+Please discuss this release on the samba-technical mailing list or by
+joining the #samba-technical IRC channel on irc.freenode.net.
+
+If you do report problems then please try to send high quality
+feedback. If you don't provide vital information to help us track down
+the problem then you will probably be ignored.  All bug reports should
+be filed under the Samba 3.6 product in the project's Bugzilla
+database (https://bugzilla.samba.org/).
+
+
+======================================================================
+== Our Code, Our Bugs, Our Responsibility.
+== The Samba Team
+======================================================================
+
+
+----------------------------------------------------------------------
+
+
+                   ==============================
+                   Release Notes for Samba 3.6.16
+                           June 19, 2013
+                   ==============================
+
+
+This is is the latest stable release of Samba 3.6.
+
+Major enhancements in Samba 3.6.16 include:
+
+o  Fix crash bug during Win8 sync (bug #9822).
+o  Properly handle Oplock breaks in compound requests (bug #9722).
+
+
+Changes since 3.6.15:
+---------------------
+
+o   Michael Adam <obnox@samba.org>
+    * BUG 9881: Link dbwrap_tool and dbwrap_torture against libtevent.
+
+
+o   Jeremy Allison <jra@samba.org>
+    * BUG 9722: Properly handle Oplock breaks in compound requests.
+    * BUG 9822: Fix crash bug during Win8 sync.
+
+
+o   Anand Avati <avati@redhat.com>
+    * BUG 9927: errno gets overwritten in call to check_parent_exists().
+
+
+o   David Disseldorp <ddiss@samba.org>
+    * BUG 8997: Change libreplace GPL source to LGPL.
+    * BUG 9900: is_printer_published GUID retrieval.
+
+
+o   Peng Haitao <penght@cn.fujitsu.com>
+    * BUG 9941: Fix a bug of drvupgrade of smbcontrol.
+
+
+o   Volker Lendecke <vl@samba.org>
+    * BUG 9868: Don't know how to make LIBNDR_PREG_OBJ.
+
+
+o   SATOH Fumiyasu <fumiyas@osstech.co.jp>
+    * BUG 9688: Remove "experimental" label on "max protocol=SMB2" parameter.
+
+
+o   Andreas Schneider <asn@samba.org>
+    * BUG 9881: Check for system libtevent.
+
+
+######################################################################
+Reporting bugs & Development Discussion
+#######################################
+
+Please discuss this release on the samba-technical mailing list or by
+joining the #samba-technical IRC channel on irc.freenode.net.
+
+If you do report problems then please try to send high quality
+feedback. If you don't provide vital information to help us track down
+the problem then you will probably be ignored.  All bug reports should
+be filed under the Samba 3.6 product in the project's Bugzilla
+database (https://bugzilla.samba.org/).
+
+
+----------------------------------------------------------------------
+
+
+                   ==============================
+                   Release Notes for Samba 3.6.15
+                            May 08, 2013
+                   ==============================
+
+
+This is is the latest stable release of Samba 3.6.
+
+Major enhancements in Samba 3.6.15 include:
+
+o  Fix crash bug in Winbind (bug #9854).
+
+
+Changes since 3.6.14:
+---------------------
+
+o   Andrew Bartlett <abartlet@samba.org>
+    * BUG 9746: Fix "guest ok", "force user" and "force group" for guest users.
+
+
+o   David Disseldorp <ddiss@samba.org>
+    * BUG 9830: Fix panic in nt_printer_publish_ads.
+
+
+o   Volker Lendecke <vl@samba.org>
+    * BUG 9854: Fix crash bug in Winbind.
+
+
+o   Andreas Schneider <asn@samba.org>
+    * BUG 9817: Fix 'map untrusted to domain' with NTLMv2.
+
+
+######################################################################
+Reporting bugs & Development Discussion
+#######################################
+
+Please discuss this release on the samba-technical mailing list or by
+joining the #samba-technical IRC channel on irc.freenode.net.
+
+If you do report problems then please try to send high quality
+feedback. If you don't provide vital information to help us track down
+the problem then you will probably be ignored.  All bug reports should
+be filed under the Samba 3.6 product in the project's Bugzilla
+database (https://bugzilla.samba.org/).
+
+
+-----------------------------------------------------------------------
+
+
+                   ==============================
+                   Release Notes for Samba 3.6.14
+                           April 29, 2013
+                   ==============================
+
+
+This is is the latest stable release of Samba 3.6.
+
+Major enhancements in Samba 3.6.14 include:
+
+o  Certain xattrs cause Windows error 0x800700FF (bug #9130).
+
+Changes since 3.6.13:
+---------------------
+
+o   Jeremy Allison <jra@samba.org>
+    * BUG 9130: Certain xattrs cause Windows error 0x800700FF.
+    * BUG 9724: Use is_encrypted_packet() function correctly inside server.
+    * BUG 9733: Fix 'smbcontrol close-share' is not working.
+    * BUG 9747: Make sure that we only propogate the INHERITED flag when we are
+      allowed to.
+    * BUG 9748: Remove unneeded fstat system call from hot read path.
+    * BUG 9811: Fix bug in old create temp SMB request. Only use VFS functions.
+
+
+o   David Disseldorp <ddiss@samba.org>
+    * BUG 9650: New or deleted CUPS printerqueues are not recognized by Samba.
+    * BUG 9807: wbinfo: Fix segfault in wbinfo_pam_logon.
+
+
+o   Volker Lendecke <vl@samba.org>
+    * BUG 9727: wkssvc: Fix NULL pointer dereference.
+    * BUG 9736: smbd: Tune "dir" a bit.
+    * BUG 9775: Fix segfault for "artificial" conn_structs.
+    * BUG 9809: RHEL SPEC: Package dbwrap_tool man page.
+
+
+o   Andreas Schneider <asn@samba.org>
+    * BUG 9139: Fix the username map optimization.
+    * BUG 9699: Fix adding case sensitive spn.
+    * BUG 9723: Add a tool to migrate latin1 printing tdbs to registry.
+    * BUG 9735: Fix Winbind separator in upn to username conversion.
+    * BUG 9766: Cache name_to_sid/sid_to_name correctly.
+
+
+Note about upgrading from older versions:
+-----------------------------------------
+
+It is still the case that there are printing tdbs (ntprinting.tdb, ntforms.tdb,
+ntdrivers.tdb) which are in latin1 or other encodings. When updating from
+Samba 3.5 or earlier to Samba 3.6 or 4.0 these tdbs need to be migrated to our
+new registry based printing management.  This means during the migration we
+also need to do charset conversion. This can only been done manually cause we don't
+know in which encoding the tdb is. You have to specify the correct code page
+for the conversion, see iconv -l and Wikipedia [1] for the available codepages.
+The mostly used one is Windows Latin1 which is CP1252.
+
+We've extended the 'net printing dump' and 'net printing migrate' commands to
+define the encoding of the tdb. So you can correctly view the tdb with:
+
+  net printing dump encoding=CP1252 /path/to/ntprinters.tdb
+
+or migrate it with e.g.:
+
+  net printing migrate encoding=CP1252 /path/to/ntprinters.tdb
+
+If you migrate printers we suggest you do it in the following order.
+
+ntforms.tdb
+ntdrivers.tdb
+ntprinting.tdb
+
+Don't forget to rename, move or delete these files in /var/lib/samba after the
+migration.
+
+[1] https://en.wikipedia.org/wiki/Code_page
+
+
+######################################################################
+Reporting bugs & Development Discussion
+#######################################
+
+Please discuss this release on the samba-technical mailing list or by
+joining the #samba-technical IRC channel on irc.freenode.net.
+
+If you do report problems then please try to send high quality
+feedback. If you don't provide vital information to help us track down
+the problem then you will probably be ignored.  All bug reports should
+be filed under the Samba 3.6 product in the project's Bugzilla
+database (https://bugzilla.samba.org/).
+
+
+======================================================================
+== Our Code, Our Bugs, Our Responsibility.
+== The Samba Team
+======================================================================
+
+
+----------------------------------------------------------------------
+
+
+                   ==============================
+                   Release Notes for Samba 3.6.13
+                           March 18, 2013
+                   ==============================
+
+
+This is is the latest stable release of Samba 3.6.
+
+Major enhancements in Samba 3.6.13 include:
+
+o  Fix two resource leaks in winbindd (bug #9684).
+o  Unlink after open causes smbd to panic (bug #9571).
+
+
+Changes since 3.6.12:
+--------------------
+
+o   Jeremy Allison <jra@samba.org>
+    * BUG 9519: Samba returns unexpected error on SMB posix open.
+    * BUG 9585: Samba 3.6.x not correctly signing any but the last response in
+      a compound request/response.
+    * BUG 9586: smbd[29175]: disk_free: sys_popen() failed" message logged in
+      /var/log/messages many times.
+    * BUG 9587: Archive flag is always set on directories.
+    * BUG 9588: ACLs are not inherited to directories for DFS shares.
+    * BUG 9637: Renaming directories as guest user in security share mode
+      doesn't work.
+
+
+o   BjÃ¶rn Baumbach <bb@sernet.de>
+    * BUG 9568: Add dbwrap_tool.1 manual page.
+
+
+o   Ira Cooper <ira@samba.org>
+    * BUG 9646: Make SMB2_GETINFO multi-volume aware.
+
+
+o   GÃŒnther Deschner <gd@samba.org>
+    * BUG 9474: Downgrade v4 printer driver requests to v3.
+
+
+o   David Disseldorp <ddiss@samba.org>
+    * BUG 9378: Add extra attributes for AD printer publishing.
+    * BUG 9658: Fix initial large PAC sess setup response.
+
+
+o   BjÃ¶rn Jacke <bj@sernet.de>
+    * BUG 7825: Fix GNU ld version detection with
+      old gcc releases.
+
+
+o   Daniel Kobras <d.kobras@science-computing.de>
+    * BUG 9039: 'map untrusted to domain' treats WORKSTATION as bogus domain.
+
+
+o   Guenter Kukkukk <kukks@samba.org>
+    * BUG 9701: Fix vfs_catia module.
+
+
+o   Volker Lendecke <vl@samba.org>
+    * BUG 9541: Add support for posix_openpt.
+
+
+o   Stefan Metzmacher <metze@samba.org>
+    * Bug 9625: wbcAuthenticateEx gives unix times.
+
+
+o   Andreas Schneider <asn@samba.org>
+    * BUG 9574: Fix a possible null pointer dereference in spoolss.
+    * BUG 9684: Fix two resource leaks in winbindd.
+    * BUG 9686: Fix a possible buffer overrun in pdb_smbpasswd.
+
+
+o   Pavel Shilovsky <piastry@etersoft.ru>
+    * Bug #9571: Unlink after open causes smbd to panic.
+
+
+######################################################################
+Reporting bugs & Development Discussion
+#######################################
+
+Please discuss this release on the samba-technical mailing list or by
+joining the #samba-technical IRC channel on irc.freenode.net.
+
+If you do report problems then please try to send high quality
+feedback. If you don't provide vital information to help us track down
+the problem then you will probably be ignored.  All bug reports should
+be filed under the Samba 3.6 product in the project's Bugzilla
+database (https://bugzilla.samba.org/).
+
+
+======================================================================
+== Our Code, Our Bugs, Our Responsibility.
+== The Samba Team
+======================================================================
+
+
+----------------------------------------------------------------------
+
+
+                   ==============================
+                   Release Notes for Samba 3.6.12
+                          January 30, 2013
+                   ==============================
+
+
+This is a security release in order to address
+CVE-2013-0213 (Clickjacking issue in SWAT) and
+CVE-2013-0214 (Potential XSRF in SWAT).
+
+o  CVE-2013-0213:
+   All current released versions of Samba are vulnerable to clickjacking in the
+   Samba Web Administration Tool (SWAT). When the SWAT pages are integrated into
+   a malicious web page via a frame or iframe and then overlaid by other content,
+   an attacker could trick an administrator to potentially change Samba settings.
+
+   In order to be vulnerable, SWAT must have been installed and enabled
+   either as a standalone server launched from inetd or xinetd, or as a
+   CGI plugin to Apache. If SWAT has not been installed or enabled (which
+   is the default install state for Samba) this advisory can be ignored.
+
+o  CVE-2013-0214:
+   All current released versions of Samba are vulnerable to a cross-site
+   request forgery in the Samba Web Administration Tool (SWAT). By guessing a
+   user's password and then tricking a user who is authenticated with SWAT into
+   clicking a manipulated URL on a different web page, it is possible to manipulate
+   SWAT.
+
+   In order to be vulnerable, the attacker needs to know the victim's password.
+   Additionally SWAT must have been installed and enabled either as a standalone
+   server launched from inetd or xinetd, or as a CGI plugin to Apache. If SWAT has
+   not been installed or enabled (which is the default install state for Samba)
+   this advisory can be ignored.
+
+
+Changes since 3.6.11:
+--------------------
+
+o   Kai Blin <kai@samba.org>
+    * BUG 9576: CVE-2013-0213: Fix clickjacking issue in SWAT.
+    * BUG 9577: CVE-2013-0214: Fix potential XSRF in SWAT.
+
+
+######################################################################
+Reporting bugs & Development Discussion
+#######################################
+
+Please discuss this release on the samba-technical mailing list or by
+joining the #samba-technical IRC channel on irc.freenode.net.
+
+If you do report problems then please try to send high quality
+feedback. If you don't provide vital information to help us track down
+the problem then you will probably be ignored.  All bug reports should
+be filed under the Samba 3.6 product in the project's Bugzilla
+database (https://bugzilla.samba.org/).
+
+
+======================================================================
+== Our Code, Our Bugs, Our Responsibility.
+== The Samba Team
+======================================================================
+
+
+----------------------------------------------------------------------
+
+
+                   ==============================
+                   Release Notes for Samba 3.6.11
+                         January 21, 2013
+                   ==============================
+
+
+This is is the latest stable release of Samba 3.6.
+
+Major enhancements in Samba 3.6.11 include:
+
+o   defer_open is triggered multiple times on the same request (bug #9196).
+o   Fix SEGV wh_n using second vfs module (bug #9471).
+
+
+Changes since 3.6.10:
+--------------------
+
+o   Jeremy Allison <jra@samba.org>
+    * BUG 9196: defer_open is triggered multiple times on the same request.
+    * BUG 9550: Mask off signals the correct way from the signal handler.
+
+
+o   BjÃ¶rn Baumbach <bb@sernet.de>
+    * BUG 9569: ntlm_auth.1: Fix format and make examples visible.
+
+
+o   Tsukasa Hamano <hamano@osstech.co.jp>
+    * BUG 9471: Fix SEGV when using second vfs module.
+
+
+o   Volker Lendecke <vl@samba.org>
+    * BUG 9548: Correctly detect O_DIRECT.
+    * BUG 9546: Fix aio_suspend detection on FreeBSD.
+
+
+######################################################################
+Reporting bugs & Development Discussion
+#######################################
+
+Please discuss this release on the samba-technical mailing list or by
+joining the #samba-technical IRC channel on irc.freenode.net.
+
+If you do report problems then please try to send high quality
+feedback. If you don't provide vital information to help us track down
+the problem then you will probably be ignored.  All bug reports should
+be filed under the Samba 3.6 product in the project's Bugzilla
+database (https://bugzilla.samba.org/).
+
+
+======================================================================
+== Our Code, Our Bugs, Our Responsibility.
+== The Samba Team
+======================================================================
+
+
+----------------------------------------------------------------------
+
+
+                   ==============================
+                   Release Notes for Samba 3.6.10
+                         December 10, 2012
+                   ==============================
+
+
+This is is the latest stable release of Samba 3.6.
+
+Major enhancements in Samba 3.6.10 include:
+
+o  Respond correctly to FILE_STREAM_INFO requests (bug #9460).
+o  Fix segfault when "default devmode" is disabled (bug #9433).
+o  Fix segfaults in "log level = 10" on Solaris (bug #9390).
+
+
+Changes since 3.6.9:
+--------------------
+
+o   Jeremy Allison <jra@samba.org>
+    * BUG 9236: ACL masks incorrectly applied when setting ACLs.
+    * BUG 9374: Allow smb2.acls torture test to pass against smbd with a POSIX
+      ACLs backend.
+
+
+o   BjÃ¶rn Baumbach <bb@sernet.de>
+    * BUG 9345: Manpages: Fix use of <smbconfoption> tag.
+
+
+o   Sumit Bose <sbose@redhat.com>
+    * BUG 9367: Use work around for 'winbind use default domain' only if it is
+      set.
+
+
+o   GÃŒnther Deschner <gd@samba.org>
+    * BUG 9272: 'net ads join' does not provide AES keys in host keytab.
+    * BUG 9426: Lookup nametype 0x20 in rpc_pipe_open_tcp_port().
+    * BUG 9439: Fix ncacn_ip_tcp reconnection code for lsa lookups.
+    * BUG 9451: Allow to force DNS updates using net.
+
+
+o   David Disseldorp <ddiss@samba.org>
+    * BUG 9433: Fix segfault when "default devmode" is disabled.
+
+
+o   Volker Lendecke <vl@samba.org>
+    * BUG 9359: Optimization needed for SMB2 performance sensitive workloads.
+    * BUG 9422: Large read requests cause server to issue malformed reply.
+    * BUG 9439: Fix ncacn_ip_tcp reconnection code for lsa lookups.
+
+
+o   Stefan Metzmacher <metze@samba.org>
+    * BUG 9209: Improve the smb2.create.blob test.
+    * BUG 9272: 'net ads join' does not provide AES keys in host keytab.
+    * BUG 9390: Fix segfaults in "log level = 10" on Solaris.
+    * BUG 9402: lib/addns doesn't work with a bind9 server.
+
+
+o   Matthieu Patou <mat@matws.net>
+    * BUG 9418: Fix MD5 detection in the autoconf build.
+
+
+o   Andreas Schneider <asn@samba.org>
+    * BUG 8564: Fix segfault in pam_sm_authenticate().
+    * BUG 9326: Fix 'net ads join' message for the dns domain.
+    * BUG 9386: Winbind: Failover if netlogon pipe is not available.
+    * BUG 9436: Fix leaking sockets of SMB connections to a DC.
+
+
+o   Richard Sharpe <realrichardsharpe@gmail.com>
+    * BUG 9460: Respond correctly to FILE_STREAM_INFO requests.
+
+
+######################################################################
+Reporting bugs & Development Discussion
+#######################################
+
+Please discuss this release on the samba-technical mailing list or by
+joining the #samba-technical IRC channel on irc.freenode.net.
+
+If you do report problems then please try to send high quality
+feedback. If you don't provide vital information to help us track down
+the problem then you will probably be ignored.  All bug reports should
+be filed under the Samba 3.6 product in the project's Bugzilla
+database (https://bugzilla.samba.org/).
+
+
+======================================================================
+== Our Code, Our Bugs, Our Responsibility.
+== The Samba Team
+======================================================================
+
+
+----------------------------------------------------------------------
+
+
                    =============================
                    Release Notes for Samba 3.6.9
@@ -126,6 +1122,7 @@
 ======================================================================
 
-Release notes for older releases follow:
-----------------------------------------
+
+----------------------------------------------------------------------
+
 
                    =============================
Index: trunk/server/buildtools/bin/README
===================================================================
--- trunk/server/buildtools/bin/README	(revision 857)
+++ trunk/server/buildtools/bin/README	(revision 862)
Index: trunk/server/buildtools/bin/waf
===================================================================
--- trunk/server/buildtools/bin/waf	(revision 862)
+++ trunk/server/buildtools/bin/waf	(revision 862)
@@ -0,0 +1,1 @@
+waf-svn
Index: trunk/server/buildtools/bin/waf-svn
===================================================================
--- trunk/server/buildtools/bin/waf-svn	(revision 862)
+++ trunk/server/buildtools/bin/waf-svn	(revision 862)
@@ -0,0 +1,2535 @@
+#!/usr/bin/env python
+# encoding: ISO-8859-1
+# Thomas Nagy, 2005-2010
+
+"""
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+3. The name of the author may not be used to endorse or promote products
+   derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+"""
+
+import os, sys
+if sys.hexversion<0x203000f: raise ImportError("Waf requires Python >= 2.3")
+
+if 'PSYCOWAF' in os.environ:
+	try:import psyco;psyco.full()
+	except:pass
+
+VERSION="1.5.19"
+REVISION="d825ca58092f19b61518932e7b93eaa3"
+INSTALL=''
+C1='#&'
+C2='#$'
+cwd = os.getcwd()
+join = os.path.join
+
+WAF='waf'
+def b(x):
+	return x
+
+if sys.hexversion>0x300000f:
+	WAF='waf3'
+	def b(x):
+		return x.encode()
+
+def err(m):
+	print(('\033[91mError: %s\033[0m' % m))
+	sys.exit(1)
+
+def unpack_wafdir(dir):
+	f = open(sys.argv[0],'rb')
+	c = "corrupted waf (%d)"
+	while 1:
+		line = f.readline()
+		if not line: err("run waf-light from a folder containing wafadmin")
+		if line == b('#==>\n'):
+			txt = f.readline()
+			if not txt: err(c % 1)
+			if f.readline()!=b('#<==\n'): err(c % 2)
+			break
+	if not txt: err(c % 3)
+	txt = txt[1:-1].replace(b(C1), b('\n')).replace(b(C2), b('\r'))
+
+	import shutil, tarfile
+	try: shutil.rmtree(dir)
+	except OSError: pass
+	try:
+		for x in ['Tools', '3rdparty']:
+			os.makedirs(join(dir, 'wafadmin', x))
+	except OSError:
+		err("Cannot unpack waf lib into %s\nMove waf into a writeable directory" % dir)
+
+	os.chdir(dir)
+	tmp = 't.gz'
+	t = open(tmp,'wb')
+	t.write(txt)
+	t.close()
+
+	t = None
+	try:
+		t = tarfile.open(tmp)
+	except:
+		try:
+			os.system('gzip -d t.gz')
+			t = tarfile.open('t')
+		except:
+			os.chdir(cwd)
+			try: shutil.rmtree(dir)
+			except OSError: pass
+			err("Waf cannot be unpacked, check that bzip2 support is present")
+
+	for x in t: t.extract(x)
+	t.close()
+
+	for x in ['Tools', '3rdparty']:
+		os.chmod(join('wafadmin',x), 493)
+
+	if sys.hexversion>0x300000f:
+		sys.path = [join(dir, 'wafadmin')] + sys.path
+		import py3kfixes
+		py3kfixes.fixdir(dir)
+
+	os.chdir(cwd)
+
+def test(dir):
+	try: os.stat(join(dir, 'wafadmin')); return os.path.abspath(dir)
+	except OSError: pass
+
+def find_lib():
+	name = sys.argv[0]
+	base = os.path.dirname(os.path.abspath(name))
+
+	#devs use $WAFDIR
+	w=test(os.environ.get('WAFDIR', ''))
+	if w: return w
+
+	#waf-light
+	if name.endswith('waf-light'):
+		w = test(base)
+		if w: return w
+		err("waf-light requires wafadmin -> export WAFDIR=/folder")
+
+	dir = "/lib/%s-%s-%s/" % (WAF, VERSION, REVISION)
+	for i in [INSTALL,'/usr','/usr/local','/opt']:
+		w = test(i+dir)
+		if w: return w
+
+	#waf-local
+	s = '.%s-%s-%s'
+	if sys.platform == 'win32': s = s[1:]
+	dir = join(base, s % (WAF, VERSION, REVISION))
+	w = test(dir)
+	if w: return w
+
+	#unpack
+	unpack_wafdir(dir)
+	return dir
+
+wafdir = find_lib()
+w = join(wafdir, 'wafadmin')
+t = join(w, 'Tools')
+f = join(w, '3rdparty')
+sys.path = [w, t, f] + sys.path
+
+if __name__ == '__main__':
+	import Scripting
+	Scripting.prepare(t, cwd, VERSION, wafdir)
+
+#==>
+#ëè/Mÿtmp-waf-1.5.19.tarìœ{ÛÆ±0ÜÅOÁ°Õ`A$_Òè	ÒÇ±åD§¶ä%7éU<	Jx+JTŒýë^séé9¿º,vggwggggggn{ÃÞ`2~úb6-ÊÞŽ,ºó»ßýºÿvàß³'OèþUw|öôw»»OwöìÉãÝÇ¿Ûç'×ÞùÝ?áßZ·Û¿Ëg³r]ŸûŸW÷?äßï?iº(òO/²éM{~W^ÍŠ­ß·³i6M/÷ÛržýÇVëïþrðîäðø(ÙYîî<ÝÙýŒõíóWÖÙí>íî~ÞÁŽw9äÄÏ?ÛùüM§õü«Ãä³Ö1Aòdo§uüÙÓ§ÉÏ·Þ<ÿî?¿:I>­Ï_|sŸ<|ý'ý«,÷¯^
+~Ý~RDÖË¯^
+Ÿ>€ÛÞp>ê_³íÍA°	UµŸ=yñîðíiÊn~>IþêýáëþÇôb1D>}q|ôêðëôõñ×Äl:
+]vÇ³KïÛ7æËUÐ:£Ã×I0/nú2ÝdùxÖpyþîðùÑi€òÞ¯¿#$ilØ[¯w/šÅEÞò õÕëô~1
+Ðûó·o¿dåàJ§ò@PNêhAëý§œLÂšõÕ»çN:yÖ»îŽ §GïŽ¢
+MY§ãÉï_'
+ûÜÁ!zûüÝó×¯àóÒi
+
+¿{ó
+ùßOÓwï:ZoONŸNv[/Þ=?ùPØk
+|÷âàí)"ýžuòçÃ·o!õ­÷/^
+Žü9}ýüôà]²œKRhñö^
+ ÒÓã
+Hú#&ë:M:a¯è£IíÍ°¿á³i¿ý=JdEÑ»Nëã÷ïlÑoö7ßìotZ§'§éñÓ|µ^ŒúHº°?ŒL£1vâáÑÉ)47Ù}üø3èQ}ÝŠ÷Öïþçÿ»uø?Ðó"ÏþÙüo÷ÙÞg5þ¿»ûoþÿ¯ÅÿGù,/Û³".®ÆÙ2.îg`«Ìïöåcÿ-1âV¶ìgó²}H©y>Ë5sêv¯0yåÃÁôfÏŠlZÆïËÑžçåøõì²h#$óÙ€OmÉÛË§j$ùô0jmÐÇE>
+.ŽPý}¥à×ÞfólÚÊÆE9ä5¢]ýü?-³É|Ü+³$ß·çùìû¬_ïéÍçÀú:¥íÙR§³[HœžÞ
+i	ð#&H
+{#,v1XÆÞçwøyÉ¥¡¿Ë»9ð³Ê/#&,_QÑú}
+hõÇœ¢hëDîaïQßÔÝoy©£€Z6Ü­Þ¢1É«
+ŽžëGVqÀÿL{,÷Ê«t<*J,9åmX ­³ü®=¶¹rF9B/ïÆh4ÓÅŽn¶Ä"Ô×ïg£ihàÄZWDÅ6ò¬\äS[OKR ¡GèñËŒ7IaèÆ!o\Ç79;ozyr«C1Ñ
+ÖžMge[±ZÍ8ÊckÉÉÂ3OÝb>
+°žn¹?/Ë|tS<õ/VÕKGÈ3x;ßÆé;
+'ìLÅF?& 9gdì^feŒ}~úMA$xJ¯Ù0.P&XIt84>Þ
+¢ÞtÀheq·?ÄÝ^	OA0Ë¡÷iøqØÏŽ··mL[öKíš<:Ç×ÈÅâœLVÄ]
+úDK&íZÓOKJ®]:ôÒ01à¥TejÈÂ-aÉ?~>ÂQL¯ /ÆY^
+µ6ðÒt4
+iÙxÅ€ÅÂ0Å8x"41WWs9ïØo	öŠI!ºú4Tò
+é÷1ué÷°X%Ov4MªäMÚùG{ãq#&¹]Ô¿
+$ü°È±Ô	d©¡©³ÍÆÜn$Ö¢Ö+JNk®zÅUbð$YÊpSä9ÆÑi-œÏgEI(a×Ûün»`I#,!90c³¯@¬1Ëê¬þóãüì)
+Â5q7LåI
+Ðl
+±òŽßà5H»zW#$*
+·Á:ŠÔ°WöÆ!ì4ãÍyÑÞÌi²Ýæ#Ü/MÅÖ©ù2ÌqÖýw1|'Ð°€$0Ò=`V¡?6Û	d2÷ ;Ï6ßÙµj³:ŽÄÅž:Á7X×º$ýÐÊÀÕœÊðXnÈFë ê°%vG>BÊ#$Âá2±ûLÌ}1Jpgû¶
+ÞŒ	,¡£H'í ËÕU	:æq[<ä{mê^·?Ò!
+/ï¬iíÅ
+\#&hŽ"ñsÑÑtŸ(c|GÒ%&2\L
+³8mðüó×V*q€èŸðsJj$
+_÷Pj>%ø§gÐeý,
+¶¶`èK3ø%	ŸïÝôªoç;tÏmä[ÀÔDþ©yõóOz	a¡2œÚ¬õAÄ±Â%þt«jÅfè1fÓAÅ	³r\35û	wè<Ó]ºÐd,(dË$ÓGÏüf·SÉ97ÒÇù`ÞËË;ÃhŠ@ëø`]©ñlç|
+òÀºŒt»yV<<Ëº°¥Ðòl2+³r&Ë#)žTyo#&]U|#&Sj{~xãgêÙŽ³,Ê|1œnÈt®°Q0NO³!ìÔÐ9 
+i>Óûøï6»HDá×dÂ
+
+oŽÍ0Ñ>Iövvl9oô7Ö
+Qc^äåßxÖ7QG>zfuDlã_WFX¶!Ïz0r>c¢áòÄWXÝ¡@`«åp
+ÔÅœO(ÅÁöØ2íd6`É;7ZÑÄN§£Ò
+È©œ=*Úé¢è]³fL*šlØuuM;ÅkèlÈzÛ<öÞÐö«¥
+*7@3PËHê
+fÑÅjWsPX}Q®o÷`~Jln[(n`¹;°
+NÇbDr/­kÈFôajJÓãÌô¯&
+ŽN
+á€º··#$ŸÌ­þí¯GÀ­º#&Y4-VS±a~Ó§9tbFn€Ÿ6TÈÙ/Ö9e§sß#$#&	¯A­ü¢[ÒhÓy!oÙ1n@ŠyKE¡«Ä?|å5*à]EãÛ`-ÅO²rkKyÌ+÷µ=a¯²Èa^Ç,Ð= 2kL3QaÌÂÆºv©ñ4[â#)v,ÿ (Á>
+&ýrÉ?9Bð!#&¡ÛmŸ³·ö€uüæ=ÖQs°
+€ø5
+Üz£(ò€}íkN©aÂE÷G Ýâæ¡'Õór&œk|/*-K©ââu1_ËÅéü»¢ÈG6£9
+ðÚNÚ;ËÍåi°iBªyÌ çfù,å|
+ÆÞî¬&ùC+Ôó3î=ß`B÷]1ßpóúI ¢Þuvg€(v9ãNÔûp¹ÏíÇ.Ónü[î¡Ø°;D)R
+¥KÜ ÛÙb*ÅO€Ø0DßŠïù(»q ?Õ=4Æ²ÔCÍîªýçìµ1ÛÑ3vg^bQŒ}wÍ#&ÎäÖ»(Hp³j¬9lHœU)fûpŽ,çil±aÈøžiûŽ¢vNat3.©Þ
+lUn²öEM]boÆ]gf#$
+)ûuÓŸ>BØôµÂðÔøAõtV€Ãqï§êÔâÈöþhqÿÈ'YùpÙÄ2Ÿôêê>HE#$cÇKŒÝCÉÑNºËš¹mÕLzËÐOÇÀ ³ÎŠÃŠjìç{lGé9ýFþ^gûÁpkæó|$ðIXã6yþäÝ1Â« Auó$¢Š&íiâþl<ËàëwG*É"PäQ=Ð­"F bÊ_«ëE6ªq<?
+x%a·AãXv 2ÚÐzó€áã(}°¶ýyÌ®ÛÁV#$×Ì4sdN<j]L0$=xýúøÛæëCÏÎ&^k8É6G»ôíáÑ¶5µ,J©*A eAgÅb\#&*fî°~­ñ7ÅÜ>RÁà"ÆšÑG?Ó-edš\EžL=³\»ÎÎðUäbcÖiÅÂSp(ÇUeÝhyö
+kËÎLVÈï[Éî§+Vÿðù
+ü
+&,ÈÕÎ£þñzpßoè65Ž¡ÇLÉRigeÜ8×Ð15åÁ.
+9Ð,q2ÐÍagØÒAæfÆÉÇ`x;
+Äi¬ÎË=¥±²ß	Pm÷KÜuÇnOSL·3%ÅÄKæ#$=]±ºu[ÀŠ9§1fðæ-}MÌ!S
+`²ª*Íc«¬_)ÖñÒv#$­²z4à®fßUéŸ¶Uù¬Dj$&à,ú{öÖ0ÐmF-ÀÖðÇ#$¥Ýv{ûK{Î
+©iµ
+ÒØ22ÍÇL¥]ê9
+cÄ­QèÇÙ£4²iûY<Ó
+(löû4æQðÕÒJYôBËÐõ'V!Aw6.§
+O£»Ø¥ÐµÂªVu°,bvW).»mÓ1ŒµìfëÍÎàÃ¹EÞT.û;=Ç2òaÎtŠthŠðgRð§4®ºqÇÔÌ\šŸãÂCŒ ·#éëTLûRL2ÁÂ`ÒPãO«6ÅaóíOôUúú%¹#$Þb,Šá£ëøÑ£ë[£,ÅuSFP?µ6\eQnI.U	b¬öéÆ²õßp*oyo
+³ñG°œ[ô¯Ú¬Œ#$6éiµ±J#$^pðÑQ@àkEõÏYU³m³rï¥
+\êì¡ùŽïàÖ©à»Ú ÛÙäháZµ¹åÉ¹9O#$±78IB&jÒÅVS'
+
+|W£5Éâ)ú
+ŒéA§Z^9l£ÝÍdØ[
+t<THï4
+ÇHr€úHcTAÉ°#$<ñ`0MÅ»tÀ|f'CD0ø'Z#$¿»/þ-Àî±ÿýìÙÞ³ªý×Ï>û·ý×¿ýXGwE
+%/ïd·ýE{g¹³·ódggž³ÏÚoBÆVë$+Ñâ
+
++²þl~BŠ jÛ|;[eÝ«<·Fã9
+=úSxö·ß'çþ}h'Úaþ@Ý7ž#&Ùká4MÓb<+aIÂéò;qgÞË!S'j²ù0²¿}£¢laz
+Wäª7
+A#ë À¯³;
+\=
+×Å
+Vÿª,@ös×à¬F¥b¡$
+ÙðKð)L@h@ù7ëÇú
+ð`þ#&Òjæê.æ y ³ÈÛ.ŠÊAÔ%ãqµT-^ø€)ÝF<Žº­Î©	u@ÛÌ;xòÈbÀquØ/£È¬|æ<r€
+Éãu¶®dÜª]^Jíy) ·/Tàr¹DAÒ
+8æG2î36+GÂn#&­QQÃ5&uZ
+âHÐÇÖ¡©Ü®Ó#
+¹­ãÙ#&	âÜŒožÄÆÝ%m¡Ö,éÌè&Å$c&ÆòçÒ-óC&~ûakUì	·YT§ÙmEóL$ÍÉR
+Î+ÆßØæMÿÊiùÅÂF/¿Ì$øÓ-0ÖqÌ¶hmCä ÕÈR4%¡2ÇÞžç ÃÙò<ÁwY6§Šs¢sþF¬R¹EøðóÉ³ Véy¿{*XÇ¥Ôe:*Ð#$l¡S
+a#aÕs:äó©ÑpÔ')¬yÞSÞ€67°»Ö¢4w/ç'c·JÃèKleú{¶îïé
+ýWÎ*êpmÙ
+D	Ðá'*ßèþ-+~]:rï(šu__x» ;ã"×ë6ÞÏ&M`ÿZÀ]Œå¥ù3Õ
+Õ
++#&f°8îÄnSe¬ÓÑßÿÉM
+ÒùÇ¥yœ9ºæêŽí¡¢»ºcIE£#&ÑÓ5ðî%*
+µLÇCÕ-{ÐØòW
+Í2uJ7d,lYýj6¡Û^ÁÈ(ÉÌLðØTÊú['·#&aŠ~ÎnÆãx³
+Û£s£ÇSq«
+ä<Œ¬,èËuªâÅ=LßŽ'éáuì;»æcBÿH
+E"vœMfÅöo èLð
+uèå0o4HSà#&¥Ø/I÷2-æ-Y/Ãœè<AUMx>&ìÈVg],.ÃxQç[,
+ÄãQµzPÁ«&ÓGÇrû,Ðuì­ekæ
++¢ aÝ$u{|­
+t±qX
+
+Ù­@'7÷é#&Uá§³r#Þgu¡žóÙ
+õßÂÕG[©}5[yM¢þ=`*o*îV«¹Ž»õßpÿO·ž¿þõ?Öÿ<[©ÿÙÙyúøw»»O>ÞÙ{üÙ3Hß}òÙîëþµîÿýožíúï+çÿ|Ïú¿Áä¿wþ?ÉŸWÿÿ}ÿ÷_ôþ/*'Å-ÈD³Û"	Ý<IÒ¡ûÈªyõ	xíKÞëgœþµ&\öõ^o<Îo³¢à
+4æ8	Üº2¥ÍÌÁ«Z¶IzbÍ!ùd8g¡§è_Ì&xLg^mNËÐàzºýCÏÚÙrT	Ó¢ho:¡B+õGš07]·N¥®Pö.6)âŠtÅî>èé;(Ë
+žÁ7©{ó*Ø¿ÎÊrð#$qÅ'§/ÓÃ£·ïOÓoœ|}@	ÇïO+)ïÞ
+¿5p_ðJ$~¹q_Ieã#$Ùu¿	ú
+*Hù¹ðe¡ögS
+úòýÛ×/
+€'Ïß
+€ÏÉD|òmúÍáKùhi©Ð[eöRü,X%`
+òò»Ó÷o^
+#^0d/`DŒÏ¯Ò÷'Ð!Ü'nâ7Çß~{xôòøÛøÅ»Ä÷èà[Œxr\é²ì
+o{£òÕ,?
+gÇ$ÆÁáÑáéAüíóÃÓôø«ÿ<xqîŽH Òbqá7çîUhb8-añöÚbiÕÆ
+þ!^
+3[0åxQVhFÛ«Ùí·Dk²ÔÆ6³TD.'ê¥xåÙg^!ëtfÞýi96o|ï¿Šh&g·žÇìÄ·oàH
+úÈ*@^ê\¡s.üß<ÿîÕK4àFD§§éñÛ£Ÿ#2iqïé3)È
+²GÂU#$}ÀþÀSd·öúåèŽwÄ-úã¬7]ÌCœÿ%ßÙþ¹Àî|6
+ ÿ÷díH7'œ%ôpôe²ãÛ~ºÊu
+XÞ=Wÿ
+nH
+3Ò×b÷Çê?tBúgè°ðÑ
+»ódÍ j|ÙfQÿ7æéÞöèÊ­µ±Œ
+1ÙyZÈmù
+tò
+|ÂµÏžxÌi@íðmw©Á¹eY_$$OÌv0ÖD>iFE¹_ÑŠ8õßu²CýÎ4Ë_Ì`ä0
+GàÝß±î"œX
+Íe.,W|TõÚôv_!vÀŽ0í|(íþÀªÙ€iÚ1æýý6W%X?I&#&ÆRKõ#cþ¹:dx ¡ð#<èá²Ñ£œÈ%ZëzFÈÑNC%\Ä
+©P	ÑÛ#&p±ïXº/ºFÖ*H«ú¬^eSgª
+Ôú Ï{D\;È|1úžE-³þUcdÇÚ©y	Ægàü<Ï3,%i²Òá `«l<gŒ­¯
+,øa1
+áé{oN³[€jS
+®óÑt8žž$Âr<äD
+ËÅT$JûW£ñ ¥ÌÙ@§AÃÉŽ9þTÆãÙôRýuÐÜ<
+
+§dG2¶' b·/Ð,
+·Ì.³Œ#ç#&E`»€~Ýá[&vê¹Å
+WvžÂ+,h"Ïá£=œ#&²Éð]œŽ3iH%ûl:Ÿ{pSÜÁýDVŠ¹ù>Š±LWjvRfVžÐ$¥mMÞ»#»É#$Ž\OÌá|Û1áŽÄqä?L_N
+(~)!rÎ8Ø¬©52-eFÚiÀ9ãé@gßÎÜvæ¬®89q^6LIw2úógwü3ŽbêP£t-%L
+Y§@Xm®Y-ë,ôWP\Vr0Ty©
+æx@¥kJ*/Yž"oímh¡üpÀŸ7Žñö¶²néNAR;³>9±Ÿ¬cäï=žÎÚx_ÁBÒÀ"ÏÂUyB«#&zÑêöi5
+#&r Ð+{l^	þ1V»ùñáOŽ*ý¬ CÝi^RFáÙœ3Ú°n5Ün]#;G-3yd)"y,UTBn#³éÇd£Õ7.#³1ÜÏ,uÆ]ÄÎwû³ÅŽ
+©ÔÉ
+µÇr7|vkBp@F»±ôYØ/ïãqGE!
+ÆÃIµ")ž:éNJ=œ°Æ]Ë¢ÔíemF+sÃ÷ÿj
+ÚÀþ|æåÛÓpÅ«þPãªü>1[Uæï­®þ×*úûÊÒOº#&¢°ª RYB2×y°ºXàÁõ:	=Mp'êUjiU7ÜE;õFº/ÙÔ©òÕb]äPé¬òpZvŸc	Ïµ¢qÆYî÷Cº°°(s
+CÞ_®ºOgbâšù@ñ®:ì®ðd%]¢Æuu_WJnpmŽ<íý$ûýãå0N`gÄj·bÄt-_Œôcópi+G
+ç£
+.Éªî	ë²ö"þ+ÆL¿GrËŸJ"+ÍU°*Í}ÿ¹rPgÌjì`Å©š$¿þéÇæ1Ó*1S<XßTéí¯#
+ù6¥V#$ð}gRÄaSbÅ»Rµrñ'ÓjSOKãçÐVÔèaMÑ
+FR,núŽïÆZt	]Šºý|IÚ4{Ž±¡IŸÿ;}rrßPÓê;QwŽ0ºìžw*>5ôÃêD¹öVâC¡©ºÕ'Ûßw A&º~Ñ²¯
+ìõ¶
+:nß^úW4%³
+Ý)¡4@èyãv_·ñ[ûn¶û6ºMîv
+â1u
+üí€Õ
+ýkí)WŠtÐ=)óÑôµ;b
+ÎNû<µªÚ7h@
+¯AzÊ9Ôµ 1<¶è33ÑEÜAØ
+ÕŠCZn{b"u4æ­Õòð"Š­Çxæ©Û=±chŒ6)æYß¹µÌjõÇoNÞ
+ŒÀÃÉÀ34PRh«ÓþŽßîlaLšÐ
+Ø
+x&±ü£
+a¿F*×vÑ+È@.@uû×éóA)^Çéè4s¯ÏD
+LÍ¢ÃNô{l	ëøIã9=A¹ÇWe<#$âr4HŒ³ÀÐqD×V:ß­L#w8ÿÁpÏaì»â=œhÑë<ÊºŠ-MZV¹È#ßá'WsëZÿÑñ]Ù}awfk¥uþPÉŸZZÔ/«Eýâà[$cñléì¶ÍŸwÍNÛìVNNC·k@IïÕÝÚ:ÊÅúY¯'ª^fñ,°-Ž
+µ«æ}žÏ.ŸOîE^Ï
+÷¯rålU F°WšÄf²ÃågÕY
+¯
+O
+|²Ùšº>NùPUÈ¿¥]bLº§.ÌŽKs¡ÛmÍÕ$ôô$,üGužè¡øe/'ÃÕçŽ¡ñU#&4Þ
+þ¥H£Ü+òlT»#&i7G#ÒU5O}¢þ
+ÏêTdHx»§óhÅ èè}+­ZvÒ%Ñœù T6êé·q ëFÜm­§ßjÔzÚÍ§ÅÓ5®eu[ó0µn~>RõO×3Õ4DkB(Uà>õ£47Þ¬£ñÕ1kT,#$µzû]¡Žà/+ÔMÄÝBN`­ ío°]ç/+6æ=ø¯³«Æ;£À¢x,në7KBÖGÝW/Ó¯Ÿ;x±úÒMœì.ÙîþÃA,0Ó¯N_œäûÍN0C
+~táÚuVwyÜ
+s
+jÆ
+K`
+Yø8&£%ËŠFIraØçÃzÕ5çe#Ñðžs
+ þîL?jWz+w'ÍvÕßŠÚì%lq»ší~çÜlP 6
+SÑZÓc¶DSçbªÍ¡iÊKEÄœñ²ÞövaPÓ ¹ìwG
+Œ¡;ëåÐwÏb¶xÐ7Ë¯]o-¶|ðB/dËF[û63ºcj`é³zT»ú8ºz.»ò¹z^ºòÔØK6£¹U
+ó=Ãºv<ŒªM ¬w=ÔójzŒWÃ@ÏïéY!;qÔÔa~
+Ì.Oêù¥¢NÙú³Òófû'§óLs÷¢Š¯ŠovcšÈ°C`nIð¹ìmÃNk»Â»sðÝéEÃ·4ìyÆw¡MwÚ9œ©ž@ íf^Õž§«y³=ßÖY0Œ€ÈŒb|àKŽåEÂÊÏ~¬SÕ#øÎÆ0Æ^
+§ï€WŠÚÄà
+|ó'ªšÑ©ÂÎÞ'x£³ñ.Píd^ªlf L¶ðáÞÓ§ÊVI
+ÔŠ¢wÒRÎüi€ýÊ·¹ÈHŒ¡GÄd¿0ã+£
+wwüñégÏæb >I:
+S#$næWzÒF#fÆ9!À
+®EH&Î©YWxÞ*Ðàð=Ý4fY
+Ÿ=|urøõÑó×/Có©ŠØÆ§ïÞ@^ÊfFqðÝáéZ#$3>?}â(<õ¯Ž?œÎn§Ü@÷ÆÅ'_Iëd&ì|
+ýÔ4(üÑñ7ÏŸv
+.oÃçh#$
+/ÍUt&ºC»(Zìø\µ7mî_[µ®v
+ÍÁF®WS­Ó2áTAYH04õ÷¶qt
+Ãñ¢ÐSÏa©Æ5çéZ{¹iMŽ-U Fwà)Èt)« šÁ×VQÒÙpýµc]ã(¶¢Jäóþ.É×ßèèòOšEcS.>;·Óžg¹5þ66.îÊ¬ ^ò©8¬vFC6¢dœTì6!~º»§á(Üô­ÄnæçËÍÙ
+ºZ9pÞèËœêèûK¶zkež»³÷Ä²#$ÊoVÏ2°þ#&^<ìªàÓ0vwíÄ<
+cC°B±5ï×ªÄâŽÿ~
+¡SHQø_«)lýÂû¿§œâúëlú[ÜŸ'þïgÏö*þ<Ý{öïû¿ÿ»ý?ÝyÔ_aLQ¢»~!ëQÉ¿#&ûr×FŸÏäA1[ä}ÐûòÄâ`?AÒhÚ/$ÉSÄX
+Ò4Â:ä#èx>YÍ
+}B
+ÆcôuG`ø²ÚÅâB5}_]2m,3Ì@Ë?y,~ÛLyv	ì?ËÓÙÅ÷!®^iêCOK<ç/bôæÃW©ó
+o×Ùò1dºŠ`µÞ|C×Ëxž%8Ãáhi	#{Më;c°hÎ$Z]ÈBÆ.µ ãø)ÆnsbÊs¬I©e<×4wcÑÛÖÆV! p/Ù
+aëØç@/³ao1._¢s#ru
+Á#$ßºñ®#£KêÆ
+]ßz'E5·¶BYo\«røhÐC³eÕkžEÊG·6Ò+ô[vÀh€ý«Él
+ó®~q©Ï»ËSö]hcïþgïAL
+?Eµ 4H1dÈ ùL5ïøŠ_*¡tG¥Í/gŠ8Œ{÷3lq¶vm%ôDÎ©ûº£$Ç¶dVS¿ŠÞŽwçîAjHTã¬Øèë×#&V8);_h!öS0ãàiÈùÔ¢Á_ªrW¥âuqo]HÛšw"KµÉ&bœqBüÖzw\ëãçOã	bvD %Â#&mäM
+
+7¿4JeUQ\è!x&Yåõ	A2ŠÜÏo¿çRªæéÎõ?ÉJ5þ÷Çw#$®títj3³!<~«;t×/[gÁ#q{8CEÌªÎçuîžßCÌ2¢ÉŠ²œÝŸÀœ²=Îzœi©ørÖ
+øw=ÿ2»"nF<Rã{#$ßÚäÆNÐÃ·I]ÕG£ø=j6nW93§¡
+Û^	pÆE'.ÅCŠ6ãsÏÙäLŽ=1»tÞPÃgö`FtokŠ~g[ù1Ó1ÆÇ¶d®ÃPÏÅšsð«8¡0§m
+ÂÛ·bïŽÁû6xé³»óŠ`®>ÛiûRf,Ací
+Sç·œ¡èç.óÞü#&7MÐý»>Åíl"ÛÀBt
+,Û((fóZÅGäâ"OÉb
+bŒÅ4`y1Ø
+ÔÖéÛŠ°kN}
+ÑÊ58bbM1"ÎòÑ@&Cš5žY;Ü
+DAŒô°qã4÷
+ÿmEVæ
+ŸížwuBã×ælºüG<\œ×b#$ÄKwÃÝ:æpvŠìzØ8°¬Vü :~ÐÉ²e6»æz³eiÜóºÊDiÎ Ã:÷ŒRÆpj¹ZA)Àr
+Ýâ£3MZ5®È9tp\^þu|BWÜ|Õý!74]üóÊL{
+ZQ'd³
+Ã×$*à^+ïÅRRl!€k ðËÒÏ1#Ãå"Ÿ§s_KuøÊ#$§Ü)TÃ8{GCz;¡d¿(§&rg,ÿhjÀ»+C¿ÜyNqÃ:$ÒôtæZOäÎ£Óè@a:ÃæE?ÍKêRÏf 
+hÌòcá
+k¬þcµÍ2ãd}×TvÌ]Š
+Ë"	Y@ÉWšnq|÷*u;>VEª_J­Pï¡lX	ÏOUB3c1#¢a^º£BügÃÐPáÔžE]Ý3÷tô\u9h\·Ûìú²
+FŽßÃT*¿æè0/Þ"NÏ|®D£qÈÏEÉêÎ0Ä€~oRS/sÏw'æ¢(§Ø!C!ø$É¡Ûš«#&Bß('Ä}113só
+dFH±ýÍ%€V#&àøIÐNÅ®)M)Vê
+,:µ¹ÐÞ1ÅßÒÍËð³
+Ý2èdó-ÅA·ŒîÓ£XçC5-§î»EfË#$ÐÌÉ[N|v<Ê1f·hNmvJž{Ôñ©ÀóÉÏÐßnÓ>SFÍ
+:µ€|
+¢®ž£rtç\×G}LšÀÚ]+jËi%;9Ã'^-ÚýV%UmÿÆV&Â£ööÊ&Æ,ü9·»f SÆÛVÛX€ÑutLð¶²Ù¬©¯ò?6é	TØ8q ühólt"Ÿ>µ6Œy>gyI=lÅ
+XG¶ EÆ}í¡L«"Qâ¶Á®àÏªB=))6ØÙÖ ÈñH8O!×cdŸßR)×¿¿SDíŸâÌ=°gB-Çe%j8lp#$;CaÕŒò¶i¯Uñ
+
++cñ^ÕÙà
+kuÃ\!n;gù ËÃGM
+"à=xnw
+}ÖSÓ_¶w[5ËHŸé7ÜM®ÏFŽùÛÃ§­]'ãp]¥;Í³áÞ¹ßGjîDìú#Ñ¿ê -ú¥}>p YäÔ#óÄçSqÁzø$k°Ù¯^¿?b¡Ýd'ŸÈ 1èM.î#$Ë
+ocšm=Á%i_Q°^áRêæìÌ×ªZFÒWÃ,àÏL²4KÆBŒ`JnÆS#À*Ó0eM¡Uë)ââØÎ)PgèS)Øw«rÊ-Ì*œæçáDÉÁœég 4ùNœxî.S<âW<oðe"ïNF³bÁŽÎ¶¥eÛxBÖDZ°qa>Œ
+9Û4Õ§*ZHQ«n¶ZAÕ©õ¬ZíÒHÒ]Q
+êŒ
+ÍwÜ#&ÓuLp¢:x!ujŸÈµXÝÆŸ/øÆù`FSmÚWðHê/SõØ6]ìÕÙÉ±.ýúœH,ºÇª@I?\è"ÄL&NcùERª²l;bŠ1ëßÁ r-±Ñb]#&à.À'dýèðXQîÑRpcÔÀ^OYB];TBÑÒ±Çy±
+O+~Ì¡
+/Î
+ÐBõíkÿ65¢²l8#&¯bê&Pá®$.ðk 	Ï©š®%neEÊôžâ£Yc\`÷¶XØoÝ8ó¡º3+çäpZê®bmã<AçµPU÷IGëÄ#×N·ÿ?G(zTt #$v€°
+<Ï"-³E³zMgÁIcØX#${9lõÒFu!]\%(òzfY¯âm4P¹àaàÁPÃl+Ê\ªmâ:ï³ª`Ä§[
+'žtýljÅ"#6q!²v^Ð|M-§ÕÃÈÙç.×,Nâ`ârËQmujðQâOOáoJb ^ü*±»ËÙl
+v»ÑðÈ·Øê]EéSùL8/]¡Eyyð(BKOÌÃ¬O!#$yI{ý­æptÁª#&¹gûjþØzPÖèÆO:ì£žµS§Ø#Å/Þ`>#TñeXVx (€( žRõ[CiALB
+1I}£
+cDHô÷ËaôjôŸF4¯šnYÍAêw%âÑ`IÆÅ=B75ÙÇ; n`]Éýl;pÚ  ±J@¢Íí
+ÍO€ºæä >#Z÷"8gÏkúme¯®¡­Šs
+
+
+é,ú	í²Z
+
+W4ä&?£ä#¯Æ=|±£þŸe¥W lQ'g:ËSõ\Á¹ÎMåžåŒ58Zëöíæò^®œq·ý^\ï»5g^_ Gæ¬©?[YÝx1nÀ«lêê]€Œæk±WÎ{ÇãPã¶NNñÔìei=ÜžUº7tÔŽ««ñUOŠ¬#Ç§ÖŠÄMiÕ¿
+T@ Gf?·³iÊ
+¥
+§
+ÍmsÍ#$S5ïo{wµ²bøz.§$r JOá7!òµ±*Tå)4øªê5Ñž»²R!jí1u÷;kÄþŸÈ`vjÇYMìêÀNÍëÙöîù'Ià
+*
+úí®äUšN2ÙßSRÒ7,YÌžÝhoŒÖÔÒéh3¬«Íw:]3"š·YÓ7îèhÆ.e¡
+g§
+þ@ûMþÕCÃû_æ¿]üö¿÷í<­Úÿî=û·ýï¿füY®xcxy¯SØÇXé
+cä(w-¬ÐEp·ºâË>Eß #Ý÷E££òê»Æä8€d©H0x+#$kej&ÉèÈjoç
+ž±"+	ŸïÝô'#$¹Ò+Ú«äÓ(õ+mI^
+êçqSÛÄf3Fy'q¹ÇÙÐœœå
+{ÍÃš5*RAø¡J
+îÅN7ð
+#$Ûï®CÕµR5ŠÂukW=:öúå,¿I²(v DáXÛ\¥|Ry7u®êníŽ×VVm!p€òfYNÐÜ#&.¡œçS®Tæþ3r×=±­
+ùvÂä¡@
+hÛä#$^êµæ°âÃ³kéš6Ä¶ÌTÝmªs­Ñ)*9è€Æ`%É®]×Å
+n ŽÜ=lÒnhnüædï2o¹éN]7Úm÷í
+/»ûRË÷lÔtÙš0
+Í5hq­Ž`)ÝBšûVx Ðó=).)'ã£òZ«ýŒÍbþ«æt¯>¹3
+­&øA#$sx\0Wï°ò=ôèèact+æÀ2Ñ{~44w?qÓgdHj¯\u^øE3DÖ[CÊ#$DË;&`©Üð$ŽeoO^Œ;|{Ÿ:|}ÐÅZåÓWï_¿€
+1ÝSX«p­/æ]GÏí
+îA²yfÁåîÅÙsúûçÍÿ÷!`{_Iqÿý
+0Óf·Èì'§f3«YkÃ<vO¿N_p>ºÎ@ÀãtÅgg^åIàBW;é^ùÙH{LºÑeVXwfKsÿ·ŠÇ'¢PcK ,îyX]ZÃ¿»ž¶eÐ«lY,×5AÚš±Ç®zÅÕxt¡œFÝµÑXZ#&@?óªÎÚV#lç
+MÉv#WÊmèk2äë»$lòâ3Ñ¯Çî
+MîAs
+fÌ¶iï¡QŸUèjfÛ%ñ7Q°¯&ÛwRjhénœXä}hZÐ]`ªcõÚÚPØ¹·PùSTyYPà]cÉ»Uí{õÊVŽ^ï*àVÃ*~RCÆã`<»
+è	]ž=
+ø^gpÈ
+°CyÁ¬dKCóXPFÒf'®4k¶QM8Ê+G·4ì²Nßô©Ð
+L&»øoï¶«!7XÑŒZû
+ØÀZ
+ïk"
+	$Ñ{0ä&u4ÌÍ®¹nôÍëämðÐË8bóæph¹ŽS(J:ÀïÃ·î7îoõKËOÝ.­`BŒëÂ	es]1p6ºfCNhÖÝ]Š\²L;·»]2òü>ž
+ûÖ!ÙD#$h)wKE°Çâ/2yÖôÊþUüíìùöõ¶8ßÿCÿbJfóVÍéøš@YÉ%ºÜ°à×¥ÝpB»GÇG§veÊì\³(mkC<\[ìŸcÊ6Ç}íqýØÀ,#$dKŸ9øî/ïNxâCôÖ`Ñ­
+3­M6a4-	Ÿ¹ct8Ø	¢x÷Wá_Þ°yC
+@²­w+Ò
+£¶^
+¢[k#¡òâ]Á`ï#&¯v1ÊÐŸf%¡
+Ö Ì9¿ø'³&¡FiN:tïIz¹èåPUBâ
+ÔGÐi:'ª)+
+³ÞÈZç9+rØöïQí·T_ûË€œ×}ÜŸX`(á¬÷nÛr|ZÍ¹×}Ã§Xó^÷YG×$¡÷[tKUœ·»ßú¥~ªü(®C*g³i}NµŒk{åôµç¹òÊ
+)Wö¶ò"û­u¢_%o&ô®Ì^Ê
+AŒ=éiÞÅ)IcîÎÀ±ÕT3Ó#&ø3SúŒÕ€hà
+ºTežœV,rT á­{¡Ñ$Áž_f	%vo,*²$æ~Ÿ0§>äz
+iJM=RÄºÈPDŠ©È~P&ÕšnARP±çN<(m[På7€`®¶I~y-U«Ñ·S6C	ò.Öú Óa2ühBâÆJÍ\C	'Wµ1ôóV	ñr<»èÛJªXPM3­ºGAdówQ»Í§a&·éùÛ·GÏß
+žÄÕo	;t@^/m¥Òò-	v»;Nq$.¢BsêbL×JÑ:®é
+| f
+éºÌT/K87éHÇáÿO²	Þ~êíÝ ¡}^'ÅO°!ÁÀ4%ÖËQãÚY>AwÌI%Ãwd£­:å2_ôKöcÑ¬hÞvÒLWu³ðÖK²ŒSêä¶YØ,&;æhw[$\Sw1#ï|ÿ:â
+v4ëc#&ªRõî#uO_|#$íÉÅÇ
+²Ãÿ¢èlïÜÙ<bÅî6ñkÔ1±ÏëºŽrh'^Õß¡§þUa$â8øþûþÛ8â6ßPÂWAÑ\©	¡DTÉöï.oÑYeÏ,\À¹¹óé§.IÚÙÞþ9ªH e-_ÏñÒä#&Tò,-æÀÕ&%
+Î>ýÿÎëh²\ºK,hñÌx©#&V
+ìk±m¡g(Îw XtZ·ÄÙÝÍ­HPR<|-ÂY>ºYQÆ|#£ÒŠ£!ù|£ÄenkëºÏwæ°?ÆD
+ õbc®µÐËkHÏiÕÚjñ?ðd\7°ª^Ñw¹XPp Òt[ÿwÞË{x-Úgœé
+§ïÓÚ)>IfmÖÊPÚ%ìßŠ.°ÑÔB¹Ÿmáº«L/¿(ö/»9¥šý€oç[íÝÑ­ë:#$øê>t¬*y«¬È
+xq»7àõÞ^µ€G£²à°ŠM]éòßðæ¶êCø¯úÓÂNœöfPR|ÃÝO!ŒSöXA*U3
+wuÎþ5Ø®íl~ÞºÅâ"ì€
+¡`Ì<\ts<çq#$:n¯ËbÛ2í`
+#2€¡Pî_îÆ£Ô
+b?aI»íèt]udf	UUðº¥WäöUÒ,x«³6é
+:CAz3Ïv÷·©h±f&Ã
+æpbÝ1äôÑv£÷ÕälÄë"+$vYŠ[y}^«D|Ñ|R­>Sgë.šäîLg¹ãª[¥¶äªµîŸŸ¬*âïœÈõÈc\Äâqï"'dû7OH:ØgqLAvDØa#$yÿÀæ]²+PDÄîÑñ»7Ï_3p
+qÿ±¹&náá?§Qq4N©M4mö
+Ñ^gt1óV2Çîe¥)î?CÓØNžàh#&2¡9ÁÝ+3Ez2Û£
+#$§+P:(5ì;j¯(Áªî$©šø«Ô$"ç ³ÅÐ?fÈŒìÕêáUÍsô€±Rh²o¥î
+§aà(QëZ4Uzú'Ó	ì«Bù1ZEŠe¶ªOé¹£s];47è»(MÅ¹<*#œúLVw89ô@Èø±¹]­rçŽÙª($Kt8V.?Í;!#&Ñá?|øCô#üýGxö·Î·¢?#&#$'l~æyL«U¡Údø14jôI÷2-æá®k²"ÿyÏûüÀFŠÂÈ*{BIš%GÑZ>á?³¥Î
+ùGúmBÍã6/Š¢ý°T
+"txp1Â%9åaž*§°þUÑzübŸÛò,»(z,ùiÅt
+å.§ÀQjÙxŽøØªJ@ôráŽÜ€×ßÝWÐc
+XÅÀ8XðÏrzšÌ3CmÖº.$ù ð¬Ux;Æ9|oÝqoziüÒy2£6ÞêœÚ@|Ô|ÓëÃmžŽ&}¢×ç#&OÖømíÀ#O1ŠÑùøäÓ=ê¬ð3|óvûœ_ïÕ
+FÛd¡.>YLO KOfã^>*üJyäÍz$æé/F
+õÖ
+!B×ò#&Ž«Dš
+j[àÃ`ôÞÈçX.a5_?^j)ŽÑ&JnòÑ²M5¶±­í
+Œrg·zU'|¢`!kA÷ý^v+.VÐ
+#$Bjhc[\0V+)Aè6þñêØõpXg_¬§ZSÖMÄí)~zãñ]{Qàå-#$``Zÿ2g/°Úgl2<»[r2zÎ¢Jüì§}²
+Éü&fÏf×Žã@éóbIn$ï2X§$žâ>àÛ^>%³œòjTÐ}"ZUÄsÇåÚ.zÃl#Þ,é«Æ*æv1cg+ùbÊÇ¡lª¢ÿhšÓ]aº»íê`åcl\#&øD>licÙ/£ÄŸ,ŠÜiiJp#ºüÃ¡×á%o#$B#&8^¬HUÊ. §ùŠñjå²ÔcöJöH]UDË²ÅÞsœðÑµªHb¥95Y
+QÎæ1ûý$q67*Ó)Ì,Íâl.H'òi¹Ú
+#$P/*ï)-§¥XOB·ì!»EAN>ÓŒÛnV»zQ}aAµöz>T¥ãÓžMXätô%îìñ>H<Ê³Þlîh¿.'ž×#&^#$ì°;kNë:ñF#$=Uü7PZl©4¯EfÆ^UAs7ÅÆ³}ÓÝÅí=>¯Ý&'Xæ:9Ÿ%!ß7 &8
+äÐ²wQâ\uc-±IKÿlVRœñtºLü©¡ÉËÅÞ!1·¢ie¶4Øb.íÙá$[y¡cªØ-;Éš»¡AëUz!Üäæ£,^}`H(-[Ù0©
+Cðýe·.ßltUe9WuªLªÝ
+Á{7ÌU?º·#&Ý¹Ú¬sYý	bÌã%Ñ[Ô»±õ; TÏy«=`Ünž|±R@ßú
+vkpw>²
+W[àžHì'ÿúå2 ~v·#$úI­çLãš_ÜöÉ?öò«ÑS¯Aßô©
+v}\L¡_ùÐËN4¯Š1¡«äìhO|Má#zÍbc?ÃÀwò
+-BúüÄNö£_ŸÏšü<í±dñÃh²&Ž-ôªæ¡±DŽ·'Dð­rá!îæ¯ü²Á-Ö3nŠlîÃ·éËW¯
+`,B+ëÍ<&Rvá	ìðÂ÷®ØÆ
+µklÍ^Øÿ0®-xFÈk"PN
+3Ÿæ\*a,:9syÿjt#²R	:îoqe[CÌ-ý
+~6b@Œ¢ùXV
+2²qo^ÀæoŽÅc	d\öœÒ5ÓÙmmS6È1Pî.ŸB%W3 @'¹Èú3Øu}úø`N`TfÁÏ±M%QŸOíAÑdU¶möèÙÎÖ5­r2êç3É
+}Š?ôe1Œlp³©[I°9Àj>£ê«ä»#&6)¹­JI°)`³Øì>
+âJÆùbEºe÷vÎ_ý^È0a~G³òœM2-fµ%SEþÅ4ÉÝq
+òðgÜ³ßæœyxÝ$TRŸ³ëUnFñ µçäEsC3'tÈæ¹aÈìÈ³`Ð¯ñã¯}¥ïçÝÿëM
+<ÂüW×ßÿÛ}úøÉãÊý¿§;»;ÿŸÿ÷/yÿ/ÿÍ#&5x€Ô¶,#<ï»
+£h»Ð
+ŽùÔš;ØZrEÝW£ ¯æ~\>{q|üîexB
+
+X/³ñ H³°ó]'î§Åâ°óWûv®NÞ<ý:}wðât#$×Ù°ô ÎæÞû»Ñåã«YYÎ&#$Ÿ8>:9~}Âéàà(ýêý«WïR²C^ÀÉè¬Skø
+àÀ³üí
+f)Î³Ï-<dXÙmc1õMo9,&üÑ­¡ë÷ïNïC2PÒÅx6œ*¿À¶õbL> d
+œŠp]xÜúqí
+Õ£á.@}<î^gù4?Þë~'åà#&Fnï¢iC\ú€ÉŸ¢c(+Øøâ$
+~éb»ß}±ËvNÚ_!Mî¬<
+	ÈÁm¬ÅŽ	îÈ\Vq%~Ïfçdâ8)ö`Ÿ¢N	û=÷&^{º\d¹ÞÅÜçW²
+@9
+_Ñd|Ç3Œo¥ðº¯g|ÍêäôezüþôíûÓôçG/_$ÐÛ|ðî
+
+IÝSZzkÊ)¬)š~c$²ª#$r#$ÈÕí@ŠW£.JÔ@ü£éèÐ-°&7>ÒŒ*¹U0îº`ª(G
+³ <R³Ç[A§ÓÖ¿ŽNÛTËv!×%ØpÖËÉªÕf€g'hÀr¥Xþ#&»ãŽ@ÜÔªwÌN²ËJ¬=C$ŒìÄ2­}
+ÛýkdóÃ^èí\`	3øœà÷3+Ý^Î×
+8H4æÿùuô¯z¹íH,ŸJ`/;29ŠèP²×óy
+Lúèg5'kØÁ)¶P¶èÖ
+=¬V³<V*&ÚÕóc«¶€Ë×LŒÌj%~êÏ¡Y©È#ZÌÓÇÆêÀ=ZAkÍü1Í<òF1S#&#S<ªä`«¯hø\ÄVµc>²£-¿1^©¿n¯ªÑ?aFžÍqûæ2'>ºr²ÉZW)/ÅµIñâoXÊ»³Ú@ÐóUêÍwæŸêoS#$ØX©Æöù¹€,ÀÍbÌÇEM(¢c­y|Ç]þ
+/ø?\N²wÉ%6úý€;ôÞÅË$Ø`Ù°õÇËM0ÃQìÍ(¶ßîüomŠ³v àuÊlŒÔ9èÒg¿M+×-Ã¿N
+ñÚ÷¥	Ó
+ßÇÏUm[ÁÛ¶Žº5Œ¢¶îþªãOœ³×9¹ÿrºÎtÕv
+*<H°¯~¬u ïµ B+GmÁG[kJ1BDå3ÖfÜW	©÷uú-ûïAš©»1ÆË¢±
+Ìi?µ³ÜñqÐã
+>îÑãcJÝÒ×'øºKOéqKË<£2æõ3ý*I»RŽ«ÐÿH¯{#&_mÝ&éÂàWIzæÖÂI>.üÏ`
+ºÃ+Èj]IuwêÈêç®G=Eä3¥ŸÊ°òR
+vÿ:ízŽGuø÷?vÃèGf!€ÐÙý(ÞY~&á$²:pìÄOáî
+÷/þØ
+úóøó
+ònÜß~¶³ëÝxwçgáí¯ n¶
+ðGŒ.þÇõÌúxÊ*Pbe2
+]ÍnW/¬uèªî/Ù}Èú°RcPÑa\ÙC+Þùµ*ÆóuiÒ5ÄäÁó`_«8øJqÁòF|>^Ê+.!qpìÆ
+¯}Ã5ãàk4WP	(ŸWÂ3þëûî3þ¬	
+ì#&²ÛQq°ït^
+LLeøV"VTŒ!ØuB9»_ï.[ø§}t5ôá,<ÛÙþüOÿçüQñÅs Ü³¿á×ó­(#&t
+ù`F¯Ôð~Ö
+tÝ^®­È=€{6ÈÛÑüœ\:~Y,VdBÚC
+Îd ÆxáÁú®+Í(ÈÙZÄËÔüê±3WnkA
+ÑïØÈi#$Tû-vÐí·rEd­nÜWbU$×VóüçWãðxæºàñ€xcÚÄõ£ÜçÁOr6TstÈÎMìùRbÏ£]ø34Ÿå³éYpzðîMp7%pØà¿õtõ_ÿ9ÿ=! TøÿêÀëÏ÷>{º»ó»ÝÝ'Oïì=yòä3<ÿÝÝûìßç¿ÿÊþ_ÅÊz}5>^Õý+¹ÀÑRä]8.3
+].ò£¿Ó
+»ø¶øç/ÚuÄèìÝ¬bµÌ§;m1F®éø`
+ÖËôò$žøa/h	£'×c²[cž
+qÿvN]äP®±FÇÈH8îÁp
+þqú
+loË%ŒñŒ©_ÞiÙŒÄÈšå³+ö$ßÔ@`DÀ¯ÈRôzŸfÈÂšžÜMo{Ãýö[b­dlš+zæöÅ({#Œ	 .ðÈêxÐÆ{¬
+>
+í¥i°éÚî¶6.pt(#&&È0yøÉìC+F8ÒòŸ
+OFÐ²mB-ŒÚüÌÈaô(Z#$6'uÊ²A_ÉÅí\	³îrÑ7
+»¶ÌjWuO¢PÑó£\ª"è¶¡äi1ædÞÐ6Ž].U:aÃØâ*zA31Øeô`èÄc#$!ïÍ<IMCE
+È¡ÊÐÙ·îÒpŒŸH
+N
+@5jS×pÞjo9¯
+>S3T`fDŽ~%ÁÒa]ç9ô£¬cŽ=CuïÕ*¢ÃV
+ZY¯Nœö
+uQÀóèj/¹gæ-ïöÆšR/Ü*š
+p°}åõû,fuçUNµ
+ìÑ]ZÓð;xÇKµÅUk{Ò»CGY£)nÆY)T¹ß53ŒU
+¯2KçÕ¡œhÝ¿â)mov\Ø
+æýÊÜÆh<E{1EÜt6]\°êÇ',Íî_àÁ©OQ²0+ŸúÂ¿zýòåá;#X£Š¹.
+ŽòuëpM¹ËE÷qœÚÈ¶ÜökÆ88<õöÞü¢1w«eð%·ŒÍam9²sÝÅÆã2Uya{æÆOl¯1Æ®W±YŽø	¯àÇü.!<pcÅOð°Ÿf3nz6rHWzHµr])¶£@/ËÀE# Â{±Žv@#xAV«ŒºIÚéÒ_­ãz+p¯>~Øf*)áÙø°I¥«)
+<]ãÍ÷b:÷Žbq¡eÃ³Zó¬å¡Ð¬'X?ÚOXB0ÆËsÊšYù8hZÊ³VÌÂEþkýp}{þJ<Q}Ë@u?QA.#÷IæùöÅmÝ@Ë@^`#&"x
+Qk"O¬š>ì<~|öù®ø/B°ÆÔ<=k©ì:	Ö
+°ÏìØ]Aæû(ðÁ[çY/
+eæù×-	#$"h¿;x	n2dÀöìÜÕÜëÖIâ DªP®ÄDDú«3ŒTÈæáàlúŠ!µLG«lø%X
+º/2zIL^ÃÆ|<M
+zu"L\Á¬.hõq·ÌÔó#&t³®_.WVãp¿	#L5Ñíìäò£üÊ0Nn$4h,ÜÖëŠÉUúFdãqU]¡Ã+
+€;Ïgx%œèI|],~6a¶H«×6 =ÚŸOn
+öŸ6ò?ªtMtÊ>
+W°ÓNÆ°
+ÃÅx|GKâ2Ðn4?%«v3HCu&ú~O*JK!>Ñ-ùŒoF°ÒúøäÝ
+gYWo yß-TöS&(gó ¡ÎQ(tiôbâ.£^Ý,ñÝ'#&V6ÊU€6(°ïZ+ß<¬L._àJÉ
+övY'løJY08ÉÊD*:ÝÉ¹ýÞ2©A:tKµÃ M8µëÚS+b)¯·
+.ÎrB*ÈPŸ[Ä
+²
+×\6r±î=)Œ$'¶~$A>dw@7ípñ
+øtk1¹ál6b¥ì#$Ò]Û\W»ÑêÐwOÈË¯PùZžkkáÞçö4ÃV
+N.g|èpÏö÷eLŒçÜeÀSô;vnž¯B·à²ÅTe&ðåØ¡¬CÖÉ ­dD¿pÇgIŠwN/òAãðÜ÷ÓwI;Ümræ³àhe<²?$V«2|¿ÁM8w®¥<ï7îÂmö}ö}@gZeNiàÙË;(h/Ë&î« pã¿rìÐ©{6kf,G³ò#&	µ1Vík#$ªyxDÂRHiÛÀJ^1œñ¹9¡ÏHþöãã)(Šôý5øþðÑ=·â&Báîô]``zÑ»Ñë<élsŽó
+UÛýVoQÎ8ãàÃð ®Zê²$Dm^
+w¶+š:øê¶°:eãUSÝÆý0C­®§ldOU 	#$ªÃ<Už×ðávöZhøÌl)`æŸ|vä ûËÛ`ýÓš¹U
+ÚÆc­žËÈ³ºéáóh£>wPr&iiÃ9£têþ¹És=Û2}ÚÊH\¥1wT;ŒX\G¹BN XÚ&Y1ÔDîU[7Rv÷$GÔW	®6ax%Çºí°V	N¶àUGÔQ|ò<GÖoyÓÖUŸË9â­ÀÖ¥3öõ°ÔyœÞhú<	êâ:°`qðÂ9JÑ5;TW{ŸN¢io+5Öš
+Îœa;€4¯VHêŒ¶Uã.gF-¥!Bê9
+u#&#$"$®¬0G'§Ï_¿Ö³"RG0"Q¥ÎôêÍt×dù¹-]×#&ªÍíñÛ|_sÞÉt»ãt
+mÞËEQ7O8ùóáÛ=¢
+&
+éÅ?.Ý+"§
+b¡[ù
+=J7«AeÜû!U¬ÄÚÀJuêþLº|Ð@®&LùR}tªUºÅ mÓökÝyÛ(ïµC<#$Phù,^Qç€	éÐ!ñ*ésÙCÿ·YM,ÿažm'÷/%qÊŽQ"ÅvÌ§FçÌ¯QM$:Gvéhö:ëÝ|l»hok0ó'
+æx1È$è^ü·ñŒ¥Ž{9*éŸ7Óö¿Ž»ýBÓðu{4(ÚÿÀ§Ú'/^Ž¿Î²yà®.ÛéÓ£v:ïEûMï:£UJºdEdCyIÕ9ÞŸ¡žVtuYö.
+ã±
+ªW@üÿkÃü}
+vÛÝù]ÿÌ )œë6¥6íµñ÷òv÷Ñ
+Zr;w ¡:Ó:XG×7öÉÑäjgÅŠvve<Oq
+à=ÍZúÖVs:Êø7€¯¡~òRR
+eE§-iIâ!í[¡±)¡Á^=³!>Fü1æ^qyaÆ£>
+Ê<ËÔßaä§Ý=Jgç÷\#$öP!Q×y±*ÍæYcûAÙzøÒ×³Ã{Æäkáù|mðA·­Lêwºa×SµÐ*ÖPìºå¬oØÍD'á v€P±XÚN
+ú!AuRò5àkWaí<¶B,*öýè94GîLÚ¶IïäêÑÚ¶€ÁsºK6ûÇÖIð±OŒècnÈ6ÆT79Ú
+*CFaÍ*®}žÓt;âçã!Á
+®ÒÒ8KmÒÃ9&Ç-Hæ³4öæs9ÀÅ|KÎ²ºpfè€_ 'ò|a1âÇº`G÷,«y`§^žÔ²¯µUVOMG²
+&ûQ%»ê6QOc@Þ#&¶-)FàÐ.b²£M
+Ù*ÆV@C°
+eì¶hEÖ`+¥ÃªÍü^·Y×oâD÷ml8ªL)-ªë<cÿ°ë
+{#$éal9ÛÀA Ò«Ùìz%8Ã=Á0FÉäû#5Š-^§ÉhsžcÇöÚdQ}#$9Àž'B³]òk n÷""ÎBaH5nplžé/<§Ç,t¶š)ÜnqÕÛÅ(ÅðÛ€ÊÀG'¿Ý»Q€Ó!5ÙÌ£Î&<®ÚÂ[øªñp
+(4Ãétñã&³3:	Ÿ@núépÑ¶í.§Ù¬p»pÍÜ1ÃÀŽ«%î±Ù8¶òm
+#üª-bx;4ü#$ûO#eòŽÿØ°òú€cIeqâ²píýâW+9be
+4òKuæ(2¥?-€ÞÈz=oû¥Æ!ñì»ŽSaDÑdDyBù®OÊvö8¹Ù76nPpLu,ºë>3ÂO07m&¿Jw0%ÆrÃ»8~vtéAl¬¬â`{ã$am	:çhuXd#«¢ª«õ%ÈÛ«á-öæ(Ø²³Fê
+Ný³A6)0&{ªŒÍ`óW±Ôœ®Bl5Î6»
+&VÏÑUG€,ýÏœdbîºç×÷ýwÿý§{=Û«øÿ{²óÙ³ßÿøºÿaÝÿµj±mÛ_Žw;Þv"3W2Ú'A­À$÷	ß ÁË$yç ÝÏ&öY~@(È|ÕfœÂ
+*0ŸLòn1Á7M0~š{œ€~d],.ù6	íV]'é/gè0á(P­ÇoÞ
+Ÿ>HOÞŒE÷³éÉ7¯_'žvÒ%7X/#&ò(ÝŽñ#$å`
+À«#&
+·éà=nX8ïx®oZxïÒ>ø?40Ô''Ãwã¯ãuÉ6²hŽGŽj
+ÿj8»áxKõrï\u\.ã6ù­o
+ÂgË¥p¹€Ý;ÔÎÚ6
+ó¶lÕSÐì|M£!ßhò <Èæ
+k
+ÊnéÕœéM{  ú¡	êé8
+*Ø
+%`ýE:.paYÈ³iRnºìNY€~g)ÝÑÒK7>Ó{€ÿsó>÷2q]»~ÿkÕéÉÞhÖŸ-Ï£$/rŒg£¯l8a 
+®£ÁR®ï^JÇ`áòR#ìÅö±8Ãú¢&ÌGçêCåKéÒËljÔ
+P4WWÁ%
+¶zRÏtÅx
+<8²zŠ$UB}ÌŸš"n<ýº×ËwœêÕB®#`÷ô>(±¡Ü9ÃÙh"³-ºi/
+±©±3/QáØW4p$­S
+tA*òS[RREªöu5eé5&­F¢ÝêquöÖÆ
+ÛTd
+)vBréSËK#$ådbwÖæYuÌÐEÞVpäÛÀ ÕÕðT°
+Pi-×žPí%O,wçQÅ5ŸÓ¥§6­$ìâ<Ái¢1º¬Ã©sï»št#ÙIš@ðýÊ¥bY0~ÍM¥[ 'ð
+ŸkmšVæÚ0$J­/+{È¥rå6=Wj­ÅÒpiwe
+0žêt #&À@&é³ŒKFNbê
+W²µr)¶äœn3wSrºiÎYªßpš88ì
+YVbWAõZ©©µ%Úç®0RY,yÕ}É^e_¢á¡	e²ÎrÔbÖsÍ`Z­ž]béhožr6ãòtÐŽSªØJªÎ~#&R[öÓZ®1œÀW[üÃm{8¯ãëÛH;ÀôSX¥ø?þ\ÙnKÂú dÚ¶P}:µ³_ô%h!{#±ÃhÝê-§<*óì1Òžã<£!²
+MStÒ1
+g²tNzËï7Ï¿ûÏã¯Nôê©/Nß
+38ôö}Ìír¡^Ü¥ð%ý~v¡7=(þíówÏ_¿>Xj;5àÕNh@°Èê÷HQÁbz=ÝN©ò
+ NÚB¢Ù*BîMª_dh9ÛP
+ÚðùDð0*ög×Í±d°\o}mÖ]+C]Fv=§IÁlž_TÐ¢gœsÒU_DóeB×¥ðWø÷n\rèÑeÒAM1ñ
+¿ÌeL#$Ò€ÜíÒ®g)1Åá$îqâ$ê¥@øªÒ6œcnW®&Ï
+v¯	ìîÏÛ¶â_{Ço2ùÅÓiõ$éôewèæfç"º(3öìÙž<Õ«"
+òžëO1 æ@K³c}¡©[ÂHì~,{#$HŽïCb¯íz6ñ-3+®³»¢¶ft1æÉàmDïâ	i·Ÿò`!Ø'œ=ýÞ);ÚÚMùroï#$$ ;-6Ð¹œûIÉ¿onãË
+WµóRð¥ZÇ)úb]¡ï¥Ðè\ÅŸ7=î#&~Ž&ík°.ZŽ¢ûe1
+¡Ä#$xÎ3Œ¬ëíî§Õ>»R§c
+Ût)ÜT!ÔžÙ°#&\åe
+qÈ€wú
+	ÍAÊË÷!-jwX
+]dZÎ«,­ÑÂÝyŽ¶|.ýè4€L=f@ŒsOüM 
+µHšõu­š®C3=ÚÍ¥é5
+]÷ã^Þ&ÚvJÚl@²#$(Oç¢Üüc(ÊÍbÅ»ýªž·FY¡açN¢ èHšp(u4œŽä`Ý¢9`I¢0ÒeÜxE6Ajò/å.;ÙðDÖøÍY·4,7€dn€Íø²x «}l úR
+@ùüÈö#&yë#Þí±ž{œšóŽPì¯®IrÓðñl~ŸoŒÝMv(&5f¹Ñ,Sb­óùpòñ»Ø©ÔY1-ýãUnÞfÒ.ÖZ ThZÝjöÇ
+(#&¢a¡
+)sø|1äºŠlµJ«Axp.8D1¢ôÝDÎåÏq8J±O·Í_Am|GXßºÔX£Îº]6fp6Ùi:T'è¹¶ó5ÆâèŽêÜ@j"U2Ze'V
+êmÝc'±Wé@°q:Mßœ?r¬I$è­š*ëÛ³ÀŒ«" U#&á«IFõ;œ0jë[rŽ`šâÞ8w£(Ø4éç»Ö)ÒfÂ å®BÖŠÊ`n4ËÿÿlV¡Tû
+þÔ#$q'îtè2
+W3!õøt¡-@	?b;
+I¹sÀ(xX;ds)Ñ,uÄ¶ JÎGmHÕ©œÞñ<8xôTŸ¶ª1Ý>÷ªòÕ+/A4 %ºA{ÞÆŠÌGºtÆHwµìbŽÏ¹ÇcäU^3ªÃñ¬qw*ÉÙ- û#ÖÖ2m}áCº Yæ
+ n?ÁÌÝMÈÀæp¡²6<óE¶ñû¹+÷ZÁ«KßÕÃgrOÜšã!Ù üÇ~Âîyâœè!µïo#$+Œ44`$¬õèhZ$ÀMÙþålJ Ûþ6ÎeáÀ6ñfHoº(ï
+>£Ð÷gX3«<E
+0Ìè_°Ö	Y|âôx:¢óqêµ^¯
+Ž$ÆêÈ1
+QoWËÑF
+PÃ,¬#,Ï677Oéïy{s³àÿcüèxêPó°Ø|(U2W"¥ROKÌXlXçñRÌ¥OÂðF
+ŠšÐŽBuÀ;èøH «Ú#3÷zâÞ`Ü0ëØ/
+XýA«|€i$9ùI¬'ª§¥('úõÈª
+9ž]Ýñ8¬Ê_à{:).;N<dÈgÕqž
+|òâÝóo^úŠí\žÓÞþÄc5Á#&Pû÷hvR¡fYf×MfÀ
+N€:oONŸvE&£¢@kìPšw8]Sw_h<îêÑËÀRHhÎM"gÑñŸe,x»à¬î1ßèþ{ÞÇF²^Íã,žµö¯&³A?{ò$rãÒðWô°!šqëáU#&ß¬CÄ^DzW°äýKØFvs4m
+o9ÒžË`su*ídøÂF#$¯
+A¹¥htÃ&Š#&ÃJÑ¡ÒØtb{|±Ë!ÉÈçÑÅ#$­,!c#$§7£Q'eÍS
+ïHJ÷\Zù+Òù~æH¶®[œîtÔçÈæèE²yi¡ž,?ªš»ö)Hìyçæ^ ³R+VolæÌ"í*ÚŽs¥ÜHŸG×hôg®4Ä«øx§#$2{¬evá_Öú-&sovÓWqðS #&ÉÅtô÷EÊ©~SŒh*»#$Zëxå$
+òÇbLº9ûîÃ×Uý¹Ñ<
+hÔC4ôenÎZœå#$µj)ç$KtàFê(îŠqÔjÒÜëúI­:6ŽñÐ$kIßÐ5zÃÈeÆtÞd1Ç€kØw[À¯¥R®#&#åq«¹xišRÝZ€ÄV^5òAëA`¶
+«mñ-#p{Ö\d@gØXs4Ø?°ý·Â§lÚçýF¬<=pbôŸŠm²ws/Š\iíŽÀHëFÓ
+Æýõ©Þ
+Vkù¡ôEOÌÄf#&dË9A£ËÆ£þšäÃeÌr¡.Ü,ì#&ÇqÂ
+O¿N_;|­Í£/ùh^¯û)â6 µwÊŠ%¥7Dªc
+Éû}+vÆF,joWîµµqLïš>êRÓºÃ+ÄëàïQŠ$TÞÅëŠ7œñhÀ
+nKEÇïÚ|[ÝÁ¶É35Ò1^uàJºjb®.·¥:#ÆE5µ¡}ùR€Doü9EãÕwõ
+t¥ÈÆÜwï:»ãdËÙÝûU 
+ŒÐÚ¹GèF,Ã/YÔy{²(Jò¶Þ+Ú£²}
+?Ó
+:Òxû
+GEè6žéXù»¢laeðlU-BDVîÁërR?-Ø	3që$çù#$Î?I€}
+LDc/Üß#$ØVFPŽ3wºîáŽ¹V`ì:ÚÕ¥·Wwa}¬TuË­@?/<¬ûM]ZõéÑ¬ÿYIlUé®î#&J]vÉŸ
+¥«l«£1óVøûºæ{Üó|#ÞpS×±@ÝlÆlºl. ²%Û§{ÍµJx°ðÔÃÒÃÎvìª3S±Öò'1.«jŽŠ3ÊAN*Ó%¥ªñ#&ú^\#&
+êñ0
+aüådÞx±
+t8Z&MeucÐ¥gW{ï]aèêîÜSõW
+8JÖZÊZÏC6ðRß\n)GFÑ2â¡ï
+ F>1B
+6h^sýwÕz®¿vC_nö¡þmv2ÀÌMÇ5NSnuµ^œö¶Ÿ5Â4 èîd6àÁ?{út%ûÔê¿é<ø
+<í£g
+ôP¹(CãQçtªæVãèT&o²óHô Rñ©ÁŸ3H»JLâ"næÅ8ø
+ÒS&?k
+ÉËð*;!eÍ·d{bOŠc÷~QÇÛåî'I¹×ðmmw7lMî_î;øb×œJQ9MK@ 
+ 3$Ráí.ŠýÍ
+õT
+äöÇ.3qæÚÑ¡6x[9
+P+xÆbFQ_¬°äMžôVe}º°àtÊ"`%.3:y6rTÚ'Ž§cwh?Ð.`ÖÛ­"e:ÍN5ÝñlÒŠ1@GyçŒ6%Bj°ü³òoÍ¶¯A vn>Bí³%HÚ;öú7j±€Ç7¡
+^
+ÝV6÷c¹nÏ¥QAâ¯óf7
+ÄgçÞÊQ riÅ#þK²ÜÞ/¬¶3ÇÐS£A\Æ³4\GÙ«ÏMópÅ,YâV#&ßÍ÷£ß
+G3Ô0oR|l»T#&Œ8h_ÜÁ{DŸÒ©#{e»
+Oå©Þ`@§Fœ1_±s3|*Ê®€Ûé,vz^u¬yÍÀtô.7tŽ{ä[tFèÆ
+!gnÉC
+r'+FêÆŽ`U~µáº±Ã¥ÆXzî}°ÿG{Æß$7(íŠnŽmæ/&6Pï¹
+0
+èêN\%ÎhÒå|ôŸ#&MqucNÇÌ Pñ_Ñ¡bºœ  ÌrçT8©³LŒ0<èDîVÍÈhh]o :&<uõÔý=ŽB¡ÝÂWbSóÄðÆOûUýùr¶w$Æ>xQ!TõhŸÀ-ë8:b3"ß¹Õ ·ëûxk jtŽžCçÑÒI#&¶!Ó;4µ£­UÕà8ÃòÆ
+<çùUÈ=eŽ,¥eÏ9Ç'ªH
+©6u·IÓXbL¢e!òÞ­û¹û7ª×tí#&+ç4Ê1WöÐ¢q¯YåØF
+Šð<V»ö];å;ÆêpÃS _7Æ]
+š~²±²»Iâv#&Z?I~MDe
+°V&,Ã^u£X§·-ÇÌÌ[à5Qdå\.aÉùËë :ü9#làgÊ1×î*Y'hZÈÈa][)ÅžÛ
+þ`ÛÜ+$YM,ŠÙ2ìéhÑf-ìÇŸõ4èCbóì2.ïÆ¬Î;áÞ~N±#&X
+®Ÿüð!úS³ñžùáþÀ	Åâ¢(ñýøvßn·"|FiýËî£?E~:1À~£`8 WÙxÌ6©hE>eî\LC#&"%¯é¯§â	Øáš
+qç
+µ¡Š	æ{ðþNj|Æuî~@ãKtV8#$cý©`³èToÕ#öô#FÎsnþ¢Ë¥|Â-3çñP[ÉR-ùL#&ák<ÉÊ«Üu¹è-nÐž,8y÷"PÅLèX·º"8¢=6äD9:í9û.òŸÙÆµÍÑ·ã#Ëm¬öôëÓUÕúzÝíc¥^s
+x^1Õ+V/'qä	ú«ãÏT!ÖÕêš³É©ž"CßîS¿w67)vR»³1
+(u/O"u,Eñ8¿4».Ù
+)x<jéÊ£^»hŽ,ÔYXŽªÿtöÛOŠî/Ÿøñÿþøå$Ÿ·Æž{"¡Lâ&7H¬c1l }Hu)¿¶YF#±#Eð°ÉMÌS#$qT*Óä}Cã¢Ô
+>äÔÎ)Én|I2³-ÁÚøó=³#$;ÏfâEM3ÀEãas¯ó ¹WEÂLÃ`ñØñf¢©Sèœ@ŽÞÌÏ#šUçâ'­
+Ží]vžÙ4häÐHÌfÇ¡Ã8s«|õlvp
+ç*k©¡:W1iÅlµ³4ŠYk
+:1<0€é}}¹ÓŠ/i_6€ýÇ`"{ÕË£}<¹ÆW4Eøz}Wtçã^Æ@·£éãœ@32ëÛÝu'\é¯[­œÌuÕâ}F€rî­ØŸâ
+]Ðbþ1êÐ
+>òù.>©iX¥§qxdt5#ÃÄÑEÆðÒë8B"üRÔobÑ>EžÇà3ÚŠâ(2vÿ?{oÞÞÆqìÞÉO!¡C!ìs#$ýÈeóZ®(%Î`< 0±
+,Ëùì·ÖîêY@Êq7¯³îê}«®®ú7|]]×Ú°îÙvl°ìª?¡ÓšAyFtÓnP%#Ê8jpe#Ò:l0$©èà6B+^§[ê:ªúfâ9¢Yë7ËýüV7óæJacîúÄ	·	Æh5zCöQÕ~ìÜÎéiÍ g&èCñIC
+Ñ"òÙÔB%ë4ÇëuïÛ€lRPPÊe°Çº§8#$*_Ã¶>SUõ£ì­Ü&pU-œúà®-jEwÞLMO<W€;Up*ª2«ûÁ5É7+íÒ±)UÚÙqã)S R(
+l¿ÀMË»ž×)œ©µäÛÅbÜHÒP€PeÒ
+X`þwývIÞËJ
+D_x"®ï«\d&ë¢Ù
+Zkú¯ë2Pý. 
+Vnu jjÙ§7ÍUŠœ%í@³ÌU,Pøg>uêó5CÊ/WäõX)HL¬
+
+«¯#Km,Ê^:#Ìës<
+·C×
+tüÔÃQGVÕ
+€©`/f#þ8Kø÷õÁõ
+ÄZ	eáLp;©1o^³ÛsÖð¡íy
+ÌïžÉP<K6	Ùü,.7iftÍB£®¬µJÅYû+®6leµDÞZa:ŽØôj¥V#$%¯cRÔ$O¯2Âi7@«¢a'ÍZ²°:ŠÒØ kjÍúÉWç!œbáD34õÂÉDŠ3HÐ¡=ê8+ÛVÚ¢SM53³ÌÅë¢×êt/ÍQ|÷DÙ,ÁÿÕ§öðzüßýG_îígñ¿Üüþï¿þ¯Eîœ£2süðÜ#õNŠ
+àáÖ&¿KXŽnwÔ§Þ5¹ñ`È^_Ä8H\§:Xrv7Jø
+ß»2rþ5a/Ëy
+MS·ó(Œvà&rÕfýÍÅx6þ©nbPoFi²
+ûœ8}}ôG4:EÝìä
+ ®P«Þµ÷Y51£gGß
+£¥Iv¿#&2ºžû2s·Ë±À/÷{m¶FS/÷M	ê}ößÝêÕ§îõ°mÕ<yöÍIŒ>8ãõ§Ž]-ÓÆÃ°9Ô/'Ëao(J8¿?Zb£Ù}ÅlçŒy{üâä{è
+áCr0Þþ{^%2ÂßÀÎ/µA=ä}SwzÍýFKnùºf7Pgø0rÕ&D
+l¥^!Jv÷©Ö4dß
+\DgGíWoÞŸ>:>;{ýö¬ýúÕé+kDÅªÛ9õŒHÍ(µÂLñT ñ ÃF£Ö0·¡ô£>ÐÕÇúž;]F­8pcÁxúì+ú±sÓa1
+-Iü¬;ãKÅ~»
+6XX	ÇµžîükŸaìÁÉLqñÊÚíòWï_~sü¶ýúEÛ÷BCÄn€Ôû@6åóã³wÏOÞ2>b.Ñç·»áîBVr(ewï4ù'
+­çÃTÜRxÛ&ÅaçÃºg1ñW
+ÚŒ­øÀ³ú|heý%EcÆ®¢yÅ3û¹õ6qÞkCi!€° \lêóÌxÞÃN@Tâu¯4xF]ÇÞä#»X25ÝØ5œÒ
+°ÃOs>DÝ®Á?éÌhÃf<§ÔèDkÉPÄt¥ŽÞÚÝ¥~<
+uVµ&#&ØW±«W¬(·p»3é¡<cT]7Tª1Ûþ'amô8E ÇjV¡€Ñ[gbŒËF¹}lÊ1Õª4¥[/;ä	P
+^Õú«J!:nÅr(îþø8ÞÜ#È9zÌØTzüÖ{¿gIäÖEž"	&6mJ4«ÉQÁ$iLYê×S @·Kn[#~-°Ž°äžyëé#&Ú5²*Ú£#$oúUïÀž5§-8Å3L?ß
+ÿéÇ® :Ñ£ÑÜÇAoqe) lÔîNØ!3=FÎGÛµh÷GòmSD|L#&sŠ¶BØ+¹ê§iÔM`ç«LXÈÀ^­ÔHO H@Úñe
+sq×TÜu¿?Ø§ ÿÌ}_.1)R Rp	µ®`·	Þ_UM=éx
+I±T{CÅâ/¹-ñ
+îIL7XÜVýhÞî#$üï%ÈðçŠÒúFe¯¥
+iÖRÞ®šß¿âÙ÷
+e
+*5FüµÍT
+!7ä"|îQ$YÓìœÄÎ£Bg't?KøNTú®+³ŠÔ{ªs|g÷íNÉ)7Ã7ûCew#&Ah0Ç'¶bµ]£`cÙ{fñ.p9žéeøõþm©_Ö+UÎk?á¿U-X_Ž,(û2·fz*ÛGèâZO¿ýºŽïËåj" uçÔì3íîBo¡ÃG:OÌ¡T©qc&Ù;§bç³îœ]LŠS¬d[Pì.ó¯\@ž9*§Y[[³ßM:·+¹`MTXQ=ðFßÀ÷_ÀåV&d³Dž#$Ñq.`Ú.÷{L£ ~é,RWT
+
+÷ó²nt¹~ôáÔ
+Éœ ä
+H01º±µ¹ž£75ÕîãÜŒîwÌH{BÜ	­6>Ür#$^k77jéb=	}æ5Ê~B5Üu¿Îß¢Y¿_¿i8OÝØBsõ#$7c%RïÉâY¡`¬ã¶ÔsËegdTM-÷æË
+í"C7è­š¶u<W5!°RÔó,+Û!úþouç­)ïµb¥ësÏóS)ÍþÉµ/#$Âg€3ù e.º±Òï	w-
+ÐDyC?èµÄËõ4OaÝš=8Éo7Ñ`6²p®ðxðAøiBôYœL2äØ¬ò­ËVŸ%°YËZØz:±rDD_i§z9Id0Veß ðýMÖB±¬±`#&hâÓ4šx¹ÉÒ
+äh·#ºüy[¹§MÆ
+ñ!-¬qLcñŠE÷fJ{§¡RMÍÈI#&#!Y14dnÎæ6è\6Vu³lWóŒtWK'ŽÕ%KA¹DJ/êóËsœ®"&l#Pf¹,xV~­À&páÈøZ`¯×sÄÞ7íÕØ¹+
+ËË7UPåéò8D%Ý·Pk­°käÒaãàNCÍ
+köÉ^13QÄÉG©ûb'ÜøGìÞÑ0 °A
+SüÇcþììÀ"\­ÜÎJ$*o¢úý12ñõáä#Êï¶%žÌÍJ«ßLoåh#U#$ÿIÄg§Ñ
+G5*x!ºÄ,o®j8Ú9vÆEN<<ªùÎ
+ÑÙÜÌd>ÿå#ÝûYHý+ü?>:Ø{üUÎÿãG¿œÿüûŒ'cÒþEšv¡±ìÃÑœmŸõüøÅÉ«ãçÀj>?y
+çøÓãô`ó÷'§ÏÓG€¯û*Ð/Ó\ºJ©&šQ
+M­`ÂFînÕ7ªp}¬þŒ9
+CàÓæiT¿
+,*õó¿Î*õ«ËJ}~3®Ž_Ÿ{Ui÷:³îŒrô§³ÊÙÑÑq}ežìIrÓNŽý·Êï¶W©ÿn»²µœU©··+¹=êÝ¹üŒÏ¡/ëón·R~Ö>£+j.ÿYÿrNN··nÿ#$ÿ
+Üñ 
+újÓÔSþ<ÜŠ_
+~aô¯øZ94\ÿjPyýk|ŠØkúW	®.å`_ê_#$¢õ¿4©ë#&h3sYžMXÚóád8Úµ*ÊÕ€ÊV*ðcÐºW(L¯ÆE)ñ19)DÚcêæç
+:ža QÊ40ÐÄªzl@¹>vÈ¢œUBèª |Ö(ÅéË,µuXÛ
+ÖS÷0a¹c
+D¶æ¹3§ã
+E
+!{M>Cüø¡ï«8¶¥7EãÑsmôék»¯œÞë,:Ê¡ÄŸÓô1+NîM\ß'Ò}é8Åöµi}Z¥çJ]*D`ž ±5êËª`œŸŒ<fég4®
+Ü¡vH÷{8Ô#$gÌÓxø\A
+ÛbS#&úâ uZH¿u#&UÎqÄdðjK'Ú<©ÜNpîWzÈ"Öl2Ÿ\fqÏÌ(êåt#&·2äá^éñ)<2·
+z_*l
+öGðstÉÂ/z]­ÞÎb7
+º}3CéÚÐ­ÌÁzkúËrÂã¬åå~kËá4{@É["5fÎØ³Ž;ôö µ²ã|}"¯éÜþjAÇ÷ýªA²T=wž»"!ø"Uf8/B¢$è[õDï©<õ`T×!c$É®_
+/§Q(Ù3$ÎDêm œy;vt)8©ÄÔÒ¹9î2J9vhp
+tiO°Š©ëRœNyN$
+üæ~¶ÊÀÜ·1ŠÞÊTpÌÑ	Åô:QÅPñyÓÇ¶#&`nè:EDUd.á]÷"TC×ªj*¿.ÃÙ¡ŸËŽÁ
+ÀÄÄÆÒÖÀ »IIDÇÌG#&5r2k÷úñì·)y)ù 
+SŠ[aÿ^SÖ©Ì#$BÏÇ«>Ätä:s'k"¡NôPT°3-ð£L{¿gÏ
+ªh\º¹óáï
+qñÞ«ãKÇ²¬Tœ¢|°$±3HH%À
+¿Ô3
+nª€Ä8ñxX
+öö'kŒ,¡êÑ
+ñ@©ŽØTÛoFJ#$+qÔN¡Žvq
+ÑN[QÑM!¿Y9
+*í-4>žh`S[`#&öœ¶¡jcÂ€tÁXAEu3{^ðÁ@ã©è²œÔTQsÅ:öH:!ðÙF8IsË#&E©AÌ©ý@œ»Š®;û-èFË€tÈßUê³jà»&ÛççaË#&éÖ¯ìÆóågdáçl¢þ	Â¿|yf÷¿{œÞw
+Å:óÁMyU
+	bÈŠš¿Èuæ>
+NaHNB~÷1\©"òðÎeX>Éîu¢gÞ+aa
+rŠ2!rofaá_~ cž3¡;5@Gð|ŠZœ«}­ÜUpyÅz§WéÔ~ŒBŸâêàð§ÀÕÁ.œœoëú©¯Bj'ÅÂ	$
+©gS=ï;(ÿs[VœqX¯
+Ôfn%š0!2EbCõ}î>mÃ.ñ_ŠEòŽµxº×0]XÏgJ[lÒÚ]ÜT
+ÖR$þã[Lås#$fµÿ§EaïlóÉ,
+36æ.éø	weqLXdx¿/
+÷Èõ Á§©
+V1PU
++.BE©qŸ»'jHï}Àuš/ÏNÅ|÷³
+@k4µú0ShÜ¬+è+#&r¥~vþØ€²¬³sYz#$ÏmsÏ{/*êLÆ
+
+Ê¯ÃqJw11#¡ÜúZñÂÀy
+æáØ­&_A¯ÙCa4ŠtI`pä²ŠŽê:HÚ9·ikO.2KÒí7œÁÅÅ
+kS×ØÅ
+¬1ü)N°µš£Ü°ž"IbåðÙ0
+ÿŒ©|îe:/cHÎÃžÞNØæŠ2úÅ&ÇßÒ
+nIjW2ìXO§ð-Æš<-""õàhÄX€è
+ús®eÏº(bÿéLR
+Ö€GþôìQ95ìvlL0åÉ¬LÙy
+77ÑÿOT#ëIk.änŒ<xÇÀÃþÆùÀ+³Øt.¯./ZAêúq9&Òâ
+/"g2p(.G¬"Ÿ·R;¹Ä.Ð#»Ì%V
+b&Ï¶øZüÔ2èJ]5®ÓœÐm³qÝÚll/¹HÈhØ`wg%Dü€£ú5³®"èj-ÈÄqJè{¥Ž@>>%ú÷#$Î
+;B±ö2_PŽª{Zª
+ÏÏ}1%+¹`×Éz7Ê
+ØÅ/vÛëgÌ5ylÃ{¬µ(²eÛ.éfqŒÁ{5ÓŒl;ÃÑùe]À
+N§W8ø²Ñ|.eÔåõåÎiº§Ð§âÇ ^XJãç%Œk²±òÙÅÅ`å^YÒê36.šCóºÑ2,3"xµ!t¥Fª°	¢ÐTÓ€.ÞuÈì3ÓÔø
+jÑø«ôàÉ¶»U1+#z¥²n{ô6¯$ÂsÝäôd15óO1±Çî4Œ§{%ñn#¬dçç¬+Æ`"£5Ëþs;è{î
+ÀÊM2eá
+òÅh96ë©¶R#$ç(o$
+Ã9Sª;Qur#$à3/1shþcæÀ¬#nÇÛ#$µeý±»ïËÓZ^Gí5œ{r7â;{ûs»û_ÚY~Þ(ôymØ9Kniðr"ÜwKs?Q8ëùyâl1,úl]ÙRÔë
+ÞrXx#$ú°jLSc2#&M%{=]&¹vÄÂ°ó8*(ŽJ6baÓÈ9Kh¹1¡+ò[A42N¶¶4€páb~
+v·Y)87²B§ÆMQq«Ëß.
+." Zd³óÎæÆ­ø%¹ûlærùãõ^Þ#&×ø_±hw¯ù»W«0E8ÍÂÞ±gñfÁ@Û*òœ<a-hÈÃ¬WM`tÒì+Âï(Ù£yëACIzO|.?3ÏëôQsÆHB{"ênãî&ô
+;¶#Ä7ÂzÊÊäuæÎÈÁ]Û
+
+Ð*]yÝí!û;sÁ§'ÝkÆj'Å:šâTA,]R»e
+I#$ÂxJèÖ
+)ÖÁ_§×Ÿuše³ÞbŽðÛ6äk
+b>úakþûhëº @}
+;ï9öïÏÂ$.f2÷ÇcçÓÅô5ŽNŠqpÊºÎwtŸA³óä cL=ê«@Ÿ¿¡2Ûæ~«N«²{3ù4­âç&%jJŒ©WAŸ\÷%×\GñZvL×1§¶1J¬6Æ³þùH§Ðla·pw»hNaH-­¬j:õ`«g)ë*¢Æ¿)`
+ÛŠ
+Q@[À	 CZðÒ#m¡úäºÌM übIúK¡Ê(E¿rßH€áÞš"ë¹7áÅ4+3·î`žsŒ¯WÒïÅôm1Cšu¥äÏ³ãwðv2<SÆ~çjÃ$\"µŠK
+ØÄ{5:`×ð€Ü¢M%ó	~Sšd90ÚÿÚ¢ëT}Î¥&§
+gq"x#&Æ­X/õÄÃs=Jµã] Mù¥ÕJJu¢ìV0,Ñ
+|Î×±\ê"
+W}±
+#xØÅ=Óê«®S»»p«'}+üŒ
+	#$Or+Mñá
+h¹ÞgEnq¥ÒªkQs
+LA`£ÖÏÚ'go¿­ÁQÃßïÚ/_??VÇ%îµá*àòÚ`ÚuÕùHAkŒ]¶?9%irA­Ô¯ÔœjyÂÐVÁ­Š¬UFÐíAX©Oïºüù]³`ñÔu6Ë:Ë*#$üí?ÿ1ÿqößÕ?Äpœýßã¯ödíÿŸúÍþï?ßþ¯?'hýïä²ÆA}DKØ*a)JîB.D#$e8CÌ]ã=Ýž?KýÛþ
+&gd`#$bXÊÄžÀ$Â +	A+1DABXçÉ,/&e°gÏþtüŒýìÝ»·giDž$òS¶®â»­š°Ãå®ši·D¡©sñNMUCdr3x;ç÷
+^{ôI'=×DJÞê}A¯Þaæõ0W>€«Mã
+@÷,Bê$Ñ7¬MŸlM/æ×îv·Õ"
+L!ªœZ4¬ë°,SÄ_ËšÅ
+#4%ð6ûcAÈMœÛèvdÒ#Ò¡µ"DŒ'{šÑFì
+±å§ÐùÊ#$."#$B$ë¬ŠT×>Ÿ¥ñr¡FÝª>â(¥ªÐ
+uÆËþÌb²ycDÐ
+@Ýš1ÍQ]49¶ÅàøÐ~ÜB
++
+ôd
+u?öL36°¢Ôâú û T/-ŸôÔ
+ÓÓÈMjö"ÄX8îK5;Ü<ÒÞHq×ñ
+Pœœ/6ò
+-!+6µd^øt. ±Î*x[k« .Q
+ÓÎvBÏ]à¬µÎ«#$B#&9mï]X¢®P£|Šfg)ØvÜävu-Xôsk
+ys
+SG{ÈtB¯q
+ý°@P[*©ùfP1\l m&¯ñL£ÓÏZÆ?¬èøeÖQ¥þg>6Eh·Ó*æT-€Áf#&Å²";y#$±¹¹$[tyõÜÓná5|ŸzÅ{²9-ëæw-¯_ÁŽ3@ÜQ`.ùÝ[<Tè4«¡;@­õf$FÔzúÝñ÷#$¹Î çOÂs`>šÌú
+^ÚB:
+¿Þ`atµÌMæ>â×l/ì#$ý²[ï#$æ+r=21vêÖ:§ifCŽtûjA'âæ<ÿTÅhv
+Y7ñÚwÇ¯_yQµ>\/T+a>¥vß>ÚgÌ
+Ì0ãÄð<`£XÁwsõ)Ø¢4AŒé{v¬!yl'Þ#$W`X·:#.0ÇÕMqèuH£sc482Ãä6ðB¯Ã¶nÔzçéúq¢ª"X8iï|'ª/F"ùGv²Â~#&}+
+ŒÞr4%ù×w÷µDÓ
+äÑÁÑõTÂT^ŠÉmè5ÓWéËúHvŠ\@»Ñ¬
+ÆV°Ý
+T,at%;\h:^µm(6uœ«ôèÅ·mìô³VVDÐ{U€S¢UAšŠN1äéê#$é»5§k^Òä% ¯ò]ºôRÇŸTØž°çL
+ÕÜ&7ã1¥öÌc£ÌèPü`Ë-iâûuì6²Í(^mUžw¬#$Ûmà'PIjÏ^×$;<±eV.D[q<J§	
+òÓÏ±÷Òšef(GÛ9Êár~å7#$Žòå²þF¹<õ aÁøt.õ>Ö&ãÔKŽaä²äÖmÂq¯Úó0}³úÇtk6fr6¯³A{2œÆÓœ\\Ä¹n@ºKh^
+,Ú
+Ï°þf38sðÕœRz^«Öî$â
+`®zß/Tf-ã·å|ÒõNÐýÊl©.!#mõ±gLúcúŸÃtÎF%yª¯fßÌx+ž¿#$Û+ßcÛ=ÑÊ¶GëGìcUÌgn¯lª:¥SÕ)Î8ÎñéÓÈèé
+FÛ§SN¬,œ±yEŠo.ÞšÏ£Vþ­3gH4«qQKž¥¿¬Ïxî3~Åèe#$MéRÃUIÝÇaµÆ¹z¹>»Úè8Â!ZñH#ýîS=Xzéñ3åW"ŒPª
+Á"ÕžSQûFQ»\>æí'{w8gMÑky'&%Ãy.µóbš)ZENÊ
+·æ¢³\éTË0«®ì
+2ÚŸæØÄ²ÚŽY<zä³-ÌŸøë§]û0ª÷TÞÿzµ¢Ã7¿Ê?©<øëQ€šiJêÇ¯^¿z·îjôÎ`[#=&éÕ¶Ùr\©"
+¿
+¬V.³ùâAááu'Í(žË
+>4ÊÌnq~ôGÓÅmcíí
+çÀ([Kbâ{ŠAÇ·ÏÞ¿xqòœ05¿ðÒù#&ÇCë¿]\nA!-b(W%ðWðÓÝßQR%¯óÚç±º¥¬nÿ£çv©Ù·OŸà£Yk#&áH$>/sÇ
+ïÊ0²¶b©ÉŽK+Õ
+)K3ÏFÌQôdªUÁgSLÚøëHbQÌyxQ\ #$*ËC/
+ù<_·ž
+¥ µDª^£HÆ"Ó@³ÀXÔ5	ÝP`µaÄ#$ÅèÈjž«ü€|o®M59C~ÐéÄ7s€JåWãQ:&ÅÎêRVeà,Í!w9ýöÂÊ»××Ëð·Í­¡Z lAh_çDs_ûÔ€Ê5	=~(nX[³(1iâ<ÔFíšMÁ5ç®
+É]AÀMÀiq7zYÀ²ýàåÎU°ÃÝ%$IµHYõ
+O×ßQb2¯qê¹ÂxÎ,Ádå\$ïÀÊeHrtùÑQe9&²£%
+È9ö«
+)'tÞSyJ\E¥ºU
+Úë«HB{ô"åN¯gðõp¯hÜ)Ç³"h!«E
+èÍ>³l9ÓÈïQk:xDrSUq²bS_ø`§cÐAMñ~éI£Îu&td©8É6Q¶LßÄüV^ÞD_PñÊdÎ<)£Ä}|ñÓ	ÛÊ$Îf¶á¶ØòÔÍLÊÐs»(£G¢+œùÙ(nÈkªåÛéa3w04x¡/ôgõÌèÑÑfbÎ¬ÙDÑ[VÿÌe
+²MÈ2»|#$çlá{MØkYah²HoÒ!>àåFºšVàEYÔÃQ%«ŒðUÈ¢Ž­ãl?õ7
+4`D)ºÀŽ-«;ÁÑÄM,ÚÊ¢àK¯©§­»u9Ét[{¡Å°!ÁòÁCŽ&Êc>°j!+@±H€^æ¡
+(9zszE%ÉÞÂu Äß®xÇØC[^fç<ã
+-|K,œ·B=çÊ³¿}XŠf®	KD`v×ô#$Ôväå¹èsîu}ûÝ¢)W%&€¯®ZlÀÏ@käÛdÔ«lØ#$ã?e@ü2µÇfz'¬±<2Ð:šãOÊnºT@ÌLvI0;èØiò`|)VaR®ÁsõS¢µYŸQËM3ÅŽ+ËÎçÌÖGô¢¹ÙÌç°Ëô 7G«t&Ji*Ï¯ì¶6ãVÙ~¯hÊ4ó#$Ju,?ÇQ6¢?ÃIJ³Y_Ù/6ðöÝ²Ö"Akü-Î%d X¯
+¹Ù\ÊŠ³ÉØáÛH>Æ_Êš3^vmuÖ×œõØ^	#$}ÁÕ"3ÊK%*4ËgXp¶QtÏuÏ_}ÔAAHrÔKSOtÝë¹²T
+ôMNŒè·ãµnÊ
+UÑ]o¹Þas\\M#&gÎ7%_ãd^Ó7}ÿã9ßÀµ>¬Â".ëQãj
+ªSiVµ]#&Uë-Ï#$Î{UAœï2g4v\k­@JspU.I¡úUèggàÆÇÏ÷àåÂÓm_åRâ(ÞPBÇEª=Î÷ÒyÛöVé
+éA%S;øá(dnÙaŸµYÊ8{9¢x­Ó¢®ëÈ}JsL"œ÷JÉrñ€Ø8ä¹µH9­® B)Çe%Õ€s`rþ£ÙÝÂl€E"i{ð[eøÀc°Dž°HÑÈÓDíÈÛ$PæDo;ÂQŠ«LJ³­êì]ÒcFâÉNA©ÆåmÅÀyÌUJ'Þ€PÖ¶.t7¶Zsm
+ŒçZŸc1þHÍÓØ£Ïp(œŠª¥\w?ÆþøÍ6;ÚÜÍÅ*(ŒÒÃ9×¹í÷*xÒ°C}`×>û#&Xð¢q÷).¹©7
+HµmØ§y}À¹ÞçÃ7ã04¹£V&
+Õæ6öÕÆâäùo4@JSÒ·	ÐZ¬QdU-ŠVÖãZ/qrËòÉSó»~D#öÞË47ª&ÏDMÂXßã2ðÚÞŠIáN×Å¥ª]RìDÖÑmÃ>b¢Ð¶ñPzÒYìiÏ4Àuüâ²å°x1ifÓ#&i¶*t;>lê;r,T¢­yTéMú|]&Ÿ²ºerÍd¥v7*/&³.ÎÔå)oÜ~>šËôñ{ÒŸø^S×âW3DãªáÏp®ê=(J§í¥A¶KÏgý_aó eõà2mÔÖåÛsûùIw±KQ0p{&Ë7²À13g#pýp]¢w-Ô
+© kÆSžûÎÍn³°Óüpš
+]%
+³Çõ,$¡¢+ö¢Duä`anà;b»ì(u[Ö¥šñ)_<Õ8p¶%;²Vä*jª[P¢içÂ9vQèÌÉÇLÉÀ!&7çæ<Ççr^m=jyŠ)]Æj[,Ðî -@|h9ÆØ
+³
+Ãy¹ânÏÓÌŒ,ôºA]êÝÈÏá8.µ¢.è¢ª Ût±
+Y
+ªío!RÑõ'ŒPêöÕÝMeŸì^a	úpÝš0³çÜFŠ°ê¡#_££d1YtIw2ÜÇY0¥yL0ÅÒŸ"ðk0óáaÄKX,©î^ÍÑÖcºÞW€ì^ªºimo¯ŸM¥Ç©lë¢#yÑµyØÎûœ6rP5HHw®yZmnmmõzéß|Ì·¶z[ô9|Ãÿ«[µq2N¬"9ì_,ÒùV-×ÖiL 6ÓÓã[šw$P%GÓõ~4É}P6jcX-Š×,QfñÎÁ6~`6æ÷pcðéW#$Êó+RÑs'
+ËTó kb=ïÌÒZFÛDº
+Fq}øãf&ÀlGóK©4}ÐE--ªVi®gxZó&m«V&Éârt¯`¯K_ùøqè4ÇÕUÖVö%Ö9tîÅŸ³å2b#$=p¡PúÝÝÙd
+©Û#+p1<p_üDÂÑóÁ_û©ÆâGß!,A
+çCk;èBmºÈ}>Ä»éøbR«n«*
+­hH>·8gìÞØ¹%õzµÚ#%Ž®Ùü±f
+5.î4Òa«¹ŽÏ<µšëkªL$ÉBÝèœiÌ2lpnKñsÈÑdIx
+§¬žp$3ÜFvóç3íÕ[ÔþvzÜãUSšÅè9×Eèö®QH<(èT=(Ð©ÒÅºs¥³qbÞFÃ#&2Ÿºçcg6ö¯¹øZÄb®ëÎóŸïžÕ g·Ô~ªìÞÜ SLú#&ÐÛ£8
+8
+dÊô%pÿàt®Q%¡pt8a·D}úaï4Ü=q~
+gý^jpfÕjÍg»ÿÓÙýk«Ý|þ1ZÛU#ŽÕNñ €$-æÀpœ1Ó
+œã
+ ñw-öŸðHWQÂk9ŽÆ=ò|yÎ,RÕ»pŠÂòJ¢àC(z»áÝ^©-Ü§êŸ
+€°õ#&IÂ:VÜr³
+·8©ªéigãçYÕ²ïŸt~
+&G Z¶«D:3lþ*9DpGÛòi.-×AHÁãÐœêw¯©?lä]ûdL·0ãâ#$BIv¢+ö\mÄ{æã!¡o70æèt2åöbX$ÊcÿÒ4£§Â²|CqzmòŠÊïž(Œs5ÚTÌoÃRç¹E¶ÌrU/
+¿
+×Å<P
+¥3úº©¢ÏšÍí(ñH,žùìgÌÊuSËíšm©·ÎiLg±:#$÷WæiF£å èzsqD"/Ø,»¿Ps:âî%ÎážÕ*óDvICÈíÑÐO
+aÝTõ¬·VÀó,Ãð4*8þ+äeœ£A¯nÍc`\}¡±+*\VNŽ±¶{ÂúæF=k ¹Åq¶7î(Ç:³ØÐBÓÑ5 1
+žk­!\d8í^E5õçH2Üœ:vë~Ê)ÚŒþåûT¹ÖûËëMÈwìGÔ<0sjköu¥ÿÄÌrSûÜI{Ç÷û
+êêîÌìöÛZV­é<­bfE"²šDe§ë;C³Yä#$MÔ4ivKÈübV¢ÍbÔæ_k5kSýbÆäTÍ3Oôö#&×
+·ÒôCo·#ŽiÍMn3±3³ù
+s¿þ\ôóî¿|É%¥|z³YØC©»çæf
+cÖ"¬Djœšr*¯9º8ù#&Qf
+ß¡¥Txœ*5UMî€¶÷
+Œ×â#$Ó]w
+*žgœŸFïE
+aÍÝÈ
+.6¿B±Äï«ã¶~·#$wºuIº£ÑáD8	ýQEèÅê	SØq
+N.œò|é&\¶?£-!&Ã#Ã#€3RF£EÄ_±×PÉ¢Ö#$wkaàzÊ€+0}7ãúEåñb²'
+§yáÚïÞx£€XÉÞÛ8ªÜ²Œz;þòÏŽ³>Zºöq¹Ì"r@ÔevòZ4÷q¥èäÒ©¡jïœ`D±ï)	2ø&¢'žWìÈë\¯Rºë×ÈÖ¬!>é+þ):þÏsïÖdÊÕ*N'Óé
+ï9[» l>Ò }KäíWFîA#å¥ÌZP]ïÌ\s×ØìqFHé¢799|P9
+¢(]AŽÄ-ST¥Ž¬,rÒ}#&Ó4AiË90ÁWýöšs9èú®#(£ÎðrîëØèå³ïß<{ûìôôøT	È¥	jp1Eµuº
+#&Ñ	AùÊÆîÈ4Àòá±'âûR!Þìü
+Òùðø7tÉüGþCàÿñË2üÇœ'{ûÿÏþþã'ö
+}õå
+â?î}¹ÿþã¿þ£â*vÆsË
+ã¬Àé}žž¹ôÍá
+Ëðÿ#&LÉ
+qÓD(îm2:*Þ¥?EïÏ£yŸy}ú<jDVûçÍœý?ì¢$z{l
+QØ·o_iè£
+úËñééë?»°GöæäÕ]È
+ùæôý±Íí1
+ýåÏìK
+yõúíËg§
+ô~}ðäÊ_\aüŒ	;u{±žî
+;Y~yÜeŠíÝñÛGo9BÄ }ÓJ8
+DýQ§ËðTÂúiÆùcgêm-FX¢Kr¢.ßþG@¡l©-$^FØ=­£T=ûœz}ôúôõ[
+úæAb?ÆMâtŸP|­KÊ×zÏ&QŠ#$ô$ÔÝ!=Ó1ÀÛÅdRcU
+("F
+èXeq_N\!PNÌµH±Àx8©³ï QíÃÇžQ©Õ·cÔ­¿Ô:%
+.šþ>!<¯¥dA4ÀJE»õî~*È/8÷5ð@y^K0®Ë°j-wëÃþM8
+ŠZÃW/^ë£àøíÛ×oõêdk×]5
+SþùÙÛW'¯Ÿ-JË+:APÐ6\€Nã(åÁ¯ÔØù¥\ÄF¥ëú!Èµ}¹vœ
+Õ·~ÚÑ¬ª#&²!AalÓVQâ*!É:}mOúLwÐ(öã¥
+Q¹£!å`9Ò
+ëéëoÛ/p^ŒKŸ{ýþ­ü ]ÃyvÇPâµÎÄ§ùYänî²ºYEîì<ºt{œ×Ç÷ÈZD'R'<ÍSnpYçÄ;x}7æ»!Û6Úø2oôÜ¡µF_è}¶:ª0à©{pË{UØø]Ê
+3€2øœÝ¡Ža-rC!#äq	^ªtÝë@¶žHÝí®Då J(ÎÛñë|ya |@ÆÄýŠ[	$qŸ+Ò,šnÍ«I
+·z	
+#ó`²ó¯š&Ë#$LqªÃ«Òw jœYý0?tøîŠ$~l¢üÈ
+Ð³Ã<Ð
+£µÌ³`ÉâÞrëAZ±07gþŸê#$g.éÙbÖïŸczL±h6á&eÍ/ñX²Ë§Š@rúÂ
+#z¢hÈñWÛ&óþ[`0\~»ý_~ÿÞ>ºŸ¬úÿKàzüÿœ/¿zÅÿ²ðÛýïßóþ7o"G
+,âà¬Zpo€¯>d$>`Ë&ôl5¬M¹¿EõÊ;Ú­<õŠÙâ6Ä@qªÉoüŸÇB·±·­¶ëmXN#&c~«*
+«x³À1oÈZ±é_Ü3o®#&ò,HŸîüfxî#vý=©àþnpk)b9Àú\â³\h\bö6|.ªb ªÁc Ðè~ÌÌlj>­
+¬TZr}Úzkf©UÕI*Cõí×ºòðÙ¥J|EPF©#$Ë.\5'Àà 
+KTMªç¡qaògß€_A#&üûè«jl®=ŸaÎÖ?Å{ó`¬¯.o!»0ø\Â
+«Mñ¶7ZQ-Æø-`ýòÊÄViYUIQ/W×Gëê:R_OsÖ±Š¹À:-`(óRßuFåH
+ì¡r
+é¯k¯Ø(b
+QÇÇÞÕ.ieò
+"îÝ*ë~\³ËGÜ/;ZÚÙšÝ5¬|1DYÿ7è¡UÅÆà7k©tðóYíBñFGvx8#&:óî`IÆ
+¹%O6žW
+áåá&[š(h2MÑì»Ž&.Î·:\jDWý®ÚH
+jàb}[¢²ôÁf®#&îl·É;g2ÇÔ0÷£ÔåÂãèOÖMôro(Ÿ8²lÜúÞÒò¬IÀk×ëÖ?[=AIü·žÆ(TFT9NDú[L7ê¬ã#&+;+Ôð_
+Î
+[%Tª÷#$TôµøûeSØá	KýôrÝòÕºnáµå°BËWê¬¹3Ž³DsQ:»&-}Éxý×ºMgnááP~¯óá¿×§LN7÷¡«Zó-ÎxoÝ'õ
+ù²ÛíÏçQ
+ÖQ.
+ûÿlÿú° ÒþmVìäIDèdÓ D¶dMN
+B4¿ØRüÿõ_AâþlFá/&ÆOóß§ó÷×1^:ó	®PÿuŒáÂš:I{«éœ¬ºÀÁ}7ÁÍëáÀs<v€Õ(N®
+qÙÜÈ»YD¿6Û5®»]Ò®àÈÉb2}äBõqK#|
+=sècš>ó0ô
+ÝÆÏ/h³Ïd_eªÇ÷-ü¯Läåpp~ qÿmÁå¶»ÚìœLŒÖk:ä>÷ŽÿGŒßqÿÿêÉ£/³þÿà?¿ÝÿÿóýÿCÐòø·žÂKrðLîÿ(·ÿoÙ_ö5;úØT7#&ã;*þoT>h¹ë¿{{ú+{ÄþöÙtÿÉæl9nOœÔÕŸþ~Õ!·_ôuÖAi(ÃÇ±žÔY}­å\ $g€LxŒ,Œß§MóúÃ_WÉum[ŸÛ€ÇEõLµ®xÀ£õ0òµÅ`FäyoÔAD:#8 &n0ªãù5].ÖJ€uÐ{N@§¹Nÿ£z9A·5UÙÆ0C{E|íMóÁZ
+=c(	œÓbgûçkË°Iu ÛÞ¶¿2
+}Õc
+tüæÝÉëWÔHmêkÙ¥m§Ç°
+-]þ1e
+œ}vö
+>êcó#$iõqcŽ5áÃNà,«ÈßÅ
+­-k®×ŠõñgïÏÎ6u8ø7J{)ÓIþ2Ëi9BºÌtÄoSZ¹µ=âßOß4sÓ:$ÙônŒwú£Éßs9L
+èjÍ¡~*+IÚF±.!Ãcîk?Š¶É$#&Œ%]
+X*Â5'Ýä|Ëd°ý
+xÝÎñrngÒœnû=ÄÕã±ñèç¬ÓÓ<Ø0îØ÷Fù.gTÏŸÿ_sæŒÌ&#$"ìGZ'ËñÂWA:šß#4²ÉÔéž³€Lj%HJÆèAÒj:xbSéFH!°K0€&»gtYÑíŠà¿ó^IŽúÒ,j{ÉŸÑæö×cÒÞKìF%R3æùµ<¿ y9QoŸóí\Ø4«}tjÇÈLP>Kei9eÌ¯aýùø,
+7ÈPÜvRCâ)ìDñÚÙ"kXÿd1ÆáÕÁoÏua]øéÎ49ÿ8\£i#_EÝ4P>:¿T]µRMéVwP+TŸÕ;¿ê÷Ðv;
+³ARòÈ"F*_[mþ|
+ñææiœ\­;ôRËàx*ÛÆ³»âºß(s\¢vcV&Ð³m·vU»£Ûì)Kïš(~jg:ObJ]NÁéÌtenÔ ³æôìôv=ŽË_žxDº©ì#$hÁ¡C#&ÎX³fÜ6Èš,ëæì*aa
+Zù%ŽNAÓ.ä	Ëyày+Ã8Õ@Ûç&îÚé²<yóUÁîÕ°ßüÄÊ²e÷Ê¬õ¹gÚÈ@CWŠÏÎþØ>}öîø­í)=
+ŽH¶^jlwûåñº^-é¥»ÛePÄ
+
+à€µ°Äo
+ŠÃhÚ0Ã¯þîÊv€ûÎ¯b«ÉÌ÷È0Ó~1­Ù
+J×zÚ
+Wy~ËVªÌùÉ°).ÝÜñ&þ0
+Ëî¹sÄÿ:5NþÃR£I·3þÚB õúÿù(£ÿÿäÑG¿ÉþMõ?šlSd*ø%/Q1²I€1žE\B
+}8fýäŒëµt.`ÿIàlíQÄŽyüý»öËÓÓŽÕGÃaÔ¿pÀ­
+8á
+8Â®ûähøD}ö¬oÕŽ£>Ì·1üÃ|§ÖììþõÙîÿŽvâÚþÿüÏ¿WÕíÉ$¹©Vkj¶ãOðÏþÀ÷ú§æÕZñvõS$ß}GêÍjÛ1$œ*7P¢?#$Rþ@ALÿ*%|k#å Œrš÷gøtªÊ·ëãpå@ERVê=/Ò0ºöÐlB¶ÁÒÒI!®k|ÿzšÅÁ6töðAl³Æü
+!ÞÆëâ~LÞdp67<ï<]|°#&	ÙMb ?r"Cª/Lªß;'ãòYŽ	\£"ZŒ·U	œÓêoë	Ê¹
+;çÒ!Øâ`ÜÅG>Íh1Ø§÷þáä#a;4k-9î5JÒdh{êª[*­­SÿÂÊzºÓYäèXœç@ÍeYŒ9fê?¢$êÀ*M¢®ÃÂ;¿]Ðê§¶DîA'P[6
+ZÖ£b±Ä¢çüFzÞ÷µÊ<ÄŽñþ%vÅd]É­ÑáFñK;Ý¯ø÷­ù=p¿¥ÃÜ·ë¶ùhs xÜÞz>šÖpÙ#3«d	íã¯ÎmAñbîN@DJÛ-ÉfÙmè,ráÌã­	
+íMŸjœéýpBóÑä^ åÓ8
+DÅËžº#&52iÑë£g§'¯þøâôÙ·gQ+v;Ô&×«ùúØ6žéî]'ª€V¶ô4õ+§ /di¶ãÁÿ.áÜ²ùµ_¿ykjøTØwQgÒ
+oý|5£#$amö5Â»Í
+UÅÜÜ°Qn®ó^'®%Æf±[·"À
+|Ò?q`"JàþÕoœw)A]<e<h9EÐ9±Riê`ÙDŸ«Èé&wÈuEÏŽ#ÍZÓiÑ$œ¡¢q|yúæÙ»ïpOx
+ÏF
+€Ò¡åÕÛÎÏÈàíþÃ
+Ü]ÎÍ²°öùÙ÷Kê^XôßÛx(á¢WG§ïA
+X®ž$¿`2g7#ÆÑŸiUIoÁž^ô
+»ã
+Û
+7|#&_
+Ä]Îõ3€vÃYãE
+^Œý`­$ÜÏo2À·Û@É
+&<#$÷4Œ S=êDY¢$Ž­Ó3KÔüæOŽZ:Æ²
+¹bØÎùŒc­Ü¿­àP#ùT/2-O.ÌmÖ¶qÎÿ£¶ºh@ŒY²,J÷jì«š>2
+zptwŽêDÊqQÐýúovà?º«|ïÓQ*H²H¬Ã6œNn·F"g-n>ÄöW'¢²6#&_ÝM#&ê
+ËY¯Lâ²4
+ž;òh¯K÷<Wý¶°ê·k«~Ûév¥îÍÊ¢žµŸU·VÝÞÑªÛ|«6ÖUŒ;DI.Ù~«(,¬=Š,îÇAA?ÞYá_SöÔ è);»[ni=&ëkQŒ6l]#&ªRŒÿ¬«àjM?­JkžÝè[ŽqÊ0ŠÍ*=SÖ5`Mý
+¶y¶ 8e>£Má,?Xê>dÔ¹moZ
+ÑÃÎ%]œÈÜ±ô.¡ö/2©Ì
+uôjÉ¯ç?f*©'JÎ{D\Iâ&7û}}Ó2;9ìÆ@³ÜËy
+8+fÄÿ°YM
+Þ
+kJ{Ð«ÅÎjb-¯
+ú4ÑxÈíEJhä
+8|¶.^å5iÚ$O¬ÿ®¡écçŠ+
+»F­îqêÐ?Ù3Ö09g|¥ù`4
+Íîpûýþ'âKçü¹"¿µuÄâr²?Wv»Ý	ŒûÒœ=ú9Jñ àd~ÕS¹wÑ;CXÉ47]#&oP)þs¯êûÚý{ÕÝ
+åU4r5êe*E0"N«oEö}þ»ªÆŸÄ.žz*Ããn·]Ü~®|ñE¥`ž]/ÕNêùYÄÌlÇùjk€#$?=þ^{Ú7t]ó Û*A;MsÑ¬ÿòì3=Û{AÜà»û²š0öŽwûí¥Y¯?sûèMsïWÝ3UÎ
+};Êœ!J
+k~á'Nw73áý³?v4'^ÈFÃÛVÃB¶®\JyjÂs7Ð)ðï®.Kivqt'éC#­îœÊö>
+W÷Ü;Ý
+ì tŽ
+Ôî
+~þSŒ»ç&à:ñQf
+V©žÜN®L²ò}*Õõ|gÅVW3
+ù._ÆŽ&ÓE¿ù^G~:#Y¡×Ì4Òêã6évKSt-ýQD
+øBVE?»
+ëÂytPÛ\óÖD
+º\våYåcgnDwf¿2Xàs8úqÆÎ`HXÂ0¡n'ËY
+$:(œáÚ{Á²Q¬Z+
+zøÑ€PK
+µöDßV$}ZÜÉÖ$æmÏ§&rÜ	n#So"u*ß
+õäf^Ó¶ùíD]Âbµµ£tÊ
+òÁiù¯ãÑ7¿rPG[
+F" MyÂUv!®ÉK\#¯°49<KeÃE§L-#&D·Å€¶4)£°€\É<[fwÝ¥)ÉCdo®2Y8÷^GðžŠ"|ä_â#&)ò'9(<ÂÈnI$ÆIÔo )ÿø/b6ëç¯ªŽÞþëñÞ£'_eñ_ŸzüþÏ²ý×¬Oö_ò4¥h8e;­õŠYªAäìÅÄt'1C÷çñÐÈjãÍë7/NNÓh7Údølhl¹£Á"}ã·y9iÃåk2\.ô¬;3ñ»z3¢~ïšµs7P%€Í*ŸŠçS·6	Õy6®cz5"ø ÷#&\-ÑØÅ`6_DØSÝEûE\¶
+uÆóô§ø¯š=@]q~}ñE8
+ùâðvÿñ#EããüúôøBä¬(øþÅá?`8ò}CøøB"âÑ\-ªfåÃ¢µ]ûÝ§­F,¿ÀÛ~\ùÏ'Œ|ÂOp¥g>ñ~*ÈöÓÈ§³Îåš£9Õ·ã³mVÅ:ùöÕë·ÇGÏÎ?¡þÔûÓw'À£çšÓµµªþ #&]íÖèqœ3Wù±·ûßíÖv³Ö+Ò»jc2Õ¢dãa@>Ð #$«tw:Í)=ü°Ýüa»µýa{§öu£ùÃÃí~ÇÛãO6ø0nm£ÒÙ×¬ÚÅ³µ3_xmèòŽYŸþ:Úé$ç€=
+mÿ+ðÕt÷áš?=ÄÑïþöáÓÍÖO?Gqk³{ódÞ
+éž5ö`ÊE¯`EÿJ"ÿDãš±ðg?nàÏÂ$5ö%P% 9HªQµñè¿Þ|õþe#$¢Í×o6O¿zFï¢Í³woÓh
+m
+}÷
+~t£ÍÅeU°ª Qñ	Q'¯ßŽj$væ^sõ}«öõ§°y
+Â _<Û}J~ø¿ËÎpÿ°¹|?<
+îùtºýuÁÝ«ÎìPô÷ ­x'>aÄxÿðCo'n
+÷)O(kï°¹³ÛÚþ1èb8é, ðâgI© Õö:ÑŽû&müµKœIýËÄÔÛAêâÔaêIwqž·MUï
+j-±Ý®Ý4-¢Ó¯«5G åšªv	á÷Vc«ñééÓôÓáaú	êÿ
+ÏOO·>=
+p
+þ;vàôÓîî§ÝÃO»²~zÂöði
+þ=üŠŸøâÓÿ
+ÿÁÒOÃOÒO¿ûÝ§æÚøÃO~þÐüÐzzøák ûáÃö/ÒÆßý!Ùzøaÿö¡Þ­#žþÁ%Ü.»O£	4«Øä­ù!»«¡qõýŸtº»Éž·bÑÖ[bºè÷RêËñÝâ€¥}
+60øZÂÆ}=Nñ7ÌÚPy3ÔÝô*TR#&Pfñt©
+æd¢Ö(ÒÍêZx0zßœýNïÂz÷=DÙ¡£d_hx	ÖèÄ¥©šŽÝ©ûCÑÈÔØÜŒúšÄºok¢?Å±sþ`õ<õÌá,ZÀ³vn­£íÊÃÊ
+S;]ø÷éÓÊá!þ­<M+ð?øŠx}QùTÁãí
+ø§_žyyGÝñÉ=¿
+ÍSøh®DWdI¢1µ"Xæ²®d€{Ë.ôÈr4¯Ýtíýÿ= 'S5ï€{;ë,ßÁ<c3ßy
+ŠØ©Ï
+ú úÜQãé¥\#$o/M£­šÑM;[ç¬A;Žcv)h×mSÐ¶#$zHAmÐô#$úDA #&ÃzvP>3ÇÅ}Aä_Xò/ŸðähÐÃÿ42M>æAóÔÇ<ÍÄø üÐ
+á>§Ã0§\Äa	TDçéSÛÂCÊ¿sxx.Æà]4~UšÝŒT
+ßÍØ]UÀñVû£éâ}Áâ<ÄJS&7qpêšþìÓôõ¢ß@]jì
+ìYÚ°²Ïÿ°{ð|aÏÕ
+ÏSüÒÛl7\Îqä}°Kæ»bE$î²µÈtO)œ[ŽiLmFÎ
+I~xðî[öó~6ïÊÖ¬ºEzÌØèš€
+§êþÛÙÜo
+ZÆëÑP{wö-çôWS®£ÖÌRî2¥djivv÷£Ó ÈL"vy>žw85ÙAó[çóúmIíoJèé®xŸÕàdZãºzkLDém*
+f#&0mVÿ&úzâæ
+É%áz¬«Æ:èÚÒ¡þe
+Sãê*èø8Èo3BÍÖ}V$ìjZ	iØ
+gì­D|'ašf¶€_g·œÆpåîèîäïß$ÐÂDÖC8_ŒiX_y2³d{Pº~ÃÉÄÄ©Ý!p¬)ž°Ìf#$ïHH·vŽAS ?pëà¯¢þµ]Ö7ÄÝ
+ŽSþÕú5«ê{"
+öÅfK;H(ÍÍÁ
+åÅ	MàD¿¹òz¢Û³ët,Ë÷
+aÿú°éê°{ÛuqVíªH26øk_Ó
+	êÅC
+9§aYŠ¥yTÜÞUbŒmÚçµÅ~² žéŸ·yXì£ãnb°òEìì>üXÈh7FÊPrªîð74"Ž&X[lþX÷/Ýf9Ý/ÙÔ#nzâ$ã5|\ìTÔõ,4÷yÌ~k.©µŸ{§ðœßÜoí@áû­`€ÐrBçÉy_ûé<À#$¯hËìræ¬¢ÀŸT[`U\Ç+~OÄM$·mÒf7ÎsÊæyW¬§îo$¥	Žëîè¬­ø=5ÆÌeÜa0»mXÙÂºåh~œÍC§ŽÅç:w.nC³þÄÐf##&xn_P³ÐsÃFEnŒÅWwrªCQ§;(ºéŠô 
+1ÄfLÚv§×K]\s¿/×Çî¡Í	u·Ò¿rþ±
+8XAÂqpQU[úÜ0c®-
+kx3³p
+Üþ³ŠBÏäø¬pW°wÅÕ-ÙÛËŠ6
+2žuÜÀ/?ùî]Ë?ÓØÙÚäZÛèxþùÎÅ
+
+kf¹Y56cÏnÐJ_%U¿.Àää
+ápf	sw¹5p$5K\ L^Ié|žüÊy^ÇYx±
+wÉïñŒº5uE­¯HnDÂ]à®î±Žwõ€éü»ûÔP(ï¹~ûF!ŸïÀL€ÕËvJnw©Mh/PÕ%µë¢~
+fßOÍJn­¬á
+g
+ÕþwéýqgßfF'¬ä°³ß#&î f¿
+ú¶Zc7
+p
+ÎS
+ÒŠkÉZ-7òÐv7(~÷
+fû9þ£
+3úA/jyÐtLLq>ðmÙOŠ)ÞT£øïéÏê.Íi3k±>i;:¶Ë°€uRÇèQwz
+7×ë:²(+Å
+Ú=; ÝþÓ³ö³·ßµÛ~+ÙžéŽ©[ŸåÀ±âØuàë3åHŒÿž³:wºØ/ðdÚ(ÅhCVq>J{àõë.ÀÏ4#$¥çÇê=îRkSž9<s3	c
+'75æÀÄ`iÂùê!,iÓÞ=>]<Õ+^y"
+ÚI¥
+
+bÍ<sCúk¬NÃf
+TVLÑz;¢vVÈ
+#±cÃw
+ÓU:mmË+ë	#&#&+â¹hVìî'ô¿BÎúù.bºR#$¥ðÌCâõ¢e1ÎeöæAQ,ª¹C#&5Ç;Ÿ¬Èuh1¡REßy³·O'SŠ7ø
+EìÌÞr¹6²H)gÚÂW"ÅâóúŒßu¯pcÊ.)EtÃÏ}œ
+a-7(
+öqÕ;]KÓÁž×_ÑIÇ=y¢<Ü38Êãr#$Ü
+š=#(nhÖÈËsyJ¿Ýz \ŠæÚäÏ#Ëynë+Ìrì:¥µGäÉA³§JZæt
+
+Þüz5ÃCz©×ëNÂ«+ÿÒPôº	®ÑL8¡kûÒw¿šmÚAŸëMîUÅ:¢u$¬ÆF
+ïÎMî»D€äW2ä-LÒÜ$Íf+!WGD&§R{/ÞÃúv|ø^¿Ïñ7AúÛ
+@ÒãÒNt"©aþŠsjÞ°£N«Þ§Qb3ç°jÏÉc
+í§ì|h¢_¶SÂò§ò[Åó`9d:tø
+Ò)9Ýg\Û#F@í æØ\#AÇFhìŸy0ozÊ~1hWy©Ã@aëCÖŸq}&¿£2QdiÃêÒ2B\Zt×>[6è~r4åÍJrîTÆKžb&Uî/H
+Í[<êñø·É¬'CØMd_9ºÐðU$]D]#$4iúÙM {Ôhg ¢aop9XÌæC¢F+ÙÿÒ/£|­én}0§
+jj0ÅïÑXø²4÷=
+ÂÓÿQrì«ÄH®ûýA+,À­PJŽJLüW
+ßúÎËºSÍn«À÷Ú}Æ¢2$,«a%ÚGfÄÝbŸÃcU9,,§3ãõ,6¥öácšÕ7éH±¢õfKäÐØòÔi0Âqñ"BaóÆF±÷9ÉU±ÒŽº-ûUÇŠÞ8îuœd£@ÙÜøMÂ
+46Ž)÷#&S2HU^äÔ\2YÀvÃú0ª
+'*ÕO©jŒGDò+ÏÊRkdEÂ¬àØrìÙAãÐÂ¯ÇQmHön«A²èwQæI#$U»8F¢L
+ºùao`fëuõŠMà]ýpÕÒ	žä­#$"ú29ùQñÒMq
+|»mê
+ÙZ|tŽ
+f[oÉâçÞºZÄ
+ÛÕµb2<o#$áº)Œ7è.jÔ"Ë/úìÜMÐUtÕKêŒÈ@ìdAMÐ³&ß
+÷
+6Ø0~né
+xËKcž¶rïœR2¢eÓåìÛÑ,Pf#$ºëÔÄ*9láq*FðLlV=î
+ùEÜ©å4eLÀA/1i.sã^H[%
+*qo£LÂzÛü6$qÉ`'%5
+ÊÃÄÜÖ AjÌŠ ë	AY¯åÇ9 ¡Ž³:³z7Âzø°y]ØwgÉã  ?atÉRnÞ®¹ûž§z}4éF¶žÓëÑºñ©ÜªnBsð-r`IfvºÂM=
+Úä§áii4FÉ±p^âvºJÀåù¡ÕFª`Qî((C6â0c1Px@;#&ÑTpºö{rv#vr
+;&@×ðá4*âÓº_4m]Ãñ<vU¶2ÔWH°wQ§ª@22:B¶Ú TKµ.Lâö~1®@
+m
+7«þ}ßbø§_R)ÝQÕÝÏk³Ø×²EØydMÁœŒœ­q¡Ïj45©C=Ï'óþ¡ŒçF
+ÆÖŒrÑA
+0Gì/±Ca?7m(Cýx«vÞ>qÆ5#&F
+ñ
+ÆRH#$ÎÖ<f4Z-Òu]-îha|ñWÊ³\Ê]Ãœ?
+Æø<9InCÂ9*
+÷lŒùùrÑ÷Ã¡åmý>Yô#ÔçÇ/Ð8á,j9f-â³6JV±Ôeš[B
+Î»ÆÆ¢©°Ú5l§	ñ©IéÄ°PG€HSñfwËoK^x[ËoÖIÁÙŸ?3iÝû}8±0Î`ŸÌ®Î4ž-$}*)ÉÂÞ«»[/EÅ;E¢lÛÆM?µµýµ~£°
+,²²ÿÄÉ3ñ
+Íqâ€|»Z#ôžu:%û"ú!Ó
+ÈucrjùNC²n"BË€(Ü@Ñ#€Æ?®å|¢°Š¿;òžuxdã0ÂÞM :ZdgøØÝãšÛÇ~ê\DÇS3üÕ:Á	Š|T'Û
+Üì1Í³àRÊ.¿
+)ZÛDº_ñã_±|_H¶xS³°|#¡*9Zd6 Ó¬ÄÌOY;
+ëÜ2Ú#$7äÁKQ9rÜkX¬Þ«ó«J=Ä2á²ÿàê®fq÷«šÓ¢XHÙ`)8\-C äÖBûÕu¬:ÑYÆK"£ä¶²ûÌvÙâî
+PZ«ëêùYUŒ»<9ù}r÷]æ|üæ^.:Îè<Ñ.,® Ë¿
+5~¡×GÙÒ.Ö>E®`¶t=
+ZL*š$&6åäfŒœmyMm«)
+eî÷¬«w9[®S'pÑ±D³7Ç9Í@¥ëP"¿ñv¢bõ»Í[¹æe£*°Gý¹k÷ª¹îAb¬eÇ±ÍhcÅÃé5?ý¬~Xá
+lðøÒ:)hB!é×àÊ§šÃØamæ`
+]máïÌÅûŒóØrùs€TÀ©÷æP#$ŸRË(œ
+Ë_ÄF^F2òóÜÇÉÇëä!z_÷é
+nðŠek*ëŒJðA$õt%ÂÌnæô§,ÌMYèAU)õŽ³f×ý#$»ä.üç-ûçÿùÑ£/÷eñ?<ùê7üÿ
+ü?ç<	!v'$Ümb0AJ
+6&al
+à­òQQïÉZÿCìpHŒ	jSóg#$Ÿ\æ0ZÀD/6÷#¢îœaŒv}!ßEþ«%Í`#6% Ó÷Í÷gÇíw¯ßŽOÿt|*~OõhívÛ2.ìt»Ée·ËDÉ@1ê¥ÝîN3ÚíœDÐýcü¡ð
+y#&ÿ1%L 7š«S4É|3#;ysÁèÏµ(
+Æ'NrÐ:åUÿ8^¡}Óæ2EkŽ
+ºÀu×bÒ|ð\²ÅŠó"?Î7F¹šÓY6!P}ÈÐþ27
+$OÃèŸ.>Q»}òêÝñiûèõË7'§Ço£øP4Œ³Èxñ¢oñ`â¢dÔ²Îû·ê?ØÌ¿}õþšÝâ§ù<îj>ºFâëšÛ%F~]œ¹[Â+Ô`évºSªÜ5Ië$;4käþÀ~Â{ÔáÑ­àjHê=È°XgµpR:€öâ¡÷Ì\÷oIá^
+á¢C¢HyÝøZ²žÍ'×n:b§¡F£
+rCríHÞPg]7á5öð%l4ÝOnJ.WšÑÑ/X
+4Jr9^Ò÷Y¿ÿÍÙs#&»ßçó
+
+¿ê/4xÜ_hèkX1«GÃçË1À¿9}_M¡žFD(þrÙ>|_
+þhýåÛ?Œ¢,»·c#&}yöRÆF°¯bÈ{ Ï¥À×á0$~ö×>~ûærâ#$ŠFò³UM÷œñÌóÚ v¬.;Áy~|ö®ýú,:5È9ŽPÞ³7oNqàHØËgGßaPIÆQ¯3Ã9^SÁ6±Z0­ÝhÓ|úÂ¥	|sòêÅËw(?žp
+$tÛ«w
+ûÜ¬Ë#&Ök&'×ü5©àæŸ;á)z@Stõ__¶¿|LCÄ?iäà·q@G
+ú
+#$à¶E³c0åW¡Yè
+uÓ«
+Ñ/8d6:eüA!2UÖN»§ÍÑ÷0o²óF$]Ì6`?/*#&±ÕšD;QEa]
+åª5E_Gú.Pd@mMçêÅ-ºzÌ££ößŒ~µÒÚuÓo×­Äœ<}&ìÍ³wGßÑ©^çV±Éóþ[>¶ÏÐãØé»·Ï(,­.pÙ€öV77$L?ß
+
+?;;N«³þ°ß÷!èõw'/OþçøyZE_»#žûô øèýÙ»×/ÓjÛÉ¡ÓD_NÂÿJË%á­ŒK¿ÌŽ1²-ÌY>î2]õ|
+I*x3%ßpWŠ30ÃªSWè,p#žç¥H#&ôÑË
+÷
+ôãðÝYÔs7÷@"mÂ
+qRMçdÌ¿[³?TcŒ)oÈ¶9BsŸ&Á#$t£ð^ºÑÛ^ZA_NbA Òâ|#$þÿ9=à
+ßü=W9Zeá[3ü4³=<iw©d`æëäþÚõªX3ê§ÍCÇå8*§BD3aþHÊó
+#$ÊÔŸVSë_;a{li
+ N0;šô	_;×Ìï|»B²'G>,CÖº¢èð£ÍI¹ÈÌ¥¶+zÃêk68G,?iºøÁoXÕÊég8EíÏÙØO®Åt'ÂÉõîøí«šåM¶®¡ôšÝ7±}ÀdÎÞ
+4>ìñG§&2!ŸûÍx	gép!Œ¡4ŠšÁT2ûâÚv(+;[øZ¡ªªRE:N°âÒ-
+ÆZ¶ižb­÷iœ/ª
+~Îx.ùW{hää¢±×gRD8mF¡(C¹ÏŒßG#$&äyê 7<E
+Ü0ÚAÇsc¹8AþÀT¶õØm/&íóÁž3»mãggQ
+3y}7õyÐÃr¶jPúó·Ì·ÔfŸeJ#$¯E¿ÿéÍÛã'ßÿb(1:<Ù,OOŸ	²äïµYÂhüþ'ž>þ
+ý&øÌc@`&/2>#&žXŸZa`3gÍšÊÔÍØPFY°Ä^Å=Ä9­EãIE*C	*ói¿;žÀÎû<¬OçºäÚL$	v#$!^ËöÔU8õÀš®
+o6VfŽ3€Ý«Ñ€ŸþêÉ|ŽîsÎë#&77Ó
+òÝøÊé5æ
+IxªÛ-N¡ÎUÜæÒ°.5Æ±£Mg¶¬s¯ÄºîIžÉüª?ºJYÆÐËî8¥O'ñè
+#bÙhv®eOq¥u@6Æ#$§(T±1s>
+7[ä v?³Ž\jŠzèeZ\ß<³ëá2C
+ZVÐ_Ì&ÌÚ»sÔê[G¬òn¢§#&w³åÏÉá*Ÿ
+8®N¬ŠàÌbÔ(=L9u1ÀÈ(µÚ×±×ÚÕÜ9d€×²ZQoÌ¹Á4q2vîÂajp(&Î6Í.&wBcKY2ej-S&.`ÌåpZ+ÜUWÛ'€+`Ó eäBÔX#$³nSó¯Ñ;äû<²š{Ú7GMÉ/ÆÖŒûm
+n2hÖR/ùò
+R#$1)¶QÜ³@Ð¯¬wR¿ÁGÆ
+5{	¹
+
+ãnµ=ëxÊ-b*Ge3Qwµ*#(C
+SR]"vÇgö¯³Èø×Yžy¹åGÞËø^Xt±žÛ÷gá!VW
+?çoè.7}§/#`>'6Wb²<XôÍ¡×GÏÖzÑdíL¥~HÎFÇ£)*ê#$û
+UÖÓžÀIY3·©Ó=G>ª&1ê~·F¿8Ë1P7ã,Ð6­RA
+šôw~
+Ô1¬-)qu ;ð-4bÎ-päL¥têßòNä~ëºú6ÛÏ²(ô®tëŠ7P~ç	bÜ6W·Áw
+»©hÙ]Å.+Dá#&nÃ¹ù4
+iŽo
+=mêú
+<Ø/MŒCk?Û üÆ~öîÙ»#Ü)WÓgøE/£ ÷
+ãz*Œõ11ËkŠ"V²Û 'J"G	Úc¶
+ûµsç
+ešœ-ä,U=çÍÛ0]
+SÍÇFp04h2Ýä8²[ËxjiTGà8vPâo2^œUÐøù=Æ#
+§f
+O^È\Ã1·ó3<Û}
+Ã±átn3ìË*¶u
+Ìûª}²VàÅdØcô­AVÚªnÕt¹$"qË±7ì³9#&ç{.
+#£h#`|¡ôaÊd,#$%qçZ_ùµÓ®u
+ûÊN"Ö
+1Nªž"Á€EræOÎ)dßYÈ¬þ§i4«ÌÎæN#Ql¯×ï±)lö0	»ªÀ®Â¢»;ê(:9röœâ[Ú\¶vèÌ¢°rGdFVLlÔmjìÌL9
+ºãªy²?ùÁŸhgï·v§Äømã!
+D\:ºgÒ#&ÞÐÍLü[UN3
+V#&œxzÊYñÕ!"7Ã(	šÛ/œýãñ[z:poxZ,g
+2~zH×jñüN\5rkÉÉùTŸ/(].>ÛcDÅ-öçø=ìGÉŽwã:mÖìxBî¶æŠVAÝ®ýU€`rÄ]zCîvwTø»Le³¥7µÊLgG-;U3
+'GÌn®Wy¡žÑïªáà(Âç<À9ÓUŒY¶œŠ¬CÞm(go{¯jµ¢í_Õ\Û
+Ï:ê£
+­ÿ©*H¢W'bÕ`ãÍ.?€?ámÅš
+}ÿœOÔÕ #Âî@3¶Ñ°W|iYËHV3/y>žaÜ(XC6NÒÍ$ü­|_Ûÿ8]CØ·Ï^
+ÿùõÛ?Úp¡wqîg7€GM\BP€ÝFúv»~Ý¿3Æ-7ØPÏ-ÛcDs1ÝŠ·M
+@Hîz|%
+#Îj%Ì7o[IÀP dä¢£iFÆ\öâåÌýpóiÖMnúdŽã:G]ùYíºÀ­ÁÞpJ}7Ë$ÇIýã±opkÍ32øÇŸ­òW<vá
+ œ dL@hõu5
+d¶)
+z«aÙúÏQÅŽlË¿íP(Ï,¢y6ùFOmÍ6wÃÕÛKð øãkùT~ŽHo¯Î
+¯(.NÆÆ<5VhšU4ã*ìÀ¡FZJš#&Å¿p,+
+Â*¶9ójÊæäŒ8xÐ"~rUåMÉd-z·ØøXßh¥J¶&
+8-$ê[sùœåªKºû¥Ãv0ð€Bw Iþq85ÅJá+ÓÙëW°ÛÁl!^#ÍÓÃñA¹<Ù
+ï~V¶Îûµàß#&7#$zHÒ¹YC'}ñ~äÌÒS³xHÀ};¢)Qèö­'nt€9	©,#$*¿i#$Ü³{'w<[#&kÖïÒÊ
+EÉ§/i;cw®#&!ÔoâVRGàõYiÁ€®©
+ªNuq6Vè%ìovó<¬	äQQ
+á»Úø;#$À±
+<êôL.nÊþòìU*0ó:Ü û
+A©Äcº3o	£Ây'wã¢Ów
+T¿@íæÁØ¹®»ÓÆùø##&ð>Å
+D©ÙÝíÌw¹
+POï@]r>®y='ÌÀgàßWz%O-œw
+¥Î·3>ÿßo\+zwî}ýJ)
+Ûõ
+3¥úÛçZVD~w#$rùþÝ=\t@edóÃOTÔÙàõ¹Í¬ð=<S²{#&CÞà©Ä
+Œ}6åE¹<C¿äDÇ¿ÃÁqõ( ,"#$0ëwü.¿äëZ€u)
+¶Ö%Å¥¯­~iJ®ëÏÄÖ)îs;LF¹gÆ€*»lÆbT³÷á/Y~z&k?¬¡.ÔZq {}®ÙíÆ-
+áîŠG°
+äwWÏä2¹ÜÊ*ÇüeÑÙøÒº¬-ÓªX-8rÿE¶©ûOhÉ~ü3ý¿ïõèÑÿwúÍþóßÉþÓ&³>znL³p·	ç}í5?Ç2óíñNÐ@#­îÕ÷ëªëŸL_\ž€MŸÁªdÝÎ,á9ÖèUô
+H
+A¢~Ž5IÉæ1ûúiè#IY!ÁK5Á
+Ç2Å¬ØÆ?kÕßUŸE€ÎßoQg0®Ï¯*»o_œ¯Hí*ûõ'õýÿÀÚôãø~óGÊÉIñõÏÏ^ÄÆÃKr
+ºHn&,ž?ºûzaµ
+.É&£õ×dÛ×8|£F÷T*CuùrÌJK³qZ­ß²Š\GÝý
+`Ý
+µùÍHó©azª[PÖÜa,e#Xëgø1gL5öÚ2"îoRÃvHÔ;2ttŽväÝ[ï6-É«GOß°ÂèèðMaæH>,Ýã0šsÙÇÏYÿfÕø[~/œíÏ?çWh8#&wç'>mo*ÞÂªt_Jõ@$ÔÏª#$U^WNÌë¡Þ
+NøÉÏ%³µôNöª[8]ÙG?Ô?€­8ý@Jô{=òÝLèŒØH§µJ°ÒÖ²	
+QâÜÑv*@ÉlpyµHÚé|j¬Në¬ ÇOßœn)[)ú[÷P œÁSÙööºµ¶xN9ðÞ0Æ×€oŽ8Žã#	Ù±XÄnH¹\ÂÝ+tZì¬õa'æÊ¬Q5â£¢#&Õã³=â¬Œw€FØŠp/$<t?hoö/8f[{µäP×Ø¬2µÌi6ð¹`÷4Q5o;CÄwú«tÒÑyÒN#$t
+
+Ÿa€ábØšóv;<ªÓD<òÓEÙHX¬/ë7\®Š²ÇÛW±õMb»R€Ñ¶W³qÁ{}Ÿ_8Ï~Tí0µ%ªÂEPÅàŽŠaÅ/ßœ|#2$Í\_¶
+£wØÝG#$
+qì-Ñs[ÓW¡#$Û}z£\\,fÑ
+órÊðŸ9}
+1_VEµ¢#&ª£ØZU[7ÍF:®Ð²MâBŒãvÛ§æ·}Î¥8T
+løv7»ZSWÓ2.O`<ªqš»ÁùÛ¯æ£µÃÞBkgŒ±çž#$ÏÉP·
+Æ6
+OcûíeèÏg
+ÓA%øôžÎŽkâÝqñÚE2jÄËgU#ÈÕªë
+<æÇW¬33ÒœÜ9
+tæî>*±u§ á|Àçi!îíyï'*B
+§ö(·CÕ"ÜÊÇÎÁÆÔ®û·¢cNu8ÖŒ(Ä1)QÀÿm1¬ÓNÿfJçŽ:TüQX
+ŸÄcŠïfË~hÞAn(ü°#&Œñ`ø|MªQUŽ<ÍC£oŠïvÏÄø'
+#$5(ÅÉîG×
+ÂnfÖ
+;
+©(bí(Ýsbö<M
+€Ÿ/ÎZ§{YÝ
+"®avwp,\úÔPã°ŽÒXL¢be·3/¥0ÂŒTÒ#&¬þ
+Ï«Á>ÂAÒ
+
+)LÆgúGÈtÐ)LMZÙªÉÏë[5Øiè¯î0ñ|Óí+ûÄlÝ
+ã ªí3ÚXüÍ¡²Õh|JG@ïº
+ß#&
+·hod+ú¬³&<ŠÒÌw°CmrZÒg)Ý6ÉËhª»yhv°ûpœÜòYÌç¯u§F8~1¬¢¯)ÜÝÑTûb²žêÏÍÂ'À#$#&ÄÆpKæ€6¯°ç!K®Z¯ºêS°+üÒJÔ(qÄkWKîrUw[@®ûãÄ]	ênïv»òªÿ·#Úb¢LbCÚru£ÀßŸr3Ê¯þÒdr^·!lêõ×6FÓ:SF@6A4¯XåaâÏÝÓ"
+]M!±gõ«ÀŒVcïÎ
+âE-€R0CÕ¯ÌÉËEšknW1Q¶ë9AÎývAâ[€ìkWÆº.CI{2«åi1	Ù¢çY§<
+w1×û\EºN/ÇâÕ1n$a­ÿäZ#$ïU+ZÏÿÀÑ{q!iqœsÇz/çý£Qï±å±ªË92×pžŒÇÊÊP*Í	ÿµ*oñ|7y
+oØÙì¯:"«d»»Bä,vuã?šïÕ÷*Ê)ãÿO£Ê[6ÇÀY¹Ô0K×ufkŒ"¢Ç
+NUì]g0Â7
+5LuF\vÎ4cy¢ÀZuW«SMH®\ÏWËÑyVM:]$M«óÅdÀŸË>Ò[ ÷]õÓŽÊ¢i7¹Ð#$n[d	©8FÂäãŸ
+Àîx{§Ò
+±w4?þýuFáÈôgc9ïâÝ
+Údm}v9»ÃÒüOóù~~þ§¥ùÓË!ÁY¥âÕV#Š^Ù.®Pú»3S]Kà¶	æRÈ
+¢·3\É-8ôCòÄÐk&wìÙ;Äz§X®tXyÝ\Ùø
+KŠŽÃ[Wðñ÷ÏòÅ:«l¡ôË;TÆýªxÕ»²_>ûÞ\Ý'!oÕºÈÙ	Õ<ÐQ<H÷É@Ø9NZ<kQ.}ÅxïN3íB7äµ$w;òŒSz!ÙÙ
+<ò%\ôÁÌ
+¶p5..Ò]§ú³º€)ö_$
+ã3SNE°ÃŽÄÈN¶¿Îu?Ì5L>Ï4-&žGfŠøüŠEÑe¹!Emn×Ç«U
+F§ì{+dIB`d¯ËÐ*w±&ÉiaÓuIøvQ9ØŸî
+×&C¶6ù}ÇJvúnm¯¥§3°jµ
+_^§WÒ­ÉN(#&Ó24¿Á{®þÇjØýÁ¿ïÔÿØ;øòàË¬þÇÞÇ¿éü[ê0r·~9
+l
+æfÅWM{pfÞ
+í\9ÀtÊÇÝnÊÅ¡RÍHÚ³(Á¿Q+!0££(!pV·$g}òîš×VKVÔÞÈj&§Uv»ŸNÝéÔÕé&U* NE€Ã}GoÞD­êïÁô.Nr0ÓÉlK!÷4wY
+ažæB(Õ#$û1²'c±¬*ª#%§g©6BúfŽ{©J räëÛ>{{Ô~ÁxÿáwßŸ£ DõÃÝ	>Tºê9ËÔ4Ú=!@odmlKÃ~üÿìœkwÇ±6úYøc$\ð"ÉÞñ(/ER6)€cù¥,p0 ±[0Æ[ç·ºõuf@PœD^ô¥ú^]Ý]õÛÀýcÎV¹VÊ\n©8ÏÀ_UžkkçÈÜÚùÎìÐQ¬ã"œ¿pø#&]Î©$¬21mqm8uhÎUÅXåB	üÀÇ)d]t¬÷oì#¬çÕl>~R©Ž)à3B©?vý!eî
+íãØ
+àgÛJåò=&R%Áßt9í/C'U"üÜÈÙDÊÕV¶6ÕÐÌåï©6QÙð#&Í(Ôí\ŸN@wŠçÖÀGÕIlv(ëÝ€lõb#$OU¡ºU²üJü·ÿO²åœÿïì|óÍnnÿÿöÿÏwÿ¿YÀ&O<g¡šã³CUz"ô;ú+UG+ ïwãþ/
++ßýu9ª#o\ÝinWu+âêO¯ÿUýëÊw_
+ì_ürzLQ$Î9¿8|
+Ðxkkà5n&Ù|ëü>§£­c~ÉÛ:ž8È¶Ngi:ßã­xoÞ«=&£ËÝnþ?b/*OŸ»Mï_ì¿z¹÷éi7¹í^§÷Óô»-ø\|Œ@4øï¶äíût~dg ~Æ}R#ÝÐ»ý2çë1u®ý¯ðéÍÉÅ¡îâ£óþß
+Ÿ?|sx¶wqxßàà$
+Áë£W¿žLÅ
+o}ÂÉóÝ÷Úw[Ô§/*8¬GÇÔQ7îØÃÉ=ÞOèeøzoÿäü-È<§Ç'¿Œ>|sÑ¹Ø;ûþðµÃ&»ÊSÆë¯4<ÇåÚ¯Ôêµce1žNíÂŠ<)2Mè"Œœ o)6Èqk·mëçi«ýH$ïÚõ·òÓ¶ýGd°ñdR#$)àçÝXÖWåÛÿšlBVaÆµ-#$~ØE'-¥ÓEó">)7æšù
+hZŸÍ/ªö Û±r%à÷Á¬fÿk]ü©ŽÚ¥sMÑì¬ÜB)áúãÛ=bÎñfÑË
+îKx!ZYåÂ`Z~ö×Ý]-št9ÉÒ§
+Ìš€wèŠ	F°#$kÒ=
+!ŸjúmÌFßìïŠ)NnÅ=FýŸlÝ¶7C
+®Ð5ýLpikŒHyj(+e,fd9f\H:Òª¥D·Kë&#$úX
+ |$­Ààv®èU:v
+ìª''ÚQ³Æ7¶ŸŽŠv5Fm¿=#&«òrŒãÄ1*ñ61«@PÙeÏ£³þX®&1šÏ¢ê
+ÿÆž÷Ó};¥ 3ššX1x¡åS
+IÕífºx5rnÔÔžÖÿø
+¢OÛÝÎ7ÜW&¶¬1N¢ß0Óô
+3CŠ¿ù6 žèùåê²æ5l~¬÷Á€
+ésàpºõQ5òÝCÊ/Á'S(œA
+Þ=üp¡AÔôÞSÃ*
+©õµ21š>bÿ#&°8ÆÀ`ù\âåOoKos×¿%11SÖåmãI
+Œy¯¿25Ô@-œT`W&IŸç:zÑ1£ZÊ.Ù+Àr
+ëKÛGÜÆtõuÒgpêÆñk0g)6b dÓÈÂb?©¯[²3Á>ËÄðó¯28äsu3LïwkM^6KÉá*{Dß4xÒÊbûk9Vß=øitù+EäíÂÊ- Dä²uÐ£Í9²opÍV
+×)Àê5(ŽŽ_u]Ê°:[9>O<.`%T°ùÍ7g	¹Å³Eéòøõ¥'h#$òdèßrÓ~Â&
+(éXîŸUc€R×­×µ<ÇïìÿùÓ_ÿ>ôþû|û©ÿûìg_ìÿÿœý?û7Æ|YÌ°¿øå+_çe¹ð:Y]#
+`é.c-ëW®ÑA²åT
+ðNqã¶-Ý¯ÈAÏÔ%ÎVbŠÁóÔ®ZðT 
+ŸœèìïCE	ü¢êYNŸ,J
+£=Øu4CgÏíO;ÜíIv!·ž
+ÕâÚåÚÆ2¹MµëÍÅ]I»ÝV×¹MU­Ü}ÈÎmaùPôŽ¯¥|,(ÄÆ®î)ÅD
+/äÚuDA³YF°Ñá2MyÚ«¡:Û
+àúµ@(åÜ5"œò«NÇ©ã/k€]ßï¢6±
+`CClc ±%El{(¹-ÖýÕ,[£\»WÄ9]nV(§u®\.¡â_`šÖÎÑCÒÔ7KnU­4FÛÓæµ0ÄÕE§RZÇé:ž`tœbi®ræÛJœõnÅþ#$±ê©šMv?mRCÚcnC|Y%ôêFmöð<gç³ÁèÉ
+èc¹¥_?£z]];_ÞD#&Œ×DléûÂÊ	hxÉwªËèû#$ËkÓ
+éÎÍdr+ÐºÜ*žLÀõ¬Ó:IH¬á¹WU±ag£×ÈµÂ ·¬<)¹ÍB1@	ÐÑ,J8ÇåàWàGŸøÇcÛ
+Ôpµ£[1ÊþÝ»4ž,°®'sØ ÐW;00Ò#$$š&I5 íÙ¿B{€g¬Ýô_š8üó¯ûûüKýO_
+ßãwk5ÊO5R^>üùWøÒxøü
+È
+¬D.FÊ=ÉÕÂïÏßüW~!
+
+tÙM:
+²¶9c@â¥|,~§@@íõ#&ÉÏÒXÑßáªj¥
+»þZià)1ÞÐ
+jèªÊ
+þÃãã­Nì³oH¿œ£îò¿'À*US]dÏ¡q·×uO}õlþÁ@ZIpu€K6·)yÇ°VŽaå
+íZ:ª±ç.â_gÿ#õ¯žþÏöó§ú¿ß~ÑÿýÔÿ
+	htúËBàëÍMŒ¿JýAÞòú¿*»£Œ\j0íw(*7(4×8&Äc7"Lì¡{¹\O%W4!#&urU\R.ÔÃW
+ ßª
+=héåâ¯)bTs9ôóÕÍ}ûv-å\Êj²ùZºýR.áÊUv9­»Ÿún¹b®RyfnvÓ¥œß¢{é6§œZîû¥cœ!1õô6à
+	 =Kå>í
+AäXL=­tBßŽ¹ài
+û­)
+èµ8Ö€³ÎûÁøénÙj,
+fºLÃâîÃ·Óá#}ª;ÐtåUBæHÔøª ÑF+ÆNwÜÄtž<Iìô'gôìiáÞÛ§gÈÁñqçðíéÉÙŸl­|a¥:±Ño£»OÌå!ÐéÈäþúœÀœcOur®sL?¶æ¡*v¯ÓÆU7KªÉêteŸjeá1&ùÕæ÷jk
+dè'xÅ*ŽÞ#W®D~_µÛe=à äz©;X>Ž&V¬â=«Lò#$ÉÕM)5ê#&Òdº²PNÎé­p±LÚëbÔœ©J/×ÃÉUµûÏInJy|WËw
+¹@û+ÍPÀYÛ<!'OØù®Òf#&ø®Y`œÁ7_žFIù5ò¢\^PÉL€,×nY,ÌÙ²(Õ_Î®}þS MôHç¿oJÏxóß³çO·wáá;ßlï|9ÿ}fç¿/ê?`ýwgüûÿÎSXìêþg÷Ù7ôþÿÍ7_Öÿ¿ÀýÁúè§;SO{gx÷¿wŠ_?öÎ·±ßVŸX:[aÄ¥ü®ïa/ÆšÙbLÞûY×àqf{³ß?3Áï÷¡Çå	bÊ
+ñ	G!
+FXì¢Šº1
+»³/ÊöÎÂzaYwLÁêlï#$ª8Ø·_2Zq8K²ÐÜÖšZhOÒæMÜJp<ãB=Ú-®Fú öiMXc4®iÒ,hŽÚ0'¥vg_€ŸO¡ÿ%ZÞ'Ü
+ÿvílûòßÓo·¿ðÿÏÿ£§Õù¯Þ	Xs+÷
+PÄ¡,]IÕTèZ!sÞ£Yf«àZ'S5GãËÒ
+QxÝKØ5b+U
+Ú¹,¶w	¬Æo£íøQÃ`#&Ÿúmó»ñ$È9Ãì]Š÷ÝL38e÷*]dt#$¢KÇ
+«,¬ÁÎõl²ÖÂØ
+Št1ùÚpóZùja£AMl@5€ë¯.4xu!ã©ñ(1$$*L@ï6ð;ytåwy;ŠcD»÷Ýû`¬
+ßt¯^0bÎú	t©îÂkô#$'²û'ö:¢þ{žñøïj}òÀCüÿÛç
+ÿŸ»û
+ÿüßøK°
+Dù¡
+Ï.åggYGû#$Žé,íÑÈè€¡ÄwÓÍl
+DÌ;D#H­ŠèÜrz­gEL*ÍUI¥º,ª
+(ÌÙ
+ù¢<žxjªÊš7Iyè=UeÑÐØ
+ÕlðpéLo9rðµÙÈpÓH/TŸ£*Cøñu]êâ
+Íò
+dØ	ðËÎÑ	ðÁÑï;''Ç
+vs¬Lùúäà0Æ.ª
+å#&jçÅ
+¡A£ÁÅÅ±R!Le&Á`>ÅúÜIM×É#&Oä4­\
+Tša#$IÔÐ_â0W3<ØØ^?õJ)<ŽgæG
+<þ?ÊîßÿÞÿ<ßÙÙùÖ×ÿÙýâÿñóÿ·3jKÎ#$€1á@³³Åx
+;9Ðþ¡Å6
+ÚÂ[ÈÀ~#&7B§«ï È%¹§$€ñÓEïcàÁLB9`Ž¶Ë©#&
+$ŠC¹®+ú á
+F/*ÅªÜ#Ñ÷ÊuWŸSÎÓ©¯W«ÕJ7.Þwi/írþAwáÎ#$=øžëNOwø}5®XÌoþ\Ýdé4žÌ³àjÑï§³É]:ë'ïAÒ
+ñMç€;#$t6%OÞ0H
+b3 r|2yøÒ^ó¢,=õåœþÂAwIVMŠÕOf÷Ó9fÅO(¿@Dïiï¿æ7·A¯;¡R{WÀé®ñA/ºcÈØOËG¯Â
+ùœ|é°{}
+ôniEÓj@oÐÇeÐ×
+N[°œyUèx1K§A?é&7œáŸ
+~þ¡
+eïŸ§ŸÀfÞÃÞ¿Sè¢àzØ],¯
+
+ŠœÁ
+>FØÊõ|6ÏîŸè
+4ÿlJoæ£!5îf
+ª4HFþBÃ#$DF8
+ïk]¹MgãÇâ6»ÆÞºÅÆ,ïás14x2ËG>§ò{J90á?ÆèVF<uF×£9Ð[@7FI0\e÷cøÎðÅÿcÒ
+?0¡GYª=ÊQaÙ¥QÖëf¶òkuçÀà
+nbÎeŸKæ³_Þg,GCÈ7_â¿Þšs
+k8Æyâ§SzÈÆó
+#$*~^%Cü2,ÒÙ}0é]%? *øL1`Øc>aJ?ÓnÐÇbÎ¿{Wôwx#$¡1ÅÂìmúr#$£PdÓùmÀ ÝÁŽw@Ä
+¿^O®Ìcü#&íNÞÏT»)DeóúìÉEE>{Á?&äk4u3n>|ºàQÆŠáY0Àüíín³i2îÍè#{³9|ÌGÙ\R. sXjYÒõXÌ`MÜ¥êËû Ka8 Ž,åÅ¥óM¿¬t3­ÎnúÐ}ÐÌìfø"ÙÕíbdã'Gñ3è ÐýCÖíCYw	M]ÖùÍb|
+Dç³n¿?HÅxLÞgÁb6Ä£	¡`ð7€E6ÝÙY,ózéïü·ÜõFÀ=Žó€»þ{Èüþ*¥5ïÓ«é$CÜ¥z7FN£þ¥î¡/Säøøe>Uà'x?ìuq#&œ#$žcßOšl·CÐ	ô	Ó>!Ç\qÙEÇÉM°I
+»ü];ÅBD
+âÿJk!/káògh<êÁg=ßÿõ#$"ÝÂ_ü5èR4}HlÓzy:NÊ6-JR·ŽîltGyg#ÊI¿VÀh0
+=ðÒéOswù/Yv
+e7VËÚÆ5
+$C·~0éÐk]:úæÙÜ	tîZt4ï¡[/7i)u8«ùÊ|ÉÈ@R)Ö[JWXkœ>ÿÛŸ¯¡ÝÚdv9 Ë¯AôßxÜËåf®=cÐ&­&|ñPe¶z*.HÉéò#&œ:XšÊÑŸlµ;šWÅä$ÿÔtù°ªzÉôJµ¯; sHWMùÞÖ^I9%y@U-2níØê4FµéN4ÝŠOë±¿äÏ¶r6*wtÚ¢ey3Ÿ°r©#EÞö÷czÏjÀò(ûj²
+
+eŒOè±+è¢A #&`ÐŠQÄÄ~ L	Üöj£&Z])&"ôÎWÏ\5CB#îè.!
+YRxYXÕÇ'Ò#&6füXF#&ºí#&
+ü.Ú>ÔØ«aáÝB8ÿ5ÈA~oHD²s
+þ\ìÿ€ÉÍ$ôûø0
+œÙ?þ	öôãøèe
+r&HTÕ¬ldJzÚñÆ~llpÊ¶±!ßTØØ¿
+mÔžOT³\Œ
+syÝ¢¿àP]	=#$l
+¶HMsëoò¹'zn°+à©&Ÿ¥#$6`-<Oç$Ò"#Âv 9žüèÅ
+!ÏªÕýÍM}	*¬*	ºnYÿ*nìœ¬9öAã
+õ(ºb"|ÊîW§
+z®º¹;­¶ÕhÇMqRLSâò9yt}BlRXdÃ¿ÆY³ONM$¡H ìàè,V|ZUëò¿Zm$PŽKéâ<ŽiÂïBÏh¢m9úÃ«°ÅŽ×
+
+cp=ëNžn,œžË»]+²»$õýŸÄä#$¯Ø¥ËNêef3.a2'p4ÝÝü@ÕºéfÛôŸîsóáŽÅÞí! mÌr§1
+d§Ä,.ñ
+
+náQ'lGØ|øeó
+.PIxtz!pª·B.¢P4ó
+¡T
+#W èY2é¥_1Æ£Ü
+G§÷+œ;ôÐzõ
+5;+`i\èŒÑcW\¿;ÂÊX¹Þ
+yí«¯¿€;Æ¥§|3xeKì#xÃÉ«*É]SÓ3 ²VNdÍxÙÆºøz×yõnµÜ¥ä;"ÃÁÑh
+ÏRež]
+ÿ~×lþµù×wMúÍDBÑH
+@raÒ<I[uMýþáÇÃ_:Ç'û{ÇhòÃÑC`Ã'¯.~Þ;;|÷îçÉûo=ÝÅûëwï^Ù$ôçÖWdÕ€5ÐÌ	ÑãJxùZ¯
+e1@ã^º·Çô
+»#&vZUèpŒaíÚGD`UI²ûHIôwsÇŒ?xÚ
+uáT£dÃºz$Wbª=-s
+èÔOQRûiè,ÿ/
+ímY³âfKêY]\Æ¯èº²C­J¢g$×
+µ##Q-BÒÃœþž"#&õº#"+XKpã,>ø±P¯O5!P#Uü}±1Ä¥êe
+n
+kœª×ëoi}MÚTßš-Ð;¥Ð &©-U%7%÷za+YÝáv#&ž
+ôÞ'^ù2úÁþa@oïÞáÊ[cáÿŠÚ¬Uò	ÊEl É¿ès1Åke8±åNñmî?Í#l&a'ÓîÁy)IsK#$1W?Í(Lê
+ñ'E
+'*¬³Î1Gýu6ÌŒ¬YVÄ=U%¡"#$S«E1D£È`"
+æø`.\Ô²PÁ^ºãá±ÄîÎ/Q.?#&Qïª+WŸ^oNM¢rZGãdžè¥B/Z«Ðºª°×ŠòI§«%ÔtÒZ)4e÷W'8Ø¡`Ç;Tê©
+Û?\NgiÀérJ:dîð|Ÿè#$ÈºžÞþÄÛtþõ[µ`õûŽÒUrùZŽw³Õ«ÿqBÂ«ß
+!(ØÕ65|Ž¬°YvW-ïÞýíŒZ7Ëz]Ñát6é-Ã[#&·Ï»,Yx¿È@ÙÂQžÔ£ÌŽT:³ÒŒñìWpÍÿAûyÔfþ¶O7¬¡òççJ:{]S|"Ö}€­0Ë¢ÎNÔÙK$üeI$t§[P}"ù-Ô6BøŒËðFçé._8é#&>À7uu£ŽÕµÁUý'Rñø²,+FúŒ
+­LFéáŠNÝÞt»Ç
+CÅÅª1+£+ñayÉÝùpÔGíFŽmÊs9h<Ÿ^ï<\Þ*MÏTÍóõ$µŸ©¹"}I
+µÄY AòºÙ
+é²Ìô°NsïMÈt²Ö§HÈÀžæº:/ó
+ºEFL/Ô#$Åh­ÅQ.ª6Át¥`lËäâÝõÁzpí©i³ßd^×òñ;sÝîõO)ŠKòç¬5Å	öðÆj
+dð-ç#o=úÖãwŸö «çwïÔ¥3
+8ö77ÿÒ¢ÿí.7ì»ääïŒû¹5ÖsBÍµâBU@ó[ D(ë2u.0è=w
+XT
+ßÂÖ¡GÝÿÌÔËãåvkG8ÏQš#$ÀR(¹éáµ8³M^È©«²§ÖóœããÃýÊRÌôPt2ÌÌNáµlAÙñ+ªÑ]ŸY_X4¥¡:ze]ÙŽ§ûÁzV}XqåÑ;O<P/°f]Zë ]
+b(¶ún^Õ«Ç(ï=yØmÑðé
+(Õ!0Ã9?Êp*Rÿa\YMcíýB¥/fØ#$7TúÐû-Kž@Ï¥ÊKýKïp]zâÔÃn¿à0ìÒê#$âÇØáérÍa®tû²üsÒ-°µ!)V";,öiRôôGY_
+£é/ëÓäát*>o÷<ÕqAwÜó)¢kFn§MZÄ
+kÑµR¶]Ål¿Êo³ÃÉûtfGÉWµð
+âý
+à£PÓmÁšH.)9Í®õdØëH}ì:OÐª¯FÄñüÈäiÃÔLÇDigÕJêüU
+Ø¹«#&0#$,,Åv{8§ÎJVlæ0óëŽRÎ\ý7¬e²ÁhhíÅsÑ.Bÿá%*KéáÅi	ÅÃÃÉÍ
+Á@3;àÏŠ7e:žçT}'LâÒù;»hr©Äq8#&­\ŒÈ°×y%Sïó;ñ\Rg»Ÿ
+¯[,E0¡¯hõÊBS$9P=æ+ò1A$Z²\àO¯fan&š[8Òr\{³¹÷O¡0ÆžÒ|5k§+l¶bŽú·kG¡v§³ŽOáÞ4#$7O9:='÷Ó©t4×Ž¬c$:švœ7lö¢;Ro
+_ ÒÍÖ±ßÁ
+#8ÏÓ8ÿI9
+VhT³béw/§1Ï
+œ.µñ¿©W/nR#&žÇ·ïd²öš®R®@uÃLÃÕ%QÂI'³TÔ»xa0Î|Leij°±rýfq¢
+M× &ØŽŽ0)Pñ¥H©Ä J+Ù#fÍÜžpÓŠÖŠ»¥±µâuVÚé±([ÉªYÊÐ0]}LEÈXþy#Ž¢#c«K±ŠãIa°3RØf:³Å0Íj
+müç,Žs#)üAî§M\
+X.ÖšBlßÆK«8å+.R[Åö/_qàÚ*.Lö\ÐÃSþ E'÷ú¢.ÎÅÒÇ
+4l YRlLWrJüþÉëÓ£cÂøS5¡Z¯Vaâó¶ÞåÜÈ6ôS
+Âô#$ïi5©8|{x
+|e
+œ
+mS|L<#$Šà)¡«i3sØð<?àEHy¡Ý°cº`2
+ÞèÚ+
+;u»h
+ÇÙ§»Á)Yl}0š
+ÚcõÜ§€ÒùifÅ'POCí2Z°"}Žÿ¯YCM÷ÈŽú°,ŽþqýEü_õÉÌNHÊE	¿ñòä)J¹³#Úr,L¡ÇDsna}ßÞl
+RÉ·V²Óº+YôËÖ:x¿ÚšäÑh<ÎíH]Û®QaøÐlœu³·äÕgYo<N®ñÍuë¯a;ÊÐªxNÕQê}uÚ¢&Ý¹êgsg'
+ô5"À-8èh9­«á-Y
+hÏº:#$zÁ4é.Ýû@hÙ«õhæ@óõÑÌMf$	#&l__<<Ær¹òzïÍÑ«Ãó8G
+huQü!<ÙæÈMaÈ;nîïÇ©~3¹kNKó¿ùÑÔÎœ5èMŸO>tÔg±Çãîsæü
+€
+Ôežõæäøäû\59Ä(¶ÆŽP£ôõÓÏGoÎšp4­
+ÊÉŠqZ!º)ú×šž¬ÌëéžL²7È}¥§îãïSØæ-bí·Ë]æ¢lLz°ŸA_7RÓÞÂ\jž©RÂ
+$'@BÊ+çbÁ»õóÓÐ¬_
+ªíB¡o
+¢€[QÆ[
+®jáÐEÙ§4v±íÈ#&|û¶()ÑöB
+
+}~ßBßÂwÌ­WuaòýôHþÖê
+M'xøû6Ü}
+?Ü:ùé¢:BÐó1ß:ÿéåù/ç¯[:ØMýò¿å«P7íéÉùÑ[?©º)axN~>÷ÓêàÂÔû%é÷s5Ù?»èŒþéøâèâ³ÃœÃÎùúâÁãcI|`«ùXL·cÓ-Mª)cò(äÖæå÷ªêœµênå8è­U+I/Ÿ¢GŽŠ8¯ÛŽ}
+\ì{ú'§G¯þ¯ŽÛ:x#^(€¶÷	
+­2¹9»ØG°ô­ÿ{ä¥æí­ÜÆeßº8%3²Ä÷±Nc|i¬N¹~ýÖmñxÅÅ'¹å)p±%?[eÞ1Ì
+V©
+#$€ÝÚzQìã;ø)aË-Žî¹}°úÃî_Àï5;ó[sžÔ	Bž~Ë¬G:o°»ÕñÛ°Å¿tw9ÍxØQŠ¿ÂíqÐH{Ÿ¹Lñ<®+9î+Þ&3ãU.
+Ð
+ßÜWd+Ÿö<;êpº×à2T+ «|áÀKwý
+ï±²qèÖê¡J:2Œ#&EÚZsÊºfrç
+t1õ_
+º©=ôz¿¢"êÊ³o¿¥5uuè*³÷í· (¶îpŠ€;ÎPt{WÏI×Ä}uð ¹R8ì]qŠÐî@5:¬qa#«Þ£%¯š(ÔZz¡cÀ*
+DçKÉÆfZny¬-Qà7µlZ®[Õ4ŽgíÂa¹
+7té[z*¬Ë 
+éYšÖwþþÈs°ž$ÕH¹×Vw­U}ù$_ù4Ö·¢âS¯{çònÝ;¯EUçwÒäŒïþÕy&÷¯·6äÐùë¿pDÏkŸ¿×¡2ÃõGå7à#K
+Tq¢*R·WÈª§ÉÕs8nGr#$³®ljV®[J»?çwWçW1uû6LÇ9ût-';«ùé¶9JÝvÑ#$_QLf^
+!€Šãñ&d3lªzËZÍT){sÙ7
+Ô°Ñ%Q¿Äó ÔX%äÂºW£pë
+t[ÁùYEÐkB{ø«Âm»]®<Ñ¹øÇTuÞ$³L>§ÃæÂVg±ý¢¬3ž%kÍ4~×¢Žx3¡
+FM
+	ÇÂDÄœ£]§ãt·HÎÞÆYvB¹ÂLHZ+ÏnèA€£«ŽGÖßölPjJ¡HND{µK=\â
+ZEžÏ8JdŠúª€Õ*²º2Jõ1
+GuâË_Èq³LÆ¬«¶¡¿dKõ'&ÎXŒYûtšôD`ëÙëëÛèë¯oßï±µ[¢ÑxF{ô8Ik·èIë,
+Ri=Iº³Ù=Í±PÂ)©[Záëqü^þº=ûÖ«° à­Þ€Åîec+ÒaFJèúP&¥ØìÖíô\£[ÕiæBÚ1y/¿6œÃ;
+œßŸ¿
+!
+:8DìM^uÜA>§.
+-ýÒ;/-aáLc9o²Þçìõ[èõ0IðÞàûè9¿XN	,¡R8Â7FåÊÿŒìfiXo¥iÝº#&œ#$iY¢³»qnÂ1~-g5.Án£ôæFÙjõâbTxîÄæÕP$Â~#& ÷Y×Žsç-×#&/
+ÔOrVXî5çAy|«œ'ë9#&aôH¥xw€rdQr®9ûjgÎ^b%Ô×Å©WÔLåÐ¬uE4_
+*ükãOÓÙðÆÿ~þ|ç
+þ÷Ó/øß+þ«îº}.Ç_-ÄpÕÎç#.
+Ip]+Ëlq5*ÇA§gÇÒüöü§§§Æxlk>!?A?FÝ)$8|{ñÓÅÑñyçâÓÃ×{§#&Ú9x0ÔsXAo÷oñ²¹ÌBV^"Ïwžð¢FJHâ`}'>4éBä¬b}µÈÍ)ZÖwONéÜlPœusbRjN"åib€q&Ú-lðØÇ¿r1
+ó à.ÑAgJ%.¹UB
+ð§>.êè,pEËL2\nº<GNF#$ì¯³ß±÷V9#ÁÌ°0HQ[Ëú!;?öò4Mßñ£
+ÉF?¯#& ÷fÊXš@EÃ®G6Ð·2`ý ºq×«Fþûß¬·e_SÃèe 4!vjo`Íã#&QöÊL¢±/¯{Ö3àç
+Y8¡MkP·ÈEö
+!õXFv%c£ÇdWÀ,C|ÃHgß#&8T('º L	î2žÞM9`íp1zÝQHy5ë^§jÐ²`tŒéÆj[2Ûè;Éý£^|i
+]hØÛ2n°¬ISã±ÓFn"^#$ò+4-;ÎÆÔòÃá
+ž]Ø*ušá¿FÕj4³Î;~ÃwôÒ»tXj×­ògÅr8ÁOÚ~ŸÈÝ
+zŠIû²#$ÍÃÖ­
+÷ÿðBxÍPÈ}
+)Ûu{
+(á±.×Oðg&ðë°×
+ÿÁYê
+ž,{UåGS8`Å¶öOÎ«.ýÕUÐ4kDÕÊ%É»b9%øyGµ9\Î©·µªx8Uâ{Tý­ô1ôeCv	z{œy
+eCÐÃŽÐýtù«Æþ&
+£<¯Þ;Ûÿáàè¬SÊ³%¯ÇŽsYËê#$æ)ªønr}5Õª^Ì4°üoU6í¬2¶~ý#UÍŠRLçÓ4ôïîmVaföš6+å?IîV+#$//X'pK XÐ°aïoÒaHÊáæ¥$€pùUòÎ©q"Ï8ák?øÚu\-eÖXè«×,Ç¹\°
+
+|°ò\žæÿÇ_ïü7OÞìjÿ;OûÜ÷ÿ±ýíÓ/ç¿ÏÕÿÇ¬Ä×
+ÅáÇKD-<ôyGŒ
+rùÁÞ?è¢ŸçÒ¥©0
+ßœ«ýõô;ä/DóõcþüÏr±ÁøÙÂQtú¯#$×ýË¿ÿú¡ýuýCÍiŸw{Iw¬O~æQ(ðKûHEº3^óNE.ÄElº;!Ðe)w>Ek×°â6YÌÁ*ß'46¿uNy$ø|àn£sÇ/î9Õ1Ð%k·@ìP­BlKœ/Ü«=àÁM 
+ÃùR
+XÕDŽ÷ñ}h#C!#$»nÅªË@L2|× Âø=nbÊÍ[P9ÂUÐà,ê	)õÆš¬®ð
+iAcIÜSÎ9T«O×»eæDÉØ>ECªU183W)3ûãÂSU2
+NÞc¡!
+œÍ°C#&z²'±`uŠÍöøe§¿G
+~=µAµbÉYÖñÞÅá[Œï /ÚÅòùÙþ«£ãÃÞ9yÚë¯&¬íÓWŒúþP	W«Uô9š¿<z)ŽùÛCGÝÛÀ<Ö!þzïÇÃ£7L_ÿxšëT:.#&õ®Í:0¡d×ð#RO5!uRšÞ·é5XÇÕ°Ç¿×,WñáôìäõéEIÐªË)G
+fðŒ¶.3qÛy
++
+4ÃzaNgWfÎõ4Q¶YÔŒXS¡÷CLhO)a¢ÔNÎÒ!Úü«'ñâ|ñx6KèÉ>Ç1j7¶54ÛÛ£Rä'E	0»øçbÙ)¹×(ºëŠ(L1
+Å
+©Àº$
+².[ø#&;
+ÕÏ µÔúä}Ïë¿jjq6l ³qÚO^xã^¯
+M
+RB¡ÿÞþtq
+¶ >Xñ2±céX~EÅÅ)Ì3iåýÆ©aYçÎ>¥ìíUÌžkÂž££ú€­&eË}úx-Ñ&kÃY÷'±µÎÓuÇ\6€þž2w#&Þ ¥]g4^§3{X
+/Ï/ÜÎyï
+5xbÌ
+®¥:êÕU^»àü3ÜÑp)¢u³é_fŽ«ùæMyœcªywñ~ã ã
+Íõ²Û}wRæºC×GúÄíáòHî0`ÝOV7÷ÎJ
+e5Ïí§nvÃ jðÝ!À6cqÎÒ»¥Ã?ÖÕ#
+ñôœá»í²ù3Ÿ±ên¶\hÞ °:V»
+bû°Úí©:±®­Lå»ÒW/u¯}(Hœìýu¿Þ0mdTT'bÆ®öXŒŠË#$#$OÁÉáÐÞK§ÀEdïY|UÂ	ÍöŒCyûªÚOäbÈë­(òö6.DçX«
+M
+ÎûšA	gN9Ñ4é¹Ø[K?ètèæ¡Szâçh'µ4¡<[9§ ûä¹êB!]iZbkkµ[ºÙ1ÈR9WÌ1
+És}ä
+	HÃÖygrÅO1w#&Çºé<vH$ÿŒy-
+µ®ìh06Öï`ù€ÜÛ²'£)ÃT×rš«g*/Ö«¥Ÿè3j'S(šGÔ+¹úX±X­«nF 9ž0Ó(JØµú(ÀÅ 9âUBVŒÜf>Ä2cZjC,ð,sªÄ3pïnÀÐ­%dSÖSmqsŽ(¡	Ä÷°°5ëä-RwJf£XRÔWCK¯PÝÙ ;³4'?\-{}HÅY«£i;HåJbðÎ WtT
+wwi&=¿Lèorï9O
+*9V
+­
+ÌA?åODgµÔ	ô
+zfleÞ¢aÈ@ïŒl'zP.7s{Íh=:T`2¬Ù$Hù`ÔÔúßkÔŠ`
+Ðîú#hsŽËv/kÛ€PÑÅYªÞAKó'à.ŠÙ.~ÉN*gi><Oé#$|ªkpHî.õÏÍPV	ïÁßNÏuXãÇ±rªT®è#&ÿr±àÝ*ø®ŸÝµ/'
+"#Ë
+=cõ1iVMiLnKŽîâª7fª
+åá^©^¹E~¢òÔ,ä¢]n![¿<5€@¿
+b=¶
+Œ5ÆcGRAuÚ+œUY
+Î¬,vDåàH{dT^³¹2"Sð%My¢iMo%.Û­øÏïýçºýNï?åú;ßn?óõÿ¶~yÿùý¿Û:kªöÙÛIýnïü5êß!çhâd³¡þqÂñ#Cí/9=
+\7SJ{ÄOö
+k:#&B¢©QYL{öb:>íÇasR N:7É­«"#êT£ÏŠBüC_ÔìÁAgpµ=£Jv6zPÌ¿/õ2)êY( 
+)œ³Ë±ŒGõ«÷-óK¥;#$Yœ$4mTA®dþúØêvè-Æ¢]8lí5Ò÷­oÑBP&³p?|\!ÐyÞRÚõ"i&/m\ÀßP£ 
+Û¬|·w^1³wÞ²ŸÇÖNÅÓ&¹#&
+]Š§"¯uí$äDªoK²ÒÝCÚœäòÿA2M~ýïgåüÿ)|÷ÞÿaOøÂÿÿø¿ÖõöÁæwÝugÑõr¹B;
+­p
+`
+NÂ2À<8(1Ð]1@É#$AêMRFÃCð<|EÙç¬>
+'Hn§aÝ~ žÛžºÇj7Ëv(
+Ô0s=xßÍ,À«Qâx0?ñQ/Ñ I4
+4BÐÂ:I¡ÖIhã^ê!ãoÝYÆÚÅŒÄÌŠþ iÏ9ìËà.=.ê/GVþï}zéÿ!þ¿ûüÙsÿ?{Ÿ³ó
+ÿVü_ž5ñ~fÉ7éR©ãl/·w·mo÷·[ñù\;pŠót²%¹»HûÆd:ìº[}Ÿ@Õ2£h-µÆlE3[Ôp"zÓ*<øGöé$Ò2ÞC[xAä§foÅì óúðâ4/²þJõnŒé ûÑäAwãÕjµ¢8óAçoüm·
+ü#&{
+ÀŒ×É_ÐwÎ<uã%xò~6§ýážVÞL®&Ùnµþ
+GŸš|ðE«b.àD1aºo 
+ItI~QOØÒ€V¥Ž\]ôÄUT÷
+E¿ö;%T+*ØK,- ú3í5éx§<-]íë!^¯}zu1ªkÌQUøÉUz=ÛÍMF
+ñä+
+Õ_@#&©¢ù<|©U~Ì]ôõ
+¡Ö Í6@zÅ	Ýëò³µOß)AAÙZÚé"_cÙïÞ)s}ENQÜAÅÊµ>XQM¥
+âëf
+ŸZõR
+]qJZò+1@r­¥w{î¯é€Xa|9·KÒEšRž©ySgÞò37tf·€Îñ¶ÕÓ.YÕ>Ý_û#$ÿÍMýÚ®­U\Ñ[~ÑVy€hÀô¿I2ö'ÑpÙÑØÉyäÌÏ{Â+)BºpFµ
+ÄË#:¿Èëg5öÝQünÛP€
+
+Ô{W¹t!$
+#&¥¢o+çU9è]¶Y»üû_ÚõjÝJÏÈIÏA+Ó³·Çñuædô-Hßª5¿.ÌÔ
+ºnË¿ÇíÍžÖŽ
+$eõÓšËo¯Íªcbõ
+{p>»G¡;Ðf¢4»]±,
+B¢ëÆ%/ÏÿŸÐa}7<õÎî
+Ì
+£]kéàRäûîW[AŽöÒÖ7õb{d7
+*¬Ò#$·W¹Ø²
+ïµ"­
+Íc<ÅD­@ »s­¡«Ss}UJªMP;È6É»J(z×;ôÞ%³uŽQ#$4vg§¿-P1n­®-áZŒ(Ý;]ªúµŽ85ßªc¶ÀÈžd
+=¿ ­íRQLÊ¯JWÝc¬
+?2+bÏQLR
+­ÎâvP4þÖ5»¶r©M
+IXnUí§ML¹þÁ|2<@
+÷fÙY/ñ%ÁõiÿÎv
+k¿ôbg}M'ÓÚv]ÏG@ŽÒÈÐ
+¹
+¢£ÌfëGÉBµÊ¶²ŸÐ¥°äÅB zÌzSóÇbãàžYêõ¬|ËÞÕKÓ0Å÷
+®ÆÈõl1žõ
+Ý%œÙG[ÄÎÉVR5Íp}]ŸÁ#F$gOSÖV"SÒB"µLþ±µYK«Ðe¢ïd0
+€NÛc+]d'Ñ~ÙË
+±ÝvûçÓX!39PLË°§jz¡M?Ô²9ÄñBÓC³Ñã
+}g#Óøói8žvêþî(#${üðÐBë^wlHò£¿Yá¢,vn@ŠóKØbO2
+CO·^·QÊ«ÊÒ=[F×îOòrºnJfùýÕþ4t×mýÅÙFÔžhñ«nÞ^îŽ4	#ìèh8
+ÊÉ³^Ô!|
+¶YvÂ¶*ŸÏÒ»BR:L0ô·ÎptøÛqñã>JÁÆ
+*IôSÆÆMÉ^V²Ka9¬zÅfI	žöô:¢úàŒF ¢óÑ4V]õEZS[Ìz!¶eû
+ßÈmiý	²»¶UÒ±ïCö>Ö
+^ÑBohçk€kùë»{ÚM
+jÚÒþ#&ÝbÕi7ºÄŒï¡·«æÂ~¥ÔZ¹Wp'\¥»IÂÓœîê{¿I­©§¡ï#$,ðdö,`Ã{%P¶
+ô
+"R"£¥ôò¿vÇ.ë
+ºpž
+P º-ó¡¡iŽï
+]ª/Íí?lÏVßÜiµu3ízyM-è1,ðahkábÚ<`,Ù#$]©úcr#&ìÆ}1T±è»Ù@f³59Ð¶}¶wøÓ¢%×
+ÓclöjÎ/§ÜÞ<bš&¡¿mTYÄ;œùS¯n!L2Ô1ÁÕA6×¶£»üÌH,L³{{zž©©CÜã¶êœ¥èÖOËºíðÔ2U|`ù·å³?¢g(àGëVu£ŠfkŽ¬[±)c€!#$=~<ŸÕüóäažC
+¿Ðöå[®àAÔB
+51T×
+
+ÓS2ðñåÜ¶äX»çŽ+ÞÜÊ+Y`T€Ô'=5l
+·PÊª»]Ïø%[VÏt>(>(G>p íí:¿ÃY±u
+=ûéò÷OplB_>`psÀBaÿ±±­ôõäO7"XBköD¶ýÕKô:
+%BWê°Ü
+;Ê8ÆµÈMý@GÑé~êV5[r
+ÃK]oÙ<Ag±Ö99;Úºîzûô2:®àáÐÇçž²w^]šö+toe¶¥oLÃiû®µ9Ïã*Bg×lžÛÖc	xûÞQUkqÝqµÓ¬íµ]©ëýÖY·*ªŸi îí)` ¥Í&)z0sVQkD/ÕÀÍÞ×ÌA¥²	Ýª
+
+
+~^ªºz$3 5zE#)á³pð25é­äjÀvPÌqZü	Õµ7U»j÷
+öZ)÷ïá^i3SŠ
+ý"ŒT'Ò}ªBè8îF?\%N-mOóÞ«§ècÔ:9'1­J9'*/ŒW€Z(RØ@ÕúLLÎOz
+Ä^ ÔÔ
+è>
+©\2é[C[dæÀ"EÒö:€ÊhÅov(-¶·Fãôgu¡tåæÔn3ŸŽšŽ+=¥ö{ }É5ÑþµÙ9E±Û·Úæàœ³}P#&ÁÎ<ü»#&&ýáàLÑ»Üqý	š$N
+8Èª
+ï
+jEâ©®
+Î@©#&ºó[€]ÎI£(LMÚì>hrÎf
+ö~Ô!ñ
+8$ÐïØÇç,K=wõ Fý-;0|c9Ãñ¯áÅ
+¶#$×_ÄoLúê²%\ßcJ²iGš"åu^Úä_©­M¯höŒjxä;Ô
+ÿþìððµAÝå@âê»!ùXYªÃ¢Ü,}|m
+[>PQYéürx||òóÃ€ù
+Úa#&îkdd» ²¬oºuÉ1#$BMvÄ»L³LõRw7UÊËÂºöžK¥ä§§¶{òµj­lzü Å'rYj.ù&°
+ÀŽØq
+Nñ@Ïê'úâ7#$|€Ã
+×#&,}ÉÐ··gv¯k£žJéD3sÜÞå&tŒó*µÑ^P¯ã>9ç=8<¿èŒ<zóêõEÆý¹ÆìlÙ}f|Åž
+ü
+¢ÀÉùÃk÷,EÇá4%~FRÇ#&o"ç]Ä±:IRîI®ky4//ð¡Â²Ée0Xà®fÐaz]ÂM:ÒÇa/0§øþ¬{¯1ÞexÇÆnEšcªuÈe@ôÑ°=R9Û;û%ò|ð¯[öx=ÙóÍ(
+Œ€I±F6~(Ëc§ñ,<s#$9c.±[£ Øs
+8š
+Šdû$ÿbgçû*E¢JQØ&¬ÃêÌÂdÖ^$|=×5ª}ù®­ÍAœÖ;õ"çm8%.g·ü~ø\År'ú¿¯¹§ÿ­Ó'Ð
+èû§»ÏŸõô¿¿yþìùýïÏØþ	18\
+m_·sfB%#&ÛD¡
+Íâ_ÑüÓÝ°uÉn²¢ð:I1]Ùÿ\ª^wætKüµ
+Z¹¹-*MDV,èötÌ±ðeX
+>#$áéÂþy=^ØÕ`c
+ÂJ	
+ºŒéL'Y6žBÔ$i_M±
+eFjN4Š.U¢v¥1$Ÿ*šâ;`1ÈÝPÐ1
+íÃaË
+®ÝAXJÕœ^/x¡Æ=:8ŽøKHJÙàÚCÐæ[eòj@ù
+4ÉôÞ¯%`%jù¥çeS}ëbEÈErÑð±*Þ¢
+ËÔUíÚ_a€RÅæ]wcDJî³ÒÙuã	?¹{m1!.l¿ªjé,de
+E
+ï`#$b3~Ö¡ù!²"s
+®
+ßwD¢M#ºA¢Gî+±'.@'`œíÆI×'¹
+Cë).]Vnxµða ni©	g± Þa#$¿êŸ±ÇET-ÈlC¯õ}#iš4œ`°¹ê#&îú	,Ašµ¬îaËî7t}ÞÃà*eõ?€Vå^OE¹ëïóª\#$WjÊi£Ý¯±ß Ó1Ôûcä?Úø>µ#$àòßî³orøïÏ¶w¿È«üW,ã)pœ§æÀ×6Ï€ð'I\;mÜg!LŸ*#íýŒvâhïÛÚNàÚg'Ú:{ß6ÎN
+ÛlZ1vØIvbü:	±7$ÙŒ
+¬+ÏùÒ|œ?`¥Iûô|nŠn!Ã6!7,TuéN`Ãò]~CþPô¬]
+£ÅyéíÂ xAœ\@ŽeíÆ­Ú
+k¹XÃÆÝ^)í­KrªM²MËþaÆŸè»PýbÂåZE*}(nHÅy>Ù!üX
+»ŸÜí
+yívŸýýÃWGoÏUÌÎw}«
+F?tŒã±
+ŒìÝ»£AâWÈNÂ·?¢ìJPûODÜ/?N4$§GªCsO§î{'²øJ£õ}¢_U±í%+Ÿvt¡`îñd:Õþ¬ G^
+[ yŽ@ØÞa}ÚÿVAÞþßþ`
+Øÿ·óÌßÿww¿à}û¿X
+ÈõBÂí:/@}(a'¢ðáÒ	#$µiš]v4ça4#cœ?ÿúê!ý
+2#z#$Æ1P·Ÿ IN#¹³Ø4dM$)©	IXjGs,×Õâ
+©ò¯ÿq7ýÑþwww·sþ¿à|¶ò¿ÍAš
+ÿß€
+¶Î5õüfïü5.Züìè%L¿ÞìÿtpXîÏBo
+#htµ©tG]áú­W}J"øx-
+=^ªgR×[E®igZšÕôrK+«X).U%­¯ÔŸ
+TÒ×Ž@Äñ	*n*«Ú¥Æ#&eHÞ]µ\­ÁùtÊEÇ;>çœøwf
+ÿØî#$Kœ$K
+d%¹J«ñ,œ-IÄE\BxøV¿á º-ñßtß¢
+Á/x^ÿÛï¿¿üïCûÿÓíoýýÿ&ÿ²ÿÆò¿ÈUúŠ[¿%Â£nyX\Ü[Ä¡òN¶w~~øúåñÑ¡rçB4I¶ÚžYÛ6w³,
+]#$)ýRzx®M³mÉ%«Iæû`ñÌùìRyr=\u®9¿À·â]Û2Ntí5q\1Ôºwa'ÜDŽ[ÙÉ!¶UŒÞ
+ÚÍ±ÚÛ¢µãÌÒÑäÎS)ºIdFZý1ß$ÓÃõM£ìmÛ*û0#&·f-7ê+ËÓcX_I÷ìðüä§³}!+yº(Þ­s>lØÃN#&{õJy6<±SE×Íñ#&9YPJÕGë+:F\Óhm~[d%K,«ì
+-Àz©àAÐ±âŸÌ·8SëÏ¿RB-}:ïØÝjŽé§
+$ã
+@ÔãY:HåÛX¢B ãÓj
+CX	F4·#$ÿÀÉË_Ž=çÚ¡8×ò#$UvÀÄ(!¿ªZõŽU­]ØÚtQÔIëÑIò¢E_O§w¬ð]d_äŽWü×Qï÷ÿ°»ó4wÿ³œóíùï³ÿ,ðoñ®
+³k%:?Ä#äO/Q×äÏ€n=Ët _Ù;äõöÔk²Q|:ÉKy:p^š$LôíÜ³ÁLÓ7Ð=î0Ò3V®2vSWTŠ°*þóåAþÉŽ¯ÒæK)ñÛšÕª­ù'Òû
+#&PÝ¢;ÍsçÿÒiÞ:ÅÎÿäôâèõÑÿ=<àZš¢9öàðåOßsÌ5¶ìÜ$?
+_í­Lçœ)þc1HçaùÈõÍfA(Š8nd7 õT*ÛP1&+ÉMç¬Öý°œúÝ§z°TÃ.Ùæä{&ÔT*"g#¶Ð£N5šÑ²ª¿hìhA(·xêþ;(g«Ä{éË¢(×õ_óþxçÓª­~ÿ}úüÙî¯ÿ¿ýôËýÏçµÿrüwŽ @K`Åéþ.@`Iä#&wÔ{®2Ô{ä[ØWP
+	¯šXËº2_¯V"-²$ýkôÿvçÃŽÍÕN
+¶Â1]#&t;0ÆÀQwi}A*çoNwH{ÅC<¿
+zÁ×Ó¿TLãþøº*œ©XçH;Iì	C­¶Q#c6Ë¯ëÁv=° Ó1M6øg:O'iÝNfÊyZP¬eQPvá`Ê5bý:
+qi`E
+h=ñºÑ4W#Båeko·&øu ÔàÄû÷[âýÍ-GÃN_·Bìk2o§$VÓ:fáŠTy27NlæÁÞŸUj]
+-ß/¶®Wã9^HiÃHg:¿A¬|ìÑ%c fxQ
+7ù!R5Ká}¥Ó%å6T
+k*Ðc@ŸzBSÜ«³œ×?ýhr¶ìN}¯ì#&k#&nëiÈæœ? Ín?í"sÖscÖèÿŠà¡¥Jv-WéÃ@ž(}Ä¬­[¶H}Í.ú5åÐêðž*Ó€Á/!QWèö=Ò¹}É! rOo¯,=&dùg²C9¡RUÜº9EQüX ¥BÃL!Pè>ÊáhMAÈIŠj¯{¢/æ(/­mœ#$@µàš«M>©¯iöµÜÈCb{0¹í^§N=4ælnÍÛô>cûûxi@Þ°uB' \#)^Ó6¢F`
+ÐŸ#ìÑ,è*ËÆÒRCð·ªu#&EÙiZ$íž\¶aB]Þ3€éÖ|å%øŽ!ÐLD­û
+Nnsô8(Þ§FY99K)aÔ(nóÅÁš×éÂæ6ÈòY"7-&h³ÅxÎRúÝ8ÜHð¥áx «~ïMrŠ£`â¹Â¶¢UtótÛj#$ËãEåF
+
+b8TŒ #&Z#$ò¢·z<¥såb<H`Å×Ì[ÒÉ¹eUç×°1«ã×ÒYGHlBšÅÊáøD¢P%Í
+ìÎáêÓ&ODbdœ}z55jQj,Q¥o€ÙÇz¬¡pLàžàðgDè¶;ìwC
+ZèT
+DÏG×á{0Èšû#$lSŽ:±Ÿ²Nüè&§»ÕÁ2y#$óMÑª)åQë3§\=ž­Yì2j×Fä¬ùºT»¬Þ
+çrad@Àå³î]Ú5Sä%(·ÔzŽmÛ%û
+£,AÑ(Z¹¡Ö¬ŽÄ:;<;?:ynð¢ÿÇb2W-bäÓòf9ÅÔ#ùn¹<²m-`õÊß§Q$!/õktªãO
+	ž%êÓÂÛuû>ÿøïk·hjÝL*Ðœ6t2åyëNU^âó~
+%Üê!$S6¡z#$tÉªÚûPœÍ>#$ ~>ýñûÎþÉWGßwä8Lf¿~à¥#&ªªä"?ðo$b
+œ6\ŒÝyÂoAUº;»ÎûúÑv'W»)»^FöFPrîŽöþÉž}dºEÇQñ¢0ûÃ,[=z°ðÛ(#K?ž2÷mÞÙ©iÁIº­ð
+jLµ7áµMì¡ŸžTTÝœeFFC(œ+,ªµo«íÛöá!ÞXu7h{3F%ØÄ®~ÛsÚ
+ SÖ×â
+@²+BXl #$Ì)
+&ª¯¿¬
+,.|#&³Š&ÎàüÐ±-8dáŒq¥Qhe®ÐKŽÎ­mÕ
+:Ö#&shLUã/ÇTHðÏËn6É«Fñt&+
+€£#&ÑÖÕQØaœ¹qêÉæŠ ¡!œÐkðèí+%&=C:BN¯PÖÝx[ÁÏPí·
+Nñg«¬p6Å
+gÔ#TÅ&ãáœ²Ð
+$
+r&rü5Qu=ö§KAhÂLÄºA
+CY$so#K'µ}#&
+^-óà»ì(,W
+@¢mö÷0ôç
+ºÍJ
+ç#$ÇŽã7ê<ìä"
+¿Lf<¹<²#&%¬Žm
+XnÖj
+[
+M§Xmš¯¢:n!Èór^],
+«ÎšÀe F<-sGÄWeèEÚölà3 MÙþû[2}Âª{uj!ÁÙB\YÁjÇBOm,ùóÎx¢ñù¬CãM,[0vf{PÃÊ£¬³µ5o`£²#ù¬{Ç)VEìô&óÎÍ
+ü»l5èvž žŒxçNêÍKÈß^q »ä9© €7·ºûx,Æ	¡VžÝÑ_ð`9±íÇ^éšì\
+Þ4iÍ¢
+¿I/
+æñÓa	¡%é{íÙ;laš¿š#$Ÿ~g°wyt`Vê¹ÕÔâ!!ú
+Ïa
+>Ô»¿ZµlÍ>A×ÌÖºš°âêŠ /#ö¢ðýàªÀçÞ¡·þba²²y0é#&²ªaeÂM0
+Mç÷öâÓCFþtóqšÜ¶
+âsä#:Yu/ÛiÎls\¢|Dõ8®Ç¶­«EÂ©±ðô÷ÝÊš<z'
+šÀ( Z&oîlPps¹kt°âý¿á®Æ$c²_d€zá
+¡>d6ÜqÑEä/Å×¿Ëfô#$:ùêâ©OoÛP¹Ö5_¥ÉÑó%°ÍÆ_¿¡~ôÝwR ðÑìŸà	
+êpTo¹G%>c22ÝÆìñ<õ¥s`RQÏÁÍ|>mmmõgizhhNf×[ÿß|ÜœŸßzßí_M&·[
+Å0mÞÌGÃ?É}&lAêN"OÛlÞ¡£Xî
+=È:RA«7^â4eÀP-Ø 2#&Þ³¢Qs;#ÞæÕWÈ
+vt3V  `°·9SÊÜ¢.lfz;5Sî62|z¯_
+Pz¯Œ¥Ú·)9
+aVºnÔwVô+Zë|îÐêÀPö#&<+ãù
+
+w!°:ÀºŒªßäû¡k€8\EÞ²mâ5¯;IÒÑAõæbvcK+øoãÛæpò^6Qê8æÚCØxc`l'Ðê
+[æ&Ù_bxk±Eº>
+ÞMŽ§Š
+Íß*4èQo·²[²Êï_Æú©x{7a|]õîœÐ
+BÄôÒq?°öõ×¿÷U×ÇÜk±iáÂŠSý·9uUbNªæN,F§çÞ5Rþ€`üÂ>lço*On$ë0Ý~·j~t_>ÅjÊÒ
+	ÕÿjØ(lbgrC:=ÏlRÖzkÎFsØŽjÞÂ&Ó{CBë;#$œMx¶"ûŒÝwô SëÛ}JVÎÙò
+Åüo5ØÓØQÆÝ`žÁLVÍV5ä'[1õ«\SßbbB±ŽàÙTªt	'¬9ë~ã¯€zî]'ÙeÑ{x®$krÔ£ð}XçÔòlD
+
+aÁ!ûœADW\y²#&H&HLMú
+ìaÐ
+Ë+VëCÐ]Ô4i
+ùVM¹ÆŠÀºæR·cv$¡#$ôø2g±CATÁ]Â )IOM$d8 Ý,%gÛø5%âLB$@øãJ:ŽÍTîM\dnFa,&XAãDÀÍ
+±clJÄŠ|ÙW€¡XÞFwŒ+ùoSÊô$º¥÷7O= Ç/ÞQâ»8~7®n8,³
+/­°4
+\4#$µSphºD'
+ÀÓ,¶±ÛVãáŸ"m	ña#úÀq¡ÀÕÙp#&sÃ.÷T<)v«f«<Ÿâ;\îFÁ°á¿Ó]¶IPC5=KUf{?VçÄS4Á`O×äÉûØí,
+ª)µJP
+ßÃºGR~xhBšk©$æ&°çOÄ
+äå¶
+UCÊïËÜþTü4"ÙÍ.k6K\ò0µäabÖhÄß#RÇ}éÊ}GdbI}	?XBWm»míoe2`!dçÄÇEªH£°oú«á%­b ãY:ÕÂ*ÚÎC¶úån«±Ó6%U8è¿{Wul2¢sL¹J
+ÆüêRAÖ7)Ç]kÝ8éYÐxG@8»£ÛîØÖ<ÜšÙ=mÛë>¡h+Ø­âs#÷{
+ÿô
+Túæñ­°^ól»
+9é{ËÓg¡T;·eü
+±Í³j
+&äaODºrÆÉ7ßQ³ïZY@r5 w€º²+±ü%¯µ7Ö
+ÒøÊêSö¶5ï,l/f»Þªkó
+tÆAúöUªîqñö£IwhØ;
+Þ	~ØûÛ!xÂ¢¯YX/Õ"2}O¬º£ocï0B
+:P^ëEwÖÃ/óÉ4Ö¿BçÕ9ZVæ÷^)%@ïö;LþâÔŽÊU
+1#jB}Z®{°>ÈNùPÐïm¥I#&øÚ1HV >¡šÅlw1c«¿cö*/¯°ö©ÏÂ"ÊÕêÒ³ºªme'¹s<š8
+
+HìºÐo:	[iH<!gø(bdeÌÃ­¯çÀ«^+øPAxô ! 7áŸì#$æÁ×[Œ©Úþ4èãb%­×?)Î	ßñºŠG2Òßên~qV9÷fWÅïBaÿÕ÷WGÇçwpú×+?#$zhóFÆØ0õñjåæg»²Õ¡ôú8Þ+JYÈ5D	e{Ã3
+Ò
+ßtôÕ€SŸÖÝ2ýç×ô^!èü1­ œó§
+
+%tE)[¯ìÀÖãÍ9Qäs
+)DÝ'Ói1 øtê"#H`
+CÕ*ßsšâÌç
+M§&,
+-Yê¹,w>D¹/#&,Qº§Sõ,c×ÀI2	÷¢~®';=UÑD}¹\Œ¬GÖ
+b^E×j>V®Ò1	Ú-Â6¹F4º©ke@œ¶®É][D×l%;	²T%D)Ë©Jo/GCÌ}CŸ{-ÜréþVÄDTàJrâHÐ#I<$À$€`K·2«sÑ¶i¹5¯í`{BZáîréQõÙÿÙößË!Ÿ+üÁþ?Ÿù6ïÿãÙöûïÏÿ7² `rÝø£]Ð4Lw¹,%
+Tp{úŠàbpo,âVD
+_
+È#$ RX
+ ãÃÜç!L¬šëÖsË¡,>
+|¶wvx|žw~(ø-»&:ç]~«ORçu~y-}û¶È¯þï9ö8³CÑ{Ç
+O#$Ú{e!ŸÒñG±¯r
+óê§ãcµœ9ÿðpn°¢W³ùP:êa!oßú8:kùLQð7]Nñ¬ø[<áZþBVàð0{©ÛAžîLÿ.XRÇí`#ÐªPOÎÍíP9«å |U>¬âíÿ×«Ý?ÿûÙ7»>þÛÎÎÿ_·ÿUn:p7
+ßŒÜ5šýøŽt5dXz|ZBPLQæ·h9;!A±Ä¢6×,d¥JÐ1ü¹zïøôëÿÓ{ÿ{Pþuóÿ³œóÍõÿ(ÿ_[®ÿ#&œò)ÍÜß/ZÖeþ÷žJ|%(Sö£?%ÐöCS
+àÅT°.òè>wmwxåb÷þJ©ûœuÄíÇžÙ+w±ÑkžÙ£d¶ŽœŸ<Ÿ3ŸumŽòc=òÙ­YÇ+ß9<k_ïí¿üéÍÁ±ÌÛ«ÅžöåaCÝ-"®«t)HÍÛÅÔ÷
+
+¬sÔMÛmM)D/À°«þ uÈm|Ù,
+Ž\»"{ph¡HA/êH ºäèõ©5­±S ·48'O9|#$3FrCØ¬çýÓÑsf
+}ÏO§ÉÁñqçðíéÉÙyñôÒñcY#
+£~£»OÌE¶rz3¹¿~//+$hôt®£s=	Lg6æ¡*v¯Ó>[U³×ÙÕ,¬LáêB-èWá`~¯¡M¢p"³Y:;Á+V¢Ìp±»)_œ{L²jA¶?êFÀ»TÈuRw°|h]¬Ÿ*XÅVöó#$ÉÕMû|W€u2Éb#Ób99Íóç*Çñu4
+ÙI
+¿YYÁInJyüË/¹@ú+o
+P YûŸ!'HØù®ÒIáUDò7×ëÓëëS'ÊeeÌAÊbyáÅÂ-RœðkøSÿ`}ïþ.ï?å÷?ß~óíÓÿÇo¿øý|ïÖ÷öÈc'rHŒgÔÁŠ1Žö)+h:yqi)t¹UN<Ï
+Æó
+LgO=ÔÒM³L®]úØyUâ_fò
+	­µCûUo\7BNQC«]ä©Qû÷é[ž
+ÚWc±«F¬šqOêÊûŠC%ø	Ãæ#$)º&eÑ	Ex<Dîª
+Ùùá%1Í¶ÊOgäïqßÿþð#$lýç?ì
+wNÏàö6æ®èäHu>ÓQRc=YpÃU=ÆâÿRé«w:,Óéàõ"lÿª§}ØÀæµWRD±
+1}µSÝšàÕ>¬G^9ÏQQ>iµÊ^ cï:u+°ª?êìKiüIÕð
+Ê;£ðýéÎ À³tA#$éwcÙð«Æ0}QrÃŸ1kêì÷âÕ€wŒøã:q§ŒÞœÛ»
+Ýš8S:^²2¶Î<
+¡!
+JLNPëT,Mà€ÀïXB5YÈŒžÇºLàCRZÈT>ð×+¶ø3#&¹ªa?Ñ^+
+!ò-"Bs?lA3ø'hÿ#%ýÄB­X:œYù·o²«N#&[êÛºÛõå5!
+!ýËÑ?°Ö^t
+¯3ñ/7Neû<Ov?ÖÀéŸqÆOw3º·ÑÔÝæªé@wpMWºl:uÅ`;
+âì¡ß?­~W»çªýit«{,üÔ^[*ñ
+'âNæsèaîK5mk'¶r¬ØG
+!$unÐ$»»ÔR÷~·ucnÒ·u6c+[yÉìòõo~z}Þawzdh§Ù+rÆRºJ¡
+.­œF#9©ßÈùõŒS$ßX>Ý€U>Ú{`ÈzeB1ªòÅ«^Ø{gßâ}&îÙµ7?_G5SK{Aýì¬Ûü¬dŒ.ô-
+Lõ
+ÒNåò\7ÖNMvÅ¿:|ŒÑèÓ7C(}s¹:Ò7¹7©€ux|£q'
+VÁNjMúNH^úÇ; 6DÜQ89¹MŸÁŠ
+
+<#&¿wQ$žÆáŸ^<?ÐOÕÉzÛUè¡BSË±èóG¡ÆN"Ö4$žCí*
+	^óò3_K¹2n$oKä('Pµ]·ß|òBŸUK<x:Ì]yÚýB¯òý
+gNóÄf/qèyzôæÇÊœå»œTø¬IvGò
+¿/iVnE€Ã«±RJº
+ijxË¶æ\K|dzÄº¿@Ÿ,HðeIó»Üÿô?ÜÿãÎóí§yÿ_îþýü?^[
+Öb/	?Âïãõ:~×w­hŽçî³ùAÑ+øAÙx¡ÊbOK=.l¯öŽhâs^WºO|€óÄ°£?ï'|6ØÌó×^ò	ü(ÚT#&ü(úO"å®)êßéþÿ'ÞVëí~óôÛþ×7;Ï¿ðÿý/¹ý§|ü÷üÔh
+0B·á-ášÔî@Nm¢÷ÝÙ8ûÂÇ`
+éw£Ï#&åÛOåðíEçôàN0¥3œ:ÛûŸÃ®ôÌè)Ïù*õût:ÉtžÈð_«0Õýjðk
+í|Åußé}çh<ºÃÁ?SràŸûTÔ«ÁØ( ýAÑ3Þö*¿VÀ£
+9Lä"¯|ä#&~zWùê^E! Pà
+C2>GÕÜÓ_.~8y³w¶ÿÃÁÑÙåì@ül8·"î
+§Pnõçôèíp ÀÄ .ÐO}NãŽ6Ehk,"Ýa[d»Éµ²ù*&óê§FWó }|£_¿MwífSj÷"lz/ø#&x|Ô·F¬9ÈÔÀJ\¬ÛîÄžè¯çŸÌ¢ß7¹@Ð
+àálLá
+ZQ»
+>-`"i×©;Åj¹ªn2€ÁŠŸæ±
+ŒK,/Ë.é¡IgèÑ€aŠq+GåÊíÈï¶¹_úZõëÇñ>ëê~*ÄÿðÂjQUNbð/L&ì¡P²!xÃ×šìæ¬MÜ+õb[àlÌ
+>ýeÔ]ì
+ï'µ·*mØU7hVÒb89žãZµZµäúZÜÖWèbFî
+ï³fwv}w¹ÓB&Æ¿âŽÊ³ø°£AÈ+Rd<mR·Ô'Âj·ÅA|©7ßwsl)Ye÷Ø5ãÄµtð
+	Ù©žNþÐ~¬ÓOvø?þ£wWìuá;H 
+ØýÿvrpTOr.Ú<ü1;
+ïnTäQŒ°µ#€¬&é
+$0âÇ«83ô!œ?šyA$«ë`Ííò+Åt['~Ê*9²¬PÕFV¯W7îtÑùböþ"¡}®NCçÉù[8å
+üòúðÍ
+Ÿø.b.TÒfõFµT#:ã«Q©wœ]#&Ý5æJ±ÏŸ)$Ê#µÑ³/AÎ vøáË£šAšHMuÑ+`Š4iQx¬øŠü¢ó	³n2WüÛÔã óž
+(Õ#$ÓÆËêðF¶Zü¿ÇÍŒ3*<Ðo
+[ŒKgØ2ÝAòF#&äáù`Äà_#&²_ùÕpÜ
+wÉqfù
+SïO#&%e>k'Èq
+¢Í1oGm5¹ÄÉ8
+ãjX%Aâ²±Ã¿ÊsgÀÉ C¶¬Þà¹Hy>ÏY]ã»
+©yq79, :xâ{2ŒëéI9ï±#$yQÚ¹@€{F!E
+IÂ6÷>ýÁ,šb×QÐlÖmdM9vg;mP%3jn¥8>vž».
+#ýª&Å÷*S
+ÉWU-u§Ó,C¯|?2Éð^#Å¡è0ç¿œ<X% ^øyô)~
+Goöó
+
+Oßìœ<>ìÿ°wvx2$Y÷å(}Å
+FòëüDã*šR
+ûIõ²~
+Gºz_=®¬õxÕ>]V-Åw§ž¶åé®
+¡+8ö`XýC|	ËâR¡CaÖ6ÏðŠbxœô.
+NŠøŠœuE°Zã*ÓKñ	.«7«ZØ`V«.F¥o@ÉÎ1Uô0¹?eºØajê8é~È'ã)åÁô¢3Çègn¢QhÙ8r,ŽsC#$Ýç;åd\JÏ
+výø:Fø-€NÛdÙŽ©û×n*[ñ¶BÀNBÅ1Ô#0
+š
+OçÊoú<ÀÃ?tì.5sF0/;ê
+»÷Óç25®Ö«ÕÃÕPè-Hö¢LÊÚ*ßí¥Ù>nîd7«Sw³©ör]¢¶òÁ&ß8Ü,Ü"í^Õîõ2ëN¶£ÃBØ¿?³{<èr2ÑfÏ¬rR9³ÕÕpVÐU\ñvÿQÁW6aŠØ=GìÈ«rqÝ`+#$º×]-8#$Æñ
+µl2Jñ z#$Azl®îWì}]ùó2fVµ
+cÍ²r®³NÛ°áj®
+Mœý% /9°­Üh5¿éªÅó¶ùKPck§1Þ¢Ë£«HœZÇ&®1Õ
+®onê~sÇN¡òÔËÊÑŠ€W¹ç*¡°ÿô'ÓÁàÕÉOoÔÑš·#&DGýâ©Á#&wÏ$Û#$ë^##&B¿;Õøöáã
+Zm¥Î¥ŽSÉP²S€Á	6²'	7pàx/³!Ð¿líi|0dñjíNùÄhÖ«T§A*ZšFâs
+Î|ªáNàÜëOÖhŸÎÇÂV·VrB#$ªkwÓÞUcâî.uDó€ f
+bdãØ?Ôæ`Ø\Yìç*nqµt
+úeÎ	cIçŠþŒÃà:"õTmäñ'
+ªÕKµwnà
+Õ
+uµÔTHdtŸAŒ«*IAŒ,k¢lÍ>¶âú &œÅ056Rcy/u¢vy¥DÚ¯:
+Ç
+aP,(ClÍ±ÂF<iàTJæîpÐEO¥U[ùíÅ¬yÿÀ«ë€°È>®RVîµ²v
+ò94k^Ç?ùÍByÍùY1b=qž_z^/8³Ù#&.ú[=)â Uhø+©äÎ¡#&ÏQä-@wæ)AXË5­ñÉî"Ð»(|X5šïÆúŽ¬ï­¯BQxY¯WÉ-ËÕâZñåÇ(ýéË=ö
+·ÑPfœôV
+¿\Z¢gyy_uQY¯8Î21}=GU1ŒÐ¥ Aér&qýŒEo15>âì}htÆ"Š«2@wùµãü
+³_>m[ÁÏÚD^sgpöUÒ£}¹Äz»äŸ×CdQÀý­]w þnSrvT¥ïÞshôžrN}ÜSšÉÑöÜu@ŒÕÔ¬cÃáùED}#¹Ã:LU+'¬ø® zø#Þeï4«W7¬`ýÜöã/~¢À-0ônd[Pîkµõ¿=îâ cŽ)ÏvÊë ßÎi!)ªrúê&MÆÿ¿õš©öÓ€Z@SÏpÑ(åõQ6ÓUNg¶×tG,®NügÐ$ñNüï#$5o!Ò5U_ÐŒå
+ecEûžFÖÏck^Bui€K+bXÔéªÌáÈeæ£î7¡Èá~OÛrKçòYïj]ù¹cw¶P/Þ©
+H­3!í š«pîzaIù"ª/bzº2$#æ÷be;(>þËavx!ÍO&Á9Ž©åvEn¡ï
+ãH¶-,Œà2/ž5Ðl¹*ÝöõSø.åB»æÒu\¹ÈŽHd±;€HóÕ{}jrOØ·ÀãiD0WÀ+:áö15wb^§1xìôËE@Oûôý×xF	«Å)P0êíÈèV(T#$
+Š#$ë(GÄaãD#ŸRçòÞ#è$$'AJûcUÒ	%Å±"ó@£!
+/ø`ÇÖ^ã	Qï'^tC?¥>^(-£FÄqx0Ã4_zÚ R6ë#5çY»
+\
+0±än#ùl
+Sãêe5|\ÍÈhAìªM
+_5Ô}©
+gßÂzÍš1ú0p*ÇyK
+Êh0¥ÈæÊ	 0,iÖBLØa3ÄNBª+Gôu®×<ÅE] W¥\²\_äR||¡ú£[äèëÑ$Ô#$,ŽQÅ
+,,ìËûÝ©
+ly²p5¢d³*ë/žAö_ãÉ(ýcñìçoÿõôÛ/úÿ­þÿ,-VÿÅB"­mÿ6o
+nÔ£ñÆ;Yz.§ñÌÈ
+áwpÆIÇóÙý|0Š/jÍ¯ëßm¹a!Ž¡ùº^ïuÇwáx1Ìæ·ÊHêÛl®Ô#$3`0£nFú_ZŒ
+üºjŸÊgŽËéM£â"É>l¥ódëyØ±
+pü\JyFOÌWÃœVÁŽ
+7HÊ¯x
+qáx¯ö=ª\@(,ºbÃZ4>ÑØ¥{wÊÓà€lœµ;/­^z·5Fô¿#$>æÂ±ð§ã¬€vµlQ$í5=* B'ß ²W¿à:÷Óþ`øH©õÁa<Ø»ØCíÓ-ÊŽu3 sh·ËfÇGdõ'ô#$MÃ8¿#$°È éBUo$ç·#$v#ÝÀD#$J4þ4úAc
+HË?ÍÈ
+éZP£žØ
+µµ*^Ž>gô
+NA(YwBÔ
+äÐŸnÌ²5\oÙŽð=(Do?wN~ä[
+(gÍµmjÜt °»î¬ú[>0ãl~£ÎÒKâ(°ÂZ_gÀœ5£û.úµægóðiWýÔZÎZ«Ù(»þE:­%(
+õÖ.úê$êtzäT[×
+®©œ.
+LkY¥í:t[²wz*okL{Ä[y2ôÁnt#&äý®ø×=Cë³ï+
+vz2
+ðªe
+C<Åbó,GÃÝégøJåfžnÂßŠJÍÒÔá>î@\ÌLk}e1_BytîÚ2ò	Ô¥56
+EP£¶«P@ÐÍžÍ
+Ê7Užt ¿[ÔÙÝš'ªC¡ÝÙ²]-ui~k)¬
+/ÖfKiX»H*Ø%ê: ÙVè¶$:#$oÝ çÆ­cQò¡e
+/*¶š¥ÐÄ|Â¶e@;	«¹ÙÎ}N~ÒÊ*^DlÚ6Cë0Äy®.T8?u5Ùáï=?T8µD^Èµøh­üâ§÷ãhík:Å9KÖvW!¥Å@î¬iEP!š$ ÂæGã8Vuõ
+À?ë+;Sý³¬QŒ}@èXâÜ;žDÍðÅtÚïàM¥iq²#&tj
+ õnÒ{}ÍW¶ïdwÝÍ¬n`mB^
+€ÌÕ¿Cç/¥F«c*4P(ÛRæ0º#E²
+Imz3[gbÎÏóŸÝœ
+¡Ñ
+ë6šÁ+ÙºÃ8§Ü
+¬ª<t3÷è©3ó
+#&ŒbÊ$ýAÙ#oÎ¹I">ðR_¡ø%¹êT8¡ÆúH[W?°ÇI_þÛÐÚY~Y"ÌT4uÌ÷Eõ5Ù vÙ.UpÛŸ°wA®ü-;©¢õè²vgó#$9°ÚaDs¿nÌ«qªð»O#$KŠª ï!\0£ªV0¢*ðç9u>_å!#&Kl m*ÿ
+@
+ÙTäPCÍÔÄm*+2KRÊU»Š£ãºâêÈ$É,PÂAßÑã:àr}Åã²î
+àçWqØÄNEŒGm¢VÔš:?,Y+cTÎ Æ'#aòzâå±;|ºØa8;³ž0MWÁÒÎ¿}ŒûzïÍjÇfèË,ì«£cÍm(èðè2è6a|P·¯/N>ÈÛÆKŽ1q­ØxÃ\#$'²º°{z$øãŠPß éÿ{ßþ×Æìû³õWLt;kÁøs9ì!8Þ`ãÎf¯¢£(èedðMò¿ßzöcŠG`¯7ÇÙvc€~T¿»«««Ÿõ{±Yžw'œóQ?«×ë÷øàäõÑá
+r;Ì¯çÏµMÒÏf_48}Œ$Î@ºùUî6IQ=š·`»9Í.«RáT×¡œ³ùØhônÆ	.ÒÊÂËAo>xpž{üâøÁg'Ï¢g³þ7X0tVôããÖ£ö_ÅUùá?-Qá
+hUdry,Œ®4Ž'Î
+ªLîºÛcîœ£Ãï÷÷_ïuÍt"`v9p
+<È0yØÀŸyxøòÛß+&)ØWMGçºÚ©UsUžQ®œãùt
+œÇú9F®WVvèµ\Š/|z2×¥Ëq'ªÌAÊÔÎµêY²}§ÃòüÕáËýÃœÝ}Rb©ÐM~Gûÿñ¬ßÃ§Ä0è¢P#tASýy!ÇÂIÇsIŽæ³8ö
+':;=º£Íyì&ÍHYVq÷äUFÃ{~y>è-{0põ4G`~Økít
+Í° eóÈÄ,eÕšéÎ\É&
+ù&i?
+»õÃÿ°~ì 
+ØhÇY<.Ýu~Çd]IÆoí@=¢ŽeßF5Þ-ó
+mwŒs#ÒwRÄGæÖÏ
+JhÈ1Û¯ò¯PŽ{IðË©HRš°e!Æíîýö_ðþ«æðÝþõõ'{ŸÁÿç£GðßŸ|úäÎÿççÿà(Ž«å);Ô4Ñó%0ùÐÇ-¹	­À«kÙ¯ªæÝ'ù;Dç<o6ñÌcR.q`z£küu=îÃoo
+·kMÆ£þ
+æ«iãáÛ,·ñ6bŽ];Ô/æ+÷'pn]x§6!¿3î
+	»a+ÁcÙ0n¬v
+pn_Ž5YÏ%£.©wB¬
+x] j{ŒøâÈŒKÖ¿
+Íètµ:1ãÜòMšŸ;N1-äÎLpìnBqräÙBõèwYÜ<m©!®åa5{ÄZýÙü}Ãê;L¢Ò 9>·u]³Rô[õ
+Òð
+&KD5Ü©N€9iIáâ|wÊŸ`6ùÍ°!ŸöªVuÅí=W	Z1k»T
+Ì.JDªåFº#&°frxvr%s¡ŸÁgìá<5ã÷E\ÉSâšgÍnvùWZ]ìh¡ríù h°Ž"
+*|6²ÎêÀäÏ
+vÏ³ÕŒï50dÒÊBCù
+|$À&€ÚÔTD÷=¥J
+yÈê¶/Bl)R×=&{v
+j^¥®Fšt:dõíá :}IA;ä((Þ(ôXZ*:a®¶^Þ8ê"rÃn\»åœ%ó.Ôíä¬ÔIíKüþŒOÈùÝÿ{_ÿwûÿû\ù¿0§º~æ°üx'ðùuØOm¿/¶opóõ{0Êè{ÑKýÁ,É ý ·ùøGv3/sÎ1«]õ
+
+ŠxzáJZI^Ñï7ÑG13ä ¬JqBD[žÑ
+: ¥Ù~dÏhØûÙcH×nE7÷÷|«m$Áú(9o¹Öem?f.º Ö=Mï3ø[È=þÏy²#&|¯úÿTú«¿
+¯úo>Ì
+œÎsÏ|?õoãþù?éþCŒÏóepŒuÃš©så8U®g&].­dúi<!×|ÇÈš]ðô
+?EêRqTáü_MGKlÞÕ§dÖÿÛOlä?
+ÝÿüVó÷Í\¥#&*ö¯EòG³å¥îÊÎÍ.­œÙé/°üºÖ3£
+íÎ.³-#$FGH$¯eTØP
+Úàå
+NÒ®Ž
+l2œÓáž;
+NÏ6ÆÔ?«ìl1.ÜÛœL
+šóì×ßËqh11
+ÎVn¬h» V$!Gš .8m E>
+2!Áè]ì3ü4š»7:ëÂþÑ
+ÌyÓ/æ!ÈÂhü{vû
+ëª5Ú²öŸhNfE¡Û:;ÛOcØx'¶Êßš§ >â<W€^Zæ;_Ð9ðó.
+±TwCÂõ
+|þpjµà°(Õ
+ÐCÊ¬P
+þŒBšjõif¢fºØÞBYilÌ#$K59«BDPúÉ^0y¢clCBñóí@pÒR«SüÂús¢=/úžÂ#&é%Šc0ìMsÁ0f0 q	Ø©ßŠÈNf
+sÕ]QO¢lçJpÝÕåŽ-IùVÏö÷_ÁÀ)d0=É|ØA+Ü=ŠKZ«°­X_£«dKÁq9|Ï£K[\Y3Õ/µžæ²³tœÒËâª5©BädÐC3X
+oPÂ4ÔMt¶HM!oQox!¯^î
+è¬.ÊÞM!§À ÄÆCð
+v XdL^:¯rf\^Á,ÍKµcÀ^[yG:n4ªÂL%Ô¿ Ùõ©æ6z
+GO57|
+×p3œ¡3y
+rŒ\xËzy}Ãê©Öî ¿$
+(
+
+oHÑ_¶áwGW}>óÂçÒU@»^³ít8z<G8Øä:²×
+Ý»gjò.-Ž!ñÎ
+
+m_
+	~©gÿ8@wß
+í
+ý£ëÒ]«"ÂóÙçó®ÙÐPÍÓ6H+r±H²ùÜôbwŒÛà6ñUÌ²2ïhÖÅùžàjd«pÛäq4]ëÐÚ('V³ t«Ê×ÌMzxìÔÐ#&§³Þbðb#&úb¥Šr:Ü°qíÈ~ú¯ŒU¹`µÈg.9µ`H£©é	Ë@~$CåÌ ë(³líK
+;ÃW3ç€BÔ€
+Ø 8±î>ô¢ó§úR&W'æîÚqÃ8Ö'žòyHBH®oëhL³ Ï±iyõÎŒXìLÙãî:²` ì©a:áÇ#s€¿fŽÈ :iÜïO]j0$Gûžï
+
+
+Åæ€s
+[^c#?üÞKEº»»ûâh4óá¢Mp59ÏÔPÇ]ÜÉ'¢0ûÛ[[­-Ügä8îIÚ»G*nv·#Ùó@:®
+¯ÈÀõl5æÙŸÑgc56ZÛgIí[öøãFìkåüTnÚ	Ö(
+Ä)7F(mÛ(wzê#$MìÅŽÔçi¹_ÒP/96béôÆng£é(¿ Éžb\ ¡p¶5L1õ/3Ô:¢.³Å@åbåàñàcŸ<ïî_ûñ8,µèÒ­Qxl¬À€wÉ,ÙSÅ{{w¢îp/OŽSÙÝ¶úœiá/Ñt<ÐU[ŽòãMÙ
+`Å7<(]C¹	dì5%Ä+šÑáÃ2¡q÷^c·S¶ëR7Kô{ÔÏ#&®ÿ84NÛJ¯ÃOAn2kCÎVS11Bk;Ãñ#$é:aÏÏVY
+^:R3ª]üIjÕ} âæËT[>Ñìl
+R#$C$ÉpDUY]ÙIxwx,Ýa
+&H°^ndØœÌ2ù*Â#&kü!â€v#óþÉ8÷µl»©ÀÙ*
+¶8úM\z)g_^JJeXÔÛ€;]¶fã¯N#&í+
+³Ò* zÝb±ðÙàBí>Û¯v¯ÁQ3	ûÂÂ[Í
+HÁYêš×°å£2 ÄêCx
+Žzý·«Ñàµm¬êœ5€»,kÕá2ÁÒ8kžØÜÂ]¬€«÷rfmÈ>ÇÐìÈJ/ãa#$1Âè¢d
+·¬ŸÙ­ñGf¶e5ÆxýâÕ÷1ÁÎÅ­ÓÚxÍ ñhÖŒúuÜºŒwÓÆNµãßfkG
+#&È£Û#û)Ì²ãï_ŒîŸÜ§ý¢ Ï}¢¡æèG
+œyù]7dµ@µ2§J5å+ž|,Þ7 gòØXÒ&íõ6rNX/ÛûÇ.ò|"°Šg«8dLHÎ6&5³{Kdo( íøÈM¬ÛÛÌ
+,!fyÑ[FÈÖGà¹šM"Ò÷Dü6ÎÒŸëÓ5Ú>XLÊÜs+Ê;8»]­°¶VZÛ×ÅÐ,N7*@ô	Ô_¿ÎËõo¥ÿœ6Æ×ñOª¶
+ÿmëéðßŸÜ~t§ÿÿ'À³zýúLàoÕ~àSîßem*Ø
+WÁÅñ«°ÎX8oþ(0EÞŽ£
+Ïl
+T§Ð
+FfHAe-ä&
+/"ž	;7¡±è;Ã7#$ÿ#&Ca1þM%4_ŠHQÎ$ÞYjó<A`:v@=s ºÕ¬Í
+ÕÂ^€pšZËþ0·RWñêä`owï»ýžã¿§Ùºëá2SªBJäÊÔ^#&ž¶¬/úE6µGuü°^Ú7ß¢Ô*&Ì€Úø]'NL^Ôéš"¶Fî7ÀTVÀ|öâ(8å~é¿#&ËÅþ
+×î	,CVÖ&Ý÷° ºDž1YT¯ží°\ôŠ9û»Ÿ	ßÁ>![ZÓ!{ËÈ	ÖØà	E35/h8oÆ{À®
+ï>ß?5PÙ[Ôš+FôòFyžœb§t§òÎ7#$Ø##&Un4ŸÇ6ZkšùüÍîq,(ùBbG:áO$Ð>c`Ës+sP¿Êá5òub}-âŠAÃªÿ0^ X3ãÆÙ,ãÁ(#&\òÌþloö6ÿïîæÿéþW«Ó#å³wët¥Ðôý
+s©ÂÚ-:ÐsaZ-¶
+I#&ß¡*6ÅJ+¡i`U#&1#&ïUÚypJ%þ³ïm4Åb­|F€øuZì0zL`qXfftÆ°
+êàLñúpïð¥PH#&"Í/PQ1Uª h÷c ýÉááÒ3Ÿþ 3HÐb0B8¬ÜÕû¯wIŠ/ø¥îW+`7Á
+©£Oòó³ÉÒ
+ëÇA#$âsDk[OÞ©/|C~êS:(z¬ã	UDã6ÉBMTäµóúiº;÷°xl>\
+ÃpõW°t{>F nÇ·zSDÅD2dÕ€J|Ýw£µÏ4
+O
+kýGµ:£¢Ø~+l³POQD¬<1q«í°Ÿö~AQCç
+ÑMr*W×àÏ*Bc;øØ³€ÙvªfN¢Bs;öîZbËÃÔÐ
+*xÒÈOßC<æåu¥È€X~;³_Bv4¥¿õ³ÓÁ=H U  BÊþð2*ŸF*)¹6íç^Ü!ûÙªãõ×Kj]ÄúE 4íy)lli±>t\²³éø=qŽ(F)
+&B°ÀåÏA®pÂ? ñÜba8ah© ÿy»|ü©ÑÿoÒÿøôÉã§*ÿyüŸom?ÙÚzz'ÿùŒä?üA²ëÉž÷®U
+CÂP²\ø	ZÀ[ÈÎ×dî;­É=ðEê£ÅE/G@U6÷³d¬ù_#CÓâA¶OÛCàŒ.
+ªU¯ðVn­×y%P[1w)k
+
+Í^
+îu¿ËÚ1ì°)üÚðçúþ\ÀIÞWöö0ÉÛE_ÞŒÀß«üüáä1þîsî~þeh¶Å¢·ÀÒ}Xá¹ØòF¹AÅ4Ù_ñ¯ÎmdD­Jh #&Í³~w0ñÑN]ó
+ÝGrò'\Ë&»œzPJœ]Ó­Î²Ü±Ø¹9£"£yC»Æw/<oPèÑ>a&V»Á«£±up_<µ5¯Õ; Œ4">Œãj·.aÝä%ZÂ­ì
+ß=Ø=Ù?ª©Ò^>:òQâ(ŠEv05s®OY<'Š{rÒê#ŒMhz+®zo¹LµÛ¥)ÜíÊ»©>z"€Î.ÊlŠéáØ1&P!ŸjGcü"
+NþxueZ¯ådÞÅ×AlAkÑ»êsQY\MGoWÃîhÐ ¯ö÷nHÂ¥eÁ	]£%Ô
+Ê«ÃËb*Ê©Må±9/âNg£^4»æu$b2k&]PÆéåÃÙðuªW7ž,­N³ð(.=R?8Vxî!55&#0ãŒÚSÛÛ¥žBÙª(ÐVkÀ£Ž Ý]¡#$µ§9Œ¶ÊÙVµ#$j«ÿëvMa0h_ÈþÞ;éL|CdkºGW£þ^qz8N$:©oàœcÀË	×«UëôãÄÌ4ç©ÞîZ£AZV¥J~Á}¥#&€ÌŠó#$ôSVê0oÇXpÇ,tèãl+©ULÑRIÕÄÆYÈWjùéÅ¡\¢&ÞhJÀŸ[ôäÓ`õ?ÑwÖeoŽ+$ù-WrŠ
+A4šüŸ&=¡bŽ¡ÏÛŒþtÕÒµk ÂdZÄÕ'ÜÇöiþÉÁ³¢BÎÈ;ÂÚ»õÐU]åàù'[ŠÉJ
+	PTUýT 4ìvÛ1$VË}vÙÁy/hvÏHºU»\k÷h§v
+:¡
+Õ­²cŠj0¢Ûñ'Ý7¯á¿áD4«ÐÝ$q¿.÷üÉÈÌ2'?ª#$)&% u)º Ãe&;YçAöõ}1Î^
+ûÞð¹ù
+xOWg|²±fª9sDÁÿþx8ÊñK30%$|c3«(	öÞ²#&JJ§õ¹œ. «øà°÷.z}nÊßïI¥4¡ Z²B|¿Ê»a®z5rº9Ñäž
+ý>oØ
+&ýMÊ± ýièôÈS¿kLßÏ3kmuZõ2âý
+~aôAz°ÃLœt¢ã
+ÊgìZi§â§EÙP}<bPû¬OP:F!9]¯n¿_ñ³Àœë2
+£ùŒ"1ÝÏ8üñÏm~á|âgµëírBÚŽ4·«QšZQ©Õè1· 1©#&.Àÿö­|5²
+gNðQÇzŽ^LÍÛ5Põå¢z«§ëB.¡ªânV1-MŒàËßU¬ÁŸßÿ!ãIÝ/iÛq
+Ê¡Wñ>ÑèËn_P?§@«>mx~:}wÓ°î}ÔÇîŠ°ªÆ$îhœ¶âóiåÃåž·Än÷Þ20sùÃ·8
+§cC ³šúöÒyD7vÝÔLåø¡e6±ÙAm5öj5óo88
+ŠR 5)šŒ=ù÷&P`éT·¯äì&meŒõlåÌÁ
+X²
+Î¥+JàJçãrïyU|ÉÛÉCÜp:Þ#$ôÞÒåêD{T%»a
+M8'¬UCQ
+úË,žF·`ÚÁuÓáœôSö£»ïPO€ãÕUp,Úe
+%#&þðpÍŽ]Âr1öIŒÎÏNÁÌ-UÆ6în
+`ÿfGI£Áu­êáþ-AE !uÃàïÿfóWGÍ<C\Ã¢áDM<cÖ@r€ñy+Îø«/
+îüãõ~tŽ·÷õWðO$žY}»µUÿúçéWouçê:î2Äª*Ñè+,êkÖ»ÀKkhçÍŒWn²ø«WJ²¡n%ŸzåÊºÝ}ÔNt{B`ža#&á¿IÎ»?
+Th úpF,;$bv*v|%T¹?öªþ
+mß
+ñÙ¿ªÜy@0d¡ª¥BmDÐ|ÉT
+l4x¶ÔKU%èäT8®ä{Š+>ŒT¯Ss0é£ýýÝcÒ·p~úóíd}©²E4AÆ#$®ÃVþb#&C¹ž¥
+®fñªÝ&-Î¬"îríÞÛ¥««Á(Ï²ªjo§£i1m-4z<:Íñ&	Vùðlséj¶žôA
+Öµ;Ë¯M#&!Ì6bmM€qùJ(ý¶oÕU-7Å_$Y¬ÇÝ£ÃÃEvá6yoÝ5ÙäÆ8º`ÅÊXDYCóN^ÂØ#&ôœÅ®Lù.ÈªÉrzz
+p+`€/8GÀ
+¿(¶V!Ìå³
+b<ãÏÅ÷SÅ+àN
+H   Ü¢#
+íŠ
+xQA±l£9â»PØ»p­oÑ"mx;ÁM
+žnÅßÍÛÒ×:ä'ã;gŠ{F9|#=TJmJÆoWÃÅ{(ö÷_
+ÂµÃñr/
+BBTQ.Nä·Óáuª_ Vl¥Àäkí0S_R%Àôšä`­
+Håtüº	Ft­)9É
+ùîb}Z?ŒÜý~_Ë}»T·ëŸ¯Ovºßíï>ôº'àQECEŽtûú bßÀ)³	àîæÂœË
+øA
+
+Œø&XHÅ"B+#$"Tÿæ>Ž9qcocwæ|ÑÀ­ŒTÎB
+EìáänÜd·ÆlÎ3_õ{p8E?,¯FðïiyÀ·WÃ%îìðí¶çðåøíÿ}wÿ ¹÷Ë&ô÷áé÷#üùèx5ÇëºU«5Ãk6GÐ£ðízB`þàQ
+J÷ÓÙdÖJ91ŽSZ#&lnlõà,	ûWH³
+mJÊèá×ÿk»îÌüÑtQÑÜ¯Æ(<JQŠ@R5Ôj¢
+€ó »RAÝcÃùžÎJXFor Fž+gdÚåÈ¬ÌZëðB©ÙÝæ\£
+=jÕ/²Ím_Ì*÷a3$
+Ðh,g³h6
+$qº%(ìYóñ$"Ë{t$e;©ÝhnWÒræ°2è
+#UÛOEWcÆž7kW!£?%œ2ÅLâz^òXF²H>!þ®
+ãÌ_ãkÝFUÄð] {gæÓ2üµ·.4²Ä3.»­"(]Ž_$óâ¬ÝkÆü56#&îÅRœ5î²DôwaoJîe&üâ-ÜgìÿS­×±_Y6·ßÑiÿµ`ÿañöœ{
+yêj³¯·
+Ä³"=³å(T.œd	¡ÑBmSNÔIuá¥d§ÂçFw»ïa"ÝÉ-CÛN¹øÄyw^è±>q³{ëÂYç
+v3Qi"ÞCÃúÊì»Ø 9R~pl`
+n
+7¹KSKT¹r³
+6âÙe7qQÒ£w°ö°hþ÷_ì4,ÀzªHBÉÚþRý#$ž©>nR\±Ïä{ìË¢jÜXÓXaÀ
+éÃ8õ/¡W²QJ@èQä77±=ðöþpÔGrÞ%¬S³}ÜÌ»b, Ý jŠšû®76\ÔÀŽòâ
+5p÷	<æ ,­rïðhßóN{í€v29!^ûaÁ)¥|×êõû+¿¶1O`Ré­
+rzÅs~51<]¡>&dà
+·;RLZÓðÈSvíóæ9Š·*ØÕâtWM{yŽ#è*ZðQýJ£®òx­Â T7,Uã"3ã
+;3$Œ8bì/vìšÞ³žiÇòš<÷ÊœÌ@²ÆSø¶@4Îå¢á.$ÍX
+bB²@*­>WÍÖÚ$¯JåŠ/JUFKNiU¥2ØYŸÚXb²YÇb/¹oÆE_E~Ýâæè¯%÷§Îž?õ0Ñé
+ÙÏMG8'xauÆ
+;C	g]<Ñ
+#&öû€ãF¶àR-:<~Ò>
+]
+²àXè«Ù°X'Ä0*Õû³ñf«8q÷äuq
+eæêŠLÛÖÌà5D':i
+ B7/L}	wðfC_~
+ë
+ºG6Ì
+n
+ÄöýáäqÒÐ'¥Ï$€`ÿq:Êá>ø-@nðÿŽýøÉ¢ýÇ£§wö'þG¥Cký@mö¿yq|ø#&jèûpãŸ^%ŸKxzã-UÙ`èÇ)ýQ®ÞBNœïG­÷ðÿ÷
+Fûq
+Âðù©uµÆqÙüöttÞ%rþã/ÚÀqŸ90øtÚÖÄªµ×Ö÷Ñvqu5ßªæÌyò.ëú,{§hµ(&ÖãælMùú[óqÅP®eð[d*M9'l!;
+3²ÈÒ</³ÑÀxìérÍT	 Àð¬#&(€lNÐÐÄeIµvtÖ=TÚ0Zh1óÌg`#&uÿ§
+ûÿbuúþÞ°ÿ	;ÑÿßÃ'wþ>Wü'÷$0Fs$__çèÇ3[ã	!Pç"î>ðu
+<ÌîÑÞwÏ^
+uÞ|óDaU{
+®QÛã$7ï1Ò0;>§0Ú»üÓ\û(©ž¿È©]P
+lt7åµßrÚœÎÕlôc¥&ÜQaùi?MaÅã[d#Ä";æ)ÑsäÂ(œÁgÕiî6]ÇduÚ¥ëHŠ^Þ€1Eæuó3N3¥ñ&¢þ >QÄfð¿6ä18þÉ×h'B¢ÁgbDU¿»âaŽ .#$h^,Ü·W¶ŸÉž#$@Ðñ°1éÍÁ õë­zTÖc5Íùém8ðÊ'Óö
+€¥Äì%GXÙáÛW6À#MäFy$¯9ìé@XÛF	ÂubT¶P§â=éÅ)R`üS»ÂtÄ¹J°#$æ7žN;jË6êmp=ÎFÜEF1tööÈk%i}úâÏ²XúD/ÕÐIŠ}[Tú:ýá
+NÂà¹è°G,$
+0#&£<Ï=ú0áS}¡Ùi;^
+Ûž
+Ÿw1Åójá-xggx¢ÏÛNŒ9#&±Í
+0¹œEÿ5Ü"b	YÙ¶d	r¿ÎÛéÿN·ž:8.-àpL¯9Üà¶÷æà$62-U2N»ìÔ*¡.ÿ¹S£8!6+ äçYQ1Š§ï¡å»?šÀN¶}¿Ù°­kV€oÚ>µ3XdþJRjëŠ`×`¡õœœg
+pTwË-$øJÙ^m
+Ð¹EG$þ÷sðìø»]|Bñòa<Ñ®@úáÿ_ÿMRW&Á1Û;|B [v¬ùõ¶q»eõùŒ_/æ{žÓñúN|³[Ï5)~ß .H=ù°
+±{ôŒË­¯'G«€w¶º
+L¶&Sá-eõF"-fuÒpUÔçGŽ¶>%P
+7c©6:Ñ±2·)ÃMzËÜÔÆ«(·tzI
+ŸÇóatöÞEWCà83Åú0GSº#&õµFTVBãý:ôÆÀCLÑö	qyd4AÖÈüUu¿¶@Iä ËZG¬åN#&Ø7°²ÏTHk#L²¥^Àé#&­ºJEªl<©;{ËÄá²*\æÕödŽ~B2s\0lÊ¿åí¿tÿGSª?ÿgëÉ£í/÷ÿ­/ïä¿×ý_®è­Ã/VÃkœ|m]o=ÜzŒµu¶µÑå
+öu~s<\Fœ
+ªQxÊ9ôÎéùÜ5ÚHóDÔpÞÅg<þ»bAFC¯açùöØÿ¿
+}ï~qãH=Š·ÖØŒžÒ7u]òã.ü5^ÓáëùÆ
+3Æù»`÷@@5v~o6!%7ÄlœÜ¥é8SJÇ"²!`:ü§Û;
+€ÇIÕÂ\ OÉEP?è
+H\Íçøpu;Y	BØG
+zdÌÑÈÁ	L#NÀÂÈ%&»í'»	ô³Ûàç=R¡ïèÈJXa8ÝeªËhsl7iÔj%ÑvDªÀa
+uW6\tŒ¹=öZÂ2ÎJê<54j%ý:8á¹ªÂê£z 
+ÂKJØ5pSKmcd°²Õ5ÎMé[Òûeë
+¿MÉnÏ°ÆïðaDÁVBÅ£bí\%MÒ,GéhuD&#µ£%ÅÈì(d+pRZÐ7u3$KxR/Êâ>é1²ÍU%õwœqªW7nÅ
+4$Ù¡²>eÔŠq%óµÔ¡ŸÑžÆÛ¯H£ÉÛÕl9Ìq&×xËJ#Òi¿WÓ,ŠÀ÷ŠÍ
+šÎûp]y&m.U
+Í5ÍQ{¿á8-aÊëÌ.Kf±b
+éXÅVXeê#ØÚaöoc)ÂŒÍ1+]ò÷ø»Þ»!ª
+cÏpábHm÷Ýšu¬G(õËÿô-õ'v(Ä¡P
+ß[õ ïr
+áww¡êo
+2É×=>Úë~û»1vÄ ç'DFwëÞi©K¥:j4çŒÖòËìÌyº¥
+aÛCqS5t=ÐKëñHìÚ.8_åÖ`šÓ U¥9Zol­çi%ŽÍê|ÒŽsæví=é]ÿ2]e~)â6ÏioÐsîpØkr_¯ÅKœª¹iÊ×07¶@º|aÌý06HÎÙÿKª5§Zá@R_ÍFðO¡fóg¹ÿOWøNÿþl=ú²èÿgëé»ûßgùþË©"¬©è.k_+
+F±a,Ð¿,PF8TB\ãP¥ÌSØZ÷Úß;Áß±#&µ\SÃs9D47×æÂ
+°íbÊ©šáë2IúÊgÁ shöxž9éõ/ðÁñ f
+.!#êÏÐdH'ÐWg#,Ä#| -oZ3Ä3j8]è Æ>iàÉÜP	Ø k,eL#Å%'h"T
+
+Û\g#$Êµç>Tä.mI
+nûª377M7ÏûýçæÃºâr)t+vL«Ô#ô:¥S×ÖæŒmÇ"ò9Z£_hê¹ÖðK4õWóEúŠÅŽ0	·¿n®/AŽ§kø2Dc×ÞP
+€šA#&Jí¥4}à%$ [v÷Ÿß}Ÿÿ{íb9SVü(épÚ=x7âÞªÍ<çáïD9§É«ÀúÖeÀÆÛ	k?
+œBñ«rïBòó]#$3èâÌyöÕ$
+z©¯/Y¥«ó.¬ÇÕxØÚ}ý¥ø\ßršèÔ#{ØÒG.~\æôd
+Ñ_áCnI+1
+#$A°f[j(#&òµðÊ€,>$©ú.j<KGIìxîi]Ÿ:ÍÄh5l/yã* ^gNtÌtÊÝqæõÁBUiZ7íº-#&×6áÍ³âºô#âNÒ&m-Ù{&:ÄkêDêQÅó¹?"o
+ÞKœíÄ/×_òl4BÑCüÍ{ziTÎIêÑÕh<æ+¹¯Ñþ8þ\êb
+TõÔ
+-¹
+ÁqÒv§JËeßÑ
+È-Ìn£nÎ:" Ðé|ôî+<,¢úæ&gRØÊ°ã`Ã³¿|wør¿îBñà+G¢Á&>(ÑëØ
+ öÿÎl\)ÿd#$Rñ¶œŽŠÛÝ7.þÔP<€Mýøm+ÔMj%²cNÀû» Šð¹	Ï
+×
+<H¡È^hÞžr
+:ë @ŒÂe±«Õ5
+r£7r§y'ÞhP1N>òqíŽšÜÍ]SœL)úÈ]Iíî>õÿÛýoŒêýÞÿªï[_noîp%Œ»ÿ}ŸöÏÕ)ëz·Uþ.ôH »ý
+DâkhÕëÇéž.áœÙE¯<àæÍÓ +NC`WÔO¬IªŽ(s€Ä>zA°1¹BÌ>yâi\6"`ÍËvVµ|ý\Öÿ»Þž÷ëÿ?Ü~Z~ÿžýðnýŠúÿ€oæÀu=[ñ£Ã"|ÉÏäPG%FkMÇÄK°éiüÇÝ]|ÇOáç¹yàÆ ~À#$=
+7ês¯ò_UÈßFéQÐûuD=€÷ëÕÅÂû¶÷,ò«û2ê¿röÕä7\ªJ¬]V_Ä·3d¬á\£Míxn6ïBYÁI¢­çm¬è$9ÄÝ&¹\íFg­Uÿº±n§_²Ù>ÂÅ·©pEØ£{ÂÛÕhžÄN[Ññüø2øÉÔ-ÎòE;8Ã$µ¥ßäž8qÃ&÷ª@bÉmÅMêæí²s±Æ(G±k©8YhT«áTX,êkè»VÂ£ÙBlÆQ³;(t
+åLÉª6sz
+÷ë¬ÚqÓ©­#&cÁ >õkÇ[¬
+¬(;Uº#$>_#&ÆÍë²î@ÅÑ#&ÒÇMÝå4rk[D#$z?hÈèŒë
+¶X8DÀ·0GùÝ¹û±ã1 °[ýzŒëÍGøÛôŽäyqªaŒ¡é¯:ò;Df~yNµ$7QþeôN·o€ä$0®*x³7Y9Þ';ç
+ÂdE+ëi>î
+/UZ'fpíøÞ.yŒ¶
+S»ï¥uèã€ŸQ\;÷0¶ ß»Å0pvÁ
+fü³nR€uAÍÌf÷lt­F
+õVëÁFNS€\µrêKz>otQNÉÖÂáEvYddA#£,/ÁÐ$"AÊ #yÕçÙIQÖ=Íã_#&~Û=-Ž|åmÐbkZä.Î#\ò¡ JÆæ;õXo
+4Æ79Iv
+OóÉÜ·=yžitê®md=¡åÆçRÝ?êö\rcž/xWÏß­=#â¬8X(»µòÕ
+}#É²zë¢Þa`%ØœnÊÚ°YaÕÖy2§u^	ûF©ó¡UÀyg|ÉáÜlüFîJÐšòÊ*A
+í[*:O/tÒ¹õ²P	óÖ(Û-9àØªëdvëSßjÕn[ 
+ä3/±¥×¬·¶êŒÒ#&·/^í
+Œy¶OOUùæFþàî€·R\Ê]ï9ZÔ³Û@^æ
+~/ožEIæÔópàŠ'i{#.<!Ïù'²2?L€ÍíÖVê$t	KgÇ£=¿Óú^<ä>ç¥wš	=- óÒAëu^sÝ#$§ö
+aíM­*0óëèæÜÓÉÃ`Ró4óê\W÷$²ykžè;ö*ôîèï,&¥~ÑqØ[±'ßìzŠ© 9ÏÕÛc!Xy¥µµ(&6µ1ä
+X(ÛÌ9zœXœ1é{ò§ô#$ñZ"·¥B9.wç¬M'åzÑ]HÏoÓQ·é	§Žáë²T&ýv§`Ex »ô6&<	}ïVÔÒ}Î$ŒÐp*šqü O·>äë­
+ïPð£[óc
+=^q8#$9
+Äpe§
+&ÛÐGM:
+Oä0Ð
+ø)e¹9ÔUkP]EàúGWœ<2ØXM·K¢1­>}OéºÝÞM¿ŸÄ;u±ÓØIÃ>6mõ&cRà%ÈM]öÑkœ[€X¿àüRÙrâ
+hã,ºÝsÀ9€ÅßÜö4
+51Hf]àë²q.Ø°N#&œñ'ìwÉÔ0·šfîøÓ@
+ÕÊÔð2)Äü»€TMää*¹®1KLC*i9
+ÑéúàzŒWVÚwG«ŽC^º÷SºÁ_ÖÝGvIp}u~¶àvïD¯í~/[Ï¥Í\»©à\	eæ6oåuÉ§ â
+ZÖ0(m]õÀg¿!§Ðš`ý²
+"üj/ÕÉîÐz¯{Bïö¢âÈÏâµ
+L8gin!Òô$)uþGçÿ$Ý®Í+õºg
+Aü;3gôNð^î
+Öºöl5ÜX4%@êŽ!æŠ7/š
+j#F(÷<ÑèËÝ¿
+
+µ^ŸxuxÄ6~šìÂf³±š8Ç£&Kü¥[KÇÕYç()XAüüð¿íï
+ xÂ <>	ñãÿŒ#Ä®ùònçÔ|wŽ¿û,XÛpu%CâAyöë
+øãÙø
+Ž/1L×·ß`'X9I~®âÑsŸ3ìºø4b9šõ#&Úï}j¶õw×êò9gbo!Ö	Q/WÄÇÐ
+#K&AÂÕõbÂí÷Äj8jmA^]|EÝ$Fß¹IÊ÷áõðåì,h_SGéä#{Öä4xmaÛéÓ/l0vo¯øÈPV*À¹ìÍ
+`n¬0¶-zT%HESxWq2¹<ûydNUßŽèÿõ#$'ª&UŸÖ³.?{ñŸ#&@Míúw»?îweC®+°r]ÿUïñî·Q6£Œ&!#$C€îçiù  Pÿ^ûøÓI«Ó{K2#&Ö;·9£#&Xú÷ï+œêÎàí~]gð¶^ÑrZüÙ:C8<»eÐ7\è³GöÔSöx¢3ËPåN':ê¢×·7·;ûæÈRÛ[;:NÎ6ú<wPÏ$ÜŒèw}0
+Â&Üà>ýÝX?¬2ø_~¯X89ú:âfaYŠ
+Ý¯3':uV¬Ê/·F¬V_êÈMÿCŽVç) È!{:DQÂ Â§cà;^n\·O!."kaoÎŒâ	#$rk\¥ÞÙákJ/]vG€CË³jŸ#&r
+¶zÅžD³žŒL&°¢hósfUa>¡.;qã8ÕšvÏ
+
+í2Ø`Áú;$iqíÇhô¿&£Œÿ¯ÑÿªÔÿ|øèñí¢þçÃí;üÏSÿßÒÅ0õ`Í
+œ,€šÐµè-ª;êiU`ÂnÀlþ}¶.Yí
+o!KœŠìæØpKEÃnÇrØ2'R~<Á26v*ùÍßgéCúë5m{7
+BÆFÝÒYÎ_eåŒo1j!^vÕŠö/üà°á
+ÉI	°nœ)A
+ÿ=8h÷
+-i/2=aèâØàršt
+
+àL#&FÀº]RyíòåâþezÿþåõT	<&ÔAò#&`5ruªl>äÖ1Üi<µ
+qÍ=/ë#$Á0TÒå_
+PžtÄÀËe€ß°ÿÐMÏqAd9@ö
+^33üÉ:èå­*0vº­yá8ŒÈÅ,HíüÑ¹ZÎš²ÀBÂ5I}yå
+«:DÊ$Uãîø€í R			yI¡gÃ¥|ÓeÆG8âº
+É³gòõöd0#&!5ò jsÝ³6ad}
+&ab¶01ï­CàW	ŸñuÐÙ<`N³ŸÓnË²÷5û	2y°E=BBÏËh+*šÖleènTÇ0Ùbš*ø¿?_5ÿB­ýÖËä_Ž#3%7	Œ/É6®1}~eÀvolàäÌ3ª/ZK6ñFãçí$GOã4
+9õq*üú»Ù#Á04?;ªûHN
+¢DšÇ£öšã«ÐÚÕ±ÖY€ýÆºjz|°ª~%Ž|c0Ò£yvë#÷'
+Â?r¢oÞ¡ìÜúWoQL
+¹JAqúëïñ.æk@³ùðRA÷ÏÈ5gI|ê¹I·œeŸÑ
+ ŸšôÙÑyõ»øæÖºÓSønúêÅÞI÷»Ýc3PTæp&÷¯Ëáû<s Â°N&OAøÕñÀNVË&aûºcÄ°ãæU­ñž±gT:>Ñæî÷šçèÔã¶û~Åñ¯9,«Á2ŒðîAÚËá}¢#$3R=0°[Æö]L:ýbRâL%m.Ö
+ë5I%ŽtþG#$õ®qH#&YpóåÔwSX¶&.<­W2l¶P °Þ­Ò3¹Y	6°Š;}[á­xOk£Ÿa);O\ÜyŽDþÆÙÖ["÷ý­È¿÷ºvÃTŽh?bv²¹22
+"þâF÷#rÈ#&%Ö!qQ µ9-h}þ±C¯ìÿÌX<3ðÞ·
+	wSÀâÆû%:NÕdòŸ£ÅßŒ1»å&ÿ­ÊýçJt/TîÍ1T]ý7ûõÐüúŠùûÑ#Šø/ö¯é,§ábažA*µU.`:[Lzãl;	Î)-Ÿo;­ã3ù[æ÷& Jgô¯ÖÄüÇºÚW.7-ã?NFhhÆx»œ
+3g'ÍfáXçúLî&ì(A{ŸwF§V\ðòlŠq§ÁÑyaÞvé
+á-)#ÓÑYäíúª_Ð8æq±>2Í«*L¯ª&Ô©(QNU3w€L ;wš0Þás©©žÏŒÓ»:r¡£_èÎ4í}§Bè
+ò²$UzûßÕå¥¹uh
+D»$mžœªs0ÑkÖfÄ%À4-	ºZû
+8õwÚpQv(ÂÐx\Rz]-Å
+šŠõ«z2æ,%Š	pÑUÈjÒ³@ºž>pá7bü5zýå#&h8gIŒgèioø9ÃùÂt:/dë216¹Š;ŠÝÈÓ;pcAß°ÁøæÚÆ1ÜMœí£ŒáãÈ«¹Ù£ZÂ{Š
+éäe@*ÚDùã­²õzËKœ2õ6ÉÔÛùpïÏŽí©Ý&
+©¶Ôºê¡eücä#$yj_×Ê
+ìO9:HOCïGwã%=qÄkÊ[H'U¹þô€Rg·O/Féª±¹		`/SI2láIÈ#$SŸJêæÎ0gåO×h2"øžñZ§¹;l0¹ñ
+Ôµ·3ë@F«ä%.GÐ|îÎ6â8Þóœ3iI÷
+­jŽ\
+­Úw£),F\Kø\=Êéþ*ÍÐi#$=iõ ÀdÃ«c*³ÖÐé,ÑŽà`)íMÀêîò¶¯Z>s®ºñÄðcZBªiÔs9±XÇ&åN-tP9w:j*#&
+eµn9ê|å%$Šb@nçèé 
+òkÏòÒt;×;@ªû×ÉMG³Íy Sé­¥T|ÅÂú¶xoÔTööBsMINcaï)4Ö
+i777kÛXÚÁol,²òŠ±
+â?¢±X
+ÆrINcGÓB[#$ÏqsSéÈÒŠëwJb[éûÂÅ©ÐD*
+,UýÞ¬IO^íÉÒe7¹0ßê6ýmH€Öä\À¥Úõ_n,L§qÖ§²u2	*çÌG/Ç¿ 
+LžÐÄÂ$µ |ôß	Š35ÑKª]Î[æî£œëÄyÀBGï*6ÑmåÔ`:T;ûÔÕ9"²býŽÈD\2€*_ÇÃ'Õó35UYÔà\ÊS³uê >e;
+Æ¬cÂIÄpbàÅ)"wGgÝ|h#&ýlðå(åfüGÂôŽ¿jŒ¹úªa$s³V\VÑÙç(In
+Fè1oÍg9¿d®Èa€5
+Ø°ib«êŽNE-HOÖ,]Xåy@ðŽ'0IÒ(€ã_²ð8þn7QXg¬H%1MŠ\¯Š0Ün%ÈÍEŠ¯4$Ÿ[öl·qvóÑyÞ6Lïv#&ýÝi_·FNvQAÛvS'¹ÿ­šÖÑWÝû×2þ$ºšúÄïæòJ€÷
+ËªŽZéöC=4ÌÛ
+¥w²òmËõ*1
+ÒâÄ`uLü(ºàWS/ÉLo¶&~­Í.)ÂœFš×#&ÓuI"ãw¢@#ôÿüÏQ¿ÿãn?zøe	ÿóNÿó³ÅÿKÉ ÿbÿÑš¿)ÔâÌÏóÚöéy¿oà@9ªt¢~÷r/kæ	&¡ë
+}#$¢öIÅý÷çW£i\tÚ}r1^LÃ±õÑfÌßPy
+÷8+*{;°ñýŸ\!Põœ
+ïíÅ
+¯5²"Â¯£©±Î@QŠqkr5äèŸeÌš¯v1>¹9ýœªôNó¹é{V³œå$Ÿ
+?y2HYSX~"ÈÁù`5Ú÷4
+i¿1e€_2Pþ.
+ô2jY­2ôü¡É_zLBÝ1cûŒ.º:Æ5Dìdã/ÔÈç
+äZÉþÄRj:ZÞ Þÿay,ù'>nØÿn÷ÿ'_~y·ÿÆûº\¹òOGnïä{°{
+[Ãî×Àæëß_Œ:ÚCÐ×E6T}õéFQì«îõk×W]woÏýIéÈ×¯}Gw{îOJ,^à,Ì4²Ç8EfÆŸG2þ¡Ò­Yl
+V€"æe?8Å;Na9ý#&$ê®ñJÈ€ùrp]'VÇuš#$-
+Œýšì /`Pê­D2Ó
+Àã±Ôñ&v	Š§àQl;"#²i÷ÌÁ©{Nþréóf¿¢·\ºßré3"Øé|®rÝR!¬9xCŠÆØ;è²x¿ëÇë8Ú»õ@àäðbL:Äå(Ð?òÉŽA	9¶sC2ëzÿ£íÈî>ÿçÿå`øø¶ÿÛzÎþ#&ç?üŒ;ÿÿ
+ç¿^üª\º¯÷!NÚùùMþÐ§.1ìþ¡xùý³ýÇÝÃœÝýîWÇ'»]Ä÷=rü
+guøÅcnñÉqk>WåËçžà#&&!nMf±³Ìu!Ì\¹ãàÒa€g_ÔxþïEá4§Wîz}sÌÕú;>ØëŸÜ?>Þ}Ÿ
++)ìì?U@/c(ò(¶~
+ÔÕ €IÍT%µö§»]Ä¡
+·ÂMv®Ý&Kéð
+]aTÈ&·JèÒÉžÞÚ0T=
+E)KÈÂÎ@óýIïrø±aó09F§ù3ç E)â#$.mY±Ë¡?åj$«;µ{Å°5Y\šŒbnö²ªìžä»åõÒ3àºÙú6L
+s{ä.üg­¿~þùgÄ]`Üî³g«öÖýc0ßÙ,Ãâ8
+_Ä/ÃóáõÜËÔhçÇöp¿Ó^t~ÎïÿÜHàßFû¿Î;MøÚü¹?êøœþsÂ6ÀŒe1ãR`[itÓËá{Hºã"	IÁÅO8xñMnïðÄ54éÃ8äÍ
+I°£_
+RähVúîäåE¢ÊrôëÝ£b@/çœÅ2/&@®Ø© ã(8Û.Þ%l#&žà­Ï-hÅUÔ{=ô:¯/KoC­YÇeQOÜzœ<~þíË­¿ÁÈ]y+Ó-
+
+&£×Pë#$)öojÞÍÌ>hA#$çÈKÑîæ¿T$¹cÿÝøÿ_zïzWú°ÞÿÓö£
+ý?=zº}ÇÿVü¿ÂàÛ¿É\
+¯Âæ«hëzë!Üä¶Î¶vÎ.#<
+.£^AÎ-ÂñW~#&	SÏõ8¬
+aÁ"ð
+£ËžGÌZÓ+Å|u:
+õ#Ÿ
+óeô+°m
+Èþ¢w³Ñ  ºcàÈŠçí)f'òÞ
+e
+NÿùkRnwŸŒÙæT÷É¡ykžXŽæ@c96ê/EråzònÒk`»>¥°ßbRETn
+Zø#&ž_*ŽœÕáÄQ¿·ì_D#$Jòj¶üÙH#$×T)%P±mS/®Ît5
+cf
+Óü^#?ÑÄÿÒ[ÖŸÞÄPÍPtøEZaT å
+Éðý§Ô15ü!ü'?±¢8¥áëS9£
+ñLŒÄfHX©aâü/ØnÛTÀúÑÙsª¥¡äì6 tRÌÜÌ5zpÚbRŸ
+b·K³p³X
+ŠÁ¥`!k_GFq«ÉïjÈ#$ W­Ýl³or·ùQíÅ`£Žã¿í
+
+Ÿ&NOZãÇí
+íïìs,WË¹Aã	Ž^#$ÿö>kušá+­_Ÿª#DËµàç®óWAøþý÷[X
+ÑéNž²DÏ³_×@KfÇSF)Âùà ã±Þ'ë#$P²Ý÷ó.Yw|ðSÚNá¶ÎlîÁîñ1
+w|#t'ÚÙâ<.Ø­ØêÇ³øe×îqÍÚøÆTÓØàäY§?è©äs
+rÙíÓ/jçÌF§VoXk³Ó×œÃa2ŸE§]J§<­6§ìÔN:|sBÌ}ÖvË.ù9ëT/œwìÞBW
+¯±)-° MCÓ#$/=wŠÉÊ*Ü`þ¶ûã®üÓvŒÉÝ§æš·Éì£œÚ
+Ã&÷g3XëíÀ
+p«5He¶cpPìd&0
+jniay
+³º]oòðŒSôèj
+a
+ä
+G»\¶$öËÛhjÆ(œA_^ÈôíeÙg@~WzKvPÏõlvµ2søæänöPŸ6ût
+×iÞÄORÌß©º€º}U ·T³É;ï©R œ³>?ÚßUžŽöÇyVY®$.äGr
+lö+ n63Ào®>«sÀ:.Ùr¯Ñ*)G}s Í{
+q~üÉoµc!
+æµñ=ÖÉôZáL6³ž«XŽhŠæsÃ)sôßg¬ \cžüÔâI­
+ž,+ø/qòu¶¥V7Pž(ËÒŠ~Y­«ÄŠlÓS[°sÍPåT#$THM
+!mØ(šÛI.d"æl*(Øs}®;æ`êH@jti­M¹¯LCkôý!#$É1
+×Ÿb"·ûXAltFûM÷»Ãû%e1\ýzÛóìäeItFmµNÓät%|nJ4
+¯ Ò±=ÍK(Â¥AšÔO]ÓóõµâM9ØŠ:[²Ð0+'âwiªèþO(!kÇÌCä0',0/-<c}Qßz}DºUçìŠIï/dÔEÆyQâÓùqw¯D	ûµHÅ¿èaÇÚpËãM1-énJÝK©ùPŠ¯_Ð:?ª,ÌÉ³ïCÌò^õÎ65®&·¬ ­Rà2MŠs7Ék>¿ÂÆà=LÑO\SÐÍÅ#$4NuSÑDŒKÜ#$žDV±æ®5J|ÂFs §¬Vx
+¢s¹SÛ?2cí[Õ€ãNÖ|ÖÐBRñfîÜyBl§ò°ãÙ¹4¥Ÿÿ<
+
+õ¹Êo
+ª£ÅSdJÍlÃ>jõßÌ
+§;eëõÔ(£$·SÙÑ)œ»&Š£®8ptU]Äô(è 0ñÓOS|B%Óšgõ
+ÉßgÔ8ï÷ÓèŒÙL£V+ËÐì-³»	Â©H:Ú.(*[',,DßÍ&Ã,ž··ðê«EÿîÍŠKŒ· ÏòiÇ"[Æ+³ÇüF|)¯\ý§-Òé5L{¹èá1~ gèá)#ÁÞ­ðÜÎÿ#$ŠM
+8gç
+\Mÿù±».:JuúÎT'\û¿ŒŽùì·Áxª0
+Þ¢#&³E[û\ÄQJVÃéj>ÃR
+&
+Þà©ÇÎÍbè#&ì£©8<	¬ÿo¯^t¿StXC}émµÔø¯þJ] þµÉ/¶w>ÖúÒ±>hÒM¥pP(¶hcÁö3øIVmŒ¡sÞ
+H^Ö02¹#&;
+'ÞÉI·ÚÙ¬5âáXFñóí*¿{\úß
+-ø(ûþÁél^ßÿaï?O>ý²ðþóå6Dßœÿ|ú_ÄÄ€ž5§x3Ç°Iï?ÝŸo"{Ù
+W¥
+ïŸæY&g{ñMá?ÔÚW#œròµFÈUëb>ÿº6.ù!'~E»þ
+àãWËè«¯¢oOÔ
+P,Ü@Çÿñ­{z;Š~#gòœ
+jÀlŸôò+ý:ÚùÜ¥Š±GÑ	ŽT@ ¬¿:µãÝÀ
+ò,Îø+ÖšoOŸËâÓÙòÂ
+Ÿ:øŠGÃgÍ1ÊÕhÙ;÷4ZþûçA³ÿýõçÁý¿ãI±RâÉRôNG¥Èv~þ~0vJ¢ËRºF¯ßÿít¶÷Ï~ë_ý6ôôW£éoÀ¶ýv1ïö¯¯¡1ÔoïÇ£ëßÞõ_ýöbóÕô78·æóÄVç{©°ùûöÖæÿîüúð÷¿(uÙÓï`
+Ð nZ/Äž>²8§GCë8$Åm%·©Ù;	Ž3â
+)u]]
+CÑ\p<Ñ°uÞÊ3·òÍíî£'ôTQ]rt«ªrÊr5Cäªc`É9!w,¢5:#LåäªØV
+×ÕÍWvœ: ß
+ë¿<¹¿MûqÓ#$Þæ`/ìa«ãž×jžŒ÷Ël¡®Ñ0YòånlÛð®1Ô7%t\÷úÆ {TTJ	
+ažš.urK ù­Ÿ ô¡%%ÑMÎŠè9²i
+É5Ý¿ð__"²ÑàéÐÝÈÛ_t;÷¹dh/€×Ìðlhïî]yf*ô{ßã5¿dò:À å
+/7;F%ÐÅÀDÉ^Þè²
+Vèž°'eÆñÖ7ßÕrm§ähYÆ;_*ÑhqhšsÑXåÇhØfb«aiN³~#>¬²è
+îæ¶Ùld	6.¯PG~;surM{y
+Y/¯ÚðÕý07ìfy7GŒ_SVŠCG5U2"ObÖÅåÐ!Ônä(-ÛÆà-ÚÉ!§~«Lq#&ÆŒÙÚ(ùÝaàü1Æå]±00mÍ)ÈDWîöqÇZAñ&Å~+u"Í²bŒ·»ÊÍÌf¡»øœÂÎáèñ$æ¡<€íttÛôY'o"qgøÁ
+IÒ4ç
+nMP±G5Ù±¹Û±uŒ¿M>÷@®ÊéµOêª\4ü²Ì©]Yí'9«²é
+á\ÒG#&²ïôp
+øùAÎî<
+!äD-[š>€8
+AV"Uvjk¢ä\Š.}íÆMM!³ÊŸÒ­K³I·:ãª7
+#$ðqv6Þ
+y¥Ãl:hÊÝ­¹Øys
+§nÀ_ïÜ}(lF×)$bUg78fîKÁ6+ÂE}0áÜžŽSçÁ+@ßm=.<P8jM(?Ý¶{[\älQ»û¬íZ,­[d#&\í:ÄcÉFaxÕèt×MÏp¯IÁ`Y*#&TzÈŽÆMìc]2Í8X^vá§í­ts{+©LKmº1VäÆÚÅV§3s(É54aBÇäS±ÍwŽp1#&€äulÙq/ÓáÚ¡BÃIœ{ž
+ÅT³KN4»6€¢<gµ#&îŠ×xU¬ôÕYžMÄÂ/8-ó Û$-Õáõ
+¶F*­ràÂ
+
+$I:7µËk^dÇw,9ÝµTÔÌhw©um*Î8ãµáÀìo"²žÙª¹Næ#$ã[î.æ³öý¬`¢#&×¥%ãqê ÉF9œÞZ
+ãÇ$x^¯MPN¡úÄïUÎòå€0@<§ÒçMv<1ÌÂ#¶4Antâ³dníâ[Œ|W±äø€8ü,9ŸçÉMaS]HILŽû áyùŽ
+Nnøî9<ÕÀ¯2÷<ÓSwT3ÓV
+dÌÉ¶Ø
+
+Þùf+rjÇÔ:jç_sŽŠ;3UÂ¿IŒA
+ÂÞByK;œ÷Ž	)«š¬ž£¹âø¿ãŠ
+OÏ6å9|v).³$	§ý
+'#$Ò 7ô^/þØX(×Õu3êEâŠŸ.²äÒRaø³þ÷<ûZLPk;ÄÀïA¯käMÓ?²mbº²øG­i
+5x
+œÌ©-ËœÏ.»:°,Þ
+ïá#$X6vJâø}A"~yKxW.à¬ªué7Z÷ÿüÜjÝíU<k²°+ÈA|uhPVÄcÁŽ^&St+öÈô¢«°m]^X*'ŽØÙ.Çc0]r$Z¯\°)Ž·whº×_-ðå«æÜ_%+ök'EnÒ¯qLÃ¥°T-ïùÍw©ØÕ&b{FúqÃiË1=i2=8>ò€µ¢ï€µÜµ9iß;@·öûÆ#²À
+kBã:bäð"äfW
+]Ñ/;Rq+U_`ía¥ìÁ*t€Q¥P­
+ö9_àr{©
+7À#&¹ojGKCÐÁèôµ¬œwJÜkã²7€ ZHÝÅàpÿS}ÚÞ3nIX¿JÍ1yßÒêwµ}vJ«ËÍ£ãåEÎŸZØ
+,²i{Ò+j
+ÈûÅîœWßNº*w|fw6ckÅj¬8·r¡ ¬ÑÿÓO,€ò#&ÅfÓ*§à¥5TRâC×=ÔÎÜëçÍf=1N
+
+RÚGñTcÄ;£ªm»ìÅQ5šþt·-ï;|6Ñ,ûºíPÝn-/
+éMËÈACÕ{Hû¢€ì€ñ?öÿ
+³ÎuêNíúÞ!ïxý>åCòm'²q
+<únU£³
+â0±&9
+1#&YâãÊzÛà#$á~ŠÄNO#	>
+EÐb&VqÌbÙÜ¹\rá`^o±ü7#$º°±áaûÀq«žª³CçÝ?;xT`øªÄ);>£È*0U7"Ññ²Q9FÆÎÓŽ"!ý³ñj4øôúkð_·?.àÿ|¹õèáþÇg©ÿaaþ*1ü*
+8hbÇ·o^<CdPô×
+³]Q#2èA*ðíÀHàÓÖ°X¬¯?]ØêÝE0ò#ËFAÒ*ÂÝiR²Y=ªášÎåfGîÇd?€vš²I ú!ø)0æšCãÔìÕê0ý³óDP;>ô¿xsªMèªÑææx@ßâºâ·'ßKs0åâÖÙ8NTÅ;MŸ»ÏÝçîs÷¹ûÜ}î>w»ÏÝçîs÷¹ûÜ}î>w»ÏÝçîs÷¹ûÜ}î>w»ÏÝçîs÷¹ûÜ}î>w»ÏÝç_õùsbê
+#<==
Index: trunk/server/docs-xml/build/DTD/samba.entities
===================================================================
--- trunk/server/docs-xml/build/DTD/samba.entities	(revision 857)
+++ trunk/server/docs-xml/build/DTD/samba.entities	(revision 862)
@@ -181,5 +181,5 @@
 
 <para>Note that specifying this parameter here will 
-override the <smbconfoption><name>log level</name></smbconfoption> parameter
+override the <smbconfoption name="log level" /> parameter
 in the &smb.conf; file.</para>
 </listitem>
@@ -208,5 +208,5 @@
 
 <para>Note that specifying this parameter here will 
-override the <smbconfoption><name>log level</name></smbconfoption> parameter
+override the <smbconfoption name="log level" /> parameter
 in the &smb.conf; file.</para>
 </listitem>
@@ -298,9 +298,11 @@
 <para>If this parameter is not set then the name resolve order 
 defined in the &smb.conf; file parameter  
-(<smbconfoption><name>name resolve order</name></smbconfoption>) will be used.
+(<smbconfoption name="name resolve order" />) will be used.
 </para>
 
 <para>The default order is lmhosts, host, wins, bcast. Without 
-this parameter or any entry in the <smbconfoption><name>name resolve order</name></smbconfoption> parameter of the &smb.conf; file, the name 
+this parameter or any entry in the
+<smbconfoption name="name resolve order" /> parameter of
+the &smb.conf; file, the name
 resolution methods will be attempted in this order. </para></listitem>
 </varlistentry>'>
@@ -311,5 +313,6 @@
 <listitem><para>This option allows you to override
 the NetBIOS name that Samba uses for itself. This is identical
-to setting the <smbconfoption><name>netbios name</name></smbconfoption> parameter in the &smb.conf; file. 
+to setting the <smbconfoption name="netbios name" /> parameter in
+the &smb.conf; file.
 However, a command
 line setting will take precedence over settings in
Index: trunk/server/docs-xml/build/catalog.xml.in
===================================================================
--- trunk/server/docs-xml/build/catalog.xml.in	(revision 857)
+++ trunk/server/docs-xml/build/catalog.xml.in	(revision 862)
Index: trunk/server/docs-xml/manpages-3/dbwrap_tool.1.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/dbwrap_tool.1.xml	(revision 862)
+++ trunk/server/docs-xml/manpages-3/dbwrap_tool.1.xml	(revision 862)
@@ -0,0 +1,148 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE refentry PUBLIC "-//Samba-Team//DTD DocBook V4.2-Based Variant V1.0//EN" "http://www.samba.org/samba/DTD/samba-doc">
+<refentry id="dbwrap_tool.1">
+
+<refmeta>
+	<refentrytitle>dbwrap_tool</refentrytitle>
+	<manvolnum>1</manvolnum>
+	<refmiscinfo class="source">Samba</refmiscinfo>
+	<refmiscinfo class="manual">System Administration tools</refmiscinfo>
+	<refmiscinfo class="version">3.6</refmiscinfo>
+</refmeta>
+
+
+<refnamediv>
+	<refname>dbwrap_tool</refname>
+	<refpurpose>low level TDB/CTDB manipulation tool using the dbwrap interface</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+	<cmdsynopsis>
+		<command>dbwrap_tool</command>
+		<arg choice="req">&lt;database&gt;</arg>
+		<arg choice="req">&lt;operation&gt;</arg>
+		<arg choice="opt">&lt;key&gt;
+			<arg choice="opt">&lt;type&gt;
+				<arg choice="opt">&lt;value&gt;</arg>
+			</arg>
+		</arg>
+	</cmdsynopsis>
+</refsynopsisdiv>
+
+<refsect1>
+	<title>DESCRIPTION</title>
+
+	<para>This tool is part of the <citerefentry><refentrytitle>samba</refentrytitle>
+	<manvolnum>7</manvolnum></citerefentry> suite.</para>
+
+	<para>The dbwrap_tool program is used to read and manipulate
+	TDB/CTDB databases using the dbwrap interface.</para>
+
+	<para>The following database operations are available:
+	<itemizedlist>
+		<listitem><para>fetch: fetch a record</para></listitem>
+		<listitem><para>store: create or modify a record</para></listitem>
+		<listitem><para>delete: remove a record</para></listitem>
+		<listitem><para>erase: remove all records</para></listitem>
+		<listitem><para>listkeys: list all available records</para></listitem>
+	</itemizedlist>
+	</para>
+	<para>The following types are available:
+	<itemizedlist>
+		<listitem><para>int32: signed 32bit integer</para></listitem>
+		<listitem><para>uint32: unsigned 32bit integer</para></listitem>
+		<listitem><para>string: "hello world"</para></listitem>
+	</itemizedlist>
+	</para>
+</refsect1>
+
+<refsect1>
+	<title>OPTIONS</title>
+
+	<para>None.</para>
+</refsect1>
+
+<refsect1>
+	<title>COMMANDS</title>
+	<refsect2>
+		<title>fetch</title>
+		<cmdsynopsis>
+			<command>dbwrap_tool</command> &lt;database&gt; fetch &lt;key&gt; &lt;type&gt;
+		</cmdsynopsis>
+	</refsect2>
+	<refsect2>
+		<title>store</title>
+		<cmdsynopsis>
+			<command>dbwrap_tool</command> &lt;database&gt; store &lt;key&gt; &lt;type&gt; &lt;value&gt;
+		</cmdsynopsis>
+	</refsect2>
+	<refsect2>
+		<title>delete</title>
+		<cmdsynopsis>
+			<command>dbwrap_tool</command> &lt;database&gt; delete &lt;key&gt;
+		</cmdsynopsis>
+	</refsect2>
+	<refsect2>
+		<title>erase</title>
+		<cmdsynopsis>
+			<command>dbwrap_tool</command> &lt;database&gt; erase
+		</cmdsynopsis>
+	</refsect2>
+	<refsect2>
+		<title>listkeys</title>
+		<cmdsynopsis>
+			<command>dbwrap_tool</command> &lt;database&gt; listkeys
+		</cmdsynopsis>
+	</refsect2>
+</refsect1>
+
+<refsect1>
+	<title>EXAMPLES</title>
+	<variablelist>
+		<varlistentry><term>List all keys from winbindd_idmap.tdb</term>
+			<listitem><para><command>dbwrap_tool</command> winbindd_idmap.tdb listkeys</para></listitem>
+		</varlistentry>
+		<varlistentry><term>Fetch record with key "USER HWM" as uint32</term>
+			<listitem><para><command>dbwrap_tool</command> winbindd_idmap.tdb fetch "USER HWM" uint32</para></listitem>
+		</varlistentry>
+		<varlistentry><term>Remove record with key "USER HWM"</term>
+			<listitem><para><command>dbwrap_tool</command> winbindd_idmap.tdb remove "USER HWM"</para></listitem>
+		</varlistentry>
+		<varlistentry><term>Store and overwrite record "USER HWM" with value 214</term>
+			<listitem><para><command>dbwrap_tool</command> winbindd_idmap.tdb store "USER HWM" uint32 214</para></listitem>
+		</varlistentry>
+	</variablelist>
+</refsect1>
+
+<refsect1>
+	<title>NOTES</title>
+
+	<para>Use with caution!</para>
+</refsect1>
+
+
+<refsect1>
+	<title>VERSION</title>
+
+	<para>This man page is correct for version 3 of the Samba suite.</para>
+</refsect1>
+
+<refsect1>
+	<title>SEE ALSO</title>
+	<para><citerefentry><refentrytitle>smbd</refentrytitle>
+	<manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>samba</refentrytitle>
+	<manvolnum>7</manvolnum></citerefentry></para>
+</refsect1>
+
+<refsect1>
+	<title>AUTHOR</title>
+
+	<para>The original Samba software and related utilities
+	were created by Andrew Tridgell. Samba is now developed
+	by the Samba Team as an Open Source project similar
+	to the way the Linux kernel is developed.</para>
+
+	<para>The dbwrap_tool manpage was written by Bjoern Baumbach.</para>
+</refsect1>
+
+</refentry>
Index: trunk/server/docs-xml/manpages-3/eventlogadm.8.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/eventlogadm.8.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/eventlogadm.8.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/findsmb.1.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/findsmb.1.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/findsmb.1.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/idmap_ad.8.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/idmap_ad.8.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/idmap_ad.8.xml	(revision 862)
@@ -23,7 +23,10 @@
 	extensions. This module implements only the &quot;idmap&quot;
 	API, and is READONLY. Mappings must be provided in advance
-	by the administrator by adding the posixAccount/posixGroup
-	classes and relative attribute/value pairs to the user and
-	group objects in the AD.</para>
+	by the administrator by adding the uidNumber attributes for
+	users and gidNumber attributes for groups in the AD. Winbind
+	will only map users that have a uidNumber and whose primary
+	group have a gidNumber attribute set. It is however
+	recommended that all groups in use have gidNumber attributes
+	assigned, otherwise they are not working.</para>
 
 	<para>
Index: trunk/server/docs-xml/manpages-3/idmap_adex.8.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/idmap_adex.8.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/idmap_adex.8.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/idmap_autorid.8.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/idmap_autorid.8.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/idmap_autorid.8.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/idmap_hash.8.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/idmap_hash.8.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/idmap_hash.8.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/idmap_ldap.8.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/idmap_ldap.8.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/idmap_ldap.8.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/idmap_nss.8.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/idmap_nss.8.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/idmap_nss.8.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/idmap_rid.8.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/idmap_rid.8.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/idmap_rid.8.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/idmap_tdb.8.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/idmap_tdb.8.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/idmap_tdb.8.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/idmap_tdb2.8.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/idmap_tdb2.8.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/idmap_tdb2.8.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/libsmbclient.7.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/libsmbclient.7.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/libsmbclient.7.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/lmhosts.5.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/lmhosts.5.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/lmhosts.5.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/log2pcap.1.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/log2pcap.1.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/log2pcap.1.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/net.8.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/net.8.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/net.8.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/nmbd.8.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/nmbd.8.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/nmbd.8.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/nmblookup.1.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/nmblookup.1.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/nmblookup.1.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/ntlm_auth.1.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/ntlm_auth.1.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/ntlm_auth.1.xml	(revision 862)
@@ -161,109 +161,130 @@
 		<variablelist>
 		  <varlistentry>
-		  <term>Username</term>
-		  
-                <listitem><para>The username, expected to be in
-                Samba's <smbconfoption name="unix charset"/>.
-                </para>
-
-		      <para><example>Username: bob</example></para>
-		      <para><example>Username:: Ym9i</example></para>
-		    </listitem></varlistentry>
-
-		  <varlistentry>
-		  <term>NT-Domain</term>
-                <listitem><para>The user's domain, expected to be in
-                Samba's <smbconfoption name="unix charset"/>.
-                </para>
-
-		      <para><example>NT-Domain: WORKGROUP</example></para>
-		      <para><example>NT-Domain:: V09SS0dST1VQ</example></para>
-		    </listitem></varlistentry>
-
-		  <varlistentry>
-		  <term>Full-Username</term>
-                <listitem><para>The fully qualified username, expected to be in
-                Samba's <smbconfoption name="unix charset"/> and qualified with the
-                <smbconfoption name="winbind separator"/>.
-                </para>
-
-		      <para><example>Full-Username: WORKGROUP\bob</example></para>
-		      <para><example>Full-Username:: V09SS0dST1VQYm9i</example></para>
-		    </listitem></varlistentry>
-
-		  <varlistentry>
-		  <term>LANMAN-Challenge</term>
-		  
-                <listitem><para>The 8 byte <command>LANMAN Challenge</command> value,
-                generated randomly by the server, or (in cases such as
-                MSCHAPv2) generated in some way by both the server and
-                the client.
-                </para>	
-		      <para><example>LANMAN-Challenge: 0102030405060708</example></para>
-		    </listitem></varlistentry>
-
-		  <varlistentry>
-		  <term>LANMAN-Response</term>
-		  
-                <listitem><para>The 24 byte <command>LANMAN Response</command> value,
-                calculated from the user's password and the supplied
-                <command>LANMAN Challenge</command>.  Typically, this
-                is provided over the network by a client wishing to authenticate.
-                </para>	
-		      <para><example>LANMAN-Response: 0102030405060708090A0B0C0D0E0F101112131415161718</example></para>
-
-		    </listitem></varlistentry>
-
-		  <varlistentry>
-		  <term>NT-Response</term>
-                <listitem><para>The >= 24 byte <command>NT Response</command>
-                calculated from the user's password and the supplied
-                <command>LANMAN Challenge</command>.  Typically, this is 
-                provided over the network by a client wishing to authenticate.
-                 </para>	
-		      <para><example>NT-Response: 0102030405060708090A0B0C0D0E0F101112131415161718</example></para>
-
-		    </listitem></varlistentry>
-
-		  <varlistentry>
-		  <term>Password</term>
-                <listitem><para>The user's password.  This would be
-                provided by a network client, if the helper is being
-                used in a legacy situation that exposes plaintext
-                passwords in this way.
-                 </para>	
-		      <para><example>Password: samba2</example></para>
-		      <para><example>Password:: c2FtYmEy</example></para>
-
-		    </listitem></varlistentry>
-
-		  <varlistentry>
-		  <term>Request-User-Session-Key</term>
-                <listitem><para>Upon successful authenticaiton, return
-                the user session key associated with the login.
-                 </para>	
-		      <para><example>Request-User-Session-Key: Yes</example></para>
-
-		    </listitem></varlistentry>
-
-		  <varlistentry>
-		  <term>Request-LanMan-Session-Key</term>
-                <listitem><para>Upon successful authenticaiton, return
-                the LANMAN session key associated with the login.
-                 </para>	
-		      <para><example>Request-LanMan-Session-Key: Yes</example></para>
-
-		    </listitem></varlistentry>
-
-		<para><warning>Implementers should take care to base64 encode
-		any data (such as usernames/passwords) that may contain malicous user data, such as
-		a newline.  They may also need to decode strings from
-		the helper, which likewise may have been base64 encoded.</warning></para>
-	</variablelist>
-
+		    <term>Username</term>
+		    <listitem><para>The username, expected to be in
+		    Samba's <smbconfoption name="unix charset"/>.
+		    </para>
+		    <varlistentry>
+		      <term>Examples:</term>
+		      <para>Username: bob</para>
+		      <para>Username:: Ym9i</para>
+		    </varlistentry>
+		    </listitem>
+		  </varlistentry>
+
+		  <varlistentry>
+		    <term>NT-Domain</term>
+		    <listitem><para>The user's domain, expected to be in
+		    Samba's <smbconfoption name="unix charset"/>.
+		    </para>
+
+		    <varlistentry>
+		      <term>Examples:</term>
+		      <para>NT-Domain: WORKGROUP</para>
+		      <para>NT-Domain:: V09SS0dST1VQ</para>
+		    </varlistentry>
+		    </listitem>
+		  </varlistentry>
+
+		  <varlistentry>
+		    <term>Full-Username</term>
+		    <listitem><para>The fully qualified username, expected to be
+		    in Samba's <smbconfoption name="unix charset"/> and qualified
+		    with the <smbconfoption name="winbind separator"/>.</para>
+		    <varlistentry>
+		      <term>Examples:</term>
+		      <para>Full-Username: WORKGROUP\bob</para>
+		      <para>Full-Username:: V09SS0dST1VQYm9i</para>
+		    </varlistentry>
+		    </listitem>
+		  </varlistentry>
+
+		  <varlistentry>
+		    <term>LANMAN-Challenge</term>
+		    <listitem><para>The 8 byte <command>LANMAN Challenge</command>
+		    value, generated randomly by the server, or (in cases such
+		    as MSCHAPv2) generated in some way by both the server and
+		    the client.</para>
+		    <varlistentry>
+		      <term>Examples:</term>
+		      <para>LANMAN-Challenge: 0102030405060708</para>
+		    </varlistentry>
+		    </listitem>
+		  </varlistentry>
+
+		  <varlistentry>
+		    <term>LANMAN-Response</term>
+		    <listitem><para>The 24 byte <command>LANMAN Response</command> value,
+		    calculated from the user's password and the supplied
+		    <command>LANMAN Challenge</command>.  Typically, this
+		    is provided over the network by a client wishing to authenticate.
+		    </para>
+		    <varlistentry>
+		      <term>Examples:</term>
+		      <para>LANMAN-Response: 0102030405060708090A0B0C0D0E0F101112131415161718</para>
+		    </varlistentry>
+		    </listitem>
+		  </varlistentry>
+
+		  <varlistentry>
+		    <term>NT-Response</term>
+		    <listitem><para>The >= 24 byte <command>NT Response</command>
+		    calculated from the user's password and the supplied
+		    <command>LANMAN Challenge</command>.  Typically, this is
+		    provided over the network by a client wishing to authenticate.
+		    </para>
+		    <varlistentry>
+		      <term>Examples:</term>
+		      <para>NT-Response: 0102030405060708090A0B0C0D0E0F10111213141516171</para>
+		      </varlistentry>
+		    </listitem>
+		  </varlistentry>
+
+		  <varlistentry>
+		    <term>Password</term>
+		    <listitem><para>The user's password.  This would be
+		    provided by a network client, if the helper is being
+		    used in a legacy situation that exposes plaintext
+		    passwords in this way.</para>
+		    <varlistentry>
+		      <term>Examples:</term>
+		      <para>Password: samba2</para>
+		      <para>Password:: c2FtYmEy</para>
+		    </varlistentry>
+		    </listitem>
+		  </varlistentry>
+
+		  <varlistentry>
+		    <term>Request-User-Session-Key</term>
+		    <listitem><para>Upon successful authenticaiton, return
+		    the user session key associated with the login.</para>
+		    <varlistentry>
+		      <term>Examples:</term>
+		      <para>Request-User-Session-Key: Yes</para>
+		    </varlistentry>
+		    </listitem>
+		  </varlistentry>
+
+		  <varlistentry>
+		    <term>Request-LanMan-Session-Key</term>
+		    <listitem><para>Upon successful authenticaiton, return
+		    the LANMAN session key associated with the login.
+		    </para>
+		    <varlistentry>
+		      <term>Examples:</term>
+		      <para>Request-LanMan-Session-Key: Yes</para>
+		    </varlistentry>
+		    </listitem>
+		  </varlistentry>
+
+		</variablelist>
                 </listitem>
 		</varlistentry>
-	</variablelist>
-	</listitem>
+		</variablelist>
+		  <warning><para>Implementers should take care to base64 encode
+		  any data (such as usernames/passwords) that may contain malicous user data, such as
+		  a newline. They may also need to decode strings from
+		  the helper, which likewise may have been base64 encoded.</para></warning>
+		</listitem>
       </varlistentry>
       
Index: trunk/server/docs-xml/manpages-3/pam_winbind.8.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/pam_winbind.8.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/pam_winbind.8.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/pdbedit.8.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/pdbedit.8.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/pdbedit.8.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/profiles.1.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/profiles.1.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/profiles.1.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/rpcclient.1.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/rpcclient.1.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/rpcclient.1.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/samba.7.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/samba.7.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/samba.7.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/sharesec.1.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/sharesec.1.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/sharesec.1.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/smb.conf.5.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/smb.conf.5.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/smb.conf.5.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/smbcacls.1.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/smbcacls.1.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/smbcacls.1.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/smbclient.1.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/smbclient.1.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/smbclient.1.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/smbcontrol.1.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/smbcontrol.1.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/smbcontrol.1.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/smbcquotas.1.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/smbcquotas.1.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/smbcquotas.1.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/smbd.8.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/smbd.8.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/smbd.8.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/smbget.1.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/smbget.1.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/smbget.1.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/smbgetrc.5.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/smbgetrc.5.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/smbgetrc.5.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/smbpasswd.5.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/smbpasswd.5.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/smbpasswd.5.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/smbpasswd.8.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/smbpasswd.8.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/smbpasswd.8.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/smbspool.8.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/smbspool.8.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/smbspool.8.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/smbstatus.1.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/smbstatus.1.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/smbstatus.1.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/smbta-util.8.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/smbta-util.8.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/smbta-util.8.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/smbtar.1.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/smbtar.1.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/smbtar.1.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/smbtree.1.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/smbtree.1.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/smbtree.1.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/swat.8.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/swat.8.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/swat.8.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/tdbbackup.8.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/tdbbackup.8.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/tdbbackup.8.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/tdbdump.8.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/tdbdump.8.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/tdbdump.8.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/tdbtool.8.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/tdbtool.8.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/tdbtool.8.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/testparm.1.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/testparm.1.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/testparm.1.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/vfs_acl_tdb.8.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/vfs_acl_tdb.8.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/vfs_acl_tdb.8.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/vfs_acl_xattr.8.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/vfs_acl_xattr.8.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/vfs_acl_xattr.8.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/vfs_aio_fork.8.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/vfs_aio_fork.8.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/vfs_aio_fork.8.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/vfs_aio_pthread.8.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/vfs_aio_pthread.8.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/vfs_aio_pthread.8.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/vfs_audit.8.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/vfs_audit.8.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/vfs_audit.8.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/vfs_cacheprime.8.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/vfs_cacheprime.8.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/vfs_cacheprime.8.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/vfs_cap.8.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/vfs_cap.8.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/vfs_cap.8.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/vfs_catia.8.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/vfs_catia.8.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/vfs_catia.8.xml	(revision 862)
@@ -32,9 +32,21 @@
 	<para>The Catia CAD package commonly creates filenames that
 	use characters that are illegal in CIFS filenames. The
-	<command>vfs_catia</command> VFS module implements a fixed character
+	<command>vfs_catia</command> VFS module implements a character
 	mapping so that these files can be shared with CIFS clients.
 	</para>
 
 	<para>This module is stackable.</para>
+
+	<para>Up to samba version 3.4.x a fixed character mapping was used.
+	The invalid windows characters  \ / : * ? " &lt; &gt; | and the blank
+	character were mapped in a hardcoded way.
+	</para>
+
+	<para>Starting with samba-3.5.0 a more flexible mapping was introduced.
+	The new parameter "catia:mappings" now specifies the mapping on a char by char
+	basis using the notation: unix hex char 0x.. : windows hex char 0x..
+	Multiple character mappings are separated by a comma.
+	</para>
+
 
 </refsect1>
@@ -44,4 +56,5 @@
 	<title>EXAMPLES</title>
 
+	<para>Samba versions up to 3.4.x:</para>
 	<para>Map Catia filenames on the [CAD] share:</para>
 
@@ -52,4 +65,52 @@
 </programlisting>
 
+	<para>Samba versions 3.5.0 and later:</para>
+	<para>Map Catia filenames on the [CAD] share:</para>
+
+<programlisting>
+        <smbconfsection name="[CAD]"/>
+	<smbconfoption name="path">/data/cad</smbconfoption>
+	<smbconfoption name="vfs objects">catia</smbconfoption>
+	<smbconfoption name="catia:mappings">0x22:0xa8</smbconfoption>
+</programlisting>
+
+        <para>To get the full formerly fixed mappings:</para>
+<programlisting>
+        <smbconfsection name="[CAD]"/>
+	<smbconfoption name="path">/data/cad</smbconfoption>
+	<smbconfoption name="vfs objects">catia</smbconfoption>
+	<smbconfoption name="catia:mappings">0x22:0xa8,0x2a:0xa4,0x2f:0xf8,0x3a:0xf7,0x3c:0xab,0x3e:0xbb,0x3f:0xbf,0x5c:0xff,0x7c:0xa6,0x20:0xb1</smbconfoption>
+</programlisting>
+
+        <para>Unix filename to be translated (Note that the path delimiter "/" is not used here):
+	</para>
+	<para>a\a:a*a?a"a&lt;a&gt;a|a a</para>
+
+	<para>Resulting windows filename:</para>
+
+	<para>a&#x00ff;a&#x00f7;a&#x00a4;a&#x00bf;a&#x00a8;a&#x00ab;a&#x00bb;a&#x00a6;a&#x00b1;a
+	</para>
+
+        <para>Note that the character mapping must work in BOTH directions
+	(unix -&gt; windows and windows -&gt; unix) to get unique and existing file names!
+	</para>
+
+	<para>A NOT working example:</para>
+
+<programlisting>
+        <smbconfsection name="[CAD]"/>
+	<smbconfoption name="path">/data/cad</smbconfoption>
+	<smbconfoption name="vfs objects">catia</smbconfoption>
+	<smbconfoption name="catia:mappings">0x3a:0x5f</smbconfoption>
+</programlisting>
+
+         <para>Here the colon ":" is mapped to the underscore "_".</para>
+	 <para>Assuming a unix filename "a:should_work", which is well translated
+	 to windows as "a_should_work".</para>
+	 <para>BUT the reverse mapping from windows "a_should_work" to unix
+	 will result in "a:should:work" - something like "file not found"
+	 will be returned.
+	 </para>
+
 </refsect1>
 
@@ -57,5 +118,5 @@
 	<title>VERSION</title>
 
-	<para>This man page is correct for version 3.0.25 of the Samba suite.
+	<para>This man page is correct for all versions up to 4.0.3 of the Samba suite.
 	</para>
 </refsect1>
@@ -68,4 +129,5 @@
 	by the Samba Team as an Open Source project similar
 	to the way the Linux kernel is developed.</para>
+	<para>New version written by Guenter Kukkukk kukks@samba.org</para>
 
 </refsect1>
Index: trunk/server/docs-xml/manpages-3/vfs_commit.8.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/vfs_commit.8.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/vfs_commit.8.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/vfs_crossrename.8.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/vfs_crossrename.8.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/vfs_crossrename.8.xml	(revision 862)
@@ -38,26 +38,28 @@
 	manual copy and delete operations. If the rename by copy is done by the
 	server this can be much more efficient. vfs_crossrename tries to do
-	this server-side cross-device rename operation. There are however
-	limitations that this module currently does not solve:
+	this server-side cross-device rename operation.
+	</para>
+
+	<para>There are however	limitations that this module currently does not
+	solve:</para>
 
 	<variablelist>
 		<varlistentry>
-		the ACLs of files are not preserved
+		<para>The ACLs of files are not preserved,</para>
 		</varlistentry>
 		<varlistentry>
-		meta data in EAs are not preserved
+		<para>meta data in EAs are not preserved,</para>
 		</varlistentry>
 		<varlistentry>
-		renames of whole subdirectories cannot be done recursively,
+		<para>renames of whole subdirectories cannot be done recursively,
 		in that case we still return STATUS_NOT_SAME_DEVICE and
-		let the client decide what to do
+		let the client decide what to do,</para>
 		</varlistentry>
 		<varlistentry>
-		rename operations of huge files can cause hangs on the
+		<para>rename operations of huge files can cause hangs on the
 		client because clients expect a rename operation to
-		return fast
+		return fast.</para>
 		</varlistentry>
 	</variablelist>
-	</para>
 
 	<para>This module is stackable.</para>
Index: trunk/server/docs-xml/manpages-3/vfs_default_quota.8.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/vfs_default_quota.8.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/vfs_default_quota.8.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/vfs_dirsort.8.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/vfs_dirsort.8.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/vfs_dirsort.8.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/vfs_extd_audit.8.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/vfs_extd_audit.8.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/vfs_extd_audit.8.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/vfs_fake_perms.8.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/vfs_fake_perms.8.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/vfs_fake_perms.8.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/vfs_fileid.8.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/vfs_fileid.8.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/vfs_fileid.8.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/vfs_full_audit.8.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/vfs_full_audit.8.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/vfs_full_audit.8.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/vfs_gpfs.8.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/vfs_gpfs.8.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/vfs_gpfs.8.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/vfs_netatalk.8.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/vfs_netatalk.8.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/vfs_netatalk.8.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/vfs_notify_fam.8.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/vfs_notify_fam.8.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/vfs_notify_fam.8.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/vfs_prealloc.8.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/vfs_prealloc.8.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/vfs_prealloc.8.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/vfs_preopen.8.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/vfs_preopen.8.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/vfs_preopen.8.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/vfs_readahead.8.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/vfs_readahead.8.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/vfs_readahead.8.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/vfs_readonly.8.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/vfs_readonly.8.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/vfs_readonly.8.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/vfs_recycle.8.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/vfs_recycle.8.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/vfs_recycle.8.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/vfs_scannedonly.8.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/vfs_scannedonly.8.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/vfs_scannedonly.8.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/vfs_shadow_copy.8.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/vfs_shadow_copy.8.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/vfs_shadow_copy.8.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/vfs_shadow_copy2.8.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/vfs_shadow_copy2.8.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/vfs_shadow_copy2.8.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/vfs_smb_traffic_analyzer.8.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/vfs_smb_traffic_analyzer.8.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/vfs_smb_traffic_analyzer.8.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/vfs_streams_depot.8.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/vfs_streams_depot.8.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/vfs_streams_depot.8.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/vfs_streams_xattr.8.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/vfs_streams_xattr.8.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/vfs_streams_xattr.8.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/vfs_time_audit.8.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/vfs_time_audit.8.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/vfs_time_audit.8.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/vfs_xattr_tdb.8.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/vfs_xattr_tdb.8.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/vfs_xattr_tdb.8.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/vfstest.1.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/vfstest.1.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/vfstest.1.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/wbinfo.1.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/wbinfo.1.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/wbinfo.1.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/winbind_krb5_locator.7.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/winbind_krb5_locator.7.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/winbind_krb5_locator.7.xml	(revision 862)
Index: trunk/server/docs-xml/manpages-3/winbindd.8.xml
===================================================================
--- trunk/server/docs-xml/manpages-3/winbindd.8.xml	(revision 857)
+++ trunk/server/docs-xml/manpages-3/winbindd.8.xml	(revision 862)
Index: trunk/server/docs-xml/smbdotconf/protocol/maxprotocol.xml
===================================================================
--- trunk/server/docs-xml/smbdotconf/protocol/maxprotocol.xml	(revision 857)
+++ trunk/server/docs-xml/smbdotconf/protocol/maxprotocol.xml	(revision 862)
@@ -36,6 +36,5 @@
 	<listitem>
 	    <para><constant>SMB2</constant>: Re-implementation of the SMB protocol.
-	    Used by Windows Vista and newer. The Samba implementation of SMB2 is
-	    currently marked experimental!</para>
+	    Used by Windows Vista and newer.</para>
 	</listitem>
     </itemizedlist>
Index: trunk/server/docs-xml/smbdotconf/security/clientusepsnegoprincipal.xml
===================================================================
--- trunk/server/docs-xml/smbdotconf/security/clientusepsnegoprincipal.xml	(revision 862)
+++ trunk/server/docs-xml/smbdotconf/security/clientusepsnegoprincipal.xml	(revision 862)
@@ -0,0 +1,28 @@
+<samba:parameter name="client use spnego principal"
+                 context="G"
+				 type="boolean"
+                 advanced="1" developer="1"
+                 xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
+<description>
+    <para>This parameter determines whether or not
+    <citerefentry><refentrytitle>smbclient</refentrytitle>
+    <manvolnum>8</manvolnum></citerefentry> and other samba components
+    acting as a client will attempt to use the server-supplied
+    principal sometimes given in the SPNEGO exchange.</para>
+
+    <para>If enabled, Samba can attempt to use Kerberos to contact
+    servers known only by IP address.  Kerberos relies on names, so
+    ordinarily cannot function in this situation. </para>
+
+    <para>If disabled, Samba will use the name used to look up the
+    server when asking the KDC for a ticket.  This avoids situations
+    where a server may impersonate another, soliciting authentication
+    as one principal while being known on the network as another.
+    </para>
+
+    <para>Note that Windows XP SP2 and later versions already follow
+    this behaviour, and Windows Vista and later servers no longer
+    supply this 'rfc4178 hint' principal on the server side.</para>
+</description>
+<value type="default">no</value>
+</samba:parameter>
Index: trunk/server/docs/htmldocs/Samba3-ByExample/images/AccountingNetwork.svg
===================================================================
--- trunk/server/docs/htmldocs/Samba3-ByExample/images/AccountingNetwork.svg	(revision 857)
+++ trunk/server/docs/htmldocs/Samba3-ByExample/images/AccountingNetwork.svg	(revision 862)
Index: trunk/server/docs/htmldocs/Samba3-ByExample/images/Charity-Network.svg
===================================================================
--- trunk/server/docs/htmldocs/Samba3-ByExample/images/Charity-Network.svg	(revision 857)
+++ trunk/server/docs/htmldocs/Samba3-ByExample/images/Charity-Network.svg	(revision 862)
Index: trunk/server/docs/htmldocs/Samba3-ByExample/images/UNIX-Samba-and-LDAP.svg
===================================================================
--- trunk/server/docs/htmldocs/Samba3-ByExample/images/UNIX-Samba-and-LDAP.svg	(revision 857)
+++ trunk/server/docs/htmldocs/Samba3-ByExample/images/UNIX-Samba-and-LDAP.svg	(revision 862)
Index: trunk/server/docs/htmldocs/Samba3-ByExample/images/acct2net.svg
===================================================================
--- trunk/server/docs/htmldocs/Samba3-ByExample/images/acct2net.svg	(revision 857)
+++ trunk/server/docs/htmldocs/Samba3-ByExample/images/acct2net.svg	(revision 862)
Index: trunk/server/docs/htmldocs/Samba3-ByExample/images/ch7-dual-additive-LDAP-Ok.svg
===================================================================
--- trunk/server/docs/htmldocs/Samba3-ByExample/images/ch7-dual-additive-LDAP-Ok.svg	(revision 857)
+++ trunk/server/docs/htmldocs/Samba3-ByExample/images/ch7-dual-additive-LDAP-Ok.svg	(revision 862)
Index: trunk/server/docs/htmldocs/Samba3-ByExample/images/ch7-dual-additive-LDAP.svg
===================================================================
--- trunk/server/docs/htmldocs/Samba3-ByExample/images/ch7-dual-additive-LDAP.svg	(revision 857)
+++ trunk/server/docs/htmldocs/Samba3-ByExample/images/ch7-dual-additive-LDAP.svg	(revision 862)
Index: trunk/server/docs/htmldocs/Samba3-ByExample/images/ch7-fail-overLDAP.svg
===================================================================
--- trunk/server/docs/htmldocs/Samba3-ByExample/images/ch7-fail-overLDAP.svg	(revision 857)
+++ trunk/server/docs/htmldocs/Samba3-ByExample/images/ch7-fail-overLDAP.svg	(revision 862)
Index: trunk/server/docs/htmldocs/Samba3-ByExample/images/ch7-singleLDAP.svg
===================================================================
--- trunk/server/docs/htmldocs/Samba3-ByExample/images/ch7-singleLDAP.svg	(revision 857)
+++ trunk/server/docs/htmldocs/Samba3-ByExample/images/ch7-singleLDAP.svg	(revision 862)
Index: trunk/server/docs/htmldocs/Samba3-ByExample/images/ch8-migration.svg
===================================================================
--- trunk/server/docs/htmldocs/Samba3-ByExample/images/ch8-migration.svg	(revision 857)
+++ trunk/server/docs/htmldocs/Samba3-ByExample/images/ch8-migration.svg	(revision 862)
Index: trunk/server/docs/htmldocs/Samba3-ByExample/images/chap4-net.svg
===================================================================
--- trunk/server/docs/htmldocs/Samba3-ByExample/images/chap4-net.svg	(revision 857)
+++ trunk/server/docs/htmldocs/Samba3-ByExample/images/chap4-net.svg	(revision 862)
Index: trunk/server/docs/htmldocs/Samba3-ByExample/images/chap5-net.svg
===================================================================
--- trunk/server/docs/htmldocs/Samba3-ByExample/images/chap5-net.svg	(revision 857)
+++ trunk/server/docs/htmldocs/Samba3-ByExample/images/chap5-net.svg	(revision 862)
Index: trunk/server/docs/htmldocs/Samba3-ByExample/images/chap6-net.svg
===================================================================
--- trunk/server/docs/htmldocs/Samba3-ByExample/images/chap6-net.svg	(revision 857)
+++ trunk/server/docs/htmldocs/Samba3-ByExample/images/chap6-net.svg	(revision 862)
Index: trunk/server/docs/htmldocs/Samba3-ByExample/images/chap7-idresol.svg
===================================================================
--- trunk/server/docs/htmldocs/Samba3-ByExample/images/chap7-idresol.svg	(revision 857)
+++ trunk/server/docs/htmldocs/Samba3-ByExample/images/chap7-idresol.svg	(revision 862)
Index: trunk/server/docs/htmldocs/Samba3-ByExample/images/chap7-net-A.svg
===================================================================
--- trunk/server/docs/htmldocs/Samba3-ByExample/images/chap7-net-A.svg	(revision 857)
+++ trunk/server/docs/htmldocs/Samba3-ByExample/images/chap7-net-A.svg	(revision 862)
Index: trunk/server/docs/htmldocs/Samba3-ByExample/images/chap7-net.svg
===================================================================
--- trunk/server/docs/htmldocs/Samba3-ByExample/images/chap7-net.svg	(revision 857)
+++ trunk/server/docs/htmldocs/Samba3-ByExample/images/chap7-net.svg	(revision 862)
Index: trunk/server/docs/htmldocs/Samba3-ByExample/images/chap7-net2-B.svg
===================================================================
--- trunk/server/docs/htmldocs/Samba3-ByExample/images/chap7-net2-B.svg	(revision 857)
+++ trunk/server/docs/htmldocs/Samba3-ByExample/images/chap7-net2-B.svg	(revision 862)
Index: trunk/server/docs/htmldocs/Samba3-ByExample/images/chap7-net2.svg
===================================================================
--- trunk/server/docs/htmldocs/Samba3-ByExample/images/chap7-net2.svg	(revision 857)
+++ trunk/server/docs/htmldocs/Samba3-ByExample/images/chap7-net2.svg	(revision 862)
Index: trunk/server/docs/htmldocs/Samba3-ByExample/images/chap9-ADSDC.svg
===================================================================
--- trunk/server/docs/htmldocs/Samba3-ByExample/images/chap9-ADSDC.svg	(revision 857)
+++ trunk/server/docs/htmldocs/Samba3-ByExample/images/chap9-ADSDC.svg	(revision 862)
Index: trunk/server/docs/htmldocs/Samba3-ByExample/images/chap9-SambaDC.svg
===================================================================
--- trunk/server/docs/htmldocs/Samba3-ByExample/images/chap9-SambaDC.svg	(revision 857)
+++ trunk/server/docs/htmldocs/Samba3-ByExample/images/chap9-SambaDC.svg	(revision 862)
Index: trunk/server/docs/htmldocs/Samba3-HOWTO/images/access1.svg
===================================================================
--- trunk/server/docs/htmldocs/Samba3-HOWTO/images/access1.svg	(revision 857)
+++ trunk/server/docs/htmldocs/Samba3-HOWTO/images/access1.svg	(revision 862)
Index: trunk/server/docs/htmldocs/Samba3-HOWTO/images/browsing1.svg
===================================================================
--- trunk/server/docs/htmldocs/Samba3-HOWTO/images/browsing1.svg	(revision 857)
+++ trunk/server/docs/htmldocs/Samba3-HOWTO/images/browsing1.svg	(revision 862)
Index: trunk/server/docs/htmldocs/Samba3-HOWTO/images/cups1.svg
===================================================================
--- trunk/server/docs/htmldocs/Samba3-HOWTO/images/cups1.svg	(revision 857)
+++ trunk/server/docs/htmldocs/Samba3-HOWTO/images/cups1.svg	(revision 862)
Index: trunk/server/docs/htmldocs/Samba3-HOWTO/images/cups2.svg
===================================================================
--- trunk/server/docs/htmldocs/Samba3-HOWTO/images/cups2.svg	(revision 857)
+++ trunk/server/docs/htmldocs/Samba3-HOWTO/images/cups2.svg	(revision 862)
Index: trunk/server/docs/htmldocs/Samba3-HOWTO/images/domain.svg
===================================================================
--- trunk/server/docs/htmldocs/Samba3-HOWTO/images/domain.svg	(revision 857)
+++ trunk/server/docs/htmldocs/Samba3-HOWTO/images/domain.svg	(revision 862)
Index: trunk/server/docs/htmldocs/Samba3-HOWTO/images/idmap-gid2sid.svg
===================================================================
--- trunk/server/docs/htmldocs/Samba3-HOWTO/images/idmap-gid2sid.svg	(revision 857)
+++ trunk/server/docs/htmldocs/Samba3-HOWTO/images/idmap-gid2sid.svg	(revision 862)
Index: trunk/server/docs/htmldocs/Samba3-HOWTO/images/idmap-groups.svg
===================================================================
--- trunk/server/docs/htmldocs/Samba3-HOWTO/images/idmap-groups.svg	(revision 857)
+++ trunk/server/docs/htmldocs/Samba3-HOWTO/images/idmap-groups.svg	(revision 862)
Index: trunk/server/docs/htmldocs/Samba3-HOWTO/images/idmap-sid2gid.svg
===================================================================
--- trunk/server/docs/htmldocs/Samba3-HOWTO/images/idmap-sid2gid.svg	(revision 857)
+++ trunk/server/docs/htmldocs/Samba3-HOWTO/images/idmap-sid2gid.svg	(revision 862)
Index: trunk/server/docs/htmldocs/Samba3-HOWTO/images/idmap-sid2uid.svg
===================================================================
--- trunk/server/docs/htmldocs/Samba3-HOWTO/images/idmap-sid2uid.svg	(revision 857)
+++ trunk/server/docs/htmldocs/Samba3-HOWTO/images/idmap-sid2uid.svg	(revision 862)
Index: trunk/server/docs/htmldocs/Samba3-HOWTO/images/idmap-store-gid2sid.svg
===================================================================
--- trunk/server/docs/htmldocs/Samba3-HOWTO/images/idmap-store-gid2sid.svg	(revision 857)
+++ trunk/server/docs/htmldocs/Samba3-HOWTO/images/idmap-store-gid2sid.svg	(revision 862)
Index: trunk/server/docs/htmldocs/Samba3-HOWTO/images/idmap-uid2sid.svg
===================================================================
--- trunk/server/docs/htmldocs/Samba3-HOWTO/images/idmap-uid2sid.svg	(revision 857)
+++ trunk/server/docs/htmldocs/Samba3-HOWTO/images/idmap-uid2sid.svg	(revision 862)
Index: trunk/server/docs/htmldocs/Samba3-HOWTO/images/idmap.svg
===================================================================
--- trunk/server/docs/htmldocs/Samba3-HOWTO/images/idmap.svg	(revision 857)
+++ trunk/server/docs/htmldocs/Samba3-HOWTO/images/idmap.svg	(revision 862)
Index: trunk/server/docs/htmldocs/Samba3-HOWTO/images/pdftoepsonusb.svg
===================================================================
--- trunk/server/docs/htmldocs/Samba3-HOWTO/images/pdftoepsonusb.svg	(revision 857)
+++ trunk/server/docs/htmldocs/Samba3-HOWTO/images/pdftoepsonusb.svg	(revision 862)
Index: trunk/server/docs/htmldocs/Samba3-HOWTO/images/pdftosocket.svg
===================================================================
--- trunk/server/docs/htmldocs/Samba3-HOWTO/images/pdftosocket.svg	(revision 857)
+++ trunk/server/docs/htmldocs/Samba3-HOWTO/images/pdftosocket.svg	(revision 862)
Index: trunk/server/docs/htmldocs/Samba3-HOWTO/images/trusts1.svg
===================================================================
--- trunk/server/docs/htmldocs/Samba3-HOWTO/images/trusts1.svg	(revision 857)
+++ trunk/server/docs/htmldocs/Samba3-HOWTO/images/trusts1.svg	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/eventlogadm.8.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/eventlogadm.8.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/eventlogadm.8.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/findsmb.1.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/findsmb.1.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/findsmb.1.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/idmap_ad.8.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/idmap_ad.8.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/idmap_ad.8.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/idmap_adex.8.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/idmap_adex.8.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/idmap_adex.8.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/idmap_autorid.8.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/idmap_autorid.8.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/idmap_autorid.8.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/idmap_hash.8.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/idmap_hash.8.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/idmap_hash.8.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/idmap_ldap.8.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/idmap_ldap.8.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/idmap_ldap.8.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/idmap_nss.8.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/idmap_nss.8.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/idmap_nss.8.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/idmap_rid.8.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/idmap_rid.8.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/idmap_rid.8.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/idmap_tdb.8.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/idmap_tdb.8.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/idmap_tdb.8.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/idmap_tdb2.8.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/idmap_tdb2.8.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/idmap_tdb2.8.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/index.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/index.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/index.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/ldbsearch.1.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/ldbsearch.1.html	(revision 857)
+++ 	(revision )
@@ -1,15 +1,0 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>ldbsearch</title><link rel="stylesheet" href="../samba.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry" title="ldbsearch"><a name="ldbsearch.1"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ldbsearch &#8212; Search for records in a LDB database</p></div><div class="refsynopsisdiv" title="Synopsis"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="literal">ldbsearch</code> [-h] [-s base|one|sub] [-b basedn] [-i] [-H LDB-URL] [expression] [attributes]</p></div></div><div class="refsect1" title="DESCRIPTION"><a name="id266852"></a><h2>DESCRIPTION</h2><p>ldbsearch searches a LDB database for records matching the 
-		specified expression (see the ldapsearch(1) manpage for 
-		a description of the expression format). For each 
-		record, the specified attributes are printed.
-	</p></div><div class="refsect1" title="OPTIONS"><a name="id266864"></a><h2>OPTIONS</h2><div class="variablelist"><dl><dt><span class="term">-h</span></dt><dd><p>
-		Show list of available options.</p></dd><dt><span class="term">-H &lt;ldb-url&gt;</span></dt><dd><p>
-				LDB URL to connect to. See ldb(7) for details.
-			</p></dd><dt><span class="term">-s one|sub|base</span></dt><dd><p>Search scope to use. One-level, subtree or base.</p></dd><dt><span class="term">-i</span></dt><dd><p>Read search expressions from stdin. </p></dd><dt><span class="term">-b basedn</span></dt><dd><p>Specify Base DN to use.</p></dd></dl></div></div><div class="refsect1" title="ENVIRONMENT"><a name="id265726"></a><h2>ENVIRONMENT</h2><div class="variablelist"><dl><dt><span class="term">LDB_URL</span></dt><dd><p>LDB URL to connect to (can be overrided by using the 
-					-H command-line option.)</p></dd></dl></div></div><div class="refsect1" title="VERSION"><a name="id265746"></a><h2>VERSION</h2><p>This man page is correct for version 4.0 of the Samba suite.</p></div><div class="refsect1" title="SEE ALSO"><a name="id265756"></a><h2>SEE ALSO</h2><p>ldb(7), ldbedit(1)</p></div><div class="refsect1" title="AUTHOR"><a name="id265766"></a><h2>AUTHOR</h2><p> ldb was written by 
-		 <a class="ulink" href="http://samba.org/~tridge/" target="_top">Andrew Tridgell</a>.
-	</p><p>
-If you wish to report a problem or make a suggestion then please see
-the <a class="ulink" href="http://ldb.samba.org/" target="_top">http://ldb.samba.org/</a> web site for
-current contact and maintainer information.
-	</p><p>This manpage was written by Jelmer Vernooij.</p></div></div></body></html>
Index: trunk/server/docs/htmldocs/manpages/libsmbclient.7.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/libsmbclient.7.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/libsmbclient.7.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/lmhosts.5.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/lmhosts.5.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/lmhosts.5.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/log2pcap.1.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/log2pcap.1.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/log2pcap.1.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/net.8.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/net.8.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/net.8.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/nmbd.8.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/nmbd.8.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/nmbd.8.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/nmblookup.1.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/nmblookup.1.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/nmblookup.1.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/ntlm_auth.1.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/ntlm_auth.1.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/ntlm_auth.1.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/pam_winbind.8.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/pam_winbind.8.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/pam_winbind.8.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/pam_winbind.conf.5.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/pam_winbind.conf.5.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/pam_winbind.conf.5.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/pdbedit.8.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/pdbedit.8.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/pdbedit.8.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/profiles.1.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/profiles.1.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/profiles.1.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/rpcclient.1.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/rpcclient.1.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/rpcclient.1.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/samba.7.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/samba.7.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/samba.7.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/sharesec.1.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/sharesec.1.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/sharesec.1.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/smb.conf.5.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/smb.conf.5.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/smb.conf.5.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/smbcacls.1.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/smbcacls.1.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/smbcacls.1.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/smbclient.1.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/smbclient.1.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/smbclient.1.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/smbcontrol.1.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/smbcontrol.1.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/smbcontrol.1.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/smbcquotas.1.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/smbcquotas.1.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/smbcquotas.1.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/smbd.8.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/smbd.8.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/smbd.8.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/smbget.1.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/smbget.1.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/smbget.1.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/smbgetrc.5.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/smbgetrc.5.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/smbgetrc.5.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/smbpasswd.5.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/smbpasswd.5.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/smbpasswd.5.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/smbpasswd.8.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/smbpasswd.8.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/smbpasswd.8.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/smbspool.8.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/smbspool.8.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/smbspool.8.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/smbstatus.1.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/smbstatus.1.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/smbstatus.1.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/smbta-util.8.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/smbta-util.8.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/smbta-util.8.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/smbtar.1.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/smbtar.1.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/smbtar.1.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/smbtree.1.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/smbtree.1.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/smbtree.1.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/swat.8.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/swat.8.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/swat.8.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/tdbbackup.8.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/tdbbackup.8.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/tdbbackup.8.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/tdbdump.8.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/tdbdump.8.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/tdbdump.8.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/tdbtool.8.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/tdbtool.8.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/tdbtool.8.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/testparm.1.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/testparm.1.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/testparm.1.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/vfs_acl_tdb.8.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/vfs_acl_tdb.8.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/vfs_acl_tdb.8.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/vfs_acl_xattr.8.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/vfs_acl_xattr.8.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/vfs_acl_xattr.8.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/vfs_aio_fork.8.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/vfs_aio_fork.8.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/vfs_aio_fork.8.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/vfs_aio_pthread.8.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/vfs_aio_pthread.8.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/vfs_aio_pthread.8.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/vfs_audit.8.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/vfs_audit.8.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/vfs_audit.8.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/vfs_cacheprime.8.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/vfs_cacheprime.8.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/vfs_cacheprime.8.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/vfs_cap.8.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/vfs_cap.8.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/vfs_cap.8.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/vfs_catia.8.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/vfs_catia.8.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/vfs_catia.8.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/vfs_commit.8.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/vfs_commit.8.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/vfs_commit.8.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/vfs_crossrename.8.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/vfs_crossrename.8.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/vfs_crossrename.8.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/vfs_default_quota.8.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/vfs_default_quota.8.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/vfs_default_quota.8.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/vfs_dirsort.8.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/vfs_dirsort.8.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/vfs_dirsort.8.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/vfs_extd_audit.8.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/vfs_extd_audit.8.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/vfs_extd_audit.8.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/vfs_fake_perms.8.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/vfs_fake_perms.8.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/vfs_fake_perms.8.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/vfs_fileid.8.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/vfs_fileid.8.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/vfs_fileid.8.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/vfs_full_audit.8.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/vfs_full_audit.8.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/vfs_full_audit.8.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/vfs_gpfs.8.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/vfs_gpfs.8.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/vfs_gpfs.8.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/vfs_netatalk.8.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/vfs_netatalk.8.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/vfs_netatalk.8.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/vfs_notify_fam.8.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/vfs_notify_fam.8.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/vfs_notify_fam.8.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/vfs_prealloc.8.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/vfs_prealloc.8.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/vfs_prealloc.8.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/vfs_preopen.8.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/vfs_preopen.8.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/vfs_preopen.8.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/vfs_readahead.8.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/vfs_readahead.8.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/vfs_readahead.8.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/vfs_readonly.8.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/vfs_readonly.8.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/vfs_readonly.8.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/vfs_recycle.8.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/vfs_recycle.8.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/vfs_recycle.8.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/vfs_scannedonly.8.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/vfs_scannedonly.8.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/vfs_scannedonly.8.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/vfs_shadow_copy.8.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/vfs_shadow_copy.8.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/vfs_shadow_copy.8.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/vfs_shadow_copy2.8.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/vfs_shadow_copy2.8.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/vfs_shadow_copy2.8.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/vfs_smb_traffic_analyzer.8.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/vfs_smb_traffic_analyzer.8.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/vfs_smb_traffic_analyzer.8.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/vfs_streams_depot.8.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/vfs_streams_depot.8.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/vfs_streams_depot.8.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/vfs_streams_xattr.8.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/vfs_streams_xattr.8.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/vfs_streams_xattr.8.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/vfs_time_audit.8.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/vfs_time_audit.8.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/vfs_time_audit.8.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/vfs_xattr_tdb.8.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/vfs_xattr_tdb.8.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/vfs_xattr_tdb.8.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/vfstest.1.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/vfstest.1.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/vfstest.1.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/wbinfo.1.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/wbinfo.1.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/wbinfo.1.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/winbind_krb5_locator.7.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/winbind_krb5_locator.7.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/winbind_krb5_locator.7.html	(revision 862)
Index: trunk/server/docs/htmldocs/manpages/winbindd.8.html
===================================================================
--- trunk/server/docs/htmldocs/manpages/winbindd.8.html	(revision 857)
+++ trunk/server/docs/htmldocs/manpages/winbindd.8.html	(revision 862)
Index: trunk/server/docs/manpages/dbwrap_tool.1
===================================================================
--- trunk/server/docs/manpages/dbwrap_tool.1	(revision 862)
+++ trunk/server/docs/manpages/dbwrap_tool.1	(revision 862)
@@ -0,0 +1,201 @@
+'\" t
+.\"     Title: dbwrap_tool
+.\"    Author: [see the "AUTHOR" section]
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
+.\"    Manual: System Administration tools
+.\"    Source: Samba 3.6
+.\"  Language: English
+.\"
+.TH "DBWRAP_TOOL" "1" "09/18/2013" "Samba 3\&.6" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+dbwrap_tool \- low level TDB/CTDB manipulation tool using the dbwrap interface
+.SH "SYNOPSIS"
+.HP \w'\ 'u
+dbwrap_tool {<database>} {<operation>} [<key>\ [<type>\ [<value>]\ ]]
+.SH "DESCRIPTION"
+.PP
+This tool is part of the
+\fBsamba\fR(7)
+suite\&.
+.PP
+The dbwrap_tool program is used to read and manipulate TDB/CTDB databases using the dbwrap interface\&.
+.PP
+The following database operations are available:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+fetch: fetch a record
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+store: create or modify a record
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+delete: remove a record
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+erase: remove all records
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+listkeys: list all available records
+.RE
+.sp
+.RE
+.PP
+The following types are available:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+int32: signed 32bit integer
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+uint32: unsigned 32bit integer
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+string: "hello world"
+.RE
+.sp
+.RE
+.SH "OPTIONS"
+.PP
+None\&.
+.SH "COMMANDS"
+.SS "fetch"
+.HP \w'\ 'u
+dbwrap_tool <database> fetch <key> <type>
+		
+.SS "store"
+.HP \w'\ 'u
+dbwrap_tool <database> store <key> <type> <value>
+		
+.SS "delete"
+.HP \w'\ 'u
+dbwrap_tool <database> delete <key>
+		
+.SS "erase"
+.HP \w'\ 'u
+dbwrap_tool <database> erase
+		
+.SS "listkeys"
+.HP \w'\ 'u
+dbwrap_tool <database> listkeys
+		
+.SH "EXAMPLES"
+.PP
+List all keys from winbindd_idmap\&.tdb
+.RS 4
+dbwrap_tool
+winbindd_idmap\&.tdb listkeys
+.RE
+.PP
+Fetch record with key "USER HWM" as uint32
+.RS 4
+dbwrap_tool
+winbindd_idmap\&.tdb fetch "USER HWM" uint32
+.RE
+.PP
+Remove record with key "USER HWM"
+.RS 4
+dbwrap_tool
+winbindd_idmap\&.tdb remove "USER HWM"
+.RE
+.PP
+Store and overwrite record "USER HWM" with value 214
+.RS 4
+dbwrap_tool
+winbindd_idmap\&.tdb store "USER HWM" uint32 214
+.RE
+.SH "NOTES"
+.PP
+Use with caution!
+.SH "VERSION"
+.PP
+This man page is correct for version 3 of the Samba suite\&.
+.SH "SEE ALSO"
+.PP
+\fBsmbd\fR(8),
+\fBsamba\fR(7)
+.SH "AUTHOR"
+.PP
+The original Samba software and related utilities were created by Andrew Tridgell\&. Samba is now developed by the Samba Team as an Open Source project similar to the way the Linux kernel is developed\&.
+.PP
+The dbwrap_tool manpage was written by Bjoern Baumbach\&.
Index: trunk/server/docs/manpages/eventlogadm.8
===================================================================
--- trunk/server/docs/manpages/eventlogadm.8	(revision 857)
+++ trunk/server/docs/manpages/eventlogadm.8	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: eventlogadm
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: System Administration tools
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "EVENTLOGADM" "8" "10/29/2012" "Samba 3\&.6" "System Administration tools"
+.TH "EVENTLOGADM" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
Index: trunk/server/docs/manpages/findsmb.1
===================================================================
--- trunk/server/docs/manpages/findsmb.1	(revision 857)
+++ trunk/server/docs/manpages/findsmb.1	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: findsmb
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: User Commands
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "FINDSMB" "1" "10/29/2012" "Samba 3\&.6" "User Commands"
+.TH "FINDSMB" "1" "09/18/2013" "Samba 3\&.6" "User Commands"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
@@ -69,5 +78,5 @@
 for any name: IP address, NetBIOS name, Workgroup name, operating system, and SMB server version\&.
 .PP
-There will be a \'+\' in front of the workgroup name for machines that are local master browsers for that workgroup\&. There will be an \'*\' in front of the workgroup name for machines that are the domain master browser for that workgroup\&. Machines that are running Windows for Workgroups, Windows 95 or Windows 98 will not show any information about the operating system or server version\&.
+There will be a \*(Aq+\*(Aq in front of the workgroup name for machines that are local master browsers for that workgroup\&. There will be an \*(Aq*\*(Aq in front of the workgroup name for machines that are the domain master browser for that workgroup\&. Machines that are running Windows for Workgroups, Windows 95 or Windows 98 will not show any information about the operating system or server version\&.
 .PP
 The command with
Index: trunk/server/docs/manpages/idmap_ad.8
===================================================================
--- trunk/server/docs/manpages/idmap_ad.8	(revision 857)
+++ trunk/server/docs/manpages/idmap_ad.8	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: idmap_ad
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: System Administration tools
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "IDMAP_AD" "8" "10/29/2012" "Samba 3\&.6" "System Administration tools"
+.TH "IDMAP_AD" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
@@ -20,8 +29,8 @@
 .\" -----------------------------------------------------------------
 .SH "NAME"
-idmap_ad \- Samba\'s idmap_ad Backend for Winbind
+idmap_ad \- Samba\*(Aqs idmap_ad Backend for Winbind
 .SH "DESCRIPTION"
 .PP
-The idmap_ad plugin provides a way for Winbind to read id mappings from an AD server that uses RFC2307/SFU schema extensions\&. This module implements only the "idmap" API, and is READONLY\&. Mappings must be provided in advance by the administrator by adding the posixAccount/posixGroup classes and relative attribute/value pairs to the user and group objects in the AD\&.
+The idmap_ad plugin provides a way for Winbind to read id mappings from an AD server that uses RFC2307/SFU schema extensions\&. This module implements only the "idmap" API, and is READONLY\&. Mappings must be provided in advance by the administrator by adding the uidNumber attributes for users and gidNumber attributes for groups in the AD\&. Winbind will only map users that have a uidNumber and whose primary group have a gidNumber attribute set\&. It is however recommended that all groups in use have gidNumber attributes assigned, otherwise they are not working\&.
 .PP
 Note that the idmap_ad module has changed considerably since Samba versions 3\&.0 and 3\&.2\&. Currently, the
Index: trunk/server/docs/manpages/idmap_adex.8
===================================================================
--- trunk/server/docs/manpages/idmap_adex.8	(revision 857)
+++ trunk/server/docs/manpages/idmap_adex.8	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: idmap_adex
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: System Administration tools
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "IDMAP_ADEX" "8" "10/29/2012" "Samba 3\&.6" "System Administration tools"
+.TH "IDMAP_ADEX" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
@@ -20,5 +29,5 @@
 .\" -----------------------------------------------------------------
 .SH "NAME"
-idmap_adex \- Samba\'s idmap_adex Backend for Winbind
+idmap_adex \- Samba\*(Aqs idmap_adex Backend for Winbind
 .SH "DESCRIPTION"
 .PP
Index: trunk/server/docs/manpages/idmap_autorid.8
===================================================================
--- trunk/server/docs/manpages/idmap_autorid.8	(revision 857)
+++ trunk/server/docs/manpages/idmap_autorid.8	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: idmap_autorid
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: System Administration tools
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "IDMAP_AUTORID" "8" "10/29/2012" "Samba 3\&.6" "System Administration tools"
+.TH "IDMAP_AUTORID" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
@@ -20,5 +29,5 @@
 .\" -----------------------------------------------------------------
 .SH "NAME"
-idmap_autorid \- Samba\'s idmap_autorid Backend for Winbind
+idmap_autorid \- Samba\*(Aqs idmap_autorid Backend for Winbind
 .SH "DESCRIPTION"
 .PP
Index: trunk/server/docs/manpages/idmap_hash.8
===================================================================
--- trunk/server/docs/manpages/idmap_hash.8	(revision 857)
+++ trunk/server/docs/manpages/idmap_hash.8	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: idmap_hash
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: System Administration tools
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "IDMAP_HASH" "8" "10/29/2012" "Samba 3\&.6" "System Administration tools"
+.TH "IDMAP_HASH" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
@@ -20,5 +29,5 @@
 .\" -----------------------------------------------------------------
 .SH "NAME"
-idmap_hash \- Samba\'s idmap_hash Backend for Winbind
+idmap_hash \- Samba\*(Aqs idmap_hash Backend for Winbind
 .SH "DESCRIPTION"
 .PP
Index: trunk/server/docs/manpages/idmap_ldap.8
===================================================================
--- trunk/server/docs/manpages/idmap_ldap.8	(revision 857)
+++ trunk/server/docs/manpages/idmap_ldap.8	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: idmap_ldap
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: System Administration tools
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "IDMAP_LDAP" "8" "10/29/2012" "Samba 3\&.6" "System Administration tools"
+.TH "IDMAP_LDAP" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
@@ -20,5 +29,5 @@
 .\" -----------------------------------------------------------------
 .SH "NAME"
-idmap_ldap \- Samba\'s idmap_ldap Backend for Winbind
+idmap_ldap \- Samba\*(Aqs idmap_ldap Backend for Winbind
 .SH "DESCRIPTION"
 .PP
@@ -50,5 +59,5 @@
 .SH "EXAMPLES"
 .PP
-The following example shows how an ldap directory is used as the default idmap backend\&. It also configures the idmap range and base directory suffix\&. The secret for the ldap_user_dn has to be set with "net idmap secret \'*\' password"\&.
+The following example shows how an ldap directory is used as the default idmap backend\&. It also configures the idmap range and base directory suffix\&. The secret for the ldap_user_dn has to be set with "net idmap secret \*(Aq*\*(Aq password"\&.
 .sp
 .if n \{\
Index: trunk/server/docs/manpages/idmap_nss.8
===================================================================
--- trunk/server/docs/manpages/idmap_nss.8	(revision 857)
+++ trunk/server/docs/manpages/idmap_nss.8	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: idmap_nss
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: System Administration tools
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "IDMAP_NSS" "8" "10/29/2012" "Samba 3\&.6" "System Administration tools"
+.TH "IDMAP_NSS" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
@@ -20,5 +29,5 @@
 .\" -----------------------------------------------------------------
 .SH "NAME"
-idmap_nss \- Samba\'s idmap_nss Backend for Winbind
+idmap_nss \- Samba\*(Aqs idmap_nss Backend for Winbind
 .SH "DESCRIPTION"
 .PP
Index: trunk/server/docs/manpages/idmap_rid.8
===================================================================
--- trunk/server/docs/manpages/idmap_rid.8	(revision 857)
+++ trunk/server/docs/manpages/idmap_rid.8	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: idmap_rid
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: System Administration tools
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "IDMAP_RID" "8" "10/29/2012" "Samba 3\&.6" "System Administration tools"
+.TH "IDMAP_RID" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
@@ -20,5 +29,5 @@
 .\" -----------------------------------------------------------------
 .SH "NAME"
-idmap_rid \- Samba\'s idmap_rid Backend for Winbind
+idmap_rid \- Samba\*(Aqs idmap_rid Backend for Winbind
 .SH "DESCRIPTION"
 .PP
Index: trunk/server/docs/manpages/idmap_tdb.8
===================================================================
--- trunk/server/docs/manpages/idmap_tdb.8	(revision 857)
+++ trunk/server/docs/manpages/idmap_tdb.8	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: idmap_tdb
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: System Administration tools
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "IDMAP_TDB" "8" "10/29/2012" "Samba 3\&.6" "System Administration tools"
+.TH "IDMAP_TDB" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
@@ -20,5 +29,5 @@
 .\" -----------------------------------------------------------------
 .SH "NAME"
-idmap_tdb \- Samba\'s idmap_tdb Backend for Winbind
+idmap_tdb \- Samba\*(Aqs idmap_tdb Backend for Winbind
 .SH "DESCRIPTION"
 .PP
Index: trunk/server/docs/manpages/idmap_tdb2.8
===================================================================
--- trunk/server/docs/manpages/idmap_tdb2.8	(revision 857)
+++ trunk/server/docs/manpages/idmap_tdb2.8	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: idmap_tdb2
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: System Administration tools
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "IDMAP_TDB2" "8" "10/29/2012" "Samba 3\&.6" "System Administration tools"
+.TH "IDMAP_TDB2" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
@@ -20,5 +29,5 @@
 .\" -----------------------------------------------------------------
 .SH "NAME"
-idmap_tdb2 \- Samba\'s idmap_tdb2 Backend for Winbind
+idmap_tdb2 \- Samba\*(Aqs idmap_tdb2 Backend for Winbind
 .SH "DESCRIPTION"
 .PP
Index: trunk/server/docs/manpages/ldbsearch.1
===================================================================
--- trunk/server/docs/manpages/ldbsearch.1	(revision 857)
+++ 	(revision )
@@ -1,76 +1,0 @@
-'\" t
-.\"     Title: ldbsearch
-.\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 06/07/2011
-.\"    Manual: User Commands
-.\"    Source: Samba 3.6
-.\"  Language: English
-.\"
-.TH "LDBSEARCH" "1" "06/07/2011" "Samba 3\&.6" "User Commands"
-.\" -----------------------------------------------------------------
-.\" * set default formatting
-.\" -----------------------------------------------------------------
-.\" disable hyphenation
-.nh
-.\" disable justification (adjust text to left margin only)
-.ad l
-.\" -----------------------------------------------------------------
-.\" * MAIN CONTENT STARTS HERE *
-.\" -----------------------------------------------------------------
-.SH "NAME"
-ldbsearch \- Search for records in a LDB database
-.SH "SYNOPSIS"
-.HP \w'\ 'u
-ldbsearch [\-h] [\-s\ base|one|sub] [\-b\ basedn] [\-i] [\-H\ LDB\-URL] [expression] [attributes]
-.SH "DESCRIPTION"
-.PP
-ldbsearch searches a LDB database for records matching the specified expression (see the ldapsearch(1) manpage for a description of the expression format)\&. For each record, the specified attributes are printed\&.
-.SH "OPTIONS"
-.PP
-\-h
-.RS 4
-Show list of available options\&.
-.RE
-.PP
-\-H <ldb\-url>
-.RS 4
-LDB URL to connect to\&. See ldb(7) for details\&.
-.RE
-.PP
-\-s one|sub|base
-.RS 4
-Search scope to use\&. One\-level, subtree or base\&.
-.RE
-.PP
-\-i
-.RS 4
-Read search expressions from stdin\&.
-.RE
-.PP
-\-b basedn
-.RS 4
-Specify Base DN to use\&.
-.RE
-.SH "ENVIRONMENT"
-.PP
-LDB_URL
-.RS 4
-LDB URL to connect to (can be overrided by using the \-H command\-line option\&.)
-.RE
-.SH "VERSION"
-.PP
-This man page is correct for version 3\&.6 of the Samba suite\&.
-.SH "SEE ALSO"
-.PP
-ldb(7), ldbedit(1)
-.SH "AUTHOR"
-.PP
-ldb was written by
-Andrew Tridgell\&.
-.PP
-If you wish to report a problem or make a suggestion then please see the
-: http://ldb.samba.org/
-web site for current contact and maintainer information\&.
-.PP
-This manpage was written by Jelmer Vernooij\&.
Index: trunk/server/docs/manpages/libsmbclient.7
===================================================================
--- trunk/server/docs/manpages/libsmbclient.7	(revision 857)
+++ trunk/server/docs/manpages/libsmbclient.7	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: libsmbclient
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: 7
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "LIBSMBCLIENT" "7" "10/29/2012" "Samba 3\&.6" "7"
+.TH "LIBSMBCLIENT" "7" "09/18/2013" "Samba 3\&.6" "7"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
@@ -34,5 +43,5 @@
 
 libsmbclient
-is a library toolset that permits applications to manipulate CIFS/SMB network resources using many of the standards POSIX functions available for manipulating local UNIX/Linux files\&. It permits much more than just browsing, files can be opened and read or written, permissions changed, file times modified, attributes and ACL\'s can be manipulated, and so on\&. Of course, its functionality includes all the capabilities commonly called browsing\&.
+is a library toolset that permits applications to manipulate CIFS/SMB network resources using many of the standards POSIX functions available for manipulating local UNIX/Linux files\&. It permits much more than just browsing, files can be opened and read or written, permissions changed, file times modified, attributes and ACL\*(Aqs can be manipulated, and so on\&. Of course, its functionality includes all the capabilities commonly called browsing\&.
 .PP
 
Index: trunk/server/docs/manpages/lmhosts.5
===================================================================
--- trunk/server/docs/manpages/lmhosts.5	(revision 857)
+++ trunk/server/docs/manpages/lmhosts.5	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: lmhosts
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: File Formats and Conventions
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "LMHOSTS" "5" "10/29/2012" "Samba 3\&.6" "File Formats and Conventions"
+.TH "LMHOSTS" "5" "09/18/2013" "Samba 3\&.6" "File Formats and Conventions"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
@@ -41,5 +50,5 @@
 .SH "FILE FORMAT"
 .PP
-It is an ASCII file containing one line for NetBIOS name\&. The two fields on each line are separated from each other by white space\&. Any entry beginning with \'#\' is ignored\&. Each line in the lmhosts file contains the following information:
+It is an ASCII file containing one line for NetBIOS name\&. The two fields on each line are separated from each other by white space\&. Any entry beginning with \*(Aq#\*(Aq is ignored\&. Each line in the lmhosts file contains the following information:
 .sp
 .RS 4
@@ -62,7 +71,7 @@
 .IP \(bu 2.3
 .\}
-NetBIOS Name \- This name format is a maximum fifteen character host name, with an optional trailing \'#\' character followed by the NetBIOS name type as two hexadecimal digits\&.
+NetBIOS Name \- This name format is a maximum fifteen character host name, with an optional trailing \*(Aq#\*(Aq character followed by the NetBIOS name type as two hexadecimal digits\&.
 .sp
-If the trailing \'#\' is omitted then the given IP address will be returned for all names that match the given name, whatever the NetBIOS name type in the lookup\&.
+If the trailing \*(Aq#\*(Aq is omitted then the given IP address will be returned for all names that match the given name, whatever the NetBIOS name type in the lookup\&.
 .RE
 .sp
Index: trunk/server/docs/manpages/log2pcap.1
===================================================================
--- trunk/server/docs/manpages/log2pcap.1	(revision 857)
+++ trunk/server/docs/manpages/log2pcap.1	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: log2pcap
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: User Commands
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "LOG2PCAP" "1" "10/29/2012" "Samba 3\&.6" "User Commands"
+.TH "LOG2PCAP" "1" "09/18/2013" "Samba 3\&.6" "User Commands"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
@@ -104,5 +113,5 @@
 Only SMB data is extracted from the samba logs, no LDAP, NetBIOS lookup or other data\&.
 .PP
-The generated TCP and IP headers don\'t contain a valid checksum\&.
+The generated TCP and IP headers don\*(Aqt contain a valid checksum\&.
 .SH "SEE ALSO"
 .PP
Index: trunk/server/docs/manpages/net.8
===================================================================
--- trunk/server/docs/manpages/net.8	(revision 857)
+++ trunk/server/docs/manpages/net.8	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: net
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: System Administration tools
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "NET" "8" "10/29/2012" "Samba 3\&.6" "System Administration tools"
+.TH "NET" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
@@ -71,5 +80,5 @@
 .RS 4
 This option allows you to override the NetBIOS name that Samba uses for itself\&. This is identical to setting the
-\m[blue]\fB\%smb.conf.5.html#\fR\m[]
+\m[blue]\fBnetbios name\fR\m[]
 parameter in the
 smb\&.conf
@@ -115,5 +124,5 @@
 .sp
 Note that specifying this parameter here will override the
-\m[blue]\fB\%smb.conf.5.html#\fR\m[]
+\m[blue]\fBlog level\fR\m[]
 parameter in the
 smb\&.conf
@@ -153,5 +162,5 @@
 [UPN] (ADS only) set the principalname attribute during the join\&. The default format is host/netbiosname@REALM\&.
 .PP
-[OU] (ADS only) Precreate the computer account in a specific OU\&. The OU string reads from top to bottom without RDNs, and is delimited by a \'/\'\&. Please note that \'\e\' is used for escape by both the shell and ldap, so it may need to be doubled or quadrupled to pass through, and it is not used as a delimiter\&.
+[OU] (ADS only) Precreate the computer account in a specific OU\&. The OU string reads from top to bottom without RDNs, and is delimited by a \*(Aq/\*(Aq\&. Please note that \*(Aq\e\*(Aq is used for escape by both the shell and ldap, so it may need to be doubled or quadrupled to pass through, and it is not used as a delimiter\&.
 .SS "[RPC] OLDJOIN [options]"
 .PP
@@ -348,5 +357,5 @@
 .SS "LOOKUP DC [DOMAIN]"
 .PP
-Give IP\'s of Domain Controllers for specified
+Give IP\*(Aqs of Domain Controllers for specified
 \fI DOMAIN\fR\&. Defaults to local domain\&.
 .SS "LOOKUP MASTER DOMAIN"
@@ -357,5 +366,5 @@
 .SS "CACHE"
 .PP
-Samba uses a general caching interface called \'gencache\'\&. It can be controlled using \'NET CACHE\'\&.
+Samba uses a general caching interface called \*(Aqgencache\*(Aq\&. It can be controlled using \*(AqNET CACHE\*(Aq\&.
 .PP
 All the timeout parameters support the suffixes:
@@ -461,5 +470,5 @@
 .IP \(bu 2.3
 .\}
-type \- Type of the group; either \'domain\', \'local\', or \'builtin\'
+type \- Type of the group; either \*(Aqdomain\*(Aq, \*(Aqlocal\*(Aq, or \*(Aqbuiltin\*(Aq
 .RE
 .sp
@@ -522,5 +531,5 @@
 .SS "MAXRID"
 .PP
-Prints out the highest RID currently in use on the local server (by the active \'passdb backend\')\&.
+Prints out the highest RID currently in use on the local server (by the active \*(Aqpassdb backend\*(Aq)\&.
 .SS "RPC INFO"
 .PP
@@ -539,5 +548,5 @@
 \fIDOMAIN$\fR
 with the account flag
-\fB\'I\'\fR
+\fB\*(AqI\*(Aq\fR
 (interdomain trust account)\&. This is required for incoming trusts to work\&. It makes Samba be a trusted domain of the foreign (trusting) domain\&. Users of the Samba domain will be made available in the foreign domain\&. If the command is used against localhost it has the same effect as
 smbpasswd \-a \-i DOMAIN\&. Please note that both commands expect a appropriate UNIX account\&.
@@ -549,5 +558,5 @@
 .SS "RPC TRUSTDOM ESTABLISH DOMAIN"
 .PP
-Establish a trust relationship to a trusted domain\&. Interdomain account must already be created on the remote PDC\&. This is required for outgoing trusts to work\&. It makes Samba be a trusting domain of a foreign (trusted) domain\&. Users of the foreign domain will be made available in our domain\&. You\'ll need winbind and a working idmap config to make them appear in your system\&.
+Establish a trust relationship to a trusted domain\&. Interdomain account must already be created on the remote PDC\&. This is required for outgoing trusts to work\&. It makes Samba be a trusting domain of a foreign (trusted) domain\&. Users of the foreign domain will be made available in our domain\&. You\*(Aqll need winbind and a working idmap config to make them appear in your system\&.
 .SS "RPC TRUSTDOM REVOKE DOMAIN"
 .PP
@@ -691,8 +700,8 @@
 .SS "RPC RIGHTS"
 .PP
-This subcommand is used to view and manage Samba\'s rights assignments (also referred to as privileges)\&. There are three options currently available:
+This subcommand is used to view and manage Samba\*(Aqs rights assignments (also referred to as privileges)\&. There are three options currently available:
 \fIlist\fR,
 \fIgrant\fR, and
-\fIrevoke\fR\&. More details on Samba\'s privilege model and its use can be found in the Samba\-HOWTO\-Collection\&.
+\fIrevoke\fR\&. More details on Samba\*(Aqs privilege model and its use can be found in the Samba\-HOWTO\-Collection\&.
 .SS "RPC ABORTSHUTDOWN"
 .PP
@@ -762,5 +771,5 @@
 .PP
 Example:
-\fBnet ads search \'(objectCategory=group)\' sAMAccountName\fR
+\fBnet ads search \*(Aq(objectCategory=group)\*(Aq sAMAccountName\fR
 .SS "ADS DN \fIDN\fR \fI(attributes)\fR"
 .PP
@@ -768,5 +777,5 @@
 .PP
 Example:
-\fBnet ads dn \'CN=administrator,CN=Users,DC=my,DC=domain\' SAMAccountName\fR
+\fBnet ads dn \*(AqCN=administrator,CN=Users,DC=my,DC=domain\*(Aq SAMAccountName\fR
 .SS "ADS WORKGROUP"
 .PP
@@ -901,5 +910,5 @@
 \-T|\-\-test
 .RS 4
-Dry run, show what changes would be made but don\'t touch anything\&.
+Dry run, show what changes would be made but don\*(Aqt touch anything\&.
 .RE
 .PP
@@ -984,5 +993,5 @@
 Get info on user defined shares owned by the current user matching the given pattern, or all users\&.
 .PP
-net usershare info on its own dumps out info on the user defined shares that were created by the current user, or restricts them to share names that match the given wildcard pattern (\'*\' matches one or more characters, \'?\' matches only one character)\&. If the \'\-l\' or \'\-\-long\' option is also given, it prints out info on user defined shares created by other users\&.
+net usershare info on its own dumps out info on the user defined shares that were created by the current user, or restricts them to share names that match the given wildcard pattern (\*(Aq*\*(Aq matches one or more characters, \*(Aq?\*(Aq matches only one character)\&. If the \*(Aq\-l\*(Aq or \*(Aq\-\-long\*(Aq option is also given, it prints out info on user defined shares created by other users\&.
 .PP
 The information given about a share looks like: [foobar] path=/home/jeremy comment=testme usershare_acl=Everyone:F guest_ok=n And is a list of the current settings of the user defined share that can be modified by the "net usershare add" command\&.
@@ -991,5 +1000,5 @@
 List all the user defined shares owned by the current user matching the given pattern, or all users\&.
 .PP
-net usershare list on its own list out the names of the user defined shares that were created by the current user, or restricts the list to share names that match the given wildcard pattern (\'*\' matches one or more characters, \'?\' matches only one character)\&. If the \'\-l\' or \'\-\-long\' option is also given, it includes the names of user defined shares created by other users\&.
+net usershare list on its own list out the names of the user defined shares that were created by the current user, or restricts the list to share names that match the given wildcard pattern (\*(Aq*\*(Aq matches one or more characters, \*(Aq?\*(Aq matches only one character)\&. If the \*(Aq\-l\*(Aq or \*(Aq\-\-long\*(Aq option is also given, it includes the names of user defined shares created by other users\&.
 .SS "CONF"
 .PP
@@ -1100,5 +1109,5 @@
 .SS "REGISTRY"
 .PP
-Manipulate Samba\'s registry\&.
+Manipulate Samba\*(Aqs registry\&.
 .PP
 The registry commands are:
Index: trunk/server/docs/manpages/nmbd.8
===================================================================
--- trunk/server/docs/manpages/nmbd.8	(revision 857)
+++ trunk/server/docs/manpages/nmbd.8	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: nmbd
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: System Administration tools
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "NMBD" "8" "10/29/2012" "Samba 3\&.6" "System Administration tools"
+.TH "NMBD" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
@@ -77,5 +86,5 @@
 and
 svscan
-from Daniel J\&. Bernstein\'s
+from Daniel J\&. Bernstein\*(Aqs
 daemontools
 package, or the AIX process monitor\&.
@@ -135,5 +144,5 @@
 .sp
 Note that specifying this parameter here will override the
-\m[blue]\fB\%smb.conf.5.html#\fR\m[]
+\m[blue]\fBlog level\fR\m[]
 parameter in the
 smb\&.conf
@@ -164,5 +173,5 @@
 UDP port number is a positive integer value\&. This option changes the default UDP port number (normally 137) that
 nmbd
-responds to name queries on\&. Don\'t use this option unless you are an expert, in which case you won\'t need help!
+responds to name queries on\&. Don\*(Aqt use this option unless you are an expert, in which case you won\*(Aqt need help!
 .RE
 .SH "FILES"
@@ -262,5 +271,5 @@
 \fBsmbclient\fR(1),
 \fBtestparm\fR(1),
-\fBtestprns\fR(1), and the Internet RFC\'s
+\fBtestprns\fR(1), and the Internet RFC\*(Aqs
 rfc1001\&.txt,
 rfc1002\&.txt\&. In addition the CIFS (formerly SMB) specification is available as a link from the Web page
Index: trunk/server/docs/manpages/nmblookup.1
===================================================================
--- trunk/server/docs/manpages/nmblookup.1	(revision 857)
+++ trunk/server/docs/manpages/nmblookup.1	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: nmblookup
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: User Commands
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "NMBLOOKUP" "1" "10/29/2012" "Samba 3\&.6" "User Commands"
+.TH "NMBLOOKUP" "1" "09/18/2013" "Samba 3\&.6" "User Commands"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
@@ -42,5 +51,5 @@
 \fI name\fR
 is "\-" then it does a lookup on the special name
-\fB__MSBROWSE__\fR\&. Please note that in order to use the name "\-", you need to make sure "\-" isn\'t parsed as an argument, e\&.g\&. use :
+\fB__MSBROWSE__\fR\&. Please note that in order to use the name "\-", you need to make sure "\-" isn\*(Aqt parsed as an argument, e\&.g\&. use :
 \fBnmblookup \-M \-\- \-\fR\&.
 .RE
@@ -73,5 +82,5 @@
 .RS 4
 This option allows you to override the NetBIOS name that Samba uses for itself\&. This is identical to setting the
-\m[blue]\fB\%smb.conf.5.html#\fR\m[]
+\m[blue]\fBnetbios name\fR\m[]
 parameter in the
 smb\&.conf
@@ -133,5 +142,5 @@
 .sp
 Note that specifying this parameter here will override the
-\m[blue]\fB\%smb.conf.5.html#\fR\m[]
+\m[blue]\fBlog level\fR\m[]
 parameter in the
 smb\&.conf
@@ -174,5 +183,5 @@
 name
 .RS 4
-This is the NetBIOS name being queried\&. Depending upon the previous options this may be a NetBIOS name or IP address\&. If a NetBIOS name then the different name types may be specified by appending \'#<type>\' to the name\&. This name may also be \'*\', which will return all registered names within a broadcast area\&.
+This is the NetBIOS name being queried\&. Depending upon the previous options this may be a NetBIOS name or IP address\&. If a NetBIOS name then the different name types may be specified by appending \*(Aq#<type>\*(Aq to the name\&. This name may also be \*(Aq*\*(Aq, which will return all registered names within a broadcast area\&.
 .RE
 .SH "EXAMPLES"
@@ -185,9 +194,9 @@
 must be called like this:
 .PP
-nmblookup \-U server \-R \'name\'
+nmblookup \-U server \-R \*(Aqname\*(Aq
 .PP
 For example, running :
 .PP
-nmblookup \-U samba\&.org \-R \'IRIX#1B\'
+nmblookup \-U samba\&.org \-R \*(AqIRIX#1B\*(Aq
 .PP
 would query the WINS server samba\&.org for the domain master browser (1B name type) for the IRIX workgroup\&.
Index: trunk/server/docs/manpages/ntlm_auth.1
===================================================================
--- trunk/server/docs/manpages/ntlm_auth.1	(revision 857)
+++ trunk/server/docs/manpages/ntlm_auth.1	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: ntlm_auth
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: User Commands
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "NTLM_AUTH" "1" "10/29/2012" "Samba 3\&.6" "User Commands"
+.TH "NTLM_AUTH" "1" "09/18/2013" "Samba 3\&.6" "User Commands"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
@@ -20,5 +29,5 @@
 .\" -----------------------------------------------------------------
 .SH "NAME"
-ntlm_auth \- tool to allow external access to Winbind\'s NTLM authentication function
+ntlm_auth \- tool to allow external access to Winbind\*(Aqs NTLM authentication function
 .SH "SYNOPSIS"
 .HP \w'\ 'u
@@ -55,15 +64,15 @@
 squid\-2\&.4\-basic
 .RS 4
-Server\-side helper for use with Squid 2\&.4\'s basic (plaintext) authentication\&.
+Server\-side helper for use with Squid 2\&.4\*(Aqs basic (plaintext) authentication\&.
 .RE
 .PP
 squid\-2\&.5\-basic
 .RS 4
-Server\-side helper for use with Squid 2\&.5\'s basic (plaintext) authentication\&.
+Server\-side helper for use with Squid 2\&.5\*(Aqs basic (plaintext) authentication\&.
 .RE
 .PP
 squid\-2\&.5\-ntlmssp
 .RS 4
-Server\-side helper for use with Squid 2\&.5\'s NTLMSSP authentication\&.
+Server\-side helper for use with Squid 2\&.5\*(Aqs NTLMSSP authentication\&.
 .sp
 Requires access to the directory
@@ -78,5 +87,5 @@
 ntlmssp\-client\-1
 .RS 4
-Client\-side helper for use with arbitrary external programs that may wish to use Samba\'s NTLMSSP authentication knowledge\&.
+Client\-side helper for use with arbitrary external programs that may wish to use Samba\*(Aqs NTLMSSP authentication knowledge\&.
 .sp
 This helper is a client, and as such may be run by any user\&. The protocol used is effectively the reverse of the previous protocol\&. A
@@ -103,5 +112,5 @@
 ntlm\-server\-1
 .RS 4
-Server\-side helper protocol, intended for use by a RADIUS server or the \'winbind\' plugin for pppd, for the provision of MSCHAP and MSCHAPv2 authentication\&.
+Server\-side helper protocol, intended for use by a RADIUS server or the \*(Aqwinbind\*(Aq plugin for pppd, for the provision of MSCHAP and MSCHAPv2 authentication\&.
 .sp
 This protocol consists of lines in the form:
@@ -116,26 +125,41 @@
 Username
 .RS 4
-The username, expected to be in Samba\'s
+The username, expected to be in Samba\*(Aqs
 \m[blue]\fBunix charset\fR\m[]\&.
-.PP \fBExample\ \&1.\ \&\fR Username: bob
-.PP \fBExample\ \&2.\ \&\fR Username:: Ym9i
+.PP
+Examples:
+.RS 4
+Username: bob
+.sp
+Username:: Ym9i
+.RE
 .RE
 .PP
 NT\-Domain
 .RS 4
-The user\'s domain, expected to be in Samba\'s
+The user\*(Aqs domain, expected to be in Samba\*(Aqs
 \m[blue]\fBunix charset\fR\m[]\&.
-.PP \fBExample\ \&3.\ \&\fR NT\-Domain: WORKGROUP
-.PP \fBExample\ \&4.\ \&\fR NT\-Domain:: V09SS0dST1VQ
+.PP
+Examples:
+.RS 4
+NT\-Domain: WORKGROUP
+.sp
+NT\-Domain:: V09SS0dST1VQ
+.RE
 .RE
 .PP
 Full\-Username
 .RS 4
-The fully qualified username, expected to be in Samba\'s
+The fully qualified username, expected to be in Samba\*(Aqs
 \m[blue]\fBunix charset\fR\m[]
 and qualified with the
 \m[blue]\fBwinbind separator\fR\m[]\&.
-.PP \fBExample\ \&5.\ \&\fR Full\-Username: WORKGROUP\ebob
-.PP \fBExample\ \&6.\ \&\fR Full\-Username:: V09SS0dST1VQYm9i
+.PP
+Examples:
+.RS 4
+Full\-Username: WORKGROUP\ebob
+.sp
+Full\-Username:: V09SS0dST1VQYm9i
+.RE
 .RE
 .PP
@@ -145,5 +169,9 @@
 LANMAN Challenge
 value, generated randomly by the server, or (in cases such as MSCHAPv2) generated in some way by both the server and the client\&.
-.PP \fBExample\ \&7.\ \&\fR LANMAN\-Challenge: 0102030405060708
+.PP
+Examples:
+.RS 4
+LANMAN\-Challenge: 0102030405060708
+.RE
 .RE
 .PP
@@ -152,7 +180,11 @@
 The 24 byte
 LANMAN Response
-value, calculated from the user\'s password and the supplied
+value, calculated from the user\*(Aqs password and the supplied
 LANMAN Challenge\&. Typically, this is provided over the network by a client wishing to authenticate\&.
-.PP \fBExample\ \&8.\ \&\fR LANMAN\-Response: 0102030405060708090A0B0C0D0E0F101112131415161718
+.PP
+Examples:
+.RS 4
+LANMAN\-Response: 0102030405060708090A0B0C0D0E0F101112131415161718
+.RE
 .RE
 .PP
@@ -161,14 +193,23 @@
 The >= 24 byte
 NT Response
-calculated from the user\'s password and the supplied
+calculated from the user\*(Aqs password and the supplied
 LANMAN Challenge\&. Typically, this is provided over the network by a client wishing to authenticate\&.
-.PP \fBExample\ \&9.\ \&\fR NT\-Response: 0102030405060708090A0B0C0D0E0F101112131415161718
+.PP
+Examples:
+.RS 4
+NT\-Response: 0102030405060708090A0B0C0D0E0F10111213141516171
+.RE
 .RE
 .PP
 Password
 .RS 4
-The user\'s password\&. This would be provided by a network client, if the helper is being used in a legacy situation that exposes plaintext passwords in this way\&.
-.PP \fBExample\ \&10.\ \&\fR Password: samba2
-.PP \fBExample\ \&11.\ \&\fR Password:: c2FtYmEy
+The user\*(Aqs password\&. This would be provided by a network client, if the helper is being used in a legacy situation that exposes plaintext passwords in this way\&.
+.PP
+Examples:
+.RS 4
+Password: samba2
+.sp
+Password:: c2FtYmEy
+.RE
 .RE
 .PP
@@ -176,5 +217,9 @@
 .RS 4
 Upon successful authenticaiton, return the user session key associated with the login\&.
-.PP \fBExample\ \&12.\ \&\fR Request\-User\-Session\-Key: Yes
+.PP
+Examples:
+.RS 4
+Request\-User\-Session\-Key: Yes
+.RE
 .RE
 .PP
@@ -182,6 +227,12 @@
 .RS 4
 Upon successful authenticaiton, return the LANMAN session key associated with the login\&.
-.PP \fBExample\ \&13.\ \&\fR Request\-LanMan\-Session\-Key: Yes
-.RE
+.PP
+Examples:
+.RS 4
+Request\-LanMan\-Session\-Key: Yes
+.RE
+.RE
+.RE
+.sp
 .if n \{\
 .sp
@@ -196,9 +247,6 @@
 .ps -1
 .br
-Implementers should take care to base64 encode
-		any data (such as usernames/passwords) that may contain malicous user data, such as
-		a newline\&.  They may also need to decode strings from
-		the helper, which likewise may have been base64 encoded\&..sp .5v
-.RE
+Implementers should take care to base64 encode any data (such as usernames/passwords) that may contain malicous user data, such as a newline\&. They may also need to decode strings from the helper, which likewise may have been base64 encoded\&.
+.sp .5v
 .RE
 .RE
@@ -236,5 +284,5 @@
 \-\-password=PASSWORD
 .RS 4
-User\'s plaintext password
+User\*(Aqs plaintext password
 .sp
 If not specified on the command line, this is prompted for when required\&.
@@ -275,5 +323,5 @@
 .sp
 Note that specifying this parameter here will override the
-\m[blue]\fB\%smb.conf.5.html#\fR\m[]
+\m[blue]\fBlog level\fR\m[]
 parameter in the
 smb\&.conf
@@ -350,6 +398,6 @@
 .\}
 .nf
-auth_param ntlm program ntlm_auth \-\-helper\-protocol=squid\-2\&.5\-ntlmssp \-\-require\-membership\-of=\'WORKGROUP\eDomain Users\'
-auth_param basic program ntlm_auth \-\-helper\-protocol=squid\-2\&.5\-basic \-\-require\-membership\-of=\'WORKGROUP\eDomain Users\'
+auth_param ntlm program ntlm_auth \-\-helper\-protocol=squid\-2\&.5\-ntlmssp \-\-require\-membership\-of=\*(AqWORKGROUP\eDomain Users\*(Aq
+auth_param basic program ntlm_auth \-\-helper\-protocol=squid\-2\&.5\-basic \-\-require\-membership\-of=\*(AqWORKGROUP\eDomain Users\*(Aq
 .fi
 .if n \{\
@@ -358,5 +406,5 @@
 .SH "TROUBLESHOOTING"
 .PP
-If you\'re experiencing problems with authenticating Internet Explorer running under MS Windows 9X or Millennium Edition against ntlm_auth\'s NTLMSSP authentication helper (\-\-helper\-protocol=squid\-2\&.5\-ntlmssp), then please read
+If you\*(Aqre experiencing problems with authenticating Internet Explorer running under MS Windows 9X or Millennium Edition against ntlm_auth\*(Aqs NTLMSSP authentication helper (\-\-helper\-protocol=squid\-2\&.5\-ntlmssp), then please read
 the Microsoft Knowledge Base article #239869 and follow instructions described there\&.
 .SH "VERSION"
Index: trunk/server/docs/manpages/pam_winbind.8
===================================================================
--- trunk/server/docs/manpages/pam_winbind.8	(revision 857)
+++ trunk/server/docs/manpages/pam_winbind.8	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: pam_winbind
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: 8
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "PAM_WINBIND" "8" "10/29/2012" "Samba 3\&.6" "8"
+.TH "PAM_WINBIND" "8" "09/18/2013" "Samba 3\&.6" "8"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
Index: trunk/server/docs/manpages/pam_winbind.conf.5
===================================================================
--- trunk/server/docs/manpages/pam_winbind.conf.5	(revision 857)
+++ trunk/server/docs/manpages/pam_winbind.conf.5	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: pam_winbind.conf
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: 5
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "PAM_WINBIND\&.CONF" "5" "10/29/2012" "Samba 3\&.6" "5"
+.TH "PAM_WINBIND\&.CONF" "5" "09/18/2013" "Samba 3\&.6" "5"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
Index: trunk/server/docs/manpages/pdbedit.8
===================================================================
--- trunk/server/docs/manpages/pdbedit.8	(revision 857)
+++ trunk/server/docs/manpages/pdbedit.8	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: pdbedit
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: System Administration tools
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "PDBEDIT" "8" "10/29/2012" "Samba 3\&.6" "System Administration tools"
+.TH "PDBEDIT" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
@@ -39,5 +48,5 @@
 \-L|\-\-list
 .RS 4
-This option lists all the user accounts present in the users database\&. This option prints a list of user/uid pairs separated by the \':\' character\&.
+This option lists all the user accounts present in the users database\&. This option prints a list of user/uid pairs separated by the \*(Aq:\*(Aq character\&.
 .sp
 Example:
@@ -129,5 +138,5 @@
 \-f|\-\-fullname fullname
 .RS 4
-This option can be used while adding or modifying a user account\&. It will specify the user\'s full name\&.
+This option can be used while adding or modifying a user account\&. It will specify the user\*(Aqs full name\&.
 .sp
 Example:
@@ -137,5 +146,5 @@
 \-h|\-\-homedir homedir
 .RS 4
-This option can be used while adding or modifying a user account\&. It will specify the user\'s home directory network path\&.
+This option can be used while adding or modifying a user account\&. It will specify the user\*(Aqs home directory network path\&.
 .sp
 Example:
@@ -153,5 +162,5 @@
 \-S|\-\-script script
 .RS 4
-This option can be used while adding or modifying a user account\&. It will specify the user\'s logon script path\&.
+This option can be used while adding or modifying a user account\&. It will specify the user\*(Aqs logon script path\&.
 .sp
 Example:
@@ -161,5 +170,5 @@
 \-p|\-\-profile profile
 .RS 4
-This option can be used while adding or modifying a user account\&. It will specify the user\'s profile directory\&.
+This option can be used while adding or modifying a user account\&. It will specify the user\*(Aqs profile directory\&.
 .sp
 Example:
@@ -167,7 +176,7 @@
 .RE
 .PP
-\-M|\'\-\-machine SID\' SID|rid
-.RS 4
-This option can be used while adding or modifying a machine account\&. It will specify the machines\' new primary group SID (Security Identifier) or rid\&.
+\-M|\*(Aq\-\-machine SID\*(Aq SID|rid
+.RS 4
+This option can be used while adding or modifying a machine account\&. It will specify the machines\*(Aq new primary group SID (Security Identifier) or rid\&.
 .sp
 Example:
@@ -175,7 +184,7 @@
 .RE
 .PP
-\-U|\'\-\-user SID\' SID|rid
-.RS 4
-This option can be used while adding or modifying a user account\&. It will specify the users\' new SID (Security Identifier) or rid\&.
+\-U|\*(Aq\-\-user SID\*(Aq SID|rid
+.RS 4
+This option can be used while adding or modifying a user account\&. It will specify the users\*(Aq new SID (Security Identifier) or rid\&.
 .sp
 Example:
@@ -183,5 +192,5 @@
 .sp
 Example:
-\'\-\-user SID\' S\-1\-5\-21\-2447931902\-1787058256\-3961074038\-5004
+\*(Aq\-\-user SID\*(Aq S\-1\-5\-21\-2447931902\-1787058256\-3961074038\-5004
 .sp
 Example:
@@ -189,10 +198,10 @@
 .sp
 Example:
-\'\-\-user SID\' 5004
+\*(Aq\-\-user SID\*(Aq 5004
 .RE
 .PP
 \-c|\-\-account\-control account\-control
 .RS 4
-This option can be used while adding or modifying a user account\&. It will specify the users\' account control property\&. Possible flags are listed below\&.
+This option can be used while adding or modifying a user account\&. It will specify the users\*(Aq account control property\&. Possible flags are listed below\&.
 .sp
 
@@ -368,5 +377,5 @@
 .sp
 If you wish to add a user and synchronise the password that immediately, use
-smbpasswd\'s
+smbpasswd\*(Aqs
 \fB\-a\fR
 option\&.
@@ -504,5 +513,5 @@
 \-N|\-\-account\-desc description
 .RS 4
-This option can be used while adding or modifying a user account\&. It will specify the user\'s description field\&.
+This option can be used while adding or modifying a user account\&. It will specify the user\*(Aqs description field\&.
 .sp
 Example:
@@ -512,5 +521,5 @@
 \-Z|\-\-logon\-hours\-reset
 .RS 4
-This option can be used while adding or modifying a user account\&. It will reset the user\'s allowed logon hours\&. A user may login at any time afterwards\&.
+This option can be used while adding or modifying a user account\&. It will reset the user\*(Aqs allowed logon hours\&. A user may login at any time afterwards\&.
 .sp
 Example:
@@ -536,5 +545,5 @@
 \-I|\-\-domain
 .RS 4
-This option can be used while adding or modifying a user account\&. It will specify the user\'s domain field\&.
+This option can be used while adding or modifying a user account\&. It will specify the user\*(Aqs domain field\&.
 .sp
 Example:
@@ -562,5 +571,5 @@
 .sp
 Note that specifying this parameter here will override the
-\m[blue]\fB\%smb.conf.5.html#\fR\m[]
+\m[blue]\fBlog level\fR\m[]
 parameter in the
 smb\&.conf
Index: trunk/server/docs/manpages/profiles.1
===================================================================
--- trunk/server/docs/manpages/profiles.1	(revision 857)
+++ trunk/server/docs/manpages/profiles.1	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: profiles
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: User Commands
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "PROFILES" "1" "10/29/2012" "Samba 3\&.6" "User Commands"
+.TH "PROFILES" "1" "09/18/2013" "Samba 3\&.6" "User Commands"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
Index: trunk/server/docs/manpages/rpcclient.1
===================================================================
--- trunk/server/docs/manpages/rpcclient.1	(revision 857)
+++ trunk/server/docs/manpages/rpcclient.1	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: rpcclient
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: User Commands
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "RPCCLIENT" "1" "10/29/2012" "Samba 3\&.6" "User Commands"
+.TH "RPCCLIENT" "1" "09/18/2013" "Samba 3\&.6" "User Commands"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
@@ -74,5 +83,5 @@
 .sp
 Note that specifying this parameter here will override the
-\m[blue]\fB\%smb.conf.5.html#\fR\m[]
+\m[blue]\fBlog level\fR\m[]
 parameter in the
 smb\&.conf
@@ -163,5 +172,5 @@
 .RS 4
 This option allows you to override the NetBIOS name that Samba uses for itself\&. This is identical to setting the
-\m[blue]\fB\%smb.conf.5.html#\fR\m[]
+\m[blue]\fBnetbios name\fR\m[]
 parameter in the
 smb\&.conf
@@ -468,5 +477,5 @@
 deldriver <driver>
 .RS 4
-Delete the specified printer driver for all architectures\&. This does not delete the actual driver files from the server, only the entry from the server\'s list of drivers\&.
+Delete the specified printer driver for all architectures\&. This does not delete the actual driver files from the server, only the entry from the server\*(Aqs list of drivers\&.
 .RE
 .PP
@@ -653,10 +662,10 @@
 is designed as a developer testing tool and may not be robust in certain areas (such as command line parsing)\&. It has been known to generate a core dump upon failures when invalid parameters where passed to the interpreter\&.
 .PP
-From Luke Leighton\'s original rpcclient man page:
+From Luke Leighton\*(Aqs original rpcclient man page:
 .PP
 \fIWARNING!\fR
-The MSRPC over SMB code has been developed from examining Network traces\&. No documentation is available from the original creators (Microsoft) on how MSRPC over SMB works, or how the individual MSRPC services work\&. Microsoft\'s implementation of these services has been demonstrated (and reported) to be\&.\&.\&. a bit flaky in places\&.
-.PP
-The development of Samba\'s implementation is also a bit rough, and as more of the services are understood, it can even result in versions of
+The MSRPC over SMB code has been developed from examining Network traces\&. No documentation is available from the original creators (Microsoft) on how MSRPC over SMB works, or how the individual MSRPC services work\&. Microsoft\*(Aqs implementation of these services has been demonstrated (and reported) to be\&.\&.\&. a bit flaky in places\&.
+.PP
+The development of Samba\*(Aqs implementation is also a bit rough, and as more of the services are understood, it can even result in versions of
 \fBsmbd\fR(8)
 and
Index: trunk/server/docs/manpages/samba.7
===================================================================
--- trunk/server/docs/manpages/samba.7	(revision 857)
+++ trunk/server/docs/manpages/samba.7	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: samba
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: Miscellanea
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "SAMBA" "7" "10/29/2012" "Samba 3\&.6" "Miscellanea"
+.TH "SAMBA" "7" "09/18/2013" "Samba 3\&.6" "Miscellanea"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
@@ -56,5 +65,5 @@
 The
 testparm
-utility is a simple syntax checker for Samba\'s
+utility is a simple syntax checker for Samba\*(Aqs
 \fBsmb.conf\fR(5)
 configuration file\&.
@@ -96,5 +105,5 @@
 The
 smbcacls
-command is a tool to set ACL\'s on remote CIFS servers\&.
+command is a tool to set ACL\*(Aqs on remote CIFS servers\&.
 .RE
 .PP
@@ -213,9 +222,9 @@
 .RS 4
 smbcquotas
-is a tool that can set remote QUOTA\'s on server with NTFS 5\&.
+is a tool that can set remote QUOTA\*(Aqs on server with NTFS 5\&.
 .RE
 .SH "COMPONENTS"
 .PP
-The Samba suite is made up of several components\&. Each component is described in a separate manual page\&. It is strongly recommended that you read the documentation that comes with Samba and the manual pages of those components that you use\&. If the manual pages and documents aren\'t clear enough then please visit
+The Samba suite is made up of several components\&. Each component is described in a separate manual page\&. It is strongly recommended that you read the documentation that comes with Samba and the manual pages of those components that you use\&. If the manual pages and documents aren\*(Aqt clear enough then please visit
 http://devel\&.samba\&.org
 for information on how to file a bug report or submit a patch\&.
Index: trunk/server/docs/manpages/sharesec.1
===================================================================
--- trunk/server/docs/manpages/sharesec.1	(revision 857)
+++ trunk/server/docs/manpages/sharesec.1	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: sharesec
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: User Commands
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "SHARESEC" "1" "10/29/2012" "Samba 3\&.6" "User Commands"
+.TH "SHARESEC" "1" "09/18/2013" "Samba 3\&.6" "User Commands"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
@@ -89,5 +98,5 @@
 .sp
 Note that specifying this parameter here will override the
-\m[blue]\fB\%smb.conf.5.html#\fR\m[]
+\m[blue]\fBlog level\fR\m[]
 parameter in the
 smb\&.conf
@@ -226,5 +235,5 @@
 .\}
 \fIREAD\fR
-\- Equivalent to \'RX\' permissions
+\- Equivalent to \*(AqRX\*(Aq permissions
 .RE
 .sp
@@ -238,5 +247,5 @@
 .\}
 \fICHANGE\fR
-\- Equivalent to \'RXWD\' permissions
+\- Equivalent to \*(AqRXWD\*(Aq permissions
 .RE
 .sp
@@ -250,5 +259,5 @@
 .\}
 \fIFULL\fR
-\- Equivalent to \'RWXDPO\' permissions
+\- Equivalent to \*(AqRWXDPO\*(Aq permissions
 .RE
 .SH "EXIT STATUS"
@@ -260,5 +269,5 @@
 If the operation succeeded, sharesec returns and exit status of 0\&. If
 sharesec
-couldn\'t connect to the specified server, or there was an error getting or setting the ACLs, an exit status of 1 is returned\&. If there was an error parsing any command line arguments, an exit status of 2 is returned\&.
+couldn\*(Aqt connect to the specified server, or there was an error getting or setting the ACLs, an exit status of 1 is returned\&. If there was an error parsing any command line arguments, an exit status of 2 is returned\&.
 .SH "EXAMPLES"
 .PP
Index: trunk/server/docs/manpages/smb.conf.5
===================================================================
--- trunk/server/docs/manpages/smb.conf.5	(revision 857)
+++ trunk/server/docs/manpages/smb.conf.5	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: smb.conf
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: File Formats and Conventions
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "SMB\&.CONF" "5" "10/29/2012" "Samba 3\&.6" "File Formats and Conventions"
+.TH "SMB\&.CONF" "5" "09/18/2013" "Samba 3\&.6" "File Formats and Conventions"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
@@ -148,5 +157,5 @@
 .IP \(bu 2.3
 .\}
-If no path was given, the path is set to the user\'s home directory\&.
+If no path was given, the path is set to the user\*(Aqs home directory\&.
 .RE
 .sp
@@ -200,5 +209,5 @@
 This section works like [homes], but for printers\&.
 .PP
-If a [printers] section occurs in the configuration file, users are able to connect to any printer specified in the local host\'s printcap file\&.
+If a [printers] section occurs in the configuration file, users are able to connect to any printer specified in the local host\*(Aqs printcap file\&.
 .PP
 When a connection request is made, the existing sections are scanned\&. If a match is found, it is used\&. If no match is found, but a [homes] section exists, it is used as described above\&. Otherwise, the requested section name is treated as a printer name and the appropriate printcap file is scanned to see if the requested section name is a valid printer share name\&. If a match is found, a new printer share is created by cloning the [printers] section\&.
@@ -258,5 +267,5 @@
 .\}
 .PP
-All aliases given for a printer in the printcap file are legitimate printer names as far as the server is concerned\&. If your printing subsystem doesn\'t work like that, you will have to set up a pseudo\-printcap\&. This is a file consisting of one or more lines like this:
+All aliases given for a printer in the printcap file are legitimate printer names as far as the server is concerned\&. If your printing subsystem doesn\*(Aqt work like that, you will have to set up a pseudo\-printcap\&. This is a file consisting of one or more lines like this:
 .sp
 .if n \{\
@@ -533,5 +542,5 @@
 %p
 .RS 4
-the path of the service\'s home directory, obtained from your NIS auto\&.map entry\&. The NIS auto\&.map entry is split up as
+the path of the service\*(Aqs home directory, obtained from your NIS auto\&.map entry\&. The NIS auto\&.map entry is split up as
 %N:%p\&.
 .RE
@@ -544,5 +553,5 @@
 Samba supports
 name mangling
-so that DOS and Windows clients can use files that don\'t conform to the 8\&.3 format\&. It can also be set to adjust the case of 8\&.3 format filenames\&.
+so that DOS and Windows clients can use files that don\*(Aqt conform to the 8\&.3 format\&. It can also be set to adjust the case of 8\&.3 format filenames\&.
 .PP
 There are several options that control the way mangling is performed, and they are grouped here rather than listed separately\&. For the defaults look at the output of the testparm program\&.
@@ -554,5 +563,5 @@
 case sensitive = yes/no/auto
 .RS 4
-controls whether filenames are case sensitive\&. If they aren\'t, Samba must do a filename search and match on passed names\&. The default setting of auto allows clients that support case sensitive filenames (Linux CIFSVFS and smbclient 3\&.0\&.5 and above currently) to tell the Samba server on a per\-packet basis that they wish to access the file system in a case\-sensitive manner (to support UNIX case sensitive semantics)\&. No Windows or DOS system supports case\-sensitive filename so setting this option to auto is that same as setting it to no for them\&. Default
+controls whether filenames are case sensitive\&. If they aren\*(Aqt, Samba must do a filename search and match on passed names\&. The default setting of auto allows clients that support case sensitive filenames (Linux CIFSVFS and smbclient 3\&.0\&.5 and above currently) to tell the Samba server on a per\-packet basis that they wish to access the file system in a case\-sensitive manner (to support UNIX case sensitive semantics)\&. No Windows or DOS system supports case\-sensitive filename so setting this option to auto is that same as setting it to no for them\&. Default
 \fIauto\fR\&.
 .RE
@@ -560,5 +569,5 @@
 default case = upper/lower
 .RS 4
-controls what the default case is for new filenames (ie\&. files that don\'t currently exist in the filesystem)\&. Default
+controls what the default case is for new filenames (ie\&. files that don\*(Aqt currently exist in the filesystem)\&. Default
 \fIlower\fR\&. IMPORTANT NOTE: As part of the optimizations for directories containing large numbers of files, the following special case applies\&. If the options
 \m[blue]\fBcase sensitive = yes\fR\m[],
@@ -572,5 +581,5 @@
 preserve case = yes/no
 .RS 4
-controls whether new files (ie\&. files that don\'t currently exist in the filesystem) are created with the case that the client passes, or if they are forced to be the
+controls whether new files (ie\&. files that don\*(Aqt currently exist in the filesystem) are created with the case that the client passes, or if they are forced to be the
 default
 case\&. Default
@@ -580,5 +589,5 @@
 short preserve case = yes/no
 .RS 4
-controls if new files (ie\&. files that don\'t currently exist in the filesystem) which conform to 8\&.3 syntax, that is all in upper case and of suitable length, are created upper case, or if they are forced to be the
+controls if new files (ie\&. files that don\*(Aqt currently exist in the filesystem) which conform to 8\&.3 syntax, that is all in upper case and of suitable length, are created upper case, or if they are forced to be the
 default
 case\&. This option can be used with
@@ -605,5 +614,5 @@
 .IP "  1." 4.2
 .\}
-If the client has passed a username/password pair and that username/password pair is validated by the UNIX system\'s password programs, the connection is made as that username\&. This includes the
+If the client has passed a username/password pair and that username/password pair is validated by the UNIX system\*(Aqs password programs, the connection is made as that username\&. This includes the
 \e\eserver\eservice%\fIusername\fR
 method of passing a username\&.
@@ -629,5 +638,5 @@
 .IP "  3." 4.2
 .\}
-The client\'s NetBIOS name and any previously used usernames are checked against the supplied password\&. If they match, the connection is allowed as the corresponding user\&.
+The client\*(Aqs NetBIOS name and any previously used usernames are checked against the supplied password\&. If they match, the connection is allowed as the corresponding user\&.
 .RE
 .sp
@@ -655,5 +664,5 @@
 field is given in the
 smb\&.conf
-file for the service and the client has supplied a password, and that password matches (according to the UNIX system\'s password checking) with one of the usernames from the
+file for the service and the client has supplied a password, and that password matches (according to the UNIX system\*(Aqs password checking) with one of the usernames from the
 user =
 field, the connection is made as the username in the
@@ -787,7 +796,7 @@
 .RS 4
 This boolean parameter controls what
-\fBsmbd\fR(8)does on receiving a protocol request of "open for delete" from a Windows client\&. If a Windows client doesn\'t have permissions to delete a file then they expect this to be denied at open time\&. POSIX systems normally only detect restrictions on delete by actually attempting to delete the file or directory\&. As Windows clients can (and do) "back out" a delete request by unsetting the "delete on close" bit Samba cannot delete the file immediately on "open for delete" request as we cannot restore such a deleted file\&. With this parameter set to true (the default) then smbd checks the file system permissions directly on "open for delete" and denies the request without actually deleting the file if the file system permissions would seem to deny it\&. This is not perfect, as it\'s possible a user could have deleted a file without Samba being able to check the permissions correctly, but it is close enough to Windows semantics for mostly correct behaviour\&. Samba will correctly check POSIX ACL semantics in this case\&.
-.sp
-If this parameter is set to "false" Samba doesn\'t check permissions on "open for delete" and allows the open\&. If the user doesn\'t have permission to delete the file this will only be discovered at close time, which is too late for the Windows user tools to display an error message to the user\&. The symptom of this is files that appear to have been deleted "magically" re\-appearing on a Windows explorer refresh\&. This is an extremely advanced protocol option which should not need to be changed\&. This parameter was introduced in its final form in 3\&.0\&.21, an earlier version with slightly different semantics was introduced in 3\&.0\&.20\&. That older version is not documented here\&.
+\fBsmbd\fR(8)does on receiving a protocol request of "open for delete" from a Windows client\&. If a Windows client doesn\*(Aqt have permissions to delete a file then they expect this to be denied at open time\&. POSIX systems normally only detect restrictions on delete by actually attempting to delete the file or directory\&. As Windows clients can (and do) "back out" a delete request by unsetting the "delete on close" bit Samba cannot delete the file immediately on "open for delete" request as we cannot restore such a deleted file\&. With this parameter set to true (the default) then smbd checks the file system permissions directly on "open for delete" and denies the request without actually deleting the file if the file system permissions would seem to deny it\&. This is not perfect, as it\*(Aqs possible a user could have deleted a file without Samba being able to check the permissions correctly, but it is close enough to Windows semantics for mostly correct behaviour\&. Samba will correctly check POSIX ACL semantics in this case\&.
+.sp
+If this parameter is set to "false" Samba doesn\*(Aqt check permissions on "open for delete" and allows the open\&. If the user doesn\*(Aqt have permission to delete the file this will only be discovered at close time, which is too late for the Windows user tools to display an error message to the user\&. The symptom of this is files that appear to have been deleted "magically" re\-appearing on a Windows explorer refresh\&. This is an extremely advanced protocol option which should not need to be changed\&. This parameter was introduced in its final form in 3\&.0\&.21, an earlier version with slightly different semantics was introduced in 3\&.0\&.20\&. That older version is not documented here\&.
 .sp
 Default:
@@ -877,5 +886,5 @@
 This is the full pathname to a script that will be run by
 \fBsmbd\fR(8)
-when a machine is added to Samba\'s domain and a Unix account matching the machine\'s name appended with a "$" does not already exist\&.
+when a machine is added to Samba\*(Aqs domain and a Unix account matching the machine\*(Aqs name appended with a "$" does not already exist\&.
 .sp
 This option is very similar to the
@@ -1025,5 +1034,5 @@
 The
 \fIaddprinter command\fR
-program can output a single line of text, which Samba will set as the port the new printer is connected to\&. If this line isn\'t output, Samba won\'t reload its printer shares\&.
+program can output a single line of text, which Samba will set as the port the new printer is connected to\&. If this line isn\*(Aqt output, Samba won\*(Aqt reload its printer shares\&.
 .sp
 Default:
@@ -1338,5 +1347,5 @@
 Setting this option to a larger value could be useful to sites transitioning from WinNT and Win2k, as existing user and group rids would otherwise clash with sytem users etc\&.
 .sp
-All UIDs and GIDs must be able to be resolved into SIDs for the correct operation of ACLs on the server\&. As such the algorithmic mapping can\'t be \'turned off\', but pushing it \'out of the way\' should resolve the issues\&. Users and groups can then be assigned \'low\' RIDs in arbitrary\-rid supporting backends\&.
+All UIDs and GIDs must be able to be resolved into SIDs for the correct operation of ACLs on the server\&. As such the algorithmic mapping can\*(Aqt be \*(Aqturned off\*(Aq, but pushing it \*(Aqout of the way\*(Aq should resolve the issues\&. Users and groups can then be assigned \*(Aqlow\*(Aq RIDs in arbitrary\-rid supporting backends\&.
 .sp
 Default:
@@ -1509,5 +1518,5 @@
 is set then
 nmbd
-will check the source address of any packets coming in on the broadcast sockets and discard any that don\'t match the broadcast addresses of the interfaces in the
+will check the source address of any packets coming in on the broadcast sockets and discard any that don\*(Aqt match the broadcast addresses of the interfaces in the
 \m[blue]\fBinterfaces\fR\m[]
 parameter list\&. As unicast packets are received on the other sockets it allows
@@ -1550,5 +1559,5 @@
 parameter list then
 smbpasswd
-will fail to connect in it\'s default mode\&.
+will fail to connect in it\*(Aqs default mode\&.
 smbpasswd
 can be forced to use the primary IP interface of the local host by using its
@@ -1696,5 +1705,5 @@
 .PP
 .RS 4
-This parameter specifies whether Samba should reply to a client\'s file change notify requests\&.
+This parameter specifies whether Samba should reply to a client\*(Aqs file change notify requests\&.
 .sp
 You should never need to change this parameter
@@ -1803,5 +1812,5 @@
 .PP
 .RS 4
-The name of a program that can be used to check password complexity\&. The password is sent to the program\'s standard input\&.
+The name of a program that can be used to check password complexity\&. The password is sent to the program\*(Aqs standard input\&.
 .sp
 The program must return 0 on a good password, or any other value if the password is bad\&. In case the password is considered weak (the program does not return 0) the user will be notified and the password change will fail\&.
@@ -1896,5 +1905,5 @@
 client lanman auth\&.
 .sp
-Note that Windows Vista and later versions already use NTLMv2 by default, and some sites (particularly those following \'best practice\' security polices) only allow NTLMv2 responses, and not the weaker LM or NTLM\&.
+Note that Windows Vista and later versions already use NTLMv2 by default, and some sites (particularly those following \*(Aqbest practice\*(Aq security polices) only allow NTLMv2 responses, and not the weaker LM or NTLM\&.
 .sp
 Default:
@@ -1959,5 +1968,5 @@
 If disabled, Samba will use the name used to look up the server when asking the KDC for a ticket\&. This avoids situations where a server may impersonate another, soliciting authentication as one principal while being known on the network as another\&.
 .sp
-Note that Windows XP SP2 and later versions already follow this behaviour, and Windows Vista and later servers no longer supply this \'rfc4178 hint\' principal on the server side\&.
+Note that Windows XP SP2 and later versions already follow this behaviour, and Windows Vista and later servers no longer supply this \*(Aqrfc4178 hint\*(Aq principal on the server side\&.
 .sp
 Default:
@@ -2018,5 +2027,5 @@
 .sp
 Example:
-\fI\fIcomment\fR\fR\fI = \fR\fIFred\'s Files\fR\fI \fR
+\fI\fIcomment\fR\fR\fI = \fR\fIFred\*(Aqs Files\fR\fI \fR
 .RE
 
@@ -2056,5 +2065,5 @@
 This option takes the usual substitutions, which can be very useful\&.
 .sp
-If the config file doesn\'t exist then it won\'t be loaded (allowing you to special case the config files of just a few clients)\&.
+If the config file doesn\*(Aqt exist then it won\*(Aqt be loaded (allowing you to special case the config files of just a few clients)\&.
 .sp
 \fINo default\fR
@@ -2068,7 +2077,7 @@
 .PP
 .RS 4
-This parameter allows you to "clone" service entries\&. The specified service is simply duplicated under the current service\'s name\&. Any parameters specified in the current section will override those in the section being copied\&.
-.sp
-This feature lets you set up a \'template\' service and create similar services easily\&. Note that the service being copied must occur earlier in the configuration file than the service doing the copying\&.
+This parameter allows you to "clone" service entries\&. The specified service is simply duplicated under the current service\*(Aqs name\&. Any parameters specified in the current section will override those in the section being copied\&.
+.sp
+This feature lets you set up a \*(Aqtemplate\*(Aq service and create similar services easily\&. Note that the service being copied must occur earlier in the configuration file than the service doing the copying\&.
 .sp
 Default:
@@ -2105,5 +2114,5 @@
 .PP
 .RS 4
-When a file is created, the necessary permissions are calculated according to the mapping from DOS modes to UNIX permissions, and the resulting UNIX mode is then bit\-wise \'AND\'ed with this parameter\&. This parameter may be thought of as a bit\-wise MASK for the UNIX modes of a file\&. Any bit
+When a file is created, the necessary permissions are calculated according to the mapping from DOS modes to UNIX permissions, and the resulting UNIX mode is then bit\-wise \*(AqAND\*(Aqed with this parameter\&. This parameter may be thought of as a bit\-wise MASK for the UNIX modes of a file\&. Any bit
 \fInot\fR
 set here will be removed from the modes set on a file when it is created\&.
@@ -2115,5 +2124,5 @@
 write and execute bits from the UNIX modes\&.
 .sp
-Following this Samba will bit\-wise \'OR\' the UNIX mode created from this parameter with the value of the
+Following this Samba will bit\-wise \*(AqOR\*(Aq the UNIX mode created from this parameter with the value of the
 \m[blue]\fBforce create mode\fR\m[]
 parameter which is set to 000 by default\&.
@@ -2246,5 +2255,5 @@
 \fBcups\fR\&. Its value is a free form string of options passed directly to the cups library\&.
 .sp
-You can pass any generic print option known to CUPS (as listed in the CUPS "Software Users\' Manual")\&. You can also pass any printer specific option (as listed in "lpoptions \-d printername \-l") valid for the target queue\&. Multiple parameters should be space\-delimited name/value pairs according to the PAPI text option ABNF specification\&. Collection values ("name={a=\&.\&.\&. b=\&.\&.\&. c=\&.\&.\&.}") are stored with the curley brackets intact\&.
+You can pass any generic print option known to CUPS (as listed in the CUPS "Software Users\*(Aq Manual")\&. You can also pass any printer specific option (as listed in "lpoptions \-d printername \-l") valid for the target queue\&. Multiple parameters should be space\-delimited name/value pairs according to the PAPI text option ABNF specification\&. Collection values ("name={a=\&.\&.\&. b=\&.\&.\&. c=\&.\&.\&.}") are stored with the curley brackets intact\&.
 .sp
 You should set this parameter to
@@ -2252,5 +2261,5 @@
 if your CUPS server
 error_log
-file contains messages such as "Unsupported format \'application/octet\-stream\'" when printing from a Windows client through Samba\&. It is no longer necessary to enable system wide raw printing in
+file contains messages such as "Unsupported format \*(Aqapplication/octet\-stream\*(Aq" when printing from a Windows client through Samba\&. It is no longer necessary to enable system wide raw printing in
 /etc/cups/mime\&.{convs,types}\&.
 .sp
@@ -2292,5 +2301,5 @@
 The value of the parameter (a decimal integer) represents the number of minutes of inactivity before a connection is considered dead, and it is disconnected\&. The deadtime only takes effect if the number of open files is zero\&.
 .sp
-This is useful to stop a server\'s resources being exhausted by a large number of inactive connections\&.
+This is useful to stop a server\*(Aqs resources being exhausted by a large number of inactive connections\&.
 .sp
 Most clients have an auto\-reconnect feature when a connection is broken so in most cases this parameter should be transparent to users\&.
@@ -2435,5 +2444,5 @@
 services\&. When smbd is serving Printer Drivers to Windows NT/2k/XP clients, each printer on the Samba server has a Device Mode which defines things such as paper size and orientation and duplex settings\&. The device mode can only correctly be generated by the printer driver itself (which can only be executed on a Win32 platform)\&. Because smbd is unable to execute the driver code to generate the device mode, the default behavior is to set this field to NULL\&.
 .sp
-Most problems with serving printer drivers to Windows NT/2k/XP clients can be traced to a problem with the generated device mode\&. Certain drivers will do things such as crashing the client\'s Explorer\&.exe with a NULL devmode\&. However, other printer drivers can cause the client\'s spooler service (spoolsv\&.exe) to die if the devmode was not created by the driver itself (i\&.e\&. smbd generates a default devmode)\&.
+Most problems with serving printer drivers to Windows NT/2k/XP clients can be traced to a problem with the generated device mode\&. Certain drivers will do things such as crashing the client\*(Aqs Explorer\&.exe with a NULL devmode\&. However, other printer drivers can cause the client\*(Aqs spooler service (spoolsv\&.exe) to die if the devmode was not created by the driver itself (i\&.e\&. smbd generates a default devmode)\&.
 .sp
 This parameter should be used with care and tested with the printer driver in question\&. It is better to leave the device mode to NULL and let the Windows client set the correct values\&. Because drivers do not do this all the time, setting
@@ -2645,5 +2654,5 @@
 when managing users with remote RPC (NT) tools\&.
 .sp
-This script is called when a remote client removes a user from the server, normally using \'User Manager for Domains\' or
+This script is called when a remote client removes a user from the server, normally using \*(AqUser Manager for Domains\*(Aq or
 rpcclient\&.
 .sp
@@ -2728,5 +2737,5 @@
  
 #!/bin/sh
-df $1 | tail \-1 | awk \'{print $(NF\-4),$(NF\-2)}\'
+df $1 | tail \-1 | awk \*(Aq{print $(NF\-4),$(NF\-2)}\*(Aq
 .fi
 .if n \{\
@@ -2742,5 +2751,5 @@
  
 #!/bin/sh
-/usr/bin/df \-k $1 | tail \-1 | awk \'{print $3" "$5}\'
+/usr/bin/df \-k $1 | tail \-1 | awk \*(Aq{print $3" "$5}\*(Aq
 .fi
 .if n \{\
@@ -2772,11 +2781,11 @@
 This parameter is the octal modes which are used when converting DOS modes to UNIX modes when creating UNIX directories\&.
 .sp
-When a directory is created, the necessary permissions are calculated according to the mapping from DOS modes to UNIX permissions, and the resulting UNIX mode is then bit\-wise \'AND\'ed with this parameter\&. This parameter may be thought of as a bit\-wise MASK for the UNIX modes of a directory\&. Any bit
+When a directory is created, the necessary permissions are calculated according to the mapping from DOS modes to UNIX permissions, and the resulting UNIX mode is then bit\-wise \*(AqAND\*(Aqed with this parameter\&. This parameter may be thought of as a bit\-wise MASK for the UNIX modes of a directory\&. Any bit
 \fInot\fR
 set here will be removed from the modes set on a directory when it is created\&.
 .sp
-The default value of this parameter removes the \'group\' and \'other\' write bits from the UNIX mode, allowing only the user who owns the directory to modify it\&.
-.sp
-Following this Samba will bit\-wise \'OR\' the UNIX mode created from this parameter with the value of the
+The default value of this parameter removes the \*(Aqgroup\*(Aq and \*(Aqother\*(Aq write bits from the UNIX mode, allowing only the user who owns the directory to modify it\&.
+.sp
+Following this Samba will bit\-wise \*(AqOR\*(Aq the UNIX mode created from this parameter with the value of the
 \m[blue]\fBforce directory mode\fR\m[]
 parameter\&. This parameter is set to 000 by default (i\&.e\&. no extra mode bits are added)\&.
@@ -2808,5 +2817,5 @@
 This parameter controls what UNIX permission bits will be set when a Windows NT client is manipulating the UNIX permission on a directory using the native NT security dialog box\&.
 .sp
-This parameter is applied as a mask (AND\'ed with) to the incoming permission bits, thus resetting any bits not in this mask\&. Make sure not to mix up this parameter with
+This parameter is applied as a mask (AND\*(Aqed with) to the incoming permission bits, thus resetting any bits not in this mask\&. Make sure not to mix up this parameter with
 \m[blue]\fBforce directory security mode\fR\m[], which works similar like this one but uses logical OR instead of AND\&. Essentially, zero bits in this mask are a set of bits that will always be set to zero\&.
 .sp
@@ -2843,5 +2852,5 @@
 .ps -1
 .br
-Clients that only support netbios won\'t be able to see your samba server when netbios support is disabled\&.
+Clients that only support netbios won\*(Aqt be able to see your samba server when netbios support is disabled\&.
 .sp .5v
 .RE
@@ -2854,5 +2863,5 @@
 .PP
 .RS 4
-Enabling this parameter will disable Samba\'s support for the SPOOLSS set of MS\-RPC\'s and will yield identical behavior as Samba 2\&.0\&.x\&. Windows NT/2000 clients will downgrade to using Lanman style printing commands\&. Windows 9x/ME will be unaffected by the parameter\&. However, this will also disable the ability to upload printer drivers to a Samba server via the Windows NT Add Printer Wizard or by using the NT printer properties dialog window\&. It will also disable the capability of Windows NT/2000 clients to download print drivers from the Samba host upon demand\&.
+Enabling this parameter will disable Samba\*(Aqs support for the SPOOLSS set of MS\-RPC\*(Aqs and will yield identical behavior as Samba 2\&.0\&.x\&. Windows NT/2000 clients will downgrade to using Lanman style printing commands\&. Windows 9x/ME will be unaffected by the parameter\&. However, this will also disable the ability to upload printer drivers to a Samba server via the Windows NT Add Printer Wizard or by using the NT printer properties dialog window\&. It will also disable the capability of Windows NT/2000 clients to download print drivers from the Samba host upon demand\&.
 \fIBe very careful about enabling this parameter\&.\fR
 .sp
@@ -2958,5 +2967,5 @@
 \m[blue]\fBdomain logons = Yes\fR\m[]
 the default setting for this parameter is Yes, with the result that Samba will be a PDC\&. If
-\m[blue]\fBdomain master = No\fR\m[], Samba will function as a BDC\&. In general, this parameter should be set to \'No\' only on a BDC\&.
+\m[blue]\fBdomain master = No\fR\m[], Samba will function as a BDC\&. In general, this parameter should be set to \*(AqNo\*(Aq only on a BDC\&.
 .sp
 Default:
@@ -3180,5 +3189,5 @@
 This option is mainly used as a compatibility option for Visual C++ when used against Samba shares\&. Visual C++ generated makefiles have the object directory as a dependency for each object file, and a make rule to create the directory\&. Also, when NMAKE compares timestamps it uses the creation time when examining a directory\&. Thus the object directory will be created if it does not exist, but once it does exist it will always have an earlier timestamp than the object files it contains\&.
 .sp
-However, Unix time semantics mean that the create time reported by Samba will be updated whenever a file is created or or deleted in the directory\&. NMAKE finds all object files in the object directory\&. The timestamp of the last one built is then compared to the timestamp of the object directory\&. If the directory\'s timestamp if newer, then all object files will be rebuilt\&. Enabling this option ensures directories always predate their contents and an NMAKE build will proceed as expected\&.
+However, Unix time semantics mean that the create time reported by Samba will be updated whenever a file is created or or deleted in the directory\&. NMAKE finds all object files in the object directory\&. The timestamp of the last one built is then compared to the timestamp of the object directory\&. If the directory\*(Aqs timestamp if newer, then all object files will be rebuilt\&. Enabling this option ensures directories always predate their contents and an NMAKE build will proceed as expected\&.
 .sp
 Default:
@@ -3233,9 +3242,9 @@
 This parameter specifies a set of UNIX mode bit permissions that will
 \fIalways\fR
-be set on a file created by Samba\&. This is done by bitwise \'OR\'ing these bits onto the mode bits of a file that is being created\&. The default for this parameter is (in octal) 000\&. The modes in this parameter are bitwise \'OR\'ed onto the file mode after the mask set in the
+be set on a file created by Samba\&. This is done by bitwise \*(AqOR\*(Aqing these bits onto the mode bits of a file that is being created\&. The default for this parameter is (in octal) 000\&. The modes in this parameter are bitwise \*(AqOR\*(Aqed onto the file mode after the mask set in the
 \fIcreate mask\fR
 parameter is applied\&.
 .sp
-The example below would force all newly created files to have read and execute permissions set for \'group\' and \'other\' as well as the read/write/execute bits set for the \'user\'\&.
+The example below would force all newly created files to have read and execute permissions set for \*(Aqgroup\*(Aq and \*(Aqother\*(Aq as well as the read/write/execute bits set for the \*(Aquser\*(Aq\&.
 .sp
 Default:
@@ -3252,9 +3261,9 @@
 This parameter specifies a set of UNIX mode bit permissions that will
 \fIalways\fR
-be set on a directory created by Samba\&. This is done by bitwise \'OR\'ing these bits onto the mode bits of a directory that is being created\&. The default for this parameter is (in octal) 0000 which will not add any extra permission bits to a created directory\&. This operation is done after the mode mask in the parameter
+be set on a directory created by Samba\&. This is done by bitwise \*(AqOR\*(Aqing these bits onto the mode bits of a directory that is being created\&. The default for this parameter is (in octal) 0000 which will not add any extra permission bits to a created directory\&. This operation is done after the mode mask in the parameter
 \fIdirectory mask\fR
 is applied\&.
 .sp
-The example below would force all created directories to have read and execute permissions set for \'group\' and \'other\' as well as the read/write/execute bits set for the \'user\'\&.
+The example below would force all created directories to have read and execute permissions set for \*(Aqgroup\*(Aq and \*(Aqother\*(Aq as well as the read/write/execute bits set for the \*(Aquser\*(Aq\&.
 .sp
 Default:
@@ -3271,5 +3280,5 @@
 This parameter controls what UNIX permission bits can be modified when a Windows NT client is manipulating the UNIX permission on a directory using the native NT security dialog box\&.
 .sp
-This parameter is applied as a mask (OR\'ed with) to the changed permission bits, thus forcing any bits in this mask that the user may have modified to be on\&. Make sure not to mix up this parameter with
+This parameter is applied as a mask (OR\*(Aqed with) to the changed permission bits, thus forcing any bits in this mask that the user may have modified to be on\&. Make sure not to mix up this parameter with
 \m[blue]\fBdirectory security mask\fR\m[], which works in a similar manner to this one, but uses a logical AND instead of an OR\&.
 .sp
@@ -3313,5 +3322,5 @@
 This specifies a UNIX group name that will be assigned as the default primary group for all users connecting to this service\&. This is useful for sharing files by ensuring that all access to files on service will use the named group for their permissions checking\&. Thus, by assigning permissions for this group to the files and directories within this service the Samba administrator can restrict or allow sharing of these files\&.
 .sp
-In Samba 2\&.0\&.5 and above this parameter has extended functionality in the following way\&. If the group name listed here has a \'+\' character prepended to it then the current user accessing the share only has the primary group default assigned to this group if they are already assigned as a member of that group\&. This allows an administrator to decide that only users who are already in a particular group will create files with group ownership set to that group\&. This gives a finer granularity of ownership assignment\&. For example, the setting
+In Samba 2\&.0\&.5 and above this parameter has extended functionality in the following way\&. If the group name listed here has a \*(Aq+\*(Aq character prepended to it then the current user accessing the share only has the primary group default assigned to this group if they are already assigned as a member of that group\&. This allows an administrator to decide that only users who are already in a particular group will create files with group ownership set to that group\&. This gives a finer granularity of ownership assignment\&. For example, the setting
 force group = +sys
 means that only users who are already in group sys will have their default primary group assigned to sys when accessing this Samba share\&. All other users will retain their ordinary primary group\&.
@@ -3341,10 +3350,10 @@
 option)\&.
 .sp
-When assigning a new driver to a printer on a remote Windows compatible print server such as Samba, the Windows client will rename the printer to match the driver name just uploaded\&. This can result in confusion for users when multiple printers are bound to the same driver\&. To prevent Samba from allowing the printer\'s printername to differ from the sharename defined in smb\&.conf, set
+When assigning a new driver to a printer on a remote Windows compatible print server such as Samba, the Windows client will rename the printer to match the driver name just uploaded\&. This can result in confusion for users when multiple printers are bound to the same driver\&. To prevent Samba from allowing the printer\*(Aqs printername to differ from the sharename defined in smb\&.conf, set
 \fIforce printername = yes\fR\&.
 .sp
 Be aware that enabling this parameter may affect migrating printers from a Windows server to Samba since Windows has no way to force the sharename and printername to match\&.
 .sp
-It is recommended that this parameter\'s value not be changed once the printer is in use by clients as this could cause a user not be able to delete printer connections from their local Printers folder\&.
+It is recommended that this parameter\*(Aqs value not be changed once the printer is in use by clients as this could cause a user not be able to delete printer connections from their local Printers folder\&.
 .sp
 Default:
@@ -3358,5 +3367,5 @@
 This parameter controls what UNIX permission bits can be modified when a Windows NT client is manipulating the UNIX permission on a file using the native NT security dialog box\&.
 .sp
-This parameter is applied as a mask (OR\'ed with) to the changed permission bits, thus forcing any bits in this mask that the user may have modified to be on\&. Make sure not to mix up this parameter with
+This parameter is applied as a mask (OR\*(Aqed with) to the changed permission bits, thus forcing any bits in this mask that the user may have modified to be on\&. Make sure not to mix up this parameter with
 \m[blue]\fBsecurity mask\fR\m[], which works similar like this one but uses logical AND instead of OR\&.
 .sp
@@ -3729,9 +3738,9 @@
 .PP
 .RS 4
-This is a list of files or directories that are not visible but are accessible\&. The DOS \'hidden\' attribute is applied to any files or directories that match\&.
-.sp
-Each entry in the list must be separated by a \'/\', which allows spaces to be included in the entry\&. \'*\' and \'?\' can be used to specify multiple files or directories as in DOS wildcards\&.
-.sp
-Each entry must be a Unix path, not a DOS path and must not include the Unix directory separator \'/\'\&.
+This is a list of files or directories that are not visible but are accessible\&. The DOS \*(Aqhidden\*(Aq attribute is applied to any files or directories that match\&.
+.sp
+Each entry in the list must be separated by a \*(Aq/\*(Aq, which allows spaces to be included in the entry\&. \*(Aq*\*(Aq and \*(Aq?\*(Aq can be used to specify multiple files or directories as in DOS wildcards\&.
+.sp
+Each entry must be a Unix path, not a DOS path and must not include the Unix directory separator \*(Aq/\*(Aq\&.
 .sp
 Note that the case sensitivity option is applicable in hiding files\&.
@@ -3763,5 +3772,5 @@
 .PP
 .RS 4
-This parameter prevents clients from seeing special files such as sockets, devices and fifo\'s in directory listings\&.
+This parameter prevents clients from seeing special files such as sockets, devices and fifo\*(Aqs in directory listings\&.
 .sp
 Default:
@@ -3800,5 +3809,5 @@
 is also acting as a Win95/98
 \fIlogon server\fR
-then this parameter specifies the NIS (or YP) map from which the server for the user\'s home directory should be extracted\&. At present, only the Sun auto\&.home map format is understood\&. The form of the map is:
+then this parameter specifies the NIS (or YP) map from which the server for the user\*(Aqs home directory should be extracted\&. At present, only the Sun auto\&.home map format is understood\&. The form of the map is:
 .sp
 .if n \{\
@@ -3812,5 +3821,5 @@
 .\}
 .sp
-and the program will extract the servername from before the first \':\'\&. There should probably be a better parsing system that copes with different map formats and also Amd (another automounter) maps\&.
+and the program will extract the servername from before the first \*(Aq:\*(Aq\&. There should probably be a better parsing system that copes with different map formats and also Amd (another automounter) maps\&.
 .if n \{\
 .sp
@@ -3989,5 +3998,5 @@
 .PP
 .RS 4
-This parameter specifies the number of seconds that Winbind\'s idmap interface will cache positive SID/uid/gid query results\&.
+This parameter specifies the number of seconds that Winbind\*(Aqs idmap interface will cache positive SID/uid/gid query results\&.
 .sp
 Default:
@@ -3999,5 +4008,5 @@
 .PP
 .RS 4
-ID mapping in Samba is the mapping between Windows SIDs and Unix user and group IDs\&. This is performed by Winbindd with a configurable plugin interface\&. Samba\'s ID mapping is configured by options starting with the
+ID mapping in Samba is the mapping between Windows SIDs and Unix user and group IDs\&. This is performed by Winbindd with a configurable plugin interface\&. Samba\*(Aqs ID mapping is configured by options starting with the
 \m[blue]\fBidmap config\fR\m[]
 prefix\&. An idmap option consists of the
@@ -4082,5 +4091,5 @@
 .PP
 .RS 4
-This parameter specifies the number of seconds that Winbind\'s idmap interface will cache negative SID/uid/gid query results\&.
+This parameter specifies the number of seconds that Winbind\*(Aqs idmap interface will cache negative SID/uid/gid query results\&.
 .sp
 Default:
@@ -4157,5 +4166,5 @@
 The ownership of new files and directories is normally governed by effective uid of the connected user\&. This option allows the Samba administrator to specify that the ownership for new files and directories should be controlled by the ownership of the parent directory\&.
 .sp
-Common scenarios where this behavior is useful is in implementing drop\-boxes where users can create and edit files but not delete them and to ensure that newly create files in a user\'s roaming profile directory are actually owner by the user\&.
+Common scenarios where this behavior is useful is in implementing drop\-boxes where users can create and edit files but not delete them and to ensure that newly create files in a user\*(Aqs roaming profile directory are actually owner by the user\&.
 .sp
 Default:
@@ -4277,5 +4286,5 @@
 The "mask" parameters can either be a bit length (such as 24 for a C class network) or a full netmask in dotted decimal form\&.
 .sp
-The "IP" parameters above can either be a full dotted decimal IP address or a hostname which will be looked up via the OS\'s normal hostname resolution mechanisms\&.
+The "IP" parameters above can either be a full dotted decimal IP address or a hostname which will be looked up via the OS\*(Aqs normal hostname resolution mechanisms\&.
 .sp
 By default Samba enables all active interfaces that are broadcast capable except the loopback adaptor (IP address 127\&.0\&.0\&.1)\&.
@@ -4298,11 +4307,11 @@
 check to absolutely ensure an improper setting does not breach your security\&.
 .sp
-A name starting with a \'@\' is interpreted as an NIS netgroup first (if your system supports NIS), and then as a UNIX group if the name was not found in the NIS netgroup database\&.
-.sp
-A name starting with \'+\' is interpreted only by looking in the UNIX group database via the NSS getgrnam() interface\&. A name starting with \'&\' is interpreted only by looking in the NIS netgroup database (this requires NIS to be working on your system)\&. The characters \'+\' and \'&\' may be used at the start of the name in either order so the value
+A name starting with a \*(Aq@\*(Aq is interpreted as an NIS netgroup first (if your system supports NIS), and then as a UNIX group if the name was not found in the NIS netgroup database\&.
+.sp
+A name starting with \*(Aq+\*(Aq is interpreted only by looking in the UNIX group database via the NSS getgrnam() interface\&. A name starting with \*(Aq&\*(Aq is interpreted only by looking in the NIS netgroup database (this requires NIS to be working on your system)\&. The characters \*(Aq+\*(Aq and \*(Aq&\*(Aq may be used at the start of the name in either order so the value
 \fI+&group\fR
 means check the UNIX group database, followed by the NIS netgroup database, and the value
 \fI&+group\fR
-means check the NIS netgroup database, followed by the UNIX group database (the same as the \'@\' prefix)\&.
+means check the NIS netgroup database, followed by the UNIX group database (the same as the \*(Aq@\*(Aq prefix)\&.
 .sp
 The current servicename is substituted for
@@ -4463,5 +4472,5 @@
 When this parameter is set to
 no
-this will also result in sambaLMPassword in Samba\'s passdb being blanked after the next password change\&. As a result of that lanman clients won\'t be able to authenticate, even if lanman auth is reenabled later on\&.
+this will also result in sambaLMPassword in Samba\*(Aqs passdb being blanked after the next password change\&. As a result of that lanman clients won\*(Aqt be able to authenticate, even if lanman auth is reenabled later on\&.
 .sp
 Unlike the
@@ -4469,5 +4478,5 @@
 option, this parameter cannot alter client behaviour, and the LANMAN response will still be sent over the network\&. See the
 client lanman auth
-to disable this for Samba\'s clients (such as smbclient)
+to disable this for Samba\*(Aqs clients (such as smbclient)
 .sp
 If this option, and
@@ -4539,5 +4548,5 @@
 for tracing function calls\&.
 .sp
-The debug ouput from the LDAP libraries appears with the prefix [LDAP] in Samba\'s logging output\&. The level at which LDAP logging is printed is controlled by the parameter
+The debug ouput from the LDAP libraries appears with the prefix [LDAP] in Samba\*(Aqs logging output\&. The level at which LDAP logging is printed is controlled by the parameter
 \fIldap debug threshold\fR\&.
 .sp
@@ -4602,5 +4611,5 @@
 \fIoff\fR
 to disable this, and
-\fIauto\fR, to use the libldap default settings\&. libldap\'s choice of following referrals or not is set in /etc/openldap/ldap\&.conf with the REFERRALS parameter as documented in ldap\&.conf(5)\&.
+\fIauto\fR, to use the libldap default settings\&. libldap\*(Aqs choice of following referrals or not is set in /etc/openldap/ldap\&.conf with the REFERRALS parameter as documented in ldap\&.conf(5)\&.
 .sp
 Default:
@@ -4732,5 +4741,5 @@
 .PP
 .RS 4
-When Samba is asked to write to a read\-only LDAP replica, we are redirected to talk to the read\-write master server\&. This server then replicates our changes back to the \'local\' server, however the replication might take some seconds, especially over slow links\&. Certain client activities, particularly domain joins, can become confused by the \'success\' that does not immediately change the LDAP back\-end\'s data\&.
+When Samba is asked to write to a read\-only LDAP replica, we are redirected to talk to the read\-write master server\&. This server then replicates our changes back to the \*(Aqlocal\*(Aq server, however the replication might take some seconds, especially over slow links\&. Certain client activities, particularly domain joins, can become confused by the \*(Aqsuccess\*(Aq that does not immediately change the LDAP back\-end\*(Aqs data\&.
 .sp
 This option simply causes Samba to wait a short time, to allow the LDAP server to catch up\&. If you have a particularly high\-latency network, you may wish to time the LDAP replication with a network sniffer, and increase this value accordingly\&. Be aware that no checking is performed that the data has actually replicated\&.
@@ -4856,5 +4865,5 @@
 This option is used to define whether or not Samba should use SSL when connecting to the ldap server using
 \fIads\fR
-methods\&. Rpc methods are not affected by this parameter\&. Please note, that this parameter won\'t have any effect if
+methods\&. Rpc methods are not affected by this parameter\&. Please note, that this parameter won\*(Aqt have any effect if
 \m[blue]\fBldap ssl\fR\m[]
 is set to
@@ -4876,5 +4885,5 @@
 This option is used to define whether or not Samba should use SSL when connecting to the ldap server This is
 \fINOT\fR
-related to Samba\'s previous SSL support which was enabled by specifying the
+related to Samba\*(Aqs previous SSL support which was enabled by specifying the
 \-\-with\-ssl
 option to the
@@ -5079,5 +5088,5 @@
 \fByes\fR\&. Setting this value to
 \fByes\fR
-doesn\'t mean that Samba will
+doesn\*(Aqt mean that Samba will
 \fIbecome\fR
 the local master browser on a subnet, just that
@@ -5460,5 +5469,5 @@
 This option takes the standard substitutions, allowing you to have separate logon scripts for each user or machine\&.
 .sp
-This parameter can be used with Win9X workstations to ensure that roaming profiles are stored in a subdirectory of the user\'s home directory\&. This is done in the following way:
+This parameter can be used with Win9X workstations to ensure that roaming profiles are stored in a subdirectory of the user\*(Aqs home directory\&. This is done in the following way:
 .sp
 
@@ -5618,5 +5627,5 @@
 This parameter specifies the command to be executed on the server host in order to stop printing or spooling a specific print job\&.
 .sp
-This command should be a program or script which takes a printer name and job number to pause the print job\&. One way of implementing this is by using job priorities, where jobs having a too low priority won\'t be sent to the printer\&.
+This command should be a program or script which takes a printer name and job number to pause the print job\&. One way of implementing this is by using job priorities, where jobs having a too low priority won\*(Aqt be sent to the printer\&.
 .sp
 If a
@@ -5648,5 +5657,5 @@
 command used by the system, so if you use different
 lpq
-commands for different users then they won\'t share cache information\&.
+commands for different users then they won\*(Aqt share cache information\&.
 .sp
 The cache files are stored in
@@ -5900,16 +5909,16 @@
 Note that the character to use may be specified using the
 \m[blue]\fBmangling char\fR\m[]
-option, if you don\'t like \'~\'\&.
-.RE
-.sp
-.RS 4
-.ie n \{\
-\h'-04'\(bu\h'+03'\c
-.\}
-.el \{\
-.sp -1
-.IP \(bu 2.3
-.\}
-Files whose UNIX name begins with a dot will be presented as DOS hidden files\&. The mangled name will be created as for other filenames, but with the leading dot removed and "___" as its extension regardless of actual original extension (that\'s three underscores)\&.
+option, if you don\*(Aqt like \*(Aq~\*(Aq\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+Files whose UNIX name begins with a dot will be presented as DOS hidden files\&. The mangled name will be created as for other filenames, but with the leading dot removed and "___" as its extension regardless of actual original extension (that\*(Aqs three underscores)\&.
 .RE
 .sp
@@ -5947,5 +5956,5 @@
 \fImagic\fR
 character in
-\m[blue]\fBname mangling\fR\m[]\&. The default is a \'~\' but this may interfere with some software\&. Use this option to set it to whatever you prefer\&. This is effective only when mangling method is hash\&.
+\m[blue]\fBname mangling\fR\m[]\&. The default is a \*(Aq~\*(Aq but this may interfere with some software\&. Use this option to set it to whatever you prefer\&. This is effective only when mangling method is hash\&.
 .sp
 Default:
@@ -5975,5 +5984,5 @@
 This boolean parameter controls whether
 \fBsmbd\fR(8)
-will attempt to map the \'inherit\' and \'protected\' access control entry flags stored in Windows ACLs into an extended attribute called user\&.SAMBA_PAI\&. This parameter only takes effect if Samba is being run on a platform that supports extended attributes (Linux and IRIX so far) and allows the Windows 2000 ACL editor to correctly use inheritance with the Samba POSIX ACL mapping code\&.
+will attempt to map the \*(Aqinherit\*(Aq and \*(Aqprotected\*(Aq access control entry flags stored in Windows ACLs into an extended attribute called user\&.SAMBA_PAI\&. This parameter only takes effect if Samba is being run on a platform that supports extended attributes (Linux and IRIX so far) and allows the Windows 2000 ACL editor to correctly use inheritance with the Samba POSIX ACL mapping code\&.
 .sp
 Default:
@@ -6112,5 +6121,5 @@
 This parameter can take four different values, which tell
 \fBsmbd\fR(8)
-what to do with user login requests that don\'t match a valid UNIX user in some way\&.
+what to do with user login requests that don\*(Aqt match a valid UNIX user in some way\&.
 .sp
 The four settings are :
@@ -6194,5 +6203,5 @@
 .PP
 .RS 4
-If a client connects to smbd using an untrusted domain name, such as BOGUS\euser, smbd replaces the BOGUS domain with it\'s SAM name before attempting to authenticate that user\&. In the case where smbd is acting as a PDC this will be DOMAIN\euser\&. In the case where smbd is acting as a domain member server or a standalone server this will be WORKSTATION\euser\&.
+If a client connects to smbd using an untrusted domain name, such as BOGUS\euser, smbd replaces the BOGUS domain with it\*(Aqs SAM name before attempting to authenticate that user\&. In the case where smbd is acting as a PDC this will be DOMAIN\euser\&. In the case where smbd is acting as a domain member server or a standalone server this will be WORKSTATION\euser\&.
 .sp
 In previous versions of Samba (pre 3\&.4), if smbd was acting as a domain member server, the BOGUS domain name would instead be replaced by the primary domain which smbd was a member of\&. In this case authentication would be deferred off to a DC using the credentials DOMAIN\euser\&.
@@ -6234,5 +6243,5 @@
 \fImax disk size\fR\&.
 .sp
-This option is primarily useful to work around bugs in some pieces of software that can\'t handle very large disks, particularly disks over 1GB in size\&.
+This option is primarily useful to work around bugs in some pieces of software that can\*(Aqt handle very large disks, particularly disks over 1GB in size\&.
 .sp
 A
@@ -6384,5 +6393,5 @@
 .IP \(bu 2.3
 .\}
-\fBSMB2\fR: Re\-implementation of the SMB protocol\&. Used by Windows Vista and newer\&. The Samba implementation of SMB2 is currently marked experimental!
+\fBSMB2\fR: Re\-implementation of the SMB protocol\&. Used by Windows Vista and newer\&.
 .RE
 .sp
@@ -6448,5 +6457,5 @@
 This option tells
 \fBnmbd\fR(8)
-what the default \'time to live\' of NetBIOS names should be (in seconds) when
+what the default \*(Aqtime to live\*(Aq of NetBIOS names should be (in seconds) when
 nmbd
 is requesting a name using either a broadcast packet or from a WINS server\&. You should never need to change this parameter\&. The default is 3 days\&.
@@ -6462,5 +6471,5 @@
 This option tells
 \fBsmbd\fR(8)
-when acting as a WINS server (\m[blue]\fBwins support = yes\fR\m[]) what the maximum \'time to live\' of NetBIOS names that
+when acting as a WINS server (\m[blue]\fBwins support = yes\fR\m[]) what the maximum \*(Aqtime to live\*(Aq of NetBIOS names that
 nmbd
 will grant will be (in seconds)\&. You should never need to change this parameter\&. The default is 6 days (518400 seconds)\&.
@@ -6497,5 +6506,5 @@
 .\}
 .nf
-message command = csh \-c \'xedit %s;rm %s\' &
+message command = csh \-c \*(Aqxedit %s;rm %s\*(Aq &
 .fi
 .if n \{\
@@ -6505,9 +6514,9 @@
 This delivers the message using
 xedit, then removes it afterwards\&.
-\fINOTE THAT IT IS VERY IMPORTANT THAT THIS COMMAND RETURN IMMEDIATELY\fR\&. That\'s why I have the \'&\' on the end\&. If it doesn\'t return immediately then your PCs may freeze when sending messages (they should recover after 30 seconds, hopefully)\&.
+\fINOTE THAT IT IS VERY IMPORTANT THAT THIS COMMAND RETURN IMMEDIATELY\fR\&. That\*(Aqs why I have the \*(Aq&\*(Aq on the end\&. If it doesn\*(Aqt return immediately then your PCs may freeze when sending messages (they should recover after 30 seconds, hopefully)\&.
 .sp
 All messages are delivered as the global guest user\&. The command takes the standard substitutions, although
 \fI %u\fR
-won\'t work (\fI%U\fR
+won\*(Aqt work (\fI%U\fR
 may be better in this case)\&.
 .sp
@@ -6553,5 +6562,5 @@
 You could make this command send mail, or whatever else takes your fancy\&. Please let us know of any really interesting ideas you have\&.
 .sp
-Here\'s a way of sending the messages as mail to root:
+Here\*(Aqs a way of sending the messages as mail to root:
 .sp
 .if n \{\
@@ -6559,5 +6568,5 @@
 .\}
 .nf
-message command = /bin/mail \-s \'message from %f on %m\' root < %s; rm %s
+message command = /bin/mail \-s \*(Aqmessage from %f on %m\*(Aq root < %s; rm %s
 .fi
 .if n \{\
@@ -6565,5 +6574,5 @@
 .\}
 .sp
-If you don\'t have a message command then the message won\'t be delivered and Samba will tell the sender there was an error\&. Unfortunately WfWg totally ignores the error code and carries on regardless, saying that the message was delivered\&.
+If you don\*(Aqt have a message command then the message won\*(Aqt be delivered and Samba will tell the sender there was an error\&. Unfortunately WfWg totally ignores the error code and carries on regardless, saying that the message was delivered\&.
 .sp
 If you want to silently delete it then try:
@@ -6583,5 +6592,5 @@
 .sp
 Example:
-\fI\fImessage command\fR\fR\fI = \fR\fIcsh \-c \'xedit %s; rm %s\' &\fR\fI \fR
+\fI\fImessage command\fR\fR\fI = \fR\fIcsh \-c \*(Aqxedit %s; rm %s\*(Aq &\fR\fI \fR
 .RE
 
@@ -6642,5 +6651,5 @@
 This option tells
 \fBnmbd\fR(8)
-when acting as a WINS server (\m[blue]\fBwins support = yes\fR\m[]) what the minimum \'time to live\' of NetBIOS names that
+when acting as a WINS server (\m[blue]\fBwins support = yes\fR\m[]) what the minimum \*(Aqtime to live\*(Aq of NetBIOS names that
 nmbd
 will grant will be (in seconds)\&. You should never need to change this parameter\&. The default is 6 hours (21600 seconds)\&.
@@ -6697,5 +6706,5 @@
 .PP
 .RS 4
-Specifies the number of seconds it takes before entries in samba\'s hostname resolve cache time out\&. If the timeout is set to 0\&. the caching is disabled\&.
+Specifies the number of seconds it takes before entries in samba\*(Aqs hostname resolve cache time out\&. If the timeout is set to 0\&. the caching is disabled\&.
 .sp
 Default:
@@ -6795,5 +6804,5 @@
 .sp
 \&.
-	This will allow Samba and other unix processes to interact over DCE/RPC without using TCP/IP\&. Additionally a sub\-directory \'np\' has restricted permissions, and allows a trusted communication channel between Samba processes
+	This will allow Samba and other unix processes to interact over DCE/RPC without using TCP/IP\&. Additionally a sub\-directory \*(Aqnp\*(Aq has restricted permissions, and allows a trusted communication channel between Samba processes
 .sp
 Default:
@@ -6821,5 +6830,5 @@
 .PP
 .RS 4
-This sets the NetBIOS name by which a Samba server is known\&. By default it is the same as the first component of the host\'s DNS name\&. If a machine is a browse server or logon server this name (or the first component of the hosts DNS name) will be the name that these services are advertised under\&.
+This sets the NetBIOS name by which a Samba server is known\&. By default it is the same as the first component of the host\*(Aqs DNS name\&. If a machine is a browse server or logon server this name (or the first component of the hosts DNS name) will be the name that these services are advertised under\&.
 .sp
 There is a bug in Samba\-3 that breaks operation of browsing and access to shares if the netbios name is set to the literal name
@@ -6848,5 +6857,5 @@
 .PP
 .RS 4
-Get the home share server from a NIS map\&. For UNIX systems that use an automounter, the user\'s home directory will often be mounted on a workstation on demand from a remote server\&.
+Get the home share server from a NIS map\&. For UNIX systems that use an automounter, the user\*(Aqs home directory will often be mounted on a workstation on demand from a remote server\&.
 .sp
 When the Samba logon server is not the actual home directory server, but is mounting the home directories via NFS then two network hops would be required to access the users home directory if the logon server told the client to use itself as the SMB server for home directories (one over SMB and one over NFS)\&. This can be very slow\&.
@@ -6951,5 +6960,5 @@
 .PP
 .RS 4
-When Samba 3\&.0 is configured to enable PAM support (i\&.e\&. \-\-with\-pam), this parameter will control whether or not Samba should obey PAM\'s account and session management directives\&. The default behavior is to use PAM for clear text authentication only and to ignore any account or session management\&. Note that Samba always ignores PAM for authentication in the case of
+When Samba 3\&.0 is configured to enable PAM support (i\&.e\&. \-\-with\-pam), this parameter will control whether or not Samba should obey PAM\*(Aqs account and session management directives\&. The default behavior is to use PAM for clear text authentication only and to ignore any account or session management\&. Note that Samba always ignores PAM for authentication in the case of
 \m[blue]\fBencrypt passwords = yes\fR\m[]\&. The reason is that PAM modules cannot support the challenge/response authentication mechanism needed in the presence of SMB password encryption\&.
 .sp
@@ -6970,5 +6979,5 @@
 level security\&.
 .sp
-Note that this also means Samba won\'t try to deduce usernames from the service name\&. This can be annoying for the [homes] section\&. To get around this you could use
+Note that this also means Samba won\*(Aqt try to deduce usernames from the service name\&. This can be annoying for the [homes] section\&. To get around this you could use
 user = %S
 which means your
@@ -7098,5 +7107,5 @@
 .PP
 .RS 4
-With the addition of better PAM support in Samba 2\&.2, this parameter, it is possible to use PAM\'s password change control flag for Samba\&. If enabled, then PAM will be used for password changes when requested by an SMB client instead of the program listed in
+With the addition of better PAM support in Samba 2\&.2, this parameter, it is possible to use PAM\*(Aqs password change control flag for Samba\&. If enabled, then PAM will be used for password changes when requested by an SMB client instead of the program listed in
 \m[blue]\fBpasswd program\fR\m[]\&. It should be possible to enable this without changing your
 \m[blue]\fBpasswd chat\fR\m[]
@@ -7142,5 +7151,5 @@
 This option allows the administrator to chose which backend will be used for storing user and possibly group information\&. This allows you to swap between different storage mechanisms without recompile\&.
 .sp
-The parameter value is divided into two parts, the backend\'s name, and a \'location\' string that has meaning only to that particular backed\&. These are separated by a : character\&.
+The parameter value is divided into two parts, the backend\*(Aqs name, and a \*(Aqlocation\*(Aq string that has meaning only to that particular backed\&. These are separated by a : character\&.
 .sp
 Available backends can include:
@@ -7222,5 +7231,5 @@
 .PP
 .RS 4
-This parameter controls whether Samba substitutes %\-macros in the passdb fields if they are explicitly set\&. We used to expand macros here, but this turned out to be a bug because the Windows client can expand a variable %G_osver% in which %G would have been substituted by the user\'s primary group\&.
+This parameter controls whether Samba substitutes %\-macros in the passdb fields if they are explicitly set\&. We used to expand macros here, but this turned out to be a bug because the Windows client can expand a variable %G_osver% in which %G would have been substituted by the user\*(Aqs primary group\&.
 .sp
 Default:
@@ -7270,5 +7279,5 @@
 conversation that takes places between
 \fBsmbd\fR(8)
-and the local password changing program to change the user\'s password\&. The string describes a sequence of response\-receive pairs that
+and the local password changing program to change the user\*(Aqs password\&. The string describes a sequence of response\-receive pairs that
 \fBsmbd\fR(8)
 uses to determine what to send to the
@@ -7283,5 +7292,5 @@
 \fByes\fR\&. This sequence is then called
 \fIAS ROOT\fR
-when the SMB password in the smbpasswd file is being changed, without access to the old password cleartext\&. This means that root must be able to reset the user\'s password without knowing the text of the previous password\&. In the presence of NIS/YP, this means that the
+when the SMB password in the smbpasswd file is being changed, without access to the old password cleartext\&. This means that root must be able to reset the user\*(Aqs password without knowing the text of the previous password\&. In the presence of NIS/YP, this means that the
 \m[blue]\fBpasswd program\fR\m[]
 must be executed on the NIS master\&.
@@ -7291,5 +7300,5 @@
 which is substituted for the new password\&. The old passsword (\fI%o\fR) is only available when
 \m[blue]\fBencrypt passwords\fR\m[]
-has been disabled\&. The chat sequence can also contain the standard macros \en, \er, \et and \es to give line\-feed, carriage\-return, tab and space\&. The chat sequence string can also contain a \'*\' which matches any sequence of characters\&. Double quotes can be used to collect strings with spaces in them into a single string\&.
+has been disabled\&. The chat sequence can also contain the standard macros \en, \er, \et and \es to give line\-feed, carriage\-return, tab and space\&. The chat sequence string can also contain a \*(Aq*\*(Aq which matches any sequence of characters\&. Double quotes can be used to collect strings with spaces in them into a single string\&.
 .sp
 If the send string in any part of the chat sequence is a full stop "\&.", then no string is sent\&. Similarly, if the expect string is a full stop then no string is expected\&.
@@ -7399,7 +7408,7 @@
 \fBads\fR, then this option
 \fIshould not\fR
-be used, as the default \'*\' indicates to Samba to determine the best DC to contact dynamically, just as all other hosts in an AD domain do\&. This allows the domain to be maintained without modification to the smb\&.conf file\&. The cryptograpic protection on the authenticated RPC calls used to verify passwords ensures that this default is safe\&.
-.sp
-\fIIt is strongly recommended that you use the default of \'*\'\fR, however if in your particular environment you have reason to specify a particular DC list, then the list of machines in this option must be a list of names or IP addresses of Domain controllers for the Domain\&. If you use the default of \'*\', or list several hosts in the
+be used, as the default \*(Aq*\*(Aq indicates to Samba to determine the best DC to contact dynamically, just as all other hosts in an AD domain do\&. This allows the domain to be maintained without modification to the smb\&.conf file\&. The cryptograpic protection on the authenticated RPC calls used to verify passwords ensures that this default is safe\&.
+.sp
+\fIIt is strongly recommended that you use the default of \*(Aq*\*(Aq\fR, however if in your particular environment you have reason to specify a particular DC list, then the list of machines in this option must be a list of names or IP addresses of Domain controllers for the Domain\&. If you use the default of \*(Aq*\*(Aq, or list several hosts in the
 \fIpassword server\fR
 option then
@@ -7407,5 +7416,5 @@
 will try each in turn till it finds one that responds\&. This is useful in case your primary server goes down\&.
 .sp
-If the list of servers contains both names/IP\'s and the \'*\' character, the list is treated as a list of preferred domain controllers, but an auto lookup of all remaining DC\'s will be added to the list as well\&. Samba will not attempt to optimize this list by locating the closest DC\&.
+If the list of servers contains both names/IP\*(Aqs and the \*(Aq*\*(Aq character, the list is treated as a list of preferred domain controllers, but an auto lookup of all remaining DC\*(Aqs will be added to the list as well\&. Samba will not attempt to optimize this list by locating the closest DC\&.
 .sp
 If parameter is a name, it is looked up using the parameter
@@ -7480,5 +7489,5 @@
 .\}
 Using a password server means your UNIX box (running Samba) is only as secure as (a host masqurading as) your password server\&.
-\fIDO NOT CHOOSE A PASSWORD SERVER THAT YOU DON\'T COMPLETELY TRUST\fR\&.
+\fIDO NOT CHOOSE A PASSWORD SERVER THAT YOU DON\*(AqT COMPLETELY TRUST\fR\&.
 .RE
 .sp
@@ -7531,5 +7540,5 @@
 This parameter specifies a directory to which the user of the service is to be given access\&. In the case of printable services, this is where print data will spool prior to being submitted to the host for printing\&.
 .sp
-For a printable service offering guest access, the service should be readonly and the path should be world\-writeable and have the sticky bit set\&. This is not mandatory of course, but you probably won\'t get the results you expect if you do otherwise\&.
+For a printable service offering guest access, the service should be readonly and the path should be world\-writeable and have the sticky bit set\&. This is not mandatory of course, but you probably won\*(Aqt get the results you expect if you do otherwise\&.
 .sp
 Any occurrences of
@@ -7630,5 +7639,5 @@
 .sp
 
-preexec = csh \-c \'echo \e"Welcome to %S!\e" | /usr/local/samba/bin/smbclient \-M %m \-I %I\' &
+preexec = csh \-c \*(Aqecho \e"Welcome to %S!\e" | /usr/local/samba/bin/smbclient \-M %m \-I %I\*(Aq &
 .sp
 Of course, this could get annoying after a while :\-)
@@ -7819,5 +7828,5 @@
 .\}
 .sp
-where the \'|\' separates aliases of a printer\&. The fact that the second alias has a space in it gives a hint to Samba that it\'s a comment\&.
+where the \*(Aq|\*(Aq separates aliases of a printer\&. The fact that the second alias has a space in it gives a hint to Samba that it\*(Aqs a comment\&.
 .if n \{\
 .sp
@@ -7853,5 +7862,5 @@
 After a print job has finished spooling to a service, this command will be used via a
 system()
-call to process the spool file\&. Typically the command specified will submit the spool file to the host\'s printing subsystem, but there is no requirement that this be the case\&. The server will not remove the spool file, so whatever command you specify should remove the spool file when it has been processed, otherwise you will need to manually remove old spool files\&.
+call to process the spool file\&. Typically the command specified will submit the spool file to the host\*(Aqs printing subsystem, but there is no requirement that this be the case\&. The server will not remove the spool file, so whatever command you specify should remove the spool file when it has been processed, otherwise you will need to manually remove old spool files\&.
 .sp
 The print command is simply a text string\&. It will be used verbatim after macro substitutions have been made:
@@ -7889,5 +7898,5 @@
 in the [global] section\&.
 .sp
-You can form quite complex print commands by realizing that they are just passed to a shell\&. For example the following will log a print job, print the file, then remove it\&. Note that \';\' is the usual separator for command in shell scripts\&.
+You can form quite complex print commands by realizing that they are just passed to a shell\&. For example the following will log a print job, print the file, then remove it\&. Note that \*(Aq;\*(Aq is the usual separator for command in shell scripts\&.
 .sp
 print command = echo Printing %s >> /tmp/print\&.log; lpr \-P %p %s; rm %s
@@ -8137,5 +8146,5 @@
 .sp
 If this parameter is
-\fByes\fR, then users of a service may not create or modify files in the service\'s directory\&.
+\fByes\fR, then users of a service may not create or modify files in the service\*(Aqs directory\&.
 .sp
 Note that a printable service (printable = yes) will
@@ -8208,5 +8217,5 @@
 to periodically announce itself to arbitrary IP addresses with an arbitrary workgroup name\&.
 .sp
-This is useful if you want your Samba server to appear in a remote workgroup for which the normal browse propagation rules don\'t work\&. The remote workgroup can be anywhere that you can send IP packets to\&.
+This is useful if you want your Samba server to appear in a remote workgroup for which the normal browse propagation rules don\*(Aqt work\&. The remote workgroup can be anywhere that you can send IP packets to\&.
 .sp
 For example:
@@ -8244,5 +8253,5 @@
 to periodically request synchronization of browse lists with the master browser of a Samba server that is on a remote segment\&. This option will allow you to gain browse lists for multiple workgroups across routed networks\&. This is done in a manner that does not work with any non\-Samba servers\&.
 .sp
-This is useful if you want your Samba server and all local clients to appear in a remote workgroup for which the normal browse propagation rules don\'t work\&. The remote workgroup can be anywhere that you can send IP packets to\&.
+This is useful if you want your Samba server and all local clients to appear in a remote workgroup for which the normal browse propagation rules don\*(Aqt work\&. The remote workgroup can be anywhere that you can send IP packets to\&.
 .sp
 For example:
@@ -8483,5 +8492,5 @@
 This parameter controls what UNIX permission bits will be set when a Windows NT client is manipulating the UNIX permission on a file using the native NT security dialog box\&.
 .sp
-This parameter is applied as a mask (AND\'ed with) to the incoming permission bits, thus resetting any bits not in this mask\&. Make sure not to mix up this parameter with
+This parameter is applied as a mask (AND\*(Aqed with) to the incoming permission bits, thus resetting any bits not in this mask\&. Make sure not to mix up this parameter with
 \m[blue]\fBforce security mode\fR\m[], which works in a manner similar to this one but uses a logical OR instead of an AND\&.
 .sp
@@ -8558,5 +8567,5 @@
 that the name of the resource being requested is
 \fInot\fR
-sent to the server until after the server has successfully authenticated the client\&. This is why guest shares don\'t work in user level security without allowing the server to automatically map unknown users into the
+sent to the server until after the server has successfully authenticated the client\&. This is why guest shares don\*(Aqt work in user level security without allowing the server to automatically map unknown users into the
 \m[blue]\fBguest account\fR\m[]\&. See the
 \m[blue]\fBmap to guest\fR\m[]
@@ -8579,5 +8588,5 @@
 .sp
 \fINote\fR
-that from the client\'s point of view
+that from the client\*(Aqs point of view
 security = domain
 is the same as
@@ -8587,5 +8596,5 @@
 that the name of the resource being requested is
 \fInot\fR
-sent to the server until after the server has successfully authenticated the client\&. This is why guest shares don\'t work in user level security without allowing the server to automatically map unknown users into the
+sent to the server until after the server has successfully authenticated the client\&. This is why guest shares don\*(Aqt work in user level security without allowing the server to automatically map unknown users into the
 \m[blue]\fBguest account\fR\m[]\&. See the
 \m[blue]\fBmap to guest\fR\m[]
@@ -8747,5 +8756,5 @@
 .ps -1
 .br
-This mode of operation has significant pitfalls since it is more vulnerable to man\-in\-the\-middle attacks and server impersonation\&. In particular, this mode of operation can cause significant resource consumption on the PDC, as it must maintain an active connection for the duration of the user\'s session\&. Furthermore, if this connection is lost, there is no way to reestablish it, and further authentications to the Samba server may fail (from a single client, till it disconnects)\&.
+This mode of operation has significant pitfalls since it is more vulnerable to man\-in\-the\-middle attacks and server impersonation\&. In particular, this mode of operation can cause significant resource consumption on the PDC, as it must maintain an active connection for the duration of the user\*(Aqs session\&. Furthermore, if this connection is lost, there is no way to reestablish it, and further authentications to the Samba server may fail (from a single client, till it disconnects)\&.
 .sp .5v
 .RE
@@ -8778,5 +8787,5 @@
 .ps -1
 .br
-From the client\'s point of view,
+From the client\*(Aqs point of view,
 security = server
 is the same as
@@ -8802,5 +8811,5 @@
 that the name of the resource being requested is
 \fInot\fR
-sent to the server until after the server has successfully authenticated the client\&. This is why guest shares don\'t work in user level security without allowing the server to automatically map unknown users into the
+sent to the server until after the server has successfully authenticated the client\&. This is why guest shares don\*(Aqt work in user level security without allowing the server to automatically map unknown users into the
 \m[blue]\fBguest account\fR\m[]\&. See the
 \m[blue]\fBmap to guest\fR\m[]
@@ -8841,5 +8850,5 @@
 If enabled, Samba can attempt to help clients to use Kerberos to contact it, even when known only by IP address or a name not registered with our KDC as a service principal name\&. Kerberos relies on names, so ordinarily cannot function in this situation\&.
 .sp
-If disabled, Samba will send the string not_defined_in_RFC4178@please_ignore as the \'rfc4178 hint\', following the updated RFC and Windows 2008 behaviour in this area\&.
+If disabled, Samba will send the string not_defined_in_RFC4178@please_ignore as the \*(Aqrfc4178 hint\*(Aq, following the updated RFC and Windows 2008 behaviour in this area\&.
 .sp
 Note that Windows XP SP2 and later versions already ignored this value in all circumstances\&.
@@ -8949,5 +8958,5 @@
 .sp
 Example:
-\fI\fIset primary group script\fR\fR\fI = \fR\fI/usr/sbin/usermod \-g \'%g\' \'%u\'\fR\fI \fR
+\fI\fIset primary group script\fR\fR\fI = \fR\fI/usr/sbin/usermod \-g \*(Aq%g\*(Aq \*(Aq%u\*(Aq\fR\fI \fR
 .RE
 
@@ -9550,6 +9559,6 @@
 .RE
 Those marked with a
-\fI\'*\'\fR
-take an integer argument\&. The others can optionally take a 1 or 0 argument to enable or disable the option, by default they will be enabled if you don\'t specify 1 or 0\&.
+\fI\*(Aq*\*(Aq\fR
+take an integer argument\&. The others can optionally take a 1 or 0 argument to enable or disable the option, by default they will be enabled if you don\*(Aqt specify 1 or 0\&.
 .sp
 To specify an argument use the syntax SOME_OPTION = VALUE for example
@@ -9634,7 +9643,7 @@
 the server will change from UNIX behaviour of not committing real disk storage blocks when a file is extended to the Windows behaviour of actually forcing the disk system to allocate real storage blocks when a file is created or extended to be a given size\&. In UNIX terminology this means that Samba will stop creating sparse files\&.
 .sp
-This option is really desgined for file systems that support fast allocation of large numbers of blocks such as extent\-based file systems\&. On file systems that don\'t support extents (most notably ext3) this can make Samba slower\&. When you work with large files over >100MB on file systems without extents you may even run into problems with clients running into timeouts\&.
-.sp
-When you have an extent based filesystem it\'s likely that we can make use of unwritten extents which allows Samba to allocate even large amounts of space very fast and you will not see any timeout problems caused by strict allocate\&. With strict allocate in use you will also get much better out of quota messages in case you use quotas\&. Another advantage of activating this setting is that it will help to reduce file fragmentation\&.
+This option is really desgined for file systems that support fast allocation of large numbers of blocks such as extent\-based file systems\&. On file systems that don\*(Aqt support extents (most notably ext3) this can make Samba slower\&. When you work with large files over >100MB on file systems without extents you may even run into problems with clients running into timeouts\&.
+.sp
+When you have an extent based filesystem it\*(Aqs likely that we can make use of unwritten extents which allows Samba to allocate even large amounts of space very fast and you will not see any timeout problems caused by strict allocate\&. With strict allocate in use you will also get much better out of quota messages in case you use quotas\&. Another advantage of activating this setting is that it will help to reduce file fragmentation\&.
 .sp
 To give you an idea on which filesystems this setting might currently be a good option for you: XFS, ext4, btrfs, ocfs2 on Linux and JFS2 on AIX support unwritten extents\&. On Filesystems that do not support it, preallocation is probably an expensive operation where you will see reduced performance and risk to let clients run into timeouts when creating large files\&. Examples are ext3, ZFS, HFS+ and most others, so be aware if you activate this setting on those filesystems\&.
@@ -9687,5 +9696,5 @@
 The administrator must create a directory name
 svcctl
-in Samba\'s $(libdir) and create symbolic links to the init scripts in
+in Samba\*(Aqs $(libdir) and create symbolic links to the init scripts in
 /etc/init\&.d/\&. The name of the links must match the names given as part of the
 \fIsvcctl list\fR\&.
@@ -9704,5 +9713,5 @@
 This is a boolean parameter that controls whether writes will always be written to stable storage before the write call returns\&. If this is
 \fBno\fR
-then the server will be guided by the client\'s request in each write call (clients can set a bit indicating that a particular write should be synchronous)\&. If this is
+then the server will be guided by the client\*(Aqs request in each write call (clients can set a bit indicating that a particular write should be synchronous)\&. If this is
 \fByes\fR
 then every write will be followed by a
@@ -9756,7 +9765,7 @@
 daemon uses this parameter to fill in the home directory for that user\&. If the string
 \fI%D\fR
-is present it is substituted with the user\'s Windows NT domain name\&. If the string
+is present it is substituted with the user\*(Aqs Windows NT domain name\&. If the string
 \fI%U\fR
-is present it is substituted with the user\'s Windows NT user name\&.
+is present it is substituted with the user\*(Aqs Windows NT user name\&.
 .sp
 Default:
@@ -9895,5 +9904,5 @@
 .PP
 .RS 4
-This option helps Samba to try and \'guess\' at the real UNIX username, as many DOS clients send an all\-uppercase username\&. By default Samba tries all lowercase, followed by the username with the first letter capitalized, and fails if the username is not found on the UNIX machine\&.
+This option helps Samba to try and \*(Aqguess\*(Aq at the real UNIX username, as many DOS clients send an all\-uppercase username\&. By default Samba tries all lowercase, followed by the username with the first letter capitalized, and fails if the username is not found on the UNIX machine\&.
 .sp
 If this parameter is set to non\-zero the behavior changes\&. This parameter is a number that specifies the number of uppercase combinations to try while trying to determine the UNIX user name\&. The higher the number the more combinations will be tried, but the slower the discovery of usernames will be\&. Use this parameter when you have strange usernames on your UNIX machine, such as
@@ -9956,11 +9965,11 @@
 DOMAIN\efoo)\&.
 .sp
-The map file is parsed line by line\&. Each line should contain a single UNIX username on the left then a \'=\' followed by a list of usernames on the right\&. The list of usernames on the right may contain names of the form @group in which case they will match any UNIX username in that group\&. The special client name \'*\' is a wildcard and matches any name\&. Each line of the map file may be up to 1023 characters long\&.
-.sp
-The file is processed on each line by taking the supplied username and comparing it with each username on the right hand side of the \'=\' signs\&. If the supplied name matches any of the names on the right hand side then it is replaced with the name on the left\&. Processing then continues with the next line\&.
-.sp
-If any line begins with a \'#\' or a \';\' then it is ignored\&.
-.sp
-If any line begins with an \'!\' then the processing will stop after that line if a mapping was done by the line\&. Otherwise mapping continues with every line being processed\&. Using \'!\' is most useful when you have a wildcard mapping line later in the file\&.
+The map file is parsed line by line\&. Each line should contain a single UNIX username on the left then a \*(Aq=\*(Aq followed by a list of usernames on the right\&. The list of usernames on the right may contain names of the form @group in which case they will match any UNIX username in that group\&. The special client name \*(Aq*\*(Aq is a wildcard and matches any name\&. Each line of the map file may be up to 1023 characters long\&.
+.sp
+The file is processed on each line by taking the supplied username and comparing it with each username on the right hand side of the \*(Aq=\*(Aq signs\&. If the supplied name matches any of the names on the right hand side then it is replaced with the name on the left\&. Processing then continues with the next line\&.
+.sp
+If any line begins with a \*(Aq#\*(Aq or a \*(Aq;\*(Aq then it is ignored\&.
+.sp
+If any line begins with an \*(Aq!\*(Aq then the processing will stop after that line if a mapping was done by the line\&. Otherwise mapping continues with every line being processed\&. Using \*(Aq!\*(Aq is most useful when you have a wildcard mapping line later in the file\&.
 .sp
 For example to map from the name
@@ -10018,5 +10027,5 @@
 would map the windows username "Andrew Tridgell" to the unix username "tridge"\&.
 .sp
-The following example would map mary and fred to the unix user sys, and map the rest to guest\&. Note the use of the \'!\' to tell Samba to stop processing if it gets a match on that line:
+The following example would map mary and fred to the unix user sys, and map the rest to guest\&. Note the use of the \*(Aq!\*(Aq to tell Samba to stop processing if it gets a match on that line:
 .sp
 .if n \{\
@@ -10042,5 +10051,5 @@
 (if you have one)\&. The password server will receive whatever username the client supplies without modification\&.
 .sp
-Also note that no reverse mapping is done\&. The main effect this has is with printing\&. Users who have been mapped may have trouble deleting print jobs as PrintManager under WfWg will think they don\'t own the print job\&.
+Also note that no reverse mapping is done\&. The main effect this has is with printing\&. Users who have been mapped may have trouble deleting print jobs as PrintManager under WfWg will think they don\*(Aqt own the print job\&.
 .sp
 Samba versions prior to 3\&.0\&.8 would only support reading the fully qualified username (e\&.g\&.:
@@ -10108,9 +10117,9 @@
 parameter\&.
 .sp
-If any of the usernames begin with a \'@\' then the name will be looked up first in the NIS netgroups list (if Samba is compiled with netgroup support), followed by a lookup in the UNIX groups database and will expand to a list of all users in the group of that name\&.
-.sp
-If any of the usernames begin with a \'+\' then the name will be looked up only in the UNIX groups database and will expand to a list of all users in the group of that name\&.
-.sp
-If any of the usernames begin with a \'&\' then the name will be looked up only in the NIS netgroups database (if Samba is compiled with netgroup support) and will expand to a list of all users in the netgroup group of that name\&.
+If any of the usernames begin with a \*(Aq@\*(Aq then the name will be looked up first in the NIS netgroups list (if Samba is compiled with netgroup support), followed by a lookup in the UNIX groups database and will expand to a list of all users in the group of that name\&.
+.sp
+If any of the usernames begin with a \*(Aq+\*(Aq then the name will be looked up only in the UNIX groups database and will expand to a list of all users in the group of that name\&.
+.sp
+If any of the usernames begin with a \*(Aq&\*(Aq then the name will be looked up only in the NIS netgroups database (if Samba is compiled with netgroup support) and will expand to a list of all users in the netgroup group of that name\&.
 .sp
 Note that searching though a groups database can take quite some time, and some clients may time out during the search\&.
@@ -10191,5 +10200,5 @@
 .PP
 .RS 4
-This parameter specifies a list of absolute pathnames the root of which are allowed to be exported by user defined share definitions\&. If the pathname to be exported doesn\'t start with one of the strings in this list, the user defined share will not be allowed\&. This allows the Samba administrator to restrict the directories on the system that can be exported by user defined shares\&.
+This parameter specifies a list of absolute pathnames the root of which are allowed to be exported by user defined share definitions\&. If the pathname to be exported doesn\*(Aqt start with one of the strings in this list, the user defined share will not be allowed\&. This allows the Samba administrator to restrict the directories on the system that can be exported by user defined shares\&.
 .sp
 If there is a "usershare prefix deny list" and also a "usershare prefix allow list" the deny list is processed first, followed by the allow list, thus leading to the most restrictive interpretation\&.
@@ -10239,5 +10248,5 @@
 \fByes\fR, and the
 \fBsendfile()\fR
-system call is supported by the underlying operating system, then some SMB read calls (mainly ReadAndX and ReadRaw) will use the more efficient sendfile system call for files that are exclusively oplocked\&. This may make more efficient use of the system CPU\'s and cause Samba to be faster\&. Samba automatically turns this off for clients that use protocol levels lower than NT LM 0\&.12 and when it detects a client is Windows 9x (using sendfile from Linux will cause these clients to fail)\&.
+system call is supported by the underlying operating system, then some SMB read calls (mainly ReadAndX and ReadRaw) will use the more efficient sendfile system call for files that are exclusively oplocked\&. This may make more efficient use of the system CPU\*(Aqs and cause Samba to be faster\&. Samba automatically turns this off for clients that use protocol levels lower than NT LM 0\&.12 and when it detects a client is Windows 9x (using sendfile from Linux will cause these clients to fail)\&.
 .sp
 Default:
@@ -10292,5 +10301,5 @@
 .PP
 .RS 4
-This is a list of users that should be allowed to login to this service\&. Names starting with \'@\', \'+\' and \'&\' are interpreted using the same rules as described in the
+This is a list of users that should be allowed to login to this service\&. Names starting with \*(Aq@\*(Aq, \*(Aq+\*(Aq and \*(Aq&\*(Aq are interpreted using the same rules as described in the
 \fIinvalid users\fR
 parameter\&.
@@ -10326,9 +10335,9 @@
 .PP
 .RS 4
-This is a list of files and directories that are neither visible nor accessible\&. Each entry in the list must be separated by a \'/\', which allows spaces to be included in the entry\&. \'*\' and \'?\' can be used to specify multiple files or directories as in DOS wildcards\&.
+This is a list of files and directories that are neither visible nor accessible\&. Each entry in the list must be separated by a \*(Aq/\*(Aq, which allows spaces to be included in the entry\&. \*(Aq*\*(Aq and \*(Aq?\*(Aq can be used to specify multiple files or directories as in DOS wildcards\&.
 .sp
 Each entry must be a unix path, not a DOS path and must
 \fInot\fR
-include the unix directory separator \'/\'\&.
+include the unix directory separator \*(Aq/\*(Aq\&.
 .sp
 Note that the
@@ -10336,5 +10345,5 @@
 option is applicable in vetoing files\&.
 .sp
-One feature of the veto files parameter that it is important to be aware of is Samba\'s behaviour when trying to delete a directory\&. If a directory that is to be deleted contains nothing but veto files this deletion will
+One feature of the veto files parameter that it is important to be aware of is Samba\*(Aqs behaviour when trying to delete a directory\&. If a directory that is to be deleted contains nothing but veto files this deletion will
 \fIfail\fR
 unless you also set the
@@ -10584,5 +10593,5 @@
 .PP
 .RS 4
-If set to yes, this parameter activates the support for nested groups\&. Nested groups are also called local groups or aliases\&. They work like their counterparts in Windows: Nested groups are defined locally on any machine (they are shared between DC\'s through their SAM) and can contain users and global groups from any trusted SAM\&. To be able to use nested groups, you need to run nss_winbind\&.
+If set to yes, this parameter activates the support for nested groups\&. Nested groups are also called local groups or aliases\&. They work like their counterparts in Windows: Nested groups are defined locally on any machine (they are shared between DC\*(Aqs through their SAM) and can contain users and global groups from any trusted SAM\&. To be able to use nested groups, you need to run nss_winbind\&.
 .sp
 Default:
@@ -10609,5 +10618,5 @@
 .PP
 .RS 4
-This parameter is designed to control how Winbind retrieves Name Service Information to construct a user\'s home directory and login shell\&. Currently the following settings are available:
+This parameter is designed to control how Winbind retrieves Name Service Information to construct a user\*(Aqs home directory and login shell\&. Currently the following settings are available:
 .sp
 .RS 4
@@ -10717,5 +10726,5 @@
 .sp
 Default:
-\fI\fIwinbind separator\fR\fR\fI = \fR\fI\'\e\'\fR\fI \fR
+\fI\fIwinbind separator\fR\fR\fI = \fR\fI\*(Aq\e\*(Aq\fR\fI \fR
 .sp
 Example:
@@ -10727,5 +10736,5 @@
 .PP
 .RS 4
-This parameter is designed to allow Samba servers that are members of a Samba controlled domain to use UNIX accounts distributed via NIS, rsync, or LDAP as the uid\'s for winbindd users in the hosts primary domain\&. Therefore, the user
+This parameter is designed to allow Samba servers that are members of a Samba controlled domain to use UNIX accounts distributed via NIS, rsync, or LDAP as the uid\*(Aqs for winbindd users in the hosts primary domain\&. Therefore, the user
 DOMAIN\euser1
 would be mapped to the account user1 in /etc/passwd instead of allocating a new uid for him or her\&.
@@ -10745,5 +10754,5 @@
 This parameter specifies whether the
 \fBwinbindd\fR(8)
-daemon should operate on users without domain component in their username\&. Users without a domain component are treated as is part of the winbindd server\'s own domain\&. While this does not benefit Windows users, it makes SSH, FTP and e\-mail function in a way much closer to the way they would in a native unix system\&.
+daemon should operate on users without domain component in their username\&. Users without a domain component are treated as is part of the winbindd server\*(Aqs own domain\&. While this does not benefit Windows users, it makes SSH, FTP and e\-mail function in a way much closer to the way they would in a native unix system\&.
 .sp
 This option should be avoided if possible\&. It can cause confusion about responsibilities for a user or group\&. In many situations it is not clear whether winbind or /etc/passwd should be seen as authoritative for a user, likewise for groups\&.
@@ -10849,9 +10858,9 @@
 This specifies the IP address (or DNS name: IP address for preference) of the WINS server that
 \fBnmbd\fR(8)
-should register with\&. If you have a WINS server on your network then you should set this to the WINS server\'s IP\&.
+should register with\&. If you have a WINS server on your network then you should set this to the WINS server\*(Aqs IP\&.
 .sp
 You should point this at your WINS server if you have a multi\-subnetted network\&.
 .sp
-If you want to work in multiple namespaces, you can give every wins server a \'tag\'\&. For each tag, only one (working) server will be queried for a name\&. The tag should be separated from the ip address by a colon\&.
+If you want to work in multiple namespaces, you can give every wins server a \*(Aqtag\*(Aq\&. For each tag, only one (working) server will be queried for a name\&. The tag should be separated from the ip address by a colon\&.
 .if n \{\
 .sp
@@ -10875,5 +10884,5 @@
 .sp
 Example:
-\fI\fIwins server\fR\fR\fI = \fR\fImary:192\&.9\&.200\&.1 fred:192\&.168\&.3\&.199 mary:192\&.168\&.2\&.61 # For this example when querying a certain name, 192\&.19\&.200\&.1 will be asked first and if that doesn\'t respond 192\&.168\&.2\&.61\&. If either of those doesn\'t know the name 192\&.168\&.3\&.199 will be queried\&.\fR\fI \fR
+\fI\fIwins server\fR\fR\fI = \fR\fImary:192\&.9\&.200\&.1 fred:192\&.168\&.3\&.199 mary:192\&.168\&.2\&.61 # For this example when querying a certain name, 192\&.19\&.200\&.1 will be asked first and if that doesn\*(Aqt respond 192\&.168\&.2\&.61\&. If either of those doesn\*(Aqt know the name 192\&.168\&.3\&.199 will be queried\&.\fR\fI \fR
 .sp
 Example:
@@ -10979,5 +10988,5 @@
 .PP
 .RS 4
-This parameter controls whether or not the server will support raw write SMB\'s when transferring data from clients\&. You should never need to change this parameter\&.
+This parameter controls whether or not the server will support raw write SMB\*(Aqs when transferring data from clients\&. You should never need to change this parameter\&.
 .sp
 Default:
@@ -11004,5 +11013,5 @@
 .SH "WARNINGS"
 .PP
-Although the configuration file permits service names to contain spaces, your client software may not\&. Spaces will be ignored in comparisons anyway, so it shouldn\'t be a problem \- but be aware of the possibility\&.
+Although the configuration file permits service names to contain spaces, your client software may not\&. Spaces will be ignored in comparisons anyway, so it shouldn\*(Aqt be a problem \- but be aware of the possibility\&.
 .PP
 On a similar note, many clients \- especially DOS clients \- limit service names to eight characters\&.
Index: trunk/server/docs/manpages/smbcacls.1
===================================================================
--- trunk/server/docs/manpages/smbcacls.1	(revision 857)
+++ trunk/server/docs/manpages/smbcacls.1	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: smbcacls
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: User Commands
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "SMBCACLS" "1" "10/29/2012" "Samba 3\&.6" "User Commands"
+.TH "SMBCACLS" "1" "09/18/2013" "Samba 3\&.6" "User Commands"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
@@ -91,5 +100,5 @@
 \-t|\-\-test\-args
 .RS 4
-Don\'t actually do anything, only validate the correctness of the arguments\&.
+Don\*(Aqt actually do anything, only validate the correctness of the arguments\&.
 .RE
 .PP
@@ -109,5 +118,5 @@
 .sp
 Note that specifying this parameter here will override the
-\m[blue]\fB\%smb.conf.5.html#\fR\m[]
+\m[blue]\fBlog level\fR\m[]
 parameter in the
 smb\&.conf
@@ -355,5 +364,5 @@
 .\}
 \fIREAD\fR
-\- Equivalent to \'RX\' permissions
+\- Equivalent to \*(AqRX\*(Aq permissions
 .RE
 .sp
@@ -367,5 +376,5 @@
 .\}
 \fICHANGE\fR
-\- Equivalent to \'RXWD\' permissions
+\- Equivalent to \*(AqRXWD\*(Aq permissions
 .RE
 .sp
@@ -379,5 +388,5 @@
 .\}
 \fIFULL\fR
-\- Equivalent to \'RWXDPO\' permissions
+\- Equivalent to \*(AqRWXDPO\*(Aq permissions
 .RE
 .SH "EXIT STATUS"
@@ -389,5 +398,5 @@
 If the operation succeeded, smbcacls returns and exit status of 0\&. If
 smbcacls
-couldn\'t connect to the specified server, or there was an error getting or setting the ACLs, an exit status of 1 is returned\&. If there was an error parsing any command line arguments, an exit status of 2 is returned\&.
+couldn\*(Aqt connect to the specified server, or there was an error getting or setting the ACLs, an exit status of 1 is returned\&. If there was an error parsing any command line arguments, an exit status of 2 is returned\&.
 .SH "VERSION"
 .PP
Index: trunk/server/docs/manpages/smbclient.1
===================================================================
--- trunk/server/docs/manpages/smbclient.1	(revision 857)
+++ trunk/server/docs/manpages/smbclient.1	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: smbclient
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: User Commands
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "SMBCLIENT" "1" "10/29/2012" "Samba 3\&.6" "User Commands"
+.TH "SMBCLIENT" "1" "09/18/2013" "Samba 3\&.6" "User Commands"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
@@ -33,5 +42,5 @@
 .PP
 smbclient
-is a client that can \'talk\' to an SMB/CIFS server\&. It offers an interface similar to that of the ftp program (see
+is a client that can \*(Aqtalk\*(Aq to an SMB/CIFS server\&. It offers an interface similar to that of the ftp program (see
 \fBftp\fR(1))\&. Operations include things like getting files from the server to the local machine, putting files from the local machine to the server, retrieving directory information from the server and so on\&.
 .SH "OPTIONS"
@@ -218,5 +227,5 @@
 This parameter causes the client to write messages to the standard error stream (stderr) rather than to the standard output stream\&.
 .sp
-By default, the client writes messages to standard output \- typically the user\'s tty\&.
+By default, the client writes messages to standard output \- typically the user\*(Aqs tty\&.
 .RE
 .PP
@@ -227,5 +236,5 @@
 and a list should appear\&. The
 \fI\-I \fR
-option may be useful if your NetBIOS names don\'t match your TCP/IP DNS host names or if you are trying to reach a host on another network\&.
+option may be useful if your NetBIOS names don\*(Aqt match your TCP/IP DNS host names or if you are trying to reach a host on another network\&.
 .RE
 .PP
@@ -250,5 +259,5 @@
 .sp
 Note that specifying this parameter here will override the
-\m[blue]\fB\%smb.conf.5.html#\fR\m[]
+\m[blue]\fBlog level\fR\m[]
 parameter in the
 smb\&.conf
@@ -339,5 +348,5 @@
 .RS 4
 This option allows you to override the NetBIOS name that Samba uses for itself\&. This is identical to setting the
-\m[blue]\fB\%smb.conf.5.html#\fR\m[]
+\m[blue]\fBnetbios name\fR\m[]
 parameter in the
 smb\&.conf
@@ -492,5 +501,5 @@
 .\}
 \fIr\fR
-\- Regular expression include or exclude\&. Uses regular expression matching for excluding or excluding files if compiled with HAVE_REGEX_H\&. However this mode can be very slow\&. If not compiled with HAVE_REGEX_H, does a limited wildcard match on \'*\' and \'?\'\&.
+\- Regular expression include or exclude\&. Uses regular expression matching for excluding or excluding files if compiled with HAVE_REGEX_H\&. However this mode can be very slow\&. If not compiled with HAVE_REGEX_H, does a limited wildcard match on \*(Aq*\*(Aq and \*(Aq?\*(Aq\&.
 .RE
 .sp
@@ -528,10 +537,10 @@
 \fITar Long File Names\fR
 .sp
-smbclient\'s tar option now supports long file names both on backup and restore\&. However, the full path name of the file must be less than 1024 bytes\&. Also, when a tar archive is created,
-smbclient\'s tar option places all files in the archive with relative names, not absolute names\&.
+smbclient\*(Aqs tar option now supports long file names both on backup and restore\&. However, the full path name of the file must be less than 1024 bytes\&. Also, when a tar archive is created,
+smbclient\*(Aqs tar option places all files in the archive with relative names, not absolute names\&.
 .sp
 \fITar Filenames\fR
 .sp
-All file names can be given as DOS path names (with \'\e\e\' as the component separator) or as UNIX path names (with \'/\' as the component separator)\&.
+All file names can be given as DOS path names (with \*(Aq\e\e\*(Aq as the component separator) or as UNIX path names (with \*(Aq/\*(Aq as the component separator)\&.
 .sp
 \fIExamples\fR
@@ -580,5 +589,5 @@
 .sp
 This is particularly useful in scripts and for printing stdin to the server, e\&.g\&.
-\-c \'print \-\'\&.
+\-c \*(Aqprint \-\*(Aq\&.
 .RE
 .SH "OPERATIONS"
@@ -963,5 +972,5 @@
 tarmode <full|inc|reset|noreset>
 .RS 4
-Changes tar\'s behavior with regard to archive bits\&. In full mode, tar will back up everything regardless of the archive bit setting (this is the default mode)\&. In incremental mode, tar will only back up files with the archive bit set\&. In reset mode, tar will reset the archive bit on all files it backs up (implies read/write share)\&.
+Changes tar\*(Aqs behavior with regard to archive bits\&. In full mode, tar will back up everything regardless of the archive bit setting (this is the default mode)\&. In incremental mode, tar will only back up files with the archive bit set\&. In reset mode, tar will reset the archive bit on all files it backs up (implies read/write share)\&.
 .RE
 .PP
Index: trunk/server/docs/manpages/smbcontrol.1
===================================================================
--- trunk/server/docs/manpages/smbcontrol.1	(revision 857)
+++ trunk/server/docs/manpages/smbcontrol.1	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: smbcontrol
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: User Commands
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "SMBCONTROL" "1" "10/29/2012" "Samba 3\&.6" "User Commands"
+.TH "SMBCONTROL" "1" "09/18/2013" "Samba 3\&.6" "User Commands"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
@@ -106,5 +115,5 @@
 close\-share
 .RS 4
-Order smbd to close the client connections to the named share\&. Note that this doesn\'t affect client connections to any other shares\&. This message\-type takes an argument of the share name for which client connections will be closed, or the "*" character which will close all currently open shares\&. This may be useful if you made changes to the access controls on the share\&. This message can only be sent to
+Order smbd to close the client connections to the named share\&. Note that this doesn\*(Aqt affect client connections to any other shares\&. This message\-type takes an argument of the share name for which client connections will be closed, or the "*" character which will close all currently open shares\&. This may be useful if you made changes to the access controls on the share\&. This message can only be sent to
 \fBsmbd\fR\&.
 .RE
@@ -171,5 +180,5 @@
 .RE
 .sp
-Note that this message only sends notification that an event has occurred\&. It doesn\'t actually cause the event to happen\&.
+Note that this message only sends notification that an event has occurred\&. It doesn\*(Aqt actually cause the event to happen\&.
 .sp
 This message can only be sent to
Index: trunk/server/docs/manpages/smbcquotas.1
===================================================================
--- trunk/server/docs/manpages/smbcquotas.1	(revision 857)
+++ trunk/server/docs/manpages/smbcquotas.1	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: smbcquotas
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: User Commands
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "SMBCQUOTAS" "1" "10/29/2012" "Samba 3\&.6" "User Commands"
+.TH "SMBCQUOTAS" "1" "09/18/2013" "Samba 3\&.6" "User Commands"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
@@ -41,5 +50,5 @@
 \-u user
 .RS 4
-Specifies the user of whom the quotas are get or set\&. By default the current user\'s username will be used\&.
+Specifies the user of whom the quotas are get or set\&. By default the current user\*(Aqs username will be used\&.
 .RE
 .PP
@@ -66,5 +75,5 @@
 \-t
 .RS 4
-Don\'t actually do anything, only validate the correctness of the arguments\&.
+Don\*(Aqt actually do anything, only validate the correctness of the arguments\&.
 .RE
 .PP
@@ -89,5 +98,5 @@
 .sp
 Note that specifying this parameter here will override the
-\m[blue]\fB\%smb.conf.5.html#\fR\m[]
+\m[blue]\fBlog level\fR\m[]
 parameter in the
 smb\&.conf
@@ -199,5 +208,5 @@
 If the operation succeeded, smbcquotas returns an exit status of 0\&. If
 smbcquotas
-couldn\'t connect to the specified server, or when there was an error getting or setting the quota(s), an exit status of 1 is returned\&. If there was an error parsing any command line arguments, an exit status of 2 is returned\&.
+couldn\*(Aqt connect to the specified server, or when there was an error getting or setting the quota(s), an exit status of 1 is returned\&. If there was an error parsing any command line arguments, an exit status of 2 is returned\&.
 .SH "VERSION"
 .PP
Index: trunk/server/docs/manpages/smbd.8
===================================================================
--- trunk/server/docs/manpages/smbd.8	(revision 857)
+++ trunk/server/docs/manpages/smbd.8	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: smbd
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: System Administration tools
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "SMBD" "8" "10/29/2012" "Samba 3\&.6" "System Administration tools"
+.TH "SMBD" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
@@ -66,5 +75,5 @@
 and
 svscan
-from Daniel J\&. Bernstein\'s
+from Daniel J\&. Bernstein\*(Aqs
 daemontools
 package, or the AIX process monitor\&.
@@ -97,5 +106,5 @@
 .sp
 Note that specifying this parameter here will override the
-\m[blue]\fB\%smb.conf.5.html#\fR\m[]
+\m[blue]\fBlog level\fR\m[]
 parameter in the
 smb\&.conf
@@ -222,5 +231,5 @@
 .IP \(bu 2.3
 .\}
-\fISession Management\fR: When not using share level security, users must pass PAM\'s session checks before access is granted\&. Note however, that this is bypassed in share level security\&. Note also that some older pam configuration files may need a line added for session support\&.
+\fISession Management\fR: When not using share level security, users must pass PAM\*(Aqs session checks before access is granted\&. Note however, that this is bypassed in share level security\&. Note also that some older pam configuration files may need a line added for session support\&.
 .RE
 .SH "VERSION"
@@ -236,5 +245,5 @@
 .SH "TDB FILES"
 .PP
-Samba stores it\'s data in several TDB (Trivial Database) files, usually located in
+Samba stores it\*(Aqs data in several TDB (Trivial Database) files, usually located in
 /var/lib/samba\&.
 .PP
@@ -318,5 +327,5 @@
 sessionid\&.tdb
 .RS 4
-session information (e\&.g\&. support for \'utmp = yes\')
+session information (e\&.g\&. support for \*(Aqutmp = yes\*(Aq)
 .RE
 .PP
@@ -328,15 +337,15 @@
 winbindd_cache\&.tdb
 .RS 4
-winbindd\'s cache of user lists, etc\&.\&.\&.
+winbindd\*(Aqs cache of user lists, etc\&.\&.\&.
 .RE
 .PP
 winbindd_idmap\&.tdb*
 .RS 4
-winbindd\'s local idmap db
+winbindd\*(Aqs local idmap db
 .RE
 .PP
 wins\&.dat*
 .RS 4
-wins database when \'wins support = yes\'
+wins database when \*(Aqwins support = yes\*(Aq
 .RE
 .SH "SIGNALS"
@@ -348,5 +357,5 @@
 configuration file within a short period of time\&.
 .PP
-To shut down a user\'s
+To shut down a user\*(Aqs
 smbd
 process it is recommended that
@@ -375,5 +384,5 @@
 \fBsmbclient\fR(1),
 \fBtestparm\fR(1),
-\fBtestprns\fR(1), and the Internet RFC\'s
+\fBtestprns\fR(1), and the Internet RFC\*(Aqs
 rfc1001\&.txt,
 rfc1002\&.txt\&. In addition the CIFS (formerly SMB) specification is available as a link from the Web page
Index: trunk/server/docs/manpages/smbget.1
===================================================================
--- trunk/server/docs/manpages/smbget.1	(revision 857)
+++ trunk/server/docs/manpages/smbget.1	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: smbget
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: User Commands
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "SMBGET" "1" "10/29/2012" "Samba 3\&.6" "User Commands"
+.TH "SMBGET" "1" "09/18/2013" "Samba 3\&.6" "User Commands"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
@@ -68,5 +77,5 @@
 \-n, \-\-nonprompt
 .RS 4
-Don\'t ask anything (non\-interactive)
+Don\*(Aqt ask anything (non\-interactive)
 .RE
 .PP
@@ -127,5 +136,5 @@
 .SH "SMB URLS"
 .PP
-SMB URL\'s should be specified in the following format:
+SMB URL\*(Aqs should be specified in the following format:
 .PP
 .if n \{\
@@ -164,5 +173,5 @@
 .\}
 .nf
-# Recursively download \'src\' directory
+# Recursively download \*(Aqsrc\*(Aq directory
 smbget \-R smb://rhonwyn/jelmer/src
 # Download FreeBSD ISO and enable resuming
Index: trunk/server/docs/manpages/smbgetrc.5
===================================================================
--- trunk/server/docs/manpages/smbgetrc.5	(revision 857)
+++ trunk/server/docs/manpages/smbgetrc.5	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: smbgetrc
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: File Formats and Conventions
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "SMBGETRC" "5" "10/29/2012" "Samba 3\&.6" "File Formats and Conventions"
+.TH "SMBGETRC" "5" "09/18/2013" "Samba 3\&.6" "File Formats and Conventions"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
Index: trunk/server/docs/manpages/smbpasswd.5
===================================================================
--- trunk/server/docs/manpages/smbpasswd.5	(revision 857)
+++ trunk/server/docs/manpages/smbpasswd.5	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: smbpasswd
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: File Formats and Conventions
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "SMBPASSWD" "5" "10/29/2012" "Samba 3\&.6" "File Formats and Conventions"
+.TH "SMBPASSWD" "5" "09/18/2013" "Samba 3\&.6" "File Formats and Conventions"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
@@ -35,5 +44,5 @@
 The format of the smbpasswd file used by Samba 2\&.2 is very similar to the familiar Unix
 passwd(5)
-file\&. It is an ASCII file containing one line for each user\&. Each field ithin each line is separated from the next by a colon\&. Any entry beginning with \'#\' is ignored\&. The smbpasswd file contains the following information for each user:
+file\&. It is an ASCII file containing one line for each user\&. Each field ithin each line is separated from the next by a colon\&. Any entry beginning with \*(Aq#\*(Aq is ignored\&. The smbpasswd file contains the following information for each user:
 .PP
 name
@@ -49,5 +58,5 @@
 Lanman Password Hash
 .RS 4
-This is the LANMAN hash of the user\'s password, encoded as 32 hex digits\&. The LANMAN hash is created by DES encrypting a well known string with the user\'s password as the DES key\&. This is the same password used by Windows 95/98 machines\&. Note that this password hash is regarded as weak as it is vulnerable to dictionary attacks and if two users choose the same password this entry will be identical (i\&.e\&. the password is not "salted" as the UNIX password is)\&. If the user has a null password this field will contain the characters "NO PASSWORD" as the start of the hex string\&. If the hex string is equal to 32 \'X\' characters then the user\'s account is marked as
+This is the LANMAN hash of the user\*(Aqs password, encoded as 32 hex digits\&. The LANMAN hash is created by DES encrypting a well known string with the user\*(Aqs password as the DES key\&. This is the same password used by Windows 95/98 machines\&. Note that this password hash is regarded as weak as it is vulnerable to dictionary attacks and if two users choose the same password this entry will be identical (i\&.e\&. the password is not "salted" as the UNIX password is)\&. If the user has a null password this field will contain the characters "NO PASSWORD" as the start of the hex string\&. If the hex string is equal to 32 \*(AqX\*(Aq characters then the user\*(Aqs account is marked as
 \fBdisabled\fR
 and the user will not be able to log onto the Samba server\&.
@@ -63,5 +72,5 @@
 NT Password Hash
 .RS 4
-This is the Windows NT hash of the user\'s password, encoded as 32 hex digits\&. The Windows NT hash is created by taking the user\'s password as represented in 16\-bit, little\-endian UNICODE and then applying the MD4 (internet rfc1321) hashing algorithm to it\&.
+This is the Windows NT hash of the user\*(Aqs password, encoded as 32 hex digits\&. The Windows NT hash is created by taking the user\*(Aqs password as represented in 16\-bit, little\-endian UNICODE and then applying the MD4 (internet rfc1321) hashing algorithm to it\&.
 .sp
 This password hash is considered more secure than the LANMAN Password Hash as it preserves the case of the password and uses a much higher quality hashing algorithm\&. However, it is still the case that if two users choose the same password this entry will be identical (i\&.e\&. the password is not "salted" as the UNIX password is)\&.
@@ -76,5 +85,5 @@
 Account Flags
 .RS 4
-This section contains flags that describe the attributes of the users account\&. This field is bracketed by \'[\' and \']\' characters and is always 13 characters in length (including the \'[\' and \']\' characters)\&. The contents of this field may be any of the following characters:
+This section contains flags that describe the attributes of the users account\&. This field is bracketed by \*(Aq[\*(Aq and \*(Aq]\*(Aq characters and is always 13 characters in length (including the \*(Aq[\*(Aq and \*(Aq]\*(Aq characters)\&. The contents of this field may be any of the following characters:
 .sp
 .RS 4
@@ -150,5 +159,5 @@
 Last Change Time
 .RS 4
-This field consists of the time the account was last modified\&. It consists of the characters \'LCT\-\' (standing for "Last Change Time") followed by a numeric encoding of the UNIX time in seconds since the epoch (1970) that the last change was made\&.
+This field consists of the time the account was last modified\&. It consists of the characters \*(AqLCT\-\*(Aq (standing for "Last Change Time") followed by a numeric encoding of the UNIX time in seconds since the epoch (1970) that the last change was made\&.
 .RE
 .PP
Index: trunk/server/docs/manpages/smbpasswd.8
===================================================================
--- trunk/server/docs/manpages/smbpasswd.8	(revision 857)
+++ trunk/server/docs/manpages/smbpasswd.8	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: smbpasswd
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: System Administration tools
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "SMBPASSWD" "8" "10/29/2012" "Samba 3\&.6" "System Administration tools"
+.TH "SMBPASSWD" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
@@ -20,5 +29,5 @@
 .\" -----------------------------------------------------------------
 .SH "NAME"
-smbpasswd \- change a user\'s SMB password
+smbpasswd \- change a user\*(Aqs SMB password
 .SH "SYNOPSIS"
 .HP \w'\ 'u
@@ -34,5 +43,5 @@
 user or not\&. When run as a normal user it allows the user to change the password used for their SMB sessions on any machines that store SMB passwords\&.
 .PP
-By default (when run with no arguments) it will attempt to change the current user\'s SMB password on the local machine\&. This is similar to the way the
+By default (when run with no arguments) it will attempt to change the current user\*(Aqs SMB password on the local machine\&. This is similar to the way the
 passwd(1)
 program works\&.
@@ -83,10 +92,10 @@
 \fBdisabled\fR
 in the local smbpasswd file\&. This is done by writing a
-\fB\'D\'\fR
+\fB\*(AqD\*(Aq\fR
 flag into the account control space in the smbpasswd file\&. Once this is done all attempts to authenticate via SMB using this username will fail\&.
 .sp
-If the smbpasswd file is in the \'old\' format (pre\-Samba 2\&.0 format) there is no space in the user\'s password entry to write this information and the command will FAIL\&. See
+If the smbpasswd file is in the \*(Aqold\*(Aq format (pre\-Samba 2\&.0 format) there is no space in the user\*(Aqs password entry to write this information and the command will FAIL\&. See
 \fBsmbpasswd\fR(5)
-for details on the \'old\' and new password file formats\&.
+for details on the \*(Aqold\*(Aq and new password file formats\&.
 .sp
 This option is only available when running smbpasswd as root\&.
@@ -99,9 +108,9 @@
 in the local smbpasswd file, if the account was previously disabled\&. If the account was not disabled this option has no effect\&. Once the account is enabled then the user will be able to authenticate via SMB once again\&.
 .sp
-If the smbpasswd file is in the \'old\' format, then
+If the smbpasswd file is in the \*(Aqold\*(Aq format, then
 smbpasswd
 will FAIL to enable the account\&. See
 \fBsmbpasswd\fR(5)
-for details on the \'old\' and new password file formats\&.
+for details on the \*(Aqold\*(Aq and new password file formats\&.
 .sp
 This option is only available when running smbpasswd as root\&.
@@ -252,5 +261,5 @@
 \m[blue]\fBldap admin dn\fR\m[]\&. Note that the password is stored in the
 secrets\&.tdb
-and is keyed off of the admin\'s DN\&. This means that if the value of
+and is keyed off of the admin\*(Aqs DN\&. This means that if the value of
 \fIldap admin dn\fR
 ever changes, the password will need to be manually updated as well\&.
@@ -267,5 +276,5 @@
 \m[blue]\fBldap admin dn\fR\m[]\&. Note that the password is stored in the
 secrets\&.tdb
-and is keyed off of the admin\'s DN\&. This means that if the value of
+and is keyed off of the admin\*(Aqs DN\&. This means that if the value of
 \fIldap admin dn\fR
 ever changes, the password will need to be manually updated as well\&.
Index: trunk/server/docs/manpages/smbspool.8
===================================================================
--- trunk/server/docs/manpages/smbspool.8	(revision 857)
+++ trunk/server/docs/manpages/smbspool.8	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: smbspool
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: System Administration tools
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "SMBSPOOL" "8" "10/29/2012" "Samba 3\&.6" "System Administration tools"
+.TH "SMBSPOOL" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
@@ -115,5 +124,5 @@
 .IP \(bu 2.3
 .\}
-The user argument (argv[2]) contains the print user\'s name and is presently not used by smbspool\&.
+The user argument (argv[2]) contains the print user\*(Aqs name and is presently not used by smbspool\&.
 .RE
 .sp
Index: trunk/server/docs/manpages/smbstatus.1
===================================================================
--- trunk/server/docs/manpages/smbstatus.1	(revision 857)
+++ trunk/server/docs/manpages/smbstatus.1	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: smbstatus
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: User Commands
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "SMBSTATUS" "1" "10/29/2012" "Samba 3\&.6" "User Commands"
+.TH "SMBSTATUS" "1" "09/18/2013" "Samba 3\&.6" "User Commands"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
@@ -54,5 +63,5 @@
 .sp
 Note that specifying this parameter here will override the
-\m[blue]\fB\%smb.conf.5.html#\fR\m[]
+\m[blue]\fBlog level\fR\m[]
 parameter in the
 smb\&.conf
Index: trunk/server/docs/manpages/smbta-util.8
===================================================================
--- trunk/server/docs/manpages/smbta-util.8	(revision 857)
+++ trunk/server/docs/manpages/smbta-util.8	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: smbta-util
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: System Administration tools
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "SMBTA\-UTIL" "8" "10/29/2012" "Samba 3\&.6" "System Administration tools"
+.TH "SMBTA\-UTIL" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
Index: trunk/server/docs/manpages/smbtar.1
===================================================================
--- trunk/server/docs/manpages/smbtar.1	(revision 857)
+++ trunk/server/docs/manpages/smbtar.1	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: smbtar
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: User Commands
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "SMBTAR" "1" "10/29/2012" "Samba 3\&.6" "User Commands"
+.TH "SMBTAR" "1" "09/18/2013" "Samba 3\&.6" "User Commands"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
@@ -124,5 +133,5 @@
 The
 smbtar
-script has different options from ordinary tar and from smbclient\'s tar command\&.
+script has different options from ordinary tar and from smbclient\*(Aqs tar command\&.
 .SH "CAVEATS"
 .PP
Index: trunk/server/docs/manpages/smbtree.1
===================================================================
--- trunk/server/docs/manpages/smbtree.1	(revision 857)
+++ trunk/server/docs/manpages/smbtree.1	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: smbtree
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: User Commands
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "SMBTREE" "1" "10/29/2012" "Samba 3\&.6" "User Commands"
+.TH "SMBTREE" "1" "09/18/2013" "Samba 3\&.6" "User Commands"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
@@ -59,5 +68,5 @@
 .sp
 Note that specifying this parameter here will override the
-\m[blue]\fB\%smb.conf.5.html#\fR\m[]
+\m[blue]\fBlog level\fR\m[]
 parameter in the
 smb\&.conf
Index: trunk/server/docs/manpages/swat.8
===================================================================
--- trunk/server/docs/manpages/swat.8	(revision 857)
+++ trunk/server/docs/manpages/swat.8	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: swat
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: System Administration tools
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "SWAT" "8" "10/29/2012" "Samba 3\&.6" "System Administration tools"
+.TH "SWAT" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
@@ -83,5 +92,5 @@
 .sp
 Note that specifying this parameter here will override the
-\m[blue]\fB\%smb.conf.5.html#\fR\m[]
+\m[blue]\fBlog level\fR\m[]
 parameter in the
 smb\&.conf
@@ -175,5 +184,5 @@
 file\&.
 .PP
-the choice of port number isn\'t really important except that it should be less than 1024 and not currently used (using a number above 1024 presents an obscure security hole depending on the implementation details of your
+the choice of port number isn\*(Aqt really important except that it should be less than 1024 and not currently used (using a number above 1024 presents an obscure security hole depending on the implementation details of your
 inetd
 daemon)\&.
@@ -229,5 +238,5 @@
 options\&. If you have a carefully crafted
 smb\&.conf
-then back it up or don\'t use swat!
+then back it up or don\*(Aqt use swat!
 .SH "VERSION"
 .PP
Index: trunk/server/docs/manpages/tdbbackup.8
===================================================================
--- trunk/server/docs/manpages/tdbbackup.8	(revision 857)
+++ trunk/server/docs/manpages/tdbbackup.8	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: tdbbackup
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: System Administration tools
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "TDBBACKUP" "8" "10/29/2012" "Samba 3\&.6" "System Administration tools"
+.TH "TDBBACKUP" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
Index: trunk/server/docs/manpages/tdbdump.8
===================================================================
--- trunk/server/docs/manpages/tdbdump.8	(revision 857)
+++ trunk/server/docs/manpages/tdbdump.8	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: tdbdump
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: System Administration tools
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "TDBDUMP" "8" "10/29/2012" "Samba 3\&.6" "System Administration tools"
+.TH "TDBDUMP" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
@@ -31,5 +40,5 @@
 .PP
 tdbdump
-is a very simple utility that \'dumps\' the contents of a TDB (Trivial DataBase) file to standard output in a human\-readable format\&.
+is a very simple utility that \*(Aqdumps\*(Aq the contents of a TDB (Trivial DataBase) file to standard output in a human\-readable format\&.
 .PP
 This tool can be used when debugging problems with TDB files\&. It is intended for those who are somewhat familiar with Samba internals\&.
Index: trunk/server/docs/manpages/tdbtool.8
===================================================================
--- trunk/server/docs/manpages/tdbtool.8	(revision 857)
+++ trunk/server/docs/manpages/tdbtool.8	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: tdbtool
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: System Administration tools
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "TDBTOOL" "8" "10/29/2012" "Samba 3\&.6" "System Administration tools"
+.TH "TDBTOOL" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
Index: trunk/server/docs/manpages/testparm.1
===================================================================
--- trunk/server/docs/manpages/testparm.1	(revision 857)
+++ trunk/server/docs/manpages/testparm.1	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: testparm
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: User Commands
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "TESTPARM" "1" "10/29/2012" "Samba 3\&.6" "User Commands"
+.TH "TESTPARM" "1" "09/18/2013" "Samba 3\&.6" "User Commands"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
Index: trunk/server/docs/manpages/vfs_acl_tdb.8
===================================================================
--- trunk/server/docs/manpages/vfs_acl_tdb.8	(revision 857)
+++ trunk/server/docs/manpages/vfs_acl_tdb.8	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: vfs_acl_tdb
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: System Administration tools
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "VFS_ACL_TDB" "8" "10/29/2012" "Samba 3\&.6" "System Administration tools"
+.TH "VFS_ACL_TDB" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
Index: trunk/server/docs/manpages/vfs_acl_xattr.8
===================================================================
--- trunk/server/docs/manpages/vfs_acl_xattr.8	(revision 857)
+++ trunk/server/docs/manpages/vfs_acl_xattr.8	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: vfs_acl_xattr
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: System Administration tools
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "VFS_ACL_XATTR" "8" "10/29/2012" "Samba 3\&.6" "System Administration tools"
+.TH "VFS_ACL_XATTR" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
Index: trunk/server/docs/manpages/vfs_aio_fork.8
===================================================================
--- trunk/server/docs/manpages/vfs_aio_fork.8	(revision 857)
+++ trunk/server/docs/manpages/vfs_aio_fork.8	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: vfs_aio_fork
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: System Administration tools
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "VFS_AIO_FORK" "8" "10/29/2012" "Samba 3\&.6" "System Administration tools"
+.TH "VFS_AIO_FORK" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
Index: trunk/server/docs/manpages/vfs_aio_pthread.8
===================================================================
--- trunk/server/docs/manpages/vfs_aio_pthread.8	(revision 857)
+++ trunk/server/docs/manpages/vfs_aio_pthread.8	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: vfs_aio_pthread
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: System Administration tools
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "VFS_AIO_PTHREAD" "8" "10/29/2012" "Samba 3\&.6" "System Administration tools"
+.TH "VFS_AIO_PTHREAD" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
Index: trunk/server/docs/manpages/vfs_audit.8
===================================================================
--- trunk/server/docs/manpages/vfs_audit.8	(revision 857)
+++ trunk/server/docs/manpages/vfs_audit.8	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: vfs_audit
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: System Administration tools
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "VFS_AUDIT" "8" "10/29/2012" "Samba 3\&.6" "System Administration tools"
+.TH "VFS_AUDIT" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
Index: trunk/server/docs/manpages/vfs_cacheprime.8
===================================================================
--- trunk/server/docs/manpages/vfs_cacheprime.8	(revision 857)
+++ trunk/server/docs/manpages/vfs_cacheprime.8	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: vfs_cacheprime
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: System Administration tools
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "VFS_CACHEPRIME" "8" "10/29/2012" "Samba 3\&.6" "System Administration tools"
+.TH "VFS_CACHEPRIME" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
Index: trunk/server/docs/manpages/vfs_cap.8
===================================================================
--- trunk/server/docs/manpages/vfs_cap.8	(revision 857)
+++ trunk/server/docs/manpages/vfs_cap.8	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: vfs_cap
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: System Administration tools
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "VFS_CAP" "8" "10/29/2012" "Samba 3\&.6" "System Administration tools"
+.TH "VFS_CAP" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
Index: trunk/server/docs/manpages/vfs_catia.8
===================================================================
--- trunk/server/docs/manpages/vfs_catia.8	(revision 857)
+++ trunk/server/docs/manpages/vfs_catia.8	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: vfs_catia
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: System Administration tools
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "VFS_CATIA" "8" "10/29/2012" "Samba 3\&.6" "System Administration tools"
+.TH "VFS_CATIA" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
@@ -32,8 +41,14 @@
 The Catia CAD package commonly creates filenames that use characters that are illegal in CIFS filenames\&. The
 vfs_catia
-VFS module implements a fixed character mapping so that these files can be shared with CIFS clients\&.
+VFS module implements a character mapping so that these files can be shared with CIFS clients\&.
 .PP
 This module is stackable\&.
+.PP
+Up to samba version 3\&.4\&.x a fixed character mapping was used\&. The invalid windows characters \e / : * ? " < > | and the blank character were mapped in a hardcoded way\&.
+.PP
+Starting with samba\-3\&.5\&.0 a more flexible mapping was introduced\&. The new parameter "catia:mappings" now specifies the mapping on a char by char basis using the notation: unix hex char 0x\&.\&. : windows hex char 0x\&.\&. Multiple character mappings are separated by a comma\&.
 .SH "EXAMPLES"
+.PP
+Samba versions up to 3\&.4\&.x:
 .PP
 Map Catia filenames on the [CAD] share:
@@ -50,8 +65,73 @@
 .RE
 .\}
+.PP
+Samba versions 3\&.5\&.0 and later:
+.PP
+Map Catia filenames on the [CAD] share:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+        \fI[CAD]\fR
+	\m[blue]\fBpath = /data/cad\fR\m[]
+	\m[blue]\fBvfs objects = catia\fR\m[]
+	\m[blue]\fBcatia:mappings = 0x22:0xa8\fR\m[]
+.fi
+.if n \{\
+.RE
+.\}
+.PP
+To get the full formerly fixed mappings:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+        \fI[CAD]\fR
+	\m[blue]\fBpath = /data/cad\fR\m[]
+	\m[blue]\fBvfs objects = catia\fR\m[]
+	\m[blue]\fBcatia:mappings = 0x22:0xa8,0x2a:0xa4,0x2f:0xf8,0x3a:0xf7,0x3c:0xab,0x3e:0xbb,0x3f:0xbf,0x5c:0xff,0x7c:0xa6,0x20:0xb1\fR\m[]
+.fi
+.if n \{\
+.RE
+.\}
+.PP
+Unix filename to be translated (Note that the path delimiter "/" is not used here):
+.PP
+a\ea:a*a?a"a<a>a|a a
+.PP
+Resulting windows filename:
+.PP
+aÃ¿a\(dia\(Csa\(r?a\(ada\(Foa\(Fca\(bba\(+-a
+.PP
+Note that the character mapping must work in BOTH directions (unix \-> windows and windows \-> unix) to get unique and existing file names!
+.PP
+A NOT working example:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+        \fI[CAD]\fR
+	\m[blue]\fBpath = /data/cad\fR\m[]
+	\m[blue]\fBvfs objects = catia\fR\m[]
+	\m[blue]\fBcatia:mappings = 0x3a:0x5f\fR\m[]
+.fi
+.if n \{\
+.RE
+.\}
+.PP
+Here the colon ":" is mapped to the underscore "_"\&.
+.PP
+Assuming a unix filename "a:should_work", which is well translated to windows as "a_should_work"\&.
+.PP
+BUT the reverse mapping from windows "a_should_work" to unix will result in "a:should:work" \- something like "file not found" will be returned\&.
 .SH "VERSION"
 .PP
-This man page is correct for version 3\&.0\&.25 of the Samba suite\&.
+This man page is correct for all versions up to 4\&.0\&.3 of the Samba suite\&.
 .SH "AUTHOR"
 .PP
 The original Samba software and related utilities were created by Andrew Tridgell\&. Samba is now developed by the Samba Team as an Open Source project similar to the way the Linux kernel is developed\&.
+.PP
+New version written by Guenter Kukkukk kukks@samba\&.org
Index: trunk/server/docs/manpages/vfs_commit.8
===================================================================
--- trunk/server/docs/manpages/vfs_commit.8	(revision 857)
+++ trunk/server/docs/manpages/vfs_commit.8	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: vfs_commit
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: System Administration tools
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "VFS_COMMIT" "8" "10/29/2012" "Samba 3\&.6" "System Administration tools"
+.TH "VFS_COMMIT" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
Index: trunk/server/docs/manpages/vfs_crossrename.8
===================================================================
--- trunk/server/docs/manpages/vfs_crossrename.8	(revision 857)
+++ trunk/server/docs/manpages/vfs_crossrename.8	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: vfs_crossrename
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: System Administration tools
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "VFS_CROSSRENAME" "8" "10/29/2012" "Samba 3\&.6" "System Administration tools"
+.TH "VFS_CROSSRENAME" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
@@ -32,29 +41,27 @@
 The
 vfs_crossrename
-VFS module allows server side rename operations even if source and target are on different physical devices\&. A "move" in Explorer is usually a rename operation if it is inside of a single share or device\&. Usually such a rename operation returns NT_STATUS_NOT_SAME_DEVICE and the client has to move the file by manual copy and delete operations\&. If the rename by copy is done by the server this can be much more efficient\&. vfs_crossrename tries to do this server\-side cross\-device rename operation\&. There are however limitations that this module currently does not solve:
+VFS module allows server side rename operations even if source and target are on different physical devices\&. A "move" in Explorer is usually a rename operation if it is inside of a single share or device\&. Usually such a rename operation returns NT_STATUS_NOT_SAME_DEVICE and the client has to move the file by manual copy and delete operations\&. If the rename by copy is done by the server this can be much more efficient\&. vfs_crossrename tries to do this server\-side cross\-device rename operation\&.
+.PP
+There are however limitations that this module currently does not solve:
 .PP
 .RS 4
-
-		the ACLs of files are not preserved
-		.RE
+.PP
+The ACLs of files are not preserved,
+.RE
 .PP
 .RS 4
-
-		meta data in EAs are not preserved
-		.RE
+.PP
+meta data in EAs are not preserved,
+.RE
 .PP
 .RS 4
-
-		renames of whole subdirectories cannot be done recursively,
-		in that case we still return STATUS_NOT_SAME_DEVICE and
-		let the client decide what to do
-		.RE
+.PP
+renames of whole subdirectories cannot be done recursively, in that case we still return STATUS_NOT_SAME_DEVICE and let the client decide what to do,
+.RE
 .PP
 .RS 4
-
-		rename operations of huge files can cause hangs on the
-		client because clients expect a rename operation to
-		return fast
-		.RE
+.PP
+rename operations of huge files can cause hangs on the client because clients expect a rename operation to return fast\&.
+.RE
 .PP
 This module is stackable\&.
Index: trunk/server/docs/manpages/vfs_default_quota.8
===================================================================
--- trunk/server/docs/manpages/vfs_default_quota.8	(revision 857)
+++ trunk/server/docs/manpages/vfs_default_quota.8	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: vfs_default_quota
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: System Administration tools
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "VFS_DEFAULT_QUOTA" "8" "10/29/2012" "Samba 3\&.6" "System Administration tools"
+.TH "VFS_DEFAULT_QUOTA" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
Index: trunk/server/docs/manpages/vfs_dirsort.8
===================================================================
--- trunk/server/docs/manpages/vfs_dirsort.8	(revision 857)
+++ trunk/server/docs/manpages/vfs_dirsort.8	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: vfs_dirsort
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: System Administration tools
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "VFS_DIRSORT" "8" "10/29/2012" "Samba 3\&.6" "System Administration tools"
+.TH "VFS_DIRSORT" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
Index: trunk/server/docs/manpages/vfs_extd_audit.8
===================================================================
--- trunk/server/docs/manpages/vfs_extd_audit.8	(revision 857)
+++ trunk/server/docs/manpages/vfs_extd_audit.8	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: vfs_extd_audit
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: System Administration tools
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "VFS_EXTD_AUDIT" "8" "10/29/2012" "Samba 3\&.6" "System Administration tools"
+.TH "VFS_EXTD_AUDIT" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
Index: trunk/server/docs/manpages/vfs_fake_perms.8
===================================================================
--- trunk/server/docs/manpages/vfs_fake_perms.8	(revision 857)
+++ trunk/server/docs/manpages/vfs_fake_perms.8	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: vfs_fake_perms
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: System Administration tools
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "VFS_FAKE_PERMS" "8" "10/29/2012" "Samba 3\&.6" "System Administration tools"
+.TH "VFS_FAKE_PERMS" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
Index: trunk/server/docs/manpages/vfs_fileid.8
===================================================================
--- trunk/server/docs/manpages/vfs_fileid.8	(revision 857)
+++ trunk/server/docs/manpages/vfs_fileid.8	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: vfs_fileid
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: System Administration tools
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "VFS_FILEID" "8" "10/29/2012" "Samba 3\&.6" "System Administration tools"
+.TH "VFS_FILEID" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
Index: trunk/server/docs/manpages/vfs_full_audit.8
===================================================================
--- trunk/server/docs/manpages/vfs_full_audit.8	(revision 857)
+++ trunk/server/docs/manpages/vfs_full_audit.8	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: vfs_full_audit
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: System Administration tools
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "VFS_FULL_AUDIT" "8" "10/29/2012" "Samba 3\&.6" "System Administration tools"
+.TH "VFS_FULL_AUDIT" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
@@ -325,5 +334,5 @@
 .PP
 vfs_full_audit
-records operations in fixed format consisting of fields separated by \'|\' characters\&. The format is:
+records operations in fixed format consisting of fields separated by \*(Aq|\*(Aq characters\&. The format is:
 .sp
 .if n \{\
Index: trunk/server/docs/manpages/vfs_gpfs.8
===================================================================
--- trunk/server/docs/manpages/vfs_gpfs.8	(revision 857)
+++ trunk/server/docs/manpages/vfs_gpfs.8	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: vfs_gpfs
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: System Administration tools
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "VFS_GPFS" "8" "10/29/2012" "Samba 3\&.6" "System Administration tools"
+.TH "VFS_GPFS" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
@@ -212,5 +221,5 @@
 gpfs_get_realfilename_path()\&. It seems that
 gpfs_get_realfilename_path()
-doesn\'t work on AIX\&.
+doesn\*(Aqt work on AIX\&.
 .RE
 .sp
@@ -220,5 +229,5 @@
 gpfs:winattr = [ yes | no ]
 .RS 4
-Enable/Disable usage of the windows attributes in GPFS\&. GPFS is able to store windows file attributes e\&.g\&. HIDDEN, READONLY, SYSTEM and others natively\&. That means Samba doesn\'t need to map them to permission bits or extended attributes\&.
+Enable/Disable usage of the windows attributes in GPFS\&. GPFS is able to store windows file attributes e\&.g\&. HIDDEN, READONLY, SYSTEM and others natively\&. That means Samba doesn\*(Aqt need to map them to permission bits or extended attributes\&.
 .sp
 .RS 4
@@ -253,5 +262,5 @@
 gpfs:merge_writeappend = [ yes | no ]
 .RS 4
-GPFS ACLs doesn\'t know about the \'APPEND\' right\&. This optionen lets Samba map the \'APPEND\' right to \'WRITE\'\&.
+GPFS ACLs doesn\*(Aqt know about the \*(AqAPPEND\*(Aq right\&. This optionen lets Samba map the \*(AqAPPEND\*(Aq right to \*(AqWRITE\*(Aq\&.
 .sp
 .RS 4
@@ -265,5 +274,5 @@
 
 yes(default)
-\- map \'APPEND\' to \'WRITE\'\&.
+\- map \*(AqAPPEND\*(Aq to \*(AqWRITE\*(Aq\&.
 .RE
 .sp
@@ -278,5 +287,5 @@
 
 no
-\- do not map \'APPEND\' to \'WRITE\'\&.
+\- do not map \*(AqAPPEND\*(Aq to \*(AqWRITE\*(Aq\&.
 .RE
 .sp
@@ -286,5 +295,5 @@
 gpfs:refuse_dacl_protected = [ yes | no ]
 .RS 4
-As GPFS does not support the ACE4_FLAG_NO_PROPAGATE NFSv4 flag (which would be the mapping for the DESC_DACL_PROTECTED flag), the status of this flag is currently silently ignored by Samba\&. That means that if you deselect the "Allow inheritable permissions\&.\&.\&." checkbox in Windows\' ACL dialog and then apply the ACL, the flag will be back immediately\&.
+As GPFS does not support the ACE4_FLAG_NO_PROPAGATE NFSv4 flag (which would be the mapping for the DESC_DACL_PROTECTED flag), the status of this flag is currently silently ignored by Samba\&. That means that if you deselect the "Allow inheritable permissions\&.\&.\&." checkbox in Windows\*(Aq ACL dialog and then apply the ACL, the flag will be back immediately\&.
 .sp
 To make sure that automatic migration with e\&.g\&. robocopy does not lead to ACLs silently (and unintentionally) changed, you can set
@@ -393,5 +402,5 @@
 .\}
 ignore
-\- don\'t include the second matching ACE
+\- don\*(Aqt include the second matching ACE
 .RE
 .sp
Index: trunk/server/docs/manpages/vfs_netatalk.8
===================================================================
--- trunk/server/docs/manpages/vfs_netatalk.8	(revision 857)
+++ trunk/server/docs/manpages/vfs_netatalk.8	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: vfs_netatalk
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: System Administration tools
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "VFS_NETATALK" "8" "10/29/2012" "Samba 3\&.6" "System Administration tools"
+.TH "VFS_NETATALK" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
Index: trunk/server/docs/manpages/vfs_notify_fam.8
===================================================================
--- trunk/server/docs/manpages/vfs_notify_fam.8	(revision 857)
+++ trunk/server/docs/manpages/vfs_notify_fam.8	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: vfs_notify_fam
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: System Administration tools
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "VFS_NOTIFY_FAM" "8" "10/29/2012" "Samba 3\&.6" "System Administration tools"
+.TH "VFS_NOTIFY_FAM" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
Index: trunk/server/docs/manpages/vfs_prealloc.8
===================================================================
--- trunk/server/docs/manpages/vfs_prealloc.8	(revision 857)
+++ trunk/server/docs/manpages/vfs_prealloc.8	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: vfs_prealloc
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: System Administration tools
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "VFS_PREALLOC" "8" "10/29/2012" "Samba 3\&.6" "System Administration tools"
+.TH "VFS_PREALLOC" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
Index: trunk/server/docs/manpages/vfs_preopen.8
===================================================================
--- trunk/server/docs/manpages/vfs_preopen.8	(revision 857)
+++ trunk/server/docs/manpages/vfs_preopen.8	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: vfs_preopen
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: System Administration tools
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "VFS_PREOPEN" "8" "10/29/2012" "Samba 3\&.6" "System Administration tools"
+.TH "VFS_PREOPEN" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
@@ -32,5 +41,5 @@
 This module assists applications that want to read numbered files in sequence with very strict latency requirements\&. One area where this happens in video streaming applications that want to read one file per frame\&.
 .PP
-When you use this module, a number of helper processes is started that speculatively open files and read a number of bytes to prime the file system cache, so that later on when the real application\'s request comes along, no disk access is necessary\&.
+When you use this module, a number of helper processes is started that speculatively open files and read a number of bytes to prime the file system cache, so that later on when the real application\*(Aqs request comes along, no disk access is necessary\&.
 .PP
 This module is stackable\&.
Index: trunk/server/docs/manpages/vfs_readahead.8
===================================================================
--- trunk/server/docs/manpages/vfs_readahead.8	(revision 857)
+++ trunk/server/docs/manpages/vfs_readahead.8	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: vfs_readahead
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: System Administration tools
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "VFS_READAHEAD" "8" "10/29/2012" "Samba 3\&.6" "System Administration tools"
+.TH "VFS_READAHEAD" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
Index: trunk/server/docs/manpages/vfs_readonly.8
===================================================================
--- trunk/server/docs/manpages/vfs_readonly.8	(revision 857)
+++ trunk/server/docs/manpages/vfs_readonly.8	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: vfs_readonly
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: System Administration tools
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "VFS_READONLY" "8" "10/29/2012" "Samba 3\&.6" "System Administration tools"
+.TH "VFS_READONLY" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
Index: trunk/server/docs/manpages/vfs_recycle.8
===================================================================
--- trunk/server/docs/manpages/vfs_recycle.8	(revision 857)
+++ trunk/server/docs/manpages/vfs_recycle.8	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: vfs_recycle
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: System Administration tools
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "VFS_RECYCLE" "8" "10/29/2012" "Samba 3\&.6" "System Administration tools"
+.TH "VFS_RECYCLE" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
@@ -72,10 +81,10 @@
 recycle:touch = BOOL
 .RS 4
-Specifies whether a file\'s access date should be updated when the file is moved to the repository\&.
+Specifies whether a file\*(Aqs access date should be updated when the file is moved to the repository\&.
 .RE
 .PP
 recycle:touch_mtime = BOOL
 .RS 4
-Specifies whether a file\'s last modified date should be updated when the file is moved to the repository\&.
+Specifies whether a file\*(Aqs last modified date should be updated when the file is moved to the repository\&.
 .RE
 .PP
Index: trunk/server/docs/manpages/vfs_scannedonly.8
===================================================================
--- trunk/server/docs/manpages/vfs_scannedonly.8	(revision 857)
+++ trunk/server/docs/manpages/vfs_scannedonly.8	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: vfs_scannedonly
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: System Administration tools
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "VFS_SCANNEDONLY" "8" "10/29/2012" "Samba 3\&.6" "System Administration tools"
+.TH "VFS_SCANNEDONLY" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
@@ -39,5 +48,5 @@
 file exists, and is newer than the pertinent file\&. If this is the case, the file is shown to the user\&. If this is not the case, the file is not returned in a directory listing (configurable), and cannot be opened (configurable)\&. The Samba vfs module will notify the daemon to scan this file\&.
 .PP
-So what happens for the user in the default configuration\&. The first time a directory is listed, it shows files as \'file is being scanned for viruses, but after the first time all files are shown\&. There is a utility scannedonly_prescan that can help you to prescan all directories\&. When new files are written the daemon is notified immediately after the file is complete\&.
+So what happens for the user in the default configuration\&. The first time a directory is listed, it shows files as \*(Aqfile is being scanned for viruses, but after the first time all files are shown\&. There is a utility scannedonly_prescan that can help you to prescan all directories\&. When new files are written the daemon is notified immediately after the file is complete\&.
 .PP
 If a virus is found by the daemon, a file with a warning message is created in the directory of the user, a warning is sent to the logs, and the file is renamed to have prefix
@@ -75,5 +84,5 @@
 scannedonly:show_special_files = True
 .RS 4
-Whether sockets, devices and fifo\'s (all not scanned for viruses) should be visible to the user
+Whether sockets, devices and fifo\*(Aqs (all not scanned for viruses) should be visible to the user
 .RE
 .PP
Index: trunk/server/docs/manpages/vfs_shadow_copy.8
===================================================================
--- trunk/server/docs/manpages/vfs_shadow_copy.8	(revision 857)
+++ trunk/server/docs/manpages/vfs_shadow_copy.8	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: vfs_shadow_copy
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: System Administration tools
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "VFS_SHADOW_COPY" "8" "10/29/2012" "Samba 3\&.6" "System Administration tools"
+.TH "VFS_SHADOW_COPY" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
Index: trunk/server/docs/manpages/vfs_shadow_copy2.8
===================================================================
--- trunk/server/docs/manpages/vfs_shadow_copy2.8	(revision 857)
+++ trunk/server/docs/manpages/vfs_shadow_copy2.8	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: vfs_shadow_copy2
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: System Administration tools
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "VFS_SHADOW_COPY2" "8" "10/29/2012" "Samba 3\&.6" "System Administration tools"
+.TH "VFS_SHADOW_COPY2" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
@@ -44,5 +53,5 @@
 .IP "  1." 4.2
 .\}
-You don\'t need to populate your shares with symlinks to the snapshots\&. This can be very important when you have thousands of shares, or use [homes]\&.
+You don\*(Aqt need to populate your shares with symlinks to the snapshots\&. This can be very important when you have thousands of shares, or use [homes]\&.
 .RE
 .sp
@@ -55,5 +64,5 @@
 .IP "  2." 4.2
 .\}
-The inode number of the files is altered so it is different from the original\&. This allows the \'restore\' button to work without a sharing violation\&.
+The inode number of the files is altered so it is different from the original\&. This allows the \*(Aqrestore\*(Aq button to work without a sharing violation\&.
 .RE
 .sp
@@ -192,5 +201,5 @@
 If you enable
 shadow:fixinodes
-then this module will modify the apparent inode number of files in the snapshot directories using a hash of the files path\&. This is needed for snapshot systems where the snapshots have the same device:inode number as the original files (such as happens with GPFS snapshots)\&. If you don\'t set this option then the \'restore\' button in the shadow copy UI will fail with a sharing violation\&.
+then this module will modify the apparent inode number of files in the snapshot directories using a hash of the files path\&. This is needed for snapshot systems where the snapshots have the same device:inode number as the original files (such as happens with GPFS snapshots)\&. If you don\*(Aqt set this option then the \*(Aqrestore\*(Aq button in the shadow copy UI will fail with a sharing violation\&.
 .RE
 .SH "EXAMPLES"
Index: trunk/server/docs/manpages/vfs_smb_traffic_analyzer.8
===================================================================
--- trunk/server/docs/manpages/vfs_smb_traffic_analyzer.8	(revision 857)
+++ trunk/server/docs/manpages/vfs_smb_traffic_analyzer.8	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: smb_traffic_analyzer
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: System Administration tools
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "SMB_TRAFFIC_ANALYZER" "8" "10/29/2012" "Samba 3\&.6" "System Administration tools"
+.TH "SMB_TRAFFIC_ANALYZER" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
@@ -32,5 +41,5 @@
 The
 vfs_smb_traffic_analyzer
-VFS module logs client file operations on a Samba server and sends this data over a socket to a helper program (in the following the "Receiver"), which feeds a SQL database\&. More information on the helper programs can be obtained from the homepage of the project at: http://holger123\&.wordpress\&.com/smb\-traffic\-analyzer/ Since the VFS module depends on a receiver that is doing something with the data, it is evolving in it\'s development\&. Therefore, the module works with different protocol versions, and the receiver has to be able to decode the protocol that is used\&. The protocol version 1 was introduced to Samba at September 25, 2008\&. It was a very simple protocol, supporting only a small list of VFS operations, and had several drawbacks\&. The protocol version 2 is a try to solve the problems version 1 had while at the same time adding new features\&. With the release of Samba 3\&.6\&.0, the module will run protocol version 2 by default\&.
+VFS module logs client file operations on a Samba server and sends this data over a socket to a helper program (in the following the "Receiver"), which feeds a SQL database\&. More information on the helper programs can be obtained from the homepage of the project at: http://holger123\&.wordpress\&.com/smb\-traffic\-analyzer/ Since the VFS module depends on a receiver that is doing something with the data, it is evolving in it\*(Aqs development\&. Therefore, the module works with different protocol versions, and the receiver has to be able to decode the protocol that is used\&. The protocol version 1 was introduced to Samba at September 25, 2008\&. It was a very simple protocol, supporting only a small list of VFS operations, and had several drawbacks\&. The protocol version 2 is a try to solve the problems version 1 had while at the same time adding new features\&. With the release of Samba 3\&.6\&.0, the module will run protocol version 2 by default\&.
 .SH "PROTOCOL VERSION 1 DOCUMENTATION"
 .PP
@@ -192,5 +201,5 @@
 
 Insecure network transfer \-
-Protocol version 1 sends all it\'s data as plaintext over the network\&.
+Protocol version 1 sends all it\*(Aqs data as plaintext over the network\&.
 .RE
 .sp
@@ -218,5 +227,5 @@
 
 No subreleases of the protocol \-
-Protocol version 1 is fixed on it\'s version, making it unable to introduce new features or bugfixes through compatible sub\-releases\&.
+Protocol version 1 is fixed on it\*(Aqs version, making it unable to introduce new features or bugfixes through compatible sub\-releases\&.
 .RE
 .SH "VERSION 2 OF THE PROTOCOL"
@@ -295,5 +304,5 @@
 smb_traffic_analyzer:total_anonymization = STRING
 .RS 4
-If STRING matches to \'yes\', the module will replace any user name with the string given by the option smb_traffic_analyzer:anonymize_prefix, without generating an additional hash number\&. This means that any transfer data will be mapped to a single user, leading to a total anonymization of user related data\&. In version 2\&.x of the protocol, the users SID will also be anonymized\&.
+If STRING matches to \*(Aqyes\*(Aq, the module will replace any user name with the string given by the option smb_traffic_analyzer:anonymize_prefix, without generating an additional hash number\&. This means that any transfer data will be mapped to a single user, leading to a total anonymization of user related data\&. In version 2\&.x of the protocol, the users SID will also be anonymized\&.
 .RE
 .PP
Index: trunk/server/docs/manpages/vfs_streams_depot.8
===================================================================
--- trunk/server/docs/manpages/vfs_streams_depot.8	(revision 857)
+++ trunk/server/docs/manpages/vfs_streams_depot.8	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: vfs_streams_depot
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: System Administration tools
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "VFS_STREAMS_DEPOT" "8" "10/29/2012" "Samba 3\&.6" "System Administration tools"
+.TH "VFS_STREAMS_DEPOT" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
Index: trunk/server/docs/manpages/vfs_streams_xattr.8
===================================================================
--- trunk/server/docs/manpages/vfs_streams_xattr.8	(revision 857)
+++ trunk/server/docs/manpages/vfs_streams_xattr.8	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: vfs_streams_xattr
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: System Administration tools
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "VFS_STREAMS_XATTR" "8" "10/29/2012" "Samba 3\&.6" "System Administration tools"
+.TH "VFS_STREAMS_XATTR" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
Index: trunk/server/docs/manpages/vfs_time_audit.8
===================================================================
--- trunk/server/docs/manpages/vfs_time_audit.8	(revision 857)
+++ trunk/server/docs/manpages/vfs_time_audit.8	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: vfs_time_audit
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: System Administration tools
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "VFS_TIME_AUDIT" "8" "10/29/2012" "Samba 3\&.6" "System Administration tools"
+.TH "VFS_TIME_AUDIT" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
@@ -35,5 +44,5 @@
 time_audit:audit_timeout\&. It will log the calls and the time spent in it\&.
 .PP
-It\'s kind of comparable with
+It\*(Aqs kind of comparable with
 strace \-T
 and is helpful to reveal performance problems with the underlying file and storage subsystems\&.
Index: trunk/server/docs/manpages/vfs_xattr_tdb.8
===================================================================
--- trunk/server/docs/manpages/vfs_xattr_tdb.8	(revision 857)
+++ trunk/server/docs/manpages/vfs_xattr_tdb.8	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: vfs_xattr_tdb
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: System Administration tools
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "VFS_XATTR_TDB" "8" "10/29/2012" "Samba 3\&.6" "System Administration tools"
+.TH "VFS_XATTR_TDB" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
Index: trunk/server/docs/manpages/vfstest.1
===================================================================
--- trunk/server/docs/manpages/vfstest.1	(revision 857)
+++ trunk/server/docs/manpages/vfstest.1	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: vfstest
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: User Commands
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "VFSTEST" "1" "10/29/2012" "Samba 3\&.6" "User Commands"
+.TH "VFSTEST" "1" "09/18/2013" "Samba 3\&.6" "User Commands"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
@@ -47,5 +56,5 @@
 .RS 4
 File name for log/debug files\&. The extension
-\fB\'\&.client\'\fR
+\fB\*(Aq\&.client\*(Aq\fR
 will be appended\&. The log file is never removed by the client\&.
 .RE
@@ -61,5 +70,5 @@
 .sp
 Note that specifying this parameter here will override the
-\m[blue]\fB\%smb.conf.5.html#\fR\m[]
+\m[blue]\fBlog level\fR\m[]
 parameter in the
 smb\&.conf
Index: trunk/server/docs/manpages/wbinfo.1
===================================================================
--- trunk/server/docs/manpages/wbinfo.1	(revision 857)
+++ trunk/server/docs/manpages/wbinfo.1	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: wbinfo
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: User Commands
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "WBINFO" "1" "10/29/2012" "Samba 3\&.6" "User Commands"
+.TH "WBINFO" "1" "09/18/2013" "Samba 3\&.6" "User Commands"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
@@ -99,5 +108,5 @@
 \-\-domain \fIname\fR
 .RS 4
-This parameter sets the domain on which any specified operations will performed\&. If special domain name \'\&.\' is used to represent the current domain to which
+This parameter sets the domain on which any specified operations will performed\&. If special domain name \*(Aq\&.\*(Aq is used to represent the current domain to which
 \fBwinbindd\fR(8)
 belongs\&. Currently only the
@@ -233,5 +242,5 @@
 Check whether
 \fBwinbindd\fR(8)
-is still alive\&. Prints out either \'succeeded\' or \'failed\'\&.
+is still alive\&. Prints out either \*(Aqsucceeded\*(Aq or \*(Aqfailed\*(Aq\&.
 .RE
 .PP
Index: trunk/server/docs/manpages/winbind_krb5_locator.7
===================================================================
--- trunk/server/docs/manpages/winbind_krb5_locator.7	(revision 857)
+++ trunk/server/docs/manpages/winbind_krb5_locator.7	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: winbind_krb5_locator
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: 7
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "WINBIND_KRB5_LOCATOR" "7" "10/29/2012" "Samba 3\&.6" "7"
+.TH "WINBIND_KRB5_LOCATOR" "7" "09/18/2013" "Samba 3\&.6" "7"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
Index: trunk/server/docs/manpages/winbindd.8
===================================================================
--- trunk/server/docs/manpages/winbindd.8	(revision 857)
+++ trunk/server/docs/manpages/winbindd.8	(revision 862)
@@ -2,11 +2,20 @@
 .\"     Title: winbindd
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 10/29/2012
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 09/18/2013
 .\"    Manual: System Administration tools
 .\"    Source: Samba 3.6
 .\"  Language: English
 .\"
-.TH "WINBINDD" "8" "10/29/2012" "Samba 3\&.6" "System Administration tools"
+.TH "WINBINDD" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
 .\" -----------------------------------------------------------------
 .\" * set default formatting
@@ -42,5 +51,5 @@
 PAM module, by managing connections to domain controllers\&. In this configuration the
 \m[blue]\fBidmap config * : range\fR\m[]
-parameter is not required\&. (This is known as `netlogon proxy only mode\'\&.)
+parameter is not required\&. (This is known as `netlogon proxy only mode\*(Aq\&.)
 .PP
 The Name Service Switch allows user and system information to be obtained from different databases services such as NIS or DNS\&. The exact behaviour can be configured through the
@@ -50,5 +59,5 @@
 The service provided by
 winbindd
-is called `winbind\' and can be used to resolve user and group information from a Windows NT server\&. The service can also provide authentication services via an associated PAM module\&.
+is called `winbind\*(Aq and can be used to resolve user and group information from a Windows NT server\&. The service can also provide authentication services via an associated PAM module\&.
 .PP
 The
@@ -152,5 +161,5 @@
 and
 svscan
-from Daniel J\&. Bernstein\'s
+from Daniel J\&. Bernstein\*(Aqs
 daemontools
 package, or the AIX process monitor\&.
@@ -174,5 +183,5 @@
 .sp
 Note that specifying this parameter here will override the
-\m[blue]\fB\%smb.conf.5.html#\fR\m[]
+\m[blue]\fBlog level\fR\m[]
 parameter in the
 smb\&.conf
@@ -219,5 +228,5 @@
 \-n
 .RS 4
-Disable caching\&. This means winbindd will always have to wait for a response from the domain controller before it can respond to a client and this thus makes things slower\&. The results will however be more accurate, since results from the cache might not be up\-to\-date\&. This might also temporarily hang winbindd if the DC doesn\'t respond\&.
+Disable caching\&. This means winbindd will always have to wait for a response from the domain controller before it can respond to a client and this thus makes things slower\&. The results will however be more accurate, since results from the cache might not be up\-to\-date\&. This might also temporarily hang winbindd if the DC doesn\*(Aqt respond\&.
 .RE
 .SH "NAME AND ID RESOLUTION"
@@ -533,9 +542,9 @@
 $LOCKDIR/winbindd_privileged/pipe
 .RS 4
-The UNIX pipe over which \'privileged\' clients communicate with the
+The UNIX pipe over which \*(Aqprivileged\*(Aq clients communicate with the
 winbindd
 program\&. For security reasons, access to some winbindd functions \- like those needed by the
 ntlm_auth
-utility \- is restricted\&. By default, only users in the \'root\' group will get this access, however the administrator may change the group permissions on $LOCKDIR/winbindd_privileged to allow programs like \'squid\' to use ntlm_auth\&. Note that the winbind client will only attempt to connect to the winbindd daemon if both the
+utility \- is restricted\&. By default, only users in the \*(Aqroot\*(Aq group will get this access, however the administrator may change the group permissions on $LOCKDIR/winbindd_privileged to allow programs like \*(Aqsquid\*(Aq to use ntlm_auth\&. Note that the winbind client will only attempt to connect to the winbindd daemon if both the
 $LOCKDIR/winbindd_privileged
 directory and
Index: trunk/server/examples/LDAP/samba-nds.schema
===================================================================
--- trunk/server/examples/LDAP/samba-nds.schema	(revision 857)
+++ trunk/server/examples/LDAP/samba-nds.schema	(revision 862)
Index: trunk/server/examples/LDAP/samba-schema-FDS.ldif
===================================================================
--- trunk/server/examples/LDAP/samba-schema-FDS.ldif	(revision 857)
+++ trunk/server/examples/LDAP/samba-schema-FDS.ldif	(revision 862)
Index: trunk/server/examples/LDAP/samba-schema-netscapeds5.x
===================================================================
--- trunk/server/examples/LDAP/samba-schema-netscapeds5.x	(revision 857)
+++ 	(revision )
@@ -1,77 +1,0 @@
-##
-## Darren Chew <darren.chew at vicscouts dot asn dot au>
-## Andre Fiebach <andre dot fiebach at stud dot uni-rostock dot de>
-## Thomas Mueller 12.04.2003, thomas.mueller@christ-wasser.de
-## Richard Renard rrenard@idealx.com 2005-01-28
-## - added support for MungedDial, BadPasswordCount, BadPasswordTime, PasswordHistory, LogonHours
-## TAKEDA Yasuma yasuma@osstech.co.jp 2008-11-06
-## - added sambaTrustedDomainPassword objectClasses
-## - in Sun One 5.2 copy it as 99samba-schema-netscapeds5.ldif
-##
-## Samba 3.2 schema file for Netscape DS 5.x
-##
-## INSTALL-DIRECTORY/slapd-your_name/config/schema/samba-schema-netscapeds5.ldif
-####################################################################
-# Sun One DS do not load the schema without this lines
-# AndrÃ© Fiebach <af123@uni-rostock.de> 
-dn: cn=schema
-objectClass: top
-objectClass: ldapSubentry
-objectClass: subschema
-cn: schema
-aci: (target="ldap:///cn=schema")(targetattr !="aci")(version 3.0;acl "anonymo
- us, no acis"; allow (read, search, compare) userdn = "ldap:///anyone";)
-aci: (targetattr = "*")(version 3.0; acl "Configuration Administrator"; allow 
- (all) userdn = "ldap:///uid=admin,ou=Administrators, ou=TopologyManagement, 
- o=NetscapeRoot";)
-aci: (targetattr = "*")(version 3.0; acl "Local Directory Administrators Group
- "; allow (all) groupdn = "ldap:///cn=Directory Administrators, dc=samba,dc=org";)
-aci: (targetattr = "*")(version 3.0; acl "SIE Group"; allow (all)groupdn = "ld
- ap:///cn=slapd-sambaldap, cn=iPlanet Directory Server, cn=Server Group, cn=iPlanetDirectory.samba.org, ou=samba.org, o=NetscapeRoot";)
-####################################################################
-objectClasses: ( 1.3.6.1.4.1.7165.2.2.6 NAME 'sambaSamAccount' SUP top AUXILIARY DESC 'Samba 3.0 Auxilary SAM Account' MUST ( uid $ sambaSID ) MAY  ( cn $ sambaLMPassword $ sambaNTPassword $ sambaPwdLastSet $ sambaLogonTime $ sambaLogoffTime $ sambaKickoffTime $ sambaPwdCanChange $ sambaPwdMustChange $ sambaAcctFlags $ displayName $ sambaHomePath $ sambaHomeDrive $ sambaLogonScript $ sambaProfilePath $ description $ sambaUserWorkstations $ sambaPrimaryGroupSID $ sambaDomainName $ sambaMungedDial $ sambaBadPasswordCount $ sambaBadPasswordTime $ sambaPasswordHistory $ sambaLogonHours) X-ORIGIN 'user defined' )
-objectClasses: ( 1.3.6.1.4.1.7165.2.2.4 NAME 'sambaGroupMapping' SUP top AUXILIARY DESC 'Samba Group Mapping' MUST ( gidNumber $ sambaSID $ sambaGroupType ) MAY  ( displayName $ description ) X-ORIGIN 'user defined' )
-objectClasses: ( 1.3.6.1.4.1.7165.2.2.5 NAME 'sambaDomain' SUP top STRUCTURAL DESC 'Samba Domain Information' MUST ( sambaDomainName $ sambaSID ) MAY ( sambaNextRid $ sambaNextGroupRid $ sambaNextUserRid $ sambaAlgorithmicRidBase ) X-ORIGIN 'user defined' )
-objectClasses: ( 1.3.6.1.4.1.7165.2.2.7 NAME 'sambaUnixIdPool' SUP top AUXILIARY DESC 'Pool for allocating UNIX uids/gids' MUST ( uidNumber $ gidNumber ) X-ORIGIN 'user defined' )
-objectClasses: ( 1.3.6.1.4.1.7165.2.2.8 NAME 'sambaIdmapEntry' SUP top AUXILIARY DESC 'Mapping from a SID to an ID' MUST ( sambaSID ) MAY ( uidNumber $ gidNumber )  X-ORIGIN 'user defined' )
-objectClasses: ( 1.3.6.1.4.1.7165.2.2.9 NAME 'sambaSidEntry' SUP top STRUCTURAL DESC 'Structural Class for a SID' MUST ( sambaSID )  X-ORIGIN 'user defined' )
-objectClasses: ( 1.3.6.1.4.1.7165.2.2.15 NAME 'sambaTrustedDomainPassword' SUP top STRUCTURAL DESC 'Samba Trusted Domain Password' MUST ( sambaDomainName $ sambaSID $ sambaClearTextPassword $ sambaPwdLastSet ) MAY  ( sambaPreviousClearTextPassword ) X-ORIGIN 'user defined')
-objectClasses: ( 1.3.6.1.4.1.7165.2.2.16 NAME 'sambaTrustedDomain' SUP top STRUCTURAL DESC 'Samba Trusted Domain Object' MUST ( cn ) MAY ( sambaTrustType $ sambaTrustAttributes $ sambaTrustDirection $ sambaTrustPartner $ sambaFlatName $ sambaTrustAuthOutgoing $ sambaTrustAuthIncoming $ sambaSecurityIdentifier $ sambaTrustForestTrustInfo ) X-ORIGIN 'user defined' )
-attributeTypes: ( 1.3.6.1.4.1.7165.2.1.24 NAME 'sambaLMPassword' DESC 'LanManager Password' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{32} SINGLE-VALUE X-ORIGIN 'user defined' )
-attributeTypes: ( 1.3.6.1.4.1.7165.2.1.25 NAME 'sambaNTPassword' DESC 'MD4 hash of the unicode password' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{32} SINGLE-VALUE X-ORIGIN 'user defined' )
-attributeTypes: ( 1.3.6.1.4.1.7165.2.1.26 NAME 'sambaAcctFlags'	DESC 'Account Flags' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{16} SINGLE-VALUE X-ORIGIN 'user defined' )
-attributeTypes: ( 1.3.6.1.4.1.7165.2.1.27 NAME 'sambaPwdLastSet' DESC 'Timestamp of the last password update'	EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE X-ORIGIN 'user defined' )
-attributeTypes: ( 1.3.6.1.4.1.7165.2.1.28 NAME 'sambaPwdCanChange' DESC 'Timestamp of when the user is allowed to update the password' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE X-ORIGIN 'user defined' )
-attributeTypes: ( 1.3.6.1.4.1.7165.2.1.29 NAME 'sambaPwdMustChange' DESC 'Timestamp of when the password will expire' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE X-ORIGIN 'user defined' )
-attributeTypes: ( 1.3.6.1.4.1.7165.2.1.30 NAME 'sambaLogonTime'	DESC 'Timestamp of last logon' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE X-ORIGIN 'user defined' )
-attributeTypes: ( 1.3.6.1.4.1.7165.2.1.31 NAME 'sambaLogoffTime' DESC 'Timestamp of last logoff' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE X-ORIGIN 'user defined' )
-attributeTypes: ( 1.3.6.1.4.1.7165.2.1.32 NAME 'sambaKickoffTime' DESC 'Timestamp of when the user will be logged off automatically' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE X-ORIGIN 'user defined' )
-attributeTypes: ( 1.3.6.1.4.1.7165.2.1.33 NAME 'sambaHomeDrive'	DESC 'Driver letter of home directory mapping' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{4} SINGLE-VALUE X-ORIGIN 'user defined' )
-attributeTypes: ( 1.3.6.1.4.1.7165.2.1.34 NAME 'sambaLogonScript' DESC 'Logon script path' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{255} SINGLE-VALUE X-ORIGIN 'user defined' )
-attributeTypes: ( 1.3.6.1.4.1.7165.2.1.35 NAME 'sambaProfilePath' DESC 'Roaming profile path' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{255} SINGLE-VALUE X-ORIGIN 'user defined' )
-attributeTypes: ( 1.3.6.1.4.1.7165.2.1.36 NAME 'sambaUserWorkstations' DESC 'List of user workstations the user is allowed to logon to' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{255} SINGLE-VALUE X-ORIGIN 'user defined' )
-attributeTypes: ( 1.3.6.1.4.1.7165.2.1.37 NAME 'sambaHomePath' DESC 'Home directory UNC path' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )
-attributeTypes: ( 1.3.6.1.4.1.7165.2.1.38 NAME 'sambaDomainName' DESC 'Windows NT domain to which the user belongs' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )
-attributeTypes: ( 1.3.6.1.4.1.7165.2.1.47 NAME 'sambaMungedDial' DESC 'Base64 encoded user parameter string' EQUALITY caseExactMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{1050} )
-attributeTypes: ( 1.3.6.1.4.1.7165.2.1.48 NAME 'sambaBadPasswordCount' DESC 'Bad password attempt count' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
-attributeTypes: ( 1.3.6.1.4.1.7165.2.1.49 NAME 'sambaBadPasswordTime' DESC 'Time of the last bad password attempt' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
-attributeTypes: ( 1.3.6.1.4.1.7165.2.1.54 NAME 'sambaPasswordHistory' DESC 'Concatenated MD4 hashes of the unicode passwords used on this account' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{32} )
-attributeTypes: ( 1.3.6.1.4.1.7165.2.1.55 NAME 'sambaLogonHours' DESC 'Logon Hours' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{42} SINGLE-VALUE )
-attributeTypes: ( 1.3.6.1.4.1.7165.2.1.20 NAME 'sambaSID' DESC 'Security ID' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{64} SINGLE-VALUE X-ORIGIN 'user defined' )
-attributeTypes: ( 1.3.6.1.4.1.7165.2.1.23 NAME 'sambaPrimaryGroupSID' DESC 'Primary Group Security ID' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{64} SINGLE-VALUE X-ORIGIN 'user defined' )
-attributeTypes: ( 1.3.6.1.4.1.7165.2.1.19 NAME 'sambaGroupType'	DESC 'NT Group Type' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE X-ORIGIN 'user defined' )
-attributeTypes: ( 1.3.6.1.4.1.7165.2.1.21 NAME 'sambaNextUserRid' DESC 'Next NT rid to give our for users' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE X-ORIGIN 'user defined' )
-attributeTypes: ( 1.3.6.1.4.1.7165.2.1.22 NAME 'sambaNextGroupRid' DESC 'Next NT rid to give out for groups' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE X-ORIGIN 'user defined' )
-attributeTypes: ( 1.3.6.1.4.1.7165.2.1.39 NAME 'sambaNextRid' DESC 'Next NT rid to give out for anything' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE X-ORIGIN 'user defined' )
-attributeTypes: ( 1.3.6.1.4.1.7165.2.1.40 NAME 'sambaAlgorithmicRidBase' DESC 'Base at which the samba RID generation algorithm should operate' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE X-ORIGIN 'user defined' )
-attributeTypes: ( 1.3.6.1.4.1.7165.2.1.68 NAME 'sambaClearTextPassword' DESC 'Clear text password (used for trusted domain passwords)' EQUALITY octetStringMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 X-ORIGIN 'user defined')
-attributeTypes: ( 1.3.6.1.4.1.7165.2.1.69 NAME 'sambaPreviousClearTextPassword' DESC 'Previous clear text password (used for trusted domain passwords)' EQUALITY octetStringMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 X-ORIGIN 'user defined')
-attributeTypes: ( 1.3.6.1.4.1.7165.2.1.70 NAME 'sambaTrustType' DESC 'Type of trust' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE X-ORIGIN 'user defined' )
-attributeTypes: ( 1.3.6.1.4.1.7165.2.1.71 NAME 'sambaTrustAttributes' DESC 'Trust attributes for a trusted domain' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE X-ORIGIN 'user defined' )
-attributeTypes: ( 1.3.6.1.4.1.7165.2.1.72 NAME 'sambaTrustDirection' DESC 'Direction of a trust' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE X-ORIGIN 'user defined' )
-attributeTypes: ( 1.3.6.1.4.1.7165.2.1.73 NAME 'sambaTrustPartner' DESC 'Fully qualified name of the domain with which a trust exists' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} X-ORIGIN 'user defined' )
-attributeTypes: ( 1.3.6.1.4.1.7165.2.1.74 NAME 'sambaFlatName' DESC 'NetBIOS name of a domain' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} X-ORIGIN 'user defined' )
-attributeTypes: ( 1.3.6.1.4.1.7165.2.1.75 NAME 'sambaTrustAuthOutgoing' DESC 'Authentication information for the outgoing portion of a trust' EQUALITY caseExactMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{1050} X-ORIGIN 'user defined' )
-attributeTypes: ( 1.3.6.1.4.1.7165.2.1.76 NAME 'sambaTrustAuthIncoming' DESC 'Authentication information for the incoming portion of a trust' EQUALITY caseExactMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{1050} X-ORIGIN 'user defined' )
-attributeTypes: ( 1.3.6.1.4.1.7165.2.1.77 NAME 'sambaSecurityIdentifier' DESC 'SID of a trusted domain' EQUALITY caseIgnoreIA5Match SUBSTR caseExactIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{64} SINGLE-VALUE X-ORIGIN 'user defined' )
-attributeTypes: ( 1.3.6.1.4.1.7165.2.1.78 NAME 'sambaTrustForestTrustInfo' DESC 'Forest trust information for a trusted domain object' EQUALITY caseExactMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{1050} )
Index: trunk/server/examples/LDAP/samba-schema-netscapeds5.x.README
===================================================================
--- trunk/server/examples/LDAP/samba-schema-netscapeds5.x.README	(revision 857)
+++ trunk/server/examples/LDAP/samba-schema-netscapeds5.x.README	(revision 862)
Index: trunk/server/examples/LDAP/samba.ldif
===================================================================
--- trunk/server/examples/LDAP/samba.ldif	(revision 857)
+++ trunk/server/examples/LDAP/samba.ldif	(revision 862)
Index: trunk/server/examples/LDAP/samba.schema
===================================================================
--- trunk/server/examples/LDAP/samba.schema	(revision 857)
+++ trunk/server/examples/LDAP/samba.schema	(revision 862)
Index: trunk/server/examples/LDAP/samba.schema.at.IBM-DS
===================================================================
--- trunk/server/examples/LDAP/samba.schema.at.IBM-DS	(revision 857)
+++ trunk/server/examples/LDAP/samba.schema.at.IBM-DS	(revision 862)
Index: trunk/server/examples/LDAP/samba.schema.oc.IBM-DS
===================================================================
--- trunk/server/examples/LDAP/samba.schema.oc.IBM-DS	(revision 857)
+++ trunk/server/examples/LDAP/samba.schema.oc.IBM-DS	(revision 862)
Index: trunk/server/examples/VFS/Makefile.in
===================================================================
--- trunk/server/examples/VFS/Makefile.in	(revision 857)
+++ trunk/server/examples/VFS/Makefile.in	(revision 862)
Index: trunk/server/examples/VFS/configure
===================================================================
--- trunk/server/examples/VFS/configure	(revision 857)
+++ trunk/server/examples/VFS/configure	(revision 862)
@@ -1,10 +1,8 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.68.
+# Generated by GNU Autoconf 2.69.
 #
 #
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
-# Foundation, Inc.
+# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
 #
 #
@@ -135,4 +133,29 @@
 (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
 
+# Use a proper internal environment variable to ensure we don't fall
+  # into an infinite loop, continuously re-executing ourselves.
+  if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
+    _as_can_reexec=no; export _as_can_reexec;
+    # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+  *v*x* | *x*v* ) as_opts=-vx ;;
+  *v* ) as_opts=-v ;;
+  *x* ) as_opts=-x ;;
+  * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+as_fn_exit 255
+  fi
+  # We don't want this to propagate to other subprocesses.
+          { _as_can_reexec=; unset _as_can_reexec;}
 if test "x$CONFIG_SHELL" = x; then
   as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
@@ -168,5 +191,6 @@
   exitcode=1; echo positional parameters were not saved.
 fi
-test x\$exitcode = x0 || exit 1"
+test x\$exitcode = x0 || exit 1
+test -x / || exit 1"
   as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
   as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
@@ -213,19 +237,23 @@
 
       if test "x$CONFIG_SHELL" != x; then :
-  # We cannot yet assume a decent shell, so we have to provide a
-	# neutralization value for shells without unset; and this also
-	# works around shells that cannot unset nonexistent variables.
-	# Preserve -v and -x to the replacement shell.
-	BASH_ENV=/dev/null
-	ENV=/dev/null
-	(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-	export CONFIG_SHELL
-	case $- in # ((((
-	  *v*x* | *x*v* ) as_opts=-vx ;;
-	  *v* ) as_opts=-v ;;
-	  *x* ) as_opts=-x ;;
-	  * ) as_opts= ;;
-	esac
-	exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"}
+  export CONFIG_SHELL
+             # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+  *v*x* | *x*v* ) as_opts=-vx ;;
+  *v* ) as_opts=-v ;;
+  *x* ) as_opts=-x ;;
+  * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
 fi
 
@@ -329,4 +357,12 @@
 
 } # as_fn_mkdir_p
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+  test -f "$1" && test -x "$1"
+} # as_fn_executable_p
 # as_fn_append VAR VALUE
 # ----------------------
@@ -450,4 +486,8 @@
     { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
 
+  # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
+  # already done that, so ensure we don't try to do so again and fall
+  # in an infinite loop.  This has already happened in practice.
+  _as_can_reexec=no; export _as_can_reexec
   # Don't try to exec as it changes $[0], causing all sort of problems
   # (the dirname of $[0] is not the place where we might find the
@@ -484,14 +524,14 @@
     # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
     # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-    # In both cases, we have to default to `cp -p'.
+    # In both cases, we have to default to `cp -pR'.
     ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-      as_ln_s='cp -p'
+      as_ln_s='cp -pR'
   elif ln conf$$.file conf$$ 2>/dev/null; then
     as_ln_s=ln
   else
-    as_ln_s='cp -p'
+    as_ln_s='cp -pR'
   fi
 else
-  as_ln_s='cp -p'
+  as_ln_s='cp -pR'
 fi
 rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
@@ -505,26 +545,6 @@
 fi
 
-if test -x / >/dev/null 2>&1; then
-  as_test_x='test -x'
-else
-  if ls -dL / >/dev/null 2>&1; then
-    as_ls_L_option=L
-  else
-    as_ls_L_option=
-  fi
-  as_test_x='
-    eval sh -c '\''
-      if test -d "$1"; then
-	test -d "$1/.";
-      else
-	case $1 in #(
-	-*)set "./$1";;
-	esac;
-	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
-	???[sx]*):;;*)false;;esac;fi
-    '\'' sh
-  '
-fi
-as_executable_p=$as_test_x
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
 
 # Sed expression to map a string onto a valid CPP name.
@@ -1153,6 +1173,4 @@
   if test "x$build_alias" = x; then
     cross_compiling=maybe
-    $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host.
-    If a cross compiler is detected then cross compile mode will be used" >&2
   elif test "x$build_alias" != "x$host_alias"; then
     cross_compiling=yes
@@ -1398,7 +1416,7 @@
   cat <<\_ACEOF
 configure
-generated by GNU Autoconf 2.68
-
-Copyright (C) 2010 Free Software Foundation, Inc.
+generated by GNU Autoconf 2.69
+
+Copyright (C) 2012 Free Software Foundation, Inc.
 This configure script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it.
@@ -1650,5 +1668,5 @@
 
 It was created by $as_me, which was
-generated by GNU Autoconf 2.68.  Invocation command line was
+generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2025,5 +2043,5 @@
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_CC="${ac_tool_prefix}gcc"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
@@ -2065,5 +2083,5 @@
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_CC="gcc"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
@@ -2118,5 +2136,5 @@
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_CC="${ac_tool_prefix}cc"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
@@ -2159,5 +2177,5 @@
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
        ac_prog_rejected=yes
@@ -2217,5 +2235,5 @@
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
@@ -2261,5 +2279,5 @@
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_CC="$ac_prog"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
@@ -2707,6 +2725,5 @@
 #include <stdarg.h>
 #include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
+struct stat;
 /* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
 struct buf { int x; };
@@ -2859,5 +2876,5 @@
     for ac_prog in ginstall scoinst install; do
       for ac_exec_ext in '' $ac_executable_extensions; do
-	if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
+	if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
 	  if test $ac_prog = install &&
 	    grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
@@ -3087,5 +3104,5 @@
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_path_KRB5CONFIG="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
@@ -3351,5 +3368,5 @@
     for ac_exec_ext in '' $ac_executable_extensions; do
       ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
-      { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
+      as_fn_executable_p "$ac_path_GREP" || continue
 # Check for GNU ac_path_GREP and select it if it is found.
   # Check for GNU $ac_path_GREP
@@ -3417,5 +3434,5 @@
     for ac_exec_ext in '' $ac_executable_extensions; do
       ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
-      { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
+      as_fn_executable_p "$ac_path_EGREP" || continue
 # Check for GNU ac_path_EGREP and select it if it is found.
   # Check for GNU $ac_path_EGREP
@@ -3773,5 +3790,5 @@
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ROFF="groff -etpsR -Tascii -man"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
@@ -4279,14 +4296,14 @@
     # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
     # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-    # In both cases, we have to default to `cp -p'.
+    # In both cases, we have to default to `cp -pR'.
     ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-      as_ln_s='cp -p'
+      as_ln_s='cp -pR'
   elif ln conf$$.file conf$$ 2>/dev/null; then
     as_ln_s=ln
   else
-    as_ln_s='cp -p'
+    as_ln_s='cp -pR'
   fi
 else
-  as_ln_s='cp -p'
+  as_ln_s='cp -pR'
 fi
 rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
@@ -4348,26 +4365,14 @@
 fi
 
-if test -x / >/dev/null 2>&1; then
-  as_test_x='test -x'
-else
-  if ls -dL / >/dev/null 2>&1; then
-    as_ls_L_option=L
-  else
-    as_ls_L_option=
-  fi
-  as_test_x='
-    eval sh -c '\''
-      if test -d "$1"; then
-	test -d "$1/.";
-      else
-	case $1 in #(
-	-*)set "./$1";;
-	esac;
-	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
-	???[sx]*):;;*)false;;esac;fi
-    '\'' sh
-  '
-fi
-as_executable_p=$as_test_x
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+  test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
 
 # Sed expression to map a string onto a valid CPP name.
@@ -4391,5 +4396,5 @@
 ac_log="
 This file was extended by $as_me, which was
-generated by GNU Autoconf 2.68.  Invocation command line was
+generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -4453,8 +4458,8 @@
 ac_cs_version="\\
 config.status
-configured by $0, generated by GNU Autoconf 2.68,
+configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
-Copyright (C) 2010 Free Software Foundation, Inc.
+Copyright (C) 2012 Free Software Foundation, Inc.
 This config.status script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it."
@@ -4545,5 +4550,5 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 if \$ac_cs_recheck; then
-  set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+  set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
   shift
   \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
Index: trunk/server/examples/VFS/configure.in
===================================================================
--- trunk/server/examples/VFS/configure.in	(revision 857)
+++ trunk/server/examples/VFS/configure.in	(revision 862)
Index: trunk/server/examples/VFS/module_config.h.in
===================================================================
--- trunk/server/examples/VFS/module_config.h.in	(revision 857)
+++ trunk/server/examples/VFS/module_config.h.in	(revision 862)
Index: trunk/server/examples/VFS/shadow_copy_test.c
===================================================================
--- trunk/server/examples/VFS/shadow_copy_test.c	(revision 857)
+++ trunk/server/examples/VFS/shadow_copy_test.c	(revision 862)
Index: trunk/server/examples/VFS/skel_opaque.c
===================================================================
--- trunk/server/examples/VFS/skel_opaque.c	(revision 857)
+++ trunk/server/examples/VFS/skel_opaque.c	(revision 862)
Index: trunk/server/examples/VFS/skel_transparent.c
===================================================================
--- trunk/server/examples/VFS/skel_transparent.c	(revision 857)
+++ trunk/server/examples/VFS/skel_transparent.c	(revision 862)
Index: trunk/server/lib/addns/dnsgss.c
===================================================================
--- trunk/server/lib/addns/dnsgss.c	(revision 857)
+++ trunk/server/lib/addns/dnsgss.c	(revision 862)
@@ -165,4 +165,6 @@
 			struct dns_buffer *buf;
 			struct dns_tkey_record *tkey;
+			struct dns_rrec *tkey_answer = NULL;
+			uint16_t i;
 
 			err = dns_receive(mem_ctx, conn, &buf);
@@ -175,8 +177,14 @@
 			 * TODO: Compare id and keyname
 			 */
-			
-			if ((resp->num_additionals != 1) ||
-			    (resp->num_answers == 0) ||
-			    (resp->answers[0]->type != QTYPE_TKEY)) {
+
+			for (i=0; i < resp->num_answers; i++) {
+				if (resp->answers[i]->type != QTYPE_TKEY) {
+					continue;
+				}
+
+				tkey_answer = resp->answers[i];
+			}
+
+			if (tkey_answer == NULL) {
 				err = ERROR_DNS_INVALID_MESSAGE;
 				goto error;
Index: trunk/server/lib/async_req/async_sock.c
===================================================================
--- trunk/server/lib/async_req/async_sock.c	(revision 857)
+++ trunk/server/lib/async_req/async_sock.c	(revision 862)
@@ -646,4 +646,9 @@
 	}
 
+	if (total + more < total) {
+		tevent_req_error(req, EMSGSIZE);
+		return;
+	}
+
 	tmp = talloc_realloc(state, state->buf, uint8_t, total+more);
 	if (tevent_req_nomem(tmp, req)) {
Index: trunk/server/lib/replace/getifaddrs.c
===================================================================
--- trunk/server/lib/replace/getifaddrs.c	(revision 857)
+++ trunk/server/lib/replace/getifaddrs.c	(revision 862)
@@ -5,17 +5,21 @@
    Copyright (C) Jeremy Allison 2007
    Copyright (C) Jelmer Vernooij <jelmer@samba.org> 2007
-   
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-   
-   This program is distributed in the hope that it will be useful,
+
+     ** NOTE! The following LGPL license applies to the replace
+     ** library. This does NOT imply that all of Samba is released
+     ** under the LGPL
+
+   This library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 3 of the License, or (at your option) any later version.
+
+   This library is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-   
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with this library; if not, see <http://www.gnu.org/licenses/>.
 */
 
Index: trunk/server/lib/replace/libreplace.m4
===================================================================
--- trunk/server/lib/replace/libreplace.m4	(revision 857)
+++ trunk/server/lib/replace/libreplace.m4	(revision 862)
@@ -67,5 +67,5 @@
 
 AC_CHECK_HEADERS(stdbool.h stdint.h sys/select.h)
-AC_CHECK_HEADERS(setjmp.h utime.h)
+AC_CHECK_HEADERS(setjmp.h utime.h sys/wait.h)
 
 LIBREPLACE_PROVIDE_HEADER([stdint.h])
@@ -106,4 +106,5 @@
 AC_CHECK_HEADERS(stropts.h)
 AC_CHECK_HEADERS(unix.h)
+AC_CHECK_HEADERS(sys/ucontext.h)
 
 AC_CHECK_FUNCS(seteuid setresuid setegid setresgid chroot bzero strerror strerror_r)
@@ -267,4 +268,14 @@
 
 
+dnl Check if the C compiler understands volatile (it should, being ANSI).
+AC_CACHE_CHECK([that the C compiler understands volatile],libreplace_cv_volatile, [
+	AC_TRY_COMPILE([#include <sys/types.h>],[volatile int i = 0],
+		libreplace_cv_volatile=yes,libreplace_cv_volatile=no)])
+if test x"$libreplace_cv_volatile" = x"yes"; then
+	AC_DEFINE(HAVE_VOLATILE, 1, [Whether the C compiler understands volatile])
+fi
+
+m4_include(system/config.m4)
+
 AC_CACHE_CHECK([for O_DIRECT flag to open(2)],libreplace_cv_HAVE_OPEN_O_DIRECT,[
 AC_TRY_COMPILE([
@@ -278,15 +289,4 @@
     AC_DEFINE(HAVE_OPEN_O_DIRECT,1,[Whether the open(2) accepts O_DIRECT])
 fi
-
-
-dnl Check if the C compiler understands volatile (it should, being ANSI).
-AC_CACHE_CHECK([that the C compiler understands volatile],libreplace_cv_volatile, [
-	AC_TRY_COMPILE([#include <sys/types.h>],[volatile int i = 0],
-		libreplace_cv_volatile=yes,libreplace_cv_volatile=no)])
-if test x"$libreplace_cv_volatile" = x"yes"; then
-	AC_DEFINE(HAVE_VOLATILE, 1, [Whether the C compiler understands volatile])
-fi
-
-m4_include(system/config.m4)
 
 m4_include(dlfcn.m4)
@@ -325,4 +325,16 @@
 if test x"$libreplace_cv_struct_timespec" = x"yes"; then
    AC_DEFINE(HAVE_STRUCT_TIMESPEC,1,[Whether we have struct timespec])
+fi
+
+AC_CACHE_CHECK([for ucontext_t type],libreplace_cv_ucontext_t, [
+    AC_TRY_COMPILE([
+#include <signal.h>
+#if HAVE_SYS_UCONTEXT_H
+#include <sys/ucontext.h>
+# endif
+],[ucontext_t uc; sigaddset(&uc.uc_sigmask, SIGUSR1);],
+    libreplace_cv_ucontext_t=yes,libreplace_cv_ucontext_t=no)])
+if test x"$libreplace_cv_ucontext_t" = x"yes"; then
+    AC_DEFINE(HAVE_UCONTEXT_T,1,[Whether we have ucontext_t])
 fi
 
Index: trunk/server/lib/replace/libreplace_macros.m4
===================================================================
--- trunk/server/lib/replace/libreplace_macros.m4	(revision 857)
+++ trunk/server/lib/replace/libreplace_macros.m4	(revision 862)
@@ -299,5 +299,5 @@
 	])
 )
-AS_IF([test $AS_TR_SH([ac_cv_c_prototype_$1]) = yes],[$3],[$4])
+AS_IF([eval test $AS_TR_SH([ac_cv_c_prototype_$1]) = yes],[$3],[$4])
 ])
 
Index: trunk/server/lib/replace/replace.c
===================================================================
--- trunk/server/lib/replace/replace.c	(revision 857)
+++ trunk/server/lib/replace/replace.c	(revision 862)
@@ -751,5 +751,5 @@
 #endif
 
-#ifndef HAVE_VDPRINTF
+#if !defined(HAVE_VDPRINTF) || !defined(HAVE_C99_VSNPRINTF)
 int rep_vdprintf(int fd, const char *format, va_list ap)
 {
@@ -768,5 +768,5 @@
 #endif
 
-#ifndef HAVE_DPRINTF
+#if !defined(HAVE_DPRINTF) || !defined(HAVE_C99_VSNPRINTF)
 int rep_dprintf(int fd, const char *format, ...)
 {
Index: trunk/server/lib/replace/replace.h
===================================================================
--- trunk/server/lib/replace/replace.h	(revision 857)
+++ trunk/server/lib/replace/replace.h	(revision 862)
@@ -356,14 +356,4 @@
 #endif
 
-#ifndef HAVE_VDPRINTF
-#define vdprintf rep_vdprintf
-int rep_vdprintf(int fd, const char *format, va_list ap);
-#endif
-
-#ifndef HAVE_DPRINTF
-#define dprintf rep_dprintf
-int rep_dprintf(int fd, const char *format, ...);
-#endif
-
 #ifndef PRINTF_ATTRIBUTE
 #if (__GNUC__ >= 3) && (__GNUC_MINOR__ >= 1 )
@@ -386,5 +376,15 @@
 #endif
 
-#ifndef HAVE_VASPRINTF
+#if !defined(HAVE_VDPRINTF) || !defined(HAVE_C99_VSNPRINTF)
+#define vdprintf rep_vdprintf
+int rep_vdprintf(int fd, const char *format, va_list ap) PRINTF_ATTRIBUTE(2,0);
+#endif
+
+#if !defined(HAVE_DPRINTF) || !defined(HAVE_C99_VSNPRINTF)
+#define dprintf rep_dprintf
+int rep_dprintf(int fd, const char *format, ...) PRINTF_ATTRIBUTE(2,3);
+#endif
+
+#if !defined(HAVE_VASPRINTF) || !defined(HAVE_C99_VSNPRINTF)
 #define vasprintf rep_vasprintf
 int rep_vasprintf(char **ptr, const char *format, va_list ap) PRINTF_ATTRIBUTE(2,0);
@@ -401,7 +401,25 @@
 #endif
 
-#ifndef HAVE_ASPRINTF
+#if !defined(HAVE_ASPRINTF) || !defined(HAVE_C99_VSNPRINTF)
 #define asprintf rep_asprintf
 int rep_asprintf(char **,const char *, ...) PRINTF_ATTRIBUTE(2,3);
+#endif
+
+#if !defined(HAVE_C99_VSNPRINTF)
+#ifdef REPLACE_BROKEN_PRINTF
+/*
+ * We do not redefine printf by default
+ * as it breaks the build if system headers
+ * use __attribute__((format(printf, 3, 0)))
+ * instead of __attribute__((format(__printf__, 3, 0)))
+ */
+#define printf rep_printf
+#endif
+int rep_printf(const char *, ...) PRINTF_ATTRIBUTE(1,2);
+#endif
+
+#if !defined(HAVE_C99_VSNPRINTF)
+#define fprintf rep_fprintf
+int rep_fprintf(FILE *stream, const char *, ...) PRINTF_ATTRIBUTE(2,3);
 #endif
 
Index: trunk/server/lib/replace/snprintf.c
===================================================================
--- trunk/server/lib/replace/snprintf.c	(revision 857)
+++ trunk/server/lib/replace/snprintf.c	(revision 862)
@@ -1188,5 +1188,5 @@
 }
 
- int vsnprintf (char *str, size_t count, const char *fmt, va_list args)
+ int rep_vsnprintf (char *str, size_t count, const char *fmt, va_list args)
 {
 	return dopr(str, count, fmt, args);
@@ -1201,5 +1201,5 @@
  */
 #if !defined(HAVE_SNPRINTF) || !defined(HAVE_C99_VSNPRINTF)
- int snprintf(char *str,size_t count,const char *fmt,...)
+ int rep_snprintf(char *str,size_t count,const char *fmt,...)
 {
 	size_t ret;
@@ -1214,5 +1214,5 @@
 
 #ifndef HAVE_C99_VSNPRINTF
- int printf(const char *fmt, ...)
+ int rep_printf(const char *fmt, ...)
 {
 	va_list ap;
@@ -1235,5 +1235,5 @@
 
 #ifndef HAVE_C99_VSNPRINTF
- int fprintf(FILE *stream, const char *fmt, ...)
+ int rep_fprintf(FILE *stream, const char *fmt, ...)
 {
 	va_list ap;
@@ -1257,6 +1257,6 @@
 #endif 
 
-#ifndef HAVE_VASPRINTF
- int vasprintf(char **ptr, const char *format, va_list ap)
+#if !defined(HAVE_VASPRINTF) || !defined(HAVE_C99_VSNPRINTF)
+ int rep_vasprintf(char **ptr, const char *format, va_list ap)
 {
 	int ret;
@@ -1279,7 +1279,6 @@
 #endif
 
-
-#ifndef HAVE_ASPRINTF
- int asprintf(char **ptr, const char *format, ...)
+#if !defined(HAVE_ASPRINTF) || !defined(HAVE_C99_VSNPRINTF)
+ int rep_asprintf(char **ptr, const char *format, ...)
 {
 	va_list ap;
Index: trunk/server/lib/replace/socket.c
===================================================================
--- trunk/server/lib/replace/socket.c	(revision 857)
+++ trunk/server/lib/replace/socket.c	(revision 862)
@@ -6,16 +6,20 @@
  * Copyright (C) Michael Adam <obnox@samba.org> 2008
  *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
+ *   ** NOTE! The following LGPL license applies to the replace
+ *   ** library. This does NOT imply that all of Samba is released
+ *   ** under the LGPL
  *
- * This program is distributed in the hope that it will be useful,
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
  *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, see <http://www.gnu.org/licenses/>.
  */
 
Index: trunk/server/lib/replace/system/wait.h
===================================================================
--- trunk/server/lib/replace/system/wait.h	(revision 857)
+++ trunk/server/lib/replace/system/wait.h	(revision 862)
@@ -41,4 +41,8 @@
 #endif
 
+#ifdef HAVE_SYS_UCONTEXT_H
+#include <sys/ucontext.h>
+#endif
+
 #if !defined(HAVE_SIG_ATOMIC_T_TYPE)
 typedef int sig_atomic_t;
Index: trunk/server/lib/replace/test/getifaddrs.c
===================================================================
--- trunk/server/lib/replace/test/getifaddrs.c	(revision 857)
+++ trunk/server/lib/replace/test/getifaddrs.c	(revision 862)
@@ -6,16 +6,20 @@
  * Copyright (C) Michael Adam <obnox@samba.org> 2008
  *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 3 of the License, or
- *  (at your option) any later version.
+ *   ** NOTE! The following LGPL license applies to the replace
+ *   ** library. This does NOT imply that all of Samba is released
+ *   ** under the LGPL
  *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
  *
- *  You should have received a copy of the GNU General Public License
- *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, see <http://www.gnu.org/licenses/>.
  */
 
Index: trunk/server/lib/tdb/common/lock.c
===================================================================
--- trunk/server/lib/tdb/common/lock.c	(revision 857)
+++ trunk/server/lib/tdb/common/lock.c	(revision 862)
@@ -52,5 +52,5 @@
 	int lockFile = 0;
 
-	if (off == ACTIVE_LOCK)
+	if (off == ACTIVE_LOCK || off == OPEN_LOCK || off == TRANSACTION_LOCK)
 		lockFile = tdb->hActiveLock;
 	else
@@ -77,5 +77,5 @@
 
 	TDB_LOG((tdb, TDB_DEBUG_TRACE,"fcntl_lock: (fd=%d) offset=%lld rw_type=%d len=%lld waitflag=%d (rc=%d)\n",
-		tdb->fd, off, rw, len, waitflag, rc));
+		lockFile, off, rw, len, waitflag, rc));
 
 	return rc;
@@ -162,5 +162,5 @@
 	int rc = 0;
 	int lockFile = 0;
-	if (off == ACTIVE_LOCK)
+	if (off == ACTIVE_LOCK || off == OPEN_LOCK || off == TRANSACTION_LOCK)
 		lockFile = tdb->hActiveLock;
 	else
@@ -182,5 +182,5 @@
 
 	TDB_LOG((tdb, TDB_DEBUG_TRACE,"fcntl_unlock: (fd=%d) offset=%lld rw_type=%d len=%lld (rc=%d)\n",
-		 tdb->fd, off, rw, len, rc));
+		 lockFile, off, rw, len, rc));
 
 	return rc;
Index: trunk/server/lib/tdb/common/open.c
===================================================================
--- trunk/server/lib/tdb/common/open.c	(revision 857)
+++ trunk/server/lib/tdb/common/open.c	(revision 862)
@@ -303,4 +303,9 @@
         fcntl(tdb->fd, F_SETFD, v | FD_CLOEXEC);
 
+#ifdef __OS2__
+	if (os2_crtActiveLock(tdb, name, 1, mode) != 0)
+		goto fail;
+#endif
+
 	/* ensure there is only one process initialising at once */
 	if (tdb_nest_lock(tdb, OPEN_LOCK, F_WRLCK, TDB_LOCK_WAIT) == -1) {
@@ -309,9 +314,4 @@
 		goto fail;	/* errno set by tdb_brlock */
 	}
-
-#ifdef __OS2__
-	if (os2_crtActiveLock(tdb, name, 1, mode) != 0)
-		goto fail;
-#endif
 
 	/* we need to zero database if we are the only one with it open */
Index: trunk/server/lib/tevent/tevent_signal.c
===================================================================
--- trunk/server/lib/tevent/tevent_signal.c	(revision 857)
+++ trunk/server/lib/tevent/tevent_signal.c	(revision 862)
@@ -126,8 +126,37 @@
 		/* we've filled the info array - block this signal until
 		   these ones are delivered */
+#ifdef HAVE_UCONTEXT_T
+		/*
+		 * This is the only way for this to work.
+		 * By default signum is blocked inside this
+		 * signal handler using a temporary mask,
+		 * but what we really need to do now is
+		 * block it in the callers mask, so it
+		 * stays blocked when the temporary signal
+		 * handler mask is replaced when we return
+		 * from here. The callers mask can be found
+		 * in the ucontext_t passed in as the
+		 * void *uctx argument.
+		 */
+		ucontext_t *ucp = (ucontext_t *)uctx;
+		sigaddset(&ucp->uc_sigmask, signum);
+#else
+		/*
+		 * WARNING !!! WARNING !!!!
+		 *
+		 * This code doesn't work.
+		 * By default signum is blocked inside this
+		 * signal handler, but calling sigprocmask
+		 * modifies the temporary signal mask being
+		 * used *inside* this handler, which will be
+		 * replaced by the callers signal mask once
+		 * we return from here. See Samba
+		 * bug #9550 for details.
+		 */
 		sigset_t set;
 		sigemptyset(&set);
 		sigaddset(&set, signum);
 		sigprocmask(SIG_BLOCK, &set, NULL);
+#endif
 		TEVENT_SIG_INCREMENT(sig_state->sig_blocked[signum]);
 	}
Index: trunk/server/lib/tsocket/tsocket.h
===================================================================
--- trunk/server/lib/tsocket/tsocket.h	(revision 857)
+++ trunk/server/lib/tsocket/tsocket.h	(revision 862)
@@ -627,4 +627,25 @@
 char *tsocket_address_unix_path(const struct tsocket_address *addr,
 				TALLOC_CTX *mem_ctx);
+
+/**
+ * @brief Request a syscall optimization for tdgram_recvfrom_send()
+ *
+ * This function is only used to reduce the amount of syscalls and
+ * optimize performance. You should only use this if you know
+ * what you're doing.
+ *
+ * The optimization is off by default.
+ *
+ * @param[in]  dgram    The tdgram_context of a bsd socket, if this
+ *                      not a bsd socket the function does nothing.
+ *
+ * @param[in]  on       The boolean value to turn the optimization on and off.
+ *
+ * @return              The old boolean value.
+ *
+ * @see tdgram_recvfrom_send()
+ */
+bool tdgram_bsd_optimize_recvfrom(struct tdgram_context *dgram,
+				  bool on);
 
 #ifdef DOXYGEN
@@ -688,4 +709,25 @@
 	_tdgram_unix_socket(local, remote, mem_ctx, dgram, __location__)
 #endif
+
+/**
+ * @brief Request a syscall optimization for tstream_readv_send()
+ *
+ * This function is only used to reduce the amount of syscalls and
+ * optimize performance. You should only use this if you know
+ * what you're doing.
+ *
+ * The optimization is off by default.
+ *
+ * @param[in]  stream   The tstream_context of a bsd socket, if this
+ *                      not a bsd socket the function does nothing.
+ *
+ * @param[in]  on       The boolean value to turn the optimization on and off.
+ *
+ * @return              The old boolean value.
+ *
+ * @see tstream_readv_send()
+ */
+bool tstream_bsd_optimize_readv(struct tstream_context *stream,
+				bool on);
 
 /**
Index: trunk/server/lib/tsocket/tsocket_bsd.c
===================================================================
--- trunk/server/lib/tsocket/tsocket_bsd.c	(revision 857)
+++ trunk/server/lib/tsocket/tsocket_bsd.c	(revision 862)
@@ -655,4 +655,5 @@
 	void *event_ptr;
 	struct tevent_fd *fde;
+	bool optimize_recvfrom;
 
 	void *readable_private;
@@ -661,4 +662,23 @@
 	void (*writeable_handler)(void *private_data);
 };
+
+bool tdgram_bsd_optimize_recvfrom(struct tdgram_context *dgram,
+				  bool on)
+{
+	struct tdgram_bsd *bsds =
+		talloc_get_type(_tdgram_context_data(dgram),
+		struct tdgram_bsd);
+	bool old;
+
+	if (bsds == NULL) {
+		/* not a bsd socket */
+		return false;
+	}
+
+	old = bsds->optimize_recvfrom;
+	bsds->optimize_recvfrom = on;
+
+	return old;
+}
 
 static void tdgram_bsd_fde_handler(struct tevent_context *ev,
@@ -838,4 +858,5 @@
 	}
 
+
 	/*
 	 * this is a fast path, not waiting for the
@@ -843,7 +864,17 @@
 	 * about 10%-20% performance in benchmark tests.
 	 */
-	tdgram_bsd_recvfrom_handler(req);
-	if (!tevent_req_is_in_progress(req)) {
-		goto post;
+	if (bsds->optimize_recvfrom) {
+		/*
+		 * We only do the optimization on
+		 * recvfrom if the caller asked for it.
+		 *
+		 * This is needed because in most cases
+		 * we preferr to flush send buffers before
+		 * receiving incoming requests.
+		 */
+		tdgram_bsd_recvfrom_handler(req);
+		if (!tevent_req_is_in_progress(req)) {
+			goto post;
+		}
 	}
 
@@ -1401,4 +1432,5 @@
 	void *event_ptr;
 	struct tevent_fd *fde;
+	bool optimize_readv;
 
 	void *readable_private;
@@ -1407,4 +1439,23 @@
 	void (*writeable_handler)(void *private_data);
 };
+
+bool tstream_bsd_optimize_readv(struct tstream_context *stream,
+				bool on)
+{
+	struct tstream_bsd *bsds =
+		talloc_get_type(_tstream_context_data(stream),
+		struct tstream_bsd);
+	bool old;
+
+	if (bsds == NULL) {
+		/* not a bsd socket */
+		return false;
+	}
+
+	old = bsds->optimize_readv;
+	bsds->optimize_readv = on;
+
+	return old;
+}
 
 static void tstream_bsd_fde_handler(struct tevent_context *ev,
@@ -1620,7 +1671,17 @@
 	 * about 10%-20% performance in benchmark tests.
 	 */
-	tstream_bsd_readv_handler(req);
-	if (!tevent_req_is_in_progress(req)) {
-		goto post;
+	if (bsds->optimize_readv) {
+		/*
+		 * We only do the optimization on
+		 * readv if the caller asked for it.
+		 *
+		 * This is needed because in most cases
+		 * we preferr to flush send buffers before
+		 * receiving incoming requests.
+		 */
+		tstream_bsd_readv_handler(req);
+		if (!tevent_req_is_in_progress(req)) {
+			goto post;
+		}
 	}
 
Index: trunk/server/lib/tsocket/tsocket_helpers.c
===================================================================
--- trunk/server/lib/tsocket/tsocket_helpers.c	(revision 857)
+++ trunk/server/lib/tsocket/tsocket_helpers.c	(revision 862)
@@ -213,4 +213,18 @@
 	size_t i;
 	struct tevent_req *subreq;
+	bool optimize = false;
+	bool save_optimize = false;
+
+	if (state->count > 0) {
+		/*
+		 * This is not the first time we asked for a vector,
+		 * which means parts of the pdu already arrived.
+		 *
+		 * In this case it make sense to enable
+		 * a syscall/performance optimization if the
+		 * low level tstream implementation supports it.
+		 */
+		optimize = true;
+	}
 
 	TALLOC_FREE(state->vector);
@@ -256,4 +270,15 @@
 	}
 
+	if (optimize) {
+		/*
+		 * If the low level stream is a bsd socket
+		 * we will get syscall optimization.
+		 *
+		 * If it is not a bsd socket
+		 * tstream_bsd_optimize_readv() just returns.
+		 */
+		save_optimize = tstream_bsd_optimize_readv(state->caller.stream,
+							   true);
+	}
 	subreq = tstream_readv_send(state,
 				    state->caller.ev,
@@ -261,4 +286,8 @@
 				    state->vector,
 				    state->count);
+	if (optimize) {
+		tstream_bsd_optimize_readv(state->caller.stream,
+					   save_optimize);
+	}
 	if (tevent_req_nomem(subreq, req)) {
 		return;
Index: trunk/server/lib/util/debug.c
===================================================================
--- trunk/server/lib/util/debug.c	(revision 857)
+++ trunk/server/lib/util/debug.c	(revision 862)
@@ -954,5 +954,5 @@
 				 sizeof(header_str) -1 - hs_len,
 				 ", class=%s",
-				 default_classname_table[cls]);
+				 classname_table[cls]);
 		}
 
Index: trunk/server/libcli/util/tstream.c
===================================================================
--- trunk/server/libcli/util/tstream.c	(revision 857)
+++ trunk/server/libcli/util/tstream.c	(revision 862)
@@ -130,4 +130,9 @@
 	}
 
+	if (new_buf_size <= old_buf_size) {
+		tevent_req_nterror(req, NT_STATUS_INVALID_BUFFER_SIZE);
+		return;
+	}
+
 	buf = talloc_realloc(state, state->pdu_blob.data, uint8_t, new_buf_size);
 	if (tevent_req_nomem(buf, req)) {
Index: trunk/server/librpc/idl/dcerpc.idl
===================================================================
--- trunk/server/librpc/idl/dcerpc.idl	(revision 857)
+++ trunk/server/librpc/idl/dcerpc.idl	(revision 862)
@@ -468,4 +468,5 @@
 	const uint8 DCERPC_FRAG_LEN_OFFSET =  8;
 	const uint8 DCERPC_AUTH_LEN_OFFSET = 10;
+	const uint8 DCERPC_CALL_ID_OFFSET  = 12;
 
 	/* little-endian flag */
Index: trunk/server/librpc/idl/ntprinting.idl
===================================================================
--- trunk/server/librpc/idl/ntprinting.idl	(revision 857)
+++ trunk/server/librpc/idl/ntprinting.idl	(revision 862)
@@ -31,18 +31,22 @@
 		);
 
-	/* Samba 3 tdb storage format: drivers
+	/*
+	 * First the string flags and then the Samba 3 tdb storage
+	 * format: drivers
 	 * "dffffffff" followed by a remaining buffer of "f" array */
 
 	typedef [flag(NDR_NOALIGN),public] struct {
+		[skip] uint32 string_flags;
+
 		uint32 version;
-		utf8string name;
-		utf8string environment;
-		utf8string driverpath;
-		utf8string datafile;
-		utf8string configfile;
-		utf8string helpfile;
-		utf8string monitorname;
-		utf8string defaultdatatype;
-		[flag(STR_UTF8|STR_NOTERM|NDR_REMAINING)] string_array dependent_files;
+		[flag(ndr_ntprinting_string_flags(r->string_flags))] string name;
+		[flag(ndr_ntprinting_string_flags(r->string_flags))] string environment;
+		[flag(ndr_ntprinting_string_flags(r->string_flags))] string driverpath;
+		[flag(ndr_ntprinting_string_flags(r->string_flags))] string datafile;
+		[flag(ndr_ntprinting_string_flags(r->string_flags))] string configfile;
+		[flag(ndr_ntprinting_string_flags(r->string_flags))] string helpfile;
+		[flag(ndr_ntprinting_string_flags(r->string_flags))] string monitorname;
+		[flag(ndr_ntprinting_string_flags(r->string_flags))] string defaultdatatype;
+		[flag((ndr_ntprinting_string_flags(r->string_flags)&~STR_NULLTERM)|STR_NOTERM|NDR_REMAINING)] string_array dependent_files;
 	} ntprinting_driver;
 
@@ -58,7 +62,9 @@
 
 	typedef [flag(NDR_NOALIGN),public] struct {
+		[skip] uint32 string_flags;
+
 		/* uint32 devicemode_ptr; */
-		utf8string devicename;
-		utf8string formname;
+		[flag(ndr_ntprinting_string_flags(r->string_flags))] string devicename;
+		[flag(ndr_ntprinting_string_flags(r->string_flags))] string formname;
 		uint16 specversion;
 		uint16 driverversion;
@@ -96,19 +102,28 @@
 	} ntprinting_devicemode;
 
-	/* Samba 3 tdb storage format: printer_data
+	/*
+	 * First the string flags and then the Samba 3 tdb storage
+	 * format: printer_data
 	 * "p" ptr to printer_data
 	 * "fdB" */
 
 	typedef [flag(NDR_NOALIGN),public] struct {
+		[skip] uint32 string_flags;
+
 		uint32 ptr;
-		utf8string name;
+		[flag(ndr_ntprinting_string_flags(r->string_flags))] string name;
 		uint32 type;
 		DATA_BLOB data;
 	} ntprinting_printer_data;
 
-	/* Samba 3 tdb storage format: printer_info
-	 * "dddddddddddfffffPfffff" */
+	/*
+	 * First the string flags and then the Samba 3 tdb storage
+	 * format: printer_info
+	 * "dddddddddddfffffPfffff"
+	 */
 
 	typedef [flag(NDR_NOALIGN),public] struct {
+		[skip] uint32 string_flags;
+
 		uint32 attributes;
 		uint32 priority;
@@ -122,15 +137,15 @@
 		uint32 c_setprinter;
 		uint32 setuptime;
-		utf8string servername;
-		utf8string printername;
-		utf8string sharename;
-		utf8string portname;
-		utf8string drivername;
-		utf8string comment;
-		utf8string location;
-		utf8string sepfile;
-		utf8string printprocessor;
-		utf8string datatype;
-		utf8string parameters;
+		[flag(ndr_ntprinting_string_flags(r->string_flags))] string servername;
+		[flag(ndr_ntprinting_string_flags(r->string_flags))] string printername;
+		[flag(ndr_ntprinting_string_flags(r->string_flags))] string sharename;
+		[flag(ndr_ntprinting_string_flags(r->string_flags))] string portname;
+		[flag(ndr_ntprinting_string_flags(r->string_flags))] string drivername;
+		[flag(ndr_ntprinting_string_flags(r->string_flags))] string comment;
+		[flag(ndr_ntprinting_string_flags(r->string_flags))] string location;
+		[flag(ndr_ntprinting_string_flags(r->string_flags))] string sepfile;
+		[flag(ndr_ntprinting_string_flags(r->string_flags))] string printprocessor;
+		[flag(ndr_ntprinting_string_flags(r->string_flags))] string datatype;
+		[flag(ndr_ntprinting_string_flags(r->string_flags))] string parameters;
 	} ntprinting_printer_info;
 
Index: trunk/server/librpc/idl/security.idl
===================================================================
--- trunk/server/librpc/idl/security.idl	(revision 857)
+++ trunk/server/librpc/idl/security.idl	(revision 862)
@@ -594,4 +594,7 @@
 		SECINFO_SACL                 = 0x00000008,
 		SECINFO_LABEL                = 0x00000010,
+		SECINFO_ATTRIBUTE	     = 0x00000020,
+		SECINFO_SCOPE                = 0x00000040,
+		SECINFO_BACKUP		     = 0x00010000,
 		SECINFO_UNPROTECTED_SACL     = 0x10000000,
 		SECINFO_UNPROTECTED_DACL     = 0x20000000,
Index: trunk/server/librpc/idl/spoolss.idl
===================================================================
--- trunk/server/librpc/idl/spoolss.idl	(revision 857)
+++ trunk/server/librpc/idl/spoolss.idl	(revision 862)
@@ -1304,5 +1304,6 @@
 		SPOOLSS_DRIVER_VERSION_NT35	= 1,
 		SPOOLSS_DRIVER_VERSION_NT4	= 2,
-		SPOOLSS_DRIVER_VERSION_200X	= 3
+		SPOOLSS_DRIVER_VERSION_200X	= 3,
+		SPOOLSS_DRIVER_VERSION_2012	= 4
 	} spoolss_DriverOSVersion;
 
Index: trunk/server/librpc/ndr/ndr_ntprinting.c
===================================================================
--- trunk/server/librpc/ndr/ndr_ntprinting.c	(revision 857)
+++ trunk/server/librpc/ndr/ndr_ntprinting.c	(revision 862)
@@ -23,4 +23,17 @@
 #include "../librpc/gen_ndr/ndr_ntprinting.h"
 
+_PUBLIC_ uint32_t ndr_ntprinting_string_flags(uint32_t string_flags)
+{
+	uint32_t flags = LIBNDR_FLAG_STR_NULLTERM;
+
+	if (string_flags & LIBNDR_FLAG_STR_ASCII) {
+		flags |= LIBNDR_FLAG_STR_ASCII;
+	} else {
+		flags |= LIBNDR_FLAG_STR_UTF8;
+	}
+
+	return flags;
+}
+
 _PUBLIC_ enum ndr_err_code ndr_pull_ntprinting_printer(struct ndr_pull *ndr, int ndr_flags, struct ntprinting_printer *r)
 {
@@ -44,4 +57,5 @@
 				_mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
 				NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
+				r->devmode->string_flags = r->info.string_flags;
 				NDR_CHECK(ndr_pull_ntprinting_devicemode(ndr, NDR_SCALARS|NDR_BUFFERS, r->devmode));
 				NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
@@ -60,4 +74,5 @@
 				r->printer_data = talloc_realloc(ndr, r->printer_data, struct ntprinting_printer_data, r->count + 1);
 				NDR_ERR_HAVE_NO_MEMORY(r->printer_data);
+				r->printer_data[r->count].string_flags = r->info.string_flags;
 				NDR_CHECK(ndr_pull_ntprinting_printer_data(ndr, NDR_SCALARS, &r->printer_data[r->count]));
 				r->count++;
Index: trunk/server/librpc/ndr/ndr_ntprinting.h
===================================================================
--- trunk/server/librpc/ndr/ndr_ntprinting.h	(revision 857)
+++ trunk/server/librpc/ndr/ndr_ntprinting.h	(revision 862)
@@ -23,3 +23,5 @@
 #include "../librpc/gen_ndr/ndr_ntprinting.h"
 
+_PUBLIC_ uint32_t ndr_ntprinting_string_flags(uint32_t string_flags);
+
 _PUBLIC_ enum ndr_err_code ndr_pull_ntprinting_printer(struct ndr_pull *ndr, int ndr_flags, struct ntprinting_printer *r);
Index: trunk/server/librpc/rpc/dcerpc_util.c
===================================================================
--- trunk/server/librpc/rpc/dcerpc_util.c	(revision 857)
+++ trunk/server/librpc/rpc/dcerpc_util.c	(revision 862)
@@ -46,4 +46,13 @@
 	} else {
 		return RSVAL(blob->data, DCERPC_FRAG_LEN_OFFSET);
+	}
+}
+
+uint32_t dcerpc_get_call_id(const DATA_BLOB *blob)
+{
+	if (CVAL(blob->data,DCERPC_DREP_OFFSET) & DCERPC_DREP_LE) {
+		return IVAL(blob->data, DCERPC_CALL_ID_OFFSET);
+	} else {
+		return RIVAL(blob->data, DCERPC_CALL_ID_OFFSET);
 	}
 }
@@ -224,4 +233,13 @@
 		ofs = state->buffer.length;
 
+		if (frag_len < ofs) {
+			/*
+			 * something is wrong, let the caller deal with it
+			 */
+			*_vector = NULL;
+			*_count = 0;
+			return 0;
+		}
+
 		state->buffer.data = talloc_realloc(state,
 						    state->buffer.data,
@@ -293,4 +311,9 @@
 	}
 
+	if (state->pkt->frag_length != state->buffer.length) {
+		tevent_req_nterror(req, NT_STATUS_RPC_PROTOCOL_ERROR);
+		return;
+	}
+
 	tevent_req_done(req);
 }
Index: trunk/server/librpc/rpc/rpc_common.h
===================================================================
--- trunk/server/librpc/rpc/rpc_common.h	(revision 857)
+++ trunk/server/librpc/rpc/rpc_common.h	(revision 862)
@@ -136,4 +136,5 @@
 void dcerpc_set_frag_length(DATA_BLOB *blob, uint16_t v);
 uint16_t dcerpc_get_frag_length(const DATA_BLOB *blob);
+uint32_t dcerpc_get_call_id(const DATA_BLOB *blob);
 void dcerpc_set_auth_length(DATA_BLOB *blob, uint16_t v);
 uint8_t dcerpc_get_endian_flag(DATA_BLOB *blob);
Index: trunk/server/nsswitch/libwbclient/wbc_sid.c
===================================================================
--- trunk/server/nsswitch/libwbclient/wbc_sid.c	(revision 857)
+++ trunk/server/nsswitch/libwbclient/wbc_sid.c	(revision 862)
@@ -422,4 +422,11 @@
 
 		names[i].domain_index = strtoul(p, &q, 10);
+		if (names[i].domain_index < 0) {
+			goto wbc_err_invalid;
+		}
+		if (names[i].domain_index >= num_domains) {
+			goto wbc_err_invalid;
+		}
+
 		if (*q != ' ') {
 			goto wbc_err_invalid;
Index: trunk/server/nsswitch/pam_winbind.c
===================================================================
--- trunk/server/nsswitch/pam_winbind.c	(revision 857)
+++ trunk/server/nsswitch/pam_winbind.c	(revision 862)
@@ -1185,4 +1185,10 @@
 				"to sid, please contact your administrator to see "
 				"if group %s is valid."), search_location, search_location);
+
+		/* If no valid groups were converted we should fail outright */
+		if (name_list != NULL && strlen(sid_list_buffer) == 0) {
+			result = false;
+			goto out;
+		}
 		/*
 		 * The lookup of the last name failed..
@@ -2449,5 +2455,5 @@
 	}
 
-	return talloc_asprintf(ctx, "%s\\%s", domain, name);
+	return talloc_asprintf(ctx, "%s%c%s", domain, sep, name);
 }
 
@@ -2736,7 +2742,8 @@
 	}
 
-	_PAM_LOG_FUNCTION_LEAVE("pam_sm_authenticate", ctx, retval);
-
-	TALLOC_FREE(ctx);
+	if (ctx != NULL) {
+		_PAM_LOG_FUNCTION_LEAVE("pam_sm_authenticate", ctx, retval);
+		TALLOC_FREE(ctx);
+	}
 
 	return retval;
Index: trunk/server/nsswitch/wb_common.c
===================================================================
--- trunk/server/nsswitch/wb_common.c	(revision 857)
+++ trunk/server/nsswitch/wb_common.c	(revision 862)
@@ -393,7 +393,7 @@
 
 		pfd.fd = winbindd_fd;
-		pfd.events = POLLIN|POLLHUP;
-
-		ret = poll(&pfd, 1, 0);
+		pfd.events = POLLIN|POLLOUT|POLLHUP;
+
+		ret = poll(&pfd, 1, -1);
 		if (ret == -1) {
 			winbind_close_sock();
Index: trunk/server/nsswitch/wbinfo.c
===================================================================
--- trunk/server/nsswitch/wbinfo.c	(revision 857)
+++ trunk/server/nsswitch/wbinfo.c	(revision 862)
@@ -1381,9 +1381,26 @@
 
 	for (i=0; i<num_sids; i++) {
+		const char *domain = NULL;
+
 		wbcSidToStringBuf(&sids[i], sidstr, sizeof(sidstr));
 
-		d_printf("%s -> %s\\%s %d\n", sidstr,
-			 domains[names[i].domain_index].short_name,
-			 names[i].name, names[i].type);
+		if (names[i].domain_index >= num_domains) {
+			domain = "<none>";
+		} else if (names[i].domain_index < 0) {
+			domain = "<none>";
+		} else {
+			domain = domains[names[i].domain_index].short_name;
+		}
+
+		if (names[i].type == WBC_SID_NAME_DOMAIN) {
+			d_printf("%s -> %s %d\n", sidstr,
+				domain,
+				names[i].type);
+		} else {
+			d_printf("%s -> %s%c%s %d\n", sidstr,
+				domain,
+				winbind_separator(),
+				names[i].name, names[i].type);
+		}
 	}
 	return true;
@@ -1729,5 +1746,5 @@
 	wbcErr wbc_status = WBC_ERR_UNKNOWN_FAILURE;
 	struct wbcLogonUserParams params;
-	struct wbcAuthErrorInfo *error;
+	struct wbcAuthErrorInfo *error = NULL;
 	char *s = NULL;
 	char *p = NULL;
@@ -1780,5 +1797,5 @@
 		 WBC_ERROR_IS_OK(wbc_status) ? "succeeded" : "failed");
 
-	if (!WBC_ERROR_IS_OK(wbc_status)) {
+	if (!WBC_ERROR_IS_OK(wbc_status) && (error != NULL)) {
 		d_fprintf(stderr,
 			  "error code was %s (0x%x)\nerror message was: %s\n",
@@ -1787,7 +1804,6 @@
 			  error->display_string);
 		wbcFreeMemory(error);
-		return false;
-	}
-	return true;
+	}
+	return WBC_ERROR_IS_OK(wbc_status);
 }
 
Index: trunk/server/packaging/RHEL-CTDB/samba.spec
===================================================================
--- trunk/server/packaging/RHEL-CTDB/samba.spec	(revision 857)
+++ trunk/server/packaging/RHEL-CTDB/samba.spec	(revision 862)
@@ -6,5 +6,5 @@
 Packager: Samba Team <samba@samba.org>
 Name:         samba
-Version:      3.6.9
+Version:      3.6.23
 Release:      1GITHASH
 Epoch:        0
Index: trunk/server/packaging/RHEL/makerpms.sh
===================================================================
--- trunk/server/packaging/RHEL/makerpms.sh	(revision 857)
+++ trunk/server/packaging/RHEL/makerpms.sh	(revision 862)
@@ -21,5 +21,5 @@
 USERID=`id -u`
 GRPID=`id -g`
-VERSION='3.6.9'
+VERSION='3.6.23'
 REVISION=''
 SPECFILE="samba.spec"
Index: trunk/server/packaging/RHEL/samba.spec
===================================================================
--- trunk/server/packaging/RHEL/samba.spec	(revision 857)
+++ trunk/server/packaging/RHEL/samba.spec	(revision 862)
@@ -12,5 +12,5 @@
 Packager: Samba Team <samba@samba.org>
 Name:         samba
-Version:      3.6.9
+Version:      3.6.23
 Release:      1
 Epoch:        0
@@ -371,4 +371,5 @@
 %{_mandir}/man1/ntlm_auth.1*
 %{_mandir}/man1/wbinfo.1*
+%{_mandir}/man1/dbwrap_*.1*
 %{_mandir}/man8/vfs_*.8*
 %{_mandir}/man8/idmap_*.8*
Index: trunk/server/packaging/RHEL/samba.spec.tmpl
===================================================================
--- trunk/server/packaging/RHEL/samba.spec.tmpl	(revision 857)
+++ trunk/server/packaging/RHEL/samba.spec.tmpl	(revision 862)
@@ -371,4 +371,5 @@
 %{_mandir}/man1/ntlm_auth.1*
 %{_mandir}/man1/wbinfo.1*
+%{_mandir}/man1/dbwrap_*.1*
 %{_mandir}/man8/vfs_*.8*
 %{_mandir}/man8/idmap_*.8*
Index: trunk/server/pidl/idl.yp
===================================================================
--- trunk/server/pidl/idl.yp	(revision 857)
+++ trunk/server/pidl/idl.yp	(revision 862)
@@ -611,5 +611,7 @@
 	for ($parser->YYData->{INPUT}) {
 		if (/^\#/) {
-			if (s/^\# (\d+) \"(.*?)\"( \d+|)//) {
+			# Linemarker format is described at
+			# http://gcc.gnu.org/onlinedocs/cpp/Preprocessor-Output.html
+			if (s/^\# (\d+) \"(.*?)\"(( \d+){1,4}|)//) {
 				$parser->YYData->{LINE} = $1-1;
 				$parser->YYData->{FILE} = $2;
Index: trunk/server/pidl/lib/Parse/Pidl/IDL.pm
===================================================================
--- trunk/server/pidl/lib/Parse/Pidl/IDL.pm	(revision 857)
+++ trunk/server/pidl/lib/Parse/Pidl/IDL.pm	(revision 862)
@@ -2577,5 +2577,7 @@
 	for ($parser->YYData->{INPUT}) {
 		if (/^\#/) {
-			if (s/^\# (\d+) \"(.*?)\"( \d+|)//) {
+			# Linemarker format is described at
+			# http://gcc.gnu.org/onlinedocs/cpp/Preprocessor-Output.html
+			if (s/^\# (\d+) \"(.*?)\"(( \d+){1,4}|)//) {
 				$parser->YYData->{LINE} = $1-1;
 				$parser->YYData->{FILE} = $2;
Index: trunk/server/pidl/lib/Parse/Pidl/NDR.pm
===================================================================
--- trunk/server/pidl/lib/Parse/Pidl/NDR.pm	(revision 857)
+++ trunk/server/pidl/lib/Parse/Pidl/NDR.pm	(revision 862)
@@ -1071,4 +1071,5 @@
 	"nopython"		=> ["FUNCTION", "TYPEDEF", "STRUCT", "UNION", "ENUM", "BITMAP"],
 	"todo"			=> ["FUNCTION"],
+	"skip"			=> ["ELEMENT"],
 
 	# union
Index: trunk/server/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm
===================================================================
--- trunk/server/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm	(revision 857)
+++ trunk/server/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm	(revision 862)
@@ -925,5 +925,9 @@
 		$var_name = get_pointer_to($var_name);
 
-		$self->pidl("NDR_CHECK(".TypeFunctionName("ndr_pull", $l->{DATA_TYPE})."($ndr, $ndr_flags, $var_name));");
+		if (has_property($e, "skip")) {
+			$self->pidl("/* [skip] '$var_name' */");
+		} else {
+			$self->pidl("NDR_CHECK(".TypeFunctionName("ndr_pull", $l->{DATA_TYPE})."($ndr, $ndr_flags, $var_name));");
+		}
 
 		my $pl = GetPrevLevel($e, $l);
@@ -963,5 +967,9 @@
 		}
 
-		$self->pidl("NDR_CHECK(".TypeFunctionName("ndr_push", $l->{DATA_TYPE})."($ndr, $ndr_flags, $var_name));");
+		if (has_property($e, "skip")) {
+			$self->pidl("/* [skip] '$var_name' */");
+		} else {
+			$self->pidl("NDR_CHECK(".TypeFunctionName("ndr_push", $l->{DATA_TYPE})."($ndr, $ndr_flags, $var_name));");
+		}
 	} else {
 		$self->ParseTypePush($l->{DATA_TYPE}, $ndr, $var_name, $primitives, $deferred);
Index: trunk/server/selftest/target/Samba3.pm
===================================================================
--- trunk/server/selftest/target/Samba3.pm	(revision 857)
+++ trunk/server/selftest/target/Samba3.pm	(revision 862)
@@ -651,4 +651,6 @@
 [tmp]
 	path = $shrdir
+	comment = smb username is [%U]
+	vfs objects = $vfs_modulesdir_abs/dirsort.so
 [tmpguest]
 	path = $shrdir
Index: trunk/server/source3/Makefile.in
===================================================================
--- trunk/server/source3/Makefile.in	(revision 857)
+++ trunk/server/source3/Makefile.in	(revision 862)
@@ -82,7 +82,9 @@
 LIBTALLOC=@LIBTALLOC_STATIC@ @LIBTALLOC_SHARED@
 LIBTALLOC_LIBS=@LIBTALLOC_LIBS@
+LIBTEVENT=@LIBTEVENT_STATIC@ @LIBTEVENT_SHARED@
+LIBTEVENT_LIBS=@LIBTEVENT_LIBS@
 LIBREPLACE_LIBS=@LIBREPLACE_LIBS@
 LIBTDB=@LIBTDB_STATIC@ @LIBTDB_SHARED@
-LIBTDB_LIBS=@LIBTDB_LIBS@ -lmmap
+LIBTDB_LIBS=@LIBTDB_LIBS@
 TDB_DEPS=@TDB_DEPS@
 LIBNETAPI=@LIBNETAPI_STATIC@ @LIBNETAPI_SHARED@
@@ -337,5 +339,5 @@
 
 LIBNDR_NTPRINTING_OBJ = librpc/gen_ndr/ndr_ntprinting.o \
-			../librpc/ndr/ndr_ntprinting.o \
+			../librpc/ndr/ndr_ntprinting.o
 
 LIBNDR_PREG_OBJ = librpc/gen_ndr/ndr_preg.o \
@@ -466,5 +468,5 @@
 	  lib/conn_tdb.o lib/adt_tree.o lib/gencache.o \
 	  lib/sessionid_tdb.o \
-	  lib/module.o lib/events.o @LIBTEVENT_OBJ0@ \
+	  lib/module.o lib/events.o \
 	  lib/server_contexts.o \
 	  lib/ldap_escape.o @CHARSET_STATIC@ \
@@ -1776,120 +1778,120 @@
 	@: >> $@ || : > $@ # what a fancy emoticon!
 
-bin/smbd@EXEEXT@: $(BINARY_PREREQS) $(SMBD_OBJ) $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT) @BUILD_POPT@
+bin/smbd@EXEEXT@: $(BINARY_PREREQS) $(SMBD_OBJ) $(LIBTALLOC) $(LIBTEVENT) $(LIBTDB) $(LIBWBCLIENT) @BUILD_POPT@
 	@echo Linking $@
 	@$(CC) -o $@ $(SMBD_OBJ) $(LDFLAGS) $(LDAP_LIBS) @SMBD_FAM_LIBS@ \
 		$(KRB5LIBS) $(DYNEXP) $(PRINT_LIBS) $(AUTH_LIBS) \
 		$(ACL_LIBS) $(PASSDB_LIBS) $(LIBS) $(DNSSD_LIBS) $(AVAHI_LIBS) \
-		$(POPT_LIBS) @SMBD_LIBS@ $(LIBTALLOC_LIBS) $(LIBTDB_LIBS) \
+		$(POPT_LIBS) @SMBD_LIBS@ $(LIBTALLOC_LIBS) $(LIBTEVENT_LIBS) $(LIBTDB_LIBS) \
 		$(LIBWBCLIENT_LIBS) $(ZLIB_LIBS)
 
-bin/nmbd@EXEEXT@: $(BINARY_PREREQS) $(NMBD_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
+bin/nmbd@EXEEXT@: $(BINARY_PREREQS) $(NMBD_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTEVENT) $(LIBTDB) $(LIBWBCLIENT)
 	@echo Linking $@
 	@$(CC) -o $@ $(NMBD_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) \
 		@LIBWBCLIENT_STATIC@ $(LIBWBCLIENT_LIBS) \
-		$(LIBTALLOC_LIBS) $(LIBTDB_LIBS) $(POPT_LIBS) \
+		$(LIBTALLOC_LIBS) $(LIBTEVENT_LIBS) $(LIBTDB_LIBS) $(POPT_LIBS) \
 		$(KRB5LIBS) $(LDAP_LIBS) $(ZLIB_LIBS)
 
-bin/swat@EXEEXT@: $(BINARY_PREREQS) $(SWAT_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
+bin/swat@EXEEXT@: $(BINARY_PREREQS) $(SWAT_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTEVENT) $(LIBTDB) $(LIBWBCLIENT)
 	@echo Linking $@
 	@$(CC) -o $@ $(SWAT_OBJ) $(LDFLAGS) $(DYNEXP) $(PRINT_LIBS) \
 	  $(AUTH_LIBS) $(LIBS) $(PASSDB_LIBS) $(POPT_LIBS) $(KRB5LIBS) \
-	  $(LDAP_LIBS) $(LIBTALLOC_LIBS) $(LIBTDB_LIBS) $(LIBWBCLIENT_LIBS) $(ZLIB_LIBS)
-
-bin/rpcclient@EXEEXT@: $(BINARY_PREREQS) $(RPCCLIENT_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
+	  $(LDAP_LIBS) $(LIBTALLOC_LIBS) $(LIBTEVENT_LIBS) $(LIBTDB_LIBS) $(LIBWBCLIENT_LIBS) $(ZLIB_LIBS)
+
+bin/rpcclient@EXEEXT@: $(BINARY_PREREQS) $(RPCCLIENT_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTEVENT) $(LIBTDB) $(LIBWBCLIENT)
 	@echo Linking $@
 	@$(CC) -o $@ $(LDFLAGS) $(RPCCLIENT_OBJ) \
 		$(DYNEXP) $(TERMLDFLAGS) $(TERMLIBS) $(LIBS) $(POPT_LIBS) \
-		$(KRB5LIBS) $(LDAP_LIBS) $(LIBTALLOC_LIBS) $(LIBTDB_LIBS) \
+		$(KRB5LIBS) $(LDAP_LIBS) $(LIBTALLOC_LIBS) $(LIBTEVENT_LIBS) $(LIBTDB_LIBS) \
 		$(LIBWBCLIENT_LIBS) $(ZLIB_LIBS) $(PASSDB_LIBS)
 
-bin/smbclient@EXEEXT@: $(BINARY_PREREQS) $(CLIENT_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
+bin/smbclient@EXEEXT@: $(BINARY_PREREQS) $(CLIENT_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTEVENT) $(LIBTDB) $(LIBWBCLIENT)
 	@echo Linking $@
 	@$(CC) -o $@ $(CLIENT_OBJ) $(LDFLAGS) $(DYNEXP) \
 		$(TERMLDFLAGS) $(TERMLIBS) $(LIBS) $(POPT_LIBS) \
 		$(KRB5LIBS) $(LDAP_LIBS) $(NSCD_LIBS) $(DNSSD_LIBS) \
-		$(LIBTALLOC_LIBS) $(LIBTDB_LIBS) $(LIBWBCLIENT_LIBS) $(ZLIB_LIBS)
-
-bin/net@EXEEXT@: $(BINARY_PREREQS) $(NET_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT) $(LIBNETAPI)
+		$(LIBTALLOC_LIBS) $(LIBTEVENT_LIBS) $(LIBTDB_LIBS) $(LIBWBCLIENT_LIBS) $(ZLIB_LIBS)
+
+bin/net@EXEEXT@: $(BINARY_PREREQS) $(NET_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTEVENT) $(LIBTDB) $(LIBWBCLIENT) $(LIBNETAPI)
 	@echo Linking $@
 	@$(CC) -o $@ $(NET_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) \
 		$(POPT_LIBS) $(KRB5LIBS) $(UUID_LIBS) $(LDAP_LIBS) \
 		$(PASSDB_LIBS) $(TERMLDFLAGS) $(TERMLIBS) $(NSCD_LIBS) \
-		$(LIBTALLOC_LIBS) $(LIBTDB_LIBS) $(LIBWBCLIENT_LIBS) $(LIBNETAPI_LIBS) \
+		$(LIBTALLOC_LIBS) $(LIBTEVENT_LIBS) $(LIBTDB_LIBS) $(LIBWBCLIENT_LIBS) $(LIBNETAPI_LIBS) \
 		$(ZLIB_LIBS)
 
-bin/profiles@EXEEXT@: $(BINARY_PREREQS) $(PROFILES_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB)
+bin/profiles@EXEEXT@: $(BINARY_PREREQS) $(PROFILES_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTEVENT) $(LIBTDB)
 	@echo Linking $@
 	@$(CC) -o $@ $(PROFILES_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) \
-		$(LDAP_LIBS) $(POPT_LIBS) $(LIBTALLOC_LIBS) $(LIBTDB_LIBS)
-
-bin/smbspool@EXEEXT@: $(BINARY_PREREQS) $(CUPS_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
+		$(LDAP_LIBS) $(POPT_LIBS) $(LIBTALLOC_LIBS) $(LIBTEVENT_LIBS) $(LIBTDB_LIBS)
+
+bin/smbspool@EXEEXT@: $(BINARY_PREREQS) $(CUPS_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTEVENT) $(LIBTDB) $(LIBWBCLIENT)
 	@echo Linking $@
 	@$(CC) -o $@ $(CUPS_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) \
 		@LIBWBCLIENT_STATIC@ $(LIBWBCLIENT_LIBS) \
-		$(KRB5LIBS) $(LDAP_LIBS) $(POPT_LIBS) $(LIBTALLOC_LIBS) $(LIBTDB_LIBS) $(ZLIB_LIBS)
-
-bin/testparm@EXEEXT@: $(BINARY_PREREQS) $(TESTPARM_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB)
+		$(KRB5LIBS) $(LDAP_LIBS) $(POPT_LIBS) $(LIBTALLOC_LIBS) $(LIBTEVENT_LIBS) $(LIBTDB_LIBS) $(ZLIB_LIBS)
+
+bin/testparm@EXEEXT@: $(BINARY_PREREQS) $(TESTPARM_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTEVENT) $(LIBTDB)
 	@echo Linking $@
 	@$(CC) -o $@ $(TESTPARM_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) \
-		$(LDAP_LIBS) $(POPT_LIBS) $(LIBTALLOC_LIBS) $(LIBTDB_LIBS)
-
-bin/smbta-util@EXEEXT@: $(BINARY_PREREQS) $(SMBTA_UTIL_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB)
+		$(LDAP_LIBS) $(POPT_LIBS) $(LIBTALLOC_LIBS) $(LIBTEVENT_LIBS) $(LIBTDB_LIBS)
+
+bin/smbta-util@EXEEXT@: $(BINARY_PREREQS) $(SMBTA_UTIL_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTEVENT) $(LIBTDB)
 	@echo Linking $@
 	@$(CC) -o $@ $(SMBTA_UTIL_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) \
-		$(LDAP_LIBS) $(POPT_LIBS) $(LIBTALLOC_LIBS) $(LIBTDB_LIBS)
-
-bin/smbstatus@EXEEXT@: $(BINARY_PREREQS) $(STATUS_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB)
+		$(LDAP_LIBS) $(POPT_LIBS) $(LIBTALLOC_LIBS) $(LIBTEVENT_LIBS) $(LIBTDB_LIBS)
+
+bin/smbstatus@EXEEXT@: $(BINARY_PREREQS) $(STATUS_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTEVENT) $(LIBTDB)
 	@echo Linking $@
 	@$(CC) -o $@ $(STATUS_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) \
-		$(LDAP_LIBS) $(POPT_LIBS) $(LIBTALLOC_LIBS) $(LIBTDB_LIBS)
-
-bin/smbcontrol@EXEEXT@: $(BINARY_PREREQS) $(SMBCONTROL_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB)
+		$(LDAP_LIBS) $(POPT_LIBS) $(LIBTALLOC_LIBS) $(LIBTEVENT_LIBS) $(LIBTDB_LIBS)
+
+bin/smbcontrol@EXEEXT@: $(BINARY_PREREQS) $(SMBCONTROL_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTEVENT) $(LIBTDB)
 	@echo Linking $@
 	@$(CC) -DUSING_SMBCONTROL -o $@ \
 		$(SMBCONTROL_OBJ) $(DYNEXP) $(LDFLAGS) \
 		$(LIBS) $(LDAP_LIBS) @LIBUNWIND_PTRACE@ $(POPT_LIBS) \
-		$(LIBTALLOC_LIBS) $(LIBTDB_LIBS)
-
-bin/smbtree@EXEEXT@: $(BINARY_PREREQS) $(SMBTREE_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
+		$(LIBTALLOC_LIBS) $(LIBTEVENT_LIBS) $(LIBTDB_LIBS)
+
+bin/smbtree@EXEEXT@: $(BINARY_PREREQS) $(SMBTREE_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTEVENT) $(LIBTDB) $(LIBWBCLIENT)
 	@echo Linking $@
 	@$(CC) -o $@ $(SMBTREE_OBJ) $(LDFLAGS) $(DYNEXP) \
 		$(LIBS) $(POPT_LIBS) $(KRB5LIBS) $(LDAP_LIBS) $(NSCD_LIBS) \
-		$(LIBTALLOC_LIBS) $(LIBTDB_LIBS) $(LIBWBCLIENT_LIBS) $(ZLIB_LIBS)
-
-bin/smbpasswd@EXEEXT@: $(BINARY_PREREQS) $(SMBPASSWD_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
+		$(LIBTALLOC_LIBS) $(LIBTEVENT_LIBS) $(LIBTDB_LIBS) $(LIBWBCLIENT_LIBS) $(ZLIB_LIBS)
+
+bin/smbpasswd@EXEEXT@: $(BINARY_PREREQS) $(SMBPASSWD_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTEVENT) $(LIBTDB) $(LIBWBCLIENT)
 	@echo Linking $@
 	@$(CC) -o $@ $(SMBPASSWD_OBJ) $(LDFLAGS) $(PASSDB_LIBS) \
 		$(DYNEXP) $(LIBS) $(POPT_LIBS) $(KRB5LIBS) $(LDAP_LIBS) \
-		$(LIBTALLOC_LIBS) $(LIBTDB_LIBS) $(LIBWBCLIENT_LIBS) $(ZLIB_LIBS)
-
-bin/pdbedit@EXEEXT@: $(BINARY_PREREQS) $(PDBEDIT_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
+		$(LIBTALLOC_LIBS) $(LIBTEVENT_LIBS) $(LIBTDB_LIBS) $(LIBWBCLIENT_LIBS) $(ZLIB_LIBS)
+
+bin/pdbedit@EXEEXT@: $(BINARY_PREREQS) $(PDBEDIT_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTEVENT) $(LIBTDB) $(LIBWBCLIENT)
 	@echo Linking $@
 	@$(CC) -o $@ $(PDBEDIT_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) \
 		$(POPT_LIBS) $(PASSDB_LIBS) $(LDAP_LIBS) $(LIBTALLOC_LIBS) \
-		$(LIBTDB_LIBS) $(LIBWBCLIENT_LIBS)
-
-bin/smbget@EXEEXT@: $(BINARY_PREREQS) $(SMBGET_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
+		$(LIBTEVENT_LIBS) $(LIBTDB_LIBS) $(LIBWBCLIENT_LIBS)
+
+bin/smbget@EXEEXT@: $(BINARY_PREREQS) $(SMBGET_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTEVENT) $(LIBTDB) $(LIBWBCLIENT)
 	@echo Linking $@
 	@$(CC) -o $@ $(SMBGET_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) \
 		$(POPT_LIBS)  $(KRB5LIBS) $(LDAP_LIBS) $(NSCD_LIBS) \
-		$(LIBTALLOC_LIBS) $(LIBTDB_LIBS) $(LIBWBCLIENT_LIBS) $(ZLIB_LIBS)
-
-bin/nmblookup@EXEEXT@: $(BINARY_PREREQS) $(NMBLOOKUP_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB)
+		$(LIBTALLOC_LIBS) $(LIBTEVENT_LIBS) $(LIBTDB_LIBS) $(LIBWBCLIENT_LIBS) $(ZLIB_LIBS)
+
+bin/nmblookup@EXEEXT@: $(BINARY_PREREQS) $(NMBLOOKUP_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTEVENT) $(LIBTDB)
 	@echo Linking $@
 	@$(CC) -o $@ $(NMBLOOKUP_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) \
-		$(POPT_LIBS) $(LDAP_LIBS) $(LIBTALLOC_LIBS) $(LIBTDB_LIBS)
-
-bin/smbtorture@EXEEXT@: $(BINARY_PREREQS) $(SMBTORTURE_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
+		$(POPT_LIBS) $(LDAP_LIBS) $(LIBTALLOC_LIBS) $(LIBTEVENT_LIBS) $(LIBTDB_LIBS)
+
+bin/smbtorture@EXEEXT@: $(BINARY_PREREQS) $(SMBTORTURE_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTEVENT) $(LIBTDB) $(LIBWBCLIENT)
 	@echo Linking $@
 	@$(CC) -o $@ $(SMBTORTURE_OBJ) $(LDFLAGS) $(DYNEXP) \
 		$(LIBS) $(KRB5LIBS) $(LDAP_LIBS) $(POPT_LIBS) $(LIBTALLOC_LIBS) \
-		$(LIBTDB_LIBS) $(ZLIB_LIBS) $(LIBWBCLIENT_LIBS)
-
-bin/talloctort@EXEEXT@: $(BINARY_PREREQS) $(TALLOCTORT_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB)
+		$(LIBTEVENT_LIBS) $(LIBTDB_LIBS) $(ZLIB_LIBS) $(LIBWBCLIENT_LIBS)
+
+bin/talloctort@EXEEXT@: $(BINARY_PREREQS) $(TALLOCTORT_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTEVENT) $(LIBTDB)
 	@echo Linking $@
 	@$(CC) -o $@ $(TALLOCTORT_OBJ) $(LDFLAGS) \
 		$(DYNEXP) $(LIBS) $(LDAP_LIBS) $(POPT_LIBS) \
-		$(LIBTALLOC_LIBS) $(LIBTDB_LIBS)
+		$(LIBTALLOC_LIBS) $(LIBTEVENT_LIBS) $(LIBTDB_LIBS)
 
 bin/replacetort@EXEEXT@: $(REPLACETORT_OBJ) @BUILD_POPT@ $(LIBTALLOC)
@@ -1898,9 +1900,9 @@
 		$(DYNEXP) $(LIBS) $(POPT_LIBS) $(LIBTALLOC_LIBS)
 
-bin/smbconftort@EXEEXT@: $(SMBCONFTORT_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB)
+bin/smbconftort@EXEEXT@: $(SMBCONFTORT_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTEVENT) $(LIBTDB)
 	@echo Linking $@
 	@$(CC) -o $@ $(SMBCONFTORT_OBJ) $(LDFLAGS) \
 		$(DYNEXP) $(LIBS) $(LDAP_LIBS) $(POPT_LIBS) \
-		$(LIBTALLOC_LIBS) $(LIBTDB_LIBS)
+		$(LIBTALLOC_LIBS) $(LIBTEVENT_LIBS) $(LIBTDB_LIBS)
 
 bin/pthreadpooltest@EXEEXT@: $(PTHREADPOOLTEST_OBJ)
@@ -1908,45 +1910,45 @@
 	@$(CC) -o $@ $(PTHREADPOOLTEST_OBJ) $(LDFLAGS) -lpthread
 
-bin/masktest@EXEEXT@: $(BINARY_PREREQS) $(MASKTEST_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
+bin/masktest@EXEEXT@: $(BINARY_PREREQS) $(MASKTEST_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTEVENT) $(LIBTDB) $(LIBWBCLIENT)
 	@echo Linking $@
 	@$(CC) -o $@ $(MASKTEST_OBJ) $(LDFLAGS) $(DYNEXP) \
 		$(LIBS) $(KRB5LIBS) $(LDAP_LIBS) $(POPT_LIBS) \
 		@LIBWBCLIENT_STATIC@ $(LIBWBCLIENT_LIBS) \
-		$(LIBTALLOC_LIBS) $(LIBTDB_LIBS) $(ZLIB_LIBS)
-
-bin/msgtest@EXEEXT@: $(BINARY_PREREQS) $(MSGTEST_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB)
+		$(LIBTALLOC_LIBS) $(LIBTEVENT_LIBS) $(LIBTDB_LIBS) $(ZLIB_LIBS)
+
+bin/msgtest@EXEEXT@: $(BINARY_PREREQS) $(MSGTEST_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTEVENT) $(LIBTDB)
 	@echo Linking $@
 	@$(CC) -o $@ $(MSGTEST_OBJ) $(LDFLAGS) $(DYNEXP) \
 		$(LIBS) $(KRB5LIBS) $(LDAP_LIBS) $(POPT_LIBS) \
-		$(LIBTALLOC_LIBS) $(LIBTDB_LIBS) $(ZLIB_LIBS)
-
-bin/smbcacls@EXEEXT@: $(BINARY_PREREQS) $(SMBCACLS_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
+		$(LIBTALLOC_LIBS) $(LIBTEVENT_LIBS) $(LIBTDB_LIBS) $(ZLIB_LIBS)
+
+bin/smbcacls@EXEEXT@: $(BINARY_PREREQS) $(SMBCACLS_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTEVENT) $(LIBTDB) $(LIBWBCLIENT)
 	@echo Linking $@
 	@$(CC) -o $@ $(SMBCACLS_OBJ) $(DYNEXP) $(LDFLAGS) \
 		$(LIBS) $(POPT_LIBS) $(KRB5LIBS) $(LDAP_LIBS) $(NSCD_LIBS) \
-		$(LIBTALLOC_LIBS) $(LIBTDB_LIBS) $(LIBWBCLIENT_LIBS) $(ZLIB_LIBS)
-
-bin/smbcquotas@EXEEXT@: $(BINARY_PREREQS) $(SMBCQUOTAS_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
+		$(LIBTALLOC_LIBS) $(LIBTEVENT_LIBS) $(LIBTDB_LIBS) $(LIBWBCLIENT_LIBS) $(ZLIB_LIBS)
+
+bin/smbcquotas@EXEEXT@: $(BINARY_PREREQS) $(SMBCQUOTAS_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTEVENT) $(LIBTDB) $(LIBWBCLIENT)
 	@echo Linking $@
 	@$(CC) -o $@ $(SMBCQUOTAS_OBJ) $(DYNEXP) $(LDFLAGS) \
 		$(LIBS) $(POPT_LIBS) $(KRB5LIBS) $(LDAP_LIBS) $(NSCD_LIBS) \
-		$(LIBTALLOC_LIBS) $(LIBTDB_LIBS) $(LIBWBCLIENT_LIBS) $(ZLIB_LIBS)
-
-bin/eventlogadm@EXEEXT@: $(BINARY_PREREQS) $(EVTLOGADM_OBJ) $(LIBTALLOC) $(LIBTDB)
+		$(LIBTALLOC_LIBS) $(LIBTEVENT_LIBS) $(LIBTDB_LIBS) $(LIBWBCLIENT_LIBS) $(ZLIB_LIBS)
+
+bin/eventlogadm@EXEEXT@: $(BINARY_PREREQS) $(EVTLOGADM_OBJ) $(LIBTALLOC) $(LIBTEVENT) $(LIBTDB)
 	@echo Linking $@
 	@$(CC) -o $@ $(EVTLOGADM_OBJ) $(DYNEXP) $(LDFLAGS) \
-		$(LIBS) $(LDAP_LIBS) $(LIBTALLOC_LIBS) $(LIBTDB_LIBS)
-
-bin/sharesec@EXEEXT@: $(BINARY_PREREQS) $(SHARESEC_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB)
+		$(LIBS) $(LDAP_LIBS) $(LIBTALLOC_LIBS) $(LIBTEVENT_LIBS) $(LIBTDB_LIBS)
+
+bin/sharesec@EXEEXT@: $(BINARY_PREREQS) $(SHARESEC_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTEVENT) $(LIBTDB)
 	@echo Linking $@
 	@$(CC) -o $@ $(SHARESEC_OBJ) $(DYNEXP) $(LDFLAGS) \
-		$(LIBS) $(LDAP_LIBS) $(POPT_LIBS) $(LIBTALLOC_LIBS) $(LIBTDB_LIBS)
-
-bin/locktest@EXEEXT@: $(BINARY_PREREQS) $(LOCKTEST_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
+		$(LIBS) $(LDAP_LIBS) $(POPT_LIBS) $(LIBTALLOC_LIBS) $(LIBTEVENT_LIBS) $(LIBTDB_LIBS)
+
+bin/locktest@EXEEXT@: $(BINARY_PREREQS) $(LOCKTEST_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTEVENT) $(LIBTDB) $(LIBWBCLIENT)
 	@echo Linking $@
 	@$(CC) -o $@ $(LOCKTEST_OBJ) $(LDFLAGS) $(DYNEXP) \
 		$(LIBS) $(KRB5LIBS) $(LDAP_LIBS) $(POPT_LIBS) \
 		@LIBWBCLIENT_STATIC@ $(LIBWBCLIENT_LIBS) \
-		$(LIBTALLOC_LIBS) $(LIBTDB_LIBS) $(ZLIB_LIBS)
+		$(LIBTALLOC_LIBS) $(LIBTEVENT_LIBS) $(LIBTDB_LIBS) $(ZLIB_LIBS)
 
 bin/nsstest@EXEEXT@: $(BINARY_PREREQS) $(NSSTEST_OBJ)
@@ -1954,23 +1956,23 @@
 	@$(CC) -o $@ $(NSSTEST_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS)
 
-bin/pdbtest@EXEEXT@: $(BINARY_PREREQS) $(PDBTEST_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
+bin/pdbtest@EXEEXT@: $(BINARY_PREREQS) $(PDBTEST_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTEVENT) $(LIBTDB) $(LIBWBCLIENT)
 	@echo Linking $@
 	@$(CC) -o $@ $(PDBTEST_OBJ) $(LDFLAGS) $(DYNEXP) \
 		$(LIBS) $(KRB5LIBS) $(LDAP_LIBS) $(PASSDB_LIBS) \
-		$(POPT_LIBS) $(LIBTALLOC_LIBS) $(LIBTDB_LIBS) $(LIBWBCLIENT_LIBS) $(ZLIB_LIBS)
-
-bin/vfstest@EXEEXT@: $(BINARY_PREREQS) $(VFSTEST_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
+		$(POPT_LIBS) $(LIBTALLOC_LIBS) $(LIBTEVENT_LIBS) $(LIBTDB_LIBS) $(LIBWBCLIENT_LIBS) $(ZLIB_LIBS)
+
+bin/vfstest@EXEEXT@: $(BINARY_PREREQS) $(VFSTEST_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTEVENT) $(LIBTDB) $(LIBWBCLIENT)
 	@echo Linking $@
 	@$(CC) -o $@ $(VFSTEST_OBJ) $(LDFLAGS) $(TERMLDFLAGS) $(AVAHI_LIBS) \
 		$(TERMLIBS) $(DYNEXP) $(PRINT_LIBS) $(AUTH_LIBS) $(DNSSD_LIBS) \
 		$(ACL_LIBS) $(LIBS) $(POPT_LIBS) $(KRB5LIBS) $(LDAP_LIBS) \
-		@SMBD_LIBS@ $(NSCD_LIBS) $(LIBTALLOC_LIBS) $(LIBTDB_LIBS) \
+		@SMBD_LIBS@ $(NSCD_LIBS) $(LIBTALLOC_LIBS) $(LIBTEVENT_LIBS) $(LIBTDB_LIBS) \
 		$(LIBWBCLIENT_LIBS) $(ZLIB_LIBS)
 
-bin/smbiconv@EXEEXT@: $(BINARY_PREREQS) $(SMBICONV_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB)
+bin/smbiconv@EXEEXT@: $(BINARY_PREREQS) $(SMBICONV_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTEVENT) $(LIBTDB)
 	@echo Linking $@
 	@$(CC) -o $@ $(SMBICONV_OBJ) $(LDFLAGS) $(TERMLDFLAGS) \
 		$(TERMLIBS) $(DYNEXP) $(LIBS) $(LDAP_LIBS) $(POPT_LIBS) \
-		$(LIBTALLOC_LIBS) $(LIBTDB_LIBS)
+		$(LIBTALLOC_LIBS) $(LIBTEVENT_LIBS) $(LIBTDB_LIBS)
 
 bin/log2pcap@EXEEXT@: $(BINARY_PREREQS) $(LOG2PCAP_OBJ) @BUILD_POPT@ $(LIBTALLOC)
@@ -1979,10 +1981,10 @@
 		$(POPT_LIBS) $(LIBS) $(LIBTALLOC_LIBS)
 
-bin/locktest2@EXEEXT@: $(BINARY_PREREQS) $(LOCKTEST2_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
+bin/locktest2@EXEEXT@: $(BINARY_PREREQS) $(LOCKTEST2_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTEVENT) $(LIBTDB) $(LIBWBCLIENT)
 	@echo Linking $@
 	@$(CC) -o $@ $(LOCKTEST2_OBJ) $(LDFLAGS) $(DYNEXP) \
 		@LIBWBCLIENT_STATIC@ $(LIBWBCLIENT_LIBS) \
 		$(LIBS) $(KRB5LIBS) $(LDAP_LIBS) $(POPT_LIBS) \
-		$(LIBTALLOC_LIBS) $(LIBTDB_LIBS) $(ZLIB_LIBS)
+		$(LIBTALLOC_LIBS) $(LIBTEVENT_LIBS) $(LIBTDB_LIBS) $(ZLIB_LIBS)
 
 bin/debug2html@EXEEXT@: $(BINARY_PREREQS) $(DEBUG2HTML_OBJ) @BUILD_POPT@ $(LIBTALLOC)
@@ -1991,10 +1993,10 @@
 		$(LIBS) $(LIBTALLOC_LIBS)
 
-bin/smbfilter@EXEEXT@: $(BINARY_PREREQS) $(SMBFILTER_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
+bin/smbfilter@EXEEXT@: $(BINARY_PREREQS) $(SMBFILTER_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTEVENT) $(LIBTDB) $(LIBWBCLIENT)
 	@echo Linking $@
 	@$(CC) -o $@ $(SMBFILTER_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) \
 		$(KRB5LIBS) $(LDAP_LIBS) $(POPT_LIBS) \
 		@LIBWBCLIENT_STATIC@ $(LIBWBCLIENT_LIBS) \
-		$(LIBTALLOC_LIBS) $(LIBTDB_LIBS) $(ZLIB_LIBS)
+		$(LIBTALLOC_LIBS) $(LIBTEVENT_LIBS) $(LIBTDB_LIBS) $(ZLIB_LIBS)
 
 bin/versiontest: $(BINARY_PREREQS) lib/version_test.o $(VERSION_OBJ)
@@ -2103,4 +2105,95 @@
 
 showlibs:: showlibtalloc
+
+#-------------------------------------------------------------------
+#
+# libtevent
+#
+#-------------------------------------------------------------------
+
+LIBTEVENT_OBJ0 = @LIBTEVENT_OBJ0@
+LIBTEVENT_OBJ = $(LIBTEVENT_OBJ0) $(LIBREPLACE_OBJ)
+
+LIBTEVENT_SHARED_TARGET=@LIBTEVENT_SHARED_TARGET@
+LIBTEVENT_SOVER=@LIBTEVENT_SOVER@
+LIBTEVENT_FULLVER=@LIBTEVENT_FULLVER@
+LIBTEVENT_SHARED_TARGET_SONAME=@LIBTEVENT_SHARED_TARGET_SOVER@
+LIBTEVENT_SHARED_TARGET_FULLVER=@LIBTEVENT_SHARED_TARGET_FULLVER@
+LIBTEVENT_STATIC_TARGET=@LIBTEVENT_STATIC_TARGET@
+LIBTEVENT_SYMS=$(srcdir)/exports/libtevent.@SYMSEXT@
+LIBTEVENT_HEADERS=$(srcdir)/@teventdir@/tevent.h $(srcdir)/@teventdir@/tevent_internal.h
+
+$(LIBTEVENT_SYMS): $(LIBTEVENT_HEADERS)
+	@$(MKSYMS_SH) $(AWK) $@ $(LIBTEVENT_HEADERS)
+
+$(LIBTEVENT_SHARED_TARGET_SONAME): $(BINARY_PREREQS) $(LIBTEVENT_OBJ) $(LIBTEVENT_SYMS) $(LIBTALLOC)
+	@echo Linking shared library $@
+	@$(SHLD_DSO) $(LIBTEVENT_OBJ) $(LIBREPLACE_LIBS) $(LIBTALLOC_LIBS) @SONAMEFLAG@`basename $@`
+
+$(LIBTEVENT_SHARED_TARGET_FULLVER): $(LIBTEVENT_SHARED_TARGET_SONAME)
+	@rm -f $@
+	@mv -f $(LIBTEVENT_SHARED_TARGET_SONAME) $@
+	@ln -f -s `basename $@` $(LIBTEVENT_SHARED_TARGET_SONAME)
+
+$(LIBTEVENT_SHARED_TARGET): $(LIBTEVENT_SHARED_TARGET_FULLVER)
+	@rm -f $@
+	@ln -f -s `basename $(LIBTEVENT_SHARED_TARGET_SONAME)` $@
+
+$(LIBTEVENT_STATIC_TARGET): $(BINARY_PREREQS) $(LIBTEVENT_OBJ0)
+	@echo Linking non-shared library $@
+	@-$(AR) -rc $@ $(LIBTEVENT_OBJ0)
+libtevent: $(LIBTEVENT)
+
+cleanlibtevent::
+	-rm -f \
+		$(LIBTEVENT_SYMS) \
+		$(LIBTEVENT_STATIC_TARGET) \
+		$(LIBTEVENT_SHARED_TARGET) \
+		$(LIBTEVENT_SHARED_TARGET_SONAME)
+
+installlibtevent:: installdirs libtevent
+	@$(SHELL) $(srcdir)/script/installdirs.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(LIBDIR)
+	-$(INSTALLLIBCMD_SH) $(LIBTEVENT_SHARED_TARGET_FULLVER) $(DESTDIR)$(LIBDIR)
+	@rm -f $(DESTDIR)$(LIBDIR)/`basename $(LIBTEVENT_SHARED_TARGET)`
+	@rm -f $(DESTDIR)$(LIBDIR)/`basename $(LIBTEVENT_SHARED_TARGET_SONAME)`
+	-if test -r $(LIBTEVENT_SHARED_TARGET_FULLVER) ; then \
+		ln -f -s `basename $(LIBTEVENT_SHARED_TARGET_FULLVER)` \
+			$(DESTDIR)$(LIBDIR)/`basename $(LIBTEVENT_SHARED_TARGET_SONAME)` ; \
+	fi
+	-if test -r $(LIBTEVENT_SHARED_TARGET_SONAME) ; then \
+		ln -f -s `basename $(LIBTEVENT_SHARED_TARGET_SONAME)` \
+			$(DESTDIR)$(LIBDIR)/`basename $(LIBTEVENT_SHARED_TARGET)` ; \
+	fi
+	-$(INSTALLLIBCMD_A) $(LIBTEVENT_STATIC_TARGET) $(DESTDIR)$(LIBDIR)
+	@$(SHELL) $(srcdir)/script/installdirs.sh $(INSTALLPERMS_BIN) $(DESTDIR) ${prefix}/include
+	-$(INSTALLCMD) -m $(INSTALLPERMS_DATA) $(LIBTEVENT_HEADERS) $(DESTDIR)${prefix}/include
+
+uninstalllibtevent::
+	-rm -f $(DESTDIR)$(LIBDIR)/`basename $(LIBTEVENT_SHARED_TARGET)`
+	-$(UNINSTALLLIBCMD_SH) $(DESTDIR)$(LIBDIR)/`basename $(LIBTEVENT_SHARED_TARGET_SONAME)`
+	-$(UNINSTALLLIBCMD_A) $(DESTDIR)$(LIBDIR)/`basename $(LIBTEVENT_STATIC_TARGET)`
+	-rm -f $(DESTDIR)${prefix}/include/tevent.h
+
+libs:: libtevent
+installlibs:: @INSTALL_LIBTEVENT@
+uninstalllibs:: @UNINSTALL_LIBTEVENT@
+cleanlibs:: cleanlibtevent
+shlibs test_shlibs: @LIBTEVENT_SHARED@
+
+showlibtevent:
+	@echo  ""
+	@echo "LIBTEVENT_SHARED                = @LIBTEVENT_SHARED@"
+	@echo "LIBTEVENT_STATIC                = @LIBTEVENT_STATIC@"
+	@echo "LIBTEVENT_LIBS                  = $(LIBTEVENT_LIBS)"
+	@echo ""
+	@echo "LIBTEVENT_SHARED_TARGET         = $(LIBTEVENT_SHARED_TARGET)"
+	@echo "LIBTEVENT_SOVER                 = $(LIBTEVENT_SOVER)"
+	@echo "LIBTEVENT_FULLVER               = $(LIBTEVENT_FULLVER)"
+	@echo "LIBTEVENT_SHARED TARGET_SONAME  = $(LIBTEVENT_SHARED_TARGET_SONAME)"
+	@echo "LIBTEVENT_SHARED TARGET_FULLVER = $(LIBTEVENT_SHARED_TARGET_FULLVER)"
+	@echo "LIBTEVENT_STATIC_TARGET         = $(LIBTEVENT_STATIC_TARGET)"
+	@echo "LIBTEVENT                       = $(LIBTEVENT)"
+
+showlibs:: showlibtevent
 
 #-------------------------------------------------------------------
@@ -2419,8 +2512,8 @@
 	@$(MKSYMS_SH) $(AWK) $@ $(LIBNETAPI_HEADERS)
 
-$(LIBNETAPI_SHARED_TARGET_SONAME): $(BINARY_PREREQS) $(LIBNETAPI_OBJ) $(LIBNETAPI_SYMS) $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
+$(LIBNETAPI_SHARED_TARGET_SONAME): $(BINARY_PREREQS) $(LIBNETAPI_OBJ) $(LIBNETAPI_SYMS) $(LIBTALLOC) $(LIBTEVENT) $(LIBTDB) $(LIBWBCLIENT)
 	@echo Linking shared library $@
 	@$(SHLD_DSO) $(LIBNETAPI_OBJ) \
-		$(LIBTALLOC_LIBS) $(LIBTDB_LIBS) $(LIBWBCLIENT_LIBS) $(LIBS) \
+		$(LIBTALLOC_LIBS) $(LIBTEVENT_LIBS) $(LIBTDB_LIBS) $(LIBWBCLIENT_LIBS) $(LIBS) \
 		$(LDAP_LIBS) $(KRB5LIBS) $(NSCD_LIBS) $(ZLIB_LIBS) \
 		@SONAMEFLAG@`basename $@`
@@ -2500,8 +2593,8 @@
 	@$(MKSYMS_SH) $(AWK) $@ $(LIBSMBCLIENT_HEADERS)
 
-$(LIBSMBCLIENT_SHARED_TARGET_SONAME): $(BINARY_PREREQS) $(LIBSMBCLIENT_OBJ) $(LIBSMBCLIENT_THREAD_OBJ) $(LIBSMBCLIENT_SYMS) $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
+$(LIBSMBCLIENT_SHARED_TARGET_SONAME): $(BINARY_PREREQS) $(LIBSMBCLIENT_OBJ) $(LIBSMBCLIENT_THREAD_OBJ) $(LIBSMBCLIENT_SYMS) $(LIBTALLOC) $(LIBTEVENT) $(LIBTDB) $(LIBWBCLIENT)
 	@echo Linking shared library $@
 	@$(SHLD_DSO) $(LIBSMBCLIENT_OBJ) $(LIBSMBCLIENT_THREAD_OBJ) \
-		$(LIBTALLOC_LIBS) $(LIBTDB_LIBS) $(LIBWBCLIENT_LIBS) $(LIBS) \
+		$(LIBTALLOC_LIBS) $(LIBTEVENT_LIBS) $(LIBTDB_LIBS) $(LIBWBCLIENT_LIBS) $(LIBS) \
 		$(KRB5LIBS) $(LDAP_LIBS) $(NSCD_LIBS) $(ZLIB_LIBS) $(PTHREAD_LDFLAGS) \
 		@SONAMEFLAG@`basename $@`
@@ -2739,9 +2832,9 @@
 	@$(SHLD_LIBRARY) $(RPC_RPCECHO_OBJ)
 
-bin/winbindd@EXEEXT@: $(BINARY_PREREQS) $(WINBINDD_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
+bin/winbindd@EXEEXT@: $(BINARY_PREREQS) $(WINBINDD_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTEVENT) $(LIBTDB) $(LIBWBCLIENT)
 	@echo "Linking $@"
 	@$(CC) -o $@ $(WINBINDD_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) \
 		$(POPT_LIBS) $(KRB5LIBS) $(LDAP_LIBS) $(AUTH_LIBS) \
-		$(PASSDB_LIBS) $(LIBTALLOC_LIBS) $(LIBTDB_LIBS) $(LIBWBCLIENT_LIBS) \
+		$(PASSDB_LIBS) $(LIBTALLOC_LIBS) $(LIBTEVENT_LIBS) $(LIBTDB_LIBS) $(LIBWBCLIENT_LIBS) \
 		$(ZLIB_LIBS)
 
@@ -2758,8 +2851,8 @@
 		@SONAMEFLAG@`basename $@`@NSSSONAMEVERSIONSUFFIX@
 
-@WINBIND_WINS_NSS@: $(BINARY_PREREQS) $(WINBIND_WINS_NSS_OBJ) $(LIBTALLOC) $(LIBTDB)
+@WINBIND_WINS_NSS@: $(BINARY_PREREQS) $(WINBIND_WINS_NSS_OBJ) $(LIBTALLOC) $(LIBTEVENT) $(LIBTDB)
 	@echo "Linking $@"
 	@$(SHLD) $(LDSHFLAGS) -o $@ $(WINBIND_WINS_NSS_OBJ) \
-		$(LDAP_LIBS) $(KRB5LIBS) $(LIBS) $(LIBTALLOC_LIBS) $(LIBTDB_LIBS) $(ZLIB_LIBS) \
+		$(LDAP_LIBS) $(KRB5LIBS) $(LIBS) $(LIBTALLOC_LIBS) $(LIBTEVENT_LIBS) $(LIBTDB_LIBS) $(ZLIB_LIBS) \
 		@SONAMEFLAG@`basename $@`@NSSSONAMEVERSIONSUFFIX@
 
@@ -2769,8 +2862,8 @@
 		$(LIBREPLACE_LIBS) @SONAMEFLAG@`basename $@`
 
-bin/pam_winbind.@SHLIBEXT@: $(BINARY_PREREQS) $(PAM_WINBIND_OBJ) $(LIBTALLOC) $(LIBWBCLIENT)
+bin/pam_winbind.@SHLIBEXT@: $(BINARY_PREREQS) $(PAM_WINBIND_OBJ) $(LIBTALLOC) $(LIBTEVENT) $(LIBWBCLIENT)
 	@echo "Linking shared library $@"
 	@$(SHLD) $(LDSHFLAGS) -o $@ $(PAM_WINBIND_OBJ) -lpam @INIPARSERLIBS@ \
-		$(LIBREPLACE_LIBS) $(LIBTALLOC_LIBS) $(LIBWBCLIENT_LIBS) @SONAMEFLAG@`basename $@`
+		$(LIBREPLACE_LIBS) $(LIBTALLOC_LIBS) $(LIBTEVENT_LIBS) $(LIBWBCLIENT_LIBS) @SONAMEFLAG@`basename $@`
 
 ##########
@@ -3105,23 +3198,23 @@
 #########################################################
 
-bin/wbinfo@EXEEXT@: $(BINARY_PREREQS) $(WBINFO_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
+bin/wbinfo@EXEEXT@: $(BINARY_PREREQS) $(WBINFO_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTEVENT) $(LIBTDB) $(LIBWBCLIENT)
 	@echo Linking $@
 	@$(CC) -o $@ $(LDFLAGS) $(WBINFO_OBJ) $(DYNEXP) $(LIBS) \
-		$(LDAP_LIBS) $(POPT_LIBS) $(LIBTALLOC_LIBS) $(LIBTDB_LIBS) \
+		$(LDAP_LIBS) $(POPT_LIBS) $(LIBTALLOC_LIBS) $(LIBTEVENT_LIBS) $(LIBTDB_LIBS) \
 		$(LIBWBCLIENT_LIBS)
 
 bin/ntlm_auth@EXEEXT@: $(BINARY_PREREQS) $(NTLM_AUTH_OBJ) $(PARAM_OBJ) \
-	$(LIB_NONSMBD_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
+	$(LIB_NONSMBD_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTEVENT) $(LIBTDB) $(LIBWBCLIENT)
 	@echo Linking $@
 	@$(CC) -o $@ $(LDFLAGS) $(DYNEXP) $(NTLM_AUTH_OBJ) \
 		$(PARAM_OBJ) $(LIB_NONSMBD_OBJ) $(LIBS) \
 		$(POPT_LIBS) $(KRB5LIBS) $(LDAP_LIBS) $(NSCD_LIBS) \
-		$(LIBTALLOC_LIBS) $(LIBTDB_LIBS) $(LIBWBCLIENT_LIBS) @INIPARSERLIBS@
-
-bin/pam_smbpass.@SHLIBEXT@: $(BINARY_PREREQS) $(PAM_SMBPASS_OBJ) $(LIBCLI_LDAP_NDR_OBJ) $(LIBTALLOC) $(LIBWBCLIENT) $(LIBTDB)
+		$(LIBTALLOC_LIBS) $(LIBTEVENT_LIBS) $(LIBTDB_LIBS) $(LIBWBCLIENT_LIBS) @INIPARSERLIBS@
+
+bin/pam_smbpass.@SHLIBEXT@: $(BINARY_PREREQS) $(PAM_SMBPASS_OBJ) $(LIBCLI_LDAP_NDR_OBJ) $(LIBTALLOC) $(LIBTEVENT) $(LIBWBCLIENT) $(LIBTDB)
 	@echo "Linking shared library $@"
 	@$(SHLD) $(LDSHFLAGS) -o $@ $(PAM_SMBPASS_OBJ) $(LIBCLI_LDAP_NDR_OBJ) -lpam $(DYNEXP) \
 		$(LIBS) $(LDAP_LIBS) $(NSCD_LIBS) \
-		$(LIBTALLOC_LIBS) $(LIBTDB_LIBS) $(LIBWBCLIENT_LIBS)
+		$(LIBTALLOC_LIBS) $(LIBTEVENT_LIBS) $(LIBTDB_LIBS) $(LIBWBCLIENT_LIBS)
 
 bin/tdbbackup@EXEEXT@: $(BINARY_PREREQS) $(TDBBACKUP_OBJ) $(LIBTALLOC) $(LIBTDB)
@@ -3168,28 +3261,28 @@
 	@$(CC) -o $@ $(DYNEXP) script/tests/timelimit.o
 
-bin/rpc_open_tcp@EXEEXT@: $(BINARY_PREREQS) $(RPC_OPEN_TCP_OBJ) $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
+bin/rpc_open_tcp@EXEEXT@: $(BINARY_PREREQS) $(RPC_OPEN_TCP_OBJ) $(LIBTALLOC) $(LIBTEVENT) $(LIBTDB) $(LIBWBCLIENT)
 	@echo "Linking $@"
 	@$(CC) -o $@ $(RPC_OPEN_TCP_OBJ) $(LDFLAGS) $(DYNEXP) \
-		$(LIBS) $(LIBTALLOC_LIBS) $(LIBWBCLIENT_LIBS) \
+		$(LIBS) $(LIBTALLOC_LIBS) $(LIBTEVENT_LIBS) $(LIBWBCLIENT_LIBS) \
 		$(LDAP_LIBS) $(KRB5LIBS) $(NSCD_LIBS)
 
-bin/test_lp_load@EXEEXT@: $(BINARY_PREREQS) $(TEST_LP_LOAD_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
+bin/test_lp_load@EXEEXT@: $(BINARY_PREREQS) $(TEST_LP_LOAD_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTEVENT) $(LIBTDB) $(LIBWBCLIENT)
 	@echo "Linking $@"
 	@$(CC) -o $@ $(TEST_LP_LOAD_OBJ) \
 		$(LDFLAGS) $(DYNEXP) $(LIBS) \
 		$(LDAP_LIBS) $(LIBWBCLIENT_LIBS) \
-		$(POPT_LIBS) $(LIBTALLOC_LIBS) $(LIBTDB_LIBS)
-
-bin/dbwrap_tool@EXEEXT@: $(DBWRAP_TOOL_OBJ) $(LIBTALLOC) $(LIBTDB)
+		$(POPT_LIBS) $(LIBTALLOC_LIBS) $(LIBTEVENT_LIBS) $(LIBTDB_LIBS)
+
+bin/dbwrap_tool@EXEEXT@: $(DBWRAP_TOOL_OBJ) $(LIBTALLOC) $(LIBTDB) $(LIBTEVENT)
 	@echo "Linking $@"
 	@$(CC) -o $@ $(DBWRAP_TOOL_OBJ)\
 		$(LDFLAGS) $(DYNEXP) $(LIBS) \
 		$(LDAP_LIBS) \
-		$(LIBTALLOC_LIBS) $(LIBTDB_LIBS)
+		$(LIBTALLOC_LIBS) $(LIBTDB_LIBS) $(LIBTEVENT_LIBS)
 
 install-dbwrap_tool:: bin/dbwrap_tool@EXEEXT@
 	@$(SHELL) script/installbin.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(prefix) $(BINDIR) $<
 
-bin/dbwrap_torture@EXEEXT@: $(DBWRAP_TORTURE_OBJ) $(LIBTALLOC) $(LIBTDB)
+bin/dbwrap_torture@EXEEXT@: $(DBWRAP_TORTURE_OBJ) $(LIBTALLOC) $(LIBTDB) $(LIBTEVENT)
 	@echo "Linking $@"
 	@$(CC) -o $@ $(DBWRAP_TORTURE_OBJ)\
@@ -3197,10 +3290,10 @@
 		$(LDAP_LIBS) \
 		$(POPT_LIBS) \
-		$(LIBTALLOC_LIBS) $(LIBTDB_LIBS)
+		$(LIBTALLOC_LIBS) $(LIBTDB_LIBS) $(LIBTEVENT_LIBS)
 
 install-dbwrap_torture:: bin/dbwrap_torture@EXEEXT@
 	@$(SHELL) script/installbin.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(prefix) $(BINDIR) $<
 
-bin/split_tokens@EXEEXT@: $(BINARY_PREREQS) $(SPLIT_TOKENS_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
+bin/split_tokens@EXEEXT@: $(BINARY_PREREQS) $(SPLIT_TOKENS_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTEVENT) $(LIBTDB) $(LIBWBCLIENT)
 	@echo "Linking $@"
 	@$(CC) -o $@ $(SPLIT_TOKENS_OBJ) \
@@ -3208,5 +3301,5 @@
 		$(LIBS) $(POPT_LIBS) \
 		$(LDAP_LIBS) $(LIBWBCLIENT_LIBS) \
-		$(LIBTALLOC_LIBS) $(LIBTDB_LIBS)
+		$(LIBTALLOC_LIBS) $(LIBTEVENT_LIBS) $(LIBTDB_LIBS)
 
 install:: installservers installbin installman \
Index: trunk/server/source3/VERSION
===================================================================
--- trunk/server/source3/VERSION	(revision 857)
+++ trunk/server/source3/VERSION	(revision 862)
@@ -26,5 +26,5 @@
 SAMBA_VERSION_MAJOR=3
 SAMBA_VERSION_MINOR=6
-SAMBA_VERSION_RELEASE=9
+SAMBA_VERSION_RELEASE=23
 
 ########################################################
Index: trunk/server/source3/auth/auth_util.c
===================================================================
--- trunk/server/source3/auth/auth_util.c	(revision 857)
+++ trunk/server/source3/auth/auth_util.c	(revision 862)
@@ -121,5 +121,6 @@
 
 	if (!is_trusted_domain(domain) &&
-	    !strequal(domain, my_sam_name()))
+	    !strequal(domain, my_sam_name()) &&
+	    !strequal(domain, get_global_sam_name()))
 	{
 		if (lp_map_untrusted_to_domain())
@@ -902,4 +903,5 @@
 NTSTATUS make_serverinfo_from_username(TALLOC_CTX *mem_ctx,
 				       const char *username,
+				       bool use_guest_token,
 				       bool is_guest,
 				       struct auth_serversupplied_info **presult)
@@ -925,5 +927,9 @@
 	result->guest = is_guest;
 
-	status = create_local_token(result);
+	if (use_guest_token) {
+		status = make_server_info_guest(mem_ctx, &result);
+	} else {
+		status = create_local_token(result);
+	}
 
 	if (!NT_STATUS_IS_OK(status)) {
@@ -1175,5 +1181,6 @@
 			/* work around 'winbind use default domain = yes' */
 
-			if ( !strchr_m( pw->pw_name, *lp_winbind_separator() ) ) {
+			if ( lp_winbind_use_default_domain() &&
+			     !strchr_m( pw->pw_name, *lp_winbind_separator() ) ) {
 				char *domain;
 
Index: trunk/server/source3/auth/auth_winbind.c
===================================================================
--- trunk/server/source3/auth/auth_winbind.c	(revision 857)
+++ trunk/server/source3/auth/auth_winbind.c	(revision 862)
@@ -63,7 +63,13 @@
 
 	/* Send off request */
-
 	params.account_name	= user_info->client.account_name;
-	params.domain_name	= user_info->mapped.domain_name;
+	/*
+	 * We need to send the domain name from the client to the DC. With
+	 * NTLMv2 the domain name is part of the hashed second challenge,
+	 * if we change the domain name, the DC will fail to verify the
+	 * challenge cause we changed the domain name, this is like a
+	 * man in the middle attack.
+	 */
+	params.domain_name	= user_info->client.domain_name;
 	params.workstation_name	= user_info->workstation_name;
 
Index: trunk/server/source3/auth/check_samsec.c
===================================================================
--- trunk/server/source3/auth/check_samsec.c	(revision 857)
+++ trunk/server/source3/auth/check_samsec.c	(revision 862)
@@ -409,4 +409,5 @@
 	if (pdb_get_acct_ctrl(sampass) & ACB_AUTOLOCK) {
 		DEBUG(3,("check_sam_security: Account for user %s was locked out.\n", username));
+		TALLOC_FREE(sampass);
 		return NT_STATUS_ACCOUNT_LOCKED_OUT;
 	}
Index: trunk/server/source3/auth/proto.h
===================================================================
--- trunk/server/source3/auth/proto.h	(revision 857)
+++ trunk/server/source3/auth/proto.h	(revision 862)
@@ -150,4 +150,5 @@
 NTSTATUS make_serverinfo_from_username(TALLOC_CTX *mem_ctx,
 				       const char *username,
+				       bool use_guest_token,
 				       bool is_guest,
 				       struct auth_serversupplied_info **presult);
Index: trunk/server/source3/auth/server_info.c
===================================================================
--- trunk/server/source3/auth/server_info.c	(revision 857)
+++ trunk/server/source3/auth/server_info.c	(revision 862)
@@ -609,7 +609,7 @@
 	if (!info3) return NULL;
 
-	info3->base.last_logon = info->logon_time;
-	info3->base.last_logoff = info->logoff_time;
-	info3->base.acct_expiry = info->kickoff_time;
+	unix_to_nt_time(&info3->base.last_logon, info->logon_time);
+	unix_to_nt_time(&info3->base.last_logoff, info->logoff_time);
+	unix_to_nt_time(&info3->base.acct_expiry, info->kickoff_time);
 	unix_to_nt_time(&info3->base.last_password_change, info->pass_last_set_time);
 	unix_to_nt_time(&info3->base.allow_password_change,
Index: trunk/server/source3/auth/server_info_sam.c
===================================================================
--- trunk/server/source3/auth/server_info_sam.c	(revision 857)
+++ trunk/server/source3/auth/server_info_sam.c	(revision 862)
Index: trunk/server/source3/auth/user_util.c
===================================================================
--- trunk/server/source3/auth/user_util.c	(revision 857)
+++ trunk/server/source3/auth/user_util.c	(revision 862)
@@ -426,10 +426,14 @@
 
 	/*
-	 * Setup the last_from and last_to as an optimization so
+	 * If we didn't successfully map a user in the loop above,
+	 * setup the last_from and last_to as an optimization so
 	 * that we don't scan the file again for the same user.
 	 */
-
-	set_last_from_to(user_in, user_in);
-	store_map_in_gencache(ctx, user_in, user_in);
+	if (!mapped_user) {
+		DEBUG(8, ("The user '%s' has no mapping. "
+			  "Skip it next time.\n", user_in));
+		set_last_from_to(user_in, user_in);
+		store_map_in_gencache(ctx, user_in, user_in);
+	}
 
 	return mapped_user;
Index: trunk/server/source3/build.cmd
===================================================================
--- trunk/server/source3/build.cmd	(revision 857)
+++ trunk/server/source3/build.cmd	(revision 862)
@@ -23,7 +23,8 @@
                                           to ZIP, libc065 switching) */
 /* version 1.0.0 from 06.11.2013 Silvan (conf has to create version.h also,
-                                         don't check for env anymore, use sh only */
-/* version 1.0.1 from 13.01.2014 Silvan (always brand when svn rev changes */
-/* version 1.0.2 from 18.02.2014 Silvan (create xqs files for exceptq */
+                                         don't check for env anymore, use sh only) */
+/* version 1.0.1 from 13.01.2014 Silvan (always brand when svn rev changes) */
+/* version 1.0.2 from 18.02.2014 Silvan (create xqs files for exceptq) */
+/* version 1.0.3 from 13.05.2014 Silvan (adjust python include) */
                                          
 /* load the sysfuncs if not already loaded */
@@ -34,6 +35,6 @@
 
 /* init the version string (don't forget to change) */
-version      = "1.0.2"
-version_date = "18.02.2014"
+version      = "1.0.3"
+version_date = "13.05.2014"
 
 '@echo off'
@@ -164,6 +165,6 @@
             sPythonVersion = PythonVersion(sEnvVar|| '/lib');
             if sPythonVersion <> '-1' then do
-                call lineout cacheFile, "ac_cv_path_PYTHON_CONFIG='" || sEnvVar || "/lib/" || sPythonVersion || "'";
-                call lineout cacheFile, "ac_cv_path_PYTHON='" || sEnvVar || "/include'";
+                call lineout cacheFile, "ac_cv_path_PYTHON_CONFIG='" || sPythonVersion || "_dll'";
+                call lineout cacheFile, "ac_cv_path_PYTHON='" || sEnvVar || "/include/" || sPythonVersion || "'";
             end
         end
Index: trunk/server/source3/client/client.c
===================================================================
--- trunk/server/source3/client/client.c	(revision 857)
+++ trunk/server/source3/client/client.c	(revision 862)
@@ -1308,6 +1308,15 @@
 	}
 
-	status = do_list(mget_mask, FILE_ATTRIBUTE_SYSTEM | FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_DIRECTORY,do_mget,false, true);
-	if (!NT_STATUS_IS_OK(status)) {
+	status = do_list(mget_mask,
+			 (FILE_ATTRIBUTE_SYSTEM
+			  | FILE_ATTRIBUTE_HIDDEN
+			  | FILE_ATTRIBUTE_DIRECTORY),
+			 do_mget, false, true);
+	if (!NT_STATUS_IS_OK(status)
+	 && !NT_STATUS_EQUAL(status, NT_STATUS_ACCESS_DENIED)) {
+		/*
+		 * Ignore access denied errors to ensure all permitted files are
+		 * pulled down.
+		 */
 		return status;
 	}
Index: trunk/server/source3/configure
===================================================================
--- trunk/server/source3/configure	(revision 857)
+++ trunk/server/source3/configure	(revision 862)
@@ -1,12 +1,10 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.68 for Samba 3.
+# Generated by GNU Autoconf 2.69 for Samba 3.
 #
 # Report bugs to <samba-technical@samba.org>.
 #
 #
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
-# Foundation, Inc.
+# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
 #
 #
@@ -137,4 +135,29 @@
 (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
 
+# Use a proper internal environment variable to ensure we don't fall
+  # into an infinite loop, continuously re-executing ourselves.
+  if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
+    _as_can_reexec=no; export _as_can_reexec;
+    # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+  *v*x* | *x*v* ) as_opts=-vx ;;
+  *v* ) as_opts=-v ;;
+  *x* ) as_opts=-x ;;
+  * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+as_fn_exit 255
+  fi
+  # We don't want this to propagate to other subprocesses.
+          { _as_can_reexec=; unset _as_can_reexec;}
 if test "x$CONFIG_SHELL" = x; then
   as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
@@ -170,5 +193,6 @@
   exitcode=1; echo positional parameters were not saved.
 fi
-test x\$exitcode = x0 || exit 1"
+test x\$exitcode = x0 || exit 1
+test -x / || exit 1"
   as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
   as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
@@ -215,19 +239,23 @@
 
       if test "x$CONFIG_SHELL" != x; then :
-  # We cannot yet assume a decent shell, so we have to provide a
-	# neutralization value for shells without unset; and this also
-	# works around shells that cannot unset nonexistent variables.
-	# Preserve -v and -x to the replacement shell.
-	BASH_ENV=/dev/null
-	ENV=/dev/null
-	(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-	export CONFIG_SHELL
-	case $- in # ((((
-	  *v*x* | *x*v* ) as_opts=-vx ;;
-	  *v* ) as_opts=-v ;;
-	  *x* ) as_opts=-x ;;
-	  * ) as_opts= ;;
-	esac
-	exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"}
+  export CONFIG_SHELL
+             # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+  *v*x* | *x*v* ) as_opts=-vx ;;
+  *v* ) as_opts=-v ;;
+  *x* ) as_opts=-x ;;
+  * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
 fi
 
@@ -332,4 +360,12 @@
 
 } # as_fn_mkdir_p
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+  test -f "$1" && test -x "$1"
+} # as_fn_executable_p
 # as_fn_append VAR VALUE
 # ----------------------
@@ -453,4 +489,8 @@
     { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
 
+  # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
+  # already done that, so ensure we don't try to do so again and fall
+  # in an infinite loop.  This has already happened in practice.
+  _as_can_reexec=no; export _as_can_reexec
   # Don't try to exec as it changes $[0], causing all sort of problems
   # (the dirname of $[0] is not the place where we might find the
@@ -487,14 +527,14 @@
     # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
     # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-    # In both cases, we have to default to `cp -p'.
+    # In both cases, we have to default to `cp -pR'.
     ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-      as_ln_s='cp -p'
+      as_ln_s='cp -pR'
   elif ln conf$$.file conf$$ 2>/dev/null; then
     as_ln_s=ln
   else
-    as_ln_s='cp -p'
+    as_ln_s='cp -pR'
   fi
 else
-  as_ln_s='cp -p'
+  as_ln_s='cp -pR'
 fi
 rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
@@ -508,26 +548,6 @@
 fi
 
-if test -x / >/dev/null 2>&1; then
-  as_test_x='test -x'
-else
-  if ls -dL / >/dev/null 2>&1; then
-    as_ls_L_option=L
-  else
-    as_ls_L_option=
-  fi
-  as_test_x='
-    eval sh -c '\''
-      if test -d "$1"; then
-	test -d "$1/.";
-      else
-	case $1 in #(
-	-*)set "./$1";;
-	esac;
-	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
-	???[sx]*):;;*)false;;esac;fi
-    '\'' sh
-  '
-fi
-as_executable_p=$as_test_x
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
 
 # Sed expression to map a string onto a valid CPP name.
@@ -726,4 +746,22 @@
 LIBTDB_LIBS
 LIBTDB_CFLAGS
+LIBTEVENT_OBJ0
+LIBTEVENT_SHARED_TARGET_FULLVER
+LIBTEVENT_SHARED_TARGET_SOVER
+LIBTEVENT_FULLVER
+LIBTEVENT_SOVER
+UNINSTALL_LIBTEVENT
+INSTALL_LIBTEVENT
+LIBTEVENT_TARGET
+LIBTEVENT_STATIC
+LIBTEVENT_SHARED
+LIBTEVENT_STATIC_TARGET
+LIBTEVENT_SHARED_TARGET
+TEVENT_LIBS
+TEVENT_CFLAGS
+TEVENT_OBJ
+teventdir
+LIBTEVENT_LIBS
+LIBTEVENT_CFLAGS
 TALLOCTORT
 LIBTALLOC_OBJ0
@@ -739,4 +777,5 @@
 LIBTALLOC_STATIC_TARGET
 LIBTALLOC_SHARED_TARGET
+EXPORTSFILE
 TALLOC_LIBS
 TALLOC_CFLAGS
@@ -834,10 +873,4 @@
 LDSHFLAGS
 SAMBA_CPPFLAGS
-LIBTEVENT_OBJ0
-EXPORTSFILE
-TEVENT_LIBS
-TEVENT_CFLAGS
-TEVENT_OBJ
-teventdir
 LIB_PATH_VAR
 libreplace_cv_immediate_structures
@@ -975,4 +1008,6 @@
 enable_external_libtalloc
 with_libtalloc
+enable_external_libtevent
+with_libtevent
 enable_external_libtdb
 with_libtdb
@@ -1031,4 +1066,6 @@
 LIBTALLOC_CFLAGS
 LIBTALLOC_LIBS
+LIBTEVENT_CFLAGS
+LIBTEVENT_LIBS
 LIBTDB_CFLAGS
 LIBTDB_LIBS'
@@ -1488,6 +1525,4 @@
   if test "x$build_alias" = x; then
     cross_compiling=maybe
-    $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host.
-    If a cross compiler is detected then cross compile mode will be used" >&2
   elif test "x$build_alias" != "x$host_alias"; then
     cross_compiling=yes
@@ -1672,4 +1707,6 @@
   --enable-external-libtalloc
                           Enable external talloc [default=auto]
+  --enable-external-libtevent
+                          Enable external tevent [default=auto]
   --enable-external-libtdb
                           Enable external tdb [default=auto]
@@ -1735,4 +1772,6 @@
   --with-libtalloc        Build the libtalloc shared library (default=yes if
                           shared libs supported)
+  --with-libtevent        Build the libtevent shared library (default=yes if
+                          shared libs supported)
   --with-libtdb           Build the libtdb shared library (default=yes if
                           shared libs supported)
@@ -1802,4 +1841,8 @@
   LIBTALLOC_LIBS
               linker flags for LIBTALLOC, overriding pkg-config
+  LIBTEVENT_CFLAGS
+              C compiler flags for LIBTEVENT, overriding pkg-config
+  LIBTEVENT_LIBS
+              linker flags for LIBTEVENT, overriding pkg-config
   LIBTDB_CFLAGS
               C compiler flags for LIBTDB, overriding pkg-config
@@ -1873,7 +1916,7 @@
   cat <<\_ACEOF
 Samba configure 3
-generated by GNU Autoconf 2.68
-
-Copyright (C) 2010 Free Software Foundation, Inc.
+generated by GNU Autoconf 2.69
+
+Copyright (C) 2012 Free Software Foundation, Inc.
 This configure script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it.
@@ -2152,5 +2195,5 @@
        } && test -s conftest$ac_exeext && {
 	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
+	 test -x conftest$ac_exeext
        }; then :
   ac_retval=0
@@ -2242,5 +2285,6 @@
 {
 static int test_array [1 - 2 * !(($2) >= 0)];
-test_array [0] = 0
+test_array [0] = 0;
+return test_array [0];
 
   ;
@@ -2258,5 +2302,6 @@
 {
 static int test_array [1 - 2 * !(($2) <= $ac_mid)];
-test_array [0] = 0
+test_array [0] = 0;
+return test_array [0];
 
   ;
@@ -2284,5 +2329,6 @@
 {
 static int test_array [1 - 2 * !(($2) < 0)];
-test_array [0] = 0
+test_array [0] = 0;
+return test_array [0];
 
   ;
@@ -2300,5 +2346,6 @@
 {
 static int test_array [1 - 2 * !(($2) >= $ac_mid)];
-test_array [0] = 0
+test_array [0] = 0;
+return test_array [0];
 
   ;
@@ -2334,5 +2381,6 @@
 {
 static int test_array [1 - 2 * !(($2) <= $ac_mid)];
-test_array [0] = 0
+test_array [0] = 0;
+return test_array [0];
 
   ;
@@ -2403,4 +2451,61 @@
 } # ac_fn_c_compute_int
 
+# ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES
+# ----------------------------------------------------
+# Tries to find if the field MEMBER exists in type AGGR, after including
+# INCLUDES, setting cache variable VAR accordingly.
+ac_fn_c_check_member ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5
+$as_echo_n "checking for $2.$3... " >&6; }
+if eval \${$4+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$5
+int
+main ()
+{
+static $2 ac_aggr;
+if (ac_aggr.$3)
+return 0;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  eval "$4=yes"
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$5
+int
+main ()
+{
+static $2 ac_aggr;
+if (sizeof ac_aggr.$3)
+return 0;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  eval "$4=yes"
+else
+  eval "$4=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$4
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_member
+
 # ac_fn_c_check_func LINENO FUNC VAR
 # ----------------------------------
@@ -2470,61 +2575,4 @@
 } # ac_fn_c_check_func
 
-# ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES
-# ----------------------------------------------------
-# Tries to find if the field MEMBER exists in type AGGR, after including
-# INCLUDES, setting cache variable VAR accordingly.
-ac_fn_c_check_member ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5
-$as_echo_n "checking for $2.$3... " >&6; }
-if eval \${$4+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$5
-int
-main ()
-{
-static $2 ac_aggr;
-if (ac_aggr.$3)
-return 0;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  eval "$4=yes"
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$5
-int
-main ()
-{
-static $2 ac_aggr;
-if (sizeof ac_aggr.$3)
-return 0;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  eval "$4=yes"
-else
-  eval "$4=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$4
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_member
-
 # ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES
 # ---------------------------------------------
@@ -2577,5 +2625,5 @@
 
 It was created by Samba $as_me 3, which was
-generated by GNU Autoconf 2.68.  Invocation command line was
+generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3763,5 +3811,5 @@
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_CC="${ac_tool_prefix}gcc"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
@@ -3803,5 +3851,5 @@
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_CC="gcc"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
@@ -3856,5 +3904,5 @@
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_CC="${ac_tool_prefix}cc"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
@@ -3897,5 +3945,5 @@
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
        ac_prog_rejected=yes
@@ -3955,5 +4003,5 @@
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
@@ -3999,5 +4047,5 @@
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_CC="$ac_prog"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
@@ -4445,6 +4493,5 @@
 #include <stdarg.h>
 #include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
+struct stat;
 /* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
 struct buf { int x; };
@@ -4680,5 +4727,5 @@
 }
 _ACEOF
-for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -xc99=all -qlanglvl=extc99
+for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -D_STDC_C99= -qlanglvl=extc99
 do
   CC="$ac_save_CC $ac_arg"
@@ -4875,5 +4922,5 @@
     for ac_exec_ext in '' $ac_executable_extensions; do
       ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
-      { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
+      as_fn_executable_p "$ac_path_GREP" || continue
 # Check for GNU ac_path_GREP and select it if it is found.
   # Check for GNU $ac_path_GREP
@@ -4941,5 +4988,5 @@
     for ac_exec_ext in '' $ac_executable_extensions; do
       ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
-      { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
+      as_fn_executable_p "$ac_path_EGREP" || continue
 # Check for GNU ac_path_EGREP and select it if it is found.
   # Check for GNU $ac_path_EGREP
@@ -5148,6 +5195,6 @@
 /* end confdefs.h.  */
 
-#	  define __EXTENSIONS__ 1
-	  $ac_includes_default
+#         define __EXTENSIONS__ 1
+          $ac_includes_default
 int
 main ()
@@ -5636,5 +5683,5 @@
     for ac_prog in ginstall scoinst install; do
       for ac_exec_ext in '' $ac_executable_extensions; do
-	if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
+	if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
 	  if test $ac_prog = install &&
 	    grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
@@ -5955,4 +6002,6 @@
 rm -rf conftest*
   fi
+
+
 fi
 
@@ -6600,83 +6649,6 @@
 
 
-
-
-
-if test x"$teventdir" = "x"; then
-	teventdir=""
-	teventpaths="$srcdir $srcdir/../lib/tevent $srcdir/tevent $srcdir/../tevent"
-	for d in $teventpaths; do
-		if test -f "$d/tevent.c"; then
-			teventdir="$d"
-			break;
-		fi
-	done
-	if test x"$teventdir" = "x"; then
-	   as_fn_error $? "cannot find libtevent source in $teventpaths" "$LINENO" 5
-	fi
-fi
-
-TEVENT_OBJ=""
-TEVENT_CFLAGS=""
-TEVENT_LIBS=""
-
-
-
-
-TEVENT_CFLAGS="-I$teventdir"
-
-TEVENT_OBJ="tevent.o tevent_debug.o tevent_util.o"
-TEVENT_OBJ="$TEVENT_OBJ tevent_fd.o tevent_timed.o tevent_immediate.o tevent_signal.o"
-TEVENT_OBJ="$TEVENT_OBJ tevent_req.o tevent_wakeup.o tevent_queue.o"
-TEVENT_OBJ="$TEVENT_OBJ tevent_standard.o tevent_select.o"
-TEVENT_OBJ="$TEVENT_OBJ tevent_poll.o"
-
-for ac_header in sys/epoll.h
-do :
-  ac_fn_c_check_header_mongrel "$LINENO" "sys/epoll.h" "ac_cv_header_sys_epoll_h" "$ac_includes_default"
-if test "x$ac_cv_header_sys_epoll_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_SYS_EPOLL_H 1
-_ACEOF
-
-fi
-
-done
-
-for ac_func in epoll_create
-do :
-  ac_fn_c_check_func "$LINENO" "epoll_create" "ac_cv_func_epoll_create"
-if test "x$ac_cv_func_epoll_create" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_EPOLL_CREATE 1
-_ACEOF
-
-fi
-done
-
-if test x"$ac_cv_header_sys_epoll_h" = x"yes" -a x"$ac_cv_func_epoll_create" = x"yes"; then
-   TEVENT_OBJ="$TEVENT_OBJ tevent_epoll.o"
-
-$as_echo "#define HAVE_EPOLL 1" >>confdefs.h
-
-fi
-
-if test x"$VERSIONSCRIPT" != "x"; then
-    EXPORTSFILE=tevent.exports
-
-fi
-
-
-
-LIBTEVENT_OBJ0=""
-for obj in ${TEVENT_OBJ}; do
-	LIBTEVENT_OBJ0="${LIBTEVENT_OBJ0} ${teventdir}/${obj}"
-done
-
-LIBS="${LIBS} ${TEVENT_LIBS}"
-
 SAMBA_CPPFLAGS="-Iinclude -I${srcdir-.}/include  -I. -I${srcdir-.}"
 SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} -I${srcdir-.}/../lib/replace"
-SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} ${TEVENT_CFLAGS}"
 SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} -I${srcdir-.}/librpc"
 SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} -I${srcdir-.}/.."
@@ -7028,5 +7000,5 @@
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_AWK="$ac_prog"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
@@ -7079,5 +7051,5 @@
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_path_MAKE="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
@@ -7157,5 +7129,5 @@
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
@@ -7200,5 +7172,5 @@
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
@@ -7249,5 +7221,5 @@
 
 	if test -z "$PYTHON_VER"; then
-		for ac_prog in python2.6 python2.5 python2.4 python
+		for ac_prog in python2.7 python2.6 python2.5 python2.4 python
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
@@ -7269,5 +7241,5 @@
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
@@ -7313,5 +7285,5 @@
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
@@ -7365,5 +7337,5 @@
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_path_PYTHON_CONFIG="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
@@ -7409,5 +7381,5 @@
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_path_PYTHON_CONFIG="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
@@ -7444,5 +7416,5 @@
 				*os2*)
                 LIBS="$LIBS -l$PYTHON_CONFIG"
-                CFLAGS="$CFLAGS -I$PYTHON/include" 
+                CFLAGS="$CFLAGS -I$PYTHON" 
                                 ;;
                                 *)
@@ -7472,12 +7444,12 @@
 
 		case "$host_os" in
-				*os2*)
-                PYTHON_LDFLAGS="-l$PYTHON_CONFIG"
-                PYTHON_CFLAGS="-I$PYTHON/include" 
-                                ;;
-                                *)
-		PYTHON_LDFLAGS="`$PYTHON_CONFIG --ldflags`"
-		PYTHON_CFLAGS="`$PYTHON_CONFIG --includes`"
-                                ;;
+		  *os2*)
+                                PYTHON_LDFLAGS="-l$PYTHON_CONFIG"
+                                PYTHON_CFLAGS="-I$PYTHON" 
+                  ;;
+                 *)
+				PYTHON_LDFLAGS="`$PYTHON_CONFIG --ldflags`"
+				PYTHON_CFLAGS="`$PYTHON_CONFIG --includes`"
+                  ;;
                 esac
 				working_python=yes
@@ -7698,5 +7670,5 @@
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_AR="${ac_tool_prefix}ar"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
@@ -7738,5 +7710,5 @@
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_AR="ar"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
@@ -7791,5 +7763,9 @@
 
 if test "$ac_cv_prog_gnu_ld" = "yes"; then
-	ac_cv_gnu_ld_version=`$CC -Wl,-v /dev/null 2>&1 < /dev/null | grep "GNU ld"`
+	ac_cv_gnu_ld_version=`$CC -Wl,-v /dev/null 2> /dev/null < /dev/null | grep "GNU ld"`
+	# we need to make a 2nd (separate!) check on the output of stderr, see bug #7825:
+	if test -z "$ac_cv_gnu_ld_version" ; then
+	  ac_cv_gnu_ld_version=`$CC -Wl,-v /dev/null 2>&1 > /dev/null < /dev/null | grep "GNU ld"`
+	fi
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking GNU ld release date" >&5
 $as_echo_n "checking GNU ld release date... " >&6; }
@@ -9055,5 +9031,5 @@
 done
 
-for ac_header in setjmp.h utime.h
+for ac_header in setjmp.h utime.h sys/wait.h
 do :
   as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
@@ -9133,4 +9109,5 @@
 
 done
+
 
 LIBS="$LIBS -lmmap"
@@ -9237,4 +9214,16 @@
   cat >>confdefs.h <<_ACEOF
 #define HAVE_UNIX_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in sys/ucontext.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "sys/ucontext.h" "ac_cv_header_sys_ucontext_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_ucontext_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_SYS_UCONTEXT_H 1
 _ACEOF
 
@@ -10065,41 +10054,4 @@
 
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for O_DIRECT flag to open(2)" >&5
-$as_echo_n "checking for O_DIRECT flag to open(2)... " >&6; }
-if ${libreplace_cv_HAVE_OPEN_O_DIRECT+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <unistd.h>
-#ifdef HAVE_FCNTL_H
-#include <fcntl.h>
-#endif
-int
-main ()
-{
-int fd = open("/dev/null", O_DIRECT);
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  libreplace_cv_HAVE_OPEN_O_DIRECT=yes
-else
-  libreplace_cv_HAVE_OPEN_O_DIRECT=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libreplace_cv_HAVE_OPEN_O_DIRECT" >&5
-$as_echo "$libreplace_cv_HAVE_OPEN_O_DIRECT" >&6; }
-if test x"$libreplace_cv_HAVE_OPEN_O_DIRECT" = x"yes"; then
-
-$as_echo "#define HAVE_OPEN_O_DIRECT 1" >>confdefs.h
-
-fi
-
-
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking that the C compiler understands volatile" >&5
 $as_echo_n "checking that the C compiler understands volatile... " >&6; }
@@ -10701,5 +10653,5 @@
 	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-if test $`$as_echo "ac_cv_c_prototype_struct passwd *getpwent_r(struct passwd *src, char *buf, int buflen)" | $as_tr_sh` = yes; then :
+if eval test $`$as_echo "ac_cv_c_prototype_struct passwd *getpwent_r(struct passwd *src, char *buf, int buflen)" | $as_tr_sh` = yes; then :
 
 
@@ -10748,5 +10700,5 @@
 	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-if test $`$as_echo "ac_cv_c_prototype_struct passwd *getpwent_r(struct passwd *src, char *buf, size_t buflen)" | $as_tr_sh` = yes; then :
+if eval test $`$as_echo "ac_cv_c_prototype_struct passwd *getpwent_r(struct passwd *src, char *buf, size_t buflen)" | $as_tr_sh` = yes; then :
 
 
@@ -10843,5 +10795,5 @@
 	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-if test $`$as_echo "ac_cv_c_prototype_struct group *getgrent_r(struct group *src, char *buf, int buflen)" | $as_tr_sh` = yes; then :
+if eval test $`$as_echo "ac_cv_c_prototype_struct group *getgrent_r(struct group *src, char *buf, int buflen)" | $as_tr_sh` = yes; then :
 
 
@@ -10891,5 +10843,5 @@
 	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-if test $`$as_echo "ac_cv_c_prototype_struct group *getgrent_r(struct group *src, char *buf, size_t buflen)" | $as_tr_sh` = yes; then :
+if eval test $`$as_echo "ac_cv_c_prototype_struct group *getgrent_r(struct group *src, char *buf, size_t buflen)" | $as_tr_sh` = yes; then :
 
 
@@ -10970,4 +10922,40 @@
 
 
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for O_DIRECT flag to open(2)" >&5
+$as_echo_n "checking for O_DIRECT flag to open(2)... " >&6; }
+if ${libreplace_cv_HAVE_OPEN_O_DIRECT+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <unistd.h>
+#ifdef HAVE_FCNTL_H
+#include <fcntl.h>
+#endif
+int
+main ()
+{
+int fd = open("/dev/null", O_DIRECT);
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  libreplace_cv_HAVE_OPEN_O_DIRECT=yes
+else
+  libreplace_cv_HAVE_OPEN_O_DIRECT=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libreplace_cv_HAVE_OPEN_O_DIRECT" >&5
+$as_echo "$libreplace_cv_HAVE_OPEN_O_DIRECT" >&6; }
+if test x"$libreplace_cv_HAVE_OPEN_O_DIRECT" = x"yes"; then
+
+$as_echo "#define HAVE_OPEN_O_DIRECT 1" >>confdefs.h
+
+fi
 
 save_LIBS="$LIBS"
@@ -11178,5 +11166,5 @@
 	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-if test $`$as_echo "ac_cv_c_prototype_void *dlopen(const char* filename, unsigned int flags)" | $as_tr_sh` = yes; then :
+if eval test $`$as_echo "ac_cv_c_prototype_void *dlopen(const char* filename, unsigned int flags)" | $as_tr_sh` = yes; then :
 
 
@@ -11488,5 +11476,5 @@
 	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-if test $`$as_echo "ac_cv_c_prototype_long telldir(const DIR *dir)" | $as_tr_sh` = yes; then :
+if eval test $`$as_echo "ac_cv_c_prototype_long telldir(const DIR *dir)" | $as_tr_sh` = yes; then :
 
 
@@ -11532,5 +11520,5 @@
 	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-if test $`$as_echo "ac_cv_c_prototype_int seekdir(DIR *dir, long ofs)" | $as_tr_sh` = yes; then :
+if eval test $`$as_echo "ac_cv_c_prototype_int seekdir(DIR *dir, long ofs)" | $as_tr_sh` = yes; then :
 
 
@@ -11926,4 +11914,41 @@
 
 $as_echo "#define HAVE_STRUCT_TIMESPEC 1" >>confdefs.h
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ucontext_t type" >&5
+$as_echo_n "checking for ucontext_t type... " >&6; }
+if ${libreplace_cv_ucontext_t+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <signal.h>
+#if HAVE_SYS_UCONTEXT_H
+#include <sys/ucontext.h>
+# endif
+
+int
+main ()
+{
+ucontext_t uc; sigaddset(&uc.uc_sigmask, SIGUSR1);
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  libreplace_cv_ucontext_t=yes
+else
+  libreplace_cv_ucontext_t=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libreplace_cv_ucontext_t" >&5
+$as_echo "$libreplace_cv_ucontext_t" >&6; }
+if test x"$libreplace_cv_ucontext_t" = x"yes"; then
+
+$as_echo "#define HAVE_UCONTEXT_T 1" >>confdefs.h
 
 fi
@@ -13976,31 +14001,13 @@
 
 
-if test x"$host_os" != x"os2-emx"; then
-for ac_header in md5.h
-do :
-  ac_fn_c_check_header_mongrel "$LINENO" "md5.h" "ac_cv_header_md5_h" "$ac_includes_default"
-if test "x$ac_cv_header_md5_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_MD5_H 1
-_ACEOF
-
-fi
-
-done
-fi
-
 samba_cv_md5lib=none
 
-if test x"$ac_cv_header_md5_h" = x"yes"; then
-
-$as_echo "#define HAVE_MD5_H 1" >>confdefs.h
-
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for MD5Update in -lmd5" >&5
-$as_echo_n "checking for MD5Update in -lmd5... " >&6; }
-if ${ac_cv_lib_md5_MD5Update+:} false; then :
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for MD5Update in -lc" >&5
+$as_echo_n "checking for MD5Update in -lc... " >&6; }
+if ${ac_cv_lib_c_MD5Update+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
-LIBS="-lmd5  $LIBS"
+LIBS="-lc  $LIBS"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -14022,7 +14029,7 @@
 _ACEOF
 if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_md5_MD5Update=yes
-else
-  ac_cv_lib_md5_MD5Update=no
+  ac_cv_lib_c_MD5Update=yes
+else
+  ac_cv_lib_c_MD5Update=no
 fi
 rm -f core conftest.err conftest.$ac_objext \
@@ -14030,14 +14037,12 @@
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_md5_MD5Update" >&5
-$as_echo "$ac_cv_lib_md5_MD5Update" >&6; }
-if test "x$ac_cv_lib_md5_MD5Update" = xyes; then :
-  samba_cv_md5lib=md5
-fi
-
-fi
-
-if test x"$ac_cv_header_md5_h" = x"yes" -a \
-        x"$samba_cv_md5lib" = x"none" ; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_MD5Update" >&5
+$as_echo "$ac_cv_lib_c_MD5Update" >&6; }
+if test "x$ac_cv_lib_c_MD5Update" = xyes; then :
+  samba_cv_md5lib=""
+fi
+
+
+if test x"$samba_cv_md5lib" = x"none" ; then
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for MD5Update in -lmd" >&5
 $as_echo_n "checking for MD5Update in -lmd... " >&6; }
@@ -14082,13 +14087,12 @@
 fi
 
-if test x"$ac_cv_header_md5_h" = x"yes" -a \
-        x"$samba_cv_md5lib" = x"none" ; then
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for MD5Update in -lc" >&5
-$as_echo_n "checking for MD5Update in -lc... " >&6; }
-if ${ac_cv_lib_c_MD5Update+:} false; then :
+if test x"$samba_cv_md5lib" = x"none" ; then
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for MD5Update in -lmd5" >&5
+$as_echo_n "checking for MD5Update in -lmd5... " >&6; }
+if ${ac_cv_lib_md5_MD5Update+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
-LIBS="-lc  $LIBS"
+LIBS="-lmd5  $LIBS"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -14110,7 +14114,7 @@
 _ACEOF
 if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_c_MD5Update=yes
-else
-  ac_cv_lib_c_MD5Update=no
+  ac_cv_lib_md5_MD5Update=yes
+else
+  ac_cv_lib_md5_MD5Update=no
 fi
 rm -f core conftest.err conftest.$ac_objext \
@@ -14118,8 +14122,8 @@
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_MD5Update" >&5
-$as_echo "$ac_cv_lib_c_MD5Update" >&6; }
-if test "x$ac_cv_lib_c_MD5Update" = xyes; then :
-  samba_cv_md5lib=""
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_md5_MD5Update" >&5
+$as_echo "$ac_cv_lib_md5_MD5Update" >&6; }
+if test "x$ac_cv_lib_md5_MD5Update" = xyes; then :
+  samba_cv_md5lib=md5
 fi
 
@@ -14127,13 +14131,28 @@
 
 if test x"$samba_cv_md5lib" != x"none" ; then
+	for ac_header in md5.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "md5.h" "ac_cv_header_md5_h" "$ac_includes_default"
+if test "x$ac_cv_header_md5_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_MD5_H 1
+_ACEOF
+
+fi
+
+done
+
+fi
+
+CRYPTO_MD5_OBJ="../lib/crypto/md5.o"
+if test x"$ac_cv_header_md5_h" = x"yes" -a \
+        x"$samba_cv_md5lib" != x"none" ; then
 	if test x"$samba_cv_md5lib" != x ; then
 		LIBS="${LIBS} -l${samba_cv_md5lib}"
+
+$as_echo "#define HAVE_LIBMD5 1" >>confdefs.h
+
 	fi
 	CRYPTO_MD5_OBJ=
-
-$as_echo "#define HAVE_LIBMD5 1" >>confdefs.h
-
-else
-	CRYPTO_MD5_OBJ="../lib/crypto/md5.o"
 fi
 
@@ -14232,6 +14251,5 @@
 # This causes configure to fail to detect it. Check for shadow separately on HPUX.
 #
-case "$
-host_os" in
+case "$host_os" in
     *hpux*)
 		cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -14498,9 +14516,9 @@
 main ()
 {
-/* FIXME: Include the comments suggested by Paul. */
+
 #ifndef __cplusplus
-  /* Ultrix mips cc rejects this.  */
+  /* Ultrix mips cc rejects this sort of thing.  */
   typedef int charset[2];
-  const charset cs;
+  const charset cs = { 0, 0 };
   /* SunOS 4.1.1 cc rejects this.  */
   char const *const *pcpcc;
@@ -14519,6 +14537,7 @@
   ppc = (char**) pcpcc;
   pcpcc = (char const *const *) ppc;
-  { /* SCO 3.2v4 cc rejects this.  */
-    char *t;
+  { /* SCO 3.2v4 cc rejects this sort of thing.  */
+    char tx;
+    char *t = &tx;
     char const *s = 0 ? (char *) 0 : (char const *) 0;
 
@@ -14536,8 +14555,8 @@
     ++p;
   }
-  { /* AIX XL C 1.02.0.0 rejects this saying
+  { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying
        "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
-    struct s { int j; const int *ap[3]; };
-    struct s *b; b->j = 5;
+    struct s { int j; const int *ap[3]; } bx;
+    struct s *b = &bx; b->j = 5;
   }
   { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
@@ -14845,5 +14864,6 @@
 {
 static int test_array [1 - 2 * !(((char) -1) < 0)];
-test_array [0] = 0
+test_array [0] = 0;
+return test_array [0];
 
   ;
@@ -15071,5 +15091,5 @@
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_path_CUPS_CONFIG="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
@@ -15098,10 +15118,10 @@
 		ac_save_LDFLAGS=$LDFLAGS
 		case "$host_os" in
- 				*os2*)
-                 PRINT_LIBS="$PRINT_LIBS -lpthread -lz"
-                                 ;;
-                                 *)
-		                 ;;
-                 esac
+			*os2*)
+                PRINT_LIBS="$PRINT_LIBS -lpthread -lz"
+                        ;;
+                        *)
+	                ;;
+                esac
 		ac_save_PRINT_LIBS=$PRINT_LIBS
 		for ac_header in cups/cups.h cups/language.h
@@ -16304,5 +16324,5 @@
 done
 
-for ac_func in lstat64 fopen64 atexit grantpt lseek64 ftruncate64 posix_fallocate posix_fallocate64
+for ac_func in lstat64 fopen64 atexit grantpt posix_openpt lseek64 ftruncate64 posix_fallocate posix_fallocate64
 do :
   as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
@@ -19465,5 +19485,5 @@
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ROFF="groff -etpsR -Tascii -man"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
@@ -20011,5 +20031,5 @@
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
@@ -20054,5 +20074,5 @@
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
@@ -20407,4 +20427,279 @@
 
 	TALLOCTORT="bin/talloctort\$(EXEEXT)"
+
+fi
+
+# Check whether --enable-external_libtevent was given.
+if test "${enable_external_libtevent+set}" = set; then :
+  enableval=$enable_external_libtevent;  enable_external_libtevent=$enableval
+else
+   enable_external_libtevent=auto
+fi
+
+
+if test "x$enable_external_libtevent" != xno
+then
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBTEVENT" >&5
+$as_echo_n "checking for LIBTEVENT... " >&6; }
+
+if test -n "$PKG_CONFIG"; then
+    if test -n "$LIBTEVENT_CFLAGS"; then
+        pkg_cv_LIBTEVENT_CFLAGS="$LIBTEVENT_CFLAGS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"tevent >= 0.9.11\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "tevent >= 0.9.11") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_LIBTEVENT_CFLAGS=`$PKG_CONFIG --cflags "tevent >= 0.9.11" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+    if test -n "$LIBTEVENT_LIBS"; then
+        pkg_cv_LIBTEVENT_LIBS="$LIBTEVENT_LIBS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"tevent >= 0.9.11\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "tevent >= 0.9.11") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_LIBTEVENT_LIBS=`$PKG_CONFIG --libs "tevent >= 0.9.11" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+	        LIBTEVENT_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "tevent >= 0.9.11"`
+        else
+	        LIBTEVENT_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "tevent >= 0.9.11"`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$LIBTEVENT_PKG_ERRORS" >&5
+
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+                 if test x$enable_external_libtevent = xyes; then
+			as_fn_error $? "Unable to find libtevent" "$LINENO" 5
+		  else
+			enable_external_libtevent=no
+		  fi
+
+elif test $pkg_failed = untried; then
+	 if test x$enable_external_libtevent = xyes; then
+			as_fn_error $? "Unable to find libtevent" "$LINENO" 5
+		  else
+			enable_external_libtevent=no
+		  fi
+
+else
+	LIBTEVENT_CFLAGS=$pkg_cv_LIBTEVENT_CFLAGS
+	LIBTEVENT_LIBS=$pkg_cv_LIBTEVENT_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+	 enable_external_libtevent=yes
+fi
+fi
+
+if test "x$enable_external_libtevent" = xno
+then
+
+
+
+if test x"$teventdir" = "x"; then
+	teventdir=""
+	teventpaths="$srcdir $srcdir/../lib/tevent $srcdir/tevent $srcdir/../tevent"
+	for d in $teventpaths; do
+		if test -f "$d/tevent.c"; then
+			teventdir="$d"
+			break;
+		fi
+	done
+	if test x"$teventdir" = "x"; then
+	   as_fn_error $? "cannot find libtevent source in $teventpaths" "$LINENO" 5
+	fi
+fi
+
+TEVENT_OBJ=""
+TEVENT_CFLAGS=""
+TEVENT_LIBS=""
+
+
+
+
+TEVENT_CFLAGS="-I$teventdir"
+
+TEVENT_OBJ="tevent.o tevent_debug.o tevent_util.o"
+TEVENT_OBJ="$TEVENT_OBJ tevent_fd.o tevent_timed.o tevent_immediate.o tevent_signal.o"
+TEVENT_OBJ="$TEVENT_OBJ tevent_req.o tevent_wakeup.o tevent_queue.o"
+TEVENT_OBJ="$TEVENT_OBJ tevent_standard.o tevent_select.o"
+TEVENT_OBJ="$TEVENT_OBJ tevent_poll.o"
+
+for ac_header in sys/epoll.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "sys/epoll.h" "ac_cv_header_sys_epoll_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_epoll_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_SYS_EPOLL_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_func in epoll_create
+do :
+  ac_fn_c_check_func "$LINENO" "epoll_create" "ac_cv_func_epoll_create"
+if test "x$ac_cv_func_epoll_create" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_EPOLL_CREATE 1
+_ACEOF
+
+fi
+done
+
+if test x"$ac_cv_header_sys_epoll_h" = x"yes" -a x"$ac_cv_func_epoll_create" = x"yes"; then
+   TEVENT_OBJ="$TEVENT_OBJ tevent_epoll.o"
+
+$as_echo "#define HAVE_EPOLL 1" >>confdefs.h
+
+fi
+
+if test x"$VERSIONSCRIPT" != "x"; then
+    EXPORTSFILE=tevent.exports
+
+fi
+
+
+	if test x"$USESHARED" = x"no" ; then
+		LINK_LIBTEVENT=STATIC
+	fi
+	LIBTEVENTVERSION=`grep ^VERSION ${teventdir}/wscript | sed -e "s/'//g" -e 's/.* //'`
+
+
+
+
+
+LIBTEVENT_SHARED_TARGET=bin/libtevent.$SHLIBEXT
+LIBTEVENT_STATIC_TARGET=bin/libtevent.a
+LIBTEVENT_SHARED=
+LIBTEVENT_STATIC=
+LIBTEVENT_LIBS=-ltevent
+LIBTEVENT_TARGET=
+INSTALL_LIBTEVENT=
+UNINSTALL_LIBTEVENT=
+
+LIBTEVENT_SOVER=0
+LIBTEVENT_FULLVER=${LIBTEVENTVERSION}
+
+LIBTEVENT_SHARED_TARGET_SOVER=$LIBTEVENT_SHARED_TARGET.$LIBTEVENT_SOVER
+LIBTEVENT_SHARED_TARGET_FULLVER=$LIBTEVENT_SHARED_TARGET.$LIBTEVENT_FULLVER
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build the libtevent shared library" >&5
+$as_echo_n "checking whether to build the libtevent shared library... " >&6; }
+
+
+# Check whether --with-libtevent was given.
+if test "${with_libtevent+set}" = set; then :
+  withval=$with_libtevent;
+case "$withval" in
+	no)
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+		build_lib=no
+		;;
+	*)
+		build_lib=yes
+		;;
+esac
+
+else
+
+# if unspecified, default is to build it if possible.
+build_lib=yes
+
+
+fi
+
+
+
+if eval test x"$build_lib" = "xyes" ; then
+	# only set the install targets if the user chose the library
+	INSTALL_LIBTEVENT=installlibtevent
+	UNINSTALL_LIBTEVENT=uninstalllibtevent
+	if eval $BLDSHARED = true; then
+		LIBTEVENT_SHARED=$LIBTEVENT_SHARED_TARGET
+		LIBTEVENT_TARGET=$LIBTEVENT_SHARED_TARGET
+
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+		if test x"$USESHARED" != x"true" -o x"$LINK_LIBTEVENT" = "xSTATIC" ; then
+			enable_static=yes
+			LIBTEVENT_TARGET=$LIBTEVENT_STATIC_TARGET
+			LIBTEVENT_LIBS=$LIBTEVENT_STATIC_TARGET
+		else
+			LIBTEVENT_LIBS=-ltevent
+		fi
+	else
+		enable_static=yes
+		LIBTEVENT_TARGET=$LIBTEVENT_STATIC_TARGET
+		LIBTEVENT_LIBS=$LIBTEVENT_STATIC_TARGET
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no shared library support -- will supply static library" >&5
+$as_echo "no shared library support -- will supply static library" >&6; }
+	fi
+else
+	enable_static=yes
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: shared library not selected" >&5
+$as_echo "shared library not selected" >&6; }
+fi
+if test $enable_static = yes; then
+	LIBTEVENT_STATIC=$LIBTEVENT_STATIC_TARGET
+fi
+
+
+
+
+
+
+	LIBTEVENT_OBJ0=""
+	for obj in ${TEVENT_OBJ}; do
+		LIBTEVENT_OBJ0="${LIBTEVENT_OBJ0} ${teventdir}/${obj}"
+	done
+	SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} ${TEVENT_CFLAGS}"
+	SAMBA_CONFIGURE_CPPFLAGS="${SAMBA_CONFIGURE_CPPFLAGS} ${TEVENT_CFLAGS}"
 
 fi
@@ -25971,5 +26266,5 @@
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_path_KRB5CONFIG="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
@@ -30850,4 +31145,67 @@
   fi
 
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ENCTYPE_AES128_CTS_HMAC_SHA1_96" >&5
+$as_echo_n "checking for ENCTYPE_AES128_CTS_HMAC_SHA1_96... " >&6; }
+if ${samba_cv_HAVE_ENCTYPE_AES128_CTS_HMAC_SHA1_96+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <krb5.h>
+int
+main ()
+{
+krb5_enctype enctype; enctype = ENCTYPE_AES128_CTS_HMAC_SHA1_96;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  samba_cv_HAVE_ENCTYPE_AES128_CTS_HMAC_SHA1_96=yes
+else
+  samba_cv_HAVE_ENCTYPE_AES128_CTS_HMAC_SHA1_96=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $samba_cv_HAVE_ENCTYPE_AES128_CTS_HMAC_SHA1_96" >&5
+$as_echo "$samba_cv_HAVE_ENCTYPE_AES128_CTS_HMAC_SHA1_96" >&6; }
+  if test x"$samba_cv_HAVE_ENCTYPE_AES128_CTS_HMAC_SHA1_96" = x"yes"; then
+
+$as_echo "#define HAVE_ENCTYPE_AES128_CTS_HMAC_SHA1_96 1" >>confdefs.h
+
+  fi
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ENCTYPE_AES256_CTS_HMAC_SHA1_96" >&5
+$as_echo_n "checking for ENCTYPE_AES256_CTS_HMAC_SHA1_96... " >&6; }
+if ${samba_cv_HAVE_ENCTYPE_AES256_CTS_HMAC_SHA1_96+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <krb5.h>
+int
+main ()
+{
+krb5_enctype enctype; enctype = ENCTYPE_AES256_CTS_HMAC_SHA1_96;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  samba_cv_HAVE_ENCTYPE_AES256_CTS_HMAC_SHA1_96=yes
+else
+  samba_cv_HAVE_ENCTYPE_AES256_CTS_HMAC_SHA1_96=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $samba_cv_HAVE_ENCTYPE_AES256_CTS_HMAC_SHA1_96" >&5
+$as_echo "$samba_cv_HAVE_ENCTYPE_AES256_CTS_HMAC_SHA1_96" >&6; }
+  if test x"$samba_cv_HAVE_ENCTYPE_AES256_CTS_HMAC_SHA1_96" = x"yes"; then
+
+$as_echo "#define HAVE_ENCTYPE_AES256_CTS_HMAC_SHA1_96 1" >>confdefs.h
+
+  fi
+
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for AP_OPTS_USE_SUBKEY" >&5
 $as_echo_n "checking for AP_OPTS_USE_SUBKEY... " >&6; }
@@ -32457,4 +32815,6 @@
     as_fn_error $? "argument to --with-syslog-facility must be a string" "$LINENO" 5
   else
+     { $as_echo "$as_me:${as_lineno-$LINENO}: result: $withval" >&5
+$as_echo "$withval" >&6; }
      if test "$withval" != "yes" ; then
         syslog_facility="$withval"
@@ -32466,4 +32826,8 @@
      fi
   fi
+
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 
 fi
@@ -34695,5 +35059,5 @@
 /* end confdefs.h.  */
 #include <aio.h>
-int main() { struct aiocb a; return aio_suspend(&a, 1, NULL); }
+int main() { struct aiocb a; struct timespec t; return aio_suspend(&a, 1, &t); }
 _ACEOF
 if ac_fn_c_try_link "$LINENO"; then :
@@ -40994,14 +41358,14 @@
     # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
     # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-    # In both cases, we have to default to `cp -p'.
+    # In both cases, we have to default to `cp -pR'.
     ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-      as_ln_s='cp -p'
+      as_ln_s='cp -pR'
   elif ln conf$$.file conf$$ 2>/dev/null; then
     as_ln_s=ln
   else
-    as_ln_s='cp -p'
+    as_ln_s='cp -pR'
   fi
 else
-  as_ln_s='cp -p'
+  as_ln_s='cp -pR'
 fi
 rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
@@ -41063,26 +41427,14 @@
 fi
 
-if test -x / >/dev/null 2>&1; then
-  as_test_x='test -x'
-else
-  if ls -dL / >/dev/null 2>&1; then
-    as_ls_L_option=L
-  else
-    as_ls_L_option=
-  fi
-  as_test_x='
-    eval sh -c '\''
-      if test -d "$1"; then
-	test -d "$1/.";
-      else
-	case $1 in #(
-	-*)set "./$1";;
-	esac;
-	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
-	???[sx]*):;;*)false;;esac;fi
-    '\'' sh
-  '
-fi
-as_executable_p=$as_test_x
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+  test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
 
 # Sed expression to map a string onto a valid CPP name.
@@ -41106,5 +41458,5 @@
 ac_log="
 This file was extended by Samba $as_me 3, which was
-generated by GNU Autoconf 2.68.  Invocation command line was
+generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -41172,8 +41524,8 @@
 ac_cs_version="\\
 Samba config.status 3
-configured by $0, generated by GNU Autoconf 2.68,
+configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
-Copyright (C) 2010 Free Software Foundation, Inc.
+Copyright (C) 2012 Free Software Foundation, Inc.
 This config.status script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it."
@@ -41265,5 +41617,5 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 if \$ac_cs_recheck; then
-  set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+  set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
   shift
   \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
Index: trunk/server/source3/configure.in
===================================================================
--- trunk/server/source3/configure.in	(revision 857)
+++ trunk/server/source3/configure.in	(revision 862)
@@ -26,16 +26,6 @@
 AC_LIBREPLACE_RUNTIME_LIB_PATH_VAR
 
-m4_include(../lib/tevent/libtevent.m4)
-
-LIBTEVENT_OBJ0=""
-for obj in ${TEVENT_OBJ}; do
-	LIBTEVENT_OBJ0="${LIBTEVENT_OBJ0} ${teventdir}/${obj}"
-done
-AC_SUBST(LIBTEVENT_OBJ0)
-LIBS="${LIBS} ${TEVENT_LIBS}"
-
 SAMBA_CPPFLAGS="-Iinclude -I${srcdir-.}/include  -I. -I${srcdir-.}"
 SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} -I${srcdir-.}/../lib/replace"
-SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} ${TEVENT_CFLAGS}"
 SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} -I${srcdir-.}/librpc"
 SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} -I${srcdir-.}/.."
@@ -232,5 +222,9 @@
 dnl warnings when building modules.
 if test "$ac_cv_prog_gnu_ld" = "yes"; then
-	ac_cv_gnu_ld_version=`$CC -Wl,-v /dev/null 2>&1 < /dev/null | grep "GNU ld"`
+	ac_cv_gnu_ld_version=`$CC -Wl,-v /dev/null 2> /dev/null < /dev/null | grep "GNU ld"`
+	# we need to make a 2nd (separate!) check on the output of stderr, see bug #7825:
+	if test -z "$ac_cv_gnu_ld_version" ; then
+	  ac_cv_gnu_ld_version=`$CC -Wl,-v /dev/null 2>&1 > /dev/null < /dev/null | grep "GNU ld"`
+	fi
 	AC_MSG_CHECKING(GNU ld release date)
 	changequote(,)dnl
@@ -753,33 +747,29 @@
 
 dnl check for OS implementation of md5 conformant to rfc1321
-AC_CHECK_HEADERS(md5.h)
-
 samba_cv_md5lib=none
 
-if test x"$ac_cv_header_md5_h" = x"yes"; then
-	AC_DEFINE(HAVE_MD5_H, 1,
-		[Whether md5.h is available.])
+AC_CHECK_LIB(c, MD5Update, [samba_cv_md5lib=""])
+
+if test x"$samba_cv_md5lib" = x"none" ; then
+	AC_CHECK_LIB(md, MD5Update, [samba_cv_md5lib=md])
+fi
+
+if test x"$samba_cv_md5lib" = x"none" ; then
 	AC_CHECK_LIB(md5, MD5Update, [samba_cv_md5lib=md5])
 fi
 
+if test x"$samba_cv_md5lib" != x"none" ; then
+	AC_CHECK_HEADERS(md5.h)
+fi
+
+CRYPTO_MD5_OBJ="../lib/crypto/md5.o"
 if test x"$ac_cv_header_md5_h" = x"yes" -a \
-        x"$samba_cv_md5lib" = x"none" ; then
-	AC_CHECK_LIB(md, MD5Update, [samba_cv_md5lib=md])
-fi
-
-if test x"$ac_cv_header_md5_h" = x"yes" -a \
-        x"$samba_cv_md5lib" = x"none" ; then
-	AC_CHECK_LIB(c, MD5Update, [samba_cv_md5lib=""])
-fi
-
-if test x"$samba_cv_md5lib" != x"none" ; then
+        x"$samba_cv_md5lib" != x"none" ; then
 	if test x"$samba_cv_md5lib" != x ; then
 		LIBS="${LIBS} -l${samba_cv_md5lib}"
+		AC_DEFINE(HAVE_LIBMD5, 1,
+				  [Whether libmd5 conformant to rfc1321 is available.])
 	fi
 	CRYPTO_MD5_OBJ=
-	AC_DEFINE(HAVE_LIBMD5, 1,
-	    [Whether libmd5 conformant to rfc1321 is available.])
-else
-	CRYPTO_MD5_OBJ="../lib/crypto/md5.o"
 fi
 
@@ -1117,5 +1107,5 @@
 AC_CHECK_FUNCS(getgrset)
 AC_CHECK_FUNCS(setpriv setgidx setuidx setgroups sysconf stat64 fstat64)
-AC_CHECK_FUNCS(lstat64 fopen64 atexit grantpt lseek64 ftruncate64 posix_fallocate posix_fallocate64)
+AC_CHECK_FUNCS(lstat64 fopen64 atexit grantpt posix_openpt lseek64 ftruncate64 posix_fallocate posix_fallocate64)
 AC_CHECK_FUNCS(fallocate fallocate64)
 AC_CHECK_FUNCS(fseeko fseek64 fseeko64 ftell64 ftello64 setluid getpwanam)
@@ -2156,4 +2146,39 @@
 fi
 
+AC_ARG_ENABLE(external_libtevent,
+	[AS_HELP_STRING([--enable-external-libtevent],
+		[Enable external tevent [default=auto]])],
+	[ enable_external_libtevent=$enableval ],
+	[ enable_external_libtevent=auto ])
+
+if test "x$enable_external_libtevent" != xno
+then
+	PKG_CHECK_MODULES(LIBTEVENT, tevent >= 0.9.11,
+		[ enable_external_libtevent=yes ],
+		[ if test x$enable_external_libtevent = xyes; then
+			AC_MSG_ERROR([Unable to find libtevent])
+		  else
+			enable_external_libtevent=no
+		  fi
+		])
+fi
+
+if test "x$enable_external_libtevent" = xno
+then
+	m4_include(../lib/tevent/libtevent.m4)
+	if test x"$USESHARED" = x"no" ; then
+		LINK_LIBTEVENT=STATIC
+	fi
+	LIBTEVENTVERSION=`grep ^VERSION ${teventdir}/wscript | sed -e "s/'//g" -e 's/.* //'`
+	SMB_LIBRARY(tevent, 0, ${LIBTEVENTVERSION})
+	LIBTEVENT_OBJ0=""
+	for obj in ${TEVENT_OBJ}; do
+		LIBTEVENT_OBJ0="${LIBTEVENT_OBJ0} ${teventdir}/${obj}"
+	done
+	SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} ${TEVENT_CFLAGS}"
+	SAMBA_CONFIGURE_CPPFLAGS="${SAMBA_CONFIGURE_CPPFLAGS} ${TEVENT_CFLAGS}"
+	AC_SUBST(LIBTEVENT_OBJ0)
+fi
+
 
 AC_ARG_ENABLE(external_libtdb,
@@ -4157,4 +4182,25 @@
   fi
 
+  AC_CACHE_CHECK([for ENCTYPE_AES128_CTS_HMAC_SHA1_96],
+                 samba_cv_HAVE_ENCTYPE_AES128_CTS_HMAC_SHA1_96,[
+    AC_TRY_COMPILE([#include <krb5.h>],
+      [krb5_enctype enctype; enctype = ENCTYPE_AES128_CTS_HMAC_SHA1_96;],
+      samba_cv_HAVE_ENCTYPE_AES128_CTS_HMAC_SHA1_96=yes,
+      samba_cv_HAVE_ENCTYPE_AES128_CTS_HMAC_SHA1_96=no)])
+  if test x"$samba_cv_HAVE_ENCTYPE_AES128_CTS_HMAC_SHA1_96" = x"yes"; then
+    AC_DEFINE(HAVE_ENCTYPE_AES128_CTS_HMAC_SHA1_96,1,
+              [Whether the ENCTYPE_AES128_CTS_HMAC_SHA1_96 key type definition is available])
+  fi
+  AC_CACHE_CHECK([for ENCTYPE_AES256_CTS_HMAC_SHA1_96],
+                 samba_cv_HAVE_ENCTYPE_AES256_CTS_HMAC_SHA1_96,[
+    AC_TRY_COMPILE([#include <krb5.h>],
+      [krb5_enctype enctype; enctype = ENCTYPE_AES256_CTS_HMAC_SHA1_96;],
+      samba_cv_HAVE_ENCTYPE_AES256_CTS_HMAC_SHA1_96=yes,
+      samba_cv_HAVE_ENCTYPE_AES256_CTS_HMAC_SHA1_96=no)])
+  if test x"$samba_cv_HAVE_ENCTYPE_AES256_CTS_HMAC_SHA1_96" = x"yes"; then
+    AC_DEFINE(HAVE_ENCTYPE_AES256_CTS_HMAC_SHA1_96,1,
+              [Whether the ENCTYPE_AES256_CTS_HMAC_SHA1_96 key type definition is available])
+  fi
+
   AC_CACHE_CHECK([for AP_OPTS_USE_SUBKEY],
                  samba_cv_HAVE_AP_OPTS_USE_SUBKEY,[
@@ -4831,4 +4877,5 @@
     AC_MSG_ERROR([argument to --with-syslog-facility must be a string])
   else
+     AC_MSG_RESULT([$withval])
      if test "$withval" != "yes" ; then
         syslog_facility="$withval"
@@ -4836,5 +4883,7 @@
      fi
   fi
-])
+],
+AC_MSG_RESULT(no)
+)
 
 #################################################
@@ -5861,5 +5910,5 @@
 			AC_MSG_CHECKING(for aio_suspend)
 			AC_LINK_IFELSE([#include <aio.h>
-int main() { struct aiocb a; return aio_suspend(&a, 1, NULL); }],
+int main() { struct aiocb a; struct timespec t; return aio_suspend(&a, 1, &t); }],
 [AC_DEFINE(HAVE_AIO_SUSPEND, 1, [Have aio_suspend]) AC_MSG_RESULT(yes)],
 [AC_MSG_RESULT(no)])
Index: trunk/server/source3/include/config.h.in
===================================================================
--- trunk/server/source3/include/config.h.in	(revision 857)
+++ trunk/server/source3/include/config.h.in	(revision 862)
@@ -457,4 +457,12 @@
 #undef HAVE_DUP2
 
+/* Whether the ENCTYPE_AES128_CTS_HMAC_SHA1_96 key type definition is
+   available */
+#undef HAVE_ENCTYPE_AES128_CTS_HMAC_SHA1_96
+
+/* Whether the ENCTYPE_AES256_CTS_HMAC_SHA1_96 key type definition is
+   available */
+#undef HAVE_ENCTYPE_AES256_CTS_HMAC_SHA1_96
+
 /* Whether the ENCTYPE_ARCFOUR_HMAC key type definition is available */
 #undef HAVE_ENCTYPE_ARCFOUR_HMAC
@@ -1420,5 +1428,5 @@
 #undef HAVE_MAKEDEV
 
-/* Whether md5.h is available. */
+/* Define to 1 if you have the <md5.h> header file. */
 #undef HAVE_MD5_H
 
@@ -1626,4 +1634,7 @@
 /* Define to 1 if you have the `posix_memalign' function. */
 #undef HAVE_POSIX_MEMALIGN
+
+/* Define to 1 if you have the `posix_openpt' function. */
+#undef HAVE_POSIX_OPENPT
 
 /* Whether prctl is available */
@@ -2298,4 +2309,7 @@
 #undef HAVE_SYS_TYPES_H
 
+/* Define to 1 if you have the <sys/ucontext.h> header file. */
+#undef HAVE_SYS_UCONTEXT_H
+
 /* Define to 1 if you have the <sys/uio.h> header file. */
 #undef HAVE_SYS_UIO_H
@@ -2345,4 +2359,7 @@
 /* Whether crypt needs truncated salt */
 #undef HAVE_TRUNCATED_SALT
+
+/* Whether we have ucontext_t */
+#undef HAVE_UCONTEXT_T
 
 /* Whether uint16 typedef is included by rpc/rpc.h */
@@ -3098,4 +3115,9 @@
 #undef XATTR_ADD_OPT
 
+/* Enable large inode numbers on Mac OS X 10.5.  */
+#ifndef _DARWIN_USE_64_BIT_INODE
+# define _DARWIN_USE_64_BIT_INODE 1
+#endif
+
 /* File offset bits */
 #undef _FILE_OFFSET_BITS
Index: trunk/server/source3/include/nt_printing.h
===================================================================
--- trunk/server/source3/include/nt_printing.h	(revision 857)
+++ trunk/server/source3/include/nt_printing.h	(revision 862)
@@ -133,4 +133,9 @@
 			int access_type);
 
+WERROR nt_printer_guid_get(TALLOC_CTX *mem_ctx,
+			   const struct auth_serversupplied_info *server_info,
+			   struct messaging_context *msg_ctx,
+			   const char *printer, struct GUID *guid);
+
 WERROR nt_printer_publish(TALLOC_CTX *mem_ctx,
 			  const struct auth_serversupplied_info *server_info,
@@ -142,5 +147,6 @@
 			  const struct auth_serversupplied_info *server_info,
 			  struct messaging_context *msg_ctx,
-			  const char *servername, char *printer, struct GUID *guid,
+			  const char *servername,
+			  const char *printer,
 			  struct spoolss_PrinterInfo2 **info2);
 
Index: trunk/server/source3/include/ntioctl.h
===================================================================
--- trunk/server/source3/include/ntioctl.h	(revision 857)
+++ trunk/server/source3/include/ntioctl.h	(revision 862)
@@ -123,4 +123,5 @@
 #define IO_REPARSE_TAG_HSM           0xC0000004
 #define IO_REPARSE_TAG_SIS           0x80000007
+#define IO_REPARSE_TAG_DFS	     0x8000000A
 
 
Index: trunk/server/source3/include/proto.h
===================================================================
--- trunk/server/source3/include/proto.h	(revision 857)
+++ trunk/server/source3/include/proto.h	(revision 862)
@@ -1847,4 +1847,5 @@
 struct sessionid;
 bool sessionid_init(void);
+bool sessionid_init_readonly(void);
 struct db_record *sessionid_fetch_record(TALLOC_CTX *mem_ctx, const char *key);
 int sessionid_traverse(int (*fn)(struct db_record *rec, const char *key,
@@ -1971,6 +1972,5 @@
 void send_stat_cache_delete_message(struct messaging_context *msg_ctx,
 				    const char *name);
-NTSTATUS can_delete_directory(struct connection_struct *conn,
-				const char *dirname);
+NTSTATUS can_delete_directory_fsp(files_struct *fsp);
 bool change_to_root_user(void);
 struct event_context *smbd_event_context(void);
Index: trunk/server/source3/include/serverid.h
===================================================================
--- trunk/server/source3/include/serverid.h	(revision 857)
+++ trunk/server/source3/include/serverid.h	(revision 862)
@@ -74,3 +74,5 @@
 uint64_t serverid_get_random_unique_id(void);
 
+bool serverid_init_readonly(TALLOC_CTX *mem_ctx);
+
 #endif
Index: trunk/server/source3/include/smb.h
===================================================================
--- trunk/server/source3/include/smb.h	(revision 857)
+++ trunk/server/source3/include/smb.h	(revision 862)
@@ -1717,4 +1717,5 @@
 #define UCF_POSIX_PATHNAMES		0x00000008
 #define UCF_UNIX_NAME_LOOKUP		0x00000010
+#define UCF_CREATING_FILE		0x00000020
 
 /*
Index: trunk/server/source3/lib/dummysmbd.c
===================================================================
--- trunk/server/source3/lib/dummysmbd.c	(revision 857)
+++ trunk/server/source3/lib/dummysmbd.c	(revision 862)
@@ -45,6 +45,5 @@
 }
 
-NTSTATUS can_delete_directory(struct connection_struct *conn,
-				const char *dirname)
+NTSTATUS can_delete_directory_fsp(files_struct *fsp)
 {
 	return NT_STATUS_OK;
Index: trunk/server/source3/lib/netapi/group.c
===================================================================
--- trunk/server/source3/lib/netapi/group.c	(revision 857)
+++ trunk/server/source3/lib/netapi/group.c	(revision 862)
@@ -310,4 +310,13 @@
 	}
 
+	if (rids.count != 1) {
+		werr = WERR_BAD_NET_RESP;
+		goto done;
+	}
+	if (types.count != 1) {
+		werr = WERR_BAD_NET_RESP;
+		goto done;
+	}
+
 	if (types.ids[0] != SID_NAME_DOM_GRP) {
 		werr = WERR_INVALID_DATATYPE;
@@ -385,4 +394,12 @@
 	if (!NT_STATUS_IS_OK(result)) {
 		werr = ntstatus_to_werror(result);
+		goto done;
+	}
+	if (names.count != rid_array->count) {
+		werr = WERR_BAD_NET_RESP;
+		goto done;
+	}
+	if (member_types.count != rid_array->count) {
+		werr = WERR_BAD_NET_RESP;
 		goto done;
 	}
@@ -510,4 +527,12 @@
 	if (!NT_STATUS_IS_OK(result)) {
 		werr = ntstatus_to_werror(result);
+		goto done;
+	}
+	if (rids.count != 1) {
+		werr = WERR_BAD_NET_RESP;
+		goto done;
+	}
+	if (types.count != 1) {
+		werr = WERR_BAD_NET_RESP;
 		goto done;
 	}
@@ -782,4 +807,12 @@
 		goto done;
 	}
+	if (rids.count != 1) {
+		werr = WERR_BAD_NET_RESP;
+		goto done;
+	}
+	if (types.count != 1) {
+		werr = WERR_BAD_NET_RESP;
+		goto done;
+	}
 
 	if (types.ids[0] != SID_NAME_DOM_GRP) {
@@ -922,4 +955,12 @@
 		goto done;
 	}
+	if (rids.count != 1) {
+		werr = WERR_BAD_NET_RESP;
+		goto done;
+	}
+	if (types.count != 1) {
+		werr = WERR_BAD_NET_RESP;
+		goto done;
+	}
 
 	if (types.ids[0] != SID_NAME_DOM_GRP) {
@@ -958,4 +999,12 @@
 	if (!NT_STATUS_IS_OK(result)) {
 		werr = WERR_USER_NOT_FOUND;
+		goto done;
+	}
+	if (rids.count != 1) {
+		werr = WERR_BAD_NET_RESP;
+		goto done;
+	}
+	if (types.count != 1) {
+		werr = WERR_BAD_NET_RESP;
 		goto done;
 	}
@@ -1066,4 +1115,12 @@
 		goto done;
 	}
+	if (rids.count != 1) {
+		werr = WERR_BAD_NET_RESP;
+		goto done;
+	}
+	if (types.count != 1) {
+		werr = WERR_BAD_NET_RESP;
+		goto done;
+	}
 
 	if (types.ids[0] != SID_NAME_DOM_GRP) {
@@ -1103,4 +1160,12 @@
 	if (!NT_STATUS_IS_OK(result)) {
 		werr = WERR_USER_NOT_FOUND;
+		goto done;
+	}
+	if (rids.count != 1) {
+		werr = WERR_BAD_NET_RESP;
+		goto done;
+	}
+	if (types.count != 1) {
+		werr = WERR_BAD_NET_RESP;
 		goto done;
 	}
@@ -1515,4 +1580,12 @@
 		goto done;
 	}
+	if (group_rids.count != 1) {
+		werr = WERR_BAD_NET_RESP;
+		goto done;
+	}
+	if (name_types.count != 1) {
+		werr = WERR_BAD_NET_RESP;
+		goto done;
+	}
 
 	status = dcerpc_samr_OpenGroup(b, talloc_tos(),
@@ -1557,4 +1630,12 @@
 	if (!NT_STATUS_IS_OK(result)) {
 		werr = ntstatus_to_werror(result);
+		goto done;
+	}
+	if (names.count != rid_array->count) {
+		werr = WERR_BAD_NET_RESP;
+		goto done;
+	}
+	if (member_types.count != rid_array->count) {
+		werr = WERR_BAD_NET_RESP;
 		goto done;
 	}
@@ -1690,4 +1771,12 @@
 		goto done;
 	}
+	if (group_rids.count != 1) {
+		werr = WERR_BAD_NET_RESP;
+		goto done;
+	}
+	if (group_types.count != 1) {
+		werr = WERR_BAD_NET_RESP;
+		goto done;
+	}
 
 	status = dcerpc_samr_OpenGroup(b, talloc_tos(),
@@ -1765,4 +1854,13 @@
 	if (!NT_STATUS_IS_OK(result)) {
 		werr = ntstatus_to_werror(result);
+		goto done;
+	}
+
+	if (r->in.num_entries != user_rids.count) {
+		werr = WERR_BAD_NET_RESP;
+		goto done;
+	}
+	if (r->in.num_entries != name_types.count) {
+		werr = WERR_BAD_NET_RESP;
 		goto done;
 	}
Index: trunk/server/source3/lib/netapi/localgroup.c
===================================================================
--- trunk/server/source3/lib/netapi/localgroup.c	(revision 857)
+++ trunk/server/source3/lib/netapi/localgroup.c	(revision 862)
@@ -59,4 +59,10 @@
 		return result;
 	}
+	if (user_rids.count != 1) {
+		return NT_STATUS_INVALID_NETWORK_RESPONSE;
+	}
+	if (name_types.count != 1) {
+		return NT_STATUS_INVALID_NETWORK_RESPONSE;
+	}
 
 	switch (name_types.ids[0]) {
@@ -1042,5 +1048,5 @@
 
 	if (count != 1 || sids.count != 1) {
-		return NT_STATUS_NONE_MAPPED;
+		return NT_STATUS_INVALID_NETWORK_RESPONSE;
 	}
 
Index: trunk/server/source3/lib/netapi/user.c
===================================================================
--- trunk/server/source3/lib/netapi/user.c	(revision 857)
+++ trunk/server/source3/lib/netapi/user.c	(revision 862)
@@ -605,4 +605,12 @@
 		goto done;
 	}
+	if (user_rids.count != 1) {
+		werr = WERR_BAD_NET_RESP;
+		goto done;
+	}
+	if (name_types.count != 1) {
+		werr = WERR_BAD_NET_RESP;
+		goto done;
+	}
 
 	status = dcerpc_samr_OpenUser(b, talloc_tos(),
@@ -1804,4 +1812,12 @@
 		goto done;
 	}
+	if (user_rids.count != 1) {
+		werr = WERR_BAD_NET_RESP;
+		goto done;
+	}
+	if (name_types.count != 1) {
+		werr = WERR_BAD_NET_RESP;
+		goto done;
+	}
 
 	status = libnetapi_samr_lookup_user_map_USER_INFO(ctx, pipe_cli,
@@ -1966,4 +1982,12 @@
 	if (!NT_STATUS_IS_OK(result)) {
 		werr = ntstatus_to_werror(result);
+		goto done;
+	}
+	if (user_rids.count != 1) {
+		werr = WERR_BAD_NET_RESP;
+		goto done;
+	}
+	if (name_types.count != 1) {
+		werr = WERR_BAD_NET_RESP;
 		goto done;
 	}
@@ -3027,4 +3051,12 @@
 		goto done;
 	}
+	if (user_rids.count != 1) {
+		werr = WERR_BAD_NET_RESP;
+		goto done;
+	}
+	if (name_types.count != 1) {
+		werr = WERR_BAD_NET_RESP;
+		goto done;
+	}
 
 	status = dcerpc_samr_OpenUser(b, talloc_tos(),
@@ -3080,4 +3112,12 @@
 	    !NT_STATUS_EQUAL(result, STATUS_SOME_UNMAPPED)) {
 		werr = ntstatus_to_werror(result);
+		goto done;
+	}
+	if (names.count != rid_array->count) {
+		werr = WERR_BAD_NET_RESP;
+		goto done;
+	}
+	if (types.count != rid_array->count) {
+		werr = WERR_BAD_NET_RESP;
 		goto done;
 	}
@@ -3202,4 +3242,12 @@
 		goto done;
 	}
+	if (user_rids.count != 1) {
+		werr = WERR_BAD_NET_RESP;
+		goto done;
+	}
+	if (name_types.count != 1) {
+		werr = WERR_BAD_NET_RESP;
+		goto done;
+	}
 
 	status = dcerpc_samr_OpenUser(b, talloc_tos(),
@@ -3260,4 +3308,12 @@
 	if (!NT_STATUS_IS_OK(result)) {
 		werr = ntstatus_to_werror(result);
+		goto done;
+	}
+	if (group_rids.count != r->in.num_entries) {
+		werr = WERR_BAD_NET_RESP;
+		goto done;
+	}
+	if (name_types.count != r->in.num_entries) {
+		werr = WERR_BAD_NET_RESP;
 		goto done;
 	}
@@ -3540,4 +3596,12 @@
 		goto done;
 	}
+	if (user_rids.count != 1) {
+		werr = WERR_BAD_NET_RESP;
+		goto done;
+	}
+	if (name_types.count != 1) {
+		werr = WERR_BAD_NET_RESP;
+		goto done;
+	}
 
 	status = dcerpc_samr_OpenUser(b, talloc_tos(),
@@ -3659,4 +3723,12 @@
 	if (!NT_STATUS_IS_OK(result)) {
 		werr = ntstatus_to_werror(result);
+		goto done;
+	}
+	if (names.count != num_rids) {
+		werr = WERR_BAD_NET_RESP;
+		goto done;
+	}
+	if (types.count != num_rids) {
+		werr = WERR_BAD_NET_RESP;
 		goto done;
 	}
Index: trunk/server/source3/lib/secdesc.c
===================================================================
--- trunk/server/source3/lib/secdesc.c	(revision 857)
+++ trunk/server/source3/lib/secdesc.c	(revision 862)
@@ -603,5 +603,6 @@
 			new_flags = 0;
 		} else {
-			new_flags &= ~SEC_ACE_FLAG_INHERIT_ONLY;
+			new_flags &= ~(SEC_ACE_FLAG_INHERIT_ONLY|
+					SEC_ACE_FLAG_INHERITED_ACE);
 
 			if (!(new_flags & SEC_ACE_FLAG_CONTAINER_INHERIT)) {
Index: trunk/server/source3/lib/serverid.c
===================================================================
--- trunk/server/source3/lib/serverid.c	(revision 857)
+++ trunk/server/source3/lib/serverid.c	(revision 862)
@@ -35,8 +35,18 @@
 };
 
+static struct db_context *db_ptr = NULL;
+
+static struct db_context *serverid_init(TALLOC_CTX *mem_ctx,
+					bool readonly)
+{
+	db_ptr = db_open(mem_ctx, lock_path("serverid.tdb"),
+			 0, TDB_DEFAULT|TDB_CLEAR_IF_FIRST|TDB_INCOMPATIBLE_HASH,
+			 readonly ? O_RDONLY : O_RDWR | O_CREAT,
+			 0644);
+	return db_ptr;
+}
+
 bool serverid_parent_init(TALLOC_CTX *mem_ctx)
 {
-	struct tdb_wrap *db;
-
 	/*
 	 * Open the tdb in the parent process (smbd) so that our
@@ -45,25 +55,31 @@
 	 */
 
-	db = tdb_wrap_open(mem_ctx, lock_path("serverid.tdb"),
-			   0, TDB_DEFAULT|TDB_CLEAR_IF_FIRST|TDB_INCOMPATIBLE_HASH, O_RDWR|O_CREAT,
-			   0644);
-	if (db == NULL) {
+	if (serverid_init(mem_ctx, false) == NULL) {
 		DEBUG(1, ("could not open serverid.tdb: %s\n",
 			  strerror(errno)));
 		return false;
 	}
+
 	return true;
 }
 
+bool serverid_init_readonly(TALLOC_CTX *mem_ctx)
+{
+	if (serverid_init(mem_ctx, true) == NULL) {
+		DEBUG(1, ("could not open serverid.tdb: %s\n",
+			  strerror(errno)));
+		return false;
+	}
+
+	return true;
+}
+
 static struct db_context *serverid_db(void)
 {
-	static struct db_context *db;
-
-	if (db != NULL) {
-		return db;
-	}
-	db = db_open(NULL, lock_path("serverid.tdb"), 0,
-		     TDB_DEFAULT|TDB_CLEAR_IF_FIRST|TDB_INCOMPATIBLE_HASH, O_RDWR|O_CREAT, 0644);
-	return db;
+	if (db_ptr != NULL) {
+		return db_ptr;
+	}
+
+	return serverid_init(NULL, false);
 }
 
Index: trunk/server/source3/lib/sessionid_tdb.c
===================================================================
--- trunk/server/source3/lib/sessionid_tdb.c	(revision 857)
+++ trunk/server/source3/lib/sessionid_tdb.c	(revision 862)
@@ -24,15 +24,16 @@
 #include "util_tdb.h"
 
+static struct db_context *session_db_ctx_ptr = NULL;
+
 static struct db_context *session_db_ctx(void)
 {
-	static struct db_context *session_db_ctx_ptr;
+	return session_db_ctx_ptr;
+}
 
-	if (session_db_ctx_ptr != NULL) {
-		return session_db_ctx_ptr;
-	}
-
+static struct db_context *session_db_ctx_init(bool readonly)
+{
 	session_db_ctx_ptr = db_open(NULL, lock_path("sessionid.tdb"), 0,
 				     TDB_CLEAR_IF_FIRST|TDB_DEFAULT|TDB_INCOMPATIBLE_HASH,
-				     O_RDWR | O_CREAT, 0644);
+				     readonly ? O_RDONLY : O_RDWR | O_CREAT, 0644);
 	return session_db_ctx_ptr;
 }
@@ -40,5 +41,15 @@
 bool sessionid_init(void)
 {
-	if (session_db_ctx() == NULL) {
+	if (session_db_ctx_init(false) == NULL) {
+		DEBUG(1,("session_init: failed to open sessionid tdb\n"));
+		return False;
+	}
+
+	return True;
+}
+
+bool sessionid_init_readonly(void)
+{
+	if (session_db_ctx_init(true) == NULL) {
 		DEBUG(1,("session_init: failed to open sessionid tdb\n"));
 		return False;
Index: trunk/server/source3/lib/system.c
===================================================================
--- trunk/server/source3/lib/system.c	(revision 857)
+++ trunk/server/source3/lib/system.c	(revision 862)
@@ -888,14 +888,12 @@
 
 /*******************************************************************
- An fdopendir wrapper that will deal with 64 bit filesizes.
- Ugly hack - we need dirfd for this to work correctly in the
- calling code.. JRA.
+ An fdopendir wrapper.
 ********************************************************************/
 
 SMB_STRUCT_DIR *sys_fdopendir(int fd)
 {
-#if defined(HAVE_EXPLICIT_LARGEFILE_SUPPORT) && defined(HAVE_FDOPENDIR64) && defined(HAVE_DIRFD)
+#if defined(HAVE_EXPLICIT_LARGEFILE_SUPPORT) && defined(HAVE_FDOPENDIR64)
 	return fdopendir64(fd);
-#elif defined(HAVE_FDOPENDIR) && defined(HAVE_DIRFD)
+#elif defined(HAVE_FDOPENDIR)
 	return fdopendir(fd);
 #else
@@ -1815,4 +1813,8 @@
 	/* Iterate through extattr(2) namespaces */
 	for(t = 0; t < (sizeof(extattr)/sizeof(extattr[0])); t++) {
+		if (t != EXTATTR_NAMESPACE_USER && geteuid() != 0) {
+			/* ignore all but user namespace when we are not root, see bug 10247 */
+			continue;
+		}
 		switch(type) {
 #if defined(HAVE_EXTATTR_LIST_FILE)
Index: trunk/server/source3/lib/util.c
===================================================================
--- trunk/server/source3/lib/util.c	(revision 857)
+++ trunk/server/source3/lib/util.c	(revision 862)
@@ -384,5 +384,5 @@
 void smb_setlen(char *buf,int len)
 {
-	_smb_setlen(buf,len);
+	_smb_setlen_large(buf,len);
 
 	SCVAL(buf,4,0xFF);
Index: trunk/server/source3/lib/util_file.c
===================================================================
--- trunk/server/source3/lib/util_file.c	(revision 857)
+++ trunk/server/source3/lib/util_file.c	(revision 862)
@@ -39,5 +39,5 @@
 	total = 0;
 
-	while ((n = read(fd, buf, sizeof(buf))) > 0) {
+	while ((n = sys_read(fd, buf, sizeof(buf))) > 0) {
 		p = talloc_realloc(NULL, p, char, total + n + 1);
 		if (!p) {
Index: trunk/server/source3/lib/util_tsock.c
===================================================================
--- trunk/server/source3/lib/util_tsock.c	(revision 857)
+++ trunk/server/source3/lib/util_tsock.c	(revision 862)
@@ -111,4 +111,9 @@
 	}
 
+	if (total + more < total) {
+		tevent_req_error(req, EMSGSIZE);
+		return;
+	}
+
 	tmp = talloc_realloc(state, state->buf, uint8_t, total+more);
 	if (tevent_req_nomem(tmp, req)) {
Index: trunk/server/source3/libads/kerberos.c
===================================================================
--- trunk/server/source3/libads/kerberos.c	(revision 857)
+++ trunk/server/source3/libads/kerberos.c	(revision 862)
@@ -851,6 +851,17 @@
 	char *realm_upper = NULL;
 	bool result = false;
+	char *aes_enctypes = NULL;
 
 	if (!lp_create_krb5_conf()) {
+		return false;
+	}
+
+	if (realm == NULL) {
+		DEBUG(0, ("No realm has been specified! Do you really want to "
+			  "join an Active Directory server?\n"));
+		return false;
+	}
+
+	if (domain == NULL || pss == NULL || kdc_name == NULL) {
 		return false;
 	}
@@ -888,12 +899,31 @@
 	}
 
+	aes_enctypes = talloc_strdup(fname, "");
+	if (aes_enctypes == NULL) {
+		goto done;
+	}
+
+#ifdef HAVE_ENCTYPE_AES256_CTS_HMAC_SHA1_96
+	aes_enctypes = talloc_asprintf_append(aes_enctypes, "%s", "aes256-cts-hmac-sha1-96 ");
+	if (aes_enctypes == NULL) {
+		goto done;
+	}
+#endif
+#ifdef HAVE_ENCTYPE_AES128_CTS_HMAC_SHA1_96
+	aes_enctypes = talloc_asprintf_append(aes_enctypes, "%s", "aes128-cts-hmac-sha1-96");
+	if (aes_enctypes == NULL) {
+		goto done;
+	}
+#endif
+
 	file_contents = talloc_asprintf(fname,
 					"[libdefaults]\n\tdefault_realm = %s\n"
-					"\tdefault_tgs_enctypes = RC4-HMAC DES-CBC-CRC DES-CBC-MD5\n"
-					"\tdefault_tkt_enctypes = RC4-HMAC DES-CBC-CRC DES-CBC-MD5\n"
-					"\tpreferred_enctypes = RC4-HMAC DES-CBC-CRC DES-CBC-MD5\n\n"
+					"\tdefault_tgs_enctypes = %s RC4-HMAC DES-CBC-CRC DES-CBC-MD5\n"
+					"\tdefault_tkt_enctypes = %s RC4-HMAC DES-CBC-CRC DES-CBC-MD5\n"
+					"\tpreferred_enctypes = %s RC4-HMAC DES-CBC-CRC DES-CBC-MD5\n\n"
 					"[realms]\n\t%s = {\n"
 					"\t%s\t}\n",
-					realm_upper, realm_upper, kdc_ip_string);
+					realm_upper, aes_enctypes, aes_enctypes, aes_enctypes,
+					realm_upper, kdc_ip_string);
 
 	if (!file_contents) {
Index: trunk/server/source3/libads/kerberos_keytab.c
===================================================================
--- trunk/server/source3/libads/kerberos_keytab.c	(revision 857)
+++ trunk/server/source3/libads/kerberos_keytab.c	(revision 862)
@@ -262,7 +262,13 @@
 	krb5_data password;
 	krb5_kvno kvno;
-        krb5_enctype enctypes[4] = {
+        krb5_enctype enctypes[6] = {
 		ENCTYPE_DES_CBC_CRC,
 		ENCTYPE_DES_CBC_MD5,
+#ifdef HAVE_ENCTYPE_AES128_CTS_HMAC_SHA1_96
+		ENCTYPE_AES128_CTS_HMAC_SHA1_96,
+#endif
+#ifdef HAVE_ENCTYPE_AES256_CTS_HMAC_SHA1_96
+		ENCTYPE_AES256_CTS_HMAC_SHA1_96,
+#endif
 		ENCTYPE_ARCFOUR_HMAC,
 		0
Index: trunk/server/source3/libads/kerberos_verify.c
===================================================================
--- trunk/server/source3/libads/kerberos_verify.c	(revision 857)
+++ trunk/server/source3/libads/kerberos_verify.c	(revision 862)
@@ -345,4 +345,10 @@
 	krb5_data passwords[2];
 	krb5_enctype enctypes[] = {
+#ifdef HAVE_ENCTYPE_AES256_CTS_HMAC_SHA1_96
+		ENCTYPE_AES256_CTS_HMAC_SHA1_96,
+#endif
+#ifdef HAVE_ENCTYPE_AES128_CTS_HMAC_SHA1_96
+		ENCTYPE_AES128_CTS_HMAC_SHA1_96,
+#endif
 		ENCTYPE_ARCFOUR_HMAC,
 		ENCTYPE_DES_CBC_CRC,
Index: trunk/server/source3/libads/ldap.c
===================================================================
--- trunk/server/source3/libads/ldap.c	(revision 857)
+++ trunk/server/source3/libads/ldap.c	(revision 862)
@@ -1921,6 +1921,5 @@
 		return ADS_ERROR(LDAP_NO_MEMORY);
 	}
-	strupper_m(psp1);
-	strlower_m(&psp1[strlen(spn)]);
+	strlower_m(&psp1[strlen(spn) + 1]);
 	servicePrincipalName[0] = psp1;
 
@@ -1935,6 +1934,5 @@
 		goto out;
 	}
-	strupper_m(psp2);
-	strlower_m(&psp2[strlen(spn)]);
+	strlower_m(&psp2[strlen(spn) + 1]);
 	servicePrincipalName[1] = psp2;
 
Index: trunk/server/source3/libnet/libnet_join.c
===================================================================
--- trunk/server/source3/libnet/libnet_join.c	(revision 857)
+++ trunk/server/source3/libnet/libnet_join.c	(revision 862)
@@ -851,4 +851,5 @@
 	union samr_UserInfo user_info;
 	struct dcerpc_binding_handle *b = NULL;
+	unsigned int old_timeout = 0;
 
 	struct samr_CryptPassword crypt_pwd;
@@ -997,4 +998,12 @@
 		goto done;
 	}
+	if (user_rids.count != 1) {
+		status = NT_STATUS_INVALID_NETWORK_RESPONSE;
+		goto done;
+	}
+	if (name_types.count != 1) {
+		status = NT_STATUS_INVALID_NETWORK_RESPONSE;
+		goto done;
+	}
 
 	if (name_types.ids[0] != SID_NAME_USER) {
@@ -1062,4 +1071,10 @@
 	/* Set password on machine account - first try level 26 */
 
+	/*
+	 * increase the timeout as password filter modules on the DC
+	 * might delay the operation for a significant amount of time
+	 */
+	old_timeout = rpccli_set_timeout(pipe_hnd, 600000);
+
 	init_samr_CryptPasswordEx(r->in.machine_password,
 				  &cli->user_session_key,
@@ -1092,4 +1107,6 @@
 						  &result);
 	}
+
+	old_timeout = rpccli_set_timeout(pipe_hnd, old_timeout);
 
 	if (!NT_STATUS_IS_OK(status)) {
@@ -1366,4 +1383,12 @@
 	if (!NT_STATUS_IS_OK(result)) {
 		status = result;
+		goto done;
+	}
+	if (user_rids.count != 1) {
+		status = NT_STATUS_INVALID_NETWORK_RESPONSE;
+		goto done;
+	}
+	if (name_types.count != 1) {
+		status = NT_STATUS_INVALID_NETWORK_RESPONSE;
 		goto done;
 	}
Index: trunk/server/source3/librpc/gen_ndr/dcerpc.h
===================================================================
--- trunk/server/source3/librpc/gen_ndr/dcerpc.h	(revision 857)
+++ trunk/server/source3/librpc/gen_ndr/dcerpc.h	(revision 862)
@@ -42,4 +42,5 @@
 #define DCERPC_FRAG_LEN_OFFSET	( 8 )
 #define DCERPC_AUTH_LEN_OFFSET	( 10 )
+#define DCERPC_CALL_ID_OFFSET	( 12 )
 #define DCERPC_DREP_LE	( 0x10 )
 struct dcerpc_ctx_list {
Index: trunk/server/source3/librpc/gen_ndr/messaging.h
===================================================================
--- trunk/server/source3/librpc/gen_ndr/messaging.h	(revision 857)
+++ trunk/server/source3/librpc/gen_ndr/messaging.h	(revision 862)
@@ -71,4 +71,6 @@
 	MSG_WINBIND_DUMP_DOMAIN_LIST=(int)(0x0409),
 	MSG_WINBIND_IP_DROPPED=(int)(0x040A),
+	MSG_WINBIND_DOMAIN_ONLINE=(int)(0x040B),
+	MSG_WINBIND_DOMAIN_OFFLINE=(int)(0x040C),
 	MSG_DUMP_EVENT_LIST=(int)(0x0500),
 	MSG_DBWRAP_TDB2_CHANGES=(int)(4001),
@@ -132,4 +134,6 @@
 #define MSG_WINBIND_DUMP_DOMAIN_LIST ( 0x0409 )
 #define MSG_WINBIND_IP_DROPPED ( 0x040A )
+#define MSG_WINBIND_DOMAIN_ONLINE ( 0x040B )
+#define MSG_WINBIND_DOMAIN_OFFLINE ( 0x040C )
 #define MSG_DUMP_EVENT_LIST ( 0x0500 )
 #define MSG_DBWRAP_TDB2_CHANGES ( 4001 )
Index: trunk/server/source3/librpc/gen_ndr/ndr_messaging.c
===================================================================
--- trunk/server/source3/librpc/gen_ndr/ndr_messaging.c	(revision 857)
+++ trunk/server/source3/librpc/gen_ndr/ndr_messaging.c	(revision 862)
@@ -79,4 +79,6 @@
 		case MSG_WINBIND_DUMP_DOMAIN_LIST: val = "MSG_WINBIND_DUMP_DOMAIN_LIST"; break;
 		case MSG_WINBIND_IP_DROPPED: val = "MSG_WINBIND_IP_DROPPED"; break;
+		case MSG_WINBIND_DOMAIN_ONLINE: val = "MSG_WINBIND_DOMAIN_ONLINE"; break;
+		case MSG_WINBIND_DOMAIN_OFFLINE: val = "MSG_WINBIND_DOMAIN_OFFLINE"; break;
 		case MSG_DUMP_EVENT_LIST: val = "MSG_DUMP_EVENT_LIST"; break;
 		case MSG_DBWRAP_TDB2_CHANGES: val = "MSG_DBWRAP_TDB2_CHANGES"; break;
Index: trunk/server/source3/librpc/gen_ndr/ndr_ntprinting.c
===================================================================
--- trunk/server/source3/librpc/gen_ndr/ndr_ntprinting.c	(revision 857)
+++ trunk/server/source3/librpc/gen_ndr/ndr_ntprinting.c	(revision 862)
@@ -80,8 +80,9 @@
 		if (ndr_flags & NDR_SCALARS) {
 			NDR_CHECK(ndr_push_align(ndr, 4));
+			/* [skip] 'r->string_flags' */
 			NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
 			{
 				uint32_t _flags_save_string = ndr->flags;
-				ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
+				ndr_set_flags(&ndr->flags, ndr_ntprinting_string_flags(r->string_flags));
 				NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name));
 				ndr->flags = _flags_save_string;
@@ -89,5 +90,5 @@
 			{
 				uint32_t _flags_save_string = ndr->flags;
-				ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
+				ndr_set_flags(&ndr->flags, ndr_ntprinting_string_flags(r->string_flags));
 				NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->environment));
 				ndr->flags = _flags_save_string;
@@ -95,5 +96,5 @@
 			{
 				uint32_t _flags_save_string = ndr->flags;
-				ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
+				ndr_set_flags(&ndr->flags, ndr_ntprinting_string_flags(r->string_flags));
 				NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driverpath));
 				ndr->flags = _flags_save_string;
@@ -101,5 +102,5 @@
 			{
 				uint32_t _flags_save_string = ndr->flags;
-				ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
+				ndr_set_flags(&ndr->flags, ndr_ntprinting_string_flags(r->string_flags));
 				NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->datafile));
 				ndr->flags = _flags_save_string;
@@ -107,5 +108,5 @@
 			{
 				uint32_t _flags_save_string = ndr->flags;
-				ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
+				ndr_set_flags(&ndr->flags, ndr_ntprinting_string_flags(r->string_flags));
 				NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->configfile));
 				ndr->flags = _flags_save_string;
@@ -113,5 +114,5 @@
 			{
 				uint32_t _flags_save_string = ndr->flags;
-				ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
+				ndr_set_flags(&ndr->flags, ndr_ntprinting_string_flags(r->string_flags));
 				NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->helpfile));
 				ndr->flags = _flags_save_string;
@@ -119,5 +120,5 @@
 			{
 				uint32_t _flags_save_string = ndr->flags;
-				ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
+				ndr_set_flags(&ndr->flags, ndr_ntprinting_string_flags(r->string_flags));
 				NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitorname));
 				ndr->flags = _flags_save_string;
@@ -125,5 +126,5 @@
 			{
 				uint32_t _flags_save_string = ndr->flags;
-				ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
+				ndr_set_flags(&ndr->flags, ndr_ntprinting_string_flags(r->string_flags));
 				NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->defaultdatatype));
 				ndr->flags = _flags_save_string;
@@ -131,5 +132,5 @@
 			{
 				uint32_t _flags_save_string_array = ndr->flags;
-				ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING);
+				ndr_set_flags(&ndr->flags, (ndr_ntprinting_string_flags(r->string_flags)&~LIBNDR_FLAG_STR_NULLTERM)|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING);
 				NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
 				ndr->flags = _flags_save_string_array;
@@ -151,8 +152,9 @@
 		if (ndr_flags & NDR_SCALARS) {
 			NDR_CHECK(ndr_pull_align(ndr, 4));
+			/* [skip] '&r->string_flags' */
 			NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
 			{
 				uint32_t _flags_save_string = ndr->flags;
-				ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
+				ndr_set_flags(&ndr->flags, ndr_ntprinting_string_flags(r->string_flags));
 				NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name));
 				ndr->flags = _flags_save_string;
@@ -160,5 +162,5 @@
 			{
 				uint32_t _flags_save_string = ndr->flags;
-				ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
+				ndr_set_flags(&ndr->flags, ndr_ntprinting_string_flags(r->string_flags));
 				NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->environment));
 				ndr->flags = _flags_save_string;
@@ -166,5 +168,5 @@
 			{
 				uint32_t _flags_save_string = ndr->flags;
-				ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
+				ndr_set_flags(&ndr->flags, ndr_ntprinting_string_flags(r->string_flags));
 				NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driverpath));
 				ndr->flags = _flags_save_string;
@@ -172,5 +174,5 @@
 			{
 				uint32_t _flags_save_string = ndr->flags;
-				ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
+				ndr_set_flags(&ndr->flags, ndr_ntprinting_string_flags(r->string_flags));
 				NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->datafile));
 				ndr->flags = _flags_save_string;
@@ -178,5 +180,5 @@
 			{
 				uint32_t _flags_save_string = ndr->flags;
-				ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
+				ndr_set_flags(&ndr->flags, ndr_ntprinting_string_flags(r->string_flags));
 				NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->configfile));
 				ndr->flags = _flags_save_string;
@@ -184,5 +186,5 @@
 			{
 				uint32_t _flags_save_string = ndr->flags;
-				ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
+				ndr_set_flags(&ndr->flags, ndr_ntprinting_string_flags(r->string_flags));
 				NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->helpfile));
 				ndr->flags = _flags_save_string;
@@ -190,5 +192,5 @@
 			{
 				uint32_t _flags_save_string = ndr->flags;
-				ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
+				ndr_set_flags(&ndr->flags, ndr_ntprinting_string_flags(r->string_flags));
 				NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitorname));
 				ndr->flags = _flags_save_string;
@@ -196,5 +198,5 @@
 			{
 				uint32_t _flags_save_string = ndr->flags;
-				ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
+				ndr_set_flags(&ndr->flags, ndr_ntprinting_string_flags(r->string_flags));
 				NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->defaultdatatype));
 				ndr->flags = _flags_save_string;
@@ -202,5 +204,5 @@
 			{
 				uint32_t _flags_save_string_array = ndr->flags;
-				ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING);
+				ndr_set_flags(&ndr->flags, (ndr_ntprinting_string_flags(r->string_flags)&~LIBNDR_FLAG_STR_NULLTERM)|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING);
 				NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
 				ndr->flags = _flags_save_string_array;
@@ -223,4 +225,5 @@
 		ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
 		ndr->depth++;
+		ndr_print_uint32(ndr, "string_flags", r->string_flags);
 		ndr_print_uint32(ndr, "version", r->version);
 		ndr_print_string(ndr, "name", r->name);
@@ -245,7 +248,8 @@
 		if (ndr_flags & NDR_SCALARS) {
 			NDR_CHECK(ndr_push_align(ndr, 5));
-			{
-				uint32_t _flags_save_string = ndr->flags;
-				ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
+			/* [skip] 'r->string_flags' */
+			{
+				uint32_t _flags_save_string = ndr->flags;
+				ndr_set_flags(&ndr->flags, ndr_ntprinting_string_flags(r->string_flags));
 				NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->devicename));
 				ndr->flags = _flags_save_string;
@@ -253,5 +257,5 @@
 			{
 				uint32_t _flags_save_string = ndr->flags;
-				ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
+				ndr_set_flags(&ndr->flags, ndr_ntprinting_string_flags(r->string_flags));
 				NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->formname));
 				ndr->flags = _flags_save_string;
@@ -311,7 +315,8 @@
 		if (ndr_flags & NDR_SCALARS) {
 			NDR_CHECK(ndr_pull_align(ndr, 5));
-			{
-				uint32_t _flags_save_string = ndr->flags;
-				ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
+			/* [skip] '&r->string_flags' */
+			{
+				uint32_t _flags_save_string = ndr->flags;
+				ndr_set_flags(&ndr->flags, ndr_ntprinting_string_flags(r->string_flags));
 				NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->devicename));
 				ndr->flags = _flags_save_string;
@@ -319,5 +324,5 @@
 			{
 				uint32_t _flags_save_string = ndr->flags;
-				ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
+				ndr_set_flags(&ndr->flags, ndr_ntprinting_string_flags(r->string_flags));
 				NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->formname));
 				ndr->flags = _flags_save_string;
@@ -384,4 +389,5 @@
 		ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
 		ndr->depth++;
+		ndr_print_uint32(ndr, "string_flags", r->string_flags);
 		ndr_print_string(ndr, "devicename", r->devicename);
 		ndr_print_string(ndr, "formname", r->formname);
@@ -436,8 +442,9 @@
 		if (ndr_flags & NDR_SCALARS) {
 			NDR_CHECK(ndr_push_align(ndr, 4));
+			/* [skip] 'r->string_flags' */
 			NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ptr));
 			{
 				uint32_t _flags_save_string = ndr->flags;
-				ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
+				ndr_set_flags(&ndr->flags, ndr_ntprinting_string_flags(r->string_flags));
 				NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name));
 				ndr->flags = _flags_save_string;
@@ -461,8 +468,9 @@
 		if (ndr_flags & NDR_SCALARS) {
 			NDR_CHECK(ndr_pull_align(ndr, 4));
+			/* [skip] '&r->string_flags' */
 			NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ptr));
 			{
 				uint32_t _flags_save_string = ndr->flags;
-				ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
+				ndr_set_flags(&ndr->flags, ndr_ntprinting_string_flags(r->string_flags));
 				NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name));
 				ndr->flags = _flags_save_string;
@@ -487,4 +495,5 @@
 		ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
 		ndr->depth++;
+		ndr_print_uint32(ndr, "string_flags", r->string_flags);
 		ndr_print_uint32(ndr, "ptr", r->ptr);
 		ndr_print_string(ndr, "name", r->name);
@@ -503,4 +512,5 @@
 		if (ndr_flags & NDR_SCALARS) {
 			NDR_CHECK(ndr_push_align(ndr, 4));
+			/* [skip] 'r->string_flags' */
 			NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->attributes));
 			NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
@@ -516,5 +526,5 @@
 			{
 				uint32_t _flags_save_string = ndr->flags;
-				ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
+				ndr_set_flags(&ndr->flags, ndr_ntprinting_string_flags(r->string_flags));
 				NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
 				ndr->flags = _flags_save_string;
@@ -522,5 +532,5 @@
 			{
 				uint32_t _flags_save_string = ndr->flags;
-				ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
+				ndr_set_flags(&ndr->flags, ndr_ntprinting_string_flags(r->string_flags));
 				NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
 				ndr->flags = _flags_save_string;
@@ -528,5 +538,5 @@
 			{
 				uint32_t _flags_save_string = ndr->flags;
-				ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
+				ndr_set_flags(&ndr->flags, ndr_ntprinting_string_flags(r->string_flags));
 				NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->sharename));
 				ndr->flags = _flags_save_string;
@@ -534,5 +544,5 @@
 			{
 				uint32_t _flags_save_string = ndr->flags;
-				ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
+				ndr_set_flags(&ndr->flags, ndr_ntprinting_string_flags(r->string_flags));
 				NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->portname));
 				ndr->flags = _flags_save_string;
@@ -540,5 +550,5 @@
 			{
 				uint32_t _flags_save_string = ndr->flags;
-				ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
+				ndr_set_flags(&ndr->flags, ndr_ntprinting_string_flags(r->string_flags));
 				NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->drivername));
 				ndr->flags = _flags_save_string;
@@ -546,5 +556,5 @@
 			{
 				uint32_t _flags_save_string = ndr->flags;
-				ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
+				ndr_set_flags(&ndr->flags, ndr_ntprinting_string_flags(r->string_flags));
 				NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->comment));
 				ndr->flags = _flags_save_string;
@@ -552,5 +562,5 @@
 			{
 				uint32_t _flags_save_string = ndr->flags;
-				ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
+				ndr_set_flags(&ndr->flags, ndr_ntprinting_string_flags(r->string_flags));
 				NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->location));
 				ndr->flags = _flags_save_string;
@@ -558,5 +568,5 @@
 			{
 				uint32_t _flags_save_string = ndr->flags;
-				ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
+				ndr_set_flags(&ndr->flags, ndr_ntprinting_string_flags(r->string_flags));
 				NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->sepfile));
 				ndr->flags = _flags_save_string;
@@ -564,5 +574,5 @@
 			{
 				uint32_t _flags_save_string = ndr->flags;
-				ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
+				ndr_set_flags(&ndr->flags, ndr_ntprinting_string_flags(r->string_flags));
 				NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printprocessor));
 				ndr->flags = _flags_save_string;
@@ -570,5 +580,5 @@
 			{
 				uint32_t _flags_save_string = ndr->flags;
-				ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
+				ndr_set_flags(&ndr->flags, ndr_ntprinting_string_flags(r->string_flags));
 				NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->datatype));
 				ndr->flags = _flags_save_string;
@@ -576,5 +586,5 @@
 			{
 				uint32_t _flags_save_string = ndr->flags;
-				ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
+				ndr_set_flags(&ndr->flags, ndr_ntprinting_string_flags(r->string_flags));
 				NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
 				ndr->flags = _flags_save_string;
@@ -596,4 +606,5 @@
 		if (ndr_flags & NDR_SCALARS) {
 			NDR_CHECK(ndr_pull_align(ndr, 4));
+			/* [skip] '&r->string_flags' */
 			NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->attributes));
 			NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
@@ -609,5 +620,5 @@
 			{
 				uint32_t _flags_save_string = ndr->flags;
-				ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
+				ndr_set_flags(&ndr->flags, ndr_ntprinting_string_flags(r->string_flags));
 				NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
 				ndr->flags = _flags_save_string;
@@ -615,5 +626,5 @@
 			{
 				uint32_t _flags_save_string = ndr->flags;
-				ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
+				ndr_set_flags(&ndr->flags, ndr_ntprinting_string_flags(r->string_flags));
 				NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
 				ndr->flags = _flags_save_string;
@@ -621,5 +632,5 @@
 			{
 				uint32_t _flags_save_string = ndr->flags;
-				ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
+				ndr_set_flags(&ndr->flags, ndr_ntprinting_string_flags(r->string_flags));
 				NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sharename));
 				ndr->flags = _flags_save_string;
@@ -627,5 +638,5 @@
 			{
 				uint32_t _flags_save_string = ndr->flags;
-				ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
+				ndr_set_flags(&ndr->flags, ndr_ntprinting_string_flags(r->string_flags));
 				NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->portname));
 				ndr->flags = _flags_save_string;
@@ -633,5 +644,5 @@
 			{
 				uint32_t _flags_save_string = ndr->flags;
-				ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
+				ndr_set_flags(&ndr->flags, ndr_ntprinting_string_flags(r->string_flags));
 				NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->drivername));
 				ndr->flags = _flags_save_string;
@@ -639,5 +650,5 @@
 			{
 				uint32_t _flags_save_string = ndr->flags;
-				ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
+				ndr_set_flags(&ndr->flags, ndr_ntprinting_string_flags(r->string_flags));
 				NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
 				ndr->flags = _flags_save_string;
@@ -645,5 +656,5 @@
 			{
 				uint32_t _flags_save_string = ndr->flags;
-				ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
+				ndr_set_flags(&ndr->flags, ndr_ntprinting_string_flags(r->string_flags));
 				NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->location));
 				ndr->flags = _flags_save_string;
@@ -651,5 +662,5 @@
 			{
 				uint32_t _flags_save_string = ndr->flags;
-				ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
+				ndr_set_flags(&ndr->flags, ndr_ntprinting_string_flags(r->string_flags));
 				NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sepfile));
 				ndr->flags = _flags_save_string;
@@ -657,5 +668,5 @@
 			{
 				uint32_t _flags_save_string = ndr->flags;
-				ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
+				ndr_set_flags(&ndr->flags, ndr_ntprinting_string_flags(r->string_flags));
 				NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printprocessor));
 				ndr->flags = _flags_save_string;
@@ -663,5 +674,5 @@
 			{
 				uint32_t _flags_save_string = ndr->flags;
-				ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
+				ndr_set_flags(&ndr->flags, ndr_ntprinting_string_flags(r->string_flags));
 				NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->datatype));
 				ndr->flags = _flags_save_string;
@@ -669,5 +680,5 @@
 			{
 				uint32_t _flags_save_string = ndr->flags;
-				ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
+				ndr_set_flags(&ndr->flags, ndr_ntprinting_string_flags(r->string_flags));
 				NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
 				ndr->flags = _flags_save_string;
@@ -690,4 +701,5 @@
 		ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
 		ndr->depth++;
+		ndr_print_uint32(ndr, "string_flags", r->string_flags);
 		ndr_print_uint32(ndr, "attributes", r->attributes);
 		ndr_print_uint32(ndr, "priority", r->priority);
Index: trunk/server/source3/librpc/gen_ndr/ndr_security.c
===================================================================
--- trunk/server/source3/librpc/gen_ndr/ndr_security.c	(revision 857)
+++ trunk/server/source3/librpc/gen_ndr/ndr_security.c	(revision 862)
@@ -1118,4 +1118,7 @@
 	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SECINFO_SACL", SECINFO_SACL, r);
 	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SECINFO_LABEL", SECINFO_LABEL, r);
+	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SECINFO_ATTRIBUTE", SECINFO_ATTRIBUTE, r);
+	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SECINFO_SCOPE", SECINFO_SCOPE, r);
+	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SECINFO_BACKUP", SECINFO_BACKUP, r);
 	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SECINFO_UNPROTECTED_SACL", SECINFO_UNPROTECTED_SACL, r);
 	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SECINFO_UNPROTECTED_DACL", SECINFO_UNPROTECTED_DACL, r);
Index: trunk/server/source3/librpc/gen_ndr/ndr_spoolss.c
===================================================================
--- trunk/server/source3/librpc/gen_ndr/ndr_spoolss.c	(revision 857)
+++ trunk/server/source3/librpc/gen_ndr/ndr_spoolss.c	(revision 862)
@@ -8800,4 +8800,5 @@
 		case SPOOLSS_DRIVER_VERSION_NT4: val = "SPOOLSS_DRIVER_VERSION_NT4"; break;
 		case SPOOLSS_DRIVER_VERSION_200X: val = "SPOOLSS_DRIVER_VERSION_200X"; break;
+		case SPOOLSS_DRIVER_VERSION_2012: val = "SPOOLSS_DRIVER_VERSION_2012"; break;
 	}
 	ndr_print_enum(ndr, name, "ENUM", val, r);
Index: trunk/server/source3/librpc/gen_ndr/ntprinting.h
===================================================================
--- trunk/server/source3/librpc/gen_ndr/ntprinting.h	(revision 857)
+++ trunk/server/source3/librpc/gen_ndr/ntprinting.h	(revision 862)
@@ -23,19 +23,21 @@
 
 struct ntprinting_driver {
+	uint32_t string_flags;/* [skip] */
 	uint32_t version;
-	const char * name;/* [flag(LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM)] */
-	const char * environment;/* [flag(LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM)] */
-	const char * driverpath;/* [flag(LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM)] */
-	const char * datafile;/* [flag(LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM)] */
-	const char * configfile;/* [flag(LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM)] */
-	const char * helpfile;/* [flag(LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM)] */
-	const char * monitorname;/* [flag(LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM)] */
-	const char * defaultdatatype;/* [flag(LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM)] */
-	const char ** dependent_files;/* [flag(LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING)] */
+	const char * name;/* [flag(ndr_ntprinting_string_flags(r->string_flags))] */
+	const char * environment;/* [flag(ndr_ntprinting_string_flags(r->string_flags))] */
+	const char * driverpath;/* [flag(ndr_ntprinting_string_flags(r->string_flags))] */
+	const char * datafile;/* [flag(ndr_ntprinting_string_flags(r->string_flags))] */
+	const char * configfile;/* [flag(ndr_ntprinting_string_flags(r->string_flags))] */
+	const char * helpfile;/* [flag(ndr_ntprinting_string_flags(r->string_flags))] */
+	const char * monitorname;/* [flag(ndr_ntprinting_string_flags(r->string_flags))] */
+	const char * defaultdatatype;/* [flag(ndr_ntprinting_string_flags(r->string_flags))] */
+	const char ** dependent_files;/* [flag((ndr_ntprinting_string_flags(r->string_flags)&~LIBNDR_FLAG_STR_NULLTERM)|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING)] */
 }/* [public,flag(LIBNDR_FLAG_NOALIGN)] */;
 
 struct ntprinting_devicemode {
-	const char * devicename;/* [flag(LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM)] */
-	const char * formname;/* [flag(LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM)] */
+	uint32_t string_flags;/* [skip] */
+	const char * devicename;/* [flag(ndr_ntprinting_string_flags(r->string_flags))] */
+	const char * formname;/* [flag(ndr_ntprinting_string_flags(r->string_flags))] */
 	uint16_t specversion;
 	uint16_t driverversion;
@@ -74,6 +76,7 @@
 
 struct ntprinting_printer_data {
+	uint32_t string_flags;/* [skip] */
 	uint32_t ptr;
-	const char * name;/* [flag(LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM)] */
+	const char * name;/* [flag(ndr_ntprinting_string_flags(r->string_flags))] */
 	uint32_t type;
 	DATA_BLOB data;
@@ -81,4 +84,5 @@
 
 struct ntprinting_printer_info {
+	uint32_t string_flags;/* [skip] */
 	uint32_t attributes;
 	uint32_t priority;
@@ -92,15 +96,15 @@
 	uint32_t c_setprinter;
 	uint32_t setuptime;
-	const char * servername;/* [flag(LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM)] */
-	const char * printername;/* [flag(LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM)] */
-	const char * sharename;/* [flag(LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM)] */
-	const char * portname;/* [flag(LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM)] */
-	const char * drivername;/* [flag(LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM)] */
-	const char * comment;/* [flag(LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM)] */
-	const char * location;/* [flag(LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM)] */
-	const char * sepfile;/* [flag(LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM)] */
-	const char * printprocessor;/* [flag(LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM)] */
-	const char * datatype;/* [flag(LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM)] */
-	const char * parameters;/* [flag(LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM)] */
+	const char * servername;/* [flag(ndr_ntprinting_string_flags(r->string_flags))] */
+	const char * printername;/* [flag(ndr_ntprinting_string_flags(r->string_flags))] */
+	const char * sharename;/* [flag(ndr_ntprinting_string_flags(r->string_flags))] */
+	const char * portname;/* [flag(ndr_ntprinting_string_flags(r->string_flags))] */
+	const char * drivername;/* [flag(ndr_ntprinting_string_flags(r->string_flags))] */
+	const char * comment;/* [flag(ndr_ntprinting_string_flags(r->string_flags))] */
+	const char * location;/* [flag(ndr_ntprinting_string_flags(r->string_flags))] */
+	const char * sepfile;/* [flag(ndr_ntprinting_string_flags(r->string_flags))] */
+	const char * printprocessor;/* [flag(ndr_ntprinting_string_flags(r->string_flags))] */
+	const char * datatype;/* [flag(ndr_ntprinting_string_flags(r->string_flags))] */
+	const char * parameters;/* [flag(ndr_ntprinting_string_flags(r->string_flags))] */
 }/* [public,flag(LIBNDR_FLAG_NOALIGN)] */;
 
Index: trunk/server/source3/librpc/gen_ndr/py_dcerpc.c
===================================================================
--- trunk/server/source3/librpc/gen_ndr/py_dcerpc.c	(revision 857)
+++ trunk/server/source3/librpc/gen_ndr/py_dcerpc.c	(revision 862)
@@ -6101,4 +6101,5 @@
 	PyModule_AddObject(m, "DCERPC_FAULT_NDR", PyInt_FromLong(0x000006f7));
 	PyModule_AddObject(m, "RTS_FLAG_IN_CHANNEL", PyInt_FromLong(RTS_FLAG_IN_CHANNEL));
+	PyModule_AddObject(m, "DCERPC_CALL_ID_OFFSET", PyInt_FromLong(12));
 	PyModule_AddObject(m, "DCERPC_NCA_S_UNUSED_1C00001E", PyInt_FromLong(DCERPC_NCA_S_UNUSED_1C00001E));
 	PyModule_AddObject(m, "DCERPC_PKT_ALTER_RESP", PyInt_FromLong(DCERPC_PKT_ALTER_RESP));
Index: trunk/server/source3/librpc/gen_ndr/py_dfs.c
===================================================================
--- trunk/server/source3/librpc/gen_ndr/py_dfs.c	(revision 857)
+++ trunk/server/source3/librpc/gen_ndr/py_dfs.c	(revision 862)
@@ -4825,6 +4825,6 @@
 	PyModule_AddObject(m, "DFS_INVALID_PRIORITY_CLASS", PyInt_FromLong(DFS_INVALID_PRIORITY_CLASS));
 	PyModule_AddObject(m, "DFS_VOLUME_STATE_AD_BLOB", PyInt_FromLong(DFS_VOLUME_STATE_AD_BLOB));
+	PyModule_AddObject(m, "DFS_PROPERTY_FLAG_TARGET_FAILBACK", PyInt_FromLong(DFS_PROPERTY_FLAG_TARGET_FAILBACK));
 	PyModule_AddObject(m, "DFS_STORAGE_STATES", PyInt_FromLong(0xf));
-	PyModule_AddObject(m, "DFS_PROPERTY_FLAG_TARGET_FAILBACK", PyInt_FromLong(DFS_PROPERTY_FLAG_TARGET_FAILBACK));
 	PyModule_AddObject(m, "DFS_VOLUME_STATE_ONLINE", PyInt_FromLong(DFS_VOLUME_STATE_ONLINE));
 	PyModule_AddObject(m, "DFS_GLOBAL_LOW_PRIORITY_CLASS", PyInt_FromLong(DFS_GLOBAL_LOW_PRIORITY_CLASS));
Index: trunk/server/source3/librpc/gen_ndr/py_dns.c
===================================================================
--- trunk/server/source3/librpc/gen_ndr/py_dns.c	(revision 857)
+++ trunk/server/source3/librpc/gen_ndr/py_dns.c	(revision 862)
@@ -1490,6 +1490,6 @@
 	PyModule_AddObject(m, "DNS_QTYPE_A", PyInt_FromLong(DNS_QTYPE_A));
 	PyModule_AddObject(m, "DNS_QTYPE_NSEC", PyInt_FromLong(DNS_QTYPE_NSEC));
+	PyModule_AddObject(m, "DNS_QTYPE_DS", PyInt_FromLong(DNS_QTYPE_DS));
 	PyModule_AddObject(m, "DNS_QTYPE_SRV", PyInt_FromLong(DNS_QTYPE_SRV));
-	PyModule_AddObject(m, "DNS_QTYPE_DS", PyInt_FromLong(DNS_QTYPE_DS));
 	PyModule_AddObject(m, "DNS_RCODE_REFUSED", PyInt_FromLong(DNS_RCODE_REFUSED));
 	PyModule_AddObject(m, "DNS_RCODE_NOTZONE", PyInt_FromLong(DNS_RCODE_NOTZONE));
Index: trunk/server/source3/librpc/gen_ndr/py_dnsp.c
===================================================================
--- trunk/server/source3/librpc/gen_ndr/py_dnsp.c	(revision 857)
+++ trunk/server/source3/librpc/gen_ndr/py_dnsp.c	(revision 862)
@@ -1139,6 +1139,6 @@
 	PyModule_AddObject(m, "DNS_TYPE_RRSIG", PyInt_FromLong(DNS_TYPE_RRSIG));
 	PyModule_AddObject(m, "DNS_TYPE_ALL", PyInt_FromLong(DNS_TYPE_ALL));
+	PyModule_AddObject(m, "DNS_TYPE_A", PyInt_FromLong(DNS_TYPE_A));
 	PyModule_AddObject(m, "DNS_TYPE_TXT", PyInt_FromLong(DNS_TYPE_TXT));
-	PyModule_AddObject(m, "DNS_TYPE_A", PyInt_FromLong(DNS_TYPE_A));
 	PyModule_AddObject(m, "DNS_TYPE_AFSDB", PyInt_FromLong(DNS_TYPE_AFSDB));
 	PyModule_AddObject(m, "DNS_RANK_NS_GLUE", PyInt_FromLong(DNS_RANK_NS_GLUE));
Index: trunk/server/source3/librpc/gen_ndr/py_frstrans.c
===================================================================
--- trunk/server/source3/librpc/gen_ndr/py_frstrans.c	(revision 857)
+++ trunk/server/source3/librpc/gen_ndr/py_frstrans.c	(revision 862)
@@ -2103,6 +2103,6 @@
 	PyModule_AddObject(m, "FRSTRANS_RDC_FILTER_GENERIC", PyInt_FromLong(FRSTRANS_RDC_FILTER_GENERIC));
 	PyModule_AddObject(m, "FRSTRANS_VERSION_REQUEST_SLOW_SYNC", PyInt_FromLong(FRSTRANS_VERSION_REQUEST_SLOW_SYNC));
+	PyModule_AddObject(m, "FRSTRANS_RDC_FILTER_MAX", PyInt_FromLong(FRSTRANS_RDC_FILTER_MAX));
 	PyModule_AddObject(m, "FRSTRANS_TRANSPORT_SUPPORTS_RDC_SIMILARITY", PyInt_FromLong(FRSTRANS_TRANSPORT_SUPPORTS_RDC_SIMILARITY));
-	PyModule_AddObject(m, "FRSTRANS_RDC_FILTER_MAX", PyInt_FromLong(FRSTRANS_RDC_FILTER_MAX));
 	Py_INCREF((PyObject *)(void *)&frstrans_VersionVector_Type);
 	PyModule_AddObject(m, "VersionVector", (PyObject *)(void *)&frstrans_VersionVector_Type);
Index: trunk/server/source3/librpc/gen_ndr/py_idmap.c
===================================================================
--- trunk/server/source3/librpc/gen_ndr/py_idmap.c	(revision 857)
+++ trunk/server/source3/librpc/gen_ndr/py_idmap.c	(revision 862)
@@ -325,9 +325,9 @@
 	PyModule_AddObject(m, "ID_MAPPED", PyInt_FromLong(ID_MAPPED));
 	PyModule_AddObject(m, "ID_TYPE_UID", PyInt_FromLong(ID_TYPE_UID));
+	PyModule_AddObject(m, "ID_EXPIRED", PyInt_FromLong(ID_EXPIRED));
+	PyModule_AddObject(m, "ID_UNMAPPED", PyInt_FromLong(ID_UNMAPPED));
 	PyModule_AddObject(m, "ID_TYPE_NOT_SPECIFIED", PyInt_FromLong(ID_TYPE_NOT_SPECIFIED));
-	PyModule_AddObject(m, "ID_EXPIRED", PyInt_FromLong(ID_EXPIRED));
+	PyModule_AddObject(m, "ID_TYPE_GID", PyInt_FromLong(ID_TYPE_GID));
 	PyModule_AddObject(m, "ID_UNKNOWN", PyInt_FromLong(ID_UNKNOWN));
-	PyModule_AddObject(m, "ID_TYPE_GID", PyInt_FromLong(ID_TYPE_GID));
-	PyModule_AddObject(m, "ID_UNMAPPED", PyInt_FromLong(ID_UNMAPPED));
 	Py_INCREF((PyObject *)(void *)&unixid_Type);
 	PyModule_AddObject(m, "unixid", (PyObject *)(void *)&unixid_Type);
Index: trunk/server/source3/librpc/gen_ndr/py_misc.c
===================================================================
--- trunk/server/source3/librpc/gen_ndr/py_misc.c	(revision 857)
+++ trunk/server/source3/librpc/gen_ndr/py_misc.c	(revision 862)
@@ -703,6 +703,6 @@
 	PyModule_AddObject(m, "SEC_CHAN_RODC", PyInt_FromLong(SEC_CHAN_RODC));
 	PyModule_AddObject(m, "REG_LINK", PyInt_FromLong(REG_LINK));
+	PyModule_AddObject(m, "SEC_CHAN_LOCAL", PyInt_FromLong(SEC_CHAN_LOCAL));
 	PyModule_AddObject(m, "REG_NONE", PyInt_FromLong(REG_NONE));
-	PyModule_AddObject(m, "SEC_CHAN_LOCAL", PyInt_FromLong(SEC_CHAN_LOCAL));
 	Py_INCREF((PyObject *)(void *)&GUID_Type);
 	PyModule_AddObject(m, "GUID", (PyObject *)(void *)&GUID_Type);
Index: trunk/server/source3/librpc/gen_ndr/py_ntprinting.c
===================================================================
--- trunk/server/source3/librpc/gen_ndr/py_ntprinting.c	(revision 857)
+++ trunk/server/source3/librpc/gen_ndr/py_ntprinting.c	(revision 862)
@@ -228,4 +228,20 @@
 
 
+static PyObject *py_ntprinting_driver_get_string_flags(PyObject *obj, void *closure)
+{
+	struct ntprinting_driver *object = (struct ntprinting_driver *)py_talloc_get_ptr(obj);
+	PyObject *py_string_flags;
+	py_string_flags = PyInt_FromLong(object->string_flags);
+	return py_string_flags;
+}
+
+static int py_ntprinting_driver_set_string_flags(PyObject *py_obj, PyObject *value, void *closure)
+{
+	struct ntprinting_driver *object = (struct ntprinting_driver *)py_talloc_get_ptr(py_obj);
+	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
+	object->string_flags = PyInt_AsLong(value);
+	return 0;
+}
+
 static PyObject *py_ntprinting_driver_get_version(PyObject *obj, void *closure)
 {
@@ -380,4 +396,5 @@
 
 static PyGetSetDef py_ntprinting_driver_getsetters[] = {
+	{ discard_const_p(char, "string_flags"), py_ntprinting_driver_get_string_flags, py_ntprinting_driver_set_string_flags },
 	{ discard_const_p(char, "version"), py_ntprinting_driver_get_version, py_ntprinting_driver_set_version },
 	{ discard_const_p(char, "name"), py_ntprinting_driver_get_name, py_ntprinting_driver_set_name },
@@ -461,4 +478,20 @@
 
 
+static PyObject *py_ntprinting_devicemode_get_string_flags(PyObject *obj, void *closure)
+{
+	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(obj);
+	PyObject *py_string_flags;
+	py_string_flags = PyInt_FromLong(object->string_flags);
+	return py_string_flags;
+}
+
+static int py_ntprinting_devicemode_set_string_flags(PyObject *py_obj, PyObject *value, void *closure)
+{
+	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(py_obj);
+	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
+	object->string_flags = PyInt_AsLong(value);
+	return 0;
+}
+
 static PyObject *py_ntprinting_devicemode_get_devicename(PyObject *obj, void *closure)
 {
@@ -1030,4 +1063,5 @@
 
 static PyGetSetDef py_ntprinting_devicemode_getsetters[] = {
+	{ discard_const_p(char, "string_flags"), py_ntprinting_devicemode_get_string_flags, py_ntprinting_devicemode_set_string_flags },
 	{ discard_const_p(char, "devicename"), py_ntprinting_devicemode_get_devicename, py_ntprinting_devicemode_set_devicename },
 	{ discard_const_p(char, "formname"), py_ntprinting_devicemode_get_formname, py_ntprinting_devicemode_set_formname },
@@ -1136,4 +1170,20 @@
 
 
+static PyObject *py_ntprinting_printer_data_get_string_flags(PyObject *obj, void *closure)
+{
+	struct ntprinting_printer_data *object = (struct ntprinting_printer_data *)py_talloc_get_ptr(obj);
+	PyObject *py_string_flags;
+	py_string_flags = PyInt_FromLong(object->string_flags);
+	return py_string_flags;
+}
+
+static int py_ntprinting_printer_data_set_string_flags(PyObject *py_obj, PyObject *value, void *closure)
+{
+	struct ntprinting_printer_data *object = (struct ntprinting_printer_data *)py_talloc_get_ptr(py_obj);
+	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
+	object->string_flags = PyInt_AsLong(value);
+	return 0;
+}
+
 static PyObject *py_ntprinting_printer_data_get_ptr(PyObject *obj, void *closure)
 {
@@ -1199,4 +1249,5 @@
 
 static PyGetSetDef py_ntprinting_printer_data_getsetters[] = {
+	{ discard_const_p(char, "string_flags"), py_ntprinting_printer_data_get_string_flags, py_ntprinting_printer_data_set_string_flags },
 	{ discard_const_p(char, "ptr"), py_ntprinting_printer_data_get_ptr, py_ntprinting_printer_data_set_ptr },
 	{ discard_const_p(char, "name"), py_ntprinting_printer_data_get_name, py_ntprinting_printer_data_set_name },
@@ -1274,4 +1325,20 @@
 
 
+static PyObject *py_ntprinting_printer_info_get_string_flags(PyObject *obj, void *closure)
+{
+	struct ntprinting_printer_info *object = (struct ntprinting_printer_info *)py_talloc_get_ptr(obj);
+	PyObject *py_string_flags;
+	py_string_flags = PyInt_FromLong(object->string_flags);
+	return py_string_flags;
+}
+
+static int py_ntprinting_printer_info_set_string_flags(PyObject *py_obj, PyObject *value, void *closure)
+{
+	struct ntprinting_printer_info *object = (struct ntprinting_printer_info *)py_talloc_get_ptr(py_obj);
+	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
+	object->string_flags = PyInt_AsLong(value);
+	return 0;
+}
+
 static PyObject *py_ntprinting_printer_info_get_attributes(PyObject *obj, void *closure)
 {
@@ -1616,4 +1683,5 @@
 
 static PyGetSetDef py_ntprinting_printer_info_getsetters[] = {
+	{ discard_const_p(char, "string_flags"), py_ntprinting_printer_info_get_string_flags, py_ntprinting_printer_info_set_string_flags },
 	{ discard_const_p(char, "attributes"), py_ntprinting_printer_info_get_attributes, py_ntprinting_printer_info_set_attributes },
 	{ discard_const_p(char, "priority"), py_ntprinting_printer_info_get_priority, py_ntprinting_printer_info_set_priority },
Index: trunk/server/source3/librpc/gen_ndr/py_rap.c
===================================================================
--- trunk/server/source3/librpc/gen_ndr/py_rap.c	(revision 857)
+++ trunk/server/source3/librpc/gen_ndr/py_rap.c	(revision 862)
@@ -7939,6 +7939,6 @@
 	PyModule_AddObject(m, "RAP_WUserPasswordSet3", PyInt_FromLong(275));
 	PyModule_AddObject(m, "RAP_WShareDel_REQ", PyString_FromString("zW"));
+	PyModule_AddObject(m, "RAP_WfileEnum", PyInt_FromLong(10));
 	PyModule_AddObject(m, "RAP_WMessageNameDel", PyInt_FromLong(32));
-	PyModule_AddObject(m, "RAP_WfileEnum", PyInt_FromLong(10));
 	PyModule_AddObject(m, "RAP_NetPathCompare", PyInt_FromLong(138));
 	PyModule_AddObject(m, "RAP_WErrorLogRead", PyInt_FromLong(135));
Index: trunk/server/source3/librpc/gen_ndr/py_security.c
===================================================================
--- trunk/server/source3/librpc/gen_ndr/py_security.c	(revision 857)
+++ trunk/server/source3/librpc/gen_ndr/py_security.c	(revision 862)
@@ -1992,4 +1992,5 @@
 	PyModule_AddObject(m, "GUID_DRS_VALIDATE_SPN", PyString_FromString("f3a64788-5306-11d1-a9c5-0000f80367c1"));
 	PyModule_AddObject(m, "SID_NT_DIALUP", PyString_FromString("S-1-5-1"));
+	PyModule_AddObject(m, "SECINFO_BACKUP", PyInt_FromLong(SECINFO_BACKUP));
 	PyModule_AddObject(m, "BUILTIN_RID_BACKUP_OPERATORS", PyInt_FromLong(551));
 	PyModule_AddObject(m, "SEC_RIGHTS_FILE_READ", PyInt_FromLong(SEC_STD_READ_CONTROL|SEC_STD_SYNCHRONIZE|SEC_FILE_READ_DATA|SEC_FILE_READ_ATTRIBUTE|SEC_FILE_READ_EA));
@@ -2060,4 +2061,5 @@
 	PyModule_AddObject(m, "SID_NT_INTERACTIVE", PyString_FromString("S-1-5-4"));
 	PyModule_AddObject(m, "SID_BUILTIN_POWER_USERS", PyString_FromString("S-1-5-32-547"));
+	PyModule_AddObject(m, "SECINFO_ATTRIBUTE", PyInt_FromLong(SECINFO_ATTRIBUTE));
 	PyModule_AddObject(m, "SEC_PRIV_INCREASE_BASE_PRIORITY", PyInt_FromLong(SEC_PRIV_INCREASE_BASE_PRIORITY));
 	PyModule_AddObject(m, "SEC_FILE_READ_EA", PyInt_FromLong(0x00000008));
@@ -2118,4 +2120,5 @@
 	PyModule_AddObject(m, "SEC_DESC_SERVER_SECURITY", PyInt_FromLong(SEC_DESC_SERVER_SECURITY));
 	PyModule_AddObject(m, "BUILTIN_RID_USERS", PyInt_FromLong(545));
+	PyModule_AddObject(m, "SECINFO_SCOPE", PyInt_FromLong(SECINFO_SCOPE));
 	PyModule_AddObject(m, "SID_NT_THIS_ORGANISATION", PyString_FromString("S-1-5-15"));
 	PyModule_AddObject(m, "SEC_ADS_DELETE_TREE", PyInt_FromLong(0x00000040));
Index: trunk/server/source3/librpc/gen_ndr/py_spoolss.c
===================================================================
--- trunk/server/source3/librpc/gen_ndr/py_spoolss.c	(revision 857)
+++ trunk/server/source3/librpc/gen_ndr/py_spoolss.c	(revision 862)
@@ -31602,4 +31602,5 @@
 	PyModule_AddObject(m, "PRINTER_STATUS_NO_TONER", PyInt_FromLong(PRINTER_STATUS_NO_TONER));
 	PyModule_AddObject(m, "PRINTER_STATUS_OFFLINE", PyInt_FromLong(PRINTER_STATUS_OFFLINE));
+	PyModule_AddObject(m, "SPOOLSS_DRIVER_VERSION_2012", PyInt_FromLong(SPOOLSS_DRIVER_VERSION_2012));
 	PyModule_AddObject(m, "SPOOLSS_DM_LAYOUT_BOOKLET", PyInt_FromLong(SPOOLSS_DM_LAYOUT_BOOKLET));
 	PyModule_AddObject(m, "DMTT_DOWNLOAD_OUTLINE", PyInt_FromLong(DMTT_DOWNLOAD_OUTLINE));
Index: trunk/server/source3/librpc/gen_ndr/security.h
===================================================================
--- trunk/server/source3/librpc/gen_ndr/security.h	(revision 857)
+++ trunk/server/source3/librpc/gen_ndr/security.h	(revision 862)
@@ -463,4 +463,7 @@
 #define SECINFO_SACL ( 0x00000008 )
 #define SECINFO_LABEL ( 0x00000010 )
+#define SECINFO_ATTRIBUTE ( 0x00000020 )
+#define SECINFO_SCOPE ( 0x00000040 )
+#define SECINFO_BACKUP ( 0x00010000 )
 #define SECINFO_UNPROTECTED_SACL ( 0x10000000 )
 #define SECINFO_UNPROTECTED_DACL ( 0x20000000 )
Index: trunk/server/source3/librpc/gen_ndr/spoolss.h
===================================================================
--- trunk/server/source3/librpc/gen_ndr/spoolss.h	(revision 857)
+++ trunk/server/source3/librpc/gen_ndr/spoolss.h	(revision 862)
@@ -1615,5 +1615,6 @@
 	SPOOLSS_DRIVER_VERSION_NT35=(int)(1),
 	SPOOLSS_DRIVER_VERSION_NT4=(int)(2),
-	SPOOLSS_DRIVER_VERSION_200X=(int)(3)
+	SPOOLSS_DRIVER_VERSION_200X=(int)(3),
+	SPOOLSS_DRIVER_VERSION_2012=(int)(4)
 }
 #else
@@ -1623,4 +1624,5 @@
 #define SPOOLSS_DRIVER_VERSION_NT4 ( 2 )
 #define SPOOLSS_DRIVER_VERSION_200X ( 3 )
+#define SPOOLSS_DRIVER_VERSION_2012 ( 4 )
 #endif
 ;
Index: trunk/server/source3/librpc/idl/messaging.idl
===================================================================
--- trunk/server/source3/librpc/idl/messaging.idl	(revision 857)
+++ trunk/server/source3/librpc/idl/messaging.idl	(revision 862)
@@ -92,4 +92,6 @@
 		MSG_WINBIND_DUMP_DOMAIN_LIST	= 0x0409,
 		MSG_WINBIND_IP_DROPPED		= 0x040A,
+		MSG_WINBIND_DOMAIN_ONLINE	= 0x040B,
+		MSG_WINBIND_DOMAIN_OFFLINE	= 0x040C,
 
 		/* event messages */
Index: trunk/server/source3/librpc/rpc/dcerpc_helpers.c
===================================================================
--- trunk/server/source3/librpc/rpc/dcerpc_helpers.c	(revision 857)
+++ trunk/server/source3/librpc/rpc/dcerpc_helpers.c	(revision 862)
@@ -114,4 +114,8 @@
 	}
 
+	if (CVAL(blob->data, DCERPC_PFC_OFFSET) & DCERPC_PFC_FLAG_OBJECT_UUID) {
+		ndr->flags |= LIBNDR_FLAG_OBJECT_PRESENT;
+	}
+
 	ndr_err = ndr_pull_ncacn_packet(ndr, NDR_SCALARS|NDR_BUFFERS, r);
 
@@ -124,4 +128,8 @@
 	if (DEBUGLEVEL >= 10) {
 		NDR_PRINT_DEBUG(ncacn_packet, r);
+	}
+
+	if (r->frag_length != blob->length) {
+		return NT_STATUS_RPC_PROTOCOL_ERROR;
 	}
 
Index: trunk/server/source3/libsmb/cliconnect.c
===================================================================
--- trunk/server/source3/libsmb/cliconnect.c	(revision 857)
+++ trunk/server/source3/libsmb/cliconnect.c	(revision 862)
@@ -95,5 +95,7 @@
 static void cli_set_session_key (struct cli_state *cli, const DATA_BLOB session_key) 
 {
-	cli->user_session_key = data_blob(session_key.data, session_key.length);
+	cli->user_session_key = data_blob(NULL, 16);
+	data_blob_clear(&cli->user_session_key);
+	memcpy(cli->user_session_key.data, session_key.data, MIN(session_key.length, 16));
 }
 
Index: trunk/server/source3/libsmb/clikrb5.c
===================================================================
--- trunk/server/source3/libsmb/clikrb5.c	(revision 857)
+++ trunk/server/source3/libsmb/clikrb5.c	(revision 862)
@@ -866,4 +866,10 @@
 	krb5_auth_context auth_context = NULL;
 	krb5_enctype enc_types[] = {
+#ifdef HAVE_ENCTYPE_AES256_CTS_HMAC_SHA1_96
+		ENCTYPE_AES256_CTS_HMAC_SHA1_96,
+#endif
+#ifdef HAVE_ENCTYPE_AES128_CTS_HMAC_SHA1_96
+		ENCTYPE_AES128_CTS_HMAC_SHA1_96,
+#endif
 		ENCTYPE_ARCFOUR_HMAC,
 		ENCTYPE_DES_CBC_MD5,
Index: trunk/server/source3/libsmb/dsgetdcname.c
===================================================================
--- trunk/server/source3/libsmb/dsgetdcname.c	(revision 857)
+++ trunk/server/source3/libsmb/dsgetdcname.c	(revision 862)
@@ -322,5 +322,4 @@
 					const struct GUID *domain_guid,
 					uint32_t flags,
-					const char *site_name,
 					struct netr_DsRGetDCNameInfo **info_p)
 {
@@ -395,5 +394,5 @@
 
 	status = dsgetdcname_cache_fetch(mem_ctx, domain_name, domain_guid,
-					 flags, site_name, info);
+					 flags, info);
 	if (!NT_STATUS_IS_OK(status)
 	    && !NT_STATUS_EQUAL(status, NT_STATUS_NOT_FOUND)) {
@@ -1084,4 +1083,76 @@
 
 /********************************************************************
+ Internal dsgetdcname.
+********************************************************************/
+
+static NTSTATUS dsgetdcname_internal(TALLOC_CTX *mem_ctx,
+		     struct messaging_context *msg_ctx,
+		     const char *domain_name,
+		     const struct GUID *domain_guid,
+		     const char *site_name,
+		     uint32_t flags,
+		     struct netr_DsRGetDCNameInfo **info)
+{
+	NTSTATUS status = NT_STATUS_DOMAIN_CONTROLLER_NOT_FOUND;
+	struct netr_DsRGetDCNameInfo *myinfo = NULL;
+	bool first = true;
+	struct netr_DsRGetDCNameInfo *first_info = NULL;
+
+	DEBUG(10,("dsgetdcname_internal: domain_name: %s, "
+		  "domain_guid: %s, site_name: %s, flags: 0x%08x\n",
+		  domain_name,
+		  domain_guid ? GUID_string(mem_ctx, domain_guid) : "(null)",
+		  site_name ? site_name : "(null)", flags));
+
+	*info = NULL;
+
+	if (!check_allowed_required_flags(flags, site_name)) {
+		DEBUG(0,("invalid flags specified\n"));
+		return NT_STATUS_INVALID_PARAMETER;
+	}
+
+	if (flags & DS_FORCE_REDISCOVERY) {
+		goto rediscover;
+	}
+
+	status = dsgetdcname_cached(mem_ctx, msg_ctx, domain_name, domain_guid,
+				    flags, site_name, &myinfo);
+	if (NT_STATUS_IS_OK(status)) {
+		goto done;
+	}
+
+	if (flags & DS_BACKGROUND_ONLY) {
+		goto done;
+	}
+
+ rediscover:
+	status = dsgetdcname_rediscover(mem_ctx, msg_ctx, domain_name,
+					domain_guid, flags, site_name,
+					&myinfo);
+
+ done:
+	if (!NT_STATUS_IS_OK(status)) {
+		if (!first) {
+			*info = first_info;
+			return NT_STATUS_OK;
+		}
+		return status;
+	}
+
+	if (!first) {
+		TALLOC_FREE(first_info);
+	} else if (!is_closest_site(myinfo)) {
+		first = false;
+		first_info = myinfo;
+		/* TODO: may use the next_closest_site here */
+		site_name = myinfo->client_site_name;
+		goto rediscover;
+	}
+
+	*info = myinfo;
+	return NT_STATUS_OK;
+}
+
+/********************************************************************
  dsgetdcname.
 
@@ -1097,70 +1168,44 @@
 		     struct netr_DsRGetDCNameInfo **info)
 {
-	NTSTATUS status = NT_STATUS_DOMAIN_CONTROLLER_NOT_FOUND;
-	struct netr_DsRGetDCNameInfo *myinfo = NULL;
-	char *query_site = NULL;
-	bool first = true;
-	struct netr_DsRGetDCNameInfo *first_info = NULL;
-
-	DEBUG(10,("dsgetdcname: domain_name: %s, "
-		  "domain_guid: %s, site_name: %s, flags: 0x%08x\n",
-		  domain_name,
-		  domain_guid ? GUID_string(mem_ctx, domain_guid) : "(null)",
-		  site_name, flags));
-
-	*info = NULL;
-
-	if (!check_allowed_required_flags(flags, site_name)) {
-		DEBUG(0,("invalid flags specified\n"));
-		return NT_STATUS_INVALID_PARAMETER;
-	}
+	NTSTATUS status;
+	const char *query_site = NULL;
+	char *ptr_to_free = NULL;
+	bool retry_query_with_null = false;
 
 	if ((site_name == NULL) || (site_name[0] == '\0')) {
-		query_site = sitename_fetch(domain_name);
+		ptr_to_free = sitename_fetch(domain_name);
+		if (ptr_to_free != NULL) {
+			retry_query_with_null = true;
+		}
+		query_site = ptr_to_free;
 	} else {
-		query_site = SMB_STRDUP(site_name);
-	}
-
-	if (flags & DS_FORCE_REDISCOVERY) {
-		goto rediscover;
-	}
-
-	status = dsgetdcname_cached(mem_ctx, msg_ctx, domain_name, domain_guid,
-				    flags, query_site, &myinfo);
-	if (NT_STATUS_IS_OK(status)) {
-		goto done;
-	}
-
-	if (flags & DS_BACKGROUND_ONLY) {
-		goto done;
-	}
-
- rediscover:
-	status = dsgetdcname_rediscover(mem_ctx, msg_ctx, domain_name,
-					domain_guid, flags, query_site,
-					&myinfo);
-
- done:
-	SAFE_FREE(query_site);
-
-	if (!NT_STATUS_IS_OK(status)) {
-		if (!first) {
-			*info = first_info;
-			return NT_STATUS_OK;
-		}
+		query_site = site_name;
+	}
+
+	status = dsgetdcname_internal(mem_ctx,
+				msg_ctx,
+				domain_name,
+				domain_guid,
+				query_site,
+				flags,
+				info);
+
+	SAFE_FREE(ptr_to_free);
+
+	if (!NT_STATUS_EQUAL(status, NT_STATUS_DOMAIN_CONTROLLER_NOT_FOUND)) {
 		return status;
 	}
 
-	if (!first) {
-		TALLOC_FREE(first_info);
-	} else if (!is_closest_site(myinfo)) {
-		first = false;
-		first_info = myinfo;
-		/* TODO: may use the next_closest_site here */
-		query_site = SMB_STRDUP(myinfo->client_site_name);
-		goto rediscover;
-	}
-
-	*info = myinfo;
-	return NT_STATUS_OK;
-}
+	/* Should we try again with site_name == NULL ? */
+	if (retry_query_with_null) {
+		status = dsgetdcname_internal(mem_ctx,
+					msg_ctx,
+					domain_name,
+					domain_guid,
+					NULL,
+					flags,
+					info);
+	}
+
+	return status;
+}
Index: trunk/server/source3/locking/locking.c
===================================================================
--- trunk/server/source3/locking/locking.c	(revision 857)
+++ trunk/server/source3/locking/locking.c	(revision 862)
@@ -1477,6 +1477,5 @@
 		}
 
-		return can_delete_directory(fsp->conn,
-					    fsp->fsp_name->base_name);
+		return can_delete_directory_fsp(fsp);
 	}
 
Index: trunk/server/source3/modules/vfs_acl_common.c
===================================================================
--- trunk/server/source3/modules/vfs_acl_common.c	(revision 857)
+++ trunk/server/source3/modules/vfs_acl_common.c	(revision 862)
@@ -647,5 +647,20 @@
 					fsp->access_mask,
 					&access_granted);
-		if (!NT_STATUS_IS_OK(status)) {
+		/*
+		 * Check if we need to override ACCESS_DENIED for DELETE_ACCESS.
+		 * Do this if we only failed open on DELETE_ACCESS, and
+		 * we have permission to delete from the parent directory.
+		 */
+		if (NT_STATUS_EQUAL(status, NT_STATUS_ACCESS_DENIED) &&
+			(fsp->access_mask & DELETE_ACCESS) &&
+			(access_granted == DELETE_ACCESS) &&
+			can_delete_file_in_directory(handle->conn, smb_fname)) {
+				DEBUG(10,("open_acl_xattr: "
+					"overrode "
+					"DELETE_ACCESS on "
+					"file %s\n",
+					smb_fname_str_dbg(smb_fname)));
+				status = NT_STATUS_OK;
+		} else if (!NT_STATUS_IS_OK(status)) {
 			DEBUG(10,("open_acl_xattr: %s open "
 				"for access 0x%x (0x%x) "
Index: trunk/server/source3/modules/vfs_aio_pthread.c
===================================================================
--- trunk/server/source3/modules/vfs_aio_pthread.c	(revision 857)
+++ trunk/server/source3/modules/vfs_aio_pthread.c	(revision 862)
@@ -75,4 +75,5 @@
 	int ret = 0;
 	int num_threads;
+	int fd;
 
 	if (pool) {
@@ -86,7 +87,12 @@
 		return false;
 	}
+
+	fd = pthreadpool_signal_fd(pool);
+
+	set_blocking(fd, false);
+
 	sock_event = tevent_add_fd(server_event_context(),
 				NULL,
-				pthreadpool_signal_fd(pool),
+				fd,
 				TEVENT_FD_READ,
 				aio_pthread_handle_completion,
@@ -291,23 +297,41 @@
 	}
 
-	ret = pthreadpool_finished_job(pool, &jobid);
-	if (ret) {
-		smb_panic("aio_pthread_handle_completion");
-		return;
-	}
-
-	pd = find_private_data_by_jobid(jobid);
-	if (pd == NULL) {
-		DEBUG(1, ("aio_pthread_handle_completion cannot find jobid %d\n",
-			  jobid));
-		return;
-	}
-
-	aio_ex = (struct aio_extra *)pd->aiocb->aio_sigevent.sigev_value.sival_ptr;
-	smbd_aio_complete_aio_ex(aio_ex);
-
-	DEBUG(10,("aio_pthread_handle_completion: jobid %d completed\n",
-		jobid ));
-	TALLOC_FREE(aio_ex);
+	while (true) {
+		ret = pthreadpool_finished_job(pool, &jobid);
+
+		if (ret == EINTR || ret == EAGAIN) {
+			return;
+		}
+#ifdef EWOULDBLOCK
+		if (ret == EWOULDBLOCK) {
+			return;
+		}
+#endif
+
+		if (ret == ECANCELED) {
+			return;
+		}
+
+		if (ret) {
+			smb_panic("aio_pthread_handle_completion");
+			return;
+		}
+
+		pd = find_private_data_by_jobid(jobid);
+		if (pd == NULL) {
+			DEBUG(1, ("aio_pthread_handle_completion cannot find "
+				  "jobid %d\n", jobid));
+			return;
+		}
+
+		aio_ex = (struct aio_extra *)
+			pd->aiocb->aio_sigevent.sigev_value.sival_ptr;
+
+		smbd_aio_complete_aio_ex(aio_ex);
+
+		DEBUG(10,("aio_pthread_handle_completion: jobid %d "
+			  "completed\n", jobid ));
+		TALLOC_FREE(aio_ex);
+	}
 }
 
Index: trunk/server/source3/modules/vfs_catia.c
===================================================================
--- trunk/server/source3/modules/vfs_catia.c	(revision 857)
+++ trunk/server/source3/modules/vfs_catia.c	(revision 862)
@@ -11,4 +11,5 @@
  * Copyright (C) Volker Lendecke, 2005
  * Copyright (C) Aravind Srinivasan, 2009
+ * Copyright (C) Guenter Kukkukk, 2013
  *
  * This program is free software; you can redistribute it and/or modify
@@ -29,4 +30,9 @@
 #include "includes.h"
 #include "smbd/smbd.h"
+
+static int vfs_catia_debug_level = DBGC_VFS;
+
+#undef DBGC_CLASS
+#define DBGC_CLASS vfs_catia_debug_level
 
 #define GLOBAL_SNUM     0xFFFFFFF
@@ -296,5 +302,5 @@
 	char *name = NULL;
 	char *mapped_name;
-	NTSTATUS ret;
+	NTSTATUS status, ret;
 
 	/*
@@ -309,10 +315,10 @@
 		return NT_STATUS_NO_MEMORY;
 	}
-	ret = catia_string_replace_allocate(handle->conn, name,
+	status = catia_string_replace_allocate(handle->conn, name,
 			&mapped_name, direction);
 
 	TALLOC_FREE(name);
-	if (!NT_STATUS_IS_OK(ret)) {
-		return ret;
+	if (!NT_STATUS_IS_OK(status)) {
+		return status;
 	}
 
@@ -322,4 +328,6 @@
 	if (NT_STATUS_EQUAL(ret, NT_STATUS_NONE_MAPPED)) {
 		*pmapped_name = talloc_move(mem_ctx, &mapped_name);
+		/* we need to return the former translation result here */
+		ret = status;
 	} else {
 		TALLOC_FREE(mapped_name);
@@ -1021,5 +1029,22 @@
 NTSTATUS vfs_catia_init(void)
 {
-        return smb_register_vfs(SMB_VFS_INTERFACE_VERSION, "catia",
+	NTSTATUS ret;
+
+        ret = smb_register_vfs(SMB_VFS_INTERFACE_VERSION, "catia",
 				&vfs_catia_fns);
-}
+	if (!NT_STATUS_IS_OK(ret))
+		return ret;
+
+	vfs_catia_debug_level = debug_add_class("catia");
+	if (vfs_catia_debug_level == -1) {
+		vfs_catia_debug_level = DBGC_VFS;
+		DEBUG(0, ("vfs_catia: Couldn't register custom debugging "
+			  "class!\n"));
+	} else {
+		DEBUG(10, ("vfs_catia: Debug class number of "
+			   "'catia': %d\n", vfs_catia_debug_level));
+	}
+
+	return ret;
+
+}
Index: trunk/server/source3/modules/vfs_dirsort.c
===================================================================
--- trunk/server/source3/modules/vfs_dirsort.c	(revision 857)
+++ trunk/server/source3/modules/vfs_dirsort.c	(revision 862)
@@ -31,38 +31,58 @@
 	long pos;
 	SMB_STRUCT_DIRENT *directory_list;
-	long number_of_entries;
-	time_t mtime;
+	unsigned int number_of_entries;
+	struct timespec mtime;
 	SMB_STRUCT_DIR *source_directory;
-	int fd;
+	files_struct *fsp; /* If open via FDOPENDIR. */
+	struct smb_filename *smb_fname; /* If open via OPENDIR */
 };
 
 static void free_dirsort_privates(void **datap) {
-	struct dirsort_privates *data = (struct dirsort_privates *) *datap;
-	SAFE_FREE(data->directory_list);
-	SAFE_FREE(data);
-	*datap = NULL;
-
-	return;
-}
-
-static bool open_and_sort_dir (vfs_handle_struct *handle)
-{
-	SMB_STRUCT_DIRENT *dp;
-	struct stat dir_stat;
-	long current_pos;
-	struct dirsort_privates *data = NULL;
-
-	SMB_VFS_HANDLE_GET_DATA(handle, data, struct dirsort_privates,
-				return false);
+	TALLOC_FREE(*datap);
+}
+
+static bool get_sorted_dir_mtime(vfs_handle_struct *handle,
+				struct dirsort_privates *data,
+				struct timespec *ret_mtime)
+{
+	int ret;
+	struct timespec mtime;
+
+	if (data->fsp) {
+		ret = fsp_stat(data->fsp);
+		mtime = data->fsp->fsp_name->st.st_ex_mtime;
+	} else {
+		ret = SMB_VFS_STAT(handle->conn, data->smb_fname);
+		mtime = data->smb_fname->st.st_ex_mtime;
+	}
+
+	if (ret == -1) {
+		return false;
+	}
+
+	*ret_mtime = mtime;
+
+	return true;
+}
+
+static bool open_and_sort_dir(vfs_handle_struct *handle,
+				struct dirsort_privates *data)
+{
+	unsigned int i = 0;
+	unsigned int total_count = 0;
 
 	data->number_of_entries = 0;
 
-	if (fstat(data->fd, &dir_stat) == 0) {
-		data->mtime = dir_stat.st_mtime;
+	if (get_sorted_dir_mtime(handle, data, &data->mtime) == false) {
+		return false;
 	}
 
 	while (SMB_VFS_NEXT_READDIR(handle, data->source_directory, NULL)
 	       != NULL) {
-		data->number_of_entries++;
+		total_count++;
+	}
+
+	if (total_count == 0) {
+		return false;
 	}
 
@@ -72,19 +92,24 @@
 
 	/* Set up an array and read the directory entries into it */
-	SAFE_FREE(data->directory_list); /* destroy previous cache if needed */
-	data->directory_list = (SMB_STRUCT_DIRENT *)SMB_MALLOC(
-		data->number_of_entries * sizeof(SMB_STRUCT_DIRENT));
+	TALLOC_FREE(data->directory_list); /* destroy previous cache if needed */
+	data->directory_list = talloc_zero_array(data,
+						 SMB_STRUCT_DIRENT,
+						 total_count);
 	if (!data->directory_list) {
 		return false;
 	}
-	current_pos = data->pos;
-	data->pos = 0;
-	while ((dp = SMB_VFS_NEXT_READDIR(handle, data->source_directory,
-					  NULL)) != NULL) {
-		data->directory_list[data->pos++] = *dp;
-	}
+	for (i = 0; i < total_count; i++) {
+		SMB_STRUCT_DIRENT *dp = SMB_VFS_NEXT_READDIR(handle,
+						data->source_directory,
+						NULL);
+		if (dp == NULL) {
+			break;
+		}
+		data->directory_list[i] = *dp;
+	}
+
+	data->number_of_entries = i;
 
 	/* Sort the directory entries by name */
-	data->pos = current_pos;
 	TYPESAFE_QSORT(data->directory_list, data->number_of_entries, compare_dirent);
 	return true;
@@ -95,16 +120,22 @@
 				       uint32 attr)
 {
+	NTSTATUS status;
 	struct dirsort_privates *data = NULL;
 
 	/* set up our private data about this directory */
-	data = (struct dirsort_privates *)SMB_MALLOC(
-		sizeof(struct dirsort_privates));
-
+	data = talloc_zero(handle->conn, struct dirsort_privates);
 	if (!data) {
 		return NULL;
 	}
 
-	data->directory_list = NULL;
-	data->pos = 0;
+	status = create_synthetic_smb_fname(data,
+					fname,
+					NULL,
+					NULL,
+					&data->smb_fname);
+	if (!NT_STATUS_IS_OK(status)) {
+		TALLOC_FREE(data);
+		return NULL;
+	}
 
 	/* Open the underlying directory and count the number of entries */
@@ -112,13 +143,17 @@
 						      attr);
 
-	data->fd = dirfd(data->source_directory);
+	if (data->source_directory == NULL) {
+		TALLOC_FREE(data);
+		return NULL;
+	}
+
+	if (!open_and_sort_dir(handle, data)) {
+		SMB_VFS_NEXT_CLOSEDIR(handle,data->source_directory);
+		TALLOC_FREE(data);
+		return NULL;
+	}
 
 	SMB_VFS_HANDLE_SET_DATA(handle, data, free_dirsort_privates,
 				struct dirsort_privates, return NULL);
-
-	if (!open_and_sort_dir(handle)) {
-		SMB_VFS_NEXT_CLOSEDIR(handle,data->source_directory);
-		return NULL;
-	}
 
 	return data->source_directory;
@@ -133,13 +168,10 @@
 
 	/* set up our private data about this directory */
-	data = (struct dirsort_privates *)SMB_MALLOC(
-		sizeof(struct dirsort_privates));
-
+	data = talloc_zero(handle->conn, struct dirsort_privates);
 	if (!data) {
 		return NULL;
 	}
 
-	data->directory_list = NULL;
-	data->pos = 0;
+	data->fsp = fsp;
 
 	/* Open the underlying directory and count the number of entries */
@@ -148,19 +180,18 @@
 
 	if (data->source_directory == NULL) {
-		SAFE_FREE(data);
-		return NULL;
-	}
-
-	data->fd = dirfd(data->source_directory);
+		TALLOC_FREE(data);
+		return NULL;
+	}
+
+	if (!open_and_sort_dir(handle, data)) {
+		SMB_VFS_NEXT_CLOSEDIR(handle,data->source_directory);
+		TALLOC_FREE(data);
+		/* fd is now closed. */
+		fsp->fh->fd = -1;
+		return NULL;
+	}
 
 	SMB_VFS_HANDLE_SET_DATA(handle, data, free_dirsort_privates,
 				struct dirsort_privates, return NULL);
-
-	if (!open_and_sort_dir(handle)) {
-		SMB_VFS_NEXT_CLOSEDIR(handle,data->source_directory);
-		/* fd is now closed. */
-		fsp->fh->fd = -1;
-		return NULL;
-	}
 
 	return data->source_directory;
@@ -172,19 +203,16 @@
 {
 	struct dirsort_privates *data = NULL;
-	time_t current_mtime;
-	struct stat dir_stat;
+	struct timespec current_mtime;
 
 	SMB_VFS_HANDLE_GET_DATA(handle, data, struct dirsort_privates,
 				return NULL);
 
-	if (fstat(data->fd, &dir_stat) == -1) {
-		return NULL;
-	}
-
-	current_mtime = dir_stat.st_mtime;
+	if (get_sorted_dir_mtime(handle, data, &current_mtime) == false) {
+		return NULL;
+	}
 
 	/* throw away cache and re-read the directory if we've changed */
-	if (current_mtime > data->mtime) {
-		open_and_sort_dir(handle);
+	if (timespec_compare(&current_mtime, &data->mtime) > 1) {
+		open_and_sort_dir(handle, data);
 	}
 
Index: trunk/server/source3/modules/vfs_fake_perms.c
===================================================================
--- trunk/server/source3/modules/vfs_fake_perms.c	(revision 857)
+++ trunk/server/source3/modules/vfs_fake_perms.c	(revision 862)
@@ -30,4 +30,6 @@
 #define DBGC_CLASS DBGC_VFS
 
+extern struct current_user current_user;
+
 static int fake_perms_stat(vfs_handle_struct *handle,
 			   struct smb_filename *smb_fname)
@@ -42,6 +44,16 @@
 			smb_fname->st.st_ex_mode = S_IRWXU;
 		}
-		smb_fname->st.st_ex_uid = handle->conn->session_info->utok.uid;
-		smb_fname->st.st_ex_gid = handle->conn->session_info->utok.gid;
+		if (handle->conn->session_info != NULL) {
+			smb_fname->st.st_ex_uid =
+				handle->conn->session_info->utok.uid;
+			smb_fname->st.st_ex_gid =
+				handle->conn->session_info->utok.gid;
+		} else {
+			/*
+			 * Sucks, but current_user is the best we can do here.
+			 */
+			smb_fname->st.st_ex_uid = current_user.ut.uid;
+			smb_fname->st.st_ex_gid = current_user.ut.gid;
+		}
 	}
 
@@ -60,6 +72,16 @@
 			sbuf->st_ex_mode = S_IRWXU;
 		}
-		sbuf->st_ex_uid = handle->conn->session_info->utok.uid;
-		sbuf->st_ex_gid = handle->conn->session_info->utok.gid;
+		if (handle->conn->session_info != NULL) {
+			sbuf->st_ex_uid =
+				handle->conn->session_info->utok.uid;
+			sbuf->st_ex_gid =
+				handle->conn->session_info->utok.gid;
+		} else {
+			/*
+			 * Sucks, but current_user is the best we can do here.
+			 */
+			sbuf->st_ex_uid = current_user.ut.uid;
+			sbuf->st_ex_gid = current_user.ut.gid;
+		}
 	}
 	return ret;
Index: trunk/server/source3/modules/vfs_gpfs.c
===================================================================
--- trunk/server/source3/modules/vfs_gpfs.c	(revision 857)
+++ trunk/server/source3/modules/vfs_gpfs.c	(revision 862)
@@ -98,5 +98,11 @@
 
 	if (config->leases) {
+		/*
+		 * Ensure the lease owner is root to allow
+		 * correct delivery of lease-break signals.
+		 */
+		become_root();
 		ret = set_gpfs_lease(fsp->fh->fd,leasetype);
+		unbecome_root();
 	}
 
Index: trunk/server/source3/passdb/pdb_smbpasswd.c
===================================================================
--- trunk/server/source3/passdb/pdb_smbpasswd.c	(revision 857)
+++ trunk/server/source3/passdb/pdb_smbpasswd.c	(revision 862)
@@ -743,5 +743,6 @@
 
 	char *status;
-	char linebuf[256];
+#define LINEBUF_SIZE 255
+	char linebuf[LINEBUF_SIZE + 1];
 	char readbuf[1024];
 	int c;
@@ -798,5 +799,5 @@
 		linebuf[0] = '\0';
 
-		status = fgets(linebuf, sizeof(linebuf), fp);
+		status = fgets(linebuf, LINEBUF_SIZE, fp);
 		if (status == NULL && ferror(fp)) {
 			pw_file_unlock(lockfd, &smbpasswd_state->pw_file_lock_depth);
@@ -1027,5 +1028,5 @@
 #endif
 
-	if(wr_len > sizeof(linebuf)) {
+	if(wr_len > LINEBUF_SIZE) {
 		DEBUG(0, ("mod_smbfilepwd_entry: line to write (%d) is too long.\n", wr_len+1));
 		pw_file_unlock(lockfd,&smbpasswd_state->pw_file_lock_depth);
Index: trunk/server/source3/printing/nt_printing_ads.c
===================================================================
--- trunk/server/source3/printing/nt_printing_ads.c	(revision 857)
+++ trunk/server/source3/printing/nt_printing_ads.c	(revision 862)
@@ -88,4 +88,158 @@
 }
 
+WERROR nt_printer_guid_get(TALLOC_CTX *mem_ctx,
+			   const struct auth_serversupplied_info *session_info,
+			   struct messaging_context *msg_ctx,
+			   const char *printer, struct GUID *guid)
+{
+	TALLOC_CTX *tmp_ctx;
+	enum winreg_Type type;
+	DATA_BLOB blob;
+	uint32_t len;
+	NTSTATUS status;
+	WERROR result;
+
+	tmp_ctx = talloc_new(mem_ctx);
+	if (tmp_ctx == NULL) {
+		DEBUG(0, ("out of memory?!\n"));
+		return WERR_NOMEM;
+	}
+
+	result = winreg_get_printer_dataex_internal(tmp_ctx, session_info,
+						    msg_ctx, printer,
+						    SPOOL_DSSPOOLER_KEY,
+						    "objectGUID",
+						    &type,
+						    &blob.data,
+						    &len);
+	if (!W_ERROR_IS_OK(result)) {
+		DEBUG(0, ("Failed to get GUID for printer %s\n", printer));
+		goto out_ctx_free;
+	}
+	blob.length = (size_t)len;
+
+	/* We used to store the guid as REG_BINARY, then swapped
+	   to REG_SZ for Vista compatibility so check for both */
+
+	switch (type) {
+	case REG_SZ: {
+		bool ok;
+		const char *guid_str;
+		ok = pull_reg_sz(tmp_ctx, &blob, &guid_str);
+		if (!ok) {
+			DEBUG(0, ("Failed to unmarshall GUID for printer %s\n",
+				  printer));
+			result = WERR_REG_CORRUPT;
+			goto out_ctx_free;
+		}
+		status = GUID_from_string(guid_str, guid);
+		if (!NT_STATUS_IS_OK(status)) {
+			DEBUG(0, ("bad GUID for printer %s\n", printer));
+			result = ntstatus_to_werror(status);
+			goto out_ctx_free;
+		}
+		break;
+	}
+	case REG_BINARY:
+		if (blob.length != sizeof(struct GUID)) {
+			DEBUG(0, ("bad GUID for printer %s\n", printer));
+			result = WERR_REG_CORRUPT;
+			goto out_ctx_free;
+		}
+		memcpy(guid, blob.data, sizeof(struct GUID));
+		break;
+	default:
+		DEBUG(0,("GUID value stored as invalid type (%d)\n", type));
+		result = WERR_REG_CORRUPT;
+		goto out_ctx_free;
+		break;
+	}
+	result = WERR_OK;
+
+out_ctx_free:
+	talloc_free(tmp_ctx);
+	return result;
+}
+
+static WERROR nt_printer_info_to_mods(TALLOC_CTX *ctx,
+				      struct spoolss_PrinterInfo2 *info2,
+				      ADS_MODLIST *mods)
+{
+	char *info_str;
+
+	ads_mod_str(ctx, mods, SPOOL_REG_PRINTERNAME, info2->sharename);
+	ads_mod_str(ctx, mods, SPOOL_REG_SHORTSERVERNAME, global_myname());
+	ads_mod_str(ctx, mods, SPOOL_REG_SERVERNAME, get_mydnsfullname());
+
+	info_str = talloc_asprintf(ctx, "\\\\%s\\%s",
+				   get_mydnsfullname(), info2->sharename);
+	if (info_str == NULL) {
+		return WERR_NOMEM;
+	}
+	ads_mod_str(ctx, mods, SPOOL_REG_UNCNAME, info_str);
+
+	info_str = talloc_asprintf(ctx, "%d", 4);
+	if (info_str == NULL) {
+		return WERR_NOMEM;
+	}
+	ads_mod_str(ctx, mods, SPOOL_REG_VERSIONNUMBER, info_str);
+
+	/* empty strings in the mods list result in an attrubute error */
+	if (strlen(info2->drivername) != 0)
+		ads_mod_str(ctx, mods, SPOOL_REG_DRIVERNAME, info2->drivername);
+	if (strlen(info2->location) != 0)
+		ads_mod_str(ctx, mods, SPOOL_REG_LOCATION, info2->location);
+	if (strlen(info2->comment) != 0)
+		ads_mod_str(ctx, mods, SPOOL_REG_DESCRIPTION, info2->comment);
+	if (strlen(info2->portname) != 0)
+		ads_mod_str(ctx, mods, SPOOL_REG_PORTNAME, info2->portname);
+	if (strlen(info2->sepfile) != 0)
+		ads_mod_str(ctx, mods, SPOOL_REG_PRINTSEPARATORFILE, info2->sepfile);
+
+	info_str = talloc_asprintf(ctx, "%u", info2->starttime);
+	if (info_str == NULL) {
+		return WERR_NOMEM;
+	}
+	ads_mod_str(ctx, mods, SPOOL_REG_PRINTSTARTTIME, info_str);
+
+	info_str = talloc_asprintf(ctx, "%u", info2->untiltime);
+	if (info_str == NULL) {
+		return WERR_NOMEM;
+	}
+	ads_mod_str(ctx, mods, SPOOL_REG_PRINTENDTIME, info_str);
+
+	info_str = talloc_asprintf(ctx, "%u", info2->priority);
+	if (info_str == NULL) {
+		return WERR_NOMEM;
+	}
+	ads_mod_str(ctx, mods, SPOOL_REG_PRIORITY, info_str);
+
+	if (info2->attributes & PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS) {
+		ads_mod_str(ctx, mods, SPOOL_REG_PRINTKEEPPRINTEDJOBS, "TRUE");
+	} else {
+		ads_mod_str(ctx, mods, SPOOL_REG_PRINTKEEPPRINTEDJOBS, "FALSE");
+	}
+
+	switch (info2->attributes & 0x3) {
+	case 0:
+		ads_mod_str(ctx, mods, SPOOL_REG_PRINTSPOOLING,
+			    SPOOL_REGVAL_PRINTWHILESPOOLING);
+		break;
+	case 1:
+		ads_mod_str(ctx, mods, SPOOL_REG_PRINTSPOOLING,
+			    SPOOL_REGVAL_PRINTAFTERSPOOLED);
+		break;
+	case 2:
+		ads_mod_str(ctx, mods, SPOOL_REG_PRINTSPOOLING,
+			    SPOOL_REGVAL_PRINTDIRECT);
+		break;
+	default:
+		DEBUG(3, ("unsupported printer attributes %x\n",
+			  info2->attributes));
+	}
+
+	return WERR_OK;
+}
+
 static WERROR nt_printer_publish_ads(struct messaging_context *msg_ctx,
 				     ADS_STRUCT *ads,
@@ -113,5 +267,11 @@
 
 	/* figure out where to publish */
-	ads_find_machine_acct(ads, &res, global_myname());
+	ads_rc = ads_find_machine_acct(ads, &res, global_myname());
+	if (!ADS_ERR_OK(ads_rc)) {
+		DEBUG(0, ("failed to find machine account for %s\n",
+			  global_myname()));
+		TALLOC_FREE(ctx);
+		return WERR_NOT_FOUND;
+	}
 
 	/* We use ldap_get_dn here as we need the answer
@@ -119,9 +279,9 @@
 
 	srv_dn_utf8 = ldap_get_dn((LDAP *)ads->ldap.ld, (LDAPMessage *)res);
+	ads_msgfree(ads, res);
 	if (!srv_dn_utf8) {
 		TALLOC_FREE(ctx);
 		return WERR_SERVER_UNAVAILABLE;
 	}
-	ads_msgfree(ads, res);
 	srv_cn_utf8 = ldap_explode_dn(srv_dn_utf8, 1);
 	if (!srv_cn_utf8) {
@@ -168,10 +328,13 @@
 
 	if (mods == NULL) {
-		SAFE_FREE(prt_dn);
-		TALLOC_FREE(ctx);
-		return WERR_NOMEM;
-	}
-
-	ads_mod_str(ctx, &mods, SPOOL_REG_PRINTERNAME, printer);
+		TALLOC_FREE(ctx);
+		return WERR_NOMEM;
+	}
+
+	win_rc = nt_printer_info_to_mods(ctx, pinfo2, &mods);
+	if (!W_ERROR_IS_OK(win_rc)) {
+		TALLOC_FREE(ctx);
+		return win_rc;
+	}
 
 	/* publish it */
@@ -267,5 +430,5 @@
 		break;
 	case DSPRINT_UNPUBLISH:
-		pinfo2->attributes ^= PRINTER_ATTRIBUTE_PUBLISHED;
+		pinfo2->attributes &= (~PRINTER_ATTRIBUTE_PUBLISHED);
 		break;
 	default:
@@ -391,13 +554,10 @@
 			  const struct auth_serversupplied_info *session_info,
 			  struct messaging_context *msg_ctx,
-			  const char *servername, char *printer, struct GUID *guid,
+			  const char *servername,
+			  const char *printer,
 			  struct spoolss_PrinterInfo2 **info2)
 {
 	struct spoolss_PrinterInfo2 *pinfo2 = NULL;
-	enum winreg_Type type;
-	uint8_t *data;
-	uint32_t data_size;
 	WERROR result;
-	NTSTATUS status;
 	struct dcerpc_binding_handle *b;
 
@@ -421,45 +581,4 @@
 	}
 
-	if (!guid) {
-		goto done;
-	}
-
-	/* fetching printer guids really ought to be a separate function. */
-
-	result = winreg_get_printer_dataex(mem_ctx, b,
-					   printer,
-					   SPOOL_DSSPOOLER_KEY, "objectGUID",
-					   &type, &data, &data_size);
-	if (!W_ERROR_IS_OK(result)) {
-		TALLOC_FREE(pinfo2);
-		return false;
-	}
-
-	/* We used to store the guid as REG_BINARY, then swapped
-	   to REG_SZ for Vista compatibility so check for both */
-
-	switch (type) {
-	case REG_SZ:
-		status = GUID_from_string((char *)data, guid);
-		if (!NT_STATUS_IS_OK(status)) {
-			TALLOC_FREE(pinfo2);
-			return false;
-		}
-		break;
-
-	case REG_BINARY:
-		if (data_size != sizeof(struct GUID)) {
-			TALLOC_FREE(pinfo2);
-			return false;
-		}
-		memcpy(guid, data, sizeof(struct GUID));
-		break;
-	default:
-		DEBUG(0,("is_printer_published: GUID value stored as "
-			 "invaluid type (%d)\n", type));
-		break;
-	}
-
-done:
 	if (info2) {
 		*info2 = talloc_move(mem_ctx, &pinfo2);
@@ -469,4 +588,12 @@
 }
 #else
+WERROR nt_printer_guid_get(TALLOC_CTX *mem_ctx,
+			   const struct auth_serversupplied_info *session_info,
+			   struct messaging_context *msg_ctx,
+			   const char *printer, struct GUID *guid)
+{
+	return WERR_NOT_SUPPORTED;
+}
+
 WERROR nt_printer_publish(TALLOC_CTX *mem_ctx,
 			  const struct auth_serversupplied_info *session_info,
@@ -486,5 +613,6 @@
 			  const struct auth_serversupplied_info *session_info,
 			  struct messaging_context *msg_ctx,
-			  const char *servername, char *printer, struct GUID *guid,
+			  const char *servername,
+			  const char *printer,
 			  struct spoolss_PrinterInfo2 **info2)
 {
Index: trunk/server/source3/printing/nt_printing_migrate.c
===================================================================
--- trunk/server/source3/printing/nt_printing_migrate.c	(revision 857)
+++ trunk/server/source3/printing/nt_printing_migrate.c	(revision 862)
@@ -104,5 +104,6 @@
 				     const char *key_name,
 				     unsigned char *data,
-				     size_t length)
+				     size_t length,
+				     bool do_string_conversion)
 {
 	struct dcerpc_binding_handle *b = winreg_pipe->binding_handle;
@@ -122,4 +123,8 @@
 	ZERO_STRUCT(r);
 
+	if (do_string_conversion) {
+		r.string_flags = LIBNDR_FLAG_STR_ASCII;
+	}
+
 	ndr_err = ndr_pull_struct_blob(&blob, mem_ctx, &r,
 		   (ndr_pull_flags_fn_t)ndr_pull_ntprinting_driver);
@@ -178,5 +183,6 @@
 				      const char *key_name,
 				      unsigned char *data,
-				      size_t length)
+				      size_t length,
+				      bool do_string_conversion)
 {
 	struct dcerpc_binding_handle *b = winreg_pipe->binding_handle;
@@ -200,4 +206,8 @@
 
 	ZERO_STRUCT(r);
+
+	if (do_string_conversion) {
+		r.info.string_flags = LIBNDR_FLAG_STR_ASCII;
+	}
 
 	ndr_err = ndr_pull_struct_blob(&blob, mem_ctx, &r,
Index: trunk/server/source3/printing/nt_printing_migrate.h
===================================================================
--- trunk/server/source3/printing/nt_printing_migrate.h	(revision 857)
+++ trunk/server/source3/printing/nt_printing_migrate.h	(revision 862)
@@ -31,10 +31,12 @@
 				     const char *key_name,
 				     unsigned char *data,
-				     size_t length);
+				     size_t length,
+				     bool do_string_conversion);
 NTSTATUS printing_tdb_migrate_printer(TALLOC_CTX *mem_ctx,
 				      struct rpc_pipe_client *winreg_pipe,
 				      const char *key_name,
 				      unsigned char *data,
-				      size_t length);
+				      size_t length,
+				      bool do_string_conversion);
 NTSTATUS printing_tdb_migrate_secdesc(TALLOC_CTX *mem_ctx,
 				      struct rpc_pipe_client *winreg_pipe,
Index: trunk/server/source3/printing/nt_printing_migrate_internal.c
===================================================================
--- trunk/server/source3/printing/nt_printing_migrate_internal.c	(revision 857)
+++ trunk/server/source3/printing/nt_printing_migrate_internal.c	(revision 862)
@@ -115,5 +115,6 @@
 						(const char *) kbuf.dptr + strlen(DRIVERS_PREFIX),
 						dbuf.dptr,
-						dbuf.dsize);
+						dbuf.dsize,
+						false);
 			SAFE_FREE(dbuf.dptr);
 			if (!NT_STATUS_IS_OK(status)) {
@@ -131,5 +132,6 @@
 						 printer_name,
 						 dbuf.dptr,
-						 dbuf.dsize);
+						 dbuf.dsize,
+						 false);
 			SAFE_FREE(dbuf.dptr);
 			if (!NT_STATUS_IS_OK(status)) {
Index: trunk/server/source3/printing/printing.c
===================================================================
--- trunk/server/source3/printing/printing.c	(revision 857)
+++ trunk/server/source3/printing/printing.c	(revision 862)
@@ -1661,4 +1661,22 @@
 }
 
+/****************************************************************************
+ Notify smbds of new printcap data
+**************************************************************************/
+static void reload_pcap_change_notify(struct tevent_context *ev,
+				      struct messaging_context *msg_ctx)
+{
+	/*
+	 * Reload the printers first in the background process so that
+	 * newly added printers get default values created in the registry.
+	 *
+	 * This will block the process for some time (~1 sec per printer), but
+	 * it doesn't block smbd's servering clients.
+	 */
+	reload_printers_full(ev, msg_ctx);
+
+	message_send_all(msg_ctx, MSG_PRINTER_PCAP, NULL, 0, NULL);
+}
+
 static bool printer_housekeeping_fn(const struct timeval *now,
 				    void *private_data)
@@ -1683,4 +1701,41 @@
 }
 
+static void printing_sig_term_handler(struct tevent_context *ev,
+				      struct tevent_signal *se,
+				      int signum,
+				      int count,
+				      void *siginfo,
+				      void *private_data)
+{
+	exit_server_cleanly("termination signal");
+}
+
+static void printing_sig_hup_handler(struct tevent_context *ev,
+				  struct tevent_signal *se,
+				  int signum,
+				  int count,
+				  void *siginfo,
+				  void *private_data)
+{
+	struct messaging_context *msg_ctx = talloc_get_type_abort(
+		private_data, struct messaging_context);
+
+	DEBUG(1,("Reloading printers after SIGHUP\n"));
+	pcap_cache_reload(ev, msg_ctx,
+			  &reload_pcap_change_notify);
+}
+
+static void printing_conf_updated(struct messaging_context *msg,
+				  void *private_data,
+				  uint32_t msg_type,
+				  struct server_id server_id,
+				  DATA_BLOB *data)
+{
+	DEBUG(5,("Reloading printers after conf change\n"));
+	pcap_cache_reload(messaging_event_context(msg), msg,
+			  &reload_pcap_change_notify);
+}
+
+
 static pid_t background_lpq_updater_pid = -1;
 
@@ -1718,4 +1773,5 @@
 		int ret;
 		NTSTATUS status;
+		struct tevent_signal *se;
 
 		/* Child. */
@@ -1732,6 +1788,16 @@
 		}
 
-		smbd_setup_sig_term_handler();
-		smbd_setup_sig_hup_handler(ev, msg_ctx);
+		se = tevent_add_signal(ev, ev, SIGTERM, 0,
+				       printing_sig_term_handler,
+				       NULL);
+		if (se == NULL) {
+			smb_panic("failed to setup SIGTERM handler");
+		}
+		se = tevent_add_signal(ev, ev, SIGHUP, 0,
+				       printing_sig_hup_handler,
+				       msg_ctx);
+		if (se == NULL) {
+			smb_panic("failed to setup SIGHUP handler");
+		}
 
 		if (!serverid_register(procid_self(),
@@ -1747,4 +1813,6 @@
 		messaging_register(msg_ctx, NULL, MSG_PRINTER_UPDATE,
 				   print_queue_receive);
+		messaging_register(msg_ctx, NULL, MSG_SMB_CONF_UPDATED,
+				   printing_conf_updated);
 
 		fde = tevent_add_fd(ev, ev, pause_pipe[1], TEVENT_FD_READ,
@@ -1755,4 +1823,9 @@
 			smb_panic("tevent_add_fd() failed for pause_pipe");
 		}
+
+		/* reload on startup to ensure parent smbd is refreshed */
+		pcap_cache_reload(server_event_context(),
+				  smbd_messaging_context(),
+				  &reload_pcap_change_notify);
 
 		if (!(event_add_idle(ev, NULL,
Index: trunk/server/source3/printing/spoolssd.c
===================================================================
--- trunk/server/source3/printing/spoolssd.c	(revision 857)
+++ trunk/server/source3/printing/spoolssd.c	(revision 862)
@@ -72,6 +72,19 @@
 	DEBUG(10, ("Got message saying smb.conf was updated. Reloading.\n"));
 	change_to_root_user();
+	spoolss_reopen_logs();
+}
+
+static void spoolss_pcap_updated(struct messaging_context *msg,
+				 void *private_data,
+				 uint32_t msg_type,
+				 struct server_id server_id,
+				 DATA_BLOB *data)
+{
+	struct tevent_context *ev_ctx = talloc_get_type_abort(private_data,
+							     struct tevent_context);
+
+	DEBUG(10, ("Got message saying pcap was updated. Reloading.\n"));
+	change_to_root_user();
 	reload_printers(ev_ctx, msg);
-	spoolss_reopen_logs();
 }
 
@@ -112,5 +125,4 @@
 	change_to_root_user();
 	DEBUG(1,("Reloading printers after SIGHUP\n"));
-	reload_printers(ev, msg_ctx);
 	spoolss_reopen_logs();
 }
@@ -199,4 +211,6 @@
 	messaging_register(msg_ctx, ev_ctx,
 			   MSG_SMB_CONF_UPDATED, smb_conf_updated);
+	messaging_register(msg_ctx, ev_ctx,
+			   MSG_PRINTER_PCAP, spoolss_pcap_updated);
 
 	/*
Index: trunk/server/source3/rpc_client/cli_lsarpc.c
===================================================================
--- trunk/server/source3/rpc_client/cli_lsarpc.c	(revision 857)
+++ trunk/server/source3/rpc_client/cli_lsarpc.c	(revision 862)
@@ -280,9 +280,24 @@
 	for (i = 0; i < num_sids; i++) {
 		const char *name, *dom_name;
-		uint32_t dom_idx = lsa_names.names[i].sid_index;
+		uint32_t dom_idx;
+
+		if (i >= lsa_names.count) {
+			*presult = NT_STATUS_INVALID_NETWORK_RESPONSE;
+			return status;
+		}
+
+		dom_idx = lsa_names.names[i].sid_index;
 
 		/* Translate optimised name through domain index array */
 
 		if (dom_idx != 0xffffffff) {
+			if (ref_domains == NULL) {
+				*presult = NT_STATUS_INVALID_NETWORK_RESPONSE;
+				return status;
+			}
+			if (dom_idx >= ref_domains->count) {
+				*presult = NT_STATUS_INVALID_NETWORK_RESPONSE;
+				return status;
+			}
 
 			dom_name = ref_domains->domains[dom_idx].name.string;
@@ -331,14 +346,14 @@
 #define LOOKUP_SIDS_HUNK_SIZE 1000
 
-static NTSTATUS dcerpc_lsa_lookup_sids_generic(struct dcerpc_binding_handle *h,
-					       TALLOC_CTX *mem_ctx,
-					       struct policy_handle *pol,
-					       int num_sids,
-					       const struct dom_sid *sids,
-					       char ***pdomains,
-					       char ***pnames,
-					       enum lsa_SidType **ptypes,
-					       bool use_lookupsids3,
-					       NTSTATUS *presult)
+NTSTATUS dcerpc_lsa_lookup_sids_generic(struct dcerpc_binding_handle *h,
+					TALLOC_CTX *mem_ctx,
+					struct policy_handle *pol,
+					int num_sids,
+					const struct dom_sid *sids,
+					char ***pdomains,
+					char ***pnames,
+					enum lsa_SidType **ptypes,
+					bool use_lookupsids3,
+					NTSTATUS *presult)
 {
 	NTSTATUS status = NT_STATUS_OK;
@@ -540,46 +555,17 @@
 }
 
-NTSTATUS rpccli_lsa_lookup_sids3(struct rpc_pipe_client *cli,
-				 TALLOC_CTX *mem_ctx,
-				 struct policy_handle *pol,
-				 int num_sids,
-				 const struct dom_sid *sids,
-				 char ***pdomains,
-				 char ***pnames,
-				 enum lsa_SidType **ptypes)
-{
-	NTSTATUS status;
-	NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
-
-	status = dcerpc_lsa_lookup_sids_generic(cli->binding_handle,
-						mem_ctx,
-						pol,
-						num_sids,
-						sids,
-						pdomains,
-						pnames,
-						ptypes,
-						true,
-						&result);
-	if (!NT_STATUS_IS_OK(status)) {
-		return status;
-	}
-
-	return result;
-}
-
 /** Lookup a list of names */
 
-static NTSTATUS dcerpc_lsa_lookup_names_generic(struct dcerpc_binding_handle *h,
-						TALLOC_CTX *mem_ctx,
-						struct policy_handle *pol,
-						uint32_t num_names,
-						const char **names,
-						const char ***dom_names,
-						enum lsa_LookupNamesLevel level,
-						struct dom_sid **sids,
-						enum lsa_SidType **types,
-						bool use_lookupnames4,
-						NTSTATUS *presult)
+NTSTATUS dcerpc_lsa_lookup_names_generic(struct dcerpc_binding_handle *h,
+					 TALLOC_CTX *mem_ctx,
+					 struct policy_handle *pol,
+					 uint32_t num_names,
+					 const char **names,
+					 const char ***dom_names,
+					 enum lsa_LookupNamesLevel level,
+					 struct dom_sid **sids,
+					 enum lsa_SidType **types,
+					 bool use_lookupnames4,
+					 NTSTATUS *presult)
 {
 	NTSTATUS status;
@@ -677,7 +663,17 @@
 
 		if (use_lookupnames4) {
+			if (i >= sid_array3.count) {
+				*presult = NT_STATUS_INVALID_NETWORK_RESPONSE;
+				goto done;
+			}
+
 			dom_idx		= sid_array3.sids[i].sid_index;
 			(*types)[i]	= sid_array3.sids[i].sid_type;
 		} else {
+			if (i >= sid_array.count) {
+				*presult = NT_STATUS_INVALID_NETWORK_RESPONSE;
+				goto done;
+			}
+
 			dom_idx		= sid_array.sids[i].sid_index;
 			(*types)[i]	= sid_array.sids[i].sid_type;
@@ -691,4 +687,12 @@
 			(*types)[i] = SID_NAME_UNKNOWN;
 			continue;
+		}
+		if (domains == NULL) {
+			*presult = NT_STATUS_INVALID_NETWORK_RESPONSE;
+			goto done;
+		}
+		if (dom_idx >= domains->count) {
+			*presult = NT_STATUS_INVALID_NETWORK_RESPONSE;
+			goto done;
 		}
 
@@ -791,32 +795,2 @@
 					       result);
 }
-
-NTSTATUS rpccli_lsa_lookup_names4(struct rpc_pipe_client *cli,
-				  TALLOC_CTX *mem_ctx,
-				  struct policy_handle *pol,
-				  int num_names,
-				  const char **names,
-				  const char ***dom_names,
-				  int level,
-				  struct dom_sid **sids,
-				  enum lsa_SidType **types)
-{
-	NTSTATUS status;
-	NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
-
-	status = dcerpc_lsa_lookup_names4(cli->binding_handle,
-					  mem_ctx,
-					  pol,
-					  num_names,
-					  names,
-					  dom_names,
-					  level,
-					  sids,
-					  types,
-					  &result);
-	if (!NT_STATUS_IS_OK(status)) {
-		return status;
-	}
-
-	return result;
-}
Index: trunk/server/source3/rpc_client/cli_lsarpc.h
===================================================================
--- trunk/server/source3/rpc_client/cli_lsarpc.h	(revision 857)
+++ trunk/server/source3/rpc_client/cli_lsarpc.h	(revision 862)
@@ -126,5 +126,14 @@
 				char ***pnames,
 				enum lsa_SidType **ptypes);
-
+NTSTATUS dcerpc_lsa_lookup_sids_generic(struct dcerpc_binding_handle *h,
+					TALLOC_CTX *mem_ctx,
+					struct policy_handle *pol,
+					int num_sids,
+					const struct dom_sid *sids,
+					char ***pdomains,
+					char ***pnames,
+					enum lsa_SidType **ptypes,
+					bool use_lookupsids3,
+					NTSTATUS *presult);
 /**
  * @brief Look up the names that correspond to an array of sids.
@@ -159,13 +168,4 @@
 				 enum lsa_SidType **ptypes,
 				 NTSTATUS *result);
-NTSTATUS rpccli_lsa_lookup_sids3(struct rpc_pipe_client *cli,
-				 TALLOC_CTX *mem_ctx,
-				 struct policy_handle *pol,
-				 int num_sids,
-				 const struct dom_sid *sids,
-				 char ***pdomains,
-				 char ***pnames,
-				 enum lsa_SidType **ptypes);
-
 NTSTATUS dcerpc_lsa_lookup_names(struct dcerpc_binding_handle *h,
 				 TALLOC_CTX *mem_ctx,
@@ -197,12 +197,15 @@
 				  enum lsa_SidType **types,
 				  NTSTATUS *result);
-NTSTATUS rpccli_lsa_lookup_names4(struct rpc_pipe_client *cli,
-				  TALLOC_CTX *mem_ctx,
-				  struct policy_handle *pol, int num_names,
-				  const char **names,
-				  const char ***dom_names,
-				  int level,
-				  struct dom_sid **sids,
-				  enum lsa_SidType **types);
+NTSTATUS dcerpc_lsa_lookup_names_generic(struct dcerpc_binding_handle *h,
+					 TALLOC_CTX *mem_ctx,
+					 struct policy_handle *pol,
+					 uint32_t num_names,
+					 const char **names,
+					 const char ***dom_names,
+					 enum lsa_LookupNamesLevel level,
+					 struct dom_sid **sids,
+					 enum lsa_SidType **types,
+					 bool use_lookupnames4,
+					 NTSTATUS *presult);
 
 bool fetch_domain_sid( char *domain, char *remote_machine, struct dom_sid *psid);
Index: trunk/server/source3/rpc_client/cli_netlogon.c
===================================================================
--- trunk/server/source3/rpc_client/cli_netlogon.c	(revision 857)
+++ trunk/server/source3/rpc_client/cli_netlogon.c	(revision 862)
@@ -626,8 +626,11 @@
 
 		struct netr_CryptPassword new_password;
+		uint32_t old_timeout;
 
 		init_netr_CryptPassword(new_trust_pwd_cleartext,
 					cli->dc->session_key,
 					&new_password);
+
+		old_timeout = dcerpc_binding_handle_set_timeout(b, 600000);
 
 		status = dcerpc_netr_ServerPasswordSet2(b, mem_ctx,
@@ -640,4 +643,7 @@
 							&new_password,
 							&result);
+
+		dcerpc_binding_handle_set_timeout(b, old_timeout);
+
 		if (!NT_STATUS_IS_OK(status)) {
 			DEBUG(0,("dcerpc_netr_ServerPasswordSet2 failed: %s\n",
@@ -648,6 +654,10 @@
 
 		struct samr_Password new_password;
+		uint32_t old_timeout;
+
 		memcpy(new_password.hash, new_trust_passwd_hash, sizeof(new_password.hash));
 		netlogon_creds_des_encrypt(cli->dc, &new_password);
+
+		old_timeout = dcerpc_binding_handle_set_timeout(b, 600000);
 
 		status = dcerpc_netr_ServerPasswordSet(b, mem_ctx,
@@ -660,4 +670,7 @@
 						       &new_password,
 						       &result);
+
+		dcerpc_binding_handle_set_timeout(b, old_timeout);
+
 		if (!NT_STATUS_IS_OK(status)) {
 			DEBUG(0,("dcerpc_netr_ServerPasswordSet failed: %s\n",
Index: trunk/server/source3/rpc_client/cli_pipe.c
===================================================================
--- trunk/server/source3/rpc_client/cli_pipe.c	(revision 857)
+++ trunk/server/source3/rpc_client/cli_pipe.c	(revision 862)
@@ -236,4 +236,5 @@
 	struct rpc_pipe_client *cli;
 	uint16_t frag_len;
+	uint32_t call_id;
 	DATA_BLOB *pdu;
 };
@@ -245,4 +246,5 @@
 						 struct event_context *ev,
 						 struct rpc_pipe_client *cli,
+						 uint32_t call_id,
 						 DATA_BLOB *pdu)
 {
@@ -260,4 +262,5 @@
 	state->cli = cli;
 	state->frag_len = RPC_HEADER_LEN;
+	state->call_id = call_id;
 	state->pdu = pdu;
 
@@ -282,4 +285,13 @@
 
 	state->frag_len = dcerpc_get_frag_length(pdu);
+	if (state->frag_len < RPC_HEADER_LEN) {
+		tevent_req_nterror(req, NT_STATUS_RPC_PROTOCOL_ERROR);
+		return tevent_req_post(req, ev);
+	}
+
+	if (state->call_id != dcerpc_get_call_id(pdu)) {
+		tevent_req_nterror(req, NT_STATUS_RPC_PROTOCOL_ERROR);
+		return tevent_req_post(req, ev);
+	}
 
 	/*
@@ -330,4 +342,13 @@
 
 	state->frag_len = dcerpc_get_frag_length(state->pdu);
+	if (state->frag_len < RPC_HEADER_LEN) {
+		tevent_req_nterror(req, NT_STATUS_RPC_PROTOCOL_ERROR);
+		return;
+	}
+
+	if (state->call_id != dcerpc_get_call_id(state->pdu)) {
+		tevent_req_nterror(req, NT_STATUS_RPC_PROTOCOL_ERROR);
+		return;
+	}
 
 	if (!data_blob_realloc(NULL, state->pdu, state->frag_len)) {
@@ -691,4 +712,5 @@
 	struct rpc_pipe_client *cli;
 	uint8_t expected_pkt_type;
+	uint32_t call_id;
 
 	DATA_BLOB incoming_frag;
@@ -709,5 +731,6 @@
 					    struct rpc_pipe_client *cli,
 					    DATA_BLOB *data, /* Outgoing PDU */
-					    uint8_t expected_pkt_type)
+					    uint8_t expected_pkt_type,
+					    uint32_t call_id)
 {
 	struct tevent_req *req, *subreq;
@@ -723,4 +746,5 @@
 	state->cli = cli;
 	state->expected_pkt_type = expected_pkt_type;
+	state->call_id = call_id;
 	state->incoming_frag = data_blob_null;
 	state->reply_pdu = data_blob_null;
@@ -822,4 +846,5 @@
 	/* Ensure we have enough data for a pdu. */
 	subreq = get_complete_frag_send(state, state->ev, state->cli,
+					state->call_id,
 					&state->incoming_frag);
 	if (tevent_req_nomem(subreq, req)) {
@@ -941,4 +966,5 @@
 
 	subreq = get_complete_frag_send(state, state->ev, state->cli,
+					state->call_id,
 					&state->incoming_frag);
 	if (tevent_req_nomem(subreq, req)) {
@@ -1293,5 +1319,6 @@
 		subreq = rpc_api_pipe_send(state, ev, state->cli,
 					   &state->rpc_out,
-					   DCERPC_PKT_RESPONSE);
+					   DCERPC_PKT_RESPONSE,
+					   state->call_id);
 		if (subreq == NULL) {
 			goto fail;
@@ -1429,5 +1456,6 @@
 		subreq = rpc_api_pipe_send(state, state->ev, state->cli,
 					   &state->rpc_out,
-					   DCERPC_PKT_RESPONSE);
+					   DCERPC_PKT_RESPONSE,
+					   state->call_id);
 		if (tevent_req_nomem(subreq, req)) {
 			return;
@@ -1668,5 +1696,5 @@
 
 	subreq = rpc_api_pipe_send(state, ev, cli, &state->rpc_out,
-				   DCERPC_PKT_BIND_ACK);
+				   DCERPC_PKT_BIND_ACK, state->rpc_call_id);
 	if (subreq == NULL) {
 		goto fail;
@@ -1866,5 +1894,6 @@
 
 	subreq = rpc_api_pipe_send(state, state->ev, state->cli,
-				   &state->rpc_out, DCERPC_PKT_ALTER_RESP);
+				   &state->rpc_out, DCERPC_PKT_ALTER_RESP,
+				   state->rpc_call_id);
 	if (subreq == NULL) {
 		return NT_STATUS_NO_MEMORY;
@@ -1898,5 +1927,6 @@
 
 	subreq = rpc_api_pipe_send(state, state->ev, state->cli,
-				   &state->rpc_out, DCERPC_PKT_AUTH3);
+				   &state->rpc_out, DCERPC_PKT_AUTH3,
+				   state->rpc_call_id);
 	if (subreq == NULL) {
 		return NT_STATUS_NO_MEMORY;
@@ -2451,5 +2481,5 @@
 	result->max_recv_frag = RPC_MAX_PDU_FRAG_LEN;
 
-	if (!resolve_name(host, &addr, 0, false)) {
+	if (!resolve_name(host, &addr, NBT_NAME_SERVER, false)) {
 		status = NT_STATUS_NOT_FOUND;
 		goto fail;
Index: trunk/server/source3/rpc_server/netlogon/srv_netlog_nt.c
===================================================================
--- trunk/server/source3/rpc_server/netlogon/srv_netlog_nt.c	(revision 857)
+++ trunk/server/source3/rpc_server/netlogon/srv_netlog_nt.c	(revision 862)
@@ -587,5 +587,5 @@
 		goto out;
 	}
-	if (rids.count != types.count) {
+	if (types.count != 1) {
 		status = NT_STATUS_INVALID_PARAMETER;
 		goto out;
Index: trunk/server/source3/rpc_server/samr/srv_samr_chgpasswd.c
===================================================================
--- trunk/server/source3/rpc_server/samr/srv_samr_chgpasswd.c	(revision 857)
+++ trunk/server/source3/rpc_server/samr/srv_samr_chgpasswd.c	(revision 862)
@@ -74,6 +74,11 @@
 
 #if defined(HAVE_GRANTPT)
+#if defined(HAVE_POSIX_OPENPT)
+	master = posix_openpt(O_RDWR|O_NOCTTY);
+#else
 	/* Try to open /dev/ptmx. If that fails, fall through to old method. */
-	if ((master = sys_open("/dev/ptmx", O_RDWR, 0)) >= 0) {
+	master = sys_open("/dev/ptmx", O_RDWR, 0);
+#endif
+	if (master >= 0) {
 		grantpt(master);
 		unlockpt(master);
@@ -1102,4 +1107,6 @@
 	NTSTATUS nt_status;
 	bool ret = false;
+	bool updated_badpw = false;
+	NTSTATUS update_login_attempts_status;
 
 	if (!(sampass = samu_new(NULL))) {
@@ -1115,4 +1122,11 @@
 		TALLOC_FREE(sampass);
 		return NT_STATUS_NO_SUCH_USER;
+	}
+
+	/* Quit if the account was locked out. */
+	if (pdb_get_acct_ctrl(sampass) & ACB_AUTOLOCK) {
+		DEBUG(3,("check_sam_security: Account for user %s was locked out.\n", user));
+		TALLOC_FREE(sampass);
+		return NT_STATUS_ACCOUNT_LOCKED_OUT;
 	}
 
@@ -1125,4 +1139,50 @@
 				       &new_passwd);
 
+	/*
+	 * Notify passdb backend of login success/failure. If not
+	 * NT_STATUS_OK the backend doesn't like the login
+	 */
+	update_login_attempts_status = pdb_update_login_attempts(sampass,
+						NT_STATUS_IS_OK(nt_status));
+
+	if (!NT_STATUS_IS_OK(nt_status)) {
+		bool increment_bad_pw_count = false;
+
+		if (NT_STATUS_EQUAL(nt_status, NT_STATUS_WRONG_PASSWORD) &&
+		    (pdb_get_acct_ctrl(sampass) & ACB_NORMAL) &&
+		    NT_STATUS_IS_OK(update_login_attempts_status))
+		{
+			increment_bad_pw_count = true;
+		}
+
+		if (increment_bad_pw_count) {
+			pdb_increment_bad_password_count(sampass);
+			updated_badpw = true;
+		} else {
+			pdb_update_bad_password_count(sampass,
+						      &updated_badpw);
+		}
+	} else {
+
+		if ((pdb_get_acct_ctrl(sampass) & ACB_NORMAL) &&
+		    (pdb_get_bad_password_count(sampass) > 0)){
+			pdb_set_bad_password_count(sampass, 0, PDB_CHANGED);
+			pdb_set_bad_password_time(sampass, 0, PDB_CHANGED);
+			updated_badpw = true;
+		}
+	}
+
+	if (updated_badpw) {
+		NTSTATUS update_status;
+		become_root();
+		update_status = pdb_update_sam_account(sampass);
+		unbecome_root();
+
+		if (!NT_STATUS_IS_OK(update_status)) {
+			DEBUG(1, ("Failed to modify entry: %s\n",
+				  nt_errstr(update_status)));
+		}
+	}
+
 	if (!NT_STATUS_IS_OK(nt_status)) {
 		TALLOC_FREE(sampass);
Index: trunk/server/source3/rpc_server/samr/srv_samr_nt.c
===================================================================
--- trunk/server/source3/rpc_server/samr/srv_samr_nt.c	(revision 857)
+++ trunk/server/source3/rpc_server/samr/srv_samr_nt.c	(revision 862)
@@ -1707,5 +1707,11 @@
 
 /****************************************************************
- _samr_ChangePasswordUser
+ _samr_ChangePasswordUser.
+
+ So old it is just not worth implementing
+ because it does not supply a plaintext and so we can't do password
+ complexity checking and cannot update other services that use a
+ plaintext password via passwd chat/pam password change/ldap password
+ sync.
 ****************************************************************/
 
@@ -1713,106 +1719,5 @@
 				  struct samr_ChangePasswordUser *r)
 {
-	NTSTATUS status;
-	bool ret = false;
-	struct samr_user_info *uinfo;
-	struct samu *pwd;
-	struct samr_Password new_lmPwdHash, new_ntPwdHash, checkHash;
-	struct samr_Password lm_pwd, nt_pwd;
-
-	uinfo = policy_handle_find(p, r->in.user_handle,
-				   SAMR_USER_ACCESS_SET_PASSWORD, NULL,
-				   struct samr_user_info, &status);
-	if (!NT_STATUS_IS_OK(status)) {
-		return status;
-	}
-
-	DEBUG(5,("_samr_ChangePasswordUser: sid:%s\n",
-		  sid_string_dbg(&uinfo->sid)));
-
-	if (!(pwd = samu_new(NULL))) {
-		return NT_STATUS_NO_MEMORY;
-	}
-
-	become_root();
-	ret = pdb_getsampwsid(pwd, &uinfo->sid);
-	unbecome_root();
-
-	if (!ret) {
-		TALLOC_FREE(pwd);
-		return NT_STATUS_WRONG_PASSWORD;
-	}
-
-	{
-		const uint8_t *lm_pass, *nt_pass;
-
-		lm_pass = pdb_get_lanman_passwd(pwd);
-		nt_pass = pdb_get_nt_passwd(pwd);
-
-		if (!lm_pass || !nt_pass) {
-			status = NT_STATUS_WRONG_PASSWORD;
-			goto out;
-		}
-
-		memcpy(&lm_pwd.hash, lm_pass, sizeof(lm_pwd.hash));
-		memcpy(&nt_pwd.hash, nt_pass, sizeof(nt_pwd.hash));
-	}
-
-	/* basic sanity checking on parameters.  Do this before any database ops */
-	if (!r->in.lm_present || !r->in.nt_present ||
-	    !r->in.old_lm_crypted || !r->in.new_lm_crypted ||
-	    !r->in.old_nt_crypted || !r->in.new_nt_crypted) {
-		/* we should really handle a change with lm not
-		   present */
-		status = NT_STATUS_INVALID_PARAMETER_MIX;
-		goto out;
-	}
-
-	/* decrypt and check the new lm hash */
-	D_P16(lm_pwd.hash, r->in.new_lm_crypted->hash, new_lmPwdHash.hash);
-	D_P16(new_lmPwdHash.hash, r->in.old_lm_crypted->hash, checkHash.hash);
-	if (memcmp(checkHash.hash, lm_pwd.hash, 16) != 0) {
-		status = NT_STATUS_WRONG_PASSWORD;
-		goto out;
-	}
-
-	/* decrypt and check the new nt hash */
-	D_P16(nt_pwd.hash, r->in.new_nt_crypted->hash, new_ntPwdHash.hash);
-	D_P16(new_ntPwdHash.hash, r->in.old_nt_crypted->hash, checkHash.hash);
-	if (memcmp(checkHash.hash, nt_pwd.hash, 16) != 0) {
-		status = NT_STATUS_WRONG_PASSWORD;
-		goto out;
-	}
-
-	/* The NT Cross is not required by Win2k3 R2, but if present
-	   check the nt cross hash */
-	if (r->in.cross1_present && r->in.nt_cross) {
-		D_P16(lm_pwd.hash, r->in.nt_cross->hash, checkHash.hash);
-		if (memcmp(checkHash.hash, new_ntPwdHash.hash, 16) != 0) {
-			status = NT_STATUS_WRONG_PASSWORD;
-			goto out;
-		}
-	}
-
-	/* The LM Cross is not required by Win2k3 R2, but if present
-	   check the lm cross hash */
-	if (r->in.cross2_present && r->in.lm_cross) {
-		D_P16(nt_pwd.hash, r->in.lm_cross->hash, checkHash.hash);
-		if (memcmp(checkHash.hash, new_lmPwdHash.hash, 16) != 0) {
-			status = NT_STATUS_WRONG_PASSWORD;
-			goto out;
-		}
-	}
-
-	if (!pdb_set_nt_passwd(pwd, new_ntPwdHash.hash, PDB_CHANGED) ||
-	    !pdb_set_lanman_passwd(pwd, new_lmPwdHash.hash, PDB_CHANGED)) {
-		status = NT_STATUS_ACCESS_DENIED;
-		goto out;
-	}
-
-	status = pdb_update_sam_account(pwd);
- out:
-	TALLOC_FREE(pwd);
-
-	return status;
+	return NT_STATUS_NOT_IMPLEMENTED;
 }
 
Index: trunk/server/source3/rpc_server/spoolss/srv_spoolss_nt.c
===================================================================
--- trunk/server/source3/rpc_server/spoolss/srv_spoolss_nt.c	(revision 857)
+++ trunk/server/source3/rpc_server/spoolss/srv_spoolss_nt.c	(revision 862)
@@ -1745,5 +1745,5 @@
 	result = open_printer_hnd(p, r->out.handle, r->in.printername, 0);
 	if (!W_ERROR_IS_OK(result)) {
-		DEBUG(0,("_spoolss_OpenPrinterEx: Cannot open a printer handle "
+		DEBUG(3,("_spoolss_OpenPrinterEx: Cannot open a printer handle "
 			"for printer %s\n", r->in.printername));
 		ZERO_STRUCTP(r->out.handle);
@@ -1943,21 +1943,9 @@
 	 */
 
-	 if ((Printer->printer_type != SPLHND_SERVER) &&
-	     r->in.devmode_ctr.devmode) {
+	 if ((Printer->printer_type != SPLHND_SERVER)
+	  && (r->in.devmode_ctr.devmode != NULL)) {
 		copy_devicemode(NULL, r->in.devmode_ctr.devmode,
 				&Printer->devmode);
 	 }
-
-#if 0	/* JERRY -- I'm doubtful this is really effective */
-	/* HACK ALERT!!! Sleep for 1/3 of a second to try trigger a LAN/WAN
-	   optimization in Windows 2000 clients  --jerry */
-
-	if ( (r->in.access_mask == PRINTER_ACCESS_ADMINISTER)
-		&& (RA_WIN2K == get_remote_arch()) )
-	{
-		DEBUG(10,("_spoolss_OpenPrinterEx: Enabling LAN/WAN hack for Win2k clients.\n"));
-		sys_usleep( 500000 );
-	}
-#endif
 
 	return WERR_OK;
@@ -4038,6 +4026,20 @@
 	r->averageppm		= info2->averageppm;
 
-	copy_devicemode(mem_ctx, info2->devmode, &r->devmode);
-	if (!r->devmode) {
+	if (info2->devmode != NULL) {
+		result = copy_devicemode(mem_ctx,
+					 info2->devmode,
+					 &r->devmode);
+		if (!W_ERROR_IS_OK(result)) {
+			return result;
+		}
+	} else if (lp_default_devmode(snum)) {
+		result = spoolss_create_default_devmode(mem_ctx,
+							info2->printername,
+							&r->devmode);
+		if (!W_ERROR_IS_OK(result)) {
+			return result;
+		}
+	} else {
+		r->devmode = NULL;
 		DEBUG(8,("Returning NULL Devicemode!\n"));
 	}
@@ -4175,17 +4177,35 @@
 {
 	struct auth_serversupplied_info *session_info;
-	struct GUID guid;
+	char *printer;
 	NTSTATUS status;
-
-	status = make_session_info_system(mem_ctx, &session_info);
+	WERROR werr;
+	TALLOC_CTX *tmp_ctx = talloc_new(mem_ctx);
+	if (tmp_ctx == NULL) {
+		return WERR_NOMEM;
+	}
+
+	status = make_session_info_system(tmp_ctx, &session_info);
 	if (!NT_STATUS_IS_OK(status)) {
 		DEBUG(0, ("construct_printer_info7: "
 			  "Could not create system session_info\n"));
-		return WERR_NOMEM;
-	}
-
-	if (is_printer_published(mem_ctx, session_info, msg_ctx,
-				 servername,
-				 lp_servicename(snum), &guid, NULL)) {
+		werr = WERR_NOMEM;
+		goto out_tmp_free;
+	}
+
+	printer = lp_servicename(snum);
+	if (printer == NULL) {
+		DEBUG(0, ("invalid printer snum %d\n", snum));
+		werr = WERR_INVALID_PARAM;
+		goto out_tmp_free;
+	}
+
+	if (is_printer_published(tmp_ctx, session_info, msg_ctx,
+				 servername, printer, NULL)) {
+		struct GUID guid;
+		werr = nt_printer_guid_get(tmp_ctx, session_info, msg_ctx,
+					   printer, &guid);
+		if (!W_ERROR_IS_OK(werr)) {
+			goto out_tmp_free;
+		}
 		r->guid = talloc_strdup_upper(mem_ctx, GUID_string2(mem_ctx, &guid));
 		r->action = DSPRINT_PUBLISH;
@@ -4194,8 +4214,13 @@
 		r->action = DSPRINT_UNPUBLISH;
 	}
-	W_ERROR_HAVE_NO_MEMORY(r->guid);
-
-	TALLOC_FREE(session_info);
-	return WERR_OK;
+	if (r->guid == NULL) {
+		werr = WERR_NOMEM;
+		goto out_tmp_free;
+	}
+
+	werr = WERR_OK;
+out_tmp_free:
+	talloc_free(tmp_ctx);
+	return werr;
 }
 
@@ -4219,6 +4244,20 @@
 	}
 
-	copy_devicemode(mem_ctx, info2->devmode, &r->devmode);
-	if (!r->devmode) {
+	if (info2->devmode != NULL) {
+		result = copy_devicemode(mem_ctx,
+					 info2->devmode,
+					 &r->devmode);
+		if (!W_ERROR_IS_OK(result)) {
+			return result;
+		}
+	} else if (lp_default_devmode(snum)) {
+		result = spoolss_create_default_devmode(mem_ctx,
+							info2->printername,
+							&r->devmode);
+		if (!W_ERROR_IS_OK(result)) {
+			return result;
+		}
+	} else {
+		r->devmode = NULL;
 		DEBUG(8,("Returning NULL Devicemode!\n"));
 	}
@@ -4427,5 +4466,6 @@
 	DEBUG(4,("enum_all_printers_info_1_name\n"));
 
-	if ((servername[0] == '\\') && (servername[1] == '\\')) {
+	if (servername != NULL &&
+	    (servername[0] == '\\') && (servername[1] == '\\')) {
 		s = servername + 2;
 	}
@@ -4462,5 +4502,6 @@
 	   WERR_CAN_NOT_COMPLETE so we should do the same. */
 
-	if (servername[0] == '\\' && servername[1] == '\\') {
+	if (servername != NULL &&
+	    (servername[0] == '\\') && (servername[1] == '\\')) {
 		 s = servername + 2;
 	}
@@ -5592,4 +5633,5 @@
 	struct printer_handle *printer;
 	WERROR result;
+	uint32_t version = r->in.client_major_version;
 
 	int snum;
@@ -5614,4 +5656,10 @@
 	if (!get_printer_snum(p, r->in.handle, &snum, NULL)) {
 		return WERR_BADFID;
+	}
+
+	if (r->in.client_major_version == SPOOLSS_DRIVER_VERSION_2012) {
+		DEBUG(3,("_spoolss_GetPrinterDriver2: v4 driver requested, "
+			"downgrading to v3\n"));
+		version = SPOOLSS_DRIVER_VERSION_200X;
 	}
 
@@ -5622,5 +5670,5 @@
 						     snum, printer->servername,
 						     r->in.architecture,
-						     r->in.client_major_version);
+						     version);
 	if (!W_ERROR_IS_OK(result)) {
 		TALLOC_FREE(r->out.info);
@@ -5722,5 +5770,11 @@
 
 	if (info_1->datatype) {
-		if (strcmp(info_1->datatype, "RAW") != 0) {
+		/*
+		 * The v4 driver model used in Windows 8 declares print jobs
+		 * intended to bypass the XPS processing layer by setting
+		 * datatype to "XPS_PASS" instead of "RAW".
+		 */
+                if ((strcmp(info_1->datatype, "RAW") != 0)
+                 && (strcmp(info_1->datatype, "XPS_PASS") != 0)) {
 			*r->out.job_id = 0;
 			return WERR_INVALID_DATATYPE;
Index: trunk/server/source3/rpc_server/wkssvc/srv_wkssvc_nt.c
===================================================================
--- trunk/server/source3/rpc_server/wkssvc/srv_wkssvc_nt.c	(revision 857)
+++ trunk/server/source3/rpc_server/wkssvc/srv_wkssvc_nt.c	(revision 862)
@@ -580,5 +580,7 @@
 		r->out.info->level = r->in.info->level;
 		*r->out.entries_read = r->out.info->ctr.user0->entries_read;
-		*r->out.resume_handle = 0;
+		if (r->out.resume_handle != NULL) {
+			*r->out.resume_handle = 0;
+		}
 		break;
 	case 1:
@@ -589,5 +591,7 @@
 		r->out.info->level = r->in.info->level;
 		*r->out.entries_read = r->out.info->ctr.user1->entries_read;
-		*r->out.resume_handle = 0;
+		if (r->out.resume_handle != NULL) {
+			*r->out.resume_handle = 0;
+		}
 		break;
 	default:
Index: trunk/server/source3/rpcclient/cmd_lsarpc.c
===================================================================
--- trunk/server/source3/rpcclient/cmd_lsarpc.c	(revision 857)
+++ trunk/server/source3/rpcclient/cmd_lsarpc.c	(revision 862)
@@ -324,5 +324,5 @@
 	uint32_t num_names;
 	struct lsa_String *names;
-	struct lsa_RefDomainList *domains;
+	struct lsa_RefDomainList *domains = NULL;
 	struct lsa_TransSidArray3 sids;
 	uint32_t count = 0;
@@ -362,4 +362,8 @@
 	}
 
+	if (sids.count != num_names) {
+		return NT_STATUS_INVALID_NETWORK_RESPONSE;
+	}
+
 	for (i = 0; i < sids.count; i++) {
 		fstring sid_str;
@@ -451,5 +455,5 @@
 	int i;
 	struct lsa_SidArray sids;
-	struct lsa_RefDomainList *domains;
+	struct lsa_RefDomainList *domains = NULL;
 	struct lsa_TransNameArray2 names;
 	uint32_t count = 0;
@@ -507,7 +511,10 @@
 	/* Print results */
 
-	for (i = 0; i < count; i++) {
+	for (i = 0; i < names.count; i++) {
 		fstring sid_str;
 
+		if (i >= sids.num_sids) {
+			break;
+		}
 		sid_to_fstring(sid_str, sids.sids[i].sid);
 		printf("%s %s (%d)\n", sid_str,
Index: trunk/server/source3/rpcclient/cmd_samr.c
===================================================================
--- trunk/server/source3/rpcclient/cmd_samr.c	(revision 857)
+++ trunk/server/source3/rpcclient/cmd_samr.c	(revision 862)
@@ -386,5 +386,15 @@
 			goto done;
 		}
+
 		if (NT_STATUS_IS_OK(result)) {
+			if (rids.count != 1) {
+				status = NT_STATUS_INVALID_NETWORK_RESPONSE;
+				goto done;
+			}
+			if (types.count != 1) {
+				status = NT_STATUS_INVALID_NETWORK_RESPONSE;
+				goto done;
+			}
+
 			status = dcerpc_samr_OpenUser(b, mem_ctx,
 						      &domain_pol,
@@ -1451,4 +1461,13 @@
 		}
 		if (NT_STATUS_IS_OK(result)) {
+			if (rids.count != 1) {
+				status = NT_STATUS_INVALID_NETWORK_RESPONSE;
+				goto done;
+			}
+			if (types.count != 1) {
+				status = NT_STATUS_INVALID_NETWORK_RESPONSE;
+				goto done;
+			}
+
 			status = dcerpc_samr_OpenAlias(b, mem_ctx,
 						       &domain_pol,
@@ -2113,4 +2132,12 @@
 		goto done;
 	}
+	if (rids.count != num_names) {
+		status = NT_STATUS_INVALID_NETWORK_RESPONSE;
+		goto done;
+	}
+	if (name_types.count != num_names) {
+		status = NT_STATUS_INVALID_NETWORK_RESPONSE;
+		goto done;
+	}
 
 	/* Display results */
@@ -2194,4 +2221,12 @@
 
 	/* Display results */
+	if (num_rids != names.count) {
+		status = NT_STATUS_INVALID_NETWORK_RESPONSE;
+		goto done;
+	}
+	if (num_rids != types.count) {
+		status = NT_STATUS_INVALID_NETWORK_RESPONSE;
+		goto done;
+	}
 
 	for (i = 0; i < num_rids; i++) {
@@ -2270,4 +2305,12 @@
 			goto done;
 		}
+		if (group_rids.count != 1) {
+			status = NT_STATUS_INVALID_NETWORK_RESPONSE;
+			goto done;
+		}
+		if (name_types.count != 1) {
+			status = NT_STATUS_INVALID_NETWORK_RESPONSE;
+			goto done;
+		}
 
 		status = dcerpc_samr_OpenGroup(b, mem_ctx,
@@ -2373,4 +2416,12 @@
 			goto done;
 		}
+		if (user_rids.count != 1) {
+			status = NT_STATUS_INVALID_NETWORK_RESPONSE;
+			goto done;
+		}
+		if (name_types.count != 1) {
+			status = NT_STATUS_INVALID_NETWORK_RESPONSE;
+			goto done;
+		}
 
 		status = dcerpc_samr_OpenUser(b, mem_ctx,
@@ -2757,4 +2808,12 @@
 	if (!NT_STATUS_IS_OK(result)) {
 		status = result;
+		goto done;
+	}
+	if (rids.count != 1) {
+		status = NT_STATUS_INVALID_NETWORK_RESPONSE;
+		goto done;
+	}
+	if (types.count != 1) {
+		status = NT_STATUS_INVALID_NETWORK_RESPONSE;
 		goto done;
 	}
@@ -3162,5 +3221,10 @@
 			return result;
 		}
-
+		if (rids.count != 1) {
+			return NT_STATUS_INVALID_NETWORK_RESPONSE;
+		}
+		if (types.count != 1) {
+			return NT_STATUS_INVALID_NETWORK_RESPONSE;
+		}
 
 		status = dcerpc_samr_OpenUser(b, mem_ctx,
Index: trunk/server/source3/script/uninstalldat.sh
===================================================================
--- trunk/server/source3/script/uninstalldat.sh	(revision 857)
+++ trunk/server/source3/script/uninstalldat.sh	(revision 862)
@@ -0,0 +1,1 @@
+installdat.sh
Index: trunk/server/source3/script/uninstallmsg.sh
===================================================================
--- trunk/server/source3/script/uninstallmsg.sh	(revision 857)
+++ trunk/server/source3/script/uninstallmsg.sh	(revision 862)
@@ -0,0 +1,1 @@
+installmsg.sh
Index: trunk/server/source3/script/uninstallswat.sh
===================================================================
--- trunk/server/source3/script/uninstallswat.sh	(revision 857)
+++ trunk/server/source3/script/uninstallswat.sh	(revision 862)
@@ -0,0 +1,1 @@
+installswat.sh
Index: trunk/server/source3/selftest/skip
===================================================================
--- trunk/server/source3/selftest/skip	(revision 857)
+++ trunk/server/source3/selftest/skip	(revision 862)
@@ -14,4 +14,5 @@
 samba3.smbtorture_s3.*.pipe_number
 samba3.smbtorture_s3.*.CHAIN1
+samba3.smbtorture_s3.*.DIR1 #loops on 64 bit linux with ext4
 samba3.*base.charset
 samba3.*raw.acls
Index: trunk/server/source3/smbd/conn.c
===================================================================
--- trunk/server/source3/smbd/conn.c	(revision 857)
+++ trunk/server/source3/smbd/conn.c	(revision 862)
@@ -482,5 +482,5 @@
 		DEBUG(1,("Forcing close of all shares\n"));
 		conn_close_all(sconn);
-		return;
+		goto done;
 	}
 
@@ -513,3 +513,8 @@
 		}
 	}
-}
+
+ done:
+
+	change_to_root_user();
+	reload_services(msg, -1, true);
+}
Index: trunk/server/source3/smbd/dir.c
===================================================================
--- trunk/server/source3/smbd/dir.c	(revision 857)
+++ trunk/server/source3/smbd/dir.c	(revision 862)
@@ -50,4 +50,6 @@
 	unsigned int name_cache_index;
 	unsigned int file_number;
+	files_struct *fsp; /* Back pointer to containing fsp, only
+			      set from OpenDir_fsp(). */
 };
 
@@ -591,16 +593,9 @@
 {
 	if (fsp->dptr) {
-/*
- * Ugly hack. We have defined fdopendir to return ENOSYS if dirfd also isn't
- * present. I hate Solaris. JRA.
- */
-#ifdef HAVE_DIRFD
-		if (fsp->fh->fd != -1 &&
-				fsp->dptr->dir_hnd &&
-				dirfd(fsp->dptr->dir_hnd->dir)) {
-			/* The call below closes the underlying fd. */
-			fsp->fh->fd = -1;
-		}
-#endif
+		/*
+		 * The destructor for the struct smb_Dir
+		 * (fsp->dptr->dir_hnd) now handles
+		 * all resource deallocation.
+		 */
 		dptr_close_internal(fsp->dptr);
 		fsp->dptr = NULL;
@@ -942,10 +937,12 @@
 {
 	connection_struct *conn = dirptr->conn;
-	bool needslash;
+	size_t slashlen;
+	size_t pathlen;
 
 	*_smb_fname = NULL;
 	*_mode = 0;
 
-	needslash = ( dirptr->path[strlen(dirptr->path) -1] != '/');
+	pathlen = strlen(dirptr->path);
+	slashlen = ( dirptr->path[pathlen-1] != '/') ? 1 : 0;
 
 	while (true) {
@@ -991,8 +988,14 @@
 		}
 
-		pathreal = talloc_asprintf(ctx, "%s%s%s",
-					   dirptr->path,
-					   needslash?"/":"",
-					   dname);
+		/*
+		 * This used to be
+		 * pathreal = talloc_asprintf(ctx, "%s%s%s", dirptr->path,
+		 *			      needslash?"/":"", dname);
+		 * but this was measurably slower than doing the memcpy.
+		 */
+
+		pathreal = talloc_array(
+			ctx, char,
+			pathlen + slashlen + talloc_get_size(dname));
 		if (!pathreal) {
 			TALLOC_FREE(dname);
@@ -1000,4 +1003,9 @@
 			return false;
 		}
+
+		memcpy(pathreal, dirptr->path, pathlen);
+		pathreal[pathlen] = '/';
+		memcpy(pathreal + slashlen + pathlen, dname,
+		       talloc_get_size(dname));
 
 		/* Create smb_fname with NULL stream_name. */
@@ -1333,16 +1341,19 @@
 static int smb_Dir_destructor(struct smb_Dir *dirp)
 {
-	if (dirp->dir) {
-#ifdef HAVE_DIRFD
-		if (dirp->conn->sconn) {
-			files_struct *fsp = file_find_fd(dirp->conn->sconn,
-						dirfd(dirp->dir));
-			if (fsp) {
-				/* The call below closes the underlying fd. */
-				fsp->fh->fd = -1;
+	if (dirp->dir != NULL) {
+		SMB_VFS_CLOSEDIR(dirp->conn,dirp->dir);
+		if (dirp->fsp != NULL) {
+			/*
+			 * The SMB_VFS_CLOSEDIR above
+			 * closes the underlying fd inside
+			 * dirp->fsp.
+			 */
+			dirp->fsp->fh->fd = -1;
+			if (dirp->fsp->dptr != NULL) {
+				SMB_ASSERT(dirp->fsp->dptr->dir_hnd == dirp);
+				dirp->fsp->dptr->dir_hnd = NULL;
 			}
-		}
-#endif
-		SMB_VFS_CLOSEDIR(dirp->conn,dirp->dir);
+			dirp->fsp = NULL;
+		}
 	}
 	if (dirp->conn->sconn && !dirp->conn->sconn->using_smb2) {
@@ -1428,5 +1439,7 @@
 	if (fsp->is_directory && fsp->fh->fd != -1) {
 		dirp->dir = SMB_VFS_FDOPENDIR(fsp, mask, attr);
-		if (dirp->dir == NULL) {
+		if (dirp->dir != NULL) {
+			dirp->fsp = fsp;
+		} else {
 			DEBUG(10,("OpenDir_fsp: SMB_VFS_FDOPENDIR on %s returned "
 				"NULL (%s)\n",
@@ -1644,6 +1657,5 @@
 *****************************************************************/
 
-NTSTATUS can_delete_directory(struct connection_struct *conn,
-				const char *dirname)
+NTSTATUS can_delete_directory_fsp(files_struct *fsp)
 {
 	NTSTATUS status = NT_STATUS_OK;
@@ -1652,6 +1664,10 @@
 	char *talloced = NULL;
 	SMB_STRUCT_STAT st;
-	struct smb_Dir *dir_hnd = OpenDir(talloc_tos(), conn,
-					dirname, NULL, 0);
+	struct connection_struct *conn = fsp->conn;
+	struct smb_Dir *dir_hnd = OpenDir_fsp(talloc_tos(),
+					conn,
+					fsp,
+					NULL,
+					0);
 
 	if (!dir_hnd) {
@@ -1668,10 +1684,10 @@
 		}
 
-		if (!is_visible_file(conn, dirname, dname, &st, True)) {
+		if (!is_visible_file(conn, fsp->fsp_name->base_name, dname, &st, True)) {
 			TALLOC_FREE(talloced);
 			continue;
 		}
 
-		DEBUG(10,("can_delete_directory: got name %s - can't delete\n",
+		DEBUG(10,("can_delete_directory_fsp: got name %s - can't delete\n",
 			 dname ));
 		status = NT_STATUS_DIRECTORY_NOT_EMPTY;
Index: trunk/server/source3/smbd/dosmode.c
===================================================================
--- trunk/server/source3/smbd/dosmode.c	(revision 857)
+++ trunk/server/source3/smbd/dosmode.c	(revision 862)
@@ -504,4 +504,9 @@
 	result = filter_mode_by_protocol(result);
 
+	/*
+	 * Add in that it is a reparse point
+	 */
+	result |= FILE_ATTRIBUTE_REPARSE_POINT;
+
 	DEBUG(8,("dos_mode_msdfs returning "));
 
Index: trunk/server/source3/smbd/filename.c
===================================================================
--- trunk/server/source3/smbd/filename.c	(revision 857)
+++ trunk/server/source3/smbd/filename.c	(revision 862)
@@ -446,5 +446,8 @@
 		if (errno == ENOENT) {
 			/* Optimization when creating a new file - only
-			   the last component doesn't exist. */
+			   the last component doesn't exist.
+			   NOTE : check_parent_exists() doesn't preserve errno.
+			*/
+			int saved_errno = errno;
 			status = check_parent_exists(ctx,
 						conn,
@@ -453,4 +456,5 @@
 						&dirpath,
 						&start);
+			errno = saved_errno;
 			if (!NT_STATUS_IS_OK(status)) {
 				goto fail;
@@ -525,5 +529,7 @@
 		 * is in the last component and the client already
 		 * sent the correct case.
+		 * NOTE : check_parent_exists() doesn't preserve errno.
 		 */
+		int saved_errno = errno;
 		status = check_parent_exists(ctx,
 					conn,
@@ -532,4 +538,5 @@
 					&dirpath,
 					&start);
+		errno = saved_errno;
 		if (!NT_STATUS_IS_OK(status)) {
 			goto fail;
@@ -707,10 +714,27 @@
 				/*
 				 * ENOENT/EACCESS are the only valid errors
-				 * here. EACCESS needs handling here for
-				 * "dropboxes", i.e. directories where users
-				 * can only put stuff with permission -wx.
+				 * here.
 				 */
-				if ((errno != 0) && (errno != ENOENT)
-				    && (errno != EACCES)) {
+				if (errno == EACCES) {
+					if (ucf_flags & UCF_CREATING_FILE) {
+						/*
+						 * This is the dropbox
+						 * behaviour. A dropbox is a
+						 * directory with only -wx
+						 * permissions, so
+						 * get_real_filename fails
+						 * with EACCESS, it needs to
+						 * list the directory. We
+						 * nevertheless want to allow
+						 * users creating a file.
+						 */
+						status = NT_STATUS_OBJECT_PATH_NOT_FOUND;
+					} else {
+						status = NT_STATUS_ACCESS_DENIED;
+					}
+					goto fail;
+				}
+
+				if ((errno != 0) && (errno != ENOENT)) {
 					/*
 					 * ENOTDIR and ELOOP both map to
Index: trunk/server/source3/smbd/globals.c
===================================================================
--- trunk/server/source3/smbd/globals.c	(revision 857)
+++ trunk/server/source3/smbd/globals.c	(revision 862)
Index: trunk/server/source3/smbd/globals.h
===================================================================
--- trunk/server/source3/smbd/globals.h	(revision 857)
+++ trunk/server/source3/smbd/globals.h	(revision 862)
@@ -163,4 +163,5 @@
 			       uint16_t flags2,
 			       unsigned int max_data_bytes,
+			       size_t *fixed_portion,
 			       char **ppdata,
 			       unsigned int *pdata_size);
@@ -180,4 +181,6 @@
 			 uint16_t flags2,
 			 unsigned int max_data_bytes,
+			 size_t *fixed_portion,
+			 struct smb_filename *smb_fname,
 			 char **ppdata,
 			 int *ret_data_len);
@@ -647,5 +650,4 @@
 		uint32_t max_read;
 		uint32_t max_write;
-		bool compound_related_in_progress;
 	} smb2;
 };
Index: trunk/server/source3/smbd/lanman.c
===================================================================
--- trunk/server/source3/smbd/lanman.c	(revision 857)
+++ trunk/server/source3/smbd/lanman.c	(revision 862)
@@ -2629,4 +2629,12 @@
 		goto close_domain;
 	}
+	if (rid.count != 1) {
+		status = NT_STATUS_INVALID_NETWORK_RESPONSE;
+		goto close_domain;
+	}
+	if (type.count != 1) {
+		status = NT_STATUS_INVALID_NETWORK_RESPONSE;
+		goto close_domain;
+	}
 
 	if (type.ids[0] != SID_NAME_USER) {
@@ -2937,257 +2945,4 @@
 
 	return True;
-}
-
-/****************************************************************************
- Set the user password.
-*****************************************************************************/
-
-static bool api_SetUserPassword(struct smbd_server_connection *sconn,
-				connection_struct *conn,uint16 vuid,
-				char *param, int tpscnt,
-				char *data, int tdscnt,
-				int mdrcnt,int mprcnt,
-				char **rdata,char **rparam,
-				int *rdata_len,int *rparam_len)
-{
-	char *np = get_safe_str_ptr(param,tpscnt,param,2);
-	char *p = NULL;
-	fstring user;
-	fstring pass1,pass2;
-	TALLOC_CTX *mem_ctx = talloc_tos();
-	NTSTATUS status, result;
-	struct rpc_pipe_client *cli = NULL;
-	struct policy_handle connect_handle, domain_handle, user_handle;
-	struct lsa_String domain_name;
-	struct dom_sid2 *domain_sid;
-	struct lsa_String names;
-	struct samr_Ids rids;
-	struct samr_Ids types;
-	struct samr_Password old_lm_hash;
-	struct samr_Password new_lm_hash;
-	int errcode = NERR_badpass;
-	uint32_t rid;
-	int encrypted;
-	int min_pwd_length;
-	struct dcerpc_binding_handle *b = NULL;
-
-	/* Skip 2 strings. */
-	p = skip_string(param,tpscnt,np);
-	p = skip_string(param,tpscnt,p);
-
-	if (!np || !p) {
-		return False;
-	}
-
-	/* Do we have a string ? */
-	if (skip_string(param,tpscnt,p) == NULL) {
-		return False;
-	}
-	pull_ascii_fstring(user,p);
-
-	p = skip_string(param,tpscnt,p);
-	if (!p) {
-		return False;
-	}
-
-	memset(pass1,'\0',sizeof(pass1));
-	memset(pass2,'\0',sizeof(pass2));
-	/*
-	 * We use 31 here not 32 as we're checking
-	 * the last byte we want to access is safe.
-	 */
-	if (!is_offset_safe(param,tpscnt,p,31)) {
-		return False;
-	}
-	memcpy(pass1,p,16);
-	memcpy(pass2,p+16,16);
-
-	encrypted = get_safe_SVAL(param,tpscnt,p+32,0,-1);
-	if (encrypted == -1) {
-		errcode = W_ERROR_V(WERR_INVALID_PARAM);
-		goto out;
-	}
-
-	min_pwd_length = get_safe_SVAL(param,tpscnt,p+34,0,-1);
-	if (min_pwd_length == -1) {
-		errcode = W_ERROR_V(WERR_INVALID_PARAM);
-		goto out;
-	}
-
-	*rparam_len = 4;
-	*rparam = smb_realloc_limit(*rparam,*rparam_len);
-	if (!*rparam) {
-		return False;
-	}
-
-	*rdata_len = 0;
-
-	DEBUG(3,("Set password for <%s> (encrypted: %d, min_pwd_length: %d)\n",
-		user, encrypted, min_pwd_length));
-
-	ZERO_STRUCT(connect_handle);
-	ZERO_STRUCT(domain_handle);
-	ZERO_STRUCT(user_handle);
-
-	status = rpc_pipe_open_interface(mem_ctx, &ndr_table_samr.syntax_id,
-					conn->session_info,
-					&conn->sconn->client_id,
-					conn->sconn->msg_ctx,
-					&cli);
-	if (!NT_STATUS_IS_OK(status)) {
-		DEBUG(0,("api_SetUserPassword: could not connect to samr: %s\n",
-			  nt_errstr(status)));
-		errcode = W_ERROR_V(ntstatus_to_werror(status));
-		goto out;
-	}
-
-	b = cli->binding_handle;
-
-	status = dcerpc_samr_Connect2(b, mem_ctx,
-				      global_myname(),
-				      SAMR_ACCESS_CONNECT_TO_SERVER |
-				      SAMR_ACCESS_ENUM_DOMAINS |
-				      SAMR_ACCESS_LOOKUP_DOMAIN,
-				      &connect_handle,
-				      &result);
-	if (!NT_STATUS_IS_OK(status)) {
-		errcode = W_ERROR_V(ntstatus_to_werror(status));
-		goto out;
-	}
-	if (!NT_STATUS_IS_OK(result)) {
-		errcode = W_ERROR_V(ntstatus_to_werror(result));
-		goto out;
-	}
-
-	init_lsa_String(&domain_name, get_global_sam_name());
-
-	status = dcerpc_samr_LookupDomain(b, mem_ctx,
-					  &connect_handle,
-					  &domain_name,
-					  &domain_sid,
-					  &result);
-	if (!NT_STATUS_IS_OK(status)) {
-		errcode = W_ERROR_V(ntstatus_to_werror(status));
-		goto out;
-	}
-	if (!NT_STATUS_IS_OK(result)) {
-		errcode = W_ERROR_V(ntstatus_to_werror(result));
-		goto out;
-	}
-
-	status = dcerpc_samr_OpenDomain(b, mem_ctx,
-					&connect_handle,
-					SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT,
-					domain_sid,
-					&domain_handle,
-					&result);
-	if (!NT_STATUS_IS_OK(status)) {
-		errcode = W_ERROR_V(ntstatus_to_werror(status));
-		goto out;
-	}
-	if (!NT_STATUS_IS_OK(result)) {
-		errcode = W_ERROR_V(ntstatus_to_werror(result));
-		goto out;
-	}
-
-	init_lsa_String(&names, user);
-
-	status = dcerpc_samr_LookupNames(b, mem_ctx,
-					 &domain_handle,
-					 1,
-					 &names,
-					 &rids,
-					 &types,
-					 &result);
-	if (!NT_STATUS_IS_OK(status)) {
-		errcode = W_ERROR_V(ntstatus_to_werror(status));
-		goto out;
-	}
-	if (!NT_STATUS_IS_OK(result)) {
-		errcode = W_ERROR_V(ntstatus_to_werror(result));
-		goto out;
-	}
-
-	if (rids.count != 1) {
-		errcode = W_ERROR_V(WERR_NO_SUCH_USER);
-		goto out;
-	}
-	if (rids.count != types.count) {
-		errcode = W_ERROR_V(WERR_INVALID_PARAM);
-		goto out;
-	}
-	if (types.ids[0] != SID_NAME_USER) {
-		errcode = W_ERROR_V(WERR_INVALID_PARAM);
-		goto out;
-	}
-
-	rid = rids.ids[0];
-
-	status = dcerpc_samr_OpenUser(b, mem_ctx,
-				      &domain_handle,
-				      SAMR_USER_ACCESS_CHANGE_PASSWORD,
-				      rid,
-				      &user_handle,
-				      &result);
-	if (!NT_STATUS_IS_OK(status)) {
-		errcode = W_ERROR_V(ntstatus_to_werror(status));
-		goto out;
-	}
-	if (!NT_STATUS_IS_OK(result)) {
-		errcode = W_ERROR_V(ntstatus_to_werror(result));
-		goto out;
-	}
-
-	if (encrypted == 0) {
-		E_deshash(pass1, old_lm_hash.hash);
-		E_deshash(pass2, new_lm_hash.hash);
-	} else {
-		ZERO_STRUCT(old_lm_hash);
-		ZERO_STRUCT(new_lm_hash);
-		memcpy(old_lm_hash.hash, pass1, MIN(strlen(pass1), 16));
-		memcpy(new_lm_hash.hash, pass1, MIN(strlen(pass2), 16));
-	}
-
-	status = dcerpc_samr_ChangePasswordUser(b, mem_ctx,
-						&user_handle,
-						true, /* lm_present */
-						&old_lm_hash,
-						&new_lm_hash,
-						false, /* nt_present */
-						NULL, /* old_nt_crypted */
-						NULL, /* new_nt_crypted */
-						false, /* cross1_present */
-						NULL, /* nt_cross */
-						false, /* cross2_present */
-						NULL, /* lm_cross */
-						&result);
-	if (!NT_STATUS_IS_OK(status)) {
-		errcode = W_ERROR_V(ntstatus_to_werror(status));
-		goto out;
-	}
-	if (!NT_STATUS_IS_OK(result)) {
-		errcode = W_ERROR_V(ntstatus_to_werror(result));
-		goto out;
-	}
-
-	errcode = NERR_Success;
- out:
-
-	if (b && is_valid_policy_hnd(&user_handle)) {
-		dcerpc_samr_Close(b, mem_ctx, &user_handle, &result);
-	}
-	if (b && is_valid_policy_hnd(&domain_handle)) {
-		dcerpc_samr_Close(b, mem_ctx, &domain_handle, &result);
-	}
-	if (b && is_valid_policy_hnd(&connect_handle)) {
-		dcerpc_samr_Close(b, mem_ctx, &connect_handle, &result);
-	}
-
-	memset((char *)pass1,'\0',sizeof(fstring));
-	memset((char *)pass2,'\0',sizeof(fstring));
-
-	SSVAL(*rparam,0,errcode);
-	SSVAL(*rparam,2,0);		/* converter word */
-	return(True);
 }
 
@@ -5785,5 +5540,4 @@
 	{"NetServerEnum3",	RAP_NetServerEnum3,	api_RNetServerEnum3}, /* anon OK */
 	{"WAccessGetUserPerms",RAP_WAccessGetUserPerms,api_WAccessGetUserPerms},
-	{"SetUserPassword",	RAP_WUserPasswordSet2,	api_SetUserPassword},
 	{"WWkstaUserLogon",	RAP_WWkstaUserLogon,	api_WWkstaUserLogon},
 	{"PrintJobInfo",	RAP_WPrintJobSetInfo,	api_PrintJobInfo},
Index: trunk/server/source3/smbd/mangle_hash.c
===================================================================
--- trunk/server/source3/smbd/mangle_hash.c	(revision 857)
+++ trunk/server/source3/smbd/mangle_hash.c	(revision 862)
Index: trunk/server/source3/smbd/mangle_hash2.c
===================================================================
--- trunk/server/source3/smbd/mangle_hash2.c	(revision 857)
+++ trunk/server/source3/smbd/mangle_hash2.c	(revision 862)
@@ -627,5 +627,6 @@
 		if (((unsigned int)name[0]) > 128 && (name[1] != 0)) {
 			/* Possible start of mb character. */
-			char mbc[2];
+			size_t size = 0;
+			(void)next_codepoint(name, &size);
 			/*
 			 * Note that if CH_UNIX is utf8 a string may be 3
@@ -635,7 +636,7 @@
 			 * JRA.
 			 */
-			if (convert_string(CH_UNIX, CH_UTF16LE, name, 2, mbc, 2, False) == 2) {
-				/* Was a good mb string. */
-				name += 2;
+			if (size > 1) {
+				/* Was a mb string. */
+				name += size;
 				continue;
 			}
Index: trunk/server/source3/smbd/msdfs.c
===================================================================
--- trunk/server/source3/smbd/msdfs.c	(revision 857)
+++ trunk/server/source3/smbd/msdfs.c	(revision 862)
@@ -975,4 +975,17 @@
 		DEBUG(3,("get_referred_path: No valid referrals for path %s\n",
 			dfs_path));
+		if (NT_STATUS_IS_OK(status)) {
+			/*
+			 * We are in an error path here (we
+			 * know it's not a DFS path), but
+			 * dfs_path_lookup() can return
+			 * NT_STATUS_OK. Ensure we always
+			 * return a valid error code.
+			 *
+			 * #9588 - ACLs are not inherited to directories
+			 *         for DFS shares.
+			 */
+			status = NT_STATUS_NOT_FOUND;
+		}
 		goto err_exit;
 	}
Index: trunk/server/source3/smbd/nttrans.c
===================================================================
--- trunk/server/source3/smbd/nttrans.c	(revision 857)
+++ trunk/server/source3/smbd/nttrans.c	(revision 862)
@@ -537,5 +537,6 @@
 				req->flags2 & FLAGS2_DFS_PATHNAMES,
 				fname,
-				0,
+				(create_disposition == FILE_CREATE)
+					? UCF_CREATING_FILE : 0,
 				NULL,
 				&smb_fname);
@@ -886,11 +887,6 @@
 	/* Ensure we have at least one thing set. */
 	if ((security_info_sent & (SECINFO_OWNER|SECINFO_GROUP|SECINFO_DACL|SECINFO_SACL)) == 0) {
-		if (security_info_sent & SECINFO_LABEL) {
-			/* Only consider SECINFO_LABEL if no other
-			   bits are set. Just like W2K3 we don't
-			   store this. */
-			return NT_STATUS_OK;
-		}
-		return NT_STATUS_INVALID_PARAMETER;
+		/* Just like W2K3 */
+		return NT_STATUS_OK;
 	}
 
@@ -990,5 +986,17 @@
 			break;
 		}
+
+		/* Integer wrap protection for the increment. */
+		if (offset + next_offset < offset) {
+			break;
+		}
+
 		offset += next_offset;
+
+		/* Integer wrap protection for while loop. */
+		if (offset + 4 < offset) {
+			break;
+		}
+
 	}
 
@@ -1159,5 +1167,6 @@
 				req->flags2 & FLAGS2_DFS_PATHNAMES,
 				fname,
-				0,
+				(create_disposition == FILE_CREATE)
+					? UCF_CREATING_FILE : 0,
 				NULL,
 				&smb_fname);
Index: trunk/server/source3/smbd/open.c
===================================================================
--- trunk/server/source3/smbd/open.c	(revision 857)
+++ trunk/server/source3/smbd/open.c	(revision 862)
@@ -59,4 +59,11 @@
 	}
 
+	/*
+	 * If we can access the path to this file, by
+	 * default we have FILE_READ_ATTRIBUTES from the
+	 * containing directory. See the section:
+	 * "Algorithm to Check Access to an Existing File"
+	 * in MS-FSA.pdf.
+	 */
 	return se_access_check(sd,
 				token,
@@ -143,4 +150,46 @@
 
 	return status;
+}
+
+/****************************************************************************
+ Ensure when opening a base file for a stream open that we have permissions
+ to do so given the access mask on the base file.
+****************************************************************************/
+
+static NTSTATUS check_base_file_access(struct connection_struct *conn,
+				struct smb_filename *smb_fname,
+				uint32_t access_mask)
+{
+	uint32_t access_granted = 0;
+	NTSTATUS status;
+
+	status = smbd_calculate_access_mask(conn, smb_fname,
+					false,
+					access_mask,
+					&access_mask);
+	if (!NT_STATUS_IS_OK(status)) {
+		DEBUG(10, ("smbd_calculate_access_mask "
+			"on file %s returned %s\n",
+			smb_fname_str_dbg(smb_fname),
+			nt_errstr(status)));
+		return status;
+	}
+
+	if (access_mask & (FILE_WRITE_DATA|FILE_APPEND_DATA)) {
+		uint32_t dosattrs;
+		if (!CAN_WRITE(conn)) {
+			return NT_STATUS_ACCESS_DENIED;
+		}
+		dosattrs = dos_mode(conn, smb_fname);
+ 		if (IS_DOS_READONLY(dosattrs)) {
+			return NT_STATUS_ACCESS_DENIED;
+		}
+	}
+
+
+	return smbd_check_open_rights(conn,
+				smb_fname,
+				access_mask,
+				&access_granted);
 }
 
@@ -1417,5 +1466,12 @@
 			}
 
-			access_mask = access_granted;
+			/*
+			 * If we can access the path to this file, by
+			 * default we have FILE_READ_ATTRIBUTES from the
+			 * containing directory. See the section.
+			 * "Algorithm to Check Access to an Existing File"
+			 * in MS-FSA.pdf.
+			 */
+			access_mask = access_granted | FILE_READ_ATTRIBUTES;
 		} else {
 			access_mask = FILE_GENERIC_ALL;
@@ -1989,8 +2045,9 @@
 			/*
 			 * If we're returning a share violation, ensure we
-			 * cope with the braindead 1 second delay.
+			 * cope with the braindead 1 second delay (SMB1 only).
 			 */
 
 			if (!(oplock_request & INTERNAL_OPEN_ONLY) &&
+			    !conn->sconn->using_smb2 &&
 			    lp_defer_sharing_violations()) {
 				struct timeval timeout;
@@ -2753,6 +2810,6 @@
 	mtimespec = smb_dname->st.st_ex_mtime;
 
-	/* Temporary access mask used to open the directory fd. */
-	fsp->access_mask = FILE_READ_DATA | FILE_READ_ATTRIBUTES;
+	fsp->access_mask = access_mask;
+
 #ifdef O_DIRECTORY
 	status = fd_open(conn, fsp, O_RDONLY|O_DIRECTORY, 0);
@@ -3213,4 +3270,23 @@
 			DEBUG(10, ("Unable to stat stream: %s\n",
 				   smb_fname_str_dbg(smb_fname_base)));
+		} else {
+			/*
+			 * https://bugzilla.samba.org/show_bug.cgi?id=10229
+			 * We need to check if the requested access mask
+			 * could be used to open the underlying file (if
+			 * it existed), as we're passing in zero for the
+			 * access mask to the base filename.
+			 */
+			status = check_base_file_access(conn,
+							smb_fname_base,
+							access_mask);
+
+			if (!NT_STATUS_IS_OK(status)) {
+				DEBUG(10, ("Permission check "
+					"for base %s failed: "
+					"%s\n", smb_fname->base_name,
+					nt_errstr(status)));
+				goto fail;
+			}
 		}
 
Index: trunk/server/source3/smbd/oplock_linux.c
===================================================================
--- trunk/server/source3/smbd/oplock_linux.c	(revision 857)
+++ trunk/server/source3/smbd/oplock_linux.c	(revision 862)
@@ -76,24 +76,31 @@
 {
 	int ret;
+	int saved_errno;
+
+	/*
+	 * Ensure the lease owner is root to allow
+	 * correct delivery of lease-break signals.
+	 */
+
+	become_root();
 
 	/* First set the signal handler. */
 	if (linux_set_lease_sighandler(fd) == -1) {
-		return -1;
+		saved_errno = errno;
+		ret = -1;
+		goto out;
 	}
 	ret = fcntl(fd, F_SETLEASE, leasetype);
-	if (ret == -1 && errno == EACCES) {
-		set_effective_capability(LEASE_CAPABILITY);
-		/*
-		 * Bug 8974 - work around Linux kernel bug
-		 * https://bugzilla.kernel.org/show_bug.cgi?id=43336.
-		 * "fcntl(F_SETLEASE) resets signal number when
-		 *  called multiple times"
-		 */
-		if (linux_set_lease_sighandler(fd) == -1) {
-			return -1;
-		}
-		ret = fcntl(fd, F_SETLEASE, leasetype);
-	}
-
+	if (ret == -1) {
+		saved_errno = errno;
+	}
+
+  out:
+
+	unbecome_root();
+
+	if (ret == -1) {
+		errno = saved_errno;
+	}
 	return ret;
 }
Index: trunk/server/source3/smbd/posix_acls.c
===================================================================
--- trunk/server/source3/smbd/posix_acls.c	(revision 857)
+++ trunk/server/source3/smbd/posix_acls.c	(revision 862)
@@ -1373,5 +1373,9 @@
 		if (pace->type == SMB_ACL_USER_OBJ) {
 
-			if (setting_acl && !is_default_acl) {
+			if (setting_acl) {
+				/*
+				 * Ensure we have default parameters for the
+				 * user (owner) even on default ACLs.
+				 */
 				apply_default_perms(params, is_directory, pace, S_IRUSR);
 			}
@@ -1453,7 +1457,9 @@
 			}
 
-			if (!is_default_acl) {
-				apply_default_perms(params, is_directory, pace, S_IRUSR);
-			}
+			/*
+			 * Ensure we have default parameters for the
+			 * user (owner) even on default ACLs.
+			 */
+			apply_default_perms(params, is_directory, pace, S_IRUSR);
 		} else {
 			pace->perms = unix_perms_to_acl_perms(pst->st_ex_mode, S_IRUSR, S_IWUSR, S_IXUSR);
Index: trunk/server/source3/smbd/process.c
===================================================================
--- trunk/server/source3/smbd/process.c	(revision 857)
+++ trunk/server/source3/smbd/process.c	(revision 862)
@@ -155,5 +155,5 @@
 	}
 
-	len = smb_len(buf_out) + 4;
+	len = smb_len_large(buf_out) + 4;
 
 	ret = write_data(sconn->sock, buf_out+nwritten, len - nwritten);
@@ -923,57 +923,4 @@
 	DEBUG(10,("event_add_idle: %s %p\n", result->name, result->te));
 	return result;
-}
-
-static void smbd_sig_term_handler(struct tevent_context *ev,
-				  struct tevent_signal *se,
-				  int signum,
-				  int count,
-				  void *siginfo,
-				  void *private_data)
-{
-	exit_server_cleanly("termination signal");
-}
-
-void smbd_setup_sig_term_handler(void)
-{
-	struct tevent_signal *se;
-
-	se = tevent_add_signal(smbd_event_context(),
-			       smbd_event_context(),
-			       SIGTERM, 0,
-			       smbd_sig_term_handler,
-			       NULL);
-	if (!se) {
-		exit_server("failed to setup SIGTERM handler");
-	}
-}
-
-static void smbd_sig_hup_handler(struct tevent_context *ev,
-				  struct tevent_signal *se,
-				  int signum,
-				  int count,
-				  void *siginfo,
-				  void *private_data)
-{
-	struct messaging_context *msg_ctx = talloc_get_type_abort(
-		private_data, struct messaging_context);
-	change_to_root_user();
-	DEBUG(1,("Reloading services after SIGHUP\n"));
-	reload_services(msg_ctx, smbd_server_conn->sock, False);
-	if (am_parent) {
-		pcap_cache_reload(ev, msg_ctx, &reload_pcap_change_notify);
-	}
-}
-
-void smbd_setup_sig_hup_handler(struct tevent_context *ev,
-				struct messaging_context *msg_ctx)
-{
-	struct tevent_signal *se;
-
-	se = tevent_add_signal(ev, ev, SIGHUP, 0, smbd_sig_hup_handler,
-			       msg_ctx);
-	if (!se) {
-		exit_server("failed to setup SIGHUP handler");
-	}
 }
 
@@ -2034,5 +1981,6 @@
 		 */
 		req->chain_outbuf = TALLOC_REALLOC_ARRAY(
-			req, req->outbuf, uint8_t, smb_len(req->outbuf) + 4);
+			req, req->outbuf, uint8_t,
+			smb_len_large(req->outbuf) + 4);
 		if (req->chain_outbuf == NULL) {
 			smb_panic("talloc failed");
Index: trunk/server/source3/smbd/proto.h
===================================================================
--- trunk/server/source3/smbd/proto.h	(revision 857)
+++ trunk/server/source3/smbd/proto.h	(revision 862)
@@ -770,7 +770,4 @@
 /* The following definitions come from smbd/process.c  */
 
-void smbd_setup_sig_term_handler(void);
-void smbd_setup_sig_hup_handler(struct tevent_context *ev,
-				struct messaging_context *msg_ctx);
 bool srv_send_smb(struct smbd_server_connection *sconn, char *buffer,
 		  bool no_signing, uint32_t seqnum,
@@ -981,8 +978,8 @@
 void reload_printers(struct tevent_context *ev,
 		     struct messaging_context *msg_ctx);
+void reload_printers_full(struct tevent_context *ev,
+			  struct messaging_context *msg_ctx);
 bool reload_services(struct messaging_context *msg_ctx, int smb_sock,
 		     bool test);
-void reload_pcap_change_notify(struct tevent_context *ev,
-			       struct messaging_context *msg_ctx);
 void exit_server(const char *const explanation);
 void exit_server_cleanly(const char *const explanation);
Index: trunk/server/source3/smbd/reply.c
===================================================================
--- trunk/server/source3/smbd/reply.c	(revision 857)
+++ trunk/server/source3/smbd/reply.c	(revision 862)
@@ -1749,9 +1749,18 @@
 	}
 
+	if (!map_open_params_to_ntcreate(fname, deny_mode,
+					OPENX_FILE_EXISTS_OPEN, &access_mask,
+					&share_mode, &create_disposition,
+					&create_options, &private_flags)) {
+		reply_force_doserror(req, ERRDOS, ERRbadaccess);
+		goto out;
+	}
+
 	status = filename_convert(ctx,
 				conn,
 				req->flags2 & FLAGS2_DFS_PATHNAMES,
 				fname,
-				0,
+				(create_disposition == FILE_CREATE)
+					? UCF_CREATING_FILE : 0,
 				NULL,
 				&smb_fname);
@@ -1764,12 +1773,4 @@
 		}
 		reply_nterror(req, status);
-		goto out;
-	}
-
-	if (!map_open_params_to_ntcreate(smb_fname->base_name, deny_mode,
-					 OPENX_FILE_EXISTS_OPEN, &access_mask,
-					 &share_mode, &create_disposition,
-					 &create_options, &private_flags)) {
-		reply_force_doserror(req, ERRDOS, ERRbadaccess);
 		goto out;
 	}
@@ -1924,9 +1925,20 @@
 	}
 
+	if (!map_open_params_to_ntcreate(fname, deny_mode,
+					smb_ofun,
+					&access_mask, &share_mode,
+					&create_disposition,
+					&create_options,
+					&private_flags)) {
+		reply_force_doserror(req, ERRDOS, ERRbadaccess);
+		goto out;
+	}
+
 	status = filename_convert(ctx,
 				conn,
 				req->flags2 & FLAGS2_DFS_PATHNAMES,
 				fname,
-				0,
+				(create_disposition == FILE_CREATE)
+					? UCF_CREATING_FILE : 0,
 				NULL,
 				&smb_fname);
@@ -1939,14 +1951,4 @@
 		}
 		reply_nterror(req, status);
-		goto out;
-	}
-
-	if (!map_open_params_to_ntcreate(smb_fname->base_name, deny_mode,
-					 smb_ofun,
-					 &access_mask, &share_mode,
-					 &create_disposition,
-					 &create_options,
-					 &private_flags)) {
-		reply_force_doserror(req, ERRDOS, ERRbadaccess);
 		goto out;
 	}
@@ -2146,5 +2148,5 @@
 				req->flags2 & FLAGS2_DFS_PATHNAMES,
 				fname,
-				0,
+				UCF_CREATING_FILE,
 				NULL,
 				&smb_fname);
@@ -2240,11 +2242,12 @@
 	connection_struct *conn = req->conn;
 	struct smb_filename *smb_fname = NULL;
+	char *wire_name = NULL;
 	char *fname = NULL;
 	uint32 fattr;
 	files_struct *fsp;
 	int oplock_request;
-	int tmpfd;
 	char *s;
 	NTSTATUS status;
+	int i;
 	TALLOC_CTX *ctx = talloc_tos();
 
@@ -2259,5 +2262,5 @@
 	oplock_request = CORE_OPLOCK_REQUEST(req->inbuf);
 
-	srvstr_get_path_req(ctx, req, &fname, (const char *)req->buf+1,
+	srvstr_get_path_req(ctx, req, &wire_name, (const char *)req->buf+1,
 			    STR_TERMINATE, &status);
 	if (!NT_STATUS_IS_OK(status)) {
@@ -2265,69 +2268,78 @@
 		goto out;
 	}
-	if (*fname) {
-		fname = talloc_asprintf(ctx,
-				"%s/TMXXXXXX",
-				fname);
-	} else {
-		fname = talloc_strdup(ctx, "TMXXXXXX");
-	}
-
-	if (!fname) {
-		reply_nterror(req, NT_STATUS_NO_MEMORY);
-		goto out;
-	}
-
-	status = filename_convert(ctx, conn,
+
+	for (i = 0; i < 10; i++) {
+		if (*wire_name) {
+			fname = talloc_asprintf(ctx,
+					"%s/TMP%s",
+					wire_name,
+					generate_random_str_list(ctx, 5, "0123456789"));
+		} else {
+			fname = talloc_asprintf(ctx,
+					"TMP%s",
+					generate_random_str_list(ctx, 5, "0123456789"));
+		}
+
+		if (!fname) {
+			reply_nterror(req, NT_STATUS_NO_MEMORY);
+			goto out;
+		}
+
+		status = filename_convert(ctx, conn,
 				req->flags2 & FLAGS2_DFS_PATHNAMES,
 				fname,
-				0,
+				UCF_CREATING_FILE,
 				NULL,
 				&smb_fname);
-	if (!NT_STATUS_IS_OK(status)) {
-		if (NT_STATUS_EQUAL(status,NT_STATUS_PATH_NOT_COVERED)) {
-			reply_botherror(req, NT_STATUS_PATH_NOT_COVERED,
+		if (!NT_STATUS_IS_OK(status)) {
+			if (NT_STATUS_EQUAL(status,NT_STATUS_PATH_NOT_COVERED)) {
+				reply_botherror(req, NT_STATUS_PATH_NOT_COVERED,
 					ERRSRV, ERRbadpath);
+				goto out;
+			}
+			reply_nterror(req, status);
 			goto out;
 		}
+
+		/* Create the file. */
+		status = SMB_VFS_CREATE_FILE(
+			conn,                                   /* conn */
+			req,                                    /* req */
+			0,                                      /* root_dir_fid */
+			smb_fname,                              /* fname */
+			FILE_GENERIC_READ | FILE_GENERIC_WRITE, /* access_mask */
+			FILE_SHARE_READ | FILE_SHARE_WRITE,     /* share_access */
+			FILE_CREATE,                            /* create_disposition*/
+			0,                                      /* create_options */
+			fattr,                                  /* file_attributes */
+			oplock_request,                         /* oplock_request */
+			0,                                      /* allocation_size */
+			0,                                      /* private_flags */
+			NULL,                                   /* sd */
+			NULL,                                   /* ea_list */
+			&fsp,                                   /* result */
+			NULL);                                  /* pinfo */
+
+		if (NT_STATUS_EQUAL(status, NT_STATUS_OBJECT_NAME_COLLISION)) {
+			TALLOC_FREE(fname);
+			TALLOC_FREE(smb_fname);
+			continue;
+		}
+
+		if (!NT_STATUS_IS_OK(status)) {
+			if (open_was_deferred(req->mid)) {
+				/* We have re-scheduled this call. */
+				goto out;
+			}
+			reply_openerror(req, status);
+			goto out;
+		}
+
+		break;
+	}
+
+	if (i == 10) {
+		/* Collision after 10 times... */
 		reply_nterror(req, status);
-		goto out;
-	}
-
-	tmpfd = mkstemp(smb_fname->base_name);
-	if (tmpfd == -1) {
-		reply_nterror(req, map_nt_error_from_unix(errno));
-		goto out;
-	}
-
-	SMB_VFS_STAT(conn, smb_fname);
-
-	/* We should fail if file does not exist. */
-	status = SMB_VFS_CREATE_FILE(
-		conn,					/* conn */
-		req,					/* req */
-		0,					/* root_dir_fid */
-		smb_fname,				/* fname */
-		FILE_GENERIC_READ | FILE_GENERIC_WRITE, /* access_mask */
-		FILE_SHARE_READ | FILE_SHARE_WRITE,	/* share_access */
-		FILE_OPEN,				/* create_disposition*/
-		0,					/* create_options */
-		fattr,					/* file_attributes */
-		oplock_request,				/* oplock_request */
-		0,					/* allocation_size */
-		0,					/* private_flags */
-		NULL,					/* sd */
-		NULL,					/* ea_list */
-		&fsp,					/* result */
-		NULL);					/* pinfo */
-
-	/* close fd from mkstemp() */
-	close(tmpfd);
-
-	if (!NT_STATUS_IS_OK(status)) {
-		if (open_was_deferred(req->mid)) {
-			/* We have re-scheduled this call. */
-			goto out;
-		}
-		reply_openerror(req, status);
 		goto out;
 	}
@@ -2370,4 +2382,6 @@
  out:
 	TALLOC_FREE(smb_fname);
+	TALLOC_FREE(fname);
+	TALLOC_FREE(wire_name);
 	END_PROFILE(SMBctemp);
 	return;
@@ -3137,6 +3151,5 @@
 	START_PROFILE(SMBreadbraw);
 
-	if (srv_is_signing_active(sconn) ||
-	    is_encrypted_packet(req->inbuf)) {
+	if (srv_is_signing_active(sconn) || req->encrypted) {
 		exit_server_cleanly("reply_readbraw: SMB signing/sealing is active - "
 			"raw reads/writes are disallowed.");
@@ -3531,9 +3544,4 @@
 	int saved_errno = 0;
 
-	if(fsp_stat(fsp) == -1) {
-		reply_nterror(req, map_nt_error_from_unix(errno));
-		return;
-	}
-
 	init_strict_lock_struct(fsp, (uint64_t)req->smbpid,
 	    (uint64_t)startpos, (uint64_t)smb_maxcnt, READ_LOCK,
@@ -3543,14 +3551,4 @@
 		reply_nterror(req, NT_STATUS_FILE_LOCK_CONFLICT);
 		return;
-	}
-
-	if (!S_ISREG(fsp->fsp_name->st.st_ex_mode) ||
-			(startpos > fsp->fsp_name->st.st_ex_size)
-			|| (smb_maxcnt > (fsp->fsp_name->st.st_ex_size - startpos))) {
-		/*
-		 * We already know that we would do a short read, so don't
-		 * try the sendfile() path.
-		 */
-		goto nosendfile_read;
 	}
 
@@ -3562,9 +3560,24 @@
 
 	if (!req_is_in_chain(req) &&
-	    !is_encrypted_packet(req->inbuf) && (fsp->base_fsp == NULL) &&
+	    !req->encrypted && (fsp->base_fsp == NULL) &&
 	    (fsp->wcp == NULL) &&
 	    lp_use_sendfile(SNUM(conn), req->sconn->smb1.signing_state) ) {
 		uint8 headerbuf[smb_size + 12 * 2];
 		DATA_BLOB header;
+
+		if(fsp_stat(fsp) == -1) {
+			reply_nterror(req, map_nt_error_from_unix(errno));
+			goto strict_unlock;
+		}
+
+		if (!S_ISREG(fsp->fsp_name->st.st_ex_mode) ||
+		    (startpos > fsp->fsp_name->st.st_ex_size) ||
+		    (smb_maxcnt > (fsp->fsp_name->st.st_ex_size - startpos))) {
+			/*
+			 * We already know that we would do a short read, so don't
+			 * try the sendfile() path.
+			 */
+			goto nosendfile_read;
+		}
 
 		/*
@@ -3766,6 +3779,5 @@
 			}
 			/* We currently don't do this on signed or sealed data. */
-			if (srv_is_signing_active(req->sconn) ||
-			    is_encrypted_packet(req->inbuf)) {
+			if (srv_is_signing_active(req->sconn) || req->encrypted) {
 				reply_nterror(req, NT_STATUS_NOT_SUPPORTED);
 				END_PROFILE(SMBreadX);
@@ -5530,5 +5542,5 @@
 				 req->flags2 & FLAGS2_DFS_PATHNAMES,
 				 directory,
-				 0,
+				 UCF_CREATING_FILE,
 				 NULL,
 				 &smb_dname);
@@ -6195,5 +6207,6 @@
 			  smb_fname_str_dbg(smb_fname_dst)));
 
-		if (!lp_posix_pathnames() &&
+		if (!fsp->is_directory &&
+		    !lp_posix_pathnames() &&
 		    (lp_map_archive(SNUM(conn)) ||
 		    lp_store_dos_attributes(SNUM(conn)))) {
Index: trunk/server/source3/smbd/server.c
===================================================================
--- trunk/server/source3/smbd/server.c	(revision 857)
+++ trunk/server/source3/smbd/server.c	(revision 862)
@@ -21,15 +21,4 @@
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
-#ifdef __OS2__
-#define INCL_DOSEXCEPTIONS
-#define INCL_DOSPROCESS
-#define INCL_DOSMODULEMGR
-#define INCL_LOADEXCEPTQ
-#define INCL_FORKEXCEPTQ
-#include "os2.h"
-#include "exceptq.h"
-#undef FILE_CREATE
-#undef FILE_OPEN
-#endif
 
 #include "includes.h"
@@ -120,8 +109,5 @@
 	change_to_root_user();
 	reload_services(msg, smbd_server_conn->sock, False);
-	if (am_parent) {
-		pcap_cache_reload(ev_ctx, msg,
-				  &reload_pcap_change_notify);
-	}
+	/* printer reload triggered by background printing process */
 }
 
@@ -143,4 +129,55 @@
 	reload_printers(ev_ctx, msg);
 }
+
+static void smbd_sig_term_handler(struct tevent_context *ev,
+				  struct tevent_signal *se,
+				  int signum,
+				  int count,
+				  void *siginfo,
+				  void *private_data)
+{
+	exit_server_cleanly("termination signal");
+}
+
+static void smbd_setup_sig_term_handler(void)
+{
+	struct tevent_signal *se;
+
+	se = tevent_add_signal(smbd_event_context(),
+			       smbd_event_context(),
+			       SIGTERM, 0,
+			       smbd_sig_term_handler,
+			       NULL);
+	if (!se) {
+		exit_server("failed to setup SIGTERM handler");
+	}
+}
+
+static void smbd_sig_hup_handler(struct tevent_context *ev,
+				 struct tevent_signal *se,
+				 int signum,
+				 int count,
+				 void *siginfo,
+				 void *private_data)
+{
+	struct messaging_context *msg_ctx = talloc_get_type_abort(
+		private_data, struct messaging_context);
+	change_to_root_user();
+	DEBUG(1,("Reloading services after SIGHUP\n"));
+	reload_services(msg_ctx, smbd_server_conn->sock, false);
+}
+
+static void smbd_setup_sig_hup_handler(struct tevent_context *ev,
+				       struct messaging_context *msg_ctx)
+{
+	struct tevent_signal *se;
+
+	se = tevent_add_signal(ev, ev, SIGHUP, 0, smbd_sig_hup_handler,
+			       msg_ctx);
+	if (!se) {
+		exit_server("failed to setup SIGHUP handler");
+	}
+}
+
 
 /*******************************************************************
@@ -784,6 +821,4 @@
 			   smb_stat_cache_delete);
 	messaging_register(msg_ctx, NULL, MSG_DEBUG, smbd_msg_debug);
-	messaging_register(msg_ctx, server_event_context(), MSG_PRINTER_PCAP,
-			   smb_pcap_updated);
 	brl_register_msgs(msg_ctx);
 
@@ -909,8 +944,4 @@
 	NTSTATUS status;
 
-#ifdef __OS2__
-	EXCEPTIONREGISTRATIONRECORD ExRegRec;
-	LoadExceptq(&ExRegRec, NULL, NULL);
-#endif
 	/*
 	 * Do this before any other talloc operation
@@ -1264,8 +1295,4 @@
 		exit(1);
 
-	/* Publish nt printers, this requires a working winreg pipe */
-	pcap_cache_reload(server_event_context(), smbd_messaging_context(),
-			  &reload_printers);
-
 	/* only start the background queue daemon if we are 
 	   running as a daemon -- bad things will happen if
@@ -1275,6 +1302,17 @@
 	if (is_daemon && !interactive
 	    && lp_parm_bool(-1, "smbd", "backgroundqueue", true)) {
-		start_background_queue(smbd_event_context(),
-				       smbd_messaging_context());
+		/* background queue is responsible for printcap cache updates */
+		messaging_register(smbd_server_conn->msg_ctx,
+				   smbd_event_context(),
+				   MSG_PRINTER_PCAP, smb_pcap_updated);
+		start_background_queue(server_event_context(),
+				       smbd_server_conn->msg_ctx);
+	} else {
+		DEBUG(3, ("running without background printer process, dynamic "
+			  "printer updates disabled\n"));
+		/* Publish nt printers, this requires a working winreg pipe */
+		pcap_cache_reload(server_event_context(),
+				  smbd_messaging_context(),
+				  &reload_printers_full);
 	}
 
@@ -1335,7 +1373,4 @@
 	exit_server_cleanly(NULL);
 	TALLOC_FREE(frame);
-#ifdef __OS2__
-	UninstallExceptq(&ExRegRec);
-#endif
 	return(0);
 }
Index: trunk/server/source3/smbd/server_reload.c
===================================================================
--- trunk/server/source3/smbd/server_reload.c	(revision 857)
+++ trunk/server/source3/smbd/server_reload.c	(revision 862)
@@ -37,6 +37,49 @@
 		     struct messaging_context *msg_ctx)
 {
+	int n_services;
+	int pnum;
+	int snum;
+	const char *pname;
+
+	n_services = lp_numservices();
+	pnum = lp_servicenumber(PRINTERS_NAME);
+
+	DEBUG(10, ("reloading printer services from pcap cache\n"));
+
+	/*
+	 * Add default config for printers added to smb.conf file and remove
+	 * stale printers
+	 */
+	for (snum = 0; snum < n_services; snum++) {
+		/* avoid removing PRINTERS_NAME */
+		if (snum == pnum) {
+			continue;
+		}
+
+		/* skip no-printer services */
+		if (!(lp_snum_ok(snum) && lp_print_ok(snum))) {
+			continue;
+		}
+
+		pname = lp_printername(snum);
+
+		/* check printer, but avoid removing non-autoloaded printers */
+		if (lp_autoloaded(snum) && !pcap_printername_ok(pname)) {
+			DEBUG(3, ("removing stale printer %s\n", pname));
+			lp_killservice(snum);
+		}
+	}
+
+	/* Make sure deleted printers are gone */
+	load_printers(ev, msg_ctx);
+}
+
+/****************************************************************************
+ purge stale printers and reload from pre-populated pcap cache
+**************************************************************************/
+void reload_printers_full(struct tevent_context *ev,
+			  struct messaging_context *msg_ctx)
+{
 	struct auth_serversupplied_info *session_info = NULL;
-	struct spoolss_PrinterInfo2 *pinfo2 = NULL;
 	int n_services;
 	int pnum;
@@ -46,15 +89,10 @@
 	NTSTATUS status;
 
-	load_printers(ev, msg_ctx);
-
 	n_services = lp_numservices();
 	pnum = lp_servicenumber(PRINTERS_NAME);
 
-	DEBUG(10, ("reloading printer services from pcap cache\n"));
-
-	status = make_session_info_system(talloc_tos(), &session_info);
+	status = make_session_info_system(talloc_new(NULL), &session_info);
 	if (!NT_STATUS_IS_OK(status)) {
-		DEBUG(3, ("reload_printers: "
-			  "Could not create system session_info\n"));
+		DEBUG(3, ("Could not create system session_info\n"));
 		/* can't remove stale printers before we
 		 * are fully initilized */
@@ -82,10 +120,10 @@
 		/* check printer, but avoid removing non-autoloaded printers */
 		if (lp_autoloaded(snum) && !pcap_printername_ok(pname)) {
-			DEBUG(3, ("removing stale printer %s\n", pname));
-
+			struct spoolss_PrinterInfo2 *pinfo2 = NULL;
 			if (is_printer_published(session_info, session_info,
 						 msg_ctx,
-						 NULL, lp_servicename(snum),
-						 NULL, &pinfo2)) {
+						 NULL,
+						 lp_servicename(snum),
+						 &pinfo2)) {
 				nt_printer_publish(session_info,
 						   session_info,
@@ -97,5 +135,4 @@
 			nt_printer_remove(session_info, session_info, msg_ctx,
 					  pname);
-			lp_killservice(snum);
 		} else {
 			DEBUG(8, ("Adding default registry entry for printer "
@@ -106,6 +143,6 @@
 	}
 
-	/* Make sure deleted printers are gone */
-	load_printers(ev, msg_ctx);
+	/* finally, purge old snums */
+	reload_printers(ev, msg_ctx);
 
 	TALLOC_FREE(session_info);
@@ -161,20 +198,2 @@
 	return(ret);
 }
-
-/****************************************************************************
- Notify smbds of new printcap data
-**************************************************************************/
-void reload_pcap_change_notify(struct tevent_context *ev,
-			       struct messaging_context *msg_ctx)
-{
-	/*
-	 * Reload the printers first in the background process so that
-	 * newly added printers get default values created in the registry.
-	 *
-	 * This will block the process for some time (~1 sec per printer), but
-	 * it doesn't block smbd's servering clients.
-	 */
-	reload_printers(ev, msg_ctx);
-
-	message_send_all(msg_ctx, MSG_PRINTER_PCAP, NULL, 0, NULL);
-}
Index: trunk/server/source3/smbd/service.c
===================================================================
--- trunk/server/source3/smbd/service.c	(revision 857)
+++ trunk/server/source3/smbd/service.c	(revision 862)
@@ -162,5 +162,5 @@
 	/* Assume OS/2 users are smart enough to put a correct path in smb.conf, and simply copy the string */
         safe_strcpy(destname, connectpath, strlen(connectpath));
-#endif	
+#endif
 
 	DEBUG(10,("set_conn_connectpath: service %s, connectpath = %s\n",
@@ -662,5 +662,5 @@
                 }
 
-		return make_serverinfo_from_username(mem_ctx, user, guest,
+		return make_serverinfo_from_username(mem_ctx, user, guest, guest,
 						     presult);
         }
@@ -696,5 +696,5 @@
 
 		status = make_serverinfo_from_username(
-			conn, fuser, conn->session_info->guest,
+			conn, fuser, false, conn->session_info->guest,
 			&forced_serverinfo);
 		if (!NT_STATUS_IS_OK(status)) {
Index: trunk/server/source3/smbd/sesssetup.c
===================================================================
--- trunk/server/source3/smbd/sesssetup.c	(revision 857)
+++ trunk/server/source3/smbd/sesssetup.c	(revision 862)
@@ -910,4 +910,11 @@
 			(unsigned int)pblob->length ));
 
+		if (pblob->length > pad->needed_len) {
+			DEBUG(2, ("subsequent security token data length %u "
+				  "exceeds expected length %u\n",
+				  (unsigned int)pblob->length,
+				  (unsigned int)pad->needed_len));
+		}
+
 		tmp_blob = data_blob(NULL,
 				pad->partial_data.length + copy_len);
@@ -1170,4 +1177,10 @@
 	status = check_spnego_blob_complete(sconn, smbpid, vuid, &blob1);
 	if (!NT_STATUS_IS_OK(status)) {
+		/*
+		 * Pack error response, ensuring to fill NativeOS, NativeLanMan
+		 * & PrimaryDomain fields on NT_STATUS_MORE_PROCESSING_REQUIRED
+		 */
+		reply_outbuf(req, 4, 0);
+		reply_sesssetup_blob(req, data_blob_null, status);
 		if (!NT_STATUS_EQUAL(status,
 				NT_STATUS_MORE_PROCESSING_REQUIRED)) {
@@ -1176,5 +1189,4 @@
 		}
 		data_blob_free(&blob1);
-		reply_nterror(req, nt_status_squash(status));
 		return;
 	}
Index: trunk/server/source3/smbd/smb2_create.c
===================================================================
--- trunk/server/source3/smbd/smb2_create.c	(revision 857)
+++ trunk/server/source3/smbd/smb2_create.c	(revision 862)
@@ -695,5 +695,6 @@
 					  smb1req->flags2 & FLAGS2_DFS_PATHNAMES,
 					  fname,
-					  0,
+					  (in_create_disposition == FILE_CREATE) ?
+						UCF_CREATING_FILE : 0,
 					  NULL,
 					  &smb_fname);
@@ -894,7 +895,4 @@
 		return false;
 	}
-	if (!smb2req->async) {
-		return false;
-	}
 	req = smb2req->subreq;
 	if (!req) {
@@ -903,4 +901,7 @@
 	state = tevent_req_data(req, struct smbd_smb2_create_state);
 	if (!state) {
+		return false;
+	}
+	if (!state->open_was_deferred) {
 		return false;
 	}
Index: trunk/server/source3/smbd/smb2_getinfo.c
===================================================================
--- trunk/server/source3/smbd/smb2_getinfo.c	(revision 857)
+++ trunk/server/source3/smbd/smb2_getinfo.c	(revision 862)
@@ -149,5 +149,8 @@
 	}
 
-	if (!NT_STATUS_IS_OK(call_status)) {
+	/* some GetInfo responses set STATUS_BUFFER_OVERFLOW and return partial,
+	   but valid data */
+	if (!(NT_STATUS_IS_OK(call_status) ||
+	      NT_STATUS_EQUAL(call_status, STATUS_BUFFER_OVERFLOW))) {
 		/* Return a specific error with data. */
 		error = smbd_smb2_request_error_ex(req,
@@ -186,5 +189,5 @@
 	outdyn = out_output_buffer;
 
-	error = smbd_smb2_request_done(req, outbody, &outdyn);
+	error = smbd_smb2_request_done_ex(req, call_status, outbody, &outdyn, __location__);
 	if (!NT_STATUS_IS_OK(error)) {
 		smbd_server_connection_terminate(req->sconn,
@@ -271,5 +274,5 @@
 
 	switch (in_info_type) {
-	case 0x01:/* SMB2_GETINFO_FILE */
+	case SMB2_GETINFO_FILE:
 	{
 		uint16_t file_info_level;
@@ -282,4 +285,5 @@
 		int lock_data_count = 0;
 		char *lock_data = NULL;
+		size_t fixed_portion;
 
 		ZERO_STRUCT(write_time_ts);
@@ -369,4 +373,5 @@
 					       STR_UNICODE,
 					       in_output_buffer_length,
+					       &fixed_portion,
 					       &data,
 					       &data_size);
@@ -377,4 +382,10 @@
 			}
 			tevent_req_nterror(req, status);
+			return tevent_req_post(req, ev);
+		}
+		if (in_output_buffer_length < fixed_portion) {
+			SAFE_FREE(data);
+			tevent_req_nterror(
+				req, NT_STATUS_INFO_LENGTH_MISMATCH);
 			return tevent_req_post(req, ev);
 		}
@@ -387,4 +398,9 @@
 				return tevent_req_post(req, ev);
 			}
+			if (data_size > in_output_buffer_length) {
+				state->out_output_buffer.length =
+					in_output_buffer_length;
+				status = STATUS_BUFFER_OVERFLOW;
+			}
 		}
 		SAFE_FREE(data);
@@ -392,9 +408,10 @@
 	}
 
-	case 0x02:/* SMB2_GETINFO_FS */
+	case SMB2_GETINFO_FS:
 	{
 		uint16_t file_info_level;
 		char *data = NULL;
 		int data_size = 0;
+		size_t fixed_portion;
 
 		/* the levels directly map to the passthru levels */
@@ -405,7 +422,12 @@
 					 STR_UNICODE,
 					 in_output_buffer_length,
+					 &fixed_portion,
+					 fsp->fsp_name,
 					 &data,
 					 &data_size);
-		if (!NT_STATUS_IS_OK(status)) {
+		/* some responses set STATUS_BUFFER_OVERFLOW and return
+		   partial, but valid data */
+		if (!(NT_STATUS_IS_OK(status) ||
+		      NT_STATUS_EQUAL(status, STATUS_BUFFER_OVERFLOW))) {
 			SAFE_FREE(data);
 			if (NT_STATUS_EQUAL(status, NT_STATUS_INVALID_LEVEL)) {
@@ -413,4 +435,10 @@
 			}
 			tevent_req_nterror(req, status);
+			return tevent_req_post(req, ev);
+		}
+		if (in_output_buffer_length < fixed_portion) {
+			SAFE_FREE(data);
+			tevent_req_nterror(
+				req, NT_STATUS_INFO_LENGTH_MISMATCH);
 			return tevent_req_post(req, ev);
 		}
@@ -423,4 +451,9 @@
 				return tevent_req_post(req, ev);
 			}
+			if (data_size > in_output_buffer_length) {
+				state->out_output_buffer.length =
+					in_output_buffer_length;
+				status = STATUS_BUFFER_OVERFLOW;
+			}
 		}
 		SAFE_FREE(data);
@@ -428,5 +461,5 @@
 	}
 
-	case 0x03:/* SMB2_GETINFO_SEC */
+	case SMB2_GETINFO_SECURITY:
 	{
 		uint8_t *p_marshalled_sd = NULL;
@@ -485,4 +518,5 @@
 	}
 
+	state->status = status;
 	tevent_req_done(req);
 	return tevent_req_post(req, ev);
Index: trunk/server/source3/smbd/smb2_server.c
===================================================================
--- trunk/server/source3/smbd/smb2_server.c	(revision 857)
+++ trunk/server/source3/smbd/smb2_server.c	(revision 862)
@@ -928,5 +928,4 @@
 	uint64_t message_id = 0;
 	uint64_t async_id = 0;
-	struct iovec *outvec = NULL;
 
 	if (!tevent_req_is_in_progress(subreq)) {
@@ -945,14 +944,25 @@
 		/*
 		 * We're trying to go async in a compound
-		 * request chain. This is not allowed.
-		 * Cancel the outstanding request.
-		 */
-		bool ok = tevent_req_cancel(req->subreq);
-		if (ok) {
-			return NT_STATUS_OK;
-		}
-		TALLOC_FREE(req->subreq);
-		return smbd_smb2_request_error(req,
-			NT_STATUS_INTERNAL_ERROR);
+		 * request chain.
+		 * This is only allowed for opens that
+		 * cause an oplock break, otherwise it
+		 * is not allowed. See [MS-SMB2].pdf
+		 * note <194> on Section 3.3.5.2.7.
+		 */
+		const uint8_t *inhdr =
+			(const uint8_t *)req->in.vector[i].iov_base;
+
+		if (SVAL(inhdr, SMB2_HDR_OPCODE) != SMB2_OP_CREATE) {
+			/*
+			 * Cancel the outstanding request.
+			 */
+			bool ok = tevent_req_cancel(req->subreq);
+			if (ok) {
+				return NT_STATUS_OK;
+			}
+			TALLOC_FREE(req->subreq);
+			return smbd_smb2_request_error(req,
+				NT_STATUS_INTERNAL_ERROR);
+                }
 	}
 
@@ -963,9 +973,11 @@
 	}
 
-	if (req->out.vector_count > 4) {
-		/* This is a compound reply. We
-		 * must do an interim response
-		 * followed by the async response
-		 * to match W2K8R2.
+	if (i > 1) {
+		/*
+		 * We're going async in a compound
+		 * chain after the first request has
+		 * already been processed. Send an
+		 * interim response containing the
+		 * set of replies already generated.
 		 */
 		status = smb2_send_async_interim_response(req);
@@ -974,22 +986,39 @@
 		}
 
-		/*
-		 * We're splitting off the last SMB2
-		 * request in a compound set, and the
-		 * smb2_send_async_interim_response()
-		 * call above just sent all the replies
-		 * for the previous SMB2 requests in
-		 * this compound set. So we're no longer
-		 * in the "compound_related_in_progress"
-		 * state, and this is no longer a compound
-		 * request.
-		 */
-		req->compound_related = false;
-		req->sconn->smb2.compound_related_in_progress = false;
+		req->current_idx = 1;
+
+		/*
+		 * Re-arrange the in.vectors to remove what
+		 * we just sent.
+		 */
+		memmove(&req->in.vector[1],
+			&req->in.vector[i],
+			sizeof(req->in.vector[0])*(req->in.vector_count - i));
+		req->in.vector_count = 1 + (req->in.vector_count - i);
+
+		smb2_setup_nbt_length(req->in.vector, req->in.vector_count);
+
+		/* Re-arrange the out.vectors to match. */
+		memmove(&req->out.vector[1],
+			&req->out.vector[i],
+			sizeof(req->out.vector[0])*(req->out.vector_count - i));
+		req->out.vector_count = 1 + (req->out.vector_count - i);
+
+		if (req->in.vector_count == 4) {
+			uint8_t *outhdr = (uint8_t *)req->out.vector[i].iov_base;
+			/*
+			 * We only have one remaining request as
+			 * we've processed everything else.
+			 * This is no longer a compound request.
+			 */
+			req->compound_related = false;
+			flags = (IVAL(outhdr, SMB2_HDR_FLAGS) & ~SMB2_HDR_FLAG_CHAINED);
+			SIVAL(outhdr, SMB2_HDR_FLAGS, flags);
+		}
 	}
 
 	/* Don't return an intermediate packet on a pipe read/write. */
 	if (req->tcon && req->tcon->compat_conn && IS_IPC(req->tcon->compat_conn)) {
-		goto ipc_out;
+		goto out;
 	}
 
@@ -1081,48 +1110,4 @@
 	/* Note we're going async with this request. */
 	req->async = true;
-
-  ipc_out:
-
-	/*
-	 * Now manipulate req so that the outstanding async request
-	 * is the only one left in the struct smbd_smb2_request.
-	 */
-
-	if (req->current_idx == 1) {
-		/* There was only one. */
-		goto out;
-	}
-
-	/* Re-arrange the in.vectors. */
-	req->in.vector[1] = req->in.vector[i];
-	req->in.vector[2] = req->in.vector[i+1];
-	req->in.vector[3] = req->in.vector[i+2];
-	req->in.vector_count = 4;
-	/* Reset the new in size. */
-	smb2_setup_nbt_length(req->in.vector, 4);
-
-	/* Now recreate the out.vectors. */
-	outvec = talloc_zero_array(req, struct iovec, 4);
-	if (!outvec) {
-		return NT_STATUS_NO_MEMORY;
-	}
-
-	/* 0 is always boilerplate and must
-	 * be of size 4 for the length field. */
-
-	outvec[0].iov_base = req->out.nbt_hdr;
-	outvec[0].iov_len = 4;
-	SIVAL(req->out.nbt_hdr, 0, 0);
-
-	if (!dup_smb2_vec3(outvec, &outvec[1], &req->out.vector[i])) {
-		return NT_STATUS_NO_MEMORY;
-	}
-
-	TALLOC_FREE(req->out.vector);
-
-	req->out.vector = outvec;
-
-	req->current_idx = 1;
-	req->out.vector_count = 4;
 
   out:
@@ -1178,4 +1163,12 @@
 		uint64_t message_id;
 		uint64_t async_id;
+
+		if (cur->compound_related) {
+			/*
+			 * Never cancel anything in a compound request.
+			 * Way too hard to deal with the result.
+			 */
+			continue;
+		}
 
 		i = cur->current_idx;
@@ -1361,5 +1354,4 @@
 	if (flags & SMB2_HDR_FLAG_CHAINED) {
 		req->compound_related = true;
-		req->sconn->smb2.compound_related_in_progress = true;
 	}
 
@@ -1803,4 +1795,23 @@
 			return NT_STATUS_NO_MEMORY;
 		}
+
+		if (req->do_signing) {
+			/*
+			 * We sign each reply as we go along.
+			 * We can do this as smb2_calculate_credits()
+			 * grants zero credits on every part of a
+			 * compound reply except the last one,
+			 * which is signed just before calling
+			 * tstream_writev_queue_send().
+			 */
+			NTSTATUS status;
+			status = smb2_signing_sign_pdu(req->session->session_key,
+					       &req->out.vector[i], 3);
+			if (!NT_STATUS_IS_OK(status)) {
+				TALLOC_FREE(im);
+				return status;
+			}
+		}
+
 		tevent_schedule_immediate(im,
 					req->sconn->smb2.event_ctx,
@@ -1812,5 +1823,4 @@
 	if (req->compound_related) {
 		req->compound_related = false;
-		req->sconn->smb2.compound_related_in_progress = false;
 	}
 
@@ -2529,12 +2539,4 @@
 	struct tevent_req *subreq;
 
-	if (sconn->smb2.compound_related_in_progress) {
-		/*
-		 * Can't read another until the related
-		 * compound is done.
-		 */
-		return NT_STATUS_OK;
-	}
-
 	if (tevent_queue_length(sconn->smb2.recv_queue) > 0) {
 		/*
Index: trunk/server/source3/smbd/smb2_tcon.c
===================================================================
--- trunk/server/source3/smbd/smb2_tcon.c	(revision 857)
+++ trunk/server/source3/smbd/smb2_tcon.c	(revision 862)
@@ -208,4 +208,13 @@
 	}
 
+	/* Don't allow connection if encryption is required. */
+	if (lp_smb_encrypt(snum) == Required) {
+		DEBUG(0,("Connection refused on share %s as encryption is"
+			" required on this share and SMB2 does not support"
+			" this.\n",
+			lp_servicename(snum)));
+		return NT_STATUS_ACCESS_DENIED;
+	}
+
 	/* create a new tcon as child of the session */
 	tcon = talloc_zero(req->session, struct smbd_smb2_tcon);
Index: trunk/server/source3/smbd/trans2.c
===================================================================
--- trunk/server/source3/smbd/trans2.c	(revision 857)
+++ trunk/server/source3/smbd/trans2.c	(revision 862)
@@ -25,4 +25,5 @@
 
 #include "includes.h"
+#include "ntioctl.h"
 #include "system/filesys.h"
 #include "version.h"
@@ -337,4 +338,13 @@
 		}
 
+		if (listp->ea.value.length == 0) {
+			/*
+			 * We can never return a zero length EA.
+			 * Windows reports the EA's as corrupted.
+			 */
+			TALLOC_FREE(listp);
+			continue;
+		}
+
 		push_ascii_fstring(dos_ea_name, listp->ea.name);
 
@@ -420,4 +430,5 @@
 	uint8_t *p = (uint8_t *)pdata;
 	uint8_t *last_start = NULL;
+	bool store_data = (pdata != NULL);
 
 	*ret_data_size = 0;
@@ -431,6 +442,7 @@
 		fstring dos_ea_name;
 		size_t this_size;
-
-		if (last_start) {
+		size_t pad = 0;
+
+		if (last_start && store_data) {
 			SIVAL(last_start, 0, PTR_DIFF(p, last_start));
 		}
@@ -449,5 +461,5 @@
 
 		if (ea_list->next) {
-			size_t pad = 4 - (this_size % 4);
+			pad = (4 - (this_size % 4)) % 4;
 			this_size += pad;
 		}
@@ -458,10 +470,17 @@
 
 		/* We know we have room. */
-		SIVAL(p, 0x00, 0); /* next offset */
-		SCVAL(p, 0x04, ea_list->ea.flags);
-		SCVAL(p, 0x05, dos_namelen);
-		SSVAL(p, 0x06, ea_list->ea.value.length);
-		fstrcpy((char *)(p+0x08), dos_ea_name);
-		memcpy(p + 0x08 + dos_namelen + 1, ea_list->ea.value.data, ea_list->ea.value.length);
+		if (store_data) {
+			SIVAL(p, 0x00, 0); /* next offset */
+			SCVAL(p, 0x04, ea_list->ea.flags);
+			SCVAL(p, 0x05, dos_namelen);
+			SSVAL(p, 0x06, ea_list->ea.value.length);
+			fstrcpy((char *)(p+0x08), dos_ea_name);
+			memcpy(p + 0x08 + dos_namelen + 1, ea_list->ea.value.data, ea_list->ea.value.length);
+			if (pad) {
+				memset(p + 0x08 + dos_namelen + 1 + ea_list->ea.value.length,
+					'\0',
+					pad);
+			}
+		}
 
 		total_data_size -= this_size;
@@ -477,4 +496,5 @@
 {
 	size_t total_ea_len = 0;
+	struct ea_list *ea_list = NULL;
 	TALLOC_CTX *mem_ctx = NULL;
 
@@ -483,5 +503,29 @@
 	}
 	mem_ctx = talloc_tos();
-	(void)get_ea_list_from_file(mem_ctx, conn, fsp, fname, &total_ea_len);
+	ea_list = get_ea_list_from_file(mem_ctx, conn, fsp, fname, &total_ea_len);
+	if (ea_list == NULL) {
+		return 0;
+	}
+	if(conn->sconn->using_smb2) {
+		NTSTATUS status;
+		unsigned int ret_data_size;
+		/*
+		 * We're going to be using fill_ea_chained_buffer() to
+		 * marshall EA's - this size is significantly larger
+		 * than the SMB1 buffer. Re-calculate the size without
+		 * marshalling.
+		 */
+		status = fill_ea_chained_buffer(mem_ctx,
+						NULL,
+						65535,
+						&ret_data_size,
+						conn,
+						ea_list);
+		if (!NT_STATUS_IS_OK(status)) {
+			ret_data_size = 0;
+		}
+		total_ea_len = ret_data_size;
+	}
+
 	return total_ea_len;
 }
@@ -1744,10 +1788,12 @@
 		SIVAL(p,0,mode); p += 4;
 		q = p; p += 4; /* q is placeholder for name length. */
-		{
+		if (mode & FILE_ATTRIBUTE_REPARSE_POINT) {
+			SIVAL(p, 0, IO_REPARSE_TAG_DFS);
+		} else {
 			unsigned int ea_size = estimate_ea_size(conn, NULL,
 								smb_fname->base_name);
 			SIVAL(p,0,ea_size); /* Extended attributes */
-			p += 4;
-		}
+		}
+		p += 4;
 		/* Clear the short name buffer. This is
 		 * IMPORTANT as not doing so will trigger
@@ -1921,10 +1967,12 @@
 		SIVAL(p,0,mode); p += 4;
 		q = p; p += 4; /* q is placeholder for name length. */
-		{
+		if (mode & FILE_ATTRIBUTE_REPARSE_POINT) {
+			SIVAL(p, 0, IO_REPARSE_TAG_DFS);
+		} else {
 			unsigned int ea_size = estimate_ea_size(conn, NULL,
 								smb_fname->base_name);
 			SIVAL(p,0,ea_size); /* Extended attributes */
-			p +=4;
-		}
+		}
+		p +=4;
 		SIVAL(p,0,0); p += 4; /* Unknown - reserved ? */
 		SBVAL(p,0,file_index); p += 8;
@@ -1967,10 +2015,12 @@
 		SIVAL(p,0,mode); p += 4;
 		q = p; p += 4; /* q is placeholder for name length */
-		{
+		if (mode & FILE_ATTRIBUTE_REPARSE_POINT) {
+			SIVAL(p, 0, IO_REPARSE_TAG_DFS);
+		} else {
 			unsigned int ea_size = estimate_ea_size(conn, NULL,
 								smb_fname->base_name);
 			SIVAL(p,0,ea_size); /* Extended attributes */
-			p +=4;
-		}
+		}
+		p +=4;
 		/* Clear the short name buffer. This is
 		 * IMPORTANT as not doing so will trigger
@@ -2935,4 +2985,6 @@
 			 uint16_t flags2,
 			 unsigned int max_data_bytes,
+			 size_t *fixed_portion,
+			 struct smb_filename *fname,
 			 char **ppdata,
 			 int *ret_data_len)
@@ -2943,7 +2995,15 @@
 	int snum = SNUM(conn);
 	char *fstype = lp_fstype(SNUM(conn));
+	const char *filename = NULL;
 	uint32 additional_flags = 0;
-	struct smb_filename smb_fname_dot;
+	struct smb_filename smb_fname;
 	SMB_STRUCT_STAT st;
+	NTSTATUS status = NT_STATUS_OK;
+
+	if (fname == NULL || fname->base_name == NULL) {
+		filename = ".";
+	} else {
+		filename = fname->base_name;
+	}
 
 	if (IS_IPC(conn)) {
@@ -2958,13 +3018,13 @@
 	DEBUG(3,("smbd_do_qfsinfo: level = %d\n", info_level));
 
-	ZERO_STRUCT(smb_fname_dot);
-	smb_fname_dot.base_name = discard_const_p(char, ".");
-
-	if(SMB_VFS_STAT(conn, &smb_fname_dot) != 0) {
+	ZERO_STRUCT(smb_fname);
+	smb_fname.base_name = discard_const_p(char, filename);
+
+	if(SMB_VFS_STAT(conn, &smb_fname) != 0) {
 		DEBUG(2,("stat of . failed (%s)\n", strerror(errno)));
 		return map_nt_error_from_unix(errno);
 	}
 
-	st = smb_fname_dot.st;
+	st = smb_fname.st;
 
 	*ppdata = (char *)SMB_REALLOC(
@@ -2977,4 +3037,6 @@
 	memset((char *)pdata,'\0',max_data_bytes + DIR_ENTRY_SAFETY_MARGIN);
 	end_data = pdata + max_data_bytes + DIR_ENTRY_SAFETY_MARGIN - 1;
+
+	*fixed_portion = 0;
 
 	switch (info_level) {
@@ -2983,5 +3045,5 @@
 			uint64_t dfree,dsize,bsize,block_size,sectors_per_unit,bytes_per_sector;
 			data_len = 18;
-			if (get_dfree_info(conn,".",False,&bsize,&dfree,&dsize) == (uint64_t)-1) {
+			if (get_dfree_info(conn,filename,False,&bsize,&dfree,&dsize) == (uint64_t)-1) {
 				return map_nt_error_from_unix(errno);
 			}
@@ -3070,4 +3132,11 @@
 			SIVAL(pdata,8,len);
 			data_len = 12 + len;
+			if (max_data_bytes >= 16 && data_len > max_data_bytes) {
+				/* the client only requested a portion of the
+				   file system name */
+				data_len = max_data_bytes;
+				status = STATUS_BUFFER_OVERFLOW;
+			}
+			*fixed_portion = 16;
 			break;
 
@@ -3099,4 +3168,11 @@
 			DEBUG(5,("smbd_do_qfsinfo : SMB_QUERY_FS_VOLUME_INFO namelen = %d, vol=%s serv=%s\n",
 				(int)strlen(vname),vname, lp_servicename(snum)));
+			if (max_data_bytes >= 24 && data_len > max_data_bytes) {
+				/* the client only requested a portion of the
+				   volume label */
+				data_len = max_data_bytes;
+				status = STATUS_BUFFER_OVERFLOW;
+			}
+
 			break;
 
@@ -3106,5 +3182,5 @@
 			uint64_t dfree,dsize,bsize,block_size,sectors_per_unit,bytes_per_sector;
 			data_len = 24;
-			if (get_dfree_info(conn,".",False,&bsize,&dfree,&dsize) == (uint64_t)-1) {
+			if (get_dfree_info(conn,filename,False,&bsize,&dfree,&dsize) == (uint64_t)-1) {
 				return map_nt_error_from_unix(errno);
 			}
@@ -3131,4 +3207,5 @@
 			SIVAL(pdata,16,sectors_per_unit);
 			SIVAL(pdata,20,bytes_per_sector);
+			*fixed_portion = 24;
 			break;
 		}
@@ -3138,5 +3215,5 @@
 			uint64_t dfree,dsize,bsize,block_size,sectors_per_unit,bytes_per_sector;
 			data_len = 32;
-			if (get_dfree_info(conn,".",False,&bsize,&dfree,&dsize) == (uint64_t)-1) {
+			if (get_dfree_info(conn,filename,False,&bsize,&dfree,&dsize) == (uint64_t)-1) {
 				return map_nt_error_from_unix(errno);
 			}
@@ -3164,4 +3241,5 @@
 			SIVAL(pdata,24,sectors_per_unit); /* Sectors per allocation unit. */
 			SIVAL(pdata,28,bytes_per_sector); /* Bytes per sector. */
+			*fixed_portion = 32;
 			break;
 		}
@@ -3178,4 +3256,5 @@
 			SIVAL(pdata,0,FILE_DEVICE_DISK); /* dev type */
 			SIVAL(pdata,4,characteristics);
+			*fixed_portion = 8;
 			break;
 		}
@@ -3331,5 +3410,5 @@
 			}
 
-			rc = SMB_VFS_STATVFS(conn, ".", &svfs);
+			rc = SMB_VFS_STATVFS(conn, filename, &svfs);
 
 			if (!rc) {
@@ -3352,4 +3431,5 @@
 				return NT_STATUS_DOS(ERRSRV, ERRerror);
 			}
+			*fixed_portion = 24;
 			break;
 		}
@@ -3482,5 +3562,5 @@
 
 	*ret_data_len = data_len;
-	return NT_STATUS_OK;
+	return status;
 }
 
@@ -3498,4 +3578,5 @@
 	uint16_t info_level;
 	int data_len = 0;
+	size_t fixed_portion;
 	NTSTATUS status;
 
@@ -3524,4 +3605,6 @@
 				 req->flags2,
 				 max_data_bytes,
+				 &fixed_portion,
+				 NULL,
 				 ppdata, &data_len);
 	if (!NT_STATUS_IS_OK(status)) {
@@ -4076,5 +4159,9 @@
 	unsigned int ofs = 0;
 
-	for (i = 0; i < num_streams && ofs <= max_data_bytes; i++) {
+	if (max_data_bytes < 32) {
+		return NT_STATUS_INFO_LENGTH_MISMATCH;
+	}
+
+	for (i = 0; i < num_streams; i++) {
 		unsigned int next_offset;
 		size_t namelen;
@@ -4095,4 +4182,14 @@
 		namelen -= 2;
 
+		/*
+		 * We cannot overflow ...
+		 */
+		if ((ofs + 24 + namelen) > max_data_bytes) {
+			DEBUG(10, ("refusing to overflow reply at stream %u\n",
+				i));
+			TALLOC_FREE(namebuf);
+			return STATUS_BUFFER_OVERFLOW;
+		}
+
 		SIVAL(data, ofs+4, namelen);
 		SOFF_T(data, ofs+8, streams[i].size);
@@ -4109,4 +4206,12 @@
 			unsigned int align = ndr_align_size(next_offset, 8);
 
+			if ((next_offset + align) > max_data_bytes) {
+				DEBUG(10, ("refusing to overflow align "
+					"reply at stream %u\n",
+					i));
+				TALLOC_FREE(namebuf);
+				return STATUS_BUFFER_OVERFLOW;
+			}
+
 			memset(data+next_offset, 0, align);
 			next_offset += align;
@@ -4118,4 +4223,6 @@
 		ofs = next_offset;
 	}
+
+	DEBUG(10, ("max_data: %u, data_size: %u\n", max_data_bytes, ofs));
 
 	*data_size = ofs;
@@ -4207,4 +4314,5 @@
 			       uint16_t flags2,
 			       unsigned int max_data_bytes,
+			       size_t *fixed_portion,
 			       char **ppdata,
 			       unsigned int *pdata_size)
@@ -4342,4 +4450,6 @@
 	file_index = get_FileIndex(conn, psbuf);
 
+	*fixed_portion = 0;
+
 	switch (info_level) {
 		case SMB_INFO_STANDARD:
@@ -4479,4 +4589,5 @@
 			DEBUG(5,("change: %s ", ctime(&c_time)));
 			DEBUG(5,("mode: %x\n", mode));
+			*fixed_portion = data_size;
 			break;
 
@@ -4492,4 +4603,5 @@
 			SCVAL(pdata,21,(mode&FILE_ATTRIBUTE_DIRECTORY)?1:0);
 			SSVAL(pdata,22,0); /* Padding. */
+			*fixed_portion = 24;
 			break;
 
@@ -4501,4 +4613,5 @@
 			DEBUG(10,("smbd_do_qfilepathinfo: SMB_FILE_EA_INFORMATION\n"));
 			data_size = 4;
+			*fixed_portion = 4;
 			SIVAL(pdata,0,ea_size);
 			break;
@@ -4522,4 +4635,5 @@
 			data_size = 4 + len;
 			SIVAL(pdata,0,len);
+			*fixed_portion = 8;
 			break;
 		}
@@ -4585,4 +4699,5 @@
 			pdata += 4 + len;
 			data_size = PTR_DIFF(pdata,(*ppdata));
+			*fixed_portion = 10;
 			break;
 		}
@@ -4622,4 +4737,5 @@
 			pdata += 4 + len;
 			data_size = PTR_DIFF(pdata,(*ppdata));
+			*fixed_portion = 104;
 			break;
 		}
@@ -4629,4 +4745,5 @@
 			SBVAL(pdata, 0, file_index);
 			data_size = 8;
+			*fixed_portion = 8;
 			break;
 
@@ -4635,4 +4752,5 @@
 			SIVAL(pdata, 0, access_mask);
 			data_size = 4;
+			*fixed_portion = 4;
 			break;
 
@@ -4652,4 +4770,5 @@
 			data_size = 1;
 			SCVAL(pdata,0,delete_pending);
+			*fixed_portion = 1;
 			break;
 
@@ -4658,4 +4777,5 @@
 			data_size = 8;
 			SOFF_T(pdata,0,pos);
+			*fixed_portion = 8;
 			break;
 
@@ -4664,4 +4784,5 @@
 			SIVAL(pdata,0,mode);
 			data_size = 4;
+			*fixed_portion = 4;
 			break;
 
@@ -4670,4 +4791,5 @@
 			SIVAL(pdata,0,0); /* No alignment needed. */
 			data_size = 4;
+			*fixed_portion = 4;
 			break;
 
@@ -4708,8 +4830,11 @@
 				DEBUG(10, ("marshall_stream_info failed: %s\n",
 					   nt_errstr(status)));
+				TALLOC_FREE(streams);
 				return status;
 			}
 
 			TALLOC_FREE(streams);
+
+			*fixed_portion = 32;
 
 			break;
@@ -4722,4 +4847,5 @@
 			SIVAL(pdata,12,0); /* ??? */
 			data_size = 16;
+			*fixed_portion = 16;
 			break;
 
@@ -4735,4 +4861,5 @@
 			SIVAL(pdata,52,0); /* ??? */
 			data_size = 56;
+			*fixed_portion = 56;
 			break;
 
@@ -4742,4 +4869,5 @@
 			SIVAL(pdata,4,0);
 			data_size = 8;
+			*fixed_portion = 8;
 			break;
 
@@ -5011,4 +5139,5 @@
 	int lock_data_count = 0;
 	char *lock_data = NULL;
+	size_t fixed_portion;
 	NTSTATUS status = NT_STATUS_OK;
 
@@ -5372,7 +5501,12 @@
 				       lock_data_count, lock_data,
 				       req->flags2, max_data_bytes,
+				       &fixed_portion,
 				       ppdata, &data_size);
 	if (!NT_STATUS_IS_OK(status)) {
 		reply_nterror(req, status);
+		return;
+	}
+	if (fixed_portion > max_data_bytes) {
+		reply_nterror(req, NT_STATUS_INFO_LENGTH_MISMATCH);
 		return;
 	}
@@ -7325,10 +7459,17 @@
 			create_disp = FILE_OPEN_IF;
 			break;
+		case SMB_O_EXCL:
+			/* O_EXCL on its own without O_CREAT is undefined.
+			   We deliberately ignore it as some versions of
+			   Linux CIFSFS can send a bare O_EXCL on the
+			   wire which other filesystems in the kernel
+			   ignore. See bug 9519 for details. */
+
+			/* Fallthrough. */
+
 		case 0:
 			/* File exists open. File not exist fail. */
 			create_disp = FILE_OPEN;
 			break;
-		case SMB_O_EXCL:
-			/* O_EXCL on its own without O_CREAT is undefined. */
 		default:
 			DEBUG(5,("smb_posix_open: invalid create mode 0x%x\n",
@@ -7583,6 +7724,6 @@
 			}
 			/* Fail with sharing violation. */
+			TALLOC_FREE(lck);
 			close_file(req, fsp, NORMAL_CLOSE);
-			TALLOC_FREE(lck);
 			return NT_STATUS_SHARING_VIOLATION;
 		}
@@ -7598,10 +7739,10 @@
 						smb_fname);
 
+	TALLOC_FREE(lck);
+
 	if (!NT_STATUS_IS_OK(status)) {
 		close_file(req, fsp, NORMAL_CLOSE);
-		TALLOC_FREE(lck);
 		return status;
 	}
-	TALLOC_FREE(lck);
 	return close_file(req, fsp, NORMAL_CLOSE);
 }
Index: trunk/server/source3/utils/net_ads.c
===================================================================
--- trunk/server/source3/utils/net_ads.c	(revision 857)
+++ trunk/server/source3/utils/net_ads.c	(revision 862)
@@ -38,4 +38,5 @@
 #include "../libcli/security/security.h"
 #include "libsmb/libsmb.h"
+#include "utils/net_dns.h"
 
 #ifdef HAVE_ADS
@@ -1124,10 +1125,7 @@
 #if defined(WITH_DNS_UPDATES)
 #include "../lib/addns/dns.h"
-DNS_ERROR DoDNSUpdate(char *pszServerName,
-		      const char *pszDomainName, const char *pszHostName,
-		      const struct sockaddr_storage *sslist,
-		      size_t num_addrs );
-
-static NTSTATUS net_update_dns_internal(TALLOC_CTX *ctx, ADS_STRUCT *ads,
+
+static NTSTATUS net_update_dns_internal(struct net_context *c,
+					TALLOC_CTX *ctx, ADS_STRUCT *ads,
 					const char *machine_name,
 					const struct sockaddr_storage *addrs,
@@ -1191,5 +1189,5 @@
 
 		if ( !NT_STATUS_IS_OK(status) || (ns_count == 0)) {
-			DEBUG(3,("net_ads_join: Failed to find name server for the %s "
+			DEBUG(3,("net_update_dns_internal: Failed to find name server for the %s "
 			 "realm\n", ads->config.realm));
 			goto done;
@@ -1202,4 +1200,17 @@
 	for (i=0; i < ns_count; i++) {
 
+		uint32_t flags = DNS_UPDATE_SIGNED |
+				 DNS_UPDATE_UNSIGNED |
+				 DNS_UPDATE_UNSIGNED_SUFFICIENT |
+				 DNS_UPDATE_PROBE |
+				 DNS_UPDATE_PROBE_SUFFICIENT;
+
+		if (c->opt_force) {
+			flags &= ~DNS_UPDATE_PROBE_SUFFICIENT;
+			flags &= ~DNS_UPDATE_UNSIGNED_SUFFICIENT;
+		}
+
+		status = NT_STATUS_UNSUCCESSFUL;
+
 		/* Now perform the dns update - we'll try non-secure and if we fail,
 		   we'll follow it up with a secure update */
@@ -1207,5 +1218,5 @@
 		fstrcpy( dns_server, nameservers[i].hostname );
 
-		dns_err = DoDNSUpdate(dns_server, dnsdomain, machine_name, addrs, num_addrs);
+		dns_err = DoDNSUpdate(dns_server, dnsdomain, machine_name, addrs, num_addrs, flags);
 		if (ERR_DNS_IS_OK(dns_err)) {
 			status = NT_STATUS_OK;
@@ -1234,5 +1245,6 @@
 }
 
-static NTSTATUS net_update_dns_ext(TALLOC_CTX *mem_ctx, ADS_STRUCT *ads,
+static NTSTATUS net_update_dns_ext(struct net_context *c,
+				   TALLOC_CTX *mem_ctx, ADS_STRUCT *ads,
 				   const char *hostname,
 				   struct sockaddr_storage *iplist,
@@ -1264,5 +1276,5 @@
 	}
 
-	status = net_update_dns_internal(mem_ctx, ads, machine_name,
+	status = net_update_dns_internal(c, mem_ctx, ads, machine_name,
 					 iplist, num_addrs);
 
@@ -1271,9 +1283,9 @@
 }
 
-static NTSTATUS net_update_dns(TALLOC_CTX *mem_ctx, ADS_STRUCT *ads, const char *hostname)
+static NTSTATUS net_update_dns(struct net_context *c, TALLOC_CTX *mem_ctx, ADS_STRUCT *ads, const char *hostname)
 {
 	NTSTATUS status;
 
-	status = net_update_dns_ext(mem_ctx, ads, hostname, NULL, 0);
+	status = net_update_dns_ext(c, mem_ctx, ads, hostname, NULL, 0);
 	return status;
 }
@@ -1437,5 +1449,5 @@
 
 	if (r->out.dns_domain_name) {
-		d_printf(_("Joined '%s' to realm '%s'\n"), r->in.machine_name,
+		d_printf(_("Joined '%s' to dns domain '%s'\n"), r->in.machine_name,
 			r->out.dns_domain_name);
 	} else {
@@ -1480,5 +1492,5 @@
 		}
 
-		if ( !ads_dns || !NT_STATUS_IS_OK(net_update_dns( ctx, ads_dns, NULL)) ) {
+		if ( !ads_dns || !NT_STATUS_IS_OK(net_update_dns(c, ctx, ads_dns, NULL)) ) {
 			d_fprintf( stderr, _("DNS update failed!\n") );
 		}
@@ -1585,5 +1597,5 @@
 	}
 
-	ntstatus = net_update_dns_ext(ctx, ads, hostname, addrs, num_addrs);
+	ntstatus = net_update_dns_ext(c, ctx, ads, hostname, addrs, num_addrs);
 	if (!NT_STATUS_IS_OK(ntstatus)) {
 		d_fprintf( stderr, _("DNS update failed!\n") );
@@ -1605,8 +1617,4 @@
 #endif
 }
-
-#if defined(WITH_DNS_UPDATES)
-DNS_ERROR do_gethostbyname(const char *server, const char *host);
-#endif
 
 static int net_ads_dns_gethostbyname(struct net_context *c, int argc, const char **argv)
Index: trunk/server/source3/utils/net_dns.c
===================================================================
--- trunk/server/source3/utils/net_dns.c	(revision 857)
+++ trunk/server/source3/utils/net_dns.c	(revision 862)
@@ -23,21 +23,15 @@
 #include "utils/net.h"
 #include "../lib/addns/dns.h"
+#include "utils/net_dns.h"
 
 #if defined(WITH_DNS_UPDATES)
-/*
- * Silly prototype to get rid of a warning
- */
+
+/*********************************************************************
+*********************************************************************/
 
 DNS_ERROR DoDNSUpdate(char *pszServerName,
 		      const char *pszDomainName, const char *pszHostName,
-		      const struct sockaddr_storage *sslist,
-		      size_t num_addrs );
-
-/*********************************************************************
-*********************************************************************/
-
-DNS_ERROR DoDNSUpdate(char *pszServerName,
-		      const char *pszDomainName, const char *pszHostName,
-		      const struct sockaddr_storage *sslist, size_t num_addrs )
+		      const struct sockaddr_storage *sslist, size_t num_addrs,
+		      uint32_t flags)
 {
 	DNS_ERROR err;
@@ -47,4 +41,12 @@
 	struct dns_update_request *req, *resp;
 
+	DEBUG(10,("DoDNSUpdate called with flags: 0x%08x\n", flags));
+
+	if (!(flags & DNS_UPDATE_SIGNED) &&
+	    !(flags & DNS_UPDATE_UNSIGNED) &&
+	    !(flags & DNS_UPDATE_PROBE)) {
+		return ERROR_DNS_INVALID_PARAMETER;
+	}
+
 	if ( (num_addrs <= 0) || !sslist ) {
 		return ERROR_DNS_INVALID_PARAMETER;
@@ -60,34 +62,50 @@
 	}
 
-	/*
-	 * Probe if everything's fine
-	 */
-
-	err = dns_create_probe(mem_ctx, pszDomainName, pszHostName,
-			       num_addrs, sslist, &req);
-	if (!ERR_DNS_IS_OK(err)) goto error;
-
-	err = dns_update_transaction(mem_ctx, conn, req, &resp);
-	if (!ERR_DNS_IS_OK(err)) goto error;
-
-	if (dns_response_code(resp->flags) == DNS_NO_ERROR) {
-		TALLOC_FREE(mem_ctx);
-		return ERROR_DNS_SUCCESS;
-	}
-
-	/*
-	 * First try without signing
-	 */
-
-	err = dns_create_update_request(mem_ctx, pszDomainName, pszHostName,
-					sslist, num_addrs, &req);
-	if (!ERR_DNS_IS_OK(err)) goto error;
-
-	err = dns_update_transaction(mem_ctx, conn, req, &resp);
-	if (!ERR_DNS_IS_OK(err)) goto error;
-
-	if (dns_response_code(resp->flags) == DNS_NO_ERROR) {
-		TALLOC_FREE(mem_ctx);
-		return ERROR_DNS_SUCCESS;
+	if (flags & DNS_UPDATE_PROBE) {
+
+		/*
+		 * Probe if everything's fine
+		 */
+
+		err = dns_create_probe(mem_ctx, pszDomainName, pszHostName,
+				       num_addrs, sslist, &req);
+		if (!ERR_DNS_IS_OK(err)) goto error;
+
+		err = dns_update_transaction(mem_ctx, conn, req, &resp);
+		if (!ERR_DNS_IS_OK(err)) goto error;
+
+		if (!ERR_DNS_IS_OK(err)) {
+			DEBUG(3,("DoDNSUpdate: failed to probe DNS\n"));
+		}
+
+		if ((dns_response_code(resp->flags) == DNS_NO_ERROR) &&
+		    (flags & DNS_UPDATE_PROBE_SUFFICIENT)) {
+			TALLOC_FREE(mem_ctx);
+			return ERROR_DNS_SUCCESS;
+		}
+	}
+
+	if (flags & DNS_UPDATE_UNSIGNED) {
+
+		/*
+		 * First try without signing
+		 */
+
+		err = dns_create_update_request(mem_ctx, pszDomainName, pszHostName,
+						sslist, num_addrs, &req);
+		if (!ERR_DNS_IS_OK(err)) goto error;
+
+		err = dns_update_transaction(mem_ctx, conn, req, &resp);
+		if (!ERR_DNS_IS_OK(err)) goto error;
+
+		if (!ERR_DNS_IS_OK(err)) {
+			DEBUG(3,("DoDNSUpdate: unsigned update failed\n"));
+		}
+
+		if ((dns_response_code(resp->flags) == DNS_NO_ERROR) &&
+		    (flags & DNS_UPDATE_UNSIGNED_SUFFICIENT)) {
+			TALLOC_FREE(mem_ctx);
+			return ERROR_DNS_SUCCESS;
+		}
 	}
 
@@ -95,7 +113,11 @@
 	 * Okay, we have to try with signing
 	 */
-	{
+	if (flags & DNS_UPDATE_SIGNED) {
 		gss_ctx_id_t gss_context;
 		char *keyname;
+
+		err = dns_create_update_request(mem_ctx, pszDomainName, pszHostName,
+						sslist, num_addrs, &req);
+		if (!ERR_DNS_IS_OK(err)) goto error;
 
 		if (!(keyname = dns_generate_keyname( mem_ctx ))) {
@@ -129,4 +151,8 @@
 		err = (dns_response_code(resp->flags) == DNS_NO_ERROR) ?
 			ERROR_DNS_SUCCESS : ERROR_DNS_UPDATE_FAILED;
+
+		if (!ERR_DNS_IS_OK(err)) {
+			DEBUG(3,("DoDNSUpdate: signed update failed\n"));
+		}
 	}
 
@@ -177,10 +203,4 @@
 	return count;
 }
-
-/*
- * Silly prototype to get rid of a warning
- */
-
-DNS_ERROR do_gethostbyname(const char *server, const char *host);
 
 DNS_ERROR do_gethostbyname(const char *server, const char *host)
Index: trunk/server/source3/utils/net_dns.h
===================================================================
--- trunk/server/source3/utils/net_dns.h	(revision 862)
+++ trunk/server/source3/utils/net_dns.h	(revision 862)
@@ -0,0 +1,43 @@
+/*
+   Samba Unix/Linux Dynamic DNS Update
+   net ads commands
+
+   Copyright (C) Krishna Ganugapati (krishnag@centeris.com)         2006
+   Copyright (C) Gerald Carter                                      2006
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/* flags for DoDNSUpdate */
+
+#define	DNS_UPDATE_SIGNED		0x01
+#define	DNS_UPDATE_SIGNED_SUFFICIENT	0x02
+#define	DNS_UPDATE_UNSIGNED		0x04
+#define	DNS_UPDATE_UNSIGNED_SUFFICIENT	0x08
+#define	DNS_UPDATE_PROBE		0x10
+#define	DNS_UPDATE_PROBE_SUFFICIENT	0x20
+
+#if defined(WITH_DNS_UPDATES)
+
+#include "../lib/addns/dns.h"
+
+DNS_ERROR DoDNSUpdate(char *pszServerName,
+		      const char *pszDomainName, const char *pszHostName,
+		      const struct sockaddr_storage *sslist,
+		      size_t num_addrs,
+		      uint32_t flags);
+
+DNS_ERROR do_gethostbyname(const char *server, const char *host);
+
+#endif /* defined(WITH_DNS_UPDATES) */
Index: trunk/server/source3/utils/net_printing.c
===================================================================
--- trunk/server/source3/utils/net_printing.c	(revision 857)
+++ trunk/server/source3/utils/net_printing.c	(revision 862)
@@ -38,4 +38,46 @@
 #define SECDESC_PREFIX "SECDESC/"
 
+#define ARG_ENCODING "encoding="
+
+struct printing_opts {
+	const char *encoding;
+	const char *tdb;
+};
+
+static NTSTATUS printing_parse_args(TALLOC_CTX *mem_ctx,
+				    struct printing_opts **popts,
+				    int argc, const char **argv)
+{
+	size_t c;
+	struct printing_opts *o;
+
+	if (argc == 0) {
+		return NT_STATUS_INVALID_PARAMETER;
+	}
+
+	o = talloc_zero(mem_ctx, struct printing_opts);
+	if (o == NULL) {
+		return NT_STATUS_INVALID_PARAMETER;
+	}
+
+	for (c = 0; c < argc; c++) {
+		if (strnequal(argv[c], ARG_ENCODING, sizeof(ARG_ENCODING) - 1)) {
+			o->encoding = talloc_strdup(o,
+					argv[c] + sizeof(ARG_ENCODING) - 1);
+			if (o->encoding == NULL) {
+				return NT_STATUS_NO_MEMORY;
+			}
+		} else {
+			o->tdb = talloc_strdup(o, argv[c]);
+			if (o->tdb == NULL) {
+				return NT_STATUS_NO_MEMORY;
+			}
+		}
+	}
+
+	*popts = o;
+	return NT_STATUS_OK;
+}
+
 static void dump_form(TALLOC_CTX *mem_ctx,
 		      const char *key_name,
@@ -71,5 +113,6 @@
 			const char *key_name,
 			unsigned char *data,
-			size_t length)
+			size_t length,
+			bool do_string_conversion)
 {
 	enum ndr_err_code ndr_err;
@@ -83,4 +126,8 @@
 
 	ZERO_STRUCT(r);
+
+	if (do_string_conversion) {
+		r.string_flags = LIBNDR_FLAG_STR_ASCII;
+	}
 
 	ndr_err = ndr_pull_struct_blob(&blob, mem_ctx, &r,
@@ -101,5 +148,6 @@
 			 const char *key_name,
 			 unsigned char *data,
-			 size_t length)
+			 size_t length,
+			 bool do_string_conversion)
 {
 	enum ndr_err_code ndr_err;
@@ -113,4 +161,8 @@
 
 	ZERO_STRUCT(r);
+
+	if (do_string_conversion) {
+		r.info.string_flags = LIBNDR_FLAG_STR_ASCII;
+	}
 
 	ndr_err = ndr_pull_struct_blob(&blob, mem_ctx, &r,
@@ -166,15 +218,39 @@
 	TDB_CONTEXT *tdb;
 	TDB_DATA kbuf, newkey, dbuf;
+	struct printing_opts *o;
+	const char *save_dos_charset = lp_dos_charset();
+	bool do_string_conversion = false;
+	NTSTATUS status;
 
 	if (argc < 1 || c->display_usage) {
-		d_fprintf(stderr, "%s\nnet printing dump <file.tdb>\n",
-			  _("Usage:"));
+		d_printf(  "%s\n"
+			   "net printing dump [options] <file.tdb>\n"
+			   "    %s\n",
+			 _("Usage:"),
+			 _("Dump formated printer information of the tdb."));
+		d_printf(_("Valid options:\n"));
+		d_printf(_("    encoding=<CP>   Set the Code Page of the tdb file.\n"
+			   "                    See iconv -l for the list of CP values\n"
+			   "                    (CP1252 is Western latin1, CP1251 is Cyrillic).\n"));
 		goto done;
 	}
 
-	tdb = tdb_open_log(argv[0], 0, TDB_DEFAULT, O_RDONLY, 0600);
+	status = printing_parse_args(ctx, &o, argc, argv);
+	if (!NT_STATUS_IS_OK(status)) {
+		d_fprintf(stderr, _("failed to parse arguments\n"));
+		goto done;
+	}
+
+	tdb = tdb_open_log(o->tdb, 0, TDB_DEFAULT, O_RDONLY, 0600);
 	if (!tdb) {
-		d_fprintf(stderr, _("failed to open tdb file: %s\n"), argv[0]);
+		d_fprintf(stderr, _("failed to open tdb file: %s\n"), o->tdb);
 		goto done;
+	}
+
+	if (o->encoding != NULL) {
+		lp_set_cmdline("dos charset", o->encoding);
+		d_fprintf(stderr, _("do string conversion from %s to %s\n"),
+				    lp_dos_charset(), lp_unix_charset());
+		do_string_conversion = true;
 	}
 
@@ -195,5 +271,9 @@
 
 		if (strncmp((const char *)kbuf.dptr, DRIVERS_PREFIX, strlen(DRIVERS_PREFIX)) == 0) {
-			dump_driver(ctx, (const char *)kbuf.dptr+strlen(DRIVERS_PREFIX), dbuf.dptr, dbuf.dsize);
+			dump_driver(ctx,
+				    (const char *)kbuf.dptr+strlen(DRIVERS_PREFIX),
+				    dbuf.dptr,
+				    dbuf.dsize,
+				    do_string_conversion);
 			SAFE_FREE(dbuf.dptr);
 			continue;
@@ -201,5 +281,9 @@
 
 		if (strncmp((const char *)kbuf.dptr, PRINTERS_PREFIX, strlen(PRINTERS_PREFIX)) == 0) {
-			dump_printer(ctx, (const char *)kbuf.dptr+strlen(PRINTERS_PREFIX), dbuf.dptr, dbuf.dsize);
+			dump_printer(ctx,
+				     (const char *)kbuf.dptr+strlen(PRINTERS_PREFIX),
+				     dbuf.dptr,
+				     dbuf.dsize,
+				     do_string_conversion);
 			SAFE_FREE(dbuf.dptr);
 			continue;
@@ -217,4 +301,5 @@
 
  done:
+	lp_set_cmdline("dos charset", save_dos_charset);
 	talloc_free(ctx);
 	return ret;
@@ -230,8 +315,11 @@
 					  const char **argv)
 {
+	struct printing_opts *o;
 	TALLOC_CTX *tmp_ctx;
 	TDB_CONTEXT *tdb;
 	TDB_DATA kbuf, newkey, dbuf;
 	NTSTATUS status;
+	const char *save_dos_charset = lp_dos_charset();
+	bool do_string_conversion = false;
 
 	tmp_ctx = talloc_new(mem_ctx);
@@ -240,9 +328,22 @@
 	}
 
-	tdb = tdb_open_log(argv[0], 0, TDB_DEFAULT, O_RDONLY, 0600);
+	status = printing_parse_args(tmp_ctx, &o, argc, argv);
+	if (!NT_STATUS_IS_OK(status)) {
+		d_fprintf(stderr, _("failed to parse arguments\n"));
+		goto done;
+	}
+
+	tdb = tdb_open_log(o->tdb, 0, TDB_DEFAULT, O_RDONLY, 0600);
 	if (tdb == NULL) {
-		d_fprintf(stderr, _("failed to open tdb file: %s\n"), argv[0]);
+		d_fprintf(stderr, _("failed to open tdb file: %s\n"), o->tdb);
 		status = NT_STATUS_NO_SUCH_FILE;
 		goto done;
+	}
+
+	if (o->encoding != NULL) {
+		lp_set_cmdline("dos charset", o->encoding);
+		d_fprintf(stderr, _("do string conversion from %s to %s\n"),
+				    lp_dos_charset(), lp_unix_charset());
+		do_string_conversion = true;
 	}
 
@@ -271,5 +372,6 @@
 				       (const char *) kbuf.dptr + strlen(DRIVERS_PREFIX),
 				       dbuf.dptr,
-				       dbuf.dsize);
+				       dbuf.dsize,
+				       do_string_conversion);
 			SAFE_FREE(dbuf.dptr);
 			continue;
@@ -281,5 +383,6 @@
 					(const char *) kbuf.dptr + strlen(PRINTERS_PREFIX),
 					dbuf.dptr,
-					dbuf.dsize);
+					dbuf.dsize,
+					do_string_conversion);
 			SAFE_FREE(dbuf.dptr);
 			continue;
@@ -313,4 +416,5 @@
 
  done:
+	lp_set_cmdline("dos charset", save_dos_charset);
 	talloc_free(tmp_ctx);
 	return status;
@@ -323,8 +427,12 @@
 	if (argc < 1 || c->display_usage) {
 		d_printf(  "%s\n"
-			   "net printing migrate <file.tdb>\n"
+			   "net printing migrate [options] <file.tdb>\n"
 			   "    %s\n",
 			 _("Usage:"),
 			 _("Migrate tdb printing files to new storage"));
+		d_printf(_("Valid options:\n"));
+		d_printf(_("    encoding=<CP>   Set the Code Page of the tdb file.\n"
+			   "                    See iconv -l for the list of CP values\n"
+			   "                    (CP1252 is Western latin1, CP1251 is Cyrillic).\n"));
 		return 0;
 	}
Index: trunk/server/source3/utils/net_rpc.c
===================================================================
--- trunk/server/source3/utils/net_rpc.c	(revision 857)
+++ trunk/server/source3/utils/net_rpc.c	(revision 862)
@@ -1657,4 +1657,12 @@
 		goto done;
 	}
+	if (group_rids.count != 1) {
+		status = NT_STATUS_INVALID_NETWORK_RESPONSE;
+		goto done;
+	}
+	if (name_types.count != 1) {
+		status = NT_STATUS_INVALID_NETWORK_RESPONSE;
+		goto done;
+	}
 
 	switch (name_types.ids[0])
@@ -2064,4 +2072,12 @@
 		goto done;
 	}
+	if (rids.count != 1) {
+		status = NT_STATUS_INVALID_NETWORK_RESPONSE;
+		goto done;
+	}
+	if (rid_types.count != 1) {
+		status = NT_STATUS_INVALID_NETWORK_RESPONSE;
+		goto done;
+	}
 
 	status = dcerpc_samr_OpenGroup(b, mem_ctx,
@@ -2317,4 +2333,12 @@
 		d_fprintf(stderr, _("Could not lookup up group member %s\n"),
 			  member);
+		goto done;
+	}
+	if (rids.count != 1) {
+		status = NT_STATUS_INVALID_NETWORK_RESPONSE;
+		goto done;
+	}
+	if (rid_types.count != 1) {
+		status = NT_STATUS_INVALID_NETWORK_RESPONSE;
 		goto done;
 	}
@@ -2866,5 +2890,10 @@
 			return result;
 		}
-
+		if (names.count != this_time) {
+			return NT_STATUS_INVALID_NETWORK_RESPONSE;
+		}
+		if (types.count != this_time) {
+			return NT_STATUS_INVALID_NETWORK_RESPONSE;
+		}
 		/* We only have users as members, but make the output
 		   the same as the output of alias members */
@@ -3102,6 +3131,12 @@
 		d_fprintf(stderr, _("Couldn't find group %s\n"),
 			  argv[0]);
-		return result;
-	}
+		return NT_STATUS_INVALID_NETWORK_RESPONSE;
+	}
+	if (rid_types.count != 1) {
+		d_fprintf(stderr, _("Couldn't find group %s\n"),
+			  argv[0]);
+		return NT_STATUS_INVALID_NETWORK_RESPONSE;
+	}
+
 
 	if (rid_types.ids[0] == SID_NAME_DOM_GRP) {
@@ -6017,4 +6052,12 @@
 			   "failed %s\n"),
 			acct_name, nt_errstr(result) );
+		goto done;
+	}
+	if (user_rids.count != 1) {
+		status = NT_STATUS_INVALID_NETWORK_RESPONSE;
+		goto done;
+	}
+	if (name_types.count != 1) {
+		status = NT_STATUS_INVALID_NETWORK_RESPONSE;
 		goto done;
 	}
Index: trunk/server/source3/utils/net_rpc_join.c
===================================================================
--- trunk/server/source3/utils/net_rpc_join.c	(revision 857)
+++ trunk/server/source3/utils/net_rpc_join.c	(revision 862)
@@ -368,4 +368,13 @@
 			     acct_name, nt_errstr(status), nt_errstr(result)));
 
+	if (user_rids.count != 1) {
+		status = NT_STATUS_INVALID_NETWORK_RESPONSE;
+		goto done;
+	}
+	if (name_types.count != 1) {
+		status = NT_STATUS_INVALID_NETWORK_RESPONSE;
+		goto done;
+	}
+
 	if (name_types.ids[0] != SID_NAME_USER) {
 		DEBUG(0, ("%s is not a user account (type=%d)\n", acct_name, name_types.ids[0]));
Index: trunk/server/source3/utils/net_serverid.c
===================================================================
--- trunk/server/source3/utils/net_serverid.c	(revision 857)
+++ trunk/server/source3/utils/net_serverid.c	(revision 862)
@@ -37,4 +37,8 @@
 			     const char **argv)
 {
+	if (!serverid_init_readonly(c)) {
+		d_printf("failed to open serverid.tdb\n");
+		return -1;
+	}
 	d_printf("pid unique_id msg_flags\n");
 	return serverid_traverse_read(net_serverid_list_fn, NULL) ? 0 : -1;
@@ -114,4 +118,9 @@
 				const char **argv)
 {
+	if (!sessionid_init()) {
+		d_printf("failed to open sessionid.tdb\n");
+		return -1;
+	};
+
 	connections_forall(net_serverid_wipedbs_conn, NULL);
 	sessionid_traverse(net_serverid_wipedbs_sessionid, NULL);
Index: trunk/server/source3/utils/net_status.c
===================================================================
--- trunk/server/source3/utils/net_status.c	(revision 857)
+++ trunk/server/source3/utils/net_status.c	(revision 862)
@@ -240,4 +240,10 @@
 		{NULL, NULL, 0, NULL, NULL}
 	};
+
+	if (!sessionid_init_readonly()) {
+		d_printf("failed to open sessionid.tdb\n");
+		return -1;
+	}
+
 	return net_run_function(c, argc, argv, "net status", func);
 }
Index: trunk/server/source3/utils/smbcontrol.c
===================================================================
--- trunk/server/source3/utils/smbcontrol.c	(revision 857)
+++ trunk/server/source3/utils/smbcontrol.c	(revision 862)
@@ -937,5 +937,5 @@
 	}
 
-	return send_message(msg_ctx, pid, MSG_DEBUG, argv[1],
+	return send_message(msg_ctx, pid, MSG_PRINTER_DRVUPGRADE, argv[1],
 			    strlen(argv[1]) + 1);
 }
Index: trunk/server/source3/utils/status.c
===================================================================
--- trunk/server/source3/utils/status.c	(revision 857)
+++ trunk/server/source3/utils/status.c	(revision 862)
@@ -39,4 +39,5 @@
 #include "locking/proto.h"
 #include "messages.h"
+#include "serverid.h"
 
 #define SMB_MAXPIDS		2048
@@ -379,4 +380,10 @@
 
 
+	if (!sessionid_init_readonly()) {
+		fprintf(stderr, "Can't open sessionid.tdb\n");
+		ret = -1;
+		goto done;
+	}
+
 	if (lp_clustering()) {
 		/*
@@ -471,4 +478,9 @@
 		}
 
+		if (!serverid_init_readonly(frame)) {
+			d_printf("Can't initialise serverid tdb - exiting\n");
+			ret = 1;
+			goto done;
+		}
 		result = share_mode_forall(print_share_mode, NULL);
 
Index: trunk/server/source3/web/cgi.c
===================================================================
--- trunk/server/source3/web/cgi.c	(revision 857)
+++ trunk/server/source3/web/cgi.c	(revision 862)
@@ -49,4 +49,5 @@
 static char *C_user;
 static char *C_pass;
+static char *C_nonce;
 static bool inetd_server;
 static bool got_request;
@@ -331,18 +332,5 @@
 
 	if (!setuid(0)) {
-		C_pass = secrets_fetch_generic("root", "SWAT");
-		if (C_pass == NULL) {
-			char *tmp_pass = NULL;
-			tmp_pass = generate_random_password(talloc_tos(),
-							    16, 16);
-			if (tmp_pass == NULL) {
-				printf("%sFailed to create random nonce for "
-				       "SWAT session\n<br>%s\n", head, tail);
-				exit(0);
-			}
-			secrets_store_generic("root", "SWAT", tmp_pass);
-			C_pass = SMB_STRDUP(tmp_pass);
-			TALLOC_FREE(tmp_pass);
-		}
+		C_pass = SMB_STRDUP(cgi_nonce());
 	}
 	setuid(pwd->pw_uid);
@@ -459,4 +447,28 @@
 {
         return(C_pass);
+}
+
+/***************************************************************************
+return a ptr to the nonce
+  ***************************************************************************/
+char *cgi_nonce(void)
+{
+	const char *head = "Content-Type: text/html\r\n\r\n<HTML><BODY><H1>SWAT installation Error</H1>\n";
+	const char *tail = "</BODY></HTML>\r\n";
+	C_nonce = secrets_fetch_generic("root", "SWAT");
+	if (C_nonce == NULL) {
+		char *tmp_pass = NULL;
+		tmp_pass = generate_random_password(talloc_tos(),
+						    16, 16);
+		if (tmp_pass == NULL) {
+			printf("%sFailed to create random nonce for "
+			       "SWAT session\n<br>%s\n", head, tail);
+			exit(0);
+		}
+		secrets_store_generic("root", "SWAT", tmp_pass);
+		C_nonce = SMB_STRDUP(tmp_pass);
+		TALLOC_FREE(tmp_pass);
+	}
+        return(C_nonce);
 }
 
Index: trunk/server/source3/web/swat.c
===================================================================
--- trunk/server/source3/web/swat.c	(revision 857)
+++ trunk/server/source3/web/swat.c	(revision 862)
@@ -155,4 +155,5 @@
 	uint8_t token[16];
 	int i;
+	char *nonce = cgi_nonce();
 
 	token_str[0] = '\0';
@@ -168,4 +169,5 @@
 		MD5Update(&md5_ctx, (uint8_t *)pass, strlen(pass));
 	}
+	MD5Update(&md5_ctx, (uint8_t *)nonce, strlen(nonce));
 
 	MD5Final(token, &md5_ctx);
@@ -267,5 +269,6 @@
 		printf("Expires: 0\r\n");
 	}
-	printf("Content-type: text/html\r\n\r\n");
+	printf("Content-type: text/html\r\n");
+	printf("X-Frame-Options: DENY\r\n\r\n");
 
 	if (!include_html("include/header.html")) {
Index: trunk/server/source3/web/swat_proto.h
===================================================================
--- trunk/server/source3/web/swat_proto.h	(revision 857)
+++ trunk/server/source3/web/swat_proto.h	(revision 862)
@@ -33,4 +33,5 @@
 char *cgi_user_name(void);
 char *cgi_user_pass(void);
+char *cgi_nonce(void);
 void cgi_setup(const char *rootdir, int auth_required);
 const char *cgi_baseurl(void);
Index: trunk/server/source3/winbindd/idmap_ad.c
===================================================================
--- trunk/server/source3/winbindd/idmap_ad.c	(revision 857)
+++ trunk/server/source3/winbindd/idmap_ad.c	(revision 862)
@@ -458,5 +458,5 @@
 				     &id)) 
 		{
-			DEBUG(1, ("Could not get unix ID\n"));
+			DEBUG(1, ("Could not get SID for unix ID %u\n", (unsigned) id));
 			continue;
 		}
@@ -655,5 +655,6 @@
 				     &id)) 
 		{
-			DEBUG(1, ("Could not get unix ID\n"));
+			DEBUG(1, ("Could not get unix ID for SID %s\n",
+				sid_string_dbg(map->sid)));
 			continue;
 		}
Index: trunk/server/source3/winbindd/wb_lookupsids.c
===================================================================
--- trunk/server/source3/winbindd/wb_lookupsids.c	(revision 857)
+++ trunk/server/source3/winbindd/wb_lookupsids.c	(revision 862)
@@ -403,4 +403,7 @@
 
 	src_domain_index = src_name->sid_index;
+	if (src_domain_index >= src_domains->count) {
+		return false;
+	}
 	src_domain = &src_domains->domains[src_domain_index];
 
Index: trunk/server/source3/winbindd/winbindd.c
===================================================================
--- trunk/server/source3/winbindd/winbindd.c	(revision 857)
+++ trunk/server/source3/winbindd/winbindd.c	(revision 862)
@@ -1079,4 +1079,10 @@
 			   MSG_WINBIND_ONLINESTATUS, winbind_msg_onlinestatus);
 
+	/* Handle domain online/offline messages for domains */
+	messaging_register(winbind_messaging_context(), NULL,
+			   MSG_WINBIND_DOMAIN_OFFLINE, winbind_msg_domain_offline);
+	messaging_register(winbind_messaging_context(), NULL,
+			   MSG_WINBIND_DOMAIN_ONLINE, winbind_msg_domain_online);
+
 	messaging_register(winbind_messaging_context(), NULL,
 			   MSG_DUMP_EVENT_LIST, winbind_msg_dump_event_list);
Index: trunk/server/source3/winbindd/winbindd_cache.c
===================================================================
--- trunk/server/source3/winbindd/winbindd_cache.c	(revision 857)
+++ trunk/server/source3/winbindd/winbindd_cache.c	(revision 862)
@@ -946,4 +946,13 @@
 	if (!centry)
 		return;
+
+	if ((domain_name == NULL) || (domain_name[0] == '\0')) {
+		struct winbindd_domain *mydomain =
+			find_domain_from_sid_noinit(sid);
+		if (mydomain != NULL) {
+			domain_name = mydomain->name;
+		}
+	}
+
 	centry_put_uint32(centry, type);
 	centry_put_sid(centry, sid);
@@ -965,4 +974,12 @@
 	if (!centry)
 		return;
+
+	if ((domain_name == NULL) || (domain_name[0] == '\0')) {
+		struct winbindd_domain *mydomain =
+			find_domain_from_sid_noinit(sid);
+		if (mydomain != NULL) {
+			domain_name = mydomain->name;
+		}
+	}
 
 	if (NT_STATUS_IS_OK(status)) {
@@ -1782,4 +1799,8 @@
 	}
 
+	if ((domain_name == NULL) || (domain_name[0] == '\0')) {
+		domain_name = domain->name;
+	}
+
 	centry = wcache_fetch(cache, domain, "NS/%s/%s", domain_name, uname);
 	TALLOC_FREE(uname);
@@ -2131,4 +2152,5 @@
 					/* something's definitely wrong */
 					result = centry->status;
+					centry_free(centry);
 					goto error;
 				}
Index: trunk/server/source3/winbindd/winbindd_cm.c
===================================================================
--- trunk/server/source3/winbindd/winbindd_cm.c	(revision 857)
+++ trunk/server/source3/winbindd/winbindd_cm.c	(revision 862)
@@ -338,4 +338,44 @@
 }
 
+void winbind_msg_domain_offline(struct messaging_context *msg_ctx,
+				void *private_data,
+				uint32_t msg_type,
+				struct server_id server_id,
+				DATA_BLOB *data)
+{
+	const char *domain_name = (const char *)data->data;
+	struct winbindd_domain *domain;
+
+	domain = find_domain_from_name_noinit(domain_name);
+	if (domain == NULL) {
+		return;
+	}
+
+	domain->online = false;
+
+	DEBUG(10, ("Domain %s is marked as offline now.\n",
+		   domain_name));
+}
+
+void winbind_msg_domain_online(struct messaging_context *msg_ctx,
+				void *private_data,
+				uint32_t msg_type,
+				struct server_id server_id,
+				DATA_BLOB *data)
+{
+	const char *domain_name = (const char *)data->data;
+	struct winbindd_domain *domain;
+
+	domain = find_domain_from_name_noinit(domain_name);
+	if (domain == NULL) {
+		return;
+	}
+
+	domain->online = true;
+
+	DEBUG(10, ("Domain %s is marked as online now.\n",
+		   domain_name));
+}
+
 /****************************************************************
  Set domain offline and also add handler to put us back online
@@ -345,4 +385,6 @@
 void set_domain_offline(struct winbindd_domain *domain)
 {
+	pid_t parent_pid = getppid();
+
 	DEBUG(10,("set_domain_offline: called for domain %s\n",
 		domain->name ));
@@ -391,4 +433,13 @@
 	DEBUG(10,("set_domain_offline: added event handler for domain %s\n",
 		domain->name ));
+
+	/* Send a message to the parent that the domain is offline. */
+	if (parent_pid > 1 && !domain->internal) {
+		messaging_send_buf(winbind_messaging_context(),
+				   pid_to_procid(parent_pid),
+				   MSG_WINBIND_DOMAIN_OFFLINE,
+				   (uint8 *)domain->name,
+				   strlen(domain->name) + 1);
+	}
 
 	/* Send an offline message to the idmap child when our
@@ -416,4 +467,6 @@
 static void set_domain_online(struct winbindd_domain *domain)
 {
+	pid_t parent_pid = getppid();
+
 	DEBUG(10,("set_domain_online: called for domain %s\n",
 		domain->name ));
@@ -466,4 +519,13 @@
 
 	domain->online = True;
+
+	/* Send a message to the parent that the domain is online. */
+	if (parent_pid > 1 && !domain->internal) {
+		messaging_send_buf(winbind_messaging_context(),
+				   pid_to_procid(parent_pid),
+				   MSG_WINBIND_DOMAIN_ONLINE,
+				   (uint8 *)domain->name,
+				   strlen(domain->name) + 1);
+	}
 
 	/* Send an online message to the idmap child when our
@@ -1024,4 +1086,7 @@
 		result = cli_set_domain((*cli), domain->name);
 		if (!NT_STATUS_IS_OK(result)) {
+			SAFE_FREE(ipc_username);
+			SAFE_FREE(ipc_domain);
+			SAFE_FREE(ipc_password);
 			return result;
 		}
@@ -1603,4 +1668,8 @@
 		result = cm_prepare_connection(domain, fd, domain->dcname,
 			&new_conn->cli, &retry);
+		if (!NT_STATUS_IS_OK(result)) {
+			/* Don't leak the smb connection socket */
+			close(fd);
+		}
 
 		if (!retry)
@@ -2565,4 +2634,40 @@
 
 /****************************************************************************
+Open a LSA connection to a DC, suiteable for LSA lookup calls.
+****************************************************************************/
+
+NTSTATUS cm_connect_lsat(struct winbindd_domain *domain,
+			 TALLOC_CTX *mem_ctx,
+			 struct rpc_pipe_client **cli,
+			 struct policy_handle *lsa_policy)
+{
+	NTSTATUS status;
+
+	if (domain->can_do_ncacn_ip_tcp) {
+		status = cm_connect_lsa_tcp(domain, mem_ctx, cli);
+		if (NT_STATUS_EQUAL(status, NT_STATUS_ACCESS_DENIED) ||
+		    NT_STATUS_EQUAL(status, NT_STATUS_RPC_SEC_PKG_ERROR) ||
+		    NT_STATUS_EQUAL(status, NT_STATUS_NETWORK_ACCESS_DENIED)) {
+			invalidate_cm_connection(&domain->conn);
+			status = cm_connect_lsa_tcp(domain, mem_ctx, cli);
+		}
+		if (NT_STATUS_IS_OK(status)) {
+			return status;
+		}
+
+		/*
+		 * we tried twice to connect via ncan_ip_tcp and schannel and
+		 * failed - maybe it is a trusted domain we can't connect to ?
+		 * do not try tcp next time - gd
+		 */
+		domain->can_do_ncacn_ip_tcp = false;
+	}
+
+	status = cm_connect_lsa(domain, mem_ctx, cli, lsa_policy);
+
+	return status;
+}
+
+/****************************************************************************
  Open the netlogon pipe to this DC. Use schannel if specified in client conf.
  session key stored in conn->netlogon_pipe->dc->sess_key.
Index: trunk/server/source3/winbindd/winbindd_dual.c
===================================================================
--- trunk/server/source3/winbindd/winbindd_dual.c	(revision 857)
+++ trunk/server/source3/winbindd/winbindd_dual.c	(revision 862)
@@ -1223,4 +1223,9 @@
 	messaging_deregister(winbind_messaging_context(),
 			     MSG_DEBUG, NULL);
+
+	messaging_deregister(winbind_messaging_context(),
+			     MSG_WINBIND_DOMAIN_OFFLINE, NULL);
+	messaging_deregister(winbind_messaging_context(),
+			     MSG_WINBIND_DOMAIN_ONLINE, NULL);
 
 	/* We have destroyed all events in the winbindd_event_context
Index: trunk/server/source3/winbindd/winbindd_msrpc.c
===================================================================
--- trunk/server/source3/winbindd/winbindd_msrpc.c	(revision 857)
+++ trunk/server/source3/winbindd/winbindd_msrpc.c	(revision 862)
@@ -36,4 +36,11 @@
 #define DBGC_CLASS DBGC_WINBIND
 
+static NTSTATUS winbindd_lookup_names(TALLOC_CTX *mem_ctx,
+				      struct winbindd_domain *domain,
+				      uint32_t num_names,
+				      const char **names,
+				      const char ***domains,
+				      struct dom_sid **sids,
+				      enum lsa_SidType **types);
 
 /* Query display info for a domain.  This returns enough information plus a
@@ -738,6 +745,9 @@
 		   care of freeing the temporary arrays later on. */
 
-		if (tmp_names.count != tmp_types.count) {
-			return NT_STATUS_UNSUCCESSFUL;
+		if (tmp_names.count != num_lookup_rids) {
+			return NT_STATUS_INVALID_NETWORK_RESPONSE;
+		}
+		if (tmp_types.count != num_lookup_rids) {
+			return NT_STATUS_INVALID_NETWORK_RESPONSE;
 		}
 
@@ -745,4 +755,7 @@
 			if (tmp_types.ids[r] == SID_NAME_UNKNOWN) {
 				continue;
+			}
+			if (total_names >= *num_names) {
+				break;
 			}
 			(*names)[total_names] = fill_domain_username_talloc(
@@ -938,6 +951,7 @@
 
 	status = cm_connect_lsa(domain, tmp_ctx, &lsa_pipe, &lsa_policy);
-	if (!NT_STATUS_IS_OK(status))
-		return status;
+	if (!NT_STATUS_IS_OK(status)) {
+		goto done;
+	}
 
 	status = rpc_trusted_domains(tmp_ctx,
@@ -1057,14 +1071,4 @@
 	return status;
 }
-
-typedef NTSTATUS (*lookup_sids_fn_t)(struct dcerpc_binding_handle *h,
-				     TALLOC_CTX *mem_ctx,
-				     struct policy_handle *pol,
-				     int num_sids,
-				     const struct dom_sid *sids,
-				     char ***pdomains,
-				     char ***pnames,
-				     enum lsa_SidType **ptypes,
-				     NTSTATUS *result);
 
 NTSTATUS winbindd_lookup_sids(TALLOC_CTX *mem_ctx,
@@ -1082,22 +1086,18 @@
 	struct policy_handle lsa_policy;
 	unsigned int orig_timeout;
-	lookup_sids_fn_t lookup_sids_fn = dcerpc_lsa_lookup_sids;
-
-	if (domain->can_do_ncacn_ip_tcp) {
-		status = cm_connect_lsa_tcp(domain, mem_ctx, &cli);
-		if (NT_STATUS_IS_OK(status)) {
-			lookup_sids_fn = dcerpc_lsa_lookup_sids3;
-			goto lookup;
-		}
-		domain->can_do_ncacn_ip_tcp = false;
-	}
-	status = cm_connect_lsa(domain, mem_ctx, &cli, &lsa_policy);
-
+	bool use_lookupsids3 = false;
+	bool retried = false;
+
+ connect:
+	status = cm_connect_lsat(domain, mem_ctx, &cli, &lsa_policy);
 	if (!NT_STATUS_IS_OK(status)) {
 		return status;
 	}
 
- lookup:
 	b = cli->binding_handle;
+
+	if (cli->transport->transport == NCACN_IP_TCP) {
+		use_lookupsids3 = true;
+	}
 
 	/*
@@ -1108,13 +1108,14 @@
 	orig_timeout = dcerpc_binding_handle_set_timeout(b, 35000);
 
-	status = lookup_sids_fn(b,
-				mem_ctx,
-				&lsa_policy,
-				num_sids,
-				sids,
-				domains,
-				names,
-				types,
-				&result);
+	status = dcerpc_lsa_lookup_sids_generic(b,
+						mem_ctx,
+						&lsa_policy,
+						num_sids,
+						sids,
+						domains,
+						names,
+						types,
+						use_lookupsids3,
+						&result);
 
 	/* And restore our original timeout. */
@@ -1122,5 +1123,6 @@
 
 	if (NT_STATUS_EQUAL(status, NT_STATUS_ACCESS_DENIED) ||
-	    NT_STATUS_EQUAL(status, NT_STATUS_RPC_SEC_PKG_ERROR)) {
+	    NT_STATUS_EQUAL(status, NT_STATUS_RPC_SEC_PKG_ERROR) ||
+	    NT_STATUS_EQUAL(status, NT_STATUS_NETWORK_ACCESS_DENIED)) {
 		/*
 		 * This can happen if the schannel key is not
@@ -1130,4 +1132,9 @@
 		 */
 		invalidate_cm_connection(&domain->conn);
+		domain->can_do_ncacn_ip_tcp = domain->active_directory;
+		if (!retried) {
+			retried = true;
+			goto connect;
+		}
 		status = NT_STATUS_ACCESS_DENIED;
 	}
@@ -1144,22 +1151,11 @@
 }
 
-typedef NTSTATUS (*lookup_names_fn_t)(struct dcerpc_binding_handle *h,
-				      TALLOC_CTX *mem_ctx,
-				      struct policy_handle *pol,
+static NTSTATUS winbindd_lookup_names(TALLOC_CTX *mem_ctx,
+				      struct winbindd_domain *domain,
 				      uint32_t num_names,
 				      const char **names,
-				      const char ***dom_names,
-				      enum lsa_LookupNamesLevel level,
+				      const char ***domains,
 				      struct dom_sid **sids,
-				      enum lsa_SidType **types,
-				      NTSTATUS *result);
-
-NTSTATUS winbindd_lookup_names(TALLOC_CTX *mem_ctx,
-			       struct winbindd_domain *domain,
-			       uint32_t num_names,
-			       const char **names,
-			       const char ***domains,
-			       struct dom_sid **sids,
-			       enum lsa_SidType **types)
+				      enum lsa_SidType **types)
 {
 	NTSTATUS status;
@@ -1169,22 +1165,18 @@
 	struct policy_handle lsa_policy;
 	unsigned int orig_timeout = 0;
-	lookup_names_fn_t lookup_names_fn = dcerpc_lsa_lookup_names;
-
-	if (domain->can_do_ncacn_ip_tcp) {
-		status = cm_connect_lsa_tcp(domain, mem_ctx, &cli);
-		if (NT_STATUS_IS_OK(status)) {
-			lookup_names_fn = dcerpc_lsa_lookup_names4;
-			goto lookup;
-		}
-		domain->can_do_ncacn_ip_tcp = false;
-	}
-	status = cm_connect_lsa(domain, mem_ctx, &cli, &lsa_policy);
-
+	bool use_lookupnames4 = false;
+	bool retried = false;
+
+ connect:
+	status = cm_connect_lsat(domain, mem_ctx, &cli, &lsa_policy);
 	if (!NT_STATUS_IS_OK(status)) {
 		return status;
 	}
 
- lookup:
 	b = cli->binding_handle;
+
+	if (cli->transport->transport == NCACN_IP_TCP) {
+		use_lookupnames4 = true;
+	}
 
 	/*
@@ -1195,14 +1187,15 @@
 	orig_timeout = dcerpc_binding_handle_set_timeout(b, 35000);
 
-	status = lookup_names_fn(b,
-				 mem_ctx,
-				 &lsa_policy,
-				 num_names,
-				 (const char **) names,
-				 domains,
-				 1,
-				 sids,
-				 types,
-				 &result);
+	status = dcerpc_lsa_lookup_names_generic(b,
+						 mem_ctx,
+						 &lsa_policy,
+						 num_names,
+						 (const char **) names,
+						 domains,
+						 1,
+						 sids,
+						 types,
+						 use_lookupnames4,
+						 &result);
 
 	/* And restore our original timeout. */
@@ -1210,5 +1203,6 @@
 
 	if (NT_STATUS_EQUAL(status, NT_STATUS_ACCESS_DENIED) ||
-	    NT_STATUS_EQUAL(status, NT_STATUS_RPC_SEC_PKG_ERROR)) {
+	    NT_STATUS_EQUAL(status, NT_STATUS_RPC_SEC_PKG_ERROR) ||
+	    NT_STATUS_EQUAL(status, NT_STATUS_NETWORK_ACCESS_DENIED)) {
 		/*
 		 * This can happen if the schannel key is not
@@ -1218,4 +1212,8 @@
 		 */
 		invalidate_cm_connection(&domain->conn);
+		if (!retried) {
+			retried = true;
+			goto connect;
+		}
 		status = NT_STATUS_ACCESS_DENIED;
 	}
Index: trunk/server/source3/winbindd/winbindd_pam.c
===================================================================
--- trunk/server/source3/winbindd/winbindd_pam.c	(revision 857)
+++ trunk/server/source3/winbindd/winbindd_pam.c	(revision 862)
@@ -669,4 +669,12 @@
 
 failed:
+	/*
+	 * Do not delete an existing valid credential cache, if the user
+	 * e.g. enters a wrong password
+	 */
+	if ((strequal(krb5_cc_type, "FILE") || strequal(krb5_cc_type, "WRFILE"))
+	    && user_ccache_file != NULL) {
+		return result;
+	}
 
 	/* we could have created a new credential cache with a valid tgt in it
@@ -1153,4 +1161,5 @@
 {
 	int attempts = 0;
+	int netr_attempts = 0;
 	bool retry = false;
 	NTSTATUS result;
@@ -1167,20 +1176,45 @@
 
 		if (!NT_STATUS_IS_OK(result)) {
-			DEBUG(3,("could not open handle to NETLOGON pipe (error: %s)\n",
-				  nt_errstr(result)));
-			if (NT_STATUS_EQUAL(result, NT_STATUS_IO_TIMEOUT)) {
-				if (attempts > 0) {
-					DEBUG(3, ("This is the second problem for this "
-						"particular call, forcing the close of "
-						"this connection\n"));
-					invalidate_cm_connection(&domain->conn);
-				} else {
-					DEBUG(3, ("First call to cm_connect_netlogon "
-						"has timed out, retrying\n"));
-					continue;
-				}
+			DEBUG(3,("Could not open handle to NETLOGON pipe "
+				 "(error: %s, attempts: %d)\n",
+				  nt_errstr(result), netr_attempts));
+
+			/* After the first retry always close the connection */
+			if (netr_attempts > 0) {
+				DEBUG(3, ("This is again a problem for this "
+					  "particular call, forcing the close "
+					  "of this connection\n"));
+				invalidate_cm_connection(&domain->conn);
+			}
+
+			/* After the second retry failover to the next DC */
+			if (netr_attempts > 1) {
+				/*
+				 * If the netlogon server is not reachable then
+				 * it is possible that the DC is rebuilding
+				 * sysvol and shutdown netlogon for that time.
+				 * We should failover to the next dc.
+				 */
+				DEBUG(3, ("This is the third problem for this "
+					  "particular call, adding DC to the "
+					  "negative cache list\n"));
+				add_failed_connection_entry(domain->name,
+							    domain->dcname,
+							    result);
+				saf_delete(domain->name);
+			}
+
+			/* Only allow 3 retries */
+			if (netr_attempts < 3) {
+				DEBUG(3, ("The connection to netlogon "
+					  "failed, retrying\n"));
+				netr_attempts++;
+				retry = true;
+				continue;
 			}
 			return result;
 		}
+		netr_attempts = 0;
+
 		auth = netlogon_pipe->auth;
 		if (netlogon_pipe->dc) {
Index: trunk/server/source3/winbindd/winbindd_proto.h
===================================================================
--- trunk/server/source3/winbindd/winbindd_proto.h	(revision 857)
+++ trunk/server/source3/winbindd/winbindd_proto.h	(revision 862)
@@ -48,11 +48,4 @@
 			      char ***names,
 			      enum lsa_SidType **types);
-NTSTATUS winbindd_lookup_names(TALLOC_CTX *mem_ctx,
-			       struct winbindd_domain *domain,
-			       uint32_t num_names,
-			       const char **names,
-			       const char ***domains,
-			       struct dom_sid **sids,
-			       enum lsa_SidType **types);
 NTSTATUS rpc_lookup_sids(TALLOC_CTX *mem_ctx,
 			 struct winbindd_domain *domain,
@@ -158,4 +151,14 @@
 
 /* The following definitions come from winbindd/winbindd_cm.c  */
+void winbind_msg_domain_offline(struct messaging_context *msg_ctx,
+				void *private_data,
+				uint32_t msg_type,
+				struct server_id server_id,
+				DATA_BLOB *data);
+void winbind_msg_domain_online(struct messaging_context *msg_ctx,
+				void *private_data,
+				uint32_t msg_type,
+				struct server_id server_id,
+				DATA_BLOB *data);
 
 void set_domain_offline(struct winbindd_domain *domain);
@@ -171,4 +174,8 @@
 			    TALLOC_CTX *mem_ctx,
 			    struct rpc_pipe_client **cli);
+NTSTATUS cm_connect_lsat(struct winbindd_domain *domain,
+			 TALLOC_CTX *mem_ctx,
+			 struct rpc_pipe_client **cli,
+			 struct policy_handle *lsa_policy);
 NTSTATUS cm_connect_netlogon(struct winbindd_domain *domain,
 			     struct rpc_pipe_client **cli);
Index: trunk/server/source3/winbindd/winbindd_rpc.c
===================================================================
--- trunk/server/source3/winbindd/winbindd_rpc.c	(revision 857)
+++ trunk/server/source3/winbindd/winbindd_rpc.c	(revision 862)
@@ -872,6 +872,9 @@
 	/* Copy result into array.  The talloc system will take
 	   care of freeing the temporary arrays later on. */
-	if (tmp_names.count != tmp_types.count) {
-		return NT_STATUS_UNSUCCESSFUL;
+	if (tmp_names.count != num_names) {
+		return NT_STATUS_INVALID_NETWORK_RESPONSE;
+	}
+	if (tmp_types.count != num_names) {
+		return NT_STATUS_INVALID_NETWORK_RESPONSE;
 	}
 
@@ -879,4 +882,7 @@
 		if (tmp_types.ids[r] == SID_NAME_UNKNOWN) {
 			continue;
+		}
+		if (total_names >= num_names) {
+			break;
 		}
 		names[total_names] = fill_domain_username_talloc(names,
@@ -1034,4 +1040,5 @@
 static NTSTATUS rpc_try_lookup_sids3(TALLOC_CTX *mem_ctx,
 				     struct winbindd_domain *domain,
+				     struct rpc_pipe_client *cli,
 				     struct lsa_SidArray *sids,
 				     struct lsa_RefDomainList **pdomains,
@@ -1039,14 +1046,7 @@
 {
 	struct lsa_TransNameArray2 lsa_names2;
-	struct lsa_TransNameArray *names;
+	struct lsa_TransNameArray *names = *pnames;
 	uint32_t i, count;
-	struct rpc_pipe_client *cli;
 	NTSTATUS status, result;
-
-	status = cm_connect_lsa_tcp(domain, talloc_tos(), &cli);
-	if (!NT_STATUS_IS_OK(status)) {
-		domain->can_do_ncacn_ip_tcp = false;
-		return status;
-	}
 
 	ZERO_STRUCT(lsa_names2);
@@ -1067,8 +1067,8 @@
 		return result;
 	}
-	names = TALLOC_ZERO_P(mem_ctx, struct lsa_TransNameArray);
-	if (names == NULL) {
-		return NT_STATUS_NO_MEMORY;
-	}
+	if (sids->num_sids != lsa_names2.count) {
+		return NT_STATUS_INVALID_NETWORK_RESPONSE;
+	}
+
 	names->count = lsa_names2.count;
 	names->names = talloc_array(names, struct lsa_TranslatedName,
@@ -1082,6 +1082,15 @@
 			names->names, &lsa_names2.names[i].name.string);
 		names->names[i].sid_index = lsa_names2.names[i].sid_index;
-	}
-	*pnames = names;
+
+		if (names->names[i].sid_index == UINT32_MAX) {
+			continue;
+		}
+		if ((*pdomains) == NULL) {
+			return NT_STATUS_INVALID_NETWORK_RESPONSE;
+		}
+		if (names->names[i].sid_index >= (*pdomains)->count) {
+			return NT_STATUS_INVALID_NETWORK_RESPONSE;
+		}
+	}
 	return result;
 }
@@ -1093,27 +1102,21 @@
 			 struct lsa_TransNameArray **pnames)
 {
-	struct lsa_TransNameArray *names;
+	struct lsa_TransNameArray *names = *pnames;
 	struct rpc_pipe_client *cli = NULL;
 	struct policy_handle lsa_policy;
 	uint32_t count;
+	uint32_t i;
 	NTSTATUS status, result;
 
-	if (domain->can_do_ncacn_ip_tcp) {
-		status = rpc_try_lookup_sids3(mem_ctx, domain, sids,
-					      pdomains, pnames);
-		if (!NT_STATUS_IS_ERR(status)) {
-			return status;
-		}
-	}
-
-	status = cm_connect_lsa(domain, mem_ctx, &cli, &lsa_policy);
+	status = cm_connect_lsat(domain, mem_ctx, &cli, &lsa_policy);
 	if (!NT_STATUS_IS_OK(status)) {
 		return status;
 	}
 
-	names = TALLOC_ZERO_P(mem_ctx, struct lsa_TransNameArray);
-	if (names == NULL) {
-		return NT_STATUS_NO_MEMORY;
-	}
+	if (cli->transport->transport == NCACN_IP_TCP) {
+		return rpc_try_lookup_sids3(mem_ctx, domain, cli, sids,
+					    pdomains, pnames);
+	}
+
 	status = dcerpc_lsa_LookupSids(cli->binding_handle, mem_ctx,
 				       &lsa_policy, sids, pdomains,
@@ -1126,5 +1129,21 @@
 		return result;
 	}
-	*pnames = names;
+
+	if (sids->num_sids != names->count) {
+		return NT_STATUS_INVALID_NETWORK_RESPONSE;
+	}
+
+	for (i=0; i < names->count; i++) {
+		if (names->names[i].sid_index == UINT32_MAX) {
+			continue;
+		}
+		if ((*pdomains) == NULL) {
+			return NT_STATUS_INVALID_NETWORK_RESPONSE;
+		}
+		if (names->names[i].sid_index >= (*pdomains)->count) {
+			return NT_STATUS_INVALID_NETWORK_RESPONSE;
+		}
+	}
+
 	return result;
 }
Index: trunk/server/source3/wscript
===================================================================
--- trunk/server/source3/wscript	(revision 857)
+++ trunk/server/source3/wscript	(revision 862)
@@ -124,5 +124,5 @@
     conf.CHECK_FUNCS('initgroups select poll rdchk getgrnam getgrent pathconf')
     conf.CHECK_FUNCS('setpriv setgidx setuidx setgroups sysconf stat64 fstat64')
-    conf.CHECK_FUNCS('lstat64 fopen64 atexit grantpt lseek64 ftruncate64 fallocate fallocate64 posix_fallocate posix_fallocate64')
+    conf.CHECK_FUNCS('lstat64 fopen64 atexit grantpt posix_openpt lseek64 ftruncate64 fallocate fallocate64 posix_fallocate posix_fallocate64')
     conf.CHECK_FUNCS('fseeko fseek64 fseeko64 ftell64 ftello64 setluid')
     conf.CHECK_FUNCS('getpwnam', headers='sys/types.h pwd.h')
@@ -662,4 +662,6 @@
         conf.CHECK_VARIABLE('KRB5_KU_OTHER_CKSUM', headers='krb5.h')
         conf.CHECK_VARIABLE('KRB5_KEYUSAGE_APP_DATA_CKSUM', headers='krb5.h')
+	conf.CHECK_VARIABLE('ENCTYPE_AES128_CTS_HMAC_SHA1_96', headers='krb5.h')
+	conf.CHECK_VARIABLE('ENCTYPE_AES256_CTS_HMAC_SHA1_96', headers='krb5.h')
         conf.CHECK_STRUCTURE_MEMBER('krb5_keytab_entry', 'key', headers='krb5.h',
                                     define='HAVE_KRB5_KEYTAB_ENTRY_KEY')
Index: trunk/server/source4/heimdal/lib/hcrypto/libtommath/pics/makefile
===================================================================
--- trunk/server/source4/heimdal/lib/hcrypto/libtommath/pics/makefile	(revision 857)
+++ trunk/server/source4/heimdal/lib/hcrypto/libtommath/pics/makefile	(revision 862)
Index: trunk/server/source4/libcli/util/clilsa.c
===================================================================
--- trunk/server/source4/libcli/util/clilsa.c	(revision 857)
+++ trunk/server/source4/libcli/util/clilsa.c	(revision 862)
@@ -255,5 +255,19 @@
 	if (names.count != 1) {
 		talloc_free(mem_ctx2);
-		return NT_STATUS_UNSUCCESSFUL;
+		return NT_STATUS_INVALID_NETWORK_RESPONSE;
+	}
+	if (domains == NULL) {
+		talloc_free(mem_ctx2);
+		return NT_STATUS_INVALID_NETWORK_RESPONSE;
+	}
+	if (domains->count != 1) {
+		talloc_free(mem_ctx2);
+		return NT_STATUS_INVALID_NETWORK_RESPONSE;
+	}
+	if (names.names[0].sid_index != UINT32_MAX &&
+	    names.names[0].sid_index >= domains->count)
+	{
+		talloc_free(mem_ctx2);
+		return NT_STATUS_INVALID_NETWORK_RESPONSE;
 	}
 
@@ -316,5 +330,9 @@
 	if (sids.count != 1) {
 		talloc_free(mem_ctx2);
-		return NT_STATUS_UNSUCCESSFUL;
+		return NT_STATUS_INVALID_NETWORK_RESPONSE;
+	}
+	if (domains->count != 1) {
+		talloc_free(mem_ctx2);
+		return NT_STATUS_INVALID_NETWORK_RESPONSE;
 	}
 
Index: trunk/server/source4/libnet/groupinfo.c
===================================================================
--- trunk/server/source4/libnet/groupinfo.c	(revision 857)
+++ trunk/server/source4/libnet/groupinfo.c	(revision 862)
@@ -88,10 +88,14 @@
 		s->monitor_fn(&msg);
 	}
-	
 
 	/* have we actually got name resolved
 	   - we're looking for only one at the moment */
-	if (s->lookup.out.rids->count == 0) {
-		composite_error(c, NT_STATUS_NO_SUCH_USER);
+	if (s->lookup.out.rids->count != s->lookup.in.num_names) {
+		composite_error(c, NT_STATUS_INVALID_NETWORK_RESPONSE);
+		return;
+	}
+	if (s->lookup.out.types->count != s->lookup.in.num_names) {
+		composite_error(c, NT_STATUS_INVALID_NETWORK_RESPONSE);
+		return;
 	}
 
Index: trunk/server/source4/libnet/groupman.c
===================================================================
--- trunk/server/source4/libnet/groupman.c	(revision 857)
+++ trunk/server/source4/libnet/groupman.c	(revision 862)
@@ -213,11 +213,11 @@
 	/* what to do when there's no group account to delete
 	   and what if there's more than one rid resolved */
-	if (!s->lookupname.out.rids->count) {
-		c->status = NT_STATUS_NO_SUCH_GROUP;
-		composite_error(c, c->status);
-		return;
-
-	} else if (!s->lookupname.out.rids->count > 1) {
-		c->status = NT_STATUS_INVALID_ACCOUNT_NAME;
+	if (s->lookupname.out.rids->count != s->lookupname.in.num_names) {
+		c->status = NT_STATUS_INVALID_NETWORK_RESPONSE;
+		composite_error(c, c->status);
+		return;
+	}
+	if (s->lookupname.out.types->count != s->lookupname.in.num_names) {
+		c->status = NT_STATUS_INVALID_NETWORK_RESPONSE;
 		composite_error(c, c->status);
 		return;
Index: trunk/server/source4/libnet/libnet_join.c
===================================================================
--- trunk/server/source4/libnet/libnet_join.c	(revision 857)
+++ trunk/server/source4/libnet/libnet_join.c	(revision 862)
@@ -657,7 +657,15 @@
 							      r->in.account_name, ln.out.rids->count);
 			talloc_free(tmp_ctx);
-			return NT_STATUS_INVALID_PARAMETER;
-		}
-		
+			return NT_STATUS_INVALID_NETWORK_RESPONSE;
+		}
+
+		if (ln.out.types->count != 1) {
+			r->out.error_string = talloc_asprintf(mem_ctx,
+								"samr_LookupNames for [%s] returns %d RID TYPEs",
+								r->in.account_name, ln.out.types->count);
+			talloc_free(tmp_ctx);
+			return NT_STATUS_INVALID_NETWORK_RESPONSE;
+		}
+
 		/* prepare samr_OpenUser */
 		ZERO_STRUCTP(u_handle);
Index: trunk/server/source4/libnet/libnet_lookup.c
===================================================================
--- trunk/server/source4/libnet/libnet_lookup.c	(revision 857)
+++ trunk/server/source4/libnet/libnet_lookup.c	(revision 862)
@@ -364,4 +364,9 @@
 	if (!composite_is_ok(c)) return;
 
+	if (s->lookup.out.sids->count != s->lookup.in.num_names) {
+		composite_error(c, NT_STATUS_INVALID_NETWORK_RESPONSE);
+		return;
+	}
+
 	composite_done(c);
 }
Index: trunk/server/source4/libnet/libnet_passwd.c
===================================================================
--- trunk/server/source4/libnet/libnet_passwd.c	(revision 857)
+++ trunk/server/source4/libnet/libnet_passwd.c	(revision 862)
@@ -628,6 +628,14 @@
 						"samr_LookupNames for [%s] returns %d RIDs",
 						r->samr.in.account_name, ln.out.rids->count);
-		status = NT_STATUS_INVALID_PARAMETER;
+		status = NT_STATUS_INVALID_NETWORK_RESPONSE;
 		goto disconnect;	
+	}
+
+	if (ln.out.types->count != 1) {
+		r->samr.out.error_string = talloc_asprintf(mem_ctx,
+						"samr_LookupNames for [%s] returns %d RID TYPEs",
+						r->samr.in.account_name, ln.out.types->count);
+		status = NT_STATUS_INVALID_NETWORK_RESPONSE;
+		goto disconnect;
 	}
 
Index: trunk/server/source4/libnet/userinfo.c
===================================================================
--- trunk/server/source4/libnet/userinfo.c	(revision 857)
+++ trunk/server/source4/libnet/userinfo.c	(revision 862)
@@ -91,6 +91,11 @@
 	/* have we actually got name resolved
 	   - we're looking for only one at the moment */
-	if (s->lookup.out.rids->count == 0) {
-		composite_error(c, NT_STATUS_NO_SUCH_USER);
+	if (s->lookup.out.rids->count != s->lookup.in.num_names) {
+		composite_error(c, NT_STATUS_INVALID_NETWORK_RESPONSE);
+		return;
+	}
+	if (s->lookup.out.types->count != s->lookup.in.num_names) {
+		composite_error(c, NT_STATUS_INVALID_NETWORK_RESPONSE);
+		return;
 	}
 
Index: trunk/server/source4/libnet/userman.c
===================================================================
--- trunk/server/source4/libnet/userman.c	(revision 857)
+++ trunk/server/source4/libnet/userman.c	(revision 862)
@@ -237,12 +237,10 @@
 	/* what to do when there's no user account to delete
 	   and what if there's more than one rid resolved */
-	if (!s->lookupname.out.rids->count) {
-		c->status = NT_STATUS_NO_SUCH_USER;
-		composite_error(c, c->status);
-		return;
-
-	} else if (!s->lookupname.out.rids->count > 1) {
-		c->status = NT_STATUS_INVALID_ACCOUNT_NAME;
-		composite_error(c, c->status);
+	if (s->lookupname.out.rids->count != s->lookupname.in.num_names) {
+		composite_error(c, NT_STATUS_INVALID_NETWORK_RESPONSE);
+		return;
+	}
+	if (s->lookupname.out.types->count != s->lookupname.in.num_names) {
+		composite_error(c, NT_STATUS_INVALID_NETWORK_RESPONSE);
 		return;
 	}
@@ -512,12 +510,10 @@
 	/* what to do when there's no user account to delete
 	   and what if there's more than one rid resolved */
-	if (!s->lookupname.out.rids->count) {
-		c->status = NT_STATUS_NO_SUCH_USER;
-		composite_error(c, c->status);
-		return;
-
-	} else if (!s->lookupname.out.rids->count > 1) {
-		c->status = NT_STATUS_INVALID_ACCOUNT_NAME;
-		composite_error(c, c->status);
+	if (s->lookupname.out.rids->count != s->lookupname.in.num_names) {
+		composite_error(c, NT_STATUS_INVALID_NETWORK_RESPONSE);
+		return;
+	}
+	if (s->lookupname.out.types->count != s->lookupname.in.num_names) {
+		composite_error(c, NT_STATUS_INVALID_NETWORK_RESPONSE);
 		return;
 	}
Index: trunk/server/source4/librpc/rpc/dcerpc.c
===================================================================
--- trunk/server/source4/librpc/rpc/dcerpc.c	(revision 857)
+++ trunk/server/source4/librpc/rpc/dcerpc.c	(revision 862)
@@ -657,4 +657,8 @@
 	if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
 		return ndr_map_error2ntstatus(ndr_err);
+	}
+
+	if (pkt->frag_length != blob->length) {
+		return NT_STATUS_RPC_PROTOCOL_ERROR;
 	}
 
Index: trunk/server/source4/librpc/rpc/dcerpc_smb.c
===================================================================
--- trunk/server/source4/librpc/rpc/dcerpc_smb.c	(revision 857)
+++ trunk/server/source4/librpc/rpc/dcerpc_smb.c	(revision 862)
@@ -161,4 +161,10 @@
 		uint32_t frag_length = blob->length>=16?
 			dcerpc_get_frag_length(blob):0x2000;
+
+		if (frag_length < state->data.length) {
+			talloc_free(state);
+			return NT_STATUS_RPC_PROTOCOL_ERROR;
+		}
+
 		state->received = blob->length;
 		state->data = data_blob_talloc(state, NULL, frag_length);
Index: trunk/server/source4/librpc/rpc/dcerpc_smb2.c
===================================================================
--- trunk/server/source4/librpc/rpc/dcerpc_smb2.c	(revision 857)
+++ trunk/server/source4/librpc/rpc/dcerpc_smb2.c	(revision 862)
@@ -171,4 +171,10 @@
 	if (state->data.length >= 16) {
 		uint16_t frag_length = dcerpc_get_frag_length(&state->data);
+
+		if (frag_length < state->data.length) {
+			talloc_free(state);
+			return NT_STATUS_RPC_PROTOCOL_ERROR;
+		}
+
 		io.in.length = frag_length - state->data.length;
 	} else {
Index: trunk/server/source4/librpc/rpc/dcerpc_sock.c
===================================================================
--- trunk/server/source4/librpc/rpc/dcerpc_sock.c	(revision 857)
+++ trunk/server/source4/librpc/rpc/dcerpc_sock.c	(revision 862)
@@ -103,4 +103,10 @@
 	}
 	*size = dcerpc_get_frag_length(&blob);
+	if (*size < blob.length) {
+		/*
+		 * something is wrong, let the caller deal with it
+		 */
+		*size = blob.length;
+	}
 	if (*size > blob.length) {
 		return STATUS_MORE_ENTRIES;
Index: trunk/server/source4/rpc_server/samr/samr_password.c
===================================================================
--- trunk/server/source4/rpc_server/samr/samr_password.c	(revision 857)
+++ trunk/server/source4/rpc_server/samr/samr_password.c	(revision 862)
@@ -33,4 +33,9 @@
 /*
   samr_ChangePasswordUser
+
+  So old it is just not worth implementing
+  because it does not supply a plaintext and so we can't do password
+  complexity checking and cannot update all the other password hashes.
+
 */
 NTSTATUS dcesrv_samr_ChangePasswordUser(struct dcesrv_call_state *dce_call,
@@ -38,124 +43,5 @@
 					struct samr_ChangePasswordUser *r)
 {
-	struct dcesrv_handle *h;
-	struct samr_account_state *a_state;
-	struct ldb_context *sam_ctx;
-	struct ldb_message **res;
-	int ret;
-	struct samr_Password new_lmPwdHash, new_ntPwdHash, checkHash;
-	struct samr_Password *lm_pwd, *nt_pwd;
-	NTSTATUS status = NT_STATUS_OK;
-	const char * const attrs[] = { "dBCSPwd", "unicodePwd" , NULL };
-
-	DCESRV_PULL_HANDLE(h, r->in.user_handle, SAMR_HANDLE_USER);
-
-	a_state = h->data;
-
-	/* basic sanity checking on parameters.  Do this before any database ops */
-	if (!r->in.lm_present || !r->in.nt_present ||
-	    !r->in.old_lm_crypted || !r->in.new_lm_crypted ||
-	    !r->in.old_nt_crypted || !r->in.new_nt_crypted) {
-		/* we should really handle a change with lm not
-		   present */
-		return NT_STATUS_INVALID_PARAMETER_MIX;
-	}
-
-	/* Connect to a SAMDB with system privileges for fetching the old pw
-	 * hashes. */
-	sam_ctx = samdb_connect(mem_ctx, dce_call->event_ctx,
-				dce_call->conn->dce_ctx->lp_ctx,
-				system_session(dce_call->conn->dce_ctx->lp_ctx), 0);
-	if (sam_ctx == NULL) {
-		return NT_STATUS_INVALID_SYSTEM_SERVICE;
-	}
-
-	/* fetch the old hashes */
-	ret = gendb_search_dn(sam_ctx, mem_ctx,
-			      a_state->account_dn, &res, attrs);
-	if (ret != 1) {
-		return NT_STATUS_WRONG_PASSWORD;
-	}
-
-	status = samdb_result_passwords(mem_ctx,
-					dce_call->conn->dce_ctx->lp_ctx,
-					res[0], &lm_pwd, &nt_pwd);
-	if (!NT_STATUS_IS_OK(status) || !nt_pwd) {
-		return NT_STATUS_WRONG_PASSWORD;
-	}
-
-	/* decrypt and check the new lm hash */
-	if (lm_pwd) {
-		D_P16(lm_pwd->hash, r->in.new_lm_crypted->hash, new_lmPwdHash.hash);
-		D_P16(new_lmPwdHash.hash, r->in.old_lm_crypted->hash, checkHash.hash);
-		if (memcmp(checkHash.hash, lm_pwd, 16) != 0) {
-			return NT_STATUS_WRONG_PASSWORD;
-		}
-	}
-
-	/* decrypt and check the new nt hash */
-	D_P16(nt_pwd->hash, r->in.new_nt_crypted->hash, new_ntPwdHash.hash);
-	D_P16(new_ntPwdHash.hash, r->in.old_nt_crypted->hash, checkHash.hash);
-	if (memcmp(checkHash.hash, nt_pwd, 16) != 0) {
-		return NT_STATUS_WRONG_PASSWORD;
-	}
-
-	/* The NT Cross is not required by Win2k3 R2, but if present
-	   check the nt cross hash */
-	if (r->in.cross1_present && r->in.nt_cross && lm_pwd) {
-		D_P16(lm_pwd->hash, r->in.nt_cross->hash, checkHash.hash);
-		if (memcmp(checkHash.hash, new_ntPwdHash.hash, 16) != 0) {
-			return NT_STATUS_WRONG_PASSWORD;
-		}
-	}
-
-	/* The LM Cross is not required by Win2k3 R2, but if present
-	   check the lm cross hash */
-	if (r->in.cross2_present && r->in.lm_cross && lm_pwd) {
-		D_P16(nt_pwd->hash, r->in.lm_cross->hash, checkHash.hash);
-		if (memcmp(checkHash.hash, new_lmPwdHash.hash, 16) != 0) {
-			return NT_STATUS_WRONG_PASSWORD;
-		}
-	}
-
-	/* Start a SAM with user privileges for the password change */
-	sam_ctx = samdb_connect(mem_ctx, dce_call->event_ctx,
-				dce_call->conn->dce_ctx->lp_ctx,
-				dce_call->conn->auth_state.session_info, 0);
-	if (sam_ctx == NULL) {
-		return NT_STATUS_INVALID_SYSTEM_SERVICE;
-	}
-
-	/* Start transaction */
-	ret = ldb_transaction_start(sam_ctx);
-	if (ret != LDB_SUCCESS) {
-		DEBUG(1, ("Failed to start transaction: %s\n", ldb_errstring(sam_ctx)));
-		return NT_STATUS_TRANSACTION_ABORTED;
-	}
-
-	/* Performs the password modification. We pass the old hashes read out
-	 * from the database since they were already checked against the user-
-	 * provided ones. */
-	status = samdb_set_password(sam_ctx, mem_ctx,
-				    a_state->account_dn,
-				    a_state->domain_state->domain_dn,
-				    NULL, &new_lmPwdHash, &new_ntPwdHash,
-				    lm_pwd, nt_pwd, /* this is a user password change */
-				    NULL,
-				    NULL);
-	if (!NT_STATUS_IS_OK(status)) {
-		ldb_transaction_cancel(sam_ctx);
-		return status;
-	}
-
-	/* And this confirms it in a transaction commit */
-	ret = ldb_transaction_commit(sam_ctx);
-	if (ret != LDB_SUCCESS) {
-		DEBUG(1,("Failed to commit transaction to change password on %s: %s\n",
-			 ldb_dn_get_linearized(a_state->account_dn),
-			 ldb_errstring(sam_ctx)));
-		return NT_STATUS_TRANSACTION_ABORTED;
-	}
-
-	return NT_STATUS_OK;
+	return NT_STATUS_NOT_IMPLEMENTED;
 }
 
Index: trunk/server/source4/torture/ndr/ntprinting.c
===================================================================
--- trunk/server/source4/torture/ndr/ntprinting.c	(revision 857)
+++ trunk/server/source4/torture/ndr/ntprinting.c	(revision 862)
@@ -23,4 +23,5 @@
 #include "librpc/gen_ndr/ndr_ntprinting.h"
 #include "torture/ndr/proto.h"
+#include "param/param.h"
 
 static const uint8_t ntprinting_printer_data[] = {
@@ -297,4 +298,168 @@
 };
 
+static const uint8_t ntprinting_printer_data_latin1[] = {
+	0x48, 0x1a, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+	0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x94, 0x46, 0x50, 0x0e, 0x00, 0x00, 0x00, 0x00,
+	0x94, 0xee, 0xb9, 0x50, 0x00, 0x53, 0x30, 0x42,
+	0x43, 0x00, 0x53, 0x30, 0x42, 0x43, 0x00, 0x53,
+	0x61, 0x6d, 0x62, 0x61, 0x20, 0x50, 0x72, 0x69,
+	0x6e, 0x74, 0x65, 0x72, 0x20, 0x50, 0x6f, 0x72,
+	0x74, 0x00, 0x48, 0x50, 0x20, 0x44, 0x65, 0x73,
+	0x69, 0x67, 0x6e, 0x6a, 0x65, 0x74, 0x20, 0x38,
+	0x30, 0x30, 0x50, 0x53, 0x20, 0x34, 0x32, 0x20,
+	0x62, 0x79, 0x20, 0x48, 0x50, 0x00, 0x22, 0x20,
+	0x53, 0x41, 0x4c, 0x41, 0x20, 0x44, 0x41, 0x20,
+	0x52, 0x45, 0x43, 0x45, 0x50, 0xc7, 0xc3, 0x4f,
+	0x20, 0x44, 0x41, 0x20, 0x43, 0x4f, 0x4e, 0x53,
+	0x54, 0x52, 0x55, 0xc7, 0xc3, 0x4f, 0x20, 0x2d,
+	0x20, 0x52, 0x41, 0x4e, 0x44, 0x30, 0x20, 0x4c,
+	0x4f, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x00, 0x55,
+	0x54, 0x47, 0x43, 0x41, 0x20, 0x00, 0x00, 0x77,
+	0x69, 0x6e, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x00,
+	0x52, 0x41, 0x57, 0x00, 0x00, 0x01, 0x00, 0x00,
+	0x00, 0x5c, 0x5c, 0x4c, 0x4f, 0x43, 0x41, 0x4c,
+	0x48, 0x4f, 0x53, 0x54, 0x5c, 0x53, 0x30, 0x42,
+	0x43, 0x00, 0x4c, 0x65, 0x74, 0x74, 0x65, 0x72,
+	0x00, 0x01, 0x04, 0x00, 0x04, 0xdc, 0x00, 0x00,
+	0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x64, 0x00, 0x01, 0x00, 0x0f, 0x00, 0xfc,
+	0xff, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x47, 0x01,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x01, 0x00, 0x00, 0x00, 0x50, 0x72, 0x69,
+	0x6e, 0x74, 0x65, 0x72, 0x44, 0x72, 0x69, 0x76,
+	0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
+	0x00, 0x00, 0x00, 0x50, 0x72, 0x69, 0x6e, 0x74,
+	0x65, 0x72, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72,
+	0x44, 0x61, 0x74, 0x61, 0x5c, 0x44, 0x72, 0x76,
+	0x50, 0x61, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61,
+	0x6e, 0x64, 0x61, 0x72, 0x64, 0x73, 0x00, 0x04,
+	0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x61,
+	0xc2, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x50,
+	0x72, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x44, 0x72,
+	0x69, 0x76, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61,
+	0x5c, 0x44, 0x72, 0x76, 0x44, 0x65, 0x76, 0x4d,
+	0x6f, 0x64, 0x65, 0x00, 0x01, 0x00, 0x00, 0x00,
+	0x42, 0x02, 0x00, 0x00, 0x31, 0x00, 0x3b, 0x00,
+	0x31, 0x00, 0x3b, 0x00, 0x32, 0x00, 0x36, 0x00,
+	0x36, 0x00, 0x3b, 0x00, 0x2d, 0x00, 0x33, 0x00,
+	0x3b, 0x00, 0x31, 0x00, 0x3b, 0x00, 0x31, 0x00,
+	0x30, 0x00, 0x3b, 0x00, 0x30, 0x00, 0x3b, 0x00,
+	0x30, 0x00, 0x3b, 0x00, 0x31, 0x00, 0x3b, 0x00,
+	0x31, 0x00, 0x30, 0x00, 0x37, 0x00, 0x33, 0x00,
+	0x37, 0x00, 0x34, 0x00, 0x31, 0x00, 0x39, 0x00,
+	0x30, 0x00, 0x35, 0x00, 0x3b, 0x00, 0x30, 0x00,
+	0x3b, 0x00, 0x30, 0x00, 0x3b, 0x00, 0x30, 0x00,
+	0x3b, 0x00, 0x31, 0x00, 0x3b, 0x00, 0x35, 0x00,
+	0x30, 0x00, 0x3b, 0x00, 0x34, 0x00, 0x3b, 0x00,
+	0x35, 0x00, 0x3b, 0x00, 0x30, 0x00, 0x3b, 0x00,
+	0x32, 0x00, 0x30, 0x00, 0x30, 0x00, 0x3b, 0x00,
+	0x30, 0x00, 0x3b, 0x00, 0x30, 0x00, 0x3b, 0x00,
+	0x30, 0x00, 0x3b, 0x00, 0x30, 0x00, 0x3b, 0x00,
+	0x32, 0x00, 0x3b, 0x00, 0x32, 0x00, 0x3b, 0x00,
+	0x32, 0x00, 0x3b, 0x00, 0x31, 0x00, 0x3b, 0x00,
+	0x31, 0x00, 0x3b, 0x00, 0x31, 0x00, 0x3b, 0x00,
+	0x30, 0x00, 0x3b, 0x00, 0x32, 0x00, 0x36, 0x00,
+	0x32, 0x00, 0x3b, 0x00, 0x31, 0x00, 0x30, 0x00,
+	0x30, 0x00, 0x3b, 0x00, 0x31, 0x00, 0x36, 0x00,
+	0x37, 0x00, 0x37, 0x00, 0x37, 0x00, 0x32, 0x00,
+	0x31, 0x00, 0x36, 0x00, 0x3b, 0x00, 0x30, 0x00,
+	0x3b, 0x00, 0x31, 0x00, 0x3b, 0x00, 0x30, 0x00,
+	0x3b, 0x00, 0x31, 0x00, 0x36, 0x00, 0x3b, 0x00,
+	0x32, 0x00, 0x31, 0x00, 0x3b, 0x00, 0x32, 0x00,
+	0x30, 0x00, 0x3b, 0x00, 0x31, 0x00, 0x3b, 0x00,
+	0x31, 0x00, 0x3b, 0x00, 0x30, 0x00, 0x3b, 0x00,
+	0x30, 0x00, 0x3b, 0x00, 0x30, 0x00, 0x3b, 0x00,
+	0x30, 0x00, 0x3b, 0x00, 0x31, 0x00, 0x3b, 0x00,
+	0x31, 0x00, 0x3b, 0x00, 0x30, 0x00, 0x3b, 0x00,
+	0x34, 0x00, 0x3b, 0x00, 0x36, 0x00, 0x35, 0x00,
+	0x35, 0x00, 0x33, 0x00, 0x35, 0x00, 0x3b, 0x00,
+	0x32, 0x00, 0x36, 0x00, 0x33, 0x00, 0x31, 0x00,
+	0x37, 0x00, 0x32, 0x00, 0x3b, 0x00, 0x30, 0x00,
+	0x3b, 0x00, 0x30, 0x00, 0x3b, 0x00, 0x31, 0x00,
+	0x3b, 0x00, 0x30, 0x00, 0x3b, 0x00, 0x37, 0x00,
+	0x3b, 0x00, 0x31, 0x00, 0x30, 0x00, 0x32, 0x00,
+	0x37, 0x00, 0x3b, 0x00, 0x31, 0x00, 0x3b, 0x00,
+	0x30, 0x00, 0x3b, 0x00, 0x32, 0x00, 0x3b, 0x00,
+	0x31, 0x00, 0x3b, 0x00, 0x32, 0x00, 0x31, 0x00,
+	0x35, 0x00, 0x39, 0x00, 0x3b, 0x00, 0x32, 0x00,
+	0x37, 0x00, 0x39, 0x00, 0x34, 0x00, 0x3b, 0x00,
+	0x32, 0x00, 0x31, 0x00, 0x35, 0x00, 0x39, 0x00,
+	0x3b, 0x00, 0x32, 0x00, 0x37, 0x00, 0x39, 0x00,
+	0x34, 0x00, 0x3b, 0x00, 0x32, 0x00, 0x31, 0x00,
+	0x35, 0x00, 0x39, 0x00, 0x3b, 0x00, 0x32, 0x00,
+	0x37, 0x00, 0x39, 0x00, 0x34, 0x00, 0x3b, 0x00,
+	0x32, 0x00, 0x31, 0x00, 0x35, 0x00, 0x39, 0x00,
+	0x3b, 0x00, 0x32, 0x00, 0x37, 0x00, 0x39, 0x00,
+	0x34, 0x00, 0x3b, 0x00, 0x32, 0x00, 0x31, 0x00,
+	0x35, 0x00, 0x39, 0x00, 0x3b, 0x00, 0x32, 0x00,
+	0x37, 0x00, 0x39, 0x00, 0x34, 0x00, 0x3b, 0x00,
+	0x32, 0x00, 0x31, 0x00, 0x35, 0x00, 0x39, 0x00,
+	0x3b, 0x00, 0x32, 0x00, 0x37, 0x00, 0x39, 0x00,
+	0x34, 0x00, 0x3b, 0x00, 0x32, 0x00, 0x31, 0x00,
+	0x35, 0x00, 0x39, 0x00, 0x3b, 0x00, 0x32, 0x00,
+	0x37, 0x00, 0x39, 0x00, 0x34, 0x00, 0x3b, 0x00,
+	0x32, 0x00, 0x31, 0x00, 0x35, 0x00, 0x39, 0x00,
+	0x3b, 0x00, 0x32, 0x00, 0x37, 0x00, 0x39, 0x00,
+	0x34, 0x00, 0x3b, 0x00, 0x32, 0x00, 0x31, 0x00,
+	0x35, 0x00, 0x39, 0x00, 0x3b, 0x00, 0x32, 0x00,
+	0x37, 0x00, 0x39, 0x00, 0x34, 0x00, 0x3b, 0x00,
+	0x32, 0x00, 0x31, 0x00, 0x35, 0x00, 0x39, 0x00,
+	0x3b, 0x00, 0x32, 0x00, 0x37, 0x00, 0x39, 0x00,
+	0x34, 0x00, 0x3b, 0x00, 0x30, 0x00, 0x3b, 0x00,
+	0x3b, 0x00, 0x3b, 0x00, 0x3b, 0x00, 0x3b, 0x00,
+	0x3b, 0x00, 0x31, 0x00, 0x30, 0x00, 0x30, 0x00,
+	0x3b, 0x00, 0x31, 0x00, 0x30, 0x00, 0x30, 0x00,
+	0x3b, 0x00, 0x31, 0x00, 0x30, 0x00, 0x30, 0x00,
+	0x3b, 0x00, 0x30, 0x00, 0x3b, 0x00, 0x30, 0x00,
+	0x3b, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x01, 0x00,
+	0x00, 0x00, 0x50, 0x72, 0x69, 0x6e, 0x74, 0x65,
+	0x72, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x44,
+	0x61, 0x74, 0x61, 0x5c, 0x44, 0x72, 0x76, 0x45,
+	0x57, 0x53, 0x49, 0x50, 0x00, 0x01, 0x00, 0x00,
+	0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
+	0x00, 0x00, 0x00, 0x44, 0x73, 0x53, 0x70, 0x6f,
+	0x6f, 0x6c, 0x65, 0x72, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
+	0x00, 0x44, 0x73, 0x53, 0x70, 0x6f, 0x6f, 0x6c,
+	0x65, 0x72, 0x5c, 0x70, 0x72, 0x69, 0x6e, 0x74,
+	0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x00, 0x01,
+	0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x53,
+	0x00, 0x30, 0x00, 0x42, 0x00, 0x43, 0x00, 0x00,
+	0x00, 0x01, 0x00, 0x00, 0x00, 0x44, 0x73, 0x53,
+	0x70, 0x6f, 0x6f, 0x6c, 0x65, 0x72, 0x5c, 0x73,
+	0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d,
+	0x65, 0x00, 0x01, 0x00, 0x00, 0x00, 0x14, 0x00,
+	0x00, 0x00, 0x53, 0x00, 0x36, 0x00, 0x30, 0x00,
+	0x32, 0x00, 0x30, 0x00, 0x50, 0x00, 0x53, 0x00,
+	0x36, 0x00, 0x36, 0x00, 0x00, 0x00, 0x01, 0x00,
+	0x00, 0x00, 0x44, 0x73, 0x53, 0x70, 0x6f, 0x6f,
+	0x6c, 0x65, 0x72, 0x5c, 0x73, 0x68, 0x6f, 0x72,
+	0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e,
+	0x61, 0x6d, 0x65, 0x00, 0x01, 0x00, 0x00, 0x00,
+	0x14, 0x00, 0x00, 0x00, 0x53, 0x00, 0x36, 0x00,
+	0x30, 0x00, 0x32, 0x00, 0x30, 0x00, 0x50, 0x00,
+	0x53, 0x00, 0x36, 0x00, 0x36, 0x00, 0x00, 0x00,
+	0x01, 0x00, 0x00, 0x00, 0x44, 0x73, 0x53, 0x70,
+	0x6f, 0x6f, 0x6c, 0x65, 0x72, 0x5c, 0x75, 0x4e,
+	0x43, 0x4e, 0x61, 0x6d, 0x65, 0x00, 0x01, 0x00,
+	0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x5c, 0x00,
+	0x5c, 0x00, 0x53, 0x00, 0x36, 0x00, 0x30, 0x00,
+	0x32, 0x00, 0x30, 0x00, 0x50, 0x00, 0x53, 0x00,
+	0x36, 0x00, 0x36, 0x00, 0x5c, 0x00, 0x53, 0x00,
+	0x30, 0x00, 0x42, 0x00, 0x43, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00
+};
+
 static bool ntprinting_printer_check(struct torture_context *tctx,
 				     struct ntprinting_printer *r)
@@ -422,7 +587,59 @@
 }
 
+static bool ntprinting_printer_latin1_check(struct torture_context *tctx)
+{
+	enum ndr_err_code ndr_err;
+	struct ntprinting_printer r;
+	DATA_BLOB blob;
+	bool ok;
+
+	ok = lpcfg_do_global_parameter(tctx->lp_ctx, "dos charset", "CP1252");
+	if (!ok) {
+		torture_comment(tctx, "Could not set 'dos charset' option.\n");
+		return false;
+	}
+	reload_charcnv(tctx->lp_ctx);
+
+	ZERO_STRUCT(r);
+	r.info.string_flags = LIBNDR_FLAG_STR_ASCII;
+
+	blob = data_blob_const(ntprinting_printer_data_latin1,
+			       sizeof(ntprinting_printer_data_latin1));
+
+	ndr_err = ndr_pull_struct_blob(&blob, tctx, &r,
+		   (ndr_pull_flags_fn_t)ndr_pull_ntprinting_printer);
+
+	torture_assert_ndr_success(tctx,
+				   ndr_err,
+				   "ndr_pull_ntprinting_printer");
+#if 0
+	ndr_print_debug((ndr_print_fn_t) ndr_print_ntprinting_printer,
+			"ntprinter",
+			&r);
+#endif
+	torture_assert_str_equal(tctx,
+				 r.info.printername,
+				 "S0BC",
+				 "printername");
+	/* latin1 encoding check */
+	torture_assert_str_equal(tctx,
+				 r.info.comment,
+				 "\" SALA DA RECEPÃÃO DA CONSTRUÃÃO - RAND0 LOCATIO",
+				 "comment");
+	torture_assert_str_equal(tctx,
+				 r.info.location,
+				 "UTGCA ",
+				 "location");
+
+	return true;
+}
+
 struct torture_suite *ndr_ntprinting_suite(TALLOC_CTX *ctx)
 {
 	struct torture_suite *suite = torture_suite_create(ctx, "ntprinting");
+
+	torture_suite_add_simple_test(suite,
+				      "ntprinting latin1 check",
+				      ntprinting_printer_latin1_check);
 
 	torture_suite_add_ndr_pull_test(suite,
Index: trunk/server/source4/torture/rpc/samr.c
===================================================================
--- trunk/server/source4/torture/rpc/samr.c	(revision 857)
+++ trunk/server/source4/torture/rpc/samr.c	(revision 862)
@@ -1729,6 +1729,14 @@
 	torture_assert_ntstatus_ok(tctx, dcerpc_samr_ChangePasswordUser_r(b, tctx, &r),
 		"ChangePasswordUser failed");
-	torture_assert_ntstatus_equal(tctx, r.out.result, NT_STATUS_WRONG_PASSWORD,
-		"ChangePasswordUser failed: expected NT_STATUS_WRONG_PASSWORD because we broke the LM hash");
+
+	/* Do not proceed if this call has been removed */
+	if (NT_STATUS_EQUAL(r.out.result, NT_STATUS_NOT_IMPLEMENTED)) {
+		return true;
+	}
+
+	if (!NT_STATUS_EQUAL(r.out.result, NT_STATUS_PASSWORD_RESTRICTION)) {
+		torture_assert_ntstatus_equal(tctx, r.out.result, NT_STATUS_WRONG_PASSWORD,
+			"ChangePasswordUser failed: expected NT_STATUS_WRONG_PASSWORD because we broke the LM hash");
+	}
 
 	/* Unbreak the LM hash */
Index: trunk/server/source4/torture/smb2/create.c
===================================================================
--- trunk/server/source4/torture/smb2/create.c	(revision 857)
+++ trunk/server/source4/torture/smb2/create.c	(revision 862)
@@ -445,11 +445,100 @@
 	CHECK_STATUS(status, NT_STATUS_OK);
 
-	torture_comment(tctx, "Testing bad tag length\n");
+	torture_comment(tctx, "Testing bad tag length 0\n");
+	ZERO_STRUCT(io.in.blobs);
+	status = smb2_create_blob_add(tctx, &io.in.blobs,
+				      "x", data_blob(NULL, 0));
+	CHECK_STATUS(status, NT_STATUS_OK);
+	status = smb2_create(tree, tctx, &io);
+	CHECK_STATUS(status, NT_STATUS_INVALID_PARAMETER);
+
+	torture_comment(tctx, "Testing bad tag length 1\n");
+	ZERO_STRUCT(io.in.blobs);
+	status = smb2_create_blob_add(tctx, &io.in.blobs,
+				      "x", data_blob(NULL, 0));
+	CHECK_STATUS(status, NT_STATUS_OK);
+	status = smb2_create(tree, tctx, &io);
+	CHECK_STATUS(status, NT_STATUS_INVALID_PARAMETER);
+
+	torture_comment(tctx, "Testing bad tag length 2\n");
+	ZERO_STRUCT(io.in.blobs);
+	status = smb2_create_blob_add(tctx, &io.in.blobs,
+				      "xx", data_blob(NULL, 0));
+	CHECK_STATUS(status, NT_STATUS_OK);
+	status = smb2_create(tree, tctx, &io);
+	CHECK_STATUS(status, NT_STATUS_INVALID_PARAMETER);
+
+	torture_comment(tctx, "Testing bad tag length 3\n");
+	ZERO_STRUCT(io.in.blobs);
 	status = smb2_create_blob_add(tctx, &io.in.blobs,
 				      "xxx", data_blob(NULL, 0));
 	CHECK_STATUS(status, NT_STATUS_OK);
-
 	status = smb2_create(tree, tctx, &io);
 	CHECK_STATUS(status, NT_STATUS_INVALID_PARAMETER);
+
+	torture_comment(tctx, "Testing tag length 4\n");
+	ZERO_STRUCT(io.in.blobs);
+	status = smb2_create_blob_add(tctx, &io.in.blobs,
+				      "xxxx", data_blob(NULL, 0));
+	CHECK_STATUS(status, NT_STATUS_OK);
+	status = smb2_create(tree, tctx, &io);
+	CHECK_STATUS(status, NT_STATUS_OK);
+
+	torture_comment(tctx, "Testing tag length 5\n");
+	ZERO_STRUCT(io.in.blobs);
+	status = smb2_create_blob_add(tctx, &io.in.blobs,
+				      "xxxxx", data_blob(NULL, 0));
+	CHECK_STATUS(status, NT_STATUS_OK);
+	status = smb2_create(tree, tctx, &io);
+	CHECK_STATUS(status, NT_STATUS_OK);
+
+	torture_comment(tctx, "Testing tag length 6\n");
+	ZERO_STRUCT(io.in.blobs);
+	status = smb2_create_blob_add(tctx, &io.in.blobs,
+				      "xxxxxx", data_blob(NULL, 0));
+	CHECK_STATUS(status, NT_STATUS_OK);
+	status = smb2_create(tree, tctx, &io);
+	CHECK_STATUS(status, NT_STATUS_OK);
+
+	torture_comment(tctx, "Testing tag length 7\n");
+	ZERO_STRUCT(io.in.blobs);
+	status = smb2_create_blob_add(tctx, &io.in.blobs,
+				      "xxxxxxx", data_blob(NULL, 0));
+	CHECK_STATUS(status, NT_STATUS_OK);
+	status = smb2_create(tree, tctx, &io);
+	CHECK_STATUS(status, NT_STATUS_OK);
+
+	torture_comment(tctx, "Testing tag length 8\n");
+	ZERO_STRUCT(io.in.blobs);
+	status = smb2_create_blob_add(tctx, &io.in.blobs,
+				      "xxxxxxxx", data_blob(NULL, 0));
+	CHECK_STATUS(status, NT_STATUS_OK);
+	status = smb2_create(tree, tctx, &io);
+	CHECK_STATUS(status, NT_STATUS_OK);
+
+	torture_comment(tctx, "Testing tag length 16\n");
+	ZERO_STRUCT(io.in.blobs);
+	status = smb2_create_blob_add(tctx, &io.in.blobs,
+				      "xxxxxxxxxxxxxxxx", data_blob(NULL, 0));
+	CHECK_STATUS(status, NT_STATUS_OK);
+	status = smb2_create(tree, tctx, &io);
+	CHECK_STATUS(status, NT_STATUS_OK);
+
+	torture_comment(tctx, "Testing tag length 17\n");
+	ZERO_STRUCT(io.in.blobs);
+	status = smb2_create_blob_add(tctx, &io.in.blobs,
+				      "xxxxxxxxxxxxxxxxx", data_blob(NULL, 0));
+	CHECK_STATUS(status, NT_STATUS_OK);
+	status = smb2_create(tree, tctx, &io);
+	CHECK_STATUS(status, NT_STATUS_OK);
+
+	torture_comment(tctx, "Testing tag length 34\n");
+	ZERO_STRUCT(io.in.blobs);
+	status = smb2_create_blob_add(tctx, &io.in.blobs,
+				      "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
+				      data_blob(NULL, 0));
+	CHECK_STATUS(status, NT_STATUS_OK);
+	status = smb2_create(tree, tctx, &io);
+	CHECK_STATUS(status, NT_STATUS_OK);
 
 	smb2_deltree(tree, FNAME);
Index: trunk/server/source4/winbind/wb_async_helpers.c
===================================================================
--- trunk/server/source4/winbind/wb_async_helpers.c	(revision 857)
+++ trunk/server/source4/winbind/wb_async_helpers.c	(revision 862)
@@ -121,4 +121,10 @@
 	}
 
+	if (state->names.count != state->num_sids) {
+		composite_error(state->ctx,
+				NT_STATUS_INVALID_NETWORK_RESPONSE);
+		return;
+	}
+
 	state->result = talloc_array(state, struct wb_sid_object *,
 				     state->num_sids);
@@ -141,7 +147,12 @@
 		}
 
+		if (domains == NULL) {
+			composite_error(state->ctx,
+					NT_STATUS_INVALID_NETWORK_RESPONSE);
+			return;
+		}
 		if (name->sid_index >= domains->count) {
 			composite_error(state->ctx,
-					NT_STATUS_INVALID_PARAMETER);
+					NT_STATUS_INVALID_NETWORK_RESPONSE);
 			return;
 		}
@@ -273,4 +284,10 @@
 	}
 
+	if (state->sids.count != state->num_names) {
+		composite_error(state->ctx,
+				NT_STATUS_INVALID_NETWORK_RESPONSE);
+		return;
+	}
+
 	state->result = talloc_array(state, struct wb_sid_object *,
 				     state->num_names);
@@ -291,7 +308,12 @@
 		}
 
+		if (domains == NULL) {
+			composite_error(state->ctx,
+					NT_STATUS_INVALID_NETWORK_RESPONSE);
+			return;
+		}
 		if (sid->sid_index >= domains->count) {
 			composite_error(state->ctx,
-					NT_STATUS_INVALID_PARAMETER);
+					NT_STATUS_INVALID_NETWORK_RESPONSE);
 			return;
 		}
