moved filescenter vfs2 tables and classes to filescenter and added index tables

This commit is contained in:
Ralf Becker 2008-04-20 16:34:16 +00:00
parent 7bd9d6b253
commit 523997b43e
11 changed files with 863 additions and 7205 deletions

View File

@ -1,276 +0,0 @@
<?php
/***************************************************************************\
* eGroupWare - File Manager *
* http://www.egroupware.org *
* Written by: *
* - Vinicius Cubas Brand <viniciuscb@users.sourceforge.net> *
* sponsored by Thyamad - http://www.thyamad.com *
* ------------------------------------------------------------------------- *
* Description: Custom Field class handler for VFS (SQL implementation v2) *
* ------------------------------------------------------------------------- *
* 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 2 of the License, or (at your *
* option) any later version. *
\***************************************************************************/
class vfs_customfields
{
var $db;
function vfs_customfields()
{
$this->db = clone($GLOBALS['phpgw']->db);
}
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- #
# Functions to associate customfields to a file #
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- #
//$file_id: the id of the file
function & get_fields_by_fileid($file_id)
{
if (!is_numeric($file_id) || !(((int)$file_id)==$file_id))
return false;
$sql = "SELECT cf.customfield_name as name,
cfd.data as data
FROM phpgw_vfs2_customfields as cf,
phpgw_vfs2_customfields_data as cfd
WHERE cf.customfield_id = cfd.customfield_id
AND cf.customfield_active = 'Y'
AND cfd.file_id = $file_id";
$this->db->query($sql,__LINE__,__FILE__);
while($this->db->next_record())
{
$result[$this->db->Record['name']] = $this->db->Record['data'];
}
return $result;
}
//$data = array(file_id => array('field1'=> 'value', ....),
// file_id2 => array(...) ... )
// Store will do insert or update, depending if the field exists or
// not.
function store_fields($data)
{
if (!is_array($data))
return false;
$fields = $this->get_customfields('customfield_name');
foreach($data as $file_id => $file_data)
{
foreach($file_data as $name => $value)
{
//Column type does not exists
if (!array_key_exists($name,$fields))
{
//TODO ERROR HANDLING
continue;
}
$this->db->insert('phpgw_vfs2_customfields_data',
array('data' => $value),
array('file_id'=>$file_id,'customfield_id'=>$fields[$name]['customfield_id']),
__LINE__,__FILE__);
}
}
return true;
}
//$data = array('file_id' => array('field1','field2',...),
// 'fileid2' => ... )
function delete_fields($data)
{
$fields = $this->get_customfields('customfield_name');
foreach($data as $file_id => $file_fields)
{
foreach($file_fields as $column_name)
{
if (!array_key_exists($column_name,$fields))
{
//TODO ERROR HANDLING
continue;
}
$this->db->delete('phpgw_vfs2_customfields_data',
array('file_id' => $file_id,'customfield_id'=>$fields[$column_name]['customfield_id']),__LINE__,__FILE__);
}
}
}
/* Search the files that have $keyword in any field, or in the fields
specified in the array fields
@param $fields array('field1','fields2',...)*/
function search_files($keyword,$fields=null)
{
$where = '';
if ($fields)
{
$customfields = $this->get_customfields('customfield_name');
foreach ($fields as $field)
{
if ($customfields[$field])
{
$cf_ids[] = 'customfield_id='.$customfields[$field]['customfield_id'];
}
}
if ($cf_ids)
{
$where = implode(' OR ',$cf_ids);
$where = 'AND ('.$where.')';
}
}
$sql = "SELECT file_id
FROM phpgw_vfs2_customfields_data
WHERE data LIKE '%$keyword%'
$where";
$this->db->query($sql,__LINE__,__FILE__);
$res = array();
while($this->db->next_record())
{
$res[] = $this->db->Record['file_id'];
}
return $res;
}
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- #
# Functions to manage custom field types #
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- #
//Gets all custom field types, indexed by $indexedby.
//Example: array( 'customfieldname1' => array('customfield_id'=>x,'customfield_description'=>y,'type'=>z...)...)
//@param bool $activeonly If true, brings only active fields
function get_customfields($indexedby='customfield_name',$activeonly=true)
{
$where=($activeonly)?array('customfield_active'=>'Y'):array();
$this->db->select('phpgw_vfs2_customfields','*',$where,
__LINE__,__FILE__);
$result = array();
while($this->db->next_record())
{
$result[] = $this->db->Record;
}
if (!is_array($result[0]) || !array_key_exists($indexedby,$result[0]))
{
$indexedby = 'customfield_name';
}
$result2 = array();
foreach($result as $key => $val)
{
$result2[$val[$indexedby]] = $val;
}
return $result2;
}
//samething that $this->get_customfields, but returns an array in the
//format array('name' => 'description', 'name2'=>'desc2',...)
function get_attributes($activeonly=true)
{
$where=($activeonly)?array('customfield_active'=>'Y'):array();
$this->db->select('phpgw_vfs2_customfields','*',$where,
__LINE__,__FILE__);
while($this->db->next_record())
{
$result[] = $this->db->Record;
}
$result2 = array();
foreach($result as $key => $val)
{
$result2[$val['customfield_name']] = $val['customfield_description'];
}
return $result2;
}
//Add a new type of custom field
//$type can be of the same possible types for egw
function add_customfield($name,$description,$type,$precision='',$active='N')
{
$active = strtoupper($active);
$res = $this->db->insert('phpgw_vfs2_customfields',array(
'customfield_name' => $name,
'customfield_description' => $description,
'customfield_type' => $type,
'customfield_precision' => $precision,
'customfield_active' => $active ),
__LINE__,__FILE__);
if ($res)
{
return true;
}
return false;
}
//Update a customfield type (customfield_name, customfield_description, type, precision, active)
function update_customfield($customfield_id,$data)
{
if (!is_numeric($customfield_id) || !(((int)$customfield_id)==$customfield_id))
{
return false;
}
if ($data['customfield_active'])
{
$data['customfield_active'] = strtoupper($data['customfield_active']);
}
if ($this->db->update('phpgw_vfs2_customfields',$data,array('customfield_id'=>$customfield_id),__LINE__,__FILE__))
{
return true;
}
return false;
}
//generally better inactivate a field than remove.
function remove_customfield($customfield_id)
{
$res = $this->db->delete('phpgw_vfs2_customfields',array('customfield_id'=>$customfield_id),__LINE__,__FILE__);
if ($res)
{
$res2 = $this->db->delete('phpgw_vfs2_customfields_data',array('customfield_id'=>$customfield_id),__LINE__,__FILE__);
if ($res2)
{
return true;
}
}
return false;
}
}
?>

View File

@ -1,359 +0,0 @@
<?php
/***************************************************************************\
* eGroupWare - File Manager *
* http://www.egroupware.org *
* Written by: *
* - Vinicius Cubas Brand <viniciuscb@users.sourceforge.net> *
* sponsored by Thyamad - http://www.thyamad.com *
* ------------------------------------------------------------------------- *
* Description: Mime type class handler for VFS (SQL implementation v2) *
* ------------------------------------------------------------------------- *
* 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 2 of the License, or (at your *
* option) any later version. *
\***************************************************************************/
#based on the filetypes.inc.php class by intermesh, see groupoffice.com
#02 Sep 2004 viniciuscb Initial Release
class vfs_mimetypes
{
var $default_filetype_icon;
var $db;
var $vfs; //Just to get mime types from vfs->get_ext_mime_type()
var $default_mimetype = "application/OCTET-STREAM";
function vfs_mimetypes($create_vfs=true)
{
//use create_vfs=false and after this use $this->set_vfs to keep the
// same object (i.e. use reference) in $this->vfs
if ($create_vfs)
{
$this->vfs =& CreateObject('phpgwapi.vfs');
}
$this->default_filetype_icon = PHPGW_INCLUDE_ROOT.'/filescenter/icons/default.gif';
$this->db = clone($GLOBALS['phpgw']->db);
}
/*!
* function add_filetype
* @description Adds a new mime_type to the mime_types repository
* @note One of the two: extension or mime are required
* @param extension string A file extension
* @param mime string the mime type according to the RFCs 2046/1524
* @param friendly string File type description in human-friendly
* format
* @param image string content of icon file
* @param icon_name string complete path filename of icon image
* (note: will be used only when icon_data is not set)
* @param mime_magic data used for mime_magic functions (planned)
* @param return_image bool if true will return the binary data of image
* @result Array with mime_id and other mime info, false otherwise
*/
function add_filetype($data,$return_image=false,$dont_update=false)
{
if (!$data['extension'] && !$data['mime'])
{
return false;
}
if (!$data['mime'])
{
$data['mime'] = $this->get_mime_type($data['extension']);
}
elseif (!$data['extension'])
{
$data['extension'] = '(n/a)'; //Thinking in 'Directory'
}
if (!$data['friendly'])
{
if ($data['extension'] != '(n/a)')
{
$data['friendly'] = strtoupper($data['extension']).' File';
}
else
{
$data['friendly'] = $data['mime'];
}
}
if (!$data['image'])
{
if (!$data['icon_name'] || !file_exists($data['icon_name']))
{
$data['icon_name'] = $this->default_filetype_icon;
}
$fp = fopen($data['icon_name'],"r");
$data['image'] = fread($fp,filesize($data['icon_name']));
fclose($fp);
$data['image'] = $this->db->quote($data['image'],'blob');
unset($data['icon_name']);
}
$where['extension'] = $data['extension'];
#$where['mime'] = $data['mime'];
if ($dont_update)
{
$this->db->select('phpgw_vfs2_mimetypes','mime_id',$where,__LINE__,__FILE__);
if ($this->db->next_record())
{
return false; //msgerror Existent register that cannot be overwritten
}
}
$res = $this->db->insert('phpgw_vfs2_mimetypes',$data,$where,__LINE__,__FILE__);
if($res)
{
$this->db->select('phpgw_vfs2_mimetypes','mime_id',$where,
__LINE__,__FILE__);
$this->db->next_record();
$data['mime_id'] = $this->db->Record['mime_id'];
if (!$return_image)
{
unset($data['image']);
}
return $data;
}
return false;
}
/*!
* function edit_filetype
* @description Edits a mime_type of the mime_types repository
* @note mime_id required. Will change only passed vars.
* @param extension string A file extension
* @param mime string the mime type according to the RFCs 2046/1524
* @param friendly string File type description in human-friendly
* format
* @param image string content of icon file
* @param icon_name string complete path filename of icon image
* (note: will be used only when icon_data is not set)
* @param mime_magic data used for mime_magic functions (planned)
* @param return_image bool if true will return the binary data of image
* @result Array with mime_id and other mime info, false otherwise
*/
function edit_filetype($data,$return_image=false)
{
if (!$data['mime_id'])
{
return false;
}
$where['mime_id'] = $data['mime_id'];
if ($data['image'])
{
$data['image'] = $this->db->quote($data['image'],'blob');
}
$res = $this->db->update('phpgw_vfs2_mimetypes',$data,$where,__LINE__,__FILE__);
if($res)
{
if ($return_image)
{
$return_fields = '*';
}
else
{
$return_fields = 'mime_id,extension,mime,friendly,mime_magic,proper_id';
}
$this->db->select('phpgw_vfs2_mimetypes',$return_fields,$where,
__LINE__,__FILE__);
$this->db->next_record();
return $this->db->Record;
}
return false;
}
/*!
* function get_type
* @description Returns a mime type, based in extension or mime_id
* @param $desc array have index 'extension', 'mime_id' or 'mime'
* @param $return_image if true will return the binary data of image
* @result Array with mime_id and other mime info, false otherwise
*/
function get_type($data, $return_image=false)
{
//TODO error messages
if ((!$data['extension'] || $data['extension'] == '(n/a)') &&
!$data['mime_id'] && !$data['mime'])
return false;
$return_fields = ($return_image)?'*':'mime_id,extension,friendly,mime_magic,mime,proper_id';
if ($data['mime_id'])
{
$this->db->select('phpgw_vfs2_mimetypes',$return_fields,
array('mime_id'=>$data['mime_id']),__LINE__,__FILE__);
}
else if ($data['extension'])
{
$this->db->select('phpgw_vfs2_mimetypes',$return_fields,
array('extension'=>$data['extension']),__LINE__,__FILE__);
}
else if ($data['mime'])
{
$this->db->select('phpgw_vfs2_mimetypes',$return_fields,
array('mime'=>$data['mime']),__LINE__,__FILE__);
}
if ($data['extension'] && $data['mime'])
{
//if there is extension and mime specified and nothing was found only with extension, search mime
if ($this->db->next_record())
return $this->db->Record;
else
{
$this->db->select('phpgw_vfs2_mimetypes',$return_fields,
array('mime'=>$data['mime']),__LINE__,__FILE__);
if ($this->db->next_record())
return $this->db->Record;
}
}
else
{
if ($this->db->next_record())
return $this->db->Record;
}
return false;
}
/*!
* function get_filetypes
* @description Returns an array with all file types in the repository
* @param $return_images if true, the images are returned in the array
* @param $offset int if specified, will bring a subset of repository
* @result Array: $arr[1]['mime_id'] ...
*/
function get_filetypes($return_images=false,$offset=false)
{
$return_fields = ($return_images)?'*':'mime_id,extension,friendly,mime_magic,mime,proper_id';
$this->db->select('phpgw_vfs2_mimetypes',$return_fields,false,
__LINE__,__FILE__,$offset);
$result = array();
while ($this->db->next_record())
{
$result[] = $this->db->Record;
}
return $result;
}
/*!
* function update_filetype
* @description Updates a file type information in the filetype
* repository
* @param $return_image if true will return the binary data of image
* @note parameters in $data: the same of add_filetype()
* @result bool true on success, false otherwise
*/
function update_filetype($data)
{
if (!$data['mime_id'])
{
return false;
}
if ($data['icon_name'])
{
if (file_exists($data['icon_name']))
{
$fp = fopen($data['icon_name'],"r");
$data['image'] = fread($fp,filesize($icon));
fclose($fp);
}
$data['image'] = $this->db->quote($data['image'],'blob');
unset($data['icon_name']);
}
$where['mime_id'] = $data['mime_id'];
if ($this->db->update('phpgw_vfs2_mimetypes',$data,$where,__LINE__,
__FILE__))
return true;
return false;
}
/*!
* function delete_filetype
* @description deletes a type from the file type repository
* @param $mime_id the mime_id of the record
* @result bool true on success, false otherwise
*/
function delete_filetype($mime_id)
{
if ($this->db->delete('phpgw_vfs2_mimetypes',
array('mime_id'=>$mime_id),__LINE__,__FILE__))
return true;
return false;
}
function set_vfs(&$vfs)
{
$this->vfs =& $vfs;
}
#private methods
function get_mime_type($extension)
{
return $this->vfs->get_ext_mime_type(array('string'=>$extension));
}
function default_values ($data, $default_values)
{
for ($i = 0; list ($key, $value) = each ($default_values); $i++)
{
if (!isset ($data[$key]))
{
$data[$key] = $value;
}
}
return $data;
}
}
?>

View File

@ -1,373 +0,0 @@
<?php
/***************************************************************************\
* eGroupWare - File Manager *
* http://www.egroupware.org *
* Written by: *
* - Vinicius Cubas Brand <viniciuscb@users.sourceforge.net> *
* sponsored by Thyamad - http://www.thyamad.com *
* ------------------------------------------------------------------------- *
* Description: File ID Prefixes class handler for SQL implementation v2 *
* ------------------------------------------------------------------------- *
* 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 2 of the License, or (at your *
* option) any later version. *
\***************************************************************************/
#12 Oct 2004 viniciuscb Initial Release
define ('PHPGW_VFS2_PREFIX_APP','vfs2_prefix'); //for prefix
define ('PHPGW_VFS2_PTYPE_APP','vfs2_ptype'); //for file type
class vfs_prefixes
{
var $db;
var $table_fields = array(
'prefix_id',
'owner_id',
'prefix',
'prefix_description',
'prefix_type'
);
function vfs_prefixes()
{
$this->db = clone($GLOBALS['phpgw']->db);
}
/*!
* function add
* @description Adds a new File ID Prefix to the prefixes repository
* @param prefix string (required) A prefix
* @param prefix_description string (optional) Brief prefix description
* @param owner_id int (required) Owner Id of prefix
* @param prefix_type (optional) can be 'p' for prefix, 't' for type.
* @result (int) prefix_id
*
* @note: will search for another equal $prefix in repository. If
* exists, returns its prefix_id and if user have permission,
* updates this prefix. If don't exists, insert and return its
* prefix_id. $dont_update will not do any update if exists, even
* if current user can update.
*/
function add($data,$dont_update=false)
{
if (!$data['prefix'])
{
return false;
}
if (!$data['prefix_type'])
{
$data['prefix_type'] = 'p';
}
//eliminate keys which are not a field in table
foreach($data as $key => $val)
{
if (!in_array($key,$this->table_fields))
{
unset($data[$key]);
}
}
//see if exists some equal prefix id
$this->db->select('phpgw_vfs2_prefixes','prefix_id',array('prefix' => $data['prefix']));
if($this->db->next_record()) //exists
{
if ($dont_update)
{
return $this->db->Record['prefix_id'];
}
$data['prefix_id'] = $this->db->Record['prefix_id'];
return $this->edit($data);
}
if (!$data['owner_id'])
{
$data['owner_id'] = $GLOBALS['phpgw_info']['user']['account_id'];
}
$this->db->insert('phpgw_vfs2_prefixes',$data,false,__LINE__,__FILE__);
$this->db->select('phpgw_vfs2_prefixes','prefix_id',array('prefix' => $data['prefix']));
if($this->db->next_record()) //exists
{
return $this->db->Record['prefix_id'];
}
return false;
}
/*!
* function edit
* @description Edits a File ID Prefix
* @param prefix_id int (required) The ID for prefix
* @param prefix string (optional) A prefix
* @param prefix_description string (optional) Brief prefix description
* @param owner_id int (optional) Owner Id of prefix
* @param prefix_type (optional) can be 'p' for prefix, 't' for type.
* @result (int) prefix_id
* @result (bool) true on success, false on any other possibility
*/
function edit($data)
{
if (!$data['prefix_id'])
{
return false;
}
//eliminate keys which are not a field in table
foreach($data as $key => $val)
{
if (!in_array($key,$this->table_fields))
{
unset($data[$key]);
}
}
$where['prefix_id'] = $data['prefix_id'];
unset($data['prefix_id']);
return $this->db->update('phpgw_vfs2_prefixes',$data,$where,__LINE__,__FILE__);
}
/*!
* function remove
* @description Removes a File ID Prefix
* @param prefix_id int (required) The ID for prefix
* @result (bool) true on success, false on any other possibility
*/
function remove($prefix_id)
{
return $this->db->delete('phpgw_vfs2_prefixes',array('prefix_id' => $prefix_id),__LINE__,__FILE__);
}
/*!
* function get
* @description Gets information about a prefix just based in prefix_id
* @param prefix_id int (required) The ID for prefix
* OR
* @param prefix int (required) The prefix
* @result (array) with column names as indexes, empty array if inexist
*/
function get($data)
{
if (!$data['prefix_id'] && !$data['prefix'])
return false;
$this->db->select('phpgw_vfs2_prefixes','*',$data,__LINE__,__FILE__);
if ($this->db->next_record())
{
return $this->db->Record;
}
return array();
}
/*!
* function get_prefixes
* @description Gets all prefixes this user can view, based in querying
* acl
* @param user_id int (required) The ID of user to whom you want to
* know, or will get current user as default
* @param status string If 'view', returns info about all prefixes
* user can view. if 'owns', return only prefixes user owns
* @result (array) with column names as indexes, empty array if inexist
*/
function get_prefixes($status='view',$user_id=false,$type='p')
{
if (!$user_id)
{
$user_id = $GLOBALS['phpgw_info']['user']['account_id'];
}
switch ($status)
{
case 'owns':
$this->db->select('phpgw_vfs2_prefixes','*',array('owner_id'=>$user_id,'prefix_type'=>$type),__LINE__,__FILE__);
while($this->db->next_record())
{
$return[] = $this->db->Record;
}
break;
case 'view':
$acl =& CreateObject('phpgwapi.acl',$user_id);
//fetch ids of prefixes that user can view
if (!$pr_list = $acl->get_location_list_for_id(PHPGW_VFS2_PREFIX_APP,PHPGW_ACL_READ,$user_id))
{
$pr_list = array();
}
//fetch ids of prefixes that groups user belong to can view
//Note: this will be in two phases. One: fetch groups user
// belongs to. Two: fetch prefix list for these groups
/* Note: prefixes are organized in phpgwapi.acl in the
* following schema:
* - appname: (PHPGW_VFS2_PREFIX_APP)
* - location: id_prefix
* - account_id: Id of user that has grants (not the
* grantor. The grantor is only the owner of prefix,
* defined in prefixes repository).
* - acl_rights: PHPGW_ACL_READ
*/
$user_groups = $GLOBALS['phpgw']->accounts->membership($user_id);
foreach($user_groups as $group)
{
if (!$group_pr_list = $acl->get_location_list_for_id(PHPGW_VFS2_PREFIX_APP,PHPGW_ACL_READ,$group['account_id']))
{
$group_pr_list = array();
}
$pr_list = array_merge($pr_list,$group_pr_list);
}
//remove dupliate values
$pr_list = array_unique($pr_list);
//now we have the list of prefixes user can view. We must
//now fetch complete information about prefixes of
//phpgw_vfs2_prefixes
if (!count($pr_list))
{
return array();
}
if ($pr_list)
{
$prefix_string = '('.implode(',',$pr_list).')';
$this->db->select('phpgw_vfs2_prefixes','*','prefix_id IN '.$prefix_string." AND prefix_type='$type'",__LINE__,__FILE__);
while($this->db->next_record())
{
$return[] = $this->db->Record;
}
}
else
{
return array();
}
break;
default:
return false;
}
return $return;
}
/*!
* function update_permissions
* @description Updates users who can see a prefix
*
* @param prefix_id int (required) The prefix that will have permissions
* changed
* @param user_list array Array with account_ids that can read prefix
* as values.
*
* @result (bool)
*/
function update_permissions($prefix_id,$user_list)
{
//1. see if current user is owner of the prefix
$current_user_id = $GLOBALS['phpgw_info']['user']['account_id'];
$prefix_info = $this->get(array('prefix_id'=>$prefix_id));
if ($current_user_id != $prefix_info['owner_id'])
{
return false;
}
//2. get current permission for prefix
$current_permissions = $this->get_permissions(array('prefix_id'=>$prefix_id));
//3. change permissions
$list_of_users_to_add = array_diff($user_list,$current_permissions);
$list_of_users_to_del = array_diff($current_permissions,$user_list);
$acl =& CreateObject('phpgwapi.acl',$current_user_id);
foreach($list_of_users_to_add as $user_id)
{
$acl->account_id = $user_id;
$acl->read_repository();
#echo "<br>\nAdded: prefix $prefix_id ; user $user_id";
$acl->add(PHPGW_VFS2_PREFIX_APP,$prefix_id,PHPGW_ACL_READ);
$acl->save_repository();
}
foreach($list_of_users_to_del as $user_id)
{
$acl->account_id = $user_id;
$acl->read_repository();
#echo "<br>\nDeleted: prefix $prefix_id ; user $user_id";
$acl->delete(PHPGW_VFS2_PREFIX_APP,$prefix_id);
$acl->save_repository();
}
}
/*!
* function get_permissions
* @description This will get all permissions for a given prefix.
* In other words, will return an array of all accounts who
* can see a prefix. Will not dive into groups' users,
* only showing user and group accounts who can see
* prefix.
*
* @param prefix int (required) The File ID Prefix
* OR
* @param prefix_id int (required) The ID of the File ID Prefix
* @param prefixes array The same type of the return of get_prefixes
*
* @result (array) with column names as indexes, empty array if inexist
*/
function get_permissions($data)
{
if (is_numeric($data))
{
$prefix_id = $data;
}
elseif ($data['prefix'])
{
$this->db->select('phpgw_vfs2_prefixes','prefix_id',array('prefix'=>$data['prefix']),__LINE__,__FILE__);
if ($this->db->next_record())
{
$prefix_id = $this->db->Record['prefix_id'];
}
}
elseif($data['prefix_id'])
{
$prefix_id = $data['prefix_id'];
}
if (!$prefix_id)
{
return false;
}
$acl =& CreateObject('phpgwapi.acl');
$user_ids = $acl->get_ids_for_location($prefix_id,PHPGW_ACL_READ,PHPGW_VFS2_PREFIX_APP);
return ($user_ids)?$user_ids:array();
}
}
?>

View File

@ -1,516 +0,0 @@
<?php
/***************************************************************************\
* eGroupWare - File Manager *
* http://www.egroupware.org *
* Written by: *
* - Vinicius Cubas Brand <viniciuscb@users.sourceforge.net> *
* sponsored by Thyamad - http://www.thyamad.com *
* ------------------------------------------------------------------------- *
* Description: File Sharing class handler for VFS (SQL implementation v2) *
* ------------------------------------------------------------------------- *
* 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 2 of the License, or (at your *
* option) any later version. *
\***************************************************************************/
// This class had to be created because file sharing work very differently
// In fm2 than in fm.
#FIXME this class is completely vfs_sql2 oriented. Must exist implementation
# to other types
class vfs_sharing
{
var $accounts;
var $db;
/*!
* function vfs_sharing
* @description Class constructor
*/
function vfs_sharing()
{
$this->accounts =& $GLOBALS['phpgw']->accounts;
$this->db = clone($GLOBALS['phpgw']->db);
}
/*!
* function set_permissions
* @description Add specified permissions that do not exist, remove
* unspecified permissions that exist. Easier to call than
* add_permissions and then remove_permissions
* @param array $data in the following format:
* array(
* file_id => array(
* account_id => acl_rights,
* account_id2 => acl_rights2,...
* ),
* file_id2 ... );
*/
function set_permissions($data)
{
//TODO see if a user have permissions in a file. Only if he have
//(or if is inside his homedir) he can change permissions
if (!$data || !is_array($data))
{
return false;
}
//search for permissions on files, to know which ones must be
//updated/inserted
reset($data);
while(list($file_id,$account_ids) = each($data))
{
$file_ids[] = $file_id;
}
$sql = 'SELECT * from phpgw_vfs2_shares
WHERE file_id IN ('.implode(',',$file_ids).')';
$this->db->query($sql,__LINE__,__FILE__);
while ($this->db->next_record())
{
$current_shares[$this->db->Record['file_id']][$this->db->Record['account_id']] = $this->db->Record['acl_rights'];
}
//now that we have the current permissions, must know which ones to
//insert/update and which ones to delete
reset($data);
while(list($file_id,$account_ids) = each($data))
{
reset($account_ids);
while(list($account_id,$acl_rights) = each($account_ids))
{
//exists
if (array_key_exists($account_id,$current_shares[$file_id]))
{
if ($current_shares[$file_id][$account_id] != $acl_rights)
{
$insert[$file_id][$account_id] = $acl_rights;
}
unset($current_shares[$file_id][$account_id]);
}
else
{
$insert[$file_id][$account_id] = $acl_rights;
}
}
}
//get which ones to delete
reset($current_shares);
while(list($file_id,$account_ids) = each($current_shares))
{
if (is_array($account_ids))
{
reset($account_ids);
while(list($account_id,$acl_rights) = each($account_ids))
{
$delete[$file_id][$account_id] = $acl_rights;
}
}
}
foreach($insert as $file_id => $account_ids)
{
$this->store_permissions($file_id,$account_ids);
}
foreach($delete as $file_id => $account_ids)
{
$this->remove_permissions($file_id,$account_ids);
}
return true;
}
/*!
* function store_qpermissions
* @description Add/update new permissions to a file id
* @param account_ids: array('account_id'=> acl_rights,acc_id2=>acl_r2,)
*/
function store_permissions($file_id,$account_ids)
{
if (!is_array($account_ids) || !is_numeric($file_id))
{
return false;
}
foreach($account_ids as $account_id => $acl_rights)
{
$this->db->insert('phpgw_vfs2_shares',
array('acl_rights'=>$acl_rights),
array('account_id'=>$account_id,'file_id'=>$file_id),
__LINE__,__FILE__);
}
return true;
}
/*!
* function remove_permissions
* @description Remove some permissions of a file id
*/
function remove_permissions($file_id,$account_ids)
{
if (!is_array($account_ids) || !is_numeric($file_id))
{
return false;
}
//gets an array will all accounts as key
$accounts = array_keys($account_ids);
$this->db->delete('phpgw_vfs2_shares',
array('account_id'=>$accounts,'file_id'=>$file_id),
__LINE__,__FILE__);
return true;
}
/**
* Function: remove_all_permissions
*
* Removes all permissions of a file
*/
function remove_all_permissions($file_id)
{
$this->db->delete('phpgw_vfs2_shares',
array('file_id'=>$file_id),
__LINE__,__FILE__);
}
/*!
* function get_permissions
* @description This function will get the permissions set for a given
* file, makeing a simple query in the file repository. Does not
* search for permissions in parent dirs. If you want to know which
* is the permission for a user in a given file TAKING IN COUNT the
* parent dirs, use $this->get_file_permissions instead.
* @param int file_id The id of the file
* @result array with account_id as index, acl_rights as value
* @author Vinicius Cubas Brand
*/
function get_permissions($file_id)
{
$this->db->select('phpgw_vfs2_shares','acl_rights,account_id',
array('file_id'=>$file_id),__LINE__,__FILE__);
$result = array();
while ($this->db->next_record())
{
$result[$this->db->Record['account_id']] = $this->db->Record['acl_rights'];
}
return ($result);
}
/*!
* function get_shares
* @description Get all shares in which the user have $permission
* @param $account_id The id of the user that can read the shared folder
* @param $is_owner If true, will get only the shared folders that
* $account_id owns. Useful to get the shares that account_id owns
* and have configured himself (true), or instead the shares of the
* others that he have $permission (false)
* @result array with the list of the file_id's of all shares
*/
function get_shares($account_id,$is_owner=false,$permission=PHPGW_ACL_READ,$exclude_dir='')
{
$default_values = array(
'is_owner' => false,
'permission' => PHPGW_ACL_READ
);
if (is_array($account_id))
{
$account_id = array_merge($default_values,$account_id);
$is_owner = $account_id['is_owner'];
$permission = $account_id['permission'];
$exclude_dir = $account_id['exclude_dir'];
$only_dir = $account_id['only_dir'];
$account_id = $account_id['account_id'];
}
if ($exclude_dir)
{
if (is_array($exclude_dir))
{
foreach ($exclude_dir as $dir)
{
$append .= " AND fls.directory NOT LIKE '".$dir."%' ";
}
}
else
{
$append .= " AND fls.directory NOT LIKE '".$exclude_dir."%' ";
}
}
elseif ($only_dir)
{
$append .= " AND fls.directory LIKE '".$only_dir."%' ";
}
if ($is_owner)
{
$sql = "SELECT DISTINCT sh.file_id as file_id,
sh.acl_rights as acl_rights,
fls.directory as directory,
fls.name as name,
fls.owner_id as owner_id
FROM phpgw_vfs2_shares as sh,
phpgw_vfs2_files as fls
INNER JOIN phpgw_vfs2_mimetypes mime on fls.mime_id = mime.mime_id
WHERE sh.file_id = fls.file_id
AND mime.mime = 'Directory'
AND fls.shared = 'Y'
$append
AND fls.owner_id = $account_id";
}
else
{
//gets the id of all groups $account_id belongs to
$groups = $GLOBALS['phpgw']->accounts->membership($account_id);
foreach($groups as $group)
{
$accounts[] = $group['account_id'];
}
$accounts[] = $account_id;
$sql = "SELECT DISTINCT sh.file_id as file_id,
sh.acl_rights as acl_rights,
fls.directory as directory,
fls.name as name,
fls.owner_id as owner_id
FROM phpgw_vfs2_shares as sh,
phpgw_vfs2_files as fls
INNER JOIN phpgw_vfs2_mimetypes mime on fls.mime_id = mime.mime_id
WHERE sh.file_id = fls.file_id
AND mime.mime = 'Directory'
AND sh.account_id IN (".implode(',',$accounts).")
AND fls.shared = 'Y'
$append
AND fls.owner_id != $account_id";
}
$this->db->query($sql,__LINE__,__FILE__);
$res = array();
while($this->db->next_record())
{
if($this->db->Record['acl_rights'] & $permission)
{
$res[] = $this->db->Record;
}
}
//should be returned the array with complete file description
return $res;
}
/*!
* function search_shares
* @description Search for a shared folder which the user have
* $permission and have $keyword related (in directory or filename)
* @result array with the list of all shares
*/
//TODO search by file owner's name
function search_shares($account_id,$keyword,$permission=PHPGW_ACL_READ)
{
if ($account_id != ((int)$account_id))
{
return false;
}
//gets the id of all groups $account_id belongs to
$groups = $GLOBALS['phpgw']->accounts->membership($account_id);
foreach($groups as $group)
{
$accounts[] = $group['account_id'];
}
$accounts[] = $account_id;
$sql = "SELECT DISTINCT sh.file_id as file_id,
sh.acl_rights as acl_rights,
fls.directory as directory,
fls.name as name,
fls.owner_id as owner_id
FROM phpgw_vfs2_shares as sh,
phpgw_vfs2_files as fls
WHERE sh.file_id = fls.file_id
AND sh.account_id IN (".implode(',',$accounts).")
AND ( fls.directory LIKE '%$keyword%'
OR fls.name LIKE '%$keyword%')
AND fls.shared = 'Y'
AND fls.owner_id != $account_id";
$this->db->query($sql,__LINE__,__FILE__);
while($this->db->next_record())
{
if ($this->db->Record['acl_rights'] & $permission)
{
$res[] = $this->db->Record;
}
}
return $res;
}
/**
* Function: get_file_permissions
*
* Gets the permissions for a user in a given file For files in a
* shared dir, will get the acl rights of the parent dir, and if
* not specified, of the parent of the parent, and so on. NOTE:
* this consider that files CANNOT have permissions set, only
* their parent dir, and the file inherits the nearer parent with
* permissions defined (even if these permissions are NONE)
*
* @result int some mask of various PHPGW_ACL_*
*/
function get_file_permissions($account_id,$file_id)
{
//get directory/file names
$this->db->select('phpgw_vfs2_files','directory,name',
array('file_id' => $file_id),__LINE__,__FILE__);
$this->db->next_record();
$directory = $this->db->Record['directory'];
$name = $this->db->Record['name'];
$fullname = $directory.'/'.$name;
$parent_dirs = array();
$dirs_expl = explode('/',$fullname);
//put all parents hierarchy in an array
$parent_dirs_array[]=$fullname;
while(1)
{
array_pop($dirs_expl);
if($dirs_expl[1])
{
$parent_dirs_array[]=implode('/',$dirs_expl);
}
else
{
$parent_dirs_array[]='/';
break;
}
}
//gets the id of all groups $account_id belongs to
$groups = $GLOBALS['phpgw']->accounts->membership($account_id);
foreach($groups as $group)
{
$accounts[] = $group['account_id'];
}
$accounts[] = $account_id;
$accounts[] = 0; //default permission for all users
$accounts = implode(',',$accounts);
//searches for information in the parent dirs
for($i=0; $i<count($parent_dirs_array);$i++)
{
$dir_name = array_pop(explode('/',$parent_dirs_array[$i]));
if ($dir_name)
{
//if file have a reg in table, will try to see if it is
//with permissions to the current user
$sql = "SELECT sh.acl_rights as acl_rights,
fls.directory as directory,
fls.name as name,
fls.owner_id as owner_id,
fls.shared as shared
FROM phpgw_vfs2_files as fls,
phpgw_vfs2_shares as sh
WHERE fls.file_id = sh.file_id
AND fls.directory = '".$parent_dirs_array[$i+1]."'
AND fls.name = '".$dir_name."'
AND fls.shared = 'Y'";
$this->db->query($sql,__LINE__,__FILE__);
if ($this->db->next_record())
{
$sql = "SELECT sh.acl_rights as acl_rights,
fls.directory as directory,
fls.name as name,
fls.owner_id as owner_id,
fls.shared as shared
FROM phpgw_vfs2_files as fls,
phpgw_vfs2_shares as sh
WHERE (sh.account_id IN ($accounts)
OR fls.owner_id = $account_id)
AND fls.file_id = sh.file_id
AND fls.directory = '".$parent_dirs_array[$i+1]."'
AND fls.name = '".$dir_name."'
AND fls.shared = 'Y'";
$this->db->query($sql,__LINE__,__FILE__);
/*
$this->db->select('phpgw_vfs2_files','file_id',
array('directory'=>$parent_dirs_array[$i+1],
'name'=>$dir_name), __LINE__,__FILE__);
$this->db->next_record();
$this->db->select('phpgw_vfs2_shares','acl_rights',
array('file_id'=>$this->db->Record['file_id'],
'account_id'=>$account_id),__LINE__,__FILE__);*/
// echo "tested file: ".$dir_name." \n<br>";
// echo $sql."<br><br>\n\n";
while ($this->db->next_record())
{
// echo "results for file: ".$dir_name." \n<br>";
if ($this->db->Record['owner_id'] == $account_id)
{
//the user can do anything with any dir or file
//inside a dir that belongs to him.
return PHPGW_ACL_READ|PHPGW_ACL_EDIT|PHPGW_ACL_ADD;
}
else
{
$entered = true;
$result |= $this->db->Record['acl_rights'];
}
}
if($entered)
{
return $result;
}
else
{
return 0;
}
}
}
}
return false;
}
}
?>

File diff suppressed because it is too large Load Diff

View File

@ -1,684 +0,0 @@
<?php
/***************************************************************************\
* eGroupWare - File Manager *
* http://www.egroupware.org *
* Written by: *
* - Vinicius Cubas Brand <viniciuscb@users.sourceforge.net> *
* sponsored by Thyamad - http://www.thyamad.com *
* ------------------------------------------------------------------------- *
* Description: File version class handler for VFS (SQL implementation v2) *
* ------------------------------------------------------------------------- *
* 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 2 of the License, or (at your *
* option) any later version. *
\***************************************************************************/
class vfs_versionsystem
{
/* The high level database handler object */
// var $db_highlevel;
/* Stores the possible amount number of old file backups; In an
* inserction, this number will be verified and if there are already
* $backups backed up for a file, will delete backup of the oldest
* (although keeping the record of operations). 0 for no backup system
* and -1 to infinite versions. */
var $backups;
/* tmp dir (without end slash) to store temporary file backups (when
* file is snapshotted) */
var $tmp_dir;
/* Virtual file system base class */
var $vfs;
/* Stores information about snapshotted files. Array with the file_id
as index. */
var $snapshotted_files;
/* Database handling */
var $db;
/* Now */
var $now;
var $account_id;
var $last_saved_snapshot=-1;
var $backup_foldername = '_backup';
//Operations that create file backups
var $backup_operations = array(
VFS_OPERATION_EDITED
);
var $attributes = array(
'version_id', /* Integer. Unique to each modification. */
'file_id', /* Integer. Id of the file that modif. belongs.*/
'operation', /* Operation made in modification. */
'modifiedby_id', /* phpGW account_id of who last modified */
'modified', /* Datetime of modification, in SQL format */
'version', /* Version of file prior modification. */
'comment', /* Human-readable description of modification. */
'backup_file_id', /* file_id of file that is a backup . */
'backup_content', /* usable if files are stored in database. */
'src', /* source directory in a copy or move operation.*/
'dest' /* destination directory in a copy or move operation.*/
);
/*!
* @function vfs_versionsystem
* @abstract Object constructor
* @author Vinicius Cubas Brand
*/
function vfs_versionsystem($create_vfs=true)
{
//use create_vfs=false and after this use $this->set_vfs to keep the
// same object (i.e. use reference) in $this->vfs instead of
// creating a new object.
if ($create_vfs)
{
$this->vfs =& CreateObject('phpgwapi.vfs');
}
/* FIXME this takes a value defined in the filescenter
* configuration. Better next time to take a value from global api
* configuration. must fix here and in the filescenter */
if (array_key_exists('filescenter',$GLOBALS['phpgw_info']['user']['preferences']))
{
$this->backups = $GLOBALS['phpgw_info']['user']['preferences']['filescenter']['vfs_backups'];
}
else
{
$this->backups = 5;
}
$this->snapshotted_files = array();
$this->db = clone($GLOBALS['phpgw']->db);
$this->now = date('Y-m-d H:i:s');
$this->account_id = $GLOBALS['phpgw_info']['user']['account_id'];
$this->tmp_dir = $GLOBALS['phpgw_info']['server']['temp_dir'];
}
/*!
* @function create_initial_version()
* @abstract Creates a initial journal entry for a file
* @description Must be used after a file has been created. Will create
* an initial journal entry in the database. If somehow
* the database already have any journal for that file,
* this method is wrongly called and will do nothing.
* Also if no file is found with that file_id, fails.
*
* @author Vinicius Cubas Brand
*/
function create_initial_version($file_id)
{
if ($GLOBALS['phpgw']->banish_journal)
{
return;
}
$GLOBALS['phpgw']->banish_journal = true;
//See if file exists
$this->db->select('phpgw_vfs2_files','*',
array('file_id'=>$file_id), __LINE__,__FILE__);
if (!$this->db->next_record())
{
$GLOBALS['phpgw']->banish_journal = false;
return false;
}
$file_record = $this->db->Record;
//See if journal for the file already exists
$this->db->select('phpgw_vfs2_versioning','*',
array('file_id'=>$file_id),__LINE__,__FILE__);
if ($this->db->next_record())
{
$GLOBALS['phpgw']->banish_journal = false;
return true; //TODO error message
}
$insert_data = array(
'file_id' => $file_record['file_id'],
'operation' => VFS_OPERATION_CREATED,
'modified' => $this->now,
'modifiedby_id' => $this->account_id,
'version' => '0.0.0.0'
);
$res = $this->db->insert('phpgw_vfs2_versioning',$insert_data,null,
__LINE__,__FILE__);
/* $this->db->update('phpgw_vfs2_files',array(
'modified' => $insert_data['modified'],
'modifiedby_id' => $insert_data['modifiedby_id']
),
array('file_id' => $insert_data['file_id']).__LINE__,__FILE__
);*/
if ($res)
{
$GLOBALS['phpgw']->banish_journal = false;
return true;
}
$GLOBALS['phpgw']->banish_journal = false;
return false;
}
/*!
* @function save_snapshot()
* @abstract Saves a snapshot from a file
* @description Must be called before any modification in a file. After
* the modification was successful, one must do a vfs_version->commit()
* Depending of the type of operation and how backups are set, will
* handle backups. If a commit is not made until the end of the script,
* no modifications in the journal will be saved.
*
* @param $file_id int The file_id
* @param $operation int A VFS_OPERATION as defined in vfs_shared file
* @param $other string Its use will differ depending on the operation:
* Copy,Move: $other contains the fake_full_path_clean of destination
*
* @author Vinicius Cubas Brand
* @result bool
*/
function save_snapshot($file_id,$operation,$comment='',$other='')
{
//Prevent recursive reentrant when working in vfs->copy, f.inst
if ($GLOBALS['phpgw']->banish_journal)
{
return;
}
$GLOBALS['phpgw']->banish_journal = true;
$this->db->select('phpgw_vfs2_files','*',
array('file_id'=>$file_id), __LINE__,__FILE__);
if (!$this->db->next_record())
{
$GLOBALS['phpgw']->banish_journal = false;
return false;
}
$file_record = $this->db->Record;
//If already snapshotted, will do a rollback in the old snapshot
//before make a new one.
if ($this->snapshotted_files[$file_record['file_id']])
{
$this->rollback($file_record['file_id']);
}
//Create a backup if necessary
if ($this->backups != 0 && in_array($operation,$this->backup_operations))
{
$random_filename = $this->tmp_dir.SEP.$this->random_filename();
$this->vfs->cp(array(
'from' => $file_record['directory'].SEP.$file_record['name'],
'to' => $random_filename,
'relatives' => array(RELATIVE_ROOT,RELATIVE_NONE|VFS_REAL)
));
$this->vfs->set_attributes(array(
'string' => $random_filename,
'relatives' => array(RELATIVE_NONE|VFS_REAL),
'attributes' => array('is_backup' => 'Y')
));
}
//backup_file_id and backup_data will be set in commit() only.
$insert_data = array(
'file_id' => $file_record['file_id'],
'operation' => $operation,
'modifiedby_id' => $this->account_id,
'modified' => $this->now, //Datetime of entry
'version' => $file_record['version'],
'comment' => $comment,
);
if ($operation == VFS_OPERATION_COPIED || $operation == VFS_OPERATION_MOVED)
{
$insert_data['src'] = $file_record['directory'].'/'.$file_record['name'];
$insert_data['dest'] = $other['dest'];
}
/* $file_data is the information of the file, stored in
* $this->snapshotted_files. 'insert_data' have the data to be
* inserted in the versioning table, 'tmp_filename' is the name of
* the temporary backup copy, if any, and 'record' is the
* information of the file before changes (that will be made between
* the call to save_snapshot() and the call to commit().
*/
$file_data = array(
'insert_data' => $insert_data,
'tmp_filename' => $random_filename,
'record' => $file_record
);
$this->snapshotted_files[$file_id] = $file_data;
$this->last_saved_snapshot = $file_id;
$GLOBALS['phpgw']->banish_journal = false;
return true;
}
/*!
* @function commit()
* @abstract Commits the creation of a journal entry
* @description Will have to be called after a save_snapshot is made.
* If a vfs_version->save_snapshot() call is not made before, this
* method does nothing. If no parameter is passed, will commit the
* file from the last saved snapshot.
*
* @param $file_id int The file_id
*
* @author Vinicius Cubas Brand
* @result bool
*/
function commit($file_id=-1)
{
//Prevent recursive reentrant when working in vfs->copy, f.inst
if ($GLOBALS['phpgw']->banish_journal)
{
return;
}
$GLOBALS['phpgw']->banish_journal = true;
if ($file_id == -1)
{
if ($this->last_saved_snapshot == -1)
{
$GLOBALS['phpgw']->banish_journal = false;
return false;
}
$file_id = $this->last_saved_snapshot;
}
if (!$this->snapshotted_files[$file_id])
{
$GLOBALS['phpgw']->banish_journal = false;
return false;
}
$file_data = $this->snapshotted_files[$file_id];
//if there is any backup to be made, will make these backups and
//remove too old backup versions, as defined in configuration.
if ($this->backups != 0 && in_array($file_data['insert_data']['operation'],$this->backup_operations))
{
//counts the number of stored backups
$where = "file_id=$file_id AND (backup_file_id != NULL OR backup_file_id != 0)";
$this->db->select('phpgw_vfs2_versioning','count(*)',$where,
__LINE__,__FILE__);
$this->db->next_record();
if ($this->db->Record[0] >= $this->backups && $this->backups != -1)
{
//Remove old backups
//Deletes oldest backup(s)
$backups_to_be_deleted = $this->db->Record[0] - $this->backups + 1;
$sql = "SELECT vers.version_id as version_id,
vers.backup_file_id as backup_file_id,
files.directory as directory,
files.name as name
FROM phpgw_vfs2_versioning as vers,
phpgw_vfs2_files as files
WHERE vers.file_id=$file_id
AND vers.backup_file_id = files.file_id
ORDER BY vers.modified";
$this->db->query($sql,__LINE__,__FILE__);
for ($i = 0; $i < $backups_to_be_deleted; $i++)
{
//FIXME don't know why this only works 4 the 1st cycle
$this->db->next_record();
$version_file_id = $this->db->Record['backup_file_id'];
$version_id = $this->db->Record['version_id'];
$version_directory = $this->db->Record['directory'];
$version_name = $this->db->Record['name'];
//Removes old backup
$this->vfs->rm(array(
'string' => $version_directory.SEP.$version_name,
'relatives' => array(RELATIVE_ROOT)
));
$versions_to_update[] = $version_id;
}
if ($versions_to_update)
{
//updates old journal
$update_data = array(
'backup_file_id' => '',
'backup_content' => ''
);
foreach ($versions_to_update as $key => $val)
{
$update_where = array(
'version_id' => $val
);
$this->db->update('phpgw_vfs2_versioning',
$update_data,$update_where,__LINE__,__FILE__);
}
}
unset($version_id);
}
//create backup folder, if not exists
//Important: the backup dir will be inside the virtual root
$backup_foldername = $file_data['record']['directory'].SEP.$this->backup_foldername;
$dir = array(
'string' => $backup_foldername,
'relatives' => array(RELATIVE_ROOT)
);
if (!$this->vfs->file_exists($dir))
{
$this->vfs->mkdir($dir); //TODO error messages
$attributes=array_merge($dir,array(
'attributes' => array(
'is_backup' => 'Y'
)
));
$this->vfs->set_attributes($attributes);
}
//create a backup filename
$backup_filename = $this->backup_filename(
$file_data['record']['name'],
$file_data['insert_data']['version']
);
//move file from temporary location to its definitive location
$res = $this->vfs->mv(array(
'from' => $file_data['tmp_filename'],
'to' => $backup_foldername.SEP.$backup_filename,
'relatives' => array(RELATIVE_NONE|VFS_REAL,RELATIVE_ROOT)
));
//sets its attribute as backup
$this->vfs->set_attributes(array(
'string' => $backup_foldername.SEP.$backup_filename,
'relatives' => array(RELATIVE_ROOT),
'attributes' => array('is_backup' => 'Y')
));
//TODO backup content in database support
//Fetch the backup file_id to put this information in the
//version table
if ($res)
{
$res_ls = $this->vfs->ls(array(
'string' => $backup_foldername.SEP.$backup_filename,
'relatives' => RELATIVE_ROOT,
'nofiles' => True,
'backups' => True
));
if ($res_ls)
{
$file_data['insert_data']['backup_file_id'] = $res_ls[0]['file_id'];
}
}
}
$res = $this->db->insert('phpgw_vfs2_versioning',
$file_data['insert_data'],null,__LINE__,__FILE__);
if ($res)
{
//If operation is one of the type that increments file version
if (in_array($file_data['insert_data']['operation'],$this->backup_operations))
{
$this->db->update('phpgw_vfs2_files',
array(
'version' => $this->inc($file_data['insert_data']['version']),
'modified' => $file_data['insert_data']['modified'],
'modifiedby_id' => $file_data['insert_data']['modifiedby_id']
),
array('file_id' => $file_data['insert_data']['file_id']),
__LINE__, __FILE__
);
}
unset($this->snapshotted_files[$file_id]);
$this->last_saved_snapshot = -1;
$GLOBALS['phpgw']->banish_journal = false;
return true;
}
$GLOBALS['phpgw']->banish_journal = false;
return false;
}
/*!
* @function rollback()
* @abstract Rollbacks the save of the snapshot
* @description Will have to be called after a save_snapshot is made.
* If a vfs_version->save_snapshot() call is not made before, this
* method does nothing. If no parameter is passed, will rollback the
* file from the last saved snapshot. This method only deletes the
* temporary backup file and the saved file information
*
* @param $file_id int The file_id
*
* @author Vinicius Cubas Brand
* @result bool
*/
function rollback($file_id=-1)
{
//Prevent recursive reentrant when working in vfs->copy, f.inst
if ($GLOBALS['phpgw']->banish_journal)
{
return;
}
$GLOBALS['phpgw']->banish_journal = true;
if ($file_id == -1)
{
if ($this->last_saved_snapshot == -1)
{
$GLOBALS['phpgw']->banish_journal = false;
return false;
}
$file_id = $this->last_saved_snapshot;
}
if (!$this->snapshotted_files[$file_id])
{
$GLOBALS['phpgw']->banish_journal = false;
return false;
}
$file_data = $this->snapshotted_files[$file_id];
$this->vfs->rm(array(
'string' => $file_data['tmp_filename'],
'relatives' => array(RELATIVE_NONE | VFS_REAL)
));
unset($this->snapshotted_files[$file_id]);
$this->last_saved_snapshot = -1;
$GLOBALS['phpgw']->banish_journal = false;
return true;
}
/*!
* @function get_journal()
* @abstract Returns an array with the journal for a file
*/
function get_journal($file_id)
{
//TODO support for database-only storage.
$fields = array_diff($this->attributes,array('backup_content'));
$where = 'file_id='.$file_id.' ORDER BY modified DESC, version DESC, operation DESC';
$this->db->select('phpgw_vfs2_versioning',$fields,$where,
__LINE__,__FILE__);
while ($this->db->next_record())
{
$result[] = $this->db->Record;
}
return $result;
}
/*!
* @function inc()
* @abstract Given a file version, increments it using the vfs
* versioning pattern and returns the incremented file version.
* Analyzes operation and increments the file version taking
* consideration of this operation.
*
* @param $version string The file version
* @param $operation int Some VFS_OPERATION as defined in vfs_shared
*
* @result string
*/
function inc($version)
{
/*
* Let's increment the version for the file itself. We keep the
* current version when making the journal entry, because that was
* the version that was operated on. The maximum numbers for each
* part in the version string: none.99.9.9
*/
$version_parts = split ("\.", $version);
$newnumofparts = $numofparts = count ($version_parts);
if ($version_parts[3] >= 9)
{
$version_parts[3] = 0;
$version_parts[2]++;
$version_parts_3_update = 1;
}
elseif (isset ($version_parts[3]))
{
$version_parts[3]++;
}
if ($version_parts[2] >= 9 && $version_parts[3] == 0 && $version_parts_3_update)
{
$version_parts[2] = 0;
$version_parts[1]++;
}
if ($version_parts[1] > 99)
{
$version_parts[1] = 0;
$version_parts[0]++;
}
for ($i = 0; $i < $newnumofparts; $i++)
{
if (!isset ($version_parts[$i]))
{
break;
}
if ($i)
{
$newversion .= '.';
}
$newversion .= $version_parts[$i];
}
return $newversion;
}
function set_vfs(&$vfs)
{
$this->vfs =& $vfs;
}
#helper, private functions
/*!
* @function random_filename()
* @abstract Generates a Random Filename
*
* @result string
*/
function random_filename()
{
$filename = '';
$filename_length = 8;
while (strlen($filename) < $filename_length) {
$filename .= chr(rand (97,122));
}
return $filename.'.tmp';
}
/*!
* @function backup_filename()
* @abstract Return the backup filename for a certain filename + version
*
* @result string
*/
function backup_filename($filename,$version)
{
$version = str_replace('.','_',$version);
$fbrk = explode('.',$filename);
$fbrk[0] .= '-'.$version;
return implode('.',$fbrk);
}
}
?>

View File

@ -12,7 +12,7 @@
/* $Id$ */ /* $Id$ */
//$oProc->m_odb->Halt_On_Error = 'yes'; //$oProc->m_odb->Halt_On_Error = 'yes';
foreach(array( foreach(array(
'aa' => 'Afar', 'aa' => 'Afar',
'ab' => 'Abkhazian', 'ab' => 'Abkhazian',
@ -156,7 +156,7 @@ foreach(array(
{ {
$oProc->insert($GLOBALS['egw_setup']->languages_table,array('lang_name' => $name),array('lang_id' => $id),__LINE__,__FILE__); $oProc->insert($GLOBALS['egw_setup']->languages_table,array('lang_name' => $name),array('lang_id' => $id),__LINE__,__FILE__);
} }
foreach(array( foreach(array(
'sessions_checkip' => 'True', 'sessions_checkip' => 'True',
'image_type' => '1', 'image_type' => '1',
@ -177,25 +177,6 @@ $oProc->query("INSERT INTO egw_interserv(server_name,server_host,server_url,trus
$oProc->query ("INSERT INTO egw_vfs (vfs_owner_id, vfs_createdby_id, vfs_modifiedby_id, vfs_created, vfs_modified, vfs_size, vfs_mime_type, vfs_deleteable, vfs_comment, vfs_app, vfs_directory, vfs_name, vfs_link_directory, vfs_link_name) VALUES (0,0,0,'1970-01-01',NULL,NULL,'Directory','Y',NULL,NULL,'/','', NULL, NULL)"); $oProc->query ("INSERT INTO egw_vfs (vfs_owner_id, vfs_createdby_id, vfs_modifiedby_id, vfs_created, vfs_modified, vfs_size, vfs_mime_type, vfs_deleteable, vfs_comment, vfs_app, vfs_directory, vfs_name, vfs_link_directory, vfs_link_name) VALUES (0,0,0,'1970-01-01',NULL,NULL,'Directory','Y',NULL,NULL,'/','', NULL, NULL)");
$oProc->query ("INSERT INTO egw_vfs (vfs_owner_id, vfs_createdby_id, vfs_modifiedby_id, vfs_created, vfs_modified, vfs_size, vfs_mime_type, vfs_deleteable, vfs_comment, vfs_app, vfs_directory, vfs_name, vfs_link_directory, vfs_link_name) VALUES (0,0,0,'1970-01-01',NULL,NULL,'Directory','Y',NULL,NULL,'/','home', NULL, NULL)"); $oProc->query ("INSERT INTO egw_vfs (vfs_owner_id, vfs_createdby_id, vfs_modifiedby_id, vfs_created, vfs_modified, vfs_size, vfs_mime_type, vfs_deleteable, vfs_comment, vfs_app, vfs_directory, vfs_name, vfs_link_directory, vfs_link_name) VALUES (0,0,0,'1970-01-01',NULL,NULL,'Directory','Y',NULL,NULL,'/','home', NULL, NULL)");
// Create Addressbook for Default group, by setting a group ACL from the group to itself for all rights: add, read, edit and delete // Create Addressbook for Default group, by setting a group ACL from the group to itself for all rights: add, read, edit and delete
$defaultgroup = $GLOBALS['egw_setup']->add_account('Default','Default','Group',False,False); $defaultgroup = $GLOBALS['egw_setup']->add_account('Default','Default','Group',False,False);
$GLOBALS['egw_setup']->add_acl('addressbook',$defaultgroup,$defaultgroup,1|2|4|8); $GLOBALS['egw_setup']->add_acl('addressbook',$defaultgroup,$defaultgroup,1|2|4|8);
/*************************************************************************\
* Default Records for VFS v2 *
\*************************************************************************/
if ($GLOBALS['DEBUG'])
{
echo "<br>\n<b>initiating to create the default records for VFS SQL2...";
}
include EGW_INCLUDE_ROOT.'/phpgwapi/setup/default_records_mime.inc.php';
$oProc->query("INSERT INTO phpgw_vfs2_files (mime_id,owner_id,createdby_id,size,directory,name)
SELECT mime_id,0,0,4096,'/','' FROM phpgw_vfs2_mimetypes WHERE mime='Directory'");
if ($GLOBALS['DEBUG'])
{
echo " DONE!</b>";
}
/*************************************************************************/

View File

@ -1,186 +0,0 @@
<?php
/***************************************************************************\
* eGroupWare - VFS SQL version 2 *
* http://www.egroupware.org *
* Written by: *
* - Vinicius Cubas Brand <vinicius@thyamad.com> *
* sponsored by Thyamad - http://www.thyamad.com *
* ------------------------------------------------------------------------- *
* Image data files extracted from Intermesh Group-Office, *
* all rights reserved. *
* http://www.group-office.com/ *
* ------------------------------------------------------------------------- *
* This program is free software; you can redistribute it and/or modify it *
* under the terms of the GNU Lesser General Public License (version 2) as *
* published by the Free Software Foundation. *
* This software 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 Lesser General Public License for more details. *
\***************************************************************************/
if ($GLOBALS['DEBUG'])
{
echo " inserting default mime-types... ";
}
if (!isset($oProc))
{
$oProc =& $GLOBALS['phpgw_setup']->oProc;
}
if (isset($oProc))
{
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'dwf',"mime"=>'image/VND.DWF',"friendly"=>'Autocad Tekening',"image"=>pack('H*','47494638396110001000f700000000000000840000ff00840000848400ffff848484c6c6c6ffff00ffffffffffc0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f9040100000a002c000000001000100000087e0015081c48b0e040030813223428d0408204081e265868d040c487111d1aa8885122808f000a5a4c708080c90310016c3c48924001020308a05449d0a2cc0402605aa4c99200c90101040448c0b321020302040c101a004151050e0f040d1000c0cc9546498244e9142bd48e609f8e049bd22bc8b367bd4255c876654000003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'jpg',"mime"=>'image/jpeg',"friendly"=>'JPEG image',"image"=>pack('H*','47494638396110001000f7000096f6f569c8ca5dcdcec283627c3d1c7d3c1c7ac2c174c4c596f5f7c38262a9c9c893fbe4a2b3a390b8b898ba9900444591baaa008b1d65876696b5b7a7efeea3ebea7c3d1a7d3d1aa1f1f24c1c2c451e3d4c1d2fb08191b3839337a7a898b8a090baacb182946786678afafbb9c2c1bfc1c086beb51d75450b5a3b3ac2c297d7b216b6b4c3836063322b1e6d4eaac9cb49193f501f18a9c8ca4a1a4010989800643c32022817b7b5918f90ced0cf7dedee067f0e2d8555c2825f00281fdee0df091a0a87485095f4f66f3e3765856d7bffff4ababb0a7a7b70a090c1825f3d7d58166e3e7bc3c2c9e9e8d1e9d1581921218a62033b32003d1800222200633b5e8777005a43008282003112606968773840617961697271b9e3d5a4ccccbae3d3326252c283609ab99a00610079496f09a9a746070fa1b9a129412963838255b5b42848305d877928a130b283934e1e2e0d3d2dc2c0c113a93b0030203f1837c1bfc019b9b766ceb71d5d389bba9b7f4e47b18191c28161158e1d6f807075c5c6d0cecf4b1c2c0044252a9a9b049a2c744d6c00512969c9c8b18292b282924c1d2d4d1d2d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000021f90400000000002c00000000100010000008ff00cd6829508000810b172c58206870488b2741f824183080458f3049124c1ca02786220e150c1c3a1420c0c8037f985448b448112203140000402044e6030c140cb074190041911423462cb8b3e40480433b11f5bc42c3888e0556789c5073a8434b44028edcb09385c4981d82506038d0e18d4b011e569421c1a54f1b17581e1cd8c9016d1a0567d0c88940a5860f1349050c52d0c4c9164211a0188a0278d186101364fcc8010887142560e04c69c0f2f18417254ac4a9a302cf1c245e385f8550458204112288ac01e2870d089681107d81e0c081983c1f3e306000a2cb9e451a0a254a8408d1f2e6cbdd202203838e860c2d152dca8e5d91a219360202003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'doc',"mime"=>'application/msword',"friendly"=>'Microsoft Word document',"image"=>pack('H*','47494638396110001000f7000000000000ffff848484c6c6c6ffffffffffc0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f90401000005002c0000000010001000000871000b081440b0a04181080b0820c0b02143010004029848b12200020b230208c071e3c68e042a16f0483200800128090cd068b2a3c9010c61ae1ce9d2a44a992a59b6b49952a6c689102fdeec1971a0c3a339112e44c9946952a3481bce842ad5e9548551a51655d8b42bcaad412d5a0c08003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'txt',"mime"=>'text/plain',"friendly"=>'Platte tekst',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c000000001000100000044c904909aab57302640cf74695014e699ac0014c86d3bd6da85225dc3ae9ccdc679dafa41eea405cf17ab262508823168fa7e44375a9e69c2b8d738b1d71898f6996f2dd8e19d72fe28cb66222003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'xls',"mime"=>'application/vnd.ms-excel',"friendly"=>'Excel Workbook',"image"=>pack('H*','47494638396110001000f7000000000000848400ffff848484c6c6c6ffffffffffc0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f90401000006002c0000000010001000000873000d081c40b0a04181080d0c28c0b021c30100040298c8702200870b230210206022c78b0d2d6afc089180c993050868dcd8d12201862f5502081080e54c0027638af4d8f265ca9411078acca913e1c2983f1baa349a12254ca04c91fe2c3ab0a949ab50ab3adcba7420d1af4115ee1c0b2020003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'mp3',"mime"=>'audio/mpeg',"friendly"=>'MP3 audio',"image"=>pack('H*','47494638396110001000f70000000000848400848484c6c6c6ffff00ffffffffffc0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f90401000006002c0000000010001000000869000d081c38100000820809061000404042840108001840f1a1c08802040c28e0f061c402130b704c18e0a3c48d231516d848002400911d07461cd0f2e4cb981709b004993165c185350dc24c68f063489f0801443c8a33e94201432d1a507a53eacf86560b1e241810003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'gif',"mime"=>'image/gif',"friendly"=>'GIF afbeelding',"image"=>pack('H*','47494638396110001000f7000096f6f569c8ca5dcdcec283627c3d1c7d3c1c7ac2c174c4c596f5f7c38262a9c9c893fbe4a2b3a390b8b898ba9900444591baaa008b1d65876696b5b7a7efeea3ebea7c3d1a7d3d1aa1f1f24c1c2c451e3d4c1d2fb08191b3839337a7a898b8a090baacb182946786678afafbb9c2c1bfc1c086beb51d75450b5a3b3ac2c297d7b216b6b4c3836063322b1e6d4eaac9cb49193f501f18a9c8ca4a1a4010989800643c32022817b7b5918f90ced0cf7dedee067f0e2d8555c2825f00281fdee0df091a0a87485095f4f66f3e3765856d7bffff4ababb0a7a7b70a090c1825f3d7d58166e3e7bc3c2c9e9e8d1e9d1581921218a62033b32003d1800222200633b5e8777005a43008282003112606968773840617961697271b9e3d5a4ccccbae3d3326252c283609ab99a00610079496f09a9a746070fa1b9a129412963838255b5b42848305d877928a130b283934e1e2e0d3d2dc2c0c113a93b0030203f1837c1bfc019b9b766ceb71d5d389bba9b7f4e47b18191c28161158e1d6f807075c5c6d0cecf4b1c2c0044252a9a9b049a2c744d6c00512969c9c8b18292b282924c1d2d4d1d2d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000021f90400000000002c00000000100010000008ff00cd6829508000810b172c58206870488b2741f824183080458f3049124c1ca02786220e150c1c3a1420c0c8037f985448b448112203140000402044e6030c140cb074190041911423462cb8b3e40480433b11f5bc42c3888e0556789c5073a8434b44028edcb09385c4981d82506038d0e18d4b011e569421c1a54f1b17581e1cd8c9016d1a0567d0c88940a5860f1349050c52d0c4c9164211a0188a0278d186101364fcc8010887142560e04c69c0f2f18417254ac4a9a302cf1c245e385f8550458204112288ac01e2870d089681107d81e0c081983c1f3e306000a2cb9e451a0a254a8408d1f2e6cbdd202203838e860c2d152dca8e5d91a219360202003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'pdf',"mime"=>'application/pdf',"friendly"=>'PDF document',"image"=>pack('H*','47494638396110001000f70000000000080808848484b5b5b5c6c6c6dededeff3100ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f90401000007002c000000001000100040086a000f080440b0a0410002130628c0b0c00001031a162068a0a2458b0024221ce810a2c4860743660c5071e381850d0744d4a8b02181880f550e30194080808f2c39e22c401221808b404706182ad260ce931209dc3c8a92a100a54c192a95f9d026cdaa3b272a2c6a3020003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'bmp',"mime"=>'image/bmp',"friendly"=>'Bitmap image',"image"=>pack('H*','47494638396111001000f700000000000000840000ff00848400ffff5252526363637373738400008484008484849494949c9c9ca5a5a5b5b5b5c6c6c6ce0063d6d6d6dededeefefeff7f7f7ff0000ffff00ffffffffffc0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f90401000018002c000000001100100000089a0031081c68400180820006124c28b00000000e1962608850a0820b00063c6008c0200603143c5640909140000c09303254f04000809125032478e0716080010220901ca020818504126d0ed099d127508516151c50a094e9d29a032f5eb830418283070f9606b548b3e901030f915a9c3021c283060c1480158be162d9b369d78a95fa7681daad16a7be6d70972d5db368e58a7d4898b0c28000003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'wav',"mime"=>'audio/WAV',"friendly"=>'Wave audio',"image"=>pack('H*','47494638396110001000f70000000000848400848484c6c6c6ffff00ffffffffffc0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f90401000006002c0000000010001000000869000d081c38100000820809061000404042840108001840f1a1c08802040c28e0f061c402130b704c18e0a3c48d231516d848002400911d07461cd0f2e4cb981709b004993165c185350dc24c68f063489f0801443c8a33e94201432d1a507a53eacf86560b1e241810003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'dwg',"mime"=>'image/VND.DWG',"friendly"=>'Autocad tekening',"image"=>pack('H*','47494638396110001000f70000ffffffffffccffff99ffff66ffff33ffff00ffccffffccccffcc99ffcc66ffcc33ffcc00ff99ffff99ccff9999ff9966ff9933ff9900ff66ffff66ccff6699ff6666ff6633ff6600ff33ffff33ccff3399ff3366ff3333ff3300ff00ffff00ccff0099ff0066ff0033ff0000ccffffccffccccff99ccff66ccff33ccff00ccccffcccccccccc99cccc66cccc33cccc00cc99ffcc99cccc9999cc9966cc9933cc9900cc66ffcc66cccc6699cc6666cc6633cc6600cc33ffcc33cccc3399cc3366cc3333cc3300cc00ffcc00cccc0099cc0066cc0033cc000099ffff99ffcc99ff9999ff6699ff3399ff0099ccff99cccc99cc9999cc6699cc3399cc009999ff9999cc9999999999669999339999009966ff9966cc9966999966669966339966009933ff9933cc9933999933669933339933009900ff9900cc99009999006699003399000066ffff66ffcc66ff9966ff6666ff3366ff0066ccff66cccc66cc9966cc6666cc3366cc006699ff6699cc6699996699666699336699006666ff6666cc6666996666666666336666006633ff6633cc6633996633666633336633006600ff6600cc66009966006666003366000033ffff33ffcc33ff9933ff6633ff3333ff0033ccff33cccc33cc9933cc6633cc3333cc003399ff3399cc3399993399663399333399003366ff3366cc3366993366663366333366003333ff3333cc3333993333663333333333003300ff3300cc33009933006633003333000000ffff00ffcc00ff9900ff6600ff3300ff0000ccff00cccc00cc9900cc6600cc3300cc000099ff0099cc0099990099660099330099000066ff0066cc0066990066660066330066000033ff0033cc0033990033660033330033000000ff0000cc000099000066000033000000ad0b10ae262eb5848779020dd50918e81626a94950d06f76f74657f9354cfef3f5fffbfcffeefafef5ff403c43f1f5f9f1fffb2b4037e4faefedfff6ccd6c751564ef6fcf2c5cebbdde3d5f1f4e3fdfef68080732a2823ae9c90b65721e8d7cfede5e3cfada7714e4ae14540fe7673492424faebebffffff21f904010000ff002c00000000100010000008e300ff091c48b0e0bf7ef45899a367ce9c42560c150a0cc4ee1dbc8befd8ad8877ef1ebe7c02dbad9b4792a4959281e6f5bb764ddfb947dbd660c3b6a626b72333d53c0ae4ef91b76ce0f865dbb7af5bb870d9bc6d0b34ee510e6cfc1e54b060e1080770ddbc3d6a27ef11196e15ca04a980cd2a366e5a03ad7bf48d1f3f7b651e48ade036dfb576e8667d2be340ee0c1d418862d337ab9dbf6d64ba710337a2db086edcbcd29b1508dfb61cdcc281e3d68d83e76dd9ea414cd7af4bb61ffc8c800377ba5fbe4003fbf5dbb60dc84c6cb4116923488f5ebb84be03b50b04dba0f1820101003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'exe',"mime"=>'application/octet-stream',"friendly"=>'Application',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c000000001000100000044b90c9492b4338eb8d8fffe08700c8419c687a8ea54a3c000cb3076793c7a3efbc4ef383418cf7db011642226e37586000835d5107382c86be250f80cd967ae007cb76e39acf68ae653d8900003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'url',"mime"=>'application/octet-stream',"friendly"=>'Hyperlink',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000d002c0000000010001000000458b049446b9578becddf4199d66dc7036608c7301be00219b132c4c392b0440ccb5c7387dcaeb791fd3c39decc07840d0ec651b33118c81807286d3a6000aeab2352c27a01529d208681968e3188ac7caec698efaf905e1f01003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'zip',"mime"=>'application/x-zip-compressed',"friendly"=>'Winzip archive',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c000000001000100000044b90c9c980bd80527050ff997455d87564c0322cc0e3be0f80a0eb505af159a97ccdc6b38a6fd8e2a07ac8621030ec1575a9e64a89badd741a8e67db0965ad9a700521de58662331060d8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'html',"mime"=>'text/HTML',"friendly"=>'HTML pagina',"image"=>pack('H*','47494638396110001000f700000000000000840000ff00840000848400ffff848484c6c6c6ffff00ffffffffffc0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f9040100000a002c000000001000100000087e0015081c48b0e040030813223428d0408204081e265868d040c487111d1aa8885122808f000a5a4c708080c90310016c3c48924001020308a05449d0a2cc0402605aa4c99200c90101040448c0b321020302040c101a004151050e0f040d1000c0cc9546498244e9142bd48e609f8e049bd22bc8b367bd4255c876654000003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'htm',"mime"=>'text/HTML',"friendly"=>'HTML page',"image"=>pack('H*','47494638396110001000f700000000000000840000ff00840000848400ffff848484c6c6c6ffff00ffffffffffc0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f9040100000a002c000000001000100000087e0015081c48b0e040030813223428d0408204081e265868d040c487111d1aa8885122808f000a5a4c708080c90310016c3c48924001020308a05449d0a2cc0402605aa4c99200c90101040448c0b321020302040c101a004151050e0f040d1000c0cc9546498244e9142bd48e609f8e049bd22bc8b367bd4255c876654000003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'tar',"mime"=>'application/X-TAR',"friendly"=>'Tarbal archief',"image"=>pack('H*','47494638396110001000f70000000000848400848484c6c6c6ffff00ffffffffffc0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f90401000006002c000000001000100000086a000d081c08a0a0410003131a00304040c38708051a5c78d0e000840008042000a080c78f050008c0b83140c582212f2ed4c8b224c7902317ba9cd99121c696386bc60430b3654d95197b6ed489f1e449950a193a5cda306252a30aa32e142035a1c19113a51ec48a3020003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'reg',"mime"=>'application/octet-stream',"friendly"=>'Windows register file',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c000000001000100000045390c93911bd173d8031328ec1599df4018fc65548dba25fb87ec6f38806029ca6b3f938806806141a86c215432303386fc9ca51086d2a11c0e254547984bcc8a8e948aec9b8bd5b16aa5c82dfb28b734e6f4b22003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'psd',"mime"=>'application/octet-stream',"friendly"=>'Adobe photoshop image',"image"=>pack('H*','47494638396110001000f70000000000080808848484b5b5b5c6c6c6dededeff3100ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f90401000007002c000000001000100040086a000f080440b0a0410002130628c0b0c00001031a162068a0a2458b0024221ce810a2c4860743660c5071e381850d0744d4a8b02181880f550e30194080808f2c39e22c401221808b404706182ad260ce931209dc3c8a92a100a54c192a95f9d026cdaa3b272a2c6a3020003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'csv',"mime"=>'application/octet-stream',"friendly"=>'Comma Separated Values',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'mpe',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000f7000000000000008400848400ffff848484c6c6c6ff0000ffff84ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f90401000007002c000000001000100000087b000f083c40a0a0418303131240c0b021820204120a5ce8906101041115566408a023008d1b2d0210309062c80223050c10c0b2a5008605510ae838a026809a3305100080f2a3c79b386fa244295065cda33347f2fc784080019b0300040080a023d1033f3b4ea52a12e449a61343762d59a0acd9b360b1665d1b10003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'mpg',"mime"=>'application/OCTET-STREAM',"friendly"=>'MPEG Video Clip',"image"=>pack('H*','47494638396110001000f7000000000000008400848400ffff848484c6c6c6ff0000ffff84ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f90401000007002c000000001000100000087b000f083c40a0a0418303131240c0b021820204120a5ce8906101041115566408a023008d1b2d0210309062c80223050c10c0b2a5008605510ae838a026809a3305100080f2a3c79b386fa244295065cda33347f2fc784080019b0300040080a023d1033f3b4ea52a12e449a61343762d59a0acd9b360b1665d1b10003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'PCX',"mime"=>'application/octet-stream',"friendly"=>'PCX image',"image"=>pack('H*','47494638396110001000f7000096f6f569c8ca5dcdcec283627c3d1c7d3c1c7ac2c174c4c596f5f7c38262a9c9c893fbe4a2b3a390b8b898ba9900444591baaa008b1d65876696b5b7a7efeea3ebea7c3d1a7d3d1aa1f1f24c1c2c451e3d4c1d2fb08191b3839337a7a898b8a090baacb182946786678afafbb9c2c1bfc1c086beb51d75450b5a3b3ac2c297d7b216b6b4c3836063322b1e6d4eaac9cb49193f501f18a9c8ca4a1a4010989800643c32022817b7b5918f90ced0cf7dedee067f0e2d8555c2825f00281fdee0df091a0a87485095f4f66f3e3765856d7bffff4ababb0a7a7b70a090c1825f3d7d58166e3e7bc3c2c9e9e8d1e9d1581921218a62033b32003d1800222200633b5e8777005a43008282003112606968773840617961697271b9e3d5a4ccccbae3d3326252c283609ab99a00610079496f09a9a746070fa1b9a129412963838255b5b42848305d877928a130b283934e1e2e0d3d2dc2c0c113a93b0030203f1837c1bfc019b9b766ceb71d5d389bba9b7f4e47b18191c28161158e1d6f807075c5c6d0cecf4b1c2c0044252a9a9b049a2c744d6c00512969c9c8b18292b282924c1d2d4d1d2d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000021f90400000000002c00000000100010000008ff00cd6829508000810b172c58206870488b2741f824183080458f3049124c1ca02786220e150c1c3a1420c0c8037f985448b448112203140000402044e6030c140cb074190041911423462cb8b3e40480433b11f5bc42c3888e0556789c5073a8434b44028edcb09385c4981d82506038d0e18d4b011e569421c1a54f1b17581e1cd8c9016d1a0567d0c88940a5860f1349050c52d0c4c9164211a0188a0278d186101364fcc8010887142560e04c69c0f2f18417254ac4a9a302cf1c245e385f8550458204112288ac01e2870d089681107d81e0c081983c1f3e306000a2cb9e451a0a254a8408d1f2e6cbdd202203838e860c2d152dca8e5d91a219360202003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'tif',"mime"=>'application/octet-stream',"friendly"=>'TIF afbeelding',"image"=>pack('H*','47494638396110001000f7000096f6f569c8ca5dcdcec283627c3d1c7d3c1c7ac2c174c4c596f5f7c38262a9c9c893fbe4a2b3a390b8b898ba9900444591baaa008b1d65876696b5b7a7efeea3ebea7c3d1a7d3d1aa1f1f24c1c2c451e3d4c1d2fb08191b3839337a7a898b8a090baacb182946786678afafbb9c2c1bfc1c086beb51d75450b5a3b3ac2c297d7b216b6b4c3836063322b1e6d4eaac9cb49193f501f18a9c8ca4a1a4010989800643c32022817b7b5918f90ced0cf7dedee067f0e2d8555c2825f00281fdee0df091a0a87485095f4f66f3e3765856d7bffff4ababb0a7a7b70a090c1825f3d7d58166e3e7bc3c2c9e9e8d1e9d1581921218a62033b32003d1800222200633b5e8777005a43008282003112606968773840617961697271b9e3d5a4ccccbae3d3326252c283609ab99a00610079496f09a9a746070fa1b9a129412963838255b5b42848305d877928a130b283934e1e2e0d3d2dc2c0c113a93b0030203f1837c1bfc019b9b766ceb71d5d389bba9b7f4e47b18191c28161158e1d6f807075c5c6d0cecf4b1c2c0044252a9a9b049a2c744d6c00512969c9c8b18292b282924c1d2d4d1d2d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000021f90400000000002c00000000100010000008ff00cd6829508000810b172c58206870488b2741f824183080458f3049124c1ca02786220e150c1c3a1420c0c8037f985448b448112203140000402044e6030c140cb074190041911423462cb8b3e40480433b11f5bc42c3888e0556789c5073a8434b44028edcb09385c4981d82506038d0e18d4b011e569421c1a54f1b17581e1cd8c9016d1a0567d0c88940a5860f1349050c52d0c4c9164211a0188a0278d186101364fcc8010887142560e04c69c0f2f18417254ac4a9a302cf1c245e385f8550458204112288ac01e2870d089681107d81e0c081983c1f3e306000a2cb9e451a0a254a8408d1f2e6cbdd202203838e860c2d152dca8e5d91a219360202003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'pps',"mime"=>'application/VND.MS-POWERPOINT',"friendly"=>'Powerpoint presentation',"image"=>pack('H*','47494638396110001000e64200e09d80ec9a74ea9a79707070c7a697de9e856b1c00feffffa7471fdf9e7e7f7f7fdee0dffff7e8fefefe6a5042b34313fff8e6dedede3c3c3ca74717bebebe1f1f1f90573bca6a42a94919727272717171ffd7af909090ffefd69b4a2cee9d7fc6a7959b4c23d66636be6e4d606062fff7e5ea9b72bfbfbfb27259c7a896ffeacc6161639b9b9b8888882020205737286747385757579a492b5f5f5fff9262601f00020202684e429d4b25a84816a84818f79765606060efefeff797679c9c9cdfdfdfffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000021f90401000042002c00000000100010000007a7804242412f25100c0c418a411a82420e0e3730292004040d8b1c1582183e3b3b02023e3a40a54114272e423a3e393923a23a11a60a0a2d36393b280522343e138bc13cb91d050f0fa3c18b3cac1f2a1b173b393da5a641cc3e321e0808d2d4d58a3321260909000001388a07078b2b06063516e70101d40b0b408a248e038b3ddf4a61e2e12883b2830405f95304b09abe6bfd0e2a4b2844c28f8b182fb2b818c391c78f1e0301003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'mpeg',"mime"=>'application/OCTET-STREAM',"friendly"=>'MPEG Video Clip',"image"=>pack('H*','47494638396110001000f7000000000000008400848400ffff848484c6c6c6ff0000ffff84ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f90401000007002c000000001000100000087b000f083c40a0a0418303131240c0b021820204120a5ce8906101041115566408a023008d1b2d0210309062c80223050c10c0b2a5008605510ae838a026809a3305100080f2a3c79b386fa244295065cda33347f2fc784080019b0300040080a023d1033f3b4ea52a12e449a61343762d59a0acd9b360b1665d1b10003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'avi',"mime"=>'application/OCTET-STREAM',"friendly"=>'AVI Video Clip',"image"=>pack('H*','47494638396110001000f70000000000848484c6c6c6ff0000ffff84ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f90401000004002c00000000100010000008700009082410a0a0418303130628c0b061010101120a5ce890a180021115566408a023008d1b2d02c84830a4c882100f166488726447013001c00c3092a6808e043cca9c09e0a1cc8f04610a85d8d126d0000362dea459e025509d501bde041972ea408a55814e1ccad5aa40a860010404003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'tgz',"mime"=>'application/X-GZIP-COMPRESSED',"friendly"=>'Tarbal gecomprimeerd archief',"image"=>pack('H*','47494638396110001000f70000000000848400848484c6c6c6ffff00ffffffffffc0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f90401000006002c000000001000100000086a000d081c08a0a0410003131a00304040c38708051a5c78d0e000840008042000a080c78f050008c0b83140c582212f2ed4c8b224c7902317ba9cd99121c696386bc60430b3654d95197b6ed489f1e449950a193a5cda306252a30aa32e142035a1c19113a51ec48a3020003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'asf',"mime"=>'application/OCTET-STREAM',"friendly"=>'ASF video clip',"image"=>pack('H*','47494638396110001000f70000000000848484c6c6c6ff0000ffff84ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f90401000004002c00000000100010000008700009082410a0a0418303130628c0b061010101120a5ce890a180021115566408a023008d1b2d02c84830a4c882100f166488726447013001c00c3092a6808e043cca9c09e0a1cc8f04610a85d8d126d0000362dea459e025509d501bde041972ea408a55814e1ccad5aa40a860010404003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'php',"mime"=>'text/PLAIN',"friendly"=>'PHP web page',"image"=>pack('H*','47494638396110001000f700000000000000840000ff00840000848400ffff848400848484c6c6c6ffff00ffffffffffc0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f9040100000b002c00000000100010000008920017081478a0a0418303131e50904081c3040b0f2424e890a1c3850a242ab4581180470013312a4040922102901b111c2840a0e04894030f40248060c0800324611ad86900a70002377182dc09200100031e0710081020e7020309a246451a60e9c2933b132085fab1a9c9a351011c28aa150047ac50b71af55831c1c9a752a77a244917e4d1a277c57efc3870efc4840101003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'bas',"mime"=>'text/plain',"friendly"=>'text/plain',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'scr',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'vcf',"mime"=>'text/PLAIN',"friendly"=>'text/PLAIN',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'sim',"mime"=>'text/plain',"friendly"=>'text/plain',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'sh',"mime"=>'text/PLAIN',"friendly"=>'text/PLAIN',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'jpeg',"mime"=>'application/OCTET-STREAM',"friendly"=>'JPEG image',"image"=>pack('H*','47494638396110001000f7000096f6f569c8ca5dcdcec283627c3d1c7d3c1c7ac2c174c4c596f5f7c38262a9c9c893fbe4a2b3a390b8b898ba9900444591baaa008b1d65876696b5b7a7efeea3ebea7c3d1a7d3d1aa1f1f24c1c2c451e3d4c1d2fb08191b3839337a7a898b8a090baacb182946786678afafbb9c2c1bfc1c086beb51d75450b5a3b3ac2c297d7b216b6b4c3836063322b1e6d4eaac9cb49193f501f18a9c8ca4a1a4010989800643c32022817b7b5918f90ced0cf7dedee067f0e2d8555c2825f00281fdee0df091a0a87485095f4f66f3e3765856d7bffff4ababb0a7a7b70a090c1825f3d7d58166e3e7bc3c2c9e9e8d1e9d1581921218a62033b32003d1800222200633b5e8777005a43008282003112606968773840617961697271b9e3d5a4ccccbae3d3326252c283609ab99a00610079496f09a9a746070fa1b9a129412963838255b5b42848305d877928a130b283934e1e2e0d3d2dc2c0c113a93b0030203f1837c1bfc019b9b766ceb71d5d389bba9b7f4e47b18191c28161158e1d6f807075c5c6d0cecf4b1c2c0044252a9a9b049a2c744d6c00512969c9c8b18292b282924c1d2d4d1d2d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000021f90400000000002c00000000100010000008ff00cd6829508000810b172c58206870488b2741f824183080458f3049124c1ca02786220e150c1c3a1420c0c8037f985448b448112203140000402044e6030c140cb074190041911423462cb8b3e40480433b11f5bc42c3888e0556789c5073a8434b44028edcb09385c4981d82506038d0e18d4b011e569421c1a54f1b17581e1cd8c9016d1a0567d0c88940a5860f1349050c52d0c4c9164211a0188a0278d186101364fcc8010887142560e04c69c0f2f18417254ac4a9a302cf1c245e385f8550458204112288ac01e2870d089681107d81e0c081983c1f3e306000a2cb9e451a0a254a8408d1f2e6cbdd202203838e860c2d152dca8e5d91a219360202003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'xkr',"mime"=>'application/octet-stream',"friendly"=>'application/octet-stream',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'dat',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'wmv',"mime"=>'video/X-MS-WMV',"friendly"=>'Windows Media Video',"image"=>pack('H*','47494638396110001000f7000000000000008400848400ffff848484c6c6c6ff0000ffff84ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f90401000007002c000000001000100000087b000f083c40a0a0418303131240c0b021820204120a5ce8906101041115566408a023008d1b2d0210309062c80223050c10c0b2a5008605510ae838a026809a3305100080f2a3c79b386fa244295065cda33347f2fc784080019b0300040080a023d1033f3b4ea52a12e449a61343762d59a0acd9b360b1665d1b10003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'inc',"mime"=>'text/plain',"friendly"=>'PHP inclusion',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'sql',"mime"=>'text/plain',"friendly"=>'SQL file',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c000000001000100000044c904909aab57302640cf74695014e699ac0014c86d3bd6da85225dc3ae9ccdc679dafa41eea405cf17ab262508823168fa7e44375a9e69c2b8d738b1d71898f6996f2dd8e19d72fe28cb66222003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'ppt',"mime"=>'application/vnd.ms-powerpoint',"friendly"=>'Powerpoint presentation',"image"=>pack('H*','47494638396110001000f7000000000000ffff840000848484c6c6c6ffffffffffc0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f90401000006002c0000000010001000000870000d081c40b0a04181080d0c28c0b0214382030d1a6cb8708042870d016404c0712101830400101849a040c88a020208181012e3c9020304a4642992a4490015416a74f89224c99a236f0ee04894a84b0008179a34e9f366528c479f2ef55932a454a80cad0ea4ca15e9c0a260890604003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'',"mime"=>'',"friendly"=>'Onbekend',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'db',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000f70000000000848400848484c6c6c6ffff00ffffffffffc0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f90401000006002c0000000010001000000878000d081440b0a04181080d0828c0b02143010010028008c061c385110110d81800c0808f1f0b001839918046932043321c3032c046930e07346439314000013057cecc389220ca940558228428c0a5479041230e1459b4a24ea14b457a9c9974a8ce9855a3a6440a55a1458b5d056c1dab5421c9b3680302003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'tpl',"mime"=>'application/OCTET-STREAM',"friendly"=>'Template file',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'css',"mime"=>'text/css',"friendly"=>'Custom Style Sheet',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'lock',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'cfg',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'conf',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'deny',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'misc',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'pal',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'save',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'net',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'defs',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'rc',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'jar',"mime"=>'Array',"friendly"=>'Java source file',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'png',"mime"=>'image/png',"friendly"=>'image/png',"image"=>pack('H*','47494638396111001000f700000000000000840000ff00848400ffff5252526363637373738400008484008484849494949c9c9ca5a5a5b5b5b5c6c6c6ce0063d6d6d6dededeefefeff7f7f7ff0000ffff00ffffffffffc0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f90401000018002c000000001100100000089a0031081c68400180820006124c28b00000000e1962608850a0820b00063c6008c0200603143c5640909140000c09303254f04000809125032478e0716080010220901ca020818504126d0ed099d127508516151c50a094e9d29a032f5eb830418283070f9606b548b3e901030f915a9c3021c283060c1480158be162d9b369d78a95fa7681daad16a7be6d70972d5db368e58a7d4898b0c28000003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'cnf',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'bak',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'ini',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'old',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'key',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'cron',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'xterm',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'login',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'modes',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'cshrc',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'allow',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'cache',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'perms',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'types',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'users',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'local',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'js',"mime"=>'application/x-javascript',"friendly"=>'application/x-javascript',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'exp',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'xml',"mime"=>'text/xml',"friendly"=>'XML file',"image"=>pack('H*','47494638396110001000f7000000000000008400009c0000ff00848431639c3163ff319c00319cff31ceff31ffff848484a5cef7c6c6c6f7f7f7ffff84ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f9040100000f002c00000000100010000008830017081c4850e083830f164058c8b06183050815365ce800828306102026a468b163450020016c74c0a0220102062c96842052210301100840508020000401255bbeb44840418203012ae26c0961a701040706d8c4e98028c98a01a2aafcb8d1a3d58a4d4716d8ca952b558958af5a74dab5ec578e61d33a151b5664c8b770433e0808003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'pl',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'jpe',"mime"=>'image/jpeg',"friendly"=>'JPEG image',"image"=>pack('H*','47494638396111001000f700000000000000840000ff00848400ffff5252526363637373738400008484008484849494949c9c9ca5a5a5b5b5b5c6c6c6ce0063d6d6d6dededeefefeff7f7f7ff0000ffff00ffffffffffc0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f90401000018002c000000001100100000089a0031081c68400180820006124c28b00000000e1962608850a0820b00063c6008c0200603143c5640909140000c09303254f04000809125032478e0716080010220901ca020818504126d0ed099d127508516151c50a094e9d29a032f5eb830418283070f9606b548b3e901030f915a9c3021c283060c1480158be162d9b369d78a95fa7681daad16a7be6d70972d5db368e58a7d4898b0c28000003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'lnk',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'wmf',"mime"=>'application/OCTET-STREAM',"friendly"=>'Windows Media File',"image"=>pack('H*','47494638396110001000f70000000000848484c6c6c6ff0000ffff84ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f90401000004002c00000000100010000008700009082410a0a0418303130628c0b061010101120a5ce890a180021115566408a023008d1b2d02c84830a4c882100f166488726447013001c00c3092a6808e043cca9c09e0a1cc8f04610a85d8d126d0000362dea459e025509d501bde041972ea408a55814e1ccad5aa40a860010404003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'JOB',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'jof',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'pm4',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'dxf',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'dft',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'asm',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'par',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'dmp',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'frm',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'frx',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'cls',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'PDM',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'vbp',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'vbw',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'ICO',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'SCC',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'log',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'tlb',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'dll',"mime"=>'application/octet-stream',"friendly"=>'application/octet-stream',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'OCX',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'BAT',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'DDF',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'Lst',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'CAB',"mime"=>'application/OCTET-STREAM',"friendly"=>'Windows cabinet archive',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'mdb',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000f70000000000848400848484c6c6c6ffff00ffffffffffc0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f90401000006002c0000000010001000000878000d081440b0a04181080d0828c0b02143010010028008c061c385110110d81800c0808f1f0b001839918046932043321c3032c046930e07346439314000013057cecc389220ca940558228428c0a5479041230e1459b4a24ea14b457a9c9974a8ce9855a3a6440a55a1458b5d056c1dab5421c9b3680302003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'dist',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'hist',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'rar',"mime"=>'application/OCTET-STREAM',"friendly"=>'WinRAR archive',"image"=>pack('H*','47494638396110001000f70000000000848400848484c6c6c6ffff00ffffffffffc0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f90401000006002c000000001000100000086a000d081c08a0a0410003131a00304040c38708051a5c78d0e000840008042000a080c78f050008c0b83140c582212f2ed4c8b224c7902317ba9cd99121c696386bc60430b3654d95197b6ed489f1e449950a193a5cda306252a30aa32e142035a1c19113a51ec48a3020003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'fla',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'swf',"mime"=>'application/x-shockwave-flash',"friendly"=>'application/x-shockwave-flash',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'en',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'jis',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'fig',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'tsv',"mime"=>'text/tab-separated-values',"friendly"=>'text/tab-separated-values',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'wml',"mime"=>'text/vnd.wap.wml',"friendly"=>'text/vnd.wap.wml',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'cgi',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'fr',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'mov',"mime"=>'application/OCTET-STREAM',"friendly"=>'Movie clip',"image"=>pack('H*','47494638396110001000f70000000000848484c6c6c6ff0000ffff84ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f90401000004002c00000000100010000008700009082410a0a0418303130628c0b061010101120a5ce890a180021115566408a023008d1b2d02c84830a4c882100f166488726447013001c00c3092a6808e043cca9c09e0a1cc8f04610a85d8d126d0000362dea459e025509d501bde041972ea408a55814e1ccad5aa40a860010404003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'gz',"mime"=>'application/x-gzip',"friendly"=>'Gzip compressed archive',"image"=>pack('H*','47494638396110001000f70000000000848400848484c6c6c6ffff00ffffffffffc0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f90401000006002c000000001000100000086a000d081c08a0a0410003131a00304040c38708051a5c78d0e000840008042000a080c78f050008c0b83140c582212f2ed4c8b224c7902317ba9cd99121c696386bc60430b3654d95197b6ed489f1e449950a193a5cda306252a30aa32e142035a1c19113a51ec48a3020003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'rpm',"mime"=>'application/x-rpm',"friendly"=>'RPM Package',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'ai',"mime"=>'application/postscript',"friendly"=>'Adobe Illustrator file',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'eml',"mime"=>'message/RFC822',"friendly"=>'message/RFC822',"image"=>pack('H*','47494638396110001000c4ff00ffffff00ffffc0c0c080808000808000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000021f90401000002002c0000000010001000400537a0208e64290c400a146cabae432ccf7481bef85b98fc88ba39002160d3b558ba9e72c95cde82aa61111a254ca9aa2b7675ec7a77cd5108003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'aspx',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'cs',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'resx',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'ascx',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'err',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'ils',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'xdp',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'trc',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'sam',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'rtf',"mime"=>'text/RICHTEXT',"friendly"=>'Rich text format',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'rnd',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'map',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'ja',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'0',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'h',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'b',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'img',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'pif',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'abw',"mime"=>'application/ABIWORD',"friendly"=>'application/ABIWORD',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'ps',"mime"=>'application/POSTSCRIPT',"friendly"=>'application/POSTSCRIPT',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'dir',"mime"=>'application/x-director',"friendly"=>'application/x-director',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'adr',"mime"=>'application/octet-stream',"friendly"=>'application/octet-stream',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'sxw',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'plt',"mime"=>'Array',"friendly"=>'Array',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
$oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'(n/a)',"mime"=>'Directory',"friendly"=>'Directory',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
}
?>

View File

@ -1,77 +1,66 @@
<?php <?php
/**************************************************************************\ /**
* eGroupWare - phpgwapi setup * * eGroupWare - API Setup
* http://www.egroupware.org * *
* -------------------------------------------- * * @link http://www.egroupware.org
* This program is free software; you can redistribute it and/or modify it * * @package api
* under the terms of the GNU General Public License as published by the * * @subpackage setup
* Free Software Foundation; either version 2 of the License, or (at your * * @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
* option) any later version. * * @version $Id$
\**************************************************************************/ */
// $Id$
/* Basic information about this app */
$setup_info['phpgwapi']['name'] = 'phpgwapi';
$setup_info['phpgwapi']['title'] = 'eGroupWare API';
$setup_info['phpgwapi']['version'] = '1.5.006';
$setup_info['phpgwapi']['versions']['current_header'] = '1.28';
$setup_info['phpgwapi']['enable'] = 3;
$setup_info['phpgwapi']['app_order'] = 1;
/* The tables this app creates */
$setup_info['phpgwapi']['tables'][] = 'egw_config';
$setup_info['phpgwapi']['tables'][] = 'egw_applications';
$setup_info['phpgwapi']['tables'][] = 'egw_acl';
$setup_info['phpgwapi']['tables'][] = 'egw_accounts';
$setup_info['phpgwapi']['tables'][] = 'egw_preferences';
$setup_info['phpgwapi']['tables'][] = 'egw_sessions';
$setup_info['phpgwapi']['tables'][] = 'egw_app_sessions';
$setup_info['phpgwapi']['tables'][] = 'egw_access_log';
$setup_info['phpgwapi']['tables'][] = 'egw_hooks';
$setup_info['phpgwapi']['tables'][] = 'egw_languages';
$setup_info['phpgwapi']['tables'][] = 'egw_lang';
$setup_info['phpgwapi']['tables'][] = 'egw_nextid';
$setup_info['phpgwapi']['tables'][] = 'egw_categories';
$setup_info['phpgwapi']['tables'][] = 'egw_log';
$setup_info['phpgwapi']['tables'][] = 'egw_log_msg';
$setup_info['phpgwapi']['tables'][] = 'egw_interserv';
$setup_info['phpgwapi']['tables'][] = 'egw_vfs';
$setup_info['phpgwapi']['tables'][] = 'egw_history_log';
$setup_info['phpgwapi']['tables'][] = 'egw_async';
$setup_info['phpgwapi']['tables'][] = 'egw_api_content_history';
$setup_info['phpgwapi']['tables'][] = 'phpgw_vfs2_mimetypes';
$setup_info['phpgwapi']['tables'][] = 'phpgw_vfs2_files';
$setup_info['phpgwapi']['tables'][] = 'phpgw_vfs2_customfields';
$setup_info['phpgwapi']['tables'][] = 'phpgw_vfs2_quota';
$setup_info['phpgwapi']['tables'][] = 'phpgw_vfs2_shares';
$setup_info['phpgwapi']['tables'][] = 'phpgw_vfs2_versioning';
$setup_info['phpgwapi']['tables'][] = 'phpgw_vfs2_customfields_data';
$setup_info['phpgwapi']['tables'][] = 'phpgw_vfs2_prefixes';
$setup_info['phpgwapi']['tables'][] = 'egw_links';
$setup_info['phpgwapi']['tables'][] = 'egw_addressbook';
$setup_info['phpgwapi']['tables'][] = 'egw_addressbook_extra';
$setup_info['phpgwapi']['tables'][] = 'egw_addressbook_lists';
$setup_info['phpgwapi']['tables'][] = 'egw_addressbook2list';
$setup_info['phpgwapi']['tables'][] = 'egw_sqlfs';
// hooks used by vfs_home_hooks to manage user- and group-directories for the new stream based VFS
$setup_info['phpgwapi']['hooks']['addaccount'] = 'phpgwapi.vfs_home_hooks.addAccount';
$setup_info['phpgwapi']['hooks']['deleteaccount'] = 'phpgwapi.vfs_home_hooks.deleteAccount';
$setup_info['phpgwapi']['hooks']['editaccount'] = 'phpgwapi.vfs_home_hooks.editAccount';
$setup_info['phpgwapi']['hooks']['addgroup'] = 'phpgwapi.vfs_home_hooks.addGroup';
$setup_info['phpgwapi']['hooks']['deletegroup'] = 'phpgwapi.vfs_home_hooks.deleteGroup';
$setup_info['phpgwapi']['hooks']['editgroup'] = 'phpgwapi.vfs_home_hooks.editGroup';
/* Basic information about this app */
$setup_info['notifywindow']['name'] = 'notifywindow';
$setup_info['notifywindow']['title'] = 'Notify Window';
$setup_info['notifywindow']['version'] = '1.0.0';
$setup_info['notifywindow']['enable'] = 2;
$setup_info['notifywindow']['app_order'] = 1;
$setup_info['notifywindow']['tables'] = '';
$setup_info['notifywindow']['hooks'][] = 'home';
/* Basic information about this app */
$setup_info['phpgwapi']['name'] = 'phpgwapi';
$setup_info['phpgwapi']['title'] = 'eGroupWare API';
$setup_info['phpgwapi']['version'] = '1.5.008';
$setup_info['phpgwapi']['versions']['current_header'] = '1.28';
$setup_info['phpgwapi']['enable'] = 3;
$setup_info['phpgwapi']['app_order'] = 1;
/* The tables this app creates */
$setup_info['phpgwapi']['tables'][] = 'egw_config';
$setup_info['phpgwapi']['tables'][] = 'egw_applications';
$setup_info['phpgwapi']['tables'][] = 'egw_acl';
$setup_info['phpgwapi']['tables'][] = 'egw_accounts';
$setup_info['phpgwapi']['tables'][] = 'egw_preferences';
$setup_info['phpgwapi']['tables'][] = 'egw_sessions';
$setup_info['phpgwapi']['tables'][] = 'egw_app_sessions';
$setup_info['phpgwapi']['tables'][] = 'egw_access_log';
$setup_info['phpgwapi']['tables'][] = 'egw_hooks';
$setup_info['phpgwapi']['tables'][] = 'egw_languages';
$setup_info['phpgwapi']['tables'][] = 'egw_lang';
$setup_info['phpgwapi']['tables'][] = 'egw_nextid';
$setup_info['phpgwapi']['tables'][] = 'egw_categories';
$setup_info['phpgwapi']['tables'][] = 'egw_log';
$setup_info['phpgwapi']['tables'][] = 'egw_log_msg';
$setup_info['phpgwapi']['tables'][] = 'egw_interserv';
$setup_info['phpgwapi']['tables'][] = 'egw_vfs';
$setup_info['phpgwapi']['tables'][] = 'egw_history_log';
$setup_info['phpgwapi']['tables'][] = 'egw_async';
$setup_info['phpgwapi']['tables'][] = 'egw_api_content_history';
$setup_info['phpgwapi']['tables'][] = 'egw_links';
$setup_info['phpgwapi']['tables'][] = 'egw_addressbook';
$setup_info['phpgwapi']['tables'][] = 'egw_addressbook_extra';
$setup_info['phpgwapi']['tables'][] = 'egw_addressbook_lists';
$setup_info['phpgwapi']['tables'][] = 'egw_addressbook2list';
$setup_info['phpgwapi']['tables'][] = 'egw_sqlfs';
$setup_info['phpgwapi']['tables'][] = 'egw_index';
$setup_info['phpgwapi']['tables'][] = 'egw_cat2entry';
$setup_info['phpgwapi']['tables'][] = 'egw_index_keywords';
// hooks used by vfs_home_hooks to manage user- and group-directories for the new stream based VFS
$setup_info['phpgwapi']['hooks']['addaccount'] = 'phpgwapi.vfs_home_hooks.addAccount';
$setup_info['phpgwapi']['hooks']['deleteaccount'] = 'phpgwapi.vfs_home_hooks.deleteAccount';
$setup_info['phpgwapi']['hooks']['editaccount'] = 'phpgwapi.vfs_home_hooks.editAccount';
$setup_info['phpgwapi']['hooks']['addgroup'] = 'phpgwapi.vfs_home_hooks.addGroup';
$setup_info['phpgwapi']['hooks']['deletegroup'] = 'phpgwapi.vfs_home_hooks.deleteGroup';
$setup_info['phpgwapi']['hooks']['editgroup'] = 'phpgwapi.vfs_home_hooks.editGroup';
/* Basic information about this app */
$setup_info['notifywindow']['name'] = 'notifywindow';
$setup_info['notifywindow']['title'] = 'Notify Window';
$setup_info['notifywindow']['version'] = '1.0.0';
$setup_info['notifywindow']['enable'] = 2;
$setup_info['notifywindow']['app_order'] = 1;
$setup_info['notifywindow']['tables'] = '';
$setup_info['notifywindow']['hooks'][] = 'home';

File diff suppressed because it is too large Load Diff

View File

@ -1,274 +1,366 @@
<?php <?php
/**************************************************************************\ /**
* eGroupWare - Setup * * eGroupWare - API Setup
* http://www.egroupware.org * *
* -------------------------------------------- * * Update scripts 1.4 --> 1.6
* 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 * * @link http://www.egroupware.org
* Free Software Foundation; either version 2 of the License, or (at your * * @package api
* option) any later version. * * @subpackage setup
\**************************************************************************/ * @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
* @version $Id$
*/
// $Id$ /* Include older eGroupWare update support */
include('tables_update_0_9_9.inc.php');
include('tables_update_0_9_10.inc.php');
include('tables_update_0_9_12.inc.php');
include('tables_update_0_9_14.inc.php');
include('tables_update_1_0.inc.php');
include('tables_update_1_2.inc.php');
/* Include older eGroupWare update support */ // updates from the stable 1.4 branch
include('tables_update_0_9_9.inc.php'); $test[] = '1.4.001';
include('tables_update_0_9_10.inc.php'); function phpgwapi_upgrade1_4_001()
include('tables_update_0_9_12.inc.php'); {
include('tables_update_0_9_14.inc.php'); return $GLOBALS['setup_info']['phpgwapi']['currentver'] = '1.5.001';
include('tables_update_1_0.inc.php'); }
include('tables_update_1_2.inc.php');
// updates from the stable 1.4 branch $test[] = '1.4.002';
$test[] = '1.4.001'; function phpgwapi_upgrade1_4_002()
function phpgwapi_upgrade1_4_001() {
return $GLOBALS['setup_info']['phpgwapi']['currentver'] = '1.5.001';
}
$test[] = '1.4.003';
function phpgwapi_upgrade1_4_003()
{
return $GLOBALS['setup_info']['phpgwapi']['currentver'] = '1.5.001';
}
$test[] = '1.4.004';
function phpgwapi_upgrade1_4_004()
{
return $GLOBALS['setup_info']['phpgwapi']['currentver'] = '1.5.001';
}
$test[] = '1.5.001';
function phpgwapi_upgrade1_5_001()
{
$GLOBALS['egw_setup']->oProc->AlterColumn('egw_addressbook','org_name',array(
'type' => 'varchar',
'precision' => '128',
'nullable' => true
));
$GLOBALS['egw_setup']->oProc->AlterColumn('egw_addressbook','contact_email',array(
'type' => 'varchar',
'precision' => '128',
'nullable' => true
));
$GLOBALS['egw_setup']->oProc->AlterColumn('egw_addressbook','contact_email_home',array(
'type' => 'varchar',
'precision' => '128',
'nullable' => true
));
return $GLOBALS['setup_info']['phpgwapi']['currentver'] = '1.5.002';
}
$test[] = '1.5.002';
function phpgwapi_upgrade1_5_002()
{
$GLOBALS['egw_setup']->oProc->CreateTable('egw_sqlfs',array(
'fd' => array(
'fs_id' => array('type' => 'auto','nullable' => False),
'fs_dir' => array('type' => 'int','precision' => '4','nullable' => False),
'fs_name' => array('type' => 'varchar','precision' => '200','nullable' => False),
'fs_mode' => array('type' => 'int','precision' => '2','nullable' => False),
'fs_uid' => array('type' => 'int','precision' => '4','nullable' => False,'default' => '0'),
'fs_gid' => array('type' => 'int','precision' => '4','nullable' => False,'default' => '0'),
'fs_created' => array('type' => 'timestamp','precision' => '8','nullable' => False,'default' => 'current_timestamp'),
'fs_modified' => array('type' => 'timestamp','precision' => '8','nullable' => False),
'fs_mime' => array('type' => 'varchar','precision' => '64','nullable' => False),
'fs_size' => array('type' => 'int','precision' => '8','nullable' => False),
'fs_creator' => array('type' => 'int','precision' => '4','nullable' => False),
'fs_modifier' => array('type' => 'int','precision' => '4'),
'fs_active' => array('type' => 'bool','nullable' => False,'default' => 't'),
'fs_comment' => array('type' => 'varchar','precision' => '255'),
'fs_content' => array('type' => 'blob')
),
'pk' => array('fs_id'),
'fk' => array(),
'ix' => array(array('fs_dir','fs_active','fs_name')),
'uc' => array()
));
return $GLOBALS['setup_info']['phpgwapi']['currentver'] = '1.5.003';
}
$test[] = '1.5.003';
function phpgwapi_upgrade1_5_003()
{
// import the current egw_vfs into egw_sqlfs
// ToDo: moving /infolog and /infolog/$app to /apps in the files dir!!!
$debug = $GLOBALS['DEBUG'];
// delete the table in case this update runs multiple times
$GLOBALS['egw_setup']->db->query('DELETE FROM egw_sqlfs',__LINE__,__FILE__);
if ($GLOBALS['egw_setup']->db->Type == 'mysql')
{ {
return $GLOBALS['setup_info']['phpgwapi']['currentver'] = '1.5.001'; $GLOBALS['egw_setup']->db->query('ALTER TABLE egw_sqlfs AUTO_INCREMENT=1',__LINE__,__FILE__);
} }
// make sure the required dirs are there and have the following id's
$test[] = '1.4.002'; $dirs = array(
function phpgwapi_upgrade1_4_002() '/' => 1,
'/home' => 2,
'/apps' => 3,
);
foreach($dirs as $path => $id)
{ {
return $GLOBALS['setup_info']['phpgwapi']['currentver'] = '1.5.001'; $nrow = array(
} 'fs_id' => $id,
'fs_dir' => $path == '/' ? 0 : $dirs['/'],
$test[] = '1.4.003'; 'fs_name' => substr($path,1),
function phpgwapi_upgrade1_4_003() 'fs_mode' => 05,
{ 'fs_uid' => 0,
return $GLOBALS['setup_info']['phpgwapi']['currentver'] = '1.5.001'; 'fs_gid' => 0,
} 'fs_created' => time(),
'fs_modified' => time(),
$test[] = '1.4.004'; 'fs_mime' => 'httpd/unix-directory',
function phpgwapi_upgrade1_4_004() 'fs_size' => 0,
{ 'fs_creator' => 0,
return $GLOBALS['setup_info']['phpgwapi']['currentver'] = '1.5.001'; 'fs_modifier' => 0,
} 'fs_comment' => null,
'fs_content' => null,
$test[] = '1.5.001';
function phpgwapi_upgrade1_5_001()
{
$GLOBALS['egw_setup']->oProc->AlterColumn('egw_addressbook','org_name',array(
'type' => 'varchar',
'precision' => '128',
'nullable' => true
));
$GLOBALS['egw_setup']->oProc->AlterColumn('egw_addressbook','contact_email',array(
'type' => 'varchar',
'precision' => '128',
'nullable' => true
));
$GLOBALS['egw_setup']->oProc->AlterColumn('egw_addressbook','contact_email_home',array(
'type' => 'varchar',
'precision' => '128',
'nullable' => true
));
return $GLOBALS['setup_info']['phpgwapi']['currentver'] = '1.5.002';
}
$test[] = '1.5.002';
function phpgwapi_upgrade1_5_002()
{
$GLOBALS['egw_setup']->oProc->CreateTable('egw_sqlfs',array(
'fd' => array(
'fs_id' => array('type' => 'auto','nullable' => False),
'fs_dir' => array('type' => 'int','precision' => '4','nullable' => False),
'fs_name' => array('type' => 'varchar','precision' => '200','nullable' => False),
'fs_mode' => array('type' => 'int','precision' => '2','nullable' => False),
'fs_uid' => array('type' => 'int','precision' => '4','nullable' => False,'default' => '0'),
'fs_gid' => array('type' => 'int','precision' => '4','nullable' => False,'default' => '0'),
'fs_created' => array('type' => 'timestamp','precision' => '8','nullable' => False,'default' => 'current_timestamp'),
'fs_modified' => array('type' => 'timestamp','precision' => '8','nullable' => False),
'fs_mime' => array('type' => 'varchar','precision' => '64','nullable' => False),
'fs_size' => array('type' => 'int','precision' => '8','nullable' => False),
'fs_creator' => array('type' => 'int','precision' => '4','nullable' => False),
'fs_modifier' => array('type' => 'int','precision' => '4'),
'fs_active' => array('type' => 'bool','nullable' => False,'default' => 't'),
'fs_comment' => array('type' => 'varchar','precision' => '255'),
'fs_content' => array('type' => 'blob')
),
'pk' => array('fs_id'),
'fk' => array(),
'ix' => array(array('fs_dir','fs_active','fs_name')),
'uc' => array()
));
return $GLOBALS['setup_info']['phpgwapi']['currentver'] = '1.5.003';
}
$test[] = '1.5.003';
function phpgwapi_upgrade1_5_003()
{
// import the current egw_vfs into egw_sqlfs
// ToDo: moving /infolog and /infolog/$app to /apps in the files dir!!!
$debug = $GLOBALS['DEBUG'];
// delete the table in case this update runs multiple times
$GLOBALS['egw_setup']->db->query('DELETE FROM egw_sqlfs',__LINE__,__FILE__);
if ($GLOBALS['egw_setup']->db->Type == 'mysql')
{
$GLOBALS['egw_setup']->db->query('ALTER TABLE egw_sqlfs AUTO_INCREMENT=1',__LINE__,__FILE__);
}
// make sure the required dirs are there and have the following id's
$dirs = array(
'/' => 1,
'/home' => 2,
'/apps' => 3,
); );
foreach($dirs as $path => $id) $GLOBALS['egw_setup']->db->insert('egw_sqlfs',$nrow,false,__LINE__,__FILE__,'phpgwapi');
}
$query = $GLOBALS['egw_setup']->db->select('egw_vfs','*',"vfs_mime_type != 'journal' AND vfs_mime_type != 'journal-deleted'",__LINE__,__FILE__,false,'ORDER BY length(vfs_directory) ASC','phpgwapi');
if ($debug) echo "rows=<pre>\n";
foreach($query as $row)
{
// rename the /infolog dir to /apps/infolog and /infolog/$app /apps/$app
if (substr($row['vfs_directory'],0,8) == '/infolog')
{ {
$nrow = array( $parts = explode('/',$row['vfs_directory']); // 0 = '', 1 = 'infolog', 2 = app or info_id
'fs_id' => $id, //$parts[1] = is_numeric($parts[2]) ? 'apps/infolog' : 'apps';
'fs_dir' => $path == '/' ? 0 : $dirs['/'], $parts[1] = $row['vfs_directory']=='/infolog' && is_numeric($row['vfs_name']) ||
'fs_name' => substr($path,1), $parts[1]=='infolog' && is_numeric($parts[2]) ? 'apps/infolog' : 'apps';
'fs_mode' => 05, $row['vfs_directory'] = implode('/',$parts);
'fs_uid' => 0,
'fs_gid' => 0,
'fs_created' => time(),
'fs_modified' => time(),
'fs_mime' => 'httpd/unix-directory',
'fs_size' => 0,
'fs_creator' => 0,
'fs_modifier' => 0,
'fs_comment' => null,
'fs_content' => null,
);
$GLOBALS['egw_setup']->db->insert('egw_sqlfs',$nrow,false,__LINE__,__FILE__,'phpgwapi');
} }
$query = $GLOBALS['egw_setup']->db->select('egw_vfs','*',"vfs_mime_type != 'journal' AND vfs_mime_type != 'journal-deleted'",__LINE__,__FILE__,false,'ORDER BY length(vfs_directory) ASC','phpgwapi'); elseif ($row['vfs_directory'] == '/' && $row['vfs_name'] == 'infolog')
if ($debug) echo "rows=<pre>\n";
foreach($query as $row)
{ {
// rename the /infolog dir to /apps/infolog and /infolog/$app /apps/$app $row['vfs_directory'] = '/apps';
if (substr($row['vfs_directory'],0,8) == '/infolog')
{
$parts = explode('/',$row['vfs_directory']); // 0 = '', 1 = 'infolog', 2 = app or info_id
//$parts[1] = is_numeric($parts[2]) ? 'apps/infolog' : 'apps';
$parts[1] = $row['vfs_directory']=='/infolog' && is_numeric($row['vfs_name']) ||
$parts[1]=='infolog' && is_numeric($parts[2]) ? 'apps/infolog' : 'apps';
$row['vfs_directory'] = implode('/',$parts);
}
elseif ($row['vfs_directory'] == '/' && $row['vfs_name'] == 'infolog')
{
$row['vfs_directory'] = '/apps';
}
$nrow = array(
'fs_dir' => $dirs[$row['vfs_directory']],
'fs_name' => $row['vfs_name'],
'fs_mode' => $row['vfs_owner_id'] > 0 ?
($row['vfs_mime_type'] == 'Directory' ? 0700 : 0600) :
($row['vfs_mime_type'] == 'Directory' ? 0070 : 0060),
'fs_uid' => $row['vfs_owner_id'] > 0 ? $row['vfs_owner_id'] : 0,
'fs_gid' => $row['vfs_owner_id'] < 0 ? -$row['vfs_owner_id'] : 0,
'fs_created' => $row['vfs_created'],
'fs_modified' => $row['vfs_modified'] ? $row['vfs_modified'] : $row['vfs_created'],
'fs_mime' => $row['vfs_mime_type'] == 'Directory' ? 'httpd/unix-directory' :
($row['vfs_mime_type'] ? $row['vfs_mime_type'] : 'application/octet-stream'),
'fs_size' => $row['vfs_size'],
'fs_creator' => $row['vfs_createdby_id'],
'fs_modifier' => $row['vfs_modifedby_id'],
'fs_comment' => $row['vfs_comment'] ? $row['vfs_comment'] : null,
'fs_content' => $row['vfs_content'],
);
if ($debug)
{
foreach($row as $key => $val)
{
if (is_numeric($key)) unset($row[$key]);
}
print_r($row);
print_r($nrow);
}
if ($row['vfs_mime_type'] == 'Directory')
{
$dir = ($row['vfs_directory'] == '/' ? '' : $row['vfs_directory']).'/'.$row['vfs_name'];
if (!isset($dirs[$dir])) // ignoring doublicate dirs, my devel box has somehow many of them specially /home
{
$GLOBALS['egw_setup']->db->insert('egw_sqlfs',$nrow,false,__LINE__,__FILE__,'phpgwapi');
$dirs[$dir] = $GLOBALS['egw_setup']->db->get_last_insert_id('egw_sqlfs','fs_id');
if ($debug) echo "<b>$dir = {$dirs[$dir]}</b>\n";
}
elseif ($debug)
{
echo "<b>ignoring doublicate directory '$dir'!</b>\n";
}
}
else
{
$GLOBALS['egw_setup']->db->insert('egw_sqlfs',$nrow,false,__LINE__,__FILE__,'phpgwapi');
}
} }
$nrow = array(
'fs_dir' => $dirs[$row['vfs_directory']],
'fs_name' => $row['vfs_name'],
'fs_mode' => $row['vfs_owner_id'] > 0 ?
($row['vfs_mime_type'] == 'Directory' ? 0700 : 0600) :
($row['vfs_mime_type'] == 'Directory' ? 0070 : 0060),
'fs_uid' => $row['vfs_owner_id'] > 0 ? $row['vfs_owner_id'] : 0,
'fs_gid' => $row['vfs_owner_id'] < 0 ? -$row['vfs_owner_id'] : 0,
'fs_created' => $row['vfs_created'],
'fs_modified' => $row['vfs_modified'] ? $row['vfs_modified'] : $row['vfs_created'],
'fs_mime' => $row['vfs_mime_type'] == 'Directory' ? 'httpd/unix-directory' :
($row['vfs_mime_type'] ? $row['vfs_mime_type'] : 'application/octet-stream'),
'fs_size' => $row['vfs_size'],
'fs_creator' => $row['vfs_createdby_id'],
'fs_modifier' => $row['vfs_modifedby_id'],
'fs_comment' => $row['vfs_comment'] ? $row['vfs_comment'] : null,
'fs_content' => $row['vfs_content'],
);
if ($debug) if ($debug)
{ {
echo "dirs="; foreach($row as $key => $val)
print_r($dirs);
echo "</pre>\n";
}
return $GLOBALS['setup_info']['phpgwapi']['currentver'] = '1.5.004';
}
$test[] = '1.5.004';
function phpgwapi_upgrade1_5_004()
{
// convert the filemanager group grants into extended ACL
// delete all sqlfs entries from the ACL table, in case we run multiple times
$GLOBALS['egw_setup']->db->delete('egw_acl',array('acl_appname' => sqlfs_stream_wrapper::EACL_APPNAME),__LINE__,__FILE__);
$GLOBALS['egw_setup']->setup_account_object();
$accounts = $GLOBALS['egw_setup']->accounts;
$accounts = new accounts();
egw_vfs::$is_root = true; // we need root rights to set the extended acl, without being the owner
foreach($GLOBALS['egw_setup']->db->select('egw_acl','*',array(
'acl_appname' => 'filemanager',
"acl_location != 'run'",
),__LINE__,__FILE__) as $row)
{
$rights = egw_vfs::READABLE | egw_vfs::EXECUTABLE;
if($row['acl_rights'] > 1) $rights |= egw_vfs::WRITABLE;
if (($lid = $accounts->id2name($row['acl_account'])) && $accounts->exists($row['acl_location']))
{ {
$ret = sqlfs_stream_wrapper::eacl('/home/'.$lid,$rights,(int)$row['acl_location']); if (is_numeric($key)) unset($row[$key]);
//echo "<p>sqlfs_stream_wrapper::eacl('/home/$lid',$rights,$row[acl_location])=$ret</p>\n"; }
print_r($row);
print_r($nrow);
}
if ($row['vfs_mime_type'] == 'Directory')
{
$dir = ($row['vfs_directory'] == '/' ? '' : $row['vfs_directory']).'/'.$row['vfs_name'];
if (!isset($dirs[$dir])) // ignoring doublicate dirs, my devel box has somehow many of them specially /home
{
$GLOBALS['egw_setup']->db->insert('egw_sqlfs',$nrow,false,__LINE__,__FILE__,'phpgwapi');
$dirs[$dir] = $GLOBALS['egw_setup']->db->get_last_insert_id('egw_sqlfs','fs_id');
if ($debug) echo "<b>$dir = {$dirs[$dir]}</b>\n";
}
elseif ($debug)
{
echo "<b>ignoring doublicate directory '$dir'!</b>\n";
} }
} }
egw_vfs::$is_root = false; else
return $GLOBALS['setup_info']['phpgwapi']['currentver'] = '1.5.005';
}
$test[] = '1.5.005';
function phpgwapi_upgrade1_5_005()
{
// move /infolog/$app to /apps/$app and /infolog to /apps/infolog
$files_dir = $GLOBALS['egw_setup']->db->select('egw_config','config_value',array(
'config_name' => 'files_dir',
'config_app' => 'phpgwapi',
),__LINE__,__FILE__)->fetchSingle();
if ($files_dir && file_exists($files_dir) && file_exists($files_dir.'/infolog'))
{ {
mkdir($files_dir.'/apps',0700,true); $GLOBALS['egw_setup']->db->insert('egw_sqlfs',$nrow,false,__LINE__,__FILE__,'phpgwapi');
if (($dir = opendir($files_dir.'/infolog'))) }
}
if ($debug)
{
echo "dirs=";
print_r($dirs);
echo "</pre>\n";
}
return $GLOBALS['setup_info']['phpgwapi']['currentver'] = '1.5.004';
}
$test[] = '1.5.004';
function phpgwapi_upgrade1_5_004()
{
// convert the filemanager group grants into extended ACL
// delete all sqlfs entries from the ACL table, in case we run multiple times
$GLOBALS['egw_setup']->db->delete('egw_acl',array('acl_appname' => sqlfs_stream_wrapper::EACL_APPNAME),__LINE__,__FILE__);
$GLOBALS['egw_setup']->setup_account_object();
$accounts = $GLOBALS['egw_setup']->accounts;
$accounts = new accounts();
egw_vfs::$is_root = true; // we need root rights to set the extended acl, without being the owner
foreach($GLOBALS['egw_setup']->db->select('egw_acl','*',array(
'acl_appname' => 'filemanager',
"acl_location != 'run'",
),__LINE__,__FILE__) as $row)
{
$rights = egw_vfs::READABLE | egw_vfs::EXECUTABLE;
if($row['acl_rights'] > 1) $rights |= egw_vfs::WRITABLE;
if (($lid = $accounts->id2name($row['acl_account'])) && $accounts->exists($row['acl_location']))
{
$ret = sqlfs_stream_wrapper::eacl('/home/'.$lid,$rights,(int)$row['acl_location']);
//echo "<p>sqlfs_stream_wrapper::eacl('/home/$lid',$rights,$row[acl_location])=$ret</p>\n";
}
}
egw_vfs::$is_root = false;
return $GLOBALS['setup_info']['phpgwapi']['currentver'] = '1.5.005';
}
$test[] = '1.5.005';
function phpgwapi_upgrade1_5_005()
{
// move /infolog/$app to /apps/$app and /infolog to /apps/infolog
$files_dir = $GLOBALS['egw_setup']->db->select('egw_config','config_value',array(
'config_name' => 'files_dir',
'config_app' => 'phpgwapi',
),__LINE__,__FILE__)->fetchSingle();
if ($files_dir && file_exists($files_dir) && file_exists($files_dir.'/infolog'))
{
mkdir($files_dir.'/apps',0700,true);
if (($dir = opendir($files_dir.'/infolog')))
{
while(($app = readdir($dir)))
{ {
while(($app = readdir($dir))) if (!is_numeric($app) && $app[0] != '.') // ingore infolog entries and . or ..
{ {
if (!is_numeric($app) && $app[0] != '.') // ingore infolog entries and . or .. rename($files_dir.'/infolog/'.$app,$files_dir.'/apps/'.$app);
{
rename($files_dir.'/infolog/'.$app,$files_dir.'/apps/'.$app);
}
} }
closedir($dir);
rename($files_dir.'/infolog',$files_dir.'/apps/infolog');
} }
closedir($dir);
rename($files_dir.'/infolog',$files_dir.'/apps/infolog');
} }
return $GLOBALS['setup_info']['phpgwapi']['currentver'] = '1.5.006';
} }
return $GLOBALS['setup_info']['phpgwapi']['currentver'] = '1.5.006';
}
$test[] = '1.5.006';
function phpgwapi_upgrade1_5_006()
{
// drop filescenter tables, if filecenter is not installed
static $filescenter_tables = array(
'phpgw_vfs2_mimetypes',
'phpgw_vfs2_files',
'phpgw_vfs2_customfields',
'phpgw_vfs2_quota',
'phpgw_vfs2_shares',
'phpgw_vfs2_versioning',
'phpgw_vfs2_customfields_data',
'phpgw_vfs2_prefixes',
);
$filescenter_app = $GLOBALS['egw_setup']->db->select('egw_applications','*',array(
'app_name' => 'filescenter',
),__LINE__,__FILE__)->fetchSingle();
if (!$filescenter_app || !is_dir(EGW_INCLUDE_ROOT.'/filescenter'))
{
foreach($filescenter_tables as $table)
{
schema_proc::DropTable($table);
}
if ($filescenter_app) // app installed, but no sources --> deinstall it
{
$GLOBALS['egw_setup']->db->delete('egw_applications',array(
'app_name' => 'filescenter',
),__LINE__,__FILE__);
}
}
else
{
// move tables to the filescenter app
$GLOBALS['egw_setup']->db->update('egw_applications',array(
'app_tables' => implode(',',$filescenter_tables),
),array(
'app_name' => 'filescenter',
),__LINE__,__FILE__);
}
return $GLOBALS['setup_info']['phpgwapi']['currentver'] = '1.5.007';
}
$test[] = '1.5.007';
function phpgwapi_upgrade1_5_007()
{
// tables for the eGW-wide index
foreach(array(
'egw_index_keywords' => array(
'fd' => array(
'si_id' => array('type' => 'auto','nullable' => False),
'si_keyword' => array('type' => 'varchar','precision' => '64','nullable' => False),
'si_ignore' => array('type' => 'bool')
),
'pk' => array('si_id'),
'fk' => array(),
'ix' => array(),
'uc' => array('si_keyword')
),
'egw_index' => array(
'fd' => array(
'si_app' => array('type' => 'varchar','precision' => '25','nullable' => False),
'si_app_id' => array('type' => 'varchar','precision' => '50','nullable' => False),
'si_id' => array('type' => 'int','precision' => '4','nullable' => False),
'si_owner' => array('type' => 'int','precision' => '4','nullable' => False)
),
'pk' => array('si_app','si_app_id','si_id'),
'fk' => array(),
'ix' => array('si_id'),
'uc' => array()
),
'egw_cat2entry' => array(
'fd' => array(
'ce_app' => array('type' => 'varchar','precision' => '25','nullable' => False),
'ce_app_id' => array('type' => 'varchar','precision' => '50','nullable' => False),
'cat_id' => array('type' => 'int','precision' => '4','nullable' => False),
'ce_owner' => array('type' => 'int','precision' => '4','nullable' => False)
),
'pk' => array('ce_app','ce_app_id','cat_id'),
'fk' => array(),
'ix' => array('cat_id'),
'uc' => array()
)) as $table => $definition)
{
$GLOBALS['egw_setup']->oProc->CreateTable($table,$definition);
}
return $GLOBALS['setup_info']['phpgwapi']['currentver'] = '1.5.008';
}