The branch, v4-18-test has been updated
       via  af9dc206043 smbd: also reset struct stat_ex.cached_dos_attributes 
in SET_STAT_INVALID()
       via  09ea170e3b4 smbd: zero intialize SMB_STRUCT_STAT in 
vfswrap_readdir()
       via  5865388ede8 CI: add a test that checks the dosmode of symlinks
       via  6dfa2252fd3 vfs_fruit: add fruit:convert_adouble parameter
       via  5c5ab78d93d vfs_fruit: just log failing AppleDouble conversion
       via  0db5f559d0e libadouble: allow FILE_SHARE_DELETE in 
ad_convert_xattr()
       via  fe988c71379 vfs_fruit: never return AFP_Resource stream for 
directories
       via  051cd8f5915 vfs_fruit: return ENOENT instead of EISDIR when trying 
to open AFP_Resource for a directory
       via  976b4955570 CI: add a test for fruit AppleDouble conversion when 
deletion triggers conversion
      from  a22173a745e rpc_server3: Pass winbind_env_set() state through to 
rpcd_*

https://git.samba.org/?p=samba.git;a=shortlog;h=v4-18-test


- Log -----------------------------------------------------------------
commit af9dc206043809a706063019112a191e81456ed7
Author: Ralph Boehme <s...@samba.org>
Date:   Tue May 23 17:26:03 2023 +0200

    smbd: also reset struct stat_ex.cached_dos_attributes in SET_STAT_INVALID()
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=15375
    
    Signed-off-by: Ralph Boehme <s...@samba.org>
    Reviewed-by: Jeremy Allison <j...@samba.org>
    
    Autobuild-User(master): Jeremy Allison <j...@samba.org>
    Autobuild-Date(master): Wed May 24 21:42:50 UTC 2023 on atb-devel-224
    
    (cherry picked from commit 412373984db6d0c20ba38076d06d0a87631890d0)
    
    Autobuild-User(v4-18-test): Jule Anger <jan...@samba.org>
    Autobuild-Date(v4-18-test): Wed May 31 10:47:15 UTC 2023 on atb-devel-224

commit 09ea170e3b4a5c962e29b86d1eadf06a430bc9a6
Author: Ralph Boehme <s...@samba.org>
Date:   Tue May 23 17:23:28 2023 +0200

    smbd: zero intialize SMB_STRUCT_STAT in vfswrap_readdir()
    
    Avoid returning an uninitialized st.cached_dos_attributes.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=15375
    
    Signed-off-by: Ralph Boehme <s...@samba.org>
    Reviewed-by: Jeremy Allison <j...@samba.org>
    (cherry picked from commit 0391120079b032077c3914c10189b85e61dc8498)

commit 5865388ede8b5d3d3b389be49261574dde7008d7
Author: Ralph Boehme <s...@samba.org>
Date:   Wed May 24 13:13:19 2023 +0200

    CI: add a test that checks the dosmode of symlinks
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=15375
    
    Signed-off-by: Ralph Boehme <s...@samba.org>
    Reviewed-by: Jeremy Allison <j...@samba.org>
    (cherry picked from commit b4af281b2d7bfddbdb7289dadbed9db623bf0e84)

commit 6dfa2252fd308ab7a60513d5a167305614a9e192
Author: Ralph Boehme <s...@samba.org>
Date:   Mon May 22 12:32:00 2023 +0200

    vfs_fruit: add fruit:convert_adouble parameter
    
    https://bugzilla.samba.org/show_bug.cgi?id=15378
    
    Signed-off-by: Ralph Boehme <s...@samba.org>
    Reviewed-by: Jeremy Allison <j...@samba.org>
    
    Autobuild-User(master): Jeremy Allison <j...@samba.org>
    Autobuild-Date(master): Fri May 26 00:52:29 UTC 2023 on atb-devel-224
    
    (cherry picked from commit 035f6d914d133cf3248f15b1be06a9e1837238da)

commit 5c5ab78d93def900a91954e30fdb25aa1d5a3cdb
Author: Ralph Boehme <s...@samba.org>
Date:   Mon May 22 12:25:04 2023 +0200

    vfs_fruit: just log failing AppleDouble conversion
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=15378
    
    Signed-off-by: Ralph Boehme <s...@samba.org>
    Reviewed-by: Jeremy Allison <j...@samba.org>
    (cherry picked from commit 3bf97f19c36d26b4178f7cb6202bbdd44de0c1aa)

commit 0db5f559d0ef883c975177a705e82ae4d0951c72
Author: Ralph Boehme <s...@samba.org>
Date:   Tue May 23 17:28:33 2023 +0200

    libadouble: allow FILE_SHARE_DELETE in ad_convert_xattr()
    
    Not specifying FILE_SHARE_DELETE wasn't done intentionally. Not setting the 
flag
    triggers the following problem:
    
    * client sends a CREATE with delete access
    
    * this triggers a call to open_streams_for_delete() where we check for
    conflicting opens on any of the streams of the file or directory
    
    * if the file (or directory) has a stream like ":com.apple.quarantine" the
    stream is opened with DELETE_ACCESS and kept open when the next step might:
    
    * if the file (or directory) has a Mac specific :AFP_AfpInfo stream, the
    ad_convert() routine in fruit_create_file() is triggered
    
    * ad_convert() checks if the file (or ...) has a sidecar ._ AppleDouble 
file, if
    it has:
    
    * in ad_convert_xattr() we unpack any set of xattrs encoded in the 
AppleDouble
    file and recreate them as streams with the VFS. Now, if any of these xattrs
    happens to be converted to a stream that we still have open in
    open_streams_for_delete() (see above) we get a NT_STATUS_SHARING_VIOLATION
    
    This error gets passed up the stack back to open_streams_for_delete() so the
    client CREATE request fails and the client is unhappy.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=15378
    
    Signed-off-by: Ralph Boehme <s...@samba.org>
    Reviewed-by: Jeremy Allison <j...@samba.org>
    (cherry picked from commit 55bd10456486628cad2bd085618e873598401c3b)

commit fe988c713798732b996de99684c73199ec68b70f
Author: Ralph Boehme <s...@samba.org>
Date:   Mon May 22 19:37:17 2023 +0200

    vfs_fruit: never return AFP_Resource stream for directories
    
    The macOS client creates ._ AppleDouble files for directories that do 
contain
    an (empty) resource fork AppleDouble entry. So when going from a Samba 
server
    config without streams module (or when migrating data from another server
    without streams support), to a Samba config with a streams module and 
vfs_fruit,
    fruit_streaminfo() will wrongly return the AFP_Resource from the AppleDouble
    file as stream to the client.
    
    To address this, just never return an AFP_Resource stream for directories 
when
    listing streams in fruit_streaminfo(). ad_convert(), when configured with
    
      fruit:delete_empty_adfiles = true
      fruit:wipe_intentionally_left_blank_rfork = true
    
    will happily discard the AFP_Resource from the AppleDouble file.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=15378
    
    Signed-off-by: Ralph Boehme <s...@samba.org>
    Reviewed-by: Jeremy Allison <j...@samba.org>
    (cherry picked from commit 06f0c070a0b18313f48362aa326e3e7e6a096492)

commit 051cd8f5915615bed9ff8756661afffb794e42b4
Author: Ralph Boehme <s...@samba.org>
Date:   Mon May 22 19:35:33 2023 +0200

    vfs_fruit: return ENOENT instead of EISDIR when trying to open AFP_Resource 
for a directory
    
    Translates to NT_STATUS_OBJECT_NAME_NOT_FOUND which is the same error macOS
    returns in this case.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=15378
    
    Signed-off-by: Ralph Boehme <s...@samba.org>
    Reviewed-by: Jeremy Allison <j...@samba.org>
    (cherry picked from commit 9b91a8bad2ff8da9eb56f1f9d640bcea294a5a0a)

commit 976b4955570d34b8b013a7fd17f3551fbf105f83
Author: Ralph Boehme <s...@samba.org>
Date:   Wed May 24 21:28:48 2023 +0200

    CI: add a test for fruit AppleDouble conversion when deletion triggers 
conversion
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=15378
    
    Signed-off-by: Ralph Boehme <s...@samba.org>
    Reviewed-by: Jeremy Allison <j...@samba.org>
    (cherry picked from commit 59eadfe21aca6d563f86ea656517216036421bca)

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

Summary of changes:
 docs-xml/manpages/vfs_fruit.8.xml            |  13 +
 source3/include/smb_macros.h                 |   5 +-
 source3/lib/adouble.c                        |   2 +-
 source3/modules/vfs_default.c                |   2 +-
 source3/modules/vfs_fruit.c                  |  48 +-
 source3/script/tests/test_symlink_dosmode.sh |  74 +++
 source3/selftest/tests.py                    |   4 +
 source4/torture/vfs/fruit.c                  | 954 +++++++++++++++++++++++++++
 8 files changed, 1082 insertions(+), 20 deletions(-)
 create mode 100755 source3/script/tests/test_symlink_dosmode.sh


Changeset truncated at 500 lines:

diff --git a/docs-xml/manpages/vfs_fruit.8.xml 
b/docs-xml/manpages/vfs_fruit.8.xml
index 6950898a7d1..2215f031312 100644
--- a/docs-xml/manpages/vfs_fruit.8.xml
+++ b/docs-xml/manpages/vfs_fruit.8.xml
@@ -406,6 +406,19 @@
            </listitem>
          </varlistentry>
 
+         <varlistentry>
+           <term>fruit:convert_adouble = yes | no</term>
+           <listitem>
+             <para>Whether an attempt shall be made to convert ._ AppleDouble
+             sidecar files to native streams (xattrs when using
+             vfs_streams_xattr). The main use case for this conversion is
+             transparent migration from a server config without streams support
+             where the macOS client created those AppleDouble sidecar
+             files.</para>
+             <para>The default is <emphasis>yes</emphasis>.</para>
+           </listitem>
+         </varlistentry>
+
        </variablelist>
 </refsect1>
 
diff --git a/source3/include/smb_macros.h b/source3/include/smb_macros.h
index 0f44d1402a8..42ff9ffb0d4 100644
--- a/source3/include/smb_macros.h
+++ b/source3/include/smb_macros.h
@@ -108,7 +108,10 @@
 
 #define VALID_STAT(st) ((st).st_ex_nlink != 0)
 #define VALID_STAT_OF_DIR(st) (VALID_STAT(st) && S_ISDIR((st).st_ex_mode))
-#define SET_STAT_INVALID(st) ((st).st_ex_nlink = 0)
+#define SET_STAT_INVALID(st) { \
+               (st).st_ex_nlink = 0;                                   \
+               (st).cached_dos_attributes = FILE_ATTRIBUTES_INVALID;   \
+};
 
 /* Macros to get at offsets within smb_lkrng and smb_unlkrng
    structures. We cannot define these as actual structures
diff --git a/source3/lib/adouble.c b/source3/lib/adouble.c
index 062c73ec758..15f8f0aa8a9 100644
--- a/source3/lib/adouble.c
+++ b/source3/lib/adouble.c
@@ -1222,7 +1222,7 @@ static bool ad_convert_xattr(vfs_handle_struct *handle,
                        NULL,                           /* dirfsp */
                        stream_name,                    /* fname */
                        FILE_GENERIC_WRITE,             /* access_mask */
-                       FILE_SHARE_READ | FILE_SHARE_WRITE, /* share_access */
+                       FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, 
/* share_access */
                        FILE_OPEN_IF,                   /* create_disposition */
                        0,                              /* create_options */
                        0,                              /* file_attributes */
diff --git a/source3/modules/vfs_default.c b/source3/modules/vfs_default.c
index 000c23208f5..89eec1146d7 100644
--- a/source3/modules/vfs_default.c
+++ b/source3/modules/vfs_default.c
@@ -603,7 +603,7 @@ static struct dirent *vfswrap_readdir(vfs_handle_struct 
*handle,
        struct dirent *result;
        bool fake_ctime = lp_fake_directory_create_times(SNUM(handle->conn));
        int flags = AT_SYMLINK_NOFOLLOW;
-       SMB_STRUCT_STAT st;
+       SMB_STRUCT_STAT st = {0};
        int ret;
 
        START_PROFILE(syscall_readdir);
diff --git a/source3/modules/vfs_fruit.c b/source3/modules/vfs_fruit.c
index 4058d4834e7..c08238cb15f 100644
--- a/source3/modules/vfs_fruit.c
+++ b/source3/modules/vfs_fruit.c
@@ -131,6 +131,7 @@ struct fruit_config_data {
        const char *model;
        bool time_machine;
        off_t time_machine_max_size;
+       bool convert_adouble;
        bool wipe_intentionally_left_blank_rfork;
        bool delete_empty_adfiles;
 
@@ -381,6 +382,10 @@ static int init_fruit_config(vfs_handle_struct *handle)
                config->time_machine_max_size = conv_str_size(tm_size_str);
        }
 
+       config->convert_adouble = lp_parm_bool(
+               SNUM(handle->conn), FRUIT_PARAM_TYPE_NAME,
+               "convert_adouble", true);
+
        config->wipe_intentionally_left_blank_rfork = lp_parm_bool(
                SNUM(handle->conn), FRUIT_PARAM_TYPE_NAME,
                "wipe_intentionally_left_blank_rfork", false);
@@ -1567,7 +1572,7 @@ static int fruit_open_rsrc_adouble(vfs_handle_struct 
*handle,
            S_ISDIR(fsp->base_fsp->fsp_name->st.st_ex_mode))
        {
                /* sorry, but directories don't have a resource fork */
-               errno = EISDIR;
+               errno = ENOENT;
                rc = -1;
                goto exit;
        }
@@ -3959,6 +3964,10 @@ static NTSTATUS fruit_streaminfo_rsrc(vfs_handle_struct 
*handle,
        struct fruit_config_data *config = NULL;
        NTSTATUS status;
 
+       if (S_ISDIR(smb_fname->st.st_ex_mode)) {
+               return NT_STATUS_OK;
+       }
+
        SMB_VFS_HANDLE_GET_DATA(handle, config, struct fruit_config_data,
                                return NT_STATUS_INTERNAL_ERROR);
 
@@ -4286,7 +4295,10 @@ static NTSTATUS fruit_create_file(vfs_handle_struct 
*handle,
        SMB_VFS_HANDLE_GET_DATA(handle, config, struct fruit_config_data,
                                return NT_STATUS_UNSUCCESSFUL);
 
-       if (is_apple_stream(smb_fname->stream_name) && !internal_open) {
+       if (is_apple_stream(smb_fname->stream_name) &&
+           !internal_open &&
+           config->convert_adouble)
+       {
                uint32_t conv_flags  = 0;
 
                if (config->wipe_intentionally_left_blank_rfork) {
@@ -4301,8 +4313,8 @@ static NTSTATUS fruit_create_file(vfs_handle_struct 
*handle,
                                 macos_string_replace_map,
                                 conv_flags);
                if (ret != 0) {
-                       DBG_ERR("ad_convert() failed\n");
-                       return NT_STATUS_UNSUCCESSFUL;
+                       DBG_ERR("ad_convert(\"%s\") failed\n",
+                               smb_fname_str_dbg(smb_fname));
                }
        }
 
@@ -4400,20 +4412,22 @@ static NTSTATUS fruit_freaddir_attr(struct 
vfs_handle_struct *handle,
 
        DBG_DEBUG("Path [%s]\n", fsp_str_dbg(fsp));
 
-       if (config->wipe_intentionally_left_blank_rfork) {
-               conv_flags |= AD_CONV_WIPE_BLANK;
-       }
-       if (config->delete_empty_adfiles) {
-               conv_flags |= AD_CONV_DELETE;
-       }
+       if (config->convert_adouble) {
+               if (config->wipe_intentionally_left_blank_rfork) {
+                       conv_flags |= AD_CONV_WIPE_BLANK;
+               }
+               if (config->delete_empty_adfiles) {
+                       conv_flags |= AD_CONV_DELETE;
+               }
 
-       ret = ad_convert(handle,
-                        fsp->fsp_name,
-                        macos_string_replace_map,
-                        conv_flags);
-       if (ret != 0) {
-               DBG_ERR("ad_convert() failed\n");
-               return NT_STATUS_UNSUCCESSFUL;
+               ret = ad_convert(handle,
+                                fsp->fsp_name,
+                                macos_string_replace_map,
+                                conv_flags);
+               if (ret != 0) {
+                       DBG_ERR("ad_convert(\"%s\") failed\n",
+                               fsp_str_dbg(fsp));
+               }
        }
 
        *pattr_data = talloc_zero(mem_ctx, struct readdir_attr_data);
diff --git a/source3/script/tests/test_symlink_dosmode.sh 
b/source3/script/tests/test_symlink_dosmode.sh
new file mode 100755
index 00000000000..dd6cb6be472
--- /dev/null
+++ b/source3/script/tests/test_symlink_dosmode.sh
@@ -0,0 +1,74 @@
+#!/bin/sh
+
+if [ $# -lt 7 ]; then
+       cat <<EOF
+Usage: test_symlink_dosmode.sh SERVER SERVER_IP USERNAME PASSWORD LOCAL_PATH 
PREFIX SMBCLIENT
+EOF
+       exit 1
+fi
+
+SERVER="${1}"
+SERVER_IP="${2}"
+USERNAME="${3}"
+PASSWORD="${4}"
+LOCAL_PATH="${5}"
+PREFIX="${6}"
+SMBCLIENT="${7}"
+SMBCLIENT="$VALGRIND ${SMBCLIENT}"
+shift 6
+
+incdir=$(dirname "$0")/../../../testprogs/blackbox
+. "$incdir"/subunit.sh
+
+failed=0
+
+# Do not let deprecated option warnings muck this up
+SAMBA_DEPRECATED_SUPPRESS=1
+export SAMBA_DEPRECATED_SUPPRESS
+
+# Define the test environment/filenames.
+#
+share_test_dir="$LOCAL_PATH"
+
+rm -rf "$share_test_dir/testdir"
+
+mkdir -p "$share_test_dir/testdir/dir"
+touch "$share_test_dir/testdir/file"
+ln -s "../file" "$share_test_dir/testdir/dir/symlink"
+
+test_symlink_dosmode()
+{
+       tmpfile=$PREFIX/smbclient_interactive_prompt_commands
+       cat >"$tmpfile" <<EOF
+ls testdir/dir/*
+quit
+EOF
+       cmd='CLI_FORCE_INTERACTIVE=yes $SMBCLIENT -U$USERNAME%$PASSWORD 
//$SERVER/local_symlinks -I$SERVER_IP < $tmpfile 2>&1'
+       eval echo "$cmd"
+       out=$(eval "$cmd")
+       ret=$?
+       rm -f "$tmpfile"
+
+       if [ $ret != 0 ]; then
+               printf "%s\n" "$out"
+               printf "failed accessing local_symlinks with error %s\n" "$ret"
+               return 1
+       fi
+
+       mode=$(printf "%s" "$out" | awk '/symlink/ {print $2}')
+       echo "mode: $mode"
+       if [ x"$mode" != x"N" ] ; then
+               printf "Bad mode: '%s', expected 'N'\n" "$mode"
+               printf "%s\n" "$out"
+               return 1
+       fi
+       return 0
+}
+
+testit "symlink_dosmode" \
+       test_symlink_dosmode ||
+       failed=$((failed + 1))
+
+rm -rf "$share_test_dir/testdir"
+
+testok "$0" "$failed"
diff --git a/source3/selftest/tests.py b/source3/selftest/tests.py
index fc3227be9b5..f24f6779150 100755
--- a/source3/selftest/tests.py
+++ b/source3/selftest/tests.py
@@ -777,6 +777,10 @@ for env in ["fileserver"]:
                   [os.path.join(samba3srcdir, 
"script/tests/test_stream_dir_rename.sh"),
                   '$SERVER', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3])
 
+    plantestsuite("samba3.blackbox.test_symlink_dosmode", env,
+                  [os.path.join(samba3srcdir, 
"script/tests/test_symlink_dosmode.sh"),
+                  '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', 
'$LOCAL_PATH/local_symlinks',
+                  '$PREFIX', smbclient3])
     #
     # tar command tests
     #
diff --git a/source4/torture/vfs/fruit.c b/source4/torture/vfs/fruit.c
index 3621fec460c..99d63becbb4 100644
--- a/source4/torture/vfs/fruit.c
+++ b/source4/torture/vfs/fruit.c
@@ -7017,6 +7017,959 @@ done:
        return ret;
 }
 
+/*
+-------------------------------------------------------------------------------
+MagicNumber: 00051607                                        : AppleDouble
+Version    : 00020000                                        : Version 2
+Filler     : 4D 61 63 20 4F 53 20 58 20 20 20 20 20 20 20 20 : Mac OS X
+Num. of ent: 0002                                            : 2
+
+-------------------------------------------------------------------------------
+Entry ID   : 00000009 : Finder Info
+Offset     : 00000032 : 50
+Length     : 00000EB0 : 3760
+
+-DInfo-----:
+Rect top   : 0000     : 0
+Rect left  : 0000     : 0
+Rect bottom: 0000     : 0
+Rect right : 0000     : 0
+isAlias    : 0
+Invisible  : 0
+hasBundle  : 0
+nameLocked : 0
+Stationery : 0
+CustomIcon : 0
+Reserved   : 0
+Inited     : 1
+NoINITS    : 0
+Shared     : 0
+SwitchLaunc: 0
+Hidden Ext : 0
+color      : 000      : none
+isOnDesk   : 0
+Location v : 0000     : 0
+Location h : 0000     : 0
+View       : 0000     : ..
+
+-DXInfo----:
+Scroll v   : 0000     : 0
+Scroll h   : 0000     : 0
+Rsvd|OpnChn: 00000000 : 0
+AreInvalid : 0
+unknown bit: 0
+unknown bit: 0
+unknown bit: 0
+unknown bit: 0
+unknown bit: 0
+unknown bit: 0
+CustomBadge: 0
+ObjctIsBusy: 0
+unknown bit: 0
+unknown bit: 0
+unknown bit: 0
+unknown bit: 0
+RoutingInfo: 0
+unknown bit: 0
+unknown bit: 0
+Comment    : 0000     : ..
+PutAway    : 00000000 : 0
+
+-EA--------:
+pad        : 0000     : ..
+magic      : 41545452 : ATTR
+debug_tag  : 0081714C : 8483148
+total_size : 00000EE2 : 3810
+data_start : 00000098 : 152
+data_length: 00000039 : 57
+reserved[0]: 00000000 : ....
+reserved[1]: 00000000 : ....
+reserved[2]: 00000000 : ....
+flags      : 0000     : ..
+num_attrs  : 0001     : 1
+-EA ENTRY--:
+offset     : 00000098 : 152
+length     : 00000039 : 57
+flags      : 0000     : ..
+namelen    : 15       : 21
+-EA NAME---:  0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F : (ASCII)
+00000000   : 63 6F 6D 2E 61 70 70 6C 65 2E 71 75 61 72 61 6E : com.apple.quaran
+00000010   : 74 69 6E 65 00                                  : tine.
+-EA VALUE--:  0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F : (ASCII)
+00000000   : 30 30 38 31 3B 36 32 65 61 33 37 66 64 3B 43 68 : 0081;62ea37fd;Ch
+00000010   : 72 6F 6D 65 3B 42 35 39 46 42 39 45 44 2D 35 41 : rome;B59FB9ED-5A
+00000020   : 32 39 2D 34 45 35 42 2D 38 35 36 43 2D 37 45 44 : 29-4E5B-856C-7ED
+00000030   : 30 45 46 45 41 37 30 41 43                      : 0EFEA70AC
+
+-RAW DUMP--:  0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F : (ASCII)
+00000000   : 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 : ................
+00000010   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000020   : 00 00 41 54 54 52 00 81 71 4C 00 00 0E E2 00 00 : ..ATTR..qL......
+00000030   : 00 98 00 00 00 39 00 00 00 00 00 00 00 00 00 00 : .....9..........
+00000040   : 00 00 00 00 00 01 00 00 00 98 00 00 00 39 00 00 : .............9..
+00000050   : 15 63 6F 6D 2E 61 70 70 6C 65 2E 71 75 61 72 61 : .com.apple.quara
+00000060   : 6E 74 69 6E 65 00 30 30 38 31 3B 36 32 65 61 33 : ntine.0081;62ea3
+00000070   : 37 66 64 3B 43 68 72 6F 6D 65 3B 42 35 39 46 42 : 7fd;Chrome;B59FB
+00000080   : 39 45 44 2D 35 41 32 39 2D 34 45 35 42 2D 38 35 : 9ED-5A29-4E5B-85
+00000090   : 36 43 2D 37 45 44 30 45 46 45 41 37 30 41 43 00 : 6C-7ED0EFEA70AC.
+000000A0   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000000B0   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000000C0   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000000D0   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000000E0   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000000F0   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000100   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000110   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000120   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000130   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000140   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000150   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000160   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000170   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000180   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000190   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000001A0   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000001B0   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000001C0   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000001D0   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000001E0   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000001F0   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000200   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000210   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000220   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000230   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000240   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000250   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000260   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000270   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000280   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000290   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000002A0   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000002B0   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000002C0   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000002D0   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000002E0   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000002F0   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000300   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000310   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000320   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000330   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000340   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000350   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000360   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000370   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000380   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000390   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000003A0   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000003B0   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000003C0   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000003D0   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000003E0   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000003F0   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000400   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000410   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000420   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000430   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000440   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000450   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000460   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000470   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000480   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000490   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000004A0   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000004B0   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000004C0   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000004D0   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000004E0   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000004F0   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000500   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000510   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000520   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000530   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000540   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000550   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000560   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000570   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000580   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000590   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000005A0   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000005B0   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000005C0   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000005D0   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000005E0   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000005F0   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000600   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000610   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000620   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000630   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000640   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000650   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000660   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000670   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000680   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000690   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000006A0   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000006B0   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000006C0   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000006D0   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000006E0   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000006F0   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000700   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000710   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000720   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000730   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000740   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000750   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000760   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000770   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000780   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000790   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000007A0   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000007B0   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000007C0   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000007D0   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000007E0   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000007F0   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000800   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000810   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000820   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000830   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000840   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000850   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000860   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000870   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000880   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000890   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000008A0   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000008B0   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000008C0   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000008D0   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000008E0   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000008F0   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................


-- 
Samba Shared Repository

Reply via email to