git: 5b05cb77d9c0 - main - Seafile|Seahub: Updated to 9.0.2

From: Richard Gallamore <ultima_at_FreeBSD.org>
Date: Tue, 11 Jan 2022 01:36:28 UTC
The branch main has been updated by ultima:

URL: https://cgit.FreeBSD.org/ports/commit/?id=5b05cb77d9c006fca6c2b3b7174e59eed13cb8da

commit 5b05cb77d9c006fca6c2b3b7174e59eed13cb8da
Author:     Richard Gallamore <ultima@FreeBSD.org>
AuthorDate: 2022-01-11 01:32:53 +0000
Commit:     Richard Gallamore <ultima@FreeBSD.org>
CommitDate: 2022-01-11 01:32:53 +0000

    Seafile|Seahub: Updated to 9.0.2
    
    Changes: https://manual.seafile.com/changelog/server-changelog/
---
 net-mgmt/seafile-server/Makefile                   |   24 +-
 net-mgmt/seafile-server/Makefile.include           |    4 +-
 net-mgmt/seafile-server/distinfo                   |    6 +-
 .../files/patch-server_upload-file.c               |   14 +-
 net-mgmt/seafile-server/pkg-plist                  |  109 --
 www/py-seafdav/distinfo                            |    6 +-
 www/py-seafobj/distinfo                            |    6 +-
 www/seahub/Makefile                                |   34 +-
 www/seahub/distinfo                                |    6 +-
 .../files/patch-scripts_setup-seafile-mysql.py     |    0
 .../seahub}/files/patch-scripts_setup-seafile.sh   |    0
 ...atch-scripts_upgrade_regenerate__secret__key.sh |    0
 www/seahub/pkg-plist                               | 1202 +++++++++++++-------
 13 files changed, 851 insertions(+), 560 deletions(-)

diff --git a/net-mgmt/seafile-server/Makefile b/net-mgmt/seafile-server/Makefile
index e178a4d551a6..57b9c7072fb8 100644
--- a/net-mgmt/seafile-server/Makefile
+++ b/net-mgmt/seafile-server/Makefile
@@ -33,8 +33,7 @@ GH_ACCOUNT=	haiwen
 USE_GNOME=	glib20
 USE_RC_SUBR=	seafile
 
-SHEBANG_FILES=	scripts/*.sh scripts/upgrade/*.sh *.sh scripts/build/*.py \
-		scripts/*.py scripts/upgrade/*.py tools/seafile-admin
+SHEBANG_FILES=	tools/seafile-admin
 GNU_CONFIGURE=	yes
 CONFIGURE_ENV=	SSL_CFLAGS="${OPENSSLINC}" SSL_LIBS="-L${OPENSSLLIB} -lssl \
 		-lcrypto" PKG_CONFIG_PATH="${WRKDIR}/pkgconfig"
@@ -70,20 +69,11 @@ _PKGCONFIGDIR=	${WRKDIR}/pkgconfig
 post-patch:
 # Fix P_KTHREAD r295435
 	${REINPLACE_CMD} 's/P_KTHREAD/P_KPROC/' ${WRKSRC}/lib/utils.c
-	${REINPLACE_CMD} -E 's/stat.+\$$/stat -f %Su $$/' ${WRKSRC}/scripts/seafile.sh
-	${REINPLACE_CMD} 's/%%SEAFILE_USER%%/${USERS:[1]}/ ; s/%%SEAFILE_GROUP%%/${GROUPS:[1]}/' \
-			${WRKSRC}/scripts/setup-seafile.sh ${WRKSRC}/scripts/setup-seafile-mysql.py
 
 # Fix python hardcodings
 	${REINPLACE_CMD} 's/python3\.[0-9]/${PYTHON_VERSION}/g; s/python3 /${PYTHON_VERSION} / ; \
-			s/PYTHON=python3/PYTHON=${PYTHON_VERSION}/' \
-		${WRKSRC}/controller/seafile-controller.c ${WRKSRC}/scripts/reset-admin.sh \
-		${WRKSRC}/scripts/upgrade/upgrade_[7-9].[0-9]_[7-9].[0-9].sh \
-		${WRKSRC}/scripts/seahub.sh ${WRKSRC}/scripts/setup-seafile.sh \
-		${WRKSRC}/scripts/setup-seafile-mysql.sh \
-		${WRKSRC}/scripts/setup-seafile-mysql.py
-	${REINPLACE_CMD} 's/python/${PYTHON_VERSION}/' \
-		${WRKSRC}/scripts/upgrade/regenerate_secret_key.sh
+			s/PYTHON=python3/PYTHON=${PYTHON_VERSION}/ ; s|/python3/|/${PYTHON_VERSION}/|g' \
+		${WRKSRC}/controller/seafile-controller.c
 
 	@${MKDIR} ${_PKGCONFIGDIR}
 .if ${MYSQL_FLAVOUR} == mariadb
@@ -100,8 +90,7 @@ post-patch:
 
 post-install:
 	@${MKDIR} ${STAGEDIR}${PREFIX}/${SEABIN} ${STAGEDIR}${PREFIX}/${SEALIB} \
-		${STAGEDIR}${PREFIX}/${SEAFILE_SERVER}/seafile/share/doc/seafile \
-		${STAGEDIR}${PREFIX}/${SEAFILE_SERVER}/upgrade
+		${STAGEDIR}${PREFIX}/${SEAFILE_SERVER}/seafile/share/doc/seafile
 .for SERVPROG in seaf-fsck seafserv-gc seaf-fuse seaf-migrate \
 		seaf-server seaf-server-init seafile-controller
 	if [ -e "${STAGEDIR}${PREFIX}/bin/${SERVPROG}" ]; then \
@@ -117,13 +106,10 @@ post-install:
 		${COPYTREE_SHARE} ${PYTHON_VERSION} ${STAGEDIR}${PREFIX}/${SEALIB})
 	@${RM} -rf ${STAGEDIR}${PREFIX}/lib/${PYTHON_VERSION} \
 		${STAGEDIR}${PREFIX}/bin/seafile-admin
-	${INSTALL_SCRIPT} ${WRKSRC}/scripts/*.[ps][yh] ${STAGEDIR}${PREFIX}/${SEAFILE_SERVER}
-	${INSTALL_SCRIPT} ${WRKSRC}/scripts/upgrade/*.[ps][yh] \
-		${STAGEDIR}${PREFIX}/${SEAFILE_SERVER}/upgrade
 	${INSTALL_DATA} ${WRKSRC}/doc/seafile-tutorial.doc \
 		${STAGEDIR}${PREFIX}/${SEAFILE_SERVER}/seafile/share/doc/seafile/
 	(cd ${WRKSRC}/scripts && \
-		${COPYTREE_SHARE} "sql upgrade/sql" ${STAGEDIR}${PREFIX}/${SEAFILE_SERVER})
+		${COPYTREE_SHARE} "sql" ${STAGEDIR}${PREFIX}/${SEAFILE_SERVER})
 
 makesum-all:
 .for PORT in net-mgmt/seafile-server www/py-seafdav www/py-seafobj www/seahub
diff --git a/net-mgmt/seafile-server/Makefile.include b/net-mgmt/seafile-server/Makefile.include
index 258c923db649..ddc93e27cc95 100644
--- a/net-mgmt/seafile-server/Makefile.include
+++ b/net-mgmt/seafile-server/Makefile.include
@@ -1,5 +1,5 @@
-SEAFILE_VER=	8.0.7
-SEAHUB_VER=	8.0.7
+SEAFILE_VER=	9.0.2
+SEAHUB_VER=	9.0.2
 
 
 # Various vars used in most/all the Makefiles
diff --git a/net-mgmt/seafile-server/distinfo b/net-mgmt/seafile-server/distinfo
index 6781cbbfd1e4..b010e19343f8 100644
--- a/net-mgmt/seafile-server/distinfo
+++ b/net-mgmt/seafile-server/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1630718047
-SHA256 (haiwen-seafile-server-v8.0.7-server_GH0.tar.gz) = b41bedd254aa1730a574452d986a58cbc84dc8f9cd63ee035087132b1f947d55
-SIZE (haiwen-seafile-server-v8.0.7-server_GH0.tar.gz) = 718851
+TIMESTAMP = 1639252431
+SHA256 (haiwen-seafile-server-v9.0.2-server_GH0.tar.gz) = 292257b584dcb775504fb22595e5b0903005abfee1990078527c7f9726548c8c
+SIZE (haiwen-seafile-server-v9.0.2-server_GH0.tar.gz) = 709379
diff --git a/net-mgmt/seafile-server/files/patch-server_upload-file.c b/net-mgmt/seafile-server/files/patch-server_upload-file.c
index 91e369966739..4b2e40dd49b1 100644
--- a/net-mgmt/seafile-server/files/patch-server_upload-file.c
+++ b/net-mgmt/seafile-server/files/patch-server_upload-file.c
@@ -1,6 +1,6 @@
---- server/upload-file.c.orig	2019-12-23 10:30:49 UTC
+--- server/upload-file.c.orig	2021-12-09 05:24:45 UTC
 +++ server/upload-file.c
-@@ -2306,7 +2306,7 @@ out:
+@@ -2234,7 +2234,7 @@ out:
          /* Set keepalive to 0. This will cause evhtp to close the
           * connection after sending the reply.
           */
@@ -9,7 +9,7 @@
  
          fsm->state = RECV_ERROR;
      }
-@@ -2607,8 +2607,8 @@ upload_headers_cb (evhtp_request_t *req, evhtp_headers
+@@ -2545,8 +2545,8 @@ upload_headers_cb (evhtp_request_t *req, evhtp_headers
      }
  
      /* Set up per-request hooks, so that we can read file data piece by piece. */
@@ -20,16 +20,16 @@
      /* Set arg for upload_cb or update_cb. */
      req->cbarg = fsm;
  
-@@ -2623,7 +2623,7 @@ err:
+@@ -2561,7 +2561,7 @@ err:
      /* Set keepalive to 0. This will cause evhtp to close the
       * connection after sending the reply.
       */
 -    req->keepalive = 0;
-+    evhtp_request_set_keepalive(req, 0);
-     send_error_reply (req, EVHTP_RES_BADREQ, err_msg);
++	  evhtp_request_set_keepalive(req, 0);
+     send_error_reply (req, error_code, err_msg);
  
      g_free (repo_id);
-@@ -2724,32 +2724,32 @@ upload_file_init (evhtp_t *htp, const char *http_temp_
+@@ -2662,32 +2662,32 @@ upload_file_init (evhtp_t *htp, const char *http_temp_
      g_free (cluster_shared_dir);
  
      cb = evhtp_set_regex_cb (htp, "^/upload-api/.*", upload_api_cb, NULL);
diff --git a/net-mgmt/seafile-server/pkg-plist b/net-mgmt/seafile-server/pkg-plist
index cbebabbdc5f8..0d8d5d58fd21 100644
--- a/net-mgmt/seafile-server/pkg-plist
+++ b/net-mgmt/seafile-server/pkg-plist
@@ -2,12 +2,6 @@ bin/seaf-server
 bin/seafile-controller
 include/seafile/seafile-object.h
 libdata/pkgconfig/libseafile.pc
-%%SEAFILE_SERVER%%/check_init_admin.py
-%%SEAFILE_SERVER%%/reset-admin.sh
-%%SEAFILE_SERVER%%/seaf-fsck.sh
-%%SEAFILE_SERVER%%/seaf-fuse.sh
-%%SEAFILE_SERVER%%/seaf-gc.sh
-%%SEAFILE_SERVER%%/seafile.sh
 %%SEAFILE_SERVER%%/seafile/bin/seaf-fsck
 %%FUSE%%%%SEAFILE_SERVER%%/seafile/bin/seaf-fuse
 %%SEAFILE_SERVER%%/seafile/bin/seaf-server
@@ -29,11 +23,6 @@ libdata/pkgconfig/libseafile.pc
 %%SEAFILE_SERVER%%/seafile/%%PYTHON_SITELIBDIR%%/seaserv/api.py
 %%SEAFILE_SERVER%%/seafile/%%PYTHON_SITELIBDIR%%/seaserv/service.py
 %%SEAFILE_SERVER%%/seafile/share/doc/seafile/seafile-tutorial.doc
-%%SEAFILE_SERVER%%/seafobj_migrate.py
-%%SEAHUBDIR%%.sh
-%%SEAFILE_SERVER%%/setup-seafile-mysql.py
-%%SEAFILE_SERVER%%/setup-seafile-mysql.sh
-%%SEAFILE_SERVER%%/setup-seafile.sh
 %%SEAFILE_SERVER%%/sql/mysql/ccnet.sql
 %%SEAFILE_SERVER%%/sql/mysql/seafile.sql
 %%SEAFILE_SERVER%%/sql/sqlite/config.sql
@@ -41,101 +30,3 @@ libdata/pkgconfig/libseafile.pc
 %%SEAFILE_SERVER%%/sql/sqlite/org.sql
 %%SEAFILE_SERVER%%/sql/sqlite/seafile.sql
 %%SEAFILE_SERVER%%/sql/sqlite/user.sql
-%%SEAFILE_SERVER%%/sqlite2mysql.py
-%%SEAFILE_SERVER%%/sqlite2mysql.sh
-%%SEAFILE_SERVER%%/upgrade/add_collate.sh
-%%SEAFILE_SERVER%%/upgrade/db_update_1.3_1.4.py
-%%SEAFILE_SERVER%%/upgrade/db_update_helper.py
-%%SEAFILE_SERVER%%/upgrade/fix_mysql_user.py
-%%SEAFILE_SERVER%%/upgrade/minor-upgrade.sh
-%%SEAFILE_SERVER%%/upgrade/regenerate_secret_key.sh
-%%SEAFILE_SERVER%%/upgrade/sql/1.6.0/mysql/seahub.sql
-%%SEAFILE_SERVER%%/upgrade/sql/1.6.0/sqlite3/seahub.sql
-%%SEAFILE_SERVER%%/upgrade/sql/1.7.0/mysql/seafile.sql
-%%SEAFILE_SERVER%%/upgrade/sql/1.7.0/mysql/seahub.sql
-%%SEAFILE_SERVER%%/upgrade/sql/1.7.0/sqlite3/seafile.sql
-%%SEAFILE_SERVER%%/upgrade/sql/1.7.0/sqlite3/seahub.sql
-%%SEAFILE_SERVER%%/upgrade/sql/1.8.0/mysql/ccnet.sql
-%%SEAFILE_SERVER%%/upgrade/sql/1.8.0/mysql/seahub.sql
-%%SEAFILE_SERVER%%/upgrade/sql/1.8.0/sqlite3/seahub.sql
-%%SEAFILE_SERVER%%/upgrade/sql/2.0.0/mysql/seahub.sql
-%%SEAFILE_SERVER%%/upgrade/sql/2.0.0/sqlite3/seahub.sql
-%%SEAFILE_SERVER%%/upgrade/sql/2.1.0/mysql/seahub.sql
-%%SEAFILE_SERVER%%/upgrade/sql/2.1.0/sqlite3/seahub.sql
-%%SEAFILE_SERVER%%/upgrade/sql/2.2.0/mysql/ccnet.sql
-%%SEAFILE_SERVER%%/upgrade/sql/%%GTK3_VERSION%%/mysql/seahub.sql
-%%SEAFILE_SERVER%%/upgrade/sql/%%GTK3_VERSION%%/sqlite3/seahub.sql
-%%SEAFILE_SERVER%%/upgrade/sql/3.1.0/mysql/seahub.sql
-%%SEAFILE_SERVER%%/upgrade/sql/3.1.0/sqlite3/seahub.sql
-%%SEAFILE_SERVER%%/upgrade/sql/4.1.0/mysql/ccnet.sql
-%%SEAFILE_SERVER%%/upgrade/sql/4.1.0/mysql/seafile.sql
-%%SEAFILE_SERVER%%/upgrade/sql/4.1.0/sqlite3/ccnet/groupmgr.sql
-%%SEAFILE_SERVER%%/upgrade/sql/4.1.0/sqlite3/seafile.sql
-%%SEAFILE_SERVER%%/upgrade/sql/4.2.0/mysql/seafile.sql
-%%SEAFILE_SERVER%%/upgrade/sql/4.2.0/mysql/seahub.sql
-%%SEAFILE_SERVER%%/upgrade/sql/4.2.0/sqlite3/seafile.sql
-%%SEAFILE_SERVER%%/upgrade/sql/4.2.0/sqlite3/seahub.sql
-%%SEAFILE_SERVER%%/upgrade/sql/4.3.0/mysql/.gitkeep
-%%SEAFILE_SERVER%%/upgrade/sql/4.3.0/sqlite3/.gitkeep
-%%SEAFILE_SERVER%%/upgrade/sql/4.4.0/mysql/.gitkeep
-%%SEAFILE_SERVER%%/upgrade/sql/4.4.0/sqlite3/.gitkeep
-%%SEAFILE_SERVER%%/upgrade/sql/5.0.0/mysql/seahub.sql
-%%SEAFILE_SERVER%%/upgrade/sql/5.0.0/sqlite3/seahub.sql
-%%SEAFILE_SERVER%%/upgrade/sql/5.1.0/mysql/seafile.sql
-%%SEAFILE_SERVER%%/upgrade/sql/5.1.0/mysql/seahub.sql
-%%SEAFILE_SERVER%%/upgrade/sql/5.1.0/sqlite3/seafile.sql
-%%SEAFILE_SERVER%%/upgrade/sql/5.1.0/sqlite3/seahub.sql
-%%SEAFILE_SERVER%%/upgrade/sql/6.0.0/mysql/seahub.sql
-%%SEAFILE_SERVER%%/upgrade/sql/6.0.0/sqlite3/seahub.sql
-%%SEAFILE_SERVER%%/upgrade/sql/6.1.0/mysql/seahub.sql
-%%SEAFILE_SERVER%%/upgrade/sql/6.1.0/sqlite3/seahub.sql
-%%SEAFILE_SERVER%%/upgrade/sql/6.2.0/mysql/ccnet.sql
-%%SEAFILE_SERVER%%/upgrade/sql/6.2.0/mysql/seahub.sql
-%%SEAFILE_SERVER%%/upgrade/sql/6.2.0/sqlite3/ccnet/usermgr.sql
-%%SEAFILE_SERVER%%/upgrade/sql/6.2.0/sqlite3/seahub.sql
-%%SEAFILE_SERVER%%/upgrade/sql/6.3.0/mysql/ccnet.sql
-%%SEAFILE_SERVER%%/upgrade/sql/6.3.0/mysql/seafevents.sql
-%%SEAFILE_SERVER%%/upgrade/sql/6.3.0/mysql/seafile.sql
-%%SEAFILE_SERVER%%/upgrade/sql/6.3.0/mysql/seahub.sql
-%%SEAFILE_SERVER%%/upgrade/sql/6.3.0/sqlite3/ccnet/groupmgr.sql
-%%SEAFILE_SERVER%%/upgrade/sql/6.3.0/sqlite3/ccnet/usermgr.sql
-%%SEAFILE_SERVER%%/upgrade/sql/6.3.0/sqlite3/seafevents.sql
-%%SEAFILE_SERVER%%/upgrade/sql/6.3.0/sqlite3/seafile.sql
-%%SEAFILE_SERVER%%/upgrade/sql/6.3.0/sqlite3/seahub.sql
-%%SEAFILE_SERVER%%/upgrade/sql/7.0.0/mysql/ccnet.sql
-%%SEAFILE_SERVER%%/upgrade/sql/7.0.0/mysql/seafile.sql
-%%SEAFILE_SERVER%%/upgrade/sql/7.0.0/mysql/seahub.sql
-%%SEAFILE_SERVER%%/upgrade/sql/7.0.0/sqlite3/ccnet/usermgr.sql
-%%SEAFILE_SERVER%%/upgrade/sql/7.0.0/sqlite3/seafile.sql
-%%SEAFILE_SERVER%%/upgrade/sql/7.0.0/sqlite3/seahub.sql
-%%SEAFILE_SERVER%%/upgrade/sql/7.1.0/mysql/seahub.sql
-%%SEAFILE_SERVER%%/upgrade/sql/7.1.0/sqlite3/seahub.sql
-%%SEAFILE_SERVER%%/upgrade/sql/8.0.0/mysql/seafevents.sql
-%%SEAFILE_SERVER%%/upgrade/sql/8.0.0/mysql/seahub.sql
-%%SEAFILE_SERVER%%/upgrade/sql/8.0.0/sqlite3/seafevents.sql
-%%SEAFILE_SERVER%%/upgrade/sql/8.0.0/sqlite3/seahub.sql
-%%SEAFILE_SERVER%%/upgrade/upgrade_1.2_1.3.sh
-%%SEAFILE_SERVER%%/upgrade/upgrade_1.3_1.4.sh
-%%SEAFILE_SERVER%%/upgrade/upgrade_1.4_1.5.sh
-%%SEAFILE_SERVER%%/upgrade/upgrade_1.5_1.6.sh
-%%SEAFILE_SERVER%%/upgrade/upgrade_1.6_1.7.sh
-%%SEAFILE_SERVER%%/upgrade/upgrade_1.7_1.8.sh
-%%SEAFILE_SERVER%%/upgrade/upgrade_1.8_2.0.sh
-%%SEAFILE_SERVER%%/upgrade/upgrade_2.0_2.1.sh
-%%SEAFILE_SERVER%%/upgrade/upgrade_2.1_2.2.sh
-%%SEAFILE_SERVER%%/upgrade/upgrade_2.2_3.0.sh
-%%SEAFILE_SERVER%%/upgrade/upgrade_3.0_3.1.sh
-%%SEAFILE_SERVER%%/upgrade/upgrade_3.1_4.0.sh
-%%SEAFILE_SERVER%%/upgrade/upgrade_4.0_4.1.sh
-%%SEAFILE_SERVER%%/upgrade/upgrade_4.1_4.2.sh
-%%SEAFILE_SERVER%%/upgrade/upgrade_4.2_4.3.sh
-%%SEAFILE_SERVER%%/upgrade/upgrade_4.3_4.4.sh
-%%SEAFILE_SERVER%%/upgrade/upgrade_4.4_5.0.sh
-%%SEAFILE_SERVER%%/upgrade/upgrade_5.0_5.1.sh
-%%SEAFILE_SERVER%%/upgrade/upgrade_5.1_6.0.sh
-%%SEAFILE_SERVER%%/upgrade/upgrade_6.0_6.1.sh
-%%SEAFILE_SERVER%%/upgrade/upgrade_6.1_6.2.sh
-%%SEAFILE_SERVER%%/upgrade/upgrade_6.2_6.3.sh
-%%SEAFILE_SERVER%%/upgrade/upgrade_6.3_7.0.sh
-%%SEAFILE_SERVER%%/upgrade/upgrade_7.0_7.1.sh
-%%SEAFILE_SERVER%%/upgrade/upgrade_7.1_8.0.sh
diff --git a/www/py-seafdav/distinfo b/www/py-seafdav/distinfo
index ddab6002742d..141dc8d52d5e 100644
--- a/www/py-seafdav/distinfo
+++ b/www/py-seafdav/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1630718049
-SHA256 (haiwen-seafdav-v8.0.7-server_GH0.tar.gz) = 71d33d3843ba784c69d9e82c4cf383153f12486b5b98367c4d58915c7f22d521
-SIZE (haiwen-seafdav-v8.0.7-server_GH0.tar.gz) = 2693418
+TIMESTAMP = 1639252433
+SHA256 (haiwen-seafdav-v9.0.2-server_GH0.tar.gz) = f20c690cd5414b7d167532020760adf8d0b7efd4d3d1b93e116b206607461d63
+SIZE (haiwen-seafdav-v9.0.2-server_GH0.tar.gz) = 2693432
diff --git a/www/py-seafobj/distinfo b/www/py-seafobj/distinfo
index dc7971921d29..f6c9d157ccdb 100644
--- a/www/py-seafobj/distinfo
+++ b/www/py-seafobj/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1630718053
-SHA256 (haiwen-seafobj-v8.0.7-server_GH0.tar.gz) = 357fbdbd703856ea01dbcddaa8893740d6908da3a75f52dfc8629bedd081fd59
-SIZE (haiwen-seafobj-v8.0.7-server_GH0.tar.gz) = 10058996
+TIMESTAMP = 1639252435
+SHA256 (haiwen-seafobj-v9.0.2-server_GH0.tar.gz) = 2272550e21724d013d54ad2fb40e366ea0781f86f2e85e5b7bedd061b70150b5
+SIZE (haiwen-seafobj-v9.0.2-server_GH0.tar.gz) = 10058984
diff --git a/www/seahub/Makefile b/www/seahub/Makefile
index 803a45cefd9a..dac99f018d6f 100644
--- a/www/seahub/Makefile
+++ b/www/seahub/Makefile
@@ -2,7 +2,6 @@ PORTNAME=	seahub
 DISTVERSIONPREFIX=	v
 DISTVERSION=	${SEAHUB_VER}
 DISTVERSIONSUFFIX=	-server
-PORTREVISION=	1
 CATEGORIES=	www
 
 MAINTAINER=	ultima@FreeBSD.org
@@ -30,14 +29,18 @@ RUN_DEPENDS=	bash:shells/bash \
 		${PYTHON_PKGNAMEPREFIX}dateutil>=0:devel/py-dateutil@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}requests>=0:www/py-requests@${PY_FLAVOR} \
 		${PY_PILLOW} \
-		${PYTHON_PKGNAMEPREFIX}pyjwt1>=0:www/py-pyjwt1@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}pyjwt>=0:www/py-pyjwt@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}pycryptodome>=0:security/py-pycryptodome@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}requests-oauthlib>=0:www/py-requests-oauthlib@${PY_FLAVOR}
+		${PYTHON_PKGNAMEPREFIX}requests-oauthlib>=0:www/py-requests-oauthlib@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}pysaml26>=6.5.1:security/py-pysaml26@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}pymysql>0:databases/py-pymysql@${PY_FLAVOR}
 
 USES=		gettext-tools:build python:3.6+ shebangfix
 USE_GITHUB=	yes
 GH_ACCOUNT=	haiwen
-SHEBANG_FILES=	*.sh tests/*.sh *.template *.py tools/*.py seahub/*.py
+SHEBANG_FILES=	*.sh tests/*.sh *.template *.py tools/*.py seahub/*.py \
+		scripts/*.sh scripts/upgrade/*.sh *.sh scripts/build/*.py \
+		scripts/*.py scripts/upgrade/*.py
 
 NO_ARCH=	yes
 
@@ -71,18 +74,30 @@ post-patch:
 	${REINPLACE_CMD} -e 's|##FIX_SITEPACKAGEDIR##|${PREFIX}/${SITEPACKAGEDIR}|' ${WRKSRC}/*.template
 	${REINPLACE_CMD} -e 's|##PYTHON_VERSION##|${PYTHON_VERSION}|g' ${WRKSRC}/*.template
 	${REINPLACE_CMD} -e 's|##FIX_LOCALBASE##|${LOCALBASE}|' ${WRKSRC}/*.template
-	${FIND} ${WRKSRC} -name "*.bak" -exec ${RM} {} \;
-	${FIND} ${WRKSRC} -name "*.orig" -exec ${RM} {} \;
 	(cd ${WRKSRC}; (for file in run-seahub.sh.template \
 		send_user_notifications.sh.template setenv.sh.template; do \
 		${CP} $$file $${file%%.template}; \
 		done))
+	${REINPLACE_CMD} -E 's/stat.+\$$/stat -f %Su $$/' ${WRKSRC}/scripts/seafile.sh
+	${REINPLACE_CMD} 's/%%SEAFILE_USER%%/${USERS:[1]}/ ; s/%%SEAFILE_GROUP%%/${GROUPS:[1]}/' \
+			${WRKSRC}/scripts/setup-seafile.sh ${WRKSRC}/scripts/setup-seafile-mysql.py
+# Fix python hardcodings
+	${REINPLACE_CMD} 's/python3\.[0-9]/${PYTHON_VERSION}/g; s/python3 /${PYTHON_VERSION} / ; \
+			s/PYTHON=python3/PYTHON=${PYTHON_VERSION}/ ; s|/python3/|/${PYTHON_VERSION}/|g' \
+		${WRKSRC}/scripts/*.sh \
+		${WRKSRC}/scripts/setup-seafile-mysql.py \
+		${WRKSRC}/scripts/upgrade/upgrade_[7-9].[0-9]_[7-9].[0-9].sh
+	${REINPLACE_CMD} 's/python/${PYTHON_VERSION}/' \
+		${WRKSRC}/scripts/upgrade/regenerate_secret_key.sh
+	${FIND} ${WRKSRC} -name "*.bak" -exec ${RM} {} \;
+	${FIND} ${WRKSRC} -name "*.orig" -exec ${RM} {} \;
 	${RM} ${WRKSRC}/.gitignore
 
 do-install:
 	@${MKDIR} ${STAGEDIR}${PREFIX}/${SEAFILE_SERVER}/runtime/ \
 		${STAGEDIR}${PREFIX}/${SEAHUBDIR} ${STAGEDIR}${PREFIX}/${SEAHUB_DATA_DIR} \
-		${STAGEDIR}${PREFIX}/${SEAHUB_DATA_DIR}/custom
+		${STAGEDIR}${PREFIX}/${SEAHUB_DATA_DIR}/custom \
+		${STAGEDIR}${PREFIX}/${SEAFILE_SERVER}/upgrade
 	(cd ${WRKSRC} && ${COPYTREE_SHARE} . ${STAGEDIR}${PREFIX}/${SEAHUBDIR} \
 	"! -name Makefile ! -name seahub.conf ! -name avatars \
 	! -name default-non-register.jpg ! -name default.png ! -name groups")
@@ -90,6 +105,11 @@ do-install:
 		 ${STAGEDIR}${PREFIX}/${SEAHUB_DATA_DIR})
 	${LN} -fs ../../../seahub-data/avatars \
 		${STAGEDIR}${PREFIX}/${SEAHUBDIR}/media/avatars
+	${INSTALL_SCRIPT} ${WRKSRC}/scripts/*.[ps][yh] ${STAGEDIR}${PREFIX}/${SEAFILE_SERVER}
+	${INSTALL_SCRIPT} ${WRKSRC}/scripts/upgrade/*.[ps][yh] \
+		${STAGEDIR}${PREFIX}/${SEAFILE_SERVER}/upgrade
+	(cd ${WRKSRC}/scripts && \
+		${COPYTREE_SHARE} "upgrade/sql" ${STAGEDIR}${PREFIX}/${SEAFILE_SERVER})
 
 .include "${.CURDIR}/../../net-mgmt/seafile-server/Makefile.include"
 
diff --git a/www/seahub/distinfo b/www/seahub/distinfo
index 8d9d2020fcb6..5d2d98531330 100644
--- a/www/seahub/distinfo
+++ b/www/seahub/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1630718061
-SHA256 (haiwen-seahub-v8.0.7-server_GH0.tar.gz) = 3b1cdac99bf5e8ddd4d81f3a05820f08a0916078018b2366b0bff86737805b64
-SIZE (haiwen-seahub-v8.0.7-server_GH0.tar.gz) = 27628035
+TIMESTAMP = 1639252440
+SHA256 (haiwen-seahub-v9.0.2-server_GH0.tar.gz) = 1c13800c3e2db89ff5f5eae26e7fd1cabaa3bcfe702c3c58062e34437d308cb8
+SIZE (haiwen-seahub-v9.0.2-server_GH0.tar.gz) = 28567480
diff --git a/net-mgmt/seafile-server/files/patch-scripts_setup-seafile-mysql.py b/www/seahub/files/patch-scripts_setup-seafile-mysql.py
similarity index 100%
rename from net-mgmt/seafile-server/files/patch-scripts_setup-seafile-mysql.py
rename to www/seahub/files/patch-scripts_setup-seafile-mysql.py
diff --git a/net-mgmt/seafile-server/files/patch-scripts_setup-seafile.sh b/www/seahub/files/patch-scripts_setup-seafile.sh
similarity index 100%
rename from net-mgmt/seafile-server/files/patch-scripts_setup-seafile.sh
rename to www/seahub/files/patch-scripts_setup-seafile.sh
diff --git a/net-mgmt/seafile-server/files/patch-scripts_upgrade_regenerate__secret__key.sh b/www/seahub/files/patch-scripts_upgrade_regenerate__secret__key.sh
similarity index 100%
rename from net-mgmt/seafile-server/files/patch-scripts_upgrade_regenerate__secret__key.sh
rename to www/seahub/files/patch-scripts_upgrade_regenerate__secret__key.sh
diff --git a/www/seahub/pkg-plist b/www/seahub/pkg-plist
index 2973662dccf7..a7cc404d35a5 100644
--- a/www/seahub/pkg-plist
+++ b/www/seahub/pkg-plist
@@ -1,3 +1,27 @@
+%%SEAFILE_SERVER%%/check-db-type.py
+%%SEAFILE_SERVER%%/check_init_admin.py
+%%SEAFILE_SERVER%%/index_op.py
+%%SEAFILE_SERVER%%/migrate-repo.py
+%%SEAFILE_SERVER%%/migrate-repo.sh
+%%SEAFILE_SERVER%%/migrate.py
+%%SEAFILE_SERVER%%/migrate.sh
+%%SEAFILE_SERVER%%/pro.py
+%%SEAFILE_SERVER%%/remove-objs.py
+%%SEAFILE_SERVER%%/remove-objs.sh
+%%SEAFILE_SERVER%%/reset-admin.sh
+%%SEAFILE_SERVER%%/run_index_master.sh
+%%SEAFILE_SERVER%%/run_index_worker.sh
+%%SEAFILE_SERVER%%/seaf-backup-cmd.py
+%%SEAFILE_SERVER%%/seaf-backup-cmd.sh
+%%SEAFILE_SERVER%%/seaf-encrypt.sh
+%%SEAFILE_SERVER%%/seaf-fsck.sh
+%%SEAFILE_SERVER%%/seaf-fuse.sh
+%%SEAFILE_SERVER%%/seaf-gc.sh
+%%SEAFILE_SERVER%%/seaf-import.sh
+%%SEAFILE_SERVER%%/%%USERS%%-background-tasks.sh
+%%SEAFILE_SERVER%%/%%USERS%%.sh
+%%SEAFILE_SERVER%%/seafobj_migrate.py
+%%SEAHUBDIR%%.sh
 %%SEAHUBDIR%%/.github/workflows/dist.yml
 %%SEAHUBDIR%%/.github/workflows/test.yml
 %%SEAHUBDIR%%/.tx/config
@@ -70,6 +94,12 @@
 %%SEAHUBDIR%%/frontend/src/components/dialog/create-group-dialog.js
 %%SEAHUBDIR%%/frontend/src/components/dialog/create-repo-dialog.js
 %%SEAHUBDIR%%/frontend/src/components/dialog/create-tag-dialog.js
+%%SEAHUBDIR%%/frontend/src/components/dialog/custom-permission/add-custom-permission.js
+%%SEAHUBDIR%%/frontend/src/components/dialog/custom-permission/custom-permission-editor.js
+%%SEAHUBDIR%%/frontend/src/components/dialog/custom-permission/custom-permission-item.js
+%%SEAHUBDIR%%/frontend/src/components/dialog/custom-permission/custom-permission-manager.js
+%%SEAHUBDIR%%/frontend/src/components/dialog/custom-permission/edit-custom-permission.js
+%%SEAHUBDIR%%/frontend/src/components/dialog/custom-permission/list-custom-permissions.js
 %%SEAHUBDIR%%/frontend/src/components/dialog/delete-dialog.js
 %%SEAHUBDIR%%/frontend/src/components/dialog/delete-repo-dialog.js
 %%SEAHUBDIR%%/frontend/src/components/dialog/dismiss-group-dialog.js
@@ -227,6 +257,7 @@
 %%SEAHUBDIR%%/frontend/src/components/file-view/file-view-tip.js
 %%SEAHUBDIR%%/frontend/src/components/file-view/file-view.js
 %%SEAHUBDIR%%/frontend/src/components/file-view/participants-list.js
+%%SEAHUBDIR%%/frontend/src/components/group-members.js
 %%SEAHUBDIR%%/frontend/src/components/history-list-view/history-list-item.js
 %%SEAHUBDIR%%/frontend/src/components/history-list-view/history-list-view.js
 %%SEAHUBDIR%%/frontend/src/components/history-trash-file-view/download.js
@@ -235,6 +266,7 @@
 %%SEAHUBDIR%%/frontend/src/components/icon-button.js
 %%SEAHUBDIR%%/frontend/src/components/index-viewer.js
 %%SEAHUBDIR%%/frontend/src/components/libs-mobile-thead.js
+%%SEAHUBDIR%%/frontend/src/components/list-and-add-group-members.js
 %%SEAHUBDIR%%/frontend/src/components/loading.js
 %%SEAHUBDIR%%/frontend/src/components/logo.js
 %%SEAHUBDIR%%/frontend/src/components/main-content-wrapper.js
@@ -245,6 +277,7 @@
 %%SEAHUBDIR%%/frontend/src/components/menu-control.js
 %%SEAHUBDIR%%/frontend/src/components/modal-portal.js
 %%SEAHUBDIR%%/frontend/src/components/more.js
+%%SEAHUBDIR%%/frontend/src/components/op-icon.js
 %%SEAHUBDIR%%/frontend/src/components/org-admin-group-nav.js
 %%SEAHUBDIR%%/frontend/src/components/org-admin-user-nav.js
 %%SEAHUBDIR%%/frontend/src/components/paginator.js
@@ -254,6 +287,7 @@
 %%SEAHUBDIR%%/frontend/src/components/repo-info-bar.js
 %%SEAHUBDIR%%/frontend/src/components/review-list-view/review-comment-dialog.js
 %%SEAHUBDIR%%/frontend/src/components/review-list-view/review-comments.js
+%%SEAHUBDIR%%/frontend/src/components/search-group-members.js
 %%SEAHUBDIR%%/frontend/src/components/search/search-by-name.js
 %%SEAHUBDIR%%/frontend/src/components/search/search-result-item.js
 %%SEAHUBDIR%%/frontend/src/components/search/search.js
@@ -415,6 +449,7 @@
 %%SEAHUBDIR%%/frontend/src/index.js
 %%SEAHUBDIR%%/frontend/src/markdown-editor.js
 %%SEAHUBDIR%%/frontend/src/models/activity.js
+%%SEAHUBDIR%%/frontend/src/models/custom-permission.js
 %%SEAHUBDIR%%/frontend/src/models/dirent.js
 %%SEAHUBDIR%%/frontend/src/models/draft.js
 %%SEAHUBDIR%%/frontend/src/models/file-tag.js
@@ -455,6 +490,7 @@
 %%SEAHUBDIR%%/frontend/src/pages/my-libs/mylib-repo-list-item.js
 %%SEAHUBDIR%%/frontend/src/pages/my-libs/mylib-repo-list-view.js
 %%SEAHUBDIR%%/frontend/src/pages/my-libs/mylib-repo-menu.js
+%%SEAHUBDIR%%/frontend/src/pages/ocm-via-webdav/ocm-via-webdav.js
 %%SEAHUBDIR%%/frontend/src/pages/org-admin/index.js
 %%SEAHUBDIR%%/frontend/src/pages/org-admin/main-panel-topbar.js
 %%SEAHUBDIR%%/frontend/src/pages/org-admin/org-admin-list.js
@@ -660,8 +696,6 @@
 %%SEAHUBDIR%%/locale/ar/LC_MESSAGES/django.po
 %%SEAHUBDIR%%/locale/ar/LC_MESSAGES/djangojs.mo
 %%SEAHUBDIR%%/locale/ar/LC_MESSAGES/djangojs.po
-%%SEAHUBDIR%%/locale/ar_EG/LC_MESSAGES/django.mo
-%%SEAHUBDIR%%/locale/ar_EG/LC_MESSAGES/djangojs.mo
 %%SEAHUBDIR%%/locale/bg/LC_MESSAGES/django.mo
 %%SEAHUBDIR%%/locale/bg/LC_MESSAGES/django.po
 %%SEAHUBDIR%%/locale/bg/LC_MESSAGES/djangojs.mo
@@ -676,10 +710,8 @@
 %%SEAHUBDIR%%/locale/cs/LC_MESSAGES/django.po
 %%SEAHUBDIR%%/locale/cs/LC_MESSAGES/djangojs.mo
 %%SEAHUBDIR%%/locale/cs/LC_MESSAGES/djangojs.po
-%%SEAHUBDIR%%/locale/cs_CZ/LC_MESSAGES/django.mo
 %%SEAHUBDIR%%/locale/cs_CZ/LC_MESSAGES/djangojs.mo
 %%SEAHUBDIR%%/locale/cs_CZ/LC_MESSAGES/djangojs.po
-%%SEAHUBDIR%%/locale/da_DK/LC_MESSAGES/django.mo
 %%SEAHUBDIR%%/locale/da_DK/LC_MESSAGES/djangojs.mo
 %%SEAHUBDIR%%/locale/da_DK/LC_MESSAGES/djangojs.po
 %%SEAHUBDIR%%/locale/de/LC_MESSAGES/django.mo
@@ -690,7 +722,6 @@
 %%SEAHUBDIR%%/locale/el/LC_MESSAGES/django.po
 %%SEAHUBDIR%%/locale/el/LC_MESSAGES/djangojs.mo
 %%SEAHUBDIR%%/locale/el/LC_MESSAGES/djangojs.po
-%%SEAHUBDIR%%/locale/el_GR/LC_MESSAGES/django.mo
 %%SEAHUBDIR%%/locale/el_GR/LC_MESSAGES/djangojs.mo
 %%SEAHUBDIR%%/locale/el_GR/LC_MESSAGES/djangojs.po
 %%SEAHUBDIR%%/locale/en/LC_MESSAGES/django.mo
@@ -751,13 +782,10 @@
 %%SEAHUBDIR%%/locale/lt/LC_MESSAGES/django.po
 %%SEAHUBDIR%%/locale/lt/LC_MESSAGES/djangojs.mo
 %%SEAHUBDIR%%/locale/lt/LC_MESSAGES/djangojs.po
-%%SEAHUBDIR%%/locale/lt_LT/LC_MESSAGES/django.mo
-%%SEAHUBDIR%%/locale/lt_LT/LC_MESSAGES/djangojs.mo
 %%SEAHUBDIR%%/locale/lv/LC_MESSAGES/django.mo
 %%SEAHUBDIR%%/locale/lv/LC_MESSAGES/django.po
 %%SEAHUBDIR%%/locale/lv/LC_MESSAGES/djangojs.mo
 %%SEAHUBDIR%%/locale/lv/LC_MESSAGES/djangojs.po
-%%SEAHUBDIR%%/locale/lv_LV/LC_MESSAGES/django.mo
 %%SEAHUBDIR%%/locale/lv_LV/LC_MESSAGES/djangojs.mo
 %%SEAHUBDIR%%/locale/lv_LV/LC_MESSAGES/djangojs.po
 %%SEAHUBDIR%%/locale/mk/LC_MESSAGES/django.mo
@@ -766,16 +794,12 @@
 %%SEAHUBDIR%%/locale/mk/LC_MESSAGES/djangojs.po
 %%SEAHUBDIR%%/locale/nb/LC_MESSAGES/djangojs.mo
 %%SEAHUBDIR%%/locale/nb/LC_MESSAGES/djangojs.po
-%%SEAHUBDIR%%/locale/nb_NO/LC_MESSAGES/django.mo
 %%SEAHUBDIR%%/locale/nb_NO/LC_MESSAGES/djangojs.mo
 %%SEAHUBDIR%%/locale/nb_NO/LC_MESSAGES/djangojs.po
 %%SEAHUBDIR%%/locale/nl/LC_MESSAGES/django.mo
 %%SEAHUBDIR%%/locale/nl/LC_MESSAGES/django.po
 %%SEAHUBDIR%%/locale/nl/LC_MESSAGES/djangojs.mo
 %%SEAHUBDIR%%/locale/nl/LC_MESSAGES/djangojs.po
-%%SEAHUBDIR%%/locale/nl_BE/LC_MESSAGES/django.mo
-%%SEAHUBDIR%%/locale/nl_BE/LC_MESSAGES/djangojs.mo
-%%SEAHUBDIR%%/locale/nl_NL/LC_MESSAGES/django.mo
 %%SEAHUBDIR%%/locale/nl_NL/LC_MESSAGES/djangojs.mo
 %%SEAHUBDIR%%/locale/nl_NL/LC_MESSAGES/djangojs.po
 %%SEAHUBDIR%%/locale/pl/LC_MESSAGES/django.mo
@@ -786,7 +810,6 @@
 %%SEAHUBDIR%%/locale/pt_BR/LC_MESSAGES/django.po
 %%SEAHUBDIR%%/locale/pt_BR/LC_MESSAGES/djangojs.mo
 %%SEAHUBDIR%%/locale/pt_BR/LC_MESSAGES/djangojs.po
-%%SEAHUBDIR%%/locale/pt_PT/LC_MESSAGES/django.mo
 %%SEAHUBDIR%%/locale/pt_PT/LC_MESSAGES/djangojs.mo
 %%SEAHUBDIR%%/locale/pt_PT/LC_MESSAGES/djangojs.po
 %%SEAHUBDIR%%/locale/ru/LC_MESSAGES/django.mo
@@ -795,12 +818,10 @@
 %%SEAHUBDIR%%/locale/ru/LC_MESSAGES/djangojs.po
 %%SEAHUBDIR%%/locale/sk/LC_MESSAGES/django.mo
 %%SEAHUBDIR%%/locale/sk/LC_MESSAGES/django.po
-%%SEAHUBDIR%%/locale/sk_SK/LC_MESSAGES/django.mo
 %%SEAHUBDIR%%/locale/sk_SK/LC_MESSAGES/djangojs.mo
 %%SEAHUBDIR%%/locale/sk_SK/LC_MESSAGES/djangojs.po
 %%SEAHUBDIR%%/locale/sl/LC_MESSAGES/django.mo
 %%SEAHUBDIR%%/locale/sl/LC_MESSAGES/django.po
-%%SEAHUBDIR%%/locale/sl_SI/LC_MESSAGES/django.mo
 %%SEAHUBDIR%%/locale/sl_SI/LC_MESSAGES/djangojs.mo
 %%SEAHUBDIR%%/locale/sl_SI/LC_MESSAGES/djangojs.po
 %%SEAHUBDIR%%/locale/sv/LC_MESSAGES/django.mo
@@ -809,7 +830,6 @@
 %%SEAHUBDIR%%/locale/sv/LC_MESSAGES/djangojs.po
 %%SEAHUBDIR%%/locale/th/LC_MESSAGES/django.mo
 %%SEAHUBDIR%%/locale/th/LC_MESSAGES/django.po
-%%SEAHUBDIR%%/locale/th_TH/LC_MESSAGES/django.mo
 %%SEAHUBDIR%%/locale/th_TH/LC_MESSAGES/djangojs.mo
 %%SEAHUBDIR%%/locale/th_TH/LC_MESSAGES/djangojs.po
 %%SEAHUBDIR%%/locale/tr/LC_MESSAGES/django.mo
@@ -843,14 +863,14 @@
 %%SEAHUBDIR%%/media/assets/frontend/static/css/TCView.chunk.css
 %%SEAHUBDIR%%/media/assets/frontend/static/css/TCView.chunk.css.5f4395bd5445.map
 %%SEAHUBDIR%%/media/assets/frontend/static/css/TCView.chunk.css.map
-%%SEAHUBDIR%%/media/assets/frontend/static/css/app.chunk.796e189969b9.css
+%%SEAHUBDIR%%/media/assets/frontend/static/css/app.chunk.616e19aacf05.css
 %%SEAHUBDIR%%/media/assets/frontend/static/css/app.chunk.css
-%%SEAHUBDIR%%/media/assets/frontend/static/css/app.chunk.css.24bbe6830237.map
+%%SEAHUBDIR%%/media/assets/frontend/static/css/app.chunk.css.07788f09cd14.map
 %%SEAHUBDIR%%/media/assets/frontend/static/css/app.chunk.css.map
+%%SEAHUBDIR%%/media/assets/frontend/static/css/commons.chunk.4d53c3965f16.css
 %%SEAHUBDIR%%/media/assets/frontend/static/css/commons.chunk.css
-%%SEAHUBDIR%%/media/assets/frontend/static/css/commons.chunk.css.fa8e87d1a3b8.map
+%%SEAHUBDIR%%/media/assets/frontend/static/css/commons.chunk.css.9fa0f079774b.map
 %%SEAHUBDIR%%/media/assets/frontend/static/css/commons.chunk.css.map
-%%SEAHUBDIR%%/media/assets/frontend/static/css/commons.chunk.f668aa29560e.css
 %%SEAHUBDIR%%/media/assets/frontend/static/css/draft.chunk.99facfd7fd0f.css
 %%SEAHUBDIR%%/media/assets/frontend/static/css/draft.chunk.css
 %%SEAHUBDIR%%/media/assets/frontend/static/css/draft.chunk.css.af70e78607ce.map
@@ -867,9 +887,9 @@
 %%SEAHUBDIR%%/media/assets/frontend/static/css/historyTrashFileView.chunk.css
 %%SEAHUBDIR%%/media/assets/frontend/static/css/historyTrashFileView.chunk.css.4eb03419591a.map
 %%SEAHUBDIR%%/media/assets/frontend/static/css/historyTrashFileView.chunk.css.map
-%%SEAHUBDIR%%/media/assets/frontend/static/css/markdownEditor.chunk.98f8fad1742a.css
+%%SEAHUBDIR%%/media/assets/frontend/static/css/markdownEditor.chunk.777bb75d7cd0.css
 %%SEAHUBDIR%%/media/assets/frontend/static/css/markdownEditor.chunk.css
-%%SEAHUBDIR%%/media/assets/frontend/static/css/markdownEditor.chunk.css.e889093cfe42.map
+%%SEAHUBDIR%%/media/assets/frontend/static/css/markdownEditor.chunk.css.340676e80f48.map
 %%SEAHUBDIR%%/media/assets/frontend/static/css/markdownEditor.chunk.css.map
 %%SEAHUBDIR%%/media/assets/frontend/static/css/orgAdmin.chunk.8b57d27cb5c0.css
 %%SEAHUBDIR%%/media/assets/frontend/static/css/orgAdmin.chunk.css
@@ -919,207 +939,207 @@
 %%SEAHUBDIR%%/media/assets/frontend/static/css/wiki.chunk.css.104bd8a5f7b1.map
 %%SEAHUBDIR%%/media/assets/frontend/static/css/wiki.chunk.css.map
 %%SEAHUBDIR%%/media/assets/frontend/static/css/wiki.chunk.eb21f94192fe.css
-%%SEAHUBDIR%%/media/assets/frontend/static/js/TCAccept.chunk.6c67369642ab.js
+%%SEAHUBDIR%%/media/assets/frontend/static/js/TCAccept.chunk.e0905528f5d8.js
 %%SEAHUBDIR%%/media/assets/frontend/static/js/TCAccept.chunk.js
 %%SEAHUBDIR%%/media/assets/frontend/static/js/TCAccept.chunk.js.a33a33ebb381.map
 %%SEAHUBDIR%%/media/assets/frontend/static/js/TCAccept.chunk.js.map
-%%SEAHUBDIR%%/media/assets/frontend/static/js/TCView.chunk.f62ecb0def6d.js
+%%SEAHUBDIR%%/media/assets/frontend/static/js/TCView.chunk.448613cc0e73.js
 %%SEAHUBDIR%%/media/assets/frontend/static/js/TCView.chunk.js
 %%SEAHUBDIR%%/media/assets/frontend/static/js/TCView.chunk.js.06650baad97b.map
 %%SEAHUBDIR%%/media/assets/frontend/static/js/TCView.chunk.js.map
-%%SEAHUBDIR%%/media/assets/frontend/static/js/app.chunk.255d2847e10a.js
+%%SEAHUBDIR%%/media/assets/frontend/static/js/app.chunk.6d1a57e96d41.js
 %%SEAHUBDIR%%/media/assets/frontend/static/js/app.chunk.js
-%%SEAHUBDIR%%/media/assets/frontend/static/js/app.chunk.js.e7cda91f37e5.map
+%%SEAHUBDIR%%/media/assets/frontend/static/js/app.chunk.js.254965bdd3ba.map
 %%SEAHUBDIR%%/media/assets/frontend/static/js/app.chunk.js.map
-%%SEAHUBDIR%%/media/assets/frontend/static/js/commons.chunk.f0565a22c7bc.js
+%%SEAHUBDIR%%/media/assets/frontend/static/js/commons.chunk.4b9fb64ea60b.js
 %%SEAHUBDIR%%/media/assets/frontend/static/js/commons.chunk.js
-%%SEAHUBDIR%%/media/assets/frontend/static/js/commons.chunk.js.187be030c636.map
+%%SEAHUBDIR%%/media/assets/frontend/static/js/commons.chunk.js.273535edded4.map
 %%SEAHUBDIR%%/media/assets/frontend/static/js/commons.chunk.js.map
-%%SEAHUBDIR%%/media/assets/frontend/static/js/draft.chunk.4ece3ebe94ef.js
+%%SEAHUBDIR%%/media/assets/frontend/static/js/draft.chunk.ae2d1d903e80.js
 %%SEAHUBDIR%%/media/assets/frontend/static/js/draft.chunk.js
 %%SEAHUBDIR%%/media/assets/frontend/static/js/draft.chunk.js.2496d567d278.map
 %%SEAHUBDIR%%/media/assets/frontend/static/js/draft.chunk.js.map
-%%SEAHUBDIR%%/media/assets/frontend/static/js/fileHistory.chunk.a962e603cfbd.js
+%%SEAHUBDIR%%/media/assets/frontend/static/js/fileHistory.chunk.fb963dc6551f.js
 %%SEAHUBDIR%%/media/assets/frontend/static/js/fileHistory.chunk.js
 %%SEAHUBDIR%%/media/assets/frontend/static/js/fileHistory.chunk.js.9f50a9302aba.map
 %%SEAHUBDIR%%/media/assets/frontend/static/js/fileHistory.chunk.js.map
-%%SEAHUBDIR%%/media/assets/frontend/static/js/fileHistoryOld.chunk.20e44009c051.js
+%%SEAHUBDIR%%/media/assets/frontend/static/js/fileHistoryOld.chunk.ad05df6e058b.js
 %%SEAHUBDIR%%/media/assets/frontend/static/js/fileHistoryOld.chunk.js
-%%SEAHUBDIR%%/media/assets/frontend/static/js/fileHistoryOld.chunk.js.9aa5053bde50.map
+%%SEAHUBDIR%%/media/assets/frontend/static/js/fileHistoryOld.chunk.js.331ddc5b5603.map
 %%SEAHUBDIR%%/media/assets/frontend/static/js/fileHistoryOld.chunk.js.map
-%%SEAHUBDIR%%/media/assets/frontend/static/js/fileView.chunk.1a3659144e29.js
+%%SEAHUBDIR%%/media/assets/frontend/static/js/fileView.chunk.005b18000a4c.js
 %%SEAHUBDIR%%/media/assets/frontend/static/js/fileView.chunk.js
-%%SEAHUBDIR%%/media/assets/frontend/static/js/fileView.chunk.js.50aaea110933.map
+%%SEAHUBDIR%%/media/assets/frontend/static/js/fileView.chunk.js.2cbe961aaf1c.map
 %%SEAHUBDIR%%/media/assets/frontend/static/js/fileView.chunk.js.map
-%%SEAHUBDIR%%/media/assets/frontend/static/js/historyTrashFileView.chunk.cd24a9dd0f09.js
+%%SEAHUBDIR%%/media/assets/frontend/static/js/historyTrashFileView.chunk.e01553856a9a.js
 %%SEAHUBDIR%%/media/assets/frontend/static/js/historyTrashFileView.chunk.js
-%%SEAHUBDIR%%/media/assets/frontend/static/js/historyTrashFileView.chunk.js.8eb8e2a76b71.map
+%%SEAHUBDIR%%/media/assets/frontend/static/js/historyTrashFileView.chunk.js.42ffc175485b.map
 %%SEAHUBDIR%%/media/assets/frontend/static/js/historyTrashFileView.chunk.js.map
-%%SEAHUBDIR%%/media/assets/frontend/static/js/markdownEditor.chunk.eb55903a6757.js
+%%SEAHUBDIR%%/media/assets/frontend/static/js/markdownEditor.chunk.9c67dbdc93ca.js
 %%SEAHUBDIR%%/media/assets/frontend/static/js/markdownEditor.chunk.js
-%%SEAHUBDIR%%/media/assets/frontend/static/js/markdownEditor.chunk.js.74a535afb2a0.map
+%%SEAHUBDIR%%/media/assets/frontend/static/js/markdownEditor.chunk.js.c9562bf1873e.map
 %%SEAHUBDIR%%/media/assets/frontend/static/js/markdownEditor.chunk.js.map
-%%SEAHUBDIR%%/media/assets/frontend/static/js/orgAdmin.chunk.f9935e53034a.js
+%%SEAHUBDIR%%/media/assets/frontend/static/js/orgAdmin.chunk.0293c6d61d57.js
 %%SEAHUBDIR%%/media/assets/frontend/static/js/orgAdmin.chunk.js
 %%SEAHUBDIR%%/media/assets/frontend/static/js/orgAdmin.chunk.js.5ff0ef95a6cb.map
 %%SEAHUBDIR%%/media/assets/frontend/static/js/orgAdmin.chunk.js.map
-%%SEAHUBDIR%%/media/assets/frontend/static/js/repoFolderTrash.chunk.20623124a38b.js
+%%SEAHUBDIR%%/media/assets/frontend/static/js/repoFolderTrash.chunk.ce3ee62836c4.js
 %%SEAHUBDIR%%/media/assets/frontend/static/js/repoFolderTrash.chunk.js
-%%SEAHUBDIR%%/media/assets/frontend/static/js/repoFolderTrash.chunk.js.aec6e5f07305.map
+%%SEAHUBDIR%%/media/assets/frontend/static/js/repoFolderTrash.chunk.js.1a8ea2d39acb.map
 %%SEAHUBDIR%%/media/assets/frontend/static/js/repoFolderTrash.chunk.js.map
-%%SEAHUBDIR%%/media/assets/frontend/static/js/repoHistory.chunk.d75b0f317f2b.js
+%%SEAHUBDIR%%/media/assets/frontend/static/js/repoHistory.chunk.4cec17f8fcad.js
 %%SEAHUBDIR%%/media/assets/frontend/static/js/repoHistory.chunk.js
-%%SEAHUBDIR%%/media/assets/frontend/static/js/repoHistory.chunk.js.4bf4d4882f7f.map
+%%SEAHUBDIR%%/media/assets/frontend/static/js/repoHistory.chunk.js.a6745a1394a6.map
 %%SEAHUBDIR%%/media/assets/frontend/static/js/repoHistory.chunk.js.map
-%%SEAHUBDIR%%/media/assets/frontend/static/js/repoSnapshot.chunk.ffe51de7305e.js
+%%SEAHUBDIR%%/media/assets/frontend/static/js/repoSnapshot.chunk.7ac0ed21ea04.js
 %%SEAHUBDIR%%/media/assets/frontend/static/js/repoSnapshot.chunk.js
-%%SEAHUBDIR%%/media/assets/frontend/static/js/repoSnapshot.chunk.js.7072055e1613.map
+%%SEAHUBDIR%%/media/assets/frontend/static/js/repoSnapshot.chunk.js.a96cf3787332.map
 %%SEAHUBDIR%%/media/assets/frontend/static/js/repoSnapshot.chunk.js.map
 %%SEAHUBDIR%%/media/assets/frontend/static/js/runtime.f951dbc7e084.js
 %%SEAHUBDIR%%/media/assets/frontend/static/js/runtime.js
 %%SEAHUBDIR%%/media/assets/frontend/static/js/runtime.js.19b4ffdb34e6.map
 %%SEAHUBDIR%%/media/assets/frontend/static/js/runtime.js.map
-%%SEAHUBDIR%%/media/assets/frontend/static/js/search.chunk.0b633aba4fbf.js
+%%SEAHUBDIR%%/media/assets/frontend/static/js/search.chunk.95d9cbce4349.js
 %%SEAHUBDIR%%/media/assets/frontend/static/js/search.chunk.js
 %%SEAHUBDIR%%/media/assets/frontend/static/js/search.chunk.js.b65e7bde1f6f.map
 %%SEAHUBDIR%%/media/assets/frontend/static/js/search.chunk.js.map
-%%SEAHUBDIR%%/media/assets/frontend/static/js/settings.chunk.8edeb322f600.js
+%%SEAHUBDIR%%/media/assets/frontend/static/js/settings.chunk.aa7ca2b842e5.js
 %%SEAHUBDIR%%/media/assets/frontend/static/js/settings.chunk.js
-%%SEAHUBDIR%%/media/assets/frontend/static/js/settings.chunk.js.c44742255deb.map
+%%SEAHUBDIR%%/media/assets/frontend/static/js/settings.chunk.js.2a61533a1baa.map
 %%SEAHUBDIR%%/media/assets/frontend/static/js/settings.chunk.js.map
-%%SEAHUBDIR%%/media/assets/frontend/static/js/sharedDirView.chunk.91a8eff6d397.js
+%%SEAHUBDIR%%/media/assets/frontend/static/js/sharedDirView.chunk.40525c748812.js
 %%SEAHUBDIR%%/media/assets/frontend/static/js/sharedDirView.chunk.js
-%%SEAHUBDIR%%/media/assets/frontend/static/js/sharedDirView.chunk.js.c9edd9d19060.map
+%%SEAHUBDIR%%/media/assets/frontend/static/js/sharedDirView.chunk.js.5d89c30e2c3a.map
 %%SEAHUBDIR%%/media/assets/frontend/static/js/sharedDirView.chunk.js.map
-%%SEAHUBDIR%%/media/assets/frontend/static/js/sharedFileViewAudio.chunk.c0ae10c3a20c.js
+%%SEAHUBDIR%%/media/assets/frontend/static/js/sharedFileViewAudio.chunk.d6326f276416.js
 %%SEAHUBDIR%%/media/assets/frontend/static/js/sharedFileViewAudio.chunk.js
 %%SEAHUBDIR%%/media/assets/frontend/static/js/sharedFileViewAudio.chunk.js.e6ad94126f4b.map
 %%SEAHUBDIR%%/media/assets/frontend/static/js/sharedFileViewAudio.chunk.js.map
-%%SEAHUBDIR%%/media/assets/frontend/static/js/sharedFileViewDocument.chunk.5ec4e3be8896.js
+%%SEAHUBDIR%%/media/assets/frontend/static/js/sharedFileViewDocument.chunk.b27520a1869c.js
 %%SEAHUBDIR%%/media/assets/frontend/static/js/sharedFileViewDocument.chunk.js
-%%SEAHUBDIR%%/media/assets/frontend/static/js/sharedFileViewDocument.chunk.js.2161a6df64a7.map
+%%SEAHUBDIR%%/media/assets/frontend/static/js/sharedFileViewDocument.chunk.js.088a6a47dee8.map
 %%SEAHUBDIR%%/media/assets/frontend/static/js/sharedFileViewDocument.chunk.js.map
-%%SEAHUBDIR%%/media/assets/frontend/static/js/sharedFileViewImage.chunk.844751dfa689.js
+%%SEAHUBDIR%%/media/assets/frontend/static/js/sharedFileViewImage.chunk.02689d96623c.js
 %%SEAHUBDIR%%/media/assets/frontend/static/js/sharedFileViewImage.chunk.js
 %%SEAHUBDIR%%/media/assets/frontend/static/js/sharedFileViewImage.chunk.js.3418081aa4aa.map
 %%SEAHUBDIR%%/media/assets/frontend/static/js/sharedFileViewImage.chunk.js.map
-%%SEAHUBDIR%%/media/assets/frontend/static/js/sharedFileViewMarkdown.chunk.927ac7f733f7.js
+%%SEAHUBDIR%%/media/assets/frontend/static/js/sharedFileViewMarkdown.chunk.aaf354248f93.js
 %%SEAHUBDIR%%/media/assets/frontend/static/js/sharedFileViewMarkdown.chunk.js
 %%SEAHUBDIR%%/media/assets/frontend/static/js/sharedFileViewMarkdown.chunk.js.666ae420e1aa.map
 %%SEAHUBDIR%%/media/assets/frontend/static/js/sharedFileViewMarkdown.chunk.js.map
-%%SEAHUBDIR%%/media/assets/frontend/static/js/sharedFileViewPDF.chunk.2258939c30b2.js
+%%SEAHUBDIR%%/media/assets/frontend/static/js/sharedFileViewPDF.chunk.ca4fe00e2e11.js
 %%SEAHUBDIR%%/media/assets/frontend/static/js/sharedFileViewPDF.chunk.js
 %%SEAHUBDIR%%/media/assets/frontend/static/js/sharedFileViewPDF.chunk.js.7dea40add6f8.map
 %%SEAHUBDIR%%/media/assets/frontend/static/js/sharedFileViewPDF.chunk.js.map
-%%SEAHUBDIR%%/media/assets/frontend/static/js/sharedFileViewSVG.chunk.e510f13458ad.js
+%%SEAHUBDIR%%/media/assets/frontend/static/js/sharedFileViewSVG.chunk.c966a757e5c5.js
 %%SEAHUBDIR%%/media/assets/frontend/static/js/sharedFileViewSVG.chunk.js
 %%SEAHUBDIR%%/media/assets/frontend/static/js/sharedFileViewSVG.chunk.js.f3f741942462.map
 %%SEAHUBDIR%%/media/assets/frontend/static/js/sharedFileViewSVG.chunk.js.map
-%%SEAHUBDIR%%/media/assets/frontend/static/js/sharedFileViewSpreadsheet.chunk.5dc6ed4398d7.js
+%%SEAHUBDIR%%/media/assets/frontend/static/js/sharedFileViewSpreadsheet.chunk.54804ca95d29.js
 %%SEAHUBDIR%%/media/assets/frontend/static/js/sharedFileViewSpreadsheet.chunk.js
 %%SEAHUBDIR%%/media/assets/frontend/static/js/sharedFileViewSpreadsheet.chunk.js.b2d1eee16cbb.map
 %%SEAHUBDIR%%/media/assets/frontend/static/js/sharedFileViewSpreadsheet.chunk.js.map
-%%SEAHUBDIR%%/media/assets/frontend/static/js/sharedFileViewText.chunk.bc6fc86309fa.js
+%%SEAHUBDIR%%/media/assets/frontend/static/js/sharedFileViewText.chunk.f64373b016aa.js
 %%SEAHUBDIR%%/media/assets/frontend/static/js/sharedFileViewText.chunk.js
 %%SEAHUBDIR%%/media/assets/frontend/static/js/sharedFileViewText.chunk.js.4ef5058b591b.map
 %%SEAHUBDIR%%/media/assets/frontend/static/js/sharedFileViewText.chunk.js.map
-%%SEAHUBDIR%%/media/assets/frontend/static/js/sharedFileViewUnknown.chunk.ea9a6587f0a1.js
+%%SEAHUBDIR%%/media/assets/frontend/static/js/sharedFileViewUnknown.chunk.ead90eecccde.js
 %%SEAHUBDIR%%/media/assets/frontend/static/js/sharedFileViewUnknown.chunk.js
 %%SEAHUBDIR%%/media/assets/frontend/static/js/sharedFileViewUnknown.chunk.js.b5643139972c.map
 %%SEAHUBDIR%%/media/assets/frontend/static/js/sharedFileViewUnknown.chunk.js.map
-%%SEAHUBDIR%%/media/assets/frontend/static/js/sharedFileViewVideo.chunk.87e8f4b08579.js
+%%SEAHUBDIR%%/media/assets/frontend/static/js/sharedFileViewVideo.chunk.183b034329d8.js
 %%SEAHUBDIR%%/media/assets/frontend/static/js/sharedFileViewVideo.chunk.js
 %%SEAHUBDIR%%/media/assets/frontend/static/js/sharedFileViewVideo.chunk.js.1ae41a85e159.map
 %%SEAHUBDIR%%/media/assets/frontend/static/js/sharedFileViewVideo.chunk.js.map
-%%SEAHUBDIR%%/media/assets/frontend/static/js/sysAdmin.chunk.dd1a486f89a3.js
+%%SEAHUBDIR%%/media/assets/frontend/static/js/sysAdmin.chunk.cadd236a1cb9.js
 %%SEAHUBDIR%%/media/assets/frontend/static/js/sysAdmin.chunk.js
-%%SEAHUBDIR%%/media/assets/frontend/static/js/sysAdmin.chunk.js.b0e7e5f72f9b.map
+%%SEAHUBDIR%%/media/assets/frontend/static/js/sysAdmin.chunk.js.b23980c12235.map
 %%SEAHUBDIR%%/media/assets/frontend/static/js/sysAdmin.chunk.js.map
-%%SEAHUBDIR%%/media/assets/frontend/static/js/uploadLink.chunk.2e2bc6ebd899.js
+%%SEAHUBDIR%%/media/assets/frontend/static/js/uploadLink.chunk.88c29424c93a.js
 %%SEAHUBDIR%%/media/assets/frontend/static/js/uploadLink.chunk.js
-%%SEAHUBDIR%%/media/assets/frontend/static/js/uploadLink.chunk.js.6c13758a77e6.map
+%%SEAHUBDIR%%/media/assets/frontend/static/js/uploadLink.chunk.js.78bbeabe84a3.map
 %%SEAHUBDIR%%/media/assets/frontend/static/js/uploadLink.chunk.js.map
-%%SEAHUBDIR%%/media/assets/frontend/static/js/userNotifications.chunk.a4181e2136b1.js
+%%SEAHUBDIR%%/media/assets/frontend/static/js/userNotifications.chunk.9573611f8e76.js
 %%SEAHUBDIR%%/media/assets/frontend/static/js/userNotifications.chunk.js
 %%SEAHUBDIR%%/media/assets/frontend/static/js/userNotifications.chunk.js.8f504b149f58.map
 %%SEAHUBDIR%%/media/assets/frontend/static/js/userNotifications.chunk.js.map
-%%SEAHUBDIR%%/media/assets/frontend/static/js/viewFileDocument.chunk.6c64ada14cce.js
+%%SEAHUBDIR%%/media/assets/frontend/static/js/viewFileDocument.chunk.fb90521156f9.js
 %%SEAHUBDIR%%/media/assets/frontend/static/js/viewFileDocument.chunk.js
-%%SEAHUBDIR%%/media/assets/frontend/static/js/viewFileDocument.chunk.js.99dcc5bc42eb.map
+%%SEAHUBDIR%%/media/assets/frontend/static/js/viewFileDocument.chunk.js.8f89b6e59fb0.map
 %%SEAHUBDIR%%/media/assets/frontend/static/js/viewFileDocument.chunk.js.map
-%%SEAHUBDIR%%/media/assets/frontend/static/js/viewFileSpreadsheet.chunk.f854f056bc3a.js
+%%SEAHUBDIR%%/media/assets/frontend/static/js/viewFileSpreadsheet.chunk.7dee50a36f00.js
 %%SEAHUBDIR%%/media/assets/frontend/static/js/viewFileSpreadsheet.chunk.js
 %%SEAHUBDIR%%/media/assets/frontend/static/js/viewFileSpreadsheet.chunk.js.fbfdf7338d73.map
 %%SEAHUBDIR%%/media/assets/frontend/static/js/viewFileSpreadsheet.chunk.js.map
-%%SEAHUBDIR%%/media/assets/frontend/static/js/viewFileText.chunk.a9ea3e5b57c5.js
+%%SEAHUBDIR%%/media/assets/frontend/static/js/viewFileText.chunk.6e2227854c03.js
 %%SEAHUBDIR%%/media/assets/frontend/static/js/viewFileText.chunk.js
 %%SEAHUBDIR%%/media/assets/frontend/static/js/viewFileText.chunk.js.f0b0d1ae20e8.map
 %%SEAHUBDIR%%/media/assets/frontend/static/js/viewFileText.chunk.js.map
-%%SEAHUBDIR%%/media/assets/frontend/static/js/wiki.chunk.9e9caeb61185.js
+%%SEAHUBDIR%%/media/assets/frontend/static/js/wiki.chunk.75a0377baa68.js
 %%SEAHUBDIR%%/media/assets/frontend/static/js/wiki.chunk.js
-%%SEAHUBDIR%%/media/assets/frontend/static/js/wiki.chunk.js.048608b50834.map
+%%SEAHUBDIR%%/media/assets/frontend/static/js/wiki.chunk.js.cbbacb4d6940.map
 %%SEAHUBDIR%%/media/assets/frontend/static/js/wiki.chunk.js.map
-%%SEAHUBDIR%%/media/assets/scripts/i18n/ar/djangojs.d7a2b06f5ab4.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/ar/djangojs.9a97ec617cb3.js
 %%SEAHUBDIR%%/media/assets/scripts/i18n/ar/djangojs.js
-%%SEAHUBDIR%%/media/assets/scripts/i18n/ca/djangojs.2053d1d7d136.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/ca/djangojs.1602bb5aad18.js
 %%SEAHUBDIR%%/media/assets/scripts/i18n/ca/djangojs.js
-%%SEAHUBDIR%%/media/assets/scripts/i18n/cs/djangojs.d43934322966.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/cs/djangojs.ca60078b06ff.js
 %%SEAHUBDIR%%/media/assets/scripts/i18n/cs/djangojs.js
-%%SEAHUBDIR%%/media/assets/scripts/i18n/de/djangojs.d6e15c4b0e5b.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/de/djangojs.73996168abba.js
 %%SEAHUBDIR%%/media/assets/scripts/i18n/de/djangojs.js
-%%SEAHUBDIR%%/media/assets/scripts/i18n/el/djangojs.ae8dc26151a9.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/el/djangojs.b2edf5e25c65.js
 %%SEAHUBDIR%%/media/assets/scripts/i18n/el/djangojs.js
-%%SEAHUBDIR%%/media/assets/scripts/i18n/en/djangojs.2623d59dd64d.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/en/djangojs.705ead69114e.js
 %%SEAHUBDIR%%/media/assets/scripts/i18n/en/djangojs.js
-%%SEAHUBDIR%%/media/assets/scripts/i18n/es-ar/djangojs.0880663e6dec.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/es-ar/djangojs.aca8e3e7a4e8.js
 %%SEAHUBDIR%%/media/assets/scripts/i18n/es-ar/djangojs.js
-%%SEAHUBDIR%%/media/assets/scripts/i18n/es-mx/djangojs.d63b0b07088d.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/es-mx/djangojs.a6ad35c3b3d4.js
 %%SEAHUBDIR%%/media/assets/scripts/i18n/es-mx/djangojs.js
-%%SEAHUBDIR%%/media/assets/scripts/i18n/es/djangojs.fe2dce3dae0c.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/es/djangojs.c7a163473b76.js
 %%SEAHUBDIR%%/media/assets/scripts/i18n/es/djangojs.js
-%%SEAHUBDIR%%/media/assets/scripts/i18n/fi/djangojs.819a72b9c01a.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/fi/djangojs.618285320ff1.js
 %%SEAHUBDIR%%/media/assets/scripts/i18n/fi/djangojs.js
-%%SEAHUBDIR%%/media/assets/scripts/i18n/fr/djangojs.79dd9a10397f.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/fr/djangojs.92c5ed40a662.js
 %%SEAHUBDIR%%/media/assets/scripts/i18n/fr/djangojs.js
-%%SEAHUBDIR%%/media/assets/scripts/i18n/he/djangojs.0cc1a2a6c66a.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/he/djangojs.96ddc2c6cc08.js
 %%SEAHUBDIR%%/media/assets/scripts/i18n/he/djangojs.js
-%%SEAHUBDIR%%/media/assets/scripts/i18n/hu/djangojs.4920bad42d77.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/hu/djangojs.b0092411a355.js
 %%SEAHUBDIR%%/media/assets/scripts/i18n/hu/djangojs.js
-%%SEAHUBDIR%%/media/assets/scripts/i18n/is/djangojs.db2771a40896.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/is/djangojs.4df12eb3a36e.js
 %%SEAHUBDIR%%/media/assets/scripts/i18n/is/djangojs.js
-%%SEAHUBDIR%%/media/assets/scripts/i18n/it/djangojs.ed0401a698cd.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/it/djangojs.72b818a4d152.js
 %%SEAHUBDIR%%/media/assets/scripts/i18n/it/djangojs.js
-%%SEAHUBDIR%%/media/assets/scripts/i18n/ja/djangojs.8f239254bc3f.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/ja/djangojs.92b917b60042.js
 %%SEAHUBDIR%%/media/assets/scripts/i18n/ja/djangojs.js
-%%SEAHUBDIR%%/media/assets/scripts/i18n/ko/djangojs.ce80c4905247.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/ko/djangojs.99bd848d42b9.js
 %%SEAHUBDIR%%/media/assets/scripts/i18n/ko/djangojs.js
-%%SEAHUBDIR%%/media/assets/scripts/i18n/lv/djangojs.6d89698e8961.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/lv/djangojs.096d9ce2166f.js
 %%SEAHUBDIR%%/media/assets/scripts/i18n/lv/djangojs.js
-%%SEAHUBDIR%%/media/assets/scripts/i18n/nl/djangojs.d2eb8350bcbb.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/nl/djangojs.6ff029fafe86.js
 %%SEAHUBDIR%%/media/assets/scripts/i18n/nl/djangojs.js
-%%SEAHUBDIR%%/media/assets/scripts/i18n/pl/djangojs.3385cccb7b3a.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/pl/djangojs.db7a254e1b60.js
 %%SEAHUBDIR%%/media/assets/scripts/i18n/pl/djangojs.js
-%%SEAHUBDIR%%/media/assets/scripts/i18n/pt-br/djangojs.d03adfd24f18.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/pt-br/djangojs.fed93460cf52.js
 %%SEAHUBDIR%%/media/assets/scripts/i18n/pt-br/djangojs.js
-%%SEAHUBDIR%%/media/assets/scripts/i18n/ru/djangojs.f0c6b0b96109.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/ru/djangojs.d319f1e0097d.js
 %%SEAHUBDIR%%/media/assets/scripts/i18n/ru/djangojs.js
 %%SEAHUBDIR%%/media/assets/scripts/i18n/sk/djangojs.06183425c030.js
 %%SEAHUBDIR%%/media/assets/scripts/i18n/sk/djangojs.js
-%%SEAHUBDIR%%/media/assets/scripts/i18n/sl/djangojs.d7d3ebdaa129.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/sl/djangojs.1157faa2449b.js
 %%SEAHUBDIR%%/media/assets/scripts/i18n/sl/djangojs.js
-%%SEAHUBDIR%%/media/assets/scripts/i18n/sv/djangojs.2fee2a74930d.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/sv/djangojs.af55d9338ddf.js
 %%SEAHUBDIR%%/media/assets/scripts/i18n/sv/djangojs.js
-%%SEAHUBDIR%%/media/assets/scripts/i18n/th/djangojs.254c797c9b13.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/th/djangojs.ab7675c1eb28.js
 %%SEAHUBDIR%%/media/assets/scripts/i18n/th/djangojs.js
-%%SEAHUBDIR%%/media/assets/scripts/i18n/tr/djangojs.41f499b62a0f.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/tr/djangojs.3f23ce1b9baa.js
 %%SEAHUBDIR%%/media/assets/scripts/i18n/tr/djangojs.js
-%%SEAHUBDIR%%/media/assets/scripts/i18n/uk/djangojs.618f504ab106.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/uk/djangojs.b04d6303bc30.js
 %%SEAHUBDIR%%/media/assets/scripts/i18n/uk/djangojs.js
-%%SEAHUBDIR%%/media/assets/scripts/i18n/vi/djangojs.f7181587ed37.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/vi/djangojs.2032e73c832a.js
 %%SEAHUBDIR%%/media/assets/scripts/i18n/vi/djangojs.js
-%%SEAHUBDIR%%/media/assets/scripts/i18n/zh-cn/djangojs.bb0ce8be5244.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/zh-cn/djangojs.7c164596c78f.js
 %%SEAHUBDIR%%/media/assets/scripts/i18n/zh-cn/djangojs.js
-%%SEAHUBDIR%%/media/assets/scripts/i18n/zh-tw/djangojs.ef3c0a7e3323.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/zh-tw/djangojs.aa283ff3ca88.js
 %%SEAHUBDIR%%/media/assets/scripts/i18n/zh-tw/djangojs.js
 %%SEAHUBDIR%%/media/assets/scripts/lib/jquery-ui.min.bdcd176b5ec2.js
 %%SEAHUBDIR%%/media/assets/scripts/lib/jquery-ui.min.js
@@ -1155,6 +1175,11 @@
 %%SEAHUBDIR%%/media/css/sf_font3/iconfont.ttf
 %%SEAHUBDIR%%/media/css/sf_font3/iconfont.woff
 %%SEAHUBDIR%%/media/css/sf_font3/iconfont.woff2
+%%SEAHUBDIR%%/media/favicons/favicon.ico
+%%SEAHUBDIR%%/media/favicons/favicon.svg
+%%SEAHUBDIR%%/media/favicons/icon-192.png
+%%SEAHUBDIR%%/media/favicons/icon-512.png
+%%SEAHUBDIR%%/media/favicons/manifest.webmanifest
 %%SEAHUBDIR%%/media/fontawesome/css/fontawesome-all.min.css
 %%SEAHUBDIR%%/media/fontawesome/webfonts/fa-regular-400.eot
 %%SEAHUBDIR%%/media/fontawesome/webfonts/fa-regular-400.svg
@@ -1170,7 +1195,6 @@
 %%SEAHUBDIR%%/media/img/bg.png
 %%SEAHUBDIR%%/media/img/edit.png
 %%SEAHUBDIR%%/media/img/email_bg.jpg
-%%SEAHUBDIR%%/media/img/favicon.ico
 %%SEAHUBDIR%%/media/img/file-locked-32.png
 %%SEAHUBDIR%%/media/img/file/192/excel.png
 %%SEAHUBDIR%%/media/img/file/192/file.png
@@ -1274,309 +1298,344 @@
 %%SEAHUBDIR%%/media/js/CryptoJS/components/lib-typedarrays-min.js
 %%SEAHUBDIR%%/media/js/CryptoJS/rollups/aes.js
 %%SEAHUBDIR%%/media/js/CryptoJS/rollups/sha1.js
+%%SEAHUBDIR%%/media/js/GStarSDK.js
 %%SEAHUBDIR%%/media/js/base.js
 %%SEAHUBDIR%%/media/js/bootstrap.min.js
 %%SEAHUBDIR%%/media/js/file_crypto.js
 %%SEAHUBDIR%%/media/js/jq.min.js
 %%SEAHUBDIR%%/media/js/jquery.fileupload.min.js
 %%SEAHUBDIR%%/media/js/mathjax/tex-svg.js
-%%SEAHUBDIR%%/media/js/pdf/cmaps/78-EUC-H.bcmap
-%%SEAHUBDIR%%/media/js/pdf/cmaps/78-EUC-V.bcmap
-%%SEAHUBDIR%%/media/js/pdf/cmaps/78-H.bcmap
-%%SEAHUBDIR%%/media/js/pdf/cmaps/78-RKSJ-H.bcmap
-%%SEAHUBDIR%%/media/js/pdf/cmaps/78-RKSJ-V.bcmap
-%%SEAHUBDIR%%/media/js/pdf/cmaps/78-V.bcmap
-%%SEAHUBDIR%%/media/js/pdf/cmaps/78ms-RKSJ-H.bcmap
-%%SEAHUBDIR%%/media/js/pdf/cmaps/78ms-RKSJ-V.bcmap
-%%SEAHUBDIR%%/media/js/pdf/cmaps/83pv-RKSJ-H.bcmap
-%%SEAHUBDIR%%/media/js/pdf/cmaps/90ms-RKSJ-H.bcmap
-%%SEAHUBDIR%%/media/js/pdf/cmaps/90ms-RKSJ-V.bcmap
-%%SEAHUBDIR%%/media/js/pdf/cmaps/90msp-RKSJ-H.bcmap
-%%SEAHUBDIR%%/media/js/pdf/cmaps/90msp-RKSJ-V.bcmap
-%%SEAHUBDIR%%/media/js/pdf/cmaps/90pv-RKSJ-H.bcmap
-%%SEAHUBDIR%%/media/js/pdf/cmaps/90pv-RKSJ-V.bcmap
-%%SEAHUBDIR%%/media/js/pdf/cmaps/Add-H.bcmap
-%%SEAHUBDIR%%/media/js/pdf/cmaps/Add-RKSJ-H.bcmap
-%%SEAHUBDIR%%/media/js/pdf/cmaps/Add-RKSJ-V.bcmap
-%%SEAHUBDIR%%/media/js/pdf/cmaps/Add-V.bcmap
-%%SEAHUBDIR%%/media/js/pdf/cmaps/Adobe-CNS1-0.bcmap
-%%SEAHUBDIR%%/media/js/pdf/cmaps/Adobe-CNS1-1.bcmap
-%%SEAHUBDIR%%/media/js/pdf/cmaps/Adobe-CNS1-2.bcmap
-%%SEAHUBDIR%%/media/js/pdf/cmaps/Adobe-CNS1-3.bcmap
-%%SEAHUBDIR%%/media/js/pdf/cmaps/Adobe-CNS1-4.bcmap
-%%SEAHUBDIR%%/media/js/pdf/cmaps/Adobe-CNS1-5.bcmap
-%%SEAHUBDIR%%/media/js/pdf/cmaps/Adobe-CNS1-6.bcmap
-%%SEAHUBDIR%%/media/js/pdf/cmaps/Adobe-CNS1-UCS2.bcmap
-%%SEAHUBDIR%%/media/js/pdf/cmaps/Adobe-GB1-0.bcmap
-%%SEAHUBDIR%%/media/js/pdf/cmaps/Adobe-GB1-1.bcmap
-%%SEAHUBDIR%%/media/js/pdf/cmaps/Adobe-GB1-2.bcmap
-%%SEAHUBDIR%%/media/js/pdf/cmaps/Adobe-GB1-3.bcmap
-%%SEAHUBDIR%%/media/js/pdf/cmaps/Adobe-GB1-4.bcmap
-%%SEAHUBDIR%%/media/js/pdf/cmaps/Adobe-GB1-5.bcmap
-%%SEAHUBDIR%%/media/js/pdf/cmaps/Adobe-GB1-UCS2.bcmap
-%%SEAHUBDIR%%/media/js/pdf/cmaps/Adobe-Japan1-0.bcmap
-%%SEAHUBDIR%%/media/js/pdf/cmaps/Adobe-Japan1-1.bcmap
-%%SEAHUBDIR%%/media/js/pdf/cmaps/Adobe-Japan1-2.bcmap
-%%SEAHUBDIR%%/media/js/pdf/cmaps/Adobe-Japan1-3.bcmap
-%%SEAHUBDIR%%/media/js/pdf/cmaps/Adobe-Japan1-4.bcmap
-%%SEAHUBDIR%%/media/js/pdf/cmaps/Adobe-Japan1-5.bcmap
-%%SEAHUBDIR%%/media/js/pdf/cmaps/Adobe-Japan1-6.bcmap
-%%SEAHUBDIR%%/media/js/pdf/cmaps/Adobe-Japan1-UCS2.bcmap
-%%SEAHUBDIR%%/media/js/pdf/cmaps/Adobe-Korea1-0.bcmap
*** 1045 LINES SKIPPED ***