Merged 1.0.4_branch into master

This commit is contained in:
Scott Graves
2019-07-12 13:50:05 -05:00
17 changed files with 358 additions and 229 deletions

View File

@@ -1,4 +1,13 @@
# Changelog #
## 1.0.4 ##
* \#27: Implement Bitbucket backup download location
* \#28: Fix Linux upgrade
* Additional Linux distribution support:
* Debian 10
* OpenSUSE Leap 15.0
* OpenSUSE Leap 15.1
* OpenSUSE Tumbleweed
## 1.0.3 ##
* Linux distribution support
* Arch Linux

View File

@@ -1,5 +1,5 @@
# Repertory UI #
![alt text](https://i.ibb.co/jM2Q5Wf/repertory-1-0-0-beta.png)
![alt text](https://i.ibb.co/h8tssB4/Screen-Shot-2019-07-09-at-11-54-55-PM.png)
## GUI for [Repertory](https://bitbucket.org/blockstorage/repertory) ##
Repertory allows you to mount Sia and/or SiaPrime blockchain storage solutions via FUSE on Linux/OS X or via WinFSP on Windows.
@@ -9,10 +9,10 @@ Repertory allows you to mount Sia and/or SiaPrime blockchain storage solutions v
* SiaPrime >=1.4.0
## Downloads ##
* [Repertory UI v1.0.3 Linux 64-bit](https://pixeldrain.com/u/wjM4z9tn)
* **Repertory UI v1.0.4 Linux 64-bit** [<Primary\>](https://pixeldrain.com/u/jVeUr8Zq) [<Alternate\>](https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.0.4_linux_x86_64.AppImage)
* NOTE: Linux distributions require `fuse` and `libfuse` to be installed.
* [Repertory UI v1.0.3 OS X 64-bit](https://pixeldrain.com/u/pQPh4q9d)
* [Repertory UI v1.0.3 Windows 64-bit](https://pixeldrain.com/u/WpBrXw0Z)
* **Repertory UI v1.0.4 OS X 64-bit** [<Primary\>](https://pixeldrain.com/u/uKrr0H5r) [<Alternate\>](https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.0.4_mac.dmg)
* **Repertory UI v1.0.4 Windows 64-bit** [<Primary\>](https://pixeldrain.com/u/PlUcsmJN) [<Alternate\>](https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.0.4_win.exe)
## Supported Platforms ##
* OS X 64-bit
@@ -22,12 +22,16 @@ Repertory allows you to mount Sia and/or SiaPrime blockchain storage solutions v
* Bodhi 5.0.0
* CentOS 7
* Debian 9
* Debian 10
* Elementary OS 5.0
* Fedora 28
* Fedora 29
* Fedora 30
* Linux Mint 19
* Linux Mint 19.1
* OpenSUSE Leap 15.0
* OpenSUSE Leap 15.1
* OpenSUSE Tumbleweed
* Solus
* Ubuntu 18.04
* Ubuntu 18.10

View File

@@ -2,6 +2,8 @@
setlocal EnableDelayedExpansion
set ROOT=%~dp0%
set /a ENABLE_UPLOAD=%1
set BITBUCKET_AUTH=%2
set OPENSSL_BIN="c:\OpenSSL-Win64\bin\openssl.exe"
set PRIVATE_KEY="c:\src\cert\blockstorage_dev_private.pem"
@@ -25,24 +27,33 @@ pushd "%ROOT%"
pushd dist
(certutil -hashfile "%OUT_FILE%" SHA256 | %SED_BIN% -e "1d" -e "$d" -e "s/\ //g") > "%OUT_FILE%.sha256" || (call :ERROR "Create sha-256 failed")
"%OPENSSL_BIN%" dgst -sha256 -sign "%PRIVATE_KEY%" -out "%OUT_FILE%.sig" "%OUT_FILE%" || (call :ERROR "Create signature failed")
"%OPENSSL_BIN%" dgst -sha256 -verify "%PUBLIC_KEY%" -signature "%OUT_FILE%.sig" "%OUT_FILE%" || (call :ERROR "Verify signature failed")
"%B64_BIN%" -e "%OUT_FILE%.sig" "%OUT_FILE%.sig.b64" || (call :ERROR "Create base64 failed")
for /f "delims=" %%i in ('type %OUT_FILE%.sig.b64') do set APP_SIG=!APP_SIG!%%i
for /f "delims=" %%i in ('type %OUT_FILE%.sha256') do set APP_SHA256=!APP_SHA256!%%i
del /q upload_response.json 1>NUL 2>&1
if "%ENABLE_UPLOAD%"=="1" (
for /f "delims=" %%i in ('type %OUT_FILE%.sig.b64') do set APP_SIG=!APP_SIG!%%i
for /f "delims=" %%i in ('type %OUT_FILE%.sha256') do set APP_SHA256=!APP_SHA256!%%i
("%CURL_BIN%" -F name="%OUT_FILE%" -F anonymous=true -F file="@%OUT_FILE%" https://pixeldrain.com/api/file > upload_response.json) || (
call :PIXEL_RESPONSE 0
del /q upload_response.json 1>NUL 2>&1
("%CURL_BIN%" -F name="%OUT_FILE%" -F anonymous=true -F file="@%OUT_FILE%" https://pixeldrain.com/api/file > upload_response.json) || (
call :PIXEL_RESPONSE 0
)
call :PIXEL_RESPONSE 1
set PIXEL_LOCATION=https://pixeldrain.com/api/file/!PIXEL_ID!
call :UPLOAD_TO_BITBUCKET "%OUT_FILE%"
call :UPLOAD_TO_BITBUCKET "%OUT_FILE%.sha256"
call :UPLOAD_TO_BITBUCKET "%OUT_FILE%.sig"
set BITBUCKET_LOCATION=https://bitbucket.org/blockstorage/repertory-ui/downloads/%OUT_FILE%
del /q releases.json 1>NUL 2>&1
("%JQ_BIN%" ".Versions.win32|=(.+ ["""%APP_VER%"""]|unique)" ..\releases.json>releases_temp.json && move /Y releases_temp.json releases.json 1>NUL 2>&1) || (call :ERROR "Update releases.json Versions failed")
("%JQ_BIN%" ".Locations.win32."""%APP_VER%""".sig="""!APP_SIG!"""" releases.json>releases_temp.json && move /Y releases_temp.json releases.json 1>NUL 2>&1) || (call :ERROR "Update releases.json sig failed")
("%JQ_BIN%" ".Locations.win32."""%APP_VER%""".sha256="""!APP_SHA256!"""" releases.json>releases_temp.json && move /Y releases_temp.json releases.json 1>NUL 2>&1) || (call :ERROR "Update releases.json sha256 failed")
("%JQ_BIN%" ".Locations.win32."""%APP_VER%""".urls=["""!PIXEL_LOCATION!""","""!BITBUCKET_LOCATION!"""]" releases.json>releases_temp.json && move /Y releases_temp.json releases.json 1>NUL 2>&1) || (call :ERROR "Update releases.json URL failed")
)
call :PIXEL_RESPONSE 1
set PIXEL_LOCATION=https://pixeldrain.com/api/file/!PIXEL_ID!
del /q releases.json 1>NUL 2>&1
("%JQ_BIN%" ".Versions.win32|=(.+ ["""%APP_VER%"""]|unique)" ..\releases.json>releases_temp.json && move /Y releases_temp.json releases.json 1>NUL 2>&1) || (call :ERROR "Update releases.json Versions failed")
("%JQ_BIN%" ".Locations.win32."""%APP_VER%""".sig="""!APP_SIG!"""" releases.json>releases_temp.json && move /Y releases_temp.json releases.json 1>NUL 2>&1) || (call :ERROR "Update releases.json sig failed")
("%JQ_BIN%" ".Locations.win32."""%APP_VER%""".sha256="""!APP_SHA256!"""" releases.json>releases_temp.json && move /Y releases_temp.json releases.json 1>NUL 2>&1) || (call :ERROR "Update releases.json sha256 failed")
("%JQ_BIN%" ".Locations.win32."""%APP_VER%""".urls=["""!PIXEL_LOCATION!"""]" releases.json>releases_temp.json && move /Y releases_temp.json releases.json 1>NUL 2>&1) || (call :ERROR "Update releases.json URL failed")
popd
) || (
call :ERROR "Create dist failed"
@@ -78,6 +89,14 @@ goto :EOF
)
goto :EOF
:UPLOAD_TO_BITBUCKET
set SOURCE_FILE=%1
call :NO_QUOTES SOURCE_FILE
call :NO_QUOTES BITBUCKET_AUTH
echo "Uploading !SOURCE_FILE! to Bitbucket"
(curl --fail -u "!BITBUCKET_AUTH!" -X POST https://api.bitbucket.org/2.0/repositories/blockstorage/repertory-ui/downloads -F files="@!SOURCE_FILE!" > upload_response.json) || (call :ERROR "Upload to Bitbucket failed: %SOURCE_FILE%")
goto :EOF
:ERROR
echo %1
set ERROR_EXIT=1

View File

@@ -1,49 +1,79 @@
#!/bin/sh
beginsWith() { case $2 in "$1"*) true;; *) false;; esac; }
PATH=$(pwd)/bin:$PATH
export PATH
DISTRO_LIST="arch centos7 debian9 fedora28 fedora29 fedora30 solus ubuntu18.04 ubuntu18.10 ubuntu19.04"
ENABLE_UPLOAD=$1
BITBUCKET_AUTH=$2
PRIVATE_KEY=../../blockstorage_dev_private.pem
PUBLIC_KEY=./blockstorage_dev_public.pem
PUBLIC_KEY=../blockstorage_dev_public.pem
APP_VER=$(grep -m1 -a version package.json|sed -e "s/\"//g" -e "s/version: //g" -e "s/,//g" -e "s/ //g")
OUT_FILE=repertory-ui_${APP_VER}_linux_x86_64.AppImage
if beginsWith darwin "$OSTYPE"; then
DISTRO_LIST="darwin"
OUT_FILE=repertory-ui_${APP_VER}_mac.dmg
BASE64_EXEC=base64
JQ_EXEC=jq-osx-amd64
SHA256_EXEC="shasum -a 256 -b"
else
DISTRO_LIST="arch centos7 debian9 debian10 fedora28 fedora29 fedora30 opensuse15 opensuse15.1 solus tumbleweed ubuntu18.04 ubuntu18.10 ubuntu19.04"
OUT_FILE=repertory-ui_${APP_VER}_linux_x86_64.AppImage
BASE64_EXEC="base64 -w0"
JQ_EXEC=jq-linux64
SHA256_EXEC="sha256sum -b"
fi
exit_script() {
echo $1
exit 1
}
upload_to_bitbucket() {
SOURCE_FILE=$1
curl --fail -u "${BITBUCKET_AUTH}" -X POST https://api.bitbucket.org/2.0/repositories/blockstorage/repertory-ui/downloads -F files=@${SOURCE_FILE} > upload_response.json || exit_script "Upload to Bitbucket failed: ${SOURCE_FILE}"
}
chmod +x "bin/${JQ_EXEC}" || exit_script "chmod +x ${JQ_EXEC} failed"
if npm run dist; then
cd dist
sha256sum -b ${OUT_FILE} > ${OUT_FILE}.sha256 || exit_script "Create sha256 failed"
${SHA256_EXEC} ${OUT_FILE} > ${OUT_FILE}.sha256 || exit_script "Create sha256 failed"
openssl dgst -sha256 -sign "${PRIVATE_KEY}" -out "${OUT_FILE}.sig" "${OUT_FILE}" || exit_script "Create signature failed"
base64 -w0 "${OUT_FILE}.sig" > "${OUT_FILE}.sig.b64" || exit_script "Create base64 failed"
rm -f upload_response.json 1>/dev/null 2>&1
curl -F name="${OUT_FILE}" -F anonymous=true -F file="@${OUT_FILE}" https://pixeldrain.com/api/file > upload_response.json || exit_script "Upload to Pixeldrain failed"
PIXEL_SUCCESS=$(jq-linux64 .success upload_response.json)
if [ "${PIXEL_SUCCESS}" = "false" ]; then
PIXEL_MESSAGE=$(jq-linux64 .message upload_response.json)
exit_script "${PIXEL_MESSAGE}"
else
PIXEL_ID=$(jq-linux64 .id upload_response.json|sed s/\"//g)
PIXEL_LOCATION=https://pixeldrain.com/api/file/${PIXEL_ID}
openssl dgst -sha256 -verify "${PUBLIC_KEY}" -signature "${OUT_FILE}.sig" "${OUT_FILE}" || exit_script "Verify signature failed"
${BASE64_EXEC} "${OUT_FILE}.sig" > "${OUT_FILE}.sig.b64" || exit_script "Create base64 failed"
if [ "$ENABLE_UPLOAD" = "1" ]; then
APP_SIG=$(cat ${OUT_FILE}.sig.b64)
APP_SHA256=$(cat ${OUT_FILE}.sha256 | awk '{print $1;}')
cp -f ../releases.json ./releases.json
for DISTRONAME in ${DISTRO_LIST}; do
jq-linux64 ".Versions[\"${DISTRONAME}\"]|=(.+ [\"${APP_VER}\"]|unique)" releases.json > releases_temp.json || exit_script "Update releases.json Versions failed"
jq-linux64 ".Locations[\"${DISTRONAME}\"].\"${APP_VER}\".sig=\"${APP_SIG}\"" releases_temp.json > releases.json || exit_script "Update releases.json sig failed"
jq-linux64 ".Locations[\"${DISTRONAME}\"].\"${APP_VER}\".sha256=\"${APP_SHA256}\"" releases.json > releases_temp.json || exit_script "Update releases.json sha256 failed"
jq-linux64 ".Locations[\"${DISTRONAME}\"].\"${APP_VER}\".urls=[\"${PIXEL_LOCATION}\"]" releases_temp.json > releases.json || exit_script "Update releases.json URL failed"
done
rm -f releases_temp.json
rm -f upload_response.json 1>/dev/null 2>&1
curl --fail -F name="${OUT_FILE}" -F anonymous=true -F file="@${OUT_FILE}" https://pixeldrain.com/api/file > upload_response.json || exit_script "Upload to Pixeldrain failed"
PIXEL_SUCCESS=$(${JQ_EXEC} .success upload_response.json)
if [ "${PIXEL_SUCCESS}" = "false" ]; then
PIXEL_MESSAGE=$(${JQ_EXEC} .message upload_response.json)
exit_script "${PIXEL_MESSAGE}"
else
PIXEL_ID=$(${JQ_EXEC} .id upload_response.json|sed s/\"//g)
PIXEL_LOCATION=https://pixeldrain.com/api/file/${PIXEL_ID}
upload_to_bitbucket "${OUT_FILE}"
upload_to_bitbucket "${OUT_FILE}.sha256"
upload_to_bitbucket "${OUT_FILE}.sig"
BITBUCKET_LOCATION=https://bitbucket.org/blockstorage/repertory-ui/downloads/${OUT_FILE}
cp -f ../releases.json ./releases.json
for DISTRONAME in ${DISTRO_LIST}; do
${JQ_EXEC} ".Versions[\"${DISTRONAME}\"]|=(.+ [\"${APP_VER}\"]|unique)" releases.json > releases_temp.json || exit_script "Update releases.json Versions failed"
${JQ_EXEC} ".Locations[\"${DISTRONAME}\"].\"${APP_VER}\".sig=\"${APP_SIG}\"" releases_temp.json > releases.json || exit_script "Update releases.json sig failed"
${JQ_EXEC} ".Locations[\"${DISTRONAME}\"].\"${APP_VER}\".sha256=\"${APP_SHA256}\"" releases.json > releases_temp.json || exit_script "Update releases.json sha256 failed"
${JQ_EXEC} ".Locations[\"${DISTRONAME}\"].\"${APP_VER}\".urls=[\"${PIXEL_LOCATION}\",\"${BITBUCKET_LOCATION}\"]" releases_temp.json > releases.json || exit_script "Update releases.json URL failed"
done
rm -f releases_temp.json
fi
fi
cd -
else

View File

@@ -1,48 +0,0 @@
#!/bin/sh
PATH=$(pwd)/bin:$PATH
export PATH
PRIVATE_KEY=../../blockstorage_dev_private.pem
PUBLIC_KEY=./blockstorage_dev_public.pem
APP_VER=$(grep -m1 -a version package.json|sed -e "s/\"//g" -e "s/version: //g" -e "s/,//g" -e "s/ //g")
OUT_FILE=repertory-ui_${APP_VER}_mac.dmg
exit_script() {
echo $1
exit 1
}
if npm run dist; then
cd dist
shasum -a 256 -b ${OUT_FILE} > ${OUT_FILE}.sha256 || exit_script "Create sha256 failed"
openssl dgst -sha256 -sign "${PRIVATE_KEY}" -out "${OUT_FILE}.sig" "${OUT_FILE}" || exit_script "Create signature failed"
base64 "${OUT_FILE}.sig" > "${OUT_FILE}.sig.b64" || exit_script "Create base64 failed"
rm -f upload_response.json 1>/dev/null 2>&1
curl -F name="${OUT_FILE}" -F anonymous=true -F file="@${OUT_FILE}" https://pixeldrain.com/api/file > upload_response.json || exit_script "Upload to Pixeldrain failed"
PIXEL_SUCCESS=$(jq-osx-amd64 .success upload_response.json)
if [ "${PIXEL_SUCCESS}" = "false" ]; then
PIXEL_MESSAGE=$(jq-osx-amd64 .message upload_response.json)
exit_script "${PIXEL_MESSAGE}"
else
PIXEL_ID=$(jq-osx-amd64 .id upload_response.json|sed s/\"//g)
PIXEL_LOCATION=https://pixeldrain.com/api/file/${PIXEL_ID}
APP_SIG=$(cat ${OUT_FILE}.sig.b64)
APP_SHA256=$(cat ${OUT_FILE}.sha256 | awk '{print $1;}')
cp -f ../releases.json ./releases.json
jq-osx-amd64 ".Versions[\"darwin\"]|=(.+ [\"${APP_VER}\"]|unique)" releases.json > releases_temp.json || exit_script "Update releases.json Versions failed"
jq-osx-amd64 ".Locations[\"darwin\"].\"${APP_VER}\".sig=\"${APP_SIG}\"" releases_temp.json > releases.json || exit_script "Update releases.json sig failed"
jq-osx-amd64 ".Locations[\"darwin\"].\"${APP_VER}\".sha256=\"${APP_SHA256}\"" releases.json > releases_temp.json || exit_script "Update releases.json sha256 failed"
jq-osx-amd64 ".Locations[\"darwin\"].\"${APP_VER}\".urls=[\"${PIXEL_LOCATION}\"]" releases_temp.json > releases.json || exit_script "Update releases.json URL failed"
rm -f releases_temp.json
fi
cd -
else
exit_script "Create dist failed"
fi

View File

@@ -1,37 +1,37 @@
{
"name": "repertory-ui",
"version": "1.0.3",
"version": "1.0.4",
"private": true,
"author": "scott.e.graves@gmail.com",
"description": "GUI for Repertory - Repertory allows you to mount Sia and/or SiaPrime blockchain storage solutions via FUSE on Linux/OS X or via WinFSP on Windows.",
"dependencies": {
"@fortawesome/fontawesome-svg-core": "^1.2.17",
"@fortawesome/free-solid-svg-icons": "^5.8.1",
"@fortawesome/fontawesome-svg-core": "^1.2.19",
"@fortawesome/free-solid-svg-icons": "^5.9.0",
"@fortawesome/react-fontawesome": "^0.1.4",
"auto-launch": "^5.0.5",
"axios": "^0.18.0",
"axios": "^0.18.1",
"electron-debug": "^2.2.0",
"font-awesome": "^4.7.0",
"randomstring": "^1.1.5",
"node-schedule": "^1.3.2",
"randomstring": "^1.1.5",
"react": "^16.8.6",
"react-dom": "^16.8.6",
"react-loader-spinner": "^2.3.0",
"react-redux": "^7.0.3",
"react-redux": "^7.1.0",
"react-scripts": "2.1.8",
"react-tooltip": "^3.10.0",
"redux": "^4.0.1",
"redux-starter-kit": "^0.5.1",
"redux-thunk": "^2.3.0",
"unzipper": "^0.9.11",
"unzipper": "^0.9.15",
"winreg": "^1.2.4"
},
"devDependencies": {
"cross-env": "^5.2.0",
"electron": "^4.1.4",
"electron-builder": "^20.40.2",
"electron": "^4.2.6",
"electron-builder": "^20.44.4",
"extract-text-webpack-plugin": "^3.0.2",
"typescript": "^3.4.3",
"typescript": "^3.5.2",
"webpack-browser-plugin": "^1.0.20"
},
"scripts": {

View File

@@ -59,12 +59,27 @@ elif [ -f /etc/debian_version ]; then
DISTNAME=debian
DISTVER=$(head -1 /etc/debian_version|awk -F. '{print $1}')
if [ "$DISTVER" != "9" ]; then
resetDistVer
if [ "$DISTVER" != "10" ]; then
resetDistVer
fi
fi
elif [ -f /etc/os-release ]; then
. /etc/os-release
if [ "$ID" == "arch" ]; then
DISTNAME=arch
elif [ "$ID" == "opensuse-leap" ]; then
if [ "$VERSION_ID" == "15.0" ]; then
DISTNAME=opensuse
DISTVER=15
elif [ "$VERSION_ID" == "15.1" ]; then
DISTNAME=opensuse
DISTVER=15.1
else
resetDistVer
fi
elif [ "$ID" == "opensuse-tumbleweed" ]; then
DISTNAME=tumbleweed
DISTVER=
else
resetDistVer
fi

View File

@@ -16,7 +16,6 @@ require.extensions['.sh'] = function (module, filename) {
module.exports = fs.readFileSync(filename, 'utf8');
};
const detectScript = require('./detect_linux.sh');
const installScript = require('./update_linux.sh');
// Keep a global reference of the window object, if you don't, the window will
// be closed automatically when the JavaScript object is garbage collected.
@@ -30,14 +29,22 @@ let launchHidden = false;
let firstMountCheck = true;
let manualMountDetection = {};
let isShutdown = false;
let isQuiting = false;
let isInstalling = false;
app.on('before-quit', function () {
isQuiting = true;
});
function closeApplication() {
app.quit();
if (!isShutdown) {
isShutdown = true;
if (mainWindowTray) {
mainWindowTray.destroy();
}
app.quit();
}
}
function setWindowVisibility(show) {
@@ -188,12 +195,10 @@ function createWindow() {
mainWindow.loadURL(startUrl);
}
const instanceLock = app.requestSingleInstanceLock();
if (!instanceLock) {
closeApplication();
} else {
let instanceLock = app.requestSingleInstanceLock();
const configurePrimaryApp = () => {
app.on('second-instance', () => {
if (mainWindow) {
if (!isInstalling && mainWindow) {
setWindowVisibility(true);
}
});
@@ -203,6 +208,17 @@ if (!instanceLock) {
app.on('window-all-closed', () => {
closeApplication();
});
};
if (!instanceLock) {
setTimeout(() => {
if ((instanceLock = app.requestSingleInstanceLock())) {
configurePrimaryApp();
} else {
closeApplication();
}
}, 3000);
} else {
configurePrimaryApp();
}
const clearManualMountDetection = (provider) => {
@@ -747,11 +763,8 @@ ipcMain.on(Constants.IPC_Install_Upgrade, (event, data) => {
args = ['-a', 'Finder', data.Source];
} else if (platform === 'linux') {
try {
const execPath = path.join(os.tmpdir(), 'install_linux.sh');
fs.writeFileSync(execPath, installScript);
fs.chmodSync(execPath, '750');
command = execPath;
args = [data.Source];
command = data.Source;
fs.chmodSync(command, '750');
} catch (e) {
errorHandler(e);
}
@@ -761,6 +774,7 @@ ipcMain.on(Constants.IPC_Install_Upgrade, (event, data) => {
if (command) {
const executeInstall = () => {
isInstalling = true;
helpers
.executeAsync(command, args)
.then(() => {
@@ -768,6 +782,7 @@ ipcMain.on(Constants.IPC_Install_Upgrade, (event, data) => {
standardIPCReply(event, Constants.IPC_Install_Upgrade_Reply)
})
.catch(error => {
isInstalling = false;
errorHandler(error);
});
};

View File

@@ -1,8 +0,0 @@
#!/bin/sh
sleep 5
chmod +x "$1"
"$1"&
sleep 1
rm -f "$0"

View File

@@ -1,156 +1,220 @@
{
"Locations": {
"arch": {
"1.0.3": {
"sha256": "b62714f87e94a4d809c2079627bb0472fa8b0c47752a6a8896bc7146e0ed73a1",
"sig": "BN1670c6GAvC5SOzKNcptslE92TRHoec2CKFNuhgz/Mq/KuAXA4Pr1+dwDxgOMcp5JMA/0BPzJEc7TWtCvozYQcAiS8FQ75aYCajuu6Bm1HZowgHqSIsYn7M9M9CDNDflNGyxXQPAnKrnOa77mQXQiS8RpYWtdVHM6UwY91JXlCIas7nPHDBFClzgXfaayuFdmD6inqIK+j/GeuVITVwEWMI1rKBmtT+3uLODDRF7XNyAH2vrZs74F7bjdTU0XwvH6RWh6bYHeXG4I8H5gFItVIW8UItaUuoRHgpQJtiQOZcwZnmkqPraRItkeKWfun3PEW2XdzI4cOt39lJ9H7Fj2lFYgk7dpsG9xezFemJZisGOH9miNrtec0UBxyWsF7AsN/99mPCDi0ffwoNbZ0pJGzQqRQZChvvNShPmY26I0Uxf4Iiy3t/5sZSo6rkxuyYmsFY3eUBlfnCxBpSAEZRNVcFnB9e+iBJtMpoJ2DG9w9BCWzsPc8ZMdWdrVsu5OC5+mubsCyaZEwbS9t9Oi5/dsQBePckFSnuISXfA+2e0fxmdtrgl/QW66NGrbahXDdf9ooxN3BJWNpLkUi+PxjzcGz4lng1NjQq2ADuTFXrtZGVTDWGyHqIdaAkQTujzXT1NRN87SIOyBRopmHVO4xEx6CbsMq3Jn2yTCndZTDrJqwC3skCDW/2BRI3lozGdp7FxOR+W6SRb8puYGkQjsV9Hk9cA1UbsPGbl6hvNAReTMEcgUrp5DOVuUVaWw2w5sVlVPOmbbKBdmURjsW9r5NFN4bKJIOuY4BUakZxQADTMBOah0W1nvSXuxMtLQgNgmOIHz5CT9S1n1QYIfvFszuAjLVXrhWNMnvHdo2hg8ohuVaNtHLMYLMoTCzeNgIb0E8JghXzbmBNtCqx1F8xIKveTMEW1QWv9x/KgUqQBpVwr4PqSCD3Zds9Uwoj/M8g2SH6x8Xabc7hPq3MkTexqkVZtCqldA98s7cj2aiLDQHwF0XjwSYf549FMlicPN8chFZb2EAnBLYPCjkEtHv1PiO0nACf4qRrsX6YGJv/nAF9tglrUNnEES3RWlL0mLU4PBsjPv2NgdLTTRQTkC7nxHJv4gcm4rKfkkPu/hH1laaxYq6IQPnsMNnFnrVmDlPESvABfWIsMUOb/TgZVHVWGHb2LeEghF6T5AXKZBPuNqISPPo4xpXhVjjgLdbtzwSi6BUyBPZeTNgpWR0ogSqw5Tb+nCfFZIgUGLDRaG61kfRpWABqtUHH/P+Ja77xgpNiGZV2C1gFv21BZmiYzmYgzIAeDtYOpFI0ycvf76Mn9RF3b9B9A41eORLrwXiFj8na2IpbaPHMRib+i1IQ9cFklX1UPO8=",
"1.0.4": {
"sha256": "09b9faaba24a8c199a2b104a9be3395c2ef8c6e25a934c34b1c617529d252ae0",
"sig": "B8p6M1ks8Z48QGJPQzhqNWK4uU8LyCM381/HJUz663f0LBe9YPqDSDRZUmake0QmYK5/97K7lEwq7w3h/NBKF7YzbGbiSddJN7oqBsJ3cmHo/8YtXXVgHVaxiQdcyv0w7KTNK9FTaz2TZfGGodIWX6fb6FyV1md97pSKnRp5IAk6FhWtXh1sKP1kb62VkRG0Dh4lC5mIgPTdCZb4i0PD9bNwNQKlLqkSzNrfECydwE5QLVIp5QKY2A2U0N1kccVQPXFvlLi6vKJWHruXEt+kn9+gsJVA43lLKwcKIQrgCIKQLzaXUsruglGMxSIOZt018T06vHuqdjISXSYHPEKB1lgNS42W0B9Cy2NSS8lDO4KaWKA+n3A1H5HB4A8KPxRMVgSYhyYgnInhJtLrgEypm6mfLWyoDENsxEFRNaDgQ5EoY1gtXrdEqlPpMA3/RVzs5KWGePQuZ8UGhUmGHd5g0m+bgleRhhI8AoYcoRt3aQ/dBAFyb/co5Y0deyz6HrDtxr61IVmKagIZviVtr7xATT9+ZtkeqQ9TcYkXnIHZdqzV4C61UMPBD8XhRY6D+z5+PNXoLde+FE9WiHMQD+t+Sm4aJla/P+YrZUlrgVqPeA1CE1vfJg1GQauU5rAdoM44wYJ/GN6SEqG4LrrGY0UADvG2X76ob4mda3l9dQO8OBRMg0ZPXb+i7PSRn50wEnvqFzlyna6Z0hZ4U3euMZ9A7HY2AoKZ3wLRpn2j6bxV83m4D7tqFkVzbB/jUpUDNpVxGM/IoF4lbEyr55CdZKynBvR7XbeZeYfViU18ga99eoBsqlHOIUA9BVWU+snVg/V7QCv+uBszAlCJnFnkUe9pEJS1UlbpgNhSWLnkPkT8mY3Du/cPY2R2t6fBKjyb1VP8Gk9YrZATQLNsCRBk/VcegWRo5WtJwGAgQcMdNan8SqYfhQA6nMk7Dzlg155AE1uKioY8Wj+kWp51vd+MvhSIwQ+iOwl+LNMl2jsKjVNpiIV+UqrH9wqM5nlPwyYBzIXSBN+uY1NOCw/HtYniZ/4vjiVQGIuSGzNR9yOv/YIknr91R3Sa/twlO3/wD4WDtf+VNIz/R/9x8FuenRVcc+6kc9wF/baNAYJDV3eMci+9mBqjetl91faSmCdh1qx1+f3R82VEmnMwuJr1PPddWCfeg1mSl4sULDmRYtfD5iQbwBf2MT/8MOgSwJts2s5ZAF/kxZNdpEvXu1EcWHIxQdJUG29KJd7g/GPTC7eK9W/hzNJ4aNwEdTL0mjFQA174OiqXz2+4uDoIaEYDdQmgB3xuZv+HfoVLGFpngp/Lr057pDquweEzJ0fDGks5VZHa7XSiheRhO531tQjF0bXC/G9LlYI=",
"urls": [
"https://pixeldrain.com/api/file/wjM4z9tn"
"https://pixeldrain.com/api/file/jVeUr8Zq",
"https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.0.4_linux_x86_64.AppImage"
]
}
},
"centos7": {
"1.0.3": {
"sha256": "b62714f87e94a4d809c2079627bb0472fa8b0c47752a6a8896bc7146e0ed73a1",
"sig": "BN1670c6GAvC5SOzKNcptslE92TRHoec2CKFNuhgz/Mq/KuAXA4Pr1+dwDxgOMcp5JMA/0BPzJEc7TWtCvozYQcAiS8FQ75aYCajuu6Bm1HZowgHqSIsYn7M9M9CDNDflNGyxXQPAnKrnOa77mQXQiS8RpYWtdVHM6UwY91JXlCIas7nPHDBFClzgXfaayuFdmD6inqIK+j/GeuVITVwEWMI1rKBmtT+3uLODDRF7XNyAH2vrZs74F7bjdTU0XwvH6RWh6bYHeXG4I8H5gFItVIW8UItaUuoRHgpQJtiQOZcwZnmkqPraRItkeKWfun3PEW2XdzI4cOt39lJ9H7Fj2lFYgk7dpsG9xezFemJZisGOH9miNrtec0UBxyWsF7AsN/99mPCDi0ffwoNbZ0pJGzQqRQZChvvNShPmY26I0Uxf4Iiy3t/5sZSo6rkxuyYmsFY3eUBlfnCxBpSAEZRNVcFnB9e+iBJtMpoJ2DG9w9BCWzsPc8ZMdWdrVsu5OC5+mubsCyaZEwbS9t9Oi5/dsQBePckFSnuISXfA+2e0fxmdtrgl/QW66NGrbahXDdf9ooxN3BJWNpLkUi+PxjzcGz4lng1NjQq2ADuTFXrtZGVTDWGyHqIdaAkQTujzXT1NRN87SIOyBRopmHVO4xEx6CbsMq3Jn2yTCndZTDrJqwC3skCDW/2BRI3lozGdp7FxOR+W6SRb8puYGkQjsV9Hk9cA1UbsPGbl6hvNAReTMEcgUrp5DOVuUVaWw2w5sVlVPOmbbKBdmURjsW9r5NFN4bKJIOuY4BUakZxQADTMBOah0W1nvSXuxMtLQgNgmOIHz5CT9S1n1QYIfvFszuAjLVXrhWNMnvHdo2hg8ohuVaNtHLMYLMoTCzeNgIb0E8JghXzbmBNtCqx1F8xIKveTMEW1QWv9x/KgUqQBpVwr4PqSCD3Zds9Uwoj/M8g2SH6x8Xabc7hPq3MkTexqkVZtCqldA98s7cj2aiLDQHwF0XjwSYf549FMlicPN8chFZb2EAnBLYPCjkEtHv1PiO0nACf4qRrsX6YGJv/nAF9tglrUNnEES3RWlL0mLU4PBsjPv2NgdLTTRQTkC7nxHJv4gcm4rKfkkPu/hH1laaxYq6IQPnsMNnFnrVmDlPESvABfWIsMUOb/TgZVHVWGHb2LeEghF6T5AXKZBPuNqISPPo4xpXhVjjgLdbtzwSi6BUyBPZeTNgpWR0ogSqw5Tb+nCfFZIgUGLDRaG61kfRpWABqtUHH/P+Ja77xgpNiGZV2C1gFv21BZmiYzmYgzIAeDtYOpFI0ycvf76Mn9RF3b9B9A41eORLrwXiFj8na2IpbaPHMRib+i1IQ9cFklX1UPO8=",
"1.0.4": {
"sha256": "09b9faaba24a8c199a2b104a9be3395c2ef8c6e25a934c34b1c617529d252ae0",
"sig": "B8p6M1ks8Z48QGJPQzhqNWK4uU8LyCM381/HJUz663f0LBe9YPqDSDRZUmake0QmYK5/97K7lEwq7w3h/NBKF7YzbGbiSddJN7oqBsJ3cmHo/8YtXXVgHVaxiQdcyv0w7KTNK9FTaz2TZfGGodIWX6fb6FyV1md97pSKnRp5IAk6FhWtXh1sKP1kb62VkRG0Dh4lC5mIgPTdCZb4i0PD9bNwNQKlLqkSzNrfECydwE5QLVIp5QKY2A2U0N1kccVQPXFvlLi6vKJWHruXEt+kn9+gsJVA43lLKwcKIQrgCIKQLzaXUsruglGMxSIOZt018T06vHuqdjISXSYHPEKB1lgNS42W0B9Cy2NSS8lDO4KaWKA+n3A1H5HB4A8KPxRMVgSYhyYgnInhJtLrgEypm6mfLWyoDENsxEFRNaDgQ5EoY1gtXrdEqlPpMA3/RVzs5KWGePQuZ8UGhUmGHd5g0m+bgleRhhI8AoYcoRt3aQ/dBAFyb/co5Y0deyz6HrDtxr61IVmKagIZviVtr7xATT9+ZtkeqQ9TcYkXnIHZdqzV4C61UMPBD8XhRY6D+z5+PNXoLde+FE9WiHMQD+t+Sm4aJla/P+YrZUlrgVqPeA1CE1vfJg1GQauU5rAdoM44wYJ/GN6SEqG4LrrGY0UADvG2X76ob4mda3l9dQO8OBRMg0ZPXb+i7PSRn50wEnvqFzlyna6Z0hZ4U3euMZ9A7HY2AoKZ3wLRpn2j6bxV83m4D7tqFkVzbB/jUpUDNpVxGM/IoF4lbEyr55CdZKynBvR7XbeZeYfViU18ga99eoBsqlHOIUA9BVWU+snVg/V7QCv+uBszAlCJnFnkUe9pEJS1UlbpgNhSWLnkPkT8mY3Du/cPY2R2t6fBKjyb1VP8Gk9YrZATQLNsCRBk/VcegWRo5WtJwGAgQcMdNan8SqYfhQA6nMk7Dzlg155AE1uKioY8Wj+kWp51vd+MvhSIwQ+iOwl+LNMl2jsKjVNpiIV+UqrH9wqM5nlPwyYBzIXSBN+uY1NOCw/HtYniZ/4vjiVQGIuSGzNR9yOv/YIknr91R3Sa/twlO3/wD4WDtf+VNIz/R/9x8FuenRVcc+6kc9wF/baNAYJDV3eMci+9mBqjetl91faSmCdh1qx1+f3R82VEmnMwuJr1PPddWCfeg1mSl4sULDmRYtfD5iQbwBf2MT/8MOgSwJts2s5ZAF/kxZNdpEvXu1EcWHIxQdJUG29KJd7g/GPTC7eK9W/hzNJ4aNwEdTL0mjFQA174OiqXz2+4uDoIaEYDdQmgB3xuZv+HfoVLGFpngp/Lr057pDquweEzJ0fDGks5VZHa7XSiheRhO531tQjF0bXC/G9LlYI=",
"urls": [
"https://pixeldrain.com/api/file/wjM4z9tn"
"https://pixeldrain.com/api/file/jVeUr8Zq",
"https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.0.4_linux_x86_64.AppImage"
]
}
},
"darwin": {
"1.0.3": {
"sha256": "04dee91df608f010227a54929c05129f1ecef1458b240fbe4726f604c0331074",
"sig": "Bu2iLCfVY/5gj3SHCALHY/6j7PR2KsLuD0pvUC6CU9IPh1QCxn5Yy5jh9VsXE0OGbqhySt2C2lyIu11u/BWGPaiiXebEqtsIBlEytiZ5RHRGPJaoLK8BqHRp6+bSGUVvoVF2Mc3xi3Cni/hglpF24LyBT3y9oadPZmX+BX/quB5aE4D/KU2SxBOrzhF50z3AzOg4h9gcwAFHOz+BxbDL05d/OG4fRc4480oo3byCFA5tWmNT3uXqqFnyZTj5O+DbOzM01IUAqee3LYO+/PZAjZmdyrpASxFWtb+i2X0NTmvg4UdVgTYnnYwEtsJzzkplHzUqPlvCHmnh8eqrSHCRYWIGp5mCQR0XLGHGJxlRliuJrmIHxSdQgVfhnXAYU1tXkYQHSu3qbGIWsp/QXndR/MYeywxaH84M0d30/UGyqRFdr7QN1WRF1DJb9HClytaIk010gKvE5A1isBFUZLiJANqonhRKcRTbAJrC76XSP7+8j/k3vwP5q4EMkLErQJGarLj6uuvg8WdqsO+h53Rksx8pV22R5JBg+64JB4y6PP9d/hKI1+zTc/Osk+FvX6T25OiSpEWMX3OpZn9OGZ1OQ4pneNwUC3siv3SzUAbZk/KdrKi5ImZP5uV3/Gz9A/nrUgMR0BDXyZdkmtHebcTjqzYXG5lKY5+OR2dPveOV6gF4hDwiYkZrg4i4GLwxEDSoQaeegpgpUQuM7LOJQVk4O9PLJ7dWm1ZQUudBP5cCg6Doy1SO0kRfh17XzegaoZX5oeBqgKIO+OUtmJg9NZW8+gChmIgZTpUErMRH+Wvm1D9VrZfnlxG0qUC0qgoHJPZmuUW3zB/Wi0JI5Gj2r0EjXq3I5YO7480bjhOQkDQ6O6vU4/1hjRzgCNAhOEgStuscQfInpGRHCvbMutLCcZhUJP8R4e07HojTVt1acYSUo//Ck7Ak+C4/VOh9T/p9F8lroDX4z0Qf08fB3P0JzhHH1Rgzo5IavCmQ4+8MDgRlngvPVMUQPnHfTGH12MJFJcFVq/xEiAflC9Rw/dYR2RBu06COSFcZBss8u04vskvcCJk/S0L9pXkMnP4batQASIzS3zKAlTKjW2Wmt2KWPtkDrYn6+4CIsKvqcw3QjED9naEMN+1JkAJ3q62zTVqcdxjvmhdyN3zv7aMWy55YxwbOydeeKWWZUcgTA0ktvNJZIaYjHm6PPgq2EjeSNl9/TPLCxvwV/YGTr97Tr1za93YGiZZSoTYgRrl0rRp0DIs0Fn6shsvWdqjRdQ/ttnCGGT5ekSvHts6C5IkRUsjlzzNU/AjFoweqCZGwBWE2ULxwPKpIDGQYfDthaOlksuinKxWaRKEX28cRIxQeSFEcD6VVBBs=",
"1.0.4": {
"sha256": "4c33ba2a0dae3604e10e0078bdca27abc1dad7dec5132746f47e151c9d1c9f75",
"sig": "BX3momrq4XzMZEIv+U2qllLiQ1HOzDOeosly/BqjGfsCQKBsoORXAfUDqJakTXgEE1R5BrqAIx83KY8bIDDQ7L+9IqJNZWu7H3KkBEPaC5OBtxNSOPNJ8/Xe8CJDyTnp4acAgIfXK3WTYLp5RAKzPJ4QZneJzqIbx+bTLQcE+BukkWL1nLlZifvbVjz3PC1G2ZZ2B3WKR3Z4th1oQnYS4xgMQdEpbtxjXCPMy1fd1Ipnp14p9s2GWfrQaVLQIvJcEeBkRdLlI6dwvsmRlRPy13dBdPqd6buLjBA+RCgvKygqUiFAUXRaePCmx3DY5KvPYJF75JvhhvTrjf9/AYh336Llmofl8WJM6N5KByzOL2XFOLgUG3xgThRmAi4p39ec/pO1XYbGzGUneTDKAMyv5TZk+gDIQDMqoY0ssRLxMl0eEd9lkJYIKhUXB9gltkBsuPjVmU/fKyXprEXedUTWzu3ip6/9NRIF31XQPROFUne67csIh2GjYOnElDnSfoPVAoy2U6drVgL/wnooyJzNRSxokgxoiLRt7Y13xrN3GoLZrOtM3lAH1aVD6C+aYacSrGLpTzRroRfzAm2Xehs5E0Y9UI7O77zqEAJUeLJ1SSiGCIrQeSL3abjfWwo3i6ma2fy8TpgpiMn74l9KHT3sUYgUFkISjOgeyqX6cH2PdFO3zhL5AndSGUOKf21TrGPlqNfANuNP+rZ3e4WkXE4yiD1kw+BEC5muW7CxYW4ocxDL9P947FET5RQT8t/YaL5nJNMJ/K7jq8TMeQ9WrsMZUYa5Tr8U8IxhXOHm9tsYFFF004eU0nd8duWljc+YG1PdwTxD+eAby0qPxQe1HirBXKB5ltvXFwjVXc+HiPxmzam241fupt3KlwW6FSTFrk+D2a0yK3RCw3Rihub3J2mvoPEAos/GTdC9M4IKTWz8iYUNcBE+XkI6S0o+/xVWobdQ5slGnQFMacEzoTaALQYtXFguiaIe5u2UI5PFm1EtTJqQq9qiYQB84NOMGdu6SPLPuifuGmBkAJpQadVXQ9HTFO1npTPF7jO2xqxGAc22xbV/oLKJCXViJSK1DHRYg+BFCAqxXqWrjEQaBmdrw2+fUmcQTc+DatpsDaFY6eTY+ee6FYosQdNCMmwnTju35AzFK77F338ZIePulu7cfgzdLn7TMsiX9QrRn9tAtfRnrcyehVxRpHWIxa70rKvBNuri/w9HZFG64Z3cdWOZk/kXn4RPdvUxb+RpZKtMQ6QaHhqpPbTCLLZmv7bFbexPEjJZFUbCbMDRwHrimI5zXXFc8Jr+iaHVKolbEOosdnFprD4+26R7HMCk24jFOkIovTzg6Q9NAlduScUbXXJ9HV7SOLc=",
"urls": [
"https://pixeldrain.com/api/file/pQPh4q9d"
"https://pixeldrain.com/api/file/uKrr0H5r",
"https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.0.4_mac.dmg"
]
}
},
"debian9": {
"1.0.3": {
"sha256": "b62714f87e94a4d809c2079627bb0472fa8b0c47752a6a8896bc7146e0ed73a1",
"sig": "BN1670c6GAvC5SOzKNcptslE92TRHoec2CKFNuhgz/Mq/KuAXA4Pr1+dwDxgOMcp5JMA/0BPzJEc7TWtCvozYQcAiS8FQ75aYCajuu6Bm1HZowgHqSIsYn7M9M9CDNDflNGyxXQPAnKrnOa77mQXQiS8RpYWtdVHM6UwY91JXlCIas7nPHDBFClzgXfaayuFdmD6inqIK+j/GeuVITVwEWMI1rKBmtT+3uLODDRF7XNyAH2vrZs74F7bjdTU0XwvH6RWh6bYHeXG4I8H5gFItVIW8UItaUuoRHgpQJtiQOZcwZnmkqPraRItkeKWfun3PEW2XdzI4cOt39lJ9H7Fj2lFYgk7dpsG9xezFemJZisGOH9miNrtec0UBxyWsF7AsN/99mPCDi0ffwoNbZ0pJGzQqRQZChvvNShPmY26I0Uxf4Iiy3t/5sZSo6rkxuyYmsFY3eUBlfnCxBpSAEZRNVcFnB9e+iBJtMpoJ2DG9w9BCWzsPc8ZMdWdrVsu5OC5+mubsCyaZEwbS9t9Oi5/dsQBePckFSnuISXfA+2e0fxmdtrgl/QW66NGrbahXDdf9ooxN3BJWNpLkUi+PxjzcGz4lng1NjQq2ADuTFXrtZGVTDWGyHqIdaAkQTujzXT1NRN87SIOyBRopmHVO4xEx6CbsMq3Jn2yTCndZTDrJqwC3skCDW/2BRI3lozGdp7FxOR+W6SRb8puYGkQjsV9Hk9cA1UbsPGbl6hvNAReTMEcgUrp5DOVuUVaWw2w5sVlVPOmbbKBdmURjsW9r5NFN4bKJIOuY4BUakZxQADTMBOah0W1nvSXuxMtLQgNgmOIHz5CT9S1n1QYIfvFszuAjLVXrhWNMnvHdo2hg8ohuVaNtHLMYLMoTCzeNgIb0E8JghXzbmBNtCqx1F8xIKveTMEW1QWv9x/KgUqQBpVwr4PqSCD3Zds9Uwoj/M8g2SH6x8Xabc7hPq3MkTexqkVZtCqldA98s7cj2aiLDQHwF0XjwSYf549FMlicPN8chFZb2EAnBLYPCjkEtHv1PiO0nACf4qRrsX6YGJv/nAF9tglrUNnEES3RWlL0mLU4PBsjPv2NgdLTTRQTkC7nxHJv4gcm4rKfkkPu/hH1laaxYq6IQPnsMNnFnrVmDlPESvABfWIsMUOb/TgZVHVWGHb2LeEghF6T5AXKZBPuNqISPPo4xpXhVjjgLdbtzwSi6BUyBPZeTNgpWR0ogSqw5Tb+nCfFZIgUGLDRaG61kfRpWABqtUHH/P+Ja77xgpNiGZV2C1gFv21BZmiYzmYgzIAeDtYOpFI0ycvf76Mn9RF3b9B9A41eORLrwXiFj8na2IpbaPHMRib+i1IQ9cFklX1UPO8=",
"1.0.4": {
"sha256": "09b9faaba24a8c199a2b104a9be3395c2ef8c6e25a934c34b1c617529d252ae0",
"sig": "B8p6M1ks8Z48QGJPQzhqNWK4uU8LyCM381/HJUz663f0LBe9YPqDSDRZUmake0QmYK5/97K7lEwq7w3h/NBKF7YzbGbiSddJN7oqBsJ3cmHo/8YtXXVgHVaxiQdcyv0w7KTNK9FTaz2TZfGGodIWX6fb6FyV1md97pSKnRp5IAk6FhWtXh1sKP1kb62VkRG0Dh4lC5mIgPTdCZb4i0PD9bNwNQKlLqkSzNrfECydwE5QLVIp5QKY2A2U0N1kccVQPXFvlLi6vKJWHruXEt+kn9+gsJVA43lLKwcKIQrgCIKQLzaXUsruglGMxSIOZt018T06vHuqdjISXSYHPEKB1lgNS42W0B9Cy2NSS8lDO4KaWKA+n3A1H5HB4A8KPxRMVgSYhyYgnInhJtLrgEypm6mfLWyoDENsxEFRNaDgQ5EoY1gtXrdEqlPpMA3/RVzs5KWGePQuZ8UGhUmGHd5g0m+bgleRhhI8AoYcoRt3aQ/dBAFyb/co5Y0deyz6HrDtxr61IVmKagIZviVtr7xATT9+ZtkeqQ9TcYkXnIHZdqzV4C61UMPBD8XhRY6D+z5+PNXoLde+FE9WiHMQD+t+Sm4aJla/P+YrZUlrgVqPeA1CE1vfJg1GQauU5rAdoM44wYJ/GN6SEqG4LrrGY0UADvG2X76ob4mda3l9dQO8OBRMg0ZPXb+i7PSRn50wEnvqFzlyna6Z0hZ4U3euMZ9A7HY2AoKZ3wLRpn2j6bxV83m4D7tqFkVzbB/jUpUDNpVxGM/IoF4lbEyr55CdZKynBvR7XbeZeYfViU18ga99eoBsqlHOIUA9BVWU+snVg/V7QCv+uBszAlCJnFnkUe9pEJS1UlbpgNhSWLnkPkT8mY3Du/cPY2R2t6fBKjyb1VP8Gk9YrZATQLNsCRBk/VcegWRo5WtJwGAgQcMdNan8SqYfhQA6nMk7Dzlg155AE1uKioY8Wj+kWp51vd+MvhSIwQ+iOwl+LNMl2jsKjVNpiIV+UqrH9wqM5nlPwyYBzIXSBN+uY1NOCw/HtYniZ/4vjiVQGIuSGzNR9yOv/YIknr91R3Sa/twlO3/wD4WDtf+VNIz/R/9x8FuenRVcc+6kc9wF/baNAYJDV3eMci+9mBqjetl91faSmCdh1qx1+f3R82VEmnMwuJr1PPddWCfeg1mSl4sULDmRYtfD5iQbwBf2MT/8MOgSwJts2s5ZAF/kxZNdpEvXu1EcWHIxQdJUG29KJd7g/GPTC7eK9W/hzNJ4aNwEdTL0mjFQA174OiqXz2+4uDoIaEYDdQmgB3xuZv+HfoVLGFpngp/Lr057pDquweEzJ0fDGks5VZHa7XSiheRhO531tQjF0bXC/G9LlYI=",
"urls": [
"https://pixeldrain.com/api/file/wjM4z9tn"
"https://pixeldrain.com/api/file/jVeUr8Zq",
"https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.0.4_linux_x86_64.AppImage"
]
}
},
"debian10": {
"1.0.4": {
"sha256": "09b9faaba24a8c199a2b104a9be3395c2ef8c6e25a934c34b1c617529d252ae0",
"sig": "B8p6M1ks8Z48QGJPQzhqNWK4uU8LyCM381/HJUz663f0LBe9YPqDSDRZUmake0QmYK5/97K7lEwq7w3h/NBKF7YzbGbiSddJN7oqBsJ3cmHo/8YtXXVgHVaxiQdcyv0w7KTNK9FTaz2TZfGGodIWX6fb6FyV1md97pSKnRp5IAk6FhWtXh1sKP1kb62VkRG0Dh4lC5mIgPTdCZb4i0PD9bNwNQKlLqkSzNrfECydwE5QLVIp5QKY2A2U0N1kccVQPXFvlLi6vKJWHruXEt+kn9+gsJVA43lLKwcKIQrgCIKQLzaXUsruglGMxSIOZt018T06vHuqdjISXSYHPEKB1lgNS42W0B9Cy2NSS8lDO4KaWKA+n3A1H5HB4A8KPxRMVgSYhyYgnInhJtLrgEypm6mfLWyoDENsxEFRNaDgQ5EoY1gtXrdEqlPpMA3/RVzs5KWGePQuZ8UGhUmGHd5g0m+bgleRhhI8AoYcoRt3aQ/dBAFyb/co5Y0deyz6HrDtxr61IVmKagIZviVtr7xATT9+ZtkeqQ9TcYkXnIHZdqzV4C61UMPBD8XhRY6D+z5+PNXoLde+FE9WiHMQD+t+Sm4aJla/P+YrZUlrgVqPeA1CE1vfJg1GQauU5rAdoM44wYJ/GN6SEqG4LrrGY0UADvG2X76ob4mda3l9dQO8OBRMg0ZPXb+i7PSRn50wEnvqFzlyna6Z0hZ4U3euMZ9A7HY2AoKZ3wLRpn2j6bxV83m4D7tqFkVzbB/jUpUDNpVxGM/IoF4lbEyr55CdZKynBvR7XbeZeYfViU18ga99eoBsqlHOIUA9BVWU+snVg/V7QCv+uBszAlCJnFnkUe9pEJS1UlbpgNhSWLnkPkT8mY3Du/cPY2R2t6fBKjyb1VP8Gk9YrZATQLNsCRBk/VcegWRo5WtJwGAgQcMdNan8SqYfhQA6nMk7Dzlg155AE1uKioY8Wj+kWp51vd+MvhSIwQ+iOwl+LNMl2jsKjVNpiIV+UqrH9wqM5nlPwyYBzIXSBN+uY1NOCw/HtYniZ/4vjiVQGIuSGzNR9yOv/YIknr91R3Sa/twlO3/wD4WDtf+VNIz/R/9x8FuenRVcc+6kc9wF/baNAYJDV3eMci+9mBqjetl91faSmCdh1qx1+f3R82VEmnMwuJr1PPddWCfeg1mSl4sULDmRYtfD5iQbwBf2MT/8MOgSwJts2s5ZAF/kxZNdpEvXu1EcWHIxQdJUG29KJd7g/GPTC7eK9W/hzNJ4aNwEdTL0mjFQA174OiqXz2+4uDoIaEYDdQmgB3xuZv+HfoVLGFpngp/Lr057pDquweEzJ0fDGks5VZHa7XSiheRhO531tQjF0bXC/G9LlYI=",
"urls": [
"https://pixeldrain.com/api/file/jVeUr8Zq",
"https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.0.4_linux_x86_64.AppImage"
]
}
},
"fedora28": {
"1.0.3": {
"sha256": "b62714f87e94a4d809c2079627bb0472fa8b0c47752a6a8896bc7146e0ed73a1",
"sig": "BN1670c6GAvC5SOzKNcptslE92TRHoec2CKFNuhgz/Mq/KuAXA4Pr1+dwDxgOMcp5JMA/0BPzJEc7TWtCvozYQcAiS8FQ75aYCajuu6Bm1HZowgHqSIsYn7M9M9CDNDflNGyxXQPAnKrnOa77mQXQiS8RpYWtdVHM6UwY91JXlCIas7nPHDBFClzgXfaayuFdmD6inqIK+j/GeuVITVwEWMI1rKBmtT+3uLODDRF7XNyAH2vrZs74F7bjdTU0XwvH6RWh6bYHeXG4I8H5gFItVIW8UItaUuoRHgpQJtiQOZcwZnmkqPraRItkeKWfun3PEW2XdzI4cOt39lJ9H7Fj2lFYgk7dpsG9xezFemJZisGOH9miNrtec0UBxyWsF7AsN/99mPCDi0ffwoNbZ0pJGzQqRQZChvvNShPmY26I0Uxf4Iiy3t/5sZSo6rkxuyYmsFY3eUBlfnCxBpSAEZRNVcFnB9e+iBJtMpoJ2DG9w9BCWzsPc8ZMdWdrVsu5OC5+mubsCyaZEwbS9t9Oi5/dsQBePckFSnuISXfA+2e0fxmdtrgl/QW66NGrbahXDdf9ooxN3BJWNpLkUi+PxjzcGz4lng1NjQq2ADuTFXrtZGVTDWGyHqIdaAkQTujzXT1NRN87SIOyBRopmHVO4xEx6CbsMq3Jn2yTCndZTDrJqwC3skCDW/2BRI3lozGdp7FxOR+W6SRb8puYGkQjsV9Hk9cA1UbsPGbl6hvNAReTMEcgUrp5DOVuUVaWw2w5sVlVPOmbbKBdmURjsW9r5NFN4bKJIOuY4BUakZxQADTMBOah0W1nvSXuxMtLQgNgmOIHz5CT9S1n1QYIfvFszuAjLVXrhWNMnvHdo2hg8ohuVaNtHLMYLMoTCzeNgIb0E8JghXzbmBNtCqx1F8xIKveTMEW1QWv9x/KgUqQBpVwr4PqSCD3Zds9Uwoj/M8g2SH6x8Xabc7hPq3MkTexqkVZtCqldA98s7cj2aiLDQHwF0XjwSYf549FMlicPN8chFZb2EAnBLYPCjkEtHv1PiO0nACf4qRrsX6YGJv/nAF9tglrUNnEES3RWlL0mLU4PBsjPv2NgdLTTRQTkC7nxHJv4gcm4rKfkkPu/hH1laaxYq6IQPnsMNnFnrVmDlPESvABfWIsMUOb/TgZVHVWGHb2LeEghF6T5AXKZBPuNqISPPo4xpXhVjjgLdbtzwSi6BUyBPZeTNgpWR0ogSqw5Tb+nCfFZIgUGLDRaG61kfRpWABqtUHH/P+Ja77xgpNiGZV2C1gFv21BZmiYzmYgzIAeDtYOpFI0ycvf76Mn9RF3b9B9A41eORLrwXiFj8na2IpbaPHMRib+i1IQ9cFklX1UPO8=",
"1.0.4": {
"sha256": "09b9faaba24a8c199a2b104a9be3395c2ef8c6e25a934c34b1c617529d252ae0",
"sig": "B8p6M1ks8Z48QGJPQzhqNWK4uU8LyCM381/HJUz663f0LBe9YPqDSDRZUmake0QmYK5/97K7lEwq7w3h/NBKF7YzbGbiSddJN7oqBsJ3cmHo/8YtXXVgHVaxiQdcyv0w7KTNK9FTaz2TZfGGodIWX6fb6FyV1md97pSKnRp5IAk6FhWtXh1sKP1kb62VkRG0Dh4lC5mIgPTdCZb4i0PD9bNwNQKlLqkSzNrfECydwE5QLVIp5QKY2A2U0N1kccVQPXFvlLi6vKJWHruXEt+kn9+gsJVA43lLKwcKIQrgCIKQLzaXUsruglGMxSIOZt018T06vHuqdjISXSYHPEKB1lgNS42W0B9Cy2NSS8lDO4KaWKA+n3A1H5HB4A8KPxRMVgSYhyYgnInhJtLrgEypm6mfLWyoDENsxEFRNaDgQ5EoY1gtXrdEqlPpMA3/RVzs5KWGePQuZ8UGhUmGHd5g0m+bgleRhhI8AoYcoRt3aQ/dBAFyb/co5Y0deyz6HrDtxr61IVmKagIZviVtr7xATT9+ZtkeqQ9TcYkXnIHZdqzV4C61UMPBD8XhRY6D+z5+PNXoLde+FE9WiHMQD+t+Sm4aJla/P+YrZUlrgVqPeA1CE1vfJg1GQauU5rAdoM44wYJ/GN6SEqG4LrrGY0UADvG2X76ob4mda3l9dQO8OBRMg0ZPXb+i7PSRn50wEnvqFzlyna6Z0hZ4U3euMZ9A7HY2AoKZ3wLRpn2j6bxV83m4D7tqFkVzbB/jUpUDNpVxGM/IoF4lbEyr55CdZKynBvR7XbeZeYfViU18ga99eoBsqlHOIUA9BVWU+snVg/V7QCv+uBszAlCJnFnkUe9pEJS1UlbpgNhSWLnkPkT8mY3Du/cPY2R2t6fBKjyb1VP8Gk9YrZATQLNsCRBk/VcegWRo5WtJwGAgQcMdNan8SqYfhQA6nMk7Dzlg155AE1uKioY8Wj+kWp51vd+MvhSIwQ+iOwl+LNMl2jsKjVNpiIV+UqrH9wqM5nlPwyYBzIXSBN+uY1NOCw/HtYniZ/4vjiVQGIuSGzNR9yOv/YIknr91R3Sa/twlO3/wD4WDtf+VNIz/R/9x8FuenRVcc+6kc9wF/baNAYJDV3eMci+9mBqjetl91faSmCdh1qx1+f3R82VEmnMwuJr1PPddWCfeg1mSl4sULDmRYtfD5iQbwBf2MT/8MOgSwJts2s5ZAF/kxZNdpEvXu1EcWHIxQdJUG29KJd7g/GPTC7eK9W/hzNJ4aNwEdTL0mjFQA174OiqXz2+4uDoIaEYDdQmgB3xuZv+HfoVLGFpngp/Lr057pDquweEzJ0fDGks5VZHa7XSiheRhO531tQjF0bXC/G9LlYI=",
"urls": [
"https://pixeldrain.com/api/file/wjM4z9tn"
"https://pixeldrain.com/api/file/jVeUr8Zq",
"https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.0.4_linux_x86_64.AppImage"
]
}
},
"fedora29": {
"1.0.3": {
"sha256": "b62714f87e94a4d809c2079627bb0472fa8b0c47752a6a8896bc7146e0ed73a1",
"sig": "BN1670c6GAvC5SOzKNcptslE92TRHoec2CKFNuhgz/Mq/KuAXA4Pr1+dwDxgOMcp5JMA/0BPzJEc7TWtCvozYQcAiS8FQ75aYCajuu6Bm1HZowgHqSIsYn7M9M9CDNDflNGyxXQPAnKrnOa77mQXQiS8RpYWtdVHM6UwY91JXlCIas7nPHDBFClzgXfaayuFdmD6inqIK+j/GeuVITVwEWMI1rKBmtT+3uLODDRF7XNyAH2vrZs74F7bjdTU0XwvH6RWh6bYHeXG4I8H5gFItVIW8UItaUuoRHgpQJtiQOZcwZnmkqPraRItkeKWfun3PEW2XdzI4cOt39lJ9H7Fj2lFYgk7dpsG9xezFemJZisGOH9miNrtec0UBxyWsF7AsN/99mPCDi0ffwoNbZ0pJGzQqRQZChvvNShPmY26I0Uxf4Iiy3t/5sZSo6rkxuyYmsFY3eUBlfnCxBpSAEZRNVcFnB9e+iBJtMpoJ2DG9w9BCWzsPc8ZMdWdrVsu5OC5+mubsCyaZEwbS9t9Oi5/dsQBePckFSnuISXfA+2e0fxmdtrgl/QW66NGrbahXDdf9ooxN3BJWNpLkUi+PxjzcGz4lng1NjQq2ADuTFXrtZGVTDWGyHqIdaAkQTujzXT1NRN87SIOyBRopmHVO4xEx6CbsMq3Jn2yTCndZTDrJqwC3skCDW/2BRI3lozGdp7FxOR+W6SRb8puYGkQjsV9Hk9cA1UbsPGbl6hvNAReTMEcgUrp5DOVuUVaWw2w5sVlVPOmbbKBdmURjsW9r5NFN4bKJIOuY4BUakZxQADTMBOah0W1nvSXuxMtLQgNgmOIHz5CT9S1n1QYIfvFszuAjLVXrhWNMnvHdo2hg8ohuVaNtHLMYLMoTCzeNgIb0E8JghXzbmBNtCqx1F8xIKveTMEW1QWv9x/KgUqQBpVwr4PqSCD3Zds9Uwoj/M8g2SH6x8Xabc7hPq3MkTexqkVZtCqldA98s7cj2aiLDQHwF0XjwSYf549FMlicPN8chFZb2EAnBLYPCjkEtHv1PiO0nACf4qRrsX6YGJv/nAF9tglrUNnEES3RWlL0mLU4PBsjPv2NgdLTTRQTkC7nxHJv4gcm4rKfkkPu/hH1laaxYq6IQPnsMNnFnrVmDlPESvABfWIsMUOb/TgZVHVWGHb2LeEghF6T5AXKZBPuNqISPPo4xpXhVjjgLdbtzwSi6BUyBPZeTNgpWR0ogSqw5Tb+nCfFZIgUGLDRaG61kfRpWABqtUHH/P+Ja77xgpNiGZV2C1gFv21BZmiYzmYgzIAeDtYOpFI0ycvf76Mn9RF3b9B9A41eORLrwXiFj8na2IpbaPHMRib+i1IQ9cFklX1UPO8=",
"1.0.4": {
"sha256": "09b9faaba24a8c199a2b104a9be3395c2ef8c6e25a934c34b1c617529d252ae0",
"sig": "B8p6M1ks8Z48QGJPQzhqNWK4uU8LyCM381/HJUz663f0LBe9YPqDSDRZUmake0QmYK5/97K7lEwq7w3h/NBKF7YzbGbiSddJN7oqBsJ3cmHo/8YtXXVgHVaxiQdcyv0w7KTNK9FTaz2TZfGGodIWX6fb6FyV1md97pSKnRp5IAk6FhWtXh1sKP1kb62VkRG0Dh4lC5mIgPTdCZb4i0PD9bNwNQKlLqkSzNrfECydwE5QLVIp5QKY2A2U0N1kccVQPXFvlLi6vKJWHruXEt+kn9+gsJVA43lLKwcKIQrgCIKQLzaXUsruglGMxSIOZt018T06vHuqdjISXSYHPEKB1lgNS42W0B9Cy2NSS8lDO4KaWKA+n3A1H5HB4A8KPxRMVgSYhyYgnInhJtLrgEypm6mfLWyoDENsxEFRNaDgQ5EoY1gtXrdEqlPpMA3/RVzs5KWGePQuZ8UGhUmGHd5g0m+bgleRhhI8AoYcoRt3aQ/dBAFyb/co5Y0deyz6HrDtxr61IVmKagIZviVtr7xATT9+ZtkeqQ9TcYkXnIHZdqzV4C61UMPBD8XhRY6D+z5+PNXoLde+FE9WiHMQD+t+Sm4aJla/P+YrZUlrgVqPeA1CE1vfJg1GQauU5rAdoM44wYJ/GN6SEqG4LrrGY0UADvG2X76ob4mda3l9dQO8OBRMg0ZPXb+i7PSRn50wEnvqFzlyna6Z0hZ4U3euMZ9A7HY2AoKZ3wLRpn2j6bxV83m4D7tqFkVzbB/jUpUDNpVxGM/IoF4lbEyr55CdZKynBvR7XbeZeYfViU18ga99eoBsqlHOIUA9BVWU+snVg/V7QCv+uBszAlCJnFnkUe9pEJS1UlbpgNhSWLnkPkT8mY3Du/cPY2R2t6fBKjyb1VP8Gk9YrZATQLNsCRBk/VcegWRo5WtJwGAgQcMdNan8SqYfhQA6nMk7Dzlg155AE1uKioY8Wj+kWp51vd+MvhSIwQ+iOwl+LNMl2jsKjVNpiIV+UqrH9wqM5nlPwyYBzIXSBN+uY1NOCw/HtYniZ/4vjiVQGIuSGzNR9yOv/YIknr91R3Sa/twlO3/wD4WDtf+VNIz/R/9x8FuenRVcc+6kc9wF/baNAYJDV3eMci+9mBqjetl91faSmCdh1qx1+f3R82VEmnMwuJr1PPddWCfeg1mSl4sULDmRYtfD5iQbwBf2MT/8MOgSwJts2s5ZAF/kxZNdpEvXu1EcWHIxQdJUG29KJd7g/GPTC7eK9W/hzNJ4aNwEdTL0mjFQA174OiqXz2+4uDoIaEYDdQmgB3xuZv+HfoVLGFpngp/Lr057pDquweEzJ0fDGks5VZHa7XSiheRhO531tQjF0bXC/G9LlYI=",
"urls": [
"https://pixeldrain.com/api/file/wjM4z9tn"
"https://pixeldrain.com/api/file/jVeUr8Zq",
"https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.0.4_linux_x86_64.AppImage"
]
}
},
"fedora30": {
"1.0.3": {
"sha256": "b62714f87e94a4d809c2079627bb0472fa8b0c47752a6a8896bc7146e0ed73a1",
"sig": "BN1670c6GAvC5SOzKNcptslE92TRHoec2CKFNuhgz/Mq/KuAXA4Pr1+dwDxgOMcp5JMA/0BPzJEc7TWtCvozYQcAiS8FQ75aYCajuu6Bm1HZowgHqSIsYn7M9M9CDNDflNGyxXQPAnKrnOa77mQXQiS8RpYWtdVHM6UwY91JXlCIas7nPHDBFClzgXfaayuFdmD6inqIK+j/GeuVITVwEWMI1rKBmtT+3uLODDRF7XNyAH2vrZs74F7bjdTU0XwvH6RWh6bYHeXG4I8H5gFItVIW8UItaUuoRHgpQJtiQOZcwZnmkqPraRItkeKWfun3PEW2XdzI4cOt39lJ9H7Fj2lFYgk7dpsG9xezFemJZisGOH9miNrtec0UBxyWsF7AsN/99mPCDi0ffwoNbZ0pJGzQqRQZChvvNShPmY26I0Uxf4Iiy3t/5sZSo6rkxuyYmsFY3eUBlfnCxBpSAEZRNVcFnB9e+iBJtMpoJ2DG9w9BCWzsPc8ZMdWdrVsu5OC5+mubsCyaZEwbS9t9Oi5/dsQBePckFSnuISXfA+2e0fxmdtrgl/QW66NGrbahXDdf9ooxN3BJWNpLkUi+PxjzcGz4lng1NjQq2ADuTFXrtZGVTDWGyHqIdaAkQTujzXT1NRN87SIOyBRopmHVO4xEx6CbsMq3Jn2yTCndZTDrJqwC3skCDW/2BRI3lozGdp7FxOR+W6SRb8puYGkQjsV9Hk9cA1UbsPGbl6hvNAReTMEcgUrp5DOVuUVaWw2w5sVlVPOmbbKBdmURjsW9r5NFN4bKJIOuY4BUakZxQADTMBOah0W1nvSXuxMtLQgNgmOIHz5CT9S1n1QYIfvFszuAjLVXrhWNMnvHdo2hg8ohuVaNtHLMYLMoTCzeNgIb0E8JghXzbmBNtCqx1F8xIKveTMEW1QWv9x/KgUqQBpVwr4PqSCD3Zds9Uwoj/M8g2SH6x8Xabc7hPq3MkTexqkVZtCqldA98s7cj2aiLDQHwF0XjwSYf549FMlicPN8chFZb2EAnBLYPCjkEtHv1PiO0nACf4qRrsX6YGJv/nAF9tglrUNnEES3RWlL0mLU4PBsjPv2NgdLTTRQTkC7nxHJv4gcm4rKfkkPu/hH1laaxYq6IQPnsMNnFnrVmDlPESvABfWIsMUOb/TgZVHVWGHb2LeEghF6T5AXKZBPuNqISPPo4xpXhVjjgLdbtzwSi6BUyBPZeTNgpWR0ogSqw5Tb+nCfFZIgUGLDRaG61kfRpWABqtUHH/P+Ja77xgpNiGZV2C1gFv21BZmiYzmYgzIAeDtYOpFI0ycvf76Mn9RF3b9B9A41eORLrwXiFj8na2IpbaPHMRib+i1IQ9cFklX1UPO8=",
"1.0.4": {
"sha256": "09b9faaba24a8c199a2b104a9be3395c2ef8c6e25a934c34b1c617529d252ae0",
"sig": "B8p6M1ks8Z48QGJPQzhqNWK4uU8LyCM381/HJUz663f0LBe9YPqDSDRZUmake0QmYK5/97K7lEwq7w3h/NBKF7YzbGbiSddJN7oqBsJ3cmHo/8YtXXVgHVaxiQdcyv0w7KTNK9FTaz2TZfGGodIWX6fb6FyV1md97pSKnRp5IAk6FhWtXh1sKP1kb62VkRG0Dh4lC5mIgPTdCZb4i0PD9bNwNQKlLqkSzNrfECydwE5QLVIp5QKY2A2U0N1kccVQPXFvlLi6vKJWHruXEt+kn9+gsJVA43lLKwcKIQrgCIKQLzaXUsruglGMxSIOZt018T06vHuqdjISXSYHPEKB1lgNS42W0B9Cy2NSS8lDO4KaWKA+n3A1H5HB4A8KPxRMVgSYhyYgnInhJtLrgEypm6mfLWyoDENsxEFRNaDgQ5EoY1gtXrdEqlPpMA3/RVzs5KWGePQuZ8UGhUmGHd5g0m+bgleRhhI8AoYcoRt3aQ/dBAFyb/co5Y0deyz6HrDtxr61IVmKagIZviVtr7xATT9+ZtkeqQ9TcYkXnIHZdqzV4C61UMPBD8XhRY6D+z5+PNXoLde+FE9WiHMQD+t+Sm4aJla/P+YrZUlrgVqPeA1CE1vfJg1GQauU5rAdoM44wYJ/GN6SEqG4LrrGY0UADvG2X76ob4mda3l9dQO8OBRMg0ZPXb+i7PSRn50wEnvqFzlyna6Z0hZ4U3euMZ9A7HY2AoKZ3wLRpn2j6bxV83m4D7tqFkVzbB/jUpUDNpVxGM/IoF4lbEyr55CdZKynBvR7XbeZeYfViU18ga99eoBsqlHOIUA9BVWU+snVg/V7QCv+uBszAlCJnFnkUe9pEJS1UlbpgNhSWLnkPkT8mY3Du/cPY2R2t6fBKjyb1VP8Gk9YrZATQLNsCRBk/VcegWRo5WtJwGAgQcMdNan8SqYfhQA6nMk7Dzlg155AE1uKioY8Wj+kWp51vd+MvhSIwQ+iOwl+LNMl2jsKjVNpiIV+UqrH9wqM5nlPwyYBzIXSBN+uY1NOCw/HtYniZ/4vjiVQGIuSGzNR9yOv/YIknr91R3Sa/twlO3/wD4WDtf+VNIz/R/9x8FuenRVcc+6kc9wF/baNAYJDV3eMci+9mBqjetl91faSmCdh1qx1+f3R82VEmnMwuJr1PPddWCfeg1mSl4sULDmRYtfD5iQbwBf2MT/8MOgSwJts2s5ZAF/kxZNdpEvXu1EcWHIxQdJUG29KJd7g/GPTC7eK9W/hzNJ4aNwEdTL0mjFQA174OiqXz2+4uDoIaEYDdQmgB3xuZv+HfoVLGFpngp/Lr057pDquweEzJ0fDGks5VZHa7XSiheRhO531tQjF0bXC/G9LlYI=",
"urls": [
"https://pixeldrain.com/api/file/wjM4z9tn"
"https://pixeldrain.com/api/file/jVeUr8Zq",
"https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.0.4_linux_x86_64.AppImage"
]
}
},
"opensuse15": {
"1.0.4": {
"sha256": "09b9faaba24a8c199a2b104a9be3395c2ef8c6e25a934c34b1c617529d252ae0",
"sig": "B8p6M1ks8Z48QGJPQzhqNWK4uU8LyCM381/HJUz663f0LBe9YPqDSDRZUmake0QmYK5/97K7lEwq7w3h/NBKF7YzbGbiSddJN7oqBsJ3cmHo/8YtXXVgHVaxiQdcyv0w7KTNK9FTaz2TZfGGodIWX6fb6FyV1md97pSKnRp5IAk6FhWtXh1sKP1kb62VkRG0Dh4lC5mIgPTdCZb4i0PD9bNwNQKlLqkSzNrfECydwE5QLVIp5QKY2A2U0N1kccVQPXFvlLi6vKJWHruXEt+kn9+gsJVA43lLKwcKIQrgCIKQLzaXUsruglGMxSIOZt018T06vHuqdjISXSYHPEKB1lgNS42W0B9Cy2NSS8lDO4KaWKA+n3A1H5HB4A8KPxRMVgSYhyYgnInhJtLrgEypm6mfLWyoDENsxEFRNaDgQ5EoY1gtXrdEqlPpMA3/RVzs5KWGePQuZ8UGhUmGHd5g0m+bgleRhhI8AoYcoRt3aQ/dBAFyb/co5Y0deyz6HrDtxr61IVmKagIZviVtr7xATT9+ZtkeqQ9TcYkXnIHZdqzV4C61UMPBD8XhRY6D+z5+PNXoLde+FE9WiHMQD+t+Sm4aJla/P+YrZUlrgVqPeA1CE1vfJg1GQauU5rAdoM44wYJ/GN6SEqG4LrrGY0UADvG2X76ob4mda3l9dQO8OBRMg0ZPXb+i7PSRn50wEnvqFzlyna6Z0hZ4U3euMZ9A7HY2AoKZ3wLRpn2j6bxV83m4D7tqFkVzbB/jUpUDNpVxGM/IoF4lbEyr55CdZKynBvR7XbeZeYfViU18ga99eoBsqlHOIUA9BVWU+snVg/V7QCv+uBszAlCJnFnkUe9pEJS1UlbpgNhSWLnkPkT8mY3Du/cPY2R2t6fBKjyb1VP8Gk9YrZATQLNsCRBk/VcegWRo5WtJwGAgQcMdNan8SqYfhQA6nMk7Dzlg155AE1uKioY8Wj+kWp51vd+MvhSIwQ+iOwl+LNMl2jsKjVNpiIV+UqrH9wqM5nlPwyYBzIXSBN+uY1NOCw/HtYniZ/4vjiVQGIuSGzNR9yOv/YIknr91R3Sa/twlO3/wD4WDtf+VNIz/R/9x8FuenRVcc+6kc9wF/baNAYJDV3eMci+9mBqjetl91faSmCdh1qx1+f3R82VEmnMwuJr1PPddWCfeg1mSl4sULDmRYtfD5iQbwBf2MT/8MOgSwJts2s5ZAF/kxZNdpEvXu1EcWHIxQdJUG29KJd7g/GPTC7eK9W/hzNJ4aNwEdTL0mjFQA174OiqXz2+4uDoIaEYDdQmgB3xuZv+HfoVLGFpngp/Lr057pDquweEzJ0fDGks5VZHa7XSiheRhO531tQjF0bXC/G9LlYI=",
"urls": [
"https://pixeldrain.com/api/file/jVeUr8Zq",
"https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.0.4_linux_x86_64.AppImage"
]
}
},
"opensuse15.1": {
"1.0.4": {
"sha256": "09b9faaba24a8c199a2b104a9be3395c2ef8c6e25a934c34b1c617529d252ae0",
"sig": "B8p6M1ks8Z48QGJPQzhqNWK4uU8LyCM381/HJUz663f0LBe9YPqDSDRZUmake0QmYK5/97K7lEwq7w3h/NBKF7YzbGbiSddJN7oqBsJ3cmHo/8YtXXVgHVaxiQdcyv0w7KTNK9FTaz2TZfGGodIWX6fb6FyV1md97pSKnRp5IAk6FhWtXh1sKP1kb62VkRG0Dh4lC5mIgPTdCZb4i0PD9bNwNQKlLqkSzNrfECydwE5QLVIp5QKY2A2U0N1kccVQPXFvlLi6vKJWHruXEt+kn9+gsJVA43lLKwcKIQrgCIKQLzaXUsruglGMxSIOZt018T06vHuqdjISXSYHPEKB1lgNS42W0B9Cy2NSS8lDO4KaWKA+n3A1H5HB4A8KPxRMVgSYhyYgnInhJtLrgEypm6mfLWyoDENsxEFRNaDgQ5EoY1gtXrdEqlPpMA3/RVzs5KWGePQuZ8UGhUmGHd5g0m+bgleRhhI8AoYcoRt3aQ/dBAFyb/co5Y0deyz6HrDtxr61IVmKagIZviVtr7xATT9+ZtkeqQ9TcYkXnIHZdqzV4C61UMPBD8XhRY6D+z5+PNXoLde+FE9WiHMQD+t+Sm4aJla/P+YrZUlrgVqPeA1CE1vfJg1GQauU5rAdoM44wYJ/GN6SEqG4LrrGY0UADvG2X76ob4mda3l9dQO8OBRMg0ZPXb+i7PSRn50wEnvqFzlyna6Z0hZ4U3euMZ9A7HY2AoKZ3wLRpn2j6bxV83m4D7tqFkVzbB/jUpUDNpVxGM/IoF4lbEyr55CdZKynBvR7XbeZeYfViU18ga99eoBsqlHOIUA9BVWU+snVg/V7QCv+uBszAlCJnFnkUe9pEJS1UlbpgNhSWLnkPkT8mY3Du/cPY2R2t6fBKjyb1VP8Gk9YrZATQLNsCRBk/VcegWRo5WtJwGAgQcMdNan8SqYfhQA6nMk7Dzlg155AE1uKioY8Wj+kWp51vd+MvhSIwQ+iOwl+LNMl2jsKjVNpiIV+UqrH9wqM5nlPwyYBzIXSBN+uY1NOCw/HtYniZ/4vjiVQGIuSGzNR9yOv/YIknr91R3Sa/twlO3/wD4WDtf+VNIz/R/9x8FuenRVcc+6kc9wF/baNAYJDV3eMci+9mBqjetl91faSmCdh1qx1+f3R82VEmnMwuJr1PPddWCfeg1mSl4sULDmRYtfD5iQbwBf2MT/8MOgSwJts2s5ZAF/kxZNdpEvXu1EcWHIxQdJUG29KJd7g/GPTC7eK9W/hzNJ4aNwEdTL0mjFQA174OiqXz2+4uDoIaEYDdQmgB3xuZv+HfoVLGFpngp/Lr057pDquweEzJ0fDGks5VZHa7XSiheRhO531tQjF0bXC/G9LlYI=",
"urls": [
"https://pixeldrain.com/api/file/jVeUr8Zq",
"https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.0.4_linux_x86_64.AppImage"
]
}
},
"solus": {
"1.0.3": {
"sha256": "b62714f87e94a4d809c2079627bb0472fa8b0c47752a6a8896bc7146e0ed73a1",
"sig": "BN1670c6GAvC5SOzKNcptslE92TRHoec2CKFNuhgz/Mq/KuAXA4Pr1+dwDxgOMcp5JMA/0BPzJEc7TWtCvozYQcAiS8FQ75aYCajuu6Bm1HZowgHqSIsYn7M9M9CDNDflNGyxXQPAnKrnOa77mQXQiS8RpYWtdVHM6UwY91JXlCIas7nPHDBFClzgXfaayuFdmD6inqIK+j/GeuVITVwEWMI1rKBmtT+3uLODDRF7XNyAH2vrZs74F7bjdTU0XwvH6RWh6bYHeXG4I8H5gFItVIW8UItaUuoRHgpQJtiQOZcwZnmkqPraRItkeKWfun3PEW2XdzI4cOt39lJ9H7Fj2lFYgk7dpsG9xezFemJZisGOH9miNrtec0UBxyWsF7AsN/99mPCDi0ffwoNbZ0pJGzQqRQZChvvNShPmY26I0Uxf4Iiy3t/5sZSo6rkxuyYmsFY3eUBlfnCxBpSAEZRNVcFnB9e+iBJtMpoJ2DG9w9BCWzsPc8ZMdWdrVsu5OC5+mubsCyaZEwbS9t9Oi5/dsQBePckFSnuISXfA+2e0fxmdtrgl/QW66NGrbahXDdf9ooxN3BJWNpLkUi+PxjzcGz4lng1NjQq2ADuTFXrtZGVTDWGyHqIdaAkQTujzXT1NRN87SIOyBRopmHVO4xEx6CbsMq3Jn2yTCndZTDrJqwC3skCDW/2BRI3lozGdp7FxOR+W6SRb8puYGkQjsV9Hk9cA1UbsPGbl6hvNAReTMEcgUrp5DOVuUVaWw2w5sVlVPOmbbKBdmURjsW9r5NFN4bKJIOuY4BUakZxQADTMBOah0W1nvSXuxMtLQgNgmOIHz5CT9S1n1QYIfvFszuAjLVXrhWNMnvHdo2hg8ohuVaNtHLMYLMoTCzeNgIb0E8JghXzbmBNtCqx1F8xIKveTMEW1QWv9x/KgUqQBpVwr4PqSCD3Zds9Uwoj/M8g2SH6x8Xabc7hPq3MkTexqkVZtCqldA98s7cj2aiLDQHwF0XjwSYf549FMlicPN8chFZb2EAnBLYPCjkEtHv1PiO0nACf4qRrsX6YGJv/nAF9tglrUNnEES3RWlL0mLU4PBsjPv2NgdLTTRQTkC7nxHJv4gcm4rKfkkPu/hH1laaxYq6IQPnsMNnFnrVmDlPESvABfWIsMUOb/TgZVHVWGHb2LeEghF6T5AXKZBPuNqISPPo4xpXhVjjgLdbtzwSi6BUyBPZeTNgpWR0ogSqw5Tb+nCfFZIgUGLDRaG61kfRpWABqtUHH/P+Ja77xgpNiGZV2C1gFv21BZmiYzmYgzIAeDtYOpFI0ycvf76Mn9RF3b9B9A41eORLrwXiFj8na2IpbaPHMRib+i1IQ9cFklX1UPO8=",
"1.0.4": {
"sha256": "09b9faaba24a8c199a2b104a9be3395c2ef8c6e25a934c34b1c617529d252ae0",
"sig": "B8p6M1ks8Z48QGJPQzhqNWK4uU8LyCM381/HJUz663f0LBe9YPqDSDRZUmake0QmYK5/97K7lEwq7w3h/NBKF7YzbGbiSddJN7oqBsJ3cmHo/8YtXXVgHVaxiQdcyv0w7KTNK9FTaz2TZfGGodIWX6fb6FyV1md97pSKnRp5IAk6FhWtXh1sKP1kb62VkRG0Dh4lC5mIgPTdCZb4i0PD9bNwNQKlLqkSzNrfECydwE5QLVIp5QKY2A2U0N1kccVQPXFvlLi6vKJWHruXEt+kn9+gsJVA43lLKwcKIQrgCIKQLzaXUsruglGMxSIOZt018T06vHuqdjISXSYHPEKB1lgNS42W0B9Cy2NSS8lDO4KaWKA+n3A1H5HB4A8KPxRMVgSYhyYgnInhJtLrgEypm6mfLWyoDENsxEFRNaDgQ5EoY1gtXrdEqlPpMA3/RVzs5KWGePQuZ8UGhUmGHd5g0m+bgleRhhI8AoYcoRt3aQ/dBAFyb/co5Y0deyz6HrDtxr61IVmKagIZviVtr7xATT9+ZtkeqQ9TcYkXnIHZdqzV4C61UMPBD8XhRY6D+z5+PNXoLde+FE9WiHMQD+t+Sm4aJla/P+YrZUlrgVqPeA1CE1vfJg1GQauU5rAdoM44wYJ/GN6SEqG4LrrGY0UADvG2X76ob4mda3l9dQO8OBRMg0ZPXb+i7PSRn50wEnvqFzlyna6Z0hZ4U3euMZ9A7HY2AoKZ3wLRpn2j6bxV83m4D7tqFkVzbB/jUpUDNpVxGM/IoF4lbEyr55CdZKynBvR7XbeZeYfViU18ga99eoBsqlHOIUA9BVWU+snVg/V7QCv+uBszAlCJnFnkUe9pEJS1UlbpgNhSWLnkPkT8mY3Du/cPY2R2t6fBKjyb1VP8Gk9YrZATQLNsCRBk/VcegWRo5WtJwGAgQcMdNan8SqYfhQA6nMk7Dzlg155AE1uKioY8Wj+kWp51vd+MvhSIwQ+iOwl+LNMl2jsKjVNpiIV+UqrH9wqM5nlPwyYBzIXSBN+uY1NOCw/HtYniZ/4vjiVQGIuSGzNR9yOv/YIknr91R3Sa/twlO3/wD4WDtf+VNIz/R/9x8FuenRVcc+6kc9wF/baNAYJDV3eMci+9mBqjetl91faSmCdh1qx1+f3R82VEmnMwuJr1PPddWCfeg1mSl4sULDmRYtfD5iQbwBf2MT/8MOgSwJts2s5ZAF/kxZNdpEvXu1EcWHIxQdJUG29KJd7g/GPTC7eK9W/hzNJ4aNwEdTL0mjFQA174OiqXz2+4uDoIaEYDdQmgB3xuZv+HfoVLGFpngp/Lr057pDquweEzJ0fDGks5VZHa7XSiheRhO531tQjF0bXC/G9LlYI=",
"urls": [
"https://pixeldrain.com/api/file/wjM4z9tn"
"https://pixeldrain.com/api/file/jVeUr8Zq",
"https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.0.4_linux_x86_64.AppImage"
]
}
},
"tumbleweed": {
"1.0.4": {
"sha256": "09b9faaba24a8c199a2b104a9be3395c2ef8c6e25a934c34b1c617529d252ae0",
"sig": "B8p6M1ks8Z48QGJPQzhqNWK4uU8LyCM381/HJUz663f0LBe9YPqDSDRZUmake0QmYK5/97K7lEwq7w3h/NBKF7YzbGbiSddJN7oqBsJ3cmHo/8YtXXVgHVaxiQdcyv0w7KTNK9FTaz2TZfGGodIWX6fb6FyV1md97pSKnRp5IAk6FhWtXh1sKP1kb62VkRG0Dh4lC5mIgPTdCZb4i0PD9bNwNQKlLqkSzNrfECydwE5QLVIp5QKY2A2U0N1kccVQPXFvlLi6vKJWHruXEt+kn9+gsJVA43lLKwcKIQrgCIKQLzaXUsruglGMxSIOZt018T06vHuqdjISXSYHPEKB1lgNS42W0B9Cy2NSS8lDO4KaWKA+n3A1H5HB4A8KPxRMVgSYhyYgnInhJtLrgEypm6mfLWyoDENsxEFRNaDgQ5EoY1gtXrdEqlPpMA3/RVzs5KWGePQuZ8UGhUmGHd5g0m+bgleRhhI8AoYcoRt3aQ/dBAFyb/co5Y0deyz6HrDtxr61IVmKagIZviVtr7xATT9+ZtkeqQ9TcYkXnIHZdqzV4C61UMPBD8XhRY6D+z5+PNXoLde+FE9WiHMQD+t+Sm4aJla/P+YrZUlrgVqPeA1CE1vfJg1GQauU5rAdoM44wYJ/GN6SEqG4LrrGY0UADvG2X76ob4mda3l9dQO8OBRMg0ZPXb+i7PSRn50wEnvqFzlyna6Z0hZ4U3euMZ9A7HY2AoKZ3wLRpn2j6bxV83m4D7tqFkVzbB/jUpUDNpVxGM/IoF4lbEyr55CdZKynBvR7XbeZeYfViU18ga99eoBsqlHOIUA9BVWU+snVg/V7QCv+uBszAlCJnFnkUe9pEJS1UlbpgNhSWLnkPkT8mY3Du/cPY2R2t6fBKjyb1VP8Gk9YrZATQLNsCRBk/VcegWRo5WtJwGAgQcMdNan8SqYfhQA6nMk7Dzlg155AE1uKioY8Wj+kWp51vd+MvhSIwQ+iOwl+LNMl2jsKjVNpiIV+UqrH9wqM5nlPwyYBzIXSBN+uY1NOCw/HtYniZ/4vjiVQGIuSGzNR9yOv/YIknr91R3Sa/twlO3/wD4WDtf+VNIz/R/9x8FuenRVcc+6kc9wF/baNAYJDV3eMci+9mBqjetl91faSmCdh1qx1+f3R82VEmnMwuJr1PPddWCfeg1mSl4sULDmRYtfD5iQbwBf2MT/8MOgSwJts2s5ZAF/kxZNdpEvXu1EcWHIxQdJUG29KJd7g/GPTC7eK9W/hzNJ4aNwEdTL0mjFQA174OiqXz2+4uDoIaEYDdQmgB3xuZv+HfoVLGFpngp/Lr057pDquweEzJ0fDGks5VZHa7XSiheRhO531tQjF0bXC/G9LlYI=",
"urls": [
"https://pixeldrain.com/api/file/jVeUr8Zq",
"https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.0.4_linux_x86_64.AppImage"
]
}
},
"ubuntu18.04": {
"1.0.3": {
"sha256": "b62714f87e94a4d809c2079627bb0472fa8b0c47752a6a8896bc7146e0ed73a1",
"sig": "BN1670c6GAvC5SOzKNcptslE92TRHoec2CKFNuhgz/Mq/KuAXA4Pr1+dwDxgOMcp5JMA/0BPzJEc7TWtCvozYQcAiS8FQ75aYCajuu6Bm1HZowgHqSIsYn7M9M9CDNDflNGyxXQPAnKrnOa77mQXQiS8RpYWtdVHM6UwY91JXlCIas7nPHDBFClzgXfaayuFdmD6inqIK+j/GeuVITVwEWMI1rKBmtT+3uLODDRF7XNyAH2vrZs74F7bjdTU0XwvH6RWh6bYHeXG4I8H5gFItVIW8UItaUuoRHgpQJtiQOZcwZnmkqPraRItkeKWfun3PEW2XdzI4cOt39lJ9H7Fj2lFYgk7dpsG9xezFemJZisGOH9miNrtec0UBxyWsF7AsN/99mPCDi0ffwoNbZ0pJGzQqRQZChvvNShPmY26I0Uxf4Iiy3t/5sZSo6rkxuyYmsFY3eUBlfnCxBpSAEZRNVcFnB9e+iBJtMpoJ2DG9w9BCWzsPc8ZMdWdrVsu5OC5+mubsCyaZEwbS9t9Oi5/dsQBePckFSnuISXfA+2e0fxmdtrgl/QW66NGrbahXDdf9ooxN3BJWNpLkUi+PxjzcGz4lng1NjQq2ADuTFXrtZGVTDWGyHqIdaAkQTujzXT1NRN87SIOyBRopmHVO4xEx6CbsMq3Jn2yTCndZTDrJqwC3skCDW/2BRI3lozGdp7FxOR+W6SRb8puYGkQjsV9Hk9cA1UbsPGbl6hvNAReTMEcgUrp5DOVuUVaWw2w5sVlVPOmbbKBdmURjsW9r5NFN4bKJIOuY4BUakZxQADTMBOah0W1nvSXuxMtLQgNgmOIHz5CT9S1n1QYIfvFszuAjLVXrhWNMnvHdo2hg8ohuVaNtHLMYLMoTCzeNgIb0E8JghXzbmBNtCqx1F8xIKveTMEW1QWv9x/KgUqQBpVwr4PqSCD3Zds9Uwoj/M8g2SH6x8Xabc7hPq3MkTexqkVZtCqldA98s7cj2aiLDQHwF0XjwSYf549FMlicPN8chFZb2EAnBLYPCjkEtHv1PiO0nACf4qRrsX6YGJv/nAF9tglrUNnEES3RWlL0mLU4PBsjPv2NgdLTTRQTkC7nxHJv4gcm4rKfkkPu/hH1laaxYq6IQPnsMNnFnrVmDlPESvABfWIsMUOb/TgZVHVWGHb2LeEghF6T5AXKZBPuNqISPPo4xpXhVjjgLdbtzwSi6BUyBPZeTNgpWR0ogSqw5Tb+nCfFZIgUGLDRaG61kfRpWABqtUHH/P+Ja77xgpNiGZV2C1gFv21BZmiYzmYgzIAeDtYOpFI0ycvf76Mn9RF3b9B9A41eORLrwXiFj8na2IpbaPHMRib+i1IQ9cFklX1UPO8=",
"1.0.4": {
"sha256": "09b9faaba24a8c199a2b104a9be3395c2ef8c6e25a934c34b1c617529d252ae0",
"sig": "B8p6M1ks8Z48QGJPQzhqNWK4uU8LyCM381/HJUz663f0LBe9YPqDSDRZUmake0QmYK5/97K7lEwq7w3h/NBKF7YzbGbiSddJN7oqBsJ3cmHo/8YtXXVgHVaxiQdcyv0w7KTNK9FTaz2TZfGGodIWX6fb6FyV1md97pSKnRp5IAk6FhWtXh1sKP1kb62VkRG0Dh4lC5mIgPTdCZb4i0PD9bNwNQKlLqkSzNrfECydwE5QLVIp5QKY2A2U0N1kccVQPXFvlLi6vKJWHruXEt+kn9+gsJVA43lLKwcKIQrgCIKQLzaXUsruglGMxSIOZt018T06vHuqdjISXSYHPEKB1lgNS42W0B9Cy2NSS8lDO4KaWKA+n3A1H5HB4A8KPxRMVgSYhyYgnInhJtLrgEypm6mfLWyoDENsxEFRNaDgQ5EoY1gtXrdEqlPpMA3/RVzs5KWGePQuZ8UGhUmGHd5g0m+bgleRhhI8AoYcoRt3aQ/dBAFyb/co5Y0deyz6HrDtxr61IVmKagIZviVtr7xATT9+ZtkeqQ9TcYkXnIHZdqzV4C61UMPBD8XhRY6D+z5+PNXoLde+FE9WiHMQD+t+Sm4aJla/P+YrZUlrgVqPeA1CE1vfJg1GQauU5rAdoM44wYJ/GN6SEqG4LrrGY0UADvG2X76ob4mda3l9dQO8OBRMg0ZPXb+i7PSRn50wEnvqFzlyna6Z0hZ4U3euMZ9A7HY2AoKZ3wLRpn2j6bxV83m4D7tqFkVzbB/jUpUDNpVxGM/IoF4lbEyr55CdZKynBvR7XbeZeYfViU18ga99eoBsqlHOIUA9BVWU+snVg/V7QCv+uBszAlCJnFnkUe9pEJS1UlbpgNhSWLnkPkT8mY3Du/cPY2R2t6fBKjyb1VP8Gk9YrZATQLNsCRBk/VcegWRo5WtJwGAgQcMdNan8SqYfhQA6nMk7Dzlg155AE1uKioY8Wj+kWp51vd+MvhSIwQ+iOwl+LNMl2jsKjVNpiIV+UqrH9wqM5nlPwyYBzIXSBN+uY1NOCw/HtYniZ/4vjiVQGIuSGzNR9yOv/YIknr91R3Sa/twlO3/wD4WDtf+VNIz/R/9x8FuenRVcc+6kc9wF/baNAYJDV3eMci+9mBqjetl91faSmCdh1qx1+f3R82VEmnMwuJr1PPddWCfeg1mSl4sULDmRYtfD5iQbwBf2MT/8MOgSwJts2s5ZAF/kxZNdpEvXu1EcWHIxQdJUG29KJd7g/GPTC7eK9W/hzNJ4aNwEdTL0mjFQA174OiqXz2+4uDoIaEYDdQmgB3xuZv+HfoVLGFpngp/Lr057pDquweEzJ0fDGks5VZHa7XSiheRhO531tQjF0bXC/G9LlYI=",
"urls": [
"https://pixeldrain.com/api/file/wjM4z9tn"
"https://pixeldrain.com/api/file/jVeUr8Zq",
"https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.0.4_linux_x86_64.AppImage"
]
}
},
"ubuntu18.10": {
"1.0.3": {
"sha256": "b62714f87e94a4d809c2079627bb0472fa8b0c47752a6a8896bc7146e0ed73a1",
"sig": "BN1670c6GAvC5SOzKNcptslE92TRHoec2CKFNuhgz/Mq/KuAXA4Pr1+dwDxgOMcp5JMA/0BPzJEc7TWtCvozYQcAiS8FQ75aYCajuu6Bm1HZowgHqSIsYn7M9M9CDNDflNGyxXQPAnKrnOa77mQXQiS8RpYWtdVHM6UwY91JXlCIas7nPHDBFClzgXfaayuFdmD6inqIK+j/GeuVITVwEWMI1rKBmtT+3uLODDRF7XNyAH2vrZs74F7bjdTU0XwvH6RWh6bYHeXG4I8H5gFItVIW8UItaUuoRHgpQJtiQOZcwZnmkqPraRItkeKWfun3PEW2XdzI4cOt39lJ9H7Fj2lFYgk7dpsG9xezFemJZisGOH9miNrtec0UBxyWsF7AsN/99mPCDi0ffwoNbZ0pJGzQqRQZChvvNShPmY26I0Uxf4Iiy3t/5sZSo6rkxuyYmsFY3eUBlfnCxBpSAEZRNVcFnB9e+iBJtMpoJ2DG9w9BCWzsPc8ZMdWdrVsu5OC5+mubsCyaZEwbS9t9Oi5/dsQBePckFSnuISXfA+2e0fxmdtrgl/QW66NGrbahXDdf9ooxN3BJWNpLkUi+PxjzcGz4lng1NjQq2ADuTFXrtZGVTDWGyHqIdaAkQTujzXT1NRN87SIOyBRopmHVO4xEx6CbsMq3Jn2yTCndZTDrJqwC3skCDW/2BRI3lozGdp7FxOR+W6SRb8puYGkQjsV9Hk9cA1UbsPGbl6hvNAReTMEcgUrp5DOVuUVaWw2w5sVlVPOmbbKBdmURjsW9r5NFN4bKJIOuY4BUakZxQADTMBOah0W1nvSXuxMtLQgNgmOIHz5CT9S1n1QYIfvFszuAjLVXrhWNMnvHdo2hg8ohuVaNtHLMYLMoTCzeNgIb0E8JghXzbmBNtCqx1F8xIKveTMEW1QWv9x/KgUqQBpVwr4PqSCD3Zds9Uwoj/M8g2SH6x8Xabc7hPq3MkTexqkVZtCqldA98s7cj2aiLDQHwF0XjwSYf549FMlicPN8chFZb2EAnBLYPCjkEtHv1PiO0nACf4qRrsX6YGJv/nAF9tglrUNnEES3RWlL0mLU4PBsjPv2NgdLTTRQTkC7nxHJv4gcm4rKfkkPu/hH1laaxYq6IQPnsMNnFnrVmDlPESvABfWIsMUOb/TgZVHVWGHb2LeEghF6T5AXKZBPuNqISPPo4xpXhVjjgLdbtzwSi6BUyBPZeTNgpWR0ogSqw5Tb+nCfFZIgUGLDRaG61kfRpWABqtUHH/P+Ja77xgpNiGZV2C1gFv21BZmiYzmYgzIAeDtYOpFI0ycvf76Mn9RF3b9B9A41eORLrwXiFj8na2IpbaPHMRib+i1IQ9cFklX1UPO8=",
"1.0.4": {
"sha256": "09b9faaba24a8c199a2b104a9be3395c2ef8c6e25a934c34b1c617529d252ae0",
"sig": "B8p6M1ks8Z48QGJPQzhqNWK4uU8LyCM381/HJUz663f0LBe9YPqDSDRZUmake0QmYK5/97K7lEwq7w3h/NBKF7YzbGbiSddJN7oqBsJ3cmHo/8YtXXVgHVaxiQdcyv0w7KTNK9FTaz2TZfGGodIWX6fb6FyV1md97pSKnRp5IAk6FhWtXh1sKP1kb62VkRG0Dh4lC5mIgPTdCZb4i0PD9bNwNQKlLqkSzNrfECydwE5QLVIp5QKY2A2U0N1kccVQPXFvlLi6vKJWHruXEt+kn9+gsJVA43lLKwcKIQrgCIKQLzaXUsruglGMxSIOZt018T06vHuqdjISXSYHPEKB1lgNS42W0B9Cy2NSS8lDO4KaWKA+n3A1H5HB4A8KPxRMVgSYhyYgnInhJtLrgEypm6mfLWyoDENsxEFRNaDgQ5EoY1gtXrdEqlPpMA3/RVzs5KWGePQuZ8UGhUmGHd5g0m+bgleRhhI8AoYcoRt3aQ/dBAFyb/co5Y0deyz6HrDtxr61IVmKagIZviVtr7xATT9+ZtkeqQ9TcYkXnIHZdqzV4C61UMPBD8XhRY6D+z5+PNXoLde+FE9WiHMQD+t+Sm4aJla/P+YrZUlrgVqPeA1CE1vfJg1GQauU5rAdoM44wYJ/GN6SEqG4LrrGY0UADvG2X76ob4mda3l9dQO8OBRMg0ZPXb+i7PSRn50wEnvqFzlyna6Z0hZ4U3euMZ9A7HY2AoKZ3wLRpn2j6bxV83m4D7tqFkVzbB/jUpUDNpVxGM/IoF4lbEyr55CdZKynBvR7XbeZeYfViU18ga99eoBsqlHOIUA9BVWU+snVg/V7QCv+uBszAlCJnFnkUe9pEJS1UlbpgNhSWLnkPkT8mY3Du/cPY2R2t6fBKjyb1VP8Gk9YrZATQLNsCRBk/VcegWRo5WtJwGAgQcMdNan8SqYfhQA6nMk7Dzlg155AE1uKioY8Wj+kWp51vd+MvhSIwQ+iOwl+LNMl2jsKjVNpiIV+UqrH9wqM5nlPwyYBzIXSBN+uY1NOCw/HtYniZ/4vjiVQGIuSGzNR9yOv/YIknr91R3Sa/twlO3/wD4WDtf+VNIz/R/9x8FuenRVcc+6kc9wF/baNAYJDV3eMci+9mBqjetl91faSmCdh1qx1+f3R82VEmnMwuJr1PPddWCfeg1mSl4sULDmRYtfD5iQbwBf2MT/8MOgSwJts2s5ZAF/kxZNdpEvXu1EcWHIxQdJUG29KJd7g/GPTC7eK9W/hzNJ4aNwEdTL0mjFQA174OiqXz2+4uDoIaEYDdQmgB3xuZv+HfoVLGFpngp/Lr057pDquweEzJ0fDGks5VZHa7XSiheRhO531tQjF0bXC/G9LlYI=",
"urls": [
"https://pixeldrain.com/api/file/wjM4z9tn"
"https://pixeldrain.com/api/file/jVeUr8Zq",
"https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.0.4_linux_x86_64.AppImage"
]
}
},
"ubuntu19.04": {
"1.0.3": {
"sha256": "b62714f87e94a4d809c2079627bb0472fa8b0c47752a6a8896bc7146e0ed73a1",
"sig": "BN1670c6GAvC5SOzKNcptslE92TRHoec2CKFNuhgz/Mq/KuAXA4Pr1+dwDxgOMcp5JMA/0BPzJEc7TWtCvozYQcAiS8FQ75aYCajuu6Bm1HZowgHqSIsYn7M9M9CDNDflNGyxXQPAnKrnOa77mQXQiS8RpYWtdVHM6UwY91JXlCIas7nPHDBFClzgXfaayuFdmD6inqIK+j/GeuVITVwEWMI1rKBmtT+3uLODDRF7XNyAH2vrZs74F7bjdTU0XwvH6RWh6bYHeXG4I8H5gFItVIW8UItaUuoRHgpQJtiQOZcwZnmkqPraRItkeKWfun3PEW2XdzI4cOt39lJ9H7Fj2lFYgk7dpsG9xezFemJZisGOH9miNrtec0UBxyWsF7AsN/99mPCDi0ffwoNbZ0pJGzQqRQZChvvNShPmY26I0Uxf4Iiy3t/5sZSo6rkxuyYmsFY3eUBlfnCxBpSAEZRNVcFnB9e+iBJtMpoJ2DG9w9BCWzsPc8ZMdWdrVsu5OC5+mubsCyaZEwbS9t9Oi5/dsQBePckFSnuISXfA+2e0fxmdtrgl/QW66NGrbahXDdf9ooxN3BJWNpLkUi+PxjzcGz4lng1NjQq2ADuTFXrtZGVTDWGyHqIdaAkQTujzXT1NRN87SIOyBRopmHVO4xEx6CbsMq3Jn2yTCndZTDrJqwC3skCDW/2BRI3lozGdp7FxOR+W6SRb8puYGkQjsV9Hk9cA1UbsPGbl6hvNAReTMEcgUrp5DOVuUVaWw2w5sVlVPOmbbKBdmURjsW9r5NFN4bKJIOuY4BUakZxQADTMBOah0W1nvSXuxMtLQgNgmOIHz5CT9S1n1QYIfvFszuAjLVXrhWNMnvHdo2hg8ohuVaNtHLMYLMoTCzeNgIb0E8JghXzbmBNtCqx1F8xIKveTMEW1QWv9x/KgUqQBpVwr4PqSCD3Zds9Uwoj/M8g2SH6x8Xabc7hPq3MkTexqkVZtCqldA98s7cj2aiLDQHwF0XjwSYf549FMlicPN8chFZb2EAnBLYPCjkEtHv1PiO0nACf4qRrsX6YGJv/nAF9tglrUNnEES3RWlL0mLU4PBsjPv2NgdLTTRQTkC7nxHJv4gcm4rKfkkPu/hH1laaxYq6IQPnsMNnFnrVmDlPESvABfWIsMUOb/TgZVHVWGHb2LeEghF6T5AXKZBPuNqISPPo4xpXhVjjgLdbtzwSi6BUyBPZeTNgpWR0ogSqw5Tb+nCfFZIgUGLDRaG61kfRpWABqtUHH/P+Ja77xgpNiGZV2C1gFv21BZmiYzmYgzIAeDtYOpFI0ycvf76Mn9RF3b9B9A41eORLrwXiFj8na2IpbaPHMRib+i1IQ9cFklX1UPO8=",
"1.0.4": {
"sha256": "09b9faaba24a8c199a2b104a9be3395c2ef8c6e25a934c34b1c617529d252ae0",
"sig": "B8p6M1ks8Z48QGJPQzhqNWK4uU8LyCM381/HJUz663f0LBe9YPqDSDRZUmake0QmYK5/97K7lEwq7w3h/NBKF7YzbGbiSddJN7oqBsJ3cmHo/8YtXXVgHVaxiQdcyv0w7KTNK9FTaz2TZfGGodIWX6fb6FyV1md97pSKnRp5IAk6FhWtXh1sKP1kb62VkRG0Dh4lC5mIgPTdCZb4i0PD9bNwNQKlLqkSzNrfECydwE5QLVIp5QKY2A2U0N1kccVQPXFvlLi6vKJWHruXEt+kn9+gsJVA43lLKwcKIQrgCIKQLzaXUsruglGMxSIOZt018T06vHuqdjISXSYHPEKB1lgNS42W0B9Cy2NSS8lDO4KaWKA+n3A1H5HB4A8KPxRMVgSYhyYgnInhJtLrgEypm6mfLWyoDENsxEFRNaDgQ5EoY1gtXrdEqlPpMA3/RVzs5KWGePQuZ8UGhUmGHd5g0m+bgleRhhI8AoYcoRt3aQ/dBAFyb/co5Y0deyz6HrDtxr61IVmKagIZviVtr7xATT9+ZtkeqQ9TcYkXnIHZdqzV4C61UMPBD8XhRY6D+z5+PNXoLde+FE9WiHMQD+t+Sm4aJla/P+YrZUlrgVqPeA1CE1vfJg1GQauU5rAdoM44wYJ/GN6SEqG4LrrGY0UADvG2X76ob4mda3l9dQO8OBRMg0ZPXb+i7PSRn50wEnvqFzlyna6Z0hZ4U3euMZ9A7HY2AoKZ3wLRpn2j6bxV83m4D7tqFkVzbB/jUpUDNpVxGM/IoF4lbEyr55CdZKynBvR7XbeZeYfViU18ga99eoBsqlHOIUA9BVWU+snVg/V7QCv+uBszAlCJnFnkUe9pEJS1UlbpgNhSWLnkPkT8mY3Du/cPY2R2t6fBKjyb1VP8Gk9YrZATQLNsCRBk/VcegWRo5WtJwGAgQcMdNan8SqYfhQA6nMk7Dzlg155AE1uKioY8Wj+kWp51vd+MvhSIwQ+iOwl+LNMl2jsKjVNpiIV+UqrH9wqM5nlPwyYBzIXSBN+uY1NOCw/HtYniZ/4vjiVQGIuSGzNR9yOv/YIknr91R3Sa/twlO3/wD4WDtf+VNIz/R/9x8FuenRVcc+6kc9wF/baNAYJDV3eMci+9mBqjetl91faSmCdh1qx1+f3R82VEmnMwuJr1PPddWCfeg1mSl4sULDmRYtfD5iQbwBf2MT/8MOgSwJts2s5ZAF/kxZNdpEvXu1EcWHIxQdJUG29KJd7g/GPTC7eK9W/hzNJ4aNwEdTL0mjFQA174OiqXz2+4uDoIaEYDdQmgB3xuZv+HfoVLGFpngp/Lr057pDquweEzJ0fDGks5VZHa7XSiheRhO531tQjF0bXC/G9LlYI=",
"urls": [
"https://pixeldrain.com/api/file/wjM4z9tn"
"https://pixeldrain.com/api/file/jVeUr8Zq",
"https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.0.4_linux_x86_64.AppImage"
]
}
},
"win32": {
"1.0.3": {
"sha256": "052ff80d1d59295eef105ca631daf65edc78f8f74f8948a47ab2ecfad2b30cef",
"sig": "CO2v767kd7VA+g7o+xxYg9qEWP3mVZ9Hbj/6mhK/4xDNhYMOR8XOEEIwmZ/4OsHZArSLmlAvcISrbZnlWAWzxr0DT2zy6oKAydjC2Uq4ET1eWKjEfRi/5ZVAoJqK9DBQ2llwsXG4uP2Cu7eYCwWAZUub+L1kg7JwO8/BhNBDXBh4XMzN0WhqdP1Kdvkuj0EJEpCij0bp2KYH+/Mr7HL1quYfAfFy1rGRWkJsiw940wzDq+tsdUp7NGTmVwz+E4viOpz+BcuVrYw8JrxuV9cCw4//5btKo3JaWQ9qRvP4lvmq+fhUGdYt2FXUNtO/AE3QOP9n5iUz6WLQEYBXs7+a15MKyfjLf+Klv5O0akVwAYYkRQ/C/lFaDqO3nH12v/ul71wb8jEOYdTmKCSjnMOVUAiZhqZhoBnSHChCT9k3GmFaDzW/Es6SkobQ70+zJGY04mpey+EflAdY77Etv8LxNpSFHr6wv1HjUq0aZQRoel/eWUWd+ftn7fECAUQQ8JcOdYb/thYJMcKm4lUjxEPcL58KZP5XPhWWiv76rGi4hRBeCWAndbmz9NehNp703J6F9Vcp202fYjlGBb9SG7UwODbw0rSQ/H79KoaQiY3O5JV0fU1BZdVPTV3nXFB0fA/SSGCKKTYI91g5Yp5wtYHdqYkyBdd58BBZbk45ty7axAIJJdW3CY4lQycinKFbpbLjEu49fr6Bid0Mm25jsKJFp2B8wMdVQKv/WB4Lj8OokcXeNav7Lb90hlxdrrdkN7KcNIBavGn4FOXNx2NdSeERiXXga5ZRZBwQcXW+LlCJF2+gAnHDU4GFHijEjnql8Dt4EF17EA9tOHA/W4P3omKxI5FDi7YRtIsmcAb5NyiX1k3/uCsUBVnroGCTnc72oBgVKbji9LDKJ/wMeXB2zRuyXi7jHlx/0FyKyoJIuz9BwCwbLQbMZrvA/XIKNN0F8YmSTY6PQUNA7vubjmghBwdzsd+GLGzbsULi05PSmNRP2deDqOm0o6XPtY7Ii0ouibU52YlIN3A0yrbVIura6OOeOWY3lSTnqrcIxobV5/1CQVh9kzQsm1jBUd7S63RxyA4wUVOR6yDhqEAz3RZudGao/HHUXyr6AyYezZ+QERw6tXWMpj9fuu2aRVEgOsKe87DmUb7uX0kSilPeUMYSrztmHGxn9Ha/8n9MiFvsIXZxbUfCxxU88ELc04EhVreiD6C4Si7TaGhSPOE+FQ2g4OB69E2cPDvy6ieaLLOjj+oGsSY30pYhV8r752AfOuK5VaVHGafVDhctEHLInkF4tmfeCwnp9HIj5pyWNqS16GJw1glTGVEYC5beU8XPZUWw+56rhnOlowQmLjl1NoPu8q1jOM0=",
"1.0.4": {
"sha256": "e669f54fb80ef84cba36dc031904ae76e4dcd93ef760fa432670c6ffcb597886",
"sig": "BuPXPWPoiQLbs5pznIRaAp8fnSw02EUeN1Az0J5K6YE+IRUq93GR1e7q5FktL6qLgWbvkVRx4GAz1hC1OcDuG+0dGeqQMlGwxxVmlv/q9T+Q1wMScLlfYDTPbZxTiexhiuSx8dMqWbUuXTQMJM7XHp3rPl8UFo95aa2JWApP++pL73pYVrN4ovyCgyZ/mlPT8Dpukenz5dmo3ZxBcBJbzkHbbgn0yira3gs+Qgm2VZDF4UOQuMnM8N3kBnw8KWY/X4/WZnOe5ejQ5R37kKq4K9+LUElbZSCOZSLnj/RqniO7aQ8Hc4vGIyxak9haKk80i4siwHpHOivdKAr+RBU83XeZ3J7KEfEPq884MIoCS9umYSdCcTGd+p+1OBALyfAEv79BVAR/w/GeNoQUmY0QqKlrSMODiLtw8dolU+K3VJ1+W0Xybl0ETMh83hCoi5hIVfRvIV48FF7/zR3mwmcFrkk6FFBU3yx8vx4qvZDFNItTNoeLp0xJXl4tFBrKlLj/wWP01pHuFCe/ZLgaCcACuz9pR1/r4DjE0MmG6IZ36J7RMICnD3sO0lTg8LJ6qJKIsOfIdkLlOK81HFAHcd7loN+qN9Kv3yPAWgZINL+K2XgJ6+Z+lmOIrGUy7F6jCSz9NUS2FTLZMGG00jJe2CsPJ8z+viRF5KBe4KUjrLbhaIwIMUTTW4je82jt6jfSNFjaJ5l9yMC4LkgJQiJTqGTJfH4dXM3MwA76vo6VmmXRZBTCMQbnYAP1paH/VshzNxEAON3hwbcRmKz8jJZ2mFaLEt4WGJ3Vrcn4W+2Z9jkcYWc1lC9auSGocxHszzCavkVFtjXxDhbtRI2h9g+iykU/5CvKNzhQld1ehQob+xVLpL0f5DlT8rZamIMnpYVOBHVeSz0dhsK7WQlRQi5e7VAiZD7yZIcQVTk2v6TVxZmm8felLy/WNV77ILju6leJ7r7SlRbFORfiAydKjSR+lsZDwliEn1rTqwARwo9zwrIwwUuajmoHrUD+ikDT0v92JSad+3yFHB3pU5qDshA3uH9BjFwcZMVRV1M/ETZNp5/guDvLri8IZHvCb5q5VtsHHJZtvcFngW9IKY4zTGJ3xURyapu3NbnLrvHkotgtppnjR/LaOf+yDkRNPQVObtdJG1qcFYIz/g5OaABijzQVRImkieqw9ge/aNvWmvmPVZrN5w7LfnKisZ0LBfzwIa6ApVnbahFVY/AICybthySyvr+MKtheb38WNGBVmxeAqRTeDwn8jUMjYaD/Jcfz7MWyZlDiTqsX5P3dZot/WdG/p5FwR6s5c5hHrPvU24tVgTrHc4MIY/KBZhbk9wm/QMLxvwzgEJ3iKPq1JKNvVK/vbHdr0yk=",
"urls": [
"https://pixeldrain.com/api/file/WpBrXw0Z"
"https://pixeldrain.com/api/file/PlUcsmJN",
"https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.0.4_win.exe"
]
}
}
},
"Versions": {
"arch": [
"1.0.3"
"1.0.4"
],
"centos7": [
"1.0.3"
"1.0.4"
],
"darwin": [
"1.0.3"
"1.0.4"
],
"debian9": [
"1.0.3"
"1.0.4"
],
"debian10": [
"1.0.4"
],
"fedora28": [
"1.0.3"
"1.0.4"
],
"fedora29": [
"1.0.3"
"1.0.4"
],
"fedora30": [
"1.0.3"
"1.0.4"
],
"linux": [
"unavailable"
],
"opensuse15": [
"1.0.4"
],
"opensuse15.1": [
"1.0.4"
],
"solus": [
"1.0.3"
"1.0.4"
],
"tumbleweed": [
"1.0.4"
],
"ubuntu18.04": [
"1.0.3"
"1.0.4"
],
"ubuntu18.10": [
"1.0.3"
"1.0.4"
],
"ubuntu19.04": [
"1.0.3"
],
"win32": [
"1.0.3"
"1.0.4"
],
"unknown": [
"unavailable"
],
"win32": [
"1.0.4"
]
}
}

View File

@@ -109,13 +109,16 @@ class App extends IPCContainer {
handleDownloadRelease = () => {
const selectedVersion = this.getSelectedVersion();
const fileName = selectedVersion + '.zip';
this.props.downloadItem(fileName, Constants.INSTALL_TYPES.Release, this.props.LocationsLookup[selectedVersion].urls[0], this.onDownloadFileComplete);
this.props.downloadItem(fileName, Constants.INSTALL_TYPES.Release, this.props.LocationsLookup[selectedVersion].urls, this.onDownloadFileComplete);
};
handleDownloadUpgrade = () => {
const url = this.props.UpgradeData.urls[0];
const name = this.props.Platform === 'win32' ? 'upgrade.exe' : this.props.Platform === 'darwin' ? 'upgrade.dmg' : extractFileNameFromURL(url);
this.props.downloadItem(name, Constants.INSTALL_TYPES.Upgrade, url, this.onDownloadFileComplete);
const name = (this.props.Platform === 'win32') ?
'upgrade.exe' :
(this.props.Platform === 'darwin') ?
'upgrade.dmg' :
'repertory-ui_' + this.props.UpgradeVersion + '_linux_x86_64.AppImage';
this.props.downloadItem(name, Constants.INSTALL_TYPES.Upgrade, this.props.UpgradeData.urls, this.onDownloadFileComplete);
};
installDependency = result => {
@@ -338,6 +341,7 @@ const mapStateToProps = state => {
UpgradeAvailable: state.relver.UpgradeAvailable,
UpgradeData: state.relver.UpgradeData,
UpgradeDismissed: state.relver.UpgradeDismissed,
UpgradeVersion: state.relver.UpgradeVersion,
Version: state.common.Version,
VersionLookup: state.relver.VersionLookup,
};

View File

@@ -7,12 +7,14 @@ const mapStateToProps = state => {
return {
DownloadName: state.download.DownloadName,
DownloadProgress: state.download.DownloadProgress,
Platform: state.common.Platform,
};
};
export default connect(mapStateToProps)(props => {
const width = props.Platform === 'linux' ? '480px' : '380px';
return (
<Box dxStyle={{width: '380px', height: 'auto', padding: '5px'}}>
<Box dxStyle={{width: width, height: 'auto', padding: '5px'}}>
<div style={{width: '100%', height: 'auto'}}>
<h1 style={{width: '100%', textAlign: 'center'}}>{'Downloading ' + props.DownloadName}</h1>
</div>

View File

@@ -34,11 +34,15 @@ exports.DATA_LOCATIONS = {
arch: '~/.local/repertory/ui',
centos7: '~/.local/repertory/ui',
debian9: '~/.local/repertory/ui',
debian10: '~/.local/repertory/ui',
fedora28: '~/.local/repertory/ui',
fedora29: '~/.local/repertory/ui',
fedora30: '~/.local/repertory/ui',
linux: '~/.local/repertory/ui',
opensuse15: '~/.local/repertory/ui',
'opensuse15.1': '~/.local/repertory/ui',
solus: '~/.local/repertory/ui',
tumbleweed: '~/.local/repertory/ui',
'ubuntu18.04': '~/.local/repertory/ui',
'ubuntu18.10': '~/.local/repertory/ui',
'ubuntu19.04': '~/.local/repertory/ui',

View File

@@ -19,33 +19,44 @@ export const setDownloadBegin = (name, type, url) => {
export const setDownloadEnd = createAction('download/setDownloadEnd');
export const setDownloadProgress = createAction('download/setDownloadProgress');
export const downloadItem = (name, type, url, completedCallback) => {
export const downloadItem = (name, type, urls, completedCallback) => {
return (dispatch, getState) => {
const state = getState();
if (!state.download.DownloadActive && state.download.AllowDownload) {
const ipcRenderer = getIPCRenderer();
if (ipcRenderer) {
dispatch(setDownloadBegin(name, type, url));
const downloadFileProgress = (_, arg) => {
dispatch(setDownloadProgress(arg.data.Progress));
};
const downloadFileComplete = (_, arg) => {
ipcRenderer.removeListener(Constants.IPC_Download_File_Progress, downloadFileProgress);
ipcRenderer.removeListener(Constants.IPC_Download_File_Complete, downloadFileComplete);
completedCallback(name, type, url, arg.data);
dispatch(setDownloadEnd(arg.data));
};
ipcRenderer.on(Constants.IPC_Download_File_Progress, downloadFileProgress);
ipcRenderer.on(Constants.IPC_Download_File_Complete, downloadFileComplete);
ipcRenderer.send(Constants.IPC_Download_File, {
Filename: name,
URL: url,
});
}
if (!Array.isArray(urls)) {
urls = [urls];
}
const downloadAtIndex = index => {
const url = urls[index];
const state = getState();
if ((index > 0) || (!state.download.DownloadActive && state.download.AllowDownload)) {
const ipcRenderer = getIPCRenderer();
if (ipcRenderer) {
dispatch(setDownloadBegin(name, type, url));
const downloadFileProgress = (_, arg) => {
dispatch(setDownloadProgress(arg.data.Progress));
};
const downloadFileComplete = (_, arg) => {
ipcRenderer.removeListener(Constants.IPC_Download_File_Progress, downloadFileProgress);
if (!arg.data.Success && (++index < urls.length)) {
downloadAtIndex(index);
} else {
completedCallback(name, type, url, arg.data);
dispatch(setDownloadEnd(arg.data));
}
};
ipcRenderer.on(Constants.IPC_Download_File_Progress, downloadFileProgress);
ipcRenderer.once(Constants.IPC_Download_File_Complete, downloadFileComplete);
ipcRenderer.send(Constants.IPC_Download_File, {
Filename: name,
URL: url,
});
}
}
};
downloadAtIndex(0);
};
};

View File

@@ -18,7 +18,6 @@ const ipcRenderer = getIPCRenderer();
export const checkInstalled = (dependencies, version) => {
return (dispatch, getState) => {
const checkInstalledComplete = (event, arg) => {
ipcRenderer.removeListener(Constants.IPC_Check_Installed_Reply, checkInstalledComplete);
const result = arg.data;
const updateState = () => {
const installedVersion = result.Success && result.Exists ? result.Version : 'none';
@@ -48,7 +47,7 @@ export const checkInstalled = (dependencies, version) => {
}
};
ipcRenderer.on(Constants.IPC_Check_Installed_Reply, checkInstalledComplete);
ipcRenderer.once(Constants.IPC_Check_Installed_Reply, checkInstalledComplete);
ipcRenderer.send(Constants.IPC_Check_Installed, {
Dependencies: dependencies,
Version: version,
@@ -62,8 +61,6 @@ export const installDependency = (source, url, completedCallback) => {
dispatch(setInstallActive(Constants.INSTALL_TYPES.Dependency));
const installDependencyComplete = (event, arg) => {
ipcRenderer.removeListener(Constants.IPC_Install_Dependency_Reply, installDependencyComplete);
const result = arg.data;
const handleCompleted = ()=> {
ipcRenderer.send(Constants.IPC_Delete_File, {
@@ -94,7 +91,7 @@ export const installDependency = (source, url, completedCallback) => {
}
};
ipcRenderer.on(Constants.IPC_Install_Dependency_Reply, installDependencyComplete);
ipcRenderer.once(Constants.IPC_Install_Dependency_Reply, installDependencyComplete);
ipcRenderer.send(Constants.IPC_Install_Dependency, {
Source: source,
URL: url,
@@ -109,7 +106,6 @@ export const installRelease = (source, version, completedCallback) => {
dispatch(setInstallActive(Constants.INSTALL_TYPES.Release));
const extractReleaseComplete = (event, arg) => {
ipcRenderer.removeListener(Constants.IPC_Extract_Release_Complete, extractReleaseComplete);
ipcRenderer.send(Constants.IPC_Delete_File, {
FilePath: source,
});
@@ -118,7 +114,7 @@ export const installRelease = (source, version, completedCallback) => {
completedCallback(source, version, arg.data);
};
ipcRenderer.on(Constants.IPC_Extract_Release_Complete, extractReleaseComplete);
ipcRenderer.once(Constants.IPC_Extract_Release_Complete, extractReleaseComplete);
ipcRenderer.send(Constants.IPC_Extract_Release, {
Source: source,
Version: version,
@@ -134,7 +130,6 @@ export const installUpgrade = (source, sha256, signature, skipVerification, comp
dispatch(setApplicationReady(false));
const installUpgradeComplete = (event, arg) => {
ipcRenderer.removeListener(Constants.IPC_Install_Upgrade_Reply, installUpgradeComplete);
if (arg.data.Success) {
dispatch(shutdownApplication());
} else {
@@ -144,7 +139,7 @@ export const installUpgrade = (source, sha256, signature, skipVerification, comp
}
};
ipcRenderer.on(Constants.IPC_Install_Upgrade_Reply, installUpgradeComplete);
ipcRenderer.once(Constants.IPC_Install_Upgrade_Reply, installUpgradeComplete);
ipcRenderer.send(Constants.IPC_Install_Upgrade, {
Sha256: sha256,
Signature: signature,

View File

@@ -26,7 +26,7 @@ export const detectUIUpgrade = () => {
data.Versions[appPlatform] &&
(data.Versions[appPlatform].length > 0) &&
(data.Versions[appPlatform][0] !== version)) {
dispatch(setUIUpgradeData(data.Locations[appPlatform][data.Versions[appPlatform][0]]));
dispatch(setUIUpgradeData(data.Locations[appPlatform][data.Versions[appPlatform][0]], data.Versions[appPlatform][0]));
} else {
dispatch(clearUIUpgrade());
}
@@ -115,4 +115,14 @@ export const setReleaseData = (locationsLookup, versionLookup)=> {
};
export const setReleaseUpgradeAvailable = createAction('relver/setReleaseUpgradeAvailable');
export const setUIUpgradeData = createAction('relver/setUIUpgradeData');
export const SET_UI_UPGRADE_DATA = 'relver/setUIUpgradeData';
export const setUIUpgradeData = (upgradeData, version) => {
return {
type: SET_UI_UPGRADE_DATA,
payload: {
upgrade_data: upgradeData,
version: version,
}
}
};

View File

@@ -16,10 +16,11 @@ const versionLookup = Constants.RELEASE_TYPES.map(k=> {
export const releaseVersionReducer = createReducer({
InstalledVersion: 'none',
LocationsLookup: {},
Release: 2,
Release: 1,
ReleaseUpgradeAvailable: false,
UpgradeAvailable: false,
UpgradeData: null,
UpgradeVersion: null,
UpgradeDismissed: false,
Version: -1,
VersionLookup: versionLookup,
@@ -30,6 +31,7 @@ export const releaseVersionReducer = createReducer({
UpgradeAvailable: false,
UpgradeDismissed: false,
UpgradeData: null,
UpgradeVersion: null,
};
},
[Actions.SET_ACTIVE_RELEASE]: (state, action) => {
@@ -64,11 +66,12 @@ export const releaseVersionReducer = createReducer({
ReleaseUpgradeAvailable: action.payload,
};
},
[Actions.setUIUpgradeData]: (state, action) => {
[Actions.SET_UI_UPGRADE_DATA]: (state, action) => {
return {
...state,
UpgradeAvailable: true,
UpgradeData: action.payload,
UpgradeData: action.payload.upgrade_data,
UpgradeVersion: action.payload.version,
UpgradeDismissed: false,
};
}