From 1094a419cb535310229e40f682f101d9f8f3b048 Mon Sep 17 00:00:00 2001 From: kwindrem <58538395+kwindrem@users.noreply.github.com> Date: Fri, 14 Jan 2022 16:40:53 -0800 Subject: [PATCH] PackageManager release PackageManager provides a GUI to manage packages. --- CommonResources | 367 +- EssentialResources | 90 +- FileSets/MbDisplayDefaultPackage.qml | 95 + FileSets/MbDisplayPackageVersion.qml | 174 +- FileSets/PageSettingsAddPackageList.qml | 24 + FileSets/PageSettingsPackageAdd.qml | 151 + FileSets/PageSettingsPackageControl.qml | 43 - FileSets/PageSettingsPackageEdit.qml | 397 ++ FileSets/PageSettingsPackageManager.qml | 123 + FileSets/PageSettingsPackageVersions.qml | 16 +- FileSets/PageSettingsPmBackup.qml | 62 + FileSets/v2.42/PageSettings.qml | 4 +- FileSets/v2.58/PageSettings.qml | 4 +- FileSets/v2.66/PageSettings.qml | 4 +- FileSets/v2.73/PageSettings.qml | 4 +- FileSets/v2.80~19/PageSettings.qml | 4 +- FileSets/v2.80~21-large-23/PageSettings.qml | 4 +- FileSets/v2.80~21/PageSettings.qml | 4 +- FileSets/v2.80~21/PageSettings.qml 2.orig | 185 + FileSets/v2.80~24/PageSettings.qml | 4 +- FileSets/v2.80~29/PageSettings.qml | 4 +- FileSets/v2.80~33-large-24/PageSettings.qml | 12 +- PackageManager.py | 3234 +++++++++++++++++ ReadMe | 638 +--- Screen Shot Active packages menu.png | Bin 0 -> 70457 bytes Screen Shot Add package menu.png | Bin 0 -> 33976 bytes Screen Shot Inactive packages menu.png | Bin 0 -> 50236 bytes Screen Shot Package editor menu.png | Bin 0 -> 49154 bytes Screen Shot Package manager menu.png | Bin 0 -> 40523 bytes Screen Shot SetupHelper uninstall warning.png | Bin 0 -> 55089 bytes Screen Shot Uninstall confirmation.png | Bin 0 -> 50036 bytes ServiceResources | 94 +- UpdateResources | 253 -- blindInstall | 98 +- changes | 172 + defaultPackageList | 23 +- ext/velib_python/LICENSE | 20 + ext/velib_python/README.md | 102 + ext/velib_python/settingsdevice.py | 118 + ext/velib_python/ve_utils.py | 265 ++ ext/velib_python/vedbus.py | 501 +++ fileList | 1 + gitHubInfo | 1 + packageAutoUpdater | 268 -- packageAutoUpdaterCleanup | 37 - packageInstaller | 150 - rcS.local | 4 +- reinstallMods | 15 +- removeManagerSettings | 48 + removePkgSettings | 120 + sampleSetupScript | 12 - service/.DS_Store | Bin 6148 -> 6148 bytes service/log/run | 3 + service/run | 4 +- settingsList | 305 ++ setup | 183 +- updatePackageVersions | 119 - venus-data.tgz | Bin 45499 -> 440759 bytes version | 2 +- 59 files changed, 6783 insertions(+), 1782 deletions(-) create mode 100644 FileSets/MbDisplayDefaultPackage.qml create mode 100644 FileSets/PageSettingsAddPackageList.qml create mode 100644 FileSets/PageSettingsPackageAdd.qml delete mode 100644 FileSets/PageSettingsPackageControl.qml create mode 100644 FileSets/PageSettingsPackageEdit.qml create mode 100644 FileSets/PageSettingsPackageManager.qml create mode 100644 FileSets/PageSettingsPmBackup.qml create mode 100644 FileSets/v2.80~21/PageSettings.qml 2.orig create mode 100755 PackageManager.py create mode 100644 Screen Shot Active packages menu.png create mode 100644 Screen Shot Add package menu.png create mode 100644 Screen Shot Inactive packages menu.png create mode 100644 Screen Shot Package editor menu.png create mode 100644 Screen Shot Package manager menu.png create mode 100644 Screen Shot SetupHelper uninstall warning.png create mode 100644 Screen Shot Uninstall confirmation.png delete mode 100755 UpdateResources create mode 100644 changes create mode 100755 ext/velib_python/LICENSE create mode 100755 ext/velib_python/README.md create mode 100644 ext/velib_python/settingsdevice.py create mode 100644 ext/velib_python/ve_utils.py create mode 100644 ext/velib_python/vedbus.py create mode 100644 fileList create mode 100644 gitHubInfo delete mode 100755 packageAutoUpdater delete mode 100755 packageAutoUpdaterCleanup delete mode 100755 packageInstaller create mode 100755 removeManagerSettings create mode 100755 removePkgSettings create mode 100755 service/log/run create mode 100644 settingsList delete mode 100755 updatePackageVersions diff --git a/CommonResources b/CommonResources index 71abd13..05a9a30 100755 --- a/CommonResources +++ b/CommonResources @@ -9,7 +9,6 @@ setupHelperDir="/data/SetupHelper" source "$setupHelperDir/EssentialResources" source "$setupHelperDir/LogHandler" source "$setupHelperDir/ServiceResources" -source "$setupHelperDir/UpdateResources" source "$setupHelperDir/DbusSettingsResources" # what action the script should take: @@ -36,8 +35,6 @@ runAgain=false filesUpdated=false restartGui=false - - # yesNoPrompt provides user prompting requesting a yes/no response # # $1 is the prompt displayed when pausing for user input @@ -84,11 +81,6 @@ yesNoPrompt () standardActionPrompt () { - if [ -f "$setupOptionsDir/optionsSet" ]; then - enableReinstall=true - else - enableReinstall=false - fi if [ $# -gt 0 ] && [ $1 == 'MORE_PROMPTS' ]; then updateScriptAction=false else @@ -98,7 +90,7 @@ standardActionPrompt () echo echo "Available actions:" echo " Install and activate (i)" - if $enableReinstall ; then + if $optionsSet ; then echo " Reinstall (r) based on options provided at last install" fi echo " Uninstall (u) and restores all files to stock" @@ -120,7 +112,7 @@ standardActionPrompt () break ;; [rR]*) - if $enableReinstall ; then + if $optionsSet ; then scriptAction='INSTALL' break fi @@ -130,7 +122,7 @@ standardActionPrompt () break ;; [qQ]*) - exit + exit $EXIT_SUCCESS ;; [lL]*) displayLog $packageLogFile @@ -298,6 +290,11 @@ _checkFileSets () return fi + # if incomplete file set exists - remove it and try again + if [ -f "$fileSet/INCOMPLETE" ]; then + rm -rf $fileSet + fi + # attempt to create file set if it doesn't exist if [ ! -d "$fileSet" ]; then logMessage "creating file set for $venusVersion" @@ -310,7 +307,7 @@ _checkFileSets () local baseName="" local file="" - rm -f "$pkgFileSets/INCOMPLETE" + rm -f "$fileSet/INCOMPLETE" for file in $fileList ; do baseName=$(basename "$file") @@ -369,6 +366,9 @@ _checkFileSets () done if $matchFound ;then + if [ -e "$fileSet/$baseName.orig" ]; then + rm -rf "$fileSet/$baseName.orig" + fi ln -s "../$otherVersion/$baseName.orig" "$fileSet/$baseName.orig" rm -f "$fileSet/$baseName.NO_ORIG" # if other file set contains a replacement file, link to it @@ -395,7 +395,7 @@ _checkFileSets () if [ -f "$fileSet/INCOMPLETE" ]; then logMessage "ERROR: incomplete file set for $venusVersion - can't continue" - exit + exit $EXIT_FILE_SET_ERROR fi } @@ -405,14 +405,9 @@ _checkFileSets () endScript () { - if $restartGui $$ !rebootNeeded ; then - logMessage "restarting GUI" - svc -t /service/gui - fi - if [ $scriptAction == 'INSTALL' ] ; then - # indicate installation was successful, so reinstalls can use the existing options in the future - touch "$setupOptionsDir/optionsSet" + # assume that if we get this far, any command line opitons have already been set + touch "$setupOptionsDir/optionsSet" # set up reinstallMods to run this script again after a VenusOS update if [ ! -f "$reinstallScriptsList" ] || [ $(grep -c "$fullScriptName" "$reinstallScriptsList") == 0 ]; then @@ -432,33 +427,15 @@ endScript () sed -i -e 's?/data/SetupHelper?nohup /data/SetupHelper?' -e 's?reinstallMods?reinstallMods > /dev/null \&?' "$rcLocal" fi - # installed flag is removed if script needs to run again + # if script needs to run again, installedVersionFile flag file is removed + # script should run again at boot time via reinstallMods if $runAgain ; then logMessage "script will run again at startup" - rm -f "$installedFlag" - # otherwise installed flag is set so script won't be run again at boot + rm -f "$installedVersionFile" + # otherwise, installation is complete - update installedVersion else - cp "$scriptDir/version" "$installedFlag" - fi - - # add package to packageList if not already there and the GitHub paths have been specified - if [ ! -z $packageGitHubUser ] && [ ! -z $packageGitHubBranch ]; then - # move from previous locaiton - oldPackageListFile="$setupOptionsRoot/SetupHelper/packageList" - if [ -f "$oldPackageListFile" ]; then - mv "$oldPackageListFile" "$packageListFile" - fi - - if [ ! -f "$packageListFile" ] || [ $(grep -c "^$packageName\s" "$packageListFile") == 0 ]; then - logMessage "adding $packageName to SetupHelper package list" - echo "$packageName $packageGitHubUser $packageGitHubBranch" >> "$packageListFile" - fi - fi - - # update package version for the gui - takes time so do in background - nohup "/data/SetupHelper/updatePackageVersions" > /dev/null & - - + cp "$scriptDir/version" "$installedVersionFile" + fi elif [ $scriptAction == 'UNINSTALL' ] ; then # remove this script from reinstallScriptsList to prevent further calls during boot if [ -f "$reinstallScriptsList" ] && [ ! $(grep -c "$fullScriptName" "$reinstallScriptsList") == 0 ]; then @@ -468,82 +445,100 @@ endScript () fi # clean up only - flag not used since package is being removed - rm -f "$installedFlag" - - # update package version for the gui - takes time so do in background - nohup "/data/SetupHelper/updatePackageVersions" > /dev/null & + rm -f "$installedFlag" # obsolete but remove it anyway + rm -f "$installedVersionFile" + else + logMessage "unexpected script action $scriptAction - did not install or uninstall" fi - # this script was called from reinstallMods - # set exit code based on actual code - if $runningAtBoot ; then - if $rebootNeeded ; then - logMessage "reboot pending" - exit $exitReboot - else - logMessage "completed" - exit $exitSuccess - fi - - # this script was run manually - else - # if reboot needed ask user if it should be done now - if $rebootNeeded ; then - if $deferReboot ; then - exit $exitReboot - else - yesNoPrompt "Reboot system now (y) or issue a reboot manually later (n): " - if $yesResponse ; then - echo "rebooting ..." - reboot - else - echo "system must be rebooted to finish installation and activate components" - fi - fi - - elif $runAgain ; then - echo "$shortScriptName NOT completed" - echo " run it again manually to finish" - echo " or reboot the system to finish automatically" - exit $exitSuccess - else - logMessage "completed" - exit $exitSuccess - fi - fi + # prioritize exit + if $versionNotCompatible ; then + logMessage "version not compatible - exiting" + exit $EXIT_INCOMPATIBLE_VERSION + elif $platformNotCompatible ; then + logMessage "platform not compatible - exiting" + exit $EXIT_INCOMPATIBLE_PLATFOM + elif $rebootNeeded ; then + if $logToConsole ; then + yesNoPrompt "Reboot system now (y) or do it manually later (n): " + if $yesResponse ; then + echo "rebooting ..." + reboot + else + echo "system must be rebooted to finish installation and activate components" + exit $EXIT_REBOOT + fi + else + echo "rebooting needed" + exit $EXIT_REBOOT + fi + elif $restartGui ; then + if $logToConsole ; then + yesNoPrompt "Restart the GUI now (y) or issue a do it manually later (n): " + if $yesResponse ; then + echo "restarting GUI ..." + svc -t /service/gui + exit $EXIT_SUCCESS + else + echo "GUI must be restarted activate components" + exit $EXIT_RESTART_GUI + fi + else + if $deferGuiRestart ; then + logMessage "GUI restart needed" + exit $EXIT_RESTART_GUI + # GUI restart NOT deferred - do it now + else + svc -t /service/gui + exit $EXIT_SUCCESS + fi + fi + else + logMessage "completed" + exit $EXIT_SUCCESS + fi } ######## this code is executed in-line when CommonResources is sourced # check for reinstall parameter # set $scriptAction to control work following the source command -# if "force" is also provided on the command line, then the installedFlag is not checked -# installedFlag contains the installed version (if any) +# if "force" is also provided on the command line, then the installedVersionFile is not checked +# installedVersionFile contains the installed version (if any) # it is compared to the version file in the package directory -# if installedFlag is missing or contents are different, the installation will proceed -# if the two versions matched, there is no need to reinstall the package +# if installedVersionFile is missing or contents are different, the installation will proceed +# if the two versions match, there is no need to reinstall the package # we assume a reinstall is always run without benefit of a console (runningAtBoot will be true) # so there will be no prompts and all actions will be automatic # -# "deferReboot" signals that endScript should not prompt for a user reboot, but return exitReboot -# This is used by the manual package install called from SetupHelper setup script +# "deferReboot" signals that endScript should not reboot the system, but return EXIT_REBOOT +# assuming the caller will evenutally reboot the system +# +# "deferGuiRestart" is similar for restarting the GUI # +# "install" causes the package to be installed silently # "uninstall" causes the package to be uninstalled silently # # command line parameters may appear in any order - -# make sure rootfs is mounted R/W -if [ -f /opt/victronenergy/swupdate-scripts/remount-rw.sh ]; then - /opt/victronenergy/swupdate-scripts/remount-rw.sh -fi - +# +# +# logToConsole is set to true in the LogHandler script +# It is set to false here if the command line parameters suggest +# the setup script is being run without the aid of the command line interface +# in which case the user will not be prompted and apprporiate actions are taken automatically +# exit code returned by the setup script indicates additional actions that +# need to be taken by the caller (if any) or the reason the script could not be completed + +# collect command line options reinstall=false force=false deferReboot=false +deferGuiRestart=false while [ $# -gt 0 ]; do case $1 in $reinstallParam) reinstall=true + logToConsole=false ;; "force") force=true @@ -551,6 +546,13 @@ while [ $# -gt 0 ]; do "deferReboot") deferReboot=true ;; + "deferGuiRestart") + deferGuiRestart=true + ;; + "install") + scriptAction='INSTALL' + logToConsole=false + ;; "uninstall") scriptAction='UNINSTALL' logToConsole=false @@ -560,27 +562,79 @@ while [ $# -gt 0 ]; do shift done +# make sure rootfs is mounted R/W +if [ -f /opt/victronenergy/swupdate-scripts/remount-rw.sh ]; then + /opt/victronenergy/swupdate-scripts/remount-rw.sh +fi + +# move old installedFlag ("...inInstalled...") +# to its new name ...installedVersionFile... +if [ ! -f "$installedVersionFile" ] && [ -f "$installedFlag" ]; then + installedVersion=$(cat "$installedFlag") + if [ -z $installedVersion ]; then + installedVersion="unknown" + else + echo $installedVersion > "$installedVersionFile" + fi +fi +rm -f "$installedFlag" + +# packages that require options to proceed unattended +# must include the optionsRequried flag file in their package directory +# if the flag is present and options haven't been previously set, +# SD/USB media will be checked for the package options directory +# and copy them into position + +opitonsRequiredFile="$scriptDir/optionsRequired" +optionsSet=false +if [ -f $opitonsRequiredFile ]; then + if [ -f "$setupOptionsDir/optionsSet" ]; then + optionsSet=true + # options not set - check media for options if doing a blind install + elif [ $scriptAction == 'INSTALL' ]; then + mediaList=($(ls /media)) + for dir in ${mediaList[@]} ; do + altSetupDir="/media/$dir/"$(basename $setupOptionsRoot)"/$packageName" + if [ -f "$altSetupDir/optionsSet" ]; then + cp -r "$altSetupDir" "$setupOptionsRoot" + if [ -f "$setupOptionsDir/optionsSet" ]; then + logMessage "options retrieved from SD/USB media" + optionsSet=true + fi + break + fi + done + fi + +# no command line options are needed - ok to reinstall even if +# setup was not run from the command line +else + optionsSet=true +fi + +# called from reinstallMods at boot time if $reinstall ; then + installedVersion=$(cat "$installedVersionFile") + versionStringToNumber $installedVersion + installedVersionNumber=$versionNumber + packageVersion=$(cat "$scriptDir/version") + versionStringToNumber $packageVersion + packageVersionNumber=$versionNumber + + runningAtBoot=true if $force ; then scriptAction='INSTALL' - elif [ ! -f "$installedFlag" ]; then + elif [ ! -f "$installedVersionFile" ]; then + scriptAction='INSTALL' + # trigger install if version numbers differ + elif (( installedVersionNumber != packageVersionNumber )); then scriptAction='INSTALL' else - # compare installed version with the one in the package directory - # nothing to do - # if they are not the same, continue with install - iVer=$(cat "$installedFlag") - pVer=$(cat "$scriptDir/version") - if [ "$iVer" = "$pVer" ]; then - exit - else - scriptAction='INSTALL' - fi + exit $EXIT_SUCCESS fi - runningAtBoot=true logToConsole=false -# not a reinstall, continue with MANUAL installation +# not running from reinstallMods else runningAtBoot=false fi @@ -590,32 +644,85 @@ fi versionStringToNumber $venusVersion venusVersionNumber=$versionNumber -# check to see if package is compatible with this Venus version -notCompatible=false -if [ -f "$scriptDir/obsoleteVersion" ]; then - versionStringToNumber $(cat "$scriptDir/obsoleteVersion") - obsoleteVersion=$versionNumber +# create obsolete version file if it does not already exist +# accommodates previous mechanism that used shell varaible +if [ ! -z $obsoleteVersion ] && [ ! -f "$scriptDir/obsoleteVersion" ]; then + echo $obsoleteVersion > "$scriptDir/obsoleteVersion" +fi - if (( $venusVersionNumber >= $obsoleteVersion )); then - notCompatible=true - fi +# prevent installing Raspberry Pi packages on other platforms +platformNotCompatible=false +if [ -f "$scriptDir/raspberryPiOnly" ]; then + if [ -f /etc/venus/machine ]; then + machine=$(cat /etc/venus/machine) + fi + if [ -z $machine ]; then + if $isInstalled ; then + logMessage "can't determine Venus device type - uninstalling" + scriptAction='UNINSTALL' + else + logMessage "can't determine Venus device type - exiting" + exit $INCOMPATIBLE_PLATFORM + fi + elif [ $machine != "raspberrypi2" ] && [ $machine != "raspberrypi4" ]; then + platformNotCompatible=true + if $isInstalled ; then + logMessage "$packageName not compatible with $machine - uninstalling" + scriptAction='UNINSTALL' + else + logMessage "$packageName not compatible with $machine - exiting" + exit $EXIT_INCOMPATIBLE_PLATFOM + fi + fi fi -if $notCompatible ; then - logMessage "$packageName not compatible with Venus $venusVersion" - scriptAction='UNINSTALL' +# check to see if package is compatible with this Venus version +versionNotCompatible=false +if [ -f "$scriptDir/firstCompatibleVersion" ]; then + firstCompatibleVersion=$(cat "$scriptDir/firstCompatibleVersion") +# no first compatible version specified - use the default else - if [ ! -d "$setupOptionsRoot" ]; then - logMessage "creating root setup options directory $setupOptionsRoot" - mkdir $setupOptionsRoot - fi - - if [ ! -d "$setupOptionsDir" ]; then - logMessage "creating package options directory to $setupOptionsDir" - mkdir $setupOptionsDir - fi + firstCompatibleVersion='v2.40' +fi +versionStringToNumber $firstCompatibleVersion +firstCompatibleVersionNumber=$versionNumber +if (( $venusVersionNumber < $firstCompatibleVersionNumber )); then + versionNotCompatible=true +elif [ -f "$scriptDir/obsoleteVersion" ]; then + versionStringToNumber $(cat "$scriptDir/obsoleteVersion") + obsoleteVersionNumber=$versionNumber + if (( $venusVersionNumber >= $obsoleteVersionNumber )); then + versionNotCompatible=true + fi +fi +if $versionNotCompatible ; then + # if not installed, log message and exit + if $isInstalled ; then + logMessage "$packageName not compatible with Venus $venusVersion - can't install" + exit $EXIT_INCOMPATIBLE_VERSION + else + logMessage "$packageName not compatible with Venus $venusVersion - uninstalling" + scriptAction='UNINSTALL' + fi +else + if [ ! -d "$setupOptionsRoot" ]; then + logMessage "creating root setup options directory $setupOptionsRoot" + mkdir $setupOptionsRoot + fi + + if [ ! -d "$setupOptionsDir" ]; then + logMessage "creating package options directory to $setupOptionsDir" + mkdir $setupOptionsDir + fi fi +# attempting an install without the comand line prompting +# and needed options have not been set yet +# can't continue +if [ $scriptAction == 'INSTALL' ] && ! $optionsSet ; then + logMessage "required options have not been set - can't install" + exit $EXIT_OPTIONS_NOT_SET +fi # if forcing an uninstall, skip file set checks if [ $scriptAction != 'UNINSTALL' ]; then _checkFileSets diff --git a/EssentialResources b/EssentialResources index 70e7c22..b642bab 100755 --- a/EssentialResources +++ b/EssentialResources @@ -11,6 +11,10 @@ fullScriptName="$scriptDir/$(basename "$0")" venusVersion="$(cat /opt/victronenergy/version | head -n 1)" +installedVersionPrefix="/etc/venus/installedVersion-" +installedVersionFile="$installedVersionPrefix"$packageName + +# obsolete - use installedVersion installedFlagPrefix="/etc/venus/inInstalled-" installedFlag="$installedFlagPrefix"$packageName @@ -25,8 +29,19 @@ fileSet="$pkgFileSets/$venusVersion" rcLocal="/data/rcS.local" # defined exit codes - must be consistent between all setup scripts and reinstallMods -exitReboot=123 -exitSuccess=0 +# and PackageManager.py +EXIT_SUCCESS=0 +EXIT_REBOOT=123 +EXIT_RESTART_GUI=124 +EXIT_ERROR=255 # unknown error +EXIT_INCOMPATIBLE_VERSION=254 +EXIT_INCOMPATIBLE_PLATFOM=253 +EXIT_FILE_SET_ERROR=252 +EXIT_OPTIONS_NOT_SET=251 +EXIT_RUN_AGAIN=250 +# old variables - keep for compatibility +exitReboot=$EXIT_REBOOT +exitSuccess=$EXIT_SUCCESS reinstallParam="reinstall" @@ -40,3 +55,74 @@ packageListFile="/data/packageList" qmlDir=/opt/victronenergy/gui/qml + + +# convert a version string in the form of vX.Y~Z-large-W to an integer to make comparisions easier +# the ~Z portion indicates a pre-release version so a version without it is later than a version with it +# the -W portion is like the ~Z for large builds +# the large portion is IGNORED !!!! +# note part[0] is always null because there is nothing before v which is used as a separator +# +# the incoming verison string is split on every non-digit character +# the first three of those pieces are combined into a single integer +# additional pieces are ignored +# +# for example v1.2~3 would be 1002003 +# for example v11.22.33 would be 11022033 +# for example v11.22-large-33 would be 11022999 +# an empty file or one that contains "unknown" or does not beging with 'v' +# has a version number = 0 +# +# the separators ~, b, a and d are given special significance +# indicating beta (~ and b), alpha or develompent releases +# which are prioritized: release is the highest, then beta, then alpha then development +# by spliting the third number range into individual ranges +# a released version is given the highest numerical value: 999 +# none for release -- 999 +# ~ or b for beta 0-398 600-998 +# a for alpha 0-299 300-599 +# d for development 0-299 0-299 + +function versionStringToNumber () +{ + local version + local type + local major + local minor + local preRelease + local number + version=$( echo ${1:1} | sed -e 's/-.*//') + read major minor preRelease <<< $(echo $version | sed 's/[.abd~]/ /g') + type=$(echo $version | sed 's/[^abd~]//g') + + # assemble core version number from major, minor and preRelease parts + (( number = 0 )) + if [ ! -z $major ]; then + (( number += major * 1000000 )) + fi + if [ ! -z $minor ]; then + (( number += minor * 1000 )) + fi + if [ ! -z $preRelease ]; then + (( number += preRelease )) + fi + + # adjust number for release + if [ -z $type ] || [ $type = '' ]; then + # if no preRelease part specified, the preRelease version needs to be it's maximum + # if a preRelease part is specified, use as is + # (should never specify a preRelease for a released version !!!) + if [ -z $preRelease ] || [ $preRelease = '' ]; then + (( number += 999 )) + fi + # adjust number for alpha + elif [ $type == 'a' ]; then + (( number += 300 )) + # adjust number for beta + elif [ $type == 'b' ] || [ $type == '~' ]; then + (( number += 600 )) + fi + versionNumber=$number +} + + diff --git a/FileSets/MbDisplayDefaultPackage.qml b/FileSets/MbDisplayDefaultPackage.qml new file mode 100644 index 0000000..5fc31c5 --- /dev/null +++ b/FileSets/MbDisplayDefaultPackage.qml @@ -0,0 +1,95 @@ +//////// new for PackageManager + +import QtQuick 1.1 +import com.victron.velib 1.0 +import "utils.js" as Utils + +MbItem { + id: root + + property int defaultIndex + property string servicePrefix + + VBusItem { id: packageName; bind: getServiceBind ("PackageName") } + + + onClicked: rootWindow.pageStack.push ("/opt/victronenergy/gui/qml/PageSettingsPackageAdd.qml", {defaultIndex: defaultIndex}) + + + function getServiceBind(param) + { + return Utils.path(servicePrefix, "/Default/", defaultIndex, "/", param) + } + + + MbRowSmall + { + description: "" + + anchors.verticalCenter: parent.verticalCenter + Column + { + width: root.width - gitHubUser.width - gitHubBranch.width - 20 + Text // puts a bit of space above package name + { + text: " " + font.pixelSize: 6 + } + Text + { + text:packageName.valid ? packageName.value : "" + font.pixelSize: 14 + horizontalAlignment: Text.AlignLeft + } + Text + { + text: "" + font.pixelSize: 10 + horizontalAlignment: Text.AlignLeft + } + } + Column + { + Text // puts a bit of space above version boxes + { + text: " " + font.pixelSize: 3 + } + Text + { + text: "GitHub User" + font.pixelSize: 10 + } + MbTextBlock + { + id: gitHubUser + item { bind: getServiceBind("GitHubUser") } + height: 20; width: 120 + } + Text // puts a bit of space below version boxes - only needed in one column + { + text: " " + font.pixelSize: 6 + } + } + Column + { + Text // puts a bit of space above version boxes + { + text: " " + font.pixelSize: 3 + } + Text + { + text: qsTr ("GitHub Tag") + font.pixelSize: 10 + } + MbTextBlock + { + id: gitHubBranch + item { bind: getServiceBind("GitHubBranch") } + height: 20; width: 120 + } + } + } +} diff --git a/FileSets/MbDisplayPackageVersion.qml b/FileSets/MbDisplayPackageVersion.qml index db69fe6..eb69112 100644 --- a/FileSets/MbDisplayPackageVersion.qml +++ b/FileSets/MbDisplayPackageVersion.qml @@ -1,3 +1,5 @@ +//////// new for PackageManager + import QtQuick 1.1 import com.victron.velib 1.0 import "utils.js" as Utils @@ -5,41 +7,159 @@ import "utils.js" as Utils MbItem { id: root - property int versionIndex - property string bindPrefix + property int packageIndex + property string servicePrefix + property string settingsPrefix + + VBusItem { id: packageName; bind: getSettingsBind ("PackageName") } + property VBusItem rebootNeededItem: VBusItem { bind: getServiceBind ( "RebootNeeded") } + property VBusItem guiRestartNeededItem: VBusItem { bind: getServiceBind ( "GuiRestartNeeded") } + property bool rebootNeeded: rebootNeededItem.valid && rebootNeededItem.value == 1 + property bool guiRestartNeeded: guiRestartNeededItem.valid && guiRestartNeededItem.value == 1 + + VBusItem { id: platformItem; bind: Utils.path("com.victronenergy.packageManager", "/Platform" ) } + VBusItem { id: incompatibleItem; bind: getServiceBind ( "Incompatible" ) } + property string incompatibleReason: incompatibleItem.valid ? incompatibleItem.value : "" + property bool compatible: incompatibleReason == "" + property string platform: platformItem.valid ? platformItem.value : "??" + + onClicked: rootWindow.pageStack.push ("/opt/victronenergy/gui/qml/PageSettingsPackageEdit.qml", {packageIndex: packageIndex}) - function getBind(param) + + function statusText () { - return Utils.path(bindPrefix, "/", versionIndex, "/", param) + if (rebootNeeded) + return qsTr (" REBOOT needed") + if (guiRestartNeeded) + return qsTr (" GUI restart needed") + else if (incompatibleReason == 'PLATFORM') + return qsTr ( " not compatible with " + platform ) + else if (incompatibleReason == 'VERSION') + return qsTr ( " not compatible with " + vePlatform.version ) + else if (incompatibleReason == 'CMDLINE' && installedVersion.item.value == "") + return qsTr ( " must install from command line" ) + else + return "" } - VBusItem { id: packageName; bind: getBind ("PackageName") } + function getSettingsBind(param) + { + return Utils.path(settingsPrefix, "/", packageIndex, "/", param) + } + function getServiceBind(param) + { + return Utils.path(servicePrefix, "/Package/", packageIndex, "/", param) + } + + function versionToNumber (item) + { + var parts=["x", "x", "x", "x", "x"] + var versionNumber = 0 + + if (item.valid && item.value.substring (0,1) == "v") + { + parts = item.value.split (/[v.~]+/ , 4) + { + if (parts.length >= 2) + versionNumber += parseInt(parts[1]) * 1000000 + if (parts.length >= 3) + versionNumber += parseInt(parts[2]) * 1000 + if (parts.length >= 4) + versionNumber += parseInt(parts[3]) + else + versionNumber += 999 + } + } + return versionNumber + } MbRowSmall { + description: "" + anchors.verticalCenter: parent.verticalCenter - height: 20 - - isCurrentItem: root.isCurrentItem - description: packageName.valid ? packageName.value : "" - MbTextBlock - { - id: gitUser - item { bind: getBind("GitHubUser") } - width: 100 - show: packageName.valid && item.valid - } - MbTextBlock - { - item { bind: getBind("GitHubBranch") } - show: packageName.valid && gitUser.item.valid - width: 80 - } - MbTextBlock - { - item { bind: getBind("PackageVersion") } - width: 80 - show: packageName.valid + Column + { + width: root.width - gitHubVersion.width - packageVersion.width - installedVersion.width - 20 + Text // puts a bit of space above package name + { + text: " " + font.pixelSize: 6 + } + Text + { + text:packageName.valid ? packageName.value : "" + font.pixelSize: 14 + horizontalAlignment: Text.AlignLeft + } + Text + { + text: statusText () + font.pixelSize: 10 + horizontalAlignment: Text.AlignLeft + } + } + Column + { + Text // puts a bit of space above version boxes + { + text: " " + font.pixelSize: 3 + } + Text + { + text: "GitHub" + font.pixelSize: 10 + } + MbTextBlock + { + id: gitHubVersion + item { bind: getServiceBind("GitHubVersion") } + height: 20; width: 80 + } + Text // puts a bit of space below version boxes - only needed in one column + { + text: " " + font.pixelSize: 6 + } } + Column + { + Text // puts a bit of space above version boxes + { + text: " " + font.pixelSize: 3 + } + Text + { + text: qsTr ("Stored") + font.pixelSize: 10 + } + MbTextBlock + { + id: packageVersion + item { bind: getServiceBind("PackageVersion") } + height: 20; width: 80 + } + } + Column + { + Text // puts a bit of space above version boxes + { + text: " " + font.pixelSize: 3 + } + Text + { + text: qsTr ("Installed") + font.pixelSize: 10 + } + MbTextBlock + { + id: installedVersion + item { bind: getServiceBind("InstalledVersion") } + height: 20; width: 80 + } + } } } diff --git a/FileSets/PageSettingsAddPackageList.qml b/FileSets/PageSettingsAddPackageList.qml new file mode 100644 index 0000000..7eea12b --- /dev/null +++ b/FileSets/PageSettingsAddPackageList.qml @@ -0,0 +1,24 @@ +/////// new menu for package version display + +import QtQuick 1.1 +import "utils.js" as Utils +import com.victron.velib 1.0 + +MbPage { + id: root + title: defaultCount.valid ? qsTr("Inactive packages (tap to activate) ") : qsTr ("Package manager not running") + + property string servicePrefix: "com.victronenergy.packageManager" + // use DefaultCount as an indication that PackageManager is running + property VBusItem defaultCount: VBusItem { bind: Utils.path(servicePrefix, "/DefaultCount") } + + model: defaultCount.valid ? defaultCount.value : 0 + delegate: Component + { + MbDisplayDefaultPackage + { + servicePrefix: root.servicePrefix + defaultIndex: index + } + } +} diff --git a/FileSets/PageSettingsPackageAdd.qml b/FileSets/PageSettingsPackageAdd.qml new file mode 100644 index 0000000..372d22c --- /dev/null +++ b/FileSets/PageSettingsPackageAdd.qml @@ -0,0 +1,151 @@ +/////// new menu for package add edit + +import QtQuick 1.1 +import "utils.js" as Utils +import com.victron.velib 1.0 + +MbPage { + id: root + title: editActionItem.valid ? qsTr("Add package") : qsTr ("Package manager not running") + property string settingsPrefix: "com.victronenergy.settings/Settings/PackageManager" + property string servicePrefix: "com.victronenergy.packageManager" + property int defaultIndex:0 + property VBusItem defaultCount: VBusItem { bind: Utils.path(servicePrefix, "/DefaultCount") } + property VBusItem editActionItem: VBusItem { bind: Utils.path(servicePrefix, "/GuiEditAction") } + property VBusItem editStatus: VBusItem { bind: Utils.path(servicePrefix, "/GuiEditStatus") } + property string packageName: packageNameBox.item.valid ? packageNameBox.item.value : "" + property string editAction: editActionItem.valid ? editActionItem.value : '' + + property bool showControls: editActionItem.valid + + property VBusItem defaultPackageName: VBusItem { bind: Utils.path ( servicePrefix, "/Default/", defaultIndex, "/", "PackageName" ) } + property VBusItem defaultGitHubUser: VBusItem { bind: Utils.path ( servicePrefix, "/Default/", defaultIndex, "/", "GitHubUser" ) } + property VBusItem defaultGitHubBranch: VBusItem { bind: Utils.path ( servicePrefix, "/Default/", defaultIndex, "/", "GitHubBranch" ) } + property VBusItem editPackageName: VBusItem { bind: Utils.path ( settingsPrefix, "/Edit/", "PackageName" ) } + property VBusItem editGitHubUser: VBusItem { bind: Utils.path ( settingsPrefix, "/Edit/", "GitHubUser" ) } + property VBusItem editGitHubBranch: VBusItem { bind: Utils.path ( settingsPrefix, "/Edit/", "GitHubBranch" ) } + property bool addPending: false + + Component.onCompleted: + { + updateEdit () + } + + onEditActionChanged: + { + if (addPending && editAction == '') + { + addPending = false + pageStack.pop() + } + } + + function getSettingsBind(param) + { + return Utils.path(settingsPrefix, "/Edit/", param) + } + function getServiceBind(param) + { + return Utils.path(servicePrefix, "/Default/", defaultIndex, "/", param) + } + + // copy a set of default package values to Edit area when changing indexes + function updateEdit () + { + bindPrefix = Utils.path(servicePrefix, "/Default/", defaultIndex ) + editPackageName.setValue ( defaultPackageName.valid ? defaultPackageName.value : "??" ) + editGitHubUser.setValue ( defaultGitHubUser.valid ? defaultGitHubUser.value : "??" ) + editGitHubBranch.setValue ( defaultGitHubBranch.valid ? defaultGitHubBranch.value : "??" ) + editStatus.setValue ("") + editActionItem.setValue ("") + addPending = false + } + + function cancelEdit () + { + addPending = false + if (editAction == '') + pageStack.pop() + else + { + editStatus.setValue ("") + editActionItem.setValue ("") + } + } + function confirm () + { + addPending = true + // provide local confirmation of action - takes PackageManager too long + editStatus.setValue ( "adding " + packageName) + editActionItem.setValue ('add:' + packageName) + } + model: VisualItemModel + { + MbEditBox + { + id: packageNameBox + description: qsTr ("Package name") + maximumLength: 30 + item.bind: getSettingsBind ("PackageName") + overwriteMode: false + writeAccessLevel: User.AccessInstaller + show: showControls + } + MbEditBox + { + id: gitHubUser + description: qsTr ("GitHub user") + maximumLength: 20 + item.bind: getSettingsBind ("GitHubUser") + overwriteMode: false + writeAccessLevel: User.AccessInstaller + show: showControls + } + MbEditBox + { + id: gitHubBranch + description: qsTr ("GitHub branch or tag") + maximumLength: 20 + item.bind: getSettingsBind ("GitHubBranch") + overwriteMode: false + writeAccessLevel: User.AccessInstaller + show: showControls + } + MbOK + { + id: cancelButton + width: 90 + anchors { right: parent.right } + description: "" + value: editAction == '' ? qsTr("Cancel") : qsTr("OK") + onClicked: cancelEdit () + show: showControls + } + MbOK + { + id: proceedButton + width: 100 + anchors { right: cancelButton.left; bottom: cancelButton.bottom } + description: "" + value: qsTr ("Proceed") + onClicked: confirm () + show: showControls && editAction == '' + writeAccessLevel: User.AccessInstaller + } + Text + { + id: statusMessage + width: 250 + wrapMode: Text.WordWrap + anchors { left: parent.left; leftMargin: 10; bottom: cancelButton.bottom; bottomMargin: 5 } + font.pixelSize: 12 + text: + { + if (editStatus.valid && editStatus.value != "") + return editStatus.value + else + return ("add " + packageName + " ?") + } + } + } +} diff --git a/FileSets/PageSettingsPackageControl.qml b/FileSets/PageSettingsPackageControl.qml deleted file mode 100644 index 9b46b0f..0000000 --- a/FileSets/PageSettingsPackageControl.qml +++ /dev/null @@ -1,43 +0,0 @@ -/////// new menu for package version display - -import QtQuick 1.1 -import "utils.js" as Utils -import com.victron.velib 1.0 - -MbPage { - id: root - title: qsTr("Package Versions") - property string bindPrefix: "com.victronenergy.settings/Settings/PackageVersion" - VBusItem { id: checkingPackageItem; bind: Utils.path(bindPrefix, "/CheckingPackage") } - property string checkingPackage: checkingPackageItem.valid ? checkingPackageItem.value : "" - - model: VisualItemModel - { - MbSubMenu - { - description: qsTr("Package Version List") - subpage: Component { PageSettingsPackageVersions {} } - } - MbItemOptions - { - id: autoUpdate - description: qsTr ("Automatic Git Hub updates") - bind: Utils.path (bindPrefix, "/GitHubAutoUpdate") - possibleValues: - [ - MbOption { description: "Normal"; value: 1 }, - MbOption { description: "Fast one pass then Normal"; value: 2 }, - MbOption { description: "Check packages once (Fast)"; value: 3 }, - MbOption { description: "Disabled"; value: 0 } - ] - writeAccessLevel: User.AccessUser - } - MbItemText - { - text: checkingPackage - wrapMode: Text.WordWrap - horizontalAlignment: Text.AlignHCenter - show: checkingPackage != "" - } - } -} diff --git a/FileSets/PageSettingsPackageEdit.qml b/FileSets/PageSettingsPackageEdit.qml new file mode 100644 index 0000000..6308676 --- /dev/null +++ b/FileSets/PageSettingsPackageEdit.qml @@ -0,0 +1,397 @@ +/////// new menu for package version edit + +import QtQuick 1.1 +import "utils.js" as Utils +import com.victron.velib 1.0 + +MbPage { + id: root + title: platform.valid ? qsTr("Package editor") : qsTr ("Package manager not running") + property string settingsPrefix: "com.victronenergy.settings/Settings/PackageManager" + property string servicePrefix: "com.victronenergy.packageManager" + property int packageIndex: 0 + property int defaultIndex:0 + property VBusItem defaultCount: VBusItem { bind: Utils.path(servicePrefix, "/DefaultCount") } + property VBusItem packageCount: VBusItem { bind: Utils.path(settingsPrefix, "/Count") } + property VBusItem editAction: VBusItem { bind: Utils.path(servicePrefix, "/GuiEditAction") } + property VBusItem editStatus: VBusItem { bind: Utils.path(servicePrefix, "/GuiEditStatus") } + property string packageName: packageNameBox.item.valid ? packageNameBox.item.value : "" + property bool isSetupHelper: packageName == "SetupHelper" + + property VBusItem rebootNeeded: VBusItem { bind: getServiceBind ( "RebootNeeded") } + property VBusItem guiRestartNeeded: VBusItem { bind: getServiceBind ( "GuiRestartNeeded") } + property VBusItem incompatibleReason: VBusItem { bind: getServiceBind ( "Incompatible") } + property VBusItem platform: VBusItem { bind: Utils.path(servicePrefix, "/Platform") } + + property bool showControls: editAction.valid + property bool gitHubValid: gitHubVersion.item.valid && gitHubVersion.item.value.substring (0,1) === "v" + property bool packageValid: packageVersion.item.valid && packageVersion.item.value.substring (0,1) === "v" + property bool installedValid: installedVersion.item.valid && installedVersion.item.value.substring (0,1) === "v" + property bool downloadOk: gitHubValid && gitHubVersion.item.value != "" + property bool installOk: packageValid && packageVersion.item.value != "" && incompatibleReason.value == "" + property string requestedAction: '' + property bool actionPending: requestedAction != '' + property bool navigate: ! actionPending && ! waitForAction && showControls + property bool waitForAction: showControls && editAction.value != '' + property bool moreActions: showControls && (editAction.value == 'RebootNeeded' || editAction.value == 'GuiRestartNeeded') + + property VBusItem defaultPackageName: VBusItem { bind: Utils.path ( servicePrefix, "/Default/", defaultIndex, "/", "PackageName" ) } + property VBusItem defaultGitHubUser: VBusItem { bind: Utils.path ( servicePrefix, "/Default/", defaultIndex, "/", "GitHubUser" ) } + property VBusItem defaultGitHubBranch: VBusItem { bind: Utils.path ( servicePrefix, "/Default/", defaultIndex, "/", "GitHubBranch" ) } + property VBusItem editPackageName: VBusItem { bind: Utils.path ( settingsPrefix, "/Edit/", "PackageName" ) } + property VBusItem editGitHubUser: VBusItem { bind: Utils.path ( settingsPrefix, "/Edit/", "GitHubUser" ) } + property VBusItem editGitHubBranch: VBusItem { bind: Utils.path ( settingsPrefix, "/Edit/", "GitHubBranch" ) } + + + Component.onCompleted: + { + resetPackageIndex () + } + + function resetPackageIndex () + { + if (packageIndex < 0) + packageIndex = 0 + else if (packageIndex >= packageCount.value) + packageIndex = packageCount.value - 1 + } + + function getSettingsBind(param) + { + resetPackageIndex () + return Utils.path(settingsPrefix, "/", packageIndex, "/", param) + } + function getServiceBind(param) + { + resetPackageIndex () + return Utils.path(servicePrefix, "/Package/", packageIndex, "/", param) + } + + function nextIndex () + { + packageIndex += 1 + if (packageIndex >= packageCount.value) + packageIndex = packageCount.value - 1 + } + function previousIndex () + { + packageIndex -= 1 + if (packageIndex < 0) + packageIndex = 0 + } + function cancelEdit () + { + requestedAction = '' + editAction.setValue ( '' ) + editStatus.setValue ( '' ) + } + function confirm () + { + if (actionPending) + { + // provide local confirmation of action - takes PackageManager too long + editStatus.setValue ( (requestedAction == 'remove' ? "removing " : requestedAction + "ing ") + packageName) + editAction.setValue (requestedAction + ':' + packageName) + requestedAction = '' + } + } + function install () + { + requestedAction = 'install' + } + function uninstall () + { + requestedAction = 'uninstall' + } + function gitHubDownload () + { + requestedAction = 'download' + } + function remove () + { + requestedAction = 'remove' + } + function signalAdditionalAction () + { + if (editAction.value == 'RebootNeeded') + { + // provide local confirmation of action - takes PackageManager too long + editStatus.setValue ( "rebooting") + editAction.setValue ( 'reboot' ) + } + else if (editAction.value == 'GuiRestartNeeded') + { + // provide local confirmation of action - takes PackageManager too long + editStatus.setValue ( "restarting GUI") + editAction.setValue ( 'restartGui' ) + } + requestedAction = '' + } + + model: VisualItemModel + { + MbEditBox + { + id: packageNameBox + description: qsTr ("Package name") + maximumLength: 30 + item.bind: getSettingsBind ("PackageName") + overwriteMode: false + writeAccessLevel: User.AccessInstaller + readonly: true + show: showControls + } + MbRowSmall + { + description: qsTr ("Versions") + height: 25 + Text + { + text: "GitHub:" + font.pixelSize: 10 + show: showControls + } + show: showControls + MbTextBlock + { + id: gitHubVersion + item { bind: getServiceBind("GitHubVersion") } + height: 25; width: 80 + show: showControls + } + Text + { + text: qsTr ("stored:") + font.pixelSize: 10 + show: showControls + } + MbTextBlock + { + id: packageVersion + item { bind: getServiceBind("PackageVersion") } + height: 25; width: 80 + show: showControls + } + Text + { + text: + { + if (rebootNeeded.value == 1) + return qsTr ("REBOOT:") + else if (guiRestartNeeded.value == 1) + return qsTr ("GUI\nRestart:") + else + return qsTr ("installed:") + } + horizontalAlignment: Text.AlignRight + width: 50 + font.pixelSize: 10 + show: showControls && incompatibleReason.value == "" + } + MbTextBlock + { + id: installedVersion + item { bind: getServiceBind("InstalledVersion") } + height: 25; width: 80 + show: showControls && incompatibleReason.value == "" + } + Text + { + id: incompatibleText + text: + { + if (incompatibleReason.value == 'PLATFORM') + return ( qsTr ("not compatible with\n") + platformItem.value ) + else if (incompatibleReason.value == 'VERSION') + return ( qsTr ("not compatible with\n") + vePlatform.version ) + else if (incompatibleReason.value == 'CMDLINE') + return qsTr ("must install\nfrom command line" ) + else + return qsTr ("compatible ???" ) // compatible for unknown reason + } + horizontalAlignment: Text.AlignHCenter + width: 50 + 80 + 3 + font.pixelSize: 10 + show: showControls && ! incompatibleReason.value == "" + } + } + MbEditBox + { + id: gitHubUser + description: qsTr ("GitHub user") + maximumLength: 20 + item.bind: getSettingsBind ("GitHubUser") + overwriteMode: false + writeAccessLevel: User.AccessInstaller + show: showControls + } + MbEditBox + { + id: gitHubBranch + description: qsTr ("GitHub branch or tag") + maximumLength: 20 + item.bind: getSettingsBind ("GitHubBranch") + overwriteMode: false + writeAccessLevel: User.AccessInstaller + show: showControls + } + MbOK + { + id: removeButton + width: 170 + anchors { right: parent.right} + description: "" + value: qsTr("Remove package") + onClicked: remove () + writeAccessLevel: User.AccessInstaller + opacity: installedValid ? 0.0001 : 1.0 + show: navigate + } + MbOK + { + id: cancelButton + width: 90 + anchors { right: parent.right; bottom: removeButton.bottom } + description: "" + value: qsTr("Cancel") + onClicked: cancelEdit () + show: showControls && ! navigate && ! waitForAction + } + MbOK + { + id: dismissErrorButton + width: 90 + anchors { right: parent.right; bottom: removeButton.bottom } + description: "" + value: qsTr("OK") + onClicked: cancelEdit () + show: showControls && editAction.value == 'ERROR' + } + MbOK + { + id: laterButton + width: 90 + anchors { right: parent.right; bottom: removeButton.bottom } + description: "" + value: qsTr("Later") + onClicked: cancelEdit () + show: moreActions + } + MbOK + { + id: nowButton + width: 90 + anchors { right: laterButton.left; bottom: removeButton.bottom } + description: "" + value: qsTr("Now") + onClicked: signalAdditionalAction () + show: moreActions + } + MbOK + { + id: confirmButton + width: 375 + anchors { left: parent.left; bottom: removeButton.bottom } + description: "" + value: qsTr ("Proceed") + onClicked: confirm () + show: showControls && ! navigate && actionPending + writeAccessLevel: User.AccessInstaller + } + Text + { + id: statusMessage + width: 250 + wrapMode: Text.WordWrap + anchors { left: parent.left; leftMargin: 10; bottom: removeButton.bottom; bottomMargin: 5 } + font.pixelSize: 12 + color: actionPending && isSetupHelper ? "red" : "black" + text: + { + if (actionPending) + { + if (isSetupHelper && requestedAction == 'uninstall') + return qsTr ("WARNING: SetupHelper is required for these menus - uninstall anyway ?") + else + return (requestedAction + " " + packageName + " ?") + } + else if (editStatus.valid && editStatus.value != "") + return editStatus.value + else + return "" + } + show: waitForAction || actionPending + } + + // bottom row of buttons + MbOK + { + id: previousButton + width: 100 + anchors { left: parent.left ; top:removeButton.bottom } + description: "" + value: qsTr("Previous") + onClicked: previousIndex () + show: + { + if (! showControls) + return false + else if (packageIndex > 0) + return true + else + return false + } + } + MbOK + { + id: nextButton + width: 75 + anchors { left: previousButton.right; bottom: previousButton.bottom } + description: "" + value: qsTr("Next") + onClicked: nextIndex () + show: + { + if (! showControls) + return false + else if (packageIndex < packageCount.value - 1) + return true + else + return false + } + } + MbOK + { + id: downloadButton + width: 110 + anchors { right: installButton.left; bottom: previousButton.bottom } + description: "" + value: qsTr ("Download") + onClicked: gitHubDownload () + show: navigate && downloadOk + writeAccessLevel: User.AccessInstaller + } + MbOK + { + id: installButton + width: 90 + anchors { right: uninstallButton.left; bottom: previousButton.bottom } + description: "" + value: qsTr ("Install") + onClicked: install () + show: navigate && installOk + writeAccessLevel: User.AccessInstaller + } + MbOK + { + id: uninstallButton + width: 100 + anchors { right: parent.right; bottom: installButton.bottom } + description: "" + value: qsTr("Uninstall") + onClicked: uninstall () + show: navigate && installedValid + writeAccessLevel: User.AccessInstaller + } + } +} diff --git a/FileSets/PageSettingsPackageManager.qml b/FileSets/PageSettingsPackageManager.qml new file mode 100644 index 0000000..653f593 --- /dev/null +++ b/FileSets/PageSettingsPackageManager.qml @@ -0,0 +1,123 @@ +/////// new menu for package version display + +import QtQuick 1.1 +import "utils.js" as Utils +import com.victron.velib 1.0 + +MbPage { + id: root + title: qsTr("Package manager") + property string settingsPrefix: "com.victronenergy.settings/Settings/PackageManager" + property string servicePrefix: "com.victronenergy.packageManager" + VBusItem { id: downloadStatus; bind: Utils.path(servicePrefix, "/GitHubUpdateStatus") } + VBusItem { id: installStatus; bind: Utils.path(servicePrefix, "/InstallStatus") } + VBusItem { id: mediaStatus; bind: Utils.path(servicePrefix, "/MediaUpdateStatus") } + VBusItem { id: actionNeeded; bind: Utils.path(servicePrefix, "/ActionNeeded") } + VBusItem { id: editAction; bind: Utils.path(servicePrefix, "/GuiEditAction") } + property bool showInstallStatus: installStatus.valid && installStatus.value != "" + property bool showMediaStatus: mediaStatus.valid && mediaStatus.value != "" + property bool showControls: installStatus.valid + + model: VisualItemModel + { + MbItemText + { + id: status + text: + { + if (! showControls) + return"Package manager not running" + else if (installStatus.valid && installStatus.value != "") + return installStatus.value + else if (mediaStatus.valid && mediaStatus.value != "") + return mediaStatus.value + else if (downloadStatus.valid && downloadStatus.value != "") + return downloadStatus.value + else + return "idle" + } + wrapMode: Text.WordWrap + horizontalAlignment: Text.AlignHCenter + } + MbItemOptions + { + id: autoDownload + description: qsTr ("Automatic GitHub downloads") + bind: Utils.path (settingsPrefix, "/GitHubAutoDownload") + possibleValues: + [ + MbOption { description: "Normal"; value: 1 }, + MbOption { description: "Fast, then Normal"; value: 2 }, + MbOption { description: "Once (Fast)"; value: 3 }, + MbOption { description: "Off"; value: 0 } + ] + writeAccessLevel: User.AccessInstaller + } + MbSwitch + { + id: autoInstall + bind: Utils.path (settingsPrefix, "/AutoInstall") + name: qsTr ("Auto install packages") + writeAccessLevel: User.AccessInstaller + } + MbSubMenu + { + description: qsTr("Active packages") + subpage: Component { PageSettingsPackageVersions {} } + show: showControls + } + MbSubMenu + { + description: qsTr("Inactive packages") + subpage: Component { PageSettingsAddPackageList {} } + show: showControls + } + MbOK + { + id: finishButton + description: + { + if (editAction.value == 'reboot') + return qsTr ("REBOOTING ...") + else if (editAction.value == 'guiRestart') + return qsTr ("restarting GUI ...") + else + return qsTr ("action to finish install/uninstall") + } + value: + { + if (! actionNeeded.valid) + return "" + else if (actionNeeded.value == 'reboot') + return qsTr ("Reboot") + else if (actionNeeded.value == 'guiRestart') + return qsTr ("Restart GUI") + else + return "" + } + onClicked: + { + if (actionNeeded.value == 'reboot') + { + // needs immediate update because GUI will be going down ASAP + finishButton.description = qsTr ("REBOOTING ...") + editAction.setValue ( 'reboot' ) + } + else if (actionNeeded.value == 'guiRestart') + { + // needs immediate update because GUI will be going down ASAP + finishButton.description = qsTr ("restarting GUI ...") + editAction.setValue ( 'restartGui' ) + } + } + show: actionNeeded.valid && actionNeeded.value != '' + writeAccessLevel: User.AccessInstaller + } + MbSubMenu + { + description: qsTr("Backup & restore settings") + subpage: Component { PageSettingsPmBackup {} } + show: showControls + } + } +} diff --git a/FileSets/PageSettingsPackageVersions.qml b/FileSets/PageSettingsPackageVersions.qml index 01b4b8a..ce28c0b 100644 --- a/FileSets/PageSettingsPackageVersions.qml +++ b/FileSets/PageSettingsPackageVersions.qml @@ -6,17 +6,21 @@ import com.victron.velib 1.0 MbPage { id: root - title: qsTr("Package Version List") - property string bindPrefix: "com.victronenergy.settings/Settings/PackageVersion" - property VBusItem count: VBusItem { bind: Utils.path(bindPrefix, "/Count") } + title: defaultCount.valid ? qsTr("Active packages (tap to edit) ") : qsTr ("Package manager not running") + property string servicePrefix: "com.victronenergy.packageManager" + property string settingsPrefix: "com.victronenergy.settings/Settings/PackageManager" + property VBusItem count: VBusItem { bind: Utils.path(settingsPrefix, "/Count") } + // use DefaultCount as an indication that PackageManager is running + property VBusItem defaultCount: VBusItem { bind: Utils.path(servicePrefix, "/DefaultCount") } - model: count.valid ? count.value : 0 + model: defaultCount.valid ? count.valid ? count.value : 0 : 0 delegate: Component { MbDisplayPackageVersion { - bindPrefix: root.bindPrefix - versionIndex: index + servicePrefix: root.servicePrefix + settingsPrefix: root.settingsPrefix + packageIndex: index } } } diff --git a/FileSets/PageSettingsPmBackup.qml b/FileSets/PageSettingsPmBackup.qml new file mode 100644 index 0000000..dd652b9 --- /dev/null +++ b/FileSets/PageSettingsPmBackup.qml @@ -0,0 +1,62 @@ +/////// new menu for settings backup and restore + +import QtQuick 1.1 +import "utils.js" as Utils +import com.victron.velib 1.0 + +MbPage { + id: root + title: qsTr("Settings backup & restore") + property string settingsPrefix: "com.victronenergy.settings/Settings/PackageManager" + property string servicePrefix: "com.victronenergy.packageManager" + VBusItem { id: mediaAvailable; bind: Utils.path(servicePrefix, "/BackupMediaAvailable") } + VBusItem { id: settingsFileExists; bind: Utils.path(servicePrefix, "/BackupSettingsFileExist") } + VBusItem { id: backupProgressItem; bind: Utils.path(servicePrefix, "/BackupProgress") } + property int backupProgress: backupProgressItem.valid ? backupProgressItem.value : 0 + + model: VisualItemModel + { + MbItemText + { + id: info + text: qsTr ("Backup and restore SOME system settings\nthis is NOT the Victron mechanism currently under development") + wrapMode: Text.WordWrap + horizontalAlignment: Text.AlignHCenter + } + MbItemText + { + id: status + text: + { + if (backupProgress == 1 || backupProgress == 3) + return qsTr ("backing up settings ... (may take a while)") + else if (backupProgress == 2 || backupProgress == 4) + return qsTr ("restoring settings ... (may take a while)") + else if ( ! mediaAvailable.valid || mediaAvailable.value == 0) + return qsTr ("No USB or SD media found - insert one to continue") + else if (settingsFileExists.valid && settingsFileExists.value == 1) + return qsTr ("Settings backup file found") + else + return "" + } + wrapMode: Text.WordWrap + horizontalAlignment: Text.AlignHCenter + } + MbOK + { + description: qsTr("Backup settings") + value: qsTr("Press to backup settings") + onClicked: backupProgressItem.setValue (1) + show: mediaAvailable.valid && mediaAvailable.value == 1 && backupProgressItem.value == 0 + writeAccessLevel: User.AccessInstaller + } + MbOK + { + description: qsTr("Restore settings") + value: qsTr("Press to restore settings") + onClicked: backupProgressItem.setValue (2) + show: settingsFileExists.valid && settingsFileExists.value == 1 && backupProgressItem.value == 0 + writeAccessLevel: User.AccessInstaller + } + } +} diff --git a/FileSets/v2.42/PageSettings.qml b/FileSets/v2.42/PageSettings.qml index 5c5a575..0c75ba2 100644 --- a/FileSets/v2.42/PageSettings.qml +++ b/FileSets/v2.42/PageSettings.qml @@ -172,8 +172,8 @@ MbPage { //////// added for package control and version display MbSubMenu { - description: qsTr("Package Versions") - subpage: Component { PageSettingsPackageControl {} } + description: qsTr("Package manager") + subpage: Component { PageSettingsPackageManager {} } } MbSubMenu { diff --git a/FileSets/v2.58/PageSettings.qml b/FileSets/v2.58/PageSettings.qml index ddf5b63..dd744f4 100644 --- a/FileSets/v2.58/PageSettings.qml +++ b/FileSets/v2.58/PageSettings.qml @@ -179,8 +179,8 @@ MbPage { //////// added for package control and version display MbSubMenu { - description: qsTr("Package Versions") - subpage: Component { PageSettingsPackageControl {} } + description: qsTr("Package manager") + subpage: Component { PageSettingsPackageManager {} } } MbSubMenu { diff --git a/FileSets/v2.66/PageSettings.qml b/FileSets/v2.66/PageSettings.qml index 1541327..9a8359b 100644 --- a/FileSets/v2.66/PageSettings.qml +++ b/FileSets/v2.66/PageSettings.qml @@ -184,8 +184,8 @@ MbPage { //////// added for package control and version display MbSubMenu { - description: qsTr("Package Versions") - subpage: Component { PageSettingsPackageControl {} } + description: qsTr("Package manager") + subpage: Component { PageSettingsPackageManager {} } } MbSubMenu { diff --git a/FileSets/v2.73/PageSettings.qml b/FileSets/v2.73/PageSettings.qml index 328b74a..22a3ad8 100644 --- a/FileSets/v2.73/PageSettings.qml +++ b/FileSets/v2.73/PageSettings.qml @@ -175,8 +175,8 @@ MbPage { //////// added for package control and version display MbSubMenu { - description: qsTr("Package Versions") - subpage: Component { PageSettingsPackageControl {} } + description: qsTr("Package manager") + subpage: Component { PageSettingsPackageManager {} } } MbSubMenu { diff --git a/FileSets/v2.80~19/PageSettings.qml b/FileSets/v2.80~19/PageSettings.qml index cf8519e..4aaf3b4 100644 --- a/FileSets/v2.80~19/PageSettings.qml +++ b/FileSets/v2.80~19/PageSettings.qml @@ -180,8 +180,8 @@ MbPage { //////// added for package control and version display MbSubMenu { - description: qsTr("Package Versions") - subpage: Component { PageSettingsPackageControl {} } + description: qsTr("Package manager") + subpage: Component { PageSettingsPackageManager {} } } MbSubMenu { diff --git a/FileSets/v2.80~21-large-23/PageSettings.qml b/FileSets/v2.80~21-large-23/PageSettings.qml index 1ca0a3f..87e14f2 100644 --- a/FileSets/v2.80~21-large-23/PageSettings.qml +++ b/FileSets/v2.80~21-large-23/PageSettings.qml @@ -186,8 +186,8 @@ MbPage { //////// added for package control and version display MbSubMenu { - description: qsTr("Package Versions") - subpage: Component { PageSettingsPackageControl {} } + description: qsTr("Package manager") + subpage: Component { PageSettingsPackageManager {} } } MbSubMenu { diff --git a/FileSets/v2.80~21/PageSettings.qml b/FileSets/v2.80~21/PageSettings.qml index 1e54cd1..8146813 100644 --- a/FileSets/v2.80~21/PageSettings.qml +++ b/FileSets/v2.80~21/PageSettings.qml @@ -180,8 +180,8 @@ MbPage { //////// added for package control and version display MbSubMenu { - description: qsTr("Package Versions") - subpage: Component { PageSettingsPackageControl {} } + description: qsTr("Package manager") + subpage: Component { PageSettingsPackageManager {} } } MbSubMenu { diff --git a/FileSets/v2.80~21/PageSettings.qml 2.orig b/FileSets/v2.80~21/PageSettings.qml 2.orig new file mode 100644 index 0000000..37363e6 --- /dev/null +++ b/FileSets/v2.80~21/PageSettings.qml 2.orig @@ -0,0 +1,185 @@ +import QtQuick 1.1 +import com.victron.velib 1.0 +import net.connman 0.1 +import "utils.js" as Utils + +MbPage { + title: qsTr("Settings") + property string bindPrefix: "com.victronenergy.settings" + property VBusItem relay0Item: VBusItem {bind: "com.victronenergy.system/Relay/0/State"} + property bool hasRelay0: relay0Item.valid + + model: VisualItemModel { + MbSubMenu { + id: generalItem + description: qsTr("General") + subpage: Component { + PageSettingsGeneral { + title: generalItem.description + } + } + } + + MbSubMenu { + description: qsTr("Firmware") + subpage: Component { + PageSettingsFirmware { + title: qsTr("Firmware") + } + } + } + + MbSubMenu { + description: qsTr("Date & Time") + subpage: Component { + PageTzInfo { + title: qsTr("Date & Time") + } + } + } + + MbSubMenu { + description: qsTr("Remote Console") + subpage: Component { PageSettingsRemoteConsole {} } + } + + MbSubMenu { + id: systemSetupItem + description: qsTr("System setup") + subpage: Component { + PageSettingsSystem { + title: systemSetupItem.description + } + } + } + + MbSubMenu { + id: dvcc + description: qsTr("DVCC") + subpage: Component { + PageSettingsDVCC { + title: dvcc.description + } + } + } + + MbSubMenu { + id: displayItem + description: qsTr("Display & language") + subpage: Component { + PageSettingsDisplay { + title: displayItem.description + } + } + } + + MbSubMenu { + id: vrmLoggerItem + description: qsTr("VRM online portal") + subpage: Component { + PageSettingsLogger { + title: vrmLoggerItem.description + } + } + } + + MbSubMenu { + VBusItem { + id: systemType + bind: "com.victronenergy.system/SystemType" + } + description: systemType.value === "Hub-4" ? systemType.value : qsTr("ESS") + subpage: Component { PageSettingsHub4 {} } + } + + MbSubMenu { + description: qsTr("Energy meters") + subpage: Component { PageSettingsCGwacsOverview {} } + } + + MbSubMenu { + description: qsTr("PV inverters") + subpage: Component { PageSettingsFronius {} } + } + + MbSubMenu { + show: App.withQwacs + description: qsTr("Wireless AC sensors") + subpage: Component { PageSettingsQwacs {} } + } + + MbSubMenu { + description: qsTr("Modbus TCP devices") + subpage: Component { PageSettingsModbus {} } + } + + MbSubMenu { + id: ethernetItem + description: qsTr("Ethernet") + subpage: Component { PageSettingsTcpIp { showLinkLocal: true } } + } + + MbSubMenu { + description: qsTr("Wi-Fi") + subpage: vePlatform.hasHostAccessPoint ? wifiWithAP : wifiWithoutAP + Component { id: wifiWithoutAP; PageSettingsWifi {} } + Component { id: wifiWithAP; PageSettingsWifiWithAccessPoint {} } + } + + MbSubMenu { + description: qsTr("GSM modem") + subpage: Component { PageSettingsGsm {} } + } + + MbSubMenu { + description: qsTr("Bluetooth") + subpage: Component { PageSettingsBluetooth {} } + show: Connman.technologyList.indexOf("bluetooth") !== -1 + } + + MbSubMenu { + description: qsTr("GPS") + subpage: Component { PageSettingsGpsList {} } + } + + MbSubMenu { + description: qsTr("Generator start/stop") + subpage: Component { PageRelayGenerator {} } + show: hasRelay0 + } + + MbSubMenu { + description: qsTr("Tank pump") + subpage: Component { PageSettingsTankPump {} } + } + + MbSubMenu { + description: qsTr("Relay") + subpage: Component { PageSettingsRelay {} } + show: hasRelay0 + } + + MbSubMenu { + description: qsTr("Services") + subpage: Component { PageSettingsServices {} } + } + + MbSubMenu { + description: qsTr("I/O") + subpage: ioSettings + show: ioSettings.haveSubMenus + PageSettingsIo { id: ioSettings } + } + + MbSubMenu { + description: qsTr("Backup & Restore") + subpage: Component { PageSettingsBackup {} } + } + + MbSubMenu { + description: qsTr("Debug") + subpage: Component { PageDebug {} } + showAccessLevel: User.AccessService + } + } +} diff --git a/FileSets/v2.80~24/PageSettings.qml b/FileSets/v2.80~24/PageSettings.qml index 855dae2..f0a4a32 100644 --- a/FileSets/v2.80~24/PageSettings.qml +++ b/FileSets/v2.80~24/PageSettings.qml @@ -182,8 +182,8 @@ MbPage { //////// added for package control and version display MbSubMenu { - description: qsTr("Package Versions") - subpage: Component { PageSettingsPackageControl {} } + description: qsTr("Package manager") + subpage: Component { PageSettingsPackageManager {} } } MbSubMenu { diff --git a/FileSets/v2.80~29/PageSettings.qml b/FileSets/v2.80~29/PageSettings.qml index d89e7d3..1f9c8aa 100644 --- a/FileSets/v2.80~29/PageSettings.qml +++ b/FileSets/v2.80~29/PageSettings.qml @@ -182,8 +182,8 @@ MbPage { //////// added for package control and version display MbSubMenu { - description: qsTr("Package Versions") - subpage: Component { PageSettingsPackageControl {} } + description: qsTr("Package manager") + subpage: Component { PageSettingsPackageManager {} } } MbSubMenu { diff --git a/FileSets/v2.80~33-large-24/PageSettings.qml b/FileSets/v2.80~33-large-24/PageSettings.qml index 4d0da72..88b02ab 100644 --- a/FileSets/v2.80~33-large-24/PageSettings.qml +++ b/FileSets/v2.80~33-large-24/PageSettings.qml @@ -170,20 +170,12 @@ MbPage { subpage: ioSettings show: ioSettings.haveSubMenus PageSettingsIo { id: ioSettings } - } - - MbSubMenu { - description: qsTr("Backup & Restore") - subpage: Component { PageSettingsBackup {} } - } - /* MbSubMenu { description: qsTr("Backup & Restore") subpage: Component { PageSettingsBackup {} } } */ - MbSubMenu { description: qsTr("Venus OS Large features") subpage: Component { PageSettingsLarge {} } @@ -193,8 +185,8 @@ MbPage { //////// added for package control and version display MbSubMenu { - description: qsTr("Package Versions") - subpage: Component { PageSettingsPackageControl {} } + description: qsTr("Package manager") + subpage: Component { PageSettingsPackageManager {} } } MbSubMenu { diff --git a/PackageManager.py b/PackageManager.py new file mode 100755 index 0000000..6b47af2 --- /dev/null +++ b/PackageManager.py @@ -0,0 +1,3234 @@ +#!/usr/bin/env python +# +# PackageManager.py +# Kevin Windrem +# +# +# This program is responsible for +# downloading, installing and unstalling packages +# package monitor also checks SD cards and USB sticks for package archives +# either automatically or manually via the GUI +# providing the user with status on installed packages and any updates via the GUI +# +# It runs as /service/PackageManager +# +# Persistent storage for packageManager is stored in dbus Settings: +# +# com.victronenergy.Settings parameters for each package: +# /Settings/PackageManager/n/PackageName can not be edited by the GUI +# /Settings/PackageManager/n/GitHubUser can be edited by the GUI +# /Settings/PackageManager/n/GitHubBranch can be edited by the GUI +# /Settings/PackageManager/Count the number of ACTIVE packages (0 <= n < Count) +# /Settings/PackageManager/Edit/... GUI edit package set - all fields editable +# +# /Settings/PackageManager/GitHubAutoDownload set by the GUI to control automatic updates from GitHub +# 0 - no GitHub auto downloads (version checks still occur) +# 1 - normal updates - one download every 10 minutes +# 2 - fast updates - one download update every 10 seconds, then at the normal rate after one pass +# 3 - one update pass at the fast rate, then to no updates +# changing to one of the fast scans, starts from the first package +# +# if no download is needed, checks for downloads are fast: every 5 seconds, slow: every 2 minutes + +AUTO_DOWNLOADS_OFF = 0 +NORMAL_DOWNLOAD = 1 +FAST_DOWNLOAD = 2 +ONE_DOWNLOAD = 3 + +# /Settings/PackageManager/AutoInstall +# 0 - no automatic install +# 1 - automatic install after download from GitHub or SD/USB +# +# Additional (volatile) parameters linking packageManager and the GUI are provided in a separate dbus service: +# +# com.victronenergy.packageManager parameters +# /Package/n/GitHubVersion from GitHub +# /Package/n/PackageVersion from /data /version from the package directory +# /Package/n/InstalledVersion from /etc/venus/isInstalled- +# /Package/n/RebootNeeded indicates a reboot is needed to activate this package +# /Package/n/Incompatible indicates if package is or is not compatible with the system +# '' if compatible +# 'VERSION' if the system version is outside the package's acceptable range +# 'PLATFORM' package can not run on this platform +# 'CMDLINE' setup must be run from command line +# currently only for Raspberry PI packages only +# +# for both Settings and the the dbus service: +# n is a 0-based section used to reference a specific package +# +# a list of default packages that are not in the main package list +# these sets are used by the GUI to display a list of packages to be added to the system +# filled in from /data/SetupHelper/defaultPackageList, but eliminating any packages already in /data +# the first entry (m = 0) is "new" - for a new package +# "new" just displays in the packages to add list in the GUI +# all package additions are done through /Settings/PackageManager/Edit/... +# /Default/m/PackageName +# /Default/m/GitHubUser +# /Default/m/GitHubBranch +# /DefaultCount the number of default packages +# +# m is a 0-based section used to referene a specific default paclage +# +# /GuiEditAction is a text string representing the action +# set by the GUI to trigger an action in PackageManager +# 'install' - install package from /data to the Venus working directories +# 'uninstall' - uninstall package from the working directories +# 'download" - download package from GutHub to /data +# 'add' - add package to package list (after GUI sets .../Edit/... +# 'remove' - remove package from list TBD ????? +# 'reboot' - reboot +# 'restartGui' - restart the GUI +# +# the GUI must wait for PackageManager to signal completion of one operation before initiating another +# +# set by packageMonitor when the task is complete +# return codes - set by PackageManager +# '' - action completed without errors (idle) +# 'ERROR' - error during action - error reported in /GuiEditStatus: +# unknown error +# not compatible with this version +# not compatible with this platform +# no options present - must install from command line +# GUI choices: OK - closes "dialog" +# 'RebootNeeded' - reboot needed +# GUI choices: +# Do it now +# GUI sends 'reboot' command to PackageManager +# Defer +# GUI sets action to 0 +# 'GuiRestartNeeded' - GUI restart needed +# GUI choices: +# Do it now +# GUI sends 'restartGui' command to PackageManager +# Defer +# GUI sets action to 0 +# +# +# the following service parameters control settings backup and restore +# /BackupMediaAvailable True if suitable SD/USB media is detected by PackageManager +# /BackupSettingsFileExist True if PackageManager detected a settings backup file +# /BackupProgress used to trigger and provide status of an operation +# 0 nothing happening - set by PackageManager when operaiton completes +# 1 set by the GUI to trigger a backup operation +# 2 set by the GUI to trigger a restore operation +# 3 set by PackageManager to indicate a backup is in progress +# 4 set by PackageManager to indicate a restore is in progress +# +# setup script return codes and install states +EXIT_SUCCESS = 0 +EXIT_REBOOT = 123 +EXIT_RESTART_GUI = 124 +EXIT_INCOMPATIBLE_VERSION = 254 +EXIT_INCOMPATIBLE_PLATFOM = 253 +EXIT_FILE_SET_ERROR = 252 +EXIT_OPTIONS_NOT_SET = 251 +EXIT_RUN_AGAIN = 250 +EXIT_ERROR = 255 # generic error +# install states only +ERROR_NO_SETUP_FILE = 999 +# +# +# /GuiEditStatus a text message to report edit status to the GUI +# +# /GitHubUpdateStatus as above for automatic GitHub update +# +# /InstallStatus as above for automatic install/uninstall +# +# /MediaUpdateStatus as above for SD/USB media transfers +# +# /Platform a translated version of the platform (aka machine) +# machine Platform +# ccgx CCGX +# einstein Cerbo GX +# bealglebone Venus GX +# canvu500 CanVu 500 +# nanopi Multi/Easy Solar GX +# raspberrypi2 Raspberry Pi 2/3 +# raspberrypi4 Raspberry Pi 4 +# +# /ActionNeeded informs GUI if further action is needed following a manual operation +# the operator has the option to defer reboots and GUI restarts (by choosing "Later) +# '' no action needed +# 'reboot' reboot needed +# 'guiRestart' GUI restart needed +# +# the GUI can respond by setting /GuiEditAction to 'reboot' or 'restartGui' +# +# /Settings/PackageVersion/Edit/ is a section for the GUI to provide information about the a new package to be added +# +# /data/SetupHelper/defaultPackageList provides an initial list of packages +# It contains a row for each package with the following information: +# packageName gitHubUser gitHubBranch +# If present, packages listed will be ADDED to the package list in /Settings +# existing dbus Settings (GitHubUser and GitHubBranch) will not be changed +# +# this file is read at program start +# +# Package information is stored in the /data/ directory +# +# A version file within that directory identifies the version of that package stored on disk but not necessarily installed +# +# When a package is installed, the version in the package directory is written to an "installed flag" file +# /etc/venus/isInstalled- +# the contents of the file populate InstalledVersion (blank if the file doesn't exist or is empty) +# +# InstalledVersion is displayed to the user and used for tests for automatic updates +# +# GitHubVersion is read from the internet if a connection exists. +# To minimize local network traffic and GitHub server loads one package's GitHub version is +# read once every 5 seconds until all package versions have been retrieved +# then one package verison is read every 10 minutes. +# Addition of a package or change in GitHubUser or GitHubBranch will trigger a fast +# update of GitHub versions +# If the package on GitHub can't be accessed, GitHubVersion will be blank +# +# +# PackageManager downloads packages from GitHub based on the GitHub version and package (stored) versions: +# if the GitHub branch is a specific version, the download occurs if the versions differ +# otherwise the GitHub version must be newer. +# the archive file is unpacked to a directory in /data named +# -.tar.gz, then moved to /data/, replacing the original +# +# PackageManager installs the stored verion if the package (stored) and installed versions differ +# +# Manual downloads and installs triggered from the GUI ignore version checks completely +# +# In this context, "install" means replacing the working copy of Venus OS files with the modified ones +# or adding new files and system services +# +# Uninstalling means replacing the original Venus OS files to their working locations +# +# All operations that access the global package list must do so surrounded by a lock to avoid accessing changing data +# this is very important when scanning the package list +# so that packages within that list don't get moved, added or deleted +# +# Operations that take signficant time are handled in separate threads, decoupled from the package list +# Operaitons are placed on a queue with all the information a processing routine needs +# this is imporant because the package in the list involved in the operaiton +# may no longer be in the package list or be in a different location +# +# All operations that scan the package list must do so surrounded by +# DbusIf.LOCK () and DbusIf.UNLOCK () +# and must not consume significant time: no sleeping or actions taking seconds or minutes !!!! +# +# Operations that take little time can usually be done in-line (without queuing) +# +# PackageManager manages flag files in the package folder: +# DO_NOT_AUTO_ADD indicates the package was manually removed and PackageManager should not +# automaticlly add it +# DO_NOT_AUTO_INSTALL indicates the package was manually removed and PackageManager should not +# automatically install it +# +# these flags are stored in /data/setupOptions/ which is non-volatile and survives a package download +# +# PackageManager checks removable media (SD cards and USB sticks) for package upgrades or even as a new package +# File names must be in one of the following forms: +# -.tar.gz +# -install.tar.gz +# The portion determines where the package will be stored in /data +# and will be used as the package name when the package is added to the package list in Settings +# +# If all criteria are met, the archive is unpacked and the resulting directory replaces /data/ +# if not, the unpacked archive directory is deleted +# +# +# PackageManager scans /data looking for new packages +# directory names must not appear to be an archive +# (include a GitHub branch or version number) (see rejectList below for specifics) +# the directory must contain a valid version +# the package must not have been manually removed (DO_NOT_AUTO_ADD flag file set) +# the file name must be unique to all existing packages +# +# A new, verified package will be added to the package list and be ready for +# manual and automtic updates, installs, uninstalls +# +# This mechanism handles archives extracted from SD/USB media +# +# +# Packages may optionally include a file containg GitHub user and branch +# if the package diretory contains the file: gitHubInfo +# gitHubUser and gitHubBranch are set from the file's content when it is added to the package list +# making the new package ready for automatic GitHub updates +# gitHubInfo should have a single line of the form: gitHubUser:gitHubBranch, e.g, kwindrem:latest +# if the package is already in the package list, gitHubInfo is ignored +# if no GitHub information is contained in the package, the user must add it manually via the GUI +# in so automatic downloads from GitHub can occur +# +# classes/instances/methods: +# AddRemoveClass +# AddRemove (thread) +# StopThread () +# run () +# DbusIfClass +# DbusIf +# SetGuiEditAction () +# UpdateStatus () +# LocateRawDefaultPackage () +# handleGuiEditAction +# () +# UpdatePackageCount () +# various Gets and Sets for dbus parameters +# TransferOldDbusPackageInfo +# UpdateDefaultPackages () +# ReadDefaultPackagelist () +# LOCK () +# UNLOCK () +# PackageClass +# PackageList [] one per package +# UpdateDownloadPending () +# UpdateInstallPending () +# LocatePackage () +# RemoveDbusSettings () +# settingChangedHandler () +# various Gets and Sets +# AddPackagesFromDbus () +# AddStoredPackages () +# AddPackage () +# RemovePackage () +# UpdateFileFlagsAndVersions () +# GetAutoAddOk (class method) +# SetAutoAddOk (class method) +# AutoInstallOk (class method) +# SetAutoInstallOk () +# MoveFlagFiles () +# InstallVersionCheck () +# UpdateGitHubVersionClass +# UpdateGitHubVersion (thread) +# updateGitHubVersion () +# run () +# StopThread () +# DownloadGitHubPackagesClass +# DownloadGitHub (thread) +# GitHubDownload () +# DownloadVersionCheck () +# processDownloadQueue () +# run () +# StopThread () +# InstallPackagesClass +# InstallPackages (thread) +# InstallPackage () +# StopThread () +# run () +# MediaScanClass +# MediaScan (thread) +# transferPackage +# StopThread () +# settingsBackup +# settingsRestore +# run () +# +# global methods: +# PushAction () +# VersionToNumber () +# LocatePackagePath () +# AutoRebootCheck () + + +import platform +import argparse +import logging + +# set variables for logging levels: +CRITICAL = 50 +ERROR = 40 +WARNING = 30 +INFO = 20 +DEBUG = 10 + +import sys +import subprocess +import threading +import os +import shutil +import dbus +import time +import re +import glob + +PythonVersion = sys.version_info +# accommodate both Python 2 and 3 +if PythonVersion >= (3, 0): + import queue + from gi.repository import GLib +else: + import Queue as queue + import gobject as GLib + +# add the path to our own packages for import +sys.path.insert(1, os.path.join(os.path.dirname(__file__), 'ext', 'velib_python')) +from vedbus import VeDbusService +from settingsdevice import SettingsDevice + +global DownloadGitHub +global InstallPackages +global AddRemove +global MediaScan +global DbusIf +global Platform +global VenusVersion +global VenusVersionNumber +global SystemReboot +global GuiRestart +global PackageIndex + +global AllVersionsRefreshed + + +# PushAction +# +# add an action to one of three queues: +# InstallPackages.InstallQueue for Install and Uninstall actions +# Download.Download for Download actions +# AddRemoveQueue +# commands are added to the queue from the GUI (dbus service change handler) +# and from the main loop (source = 'AUTO') +# the queue isolates command triggers from processing because processing +# can take seconds or minutes +# +# command is a string: action:packageName +# +# action is a text string: Install, Uninstall, Download, Add, Remove, etc +# packageName is the name of the package to receive the action +# for some actions this may be the null string +# +# the command and source are pushed on the queue as a tuple +# +# PushAction sets the ...Pending flag to prevent duplicate operations +# for a given package +# +# the 'Reboot' and 'restartGui' actions are NOT pushed on any queue +# they are handled in line since they just set a global flag +# to be handled in mainLoop + +def PushAction (command=None, source=None): + parts = command.split (":") + if len (parts) >= 1: + action = parts[0] + else: + action = "" + if len (parts) >= 2: + packageName = parts[1] + else: + packageName = "" + if action == 'download': + DbusIf.LOCK () + package = PackageClass.LocatePackage (packageName) + if package != None: + package.DownloadPending = True + DbusIf.UNLOCK () + queue = DownloadGitHub.DownloadQueue + queueText = "Download" + elif action == 'install' or action == 'uninstall': + DbusIf.LOCK () + package = PackageClass.LocatePackage (packageName) + if package != None: + package.InstallPending = True + DbusIf.UNLOCK () + queue = InstallPackages.InstallQueue + queueText = "Install" + elif action == 'add' or action == 'remove': + queue = AddRemove.AddRemoveQueue + queueText = "AddRemove" + elif action == 'reboot': + logging.warning ( "received Reboot request from " + source) + # set the flag - reboot is done in main_loop + global SystemReboot + SystemReboot = True + elif action == 'restartGui': + logging.warning ( "received GUI restart request from " + source) + # set the flag - reboot is done in main_loop + global GuiRestart + GuiRestart = True + # ignore blank action - this occurs when PackageManager changes the action on dBus to 0 + # which acknowledges a GUI action + elif action == '': + return + else: + logging.error ("PushAction received unrecognized command: " + command) + return + + try: + queue.put ( (command, source), block=False ) + except queue.Full: + logging.error ("command " + command + " from " + source + " lost - " + ququeText + " - queue full") + except: + logging.error ("command " + command + " from " + source + " lost - " + ququeText + " - other queue error") +# end PushAction + + +# VersionToNumber +# +# convert a version string in the form of vX.Y~Z-large-W to an integer to make comparisions easier +# the ~Z portion indicates a pre-release version so a version without it is later than a version with it +# the -W portion is like the ~Z for large builds +# the large portion is IGNORED !!!! +# note part[0] is always null because there is nothing before v which is used as a separator +# +# the incoming verison string is split on every non-digit character +# the first three of those pieces are combined into a single integer +# additional pieces are ignored +# +# for example v1.2~3 would be 1002003 +# for example v11.22.33 would be 11022033 +# for example v11.22-large-33 would be 11022999 +# an empty file or one that contains "unknown" or does not beging with 'v' +# has a version number = 0 +# +# the separators ~, b, a and d are given special significance +# indicating beta (~ and b), alpha or develompent releases +# which are prioritized: release is the highest, then beta, then alpha then development +# by spliting the third number range into individual ranges +# a released version is given the highest numerical value: 999 +# none for release -- 999 +# ~ or b for beta 0-398 600-998 +# a for alpha 0-299 300-599 +# d for development 0-299 0-299 +# +# returns the version number + +def VersionToNumber (version): + if version == None or version == "" or version[0] != 'v': + return 0 + + version = version.replace ("large","L") + parts = re.split ('\D', version[1:]) + + preReleasePart = False + # assemble core version number from major, minor and preRelease parts + versionNumber = 0 + if len(parts) >= 1: + if parts[0].isdigit(): + versionNumber += int ( parts[0] ) * 1000000 + if len(parts) >= 2: + if parts[1].isdigit(): + versionNumber += int ( parts[1] ) * 1000 + if len(parts) >= 3: + if parts[2].isdigit(): + versionNumber += int ( parts[2] ) + preReleasePart = True + + # adjust based on type + if '~' in version: + versionNumber += 600 + elif 'b' in version: + versionNumber += 600 + elif 'a' in version: + versionNumber += 300 + # a release version should not contain a third part, but use it as-is if present + elif not preReleasePart: + versionNumber += 999 + return versionNumber + + +# LocatePackagePath +# +# attempt to locate a package directory +# +# all directories at the current level are checked +# to see if they contain a file named 'version' +# indicating a package directory has been found +# +# further, the version file must begin with 'v' +# +# if so, that path is returned +# +# if a directory NOT containing 'version' is found +# this method is called again to look inside that directory +# +# if nothing is found, the method returns None +# +# all recursive calls will return with the located package or None +# so the original caller will have the path to the package or None + +def LocatePackagePath (origPath): + paths = os.listdir (origPath) + for path in paths: + newPath = origPath +'/' + path + if os.path.isdir(newPath): + # found version file, make sure it is "valid" + versionFile = newPath + "/version" + if os.path.isfile( versionFile ): + fd = open ( versionFile, 'r' ) + version = fd.readline().strip() + fd.close() + if version[0] == 'v': + return newPath + else: + logging.error ("version file not a valid version " + versionFile + " = " + version ) + else: + packageDir = locatePackagePath (newPath) + # found a package directory + if packageDir != None: + return packageDir + # nothing found - continue looking in this directory + else: + continue + return None + + +# AddRemoveClass +# Instances: +# AddRemove (a separate thread) +# +# Methods: +# run ( the thread ) +# StopThread () +# +# Install and Uninstall actions are processed by +# the InstallPackages thread +# Download actions are processed by +# the DownloadGitHub thread +# Add and Remove actions are processed in this thread +# +# a queue isolates the caller from processing time +# and interactions with the dbus object +# (can't update the dbus object from it's handler !) +# +# some actions called may take seconds or minutes (based on internet speed) !!!! +# +# the queue entries are: ("action":"packageName") +# this decouples the action from the current package list which could be changing +# allowing the operation to proceed without locking the list + +class AddRemoveClass (threading.Thread): + + def __init__(self): + threading.Thread.__init__(self) + self.AddRemoveQueue = queue.Queue (maxsize = 10) + self.threadRunning = True + + + + # AddRemove run (the thread), StopThread + # + # run is a thread that pulls actions from a queue and processes them + # Note: some processing times can be several seconds to a minute or more + # due to newtork activity + # + # run () checks the threadRunning flag and returns if it is False, + # essentially taking the thread off-line + # the main method should catch the tread with join () + # StopThread () is called to shut down the thread + + def StopThread (self): + logging.info ("attempting to stop AddRemove thread") + self.threadRunning = False + self.AddRemoveQueue.put ( ('STOP', ''), block=False ) + + # AddRemove run () + # + # process package Add/Remove actions + def run (self): + while self.threadRunning: + try: + command = self.AddRemoveQueue.get () + except: + logging.error ("pull from AddRemoveQueue failed") + continue + if len (command) == 0: + logging.error ("pull from AddRemove queue failed - empty comand") + time.sleep (5.0) + continue + # thread shutting down + if command [0] == 'STOP' or self.threadRunning == False: + return + + # separate command, source tuple + # and separate action and packageName + if len (command) >= 2: + parts = command[0].split (":") + if len (parts) >= 2: + action = parts[0].strip () + packageName = parts[1].strip () + else: + logging.error ("AddRemoveQueue - no action and/or package name - discarding", command) + time.sleep (5.0) + continue + source = command[1] + else: + logging.error ("AddRemoveQueue - no command and/or source - discarding", command) + time.sleep (5.0) + continue + + if action == 'add': + packageDir = "/data/" + packageName + if source == 'GUI': + user = DbusIf.EditPackage.GitHubUser + branch = DbusIf.EditPackage.GitHubBranch + else: + user = "" + branch = "" + # try to get GitHub info from package directory + if user == "": + if os.path.isdir (packageDir): + gitHubInfoFile = packageDir + "/gitHubInfo" + try: + fd = open (gitHubInfoFile, 'r') + parts = fd.readline().strip ().split (':') + fd.close() + except: + parts = "" + if len (parts) >= 2: + user = parts[0] + branch = parts[1] + # still nothing - try to get GitHub info from default package list + if user == "": + default = DbusIf.LocateRawDefaultPackage (packageName) + if default != None: + user = default[1] + branch = default[2] + + PackageClass.AddPackage (packageName = packageName, source=source, + gitHubUser=user, gitHubBranch=branch ) + + elif action == 'remove': + PackageClass.RemovePackage ( packageName ) + + else: + logging.warning ( "received invalid action " + command + " from " + source + " - discarding" ) + # end while True + # end run () +# end AddRemoveClass + + +# DbusIfClass +# Instances: +# DbusIf +# +# Methods: +# SetGuiEditAction +# UpdateStatus +# LocateRawDefaultPackage +# handleGuiEditAction +# UpdatePackageCount +# RemoveDbusSettings +# TransferOldDbusPackageInfo +# UpdateDefaultPackages () +# ReadDefaultPackagelist () +# various Gets and Sets for dbus parameters +# LOCK +# UNLOCK +# +# Globals: +# DbusSettings (for settings that are NOT part of a package) +# DbusService (for parameters that are NOT part of a package) +# EditPackage - the dbus Settings used by the GUI to hand off information about +# a new package +# DefaultPackages - list of default packages, each a tuple: +# ( packageName, gitHubUser, gitHubBranch) +# +# DbusIf manages the dbus Settings and packageManager dbus service parameters +# that are not associated with any spcific package +# +# unlike those managed in PackageClass which DO have a package association +# the dbus settings managed here don't have a package association +# however, the per-package parameters are ADDED to +# DbusSettings and dBusService created here !!!! +# +# DbusIf manages a lock to prevent data access in one thread +# while it is bein`g changed in another +# the same lock is used to protect data in PackageClass also +# this is more global than it needs to be but simplies the locking +# +# all methods that access must aquire this lock +# prior to accessing DbusIf or Package data +# then must release the lock +# +# default package info is fetched from a file and published to our dbus service +# for use by the GUI in adding new packages +# it the default info is also stored in DefaultPackages +# LocateRawDefaultPackage is used to retrieve the default from local storage +# rather than pulling from dbus or reading the file again + +class DbusIfClass: + + # RemoveDbusSettings + # remove the dbus Settings paths for package + # package Settings are removed + # this is called when removing a package + # settings to be removed are passed as a list (settingsList) + # this gets reformatted for the call to dbus + + @classmethod + def RemoveDbusSettings (cls, settingsList): + + # format the list of settings to be removed + i = 0 + while i < len (settingsList): + if i == 0: + settingsToRemove = '%[ "' + settingsList[i] + else: + settingsToRemove += '" , "' + settingsList[i] + i += 1 + settingsToRemove += '" ]' + + # remove the dbus Settings paths - via the command line + try: + proc = subprocess.Popen (['dbus', '-y', 'com.victronenergy.settings', '/', 'RemoveSettings', settingsToRemove ], stdout=subprocess.PIPE, stderr=subprocess.PIPE) + except: + logging.error ("dbus RemoveSettings call failed") + else: + proc.wait() + # convert from binary to string + out, err = proc.communicate () + stdout = out.decode ().strip () + stderr = err.decode ().strip () + returnCode = proc.returncode + if returnCode != 0: + logging.error ("dbus RemoveSettings failed " + str (returnCode)) + logging.error ("stderr: " + stderr) + + + # TransferOldDbusPackageInfo + # PackageManager dbus storage was moved + # from ...PackageMonitor... to ...PackageManager... + # this method moves the info to the new location and deletes the old Settings + # this assumes the new dbus environment is already set up + # the transfer is only done if the new location has no packages + # should only be called from initialization so we don't LOCK while accessing the package list + + + @classmethod + def TransferOldDbusPackageInfo (cls): + bus = dbus.SystemBus() + oldPath = "/Settings/PackageMonitor" + newPath = "/Settings/PackageManager" + try: + oldCount = bus.get_object("com.victronenergy.settings", oldPath + "/Count").GetValue() + # nothing to tranfer/delete + except: + return + + + try: + newCount = bus.get_object("com.victronenergy.settings", newPath + "/Count").GetValue() + except: + logging.error ("PackageManager dbus Settings has no package count") + return + + # if the new dbus info has no packages, transfer them from the old location + if newCount == 0: + transferPackages = True + else: + transferPackages = False + + logging.warning ("moving PackageManager dbus settings from old location") + + # remove package-related Settings + i = 0 + while i < oldCount: + oldNamePath = oldPath + '/' + str (i) + "/PackageName" + oldUserPath = oldPath + '/' + str (i) + "/GitHubUser" + oldBranchPath = oldPath + '/' + str (i) + "/GitHubBranch" + + # create a new package and transfer old info to it + try: + name = bus.get_object("com.victronenergy.settings", oldNamePath).GetValue () + except: + name = None + if transferPackages and name != None: + logging.warning ("moving " + name + " settings") + + try: + user = bus.get_object("com.victronenergy.settings", (oldUserPath)).GetValue () + except: + user = "?" + try: + branch = bus.get_object("com.victronenergy.settings", oldBranchPath).GetValue () + except: + branch = "?" + + PackageClass.AddPackage (packageName=name, source='TRANSFER', + gitHubUser= user, gitHubBranch=branch ) + + # remove the old package-related dbus Settings + cls.RemoveDbusSettings ( [oldNamePath, oldUserPath, oldBranchPath ] ) + i += 1 + + # transfer and remove Settings not part of a package + if transferPackages: + + DbusIf.SetAutoInstall ( bus.get_object("com.victronenergy.settings", + oldPath + "/AutoInstall").GetValue () ) + DbusIf.SetAutoDownload ( bus.get_object("com.victronenergy.settings", + oldPath + "/GitHubAutoDownload").GetValue () ) + otherSettings = [oldPath + "/AutoInstall", + oldPath + "/GitHubAutoDownload", + oldPath + "/Edit/GitHubBranch", + oldPath + "/Edit/GitHubUser", + oldPath + "/Edit/PackageName", + oldPath + "/Count" + ] + cls.RemoveDbusSettings ( otherSettings ) + + + # UpdateStatus + # + # updates the status when the operation completes + # the GUI provides three different areas to show status + # where specifies which of these are updated + # 'Download' + # 'Install' + # 'Editor' + # 'Media' + # which determines where status is sent + # message is the text displayed + # if LogLevel is not 0, message is also written to the PackageManager log + # logging levels: (can use numeric value or these variables set at head of module + # CRITICAL = 50 + # ERROR = 40 + # WARNING = 30 + # INFO = 20 + # DEBUG = 10 + # if where = None, no GUI status areas are updated + + + def UpdateStatus ( self, message=None, where=None, logLevel=0 ): + + if logLevel != 0: + logging.log ( logLevel, message ) + + if where == 'Editor': + DbusIf.SetEditStatus ( message ) + elif where == 'Install': + DbusIf.SetInstallStatus ( message ) + elif where == 'Download': + DbusIf.SetGitHubUpdateStatus (message) + elif where == 'Media': + DbusIf.SetMediaStatus (message) + + + # handleGuiEditAction (internal use only) + # + # the GUI uses packageMonitor service /GuiEditAction + # to inform PackageManager of an action + # a command is formed as "action":"packageName" + # + # action is a text string: install, uninstall, download, etc + # packageName is the name of the package to receive the action + # for some acitons this may be the null string + # this handler disposes of the request quickly by pushing + # the command onto a queue for later processing + + def handleGuiEditAction (self, path, command): + global PushAction + PushAction ( command=command, source='GUI' ) + + return True # True acknowledges the dbus change - other wise dbus parameter does not change + + def UpdatePackageCount (self): + count = len(PackageClass.PackageList) + self.DbusSettings['packageCount'] = count + def GetPackageCount (self): + return self.DbusSettings['packageCount'] + def SetAutoDownload (self, value): + self.DbusSettings['autoDownload'] = value + def GetAutoDownloadMode (self): + return self.DbusSettings['autoDownload'] + def GetAutoInstall (self): + return self.DbusSettings['autoInstall'] + def SetAutoInstall (self, value): + self.DbusSettings['autoInstall'] = value + def SetGitHubUpdateStatus (self, value): + self.DbusService['/GitHubUpdateStatus'] = value + def SetInstallStatus (self, value): + self.DbusService['/InstallStatus'] = value + def SetMediaStatus (self, value): + self.DbusService['/MediaUpdateStatus'] = value + + def SetDefaultCount (self, value): + self.DbusService['/DefaultCount'] = value + def GetDefaultCount (self): + return self.DbusService['/DefaultCount'] + + def SetBackupMediaAvailable (self, value): + if value == True: + dbusValue = 1 + else: + dbusValue = 0 + self.DbusService['/BackupMediaAvailable'] = dbusValue + def GetBackupMediaAvailable (self): + if self.DbusService['/BackupMediaAvailable'] == 1: + return True + else: + return True + + def SetBackupSettingsFileExist (self, value): + if value == True: + dbusValue = 1 + else: + dbusValue = 0 + self.DbusService['/BackupSettingsFileExist'] = dbusValue + def GetBackupSettingsFileExist (self): + if self.DbusService['/BackupSettingsFileExist'] == 1: + return True + else: + return True + + def SetBackupProgress (self, value): + self.DbusService['/BackupProgress'] = value + def GetBackupProgress (self): + return self.DbusService['/BackupProgress'] + + + # SetGuiEditAction + # is part of the PackageManager to GUI communication + # the GUI set's an action triggering some processing here + # via the dbus change handler + # PM updates this dbus value when processing completes + # signaling either success or failure + + def SetGuiEditAction (self, value): + self.DbusService['/GuiEditAction'] = value + def GetGuiEditAction (self): + return self.DbusService['/GuiEditAction'] + def SetEditStatus (self, message): + self.DbusService['/GuiEditStatus'] = message + + def SetActionNeeded (self, message): + self.DbusService['/ActionNeeded'] = message + + # search RAW default package list for packageName + # and return the pointer if found + # otherwise return None + # + # Note: the raw default package list is built during init + # then never changes so LOCK/UNLOCK is NOT needed + # + # rawDefaultPackages is a list of tuples: + # (packageName, gitHubUser, gitHubBranch) + # + # if a packageName match is found, the tuple is returned + # otherwise None is retuned + + def LocateRawDefaultPackage (self, packageName): + + for default in self.rawDefaultPackages: + if packageName == default[0]: + return default + return None + + + # UpdateDefaultPackages + # + # refreshes the defaultPackageList to include only packages NOT be in PackageList + # this also updates the dbus default packages used by the GUI Add Package menu + # skip unless package was added/removed ???? + # alwaysRun forces processing for the init pass from main () + + def UpdateDefaultPackages (self, alwaysRun = False): + global AddRemove + if alwaysRun == False and self.RefreshDefaultPackages == False: + return + self.RefreshDefaultPackages = False + + DbusIf.LOCK () + # don't touch new entry (index 0) + index = 1 + oldDefaultCount = len (self.defaultPackageList) + for default in self.rawDefaultPackages: + # if not in the main package list, add it to the default package list + name = default[0] + if PackageClass.LocatePackage (name) == None: + user = default[1] + branch = default[2] + prefix = '/Default/' + str (index) + '/' + # this entry already exists - update it + if index < oldDefaultCount: + # name has changed, update the entry (local and dbus) + if (name != self.defaultPackageList[index][0]): + self.defaultPackageList[index] = default + self.DbusService[prefix + 'PackageName'] = name + self.DbusService[prefix + 'GitHubUser'] = user + self.DbusService[prefix + 'GitHubBranch'] = branch + # path doesn't yet exist, add it + else: + self.defaultPackageList.append (default) + self.DbusService.add_path (prefix + 'PackageName', name ) + self.DbusService.add_path (prefix + 'GitHubUser', user ) + self.DbusService.add_path (prefix + 'GitHubBranch', branch ) + + index += 1 + + self.DbusService['/DefaultCount'] = index + + # clear out any remaining path values + while index < oldDefaultCount: + prefix = '/Default/' + str (index) + '/' + self.defaultPackageList[index] = ( "", "", "" ) + self.DbusService[prefix + 'PackageName'] = "" + self.DbusService[prefix + 'GitHubUser'] = "" + self.DbusService[prefix + 'GitHubBranch'] = "" + index += 1 + + DbusIf.UNLOCK () + + + # ReadDefaultPackagelist + # + # read in the default packages list file and store info locally for faster access later + # this list is only used to populate the defaultPackageList which excludes packages that + # are in the main Packagelist + + def ReadDefaultPackagelist (self): + + try: + listFile = open ("/data/SetupHelper/defaultPackageList", 'r') + except: + logging.error ("no defaultPackageList " + listFileName) + else: + for line in listFile: + parts = line.split () + if len(parts) < 3 or line[0] == "#": + continue + self.rawDefaultPackages.append ( ( parts[0], parts[1], parts[2] ) ) + listFile.close () + + + # LOCK and UNLOCK - capitals used to make it easier to identify in the code + # + # these protect the package list from changing while the list is being accessed + + def LOCK (self): + self.lock.acquire () + def UNLOCK (self): + self.lock.release () + + + def __init__(self): + self.lock = threading.RLock() + + settingsList = {'packageCount': [ '/Settings/PackageManager/Count', 0, 0, 0 ], + 'autoDownload': [ '/Settings/PackageManager/GitHubAutoDownload', 0, 0, 0 ], + 'autoInstall': [ '/Settings/PackageManager/AutoInstall', 0, 0, 0 ], + } + self.DbusSettings = SettingsDevice(bus=dbus.SystemBus(), supportedSettings=settingsList, + timeout = 10, eventCallback=None ) + + self.DbusService = VeDbusService ('com.victronenergy.packageManager', bus = dbus.SystemBus()) + self.DbusService.add_mandatory_paths ( + processname = 'PackageManager', processversion = 1.0, connection = 'none', + deviceinstance = 0, productid = 1, productname = 'Package Monitor', + firmwareversion = 1, hardwareversion = 0, connected = 1) + self.DbusService.add_path ( '/GitHubUpdateStatus', "", writeable = True ) + self.DbusService.add_path ( '/InstallStatus', "", writeable = True ) + self.DbusService.add_path ( '/MediaUpdateStatus', "", writeable = True ) + self.DbusService.add_path ( '/GuiEditStatus', "", writeable = True ) + + global Platform + self.DbusService.add_path ( '/Platform', Platform ) + + self.DbusService.add_path ( '/GuiEditAction', "", writeable = True, + onchangecallback = self.handleGuiEditAction ) + + # initialize default package list to empty - entries will be added later + self.DbusService.add_path ('/DefaultCount', 0 ) + + # a special package used for editing a package prior to adding it to Package list + self.EditPackage = PackageClass (section = "Edit") + + self.rawDefaultPackages = [] + self.defaultPackageList = [] + + # create first default package, place where a new package is entered from scratch + self.defaultPackageList.append ( ("new", "", "") ) + self.DbusService.add_path ( "/Default/0/PackageName", "new" ) + self.DbusService.add_path ( "/Default/0/GitHubUser", "" ) + self.DbusService.add_path ( "/Default/0/GitHubBranch", "" ) + + # used to notify the GUI that an action is required to complete a manual installation + # the operator has the option to defer reboot and GUI restart operations + # if they do, this parameter is set and a button appears on the main Package manager menu + + self.DbusService.add_path ( "/ActionNeeded", '' ) + + self.RefreshDefaultPackages = False + + self.DbusService.add_path ( '/BackupMediaAvailable', 0, writeable = True ) + self.DbusService.add_path ( '/BackupSettingsFileExist', 0, writeable = True ) + self.DbusService.add_path ( '/BackupProgress', 0, writeable = True ) + + + # RemoveDbusService + # deletes the dbus service + + def RemoveDbusService (self): + logging.warning ("shutting down com.victronenergy.packageManager dbus service") + self.DbusService.__del__() + +# end DbusIf + + +# PackageClass +# Instances: +# one per package +# +# Methods: +# LocatePackage +# various Gets and Sets +# UpdateDownloadPending () (class method) +# UpdateInstallPending () (class method) +# AddPackagesFromDbus (class method) +# AddStoredPackages (class method) +# AddPackage (class method) +# RemovePackage (class method) +# UpdateFileFlagsAndVersions () +# GetAutoAddOk (class method) +# SetAutoAddOk (class method) +# AutoInstallOk (class method) +# SetAutoInstallOk () +# MoveFlagFiles () +# InstallVersionCheck () +# +# Globals: +# DbusSettings (for per-package settings) +# DbusService (for per-package parameters) +# DownloadPending +# InstallPending +# PackageList - list instances of all packages +# +# a package consits of Settings and version parameters in the package monitor dbus service +# all Settings and parameters are accessible via set... and get... methods +# so that the caller does not need to understand dbus Settings and service syntax +# the packageName variable maintains a local copy of the dBus parameter for speed in loops +# section passed to init can be either a int or string ('Edit') +# an int is converted to a string to form the dbus setting paths +# +# the dbus settings and service parameters managed here are on a per-package basis +# unlike those managed in DbusIf which don't have a package association + +class PackageClass: + + # list of instantiated Packages + PackageList = [] + + # search PackageList for packageName + # and return the package pointer if found + # otherwise return None + # + # Note: this method should be called with LOCK () set + # and use the returned value before UNLOCK () + # to avoid unpredictable results + + @classmethod + def LocatePackage (cls, packageName): + for package in PackageClass.PackageList: + if packageName == package.PackageName: + t1 = time.time () + return package + t1 = time.time () + return None + + + # this set of methods manages the flag files that control + # automaticly adding and installing packages + # if a package is manually removed, it should not + # be readded automatically + # ditto for manual uninstall + # + + @classmethod + def GetAutoAddOk (cls, packageName): + if packageName == None: + logging.error ("GetAutoAddOk - no packageName") + return False + + flagFile = "/data/setupOptions/" + packageName + "/DO_NOT_AUTO_ADD" + if os.path.exists (flagFile): + return False + else: + return True + + + @classmethod + def SetAutoAddOk (cls, packageName, state): + if packageName == None: + logging.error ("SetAutoAddOk - no packageName") + return + + # if package options directory exists set/clear auto add flag + # directory may not exist if package was never downloaded or transferred from media + # or if package was added manually then never acted on + optionsDir = "/data/setupOptions/" + packageName + if os.path.exists (optionsDir): + flagFile = optionsDir + "/DO_NOT_AUTO_ADD" + # permit auto add + if state == True: + if os.path.exists (flagFile): + os.remove (flagFile) + # block auto add + else: + if not os.path.exists (flagFile): + # equivalent to unix touch command + open (flagFile, 'a').close() + + + def SetAutoInstallOk (self, state): + packageName = self.PackageName + if packageName == None: + logging.error ("SetAutoInstallOk - no packageName") + return + + # if package options directory exists set/clear auto add flag + # directory may not exist if package was never downloaded or transferred from media + # or if package was added manually then never acted on + optionsDir = "/data/setupOptions/" + packageName + if os.path.exists (optionsDir): + flagFile = optionsDir + "/DO_NOT_AUTO_INSTALL" + # permit auto installs + if state == True: + if os.path.exists (flagFile): + os.remove (flagFile) + # block auto install + else: + if not os.path.exists (flagFile): + open (flagFile, 'a').close() + + # move flag files that prevent automatic downloads or installs + # from to /setupOptions/ + # called only during init + + def MoveFlagFiles (self): + packageName = self.PackageName + if packageName == None: + logging.error ("MoveFlagFiles - no packageName") + return + + # nothing to do if package directory doesn't exist + packageDir = "/data/" + packageName + if not os.path.isdir (packageDir): + return + + # create setupOptions directory if it doesn't already exist + # this would happen if the package was being added / installed for the first time + optionsPath = "/data/setupOptions/" + packageName + if not os.path.isdir (optionsPath): + os.mkdir (optionsPath) + + # move auto add block flag + oldFlag = packageDir + "/REMOVED" + flagFile = optionsPath + "/DO_NOT_AUTO_ADD" + if os.path.exists (oldFlag): + open (flagFile, 'a').close() + os.remove (oldFlag) + + # move auto install block flag + oldFlag = packageDir + "/DO_NOT_AUTO_INSTALL" + flagFile = optionsPath + "/DO_NOT_AUTO_INSTALL" + if os.path.exists (oldFlag): + open (flagFile, 'a').close() + os.remove (oldFlag) + + + # InstallVersionCheck + # + # compares versions to determine if an install is needed + # returns True if an update is needed, False of not + # + # called from main loop + + def InstallVersionCheck (self): + + if self.Incompatible != "": + return False + + packageVersion = self.PackageVersion + # skip further checks if package version string isn't filled in + if packageVersion == "" or packageVersion[0] != 'v': + return False + + # skip install if versions are the same + if self.PackageVersionNumber == self.InstalledVersionNumber: + return False + else: + return True + + + def SetPackageName (self, newName): + self.DbusSettings['packageName'] = newName + self.PackageName = newName + + def SetInstalledVersion (self, version): + global VersionToNumber + self.InstalledVersion = version + self.InstalledVersionNumber = VersionToNumber (version) + if self.installedVersionPath != "": + DbusIf.DbusService[self.installedVersionPath] = version + + def SetPackageVersion (self, version): + global VersionToNumber + self.PackageVersion = version + self.PackageVersionNumber = VersionToNumber (version) + if self.packageVersionPath != "": + DbusIf.DbusService[self.packageVersionPath] = version + + def SetGitHubVersion (self, version): + global VersionToNumber + self.GitHubVersion = version + self.GitHubVersionNumber = VersionToNumber (version) + if self.gitHubVersionPath != "": + DbusIf.DbusService[self.gitHubVersionPath] = version + + def SetGitHubUser (self, user): + self.GitHubUser = user + self.DbusSettings['gitHubUser'] = user + + def SetGitHubBranch (self, branch): + self.GitHubBranch = branch + self.DbusSettings['gitHubBranch'] = branch + + def SetIncompatible (self, value): + self.Incompatible = value + if self.incompatiblePath != "": + DbusIf.DbusService[self.incompatiblePath] = value + + def SetRebootNeeded (self, value): + self.RebootNeeded = value + if self.rebootNeededPath != "": + if value == True: + DbusIf.DbusService[self.rebootNeededPath] = 1 + else: + DbusIf.DbusService[self.rebootNeededPath] = 0 + def SetGuiRestartNeeded (self, value): + self.GuiRestartNeeded = value + if self.guiRestartNeededPath != "": + if value == True: + DbusIf.DbusService[self.guiRestartNeededPath] = 1 + else: + DbusIf.DbusService[self.guiRestartNeededPath] = 0 + + + def settingChangedHandler (self, name, old, new): + # when GitHub information changes, need to refresh GitHub version for this package + if name == 'packageName': + self.PackageName = new + elif name == 'gitHubBranch': + self.GitHubBranch = new + if self.PackageName != None and self.PackageName != "": + UpdateGitHubVersion.SetPriorityGitHubVersion ( self.PackageName ) + elif name == 'gitHubUser': + self.GitHubUser = new + if self.PackageName != None and self.PackageName != "": + UpdateGitHubVersion.SetPriorityGitHubVersion ( self.PackageName ) + + def __init__( self, section, packageName = None ): + # add package versions if it's a real package (not Edit) + if section != 'Edit': + section = str (section) + self.gitHubVersionPath = '/Package/' + section + '/GitHubVersion' + self.packageVersionPath = '/Package/' + section + '/PackageVersion' + self.installedVersionPath = '/Package/' + section + '/InstalledVersion' + self.rebootNeededPath = '/Package/' + section + '/RebootNeeded' + self.guiRestartNeededPath = '/Package/' + section + '/GuiRestartNeeded' + self.incompatiblePath = '/Package/' + section + '/Incompatible' + + # create service paths if they don't already exist + try: + foo = DbusIf.DbusService[self.installedVersionPath] + except: + DbusIf.DbusService.add_path (self.installedVersionPath, "?" ) + try: + foo = DbusIf.DbusService[self.gitHubVersionPath] + except: + DbusIf.DbusService.add_path (self.gitHubVersionPath, "?" ) + try: + foo = DbusIf.DbusService[self.packageVersionPath] + except: + DbusIf.DbusService.add_path (self.packageVersionPath, "?" ) + try: + foo = DbusIf.DbusService[self.rebootNeededPath] + except: + DbusIf.DbusService.add_path (self.rebootNeededPath, False ) + try: + foo = DbusIf.DbusService[self.guiRestartNeededPath] + except: + DbusIf.DbusService.add_path (self.guiRestartNeededPath, False ) + try: + foo = DbusIf.DbusService[self.incompatiblePath] + except: + DbusIf.DbusService.add_path (self.incompatiblePath, "" ) + + + self.packageNamePath = '/Settings/PackageManager/' + section + '/PackageName' + self.gitHubUserPath = '/Settings/PackageManager/' + section + '/GitHubUser' + self.gitHubBranchPath = '/Settings/PackageManager/' + section + '/GitHubBranch' + + # mirror of dbus parameters to speed access + self.InstalledVersion = "?" + self.InstalledVersionNumber = 0 + self.PackageVersion = "?" + self.PackageVersionNumber = 0 + self.GitHubVersion = "?" + self.GitHubVersionNumber = 0 + self.GitHubUser = "?" + self.GitHubBranch = "?" + self.Incompatible = '' + self.RebootNeeded = '' + self.GuiRestartNeeded = '' + + + settingsList = {'packageName': [ self.packageNamePath, '', 0, 0 ], + 'gitHubUser': [ self.gitHubUserPath, '', 0, 0 ], + 'gitHubBranch': [ self.gitHubBranchPath, '', 0, 0 ], + } + self.DbusSettings = SettingsDevice(bus=dbus.SystemBus(), supportedSettings=settingsList, + eventCallback=self.settingChangedHandler, timeout = 10) + # if packageName specified on init, use that name + if packageName != None: + self.DbusSettings['packageName'] = packageName + self.PackageName = packageName + # otherwise pull name from dBus Settings + else: + self.PackageName = self.DbusSettings['packageName'] + self.GitHubUser = self.DbusSettings['gitHubUser'] + self.GitHubBranch = self.DbusSettings['gitHubBranch'] + + self.section = section + # these flags are used to insure multiple actions aren't executed on top of each other + self.DownloadPending = False + self.InstallPending = False + + + + # dbus Settings is the primary non-volatile storage for packageManager + # upon startup, PackageList [] is empty and we need to populate it + # from previous dBus Settings in /Settings/PackageManager/... + # this is a special case that can't use AddPackage below: + # we do not want to create any new Settings !! + # it should be "safe" to limit the serch to 0 to < packageCount + # we also don't specify any parameters other than the section (index) + # + # NOTE: this method is called before threads are created so do not LOCK + # + # returns False if couldn't get the package count from dbus + # otherwise returns True + # no package count on dbus is an error that would prevent continuing + # this should never happen since the DbusIf is instantiated before this call + # which creates /Count if it does not exist + + @classmethod + def AddPackagesFromDbus (cls): + global DbusIf + packageCount = DbusIf.GetPackageCount() + if packageCount == None: + logging.critical ("dbus PackageManager Settings not set up -- can't continue") + return False + i = 0 + while i < packageCount: + cls.PackageList.append(PackageClass (section = i)) + i += 1 + return True + + + # AddStoredPackages + # add packages stored in /data to the package list + # in order to qualify as a package: + # must be a directory + # name must not contain strings in the rejectList + # name must not include any spaces + # diretory must contain a file named version + # first character of version file must be 'v' + # name must be unique - that is not match any existing packages + + rejectList = [ "-current", "-latest", "-main", "-test", "-debug", "-beta", "-backup1", "-backup2", + "-0", "-1", "-2", "-3", "-4", "-5", "-6", "-7", "-8", "-9", " " ] + + @classmethod + def AddStoredPackages (cls): + for path in os.listdir ("/data"): + packageDir = "/data/" + path + if not os.path.isdir (packageDir): + continue + packageName = path + rejected = False + for reject in cls.rejectList: + if reject in packageName: + rejected = True + break + if rejected: + continue + + # skip if package was manually removed + if not PackageClass.GetAutoAddOk (packageName): + continue + # skip if package is for Raspberry PI only and platform is not + global Platform + if os.path.exists (packageDir + "/raspberryPiOnly") and Platform[0:4] != 'Rasp': + continue + + versionFile = packageDir + "/version" + try: + fd = open (versionFile, 'r') + version = fd.readline().strip() + fd.close () + except: + continue + if version[0] != 'v': + continue + + # continue only if package is unique + DbusIf.LOCK () + package = cls.LocatePackage (packageName) + DbusIf.UNLOCK () + if package == None: + PushAction (command='add:' + packageName, source='AUTO') + + # the DownloadPending and InstallPending flags prevent duplicate actions for the same package + # and holds off reboots and GUI resets until all actions are complete + # + # packageName rather than a package list reference (index) + # is used because the latter can change when packages are removed + # if you have a package pointer, set the parameter directly to save time + + @classmethod + def UpdateDownloadPending (self, packageName, state): + DbusIf.LOCK () + package = PackageClass.LocatePackage (packageName) + if package != None: + package.DownloadPending = state + DbusIf.UNLOCK () + + @classmethod + def UpdateInstallPending (cls, packageName, state): + DbusIf.LOCK () + package = PackageClass.LocatePackage (packageName) + if package != None: + package.InstallPending = state + DbusIf.UNLOCK () + + + + # AddPackage adds one package to the package list + # packageName must be specified + # the package names must be unique + # + # this method is called from the GUI add package command + + @classmethod + def AddPackage ( cls, packageName=None, gitHubUser=None, gitHubBranch=None, source=None ): + if source == 'GUI': + reportStatusTo = 'Editor' + # AUTO or DEFAULT source + else: + reportStatusTo = None + + if packageName == None or packageName == "": + DbusIf.UpdateStatus ( message="no package name for AddPackage - nothing done", + where=reportStatusTo, logLevel=ERROR ) + if source == 'GUI': + DbusIf.SetGuiEditAction ( 'ERROR' ) + return False + + # insure packageName is unique before adding this new package + matchFound = False + DbusIf.LOCK () + package = PackageClass.LocatePackage (packageName) + + # new packageName is unique, OK to add it + if package == None: + DbusIf.UpdateStatus ( message="adding " + packageName, where='Editor', logLevel=WARNING ) + + section = len(cls.PackageList) + cls.PackageList.append( PackageClass ( section, packageName = packageName ) ) + DbusIf.UpdatePackageCount () + DbusIf.RefreshDefaultPackages = True + + # add user/branch from caller + package = PackageClass.LocatePackage (packageName) + if package != None: + if gitHubUser == None: + gitHubUser = "?" + if gitHubBranch == None: + gitHubBranch = "?" + package.SetGitHubUser (gitHubUser) + package.SetGitHubBranch (gitHubBranch) + + if source == 'GUI': + DbusIf.SetGuiEditAction ( '' ) + DbusIf.UpdateStatus ( message = "", where='Editor') + # package added from the GUI (aka, manually) + # allow auto adds + PackageClass.SetAutoAddOk (packageName, True) + else: + if source == 'GUI': + DbusIf.UpdateStatus ( message=packageName + " already exists - choose another name", where=reportStatusTo, logLevel=WARNING ) + DbusIf.SetGuiEditAction ( 'ERROR' ) + else: + DbusIf.UpdateStatus ( message=packageName + " already exists", where=reportStatusTo, logLevel=WARNING ) + + DbusIf.UNLOCK () + # end AddPackage + + # packages are removed as a request from the GUI + # to remove a package: + # 1) locate the entry matching package name (if any) + # 2) move all packages after that entry the previous slot (if any) + # 3) erase the last package slot to avoid confusion (by looking at dbus-spy) + # 3) remove the entry in PackageList (pop) + # 4) update the package count + # 5) set DO_NOT_AUTO_ADD flag file to prevent + # package from being re-added to the package list + # flag file is deleted when package is manually installed again + # + # returns True if package was removed, False if not + # + # this is all done while the package list is locked !!!! + + @classmethod + def RemovePackage (cls, packageName ): + if packageName == "SetupHelper": + DbusIf.UpdateStatus ( message="REMOVING SetupHelper" + packageName, where='Editor', logLevel=CRITICAL ) + else: + DbusIf.UpdateStatus ( message="removing " + packageName, where='Editor', logLevel=WARNING ) + DbusIf.LOCK () + packages = PackageClass.PackageList + if len (packages) == 0: + DbusIf.UNLOCK () + return + + # locate index of packageName + toIndex = 0 + listLength = len (packages) + matchFound = False + while toIndex < listLength: + if packageName == packages[toIndex].PackageName: + matchFound = True + break + toIndex += 1 + + if matchFound: + # move packages after the one to be remove down one slot (copy info) + # each copy overwrites the lower numbered package + fromIndex = toIndex + 1 + while fromIndex < listLength: + # dbus Settings + toPackage = packages[toIndex] + fromPackage = packages[fromIndex] + toPackage.SetPackageName (fromPackage.PackageName ) + toPackage.SetGitHubUser (fromPackage.GitHubUser ) + toPackage.SetGitHubBranch (fromPackage.GitHubBranch ) + + # dbus service params + toPackage.SetGitHubVersion (fromPackage.GitHubVersion ) + toPackage.SetPackageVersion (fromPackage.PackageVersion ) + toPackage.SetInstalledVersion (fromPackage.InstalledVersion ) + toPackage.SetRebootNeeded (fromPackage.RebootNeeded ) + toPackage.SetGuiRestartNeeded (fromPackage.GuiRestartNeeded ) + toPackage.SetIncompatible (fromPackage.Incompatible ) + + # package variables + toPackage.DownloadPending = fromPackage.DownloadPending + toPackage.InstallPending = fromPackage.InstallPending + + toIndex += 1 + fromIndex += 1 + + # here, toIndex points to the last package in the old list + toPackage = packages[toIndex] + + # can't actually remove service paths cleanly + # so just set contents to null/False + # they will disappear after PackageManager is started the next time + toPackage.SetGitHubVersion ("?") + toPackage.SetInstalledVersion ("?") + toPackage.SetPackageVersion ("?") + toPackage.SetRebootNeeded (False) + toPackage.SetGuiRestartNeeded (False) + toPackage.SetIncompatible (False) + + # remove the Settings and service paths for the package being removed + DbusIf.RemoveDbusSettings ( [toPackage.packageNamePath, toPackage.gitHubUserPath, toPackage.gitHubBranchPath] ) + + # remove entry from package list + packages.pop (toIndex) + + DbusIf.RefreshDefaultPackages = True + + # update package count + DbusIf.UpdatePackageCount () + + DbusIf.UNLOCK () + # this package was manually removed block automatic adds + # in the package directory + if matchFound: + # block automatic adds + PackageClass.SetAutoAddOk (packageName, False) + + DbusIf.UpdateStatus ( message="", where='Editor' ) + DbusIf.SetGuiEditAction ( '' ) + else: + DbusIf.UpdateStatus ( message=packageName + " not removed - name not found", where='Editor', logLevel=ERROR ) + DbusIf.SetGuiEditAction ( 'ERROR' ) + + + # UpdateFileFlagsAndVersions + # + # retrieves packages versions from the file system + # each package contains a file named version in it's root directory + # that becomes packageVersion + # the installedVersion-... file is associated with installed packages + # abesense of the file indicates the package is not installed + # presense of the file indicates the package is installed + # the content of the file is the actual version installed + # in prevous versions of the setup scripts, this file could be empty, + # so we show this as "unknown" + # + # also sets incompatible parameter and AutoInstallOk local variable to save time in other loops + # + # the single package variation is broken out so it can be called from other methods + # to insure version information is up to date before proceeding with an operaiton + # + # must be called while LOCKED !! + + def UpdateFileFlagsAndVersions (self): + + packageName = self.PackageName + + # fetch installed version + installedVersionFile = "/etc/venus/installedVersion-" + packageName + try: + versionFile = open (installedVersionFile, 'r') + except: + installedVersion = "" + else: + installedVersion = versionFile.readline().strip() + versionFile.close() + # if file is empty, an unknown version is installed + if installedVersion == "": + installedVersion = "unknown" + self.SetInstalledVersion (installedVersion) + + packageDir = "/data/" + packageName + + # no package directory - null out all params + if not os.path.isdir (packageDir): + self.SetPackageVersion ("") + self.AutoInstallOk = False + self.SetIncompatible ('') + return + + # fetch package version (the one in /data/packageName) + try: + versionFile = open (packageDir + "/version", 'r') + packageVersion = versionFile.readline().strip() + versionFile.close() + except: + packageVersion = "" + self.SetPackageVersion (packageVersion) + + # set the incompatible parameter + # to 'PLATFORM' or 'VERSION' + global Platform + incompatible = False + if os.path.exists (packageDir + "/raspberryPiOnly" ): + if Platform[0:4] != 'Rasp': + self.SetIncompatible ('PLATFORM') + incompatible = True + + # if package options directory exists set/clear auto install flag + # directory may not exist if package was never downloaded or transferred from media + # or if package was added manually then never acted on + flagFile = "/data/setupOptions/" + packageName + "/DO_NOT_AUTO_INSTALL" + if os.path.exists (flagFile): + self.AutoInstallOk = False + else: + self.AutoInstallOk = True + + # platform is OK, now check versions + if incompatible == False: + # check version compatibility + try: + fd = open (packageDir + "/firstCompatibleVersion", 'r') + except: + firstVersion = "v2.40" + else: + firstVersion = fd.readline().strip() + fd.close () + try: + fd = open (packageDir + "/obsoleteVersion", 'r') + except: + obsoleteVersion = None + else: + obsoleteVersion = fd.readline().strip() + + global VersionToNumber + global VenusVersion + global VenusVersionNumber + firstVersionNumber = VersionToNumber (firstVersion) + obsoleteVersionNumber = VersionToNumber (obsoleteVersion) + if VenusVersionNumber < firstVersionNumber: + self.SetIncompatible ('VERSION') + incompatible = True + elif obsoleteVersionNumber != 0 and VenusVersionNumber >= obsoleteVersionNumber: + self.SetIncompatible ('VERSION') + incompatible = True + + # platform and versions OK, check to see if command line is needed for install + # the optionsRequired flag in the package directory indicates options must be set before a blind install + # the optionsSet flag indicates the options HAVE been set already + # so if optionsRequired == True and optionsSet == False, can't install from GUI + if incompatible == False: + if os.path.exists ("/data/" + packageName + "/optionsRequired" ): + if not os.path.exists ( "/data/setupOptions/" + packageName + "/optionsSet"): + self.SetIncompatible ('CMDLINE') + incompatible = True + # end UpdateFileFlagsAndVersions +# end Package + + +# UpdateGitHubVersionClass +# +# downloads the GitHub version of all packages +# this work is done in a separate thread so network activity can be spaced out +# +# a queue is used to trigger a priority update for a specific package +# this is used when the operator changes GitHub user/branch so the version +# updates rapidly +# the queue is also used to wake the thread from a potentially long sleep period +# to exit or speed up the refresh rate +# +# Instances: +# UpdateGitHubVersion (a separate thread) +# +# Methods: +# updateGitHubVersion +# run () +# StopThread () +# + +class UpdateGitHubVersionClass (threading.Thread): + + # updateGitHubVersion + # + # fetches the GitHub version from the internet and stores it in the package + # + # this is called from the background thread run () below + # + # if the wget fails, the GitHub version is set to "" + # this will happen if the name, user or branch are not correct + # or if there is no internet connection + # + # the package GitHub version is upated + # but the version is also returned to the caller + # + # Instances: + # UpdateGitHubVersion (thread) + # + # Methods: + # updateGitHubVersion + # SetPriorityGitHubVersion + # run (the thread) + + def updateGitHubVersion (self, packageName, gitHubUser, gitHubBranch): + + url = "https://raw.githubusercontent.com/" + gitHubUser + "/" + packageName + "/" + gitHubBranch + "/version" + try: + proc = subprocess.Popen (["wget", "--timeout=10", "-qO", "-", url], + stdout=subprocess.PIPE, stderr=subprocess.PIPE) + except: + logging.error ("wget for version failed " + packageName) + gitHubVersion = "" + else: + proc.wait() + # convert from binary to string + stdout, stderr = proc.communicate () + stdout = stdout.decode ().strip () + stderr = stderr.decode ().strip () + returnCode = proc.returncode + if proc.returncode == 0: + gitHubVersion = stdout + else: + gitHubVersion = "" + + # locate the package with this name and update it's GitHubVersion + # if not in the list discard the information + DbusIf.LOCK () + package = PackageClass.LocatePackage (packageName) + if package != None: + package.SetGitHubVersion (gitHubVersion) + DbusIf.UNLOCK () + return gitHubVersion + + + def __init__(self): + threading.Thread.__init__(self) + self.GitHubVersionQueue = queue.Queue (maxsize = 50) + self.threadRunning = True + # package needing immediate update + self.priorityPackageName = None + + + # SetPriorityGitHubVersion + # pushes a priority package version update onto our queue + + def SetPriorityGitHubVersion (self, packageName): + self.GitHubVersionQueue.put (packageName) + + + # UpdateGitHubVersion run () + # + # updates GitHub versions + # GitHub access is spaced out to minimize network traffic + # a priority update is pushed onto our que when GitHub info changes + # + # StopThread () is called to shut down the thread when PackageManager is quitting + # "STOP" is pushed on to the queue by StopThread to cause the run thread to detect + # detect the stop request immediately + # + # run () blocks on reading from our queue + # the timeout for the queue pull paces the version fetches + # normally, the timeout will occur with the queue empty + # in which case we update the next GitHub version for the next package + # the time between version fetches changes + # for the first pass, a shorter delay is used + # after all packages have been updated, the delay is increased + # the shorter delay is used again when we pull "FAST" off the queue + # + # when the que returns an item, it is checked to see if it is either a + # prioirty package to update it's GitHub version + # "STOP" - indicating run should return + # "FAST" - indicating the loop should speed up + # wake is used when download refresh mode/rates change + # checks the threadRunning flag and returns if it is False, + # when run returns, the main method should catch the tread with join () + + def StopThread (self): + logging.info ("attempting to stop UpdateGitHubVersion thread") + self.threadRunning = False + self.GitHubVersionQueue.put ( 'STOP', block=False ) + + + def run (self): + global AllVersionsRefreshed + + AllVersionsRefreshed = False + + gitHubVersionPackageIndex = 0 + delay = 10.0 + + while self.threadRunning: + command = "" + doBackgroundUpdate = True + # queue gets STOP and FAST commands or priority package name + # empty queue signals it's time for a background update + # queue timeout is used to pace background updates + try: + command = self.GitHubVersionQueue.get (timeout = delay) + except queue.Empty: # means get() timed out as expected - not an error + # timeout indicates it's time to do a background update + doBackgroundUpdate = True + except: + logging.error ("pull from GitHubVersionQueue failed") + doBackgroundUpdate = True + + if command == 'STOP' or self.threadRunning == False: + doBackgroundUpdate = False + return + + # the FAST command speeds up the loop and starts with the first package + if (command == 'FAST'): + delay = 10.0 + gitHubVersionPackageIndex = 0 + # command contains a package name for priority update + elif command != "": + priorityPackageName = command + DbusIf.LOCK () + package = PackageClass.LocatePackage (priorityPackageName) + if package != None: + user = package.GitHubUser + branch = package.GitHubBranch + DbusIf.UNLOCK () + if package != None: + # update the GigHub version here + self.updateGitHubVersion (priorityPackageName, user, branch) + doBackgroundUpdate = False + else: + logging.error ("can't fetch GitHub version - " + priorityPackageName + " not in package list") + # no priority update, do next in the list + if doBackgroundUpdate: + DbusIf.LOCK () + length = len (PackageClass.PackageList) + if length > 0: + # reached end of list - switch to slow scan + if gitHubVersionPackageIndex >= length: + # notify the main loop that all versions have been refreshed and + # download modes can now be changed if appropriate + AllVersionsRefreshed = True + gitHubVersionPackageIndex = 0 + delay = 60.0 + package = PackageClass.PackageList[gitHubVersionPackageIndex] + packageName = package.PackageName + user = package.GitHubUser + branch = package.GitHubBranch + gitHubVersionPackageIndex += 1 + else: + doBackgroundUpdate = False + DbusIf.UNLOCK () + + if doBackgroundUpdate: + self.updateGitHubVersion (packageName, user, branch) + + +# DownloadGitHubPackagesClass +# +# downloads packages from GitHub, replacing the existing package +# if versions indicate a newer version +# +# the GUI and auto download code (in main loop) push download +# actions onto our queue +# the thread blocks when the queue is empty +# +# a STOP command is also pushed onto the queue when PackageManager +# is shutting down. This unblocks this thread which immediately +# reads threadRunning. If false, run () returns +# +# Instances: +# DownloadGitHub (a separate thread) +# +# Methods: +# GitHubDownload +# DownloadVersionCheck +# processDownloadQueue +# run +# StopThread +# +# the run () thread is only responsible for pacing automatic downloads from the internet +# commands are pushed onto the processing queue (PushAction) +# + +class DownloadGitHubPackagesClass (threading.Thread): + + def __init__(self): + threading.Thread.__init__(self) + self.DownloadQueue = queue.Queue (maxsize = 50) + self.threadRunning = True + + + # this method downloads a package from GitHub + # it is called from run() below + # also, download requests are pushed for automatic downloads from mainloop + # and also for a manual download triggered from the GUI + # statusMethod provides text status to the caller + # callBack provides notificaiton of completion (or error) + # automatic downloads that fail are logged but otherwise not reported + + def GitHubDownload (self, packageName= None, source=None): + if source == 'GUI': + where = 'Editor' + elif source == 'AUTO': + where = 'Download' + else: + where = None + + # to avoid confilcts, create a temp directory that + # is unque to this program and this method + # and make sure it is empty + tempDirectory = "/var/run/packageManager" + str(os.getpid ()) + "GitHubDownload" + if os.path.exists (tempDirectory): + shutil.rmtree (tempDirectory) + os.mkdir (tempDirectory) + + DbusIf.LOCK () + package = PackageClass.LocatePackage (packageName) + gitHubUser = package.GitHubUser + gitHubBranch = package.GitHubBranch + DbusIf.UNLOCK () + + DbusIf.UpdateStatus ( message="downloading " + packageName, where=where, logLevel=WARNING ) + + # create temp directory specific to this thread + tempArchiveFile = tempDirectory + "/temp.tar.gz" + # download archive + if os.path.exists (tempArchiveFile): + os.remove ( tempArchiveFile ) + + url = "https://github.com/" + gitHubUser + "/" + packageName + "/archive/" + gitHubBranch + ".tar.gz" + try: + proc = subprocess.Popen ( ['wget', '--timeout=120', '-qO', tempArchiveFile, url ],\ + stdout=subprocess.PIPE, stderr=subprocess.PIPE) + except: + DbusIf.UpdateStatus ( message="could not access archive on GitHub " + packageName, + where=where, logLevel=ERROR ) + if source == 'GUI': + DbusIf.SetGuiEditAction ( 'ERROR' ) + return False + else: + proc.wait() + stdout, stderr = proc.communicate () + # convert from binary to string + stdout = stdout.decode ().strip () + stderr = stderr.decode ().strip () + returnCode = proc.returncode + + if returnCode != 0: + DbusIf.UpdateStatus ( message="could not access " + packageName + ' ' + gitHubUser + ' '\ + + gitHubBranch + " on GitHub", where=where, logLevel=WARNING ) + logging.error ("returnCode" + str (returnCode) + "stderr" + stderr) + if source == 'GUI': + DbusIf.SetGuiEditAction ( 'ERROR' ) + PackageClass.UpdateDownloadPending (packageName, False) + shutil.rmtree (tempDirectory) + return False + try: + proc = subprocess.Popen ( ['tar', '-xzf', tempArchiveFile, '-C', tempDirectory ], + stdout=subprocess.PIPE, stderr=subprocess.PIPE) + except: + DbusIf.UpdateStatus ( message="could not unpack " + packageName + ' ' + gitHubUser + ' ' + gitHubBranch, + where=where, logLevel=ERROR ) + if source == 'GUI': + DbusIf.SetGuiEditAction ( 'ERROR' ) + PackageClass.UpdateDownloadPending (packageName, False) + shutil.rmtree (tempDirectory) + return False + + proc.wait() + stdout, stderr = proc.communicate () + # convert from binary to string + stdout = stdout.decode ().strip () + stderr = stderr.decode ().strip () + returnCode = proc.returncode + + if returnCode != 0: + DbusIf.UpdateStatus ( message="could not unpack " + packageName + ' ' + gitHubUser + ' ' + gitHubBranch, + where=where, logLevel=ERROR ) + logging.error ("stderr: " + stderr) + if source == 'GUI': + DbusIf.SetGuiEditAction ( 'ERROR' ) + PackageClass.UpdateDownloadPending (packageName, False) + shutil.rmtree (tempDirectory) + return False + + # attempt to locate a directory that contains a version file + # the first directory in the tree starting with tempDicrectory + # is returnd + unpackedPath = LocatePackagePath (tempDirectory) + if unpackedPath == None: + PackageClass.UpdateDownloadPending (packageName, False) + shutil.rmtree (tempDirectory) + logging.error ( "GitHubDownload: no archive path for " + packageName) + return False + + # move unpacked archive to package location + # LOCK this critical section of code to prevent others + # from accessing the directory while it's being updated + packagePath = "/data/" + packageName + tempPackagePath = packagePath + "-temp" + DbusIf.LOCK () + if os.path.exists (packagePath): + os.rename (packagePath, tempPackagePath) + shutil.move (unpackedPath, packagePath) + if os.path.exists (tempPackagePath): + shutil.rmtree (tempPackagePath, ignore_errors=True) # like rm -rf + DbusIf.UNLOCK () + PackageClass.UpdateDownloadPending (packageName, False) + DbusIf.UpdateStatus ( message="", where=where ) + if source == 'GUI': + DbusIf.SetGuiEditAction ( '' ) + shutil.rmtree (tempDirectory) + return True + # end GitHubDownload + + + # DownloadVersionCheck + # + # compares versions to determine if a download is needed + # returns: True if a download is needed, False otherwise + # must be called with package list LOCKED !! + + + def DownloadVersionCheck (self, package): + gitHubUser = package.GitHubUser + gitHubBranch = package.GitHubBranch + gitHubVersion = package.GitHubVersion + packageVersion = package.PackageVersion + + # versions not initialized yet - don't allow the download + if gitHubVersion == None or gitHubVersion == "" or gitHubVersion[0] != 'v' or packageVersion == '?': + return False + + packageVersionNumber = package.PackageVersionNumber + gitHubVersionNumber = package.GitHubVersionNumber + + # if GitHubBranch is a version number, a download is needed if the versions differ + if gitHubBranch[0] == 'v': + if gitHubVersionNumber != packageVersionNumber: + return True + else: + return False + # otherwise the download is needed if the gitHubVersion is newer + else: + if gitHubVersionNumber > packageVersionNumber: + return True + else: + return False + + + # DownloadGitHub run (the thread) + # + # StopThread () is called to shut down the thread + + def StopThread (self): + logging.info ("attempting to stop DownloadGitHub thread") + self.threadRunning = False + self.DownloadQueue.put ( ('STOP', ''), block=False ) + + # DownloadGitHub run (the thread) + # + # updates GitHub versions + # a priority update triggered when GitHub info changes + # a backgroud update + # downloads packages from + # GUI requests + # a background loop + # the background loop always starts at the beginning of PackageList + # and stops when a package needing a download is found + # on the next pass, (hopefully) that package download will have + # been satisfied and a new one will be found + # when no updates are found, the download scan rate slows + # but a change in auto download mode will speed it up again + # + # run () checks the threadRunning flag and returns if it is False, + # essentially taking the thread off-line + # the main method should catch the tread with join () + + def run (self): + lastAutoDownloadTime = 0.0 + while self.threadRunning: # loop forever + # process one GUI download request + # if there was one, skip auto downloads until next pass + try: + command = self.DownloadQueue.get () # block forever + except: + logging.error ("pull from DownloadQueue queue failed") + time.sleep (5.0) + continue + if command[0] == 'STOP' or self.threadRunning == False: + return + + # separate command, source tuple + # and separate action and packageName + if len (command) >= 2: + parts = command[0].split (":") + if len (parts) >= 2: + action = parts[0].strip () + packageName = parts[1].strip () + else: + logging.error ("DownloadQueue - no action and/or package name - discarding", command) + time.sleep (5.0) + continue + source = command[1] + else: + logging.error ("DownloadQueue - no command and/or source - discarding", command) + time.sleep (5.0) + continue + + # invalid action for this queue + if action != 'download': + logging.error ("received invalid command from Install queue: ", command ) + time.sleep (5.0) + continue + + # set version refresh rate and download delay + currentMode = DbusIf.GetAutoDownloadMode () + if currentMode == ONE_DOWNLOAD or currentMode == FAST_DOWNLOAD: + downloadDelay = 10.0 + else: + downloadDelay = 600.0 + + # wait here until it is time to do the download + while True: + timeToGo = downloadDelay + lastAutoDownloadTime - time.time() + if timeToGo <= 0: + break + # it's not time to download yet - update status message with countdown + if timeToGo > 90: + statusMessage = packageName + " download begins in " + "%0.1f minutes" % ( timeToGo / 60 ) + elif timeToGo > 1.0: + statusMessage = packageName + " download begins in " + "%0.0f seconds" % ( timeToGo ) + if source == 'GUI': + DbusIf.UpdateStatus ( message=statusMessage, where='Editor' ) + else: + DbusIf.UpdateStatus ( message=statusMessage, where='Download' ) + + time.sleep (5.0) + + # do the download here + self.GitHubDownload (packageName=packageName, source=source ) + lastAutoDownloadTime = time.time() + # end while True + # end run +# end DownloadGitHubPackagesClass + + +# InstallPackagesClass +# Instances: +# InstallPackages (a separate thread) +# +# Methods: +# InstallPackage +# run (the thread) +# StopThread +# run +# +# install and uninstall packages +# if versions indicate a newer version +# runs as a separate thread since the operations can take a long time +# and we need to space them to avoid consuming all CPU resources +# +# packages are automatically installed only +# if the autoInstall Setting is active +# package version is newer than installed version +# or if nothing is installed +# +# a manual install is performed regardless of versions + +class InstallPackagesClass (threading.Thread): + + def __init__(self): + threading.Thread.__init__(self) + DbusIf.SetInstallStatus ("") + self.threadRunning = True + self.InstallQueue = queue.Queue (maxsize = 10) + + + # InstallPackage + # + # this method either installs or uninstalls a package + # the choice is the direction value: + # 'install' or 'uninstall' + # the operation can take many seconds + # i.e., the time it takes to run the package's setup script + # do not call from a thread that should not block + + def InstallPackage ( self, packageName=None, source=None , direction='install' ): + + # refresh versions, then check to see if an install is possible + DbusIf.LOCK () + package = PackageClass.LocatePackage (packageName) + + if source == 'GUI': + sendStatusTo = 'Editor' + # uninstall sets the uninstall flag file to prevent auto install + if direction == 'uninstall': + package.SetAutoInstallOk (False) + logging.warning (packageName + " was manually uninstalled - auto install for that package will be skipped") + # manual install removes the flag file + else: + package.SetAutoInstallOk (True) + logging.warning (packageName + " was manually installed - allowing auto install for that package") + elif source == 'AUTO': + sendStatusTo = 'Install' + + packageDir = "/data/" + packageName + if not os.path.isdir (packageDir): + logging.error ("InstallPackage - no package directory " + packageName) + package.InstallPending = False + DbusIf.UNLOCK () + if source == 'GUI': + DbusIf.SetGuiEditAction ( 'ERROR' ) + return + + setupFile = packageDir + "/setup" + if os.path.isfile(setupFile): + if os.access(setupFile, os.X_OK) == False: + DbusIf.UpdateStatus ( message="setup file for " + packageName + " not executable", + where=sendStatusTo, logLevel=ERROR ) + if source == 'GUI': + DbusIf.SetGuiEditAction ( 'ERROR' ) + package.InstallPending = False + DbusIf.UNLOCK () + return + else: + DbusIf.UpdateStatus ( message="setup file for " + packageName + " doesn't exist", + where=sendStatusTo, logLevel=ERROR ) + if source == 'GUI': + DbusIf.SetGuiEditAction ( 'ERROR' ) + package.InstallPending = False + DbusIf.UNLOCK () + return + + DbusIf.UNLOCK () + + # provide an innitial status message for the action since it takes a while for PackageManager + # to fill in EditStatus + # this provides immediate user feedback that the button press was detected + DbusIf.UpdateStatus ( message=direction + "ing " + packageName, + where=sendStatusTo, logLevel=WARNING ) + try: + proc = subprocess.Popen ( [ setupFile, direction, 'deferReboot', 'deferGuiRestart' ], + stdout=subprocess.PIPE, stderr=subprocess.PIPE ) + proc.wait() + stdout, stderr = proc.communicate () + # convert from binary to string + stdout = stdout.decode ().strip () + stderr = stderr.decode ().strip () + returnCode = proc.returncode + setupRunFail = False + except: + setupRunFail = True + + # manage the result of the setup run while locked just in case + DbusIf.LOCK () + + package = PackageClass.LocatePackage (packageName) + package.InstallPending = False + + if setupRunFail: + DbusIf.UpdateStatus ( message="could not run setup file for " + packageName, + where=sendStatusTo, logLevel=ERROR ) + if source == 'GUI': + DbusIf.SetGuiEditAction ( 'ERROR' ) + elif returnCode == EXIT_SUCCESS: + package.SetIncompatible ('') # this marks the package as compatible + DbusIf.UpdateStatus ( message="", where=sendStatusTo ) + if source == 'GUI': + DbusIf.SetGuiEditAction ( '' ) + elif returnCode == EXIT_REBOOT: + # set package RebootNeeded so GUI can show the need - does NOT trigger a reboot + package.SetRebootNeeded (True) + + DbusIf.UpdateStatus ( message=packageName + " " + direction + " requires REBOOT", + where=sendStatusTo, logLevel=WARNING ) + if source == 'GUI': + DbusIf.SetGuiEditAction ( 'RebootNeeded' ) + # auto install triggers a reboot by setting the global flag - reboot handled in main_loop + else: + global SystemReboot + SystemReboot = True + elif returnCode == EXIT_RESTART_GUI: + # set package GuiRestartNeeded so GUI can show the need - does NOT trigger a restart + package.SetGuiRestartNeeded (True) + + logging.warning ( packageName + " " + direction + " requires GUI restart" ) + if source == 'GUI': + DbusIf.SetGuiEditAction ( 'GuiRestartNeeded' ) + # auto install triggers a GUI restart by setting the global flag - restart handled in main_loop + else: + global GuiRestart + GuiRestart = True + elif returnCode == EXIT_RUN_AGAIN: + if source == 'GUI': + DbusIf.UpdateStatus ( message=packageName + " run install again to complete install", + where=sendStatusTo, logLevel=WARNING ) + DbusIf.SetGuiEditAction ( 'ERROR' ) + else: + DbusIf.UpdateStatus ( message=packageName + " setup must be run again", + where=sendStatusTo, logLevel=WARNING ) + elif returnCode == EXIT_INCOMPATIBLE_VERSION: + global VenusVersion + package.SetIncompatible ('VERSION') + DbusIf.UpdateStatus ( message=packageName + " not compatible with Venus " + VenusVersion, + where=sendStatusTo, logLevel=WARNING ) + if source == 'GUI': + DbusIf.SetGuiEditAction ( 'ERROR' ) + elif returnCode == EXIT_INCOMPATIBLE_PLATFOM: + global Platform + package.SetIncompatible ('PLATFORM') + DbusIf.UpdateStatus ( message=packageName + " " + direction + " not compatible with " + Platform, + where=sendStatusTo, logLevel=WARNING ) + if source == 'GUI': + DbusIf.SetGuiEditAction ( 'ERROR' ) + elif returnCode == EXIT_OPTIONS_NOT_SET: + DbusIf.UpdateStatus ( message=packageName + " " + direction + " setup must be run from the command line", + where=sendStatusTo, logLevel=WARNING ) + if source == 'GUI': + DbusIf.SetGuiEditAction ( 'ERROR' ) + elif returnCode == EXIT_FILE_SET_ERROR: + DbusIf.UpdateStatus ( message=packageName + " file set incomplete", + where=sendStatusTo, logLevel=ERROR ) + if source == 'GUI': + DbusIf.SetGuiEditAction ( 'ERROR' ) + # unknown error + elif returnCode != 0: + DbusIf.UpdateStatus ( message=packageName + " " + direction + " unknown error " + str (returnCode), + where=sendStatusTo, logLevel=ERROR ) + logging.error ("stderr: " + stderr) + if source == 'GUI': + DbusIf.SetGuiEditAction ( 'ERROR' ) + + DbusIf.UNLOCK () + # end InstallPackage () + + + # InstallPackage run (the thread) + # + # automatic install packages + # pushes request on queue for processing later in another thread + # this allows this to run quickly while the package list is locked + # + # run () checks the threadRunning flag and returns if it is False, + # essentially taking the thread off-line + # the main method should catch the tread with join () + # StopThread () is called to shut down the thread + + def StopThread (self): + logging.info ("attempting to stop InstallPackages thread") + self.threadRunning = False + self.InstallQueue.put ( ('STOP', ''), block=False ) + + def run (self): + while self.threadRunning: + try: + command = self.InstallQueue.get () + except: + logging.error ("pull from Install queue failed") + continue + if len (command) == 0: + logging.error ("pull from Install queue failed - empty comand") + time.sleep (5.0) + continue + # thread shutting down + if command[0] == 'STOP' or self.threadRunning == False: + return + + # separate command, source tuple + # and separate action and packageName + if len (command) >= 2: + parts = command[0].split (":") + if len (parts) >= 2: + action = parts[0].strip () + packageName = parts[1].strip () + else: + logging.error ("InstallQueue - no action and/or package name - discarding", command) + time.sleep (5.0) + continue + source = command[1] + else: + logging.error ("InstallQueue - no command and/or source - discarding", command) + time.sleep (5.0) + continue + + if action == 'install': + self.InstallPackage (packageName=packageName, source=source , direction='install' ) + time.sleep (5.0) + elif action == 'uninstall': + self.InstallPackage (packageName=packageName, source=source , direction='uninstall' ) + time.sleep (5.0) + # invalid action for this queue + else: + logging.error ("received invalid command from Install queue: ", command ) + time.sleep (5.0) + continue + # end run +# end InstallPackagesClass + + + +# MediaScanClass +# Instances: +# MediaScan (a separate thread) +# Methods: +# transferPackage +# StopThread +# settingsBackup +# settingsRestore +# run +# +# scan removable SD and USB media for packages to be installed +# +# run () is a separate thread that looks for removable +# SD cards and USB sticks that appear in /media as separate directories +# these directories come and go with the insertion and removable of the media +# +# when new media is detected, it is scanned once then ignored +# when media is removed, then reinserted, the scan begins again +# +# packages must be located in the root of the media (no subdirecoties are scanned) +# and must be an archive with a name ending in .tar.gz +# +# archives are unpacked to a temp directory in /var/run (a ram disk) +# verified, then moved into position in /data/ +# where the name comes from the unpacked directory name +# of the form - +# +# actual installation is handled in the InstallPackages run() thread + +class MediaScanClass (threading.Thread): + + # transferPackage unpacks the archive and moves it into postion in /data + # + # path is the full path to the archive + + def transferPackage (self, path): + packageName = os.path.basename (path).split ('-', 1)[0] + + # create an empty temp directory in ram disk + # for the following operations + # directory is unique to this process and thread + tempDirectory = "/var/run/packageManager" + str(os.getpid ()) + "Media" + if os.path.exists (tempDirectory): + shutil.rmtree (tempDirectory) + os.mkdir (tempDirectory) + + # unpack the archive - result is placed in tempDirectory + try: + proc = subprocess.Popen ( ['tar', '-xzf', path, '-C', tempDirectory ], + stdout=subprocess.PIPE, stderr=subprocess.PIPE) + except: + DbusIf.UpdateStatus ( message="tar failed for " + packageName, + where='Media', logLevel=ERROR) + time.sleep (5.0) + DbusIf.UpdateStatus ( message="", where='Media') + return False + proc.wait() + stdout, stderr = proc.communicate () + # convert from binary to string + stdout = stdout.decode ().strip () + stderr = stderr.decode ().strip () + returnCode = proc.returncode + if returnCode != 0: + DbusIf.UpdateStatus ( message="could not unpack " + packageName + " from SD/USB media", + where='Media', logLevel=ERROR) + logging.error ("stderr: " + stderr) + shutil.rmtree (tempDirectory) + time.sleep (5.0) + DbusIf.UpdateStatus ( message="", where='Media') + return False + + # attempt to locate a package directory in the tree below tempDirectory + unpackedPath = LocatePackagePath (tempDirectory) + if unpackedPath == None: + logging.warning (packageName + " archive doesn't contain a package directory - rejected" ) + shutil.rmtree (tempDirectory) + time.sleep (5.0) + DbusIf.UpdateStatus ( message="", where='Media') + return False + + # move unpacked archive to package location + # LOCK this critical section of code to prevent others + # from accessing the directory while it's being updated + DbusIf.UpdateStatus ( message="transfering " + packageName + " from SD/USB", where='Media', logLevel=WARNING ) + packagePath = "/data/" + packageName + tempPackagePath = packagePath + "-temp" + DbusIf.LOCK () + if os.path.exists (tempPackagePath): + shutil.rmtree (tempPackagePath, ignore_errors=True) # like rm -rf + if os.path.exists (packagePath): + os.rename (packagePath, tempPackagePath) + shutil.move (unpackedPath, packagePath) + if os.path.exists (tempPackagePath): + shutil.rmtree (tempPackagePath, ignore_errors=True) # like rm -rf + DbusIf.UNLOCK () + shutil.rmtree (tempDirectory, ignore_errors=True) + time.sleep (5.0) + DbusIf.UpdateStatus ( message="", where='Media') + return True + # end transferPackage + + + def __init__(self): + threading.Thread.__init__(self) + self.MediaQueue = queue.Queue (maxsize = 10) # used only for STOP + self.threadRunning = True + + # + # settingsBackup + # settingsRestore + # + # extracts / restores dbus settings to/from a file + # + # settingsList contains the list of dbus /Settings parameters to save and restore + # + + def settingsBackup (self, backupPath): + settingsListFile = "/data/SetupHelper/settingsList" + backupFile = backupPath + "/settingsBackup" + if not os.path.exists (settingsListFile): + logging.error (settingsListFile + " does not exist - can't backup settings") + return + + # backup settings + backupSettings = open (backupFile, 'w') + settingsCount = 0 + bus = dbus.SystemBus() + with open (settingsListFile, 'r') as listFile: + for line in listFile: + setting = line.strip() + try: + value = bus.get_object("com.victronenergy.settings", setting).GetValue() + except: + continue + backupSettings.write ( setting + '=' + str(value) + '\n' ) + settingsCount += 1 + + backupSettings.close () + listFile.close () + + # backup logo overlays + overlaySourceDir = "/data/themes/overlay" + overlayDestDir = backupPath + "/logoBackup" + + + # remove any previous logo backups + if os.path.isdir (overlayDestDir): + shutil.rmtree (overlayDestDir) + + overlayCount = 0 + if os.path.isdir (overlaySourceDir): + overlayFiles = os.listdir (overlaySourceDir) + if len (overlayFiles) > 0: + # create overlay direcory on backkup device, then copy files + if not os.path.isdir (overlayDestDir): + os.mkdir (overlayDestDir) + for overlay in overlayFiles: + if overlay[0] == ".": + continue + shutil.copy ( overlaySourceDir + "/" + overlay, overlayDestDir ) + overlayCount += 1 + + logging.warning ("settings backup completed - " + str(settingsCount) + " settings and " + str (overlayCount) + " overlays") + + + def settingsRestore (self, backupPath): + backupFile = backupPath + "/settingsBackup" + if not os.path.exists (backupFile): + logging.error (backupFile + " does not exist - can't restore settings") + bus = dbus.SystemBus() + settingsCount = 0 + with open (backupFile, 'r') as fd: + for line in fd: + parts = line.strip().split ('=') + try: + bus.get_object("com.victronenergy.settings", parts[0]).SetValue(parts[1]) + except: + pass + settingsCount += 1 + + # restore logo overlays + overlaySourceDir = backupPath + "/logoBackup" + overlayDestDir = "/data/themes/overlay" + overlayCount = 0 + if os.path.isdir (overlaySourceDir): + overlayFiles = os.listdir (overlaySourceDir) + if len (overlayFiles) > 0: + # create overlay direcory in /data, then copy files + if not os.path.isdir (overlayDestDir): + os.mkdir (overlayDestDir) + for overlay in overlayFiles: + if overlay[0] == ".": + continue + shutil.copy ( overlaySourceDir + "/" + overlay, overlayDestDir ) + overlayCount += 1 + + logging.warning ("settings restore completed - " + str(settingsCount) + " settings and " + str (overlayCount) + " overlays") + + + # Media Scan run (the thread) + # + # run () checks the threadRunning flag and returns if it is False, + # essentially taking the thread off-line + # the main method should catch the tread with join () + # StopThread () is called to shut down the thread + + def StopThread (self): + logging.info ("attempting to stop MediaScan thread") + self.threadRunning = False + self.MediaQueue.put ( "STOP", block=False ) + + def run (self): + separator = '/' + root = "/media" + archiveSuffix = ".tar.gz" + + # list of accepted branch/version substrings + acceptList = [ "-current", "-latest", "-main", "-test", "-debug", "-beta", "-install", + "-0", "-1", "-2", "-3", "-4", "-5", "-6", "-7", "-8", "-9" ] + + # keep track of all media that's been scanned so it isn't scanned again + # media removal removes it from this list + alreadyScanned = [] + while self.threadRunning: + # use queue to receive stop command and also to space operations + command = "" + try: + command = self.MediaQueue.get (timeout = 5.0) + except queue.Empty: # queue empty is OK + # timeout indicates it's time to make one pass through the code below + pass + except: + logging.error ("pull from MediaQueue failed") + time.sleep (5.0) + if command == 'STOP' or self.threadRunning == False: + return + + try: + drives = os.listdir (root) + except: + drives = [] + + if len (drives) == 0: + DbusIf.SetBackupMediaAvailable (False) + DbusIf.SetBackupSettingsFileExist (False) + backupMediaExists = False + else: + DbusIf.SetBackupMediaAvailable (True) + backupMediaExists = True + + # if previously detected media is removed, + # allow it to be scanned again when reinserted + for scannedDrive in alreadyScanned: + if not scannedDrive in drives: + alreadyScanned.remove (scannedDrive) + + for drive in drives: + drivePath = separator.join ( [ root, drive ] ) + # process settings backup and restore + # check for settings backup file + settingsBackupPath = root + "/" + drive + settingsBackupFile = settingsBackupPath + "/settingsBackup" + if os.path.exists (settingsBackupFile): + DbusIf.SetBackupSettingsFileExist (True) + backupSettingsFileExists = True + else: + DbusIf.SetBackupSettingsFileExist (False) + backupSettingsFileExists = False + + if backupMediaExists: + backupProgress = DbusIf.GetBackupProgress () + # GUI triggered backup + if backupProgress == 1: + DbusIf.SetBackupProgress (3) + self.settingsBackup (settingsBackupPath) + DbusIf.SetBackupProgress (0) + elif backupProgress == 2: + if backupSettingsFileExists: + DbusIf.SetBackupProgress (4) + self.settingsRestore (settingsBackupPath) + DbusIf.SetBackupProgress (0) + + if drive in alreadyScanned: + continue + + # check any file name ending with the achive suffix + # all others are skipped + for path in glob.iglob (drivePath + "/*" + archiveSuffix): + accepted = False + if os.path.isdir (path): + continue + else: + accepted = False + baseName = os.path.basename (path) + # verify the file name contains one of the accepted branch/version identifiers + # if not found in the list, the archive is rejected + for accept in acceptList: + if accept in baseName: + accepted = True + break + # discovered what appears to be a valid archive + # unpack it, do further tests and move it to /data + if accepted: + self.transferPackage (path) + if self.threadRunning == False: + return + else: + logging.warning (path + " not a valid archive name - rejected") + # end for path + + # mark this drive so it won't get scanned again + # this prevents repeated installs + alreadyScanned.append (drive) + #end for drive + # end run () +# end MediaScanClass + +global noActionCount + +def mainLoop(): + global mainloop + global SystemReboot + global GuiRestart + global PackageIndex + global PushAction + global AllVersionsRefreshed # initialized in main - set in UpdateGitHubVersion + global lastDownloadMode # initialized in main + global currentDownloadMode # initialized in main + global noActionCount + + delayStart = 0.0 + + # detect download mode changes and switch back to fast scan + lastDownloadMode = currentDownloadMode + currentDownloadMode = DbusIf.GetAutoDownloadMode () + # UpdateGitHubVersion is responsible for fetching GitHub versions + # when it has checked all versions it sets AllVersionsRefreshed + # so we can update the download mode + # slowing or stopping the downloads + if AllVersionsRefreshed: + if currentDownloadMode == ONE_DOWNLOAD: + DbusIf.SetAutoDownload (AUTO_DOWNLOADS_OFF) + elif currentDownloadMode == FAST_DOWNLOAD: + DbusIf.SetAutoDownload (NORMAL_DOWNLOAD) + AllVersionsRefreshed = False + # signal mode change to the GitHub threads + if currentDownloadMode != lastDownloadMode: + if currentDownloadMode == ONE_DOWNLOAD or currentDownloadMode == FAST_DOWNLOAD: + UpdateGitHubVersion.GitHubVersionQueue.put ('FAST') + + PackageClass.AddStoredPackages () + + DbusIf.UpdateDefaultPackages () + + # process one package per pass of mainloop + DbusIf.LOCK () + packageListLength = len (PackageClass.PackageList) + if packageListLength > 0: + if PackageIndex >= packageListLength: + PackageIndex = 0 + package = PackageClass.PackageList [PackageIndex] + PackageIndex += 1 + packageName = package.PackageName + package.UpdateFileFlagsAndVersions () + # disallow operations on this package if anything is pending + packageOperationOk = not package.DownloadPending and not package.InstallPending + + if packageOperationOk and currentDownloadMode != AUTO_DOWNLOADS_OFF\ + and DownloadGitHub.DownloadVersionCheck (package): + PushAction ( command='download' + ':' + packageName, source='AUTO' ) + packageOperationOk = False # don't allow other operations if download was triggered + + if packageOperationOk and package.AutoInstallOk and package.Incompatible == ''\ + and DbusIf.GetAutoInstall () and package.InstallVersionCheck (): + PushAction ( command='install' + ':' + packageName, source='AUTO' ) + + # check all packages before looking for reboot or GUI restart + rebootNeeded = False + guiRestartNeeded = False + actionsPending = False + for package in PackageClass.PackageList: + if package.DownloadPending or package.InstallPending: + actionsPending = True + if package.GuiRestartNeeded: + guiRestartNeeded = True + if package.RebootNeeded: + rebootNeeded = True + DbusIf.UNLOCK () + if rebootNeeded: + DbusIf.SetActionNeeded ('reboot') + elif guiRestartNeeded: + DbusIf.SetActionNeeded ('guiRestart') + + if actionsPending: + noActionCount = 0 + else: + noActionCount += 1 + + # wait for two complete passes with nothing happening + # before triggerinng reboot or GUI restart + if noActionCount >= 2: + if SystemReboot: + # exit the main loop + mainloop.quit() + return False + elif GuiRestart: + logging.warning ("restarting GUI") + try: + proc = subprocess.Popen ( [ 'svc', '-t', '/service/gui' ] ) + except: + logging.critical ("GUI restart failed") + GuiRestart = False + DbusIf.SetInstallStatus ("") + DbusIf.SetEditStatus ("") + DbusIf.SetGuiEditAction ('') + # clear all package GUI restart needed flags + # that flag is only used by the GUI to show a restart is needed for that package + for package in PackageClass.PackageList: + package.SetGuiRestartNeeded (False) + # the ActionNeeded flag could be 'reboot' but that's addressed in main below anyway + DbusIf.SetActionNeeded ('') + + # continue the main loop + return True +# main +# +# ######## code begins here +# responsible for initialization and starting main loop and threads +# also deals with clean shutdown when main loop exits +# +def main(): + global mainloop + global SystemReboot + global GuiRestart + global PackageIndex + global noActionCount + + SystemReboot = False + GuiRestart = False + PackageIndex = 0 + noActionCount = 0 + + + # set logging level to include info level entries + logging.basicConfig( format='%(levelname)s:%(message)s', level=logging.WARNING ) + + # fetch installed version + installedVersionFile = "/etc/venus/installedVersion-SetupHelper" + try: + versionFile = open (installedVersionFile, 'r') + except: + installedVersion = "" + else: + installedVersion = versionFile.readline().strip() + versionFile.close() + # if file is empty, an unknown version is installed + if installedVersion == "": + installedVersion = "unknown" + + logging.warning (">>>> PackageManager " + installedVersion + " starting") + + from dbus.mainloop.glib import DBusGMainLoop + + # Have a mainloop, so we can send/receive asynchronous calls to and from dbus + DBusGMainLoop(set_as_default=True) + global PythonVersion + if PythonVersion < (3, 0): + GLib.threads_init() + + # get venus version + global VenusVersion + global VenusVersionNumber + global VersionToNumber + versionFile = "/opt/victronenergy/version" + try: + file = open (versionFile, 'r') + except: + VenusVersion = "" + else: + VenusVersion = file.readline().strip() + file.close() + VenusVersionNumber = VersionToNumber (VenusVersion) + + # get platform + global Platform + platformFile = "/etc/venus/machine" + try: + file = open (platformFile, 'r') + except: + Platform = "???" + else: + machine = file.readline().strip() + if machine == "einstein": + Platform = "Cerbo GX" + elif machine == "bealglebone": + Platform = "Venus GX" + elif machine == "ccgx": + Platform = "CCGX" + elif machine == "canvu500": + Platform = "CanVu 500" + elif machine == "nanopi": + Platform = "Multi/Easy Solar GX" + elif machine == "raspberrypi2": + Platform = "Raspberry Pi 2/3" + elif machine == "raspberrypi4": + Platform = "Raspberry Pi 4" + else: + Platform = machine + file.close() + + # initialze dbus Settings and com.victronenergy.packageManager + global DbusIf + DbusIf = DbusIfClass () + + PackageClass.AddPackagesFromDbus () + + DbusIf.TransferOldDbusPackageInfo () + + global UpdateGitHubVersion + UpdateGitHubVersion = UpdateGitHubVersionClass () + + global DownloadGitHub + DownloadGitHub = DownloadGitHubPackagesClass () + + global InstallPackages + InstallPackages = InstallPackagesClass () + + global AddRemove + AddRemove = AddRemoveClass () + + global MediaScan + MediaScan = MediaScanClass () + + # initialze package list + # and refresh versions before starting threads + # and the background loop + + DbusIf.ReadDefaultPackagelist () + + PackageClass.AddStoredPackages () + + DbusIf.UpdateDefaultPackages (alwaysRun = True) + + DbusIf.LOCK () + for package in PackageClass.PackageList: + package.MoveFlagFiles () + package.UpdateFileFlagsAndVersions () + DbusIf.UNLOCK () + + UpdateGitHubVersion.start() + DownloadGitHub.start() + InstallPackages.start() + AddRemove.start() + MediaScan.start () + + global lastDownloadMode + global currentDownloadMode + lastDownloadMode = AUTO_DOWNLOADS_OFF + currentDownloadMode = AUTO_DOWNLOADS_OFF + + # call the main loop - every 2 seconds + # this section of code loops until mainloop quits + GLib.timeout_add(2000, mainLoop) + mainloop = GLib.MainLoop() + mainloop.run() + + + # this section of code runs only after the mainloop quits + + # stop threads, remove service from dbus + if SystemReboot: + DbusIf.UpdateStatus ( message="REBOOTING ...", where='Download') + DbusIf.UpdateStatus ( message="REBOOTING ...", where='Editor' ) + logging.warning (">>>> REBOOTING: to complete package installation") + + + logging.warning ("stopping threads") + UpdateGitHubVersion.StopThread () + DownloadGitHub.StopThread () + InstallPackages.StopThread () + AddRemove.StopThread () + MediaScan.StopThread () + DbusIf.RemoveDbusService () + try: + UpdateGitHubVersion.join (timeout=30.0) + DownloadGitHub.join (timeout=30.0) + InstallPackages.join (timeout=10.0) + AddRemove.join (timeout=10.0) + except: + logging.critical ("attempt to join threads failed - one or more threads failed to exit") + pass + + # check for reboot + if SystemReboot: + try: + proc = subprocess.Popen ( [ 'shutdown', '-r', 'now', 'rebooting to complete package installation' ] ) + # for debug: proc = subprocess.Popen ( [ 'shutdown', '-k', 'now', 'simulated reboot - system staying up' ] ) + except: + logging.critical ("shutdown failed") + + # insure the package manager service doesn't restart when we exit + # it will start up again after the reboot + try: + proc = subprocess.Popen ( [ 'svc', '-o', '/service/PackageManager' ], text=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + except: + logging.critical ("svc to shutdown PackageManager failed") + + logging.critical (">>>> PackageManager exiting") + + # program exits here + +# Always run our main loop so we can process updates +main() + + + + + diff --git a/ReadMe b/ReadMe index 3d1719e..37e10e9 100644 --- a/ReadMe +++ b/ReadMe @@ -1,494 +1,206 @@ -New: SetupHelper now includes an automatic install using SD/USB media - without the need for command line access - +New: SetupHelper includes a GUI based package mananager The SetupHelper package provides: - a set of utilities to simplfy installing modifications to Victron Venus Os - a mechanism to automatically reinstall them following a Venus OS update + a mechanism to automatically reinstall packages following a Venus OS update an automatic update mechanism to keep packages up to date from GitHub archives or USB stick - a manual package installation mechanism from GitHub archives or USB stick - an automatic install from SD/USB media + control of the automatic download and install from the GUI + add and remove packages from the system + manual download, install, uninstall from the GUI -NOTE: Starting with v2.80~10, the root partition is mounted read only - This package and those that use these resources rely on a writable /root partition - so CommonResources runs the remount-rw.sh script to make it writable + a "blind" install of SetupHelper from SD/USB media -Supported pacages are: - SetupHelper GeneratorConnector GuiMods GuiMods2 RpiDisplaySetup RpiGpioSetup ShutdownManager TankRepeater + backup and restore SOME settings from com.victronenergy.settings -More information is provided below. +SetupHelper is also required for my other packages + and must be installed BEFORE running the other package setup scripts -Setup: -There are three methods to fetch a package archive. +Blind Install: -New: You can install SetupHelper and GuiMods without need of command line access +By far, the easiest way to install SetupHelper is the "blind install" + which requires no command-line interaction. - 1) Download venus-data.tgz from the GitHub repo. + 1) Download venus-data.tgz from the SetupHelper GitHub repo. 2) copy it to the root of a freshly formatted SD card or USB memory stick 3) place the media in the GX device (Cerbo, CCGX, etc) - 4) reboot the GX device TWICE - after the second reboot, you should see the GUI restart and display - the enhanced flow overview from GuiMods2 - If GuiMods2 was previously installed, the Grid Parallel overview - is automatically selected - 5) remove the media from the GX device to prevent the next reboot from - starting the process all over again + 4) reboot the GX device TWICE - allowing the system to display the GUI each time + after the second reboot, you should find the Package Manager menus + at the bottom of the Settings menu + 5) REMOVE THE MEDIA from the GX device + VERY IMPORTANT to prevent the next reboot from starting the process all over again + failure to do so could disable reinstalls following a Venus OS firmware update !!! CAUTION: This mechanism overwrites /data/rcS.local !!!! If you are using rcS.local to perform boot-time activities, /data/rcS.local must be recreated following this "blind" install - Note that SetupHelper and GuiMods2 also use /data/rcS.local for + Note that SetupHelper also uses /data/rcS.local for reinstallation following a firmware update so use caution in recreating rcS.local. venus-data.tgz is available here: https://github.com/kwindrem/SetupHelper/raw/main/venus-data.tgz - and here: - https://github.com/kwindrem/GuiMods/raw/main/venus-data.tgz - One may be newer than the other. In any case, automatic updates - will update any package that is out of date following the blind install - - -If the Venus device has internet access is to run the following command: - -wget -qO - https://github.com/kwindrem/SetupHelper/archive/current.tar.gz | tar -xzf - -C /data - -If the Venus device does not have internet access, you will need to fetch the archive using a computer that does have internet access: - -click on this link in a web browser: -https://github.com/kwindrem/SetupHelper/archive/current.tar.gz + +Other mechanisms to install SetupHelper require command-line interaction with the GX device + and are no longer recommended for SetupHelper or my other packages -rename the resulting .tar.gz file to venus-data.tar.gz -copy the venus-data.tar.gz to a USB stick, -put the stick in the Venus device and reboot. -When Venus boots, it will unarchive the file to /data/SetupHelper-current - -Move the directory into it's active locaiton: -rm -rf /data/SetupHelper -mv /data/SetupHelper-current /data/SetupHelper - -Finally, run the setup script to complete the installation -/data/SetupHelper/setup - -Use the manual or automatic update mechnism for future updates +Once SetupHelper is installed, updates to it and other packages can be performed through the GUI +using the PackageManager menus. +CAUTION: + Package Manager allows uninstalling SetupHelper. + This can not be undone since the menus to control Package Manager will go away + You would need to use the Blind Install again to reinstall SetupHelper + + Note that removal does not actually remove the package so other setup scripts + will continue to function. Description: There are two parts to SetupHelper: -1) Install and update utilities help a user manage packages. +1) Package Manager, controls automatic and manual updates to pacakges -2) Resources to help writing scripts to perform the installation. +2) Utilities used by other packages' setup scripts. + These resources simplfy the task of writing install/uninstall scripts + and may be of help to others writing packages of their own. The latter is of concern only to those writing new Venus modificaitons or modifying an existing setup script. -These are described in detail later in the document. - -SetupHelper package management: - -The intent of this part of SetupHelper is to minimize the effort needed -to install and update packages. - -packageAutoUpdater handles automatic package updates. - -Automatic updates can be controlled via the Device List / Settings / Package Versions menu - or options in the SetupHelper setup script - Normal checks GitHub for a package once every 10 minutes - Fast checks GitHub for a package once every 10 seconds - Once checks GitHub for a package once every 10 minutes, but only once, then updates are turned off - Disable disables GitHub updates - -If enabled, automatic GitHub update checks will download and install the GitHub version - of all installed packages if it is newer than the current version. - - -If you are experimenting with modificaitons and wish to avoid GitHub updates overriding your work, -disable automatic updates. - - -USB updates are handy when the Venus device is not connected to the internet. - -To use the USB update process: - Navigate to the GitHub, repo, click on tags and select "current". - Choose the .tar.gz download link. - (Do not download from the Code tab or download the .zip file. These won't work.) - Copy the archive files to a USB memory stick. - Do NOT unpack the archive - Insert the stick in the Venus device. - -Regardless the update source (USB or GitHub), -packageAutoUpdater replaces the current copy on the Venus device with the archive contents - but only if the version number of the source is newer than the one that's installed. -Then the package's setup script is run to reinstall the modificaitons. -No user interaction is needed in this process. - -You may wish to dispalbe GitHub updates if you are updating from a USB/SD memory stick to avoid conflicts. -(GitHub and files on a USB stick could have different versions.) - -packageAutoUpdater runs in the background (as a service). - - -packageInstaller provides the opportunity to install packages for the first time, or reinstall them. -For each package, packageInstaller prompts the user to install that package. -Packages that are already installed will be skipped if automatic updates are enabled. - -Packages can be installed from either a USB memory stick/SD memory card or from GitHub. -After the package is copied to the Venus device it's setup script is run -and the user must answer the prompts to complete the instalation. - -The method of putting an archive on a USB stick for manaul install is the same as the one for automatic updates. - -As with package automatic updates, GitHub is the desired source if your Venus device has an internet connection. - -packageInstaller is called from the SetupHelper setup script by choosing the package (p) option at the main prompt. -The packageInstaller is a shell script and can also be run manually: -/data/SetupHelper/packageInstaller - - -Setup script aids: - -SetupHelper provides a number of functions and variables that simplfy scripts written to -install Venus OS mods. The remainder of this ReadMe describes the resources available and -how to incorporate them into a setup script. - -Read on if you are intersting in writing a package setup script (or modifying an existing one) -or understanding how the mechanism works. - -To use SetupHelper, the script must be written to include CommonResources, -then use the functions included in CommonResources to carry out the modiciations. - -#### following lines incorporate SetupHelper utilities into this script -# Refer to the SetupHelper ReadMe file for details. - -source "/data/SetupHelper/CommonResources" - -#### end of lines to include SetupHelper - -A Venus software update overwrites any modifications to the root partition. -It is therefore necessary to reinstall the modifications following the Venus update. - -Running setup for any package using SetupHelper will install the necessary code to reinstall packages -during system boot - -Typically, rcS.local is used because it runs prior to starting services - so conflicts with running services can be avoided - (services don't need to be restarted after they've been modified) - and if a reboot is required, it happens faster - -If your setup script needs resources launched later in boot, change the following line in CommonResources - -rcLocal="/data/rcS.local" - -to - -rcLocal="/data/rc.local" - -If you have already run any setup scripts and want to make this change, make sure to edit /data/rcS.local -to remove the call to reinstallMods or it will be called twice during boot! - -reinstallScriptsList is a list of setup scripts, one per line that will be called from reinstallMods. -Scripts in this list are called EVERY time the system boots. -The script must avoid repeating work if it can be avoided. -SetupHelper tools (CommonResources) handles this for the script write. - -reinstallScriptsList is hard-coded to reside in the /data directory. -The location must match in CommonResources, and in reinstallMods -The file is created by the first setup script to add to it. - -reinstallScriptsList should use full path names to avoid problems finding the script -Lines beginning with # or completely blank lines are ignored as is white space at begin and end - -When the setup script adds itself to the script list, it includes "reinstall" as the first parameter. -When reinstallMods calls the script, it passes "reinstall" to the setup script so it knows not to prompt the user - -When called from reinstallMods: -1) The setup script must not require user input since there will be no user interface -2) The setup script should not reboot the system directly -3) The setup script should avoid reapplying the modifications. -4) The setup script should avoid making calls to the internet as these could hang the system. - -reinstallMods tests the exit code of each setup script. -An exit code of 123 signals that reinstallMods should reboot the system after all scripts have been run. - -A "installed flag file" is used to make sure the automatic reinstallation occurs only once after a Venus OS update. - -The presence of the installed flag file signals no further work needs to be done to reinstall the package - -Running the script manually should typically ignore the installed flag, -but MUST create or remove it as appropriate to control future boot-time execution. - -The installed flag file needs to be removed by a Venus OS update so that the script can do it's work again. -Therefore, installed flag files are stored in /etc/venus since a Venus OS update overwrites the entire dirctory. - -The installed flag file should be tested early in the script to save time. - -Installation choice may be required to control the installation of optional parameters. -These options are stored in /data/setupOpitons/[package] -This maintains the options through a reinstallation of the package. -optionsSet is set after an installation is successful. This enables package reinstallation. - -A setup script needs to run manually to perform the initial installation or removal of the package. -In this case, user interaction is necessary at least to choose to install or uninstall. -The setup script also needs to run unattended when called from reinstallMods during system boot. -When run by a user, the scrit should prompt the user for neede information. -However, the call from reinstallMods also needs this information and the user won't be available. -Therefore the paremeters taken from user interaction need to be stored in persistent storage, -then recovered from that storage during the reinstall. -The script's directory is a convenient location for persistent storage since /data survives a Venus OS update. -The $scriptDir variable is set up in CommonResources (see discussion below). -$scriptDir may be prepended to any persistent storage files. - -CommonResources contains common functions and variables that can be used by all scripts, - saving the setup script writer from lots of tedious work and also hooks scripts into - the reinstall mechanism. - -The tools CommonResorces provides are described now. - -The following functions manage execution of the script and interfaces to reinstallMods which is run - at boot from one of the /data/rc scripts: - - Sourcing CommonResources checks the setup script command line and the installed flag - and sets $scriptAction based on what is found. - If this is a boot-time reinstall, AND the installed flag is set, - the script exits inside CommonResources. - It is no longer necessary to test scriptAction for EXIT. In fact that value will never be used - If this a boot-time reinstall but the installed flag is NOT set, - scriptAction is set to INSTALL. - - checkFileSets has been decommissioned - file set checks are now handled when CommonResources is sourced - Attempts to create a file set for the current Venus OS version if it does not exist yet. - If the original files match another version, the file set is created - so the setup script may continue normally - However, if the original files for this new version differ from all existing versions - the new partial file set must not be used - Flag files ares placed in the file set: - basename.NO_REPLACEMENT indicates a new replaement verion must be created manually - INCOMPLETE indiates the file set can not be used until issue are corrected - scriptAction is also set to EXIT - It is necessary for the user to create new replacement files manually - then rerun the setup script to install the package. - You can also revert to a previous Venus OS version until the package - is updated for the new version. - checkFileSets no longer needs to be called in the setup script - - endScript - Function to finish up, prompt the user (if not reinstalling) and exit the script - It updates the installed flag based on the $runAgain variable - This script is added/removed from the reinstallScriptsList if installing/uninstalling, respectively - If $runningAtBoot is true (false when CommonResources is sourced) - the script will exit with $exitReboot if $rebootNeeded is true - otherwise, the script will exit with $exitSuccess - endScript NEVER RETURNS to the caller - If $runningAtBoot is false (script was run manually), user interaction controls further action - If $rebootNeeded is true, the function asks if the user wishes to reboot now - If they respond yes, the system will be rebooted - The user may choose to not reboot now if additional installations need to be done first - If $rebootNeeded is false, the function notifies the user of any needed actions - If $restartGui is true (false when CommonResources is sourced) - the gui service will be restarted - - The following variables are available to control behavior: - $scriptAction provides direction for the setup script and has the following values: - NONE - setup script should prompt the user for the desired action - and set scriptAction accordingly - EXIT - the setup script should exit immediately - INSTALL - the setup script should execute code to install the package - UNINSTALL - the setup script should execute the code to restore the Venus files to stock - If installaiton errors occur within functions in CommonResources, scriptAction will be changed to UNINSTALL. - The setup script MUST retest scriptAction after all installation code has been executed - so the package can be removed, rather than leaving the system with a partially installed package. - - $rebootNeeded - true signifies a reboot is required after the script is run - if $runningAtBoot is also true, the reboot is actually performed in reinstallMods - $runAgain - true signifies startup script needs to be run again - - The following useful variables become available as well: - $scriptDir - the full path name to the startup script - the script's code can use this to identify the location of files that need to - persist between reboots and through Venus OS updates - It must be set in the setup script beause it is needed before sourcing CommonResources - $scriptName - the basename of the setup script - $reinstallScriptsList - the file containing a list of scripts to be run at boot to reinstall packages - after a Venus software update - $installedFlag - the name of the install flag files including it's full path - User code may use these variables but should not change their value! - It must be set in the setup script beause it is needed before sourcing CommonResources - $venusVersion - the version of VenusOS derived from /opt/victronenergy/version - $fileSets - the standard location for the replacement files - equivalent to #scriptDir/FileSets - Version-dependent replacements are stored in version subdirectories - Version-INDEPENDENT replacements are stored in FileSets - $pkgFileSets - is the locaiton of version-dependent files for the current Venus version - equivalent to $fileSets/$venusVersion - $runningAtBoot - true if the script was called from reinstallMods (at boot time) - signifying this is to be an unattended (automatic) installation - CommonResoures sets this variable based on command line options - $setupOptionsDir - the location of any files that control installation - These options are maintained in a separate directory so reinsalling the package - does not remove them so that a reinstall can proceed without prompting again - $obsoleteVersion - if the package is obsolete, it can be prevented from installation - at a specified Venus OS version - - $packageGitHubUser - specifies the GitHub user name to be used to fetch updates - $packageGitHubBranch - specifies the branch to pull the update from - Both of these need to be specified in the setup script to enable updates from GitHub and USB/SD media - -The following functions update or restore Venus files to activate a package -they are intended to simplify common tasks, generally reducing many lines -to a single line that is easier to read/understand - -The "active" file is the one used by Venus applications -It is backed up to [activeFile].orig in the same directory -Then a "replacement" file is copied into place and becomes the active file -Backups allow the stock functionality to be restored when the package is uninstalled - -Replacement files are expected in the FileSets directory within the script's directory -If the replacement file content differs with VenusOS version, -subdirectories for each version hold the replacement files -If the replacment is independent of version, it can be placed in FileSets -The version subdirectories are checked first. - -The version sub-directories also contain the stock files with their name ending in .orig. -These are used to look for a match within previous versions when a new Venus version is detected. -A new Venus version with matching files to a previous version updates the file sets automatically. -If the new version has different file content, replacement file(s) will need to be created MANUALLY. -This is typically easy by inspecting previous active and .orig files and the new .orig file. -The file set for the new version is flagged as INCOMPLETE and -will preven installation until the file set is complete and the INCOMPLETE flag is removed manually. - -fileList contains a list of Venus files to be managed by this package. -Packages may also contain files that do not exist in the stock Venus image. -These are NOT included in fileList! - -obsoleteVersion is a file optionally contained in the package directory. -It indicates a Venus OS version at which the package is no longer compatible. -CommonResources prevents the package from being installed for the specified version and all those following it. - -Use full paths/name for all files to avoid problems when running the script from other locations -such as the boot code, and quote them in case the names contain spaces. - -Two flags are set by these routines in order for the setup script to detect changes - $thisFileUpdated is true of the venus file was modified by the operation - It can be tested following each update, copy or restore operation - to determine the success/failure of that one operation - $filesUpdates is true if ANY file is modified by any of these functions - It can be tested at the end of the setup script to know if ANY file - was modified to trigger restarting service or rebooting - -Use updateActiveFile to replace the active file with a replacement from the package - - updateActiveFile replacementFile activeFile - or - updateActiveFile activeFile - First backs up the active file - then copies the replacement version into the active location - If called with two parameters - the first is replacement the file (source) - the second is the active file (destination) - If called with only one parameter, it specifies the active file - the replacement file is selected from FileSets - - restoreActiveFile activeFile - Moves the backup copy to the active location - The first parameter is the name of the active file (the one to be restored to stock) - The file with the same name with .orig at the end is moved - to the active file - If the backup copy doesn't exist BUT the noOrig flag is set - the active copy is deleted to restore the system to stock - - A failure in updateActiveFile and copyToActiveFile set scriptAction to UNINSTALL. - The setup script MUST then remove the package - to prevent system instability from a partially installed package - -The following functions simplify the task of getting user input - - standardActionPrompt displays a menu of actions and asks the user to choose - It sets scriptAction accordingly and returns - It also handles displaying setup and package logs then asks for an action again - It also handles quitting with no action - the fuction EXITS without returning in this case - The basic action prompt includes install, reinstall, quit, display logs (2 choices) - A reinstall option is enabled if the optionsSet option exists - When reinstall is enabled, selecting install, returns a scriptAction of NONE - indicating additional prompting may be needed to complete the install - At the end of these prompts, the main script should set scriptAction to INSTALL - If reinstall is selected, the script action is set to INSTALL and the main script - should then skip additional prompts and allow options set previously to control the install - - yesNoPrompt "question" - Asks the user to answer yes or no to the question - Any details regarding the question should be output before calling yesNoPrompt - yesNoPrompt sets $yesResponse to true if the answer was yes and false if the answer was no - -LogHandler is a logging and log display mechanism. It is sourced by CommonResources and also by reinstallMods - Some executions of the setup scripts are during system boot - where console messages are likely to go unnoticed (if they are visible at all). - Boot-time scripts that output to the console are diverted to /var/log/boot,var/log/messages or dmesg, - but these logs retain messages only from the last boot. - A Setup Helper log is used to make messages from these setup acivities that are more persistent and easier to find. - The setup helper log file is /var/log/SetupHelper (or $setupLogFile) - In addition, some packages have their own log file and logging utilities here write to these logs as well - Finally, when run from the command line, the console (stdout) is also available and provides the most immediate - interface to the user. - A tai64n timestamp is added to messages written to both log files. - This timestamp can be converted to human readable form for display tai64nlocal - The script name is also written to logs - - logMessage "message" - writes "message" the above places - - displayLog logfile - displays the last 100 lines of the log file - $1 is the log file to be displayed. Either: - $setupLogFile or - $packageLogFile - The latter must be initialized in setup script code - If no package log file exists, $packageLogFile shoudl remain null "" - - -Update handler - SetupHelper checks for updates to packages from GitHub or USB/SD media. - The GitHub updates can be automatic. - When a package is installed, it addes the GitHub user and branch info to a file - used by the automatic and manual updates. - The defaultPackageList file is included in the SetupHelper package. - The default is copied to the active location at /data/setupOptions/SetupHelper/packageList - if it does not already exist. - The active file can then be edited to control the updates. - Package setup scripts should add lines to this file during installation. - This is handled in endScript if the packageGitHubUser and packageGitHubBranch are defined in the script - Some packages are included in defaultPackageList - - Normally, the current or latest branch is used to check for updates, but specifying a different branch - or a specific version (of the form v2.3) can also be specified. - - A development branch should be used during package development to prevent affecting others using auto update. - - The repo version is compared with the installed version. - - If a version is specified for the branch, the package will be brought to that version - regardless of what is currently installed. - - If any other branch name is used, an update will occur if the repo verison is numerically greater than the installed version - -PackageList format - The file consists of one line per package naming the package and specifying the GitHub user and branch, e.g., - - SetupHelper kwindrem current - - Blank lines or those beginning with # are ignored - A package can be manually added to this file, or updates disabled by adding a # at the beginning of the line. - -packageVersions file - packageVersions are maintained in a file and also placed in dbus Settings for display in - the Package Versions List menu - The reason for the duplicaiton is dbus access from unix shell scripts is very slow - - Whenever a package is installed, it compares its current version to the one in - the /data/packageVersions file. If there is a difference dbus Settings are updated - - Do NOT edit this file!!! - -Version numbers use the same syntax as Venus OS: - v.~ - v2.45 would replace v2.45~68 as test versions lead up to an eventual release are considered +These are described in detail later in the SetupHelperDescription document. + +Package Manager: + +The Package Manager includes a set of menus on the GX device menu system + that allows the user to view package versions, + control automatic package updates + and manually install, uninstall, add and remove packages. + + A python program runs in the backgrouns (as a service) to do the actual + work and to interface with the menus. + + Package Manager menu: + + The first line of this menu provides status for Package Manager, + indicating what it is currenly doing + + Automatic GitHub downloads controls if packages are automatically downloaded + from GitHub. This occurs if a newer version is available. + Modes: + Normal checks GitHub for a package once every 5 minutes + and waits 10 minutes after a download has occured before checking another + Fast checks GitHub for a package once every 5 seconds (10 seconds after a download), + then after one pass through all packages, the downloads are switched to Normal rate + Once checks GitHub for a package at the fast rate, but only once, then dowloads are turned off + Disable disables GitHub downloads + + Auto install packages: + Controls whether new versions of a package are automatically installed. + Some users may wish to have the system automatically download new updates, + but install them manually. + In this case, automatic GitHub downloads may be turned on and Auto install packages turned off + + Auto install packages also influences whether packages transferred from SD/USB media + are automatically installed or just transferred to local storage + + Active packages: + displays all active packages + + Version information is displayed for each package: + Git Hub shows the version found on GitHub + Stored shows the verison stored on the GX device + Installed shows the version actually installed and running + + Tappingn on one of the entries leads to the Package editor menu + + Inactive packages: + displays all INACTIVE packages + I.e., default packages not yet activated or manually removed + The first entry is always "new" and allows the operator to enter package name, GitHub user and branch/tag + from scratch + Additional lines (if any) are default packages (from the defaultPackageList file) + If a package is already added to the version list, it will not appear in the Add Package list + + Tapping on one of the entries leads to the Add Package menu + + Backup & Restore settings: + saves settings to the settingsBackup file on removable SD/USB media + restores from same + /data/SetupHelper/settingsList is a complete list of settings saved to settingsBackup + GuiMods + SetupHelper + ShutdownManager + SOME Victron stock settings in the following sections + Alarms + CGwacs + DigitalInputs + Generators + Gui + Pump + Relay + System + SystemSetup + Vrmlogger + Any logo files in /data/themes/overlay + The parameters must exist to be saved + The parameters must exist to be updated during a restore + + Note: Victron is working on a more compresenhive mechanism but is not working reliably yet + This part of PackageManager is temporary and will be removed when the Victron functionality is working + + + Package editor: + This menu facilitates: + manual install, uninstall, package add and package remove + changing GitHub access information for each package + + Normally, you would want to download the latest released version + but you may also wish to try out a beta version or revert to a previous one. + Once the GitHub branch is changed, PackageManager will update the GitHub version + and, if enabled, download this alternate version. + + Remove Package + Packages that are of no interest to you may be removed from Package Manager. + Removed packages will no longer appear in the version list or be accessible from the Package Editor menu. + But you can add the package back in manually. + + Add package menu: + Allows the package name, GitHub user and GitHub branch or tag to be entered. + + Pressing Proceed initiates the package add. + The package will be added to the package list (and appear in the Package versions menu) + only IF the name is unique + + Pressing Cancel returns to the default package list + + All three fields must be set appropriately or you'll see -- for the GitHub version + + + Package Manager does not allow removing packages unless they are uninstalled first. + + Package Manager DOES permit uninstalling SetupHelper, + however this will remove the Package Manager itself. + Once removed, the Blind Install mechanism will be needed again !! + + +USB/SD updates: + + When the GX device is not connected to the internet, a USB flash drive or microSD card provides an install/upgrade path. + + To use the USB update process + Navigate to the GitHub, repo, click on tags and select the appropirate branch or specific version tag. + Choose the .tar.gz download link. + (Do not download from the Code tab or download the .zip file. These won't work.) + Copy the archive file to a USB memory stick or microSD card. + Do NOT unpack the archive + Repeat this for all packages you wish to install. + (These can all be placed on the same media along with the SetupHelper venus-data.tgz file) + Insert the stick in the GX device. + If SetupHelper has not yet been installed, follow the Blind Install process above. + Once Package Manager is running, it will transfer and unpack the archive files + and update the package list with the new packages. + If Auto install packages is turned on, the packages will then be installed + + NOTE: no vesion checks are made for packages found on SD/USB media! + Package Manager is quite content to transfer and install an older version! + So make sure you have the latest version especially if your GX device does not have internet access. + +If you are insterested in the inner workings of Setup Manager and Package Manager, read: SetupHelperDescription (to be provided later) diff --git a/Screen Shot Active packages menu.png b/Screen Shot Active packages menu.png new file mode 100644 index 0000000000000000000000000000000000000000..4bd8bb34bf98f473b311ec481481ea639bfb837c GIT binary patch literal 70457 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

t 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 XlTFN3!>}m400000NkvXXu0mjfrbTo7 literal 0 HcmV?d00001 diff --git a/Screen Shot Add package menu.png b/Screen Shot Add package menu.png new file mode 100644 index 0000000000000000000000000000000000000000..5b97a504108f91aa16f1fac5d783fa7fa50254bc GIT binary patch literal 33976 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 z%0A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

ADu;}RQ=*~F zO1gb0{Xs{~IL_K`m}J94{`5KH&+>r+ThI~pZ+?C6N1`+#TdR~c$FqaIU8q^%LaGuO zPf5vxmpM+(%g#uCF{8#QSLzAqXT(dL&7)#e_x#JpK(R0AXm+t97)-Nh1*uwPVT8IP z?(1$z(Ios*`W|~-f^(w6eMlXzB4uh;?M-#EN!c#h8}l`8!(K64$;sbF;9Y4=E1F++ z!|q0@{_Kp6Y3DOp{JQE>jAG`}l|f5zI185f-kRlzvDNGvcC09d{h=Im@7P%VSE-9=Y<8-J!+MS{31XlbRQC+XGlHfpXey9*Nb9m`UTjCLES)!KCTTp~trjK$6tp)QO#N0!t9!j^B^ z;9`pIQ`a9v3~{6{6UdNxM;{F%62Gd4xybFh{Z_h+4m+-L*L3^UJo(byM%qN+@H#n0 z0e3ObhbdV3W0b(vqWsyUD@a1^T75W1R2Tt;kgfR>9{}x?d@)FyQEQu;G?L&#n6WCy zV$FT3xKZ_gSVuz}bek}%a>VQ+~pvPIKbM}d9)Z@=l>e1W)NP&#BiCS-^x)1#2%F2pt z)gT#HqTj1}CPI*_>jfNX z;tV+7tnUJam?mGqgJ3<7AsMUq1nY~7*RRu3BiMYFixRWbt*|*n_qou!wD{nlKHTWY zy`$j3XqZyyM9Sd8b1bi}p03;`-`SVUG?xCH=SbAY2}O@Bi&%7|ALw9Y%BYngh{n%2 z=_bcHCaf%7H^cGhaGtAh@947bn28M4x-PMYrG7c?P4ZJ@teiMLf$7d#pj66!wvUhI zzCWU7Z4j4Zv)$mSPsMYy8hUW8{l14J)s2Ia@!9n&OZc(e*mvD(ZaZBY;Xf~Hh}XD` zX3LndUo(>pS65P1pFypPdX*r1&_WNYWUSj5=!48k z`N&GKGmw+t=Li#iPESJ4eg8UWKH!$oG0v&k15wpfe@bNd(u)es;VlA zI%eRg9q^imDsEbSZUJUW#(dz^vlW^@6@G5q|IzsLXA7U*NT}Q~$CW@R1<|EdJTM#5 zNctSY@N2d((B4z ztHZ$X?X!usGLBUy{Rk&BG273G?2!xo{55M8*G6DDncD6BBH&Gl_*;Uh(G}@kmeB<) z;T-db5y2Q=N88v0bTn}?1x6U2lvVVZM%O)5tEUU=lv^kYbp?Z2>>j+}X&Gtlx@>OS zg+|Hzepz^Km!OP%)Z5)w_<5%9ss18gLePW%J0c&ZR(pAhkA_FN>z7vY+7AzuNlV$< z)Hu)~Iyd&}u_}#HeAtU!f_5hepJJKJef5Wowks?8#4{WU7=vN7l#bGOSw){JY8zL| zPaZkKs|yaA#zJhBJL%eb%JTf+6OQda_N)OA-VJBi@xXepH!?{Ur1*=Ywu7&!w-sW= z=++0Of`_S^HQA{mq%2*9Lw9@A7Qsr^;kKCrv)N3nx7l^!@+ zyWy;VqS!wxo|G4}=Tz^lQ5yi_n+vMN)T90AEz$lILE76OTu+xvdgRP56#d02FJ??@ zUR&6GHn`~?`L#y&T~5s&^#xURKKTqsvoNupKcAZz~Z5>!*{b|h^&c3@7%Ij5dWpGjgx^RT<``TA5BVmlyz1+ zG!VUU;X`Ez-Q_}Q$4kS1XgDe%ID(@?do$-h)cyKBuphS#IDvl)e55=OnA@8kj=<&l fOVa~B;1wm-^|L$urMvjs?<31fevqgZGYtHHN~u@t literal 0 HcmV?d00001 diff --git a/Screen Shot Inactive packages menu.png b/Screen Shot Inactive packages menu.png new file mode 100644 index 0000000000000000000000000000000000000000..b7fb8badda7bfc76229fe7249bf05ffdad258696 GIT binary patch literal 50236 zcmZU(19T?O(l{LBNwTq%jcwc5*tR#eZQC}V*x5MQ*fuw|t^fY+d+&YU^L(|pE3JbHR=x=0ZX&icC>Bk7~ zf&htx?Vm{Qc}9Dm^oyJm2qRIrHPJ;4e8L-B@o0tt=93RZ76o^&aic6jV`} zb}~|BNGj#EzBHXAC$>@|PVqFvyJgO=hLPJg(n+-bu2duSJ36<`UfF^)dcxTI%OAq+ zleU1dH5OC93iScCniROApp<5((z~N5&3S&)o3Rad?=OFgEUc0)(aXwcve9sbwL6x; zWKT`GWXEc})$DmIlH_T|7*rIdK|&mu0I+aS#OnaGVt?9r(0zZ<_W+m?e~6bs&=J?f zyR@<4sJrn*+N4MbVXmN%Y(f4Yy2G_8BhD2rP7p@lT#D8a+}8oFkYn{SmsL8DHgsaC zzNT1Xc)@vN5c8{2m!VpU>9G^J8sSWq3XwQJLlES0Fob-B`-IjI$U4w(y^!u81V|vl zf}Bc{U>Xo@5_}mFWYWEWIt(;_;yTE45K{vJPLOXw#yb$^AZ5K=_OLqOIr-2V;64UO zywJaQ@UcP&VW1TWaf%VJ1xw@E_Cc747$`viLBs_Rl-MYOMiQXa{!2n)3QQ_c7h%AB zf&%hmJZH$$z)Qi88KirhSBN45<|@#$KC^47 zu<5?#o$qakzTe{VK_Y_-i{KU6DapqW(PO1VOA3q2Rm+7{V1Zz&L6+jp1-ALG3JeMa zvl^@jlY;B{d^3H=Sge>iF?u0e;q)Q|;>$%0`F8nlv%imPu>j(j#xV}Vbxb!{pk}b8 zAj*MU!4PAF`!(bZpTZIk|g3<@JotniBOZ_Q|OXE zB=IL!n9wv3a79!R+7YWKYLB>$*ioWIVh@HTN+c+=D*`Exs1T_LRLrScsIAd+$1GDE zQ#?~_Q__GCs>-UVr^Jgoiztgpz-3kaa^!`Hh4%$c%gTkZ#moiUikR~Gg^R`Ci!6&A zKmx^{!q4Q$qD)2ba$ZaR2apF|7yr;g?D=ZwIziP5rHaK4GDRZB z8cD#DV(iLaDvdgKO=bl6VjM+{C)oFs_o(-JuVvVtEE+7&EbJ5I8MAzQT}v`_1a#eM z1!~o5aZ407p|1X}?T=~~P#4hL=J+%@FWl13kEc2d9!$!{rNc6p6a5(!W?PFPF4fK? zE@@}qXKa@7XXlsU=8}#t=6GtKg!5{yitYhBMn`Z5aeJ2q%)e2Hc^^Wt--8s@Awm`b)7!VefB#Q+-_Ex#GEa(;vA$dhoR-wO3uQod{iATj*PH-qAkp{9)d?b+nom zRYg^4-LBnA+uYkvzL&l>?6RkTj6^=Emg^F!gwU?n%6jp#M#8Q~99ckHRgnH*vezZcJn3qHv2C)fm~x>PR1g zBLa22WlRAcU(@$yh#Uw-VPj%?CiWYJKO=$ukUSXh|T=Xvzw?E}L%K}*v`{h=1m?s|gF8BG5Uanj2LZ5TrjXsl9rWgJ!l!3|j zvG>K#XloFA6WyYwMCg@3mR(4D<$cf9%ivE%PE*W^n3kEcMo}I-`2(lSnw=9o41#uoO@>|d7hXgy_go6*22)J^>=C{ zZS-ysq!y()rM1>D>eRc6eMv2ieN^VFQdMfHwRXv2iOI6SI{d^#baz}UDf+;w;tPxZM$0AZ`4`+UKZBdT_o-(Oe~zn{e@fW z`}0fp#LYNMiNnR(b+ywC&Na$i`bzDpIxK22$|(xEWpY!kC#Sy4{%svU%1wvLfqJzy zsZF`Qv6i)}$sujDhOUD@4R+jf%xB!n?d)=^?(O6IR_ud05i)Xa~rtL2!Jvxf8Ye0ZP0OFlT)oNts@^DgN`zT?c?CFDWjqv3TI%1}h# zSlC!ySwh*W@rTpqbc=v`E;FyHuh!lDAE%g>>y!(4oegr-hT3Qmrh_O^$um*+bU zhKZgT2d4W!2hss)Q?2!DQ+kh`-lvgoDW#PYl?cl^HH)o0t;-*O-lcWJq?I<-$Zd%5Lx?E3A^$v#e6@!fg0dm4M%ZA-N;x@Eb&o#aIG)LtHL;CHni@*n!{ zf;U5xA-WK#y<5Im+2l!YpZI=#KK@XQyF{>u&ix{PySOv>G#=Yaq=1qK=5q7$v7vD; zyjb@&_8lc26)^yO)xUh6q@&UVK6dYZyxG5B@6eo7)-U63oA*?BpWU~(kQ(jpc1*Yx zUBL;M`*FS}ywqPPZ+1pAYom;{uhSm zKI1C7Am<0&L zUkvnb!};4lK)@42L7@NkD1V!1KG=V_pnLh?|HV=N5foAuk(B(~D;qnSn%X*<+c`gX zq3irLwPc~9;jAGm!)1P9C<-hVFE>P9*}(1Dv1@2#=iEB`f4Upj<4g(WCBg21f|5fGvhsv#B z;cjZJDQaQ!H$8uS@H2C;@%~Hx|Ht`XkN-zg<9{_-Ia&U%=KtaRe>GK|OdUn+Z2r1* z=KtT3`M2`_W&T@{m*Jnt|4%0VC(Zw&{>?K#fS2LFW5y3~JM9z!0TBd|6cti&2R+Y$ z^iLgp{6e&@>#(k?bEeyjkqCpqGB9w{@q28p@w|AgRPQ?N((BNcQ4khHvMBE8Fhp&6 z`^cNt+d~;LS)vy!y;gi>NxsegJ>cFf##=1Qv|cSQYoTf?;m6o6zaFU zxg_n&y8rQD@2HU9008&%6M%(*nd$lLw-Xh%)vFl`!y6r&O5ND#OxiPzo7Ki+F+5lQ z)c^qvEx8KxO*)wPg+7l3V1_u74frqoRbM2;173!5O z5RmE#=Q?qu-#H1_-OiI2&p0G>yt7SAO{HC3W5*(SD~{*>q{HrwSRy+f(Q%B8G=`1h zUilH~$9|`{iGY?r?%TsT`cFEnDR+*JDEKzU>qs)l z)8!y@oIa5}1_zCI`w6aQ9lzsgM7p-eM+4WVmW$f3swu&>T5EK(b(4~>-8FG+ZN`E+ zIQMP3vcc<$fBPu=ep{q6bmZk{9#IhVV~P!r+xWRYCZ4(>UQOV$Yt9O|S044aT2?J~zAfI?;-FLk#Cg!ysyk&l z&l&h{Ev-1dFAe>spCRy*!1_J5dz8c7lIFMJndEG_JjD3rkW@OBMc_@_@pPUdv#3U` z1X>6?`>g^4nP?aKTV}5@2(tyOrHI$K%1Ei}q?QzK94YB{M!2;iMT8lYD0W^QI_+lu zneV^Y70)CGpDt11G0R=l)F+v%EXyH97>^D4&7;i&%*~mAznCEcwzETe`8!})N2^rl(U0aY~HHp$X zG7e7RlP4`bD0d+f3-SrL`S5eGD0R`!ck{g51dF5dt_PpC@9p?9Qc6P!nSMc^(q8>8 zD7W3eJh&Pd$mQ1Yjl$*InX^nxNw-F|#VE*~Yk}nwvHiC9>XF@6yPv?)Iy|ZPA8$E7 z$6V4z}^KQ4gT3;wXt#3FJ1MNc3y-5Nm*%*(D7^drFyjQ-{~3ac;$0r?93C2 zjO*I|lr_~Tl|;rS+21j}sy@zlkIl8rP>hDbk|A-RC5G22RM#ZNPNEr~&h+SQzB?ew zTHux=ehh559~H^Rc-XGjuhX(#wS_@JfBSr#+SOu6MUqMKrH#mi2}#Tyzrzmly*G`) z8NzgIMl4|3o8-yK5P(aiO+)?(p9B?I?sByxW;UHwdqJCPHaL4*%c)o7S*+u762jc3 zPoUXu+3bBg$kAZ>_Dz`?Xwma`j;VQ4S#LIYuv7q@VECbXRy%DvCUl!L*ljn6aTgtZ zcl~Omuavz;Oi6x>>^*Ihe0l8YYIYhOT+Lt}dS~9ogh(|84~U|N%kEDQ1zC5_QgoBC zHvQeK*!(UG3G?}!G|%WUkH`jI{Q8WPK1im|S#al8?tXTSCN=l_txnQUQWe>B&ze=n zi@3%1a)iz7vScl}^l7Eh)2(%jY2HPrQqGZz{5w=*(*eln_xj)lm{eylhw40T>h5~b z%(*+dZEq&0fTO3pKL`(D3W|=Ht^D!i9bTe|N^(7r=a+!U|EA=6xn^wURdA#-lGi)5 ztnUyZO5o9tsovn^d=O>1^3}Xe`x+M@B){X?1W;lZ_@A0iID7`@99eW51&w z)g%Urhfo1$p_1fxSWeAyvwAtj9M+ej*$N0X|hdzI1m8|VHmn`8;0U%VzY_N`E4xCfRMW|ItH}j1tjT)}#f>r^oA9{M_ zl1)5fH&#h^F(<0YQ7)Uz>(ix$Fr&hUR0X@C+sLz|vdQQzI{Eu)MIqB4c%P@o*UK>o z0~0|lJDNr@tQU;qbun;Q23(JBs1SFPZY`(YWz0Mtop$O0^wJOEUP#_sVa07tb> z*A#?z*`v)tKk`q>J2TnlE$57C1?_q97#Tu3-DYwA*FRRHOWiwNQ#?-P&I|lOH~H7r zs^a$_!IBM*lia8e3IL6hmN z59X7jliNyW-61u_5ML~=Kh`IkMOm;n)MH54PcsgIv0eI@bj|!iE8p;W6+9`GMcNeq zprR(f_|XNuKBefDIkSmXDF(gXu6($yVwL0}!Gpg&qz-v{Uj`0FYFw!J9Wp*xxiXQR zg{W^alEd26bl-znY!?2~T)y&t_lUTMc<6B6|24?(cGHleB!Zrkz#W@@#paA>!o=@f z6Zd5Sj2$jXtON`6FY&P?qStPgqF3OCKVO$Vq|;Eb4QA@o)OC5E)@{?^|G331m{zQM z%l3@SuHGw%$^9Wwm|PIf`1AK-I99$BesYL!ZgHS(P4`_>28$}JRPq^pj|P3$4zFfS zJd5x`E7E>Q-b;^NS0$h=Plxvw4|S+}*}W$W_(vdLo}mH-sodK>j4)5FR=3v4wswm} z1ASeK*+ftvgWEV2c27bzo#5+;&-HC$wP!3&*^fQMVllkGD0(bkX>Z*D8ttjo%u)w)vY!-c^*Xfm*svnq79CPYIf? zvdO6)mN}P7uC)h)c&3oNCIx(>4vzpk?zW#g-~TJ=)$okKiscYm_V zUy7`}zPwcS!lu+ED>RNF`!iMzA>hKM-qgaSNyzAA1A6u5fF4fRmBI{~)i79W@tQ8^ z5czlzS{wEUreoKy=_Q>;4_Xx^pPE>9Bq1Sreg`h7hhi?w2@iZ|0LzMp-~0ZKyxjiR zXRhY!TG)y;ou8M(OWp0<=1iEbm#fC$on69wHmdgE)mJOc+Uu#b96Bz)qB)(yHBGcz zubPZIy<|;2JD!HnSV0Y!6hkJuTDJ>j+5(vFO@Ym4;1hXy)fnftK63tYO0NY)mRB(< z>s@<&!!Fj)XHN7<-F#l@Ax&B#7^p2C&Zw|)FpcI4mv`zhPha=#jVet2k!x)(m0H%j zr91i60@n+T4L(QoL6df!j{qTw36&`5afG4md|N(cVF1p>UC85}JPDM+MX2l&gR064 zU4@?z)Zg_odTc^tWKFQp(V*Vp65e~A!+pePz|}90)rrU)c(*=Ze8=y@|nf`ef(!$dD+{H!2vXn0YAYs@Y>3lv8pv5b=XFde&2;{eFheEmIt1f%CNEip}vg40R|B0$HvJ%y@EP zC-EqSspMGD^Q^=V8@zWo0uiid47#YB*#@xy84t}G?0gjZs{VMuKE$g?H9nWWt_Ok= zJe%_X)8nBFk(7__H=$|zpX8Iq2d{F#%6Il(`p?^04bs?nS{A#BKw95 z^8U&gCeC1G1oU37r>i6n;DxL8vJ`T>ZD?@k+X*JK)s%NvcQ^0dwZI~`9nEj&>l)>N zUAS=!UyPo5XMOKIe6IXJxbZizW~?c0pE~cyMe{|@J=2BbD>7jpPg(~Mxr^26tc}}N z8oD~Nb_eig1D5@b#xQK1&&70y+X%~D4Q)Y1%~J+|(vSq`pXy4C`wzD*YP!XSoVzn4 zkAsURYbwa3G{OWBbZQym4bTr&r|y?EniB0aIi(+0R%>;+P}WV%1BMIfSEdUb+gZJz z%SDL5d>96Iabr^q4GqDn`*j&~c8!KKszD`u(6+Vf4#$^J_|ZQR$HnDU|RuTM)= z$53jcnc3v}Mc}?iZHZ5Bm!0o(L>Jr={E@zL-p%*sZ}ZNy9Lfja=_tFbp6_vyD&D32 zb&;J9w>>hN0#?_Ang!wg-79U|UGyUZ(0M+F0TzdG%H>{ywYlu#mQ))u`uXQONx_<* zygsR&?}r_(@CTq@)RZEo7f((P_$?PJWQaflq~hQ=q?&HX7350iU_jX6>5uaYW8B>> z^@Q-XQ~iy0skEZ9@i-uaztpDBIKmjm z*_geUJNt=~;a2oZ5Fl;u6~yKS@tTDbv(Kq8?E*M+GfQMj9~?D>U*O{wVXYkX% zV=&|hTNn)NxuRR!%xtt~odjjb{DI_0G~-#gBt9x8gA)dAL%`KK*3*YQU?)$j#j=`q z0aRkOL*A!->>asKLl|b~o6UOpqrgIyA}zzxfzVzrH7IvoziJyRivW7ROQGDQ&zlka zRHX7qhHyTBUya8f<8R` zK;R%Xuqx2-d1fBnk!z4u)|*HJ(#3L-RhD0#?RVl>_6wZJ_|nB8G+r&`nAp*`H14r? z;(p-T{&`LR_51Em?EBaw3YECuGX?S=?aib!1T>_*>0h+Xj2sraXjdH^mI~9pUPR2k zv^t%_dfpcZAs%itE_`OH565eR>7)wS0Ht(*lX-L=7F>sHrP^r+JiCPDYxJ)*c_y>j zy}g=g29M_q~C{7d{+}t4=f~M zy1koNWj;vDP}AS_L+Z~5$Q+}o3g0^0kk?dw z^|C2wBgc`);Nlw7N?{p8x-JnmM@Be-7ihW>TQ#| zaopR*hW8OqnYq`%Y$7}#Q}Iel7`VE&>+>_-(1uVW@gOO2;nuW|sh{yFx4Yan$mudU z8o91-aqTL18|TreubSVR9X1QP>WBkZG8VbZ6pW;4{;m?R8y+u{t+LV=K2n$nd$yFV zdTuFN1Xo!Y`#cfSUiM<#agSN$(JR`wyqeq;cg`?-eotwsbZcYAPg|xkI~1mK(y6rz z27!#f_J(>2WKR7Rs}qHazF6X~b={+;v(0j?X8r2|zdF@FJ{ih~f~k}bgwdnvv{{o_ zpb?ccN-BgZSQdT?_eSuqSpK<8-e+x8c;WY(Wwwzc3$bs(fH#Z9RKLZ%Kf|@!YgF}D zM2eTdd*^oBbPi%##KzH;w1*0i!pwGR(JQf2;!@z9pz(2QQe7gxwKi7soM^qqtD?iQ znlFth&d?H|74e@nH05)g-nJ=>#uk{(uQ-$~RE6c72MYEPQbwdI3ZP~p2I!?Mpivvd z-1ikc3jVBey`m6GlU0}=n#`irfa!Z2nV%l#`uQ!%_4U2fQnA&tz?Z!_SJUh!6>1Tk zUgH8{VRm{K0Q&ZtA9<>u92g4_NMrZyoFHiT8jkDE-9HVg8@tAz-!4fLX{v`q+$=)Z z^fOMW{u>Q7};S z_?|_JxU3Q6P1XC-{L$PJfgr2VYFw%+dbH7|5_W1|P^ZcEC;S6WX$7**=pjhg2Xv zC7@2v{j-gld~uR`fGs33r#y0~hh-{VMxDAy#Ye{i^vQ7ti1DLVFEL{;^= z^IE`(M`K-3$l;Mbq`!!|!lm03>nrKYnMKR?9%I<%HvPB7b|CBS`9kS;yde??}KbckBNoF zw9^rsqJQjAE699IjPy)?jRSC{N_qRjB8;it22hPG;ZJ5ibOLTVI;KjUJ$G9znVu>a zzH#o26@0t^6JjyL--!O50SKa6vtBp&t_eXx$Y>7U$4kTN4pv%kwrO@}RkZkbPZkM9 zA=?Brz?;kzT{kGrog1q-<@q%1H-X#2VXw=RMS-F~EfwnW#0kN*1Vy^?do3|Ne93wZ z>++60UX#soqq-YwbQ37irqGpdTPv&%pa*ZJ+lmN9G8P6E$#HwkxV;y78dd)KjDxgi zvs+uh(u>yefH)S+qM^sL$h5Lm>kjn4mQgE>AUNSIfnLrow4pdnmy{VTTNk%NOr40s ziDwb7rdeuJTXOejug`1BK zO|vXU;zPbdLoF1$XPD8{9Ey9=Y>Lo;Af62P!P9E>(;QyN=Xs7->ZnjE_7OZsNp={+ z7-?;WV%_zeaht_g>HSJswLFmX{&;SXcAt*NEge!*B?saUayFE*_eYmJ8u?aD0uVD3 zEV;-<`-A7sXC1;88H?3;3QzYa8+eI^V6b5B)($zyM34#3vCZ$xH6-g`8Z}jtQpsVi z7rfbNglA{Zm1lH z@Y@A}qn=dT)s~|P4!^V$J%7_dK#p0T;p26h$Bv~q2Ig?O`$a8fn~wb|0-H-d%^$^W z4yf6*@vwv1pueYn_z4WW#_Hnm5ozK(hVhPiK} zJs1hDUmA%brzY{a4N1EXu}duodWFR~Y>fL*&h>dgkLfq{vEg^3kp`!JWuq-wDbK{< zXJH+AyJ}m+(w#pJh0Mff)oQZN5XYNJh?*Ao5zc?PT3rdKLyMWHDgGR(O@WP*!*Rb2`7+->wgZ*Z^JKYfbY}X5h{4&{WYq8`+>XUnM>_fCJSgRJ>3FA# zD#T-bZ9!d?2=5861Ul&iyFyjHFz;Wotmi(oHiW|$A2_O9MwKL2A8z#C^SqGjy~B@? z8J=V|8#A#TdKI?=Q`ko#^SPQFKTgl7ANmc;Ac;~qqW5Ta>Fz*Supb`&wF5J$qYaO%H}l=h$+{rx{^j(e>ut~3t|IgvO`pm z=h%&wo7R4aDL~f*5(Pnx;B)BLCb{?zP{HF>+k5E7%z6KLNlQi^SZ|07yZR-Pmt_p9 zyO?}}B0A{U?1D3>r$SUQq|}Tw&1W3mq^1#F!YfK&1cA2L10j)O`u@xhw{Q^U#+Il- zWTk_kVN$7zv|C9--5YFd)oPtO-}tI6_y@YS+q%yc@vG#3kKnm zS1dyTUDsA+dFP@+V49U|{^@1w>SpYRJ)1@z@2CH{vRFk0lrt!*SCElfjb_noyY#*@ zg0B%aoKV2?mX#G)R@m2eV}pibF}|h69}c^Xy6)(geV?Gh0I5Az^Rn{(kLOnChpXyQ z8Rrmxz~$-~BkYRM2{jyFLT{aqM}@ z&HW`%o??Us&3Nle3s44PF!nnCAy(iwH> zJeCuvLaG}gxZxmWjCMWVUkGoXn~10fd@-i}9N8t}$QPnF0`7!jvq^&}rPBG~9DN{0 zv^HA}i#q%p6StFatfLa~fG>C#@cKybWeLs5?V>pT_h3jR?;Bmsn&}>KSi~f)3L!yr z=T1Dumf#!kr}HID+NeR5N9f#V^*@O9a%yLZ$3i=1S?tlRcf(BrdsRR zNAW_2jEsy`N62V&Fk!n*g>N>e`CBC{-H=HoBc! zwJ>-VxTlziYra-vydn=lL z$bhz%Wxa}xL#SpGZ(c=o1~c9ynK7IA``6&YR+}DT|F;RL0-Q9Z+_d}>2;jY7k`3z{ zH-m1y)_RMm8YP;h_J^uQy66|ZR=do{`5U|>NV~9q;|8b@oUEi;qc-@KTJ3tiy-}g& zL_RX@@>wB2Lpph%Wm5A+Ri9qP0|hyL(+4=s|3REX zY^OslBdj%XeQ@mV$IG{tec7;qD?r_e?E~abaMUx%3Y;u|GCt+E&}enhRf=Oyuo&2H zbN-^Hot0>Y9w!eRbaH{sC1U7Rh*gDa&6c?BLiv+eF;uy{ly2O+#Y{i0zZmW2J^DaI#L%N-+btr$yVxzr%)_CpD4 zX7_xPIU67E?kLj4<ZJW}?FENJ0Z zEhCBi{cN&~?^^qoEIU(|wRjLo*6I2|t~@4GQqy@)?Bs9*pDSMlT1n?#7C;?8O5P&4 z9mMplr?$lDG*{b}bs&teYr5xU>e=4n!}a3;Q>vtDLPfp`5Y+vff#%|MI|sVW*kg1R z2Y=+XuDu-|dg$enLVpG4ckn=DQdXt`1_UIiymIhsEtQq(QO3Bk++=!~s?_P3uD1FqR056#DVC`a@paewE z^%4PT$e|E+Odux$YcN$1I1re&T;!D0pf%OFr|$g17Utj3G+WNfWE~`USlSp%dO1JMMocqn`d41=G|nvn6})GZ7(0r$GLqyt!t#Gt~JKNg)E1$7!~&3H&`R zDR_zOT7LO7eGeSir+Mv^&n0%M+z+70s~;C+i`rZ4esJ$0NSI#nQr_*+;M((>izc(2 z)UEO@dJ@1_t;#FE?z(&$l>~*lOFXD_o*Bl~3PjiXKK6H4yx2S=N_TBZ4Y7ETpX7J2 z<|1sA^|#UlKTTb5XYbVgJ| zaA6jooK&Ar+I90u!K|xGBKUjjAlz?X7rE{QAh&u*bP8gQh&?a0P6GHU};CT)nk6$>nd18akg{YUHPWX4C!Ct9~41sW`V3lnN-1x z=ABx#2^mX9MsB=Xd6E|Ph`A{K3NFw=x2psN8LTbWUR1v9FpLK&M-9MZlhIAbNxv}F zlvjP`e|p<50_lf4?&ie+i+|3R3HcmRp482upqRJ%<>r9KX+f#*QtW~HMEswkv{o&O5%P%3m&DG)}V!OvX0>Nx!Mz)3{4Ba0*9sbV*Jcg#$t z+oP*_SE%iZbQK}+yu5^Og+as&ThE^zM>CuU7V`EweVVpCB;R}EC;2q6t(Y%}1-(dq zkw^1S1QaNcw+$>VcX9AH=850fISC!Y^cBKwQ;{e&EhG~=?V=XU*EAu^8|-Cklq4aY z$R-yjp3d)0V5_tyZ;6u}$kfknkL6fDg;b+_2Cb`EOusN-YnPSYfx&1V_%>tXqbOen zlc+xB`zHHGhzu3BSIw7p$Y=)mZI7CA;-CDTr6v})8DneH_aZHG9H!f5u(j(t)GyE) zU$2l*+G6)%R0?ZPDIY3zmbwedt38pv_Z$)VQIr{@H|)NJTG>hinta6%CS?g)O6W}@ z6(o|#l_$mn0-|?^XPiz4EB{1F&_S&$`%j?5fnbciE6t6jPyILK(H~&RRAqzGo3=lt zbEZT{NgVP9YM#Z2ahhAN-qPe!J^7{*b}XAo_j-LbZw8CzK1!D%OLMYPh`cc6RmgK_ zXUlYxws}okx}$MGb1^zZTqi%ZGIJanA(qYK{o3P0vfEsKS$`cUpSXWWx6iA6`i^Ut z`jGm93e8!E6I*LBz~forA70SCz;7nmIe0-r*vten?|M}~hqRrbiT&| z)~iZC$ZCNFvf#kuN!tEF>!rUZKdEWkWugHT!pClKeHwDPjp1+IC+yxI%Dq?~!22MY z#9E`Ck=kT(DBlmM7_~A>E9wlf%{xQEh$8VIOUpQ?eR z9Cz0-&<4rh$7w?clSnh5_f&S4THBeGR|ch8xmnY-IHXoOX8DC)qb;e=ec+bZ)LQIr z${BCUK}P3wv%g)gQl8XnFFJlp3lF_e@jw2)WVuRaJNw}|?@~E<9E*adIZXSMoQ{uz zghEu|#V(<8rso-VX|Dn*Jrv;6;P3}`?y*0Nv`G$CRp!0=YYsUO2oD)5CN=pjNM*Nz z7`lZv_4(nBw9^7pwevK+Zeo1)lMzxPqO6}i&X@e4;*?vHDgsz_k#Zes6VpIdzmBd8 z%LWN!#mi+@NqVJ4Vfdg`&S+=dp9=R;2_Zdfm0KpfdOQD?n3O_38Ma9|x~2}@LZ>=N zr!=gk4GSN$@Z(5os1NIGZ|C%(DhHHkm%8q3m1R?)M0tm!x%u8|6a8P4HUSJ4H%&r9 z1sqmA6j}#%9|j&ztM=E2T+}AjdYO;)wVA7U_s*nTtn#>|TOo63m9{z1KxVB=FY(^) zurNS=fHQ>T4nk}V7fpY2b^-4dvm~Na*J><6CE-x);U0o8`Uz0WT`NMVU zRXC*i()Ykv>}|=b!EbtUp_;?ZE*02}BW-?RF2a0l6|AZ8p|+OdK`mo!ax|ext$~WR zDZwU`S>4p!tp>K6D6!hpm0$bo8)yWfDZF*=ts*G)6GI*~bZfOqI97I-)1zBr8P^Jj z_g4d{wT_7c%vO{Iw6Q!J`y%YE;Yl!^bak!K@^r$5Q#TVDIf+A0)ypZ>sGM9fryD?g^#64wXL}s#0SC(@(7HTrpHKvFgP9aILxgCkgcURe-=5 z|0Dp?XmOx6i$d|@Ra)bMe2nm^0zH$~3o}}kABVCxUxPkjHs>6_ZP`0!tj_S!gG&o@ zsm9U#3%IM)ddAp1lPReYq}HHrc#A_P&*tYW2?1g$C%s~NfuPpbl-Yus=kngpl~{36 zQFhH8onw{gTCHAL!!FpudhS)xt(@GqLAL1EkPEIhr9cLZtT7kbnML%%h)&zjv63O= z5O{M%t)k?CSX7O%r2SjBSi9&@_YAF;ki2hiNc7;c z^Z}YGVFgaLX0xqOFp5&sB*QkH)Lz>a1*m7n|Ne>BXp{-N{@!|xaN0NgmQ`}5UIK)m zRz`%cq$kpRASIzXth;;h6=M$#D>!180gmX!uSC8V2GF|W4f?qE|V)eOeT4y`gB?d{Wu>^QQ#c11@-g5w^OC z5WJY8QU582I``#l_g1kt^CVIN(!=&4bQij_>?bC=Kc)QYDcqE5E^LEP{P*scz;3mW zFOFjC9G?q26b()Cf%$ZJdX$wviG$P|J`bDimROa3%;z9yRH}*PPvtHe$~2jrSC| zmA&(n07&E7LN|Nt?H(mHGav;!yIKuylFm7ulYXZRujOi}m5GTn!~l8m_uNwY*I7G8Rh z6Pa|i*83QY25mNNvpG0W9P9Vc9Bk$G8U&SuN{d!|zH;9fCl%$$DEE(gXTueUlWY7l za%o7*%>H@Rhc)}kJ$obs0@t}q1T)#)GkEnp7eRBjsEt9-{;+TY+!ZuV^fMldBg>G^ zJr(3~tIuO8?xTz=BFmeO!jb&`UWjHg3&PY-g*6T(B6amZpUkm|?m9+~Zw(T#U+xOdxWJGE`MsXNuwnoe!o_SCj*yPev$ zZQHi3H}kybch*_?D_O}(vcI_ZzOK)8?+0|CW84Jdeh1L3t`>soruOJPVwc-kNO!D> zp4#zH)r_s`g`glPyz8(P@M(*a0Y!q&D|$hrhZ5BxHoFWaIUe^^?IS)7e!^HE=qUxc z0cffw{erGoD!(r2^LnF~3$vV6dw#}*v9<7wVgLB1hqwPGL<9y-_x{%R!5C}Qu0X% zyI&jf#(EJ`y|_raGP1s9%Z^@1$uNfEMh|?&YP1BC02Y+LV^ky>5Asl)guA7iwM}H@ zsfCNzIIt8@3KKl?#Ag8&5@bS{UweB{v%=?<|5kq?;4dn1mk(eCGNfA4x9FOEKH=%%F$DAVig zV#)I;B)c+fB~#Wp8;)feE_x(uj?zX*ltS_;=!&uimTQROPe2*I$RTcka3^ICYm?=9 zNrY-W#zUsk#B}HFr!RJCR?fE_G;#f{D4)c$28kdZG#T``Oi|nx$-) zT#QaotF$n**_NBF2!B7^WN}Nzp@5hm8#RJP2|`+KM!8Y}4LSTMWD6=bJaQXf?5n;h zSPK@HTy(BpA%W|VnWo;W_pqkwKn_^zW#RbHTWosz{j?;P116ti@-Zrnlx_H-tp;Hg zlg3|R@hmn?T!IS+CSOz=V9x09g5FQ5CW7z31iFz^g&S}%wKrQz8*dbGMoJ}^`Hw+gX9;F&#( zz8!@D(`x*@5WOs-i)#IpTc)y&RK&imooNi}$9vUz$&ZIR+n;nxXi$nZYK3s>%BcZ% zW%ie~qP&9JfM4Sad`8Vy2g37sj1D36kwl?CU9IL2`%7aGs*iaB8k=mjgf`R)w4dr6 z@HGSQDO~x>?mqRrAbTIR{*wTH`3jA%&g|{y^Y2vBy}#|d8$A6kl*^IqU3P8>Pzo{f zFwIPR0_`62Z6za-#Vk)IlP@#vciib!w)*dc`~M{eMMW4q)NDIp@+@~75zznh@HG$s zM)aZ~(6#XYcOgW9iTwAPpUb84|NB1QA1@Kn1OA%-=Z&(uQ&~K<_D9kqq9)#(;wWf% zWLj-bi76>5B++kYN#T_Vd@$9K2KxGWLT_$G784!5iV6-2!q8Mf z?)o{_O!C<3ZX)8_6$2(GC)ZnK3%GRIIa|NF6#$h*46s?U)(W?@wHpd=ZwAA20M$g# ziQl04UpO*j85nGQ?!P2l;{4xu!|(&gn}(mVO~v7V0#XeCC?JJy@Krkg?+~E-097Ux zA8Ds5RbD_$8XzuRg?H^zU5guHd4Y{b;+M*&>W)q6r_;fH0l!lvRQ7Bb>R_SVaHccb zb2t^Fy+|Y8FqNy&ZCA0`WexCPqLmvlxyEJ1>xhXbi5y;zCe>RaFRh6PETdj8(xUgS z#dD*iE4xj#7D`d-es87VfZ_LDsA)0hIS^fHO(g$O99KEw=m3~P^T9Vca4|IS8-Cwd ziOb5I%Bfpm*-VI`)F~fNx_qFPa7o;HEf6wQ7U zJ8#NuGvx7?s!P%s)F#TQps-On_dYY6h8WzdM&BA7Oi>3s3 zqj(R{Xz37==6wY&`1ll*^d{zdraKo`NtjFfGDgAJg*b`@{5isd_!Ngp@n*_){z{y% zo#GXT0kIAMzuwW9kqtgO%O|^qcHsJu^u}CT>Xf2G8f15Xz2Uj+L6J!7e<9X{M6h#@_{>B)H8nLzi@3fPaar`6vU5tc6*VXNf>P>PbJlO}ac8L+ z-7PIGNpBoKe=bMa(X&&k2-6fRmCO~M*uy_Vnf~J;z zuKRJ<=liV;oWQB#P0k5sS|k-aH7+yL$`cz2iOAR2cNZ86B-={HOBAjA8IGhxKbJokjBO@=SGN1a-eCjtxPw_&gAp6`RA96pTN z?JhOrsXRr?7#5`_m%SC~O3+vjg=&XXa0w-RGOVCl>pYh(BWNL!k%`|4 zJoqU-f6BQ%o&$t};A-e7wp@?!&$fn#MX{%Ce4y8i#*#+-5qV8TzcN$G-(J#Lz)_~U>2$w}r;th$JrGYUR7jS7Sq$w>E?X*( z1@OtlUT(CF1=yh)zJwjzKF3Fo#mohZR%LaJt3T3f3Y&tt8th!FwOLn4W;1EgcV6rJ z18N5KQS}SGHePG_oVwZ{2QB;t7D|O_T0X9tBqDKGVSpWccsi>P-r?IL2OhV+K2`Mf z^}&Z<57Vual!2kw+k>%#ji*i4CNRoA84$wFB&z(&XWqv8F>2j;&b zr*_37eL`%K<@$Hw;1iJf&ohuFbq>t$))Dk=u|E=@GnOi}-e@((zldI87#SHsK_<{c z(wpt^uXS56Z;+wJj@PW#_3a71;Hqa&NjoF--nH{DxnZ~7XjE!-KC>QYCFboZ&%3Xi zn+V=LN-+3eFMxKFD}o(`CMPX_N-n2kQ>3Q=Lds#vY%h|gEhqPz&O@PjF$szIm%Afe z($3GbYm#t3E#o%ZAl{a>B@`3U>dyx#93(orZR>#v(tENrkC7ab| zF*eI}B8IN_TE!~u4c*g~IunVbsLYFrUHv`7kvwt;n-;S<3WbDHVMS(kq3|R+!{?Bl z+s8E<*r$bZwK+5vk3Inb9L$_RHe?amGG)4!ok865Eb!1s0Qs%xv zL@!R-?3Fs>F~30Ah!x`HahwH?(dDpm0<&JYGVq|#Dr^cb^C^YM+}>+wuv?5vh{^u6 zTXp$I4LU%8XEME3fz?{$U^$`Zy@}|!oQE}#SxWt2AIx>kci(msK<-D@IqcCNvx!4b z-@cCfq8&2LvmP)FKtb_=S=Na(Hq`PZD~%>GV38=0SfZEj^76zbgwm`mbQuc$nD&Nx z{xPQZmd0Ps+wq2lIK%7e8cS@q?+ zMnrZ;rIb!kwo=CgL|}tlb$xXT&~c|rl>sU=8j{B7+a#;OrTcFu+pa|0*e(pWb9@Wc z(JA%cw9-G-Vd`y`v=?nuZIH;5_KB1fLn}XS#~8@zcrL03LG|7+z#V{rqzuPFHF?(h zQYKYeviE7Uay+csiwr!lG{&tKIK1(&B6aHZxsm6C{E=3yoH*qYX>i zG-pdy$o*YjUZ-=Qa^N_tqk75BO3Ww-Cf-{PX?%ZVD#h+vyJW zqoh`v9G&I|1J12XE?vEEtJybylpuen<3NM3?gxBM0%n)1IOQXBoVW8J{G74UCm0E3SwcR}Rn1LMv{*bffYRtH8ZBFNL$H%77 z6*$z9tgTJIC#ce=a&)-~vjpB~{^)r%DGLR7z1a0e&vtsc3&H)U`w?hl5qR>gE06D( zv@XCgR6`7+4EwWIwnF=Pez!2Z(4Z*F36|S(a-CyQr|bPToW*SRS8s1`SUJL{SPYie z*(?0%SmVW-BvIdzZP9j^YO6!Zjapt;e)=y=HQ+pl1tJW6P!a`%)}^e$ch3j6||nJjKfXlrk~1kpFM)MD9P6 z*Y=kDIgu|I;MidHLy!1>H+Dqyc1dJ?jZ@z1L4T4l@yd0+9@3=W!y$p=#Vk)Lcqd)7 zHA-}}K7bR#_P{_fPflep&9MkqRUn4ed z<-;bwzjVKByi#?zP7BjSY6LFff&_V=u8u6tu){FL(LJTMh^y^{yN95zdo!Qb@214Q zIzI|+wmR7eeu@ZO=UMuO_;3^HPH~>my55dZTD22}^pW;PZV4-fR}Y^}@qS2x`F}eY zrKzOd_V4uclZbIV0*9^bKRq$YYP1vjnsEZRxzg@9*kbrx^Sf?NN&!(BmG=GDUWXtL z=WM}7b5{$>fZ`Q661tf~`$KL83cGu|@IMZ(imQHOlj_#?QaN3&1AeWO7g1`=6IRp7 zWv8=SH5Ot*EiI?0w%k>6NpbaK4z_e{Jvg7t=f*<-a_~E!uP}{(%}Q<;mUL2`L{xb} zVZo8A{~{2xTd)6gJvm4&5OY9Pz`|fqv+N-y^nR~-=?YP82j0M>?1*F`c0#Iu#Wp_? zK8?PRPBk%lFPbDNBI10wUv*Jxu-U{STyUi<@O}>6%vM;irxP)XB~iWab$Vlwaz4x} zSp8unPNGwznCiIBfS5%x65k%IJs8_BW9X`7^=)&$Y82~Z@?&v(I=31H2gP9gtwK!z zagF&+f_aOiOqhUqi`pJX5w;NfY_Q2^(uY151TFd9pN!;Rg0l?s03+A$hZI*$Gtws% z3e1q4zJk0$#LAsyrE?(?1dH;K?ybOr3>uH(KuACSP@e9>-@gTEvWQUQ!G#?UdCzmv zIW&bl(O&n9=r|ba(_L7y&2(5azjnT^7QUb%`@4O=bwt~FOXPHCZLB$dM+cXfCPIx3;ezAd(GI%}}!ao%uE zF0wzG%$gGMyp+pMJ&NMGs@~Epk{rkf1<#t);&gX#4G_uYZj-5yoEnZL<)QZBna>qN z;XcZA&JxN0&hz$oS?BySCgs?5e@6tU%)8B#&@1pLb6j02P();J%h7b_hY9q|czt_y z&HD6~aYr+6WIMeDm#M>;;I8U;OcP0jZj%nII+~TBe|W#^^v*+5!)0i@{~@zPuf@}P z-hD|^Jni{UgaVQ%pa767x9gqnJjvQ_B}c%5^gzX_|9%f{c?!KkW@vlE=m;&}zMVkb z*j+#8l}Z7NNz2ll@?gt9{v6c~VO4fi!ZX1>#^h1(aJImnq6{!d2Gx?vV3GSPol4!b z=}@NWwo(Xb;CjZ7+gJN>{ecLf69%I^*IL-ObPO@%F@UJr`8+xS4D4J^XWD>)LbYimrr!7G_cIlkxGpTCHIy8NTF?wT?Vo6ut&zsw1^-3gwB`ZynB&er2z2FA-?%+u`s<5=n6rkeQ9r_E@ z@0!5%7=)~PFR=R$?Aq+huajJtEYGl_ zmQRx#DDvdqbFkn%yz2<~oLGiIF$XK{9nYLf;zhQz(Gh*;&z@M=X_w;)h1sZ*yiOdTu1cB1qcFrQisl1~GEbf*xzFabDDs{cKa|J=gs{Pr#xgLbzz77X*M?i#>wMf+u=X}8tApLOe?pAn-| zm^fQSl^dkRo`ZT0)-2kV)E@Dh zS$a@wG&b`fiJydOwyWxsAPcD;?P z?K{Sy(55m;rx|5n7cDeVGJUVdNn9aD%wnsf1-yP415h_%Xdo!pNFj}3>8H4T4ZiA{ z(kb1UQ$@M>Ruq4T5YhouPBnDDfOiqqU1tiSq^Zpg_X@gBQC}I>OAClXkg*gj)FE*s z=1tLQ#*gHaq4imc=D0#;DkKpNC}2e8a96lh&kr&*QxZZT9DSVYHaYHWgmo$Lp`nV+ z+pqoS*j5s)_Meoq8*sB#=q97$5`4Z{# zTQC_x52JA;v??$dgn}5VgJsy&jTm}3vckz~REk2L0Yj*~Q%9|5m34!4r0~f7hG1ao zk5bP9?#n&Dzd`Q1qX#r?d9@X;xxZ~R9Ta}GlTDo#y;bO+>0!_E3xl~_Sy4~NE5uuMFv>EI3AP6sfn|F>rY`iY zO5Wao-hFzn{)to3b{!z8P-~VU3CcBrYdBD!M$}>A%4?Rd0f1<_mV+}T{JJ4^zAhl7 zTxmV1^XtQ{tNBv_sps)8+On?eX&xusvnZ%UpIohVL)2%E6c&_~gAtD-a3`ajz0x$laTNpdsC>heq<#cIkL9&8l z=})f$15-|7DYV!wZ0}zphS%!|ZmH$^l343>p{`+3BDai!k1v&|%;|WksL#_q;=JYA z1pi|*ops9bbdhPGugS9c z+RlsA#-zDxC<2VpW3h&rV5}D}YQKj_VSLSic)JEEbVGDXa*0-f*DIUUET-)-Mb3v@ zqQ4F4r^X@}wHQ4_l8e(@V|u`AAc4ZtTDF$A+SZ+_whGW}BM-Yi*wYYI?-^>EFRg%m zK}7dxfFj!JW#ZlRqmV)Yv)NID+K$4%tLwML)01Ar-16K0%|ztt+obDzi_K{3^E7?+ z3C8?Qf;1qUn!Bssty(iUlcT(N4K|8c6X=#X?-}+%!e1!Z=1yUP^8nlFLPWtrC@%IG z)}$d9c<4GPDaMj}fq7Hhpq1kqXXPpWxM~NBcZ~oO&w#`rSh`L=0}RXmIFtMSWXEHl zeub6*mK7Z5Q`>##+X_nxmT{zh<(g%)@~N0=)Ts}+kvz?trdaK*YY*gX4?JrQcJkSE z-AXr^L%2NpDJBmS*y>VN9OHe0$x!h!W@8Ff1jEE#} zgHQf|xin4Kta9vr`Z&0lpvdQ`Mj-KG`9N5}k~y;fbwkoJN!e{ReAIo+sgk9&Ad>NKpR zR1}k*VwY9+m&wT>*fTzI7U?8Dak8d|81H(CUmBd}oL3e_w#Q?rH7}A$8H{YDUjL?_ zEtwr6J!P#2GHI>nkW1>SC3K4Gg&HG6bfn`*%b(0SPU`sIV2n zGEqf|RBof%Tm`BZ6&?FT>ieQmhB+@LP9MDK%eTv}sp-z!(e;jdt|V{dEZU=ju24Sy z9%7`(a~t;0tw{McX)Dw;gWu7yfcT3Frek#tl8;2DDzOAP(fChU9_y3(do zXK5ssWqe0+a5i6}Q0O{#_~&(d?jTNrJ{Ehy7ua#nky)k z-}rkI>)9e2k%4CL7jo_dSb}RKtq&$5>jo2=#Zxq?^6LF)o`f zgQWQ!0sr#!kz~owgN3yC?en^+B;Z|S9sCWqstbTR_+@%SZHXxA<)@uqq#s~!kMjG6-iYT+&k1KT+(f$2{ zDLw`U(6?#^YJNY>N`I~i4@<~ofm)WV?9-~SEs~GDEGPKTJwIoqW|^(gq1fkQKhSD} z{fx^PJr6$9@EOxP+^?rVUiX9aYu()AC-2+6hq7yU@0?H9kdHdp^#IPuZ0g?vH^1>c zU`zS!N2^^u_w%-Y5?tu|0TFD0q;`XT;za}gUx44oy&DQ?;-U_jQCMhrP50v66xWth zHCWc)uT~oMzS^bTQxnOA|HdYBKfu-%zqE1#h$Tab5%JMtl}}hyb`G*R-M}!VV86jK z=(MhvD=KqW^L`Pa`%Q7*mDBZ+nn4J}6*+JXl<)7ZD&@Pu8_aHEL4gzBpg`B$Bo%S8 z(J$(bdwIU45$7ZA}A>t>E%tl4jKj?$UPov_M5Au#G(C%`hzaehddA`xKvr^F2|Y&_X!#Gm%;t<+^p=6`I0==x=j3U zbcHV)Iy&zyY9K-At+lUyPGxHe@X5yd4Kp6T-G_OkagEOK?C4uDG^GA}8tC|JrtAR~ z-3$4+IV9baiP9tYt|zYEM571@;R-4?6n?1N9>U0N156Sf^3*q3gyz8}A}Z+7TRPgJ z0)#)X5ieenJ%Dm5wn8Eow4EKgd0*RWj1iK^Or%nyW&3U_qXG<|&xTZZYUW_J2k)g3#> z$PCK?AiZB9vhns4CV?LmT*_3mc-`Sn>X3$_i&L&I5|^DGDWp7#pNL+yx;w|>y`QmH zp*35dD`Q8+_{y++Bu-agtfgp*tNi&rAk>~OsjO;SxH%5(n{ap2wA1Y2D~1gV`}70Q zaX4@v?W}V^T26QGIB2rjB+aRCt1m|F(%S6=K!n5)y!EN-QMS@Jtc|Co5&ChHKL_&x z4Umu5bTFmnDk5FAH`pbS#`Z`RzMJ<;6dn z*(eW0Fb0I;anuNQ266L?U)1UhJ%m4i?31!=@o!{0Z4IJe-B1aSVR~g`HlKHA&nVdk z2TqWvAK~M%QJDhxj~)U3OmKDdrXBGeOtL3#jL)(2rmMVM zScQw|ufc3-5X@1Hgh#?Kyfyd96pp=X#qO}5K4H^EBj4|sM|@>tKuYUB^~=?q1S0`N z6rkXT8TOO08a7=E>yY42H5I0E5AH+Pgx-B!m(r9GU!1FLlt3_@6-^cv2~?N}VdZkM zT+P7Uk`zSm4}XARDya!qM3ZCsqH#~}FJH%zi^(5Uj{`h77IEe7K;x{Fe2bWrz|2Uj zU&xrN);6)Q+T?YbScr}|##+i;B3%}%(Q;K^miok1i^BqiPv97H zKqn!}52&pFA-rRmBiG^7=R4k|M>9lB*j4uA?fi5^rF9xWR~Zf_ z^rp)8`YdTEl&RvKt&m_JlOE!E5BBp>`pxA5YwOna`7w_9v07F&;;2wn_f}nPc6E@f zqix&LB=t#l`%|$vdtC21;^mTVI^gl9DG$?W#@}h*R9A}0%ro2T(CnXIL2C?R6#3Bi z<#n^g_BV&L2D}*|2o6{O`XOD+Mm+ctf4}7GNip>`Jcm>F1epCDJ_Yjy1?zfED=U;} zqCa$_s`Nrizg49+GWuIv(qYaNIc5OV_wga5)nQ`H(Z5bcw5tP#rwFP9_*v)Gqlz)? zQgmt0-he{%%LLBCwfPQ4tVH*6sQUFpK9bSdq#ZbaB4%0CCyB970X=aKF~-ZM2v{lb zSX?#hhT{9B@Czo0>A=4Ky3p8i@)blLu(5jL*}3zay1e+a8>N^X)LQlLI-q2Ls4hV2 zHm*67$I^j)5Z%NnOO3SD-8Ifchk4|TYh7;`Pyktl{0<=jv`C}ECJP^uubOjMY2&GF z{F+^;KR+XYWuqvRYnRGaP6536mvANp~i$>w3= zq6@V=l$>Qu~eQW<53I6fnSXDlxbOKPf;a3iIRkjRVT zI-4~neP_r2U%_`XjD;KNdtbIX-BQ@(R>i2z=ck>+>!uI4{d(`5ABuhR@8=!Vz59Qa|S40ovu3tu$Y8xg0A;#KnBkxi=Uc-*(l$=7dS& zNDiQoD__wvnatp5v|;F7ZL34(@aA$nRWyv(o7@k~`e~MT@ghO6lLs>*3beb)g`^4P zx8F4DU1B}2W?LlWnwkxaa`>g4qQ*1XmmWbV*04M`%A6TOBO>bWV+@8O6Jw8}>pe41 zEN129ABWD9Gr62r>BXNjk&j^=zZbTqHKixS4v_DwcDOY}WHV}ix_$K7|L=zW!P8XOTXL}juU=mrFrnfB(b?RP(QKjv;iCVJ3N;S@&A#p{m%qu-}F#0 zU#K){Bcs#k9G``aV^2F?OPbI~3+%0Ali_(uxUdy!juk$ReC55P3K;~l|xI&Ff&R?vW^}5RHxZQBxf_A*d72p*J zJg+qxBcow1TjmXo4o?P}{$k`ZGxnMM%riuv;;xDNM*zMtpjCI?MyY~~^ZAWu=BQfV2frqXraZ>B9$b)YbI;rAsH{qS2s`$)W`| z74FiBnS;zU=Gv&ctv-{kv{)2X6n4CpmK6eBpQQ8b ziz|5r1*7BX+}SD{K2(D9$hBrU1GN_YLhkGBZ^kPc{xs8kRO0ss=W2CIH*P}9p(r8bX`}x zFZ-yj$2Gy0p^J$sngAfF)1;VXiN$2K%CeSNqW+5&mkX%HHnpw;vrReOKj=SZ4V)qT z13{tcbm7Uzccy6JBq5pM`o=Oo$B$ZCfpri9!gw+TFrmSc{8uVnU0Z|A_`BER>#Gm- z(PXLxuQr=&FzDminhvMKv91^IWY@>!TCer*tMQ7c5D_g5Ti*3jwbf~_+Kn4x*Xg?L}f3r zE{2pY{@U8Q0-*8O2xoqs)6@6@CWxx{@^X}|q0{xSs9}u$jafmq)GO=N9`wXzk!@oI zhSyTL;x&n(c^mAkjl=#Zh3H5>fkF2Qh#lg3TaNb7t9iaXBm#ZlU#*T86!{|2jjhW@ zCucUDNjrVP8tF*m=XU47bdzkJQAD@lZuMh@N|p8^pi^lM)YObly*_3#lj|*u`j#uR z%lpeq4G1HFG!R8VgA;+eZ1H+dhzRES8^}$+qM)K0jV1uVn0=>-T)K{k73jTX%2ToY3<7A6G|06C_Niu#^9GolJWKeuTv7nVslX? zY!=%XH8#i7`B;-|Pvy$y_pmJ|##xZ8USVHOSiCY6MPXT-$IA_iCxf1;G}bY%yZ3~7 zGzpg)y*X`D{)AhX|buqRh_S;4}>3q+rmV( zM=Ya}KynA#D!|;yx>3u-vqBVVi0ZyVh4C)k>k!LRsy0?nC}?GK3XAq!Z=*}cn`^S6 zbAU^lU)VOce_&880`&cXe-{+EdqPDd?rGK!$1t9uC$FatLzo0A;HawBx`e)SeyO;= z6ej;OiGvq{8Xs1UvPZrla@#K7?0OM}Yez}E|f@4^YPlPp|s2%-M!?C z+k?Y+r~B&asPm~SUHyC(Y%OSmJV62=%L;-c%i)0I%JuiV>4(dB9&VYiQ~CKxVdwBd zGeOA-wzhGhUwV5kxeSgm+I@#??$b)2vc2M|nd0rjFIytu_*1Z=Bc4PBuvjW*b;JtC zNH-9X*TvFyxq;v~E3exJ3KC+A*d%eS?>HhvbWn=rvNI_v1tf#Cl4JpxVyrh_U3iEL zwEYmU7zydG>!xcHOi@4**OE=I(m+Q)zB-Zr$5bDt1skYtFgAu)2*94Dy*iQL$w1{$ z-3cG1@XqqlrxX?UaDOD;s6PaG_9%##;$X)k=rqlVctxp7Tg&Nc)#|RqG&T>}hziE0 zZ{!|7xa~*b=nV$c8+3DREp4b+FW%8j7)*#Zy?!VphGe~bTjqp<(+D@ z8`hxFs7od>=var7oSY+pQ@P~kPePym?Gy}zS>ZTmqKy*;FU~x78vxhrUJNIVK>Y*${X@8R>s+N64&wpp*KOY8m}(}x}6eGO;xjV((+0MyJ?TcVC@N^XIDl}hpW zVzsgEWu#r7SAqSGiixy`S-+&ZbD>yGh^>5!NTEoQ^$SFBcDOUBg-F!`Oi~upKta3n zkL!Eu-#AC{K%N4CL=x@H>z`B`&`uCENmyp%$rvErr{Ud;bubxU?}QR$wUZYpU*{%u zcN?@lm&|D0FgpLkoqdhEHmXvyMqU@G{Z|x!7#e8h$vE>=y?}4W3D8ht)(6)c*fDrW zTln*Wp1j5svPe_aNwO93GKeQ2o9|${B~aOR$*I(pVU8Pz=wXtRv32TkGF>ACM*O#g zTs$eJk$g?P%=vN|K-m7}>v4Y~LNW5=`1rlk^G&>(sHWv5UWVK38z@Pz2$BD8FDyg- z*>*c|lt!Z!lL!QLkSL^P&O83VfcrMl9S~|5e%k9~cSQ8RnH{4~1mb+yPtU8kRjDi; z9xH#^Ak7ZKXet>WJTqGzE${w7Jy&M7MHpz-mpb1lWX)0>s~V5w!m;oo#?lnj4agDsD{ ziNWVQl;{UA`(IetKlxt97?z_n~CkJ|5R5)T)3(@f+!z zS;8w8W(49Zezt#*32TCeb&D_zX6P0Jjy;$lgyfpL{}wadP$T}@e$RJ;`c8>;N^V@@ zeCbTi!<;6T@xzFuIS<^?Yzj}CD+?6nQp>^gWEP@o@2$$|(nN^{nK*{3_IL4PKQ_#O z`JFy`d1=o3=e_9QG^-%Uly zPhvP>0us{UI(W7(VmPS+=HHkLq-lv07cX!kli@NwCs&9MK!l<{j%ucxZ}tRReV>S@ z76a+#@6xg!t%3BAglOUGbZ{RpoKltY2CvdAR0%x!e5q2|G_YtO%`T6|h@&k2jk@3p za@c|Og%EC8o$h#A$31luTM95?v0P>>2sb{1Jt(ROTy|@y5}w6tcrJTI9c-cb66%A# z>LsL-7|whAS)CD{2rom)>PlXiXmfNuyyW$(11D$3jQ~ZR zWx?%gdFl)ip5XfSKM&&emfZr9Tf(xg5RC}UeCN$Ptxt@Vwf04m@;SO5w%nzrcrw@2 zihfkt9`~V|vr-*j^DPijc!+ZNia(quHDL#c-oc_6WHz~HJB8d!wCh?+tYf-&UbnAh z%X$_J+WII^%!mcP5fqRabRT*NW#byY2izEnWuk)GES2QwGuvq6NWxk;g? zLG9A2)h)N!IzAI87rUiegrPGSALjFenP~qAPNl5pqQVowp;50dPPwn>>LBy=>6Hhj zN$uAqhO?6Tjm&s{>1+$d&;^_GqUcTW&Weujd?adqtcQa~8R$JfP*aWkQ`?ucoh!^J zEwTuzMx`qW_`H6C0ZL2!$M!}CQgP0owid{}fNRlq)0%Rvrp4NOUH8>yvwT{$)?WnP zr*^Ivbnx;+(yvPbcgBN_0TrMkh#B9iEeaK@H>gF(89Lwf+b4cevYBh2w-+B1jiNyr ziZuu`-B{(F*~Ag)eiIOm*#kKIvUJ3?-Gjv%Q2F@b!mWSj#Sp-WQrOn3ZxiugW^6~~=j67v(PMm-1no>?+{ zCRWiWBm_(7I*rxJxDl+qEcX0#p#+zKoZ8p-S^pjgGL|i*-@m z`Ny~n^6zq&TXBN0TWylb@Z2S=q~WreQuVLzq>8Z-V-)7_qcIC%^)KW@UCx>OLXb$76I({|0i^p+;AyM ztJd=5hnb@`O(+eai6c@`iZVj@*$oa zdhUiKhW+$v9gP5|FKmFAYUwHn83qMnR-pI$O>oI^MO@bxDGf@Cf!z1r2kC{38bX?NUjDoWCz zi@<_{a$M#_iTCB+fb{n1zHR96Xl6d#W|-^SRt>~?ZZIL|NeI(&wK8Pj)lQfH-pp<2 zZ->ow*FR?!O}`~0hJQlYH;H0aezHO-g)x@8S~ z6QQ}wQ0@&z<^xO_jIHLaGe8U08b`|@piHvLBHj!Fw=ZbmBuW#JFaD0s!l4Z)4i4>- z(DZxUMjoysks9ss(LDlgS1xO_3n~I5*Isv%V|;1H^Xum|x70eq*9BAnX}5BqXx)jD ztv=b``#TxFWQMNSA0sWc1ygQ!73>pTyFq6*)$=tX>WELVb!n;}Kx}UqcB(7J9DHzw z`|Q`IMyp~wzfc?;6efHa3NAhT$~*LOb?1@MD)SLmLr6{D-Dwca_h46%=Ly&MvTva9{2KI&GmTaK zou{i9u}t-^U5P#@qO>v)D>(`fD%eUsIrr1LvW56&7)lnhk>9BG)9rqHw4iPrvSHTO z&`p9N_MvVNcz2S0(Px01VJTNNl z9EW^;E8%Q&xFBJ*n6KY(x9v9+g3iF@`#4un&=@ND8VZ0$J;#QCMN6>WXj8-B9p^(U z=rL0$T4D1t?BlBFHERS&{S+8X2;72rh=0SGL&cR^x9x+U6_-+7N!-z{w)NGz1Ae)> zDml|fCa2>Mok$=4n7MR#_-f#^(5Za<)iY^8%pj;#yCW!Vz$*!n?|s_i_wtK)JiHnK z1XM_}3%KoQCc90R$Nh{*V+nYP>noo&?6Z+&@r;4N znm=zykTcJ*qcalcCM9*-wLWT0${64WpWdccRE=uEGylsO^=NI#ShF;EoK&+YHC4Zhjo_ERzcly=rXF*&x_2-t4i|7n!*T?yE#_x_mhl3O{J&8Pmf`Z19vrwb zQt7OTcq{g*rT}$?TbrVJ9mlf;R{JA=L>|*mUdy48tfllu%UUb!8AA#c@5%L(qwjXy zb_Z(G5z)lEpika#ggZ)HU}nET9%xYj>5U$rFGsW6<&YFJaV)`1V}3#Vp;Zvt_1@zj zePk%@=CQwY=~wnaQQ=4IWbtc7^EnHwl{8mvFeV-^RxLygV5LA}7k+Hln89iY2%g8* z4!20X^R2uMg8`d#c%kp3LowhTaV*`p{>EXqwuA%86Gm6f%sTX+8YIIYLFi4%k& zRrzeY>ZGB)6t$>FZgBVqYOQaye@90DxV)qsQ>Kmg`gp}w=yi0d-8=q0Y@{zTbL}*+ z>YQP+0##6Aj4@vM>`xIXSzgTNgXT2h0+9p%$)O41fL0e@r6|sgk#|so#r}ghx-gC5v{ml|)VQAG?fcAh)cr)b!{9NiT@9JNGA!|JJZ5s{x3D^i z4tNrzkC(5kKIsM=J@_q->S;?)x5w$|dA6f@spl-|qRW*!yh<7{_Y`l&sFSJuGB(9i z#DeS^ht^sOvX1`FGO&hRLI(m@pU4@wgrHZzpbx_QzKrTM+vlF9Vd4)xh881{Z`j8= zhY2^U(Zcx=Gwl{2{{UM~Ak#u};)9=h!kQ%*%XVXqCE%U+0@rWUkJ2Bev(=O7SbeA#$Env z-aaG1gpxHK{lG3kr(%C8@^y8%oz6%n)$E6q7zw*t>`(Y zq1~OZg0fE|SN!_dq46@MZ=2jWmowoG;wS8Ob!7G!u$wZ0YP3iF1|p#vGJ^25yqDG8 z4*20Pj8?GhI5!ucZD*U~+wY#N8YTIs3rvO-sUJb`E=E61?VNk{VZlU8HS4}bFCj=< z8RpJ@l!0tKevI7L5*H+=34@?9CpXN$h_aTDIem@2cW1-7k#CZ2P0g2j-`W#!c~XWC zgkKK43&LN$DY9Mp+~U-K-lkJ-Zu}~?VL&EsB_d_?qXK?K`|~M-t=SUFSTb$8@v9`W zicosqE311W$FkPhsS_l=Kbgpv;4iQkx}|`0gQeKgd9e+jOb05|he9a+hk<2t9H8W15u zZP#&|y!UhH5<%h0Q!>^`^>At6yEdzAGPK zorY$n_%c0wOGdyM-+BU}#~`kWm;@o%IHIP`)>_j;pz(ayjE`bziBf*WMBPy6%ov#F zW8F9Mfd7v9;!)Hmx~(r{luOn}0H0Cf#BM^D)d%Y0l81sPlH)FZCAI~1Yexnm9f@RQ zf`?Ms?{Xa|=qVu+)~up0!nTB5FQ#b}b59nPFwcQm0mN3abztVo*AyexU61SDxd?ln z9nQ!462bPbFleY#+Ktw!{1EKC;}E*D{(YD>`Q*0fgfk$ocI0z8Ys}kt?g%4oUpgsq z$xyh;#eg2zXFlo>PTO_!X@)l#t`QPA*2X`Km0%Ksa7JM}Hw0V(RIe$Tz7CA9!6AXl zxi@g8@ZY-N2h|;KuV2h*>ZuZ(f5=7sELmu$kNJWPekdE&R~pk=MOTiZVjYdLO-A2O zwo^hdYt(-WqU9aDH^DH>z(Bb9h74Y6Lg#>)O}O(DzB$Q;AmD@?5TjZ$ysOl_+aEzESm1&I*@2#%+T(PF@9v5 zuw3B4i~S2KhLu82W zc1N&5`7i^#OH2W|_{V1?fg-seq8}e99KQn{wPjV`NG!(WOZ369Pbqo^ya=b$I&t=p zq%FNM1iaQ|t$;yW0}VQ(d%jY~D!s9e*;5fp>5~Plq~2n!nDmMsSIO~wm7d)~e7_(p zuLkg3>JFn;{*}2z>qQ+BwpwWLM9@_0BWT-BI*EZgsZ6jMSgG`D@o#w;h$&7&>cjH5C zQJJ^_4GE?OfI#rw{V}TbS@ZDZym}OPTKt*(8U{gE4)oD7qi|R$mt3i&(Qslr37%~t zo*yRDdF2UxUmV7k2l&4m5P6&1NH;nP#*>2Y>iV2EsO_~JWYxW9xt=XklZi)v2eU&4 zfyzmM@Y%=mrMlfL&okyc=>jX&sv3t{i)%_x=%|IiHu*%~RO_Yr1W%@CsX8%|rHTZa zRN++P$rJ9o`^j$C-P5M^#&h5CCy}?+do#tRhnk;Xh=!IOFFx}*Z*gXLVw_20Yk7(9^^k1YR z>qTj#8oNcnbz2+@UYHM%6Yay?bpU;DlT&!V6cLY8J;5jc7-*kJr*qiQQJCiN8--GY zNqh-&zddbry~vij;Ivz&Bg7xA{qTXKSyEI;`KNentt=!cez8$jD{)_~LYLxiOSv(7 zZj;WFX!+{Ybz_;si|@U(tSUnC+#!q#&oK&@eHr`n3ZisJS^BxPZ92K%b++%TMLK!6 zv1~eztj{B`L7->%ieiZ(MWjKn1KBNk@Y^2GQ}~HWWC~p}5PzW3>U?H+KoyluEEa)T zk6b&>%u*!|^;W=TzR#04f&_3O1*0 zhH~*&p~+&GkP=FbdIk7eFz{R^6fIbMBfc2--OG2`k3MhO*oXHp`Nea6nnHRn@LrH9iDrcuy8q4iPg{LEMDxUhcgS}dl~Ea# z;$#T%(9H0MPL0%TX1!SEkcgMb8$km*6n=Z7SCMNWy}IMMyx>T*deR@<0{C|Z!ikFo zRscIRSj=3A$)IVzg5ksQ!kWtG?g*}6R{n`bc{q%9iiD#z%+>-H%|kg~>QY`+L#vzb-~Ru|JHYtqo} zDrd+%bblATc{q+md~T;jY%}I8W~Y$d@pvWM_Dk`^Wc6VUHmlikgGg@APSsLv$!eH{ zP2XN*beV?m4)?hTm0ocK403vM>I9j%u~hDQyK{lWdW{nxdg60Ywohw@?zQt{*ZW(x zw)1bX_eH|Q;S-5Mk}$rbx%O5(bkP(<$Oueo8a=Pu;H4i`ZFf9n5T5%)b!NwpwT@DS zO1lZRDL-!T%kCtqH|k9inFUc)f0Wf24UGbX{iivZ!D0MgLBuy$cgv0rd-E;f5=ZH_tGqOL*OFM(kpR^R0&JWF>c5*KFUnA+*; zwXra;^)dGZRq{-+D9#2tf1J;H1$<1SN6q%#a&LP%YdZ(havH~;5Rd1ed3y7?GNz?I z*Mz`*Swq^2Q4vM}p)3MFuC(ZshA3l3YX!Kob7Xfx|6=F|7;l1gs^TBdH-}^@vs>`J z&)tE@XuQm&fnQMU_ zUI%xX9E3~Rxcj5uMn{v#nkNLwM2SfaWezT|WYlL3KFIZ`b{iKawuDUSr?c|JUVqo- zc3R5$Iirx<)6p{r{YwukK-?X13PXyvDR2*$q6tdphM zbmbnqN`sthv)dAy;6_Lqq9bHG!Bc(z9J$Hg^PBvEjVueTqY4P(lSvHiGQch7V=z3P%9L-7Vy6=5T6|iZw`K(tf zD%o<~$ZI2T#W#2Y$UpkJ?R1+p+HrDLnF`WxWu8($e|MWkmEs;^Re(qZq-$xwf^h=W z>#7)KWTgh?@jD=^tU7mU5Pug|BTcBuKg^7#q%4(I5W{1iN|si~1xLdXo_xpCbYO?;lXrEW*tn=9R_=H3xWcUxGg!EZP%UCHsyI{E z^Bu4I<6Mf(1v3sFyCr!?)j7Q^kjY{`&~^5df|M|0eJ<1f#euTK-9y%iL!-m7VF`p? z-L&D*hPnrQZlv#(C>h}1aN>^~B#~RLCwXn0ju4M1o_e0oSA-kf$4qg!4f7=tnpPbn zXUo*|pgZm>i5+%F zn(;{OXqCzKh3h)P_;)@N95fPk@uEpm`mH<4JwO$zg&-1`9+CH|*mfMMS}f#d2A6Lt z`(sfY4bNGrrBB3o@VK7Q{dFtKD#Jb@dfR>tjX;{#&7>jjW)heZyl=;#(FC=AJG6wq z0g|tbYjKaF zGsPA~6OAs1j+?W!m3{NCW^}&2+D43~(e0;qEBVToiU|~2m~{sWWqMPvc3cA5TBXj^ zEv*N0(@!t+ihvAwF%#+?+Pq^NOh(M1ue|NA9R1}wqjC?(!AXIN#2W5;eqZ^~*+=sm z0_6}8T}Q?kyXXLSHpaZx><+in-uEN+GU=ET?%mO{%J03w@LJe9Kg**NN(W;p0>4B& zfMRarb1pT0Ourr z`nqr;`dGxWSfwm^(-}>-8(vEic#bx?!TMPMH0>M1wwNwA1Cc+%&kSJcSQ92L27ayM zv|I%FyzQB}KWv5W1s}|vt(BL!=dC*o5wMtyV)$#AueCNvqGo$tg=;VGD7M_STB#rs z56bFo9C)+2q04L$0106BsY7KjDZYObmOgQVF!{3|!B9oJ+-ltQH$;ZAYz zJ*x~^f^Ck1P_1}dpcB?4kNfpLe~>-2OKx8O7{`0bBNQcH8B6+XZ2urP=3b6&Mt?E# z2;2znNQQ8_JyOK2u&*D~G}ST5ILEZZ9sW{9m&{J#0Yo%r6z9;N;~dCW37s4Mg*@&Z z&ReuHgfsk5zdY(bvTU<0gfPmW8dP1gubj6E%_(ndHQu2ZbjrVu4zQ;Rr^0!MSn-Ln zfH=CkRkGWdk1Rru&oM}RWL2w|D&Ec3X>h(mV#o!e>-3wHP!k1B6*?uL3 z!(sgc*v?mp$MuNL_>RWITfzPGcER{@bWc2Ap`)IwD!9ZVH3#8?_U?w;HKInNwFWq| zsbRK8Q|C=E9#If^24y}~_)1v{fYu1AX_XJ)K{U_c2fd)ZUC0cgomF9!H@{W;9&5j_JdHd zL^L*qi7g#juJ&mAc&Zf%#bVv1;VWR#+a1KSWdpv@F#e0b;a3L%6p5j&a#b#^TO;{& zIScxc&u6|H1L#KHZu-w#9v@d3e$=R6We&IlO8LBNF(({*&m-Aarxn>ZJ!LXKo|H>T z7MQ0`=%_}S3G_~lBA9Z6c5Xr@_!v)oOlI~`?)|H9XK+O5bd^yhFHl!h<1IOa0)egO zSp8`mJpikqY<(xfKk4+D?rr>8I2e9u5h;eM;bH}m`HslV56XAT8*LL(0g*E@*jFCm z(>=MV{R4rTz~mEkapJQ&x^oE=J&8BA4@3L9-_{Pc75=f+!!636qHOPFNE);uHm)-N zrH;Pii*stSxV$vn>N4d@!_qBIU0;z9Ujgl-`4ZZL2EM6nNDT~ZzP-`pNVUwPx{IuQ zk)7@BZ4stgV-8z{B-#wFesEi&HmC$*s9p$8s7u%c%tg4@s#<~U@CkC{kGC_8`hL(s zs46%?(N;LWZja_!C9xP1%$P1NAQ3RB1-3AxztcH@o};ga3d^UcHQS3N$03)n7&I4^ z9g0KrkpP{TQX~|y!HpkZce&BV%HXqo5EB@v69nGBp6eqacC+(Bbh?;B5@@{I?{Fst z^TziXe$KX!Sb}D&BhE`og~sF*!iZ1Vy(!gq96=v+Tj#hpTG-=uo20e}Xl;p4r7;p( z{%OqkQ_8eg@N(GTQ3HNGd8l5ojS2G{1-DP;o*O?ckgYyiq56iyBcMz>bZb)y5KVMx z#9rpFSE8|=U|Bk2f0%z#rx(%-Wu>P!h$m$(WZ~NI6}+-jDqsNUWz)$F3;!no*XHDf z35*ENw89bP!u%SS!Ac9L)zA;Y7t3V682y{*=Y7xY&#}qJqIE% zSgEKDFRG(iKm3KD-M0p?WJV>}>w(C-I+1HHOtp)E5|T{fV6)7kH1G>Q{X_&X=)lH2 zsk~pR>jz(|Hx4(dOirV)qE316S=^wZ?3Q7O+~M)E{@@h-*u8(hag2@dQB#;rqvs_$ztX%l#Dx#V*&M4dNu7~Pl@vQ~ zLN-Ts#4mxA*)&(8RFpp2BgH=eu?0v1x|(p^0Nq!vC6;jP^%XM{D;7sOi2JX{8E^VQ z#}lc(QSxjJIT?=`+@S?b_Q5C6lsY6bskpoXv9ma#gPVeAwi)-Kexy)FYT}MVG0)?5 zQ^OD8JA0M9=hLe-Nzp$jQNEc7hgFqpwN);SNGiaH1SUc)e5ckK#ILKS0&cla@d5l; zQ}$Uf%yJE%8G_1l2=jE@Sq~bXhm9fCr2M&s%03K5^vmW5%8?p%;T-pKsrbpiK;6(H zu}H9dllMCAfEpp`ZiVWhS8NWOaP2fo6pJ(+cX8x=xZEt1~!3e*^8jH=ygU9x9HuT@zti;u7R zm6zBB+;)?hU|pPi1BrlFy%;<}7RVFcnY*Vs-CkO3*Kiv136jc&M6CB7Gew-4K47=R zZ-F5#wPV>w(e;zyh%p?T{j5;*>)REqNQMP^PrEs|>dcAD1;Grk> zOn)SJzn|4bhaa`*&w=LsWqVsfQ&b5$<=Fa2C+*N6i8TvqK6FWx5D4E8G9BsZtMTuZ z{8^_x*%13b%%-ut0z~T34DmlBp~DuxKmBvIix-rFlb zW^a!dQV7>P)nT@@MXP%SM8$0XigizWM-*WTp`GSOKk zPWl#g0s|tJm#fBwzV@yl$MH6v#Yqr)_RkJz$A0s(7PVn$W@_H6manv$&JPb3xg7uN zG2-%asMPE7xtjND+O2u#GmVNa$#%(Y10tW$`N#tsq3`T5X=6Sq$OKG3x2{jW$G=@w z`MlTObJe}27LvknK1HCE0D(V}^A&n#M^5Bte`C9z7>fG@e`5Ln)W`q|somaP18_}% zh-WEq&tGbpKu(3ALt|Pr)=hg`ab9XPNw=^{W4EB3vr=wi#u^voh$kK(K?clllE!6co6uWLkqI!v+Ph53Dc>+Rz8(|e;rjHhxjrP)OHq?6) zF8IJk_;<`>LhtGOQ+SkU zG$onqshe>aevH5rA;p{22rh&F2;%B-iGLi>K7DV@#+O}_am2*JBx~<_=V&36O-g1# z=@obT00EzejWY7H1Y10mOAZr09|G1zb0xBf*Sk-@>0Wl0_?S1Eg8Ui{joI=Ngjpmy z_b`R-_dyeB@H!rYyo$*8LE+4EQy}q6NhmCg@EubHWU$Sr?B}innMmbaMW~sFI989D zL0QMk0W7Umt8QXsH!Htjh^w|QJ>Zz%xIFi*xdDJ?`uxmCygkrE>6siM7JrTl)8}pJ z03asUowce-ocra`j~3sz-cT#lHpPm`EI#YGAATB1I>^rFFXr;jwK_R0M%zR4;PF;ylq6!{I&r1pJ>3gbQ0@S3| zNk_i(u2Mk`qB}SePZ>D^@8j68zs~!gcE~=&6Y!Z=+YrVz-xjAb@5M=>IzjJ1oFXq* zXZt*ju<=c(q!l_JPKz-d{?>s5Va{L(iFQ8j>Oac>tyL zJ%fvvGzG89FTQ=$+?aNuYD z5r9mYEJwhjfo&{xXMm5=^}cb>ayb-U>wE4qb}|dNbAhzk$k^~X4wzft$GsGm(*=vd zm;=7T%DPD&X;2KS)jr)AvfnIn-&hD<&}}?{-ShluGQ8h~NbSc2_6P(&R0ECZcpL;aXdK^q(KqNtLA4_WSv{Y};1`}(wZ3Mz zn(buH0BeURszDgsknkN!O+{>$X68bBa7qv8Iug0|%~%n-okF=aU@5gK!|5!gELS;! z4nEZ1Mn<2=4qF>#ivM=BD%rUpAX)i#gMmvXvHzzk>IXK_>(6%Rzda6J*lJ>7Z3u8Y zlwbW*5&`>+4ome0iI0q%#n>1}Ur2j8Bl@sPd$WC?mhhWt00MC-&;Cra-aKA%_rZ+K zc2-?DRhZJ`o$FA-{jFRnR>?K%q*1`tF&hgtt-a!R)c^7CWDhldo>qEh;!d#3}ydn&(K zBLePC*6s5I=Z5u8PkmPDBYAz1TllsxB*G3DbPWFDl)!a)PpF-2@`;A=_Ct7M66K*! znM#FewIC{bzjEmRoo+*3<0F{JoIc!-<#-3rB6W=TMw zrT8)d*98Im9;qF>#>p^;c-nH?^BVom;NkjY+GEUdwHWE+#p>Add zJ~EX>tBf1HczXkxuqVGQp`VUt^G0~yF{>{F)Zz--{!JH?dOb~aR zT!IHS1DlB25l9fSPayGAqJXsS?gkSNV(8kw>dRNpH&Tv2ISc$Q@_k@5iI$!l&XX*? zzWmN8KNZ545Hwso@ayGwWVk`$jtN@;V`Yy*nR=gj5 zxCawM6wOS~f(G9}4&y$MtiIV62XPYc{+@2F%x zgtEX%I>)nXkN@JV!B<1Oqms608Wo7V-rvtuCq^{wiXt~qS29J)H5&piw5NHpWdT?4 z(HBN>;fiqNlU1yTA$oG42ODTSarL&w8Gi!o+q&zz_Yg;!KS`jFh~a=k3@qx8*4>Z4 zS(&VFw#FDcGVF2gyW>zV{qMj{&ueKJ5*fw4bGK3%r8~hNt%p8y9QTN#OyugrF(wT% z%0HEY7NYfU5aWr@9gqP%Hon9f{lkgS z#Xe`0oXYzvS7__+{4r636!Dy-#abY&_dMRR58j5lI6Q=dIzHbgj2F#XQEcr~B2R`r zf-q73sVvuzKk(-uPm(uk)D+RC%o{;T{F|e)sx-L3we4XdA>ZmDzLp2%!$k5{e;@Hy z+vWTc?ZvwbZNw;K7WioiAnGpZFLc)acs;K5zEZO>S{(m#w?R!eF~LMC%bD<8E=vCC zaEB4Q4)${esTC&0Fg&t>|AVl(`UO{vDBn$BE{of+e%-Zjn8JC8o&*8Pmop>gy~NhI z?-wkl&-_O_u{SmNMu|A&nzIpf)7n#1_bYN%%B4_kWRX1IOnXbeN@6Mv(PjxTGupgL zt*xlEnhNSU?s8hKkDr8UW6cuP(+>y7dc2^38?YAw#U`~zUjFWIQeR`FSQ?oZlN-{H zOF5xu#mduNp2*o&>qi#pJuTg5YWXw1!qO~O*BA<$kL$^uqmEK9XL`P;?_=MpcJMV| z;OdO=mT}pwew6ZbvttvXxOO_NDl!iZEZwym2a>NbmxTSEBvxelLr?3 zFk8s)C}eZ=I_=7sjM~a%FyGvC6hQVbV+pgkRyTt zSg&3W2jY+<-K%W?Rp@@0lyZ{zOx$kmXYW&Xy?0#InGA--*G#R_WwVl7F`b`Z;*oDaz1y^P)Kl)$AE zo^de{zLY<^^KbvJ)@TK3sm-&h;MB(Jo6$}7tz(PxOnpfQwDSG;x75vOOsF`Lc0{>BSVP28O)23Nm~z@|TR1}Ji1O_Q*x7{jfX+HT zXbJ^B>VU0rz06bBCiPkO;T-;I`D zyd+b4S<^w!=q~qzKP6#)6JEU@|7oHYV z^uE1SLtn>4gsSNSZeb~&Piscw*spKr67M!fQ1}~oY#``P{%-t}MHDE$B~L;-w;!}m zt^=c=lJO%VT>sofS?jITyDRY~E5F7H+!a%_Nt%P8pU@O|#u07=)|DkT^My9erwvF4 za#eK!=U_l7&j)B>ScN{M$Qv0#GkiNVEKFt0Vd7Un@wj9$mHvt;pD(YRghE{@(g6~R zj;zCkXW*{UP;V)8UYg#|32b78^nGqTO{R{_M_oiCNvnr=zOAJgi&7Xa3Kt(OIiQCZ z7zeZ2=E-RPT9rr+d01{dl5jWVQVhDMzOE5D&J(EKOmzdBu{}d>?+J9>S64js$JxxR z2^YSQ)Y59zw&*(t5ex^InSOWvQGD1FCqQY7UGc$TP(SuNLSj%jSb5k+2z8yn*ODJb z{z_P{662gZkgU+JFn#^*(`Cu@I`jAq7d|jn)2XB+b%)3W+S)A-%?|wX1fVs^xmZRK zwol8rk~}h0gTH63)-ffB5&VCW3>wVkAFG8WbF-H`VS}eB9)ZGGs96=*MMTj(O{o@` z&H}ry@Z01wTfi;&UkI%tOF1vgO?q~gjTF$kz1#`Nov{5k%fb=uEG z;rx<8W)F_~MJLh-!Bt?QGeN)#} z@SnH7V32M0b4BnDrSJcTI|4odAh*#zcTLX!IdYgGWCpf`!-3mhuIMjxWC#I9HCXd| z>Mi+SCP^X64}ItJ8NS`WhxuYn42;R~w6rn(A4Z8d0@dCSe;{*5761?b4ibh4j5#DO z_^kCW*d)pf4sc=3PVE-|j#=XmjJf#7%vbuKW8(XN7Vi#sz;KP>ocMQ44isQayw?-E z!+%eF;O~iVPhJ*s{|A=phX%$p`kDPoPw<};&%*{zTw#@ao$cQ-7ry{w{@=y;ha~g= zzl-sIzl?w8#s5Fk#GkIm>hAd6?P5;w-{}af1e;tWzwTSdC}!Tg+k^qME6$1G$RUI9 zIM(66s~*1p2Y(`Q8F z``PHfhx7jcOn)%6w}01*P1p=#U=_+H-h8e3FI@S>?~8DTgMGK)43__RQ3h#?(?NpL z^*(q0b|8#Mt=)zI5Uta6veNY)=k(V1_elQr#BsAcbr#pET1H4A!m4xBsVtJ~?JX2) zlNkxzPNt8?RS>nFQ-nZe^_?O2k$xfx~BjR-uz!vfe*2NF`&w8QA}v-+j51_DVgE8Us&PffvUS{NqU^vsBc( zRAVyTsDCo8l4cs4fHa&9h+<2p)_22aBoCd;ECwHZVYEde+g;Zuom=|uWG%&7$EO## zNGt;2<#33{3rV(_%LIkY(x<1%0408n#UK!c9a_aIM6gtAn)DcnNz1Iu!1MuV>BOHA z@PaP$f@N6Nn=R^qZJ=nIR|VynfG;@l&<}s9PSXG7F-hMvB|5!ncoIlJuxI%bi9t;c z^yetWA~7(P1>=(;V339%hC?sz=So4rS9`moXPG9y6AB7zClh&_ zFlNon7C4MY&^E-LRg$8~J6)cURQO+i&YLFeO(aTu{6t4ABQPtcrK~wsQu=vTVYSI; zM?9(Z9c}l1wZ*Yi*|&5(QLEN+&6nUoy3yw6`f05i4p`+@lH=zg-Rdu3BR>}|CxN^Z zwvo&yPTOVDXO)QiZQy=oA@QNmYbvXwR_B1_nudPh$Kz|s6#r3$a&EhFg|b3&g?53J z5R%1Q9Q>pi*}V)K)YKaamLxJUgG6WP`yO%*=X%(P=-0$)0pU0iZqow z-c1eU$pJ4JK;Zl-3DNM$lG9!{SZ2QzJN$8ebFHVEQt*LN+f7=-@or!I&;0enhJ4LE zsao4U=$7-}RK{yh(c)oKHq+{@jcw}Nqe&c}mfl{UjeGJauI@ZV_L?;6Y~uaExY~rg z58X9fsg+vunW2h*xt3{q4;;BTZgjo>ytU=S{rsXUL2Qc3l@oMTWYL8Sk-@KpJ2xve zu3D~(QEkz$GKAkH1qhU^dWi7DI9?4_#7GOenw%&wj77f)I&R+C;yFV~}|oVUqGNi>Jc zHR4&`kL;g#k|}sPHDkMMhmft55eV!JGi1y};x=z0N^T-~xD(%amxU3zG{15xT9`Hn z5{=@R)$UM4d`e^~kQ(WwkTwpL>I2Z$q?ysAq~_^@{85X&y|hl(kt24iX#4v^_ZDX> z-+1Ghkw(`k0qT783q8&?{jT^Ur@c{wjV;r*20Pl0%61tl3zD8YHs2oM66KmaHVfzE z?=%{US>AhykJ-yVf5Gy7dtXy*wkOf(GN>EZY8FLF-Kj@hY;i1cJ{&U}6mbAKE4s|kFcj;_` zMFzb_8YwK)Mnoe|7pM0-DqO?l1=5%c4L{o}%~C7YflRSOG*p(Y+*CAE*ta9K4Ype@ z1n)hmq9yMZXZiyD9l4|C%&6b*fG9Ts+}4}diSk(I`R`OX^P7+-N2kJn~u%Qz2IAY`PW;Oq==%CNO^wB zPurtXZS(Yd3mZO7;mHyz8#0?I8@R;T={het%*aW!D&GMeo=9T$MIokpB=|$rwJd*C z0>dc2k)f2dMy1nT_BpHORhiU`{gSnz3s>yzn^%}1B zQFh7SN9#|1T!^R@xkpF95;XEOkxtr7b|_t3B)J1UT`k1FgH~6X33Yp(U_!e$;R;j6 zZ_>70fc$aQXo#a?ul%W@AP#K`-%?LVQ!F}Kv&BCCWpG6GvzmCgyKWuHlxos1BBz5T z(MO-@DMz13C!2uZ2}<8RD-?6fm*P|1m_G3HxK^7PwHXNME0V-x4X5aF6h}l>(<<+} zt~z(r&ot7h*Mm$aQ>kWDk_dvN$X}CvW`SRrqVNYvj0xUtNhLZ?6>1y-uu#l?&i7zQ_8ETprCKVV(dLp?jHradibnXRj|?sfjU zX`d#jAjzm#BQ;<4`fW<>`Ma^{Nn7}XPOj_T+KEtK*`uYp(5J}WN zjK25+_i_*-nDt;;lG_$UK%$A}sE5h-rs6fOxx9q)Sek*Xjl32%p1R@+v#w$fkD6tx zbT&)p;nN?R_Nx)b-reJvx_8AQRBxX_JMF;cvFQ5q8bvH6DE1(K_^nuE{%jqaDc|=f zLF}D(US=e`5B*zfxp%6{T!Dg5Y+DErFwYJODtq}ZSLDihdS9PoUN<0d*eTcj;lZ0F z;IL(s@ND8S!}#8N)Ps$&ZWf7Vl_j6rrXP=h`&8qu3$s8>vcudd1jp>+lWUVvqG%t! zJuq>MD$yv1)f7Kkw5O(}EUn}Koa(P@c?n`iNFseG@lbtU3HX6@0 ziN~DQ)Al1vty#*U(O<;{hZb#V{=6!xv+gJ*HxOEz54F8T90u%Pv~{jpS467;sP z;bb-2d^(_4&!w(#g(KqnsbScB+_OWNG3KiaXg<-Jhbdq#6}<=4Ixjg&<0>k`nYuST z-nHh1(kYERuR7sMmY@v;j-3!-GU%3)NTw%MV=}S3aHxlsMo)V`847nP6|l6au@YXA&&oYvqPW<9wSQ< zw|P$9Cp-cx)_8qm{SfzNVc;KW^21=a$Fq8l+25jy_8QU(zU+IOrI`f|Q=b4QqjSM_Yr> ze}|`0XOM|>#h@rNH&eGinN-zDVAfx6pWAy!Cykbe?oeLXL8f<_bfh9%3?_76np@lb zTGBNcXV;Z&o^dVL0P)JQr&dysi}DEE4c8fX!REo#=HMg`rC=)7CV4;S;zyie^vbc7Lr`pAU<)^kyG!0Ocw%p?{b2+bf4> z%&Qm~Wqc*Fg=Jf%1!zn+L83dn#!%#_8Cj4hesejSPg^pZWJgx2^dSFSD*NX#r!9+I zooz+h5klVO7%pA4Y|B9jF2ijuC30%ck@J5Q!r#$;=tieRC-g9P@26QrYp*Wq#}{!K zk3-tqeQADME~^~R{pK3EA5Nk`@$6Vr@$ctK7*;i zwdioZ*4*L#Q)mP2X5bU5!-NMO(GNUO0+YqhJO5~YAR zcK=F^_K?#sK#hJF_;cZJk@Qbhj{jE~jK${Z`u(@w{ww4G1EI0l7s$KlM*de1*o4jh q1V%P!(J@l>KfM&+|3+l<9c=z{uy0p@2Ga-NPf|=yv{G0<;Qs-HoO3?_ literal 0 HcmV?d00001 diff --git a/Screen Shot Package editor menu.png b/Screen Shot Package editor menu.png new file mode 100644 index 0000000000000000000000000000000000000000..6f15f3bcdb3a3307830ccd196f9f81a8b789cb1d GIT binary patch literal 49154 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 z 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 literal 0 HcmV?d00001 diff --git a/Screen Shot Package manager menu.png b/Screen Shot Package manager menu.png new file mode 100644 index 0000000000000000000000000000000000000000..e1f72740e439085c5ae4394e626761166ac9f5c8 GIT binary patch literal 40523 zcmaI71yEeg@&^h8cXxM!LvVMuAR)NBdvF$acXxt23j}v}hv06(9p2{N@818d_p07j zojS8U(>*=iJ-u_zuQyy-Q3?qjA07-03`s^>{3{q3_zvhohlK`F$h;QYz`)>lEycu? zWyHitm7VO(ENx7|z@)>IQ(@FpNAUd*f8R>VkV1SFwFkIBNW%&E16)v(B=+R)&SK_z%y&y8l>;Tqbww zGh1Kk`uNZf9^D-Sf(gsOmi{qWmk-j8yGo{y9|adCLySrtrrLca=*9m^DH0?U)nEXa z*>hA(HyI34a490`RRr4_A&gN216zTaVRr&T^rP_L8S=3zQA&Cs^y=x5g@!uN^fs`u zHw-?p_hN^2K!QcU^^PZXJz~C2_(jYLg;FSAo9JQy9&kn|@v=-m4hx?)6Vmh3A`C+i z>y_~dc}AwsZ!49lB2^E9mFmK{Oi?zlKLdOCumwWQCmE zZZU66!BtclCL+`ZWs{%lO42B@V=AO$RZfDvn`iy1S$ORtoW<*IN;Ff5v3PBFOXuaV z;zwVfc1SmmfdQkd?52J{zx8WWCnFRFCO0{k+#E)JpA$5_8eRAB{_wZV#4YX+zo>|! z8VOTgyonC_HBjW^q~KI#@$9HF~UAEtW?C@#K=OP@T0C@NBWds||3wiA zWmYxl^U(4kTLKmnLz=iPJH0mw>Gi0FwTP65ukJ%raG`NN>Wo~>uScEMbZk)+b zuAX8CC~wT_(5arKEn*;wFLG=iSVT}kA)*Q=E%hi0R*bB8aY0d;dYPyiTsee#pp|4( zzFpq4GP5$tjOG`l3E{Oof$5$j+%GuU(R#tZ!@yV+jV|?FqF};L6Z(1*p72Uid-87y+QaU{_OzH0cmtsc(($UCD&@3?bSQKrY8IcH zKigpCj9Mi-C3_~@C8w4{s;jD}oRBZ*ETAtWmM^L6m!Zv%&%e%dTUE@DE@aHx{fsV~ zn?GOZTVP+{Dko9tDtJ$dD9lj#RK{;5cn5aJ@9G~?fH(JQp|i@nDzYlEng^}XrxREe zU!qdvC|@XMteIGTT!dHAs@9-$(`ZIQB*9hKaEy05af@-Q_gsqS$*#%%$j&)lmOdk} z+p#FmNW$2uk*`su5xYoZ8{+2g)^@LP4t);8Ye7Vx{lqKha(|*T|AST4xMWEFV!St< z#_ab(uxphIg=^|5@wDv{(ahWu!ffKv`7B?}gJ^E`Wnpefm+nW@dmQ*g_n5Fr?Z#GR z4|@o8;J~m!5*rgs2$CyOAQD!{3lblqRP=bXQPg#mRWva!Ms)h%&%w25?dVViMEQe^ zN|v9Tt=6(ErWx=G?itPLom}i(k?h*`iw5`eI%8S3Io5i%zMBA}ZQFQT6+_24bnB5u z`IdF#6-y{>9&Na)(W+|gzD1@*@>79D-3FG1b+d4D_3<`Sv1Y@Sy=Aqv+qGHSKARgG z0vr8F&h%_(O z^M3c$Q8+}smSs;HruGN{!X5m2wmnf=o-dyp8E#e5)YHCH{$S$gGP!7OeK<^? z#F(;%h1ov)W4nz)K2A|j;hPhiO~Tsc{k|*xGK>W>Z)4ejid4aGi5E%xm`)sHw8AjU zX!U4?h^h!5l0%YjgiAO=e7>fyO_14;Dx${ZOst$&$~(gVe<(g|L~0%yEXq5kFZw{2 z?PLkwNH*+jy~?(1%UE?ot4ILa*XVHrx2!?!}(q;nSbyn~=wxSEKht zwW;}?`BDg_9?qV)X>Cn%Z?bEQ!78v{aSM@G1F88+6ry;~j+W z&)?-5+9($jAY}BLz3yYq3@yuU;}8=VlQ>2>;s$@}8s$1*wv*pNMV$;pWVZGM6Z%I^ddx5;Y zAfaH2pp~G;*Zf2G*xfkuE0?Q{+sZF@1h+^Jxl4`9s?f-VNaskH=7|lBuI#!FhnF>? zNOv7N$ImM*i9pr5hMF&xjgF}!)r{?esc>VSqdsHS?xz>OYhT`of9G6u2zpuHAD`2& zJ{)_^JhVK(oY&N_RM7JH3&c5ZUG*#n+6uAwmGKrimmN)~$~u~EZV&h2l}WpX=C0;`KO5R3@lp!Pu@D&H|9+ErtkiyL;Tn9W z{8sk4hu1lxU*>>3zy3TErE?(}r?c094vkLbU)&e)4ZJx%S_M5V83+|cjFUQ$Yd^Hyb z>qH$b2Z9H_+n<_Xs8C!B4hxy#eZPJ9Jjg|+3cYRLNWD0`{@J2GuBclg*tF>S>3w?J z>`H00x7|MOUU-QhWZ}pC8vj&xuDV`IQz$36E12qA_d5H^aeMk!H(tjICpDUG0i`_b zuc`{}p&NcX1}A;#e>>X`mH2iaB%J6T1PAdEPUCeA=LnuR3*(>00Tx6iFsf&gMlLUT zaK%Zt3ez1EGkV1wU(CxZ|4dG?L4DA-yi6bf<}d-~9Ul`NeSt^t;)E)5j||4RlIZge zG>BhQs%ym-pE$uK5AYk^Bidr-cz1^0#p4d}oAiU|{Z6)6@RC&zI`wLpYRZ@?D1dzi zwPC@)LoLA|K`n65g%7&Gz&<5}fWd(7=%7nH58^+);5&Jr{@ecB2PUE_CL;s7s~S6* zn%X&A*t=9J9|?m*En2E+x@aoM^BUXRG8vlK8<{eB*gE`W0ps`J1vPC=T?|P*Y;EkE zc|8Qk|22Xa)c#9mCMW&Z5Ep9!a!mzgQZaicQ&LVQ7A6*QL3mP9Qhp~BGv2S_lK-%S zz6p?9xVSj*GBdloyED17GubwUc@4JVgetUh3ATL<){&TH%Up zm>Al`!6udeQpqW5e~iepRSbh!Y-0U0IG|oqI2>46#2ZK|)wWcu@PQ~2!qHnKJsX=77G zM^6*Gv$K0VzT)ii_y`vf6J9bt&M-PUYF0g595IPqEZSeqGL(rI`Qy z21iw1N0bMT{BsCM_FqM##k<$nvsPQ|WCHC^#dKGjC{R$`Wv9lAhKFfoP5Z{zXS3FI zbVnuzf~&S|c-`3IQmQrOB2#LLXsP#q!P^0KxzJvg%0+4f-ze|S7Sr>PIILHrG^#fX z#Jwq`e4whrdi zJz!9Qv2o22af>mE{Vw#~Po>!E`7&SK@)Px7hVco_L5t%xKr#Ih!xRsX%>)6I=6uzz zk~{L56eB(twUif(tgK8y;Td?^&BIrCZkMEbXQ!w><{w>VFTOM0L8J8^gf>mT{ruu{S@)-@>?Grg+QX<(~0(Khdl`uHI=HC zCvSUp!=8bh971{jN1RYnR+juWT70ALDd+WVnS87e3*e&Nn#I*>1JIfAia{iR=1~Wp zsI-+DA|FPP>z5%jb0d1T5;e;{dz_nW&D1Ky$Rl|Ey_L=9>DZ!Nbu2cvDJkP~L$Y3l z8Hd$IJx|BY6>fZC8ESc9;3p&!wxGj|$pT@M27tY(>A+oEqTdAme4(?Hr`!A*W)HR> z_QTl9OaO0_wSs-uGkPnKTgHM@Kp>Ei==}SWLvdn2>GAZ;E+H*56}j0vRh&aZN%V2k zVNQuzG=5mD-_`ZPZC}z)Onhubyvkw=6-ZeEaA4Qjna#+`Nc_$&#&PTl!ti)+l&8zF zG)MXunA;0Q7-XU%ENiX=Mw*B%v-*Z6D(B8{w8)5<$il|PMhFF5V>~WkXgk45LsPUc z7Inm9zc?Dvp-lY<6uKk?d=fZ;b<7XPSvUq0ixWkL*zD*ki*bjc0Y^=09*+G4emER+ z8YiP4d1y3LR4P=}7#duSk7_A!Dg1k^hn%0=+vS9ufzglsl(GgtB1ZlCdAMhytDq={ zimoP5R`^?E_yy_Mcrz}ClH=)cDeJQ& z+wJ&|wPfCoo%{-Y8*zv*#v+v9ALzePixChII2rO+w%RM}&9bwJzxNkm_F#VWXn|uh zO-|aVn9My5TQn1&^%tfLVtAtKe=-I%9*m$k?LM0{$gwl!)G3(RFvFS+B=T3+acEOm z;_zcD#>9C0B5Mm=CE%(}*ZR_OK(24-9QSyIs?;!LTWsd{eL0`v!E`yOj55dR)SJNP zC_+9fuRhh!JbPLNusir{HLbRJp=9&p_3vSd8+T=k6RkBBqlv-HgxW_H)pUKN-$N2& z&T?X5?{X$5pX+*|C^Kvhy>nR4`U?tp5bli%*mzb31_}uD*7qbpJ$d9(rgIOuwRvz@g{kGeyoM^ z!&%Y}h3kMuI$4rBnKWGTqG+C#68u2?@k1j8_tBpHJ>doM!Ji`0g>5XyD;Tl~{d+&~ zc-!}4x|yTn`gV6uzrDo2-DZL}gUuK_8v(ApUyTb&N{Ak!I2eq28`ux|Z2a4sEXmpM z@OZ&I7d63V1_)QB*Og9etk5pg_bke?=v^3)HyIQ%n+4@3=M4{eba5aW$WxQ=+E7B+ zu#HetWQ;xYh?tkcugYOX^pba)T^E5F-oQJgH%M}`aUBjFpH5A^^IWkP#9Jra>i zCh&3n2ius5r~uKpYn6@y-~Cx3VU8NSoK-+Q%XMq1ruIW#L%w0ssE=)*k0|>1GvnH^ z$+YFkBwKHAT70t1sfSVe!vh=jFl7!UVe7=&PvbQW(Z%l1$yMod{6F6tj5usJJCwfI z&tDGQ!Q>+4LsB0hS82lq7_(*bTE_s%SiuEZ&J?XiF2v>$T3LQT=OC8^pN;Z)Jf>~U zR62^`55C>j=tkDa;qL+?t<-BKm%7tw?kH|wavSI(lYiuvs~^RH`~0*_l(aGBmK$W; z(|Vk8;`P`|qZOU3+}g@`e9|a1_MULa#&;45#BG5SdY4V-pRuCzfs6}VNT?ZG)b+C9 z)&Hpd1FOMcyZqTktmWZc0_oA6wpBSJPrf(!w7+`Qjvu+*)rxu7nkR96F}vOJd@#Dw zU|^>30jbpMvMms~HWLrhN{b~0?ORSaF>{0L!58l%12UsIF8nO+)M9 zYSu(TjoBnc`dQ$;f34_FjFwTvz98Fbv8Z@OqQC53vU^mLsaXegwvU=rt$!=JI6rPD-UMR^(y@5JU)55yvUR8zLF4 z5GILZYHHFpSv`mEWBCeZF{&e68%O@2ZEt$>E}wZZ9t=;uXR)4m*bq>Q5pq2FGUS}F zBI}Ial0t{pXH==*f-G=14Qn--lQ*&EK7B9n!qY>UTJGryACQZHkeJ!PYCT8_!HnXr zAulF@;d^lT4U5InY1oc=kDp1{NWuFW0K!fGLGc z30A{~gR^EK>}3A7@Vxy#g1^?vTCHXJV%pUKG}!FKq~R;`6epznffex+I+p?XY7 z&{(vuf8PJpUb%%cxIQ@A0h1rPbD`WR#D>#ruy@($AT8aG(Q0&2#kHAQ&+|nrN6aRe zo3F*5e(_{`cgXbX?L&o(;$%#MZsZLEP)Uic=l5bwi)IgvQm)xUZlWexZOHHENA?kf z+LngHG-C{_mC8Cz!#~nRMMWyon*CH4vZ}vsZ|*2idyQXeg8k;+{rg-5$z>}$d){8I zABo6EuigWtEavXd<$;I&3KP85w6zZOfnqFr`bNgcdrc+-pH~}%{K*TA`WsB~-8m=+ zp6GsBUIWOzc~l67dc;hJeq-##tL=#R2$E;)EVBc44bOXxwUaLeP*Au475IC|kxhOz z7hfgROc+8nTa-=Y5wp3mOw{Nvf7tl+K}hu+{u!oKLEetGQtRrB^7EMIZ`Gp>P0`?7 zfB&H}{NU{UC|e8)I$M~r#NT*N^%f9eBNHZLhKsKf=-r)PDV{UQl`~+s%=)(cp5tNC zUKxTYvmVVNVxseX_*o62cTiM)DG2DTpQ7s408I}|dfp+4bXJZ9Qm)|?DEQN{8+FZ% z2^=@}ei^-xX~GV{8LatfDfkQCWdn%{u;JmE%joYOXOIzwjCibt={Gp&m2AMy?Ka!Z zax8(D$4}msBu`II5!yiOP`91I><$N3MyKOvY0p51MRLiFw`AuFK`{8hF}q5LOU|Y}Y?e?H zW?1zPbvGfUlA+r(@KA?_kH$D&j;4&TduMAkSxBmL|0qeR;iBo8$G~|TheEJC$O;x+ zEE^jimsthRUosf5{A2spf0Dy?!@N42(m~%|FXZ!ploN`tntQQfd9eNjWI=s`el@&J2@RCLkk&g`1;UP|h-|Qma;9k@FWfzmz5L4g@_R8OnMlZTLF1C_Zf(PQv$=c7BPO#z*=*D*EK2!nOURtyG-TuBK9x(j_M$H)Sq9SgN#rT}(b z9?}4umzSH(@eb`9&ALXI*QE9;S?X^x*(*H&4{ ze!xDFj`XK_dVrGU;BH@UxM zF=b-MxY*{7Ww*xAr3*Z|cV<9hWux>aShN;Blh`a1SKnqqDZD)s3uh6)4&kBFwk z#^_Ll_xD4_d+fgiYO|sN+LN;UeDAlL7CE*7;KGdw(eiM{W0GU_HLJc9`(cL8aO;pnZm~-s9@lf*AoqPbJ&hT02_zhZDK%*cHpj9?R3Gi_08dWaARmxT$+Cw7$W{`?vH&e7_hgq@Bp&V=Ro z=JI^fAy+kX<}%HDyC}cE3DW{s0=b*RN5Eyl(Rq6(b7}0|I9lu$*NLL|_^oX{c*0?{$I@t3YB_IlNobZT z67U%JO`4#x@{&hJWAW&D&MOJFX(`l)v6{@;Cr6p z5(Bb?%YhhRb*B{Y*VLc;3dbS{E4MU%A0t4?a-x4y*^-czm&bhg!glv^ch(bea+APU z@3jg3d~ryZ)eY2-;dl>hL8vpQBm)d%aK~dh`8(u8%5CRI>m+;MEpgxMcwL33O^NI~ z5>h-{oTaX>n3vhdGR*@G1)k3WxsDrZI`gBo-OD9C(X`)OD9{Xcg89(L%;XWIpT}F3 z$*_UGo8HGf@Owe=ZB5pg{Y;Lp@fb7~Ppe2SAGLf(&7A^eMA|c&%|WZahiQ~MJdz?d z)+6wG6~l`wTLEuB(g!MTFFraA&V}^qv(d)hj;d6$w$LWvR2K&D2Y6-sGvX@i)52dt zVpiVx(x6$>`+6m=!)Q@(@I`EFu*RI3Y1)7N+1s7(P&Jp8Ry3ji6+tOO9^wYr=q*0~ zAv(^Lv9TbH__EX2a>So#!KnDVcU9>OL1!J1w)}JMS3Z1V+5Fv%SJszgayXNcl>+cA zo(}U5@RQAU82e@ig1eIy^@Ja&Q&TOqHFJdmM7cX%LOz7C8XFA2RTRazPo8ov5|oL)9wc8hrK z7MuUXqgk%ne_`mr)k8e8fK4~phe%?!zvs{I&IFkBQAeLN7!eKG?b6DKuGhJv&=}ms zZPx0*jXJ1KI+hQNf=vb>4&O@lcx2q2K3xC!U0`~Pa42su{(G^#bT~XtQPjJ>GQnZb zRB_nLpN2G}!zn zwPeh<++8YF&0!RUwXCXkVd{!jx%X{OU6Zc?gw~vPhN;$sp&p90nU}xLAc8d66AZTQ z;kmujl0%}Mb~6*Wo{t}C)+RtgIt`0b)|beI_kHn<3` z2Wa+rup8Z@0(5YnegrP*Q+Z8dbw=3^6l)|tCzB>oy1i~rLbVP0pUqvC z4)1+_$f#zoa{T0K;i|Q_?;Pr&3qFjaV>g>+YA!S6*U=+xx5rh7M}nI?<#*`c@6x@q zmj{!c>&$N8se7*|PfeBQ6;gUhd^lL%T5JRC!lD0+s9P{P-^Z1^7{88Yik z)o=;x$~bJfg=u?e?0u}?mbRf^|)IP&Osd`we@r9Bgj<=m1VT2p0?QfV`SW##;B0o0?KEF z(r+jK#Y6#j$IY19duW6`e~|3C8dgmcGLJthZUV*=EcLLa zRcg(MBe;_6Jeq53gbksBB8c`;7g_ncr8R>JF2=SoJc9FFLjF8^?v)ES7s&oZW&J#a z9(<9_H~ohXdPaP*K+yZO$X`XR@416qSq0VKG)%Ybf^c46XL z{|Ea!Lscec;yY_H{SWRZ%xFaP>0j^}2nP}VPM(MD_`RUUmi{l=mj|on0hts=|B9*% z_K%EFbP$@?>@x26s`(wh;6KA?A+XTE$#y<(5Z8qHED8R@ObcNe)ij~kVqiH{=wHWQY@kXSw#Qu z#j+-*hSZl5yDH)16QARYTk+I)c2)kgKz&5tH2npIs)GH|uc}--)K))OAV}45_zrmxL~ZUlm`N`Y#2WJU@ez013suBBsR}KCf==TFaw+- z{fmE4m7iKF6?#6!g?89@ek-fQws~u=*cP60yE59@-%U%){INFuR<$ua)mJ|4d@BdC z0d3dcC2v|6CaAMO);r%E+34_2tP@CFS@K|2KCJ3WgX%k~&X zM@A^@WF!9#pMp#{60FRM2~MfAa9>*tv#M6YycG0RO@o?8GgB4A9;U6Km2ba(Agj;D zhlwc>qp3P83F^TWg9HYDemVIJh>VHqW8lI&VHU~9Lm_pdIuEja-WdooW_q#CL#KrR zfH~7()Icp%*~oFGBvXEB!^XG?(;#*cq>Eh4mCrj{*ReW2CEe4(v>7g`J}^>1X}Kx- z6C}S%h&iRP~R{H6yAC_7@1XSqT z^wwt^7DMOKm%oe}R&WDkT1(m))!i6g@1erouiVM`=-D$Gm@`Co*n_*39F0;NI;dQ$ z&&3H82kFsLkF1V*KxnU6-XFfF!KP9UP&f;-qSczGI&plnj!+mW-b(v28f>2~C-1~b z#FHz#L6{9+1$P>E>aqIONQ>zSxEfbz`<_5e?`Cdpg8qZ=dpy;+JtHV?m6`qqI!>xc zurlO(G}z8B*h^|t6P!4fn9&{aYBe_w9QE-Z`E?Z9U8L($Yo7I3KF9HnbUaA|DNWda zLxSXQNW`AzeWiu?5Ct1cpRKVx5@&=tE%-(ZFvj@tq-r4w|JFto#duQb zw@{`3cVj<^czYRqNZTBfQi*D2tfo}N!jrQ`Fxgi%6#wp=MU zUz;NqfzxhwTU@kH9Vr}xA6Iqc<}uA*9poVA$(iJCn`|Yv;9>ohKZz#(>>#-;SZMmp z$d5X~bRs)n6+>?>p{-lLxZIdAKTfFS$gSbFiN8{T&j@<@2+HXRvXShxmdaAZ6Ih*t-C<_wkMMOcAC>(fd0D~lp%$qYCR|tJ)&oV0TZksumXaBN3R_v=jRc=&BuOCH>=E`Q2KW6`V&b2x+0N3sC*@Xtvu=J`WwI1$*c1M#oMd?+DX`w0t{VI zPNA@9j}lbzQ9dnhqcIX?V{0=qvJ%d~P%Yo|?Y*h7CSkGk-&XyTD?v&_BPGqv$XF$s zSnC+z?Bv`}?&j#o+WGnR?S#`gzw|iuziTUo^$(+Oqq2#B{Ua@-!1`7`Jtf;8+*_dk zANyj0154VF^*-ZE@&Cz%|ds23`Pt`)w z$q&mnt*hJn#k1n$MK--}kdWHF za2d54!`Rr_YkoS)bAy9}H~PG|$%ZKbOL*-DWh6$zeU+Yk;5+UPv|Xql$6X@+zf~pO zeERf>nT-3Ej)5}j0^bdX@!gBHxJXAJ#Lxxx5X72#yM2U0Cn)&)@wx4{u~7l266$y1 zNFt4@k)ELgMd^tz63^Rws2it-8ViRzi*IsaFCO^LQ1)@Pg#mK3bGBPr^ha`TpUYDIxE9v`UXkFsn6|as=dxSo$7YONcHBJ`sLaDT`md2=L?e2IcL2?XuDJRHMGJG3mhIdq_yg>>v^W9S`gGb(#>uS}T=@ zkUN4h^M{<&xJF0$_)7-nRe1#ks;JOeT2gn)FGZ!Lsan}fj5rS%8BEWf>{TwUoOB~e zIq`Z{#G$8yqV&p;)ffR^I#VH#A*Xx9VBq?LTjxebWJFogj15&THrly9-le4P4kVtd z8_X$h#3VhTMZ!B5zmk&=7B#w^Yo!N~c>W<?2?;a;i=N_H;St?Q z9{(KQ(a})^l#-PEDlQHwqTO4kp`o#Na1hd0>|DoMhnb7Y99giju>q<+Np}#0r?!`0 zj~iK7NG>QWEY?LW3=IvP4~F}~&#wdK zJH6`H5M!1nF%9|mbiDK+HLp)JPdRlxe1EtYYw@Q-b8*ISt@j;>B2LVEelWm1M_K2j z^m?T zgFx1laq-a8AZK(8bUJFL5W+JeSmW`@i%}(VF#?s!AZi`l)FXDilDhSZ=n4pi$4`4h z%fUvUo*WdIH$Q>jiGat1Ma7*)G=<~(b*}>zOI%OPCGvie#SJ|maXxkvW+r5bS}#`S ziv&W4Z~J?p-5^|S$f0+5RQm&n32@{{dA(r%mUpFkEgz9wNR6Wb-IZbZt+p~obCUOe zcl!jt5O!^I|1ypla!(U;;6H%2`K3}Ui}n4|dVTDX$Q6V%hmAiHhoBz}Ra7Bx?$KX( zg@@r5HJOZ{TP-%?A>s3f#Srp|o-S3D`ue=c3{BHgr{wxRhmSLk9|s@m(}E!#D!$qk z$h)Bky|OUs)+f1LEX&A*%iMyt47?0LSjvxEi~0!a24}kM?i7;$OnzswOW<}ZaK7A> zKAi#l&up=r+}wbX?L1>$z{{;sDB#i7KWVJ8a}G@DpdH0!k1OI69s2Z>7jbf3Tz_fr_PE#7}U zIbBVoGI<1sARTSE|7NsUy8R?=w0di4VreQvaX}=aknyE;k33NM^S5e-K(&*tejJfGz)uJKt@0c%PjVmqen~?TX9okcW8Ni{Gyh=*V*S@U!v9m{}{U0KFId zqB5ArIu2&s+$a{k<%p2n9`6?PwJFqob^Ap@3=uE9q{C95w!_EUgKE3mxj3D6gD27( z&yA8}yRi;nIj`u~!@JjQF9Ngju4HuaTU;Ef)m$4Aqkf%E7;*iE+nTM*VYYihX{mVt zVF`&tpV2s@c3V`!*My+)iYGOU%63qua@eTmtaiZIr5;-T*qsuxm@82r=c{&(Okor! zV;jcZeLb2foK=#CO+#d0WcaDK;d%Rr5t~?3Q}Z(nbSMNp1l1y`clr7_xx1Ev{^^(4 z=5{V?SN#;Sv@g2r%kOrUw*FD7m`!dI176$!g2P$5Z|O?Ojlfsc7%sa?bO0nPt5P;+azSg& zw*(A?CKMum@wH|B(FRodf%U~NPWEQ`6Z<%(L*lirEZP9r?Y`9Bs8bmuaIR+c&`M>oQA&;{- zBI5A}Wqh#{MZjjttNl|8Q5g@$W_QL7&y6cA0PJWF-C)GPWk8Te)WQtVh65j02bF3w zOJv2OR&aALHYr~fk{7~0?B3h1?ROrnwJ@vSm&rGnO%xQ5rNGPV^pD@lw{Bhu9K@MT zWU9O%pPP1y#|(rZ5$q9;zmRH;4=ESqE@;+rQww zX8H1%nA_86Ovx+)^1v{uXm&zNpk(1|{joWm59G@=sxlCvKmBlFJf#~)T^}A8B`0=>E-BE^z!o0R~kZdJg(vJlpl$l@(k*UKlVKw zI{?EfdA0z}YIAZJG{L)h)h{;7EI%8}V{>kII=W8uEk$4fXl{;ey)FGFh zA2I$sN&JO=f82gu4HDcAMG2Ml&>#)3FJ^&KVtK7KBC-FaUz+&ug@-?EZ6*Hd_G z4y#2}1d>EB*~cdbcq9ZYc@hIgVtk$?1|6|qphD#qbcn^~MKzGEJZkg&cRL#z-rTt@ z9;!E7PWI?zI6E#oU-mlBmug5lSWl3ylA3Jin*G_Q{nint_}>s0u4*W*Oo2)96oKv@ zJvkmbaOqMkm)Qb7DH_!}GBvTDx|miT6e5Gl!-fvsWr0_Lzd%d#mO1&vV@y1x6ReYs zHTEscR3~lQg>k8HS)33XTk_^$3PUuABT$BrD2NX)@pL+041v1U8m%7;BLjh9C05dp z5~Ea8P<|Z*wc#Xe08J^7y4-<4!YcxuSOKqlO!UFcxS^Je8VgoC1{(if1V?bqi&@lnn<&S?HmzX+W$fc}w=k4szB7c!1G4MPqQmD3ypuV&La=QkZB8CP76Vh)zLi&3Yzo^#0@BbBbyR&Ed2tmiV>h z6<8qXcuAB<>CeHKws%E<9<0o=LjLm7vgu2q)SN-UVbgDC#pf7I9s?$~)|fVG`P^}Z zrzva=hzikOeyl2Umv5HbB9Sqb%#@Z6B!KRZ9PycTPdqwXvDW?u@6=}gD6k_Mau5nZ z1<$ll)A?RbI|JXzeA2dEQhR7^pe2ltOFzwvKo9H;i`2L?8q2APR}n5#&WjS~Ck)&< zJ+~$#za&+UGw`(XO~4+MDxJ)>=o>_8G(JRzWA_KHxmz)dV|nwYjZchIeVMLSXqOAa z1?sSMK0*)R_DrZRBZaVro}TIsvn(2i? z2&QDtHQ(9>xL-S&V!$PHFAmGGww-Jrs0c3)x_b=q8xQE1{t5IpHzRu>j3O!Aa<`VV z-iD#9HzNK7Ds8#v>-A!RWTolj$j**eXgw&F>LpJk8&3WmpVnaff;c)6k zs~6uIihKL<{vhPYBT6F-m^L>Sq|iYu)L|;U>Nw_u#zD^@ZL#c9h;4mkcK}F+EW3cw zv)2MdDA{OjDhGT5o#S4i=<8}Bpz^t|vD~VU-7Ojteo!5^94ml-1&l2%KF?O#n`rKu zYQ=E}cy4uqFdq>SKSLz^>TiUhoCbFUK(hC62nGcN&UgQi2v&d2X>3vQ$6vmEo=&cg z$=s;Y*cX|wYmOxF?hS(50T(vP$ClXA5CePoe@OewusD{s4HU)Q-Q5zL zU?I4>CIoi^1c%`6gA<(K1PMO4``|9YU4pw?IL%t?{m#Dj-_5`2Yv}2&uCAx*w!)2P zG4$Or4~N|fS1N=zpu)<3`uv8N$4P5_M| zxNu#Lbu|7IwN*a4tE;QlbPj`r-;&C9xfT$DeV>dXnl3F<4qgvx=eh(``EZ1rhS6_(^uLYYbb-)%=MLr4MV#*JO|Lx z@lo;Dq!ReGbYJk79hgBi*+tmgyiQbqQjBv4313Le216fFrz3(GqO&w#{74+TQKMa3 zsb{1NY!!Lqucdlh=2Vx%Ri(||fe6WtC+o*Z7n`>#a>6}zAyrMDD_4ejnZFZF7zf-kXfJ7-Iu^dgp-zC zVQmTI(gRNvuKFrA+rcUNnGzS~aP12H8qG2@2~N>x075hWSO_l}wIie=d{5VQF~ocY zfI$gCKZBTX5pO7S_|`n9ug(I;9WtrReTQdRt6N5dv-H9ozpx}9bbgi8eCQh`4Ox#% z^Y#d6sdwz@6UV@9&!S4Ef%*_-`tAyhl;s*7#0(v9#0)aV&GE$RiQ4AL^Sc4FuNe#=izmQ=d?(dq+OG0q; z%=Sld0-nV9-7JqW{*PQmhv)Gi^Wo(15KuIXC`k2B4j#pO@8Fa+Av(=(U2=10&|E_2 zcewF!p+}D!J)sJgUoKP<%;g}kn1WP3Ok<6KPKXOxJ_p(l#uu2}=0kXccVWXmM~zkY zLxgLTO!EWgCmBuEM;MNOS?W7q46YimglEClYH)UPaP#iHLNA>`m;+>CXJ4WZcu<U2MEWQzQ~llWuBt|{*3pw1!tcq7)3;HUo*Xlf5ZBudbt0h#B%D^yAmq5xmv45#JT zm}-BuN-o9WWFaWqhimF?bMt`4rc$1(*VnBQ)oJ+3s$JyJRBqT}knHUrCyhoambCI# zftT|D3fg!ddhyHpcqVrTK4jsi65#W^867*6nrteWG~mpwh7H7HHb_T zx)ZuX@9=K3TP*zUC}G^JpW}$&i(c8E(I2EHPlqeu7_cj$)pe<6r3w5WnPefq6*3l) zGBxrEKmR!9zr41DcG_h^KF7c3%)*DW+Pr@G20dIoU5*d`ux)I^w&vWd#DaPbvyt_^ z_?1Da8}Ok)?kB_5CMx?>2~X+X`bN<9-a6A9Y(Dfj^ckdy%9F+TaH2hkPPsEa2+{2B zY$F&=hRjeaV0WVnkpj={yn1KYawXJd(?qsN36_VRlHMmqmX2lq&dwigOxwIZ}*b`k&ZW zMHsBybHHy+R|7rb`%QaD$*A2d*4G2_Mo6uF9M?>m7+MVmcsNl`oQc?w^o@JSe;T#J z+f%`TJeHUm-K=Lz-f*o8Lj>WZZcjGchA-5&{r%m*ZxNY2aT0J)@8F*h=oe&>-W{+E zdKFB>tqa;`NB$VtVGIIQQNy4JsLs{)2_m+Lr^&-vC^#=Y!tsm zH3nkaL+*WT2B9Py!>|cM4l#F)icx%f;6m4`42U&3mpup8rP7&X@w%Hpgzlft9g zwm!5vsKpJ0Ad`_`Ebq)m65CBTyBrK{qcy;R@O?OkcANsEu%<)$p@LxOg2p?UQ&-NU zo$!&`e%ROfdEi8ODy>yXq79oluswuA2iTa!p&*bv#Do*g_0;O4nLw1mmpF?unl!HZ z-M3nmh|9r7Y+Bl(8S_{@!_x{e@O}IgbB6>U-=;4dWPdL(G$QW594^cFx864H8<%W(V{?xNCWsuCNbecT8iz`U%W zNt&jhM(qv~-wWIar1w=LXnYuF5}fTahH8Y1;$nUim{*_l4h4zzV&0i`YlSILXs5&> z^Lc(cEeQH#9TEG$uV z+E(+FU7_{%uDf0`1PV^pb(E3O#_Ueq&`JOIh`UDgk|^Vc6oQmnfBm~{M{Z?fg86<2 z$t?#&b8LAn@2pzgtSKLn^j;aaQE{kQVL?Ob%@myTQE`K%|LH2ukUG&Z+#dQVeOLy& zpd`Z^yD?GW|6$?+ro^D$6MWXO(-tUS7O128jI2hHzd-3)a2Ey)`1PTSyQ}|rkIXM!Y?d!N(8->{uF&I_=mnD zrt-gTy@|Q0_6yi|Z8E2lPvg~IFSOW&O14+}>&W$db*U0u03Jx?WtE2%TJBl=?;52= zZ*V3$i`GFt7-y|ef>Zb^FYi{GCZTk~=S9W;{|V9u*V=RfAvjt%CG-1+@) zyYAZmWdRUWv9-51by{2huPyxp{25Y7W%pYCeb4}tjqs`ofZkio|KAZKs+>a*I^C82 ze*~)@Ross>h2pgLPeTP)WqLz{!_0(EVo1)bGE1Q;WD6I=lYJRwEF*Vfgma8pIOo?J zMHc_*cM@S>7MeT~6SE|Yk%_-?3kJo=(5acJ^A=d_V!wP8M!{v1om*_h@et5a?J0@* zI6fTOnpr*&F1PSRLaZI$=&fgvB>s940Vt7BWvhVJbcNCfH+C|{Z1$T@xG-}PF4la zNjpuAhmhGbx0LVNe!H)Kmz1@sOfi_@%hb`zBwj+izD=k6_K(oswD@>&L%(Mp0B4U8 z1xT%#+^@go|6Va@h5J37Ba#bwCJF6)Xj12jDdZq^yW}&xlBdWP-wsR-Kk;Cz@vCk_JB~uDV=*yWuFsE;BZSGi6&y^S@ z)hY?SYL4Dgz<_;W#Wk2xO}jzZDdqwAhbGoiDlRv90!iiO+UkzmT^9UUFfIYPTYF<%kSO|OjVpK+UU9l-oKKR>6*&MYTyYHAv+3yX3m-hhQ@ zPasg_MgJA$l%R}SQ!}(vu82a6LKV~_UK)2mZkMSEPPjAoqrxkEX8ziMt)8dto zyaASV8qW{c`|Xb>KiNAT;%CbZWma0;QsnTXjW;vjSzx54rB6QJuCV8aopL(%!1M*h zg)MUi^OmiN0y+phQd|X%A|-lucJ{PG9?L%w7+WBt<%$FTX^n~<5UL;W(>s#`A7n`ymuDk1Dy^I-*TkUNhjNGmlZy^o#fMo#j2Wpq_x9-r9Zn@>aJVzFqq|NE-NGV7!?}AYQ zq_=kx;C6pmjAzX>I+~W8=>Ee!egEE?b09uAGJpruWoCb{DmijN3QCdk+Qfw^HhdwbBE$>D6u$FU zkJs3?zcSvf$h`WKZaRlB_0C6JrGz>ZZ9BJ_5>f@=Jr54lg3Vq$O z%kriAsS2T%RK-%YNCMV70gLIo%D(AZt7*uCln{-`E|xdIX>U&1FN3R?EVBL1-}~G? z)9JLi)@gOBF6S6Uk?=$$v+7I#F8x&Gd3}gnXy0~E08l?Nf_SpsqC*2>x`%UL=TLU&aNuo5f%oYq8qPz4yl4=t%WGpAbCpXT!VjzFr3U7@B}bN@ zME`Iu_y2-y?x^A~(I_j);SY0gb0?mVIWYocQ<8w&iK0fKVy@5QO%jtbnwx#c-)G1V zVH3At1NRO1@Ix4QEJPOD4_+T0E{567^TMnfWo{|BO&~}*&1P?e&embKxAmU*S!Itl z!YB)OvwW17OEHD7sIK=WgIsOas87LHZYQg9rX55Iz-#{2Ay(pE^t^OmhFP;5i|^!; zU65TK^wjy%^@EJd48(-(kn$zp0*N{R36oqv7En6%<<4DUC|vBM80H~TdV_3iZ10}M zs-_sd--#h1&pORj=lg@KLEkza9+>4;52uS_ zwW=JnRqi|kwE*E=ETI$p7;Ab%ei(&^?3kD?)#NFI52GX|O{kQum9d-z0%q=_VmA%NXsZlM#U<0m2KulSLIZ8RpzyScI0{V z%9*%0C0t`ltaJyq^%$jNTE{17Oi}hB_oXz{wMJe)A*s{=$;*D_| zp`kml3V4tefI0_835s%^mJ$eY8;|vDzMX!{;C8g!Qh&e9K@2DYD-sL0Bdi6HRl8bp z88GN}t4nZ3s}UeD=}kJ4rR%r2vW}*51{Er0Gn{;*`(ivebq)CCtwE3Y5y)mTM^}J4 zL)}a=zcD``7QVkUfK+dL`X!ZZJN!;4CajdOk*1y8i7i;5_Ec0UeLI1}tcPv5s5A6F}s|Jf&!x=S@5Z!sejbq?(zPtsJ?4D^Ow@P!@i^G%ACi z+)fu+Z3B*|MGRiUzSd_&{n1V2&Dlv-Uliy?_J{L~vLMY{Xc#s4MS2-Nl}=aTxQu(i zs@x>aZnajMK?wqtnVDhLKSqw@6>@mtiBeX&M^t7yn!D&*hg_xn)2O-}phO!LIH6PW z=NA|LG7}@4#rKPL(Hkt(a8Z+bF3&rPlgUB_CV2pA5(RagfXduBX~LJbRAJIf;sT3& zjTHeG`cP6rN=D5$%SUs%Sf#Gtnp4#Z{oqOQV9c(hypjZ(qdn^O+aLZndT^r)1?|m3T5B9J(y7Z z;{Vqq(`|n-B+KJ~`0I3iG~M^XfQRgV7E}#HFugP;X2snoVpF*B_C^Ip-N6MRiUx{5 zN-bB(qIwh_aMbUlp7cs@fU7KLh|YqZB|I;+{e~KuAs}f6CNE z(osqTp=nHAATRtnyl`7zYW`$>QM$oMz`J>=BJ_;+USOLU7PJeKjzKQqr1vaAEw9%f zP09<%pPM|IOma8fy<-*aSR(Tx1wQ$H;kFR{X_Q8cvvxx4iz##iF-?i%_2ql_j(uoc3%ih&c0Y>|nW%bwTvl`>8LcK#0XgF1pkPoL6u6*yoUiI9l ziy=Gk^qng!`tk8`8;|Gxl+%;6GUjrL14B-K^r*1>(Qj?k#pCJxjgbkF$Y(u`jB;92 zLZdp-hoDWG<8a-N7wTj-e}lKbtA=&Ut>a0zWO>SIQMCe5@%zLqlI_uws zpGr05w4jrP%G~H0LPA3EnY80j`)M|gulWoJF;UCD{DiWo4RBkJv<~JBbO`dZ^`qW= z*JUAzP+R(1?1uPY=IMH-C*$1`n%%Qg>L47%m7ht z?S=z2lF9DYeXmpllqYOmXu)2mXI}fqZmR@SfFOsH$7Vk6&sZk2!dI-v$nfY~O5Z23 z*>w^|QxCul=t4Kv=zZ@*twU$T^J~qY!ebjd+8w4ICM8bl=E60a_^(f;$yoh>fCA|` zbog$5(v;@I0GJyEnmhV9{u!p4K7Jyw8CdhIr#}$du-&A&AZe~z`=?oL%JG2=Ar0ukjIsT#}rcX;@>S;4v65Vdwg`Q zX3-S-OmCt%CEHotbFKo}WMc83$0TRnLjx4-?+i zybBpnjJ>WnU`?Bo{Wvr>Qiy)2g%DFmLyWSGNE6aRf-DhQMzuSt%Nuze7W^}OO*#KN zt;|qzwrO7!_4rWM<_{@x99iUHYgKRnQW-y8c$cYaYDQsons1*6TLu%)c}w_aL|-Tk zRi})WwxgrV_lGRs11s&tOA!XHIK0H7o8u+t*&AvnXBS*l{AWn>iM&TraP5XZR5-PQ z4^?H4EkJ*|GZ~rJtgsuP$DIq^F4LZvGzNTU2`jLcCFs#{vkG zIxG@bq>Im(%c$0i++$>MKQ zcENY)FAn{ggChhjbcsNFaCa;N*P}`UzqW3BuS{bFm@**X5}I;Cz2lH11Q&xJx!hankie+cU~Aa=BP2Z2eQ96LsOh z!B(dWW)H4DL{gVoBdM@MB}BSPRQB2UI@qKaJvDg1MpZcCm` zUZ1{h?G9-2;*Q{>P&_z%qG|8Gf0#y>>`VkPDyCB9`@yC&Uza$VQmdh!TgT-SGg}NQ z_GzU=)$J+}u;(J6lj>F5l+1)opuBo|^k|@9dMb2Gle2%qwz4~uh(P7BL=umy2|qRV zq%=ROvbr(*{tCMPv@+vR%$UD3(F)61`=BM*Tl7UPgV@ETa!WDR^(=1)}sgAa)66bt6b|xXpwE(!$D~^bIShWj&8Z%+e%=j zqW1v?jBU%Gw%^X1g_k`RD;CAF)K6tnH~iig1uu(HFs`BGXw*yQgO=evCkVUs&EOUJ z6Op7QT~t36O0IL6hr0r%(=H=Fe#0**J-vLp3rB|A`!dl4eTmTsv-@o8>0D3>J<>HtuiX79zUo1Y9_i@FQrRXjt$BL})WAvl5nU6;D z(S8aEyyB+?|Kg_^0Dij0yL^C@Ca{z`t^35(D}A(CznNJdp)tdwPnI~eN2I40$BDvX zLffY+y{YG1vj=N3zK4nMwrpK@vb*C8)RiPKQ!r{6y>q6T>gz7rKu{zJ^40bnqfBTWpeg3qFF1}&5yDDY*X}hW@0Jkwt4+sM1N0fhKBw$ z-=4aGUmX=IUG&NUJfxIuPxtw4$gFRkPqbMc)h~ z0g-XO5E^%FRRrDabu(V+;nvO}_C4=tj4y6N1VgC%iKYYu`=5O~FM()M+JTXJD;nt&?EMcccb?wg!a;$Wihy(0`|E#%(JOeL z9_x?AIa~7oK2%kz@Yi>UufxMu?O!MzuVqJk%06dz-~L*rLFsaKaL^=qz|iV{o{xIhbDPFkEFM= z!>s0ioC#h4z%bCT;SoHm|L-aq-vf-u8d*ji{{Ma*Fx@4BP(!3T{&U3vXaNSy&cVLI z!omWOBCM#LroFwnDGq?Ce25|G^YRoTAK$UD#ZVq5DO6NcnAzF+;_A*7{`ZUWxX@<= ze_Td(zI>VcvXp#R24MF()n>>(4+}-L&U4CvSoExEX=&g7dcy&>s^qEZX;ftuIk{W_ zsZM&uqa$J;?N9tN(-RbM8I|)nP5V^U)z!t;u3z1Puhd<6h^VqMhV5E=rh&&b{$jI7 zDUsIPR1lD(Y4i*r!6X0#lF9EF2v}l@o9$gn)C=Up7hm0NYkrT>;^N|aJ(HC2fKMeO zww$-TynN?We(o`U2S@JPB?dxhQIN8Rq79lDH4qB+Pj7IDq=}QM{d)aYr^%@R>tYX6 zMq^FbXK-jSLcZGNTR4cHmNw|-bWNo{mb?fMDNmjVwd?~{tq>eeZg{O0@PpH()8N=_ z%+c}j;POaDd_uyjl3Kv$fm=#S=6h07Qe*D9FtBbGzu_m?-QE5ZSC_=2t)+*DZ>Jwe zROUz)h7q)Gq_!0@?&|8gy|?Es#R2$qm}uWg9CV$BhlfuwBtp-idPD^ZOixWo^46kz zWMpOz4#h*WOInF`B5buZz?3kXKhV#?mRbIw2xH^_)V{04z^?#(9KX&J` z$Wetc-nX|P%}Q-0`_}u=U`?;<6MAP~$H69Sn9#qG4PQzHNmn^+7`_|x<8 z@s;d40bY#{;SJD1Mtk}a1xmHhn2`G8B}>3|lbDbs z;c_@r;0sGcYiLMqLxxL1p~KFc z=#idiQXYbFJNirc+NtHob)dy(wzuky+7>7}~4p^G~lsU5r*Ns}?kY$<*(l^w=H zS+V>o0FYG#=(eYAVeNhb*v}*|FZ=}vM&L}u1AfDcdu&DXS^j;x-`?7is2Hm-5em}d zxTi$pmjxU^_{|+=rQB4XdO1s&7{VYSbcF z;}=Q8y}yB|V2O*%OWcdJ4kKZp>6Ju#O=&mq@9tBw-_WuK0r&wm0r%!^KtRCN0B!69 z@Uy?FWz3zNzR?VL?X6QEELB#z!~OmHXkS%e# zPZx|lN|~Bb#HlFYQmDo6Ma=K8nr83>9F~BeBVi`T09L^90B$tvL;9?}mI@=R%9Ic7 zNdlWhuE*slA9CZz^D>&`vkVVs%jf3nnS4jw5}mq|tCw=VwLE}5#Myz~_5&=G<=Snb zp0`Iz%45m^M-M9t-J8aM_a#mkT#pF4ygd(bLl(SX=Ap?9s+km6Jo3 z%%$!UY%pvCC#CcGtv(6LF!r~uw7Bk8k@CbQ#9Rmf{-6H8=Yc4xiWet->o3Qdh`1p9xw-j12%T4Oe`ALU$BkF5qe}9)2Bx%OXtg27j6czkga@bMq4Pd^d z0JawJYMjq_xo+9Z5Ebimbkb{}wn!dEbC*`MI z>@+b4MThgWUQH<=)N7${Y-|)do0yuSzxdv-g#z9x68`VQSU5N)L|0c-?_dpg-ZTLr;SuAlDOr(WIA!5*;wqGO~d z?t8Il4d@-?Fu%ZqZOPiH{V5Ym;(2>wY7{vam;B?4XnMxJ4HRq?tf^7yGKcLVw*&wM zp{MiO#@|-)SP==jgLCaxni1+Bb_82H1FfJ4XL^V?LUScTNt)eG*|q@3S9ETuJ$esw zWxELy26D2egK+=a&NIKX*Do)ib0fs`4|6_r86fstjtkja&VavDUx?>lq3@1o2`#N_ zFHBFgS-2Hr9tWxcLqS319jRcCL=QT!dVL2LCB?zTMK4mx<^@xc60qvfJ@=+Nvgr<8 z&?fD()91h?`r|OgL0y5iAPB%97?d8CZanoN0WF1HpY2R}d}sXzjh( z_C^BmEm^%~hgkcyD*fe}>w`JmVVn~vt$pyX$^wG~EoPHyasii|w#QqXNJV3%flJW! z&Eed5t=`buS~f5y%W`Hc_-sOut1cWdOd1_ZD|PB30OE`K+?>F}vFayH?QP5JYK`*lI00tAKNL$v5^Pq>>_Js+Ua;*H zADi0t{^)z}&Tg^=y!SXAe0^mbu6|f4@yJxq1+OjIC;_+Lmcd~R(^X?>Z=rIw2N>9@ z1{Nd9X+sZj&sT4b7pKon`=vk|^5yGl0j?*@Z#H%7zJ3Z+rIAKeV=;H}vNkJ!uLfe} z4cD-HHf8=@tS__tdy??yewAx%_%O-27SeEc2>;CZ(p`M{Vm`GHSHqX(zVfaY$Aq_h ze?1^5o~+Jz3qf1N#>)5&!B=nbRzUOW?~+GVz{P2K z&py0=|9yNK7?36Pu#m!3b&^efW@!uaV+gfL;0W*!oE42l_|2A|q2xhfr9cO|(Jd%`fL=TrJ4RJZI~F@5BRW#0*f?V`S| z`#J|~_CPAj(qwyBZ}Pi4LPkzeF;AOvH17fZaC(nWCZV*nbS4_EL0IJ`w=841ZmDsC zDHUy-H5Dtr;H6ENG-{$@S6Wb}&GU9s_|F;>d{i77qP6?{gmJtX)Og=mPG)>mgU^!d zkLPonuZ#J`QSA1*o@K9{OckaHZe2=}Vhkt|^adl;vYTLw@9q)w5H-S|ke#6_6}j#q zU1pr}_J=>rawCCWDLz|H5+W`acwNsCaM^(<%Q*u~p-8J`om|Ijl_KRt)q(YPD{r-D z2Pkd;YIqof1|B;gz25WsARaoSL3joeyIH%7t2m)ZS$)_)8Sa+-f!tL%iesTuz{-XV z$C)$qb#8L~-U=-ceq9zrLb|caDEzw{kNskU8|C%hs>IY>bfx|aNU{Q$ZG&W>X~N8v zfr5{(AQ-*Ur$sPZ=_djN6BM!}$SW%sD(&)}>rtl=QZRdH#+!j{m+B`$*t7!`-%fC7 z8%sC3&Mt0nq-9fU+`uW@{O+uPr#GYWL!UL2at18b!e+Z~`{q!^zG1@aOh4@#x7~c| z3jFwpKfmh2d7Q14AV`s2NVIH=JtmRKmX1i*snvT5u~8|6+H>muE{BN&v? z@(kKMcS`Y2)EX_{JIW;=e=O0HOKuV6PGQj(&!D2SHlnt}!bD@1XEKlOWxD|hTBMEUC)2bZDUsAE_QOSADQaQwv-LqGHAU@IM zl0Dr$!RX1F8$xI9M%^L28=76$Qsf|Q!de3X!>}vN*GBD>kcJ`&Cri(Mxvg=>z}9(X zPg%~TR%6|5BaPJav3f?s3xs4dzOFQ1qyIMcP=57$E}ga)s$g)xaZlJ}$N*~fH3I__IG#G|O^UkYH!O>GZ7~}Hf|EzeR(5Dt8{R;d zar@T4p=Fs;hU?Y6IE4+XzL6#Fnz_OGa3y2!$XQM~*;WFvV#(gCGtg-r1ec3Wx>y6{)D5BNkI1$W&7$dz|KQ6Ffqvz73nJ_I2z$50rOK_ zaV&s)Nf7Qd2^%J*1Orx79E;-gZVW!t;>tI#J(z+3rqSLsHoP~IVA=vzIKeyj`*-aG%KABPP zvSML3n%*9-F}fHDaq@19(%`U&H+EODzd4dm74|_G^wc46fOJ&}H?k;+*lh!B>Bu@8Cm^UiJLq zRq=+Y6C-U6sb)RgL+NK))F62HW0X8VVFPL*A|5CD!24HpgsjZ?{ZFAQ);n)7T~Sj@ z)9~F!uD{p))&iwM#~JD@SN&Y@A(@<|9h==0J0&G$T5D(XF1@1D3P+cJSe|iE=oAHm zjLttpsrGZ|B3T!&-7et1~Z6Hrq8ydCcZ}+6ir^m}-0Co4xhD zIA;WcQiYo{ywkq^E~if~recdh|5*F)2-vwo>yMS26!hEHLxb|`9Jgzxcsv2lRGfoL zM^nN1WH%9(L_fbn6yzP974@vQNX+hukACf!e_r!8ne|*ZC5c)r!uD*`KL6|CyUDzN zi_tA*fXOM3&kMSe*MH?netnfON8J0=koGwD-@6d(g!>4hT#qc3(0Hx+OaWfm{wU{d ze$lmIuOFf5&!BMQb`<6_<^H>E;E<6o3=L%d&hY@dbR7%Xf1GNv|apxQtY! zUs&m?djbD`0#1voO3nNK?F3B8Sf=a;iHUd-Q4#r9SKpcmZwpuPYa?G#4M#`EKSh?I z1eN+N(q6a61@;|}$y{7qBNKVNx&OAT6!yT-5Y5wa3>$$0sHUc7KX%k_g0!+j448MD z4czbkO#lHA22+4rd3P8mu<>%!5?ojq$lmFF*X(W6B2J)*>zO{+Q&;64? zVvVyb#-+w&dze2c80KTz{-3;?)HKyuart3&vPGkf@YjX@={=WC8Ej=V#Cnv5h)bGPnnU5dY);#(|I&Us^hJms#3)~2U8=u=g;zOu#ZuTCf zR!d7u0)PuzDH>&_#>qOKJ6?2k@v!tCo1J;tq`v9%zujz|nVDI(c1j~YM=UEd)dnIN z@HP9|^;(AJ_^AyZvU+_Q{@ezdhoIn_k@a0({nM$>a_?B?6e=N`>JqQ56<~YAbK#V?yHUCEh<}wjN0=LdU^KBo10j~z(vvs$(JzC!M*A)2v)S9c%NOw>M;!>1+dg#6Y zpa>3Z3<#7{Hp1e>bSN5I@0r-w@m|>e(h1Gr&ET6_*A*R|n`y3tM>9hbeg~>!5pedO z@obgdpz&ck*lxp>B7wGBJ2q=1-ikqBVaW|-CoDF*Fc%aS3^jfLltx9$*?A=GJbML% zhVg@V43fI_Ho5nxe>ARoEz`6DCUeAsEJa_Sj{+R9s#a^pd7Ms!7S!-qvOW_Z`^%%=7wdM09k)X9J%Q!DT^9pf3ZfFQFy@sTY$+O%ZDODGfrzJ6Ru)htpXPiH|$A6+$h(aE^Moy1CCq#302KyeR;ze{CaYb-vqW`1X<=&KGs z$&F1#A`FdQ#x-FnxxS!crCB|pPsuFw+r_rrKSF?muxYby0O4Vy>|L9CQl|92gTB9i zlzYTy{+K@jRwYh>Y&&NnII*RgaB*0yk^yKsJ-YYT91sV8=K&zdK?E>d4ehY%Zo9rH z;;TMVd)YQX?uu;>8+`pJwKjc+yj5&2st|Zb``7zukCTMM$X{z(R`l-qcFk%EA~#d6 z%lG4n?VSlboXJ%xi*esApkN696-&w&^YwR$6y@k0sN`cg%{aM`cj5#i>p#^EG08uq z0La<=oYH>xgz9-IVn6jN*XViS$tYCHly399rm-|o+X3ipEyqvn>_527QF!c@Q(5k^ zYa-u~3wx&ms6Tr$jvWL@6~IzJc?bK{i4uC~dA8oQIdpY(1?+ez`{2E?yFCiSwVUvM zQ#r(o5H|SC=+8#4Z5KVtoGl=vM$QX-h_W-fLiYQ4GHa^?pttG2))Jn#?X`LU1dN8% zn)G0*DRSogad8b<{NZNFKH(>9f3o&bYg_Anh#EVV$zo$8^FTRRE%*WN=#M>S0 zt+UE~_Eb*c#u>Fvn)mc+fWS{W43mOEQ5FH6%nYX$z(jUU(Ty9b>+;TDh*bd5Fa8$? z-Ab)0ahAou&j{cTD@i0X_Efle{VhUl$LoZx_$tPuPKCGBDp`f2pJ;tX8sc9hS|dWj%~O`?S{z`Trm%dJ-n8ttz8 zkr+p6Ev3gVAn>F4+krU1crc{cuCAK?34q>0+=M%4{?&Ld~d@f zM1+!U4ZO86MWI)h+SNH13lmA=sAKj<;tVx?G{*nZUyqfa8^XET$p2POGu_Wf~T?3+c;mu@ z9{X!V3R!gosTBbP`+Z8N8ZxRv-K(%H_w~N!Wkp)3DM| zx2kmg_0~(utuaVp6)WJI6V&rje(|Vj^=Zp<%t-n#0)SV*X*ZRL#T*heX@zYgjCn4N zB*2T_HQE6-u~Gx$XWV)>RvF{dR)nWIiHbr|rwuI5{#bt->YgX0)e|dx!4&;`JMSGB z+>@c!$ErqOoNLADil(SpAlM z_CqWD0599Gbv>=i)cKJIcY@JOz7zwW>rW-R4Ha6Y1AqUnjlcY)Sn--rU~i)nADyPg z{t}D?gqaK`ID1%};}AW@9{S%ou~>BP&W!EEE|7CIeE)dkSNXDruHS9F$6P^+(+Uj7 zv{hdr2h;_t<>Sm*u9DxA7&SF@;uxDAo}j@WbCtf$bxU?m zO)YDpZ>s`PyX)8{u+*Xa)V$v7ozMrXb%;%k%^-))OoIX^d;vml{HV&o+jz~XY$_Jj0w7-T@X`8^FW%fiajY@n(5;wv&=y*MjG`gcwgF4| z6sF{Mf2mWi2w=3u(?@auKy;EshXS_DQxLsBHj{pN4EfS`K_C98E~xLaEPpzd>j+o9HMF?epr zL(31KSQ833RIWV5aT4PiVTUnJ%(%ZQehtJA+x=eq`}kPwuXM(OSzkdOu`M|vn}7(gVYC5G-!rPCp#9a1{Z1HS*y zxjPr<>Rg<;c&=tYv7i0yz1DZH^;_oaf$qgbJPVslR78R{Y&QK%vOQ0`@U#UyID@RF ziY(arMLo<0Nvw{hhO1pV`@~k%+{Hcv3UT0%L0-HijlsCwZEdAN@hp?|7B;h6c>TJ7K1$U`a36xn zoW4WqLro(f!b45i18oz3TFhjP%7flTB1hXtcUrsx;x*#F1&o6PAQ;JNvC!pl|A~a# z`a{`XnT?)VZ#^=SFEU=w91#z91t$I+lug8XQsK?fvlyd1Z~*&pM|;~v9plgL)YwnO z3;*-9+H4VtD3v7EzzR?XV6L#FM2o~qRc{vt^$!&q!JMDd*SunVfumSXgsDGFqc0Gu zy;VdDA`pyBlPS#+lWihF241hIE0V<6;VBIb$Cr&43YUz^fF37*&?vSEukM7F&I z8roBkQ$l~~o-tl?xXt!e58XB(&Jo|{kkR2Xr@!3KK&VQ0#TH0NoV#KsFH`$$7 zq40neAH|d)D*_^z z%8W$l*ab~dPgI}0{3rx9Q?bAo+@89JEWr2Nwj*LQLN`0~ppmV^S7htAg1H~r=@KP5 zwH)N@FnvCj5?Rt)7u*lI@iuuY89wqOm9tns!4bOayFMT1;lh|n93`9c z91pO)k`B15al3vK;~8IH+S^ZkN&WB;N+-@N_K68=u|{c{HvVfYN+{gN40E;X!w5*vgn{9 zE+TayZPLLKRWyFXbhr~AdTULbp8shAx3!?BAoKM-a|uE*9F-2m&jWVH2cZ$V*REXM z;Ib`)t%c@`N0x$}n0TJNhToqJmbFm!qD=E&Kua9p9n1MW*to`c@C<&~rE9PYU&oXL zz(@CAlD1uwaY?^*zs393kk9aiD~O8Ey!q52sL%XiA}2Z0zQv?B|N5SSq$C7V@zkZ_ zYE*GExUn$IYXl5cMj^NNWCH?@(=FpQA-W zWwrmtmmt$eXnZejx$h@D{XbNeFp3)T{|q90{0zh?tt2SjHydQW0rH|yW5X$(hxe7LLBz9HSM^4s*S+Q>pJ&uRMr=jowk z#U%}e*J0k^uG7VQVl-b$ZU}n4a59_U0m5F|c3s0Cuz?-u1YA>H!{3 z{&hN&AUK@~h_Q2U6rPgg9k8Hmn7+#M&PN)yJQvybrgBqNh3f7WzK~!Fe>&qc4NRaf z`*BRAU}}glPr79@j5Jstju9^_CN0SKR@n~{yMvKOl;7D5hkiFQdk{>G z9crAtwbu;#ylGHM6QJt|+}u!)AO1djvR+H$Zkh>VR}`_*y`oh`ik=K?BS9df+%tQ zQZd=XvD-Ne8ohcc2N>|q2*ae$NWy6^G_zr+-y5M4DnJ3-SpKU@M>g>jTa?M7EqMyR zav)^wp??(uPt@b^p}`gOcwjS5bACE`kDl_b$}iaYgVCuU*^Abfu+|(6!tbP6NQbvFrm}yk!ct4vH278CR@@^Q?u1Ieb(>g6y zTuK!0Z}kzpm>#^92Vx&&tL5BpXU9d`Zj~w z+%O)-G`deY0U>e_bvvOupDL6DbOIPh6%%dOn?~&fdb1EXUO)t0-{d63e3fMDxc&%3 zV>bOV5Ux#KTU>KTY8@~T)MBoOECH?3vT(&WO4`~KM$JA)Yn&NJ@(7RZ?|Gy(;2&XV z4wGx)zCwaP;Xbe*Gf*!z?2!YxsXfIh2oE+vxp7lrr^HB$MWI>$2D8OebM;b>qiA|+ z?&DixEPlGVDt77JTnPhqUKi!{Yrn69mjnCFWSIQFgJH>(3_nabyQ~}b`!vCGg%XKX zRiAddg<>$AS9J9Hjh}n7>KclK5%VpxM7~Ytw!r%*+SfYPYlJHoRv>wO8B3~0fJP(u zIkA$q&`0pC{ai(kZtZJI3)`Up)*m8J96&=oM2^5eiH*qV=~MWq`16I$RG?TrT5mXk zEB8eyq4gN1hu-;gp=y?DK$c(A*B_)tqCbM9Lw_l)w;`SUyf@w-kY97U?9-(RpPf%- zZ>H!95RY4bY73D^Nm&2h8T#f0jOuZTW<1Hr&)K4H8|sKMaYze3tj-_o^2|v+rdYd7 z86A*C8>CmM_MZ0`07{JL4)>V1cWf^kH(hoj{R7@mgw{u4E;Rr#V|H@^8}Yf#=>CE> zto8Mxk?y-aq~~AOELV#zbTNRrju}Prs`iUKP`h zM1@k;PS7#96 z`)vh#-Ev-@s~haqanSn@w4zs1EZwe6LV}qIFt5y?KuJYU=g2i`PE8XiG2vNU08k5jwV~$}LwUj_tI8Ce(WLz$ z#tSdRw4=z>)pS<9n#5YGR@m(YifQKJS2`2Oy!Cgr7wHldXJd@UyCcZ-`1dZ#iTkLA z&43PduGWrQLJi~lBJN-v5u5>CnyFGHcai)M`0+`0b2VaqPx$o?jrg$BmZZOLzg>@) zyYj=T9070tY{AB)W|_irnoRHX&P$pg~aQoEHJNh2_WI z$_Ke4f(yO5;A`y?b;&B)xat$jQGnYnhFhr7cb5Wh_DeyGV)hw^t5<%jnFHf*aW7r- z!tMZ@vLK>l^(LAA890V9iFd{x+s(?de)D?`WCUId!x~T6Z;Hzs=S+E`l}H8-Lr3G} zXE14vkF7|tS2Eqrxb^(-m=5&NhfX~8fGKl(!Sd3X$y7vSHvR#Gki2AgL0)2=j|hrS zXVD(IcR^_Mnt^?Ytn!LoR49pZ+=OTU9XD+-CNzF{Ct=*XD42^+<*_88fg;ox^1Ob1v;CFjfm;N|J#=D2bltV5Gy`Mu_YjX?Ykw~>sPRC@Q@?Rd%J#+x?eFNJO9uai*;wJ-{r|3 zrAtIi%xcMssml@bh|A#+wF`ZxAO;tO0$$v%aj>(w4UcZRC$k42&=bD)PXHUNyLNfE zlM|MR=v{X2C3sHUcMEEuB9(V|=9CkWp=H$GnJMS;oIS3!FxgAR*?Rq_lZ7(P*j_o1 z_eL2?NbGs^L8s@H7+rjRRg)4`mpiGAe%T6NSx7T|^FQVfrsF_^`Rd7T=dLSDJ!#w7 z;+IEy<|=6 zaFuheQ79~y_)A#z)0O72Gw~ql{A*FsPi7`cKr&5DdR;h|Y>cO^bgx?I*lcX9Vcn>E z7H1fvbtO~I^2%X%K3x^oS;J9O08D~X>Zs)cYV5m(d4mv*eH@@(=W;n?6FZ)c)Lig1S$5xbut@gU<3u9UU5juhGlrl-3R44D)^e(jLwkp1^jafdbs8E>nqzkIl`sbIv z_xywfuwuI6SRS12jU6N$y74{bKwjs__;2{qlvwgWfXJQov#lxUa z*2wkXpYArW=xDWAYU|YtcaejTX||)_Kr)!%ZNJjzq=O#D`58#rzwsN7_qQ@=q znFl(!H_iT~PMh>knPOnVputSA$ZQnbe1=^nFF!k&C<|tMjCJr#vsewV4)3sx9?tV) zDX{jOC!D`TvL}Wc?MWGi>9g1#m%S&prK56Gwo>fdv5pL6DRXQ33%0-TO=^(2$=L3A!n25D?fsOJQLJNnv3k z1t)tmOB>TqMnrNdl#22SX6V$flb8g7V`Q(yO)v=&c|*}e}euQkr~KsXTc z7}EIt9xIUj$b;GCX%I0dDe5mA&=MeU;R0|Pj;+ivG!zu5MC@!I8=D(o(@#Ddc05bn zA3*(>(Y>)&5CKbQ^FJo*I>Br4*U2>Tqo4xB@G@A#S*z4F-WT`;L=o zCW9g}J~l*sH6Ys~c(E!VAS;B|EU>L$WJsL&hT=@}WMUqqeO)@lVPOs&eJoDSw}a0t zeQFY&;2@FMedE#H`{-|UfKX=sFj9pZ6MeK$B-9Zy&MeW7qr&H{l+41k)qXH+lYCZM zw}kx7^G;~;C>AqO`Jdq&7)bZ97=|#)5aH36i!m9jgs$g z2l7GZUPHfmPbI$>>!WD5snJIxDL+i6*W@yo$sQ$<(^&6a2L+ZIqb6OWdipytNXkVs z=j5VQ+>OERCRra0?_}xW7W#y0X8lQ{g1i=hMi+qh@JA{l`m!H@M+60r3@#!7NjA)Z zC=i>N)vds{sbi3160bsrJc>=b4|#)a!?ffF*}pQg0^@)E%Ht`rIZb&>#VGmHfrN|LYf4MHjmJnpNKfOOu10+kA+ zs!&Hh*RgmR1{Z>EuvZ?p0zWJGuTZ|;Z)xz>J&<(}=O8SGn0TN={mzDOWYW`9_&CKhJ>~X{K*|Fap;|on_;LOmnQ75B~ z46~TOra#qSlJSFKtl^}goe?C{Rh5^B9vJ&z_rb7jiwjz_XVl4KTE z3F3tD1gt#wE?$OwE$+*Rr3r*5Z(GW`T$iw)aJ~ZVH(-)VWLABSk~pWZr^Iufkn&G; z!^%G@DU~YatmQh&p5;;sZ0e@vlge}|bn3hnUaI#YID!*GbP6$r%`(+e)v6cGtKnR- z8I@C$W|eiWJJ4b1LZS1(vix0l@O zY0IzaXV&T#Y?S#bza}CIQ)*CZnKK7M;kpq!M?dui$B{KorPgY4rP19M6o1P?#QPv684Wm^1NY>(_aU^G?B@bhEZB}q=?Q4-X?#mD3J>!3}h;tNK_L}imVolWz)a{q-YHxa ze9ZQa6E7Gh3YYe)i*pR&4gHFJ%qo-Hk*myF&C=su`|g}wnPuOqpd+M{($U!3>D1(U z&~fQ<;ab=x+E(p&=J2|ExkK-2??8CNcq{Q(_Ru;pZ!pNX#KhoX#PfwG)tlh)?fBr5 z{E=(-KCC6%z4;OJs+5J!{Kot;n{(TExBq(OV(w_{kL=_7X3Nyn@{c|By~p9L`P`%K zsSlX3jN}2XVK40MuS5vnG5_#Q(>Pcfcq3DPV=W^qqe;WbLe{~4WBg4ff~-WyjCYFJ z{=JbG9t{(vnd+Q<&40pl>1S9!Z(nL?ZVZw5Z&4L7p2)_CB(Y}EUd0{7%)-kl=3Mfe z1w4d;m6^;!!rvN$`$KO$xZK=kZVTr_KjnT(8*%ShINt6d{{9t(6uyNFVCbb5jGvA# z%ScPnNPXg?`c_U`&agu4X?b&izJabNB~4Aw#^kDhI-Ir5seJ@r(pHR7x{+bc>Atfb zb?b6;FwV`S@5*NmoNy4Y1*P!ZSV~B zguC@3Yfdnd)bCOUF1{IB2D{|KCrl(a4YMKdxQH4SKZ(ugZ)+>4{xKBX4J?FPz>37u z(==(YxG10uAr9fE6=OK0ztk}5G&x8B7FQK_qzaBPr?}E`=;}54IEWrczSBg|G^hjX zM;%pHDq1QN)mkvH(W}4VJWL)ew zTTxwC8~E)V<%0z!K1gozy*WePXpe5dp0|9v+{><6Uwx~ACf`@%$K2}MvP$kefPpZt zPHh<>SDIVhtHN}C3S>v`n3dMEk zzRsQKb2zxNV%{++n$_XJxBr$dr*>2h$A=ZGf7ib372#R_T>pAdLSv^M`@Z`y_LKgx zrlgWUUAvvPW6jI#A*=Jy{o?LE@9fCF&R(aB^UQ3jI#~Nx%beZg{f$@d=1AM^sa@~J zj5p1t@ntHHg0})t;lpsEcCnlNq3tpI80ob8=G*1WFVM@L+bxrBUjkY$8BZPH?_Z{$I?+8>j(knkRznh=b%bkf!ulf2>B*UWqYL}SLFa8v6c8VPdPBbNu5cuyb zX#Pu0;d*j{jb93iBb+JjAA$uFub|PufoSqpH!#jnd5eVp!5APSBsiv&%;P8&q_?dy zk&jSyQBh8BV?vg7puqjN~@zd*7Gu4nZla&SebbUdf zK|sSSLBKzsKtB`CX95BFk`M|4^?67AOd@$;|HB2{%lq=*XOzDg1(k&*B|q=V#!jZD zcFvzGJ_gNT)2FIMOBD?l4Otm3V|!bALlb)=Q+f|uhrc2qJRV%1kG7^RhD08=Hg?Wj z9=s&~z{!3;cA^Inai#0EahO7dSu)UKh5j#C2JtGMpED;eAkCTZRmy(Fsf5bok z@se1$xHxbzFu1$B)4Q|K+dG*vFmZBnGB7eTFf-GA=Ad)-v~w}^ptEx({a4BV=n*k> zHg>XfaIv(vBl@e?(8%7^g_nfnuc7~5|CZC#!}5PE**X8GTAvkU_{(8nqGx3IukKG# zp1)Ks1xpW88%+^Q+t23tw86*B!NT)T{{J86e=YtWNsa%NWc~jClKelM|F5K~v#FD? zz3rz-7ry^}GygIBf0_Rgpmz_5PFk*;@oaBt-;O zJV4L0A^ejEFo%$Ir5mLC={N9a>F6*q3%>O!Gb-jr1Qrz%nSuUp=2Ix%({zRG@Q+{%FIX)0)`M~n==Ogo95?~L9cKc-VMG$h z0BV7(R=Zp82_%=7o0#M>O`enP)4iyQz|z1I~5iKS12As;StWi)#dmKx-bxZO(C1{ z+e5Hx+ki@iDAxpTly*d!EYTSYn9`r0U+=o+rrG9}jrZL{U^0i7@@O(!UC&VwuLT;n z$J%W0WUe?FE60-Nk-dgt>+V_5@7*^TkH=>pQXXlk^Ph%rfc^~y7J*8hz&)BA-+{A` zXoW!|RU(6ZaJSM>Z@=ZoSw5;+Ko&tJ{BoB-tjo0!IW?AXk83)=EXiy${(Yr3`q{p; zbA?eCjb$>GvZeDbmtCntOjVGYTC<=iI+J;hY41q`v?hjzM4{mZKY_{EOERtpF5*dB zE|-fGx7jY)cFlcwM7gxq!`?>DWGqWl&t^&N<^U!|QrTRpdnX@^#XGMPiB9!R;#{v6&+TO# z8=KQB@D7(p#qDC{EW72SbwF>x+P0d-=79C05?KFpdx9MXm(W2v~`a{Hj!o2rb4x%4Arh~eXTKHa_8L- zmwH6CLN=A6iA*|2CfwJb3ZK(U1!gn?dPDq+L?%T{ksQ9kZMJnR{*tu|6VWxL6663S z1RZlRYH$*jQrX>mi_}$q0<9)9j70KiEcxv1(8MFCJeAIT zCL|hfX#hi*@Q<&c1u^Jex?H|p^IDWg4}?5ruGz6}KS|U4;T|v45j+mpJs+y(#qptM zKBu|uQp0$u+KD8lAk>*#Cy6yNG_hrgqFi+7b@g9<$m=SZ3s@5G*hvDytj=Z4@N~l& zoC>c#f^u0rrr;R@Ip~q5ICby}v>#m-Pk8FIQ~Fk!0@IC_VB=6QgUHTx{Xbj#VO~Pt zV}O*#p?9-4`LD&XT2h#`8dUrr%o^;r8zpDwRYh~p3QA2gQdZ6MaSXMLKen;Qr((35 zN2?&-E@< z)#=>pRcMu^v|4;Lnr^{n^W3Pjx zO`hxI%f+K5_?-VyTfc!cN%%~>ZXecjF9K3+a~$5C^o-Zo6F*toO^clrhfbX)k7Zy* z4mP2pOj{$v-h}dzNGU%$IHA2irD$yWJj&MYK`&7!wTW=H*bFjoclsD;c(L9j?)P@E zG?vB=U#_tuG~20(1_LcY6_rvGw*|zbmv8itD83OIoK8I14THAXXj6v#U|N4OXFRge zWIl66qV64`IhxXq8<0w3yfu7TZS&6cnSIBN5}82DlEzu8EIjNg7=)Im0oAGX1qx3D zRW4Pxv>W%`BQs%4n&hM7#mkLYN?NLF`&9pr#69vlm2wL?0sf_Jz` z1v>C%xfrVoeDeg&Tg>6bi;n#fae{<|0a$G^+a0jygN38q_+PJx!`uAgqi+M!ZMe74>b6mXv6$tMOXrB-oZyJ0t=CD)?(}~o zm{Nn=EH`Ris!>FZwAbH|AENM`kc?)b#4gz`lR0D2CiqhO=uOMydf#aU50%`XeM{Uh zuqOZY@^j0#ItY~0b`TGn&9DG(!Eev*^v09JH*{}St(x~>EGZoIe2-FYIL?r?sb;QT ze`!I~bRT+;JQ9Pc8sA!R5|6Wy-(mVVN`L&TK%5*+Dg!A)xmXsrIpW#*pP9Y=(tz%P zh!KVtyY>defMwDiFo6cC3|7aqHkqUAt+!GNdKr06RV&`oDEFfpT`#_JsTcv4O2LLFxPvLuY63q6@)NLnvkgeiMw<|; zHY_rEi8{K$4R5zfw{(p_=c9T5AxP9L-Y}Q9W90=rd5Mn2A7i@IO@!QjO6)e9ML5Eo zBY5a0e4F>U9M%A|a`tqooLS&}h2B8pyD5#jw1NVKu|wJz|K+BzTD2}Ase+{{_uxlV zvutnC(^_4(%qzT#?Gw|27tTVZtyW(J+gVX0YCG~pgS})K@F~(%T6#0ifU`=*Wq&!M z1VYej#%l4^%n2JL6v#08@(`gnyr(0*b-{S?pg){u%g*LK7131Jg zkNL!<0`bFkuQ2s6u>e8x1-E-81J|$WL>RIpNhs%}3f z<01m3)Xnohfsi&Pio1?VkcjVdMb<}X%KNF4v@viEA1^T`bYQ%_OK-=@n9W zP||vU9|o975Q*JWC+}ObF(lLJD%F>jWRNyUt-B|2h{bAFy}I*j7$^<8oJ{=AM7=G? z{HnZ28*npO`PmWi45<8aec!94F162nrU?D!LE=m>4f?c%Dt({ZN{juO?OAol_f(tk zp@+Y*xxe!qbCBxTciwfPU{{KKP$?1BYL$#;gjBe9>zllcwQVDIVJf#DgzLzBq_H1fblSo zF{krNw&tqAUT9RpA1`6KrpYgRQ(1f%J6W%ed&tWbYM+6M+1YQ()|*x3JkQ5L^`dN> z46ZR%(?2OCB73ObI>6C`2{?^<6X8;56VCxLDMvY8O6iXq&6h7oK;4jG*9WZUa)%gj zGuXzaUQQ)*%_;P>xA;Qw@xTxoXe@Z4O}?h^d^)UQ!h)2Fz>~G3KY?c>90hSF%6G-l$qUyz;v%|;aFWJlt7qH&t zQgGXnj1ry^u6D?E&aj>sAtL3$Xv~9flc+{731|FQB%m;b#T|o^TL^P;vE+NZnUL_U z=&gxgp(2!(gTzU~fXrII2$#vzw?qfe6ya2*$3O-qo56L6n~NXsCWXwq zbpz=tky!LL7ba>2V2+Xn86>FPN7{1bt3;rrPj*8x874rrag*Cr+69S=^_@S-3TTXc z-_rnz+-Fj%wk!b;7}Y%GRu2})^WKVQ5jDsmT!uIB3m~y;rsfOtF%mS?Fdzk)7kOr!U_1jBM8x9NI6SZ<+8=jgOWe-}NtQEb6*l zt(osdW9pQcD2^m@|E?0$ZnjS?w$ci9w^?hJ=5l@4(erGsR;kueWVameWpqW*Ehk&# ztnrx~g)nt^!&19Li>(To5QVHLmon@y;l*h44{8wBf6g^q=}|!9yc!%-c^Zuvp`B0REWW6B05*s_8XtwQ%#8 zN8SF2FPw1CWFT99le)u)OclVQHvwT;5@qugMAjH?KkOd?U2+08z62zm7>#FgrzWX< zFdpirDOn=8o#%Nzov?3TDrCuA(J(e94Foj zu>~7bs_wzFY)tCb{XW%dF>HWAMY)XFg(~SHghEu|znc8hki%YG#ao5oTXOp{bh}Ey z_rmKY>Ro|^B_?vOf5ANqqfwsQ1CB9?vRw?Nn9~RJ!C4U%D1(KqSWKBGDXJe|IOlQg1B*Pkqb<%+NIl^K##*tcZ-tqXNxW{ob#rFFno6@$;@`+6E1H>k+Umq`(m`8PTy3&7!BIe9=PG;!2FR@q# zhnj^aP;0whb6mWdg66B#B%KGSE5NhG_}(i@$8{T@>LWKmKS!dNzr-Q7^I^Jt+JMX* z{W>|3DD}ek+cdXM`KC5KU#PU-o4Y`7I{%Zt6~>QQE7LLy4;v!^^utltvvGCYA}U^R zLr;kA>1C?9`MYG5%Wv9hIX2JXS*nB>y~b_MW*iO7hu8X{Z&Yxp^vVDmUgLR~K=}1snAZiZbNM zR(Bz{M-2v;H6h!d&ZayaRG8`7q;3flnuMz2943~5M`@HX_479;2K9f~6 zge8jU`zqW8TS9vkgxozLk4VV6EQNnaS)5nPpd@mSI-`AE=aU%an00RP*&JCH4G;Pv z$!y?oI8hGBnNmfP;U#gE&`P~|)AQ6iu~$aBM#I+oynNRcM-Map_Y?-Qmb;Hj8nmay zV=k_W6iV1NH`Fge0VjmKUaX5HR&P@XR!d1sdRDd0Tmp;({aC5=`q&o@nuUBHPeal7 zkeKs^k>!k>f3&ak>$O3Rdd1&W5 z+J9#3mOB@|s#A~?5xV=WVLEJXuO9+#YIHkoip4+~l=W>8lJ9WKHCwB6#qaLJasjp{ zcsiBVx{UV^O1F12VLv2;+M8HOo*c=AM)z4gzEDKKJU1P!jff#wQN?kz9PB&g)SLB- zVe?u>#u3UgN+Mvm%ry4D*}6r%3kTnWvFSGSg2a#Bvt{osUl*F~nkol&;mAZx(Ut^C zwn`5z^%trcCh)%ACGv~^h$kOYw?Kb#iixbQ_B((o)|<#kPztIwsA0mW)B9yvIM1uS zK?}z3bKhpOwB6dWc~!x;&&I4D@_?gCE$u9;T&~mAnQ@Y6Nv)#BVlSWeeWD68osDQB zSsMy8SjXP?rynyEU51Ojqz_0yB|4>18?gKt~JIulv+Lu8TU-g&mt!c z`{yRS*GGi@iWq=4F~&)R#DGfCJeg~wcKj`D&2Gzv z^t`l&E(i(_9bf4pW|WACHaGx^r5CssO42X|`~E2Xl0oekC?sjGn4H0-u^PP&7x(PX z$xAbq))KumS%X$Ncjf#Uj_tcmHM{E!CSNpxY}y83wp7;qkQRDuDq}B8lI=II6m7|5 zR&`)6CS2!g$B{pobb?IN96ruItCsb%Hj#tG8vw{Q2$ru_t<8{c6=`hU>td;FtzvNdb^#Op_s{-JYE~-~}fCeHAg6vxFN>Z+0v;GFnh?Qc6yqN_7C-c3!Q1Roc z^CqE42@V=Fb$Yt6U3pQjsfeDb8U-u3jn2r6_29|-0l%(Mt9gMo-;QYZ)Jm4rbq~tQ^45^6`V!T4ifp&V;HiHcg!0Qtod5gvHix#>Su|`lhj6XXHr# zms^mS8$&W0*CR4)_vuT{fEO~j*fuddXLn70hAK_vLRqwoB8~vavF~XvMGk2|yHP?V zqe8uhV!2*<;3c}6XvL|ySQD~rCL4#8+1ozpqcz?zxh#K?3b`)(PnuTuz&m0bjxy_+ z3Qbq-o(t;aJK!_c*!>Ndj*)t0$0{*02XtIc&HN?G-yKc(J2KmAA^ZPZ*#oEjbsbggPW-h`e{v85+;8;VgJ!oS9aRl4@~&@bl8~( z8+LG=1dLuKAqDbBn1&NN1Rp1j_eWv9y@D$D?O*6WtWNF6`Tcy_ag{mn#Q%feN)u5{ zvIvm26s1b^ad&p*603hHl)>bb2VTJzkg#o)_H&8AJ7!a}vYqFCnKXqZ^!K%5OYH*x zoxDM~d-dyIbfZ8FBvHdQrr+XmAFTue%^^Ym-D>}#Ve3j<-^UizFo%=zRBK%^tY;z! zr0?+7Hh12om)m6F<^D$W$7V^Jo;1=*WU}s#lgXITwNw$OZ9}IqMpp8U((*_wEd={a zZ`cIAH?#|QhG7I(r4X@DuDXWzKDTn+Ze2E|Ywx@zl=Rm=e|y2qBiG*Z^MOZ~c6?ee z3zY%4+gSr9H>jvA;fZ_4!RT^$IuK{jwd9|gZ&DjB{*BP;e-WDxWQmdti~K;(V%srs z@|cVqN6>tTTGetu+Kc0or4=~%@37D(^`9N1#128o2HMKaMRZEva@(VtkGm$V-lsV) zq(s1XldzT9Jk!Z^&@_+UxKVoDy79n(ME-wbJn_m2%;0zWWG;*Go|VHo2LD1kO~`*t z2mM5qhweNM#pnEy{}v;lQW&Hfi+|N|191-H6Y<%85GLBWcpScr!2cIj>LGS;Cf-iF zo?s)W;rIt<`lR5Jd{S(`A794*C)f6&&?k_TY0aZ!{~t7Jn_c9SvgRlEj7t(bp+71smVlXo0nCQSNVUH(DXa*)3R zfSq`JJ{oc--VO|UonPgv+s$@SK{s37YmzLjRy_4(})exNbPt_e0NKEg-^!qdWF(R1@FDvVmv&}}%B6j|41$4mP;wcp z<$p1@C;U{?gVAIssWlq4sJz)tkO1Z2!bSfns ztg248_0rGQbMPhxvAy<5oF;~ihR(=hl~j^U8wQ9Drll|L%siZhkX;DSz&I4-c8y|A z^|XP%=qD6O8V#rjBZZ9~%4U*_PvRwzTc?~Yyq{^=M;8wGBjIzYSS^*?0$k4)lRqK5 z;f5(*8bHjO^kg=|oY7u=>aVUdazekme4DKkiN9VS1}hFX zI^4#JBoj?Op}(K)49!?qTL6JgpFP==S7m)pw{wr+H5A&e=R;i2+FS2>U+r^?kH}=2 zBJD@JdW)R`XxB|C{ zAxr)E!yfbNf`NLs39V<_KlZbop0^G$!0~jJdZTApPM71j+b;uDH#N**Jr@xms|TSm zxcl9;K=s)YNtz#gFJ0?P*7|Gzr0R##(#$Nd>ju6^zdT%6=XnPuvAENpyz4U5w*8TZ1S5KRykht?6E9BSDPpxy zK^}!km+-g=kVmDEun77A8Cjd>`}&|%ZPoPWwZ(3QdJFLJOD3CLRSBX9HRp@-WWhjG zkwU)E&7!vbib0|jqsO$t^ZSo22#T=okmjpjM|z&eJ7HwLFLyhxV)qa*_al@!N%Xqy z!>!kQMbGaOg`Hs$?3TM^Cl96^+A?p4&-Evjw7Iq)RR(r9Z{O~`FWQ@wIyD?wh=+TF2f=kZP(Ob(Z3PBK3pX3 z01!DsOa;0@nN4TWD+}hhv%zn#_NfvNA}Dj>e4cMY)DbQ;>pdbGE$77Q&8O&bIqZ^Z zyI-^-F&NA)MH`*jX(dxw(>wp{!Yv{?vizh2-fis>>urELJ+Bc0&h(pY(&4e0MW{Cv zB}-&8DZ+%2a6=h7{|LRY7+(qgl4tF>;BL-DBY@0iCMuq<)!*VuW7Sl`jS~!l92p`6 z&~9|NbC^ZDaoAt-oUArgCei52;Vjx)tP&}qYcXVGGB~$7TnEY~b@4wY8}^5e2qW>4 znT{qg8G=|=>HYFbV6f*ircUD!i~ec|4E1||Nl$@K+@a_2!lXaP6BvP8TY|(j|hJ)78Qr2K95|c+5(U*UKB2 zdT7%d(qNum`L=M;&hP9fds(GLbX!;Y#HIU_qSWBf2zad;8?6?kF1xS%Bvbja19S^S zV5qbj%Pf=ONl*zAmQy#n8wJI@DZ&j8tI|u-`QLL($$di^FW8A({i`&7lHdvZ&@s}n zp0V5JB)n;1ebMR?@=RwjkA;78%|oYG`mSX*zAt{`eKSIN&~}uQSgu?O3rFU((|&U> z2KO$mvHc^Y39#kotwzx>6y1g;3k1Gir9x%!8^FLYBzCc*Ast<+@Gqv@=8) z{Mri!2TmUx2mvc~R;rbGC*>;|g^?TrhqWq1uUH>!Jm|k0DZGs-1Y!n{P_EvcL&Y&& zvrm<hhd72Bp+wrP^SZqtf7VNSl6;oT?vxf3}#(9@Q5w zsp~Nyh0bDzh8TtaSaW>1G{~{df7#12j+8YD~L5HOeJ~MECRmC6} zAUGI)!k9=?Uk(beoU->GZMI$8--x}+PzigG6s#Az?RR1Hey~~T0MzPycNc87SqVfL zT;0Jb;z+~9=@<%cBa9e^Q`+Wwi5)qJ$NX`;U6rV7wV2O{{m0aPrF|ghi@vQ(hCw^f0A94vzz*L}`buM8Rj3FPt=nt}CSSp-Oe$^cuh-o07y zg~kGL(VhNP%I19!8lqo*IRFFG>y1}=GJ9wndEREzl>70H4CP@+3GU8_p11pviey%p zl}b#oVI{-vn_QJA2M+257b-~oS$R+E^P*%+XXXI{7 zM#vo#0HH_-IK6@Vuv0+-EI!K)x1i6k-17m1Te;>p7g4X5pWC2y9%uoMI>ehHuOWz~ zt0TYJk5nMD^P!BgS8OOjQ#D(M-|RheyBJ>djK4*r{_zn8oSkScSWG~TS0f}>h%};? z^UZI`xuiBcEet$Vn}C`w&=&B7cs)^8wu3-el%?5^w3i?UIN^g7XpgWM@ zyj^f?u?G;*`{Fvz@T-UYUHb2#1t{}$^$dUYFXM37(gNUL`se7;Z zE(SQ35(KmPq)l|%9xV19Z z_?|8`l!AH~yVH%zmPYHPNhJWIER-o?JqS2hN?=eBIpa44v&l5eS$*ml_&eAPVnKb2 zi>II~E2mVO&GwbAgc)_}jMbgjhqyO4Gz{AFTm4A9RpZPOlxtM!e9rBkcyH3@dY)Nw zvVk^7sqM*bH7~){H8(>q+FoQbk+TqtIhzvb9Cq*9_Zx=Uard`_;2?eHAb{D5j|ns6 zVXB2A3IaDCynJA{6;>ARh#|=ZdscF-bX5!dkd6Jo?(aF;T@+9Y>U7jS%IH*BQyPi* zf>S4@DAMciUjWz^tjX_0e;iTAVem=jz(l_!vaix#b1Rq1#mil}uzN-Bg8d>tNb*QD zkxY=x_Hr#U$PY|l_tknX8RAIzu4v@^ypyQcU=?Gc^m3}LU=xllwLp_RfVKmCtr$`d zlx#PNNZ1(-yW*Yk6(_!J`A}RyQwB(Mw5PljTHR{JlAjilufisU)rsPqh{xb^un(fI zY>jRA`KVRvk>4IorIJghEcfuf-_5yQZMbjQ65l^5&j^jB(lA&r*8KFLQ?g~ZSvE)n z-(obq&scEd&tO_I&iVB38)-Ef1rYJSni8 zCc^(qX1Ir$S<$>^gPEp*NO?kWpDaIki0yjgj8mQS(WI>z3FcQzSnwzm)k$CQig@9e z^eiIwTWnDeqR0Nf%UC=#GQZG+luHON8g#5~gINr%UgxqKhzW-XJAqeuzceOVU_wAL zqG-hN*7NNlu51vb22ZS6xJrf2NE%}eA9`j`7}Dr!lQms-1c+{<^)Yl~NHs-1`9KsF zhZh2GnBGpuW|McSOwM=B%Z@9)LO@ZXQTcc#L#@m4bT61pJ{vUZd_1K*L4%lAii)>d zaq&6rpzC~;+m-zXQy6J<-4vKqF8_P}2XIkdkI7LcnOco`hrIpgHE)=}_Ke-u-sa=y zHZfQm9`#!TjPgonLp&d6OnPFNsW|5OdHltp&X-{c?KCY=v_v*O_;D&mQlCji$1ANh z466@N&RXq)pN5d|sR5-P6sBLRQoqU3GqzdIPxSW+lxOOi#x2*Ijal`60k@5R%As(@ zu|`Tn3;?|& zXnRjAMDMmkmN_^>8ar;;ADz48SKeG#mG2G+Q}FcL0={>kmMM;Xjs3fM4tP9Y(Sjjz ze!Mc5Aw^^lThLUPN4`a0w)~yO0MG)JHbb2j8Nmeg*F!UfLrKjikVL1o

4}4<7lv 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%0De3h*!oly5lO7Qh6MTKFa5pB2#NrEi)XJtjB^6 z0{NRg-eaj$MIi)&ib=i`J=Tti({{TCCAF9_kNMXa8V(=~FX2AacN46}#%hNkpkE~U%Yp`~ zHQ}~Z11NjMcfYXzi~n)>3+y=5 /dev/null + cmp -s "$scriptDir/service/run" "$serviceDir/$1/run" > /dev/null if [ $? != 0 ]; then - cp "$scriptDir/service/run" "$serviceDir/$pkg/run" + cp "$scriptDir/service/run" "$serviceDir/$1/run" fi fi if [ -f "$scriptDir/service/log/run" ]; then - cmp -s "$scriptDir/service/log/run" "$serviceDir/$pkg/log/run" > /dev/null + cmp -s "$scriptDir/service/log/run" "$serviceDir/$1/log/run" > /dev/null if [ $? != 0 ]; then - cp "$scriptDir/service/log/run" "$serviceDir/$pkg/log/run" + cp "$scriptDir/service/log/run" "$serviceDir/$1/log/run" fi fi fi - _startService $pkg + + # restart service if was previously installed + # a service will start when newly installed so we don't want to restart it + if $restartService ; then + _startService $1 + fi } diff --git a/UpdateResources b/UpdateResources deleted file mode 100755 index 8e3809f..0000000 --- a/UpdateResources +++ /dev/null @@ -1,253 +0,0 @@ - -# This file provides utilities for automatic and manual package updates/installation -# -# Include the following lines in the update scripts -# source "/data/SetupHelper/LogHandler" -# source "/data/SetupHelper/UpdateResources" - -setupHelperDir="/data/SetupHelper" -source "$setupHelperDir/EssentialResources" - -# converts a Venus version string to a version number -# -# beta numbers are handled in a special way. -# the released verison has no beta string -# it's number would be less than a beta version -# we bump the version number by 999 -# so the release is always greater than any beta -# -# the "-large-n" portion is discarded so those versions -# can be compared to non-large versions -# -# the version string is passed as $1 -# the number is returned in versionNumber - -function versionStringToNumber () -{ - local versionBeta="" - - read versionNumber versionBeta <<< $(echo $1 | sed -e 's/v//' -e 's/-.*$//' | \ - awk -v FS='[v.~-]' '{printf "%d%03d%03d %d\n", $1, $2, $3, $3}') - if (( $versionBeta == 0 )); then - ((versionNumber += 999)) - fi -} - -# the version number of the archive is compared to the installed version -# if a the branch specifies a spcific version number, the two versions must match -# for the installed package to be considered up to date -# for a branch label, the installed package is up to date if it's version -# is equal to or greater than the archive's verison -# -# function will return 1 if an update is required and 0 if no update is needed - -function checkVersions () -{ - # convert versions to numbers and compare them - versionStringToNumber $archiveVersion - archiveVersionNumber=$versionNumber - versionStringToNumber $installedVersion - # if version number specified, must match that exact value - if [[ ${gitHubBranch:0:1} == "v" ]] ; then - if (( $versionNumber == $archiveVersionNumber )); then - return 0 - else - return 1 - fi - else - if (( $versionNumber >= $archiveVersionNumber )); then - return 0 - else - return 1 - fi - fi - -} - - -# get the package from a USB file -# The package is left in $package-$gitHubBranch for processing later -# $1 is the name of the package -# returns 0 if updates should NOT occur or 1 if update is acceptable for update - -getFromUsb () -{ - local package=$1 - local packageArchive - local packageDir="/data/$package" - local lastUpdate="" - local fileSuffix - - # the unpacked folder for version tags don't inclue the v (e.g, v2.4 is 2.4 in archive name) - # so the gitHubBranch is reworked to create a file suffix - if [[ ${gitHubBranch:0:1} == "v" ]]; then - fileSuffix=${gitHubBranch:1:999} - else - fileSuffix=$gitHubBranch - fi - packageArchive="/media/$dir/$package"-$fileSuffix.tar.gz - - # archive not found on USB stick - if [ ! -f "$packageArchive" ]; then - return 0 - fi - - tar -xzf "$packageArchive" -C /data - if [ ! -d "$packageDir-$fileSuffix" ]; then - logMessage "ERROR: $packageArchive did not contain $package" - return 0 - fi - - # get the version from local copy of package - if [ -f "$packageDir/version" ]; then - installedVersion=$(cat "$packageDir/version") - else - installedVersion="" - fi - - # get archive version - archiveVersion=$(cat "/data/$package-$fileSuffix/version") - if [ ! -e "$packageDir" ]; then - if $logToConsole ; then - echo "$package not yet installed - proceeding" - fi - return 1 - elif [ -z $archiveVersion ]; then - logMessage "ERROR: No version in $package archive - can't update" - return 0 - elif [ -z $installedVersion ]; then - logMessage "WARNING: no version for $package current installation - proceeding" - return 1 - else - checkVersions - if [ $? -eq 0 ]; then - if $logToConsole ; then - echo "$package is up to date" - fi - return 0 - else - return 1 - fi - fi -} - - -# get the package from a GitHub -# The package is left in $package-$gitHubBranch for processing later -# $1 is the name of the package -# -# $2 is a boolean: when true archive download is skipped -# used by packageInstaller when a package is aready installed and auto updates are enabled -# if auto updates are enabled and update will be skipped anyway -# returns 0 if update should NOT occur or 1 if update is acceptable - -getFromGitHub () -{ - local package=$1 - local packageDir="/data/$package" - local lastUpdate="" - local skipDownload - if [ $# -gt 1 ] && $2 ; then - checkOnly=true - else - checkOnly=false - fi - - # get the version from local copy of package - if [ -f "$packageDir/version" ]; then - installedVersion=$(cat "$packageDir/version") - else - installedVersion="" - fi - - if [ ! -e "$packageDir" ]; then - if $logToConsole ; then - echo "$package not yet installed - proceeding" - fi - fi - - # fetch archive version - archiveVersion=$(wget -qO - https://raw.githubusercontent.com/$gitHubUser/$package/$gitHubBranch/version) - if [ -z $archiveVersion ]; then - logMessage "ERROR: no version for $package $gitHubUser $gitHubBranch on GitHub - can't continue" - return 0 - elif [ -z $installedVersion ]; then - logMessage "WARNING: no version for $package current installation - proceeding" - else - checkVersions - if [ $? -eq 0 ]; then - if $logToConsole ; then - echo "$package is up to date" - fi - return 0 - elif $checkOnly ; then - return 1 - fi - fi - # update the package and reinstall it - wget -qO - https://github.com/$gitHubUser/$package/archive/$gitHubBranch.tar.gz | tar -xzf - -C /data - if [ $? -eq 0 ]; then - return 1 - else - logMessage "ERROR: can't access $package $gitHubUser $gitHubBranch on GitHub" - return 0 - fi -} - - -# install the archive and run setup script -# -# $1 is the package name -# $2 is the github branch/version tag -# $3 is the flag to allow running the script with user interaction - -doUpdate () -{ - local package=$1 - local packageDir="/data/$package" - local gitHubBranch=$2 - local fileSuffix - - # the unpacked folder for version tags don't inclue the v (e.g, v2.4 is 2.4 in archive name) - if [[ ${gitHubBranch:0:1} == "v" ]]; then - fileSuffix=${gitHubBranch:1:999} - else - fileSuffix=$gitHubBranch - fi - - if [ $# -gt 2 ] && [ $3 == 'prompting' ]; then - installOk=true - else - installOk=false - fi - - # move new version into active position - if [ -d "$packageDir-$fileSuffix" ]; then - rm -rf "$packageDir" - mv "$packageDir-$fileSuffix" "$packageDir" - else - logMessage "$packageDir-$fileSuffix is missing - can't continue" - return - fi - - if [ -f "$packageDir/setup" ]; then - # if package is installed, reinstall automatically - if [ -f "$installedFlagPrefix$package" ]; then - logMessage "reinstalling $package" - "$packageDir/setup" "reinstall" "force" - # defer reboot until all updates and reinstalls have been done - if [ $? == $exitReboot ] ; then - rebootNeeded=true - fi - # no options set, run manual setup - but defer reboot until all scripts have been run - elif $installOk ; then - logMessage "running $package setup script - choose install to complete installation" - "$packageDir/setup" "deferReboot" - if [ $? == $exitReboot ] ; then - rebootNeeded=true - fi - else - logMessage "$package not currently active - skipping reinstall" - fi - fi -} diff --git a/blindInstall b/blindInstall index 29379c7..27f912c 100755 --- a/blindInstall +++ b/blindInstall @@ -1,25 +1,35 @@ #!/bin/bash -# this script is part of an autoInstall archive +# this script is part of an autoInstall archive which installs SetupHelper +# previous versions of blindInstall also installed GuiMods but has since been removed +# since PackageManager will install all package archives found on the SD/USB media so +# the result is the same (or actually better) +# # the archive makes use of the Venus OS update-data.sh script -# archives named "venus-data.tar" are unpacked during boot -# then for this archive, Venus must be rebooted, causing rcS.local to run, +# archives named "venus-data.tar.gz" are unpacked during boot +# overriting content in /data +# +# the archive unpacks to /data/SetupHelper-blind +# then blindInstall compares versions between /data/SetupHelper-blind anc /data/SetupHelper +# if blind is NEWER, SetupHelper-blind replaces SetupHelper, and the setup script is run +# +# for this archive, Venus must be rebooted a second time, causing this speial rcS.local to run, # which calls blindInstall as a background task. # -# Package install scripts will append to rcS.local, so it must be moved out of the way -# BEFORE running those scripts to force creation of a clean rcS.local +# a call to /data/SetupHelper/reinstallMods is appended to rcS.local by all setup scripts +# using SetupHelper CommonResources. +# That call is included in the blind install rcS.local so that if the media is left inserted +# subsequent reboots will still check for reinstalls # -# GitHub automatic updates are enabled to keep packages up to date. +# the rcS.local from the blindInstall is removed when SetupHelper/setup is run to keep things clean +# SetupHelper/setup creates a new one # -# the archive includes -# rcS.local and the packages themselves -# # the blindInstall script is run in the background so it can wait for dbus Settings resources # to become available before running the package install scripts. # -source "/data/SetupHelper/EssentialResources" -source "/data/SetupHelper/LogHandler" +source "/data/SetupHelper-blind/EssentialResources" +source "/data/SetupHelper-blind/LogHandler" # wait until dbus settings are active while [ $(dbus -y | grep -c "com.victronenergy.settings") == 0 ]; do @@ -29,28 +39,50 @@ done sleep 2 -logMessage "starting up" +setupHelperBlind='/data/SetupHelper-blind' +setupHelperInstalled='/data/SetupHelper' -# a package setup script normally prompts for user input -# reinstall force options insure the package is installed without user interaction -# -# currently VeCanSetup and RpiDisplaySetup require user responses during initial setup -# so can't be installed via this mechanism - -# all packages rely on SetupHelper so it must be present and installed first -if [ -f "/data/SetupHelper/setup" ]; then - # insure package reinstall doesn't get appended to the auto install rcS.local !!! - rm -f /data/rcS.local - - sync - logMessage "installing SetupHelper" - /data/SetupHelper/setup reinstall force deferReboot - if [ -f "/data/GuiMods/setup" ]; then - logMessage "installing GuiMods" - /data/GuiMods/setup reinstall force deferReboot - fi - - # enable GitHub automatic updates - dbus -y com.victronenergy.settings /Settings/PackageVersion/GitHubAutoUpdate SetValue 1 &> /dev/null +runSetup=false +if [ -d "$setupHelperBlind" ]; then + # compare versions + if [ -d "$setupHelperInstalled" ]; then + if [ -f "$setupHelperBlind/version" ]; then + versionStringToNumber $(cat "$setupHelperBlind/version") + blindVersion=$versionNumber + else + blindVersion=0 + fi + if [ -f "$setupHelperInstalled/version" ]; then + versionStringToNumber $(cat "$setupHelperInstalled/version") + packageVersion=$versionNumber + else + packageVersion=0 + fi + if (( blindVersion > packageVersion )); then + runSetup=true + fi + else + runSetup=true + fi fi +# get rid of the blind install rcS.local so it can't run again +# (unless the archive still exists on the media on next boot) +# SetupHelper/setup will install the proper one +rm -f /data/rcS.local + +if $runSetup ; then + logMessage "blind install SetupHelper" + + # replace SetupHelper with the one from the archive + rm -rf "$setupHelperInstalled" + mv "$setupHelperBlind" "$setupHelperInstalled" + + # eliminiate the blind install call in rcS.local + # SetupHelper/setup will create a new one rcS.local + "$setupHelperInstalled/setup" reinstall +# remove SetupHelper from archive - it wasn't newer +else + logMessage "blind install did NOT update SetupHelper (probably an older version)" + rm -rf "$setupHelperBlind" +fi diff --git a/changes b/changes new file mode 100644 index 0000000..7ed254f --- /dev/null +++ b/changes @@ -0,0 +1,172 @@ +v4.0: + beta test period ended + added running version to PackageManager sign-on + +v4.0~38: + fixed: backup/restore hangs + +v4.0~37: + changed the blind install process to minimize issues if venus-data.tgz is left mounted + SetupHelper now unpacks to /data/SetupHelper-blind, + then is moved to /data/SetupHelper and the setup script run + ONLY IF it is a newer version + +v4.0~36: + blind install was't updated for ~35 !!! + +v4.0~35: + reinstall now compares installed and package versions and installs if they differ + previously, booting to the alternate installed Venus version would not trigger + a package reinstall, possibly resulting in problems or at least out of date packages + +v4.0~34: + added image overlays to backup/restore + this includes custom logos for Mobile and Tile overviews + +v4.0~33: + fixed: PackageManager doesn't run on Venus versions prior to v2.80~10 (Python 2). + +v4.0~32: + fixed: version numbers not in the Victron format would crash PackageManager + also accommodate a other version string formats: + vX.Y.Z, vX.YdZ, vX.YaZ, vX.YbZ + +v4.0~31: + fixed crashes and bugs that prevented initial install on a system + that has no packages yet + +v4.0~30: + added settings backup/restore + note this is NOT the Victron mechanism + rather, it extracts SOME of the Settings parameters + and writes these to a file + care was taken to save/restore only those parameters that + should not cause conflicts + When Victron releases their mechanism, this one will be removed + +v4.0~26: + fixed: Large features not appearing + fixed: typo in 123SmartBMS-Venus in defaultPackageList + +v4.0~25: + handle nonexistant package directory + pull GitHub user/branch from package directory file + optimize AddStoredPackages so it can run all the time + (some updates were being missed) + changed default package name: smartbms-venus to 123SmartBMS-Venus + +v4.0~24: + add Reboot/GUI restart button to Package Manager main menu + to address deferred operations ("Later") + +v4.0~23: + fixed: GUI restart not happening after auto install + fixed: GUI restart notificaiton in menu not cleared after GUI restart +v4.0~22: not used +v4.0~21: + fixed: adding package didn't carry over GitHub user and branch + +v4.0~20: + rearranged package editor menus + Package version list -> Active packages + tapping on an entry leads to Package editor + added Inactive packages + which shows only packages that are not on the system yet (or manually removed) + tapping on entry leads to Add package menu + added separate Add package menu + Package Editor eliminated from main menu (access through Active packages only) + default packages are no longer automatically added to the active package list + +v4.0~19: + fixed: venus-data.tar.gz in v2.80~18 didn't include PackageManager.py + +v4.0~18: + fixed: packages auto add/install when PackageManager is restarted + even if REMOVED / DO_NOT_AUTO_INSTALL was set + more work on GUI getting "stuck" + bogus "unpack tar from GitHub failed" message - package downloads properly + major change to thread structure to make operations more responsive + and to minimize CPU consumption when idle + +v4.0~17: + fixed: package editor status did not always show package name + fixed?: occationally, Package Editor appears to get stuck when a PackageManager + action completes. + A missed property update from the dbus paramter may be yhe cause + Set a timer to refresh properties in the GUI + +v4.0~16: + fixed: packages auto auto-adding following manual removal + +v4.0~15: + fixed: auto download not working + moved dbus settings for PackageManager to /Settings/PackageManager + from /Settings/PackageMonitor + remove dbusSettings when package is removed + previously these were left in place + changed menu items and titles to conform to Victron standards: + only firt word capitalized + +v4.0~14: + fixed: selecting "Now" in GUI when reboot needed does nothing + fixed: blind install did not work + +v4.0~13: + added support for Venus OS v2.80~33-large-24 + +v4.0~12: + fixed: manually uninstalled packages would reinstall immediately + if auto install was on + accommodate Python 2.7 for Venus OS prior to v2.80~10 + fixed: a setup script run failure was not handled properly and + caused the install thread to hang +v4.0~11: + fixed bug that caused GUI to restart repeatedly if package was not + compatible with the current Venus version + e.g., a file set error + major rewrite to PackageManager download code + changes to GUI: + Add Package -> New Package + moved SetpHelper uninstall warning to status + moved action confirmaiton message to status, + Confirm ... button now reads Proceed + removed "can't remove" ... message +v4.0~10: + GitHub downloads and SD/USB transfers now scan the entire directory tree + searching for a package directory. This was done because of the 123 smartBMS + archive directory structure but there are other issues preventing integration + with PackageManger. + Fixed bug that showed a blank status line with the OK button after a download + Rhe OK button no longer appears and Package Editor menu returns + to the "navigation" mode + +v4.0~9: + fixed bug with firstCompatibleVersion + added try: / except: around all subprocess.run calls + so if the call fails, the program continues to run + +v4.0~8: + refresh GitHub version prior to download checks + new upadates to GitHub could be missed + reduced GitHub vesion refres delay + touching a row in Package Version List menu + leads to Package Editor menu + and < will return to the version list + +v4.0~5 - 7: + download bug fixes +v4.0~4: + add Package Manager & GUI + add setup script return codes for above + add optionsRequired flag file (VeCanSetup is only package that needs this now) + + add platform and version checks to CommonResources + add install opiton to CommonResources + better support installs without command line + ### TBD remove logging to package log files + + improve adding packages from SD/USB + + split auto download and auto install + + diff --git a/defaultPackageList b/defaultPackageList index af62a24..4c58baa 100644 --- a/defaultPackageList +++ b/defaultPackageList @@ -1,18 +1,19 @@ -# list of packages managed by SetupHelper +# the DEFAULT list of packages managed by SetupHelper +# actual list is based on what is stored on the system +# this list assists in adding new pacakges # lines beginning with # are ignored and can be used # to remove a package from auto and manual updates # or as comments # blank lines are ignored # incomplete lines are ignored -# SetupHelper should be first (and not commented out) -# so it updates resources used by other packages prior to their update -# packages should add themselves to this list during setup -# Package GitHubUser Version -SetupHelper kwindrem current -GuiMods kwindrem current -ShutdownMonitor kwindrem current -RpiDisplaySetup kwindrem current -RpiGpioSetup kwindrem current -TankRepeater kwindrem current +# Package GitHubUser Tag/branch/version +SetupHelper kwindrem latest +GuiMods kwindrem latest +GeneratorConnector kwindrem latest +ShutdownMonitor kwindrem latest +TankRepeater kwindrem latest +VeCanSetup kwindrem latest +RpiDisplaySetup kwindrem latest +RpiGpioSetup kwindrem latest 123SmartBMS-Venus 123electric latest diff --git a/ext/velib_python/LICENSE b/ext/velib_python/LICENSE new file mode 100755 index 0000000..1e21061 --- /dev/null +++ b/ext/velib_python/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright (c) 2014 Victron Energy BV + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/ext/velib_python/README.md b/ext/velib_python/README.md new file mode 100755 index 0000000..f87b4e2 --- /dev/null +++ b/ext/velib_python/README.md @@ -0,0 +1,102 @@ +velib_python +============ + +[![Build Status](https://travis-ci.org/victronenergy/velib_python.svg?branch=master)](https://travis-ci.org/victronenergy/velib_python) + +This is the general python library within Victron. It contains code that is related to D-Bus and the Color +Control GX. See http://www.victronenergy.com/panel-systems-remote-monitoring/colorcontrol/ for more +infomation about that panel. + +Files busitem.py, dbusitem.py and tracing.py are deprecated. + +The main files are vedbus.py, dbusmonitor.py and settingsdevice.py. + +- Use VeDbusService to put your process on dbus and let other services interact with you. +- Use VeDbusItemImport to read a single value from other processes the dbus, and monitor its signals. +- Use DbusMonitor to monitor multiple values from other processes +- Use SettingsDevice to store your settings in flash, via the com.victronenergy.settings dbus service. See +https://github.com/victronenergy/localsettings for more info. + +Code style +========== + +Comply with PEP8, except: +- use tabs instead of spaces, since we use tabs for all projects within Victron. +- max line length = 110 + +Run this command to set git diff to tabsize is 4 spaces. Replace --local with --global to do it globally for the current +user account. + + git config --local core.pager 'less -x4' + +Run this command to check your code agains PEP8 + + pep8 --max-line-length=110 --ignore=W191 *.py + +D-Bus +===== + +D-Bus is an/the inter process communication bus used on Linux for many things. Victron uses it on the CCGX to have all the different processes exchange data. Protocol drivers publish data read from products (for example battery voltage) on the D-Bus, and other processes (the GUI for example) takes it from the D-Bus to show it on the display. + +Libraries that implement D-Bus connectivity are available in many programming languages (C, Python, etc). There are also many commandline tools available to talk to a running process via D-bus. See for example the dbuscli (executeable name dbus): http://code.google.com/p/dbus-tools/wiki/DBusCli, and also dbus-monitor and dbus-send. + +There are two sides in using the D-Bus, putting information on it (exporting as service with objects) and reading/writing to a process exporting a service. Note that instead of reading with GetValue, you can also subscribe to receive a signal when datachanges. Doing this saves unncessary context-switches in most cases. + +To get an idea of how to publish data on the dbus, run the example: + + matthijs@matthijs-VirtualBox:~/dev/velib_python/examples$ python vedbusservice_example.py + vedbusservice_example.py starting up + /Position value is 5 + /Position value is now 10 + try changing our RPM by executing the following command from a terminal + + dbus-send --print-reply --dest=com.victronenergy.example /RPM com.victronenergy.BusItem.SetValue int32:1200 + Reply will be <> 0 for values > 1000: not accepted. And reply will be 0 for values < 1000: accepted. + +Leave that terminal open, start a second terminal, and interrogate above service from the commandline: + + matthijs@matthijs-VirtualBox:~/dev/velib_python/examples$ dbus + org.freedesktop.DBus + org.freedesktop.PowerManagement + com.victronenergy.example + org.xfce.Terminal5 + org.xfce.Xfconf + [and many more services in which we are not interested] + +To get more details, add the servicename: + + matthijs@matthijs-VirtualBox:~/dev/velib_python/examples$ dbus com.victronenergy.example + / + /Float + /Int + /NegativeInt + /Position + /RPM + /String + +And get the value for the position: + + matthijs@matthijs-VirtualBox:~/dev/velib_python/examples$ dbus com.victronenergy.example /RPM GetValue + 100 + +And setting the value is also possible, the % makes dbus evaluate what comes behind it, resulting in an int instead of the default (a string).: + + matthijs@matthijs-VirtualBox:~/dev/velib_python/examples$ dbus com.victronenergy.example /RPM SetValue %1 + 0 + +In this example, the 0 indicates succes. When trying an unsupported value, 2000, this is what happens: + + matthijs@matthijs-VirtualBox:~/dev/velib_python/examples$ dbus com.victronenergy.example /RPM SetValue %2000 + 2 + +Exporting services, and the object paths (/Float, /Position, /Group1/Value1, etcetera) is standard D-Bus functionality. At Victron we designed and implemented a D-Bus interface, called com.victronenergy.BusItem. Example showing all interfaces supported by an object: + + matthijs@matthijs-VirtualBox:~/dev/velib_python/examples$ dbus com.victronenergy.example /RPM + Interface org.freedesktop.DBus.Introspectable: + String Introspect() + + Interface com.victronenergy.BusItem: + Int32 SetValue(Variant newvalue) + String GetDescription(String language, Int32 length) + String GetText() + Variant GetValue() diff --git a/ext/velib_python/settingsdevice.py b/ext/velib_python/settingsdevice.py new file mode 100644 index 0000000..a207e8b --- /dev/null +++ b/ext/velib_python/settingsdevice.py @@ -0,0 +1,118 @@ +import dbus +import logging +import time +from functools import partial + +# Local imports +from vedbus import VeDbusItemImport + +## Indexes for the setting dictonary. +PATH = 0 +VALUE = 1 +MINIMUM = 2 +MAXIMUM = 3 +SILENT = 4 + +## The Settings Device class. +# Used by python programs, such as the vrm-logger, to read and write settings they +# need to store on disk. And since these settings might be changed from a different +# source, such as the GUI, the program can pass an eventCallback that will be called +# as soon as some setting is changed. +# +# The settings are stored in flash via the com.victronenergy.settings service on dbus. +# See https://github.com/victronenergy/localsettings for more info. +# +# If there are settings in de supportSettings list which are not yet on the dbus, +# and therefore not yet in the xml file, they will be added through the dbus-addSetting +# interface of com.victronenergy.settings. +class SettingsDevice(object): + ## The constructor processes the tree of dbus-items. + # @param bus the system-dbus object + # @param name the dbus-service-name of the settings dbus service, 'com.victronenergy.settings' + # @param supportedSettings dictionary with all setting-names, and their defaultvalue, min, max and whether + # the setting is silent. The 'silent' entry is optional. If set to true, no changes in the setting will + # be logged by localsettings. + # @param eventCallback function that will be called on changes on any of these settings + # @param timeout Maximum interval to wait for localsettings. An exception is thrown at the end of the + # interval if the localsettings D-Bus service has not appeared yet. + def __init__(self, bus, supportedSettings, eventCallback, name='com.victronenergy.settings', timeout=0): + logging.debug("===== Settings device init starting... =====") + self._bus = bus + self._dbus_name = name + self._eventCallback = eventCallback + self._values = {} # stored the values, used to pass the old value along on a setting change + self._settings = {} + + count = 0 + while True: + if 'com.victronenergy.settings' in self._bus.list_names(): + break + if count == timeout: + raise Exception("The settings service com.victronenergy.settings does not exist!") + count += 1 + logging.info('waiting for settings') + time.sleep(1) + + # Add the items. + self.addSettings(supportedSettings) + + logging.debug("===== Settings device init finished =====") + + def addSettings(self, settings): + for setting, options in settings.items(): + silent = len(options) > SILENT and options[SILENT] + busitem = self.addSetting(options[PATH], options[VALUE], + options[MINIMUM], options[MAXIMUM], silent, callback=partial(self.handleChangedSetting, setting)) + self._settings[setting] = busitem + self._values[setting] = busitem.get_value() + + def addSetting(self, path, value, _min, _max, silent=False, callback=None): + busitem = VeDbusItemImport(self._bus, self._dbus_name, path, callback) + if busitem.exists and (value, _min, _max, silent) == busitem._proxy.GetAttributes(): + logging.debug("Setting %s found" % path) + else: + logging.info("Setting %s does not exist yet or must be adjusted" % path) + + # Prepare to add the setting. Most dbus types extend the python + # type so it is only necessary to additionally test for Int64. + if isinstance(value, (int, dbus.Int64)): + itemType = 'i' + elif isinstance(value, float): + itemType = 'f' + else: + itemType = 's' + + # Add the setting + # TODO, make an object that inherits VeDbusItemImport, and complete the D-Bus settingsitem interface + settings_item = VeDbusItemImport(self._bus, self._dbus_name, '/Settings', createsignal=False) + setting_path = path.replace('/Settings/', '', 1) + if silent: + settings_item._proxy.AddSilentSetting('', setting_path, value, itemType, _min, _max) + else: + settings_item._proxy.AddSetting('', setting_path, value, itemType, _min, _max) + + busitem = VeDbusItemImport(self._bus, self._dbus_name, path, callback) + + return busitem + + def handleChangedSetting(self, setting, servicename, path, changes): + oldvalue = self._values[setting] if setting in self._values else None + self._values[setting] = changes['Value'] + + if self._eventCallback is None: + return + + self._eventCallback(setting, oldvalue, changes['Value']) + + def setDefault(self, path): + item = VeDbusItemImport(self._bus, self._dbus_name, path, createsignal=False) + item.set_default() + + def __getitem__(self, setting): + return self._settings[setting].get_value() + + def __setitem__(self, setting, newvalue): + result = self._settings[setting].set_value(newvalue) + if result != 0: + # Trying to make some false change to our own settings? How dumb! + assert False diff --git a/ext/velib_python/ve_utils.py b/ext/velib_python/ve_utils.py new file mode 100644 index 0000000..e9a7fe3 --- /dev/null +++ b/ext/velib_python/ve_utils.py @@ -0,0 +1,265 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +import sys +from traceback import print_exc +from os import _exit as os_exit +from os import statvfs +from subprocess import check_output, CalledProcessError +import logging +import dbus +logger = logging.getLogger(__name__) + +VEDBUS_INVALID = dbus.Array([], signature=dbus.Signature('i'), variant_level=1) + +class NoVrmPortalIdError(Exception): + pass + +# Use this function to make sure the code quits on an unexpected exception. Make sure to use it +# when using GLib.idle_add and also GLib.timeout_add. +# Without this, the code will just keep running, since GLib does not stop the mainloop on an +# exception. +# Example: GLib.idle_add(exit_on_error, myfunc, arg1, arg2) +def exit_on_error(func, *args, **kwargs): + try: + return func(*args, **kwargs) + except: + try: + print ('exit_on_error: there was an exception. Printing stacktrace will be tried and then exit') + print_exc() + except: + pass + + # sys.exit() is not used, since that throws an exception, which does not lead to a program + # halt when used in a dbus callback, see connection.py in the Python/Dbus libraries, line 230. + os_exit(1) + + +__vrm_portal_id = None +def get_vrm_portal_id(): + # The original definition of the VRM Portal ID is that it is the mac + # address of the onboard- ethernet port (eth0), stripped from its colons + # (:) and lower case. This may however differ between platforms. On Venus + # the task is therefore deferred to /sbin/get-unique-id so that a + # platform specific method can be easily defined. + # + # If /sbin/get-unique-id does not exist, then use the ethernet address + # of eth0. This also handles the case where velib_python is used as a + # package install on a Raspberry Pi. + # + # On a Linux host where the network interface may not be eth0, you can set + # the VRM_IFACE environment variable to the correct name. + + global __vrm_portal_id + + if __vrm_portal_id: + return __vrm_portal_id + + portal_id = None + + # First try the method that works if we don't have a data partition. This + # will fail when the current user is not root. + try: + portal_id = check_output("/sbin/get-unique-id").decode("utf-8", "ignore").strip() + if not portal_id: + raise NoVrmPortalIdError("get-unique-id returned blank") + __vrm_portal_id = portal_id + return portal_id + except CalledProcessError: + # get-unique-id returned non-zero + raise NoVrmPortalIdError("get-unique-id returned non-zero") + except OSError: + # File doesn't exist, use fallback + pass + + # Fall back to getting our id using a syscall. Assume we are on linux. + # Allow the user to override what interface is used using an environment + # variable. + import fcntl, socket, struct, os + + iface = os.environ.get('VRM_IFACE', 'eth0').encode('ascii') + s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + try: + info = fcntl.ioctl(s.fileno(), 0x8927, struct.pack('256s', iface[:15])) + except IOError: + raise NoVrmPortalIdError("ioctl failed for eth0") + + __vrm_portal_id = info[18:24].hex() + return __vrm_portal_id + + +# See VE.Can registers - public.docx for definition of this conversion +def convert_vreg_version_to_readable(version): + def str_to_arr(x, length): + a = [] + for i in range(0, len(x), length): + a.append(x[i:i+length]) + return a + + x = "%x" % version + x = x.upper() + + if len(x) == 5 or len(x) == 3 or len(x) == 1: + x = '0' + x + + a = str_to_arr(x, 2); + + # remove the first 00 if there are three bytes and it is 00 + if len(a) == 3 and a[0] == '00': + a.remove(0); + + # if we have two or three bytes now, and the first character is a 0, remove it + if len(a) >= 2 and a[0][0:1] == '0': + a[0] = a[0][1]; + + result = '' + for item in a: + result += ('.' if result != '' else '') + item + + + result = 'v' + result + + return result + + +def get_free_space(path): + result = -1 + + try: + s = statvfs(path) + result = s.f_frsize * s.f_bavail # Number of free bytes that ordinary users + except Exception as ex: + logger.info("Error while retrieving free space for path %s: %s" % (path, ex)) + + return result + + +def get_load_averages(): + c = read_file('/proc/loadavg') + return c.split(' ')[:3] + + +def _get_sysfs_machine_name(): + try: + with open('/sys/firmware/devicetree/base/model', 'r') as f: + return f.read().rstrip('\x00') + except IOError: + pass + + return None + +# Returns None if it cannot find a machine name. Otherwise returns the string +# containing the name +def get_machine_name(): + # First try calling the venus utility script + try: + return check_output("/usr/bin/product-name").strip() + except (CalledProcessError, OSError): + pass + + # Fall back to sysfs + name = _get_sysfs_machine_name() + if name is not None: + return name + + # Fall back to venus build machine name + try: + with open('/etc/venus/machine', 'r') as f: + return f.read().strip() + except IOError: + pass + + return None + + +def get_product_id(): + """ Find the machine ID and return it. """ + + # First try calling the venus utility script + try: + return check_output("/usr/bin/product-id").strip() + except (CalledProcessError, OSError): + pass + + # Fall back machine name mechanism + name = _get_sysfs_machine_name() + return { + 'Color Control GX': 'C001', + 'Venus GX': 'C002', + 'Octo GX': 'C006', + 'EasySolar-II': 'C007', + 'MultiPlus-II': 'C008' + }.get(name, 'C003') # C003 is Generic + + +# Returns False if it cannot open the file. Otherwise returns its rstripped contents +def read_file(path): + content = False + + try: + with open(path, 'r') as f: + content = f.read().rstrip() + except Exception as ex: + logger.debug("Error while reading %s: %s" % (path, ex)) + + return content + + +def wrap_dbus_value(value): + if value is None: + return VEDBUS_INVALID + if isinstance(value, float): + return dbus.Double(value, variant_level=1) + if isinstance(value, bool): + return dbus.Boolean(value, variant_level=1) + if isinstance(value, int): + try: + return dbus.Int32(value, variant_level=1) + except OverflowError: + return dbus.Int64(value, variant_level=1) + if isinstance(value, str): + return dbus.String(value, variant_level=1) + if isinstance(value, list): + if len(value) == 0: + # If the list is empty we cannot infer the type of the contents. So assume unsigned integer. + # A (signed) integer is dangerous, because an empty list of signed integers is used to encode + # an invalid value. + return dbus.Array([], signature=dbus.Signature('u'), variant_level=1) + return dbus.Array([wrap_dbus_value(x) for x in value], variant_level=1) + if isinstance(value, dict): + # Wrapping the keys of the dictionary causes D-Bus errors like: + # 'arguments to dbus_message_iter_open_container() were incorrect, + # assertion "(type == DBUS_TYPE_ARRAY && contained_signature && + # *contained_signature == DBUS_DICT_ENTRY_BEGIN_CHAR) || (contained_signature == NULL || + # _dbus_check_is_valid_signature (contained_signature))" failed in file ...' + return dbus.Dictionary({(k, wrap_dbus_value(v)) for k, v in value.items()}, variant_level=1) + return value + + +dbus_int_types = (dbus.Int32, dbus.UInt32, dbus.Byte, dbus.Int16, dbus.UInt16, dbus.UInt32, dbus.Int64, dbus.UInt64) + + +def unwrap_dbus_value(val): + """Converts D-Bus values back to the original type. For example if val is of type DBus.Double, + a float will be returned.""" + if isinstance(val, dbus_int_types): + return int(val) + if isinstance(val, dbus.Double): + return float(val) + if isinstance(val, dbus.Array): + v = [unwrap_dbus_value(x) for x in val] + return None if len(v) == 0 else v + if isinstance(val, (dbus.Signature, dbus.String)): + return str(val) + # Python has no byte type, so we convert to an integer. + if isinstance(val, dbus.Byte): + return int(val) + if isinstance(val, dbus.ByteArray): + return "".join([bytes(x) for x in val]) + if isinstance(val, (list, tuple)): + return [unwrap_dbus_value(x) for x in val] + if isinstance(val, (dbus.Dictionary, dict)): + # Do not unwrap the keys, see comment in wrap_dbus_value + return dict([(x, unwrap_dbus_value(y)) for x, y in val.items()]) + if isinstance(val, dbus.Boolean): + return bool(val) + return val diff --git a/ext/velib_python/vedbus.py b/ext/velib_python/vedbus.py new file mode 100644 index 0000000..4e54203 --- /dev/null +++ b/ext/velib_python/vedbus.py @@ -0,0 +1,501 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +import dbus.service +import logging +import traceback +import os +import weakref +from ve_utils import wrap_dbus_value, unwrap_dbus_value + +# vedbus contains three classes: +# VeDbusItemImport -> use this to read data from the dbus, ie import +# VeDbusItemExport -> use this to export data to the dbus (one value) +# VeDbusService -> use that to create a service and export several values to the dbus + +# Code for VeDbusItemImport is copied from busitem.py and thereafter modified. +# All projects that used busitem.py need to migrate to this package. And some +# projects used to define there own equivalent of VeDbusItemExport. Better to +# use VeDbusItemExport, or even better the VeDbusService class that does it all for you. + +# TODOS +# 1 check for datatypes, it works now, but not sure if all is compliant with +# com.victronenergy.BusItem interface definition. See also the files in +# tests_and_examples. And see 'if type(v) == dbus.Byte:' on line 102. Perhaps +# something similar should also be done in VeDbusBusItemExport? +# 2 Shouldn't VeDbusBusItemExport inherit dbus.service.Object? +# 7 Make hard rules for services exporting data to the D-Bus, in order to make tracking +# changes possible. Does everybody first invalidate its data before leaving the bus? +# And what about before taking one object away from the bus, instead of taking the +# whole service offline? +# They should! And after taking one value away, do we need to know that someone left +# the bus? Or we just keep that value in invalidated for ever? Result is that we can't +# see the difference anymore between an invalidated value and a value that was first on +# the bus and later not anymore. See comments above VeDbusItemImport as well. +# 9 there are probably more todos in the code below. + +# Some thoughts with regards to the data types: +# +# Text from: http://dbus.freedesktop.org/doc/dbus-python/doc/tutorial.html#data-types +# --- +# Variants are represented by setting the variant_level keyword argument in the +# constructor of any D-Bus data type to a value greater than 0 (variant_level 1 +# means a variant containing some other data type, variant_level 2 means a variant +# containing a variant containing some other data type, and so on). If a non-variant +# is passed as an argument but introspection indicates that a variant is expected, +# it'll automatically be wrapped in a variant. +# --- +# +# Also the different dbus datatypes, such as dbus.Int32, and dbus.UInt32 are a subclass +# of Python int. dbus.String is a subclass of Python standard class unicode, etcetera +# +# So all together that explains why we don't need to explicitly convert back and forth +# between the dbus datatypes and the standard python datatypes. Note that all datatypes +# in python are objects. Even an int is an object. + +# The signature of a variant is 'v'. + +# Export ourselves as a D-Bus service. +class VeDbusService(object): + def __init__(self, servicename, bus=None): + # dict containing the VeDbusItemExport objects, with their path as the key. + self._dbusobjects = {} + self._dbusnodes = {} + + # dict containing the onchange callbacks, for each object. Object path is the key + self._onchangecallbacks = {} + + # Connect to session bus whenever present, else use the system bus + self._dbusconn = bus or (dbus.SessionBus() if 'DBUS_SESSION_BUS_ADDRESS' in os.environ else dbus.SystemBus()) + + # make the dbus connection available to outside, could make this a true property instead, but ach.. + self.dbusconn = self._dbusconn + + # Register ourselves on the dbus, trigger an error if already in use (do_not_queue) + self._dbusname = dbus.service.BusName(servicename, self._dbusconn, do_not_queue=True) + + # Add the root item that will return all items as a tree + self._dbusnodes['/'] = self._create_tree_export(self._dbusconn, '/', self._get_tree_dict) + + logging.info("registered ourselves on D-Bus as %s" % servicename) + + def _get_tree_dict(self, path, get_text=False): + logging.debug("_get_tree_dict called for %s" % path) + r = {} + px = path + if not px.endswith('/'): + px += '/' + for p, item in self._dbusobjects.items(): + if p.startswith(px): + v = item.GetText() if get_text else wrap_dbus_value(item.local_get_value()) + r[p[len(px):]] = v + logging.debug(r) + return r + + # To force immediate deregistering of this dbus service and all its object paths, explicitly + # call __del__(). + def __del__(self): + for node in list(self._dbusnodes.values()): + node.__del__() + self._dbusnodes.clear() + for item in list(self._dbusobjects.values()): + item.__del__() + self._dbusobjects.clear() + if self._dbusname: + self._dbusname.__del__() # Forces call to self._bus.release_name(self._name), see source code + self._dbusname = None + + # @param callbackonchange function that will be called when this value is changed. First parameter will + # be the path of the object, second the new value. This callback should return + # True to accept the change, False to reject it. + def add_path(self, path, value, description="", writeable=False, + onchangecallback=None, gettextcallback=None): + + if onchangecallback is not None: + self._onchangecallbacks[path] = onchangecallback + + item = VeDbusItemExport( + self._dbusconn, path, value, description, writeable, + self._value_changed, gettextcallback, deletecallback=self._item_deleted) + + spl = path.split('/') + for i in range(2, len(spl)): + subPath = '/'.join(spl[:i]) + if subPath not in self._dbusnodes and subPath not in self._dbusobjects: + self._dbusnodes[subPath] = self._create_tree_export(self._dbusconn, subPath, self._get_tree_dict) + self._dbusobjects[path] = item + logging.debug('added %s with start value %s. Writeable is %s' % (path, value, writeable)) + + # Add the mandatory paths, as per victron dbus api doc + def add_mandatory_paths(self, processname, processversion, connection, + deviceinstance, productid, productname, firmwareversion, hardwareversion, connected): + self.add_path('/Mgmt/ProcessName', processname) + self.add_path('/Mgmt/ProcessVersion', processversion) + self.add_path('/Mgmt/Connection', connection) + + # Create rest of the mandatory objects + self.add_path('/DeviceInstance', deviceinstance) + self.add_path('/ProductId', productid) + self.add_path('/ProductName', productname) + self.add_path('/FirmwareVersion', firmwareversion) + self.add_path('/HardwareVersion', hardwareversion) + self.add_path('/Connected', connected) + + def _create_tree_export(self, bus, objectPath, get_value_handler): + return VeDbusTreeExport(bus, objectPath, get_value_handler) + + # Callback function that is called from the VeDbusItemExport objects when a value changes. This function + # maps the change-request to the onchangecallback given to us for this specific path. + def _value_changed(self, path, newvalue): + if path not in self._onchangecallbacks: + return True + + return self._onchangecallbacks[path](path, newvalue) + + def _item_deleted(self, path): + self._dbusobjects.pop(path) + for np in list(self._dbusnodes.keys()): + if np != '/': + for ip in self._dbusobjects: + if ip.startswith(np + '/'): + break + else: + self._dbusnodes[np].__del__() + self._dbusnodes.pop(np) + + def __getitem__(self, path): + return self._dbusobjects[path].local_get_value() + + def __setitem__(self, path, newvalue): + self._dbusobjects[path].local_set_value(newvalue) + + def __delitem__(self, path): + self._dbusobjects[path].__del__() # Invalidates and then removes the object path + assert path not in self._dbusobjects + + def __contains__(self, path): + return path in self._dbusobjects + +""" +Importing basics: + - If when we power up, the D-Bus service does not exist, or it does exist and the path does not + yet exist, still subscribe to a signal: as soon as it comes online it will send a signal with its + initial value, which VeDbusItemImport will receive and use to update local cache. And, when set, + call the eventCallback. + - If when we power up, save it + - When using get_value, know that there is no difference between services (or object paths) that don't + exist and paths that are invalid (= empty array, see above). Both will return None. In case you do + really want to know ifa path exists or not, use the exists property. + - When a D-Bus service leaves the D-Bus, it will first invalidate all its values, and send signals + with that update, and only then leave the D-Bus. (or do we need to subscribe to the NameOwnerChanged- + signal!?!) To be discussed and make sure. Not really urgent, since all existing code that uses this + class already subscribes to the NameOwnerChanged signal, and subsequently removes instances of this + class. + +Read when using this class: +Note that when a service leaves that D-Bus without invalidating all its exported objects first, for +example because it is killed, VeDbusItemImport doesn't have a clue. So when using VeDbusItemImport, +make sure to also subscribe to the NamerOwnerChanged signal on bus-level. Or just use dbusmonitor, +because that takes care of all of that for you. +""" +class VeDbusItemImport(object): + ## Constructor + # @param bus the bus-object (SESSION or SYSTEM). + # @param serviceName the dbus-service-name (string), for example 'com.victronenergy.battery.ttyO1' + # @param path the object-path, for example '/Dc/V' + # @param eventCallback function that you want to be called on a value change + # @param createSignal only set this to False if you use this function to one time read a value. When + # leaving it to True, make sure to also subscribe to the NameOwnerChanged signal + # elsewhere. See also note some 15 lines up. + def __init__(self, bus, serviceName, path, eventCallback=None, createsignal=True): + # TODO: is it necessary to store _serviceName and _path? Isn't it + # stored in the bus_getobjectsomewhere? + self._serviceName = serviceName + self._path = path + self._match = None + # TODO: _proxy is being used in settingsdevice.py, make a getter for that + self._proxy = bus.get_object(serviceName, path, introspect=False) + self.eventCallback = eventCallback + + assert eventCallback is None or createsignal == True + if createsignal: + self._match = self._proxy.connect_to_signal( + "PropertiesChanged", weak_functor(self._properties_changed_handler)) + + # store the current value in _cachedvalue. When it doesn't exists set _cachedvalue to + # None, same as when a value is invalid + self._cachedvalue = None + try: + v = self._proxy.GetValue() + except dbus.exceptions.DBusException: + pass + else: + self._cachedvalue = unwrap_dbus_value(v) + + def __del__(self): + if self._match != None: + self._match.remove() + self._match = None + self._proxy = None + + def _refreshcachedvalue(self): + self._cachedvalue = unwrap_dbus_value(self._proxy.GetValue()) + + ## Returns the path as a string, for example '/AC/L1/V' + @property + def path(self): + return self._path + + ## Returns the dbus service name as a string, for example com.victronenergy.vebus.ttyO1 + @property + def serviceName(self): + return self._serviceName + + ## Returns the value of the dbus-item. + # the type will be a dbus variant, for example dbus.Int32(0, variant_level=1) + # this is not a property to keep the name consistant with the com.victronenergy.busitem interface + # returns None when the property is invalid + def get_value(self): + return self._cachedvalue + + ## Writes a new value to the dbus-item + def set_value(self, newvalue): + r = self._proxy.SetValue(wrap_dbus_value(newvalue)) + + # instead of just saving the value, go to the dbus and get it. So we have the right type etc. + if r == 0: + self._refreshcachedvalue() + + return r + + ## Resets the item to its default value + def set_default(self): + self._proxy.SetDefault() + self._refreshcachedvalue() + + ## Returns the text representation of the value. + # For example when the value is an enum/int GetText might return the string + # belonging to that enum value. Another example, for a voltage, GetValue + # would return a float, 12.0Volt, and GetText could return 12 VDC. + # + # Note that this depends on how the dbus-producer has implemented this. + def get_text(self): + return self._proxy.GetText() + + ## Returns true of object path exists, and false if it doesn't + @property + def exists(self): + # TODO: do some real check instead of this crazy thing. + r = False + try: + r = self._proxy.GetValue() + r = True + except dbus.exceptions.DBusException: + pass + + return r + + ## callback for the trigger-event. + # @param eventCallback the event-callback-function. + @property + def eventCallback(self): + return self._eventCallback + + @eventCallback.setter + def eventCallback(self, eventCallback): + self._eventCallback = eventCallback + + ## Is called when the value of the imported bus-item changes. + # Stores the new value in our local cache, and calls the eventCallback, if set. + def _properties_changed_handler(self, changes): + if "Value" in changes: + changes['Value'] = unwrap_dbus_value(changes['Value']) + self._cachedvalue = changes['Value'] + if self._eventCallback: + # The reason behind this try/except is to prevent errors silently ending up the an error + # handler in the dbus code. + try: + self._eventCallback(self._serviceName, self._path, changes) + except: + traceback.print_exc() + os._exit(1) # sys.exit() is not used, since that also throws an exception + + +class VeDbusTreeExport(dbus.service.Object): + def __init__(self, bus, objectPath, get_value_handler): + dbus.service.Object.__init__(self, bus, objectPath) + self._get_value_handler = get_value_handler + logging.debug("VeDbusTreeExport %s has been created" % objectPath) + + def __del__(self): + # self._get_path() will raise an exception when retrieved after the call to .remove_from_connection, + # so we need a copy. + path = self._get_path() + if path is None: + return + self.remove_from_connection() + logging.debug("VeDbusTreeExport %s has been removed" % path) + + def _get_path(self): + if len(self._locations) == 0: + return None + return self._locations[0][1] + + @dbus.service.method('com.victronenergy.BusItem', out_signature='v') + def GetValue(self): + value = self._get_value_handler(self._get_path()) + return dbus.Dictionary(value, signature=dbus.Signature('sv'), variant_level=1) + + @dbus.service.method('com.victronenergy.BusItem', out_signature='v') + def GetText(self): + return self._get_value_handler(self._get_path(), True) + + def local_get_value(self): + return self._get_value_handler(self.path) + + +class VeDbusItemExport(dbus.service.Object): + ## Constructor of VeDbusItemExport + # + # Use this object to export (publish), values on the dbus + # Creates the dbus-object under the given dbus-service-name. + # @param bus The dbus object. + # @param objectPath The dbus-object-path. + # @param value Value to initialize ourselves with, defaults to None which means Invalid + # @param description String containing a description. Can be called over the dbus with GetDescription() + # @param writeable what would this do!? :). + # @param callback Function that will be called when someone else changes the value of this VeBusItem + # over the dbus. First parameter passed to callback will be our path, second the new + # value. This callback should return True to accept the change, False to reject it. + def __init__(self, bus, objectPath, value=None, description=None, writeable=False, + onchangecallback=None, gettextcallback=None, deletecallback=None): + dbus.service.Object.__init__(self, bus, objectPath) + self._onchangecallback = onchangecallback + self._gettextcallback = gettextcallback + self._value = value + self._description = description + self._writeable = writeable + self._deletecallback = deletecallback + + # To force immediate deregistering of this dbus object, explicitly call __del__(). + def __del__(self): + # self._get_path() will raise an exception when retrieved after the + # call to .remove_from_connection, so we need a copy. + path = self._get_path() + if path == None: + return + if self._deletecallback is not None: + self._deletecallback(path) + self.local_set_value(None) + self.remove_from_connection() + logging.debug("VeDbusItemExport %s has been removed" % path) + + def _get_path(self): + if len(self._locations) == 0: + return None + return self._locations[0][1] + + ## Sets the value. And in case the value is different from what it was, a signal + # will be emitted to the dbus. This function is to be used in the python code that + # is using this class to export values to the dbus. + # set value to None to indicate that it is Invalid + def local_set_value(self, newvalue): + if self._value == newvalue: + return + + self._value = newvalue + + changes = {} + changes['Value'] = wrap_dbus_value(newvalue) + changes['Text'] = self.GetText() + self.PropertiesChanged(changes) + + def local_get_value(self): + return self._value + + # ==== ALL FUNCTIONS BELOW THIS LINE WILL BE CALLED BY OTHER PROCESSES OVER THE DBUS ==== + + ## Dbus exported method SetValue + # Function is called over the D-Bus by other process. It will first check (via callback) if new + # value is accepted. And it is, stores it and emits a changed-signal. + # @param value The new value. + # @return completion-code When successful a 0 is return, and when not a -1 is returned. + @dbus.service.method('com.victronenergy.BusItem', in_signature='v', out_signature='i') + def SetValue(self, newvalue): + if not self._writeable: + return 1 # NOT OK + + newvalue = unwrap_dbus_value(newvalue) + + if newvalue == self._value: + return 0 # OK + + # call the callback given to us, and check if new value is OK. + if (self._onchangecallback is None or + (self._onchangecallback is not None and self._onchangecallback(self.__dbus_object_path__, newvalue))): + + self.local_set_value(newvalue) + return 0 # OK + + return 2 # NOT OK + + ## Dbus exported method GetDescription + # + # Returns the a description. + # @param language A language code (e.g. ISO 639-1 en-US). + # @param length Lenght of the language string. + # @return description + @dbus.service.method('com.victronenergy.BusItem', in_signature='si', out_signature='s') + def GetDescription(self, language, length): + return self._description if self._description is not None else 'No description given' + + ## Dbus exported method GetValue + # Returns the value. + # @return the value when valid, and otherwise an empty array + @dbus.service.method('com.victronenergy.BusItem', out_signature='v') + def GetValue(self): + return wrap_dbus_value(self._value) + + ## Dbus exported method GetText + # Returns the value as string of the dbus-object-path. + # @return text A text-value. '---' when local value is invalid + @dbus.service.method('com.victronenergy.BusItem', out_signature='s') + def GetText(self): + if self._value is None: + return '---' + + # Default conversion from dbus.Byte will get you a character (so 'T' instead of '84'), so we + # have to convert to int first. Note that if a dbus.Byte turns up here, it must have come from + # the application itself, as all data from the D-Bus should have been unwrapped by now. + if self._gettextcallback is None and type(self._value) == dbus.Byte: + return str(int(self._value)) + + if self._gettextcallback is None and self.__dbus_object_path__ == '/ProductId': + return "0x%X" % self._value + + if self._gettextcallback is None: + return str(self._value) + + return self._gettextcallback(self.__dbus_object_path__, self._value) + + ## The signal that indicates that the value has changed. + # Other processes connected to this BusItem object will have subscribed to the + # event when they want to track our state. + @dbus.service.signal('com.victronenergy.BusItem', signature='a{sv}') + def PropertiesChanged(self, changes): + pass + +## This class behaves like a regular reference to a class method (eg. self.foo), but keeps a weak reference +## to the object which method is to be called. +## Use this object to break circular references. +class weak_functor: + def __init__(self, f): + self._r = weakref.ref(f.__self__) + self._f = weakref.ref(f.__func__) + + def __call__(self, *args, **kargs): + r = self._r() + f = self._f() + if r == None or f == None: + return + f(r, *args, **kargs) diff --git a/fileList b/fileList new file mode 100644 index 0000000..6d55f03 --- /dev/null +++ b/fileList @@ -0,0 +1 @@ +/opt/victronenergy/gui/qml/PageSettings.qml diff --git a/gitHubInfo b/gitHubInfo new file mode 100644 index 0000000..3435a5c --- /dev/null +++ b/gitHubInfo @@ -0,0 +1 @@ +kwindrem:latest diff --git a/packageAutoUpdater b/packageAutoUpdater deleted file mode 100755 index aa53004..0000000 --- a/packageAutoUpdater +++ /dev/null @@ -1,268 +0,0 @@ -#!/bin/bash - -# This script keeps Venus modification packages up to date -# It looks on GitHub for package updates -# The timestamp of the current tag on GitHub is compatred to the one that was last installed -# if GitHub is newer, the local copy is updated and the package is reinstalled -# -# This script also checks for updates on a USB stick and gives priority to that location -# -# An automatic update will only occur if the package is installed and the autoUpdate setup option is set -# -# the script runs as a service so any updates that also update this script will restart automatically - -# get the full, unambiguous path to this script -scriptDir="$( cd "$(dirname $0)" >/dev/null 2>&1 ; /bin/pwd -P )" -packageame=$(basename "$scriptDir") -shortScriptName=$(basename "$scriptDir")/$(basename "$0") - -source "/data/SetupHelper/EssentialResources" -source "/data/SetupHelper/LogHandler" - -# this flag is tested by LogHandler to determine if messages should be output to the console -logToConsole=false - -source "/data/SetupHelper/UpdateResources" -source "/data/SetupHelper/DbusSettingsResources" - -# updates status message on GUI -# $1 is the message identifier (not the actual message - -lastMessage='' -lastPackage='' - -updateStatus () -{ - updateDbus=false - checkPackage=false - if [[ $1 == 'IDLE' ]] ; then - message="Fast updates: 10 sec/pkg, Normal updates: 10 min/pkg" - elif [[ $1 == 'USB_DISABLED' ]] ; then - message="USB/SD updates disabled auto GitHub updates" - elif [[ $1 == 'CHECKING' ]] ; then - message="checking $package" - checkPackage=true - elif [[ $1 == 'WAIT' ]] ; then - message="waiting to check $package" - checkPackage=true - elif [[ $1 == 'USB_CHECK' ]] ; then - message="Checking USB/SD for updates" - else - message="" - fi - if [[ $1 != $lastMessage ]]; then - updateDbus=true - elif $checkPackage && [[ $package != $lastPackage ]]; then - updateDbus=true - fi - # update GUI status message - if $updateDbus ; then - updateDbusStringSetting "/Settings/PackageVersion/CheckingPackage" "$message" - fi - lastMessage=$1 - lastPackage=$package -} - - -#### main code starts here - -# wait until dbus settings are active -while [ $(dbus -y | grep -c "com.victronenergy.settings") == 0 ]; do - logMessage "waiting for dBus settings" - sleep 1 -done - -logMessage "starting up" - -usbCheck=false -mediaDetected=false -lastUpdateTime=0 -checkingPackage=false -updateSetupHelper=false - - -# 10 minutes between GitHub checks to minimize network traffic -gitHubSlowCheckDelay=600 -# 10 seconds for first pass -gitHubFastCheckDelay=10 -gitHubCheckDelay=0 - -lastGitHubUpdateSetting=0 - -# loop forever -while true ; do - rebootNeeded=false - restartFromFirstPackage=false - - # skip all processing if package list doesn't exist - # but keep checking - if [ ! -f "$packageListFile" ]; then - sleep 10 - continue - fi - - # loop through packages from package list - while read -u 9 package gitHubUser gitHubBranch; do - # skip comments - if [[ ${package:0:1} == "#" ]] ; then - continue - # skip blank/incomplete lines - elif [ -z $package ] || [ -z $gitHubUser ] || [ -z $gitHubBranch ] ; then - continue - fi - - packageDir="/data/$package" - setupOptionsDir="$setupOptionsRoot"/$package - - # skip uninstalled packages - if [ ! -f "$installedFlagPrefix"$package ]; then - continue - # package has been installed, check for updates - else - checkingPackage=true - fi - - # this loop permits detection of USB media during the long wait for the next GitHub check - while $checkingPackage ; do - doUpdate=false - - # pull Git Hub autoupdate mode from dbus - autoUpdateSetting=$(dbus-send --system --print-reply=literal --dest=com.victronenergy.settings /Settings/PackageVersion/GitHubAutoUpdate\ - com.victronenergy.BusItem.GetValue 2> /dev/null | awk '{print $3}') - if [ -z $autoUpdateSetting ]; then - autoUpdateSetting=0 - fi - - # check for USB / SD media - mediaList=($(ls /media)) - # no media - if [ -z $mediaList ] ; then - mediaDetected=false - usbCheck=false - # media first detected, enable USB checks and start loop over - elif ! $mediaDetected ; then - mediaDetected=true - usbCheck=true - updateStatus 'USB_CHECK' - checkingPackage=false - restartFromFirstPackage=true - break - fi - - # nothing to do - reset loop and wait - if (( $autoUpdateSetting == 0 )) && ! $usbCheck ; then - checkingPackage=false - restartFromFirstPackage=true - updateStatus 'IDLE' - break - fi - - # USB / SD updates - if $usbCheck ; then - for dir in ${mediaList[@]} ; do - getFromUsb $package - if [ $? -eq 1 ]; then - logMessage "found $package on USB" - doUpdate=true - updateStatus 'CHECKING' - break - fi - done - # done checking for this package, time to move on - checkingPackage=false - - # Git Hub updates - elif (( $autoUpdateSetting != 0 )); then - # if speeding up the loop, start package scan over - if (( $autoUpdateSetting >= 2 )) && (( $lastGitHubUpdateSetting <= 1 )); then - checkingPackage=false - restartFromFirstPackage=true - lastGitHubUpdateSetting=$autoUpdateSetting - break - fi - - # set update delay based on update mode - if (( $autoUpdateSetting >= 2 )) ; then - gitHubCheckDelay=$gitHubFastCheckDelay - else - gitHubCheckDelay=$gitHubSlowCheckDelay - fi - - currentTime=$(date '+%s') - # wait between GitHub updates to minimize traffic - if (( $currentTime >= $lastUpdateTime + $gitHubCheckDelay )) ; then - updateStatus 'CHECKING' - lastUpdateTime=$currentTime - getFromGitHub $package - if [ $? -eq 1 ]; then - logMessage "found $package on GitHub" - doUpdate=true - fi - checkingPackage=false - elif (( $autoUpdateSetting != 0 )); then - updateStatus 'WAIT' - fi - fi - if $doUpdate ; then - # do SetupHelper update now since other setup scripts depend on it's resources - # will end this script which will start up again via supervise - if [ $package == "SetupHelper" ]; then - updateSetupHelper=true - break - # reinstall the package without user interaction - else - # update via unattended reinstall only - logMessage "updating $package with $gitHubBranch" - doUpdate $package $gitHubBranch - if $usbCheck ; then - sleep 1 - fi - fi - elif (( $autoUpdateSetting == 0 )); then - rm -rf "$packageDir-$gitHubBranch" - fi - - # delay for inner loop - if $checkingPackage ; then - if $usbCheck ; then - usleep 200000 - else - sleep 1 - fi - fi - done # end while checkingPackage - - if $restartFromFirstPackage || $updateSetupHelper ; then - break - else - sleep 1 - fi - done 9< "$packageListFile" # end while read ... - -# if not restarting scan, update automatic update state - if ! $restartFromFirstPackage && ! $updateSetupHelper; then - # single pass - if (( $autoUpdateSetting == 3 )) ; then - setSetting 0 /Settings/PackageVersion/GitHubAutoUpdate - # end of first pass, switch to slow updates - elif (( $autoUpdateSetting == 2 )) ; then - setSetting 1 /Settings/PackageVersion/GitHubAutoUpdate - fi - fi - usbCheck=false - - # continue execution in packageAutoUpdateCleanup - # so that this script and the service can exit cleanly - if $updateSetupHelper || $rebootNeeded ; then - logMessage "continuing in cleanup script - $packageName exiting" - - nohup "$scriptDir/packageAutoUpdaterCleanup" $gitHubBranch $updateSetupHelper $rebootNeeded 2>&1 | awk '{print "packageAutoUpdaterCleanup " $0}'| tai64n >> /var/log/SetupHelper & - - # shutdown the service which runs this script - this will end this script - svc -d "/service/SetupHelper" - - # wait here for service to end this script - sleep 10000 - fi - sleep 1 -done diff --git a/packageAutoUpdaterCleanup b/packageAutoUpdaterCleanup deleted file mode 100755 index 8b2579b..0000000 --- a/packageAutoUpdaterCleanup +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/bash - -# This script keeps cleans up at the end of packageAutoUpdater processing -# It is called as a nohup (no hang up) process so that the main script can terminate cleanly -# Mainly, this script will run SetupHelper's setup script to reinstall itself -# which can't be done from packageAutoUpdater. Doing so would abort the installation prematurely. -# This script also reboots the system if needed. - -# get parameters from command line -gitHubBranch=$1 -updateSetupHelper=$2 -rebootNeeded=$3 - -# get the full, unambiguous path to this script -scriptDir="$( cd "$(dirname $0)" >/dev/null 2>&1 ; /bin/pwd -P )" -shortScriptName=$(basename "$scriptDir")/$(basename "$0") - -source "/data/SetupHelper/LogHandler" - -# this flag is tested by LogHandler to determine if messages should be output to the console -logToConsole=false - -source "/data/SetupHelper/UpdateResources" - -# give calling script time to stop SetupHelper service -sleep 2 - -if $updateSetupHelper ; then - logMessage "running SetupHelper setup script to reinstall" - doUpdate "SetupHelper" $gitHubBranch -fi - -# reboot now if any script reboots were indicated -#if $rebootNeeded ; then -# logMessage "rebooting ..." -# reboot -#fi diff --git a/packageInstaller b/packageInstaller deleted file mode 100755 index dcdc816..0000000 --- a/packageInstaller +++ /dev/null @@ -1,150 +0,0 @@ -#!/bin/bash - -# This script prompts for manual installation of packages from the packageList file -# it is called from SetupHelper/setup or can be run from the command line -# Packages are installed either from GitHub or from a USB stick -# - -source "/data/SetupHelper/CommonResources" -source "/data/SetupHelper/UpdateResources" - -echo -echo "This script allows Venus modification packages to be installed" -echo "Previously installed packages are updated automatically, not from this script" -echo "If updating from USB stick, insert it now before proceeding" -echo -while true ; do - read -p "Select the package source GitHub (g) or USB (u): " response - case $response in - [gG]*) - updateFromUsb=false - break;; - [uU]*) - updateFromUsb=true - break;; - *) - ;; - esac -done - -if $updateFromUsb ; then - # wait up to 20 seconds for USB stick - timeoutCount=20 - /bin/echo -n "Waiting for USB media" - while true ; do - mediaList=($(ls /media)) - if [ ! -z $mediaList ] ; then - break; - elif ((timeoutCount-- == 0)); then - echo - echo "no usb media found - exiting" - exit - else - /bin/echo -n "." - sleep 1 - fi - done - echo -fi - -# allow reinstallations if auto updates are not enabled -autoUpdateSetting=$(dbus-send --system --print-reply=literal --dest=com.victronenergy.settings /Settings/PackageVersion/GitHubAutoUpdate\ - com.victronenergy.BusItem.GetValue 2> /dev/null | awk '{print $3}') -if [ -z $autoUpdateSetting ] || [ $autoUpdateSetting == 0 ]; then - autoUpdatesEnabled=false -else - autoUpdatesEnabled=true -fi - -rebootNeeded=false -updateSetupHelper=false - -# skip all processing if package list doesn't exist -if [ ! -f "$packageListFile" ]; then - echo "no packageList file found" - exit -fi - -# loop through packages from package list file -while read -u 9 package gitHubUser gitHubBranch; do - # skip comments - if [[ ${package:0:1} == "#" ]] ; then - continue - # skip blank/incomplete lines - elif [ -z $package ] || [ -z $gitHubUser ] || [ -z $gitHubBranch ] ; then - continue - fi - - doUpdate=false - packageDir="/data/$package" - - # if automatic updates are enabled, skip packages that are installed - checkOnly=false - if [ -e $packageDir ] && [ -f "$installedFlagPrefix"$package ]; then - installText="reinstall" - # update will be skipped so set a flag so getFromGitHub only checks versions - if ! $updateFromUsb ; then - checkOnly=true - fi - else - installText="install" - fi - - if $updateFromUsb ; then - for dir in ${mediaList[@]} ; do - getFromUsb $package - if [ $? -eq 1 ]; then - echo - yesNoPrompt "$installText $package from USB? (y/n): " - if $yesResponse ; then - doUpdate=true - else - rm -rf "$packageDir-$gitHubBranch" - fi - break; - fi - done - - # check GitHub - else - getFromGitHub $package $checkOnly - if [ $? -eq 1 ]; then - if $autoUpdatesEnabled ; then - echo "$package needs update but will be updated automatically - skipping" - continue - fi - echo - yesNoPrompt "$installText $package from GitHub? (y/n): " - if $yesResponse ; then - doUpdate=true - else - rm -rf "$packageDir-$gitHubBranch" - fi - fi - fi - if $doUpdate ; then - # defer running SetupHelper script - if [ $package == "SetupHelper" ]; then - updateSetupHelper=true - # update the package with user interaction if it is needed to do a full install (not reinstall) - else - doUpdate $package 'prompting' - fi - fi -done 9< "$packageListFile" # end while read ... - -# if an update was found for SetupHelper, run it's setup script now -# this prevents stepping on SetupHelper resources -# (this script will complete even if it's replaced) -if $updateSetupHelper ; then - doUpdate "SetupHelper" 'prompting' -fi -if $rebootNeeded ; then - echo - yesNoPrompt "Reboot needed to complete installation, do it now? (y/n): " - if $yesResponse ; then - echo "rebooting ..." - else - echo "You must reboot manually to complete installation" - fi -fi diff --git a/rcS.local b/rcS.local index 87bfa5c..900d80b 100755 --- a/rcS.local +++ b/rcS.local @@ -1,4 +1,6 @@ #!/bin/bash # SetupHelper reinstall all Venus mods -nohup /data/SetupHelper/reinstallMods > /dev/null & +if [ -f /data/SetupHelper/reinstallMods ]; then + nohup /data/SetupHelper/reinstallMods > /dev/null & +fi diff --git a/reinstallMods b/reinstallMods index 55f36b0..1c713c1 100755 --- a/reinstallMods +++ b/reinstallMods @@ -14,18 +14,19 @@ source "$scriptDir/LogHandler" # disable outputting log messages to console runningAtBoot=true +if [ ! -f "$reinstallScriptsList" ] ; then + logMessage "$reinstallScriptsList file not found" + exit +fi + +logMessage "reinstallMods starting" + # wait until dbus settings are active while [ $(dbus -y | grep -c "com.victronenergy.settings") == 0 ]; do logMessage "waiting for dBus settings" sleep 2 done - -if [ ! -f "$reinstallScriptsList" ] ; then - logMessage "$reinstallScriptsList file not found" - exit -fi - # read lines from script list file specified above # and call each script rebootNeeded=false @@ -50,4 +51,6 @@ done 9< "$reinstallScriptsList" if $rebootNeeded ; then logMessage "rebooting ..." reboot +else + logMessage "reinstallMods complete" fi diff --git a/removeManagerSettings b/removeManagerSettings new file mode 100755 index 0000000..6dad700 --- /dev/null +++ b/removeManagerSettings @@ -0,0 +1,48 @@ +#!/bin/bash + + +# remove Settings associated with previous versions of SetupHelper +# and those of the current verison +# run this script to make a clean start + +source /data/SetupHelper/DbusSettingsResources + +removeDbusSettings /Settings/PackageManager/Count \ + /Settings/PackageManager/GitHubAutoUpdate \ + /Settings/PackageManager/GitHubAutoDownload \ + /Settings/PackageManager/AutoInstall \ + /Settings/PackageManager/Edit/PackageName \ + /Settings/PackageManager/Edit/GitHubUser \ + /Settings/PackageManager/Edit/GitHubBranch \ + /Settings/PackageManager/0/PackageName \ + /Settings/PackageManager/0/GitHubUser \ + /Settings/PackageManager/0/GitHubBranch \ + /Settings/PackageManager/1/PackageName \ + /Settings/PackageManager/1/GitHubUser \ + /Settings/PackageManager/1/GitHubBranch \ + /Settings/PackageManager/2/PackageName \ + /Settings/PackageManager/2/GitHubUser \ + /Settings/PackageManager/2/GitHubBranch \ + /Settings/PackageManager/3/PackageName \ + /Settings/PackageManager/3/GitHubUser \ + /Settings/PackageManager/3/GitHubBranch \ + /Settings/PackageManager/4/PackageName \ + /Settings/PackageManager/4/GitHubUser \ + /Settings/PackageManager/4/GitHubBranch > /dev/null + +removeDbusSettings /Settings/PackageManager/5/PackageName \ + /Settings/PackageManager/5/GitHubUser \ + /Settings/PackageManager/5/GitHubBranch \ + /Settings/PackageManager/6/PackageName \ + /Settings/PackageManager/6/GitHubUser \ + /Settings/PackageManager/6/GitHubBranch \ + /Settings/PackageManager/7/PackageName \ + /Settings/PackageManager/7/GitHubUser \ + /Settings/PackageManager/7/GitHubBranch \ + /Settings/PackageManager/8/PackageName \ + /Settings/PackageManager/8/GitHubUser \ + /Settings/PackageManager/8/GitHubBranch \ + /Settings/PackageManager/9/PackageName \ + /Settings/PackageManager/9/GitHubUser \ + /Settings/PackageManager/9/GitHubBranch > /dev/null + diff --git a/removePkgSettings b/removePkgSettings new file mode 100755 index 0000000..95ce4d7 --- /dev/null +++ b/removePkgSettings @@ -0,0 +1,120 @@ +#!/bin/bash + + +# remove Settings associated with previous versions of SetupHelper +# and those of the current verison +# run this script to make a clean start + +source /data/SetupHelper/DbusSettingsResources + +removeDbusSettings /Settings/PackageMonitor/Count \ + /Settings/PackageMonitor/GitHubAutoUpdate \ + /Settings/PackageMonitor/GitHubAutoDownload \ + /Settings/PackageMonitor/AutoInstall \ + /Settings/PackageMonitor/Edit/PackageName \ + /Settings/PackageMonitor/Edit/GitHubUser \ + /Settings/PackageMonitor/Edit/GitHubBranch \ + /Settings/PackageMonitor/0/PackageName \ + /Settings/PackageMonitor/0/GitHubUser \ + /Settings/PackageMonitor/0/GitHubBranch \ + /Settings/PackageMonitor/1/PackageName \ + /Settings/PackageMonitor/1/GitHubUser \ + /Settings/PackageMonitor/1/GitHubBranch \ + /Settings/PackageMonitor/2/PackageName \ + /Settings/PackageMonitor/2/GitHubUser \ + /Settings/PackageMonitor/2/GitHubBranch \ + /Settings/PackageMonitor/3/PackageName \ + /Settings/PackageMonitor/3/GitHubUser \ + /Settings/PackageMonitor/3/GitHubBranch \ + /Settings/PackageMonitor/4/PackageName \ + /Settings/PackageMonitor/4/GitHubUser \ + /Settings/PackageMonitor/4/GitHubBranch > /dev/null + +removeDbusSettings /Settings/PackageMonitor/5/PackageName \ + /Settings/PackageMonitor/5/GitHubUser \ + /Settings/PackageMonitor/5/GitHubBranch \ + /Settings/PackageMonitor/6/PackageName \ + /Settings/PackageMonitor/6/GitHubUser \ + /Settings/PackageMonitor/6/GitHubBranch \ + /Settings/PackageMonitor/7/PackageName \ + /Settings/PackageMonitor/7/GitHubUser \ + /Settings/PackageMonitor/7/GitHubBranch \ + /Settings/PackageMonitor/8/PackageName \ + /Settings/PackageMonitor/8/GitHubUser \ + /Settings/PackageMonitor/8/GitHubBranch \ + /Settings/PackageMonitor/9/PackageName \ + /Settings/PackageMonitor/9/GitHubUser \ + /Settings/PackageMonitor/9/GitHubBranch > /dev/null + +removeDbusSettings /Settings/PackageMonitor/10/PackageName \ + /Settings/PackageMonitor/10/GitHubUser \ + /Settings/PackageMonitor/10/GitHubBranch \ + /Settings/PackageMonitor/11/PackageName \ + /Settings/PackageMonitor/11/GitHubUser \ + /Settings/PackageMonitor/11/GitHubBranch \ + /Settings/PackageMonitor/12/PackageName \ + /Settings/PackageMonitor/12/GitHubUser \ + /Settings/PackageMonitor/12/GitHubBranch \ + /Settings/PackageMonitor/13/PackageName \ + /Settings/PackageMonitor/13/GitHubUser \ + /Settings/PackageMonitor/13/GitHubBranch \ + /Settings/PackageMonitor/14/PackageName \ + /Settings/PackageMonitor/14/GitHubUser \ + /Settings/PackageMonitor/14/GitHubBranch > /dev/null +removeDbusSettings /Settings/PackageMonitor/15/PackageName \ + /Settings/PackageMonitor/15/GitHubUser \ + /Settings/PackageMonitor/15/GitHubBranch \ + /Settings/PackageMonitor/16/PackageName \ + /Settings/PackageMonitor/16/GitHubUser \ + /Settings/PackageMonitor/16/GitHubBranch \ + /Settings/PackageMonitor/17/PackageName \ + /Settings/PackageMonitor/17/GitHubUser \ + /Settings/PackageMonitor/17/GitHubBranch \ + /Settings/PackageMonitor/18/PackageName \ + /Settings/PackageMonitor/18/GitHubUser \ + /Settings/PackageMonitor/18/GitHubBranch \ + /Settings/PackageMonitor/19/PackageName \ + /Settings/PackageMonitor/19/GitHubUser \ + /Settings/PackageMonitor/19/GitHubBranch > /dev/null + +removeDbusSettings /Settings/PackageVersion/Count \ + /Settings/PackageVersion/New/GitHubUser \ + /Settings/PackageVersion/New/GitHubBranch \ + /Settings/PackageVersion/New/InstalledVersion \ + /Settings/PackageVersion/New/PackageName \ + /Settings/PackageVersion/New/PackageVersion \ + /Settings/PackageVersion/EditPackageIndex \ + /Settings/PackageVersion/GitHubAutoUpdate \ + /Settings/PackageVersion/GitHubAutoUpdate \ + /Settings/PackageVersion/EditAction \ + /Settings/PackageVersion/CheckingPackage \ + /Settings/PackageVersion/0/PackageName \ + /Settings/PackageVersion/0/GitHubUser \ + /Settings/PackageVersion/0/GitHubBranch \ + /Settings/PackageVersion/0/GitHubVersion \ + /Settings/PackageVersion/0/InstalledVersion \ + /Settings/PackageVersion/0/PackageVersion > /dev/null + +removeDbusSettings /Settings/PackageVersion/1/PackageName \ + /Settings/PackageVersion/1/GitHubUser \ + /Settings/PackageVersion/1/GitHubBranch \ + /Settings/PackageVersion/1/GitHubVersion \ + /Settings/PackageVersion/1/InstalledVersion \ + /Settings/PackageVersion/1/PackageVersion \ + /Settings/PackageVersion/2/PackageName \ + /Settings/PackageVersion/2/GitHubUser \ + /Settings/PackageVersion/2/GitHubBranch \ + /Settings/PackageVersion/2/GitHubVersion \ + /Settings/PackageVersion/2/InstalledVersion \ + /Settings/PackageVersion/2/PackageVersion \ + /Settings/PackageVersion/3/PackageName \ + /Settings/PackageVersion/3/GitHubUser \ + /Settings/PackageVersion/3/GitHubBranch \ + /Settings/PackageVersion/3/EditAction \ + /Settings/PackageVersion/3/GitHubVersion \ + /Settings/PackageVersion/3/InstalledVersion \ + /Settings/PackageVersion/3/PackageVersion > /dev/null + +removeDbusSettings /Settings/PackageMonitor/Edit/GitHubUserEdit/GitHubUser \ + /Settings/PackageVersion/4/PackageName \ + /Settings/PackageVersion/4/PackageVersion > /dev/null diff --git a/sampleSetupScript b/sampleSetupScript index ac51b54..b3340a5 100755 --- a/sampleSetupScript +++ b/sampleSetupScript @@ -18,13 +18,6 @@ # # key segments are marked with #### -# version that obsoletes this package -# package should not be run STARTING with this version -# CommonResources will set scriptAction to UNINSTALL -# and prevent installation if Venus version is at this version or later -# set to a blank string if package is not obsolete -obsoleteVersion="v2.70~12" - #### following lines incorporate SetupHelper utilities into this script # Refer to the SetupHelper ReadMe file for details. @@ -135,10 +128,6 @@ if [ $scriptAction == 'INSTALL' ] ; then restartAppsNeeded=true fi - # if some processing requires running this script on the next reboot, set the flag then process it later - if $something3 ; then - runAgain=true - fi fi # #### uninstalling - check scriptAction again @@ -159,7 +148,6 @@ if [ $scriptAction == 'UNINSTALL' ] ; then # set exit flags as needed rebootNeeded=false restartAppsNeeded=true - runAgain=false fi diff --git a/service/.DS_Store b/service/.DS_Store index 5ab65afea988ead6e9af1c75761aa22790a02a62..68347ed3eaba3751d1daf553bd34f47abf962166 100644 GIT binary patch delta 154 zcmZoMXfc=|#>B`mu~2NHo+2ab#DLw5tdn_|bi!;I7#Nrtav1U%(sT1&T#|C~lYk-| z3=9n(lh++~M3zm#BU_MR7@VA+TL4rK1Ol4_nYXcQPGCOFxS5@Up95$!P~*8KXFPxc73-@BF{3?y9?PRw}jZyP0)bLeGZ3+aDo>zIhVuB`6vKNPL9Sw%tIw zBnI#C-}-yK_f8*p)#r=j$xt!=DrHrbx^J^2jfs13ut0(oK0=rnLoV5RM#CpIVPit) zgxZL&1 -exec /data/SetupHelper/packageAutoUpdater > /dev/null +exec 2>&1 +exec /data/SetupHelper/PackageManager.py diff --git a/settingsList b/settingsList new file mode 100644 index 0000000..11affe1 --- /dev/null +++ b/settingsList @@ -0,0 +1,305 @@ +/Settings/Alarm/Audible +/Settings/Alarm/System/GridLost +/Settings/Alarm/Vebus/HighDcCurrent +/Settings/Alarm/Vebus/HighDcRipple +/Settings/Alarm/Vebus/HighDcVoltage +/Settings/Alarm/Vebus/HighTemperature +/Settings/Alarm/Vebus/InverterOverload +/Settings/Alarm/Vebus/LowBattery +/Settings/Alarm/Vebus/TemperatureSenseError +/Settings/Alarm/Vebus/VeBusError +/Settings/Alarm/Vebus/VoltageSenseError +/Settings/Ble/Service/Pincode +/Settings/CGwacs/AcPowerSetPoint +/Settings/CGwacs/BatteryLife/DischargedTime +/Settings/CGwacs/BatteryLife/Flags +/Settings/CGwacs/BatteryLife/MinimumSocLimit +/Settings/CGwacs/BatteryLife/Schedule/Charge/0/Day +/Settings/CGwacs/BatteryLife/Schedule/Charge/0/Duration +/Settings/CGwacs/BatteryLife/Schedule/Charge/0/Soc +/Settings/CGwacs/BatteryLife/Schedule/Charge/0/Start +/Settings/CGwacs/BatteryLife/Schedule/Charge/1/Day +/Settings/CGwacs/BatteryLife/Schedule/Charge/1/Duration +/Settings/CGwacs/BatteryLife/Schedule/Charge/1/Soc +/Settings/CGwacs/BatteryLife/Schedule/Charge/1/Start +/Settings/CGwacs/BatteryLife/Schedule/Charge/2/Day +/Settings/CGwacs/BatteryLife/Schedule/Charge/2/Duration +/Settings/CGwacs/BatteryLife/Schedule/Charge/2/Soc +/Settings/CGwacs/BatteryLife/Schedule/Charge/2/Start +/Settings/CGwacs/BatteryLife/Schedule/Charge/3/Day +/Settings/CGwacs/BatteryLife/Schedule/Charge/3/Duration +/Settings/CGwacs/BatteryLife/Schedule/Charge/3/Soc +/Settings/CGwacs/BatteryLife/Schedule/Charge/3/Start +/Settings/CGwacs/BatteryLife/Schedule/Charge/4/Day +/Settings/CGwacs/BatteryLife/Schedule/Charge/4/Duration +/Settings/CGwacs/BatteryLife/Schedule/Charge/4/Soc +/Settings/CGwacs/BatteryLife/Schedule/Charge/4/Start +/Settings/CGwacs/BatteryLife/SocLimit +/Settings/CGwacs/BatteryLife/State +/Settings/CGwacs/MaxChargePercentage +/Settings/CGwacs/MaxChargePower +/Settings/CGwacs/MaxDischargePercentage +/Settings/CGwacs/MaxDischargePower +/Settings/CGwacs/MaxFeedInPower +/Settings/CGwacs/OvervoltageFeedIn +/Settings/CGwacs/PreventFeedback +/Settings/CGwacs/RunWithoutGridMeter +/Settings/CanBms/SocketcanCan0/ProductId +/Settings/Canbus/can0/Profile +/Settings/Canbus/can1/Profile +/Settings/Devices/vebus_ttyUSB0/CustomName +/Settings/Devices/vebus_ttyUSB1/CustomName +/Settings/DigitalInput/1/AlarmSetting +/Settings/DigitalInput/1/Count +/Settings/DigitalInput/1/CustomName +/Settings/DigitalInput/1/InvertAlarm +/Settings/DigitalInput/1/InvertTranslation +/Settings/DigitalInput/1/Multiplier +/Settings/DigitalInput/1/Type +/Settings/DigitalInput/2/AlarmSetting +/Settings/DigitalInput/2/Count +/Settings/DigitalInput/2/CustomName +/Settings/DigitalInput/2/InvertAlarm +/Settings/DigitalInput/2/InvertTranslation +/Settings/DigitalInput/2/Multiplier +/Settings/DigitalInput/2/Type +/Settings/DigitalInput/3/AlarmSetting +/Settings/DigitalInput/3/Count +/Settings/DigitalInput/3/CustomName +/Settings/DigitalInput/3/InvertAlarm +/Settings/DigitalInput/3/InvertTranslation +/Settings/DigitalInput/3/Multiplier +/Settings/DigitalInput/3/Type +/Settings/DigitalInput/4/AlarmSetting +/Settings/DigitalInput/4/Count +/Settings/DigitalInput/4/CustomName +/Settings/DigitalInput/4/InvertAlarm +/Settings/DigitalInput/4/InvertTranslation +/Settings/DigitalInput/4/Multiplier +/Settings/DigitalInput/4/Type +/Settings/DigitalInput/5/AlarmSetting +/Settings/DigitalInput/5/Count +/Settings/DigitalInput/5/CustomName +/Settings/DigitalInput/5/InvertAlarm +/Settings/DigitalInput/5/InvertTranslation +/Settings/DigitalInput/5/Multiplier +/Settings/DigitalInput/5/Type +/Settings/DigitalInput/6/AlarmSetting +/Settings/DigitalInput/6/Count +/Settings/DigitalInput/6/CustomName +/Settings/DigitalInput/6/InvertAlarm +/Settings/DigitalInput/6/InvertTranslation +/Settings/DigitalInput/6/Multiplier +/Settings/DigitalInput/6/Type +/Settings/FischerPanda0/AcLoad/Enabled +/Settings/FischerPanda0/AcLoad/Measurement +/Settings/FischerPanda0/AcLoad/QuietHoursStartValue +/Settings/FischerPanda0/AcLoad/QuietHoursStopValue +/Settings/FischerPanda0/AcLoad/StartTimer +/Settings/FischerPanda0/AcLoad/StartValue +/Settings/FischerPanda0/AcLoad/StopTimer +/Settings/FischerPanda0/AcLoad/StopValue +/Settings/FischerPanda0/Alarms/NoGeneratorAtAcIn +/Settings/FischerPanda0/AutoStartEnabled +/Settings/FischerPanda0/BatteryCurrent/Enabled +/Settings/FischerPanda0/BatteryCurrent/QuietHoursStartValue +/Settings/FischerPanda0/BatteryCurrent/QuietHoursStopValue +/Settings/FischerPanda0/BatteryCurrent/StartTimer +/Settings/FischerPanda0/BatteryCurrent/StartValue +/Settings/FischerPanda0/BatteryCurrent/StopTimer +/Settings/FischerPanda0/BatteryCurrent/StopValue +/Settings/FischerPanda0/BatteryService +/Settings/FischerPanda0/BatteryVoltage/Enabled +/Settings/FischerPanda0/BatteryVoltage/QuietHoursStartValue +/Settings/FischerPanda0/BatteryVoltage/QuietHoursStopValue +/Settings/FischerPanda0/BatteryVoltage/StartTimer +/Settings/FischerPanda0/BatteryVoltage/StartValue +/Settings/FischerPanda0/BatteryVoltage/StopTimer +/Settings/FischerPanda0/BatteryVoltage/StopValue +/Settings/FischerPanda0/InverterHighTemp/Enabled +/Settings/FischerPanda0/InverterHighTemp/StartTimer +/Settings/FischerPanda0/InverterHighTemp/StopTimer +/Settings/FischerPanda0/InverterOverload/Enabled +/Settings/FischerPanda0/InverterOverload/StartTimer +/Settings/FischerPanda0/InverterOverload/StopTimer +/Settings/FischerPanda0/MinimumRuntime +/Settings/FischerPanda0/OnLossCommunication +/Settings/FischerPanda0/QuietHours/EndTime +/Settings/FischerPanda0/QuietHours/StartTime +/Settings/FischerPanda0/Soc/Enabled +/Settings/FischerPanda0/Soc/QuietHoursStartValue +/Settings/FischerPanda0/Soc/QuietHoursStopValue +/Settings/FischerPanda0/Soc/StartValue +/Settings/FischerPanda0/Soc/StopValue +/Settings/FischerPanda0/StopWhenAc1Available +/Settings/FischerPanda0/TestRun/Duration +/Settings/FischerPanda0/TestRun/Enabled +/Settings/FischerPanda0/TestRun/Interval +/Settings/FischerPanda0/TestRun/RunTillBatteryFull +/Settings/FischerPanda0/TestRun/SkipRuntime +/Settings/FischerPanda0/TestRun/StartDate +/Settings/FischerPanda0/TestRun/StartTime +/Settings/Generator0/AcLoad/Enabled +/Settings/Generator0/AcLoad/Measurement +/Settings/Generator0/AcLoad/QuietHoursStartValue +/Settings/Generator0/AcLoad/QuietHoursStopValue +/Settings/Generator0/AcLoad/StartTimer +/Settings/Generator0/AcLoad/StartValue +/Settings/Generator0/AcLoad/StopTimer +/Settings/Generator0/AcLoad/StopValue +/Settings/Generator0/Alarms/NoGeneratorAtAcIn +/Settings/Generator0/AutoStartEnabled +/Settings/Generator0/BatteryCurrent/Enabled +/Settings/Generator0/BatteryCurrent/QuietHoursStartValue +/Settings/Generator0/BatteryCurrent/QuietHoursStopValue +/Settings/Generator0/BatteryCurrent/StartTimer +/Settings/Generator0/BatteryCurrent/StartValue +/Settings/Generator0/BatteryCurrent/StopTimer +/Settings/Generator0/BatteryCurrent/StopValue +/Settings/Generator0/BatteryService +/Settings/Generator0/BatteryVoltage/Enabled +/Settings/Generator0/BatteryVoltage/QuietHoursStartValue +/Settings/Generator0/BatteryVoltage/QuietHoursStopValue +/Settings/Generator0/BatteryVoltage/StartTimer +/Settings/Generator0/BatteryVoltage/StartValue +/Settings/Generator0/BatteryVoltage/StopTimer +/Settings/Generator0/BatteryVoltage/StopValue +/Settings/Generator0/InverterHighTemp/Enabled +/Settings/Generator0/InverterHighTemp/StartTimer +/Settings/Generator0/InverterHighTemp/StopTimer +/Settings/Generator0/InverterOverload/Enabled +/Settings/Generator0/InverterOverload/StartTimer +/Settings/Generator0/InverterOverload/StopTimer +/Settings/Generator0/MinimumRuntime +/Settings/Generator0/OnLossCommunication +/Settings/Generator0/QuietHours/Enabled +/Settings/Generator0/QuietHours/EndTime +/Settings/Generator0/QuietHours/StartTime +/Settings/Generator0/Soc/Enabled +/Settings/Generator0/Soc/QuietHoursStartValue +/Settings/Generator0/Soc/QuietHoursStopValue +/Settings/Generator0/Soc/StartValue +/Settings/Generator0/Soc/StopValue +/Settings/Generator0/StopWhenAc1Available +/Settings/Generator0/TestRun/Duration +/Settings/Generator0/TestRun/Enabled +/Settings/Generator0/TestRun/Interval +/Settings/Generator0/TestRun/RunTillBatteryFull +/Settings/Generator0/TestRun/SkipRuntime +/Settings/Generator0/TestRun/StartDate +/Settings/Generator0/TestRun/StartTime +/Settings/Gps/Format +/Settings/Gps/SpeedUnit +/Settings/Gui/AutoBrightness +/Settings/Gui/Brightness +/Settings/Gui/DisplayOff +/Settings/Gui/Language +/Settings/Gui/MobileOverview +/Settings/Gui/StartWithMenuView +/Settings/Gui/TanksOverview +/Settings/GuiMods/AcCurrentLimit/Preset1 +/Settings/GuiMods/AcCurrentLimit/Preset2 +/Settings/GuiMods/AcCurrentLimit/Preset3 +/Settings/GuiMods/AcCurrentLimit/Preset4 +/Settings/GuiMods/EnhancedFlowCombineLoads +/Settings/GuiMods/GaugeLimits/AcOutputMaxPower +/Settings/GuiMods/GaugeLimits/AcOutputNonCriticalMaxPower +/Settings/GuiMods/GaugeLimits/BatteryMaxChargeCurrent +/Settings/GuiMods/GaugeLimits/BatteryMaxDischargeCurrent +/Settings/GuiMods/GaugeLimits/CautionPower +/Settings/GuiMods/GaugeLimits/ContiuousPower +/Settings/GuiMods/GaugeLimits/DcSystemMaxCharge +/Settings/GuiMods/GaugeLimits/DcSystemMaxLoad +/Settings/GuiMods/GaugeLimits/MaxChargerPower +/Settings/GuiMods/GaugeLimits/MaxFeedInPower +/Settings/GuiMods/GaugeLimits/PeakPower +/Settings/GuiMods/GaugeLimits/PvChargerMaxPower +/Settings/GuiMods/GaugeLimits/PvOnGridMaxPower +/Settings/GuiMods/GaugeLimits/PvOnOutputMaxPower +/Settings/GuiMods/MoveSettings +/Settings/GuiMods/ShortenTankNames +/Settings/GuiMods/ShowEnhancedFlowLoadsOnInput +/Settings/GuiMods/ShowEnhancedFlowOverviewTanks +/Settings/GuiMods/ShowEnhancedFlowOverviewTemps +/Settings/GuiMods/ShowGauges +/Settings/GuiMods/ShowInactiveFlowTiles +/Settings/GuiMods/ShowRelayOverview +/Settings/GuiMods/ShowTileOverview +/Settings/GuiMods/TemperatureScale +/Settings/GuiMods/TimeFormat +/Settings/GuiMods/UseEnhancedFlowOverview +/Settings/GuiMods/UseEnhancedGridParallelFlowOverview +/Settings/GuiMods/UseEnhancedMobileOverview +/Settings/PackageManager/AutoInstall +/Settings/PackageManager/Count +/Settings/PackageManager/GitHubAutoDownload +/Settings/Pump0/AutoStartEnabled +/Settings/Pump0/Mode +/Settings/Pump0/StartValue +/Settings/Pump0/StopValue +/Settings/Pump0/TankService +/Settings/Relay/0/CustomName +/Settings/Relay/0/InitialState +/Settings/Relay/0/Show +/Settings/Relay/1/CustomName +/Settings/Relay/1/Function +/Settings/Relay/1/InitialState +/Settings/Relay/1/Polarity +/Settings/Relay/1/Show +/Settings/Relay/2/CustomName +/Settings/Relay/2/InitialState +/Settings/Relay/2/Show +/Settings/Relay/3/CustomName +/Settings/Relay/3/InitialState +/Settings/Relay/3/Show +/Settings/Relay/4/CustomName +/Settings/Relay/4/InitialState +/Settings/Relay/4/Show +/Settings/Relay/5/CustomName +/Settings/Relay/5/InitialState +/Settings/Relay/5/Show +/Settings/Relay/6/InitialState +/Settings/Relay/Function +/Settings/Relay/Polarity +/Settings/Services/AccessPoint +/Settings/Services/BleSensors +/Settings/Services/Bluetooth +/Settings/Services/Bol +/Settings/Services/Console +/Settings/Services/FischerPandaAutoStartStop +/Settings/Services/Modbus +/Settings/Services/MqttLocal +/Settings/Services/MqttLocalInsecure +/Settings/Services/MqttN2k +/Settings/Services/MqttVrm +/Settings/Services/NodeRed +/Settings/Services/SignalK +/Settings/ShutdownMonitor/ExternalSwitch +/Settings/System/AccessLevel +/Settings/System/AutoUpdate +/Settings/System/ImageType +/Settings/System/LogLevel +/Settings/System/ReleaseType +/Settings/System/RemoteSupport +/Settings/System/SSHLocal +/Settings/System/TimeZone +/Settings/System/VncInternet +/Settings/System/VncLocal +/Settings/System/VolumeUnit +/Settings/SystemSetup/AcInput1 +/Settings/SystemSetup/AcInput2 +/Settings/SystemSetup/BatteryService +/Settings/SystemSetup/HasAcOutSystem +/Settings/SystemSetup/HasDcSystem +/Settings/SystemSetup/MaxChargeCurrent +/Settings/SystemSetup/MaxChargeVoltage +/Settings/SystemSetup/SharedTemperatureSense +/Settings/SystemSetup/SharedVoltageSense +/Settings/SystemSetup/SystemName +/Settings/SystemSetup/TemperatureService +/Settings/Vrmlogger/HttpsEnabled +/Settings/Vrmlogger/LogInterval +/Settings/Vrmlogger/Logmode +/Settings/Vrmlogger/RamDiskMode +/Settings/Vrmlogger/Url +/Settings/Watchdog/VrmTimeout diff --git a/setup b/setup index 710a11c..f64f1fd 100755 --- a/setup +++ b/setup @@ -13,20 +13,29 @@ source "/data/SetupHelper/CommonResources" # remove settings no longer used -cleanupDbusSettings () +cleanup () { + # cleanup from older versions + restoreActiveFile "$qmlDir/PageSettingsPackageControl.qml" + dbus-send --system --print-reply=literal --dest=com.victronenergy.settings /Settings/GuiMods/GitHubAutoUpdate\ com.victronenergy.BusItem.GetValue &> /dev/null if (( $? == 0 )); then - removeDbusSettings "/Settings/GuiMods/PackageVersions/GeneratorConnector" "/Settings/GuiMods/PackageVersions/GuiMods"\ - "/Settings/GuiMods/PackageVersions/GuiMods" "/Settings/GuiMods/PackageVersions/RpiDisplaySetup"\ - "/Settings/GuiMods/PackageVersions/RpiGpioSetup" "/Settings/GuiMods/PackageVersions/RpiTemp"\ - "/Settings/GuiMods/PackageVersions/SetupHelper" "/Settings/GuiMods/PackageVersions/TankRepeater",\ - "/Settings/GuiMods/PackageVersions/VeCanSetup" "/Settings/GuiMods/PackageVersions/ShutdownMonitor"\ - "/Settings/GuiMods/CheckingPackage" "/Settings/GuiMods/GitHubAutoUpdate" + removeDbusSettings /Settings/GuiMods/PackageVersions/GeneratorConnector /Settings/GuiMods/PackageVersions/GuiMods\ + /Settings/GuiMods/PackageVersions/GuiMods /Settings/GuiMods/PackageVersions/RpiDisplaySetup\ + /Settings/GuiMods/PackageVersions/RpiGpioSetup /Settings/GuiMods/PackageVersions/RpiTemp\ + /Settings/GuiMods/PackageVersions/SetupHelper /Settings/GuiMods/PackageVersions/TankRepeater,\ + /Settings/GuiMods/PackageVersions/VeCanSetup /Settings/GuiMods/PackageVersions/ShutdownMonitor\ + /Settings/GuiMods/CheckingPackage /Settings/GuiMods/GitHubAutoUpdate > /dev/null + removeDbusSettings /Settings/PackageVersion/Count /Settings/PackageVersion/New/GitHubUser \ + /Settings/PackageVersion/New/GitHubBranch /Settings/PackageVersion/New/InstalledVersion \ + /Settings/PackageVersion/New/PackageName /Settings/PackageVersion/New/PackageVersion \ + /Settings/PackageVersion/GitHubAutoUpdate /Settings/PackageVersion/EditAction \ + /Settings/PackageVersion/CheckingPackage > /dev/null fi } + #### running manually and OK to proceed - prompt for input if [ $scriptAction == 'NONE' ] ; then # create dbus Settings if they haven't been set previously @@ -38,165 +47,45 @@ if [ $scriptAction == 'NONE' ] ; then echo echo "This package provides support functions and utilities for Venus modification packages" echo "Packages are automatically reinstalled following a Venus OS update" - echo "Packages may also be automatically updated from GitHub" - echo " or a USB stick" - echo "Previously uninstalled packages can also be installed and configured" - echo " as an option from the menu either from GitHub or from a USB stick" - echo - echo "If internet access is not available, you can manually update/install from a USB stick or SD card" + echo "All actions are controlled via /Settings/PackageMonitor in the GUI" + echo " Packages may be automatically updated from GitHub or a USB stick" + echo " Previously uninstalled packages can also be downloaded an installed" echo - if [ -f "$setupOptionsDir/optionsSet" ]; then - enableReinstall=true - else - enableReinstall=false - fi - - response='' - fullPrompt=true - while true; do - if $fullPrompt ; then - echo - echo "Available actions:" - echo " Install and activate (i)" - if $enableReinstall ; then - echo " Reinstall (r) based on options provided at last install" - fi - echo " Uninstall (u) and restores all files to stock" - echo " Quit (q) without further action" - echo " Display setup log (s) outputs the last 100 lines of the log" - echo - echo " Enable/disable automatic GitHub package updates (g)" - echo " Manually install packages from GitHub or USB stick (p)" - echo - fullPrompt=false - fi - /bin/echo -n "Choose an action from the list above: " - read response - case $response in - [iI]*) - scriptAction='INSTALL' - break;; - [rR]*) - if $enableReinstall ; then - scriptAction='INSTALL' - break - fi - ;; - [uU]*) - scriptAction='UNINSTALL' - break - ;; - [qQ]*) - exit - ;; - [sS]*) - displayLog $setupLogFile - ;; - [gG]*) - autoUpdate=$(dbus-send --system --print-reply=literal --dest=com.victronenergy.settings\ - /Settings/PackageVersion/GitHubAutoUpdate\ - com.victronenergy.BusItem.GetValue 2> /dev/null | awk '{print $3}') - case $autoUpdate in - 1) - echo "Automatic GitHub updates are at normal rate" - ;; - 2) - echo "Automatic GitHub updates are at fast rate" - ;; - 3) - echo "Automatic GitHub updates will occur only once" - ;; - *) - echo "Automatic GitHub updates are currently disabled" - ;; - esac - echo "Available modes:" - echo " Normal (n) - one package is checked once every 10 minutes" - echo " Fast (f) - one package is checked once every 10 seconds" - echo " Once (o) - each package is checked once then auto updates are turned off" - echo " Disable (d) - auto updates are disabled" - - read -p "Choose a mode from the above list: (cr for no change): " response - if [ ! -z $response ]; then - case $response in - [nN]* | [eE]*) - setSetting 1 /Settings/PackageVersion/GitHubAutoUpdate - ;; - [fF]*) - setSetting 2 /Settings/PackageVersion/GitHubAutoUpdate - ;; - [oO]*) - setSetting 3 /Settings/PackageVersion/GitHubAutoUpdate - ;; - [dD]*) - setSetting 0 /Settings/PackageVersion/GitHubAutoUpdate - ;; - *) - esac - fi - ;; - [pP]*) - "$scriptDir/packageInstaller" - fullPrompt=true - ;; - *) - esac - done + standardActionPrompt fi if [ $scriptAction == 'INSTALL' ] ; then - if [ ! -f "$packageListFile" ]; then - logMessage "installing default packge list" - cp "$scriptDir/defaultPackageList" "$packageListFile" - fi - - # check both parameters to insure they are both created - dbus-send --system --print-reply=literal --dest=com.victronenergy.settings /Settings/PackageVersion/CheckingPackage\ - com.victronenergy.BusItem.GetValue &> /dev/null - if (( $? != 0 )); then - settingsInstalled=false - # first setting exists, check the second - else - dbus-send --system --print-reply=literal --dest=com.victronenergy.settings /Settings/PackageVersion/GitHubAutoUpdate\ - com.victronenergy.BusItem.GetValue &> /dev/null - if (( $? != 0 )); then - settingsInstalled=false - else - settingsInstalled=true - fi - fi - if ! $settingsInstalled ; then - logMessage "creating SetupHelper Settings" - dbus -y com.victronenergy.settings /Settings AddSettings\ - '%[ {"path": "/PackageVersion/GitHubAutoUpdate", "default":0},\ - {"path": "/PackageVersion/CheckingPackage", "default":""},]' > /dev/null - # relocate options and current values - moveSetting "$setupOptionsDir/autoGitHubUpdate" "/Settings/GuiMods/GitHubAutoUpdate" "/Settings/PackageVersion/GitHubAutoUpdate" - rm -f "$setupOptionsDir/autoGitHubUpdate" - moveSetting "" "/Settings/GuiMods/CheckingPackage" "/Settings/PackageVersion/CheckingPackage" - fi - updateActiveFile "$qmlDir/PageSettings.qml" - updateActiveFile "$qmlDir/PageSettingsPackageControl.qml" + updateActiveFile "$qmlDir/PageSettingsPackageManager.qml" updateActiveFile "$qmlDir/PageSettingsPackageVersions.qml" + updateActiveFile "$qmlDir/PageSettingsPackageEdit.qml" updateActiveFile "$qmlDir/MbDisplayPackageVersion.qml" + updateActiveFile "$qmlDir/PageSettingsAddPackageList.qml" + updateActiveFile "$qmlDir/PageSettingsPackageAdd.qml" + updateActiveFile "$qmlDir/MbDisplayDefaultPackage.qml" + updateActiveFile "$qmlDir/PageSettingsPmBackup.qml" - installService $packageName + installService PackageManager - cleanupDbusSettings + cleanup fi if [ $scriptAction == 'UNINSTALL' ] ; then restoreActiveFile "$qmlDir/PageSettings.qml" - restoreActiveFile "$qmlDir/PageSettingsPackageControl.qml" + restoreActiveFile "$qmlDir/PageSettingsPackageManager.qml" restoreActiveFile "$qmlDir/PageSettingsPackageVersions.qml" + restoreActiveFile "$qmlDir/PageSettingsPackageEdit.qml" restoreActiveFile "$qmlDir/MbDisplayPackageVersion.qml" + restoreActiveFile "$qmlDir/PageSettingsAddPackageList.qml" + restoreActiveFile "$qmlDir/PageSettingsPackageAdd.qml" + restoreActiveFile "$qmlDir/MbDisplayDefaultPackage.qml" + restoreActiveFile "$qmlDir/PageSettingsPmBackup.qml" - removeService $packageName + removeService PackageManager - cleanupDbusSettings + cleanup fi if $filesUpdated ; then diff --git a/updatePackageVersions b/updatePackageVersions deleted file mode 100755 index 0e6d2a3..0000000 --- a/updatePackageVersions +++ /dev/null @@ -1,119 +0,0 @@ -#!/bin/bash - -# This script keeps creates a list of installed package versions -# and updates dBus /Settings/PackageVersion/... -# -# this script should be called whenever a package is installed or uninstalled -# this is part of endScript () if used -# it can take time, so launch it as a background task: -# -# nohup /data/updatePackageVersions > /dev/null & -# -# dbus access is slow, so this script builds a file with the known values -# only changes are sent to dbus - -source "/data/SetupHelper/EssentialResources" -source "/data/SetupHelper/LogHandler" -source "/data/SetupHelper/DbusSettingsResources" - -versionsFile="/data/packageVersions" - -# this flag is tested by LogHandler to determine if messages should be output to the console -logToConsole=false - -# wait until dbus settings are active -while [ $(dbus -y | grep -c "com.victronenergy.settings") == 0 ]; do - logMessage "waiting for dBus settings" - sleep 1 -done - -newNames=() -newVersions=() -oldNames=() -oldVersions=() -# read in old values -if [ -f "$versionsFile" ]; then - index=0 - while read -u 8 oldPackage oldVersion; do - # skip comments - if [[ ${oldPackage:0:1} == "#" ]] ; then - continue - # skip blank/incomplete lines - elif [ -z $oldPackage ] ; then - continue - fi - - oldNames[$index]=$oldPackage - oldVersions[$index]=$oldVersion - ((index++)) - done 8< "$versionsFile" -fi -oldCount=${#oldNames[@]} - -# loop through packages from package list -index=0 -echo "# AUTO GENERATED DO NOT MODIFY" > "$versionsFile" -while read -u 9 package gitHubUser gitHubBranch; do - - # skip comments - if [[ ${package:0:1} == "#" ]] ; then - continue - # skip blank/incomplete lines - elif [ -z $package ] ; then - continue - fi - # skip uninstalled packages - if [ ! -f "$installedFlagPrefix"$package ]; then - continue - fi - - newNames[$index]=$package - if [ -f "/data/$package/version" ]; then - packageVersion=$(cat "/data/$package/version") - else - packageVersion="?" - fi - newVersions[$index]=$packageVersion - - # save in file for later comparison - echo $package $packageVersion >> "$versionsFile" - - ((index++)) - -done 9< "$packageListFile" -newCount=${#newNames[@]} - -if (( $oldCount > $newCount )); then - minCount=$newCount - maxCount=$oldCount -else - minCount=$oldCount - maxCount=$newCount -fi - -# compare new and old and update dbus Settings as needed -index=0 -while ((index < newCount )); do - if (( index > oldCount )); then - updateDbusStringSetting "/Settings/PackageVersion/$index/PackageName" ${newNames[$index]} - updateDbusStringSetting "/Settings/PackageVersion/$index/PackageVersion" ${newVersions[$index]} - else - if [ "${newNames[$index]}" != "${oldNames[$index]}" ]; then - updateDbusStringSetting "/Settings/PackageVersion/$index/PackageName" ${newNames[$index]} - fi - if [ "${newVersions[$index]}" != "${oldVersions[$index]}" ]; then - updateDbusStringSetting "/Settings/PackageVersion/$index/PackageVersion" ${newVersions[$index]} - fi - fi - ((index++)) -done - -index=$newCount -while (( $index < $oldCount )); do - removeDbusSettings "/Settings/PackageVersion/$index/PackageName"\ - "/Settings/PackageVersion/$index/PackageVersion" - ((index++)) -done - -updateDbusIntSetting "/Settings/PackageVersion/Count" $newCount - diff --git a/venus-data.tgz b/venus-data.tgz index c7533530f1661050373e36c179e8a752a82a7328..0c980f9ddb6e8bf428f1d731368fa3fce0e6eb7e 100644 GIT binary patch literal 440759 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 z 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%0DhfeI7MWp4%URy&jE&6T93}y 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�ezHmqFXRZ&f4R>x!CDoA0oXEmS;CaPI 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%0AP)E#>rQj<`e zsI&C>mO<(n)Aah)DEmbfTOta-cO#@N(W4mn4qB|5718U1KbGs=at@c}!`w)3h|(0JS;a<|sW#JzgE%xb7Qr!S>qG z^HejDN7pk?4AWX@MKqXe;&YCoRz7a>wiBKc4({<sc#6mGOo?x;ML`AHl>&DByY0(zOnNA z>Jz(rdTTCw@=BY~?b?PJtA2jJli^YZIlP+61~o+scj`3Pp4_u@Dr(-KyZ!bZo)jMW zwA!)tO{DwPMJo*0OLwTA)+T;1Dc&&r`(WF$^hV>SlP5CgH!HX41|dRnX3e+D(q&~r ztNzP@Dl>P!@jF*(;C~hI@XeV$O}mR1sJnH0)f$Hx$vvDgwpZJ52N~E@qno)px2fm( zs*y8$yjy9YmvVFYr~^G#>*KR?*p->qCkkITJ$m4IJUlFB66ZidNA0Dua#Y&R($^=_ zZjsopHXiEnHb4hIFFbF5>`UtL>Uf8Y6eb^>C$9{iwJ~eagRFr4>Q5ITj}F>M{+8Xq zpS^?UB(2EUH(lq^*oQsJj=ZnvU)!fSX-avI-ZuH=oJO>jRGbE$qpe_9A3SJ*w{t*g zjyR-a=M)pAn>@@aw(X%ox9fi$*gSdjxhmh+Ixg-?;X8^rXDt5peGrQV&HZdR-!Nc; zA#+*o5oaZ}niIFvuT5?$?X~S-A->tM<$_**o?V5~?j?&ZI%{5i>uC`0p)aeF)^Y3#$4Z%)a=us;AY!i+j%c2G%!t3_A9WvD9-LOwc9uK@&30CwSMcDXqR;V25mYwPIhISD_EX=FyO)f7fDanOg_g!I32IE|F z{kj;Vx#7*>XPcS|&CSi<7VKzcu6m=z;r7Hn#@O(JvIkj{c1`z*ZYaBdMSl$W^oiQ^ z#{DEO=LNm->Bah%(GIA+sAurz{gA$%FKjFNg@3oaXH{?ZJod$H7v_^oBYX7dv1V)n zyr=n$aedT?QCE)8j(Yjo|LDIj`tGs|7cY8IN{#{g_OZFWhueBz9{+RfQEF-3kW~w~ zXUWy-xog(g+Sx5VVRZ7@?Jvx_oeAiczBlGi-B0y6KyBKTkB+Q8r)%~svGD_A?zszf z8I1>`{VKn{57*dr+qUeUzQO$@Z&pwJamlMczP#hLNMwg`Mlx z>0duJ+A}DqKkf0ykG)$SHHIYj{JHVynKSNfFIro@Q&UqPzI^Gsb=216o-sQ}*K1iR zhFSw!Z0wFaBt1EoXJ&3?u{JmwOV`n^y%~PwZ~S%$LaAv zALHQgg5i$DH76pTKY8wU{P^+Qb$J)(#hzNCTM=<_$PgTB(2jjM+1XL=pI*g4F6um= zlv@py3i^GgOJC>rx>M7*Ao2ZE$K~VOtf!bfI1+hzSmPd0%l^mvYjvAkv}PReSnTos z+RxO0dG%`wQ(jJ)`WF#7e}?Af15K$*hx+K}AN={_)7^^HJBjDcoB@pT?r3apT;Z3o z<=8QYbWi<9s|Fv+D^~(Miw^q-oRgW&*y`3I)V-+0L6rCQl z*7Rw?wV;o$?yleEJk1J4y>j4gsuz|VU9Q=9{?^jLTi4me)}C4P1Kz~c{ zkGJP7Z*JS*IJY~dZT=gljCW}kd|(Qac~XCbbhJmkDk`)cI+6xX>6dv8rm`MP3piN=c?hvu&QzHeR;LZ`KR zTd%0I*(1HP)?z7Jlk$}s|I%U2>E3Hdb-=JK2Uo8ibZJ=k2S;KrP90Tva)I{ds+4bx z-cRnPe#=a4`x2R6aqF;8bm-3;t0(W-vpc-T;pc+12`?W%*t*CY7xwMw@SkoM*IGqx zig-2CZ>H&k2hBlui+b;9LwG*28?+E|IsDf*r9^$$USC&1x;8c=vq6LW>ehbp=4aQo z!EwFCw4+rQs&|GRowKrSZ;;1{hWCpMEB52|V`e=x{`z(8F4D`t4!y74vP#_=a?kQ? zyR)_oxHt`g9?*BF(~gi`o2-7m@)>n(W`)BAuI_&g82PsZsb;@`Px`)lS|>e9&nmQK zFB#>%`dC0|cU)aT)}pBgsHK6=7KHXLa?u(%u`=<)(>#w|Pe%mncowh6M-Tmc#bNuS zNlV9$9s9I3e{cWwI+wRcR2)fu#8`P_>ON8td-J!9MT=%?l!uf~#XLLZL7aYP^<~F9 z-|JU}U0pxBt;DG2@X{rpvx~?N>9LwmhdO-FtBb_a`qY~}G(p(eE8zIPfloI^$_Kt6Kkr?Y6$n!yS*ZbjgC0UJZz2Jy+xwRBu&BsPy`wx5x9_vfhul2BS8hQskL|)w}=c?(EC^L;kYR z`FPSJXVmT?Lt;IOjVE5XaIv_s@%x9np=#3@pX=!%Z!EquH!gEOiPIb2&(C0$(+z_Q z7fxg}R*;;%R#_Cidvb|6JgZ7u-*&=}9`8r{S^BL!@&0Z$dw zjrl~qL%RIZzHUEdT21Kef~!}rk_R4OmT&Gh+kECxrGkakL-hw=oZ9=w&y9B+l3ov7 zl$lu+Hv323V58!)88c?w_Xk{fF)TW2o_T{#QfEy&xpHf&ecs}sEv;Yn+B)?z)YhYJ^Icbb*n>^&QB7;E$*c%}qzT{j)4vgy zHaKmR&zh`#0qdN=onafcy6)b$uYUZ67x#lx)V~~`mcC>}&AE{6k5U^>qz@P~Wy0v? z>xiyOQ|I{V+g&x=Rpo@+k4t#GcH1@0x2iV?Rm;b}u}*n^->qU+z3Gr~$?=6(i;8xv znrf`wx|9gTKXGxxt}s6fszuO|*cU4Of{*Q1?-ttlwcGApi_b2;U=Da_XnsxmF=VzeFcz@* zx+`nmcHQl7x2;cJQ+eE=7qzis@qX&fa~G7yp5C{cVWj(cyrre(top;c@X7xr6Q8-M zyLaI)d-rZ2o>Z9^ZfIrV)l*9ck}kE{y#N0B$<2wrM+U`v z_TdJ_9L#hmIW_n$_3g`}j@juybbY6v=?hLexlF^ZHRs0b4^}bmjcu9VHTr(sp10%a zu{o-BJKQYS{jmONd<-~tE#Xt)9kp8+b+-uDQMa(W=FPyD=v5Ev_F+Te{8@S*bow2k z-5ob9@Z}(f0-ApitA7$TDJdavZ^Xso;2j~}$C~>-c$Cci!6i9bwCt4YfP5`*c>~oRJM`L%Jc%>ob@!&V%%ZJ})R(_jJC7wvUMG5HG0L3P^~$b?O)3rh(w`GaV$;ri2tJ=Oshj>L#cF@0jG;DTnpS2(FU|JeV^)B~O z!y1lt8mO}1^|r9t-||lWwV^%@J&62fn{UA;Xi?ug=5S1NP2ItXgpW(y3a{J(-xFBZ(3GWojV-yaBJ0&)V!j?rphGr{R?3| zjv8pps7%b$z#mQh@z&bzc$4~CixYYG{P#t^8a68Zb(=!%xc2Hr{ z=hUb74BDLS%8O3)?qxW)C&6ZlO$GZ~$ja5r_3d3xFVk<%8eUOfHsi?HcjuO?KGx8< zdT?r)TU^__xNmxWNA)f4Z$dJ4RVjStUR+!1X4Npx;Z)Ckb`SO>NUjH9rczRJmYAErB3A38@A5U{=3i3H zHV7T2q%tYAn_9OwXUgjh$D@XBTEZ$r(Pu^tJnQyA7l~3;4w$e3xMfirZy4BrwT_Nz z{Oq|=&jwbUV&|^H)hyWW@YfQv)!KD`t;sxm@auxY9((6yM7SV*7VHo9x4&S8G+5ER zYX#74>)bsbhn{YXZ+LGWWzF#BXdBZx4ii3u+x=(FN(plOoaMf`LaWgwxpeIwzk$IU zy7!0~;~jo-UzAquh_+$#(!bbR+m2Na%(LM{A^Ml82O0M$W2`&GY7ch{(ovf?Xj0bv zEIcn`>_K&PWGel7XoLk9#@|s#Cw#i&0H*~8Jm2P?;Y=N*>*OT^KEAu>6r6}&_yk+9 z@!Te0y5`M`+ntnM)qQd}p_C56Zm_5J08fnwZHd_(tbhCaJJl5rUY36*V=`S)pkmMsMmPD?{-4~v>EN5 zFm&(E@D+V*gBx9pYCM-aUau{ic&YUE?Z%=zehC$)HD=b?W%tP$!`02(m!&yY4+3T~ z)f{Wq=Pp^QbU_1$C4b)aU|E1Gj|Ur;r#a4=^+W67k&ZyhTniQ3v!59^9@SE&Ozo$3 zPD5EcZn;X}nw5c{YBRYTKN*nAO>l+?4RTeR>9m4NFzD)VV5#o=J@d|uMGkJq=RZY9 zXKf5P#bod{o->%|0y%?uGp6SAf;SyNM=0Y@K&*P-T)KQ*sX1X~OnYQ%aQ8W@*6X{t z<_{(v2qzFqt{pqQ<3csjuss42bews8d$*QT2Ld|6Q}0z7LLP3_3Cnd_d^{tvci&dy zS335?)nP>Qw@Q`TqkM;Vd74ghkG26iO3<9Dsi{A6@?vK956_*kIecR8AYuqLoZE}AaGf_RHl37!~eMMg0$eWFmpN|^2K5N3@ z!Go9BoUhcQub(-5PenOEAP~-7y0r26vuC;4i9T_e$%ke`lg7f}V}0JND`l>|iUw3n zw2Co3HG0(5i-r^W1orFKGVI2R?qJngE=n-G$0E>-_il2_XerEZS zxegy%YU+wo>}EA=G04x)&x@Mr;c>Qtbjw$>cV)p7+rYqnE%p1*y;^Qfi%Y&g{ygb= zm1^$xL8<-w<+Na0uDTT`G%p}dy)!SMY{q8Y=eXLMQajf5GpoKWghr`vIBgU4Yii}; ztH+w`pRLc^@oatlb6w;miwa%BhkIY*6DD3yTejp%Q@~nq2uO^`^7zm~#8WR#k6x7) z`~J^{B_d*@mGo67;uAN!cJwgi8j_0^B{_Ci8>|Mzd_ zMV5rU8kU>C&WEY%xGZz&>~iHD8}{xh+fw_nbXx7Ag*_gvAodzejk*!6soDF`+(Dat zhFkiz+}^#eY_PhD<3Q*B$lgW>rLs$x-ru-l@bK}2GubiIlU4NXV>~B?RoxDQ)Z4)H zqlfZMZr-|Sl1_4s(OAs#=`+!N@4;t~GhY(=V(P;Ot<|O{oYov{rpNmBrrg*)xA!m` zM_j|>x^2@oJP6PWOgY+!agEuzeqQR1poYaesf_X+$ETy~Jm}}oUO2ZYH#a)BV9ll= zzXSD+@n^_8OV3_CUikX8cYoN4sto@G#iG_h*4w;@kb-lK>Co1}WLg}$TN{_t)kuSv4Tp?+4S%om*YkzqJO$tbI zxYh9f;hEEC&R=t`M_(LS?OB>S(r``Fm(S>W>g`GggX=4Gl*!4n zKbm_s&i*{;k+D;TiYx6-O(~HAy7Vg?;v8)aIJyq_`emE$9?HbfO?ISTk-a8wuT38;^qW}{9_C^@)Z|C`#rSq&La$`ejgi@rqrWe%w`GAgRHVOlKO`eSU4@48+A z*++X-+P<-wHTghUqn#nCMSJ|!Q(mjy=`Z&`J^OKUT+bF|TS!@Eo$BtWvhB(CEn&qu znUlwj*}~B1Jt@#Cn%&%Do;O6#@xcXl8RF}wYZGEtzbvCZeD>1uiRFCb#ovc`-TROn zy<+_;tNPMM&X+5{&+b21-z%a;S?}jV;~~g+AbTf+6D`i{w?Zk-- zL&iiMnXP)N;*mcZG+VaVYlG^N#m^f{D$AxtHD&Z)fg{eoQNgxbcqJk6U`gf4$}amx<}&_`G)Vl@5y;D%5A(3_E~ZD{e#&}+h&4BLy$zk-YPaX+^`@a z_TGXSGuDwFF2XDvI4O7hO zt%ltj9?|CNb<-j>@Miw@l7-uQySSXrHJVkctCO~bcK5guCh_|SoV^2fhX0|mmm7~x z+8N?IL(kaAD_?&J-NO87qD{z0^|YA6&krXjPC%YUAoI4&D~bI0j<)sM$I5S7l|83s z&-Hvuy}45(At|wT(MIhbJJyV9+(Q`ss5nWbc5g^V|III3!f&*dzq)5|u7RLpFum1= zzIto&C)Jyir(C05+m^jIN7d`>r6u`(-k!CGS6mK*Kp@saoi{B_cZ+X`u?A$9^G$sYsH&; zH|xtmtTp*q`JI{0$Kr3#m~pmhf&M8|-GNSq#~xMT-X!>%#@v74Vw>=BtbXuz@@_|! z`nO~LiZks~<3gcN^fb#}5m>%?c#C5ZWpmx!J}V|ZvU7iS5l{mbpP19Hur9vFGr-}@ z?&bZb)Y;RWzbrAIvVTdTo|Pvlun|q@b^7Y;kX=PDXV^YDH1u-nkH&qy8iyC;A#?_( z+zK3TVK4`0rlS3B@}`9B0PMoIZ7SCW)HOL}ymOfGP}`s;@%26BXIJ(Y87`{cANZnw zP{ZcoDXZ65k-U!@Z%R1O%~$vMMg!0J{d}IC(=ctK6~W5 ztMdKWZWXgGE(rSGv`^9al3rfd6t7)2Do*-n8{EXXNSsocQ(r0h@}*p9T?4Z$BxA z+b3Uf&}_XuXX_74&WrhrM&|{@=qR1cys~$1%i#1J&_gr(@Cef*F}q!2z@*&%w~i!D zYPnJ~{}cN2pn1kglqbFQ-%jt{Z|KkiJ#P-bcXd}-ZQe=a?-PMcLg@ASLZt}(Su~@O zY7b5BIlW$}&2I9(S@`oue$s2@pJ9u3H}z6_QgS`FQrEQL%hI0>>yBrte%rk?;8E`T z`&Y4>svKS%iFuBjx)-n4?}oWcGR=6Qdb~q)oJp(YMLnFM7gMY8aFX`L)#&x>Du)H) zbv7^5K2Ldh*Us8@NNDX8bNuy>AMn1I7hl;UeeAMw-UiiaKF%p#g#GGf6L;V6;*9c# zcT<_sj!p|sTNli|^0?)L-m@*)>34z;yTsd{Sn=Zi!mkr6r^cQeP@fZg+bM&&+idyI z<8%Y>OU_6)n)gt@Yu*u88`d4UIc@6m;ln;3^jn~vu;_Z$E0cX6155{~Aduu6``7h0 z9yRo;&PbEjCzfSeT}VKU!WAxCH`XWf$Md~gqwBx=>~sm#n_g&ve~yixeP-KWHRYP& z1M7EIebqaCrM`6bC;iU{9rVC>zMHY*0TwH6@I&{9C*4mjb zw|y-eW|+KCzqi%QHa)*xB`QbL2@~S`4(mH2^56{WyM-%X7l&vY56c>=d$eFzP?aj?{(C$k@($#WD)u&%}8`b|>NK}4=s(l**w$HU9Tuz$=jt@Zd}ayQJIs2XJotfK~;p>OdMH4uYRC;Vu)iJI&Y=9 z+Y3_p3#aspVUr1w_u7=Ys|=ao?6vH$Tfe^93703#^Nh<|U32Q};+(=`oAs6z1u*&` zhSr;A46?@Vzi+I4bnZfJ^qeJ2mj*Z044m>v>&WSw8-Vl?TG&2AOYfc0DGTyZcT0D} zY`IihUR0=c*!{lgx{Z}b*BNeCK9_%P#+~vS^AEG|=8XZzHYb*9M#jX&7+6gjIAm9= zvqlTvXCm_Clqm-m<8Z``ZwKxUyrO05tGoS4TxiO~5B*Ap^);N9=hIUyHs|fJ=_SKL zqs_F|yna8Z-W506#Bo~hkJ!oenX8}Mf75=lV*9=~XCiMJq+#dzDPI_|9~V+*RKE1> zmf@v)jEibZ(2kz^gWdg>CuaEQYyAxMJ%63*AI-WIG%?mFXQkH?rJ**r%q*WA@%b9# z>*6^5!m2qt%8|zkSZyb|jhnIBa`;C}b@c_U+UM(1g0s_;=yx}6uA6wOhOmBcQAN_C zyzZ)LYVK!<#vGy3?2$CmWIyFn#{9`ck__oUnuguTNny%|#Wv5k(IkCve>10q^@~9_sF8T$1uslRZ=2oq@ zSsJ?j^;kQ~&6^GWEiHHY>ks!!QBk!qH$@`zHO4P`w7r*}2?{s$&co$dI|BUH+r}+x zpf=W2*PXrUfz+`28SK-C;!k>&RYJP32tRa|(uci$kJ-?FW_eE7LwfG}xL}vbzAved z4&4eWxxl>JeM`1lagPBvliNZMxh61PJ~|lrBj)_4J#I=DLer;ydlh*hqI+rNb&L0B zZ~ffXKpc~qlzfoUbbeFV6U&KBucGt5+LpHV7-4@~SLI5v#2uDpR}33qKYNeK?D_Wyzo^j`q1m`LplX_8;8u zq>68$L3I0#7fpnPO#PU^B7AmZ@*~{L-cdrG#^@C10OG{eygAHKEzNh>uy!d+^-Ked-pEixN^&u zt)@PUmdr{EDciYZ<2UEUUneE4*&E(=UunU>KtRp!97Qd*bgF~lV6(AVMYHbL>Kri>?P`Kuo&WD!h{}psFS`D~)Va?I3ow=**8AU(0*Ii$_ zYF9|~8pd_Xx%rRgI_ytuTefc8`Pq-I5zZzeS+k8N?wI8_x5B)L4*9%hnVu_seRES1G4mBj2pp&FD^YsShf5*z=%JyQF{o(z)o`CGjq~6&ujAo}`-?abob*^pd5ot+$-L^aX`1&!(nlS0e=x?H^ZXA3-q>O6T2FoNojhOV`Rgo8 z?v~{!wGlr&z^P*f@8EBA!Lb#2(?jxe`5RVF@K%@{2uRPMdQGh{ZQlwVsn#~UX=lh^ zg`c((l%V9{;yamAkQgKmhsL0h7!-hjK4MTx0OI#FFFUcBEIb41iWeA5qRN1S zz#<}KlygY|+W-A;N!6Y(s(ZCJF=1P>NS31)(fAbcbwhv9TGiOE7B zHmLIuC<|Z`Od6dbzAH(Z|NPl+`J391H~-=JA~OH62x$Iee^dK1)BpJVm#qIIAPMk> z=G*US1L6k`gONJ^NCXlMk3R;3Mj=p0BuD>aab5cVk0b^3zw%8bj{aBCQVeB>{)cNQ z!^3z>1VoLOucM?iq(lFc@k|z*2@;_-05tLsu@BQqmS!C-4L^w``G8C)N-M zeh>7&DN0IK65t_lZ+tjN4kJY-Fexk?icX_ruvAL;EM^Qn0*8+!#6Xo7Z&-mBBt%t7 zHS^Wugo7T-_l*ehTM*FPS5>KU=*$_mKRkcT>lf2<(81=iB0N)keS14u3F94Zv8rVS z^J(^%`zt@ZClZ#uyz_lY<;VWdy92pd6Y_~q^a5sF4D}g^cbgF2qF3*HFfijyK=t<( z%=`Jf3>i6V%=eWeUh1V_tj;Vbw7g_~cG<~pOdmzM*_HlfNs|8e$H%*acp}KK{5|V{ z9Q_YD061a&k3vA!fD#b@dq|X>{>Sw{8UavPBnoJc#G!FEXtWj1#=-`P#36Ag1Wxn+ zyLVmbKb<7a|KDr3 z8Hj}4Ko*G_$+Unny0pQ+FiH0R0zn2O6JP+yq_G(U@Nez|%JcuRSkC&7g%S#j#BkPs zG`eg4|BGqKI6Q;MsmrZEPB7;~LcL;ua2Kf{fdvwQSP~w>%S@nz)5s(O z0LgQ-IS|ff!5zlO(nv%IHIofhizBh3AcSl>WGuj);q?K4onNLoz={IfJ3}NfAmlVg z0^BWUKYtIG2{1Ys#8Ltb#1?4vwBYpDBZ32lhqx9Ccaxp~&?1D8ooFJp~|fa6$PTCPd+>ks#9o2#SLGNe1z;P$e2% z&O^XqJjA2$1c1q=!|gL6j8qnlO^5<{9d?C=A7XIFNSgyAkN}eo5=apw2nXCfKC7sB z3U@>W#3BmM0>VLPcsUFP!T@G8i4JuQBt$bgG!bdgAhKZ6xLhHz5;Qd-930_+2ZB>C z7G+_LNJSz<#u<_;21Edaodwg_!SuK&5+Mp69!L-wWPAby1W7HeeSDw>V5-`YQ9%d- zDi4QPM z8Zd?k7>*Eczz~>W2ltz*2|EzHDjZ~zfCYj4xb4`p7;I1zBr`!V3>`g?P%Q!vSBW6C zi&3BeBVkp<|1P4S1g0UZ#9$$ZrztssJ7~aYA~aN^fe11_k~4f{nE%kcfYIF6bDNR0S~!3LTUiQ#qSf9-_J-$>jDM_2AY~-LMV() zG?Tb|h$V0aqg~)eAh`_U4ig9sQwI~FLQ81Yb&QgRhJ^YY5KRr3nJ^*-1sD?{h6d(K zdqX3HM*|R$0RaqxO>|U;nrWwl{i}3{v?LD7YfwW&dT%u}G$eGiqb|PEWy&GGyfMNh!Zyl3NiUA*nJgI4lyV_y>#%jZT*_Djj_m z8Wec_NqsuVRPwakO%B9Uw+34*``2?FtSW5+Tr zZa@)fAd@{T*P5Bm}ee`gHiZc64WK=Gn>xuHNWvV1_`pyEF|?y)Ls|i2d{t7L?W@w`Tm9Q zJmFdM?QRlm4@8m3M1anqLBqPN6Qa>RzsAD<=Cw(7{Lk;v0}96fbj*Jg0*gd<#sBs`TzasDG%&gl^ky z)je=S4Hu~?^*gaP{Aqxz%Ymyd*}Lw{arkA<{VS4e`~Uao0eSPEZ~wQ?e-sjp>$3m< zND{LD(MU+|A}lagC@kaypt|D!|NTkw{_pQx{pHPnlobkv5MBQ{_y4=r|Nnfl$6iY`okrYk_HAV9S6PPTJV(G>p5xr?lmRNZR7|v!|x|1TKCJ>z23lPDxPZ3n^^3)m1z z&YT`tA}lB16FOam4KbcXqjt6))WuF$fzRtZR|(m9l90bh60-9oA%BG=ROd-T{US-I z&Xa`t6_U`MCkg$FB%wP`68cw2!gQV_%rBCJ={!jog-B9NiLfAdP#nYuAJ1*eA7l`q z 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 literal 45499 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 diff --git a/version b/version index a54471b..1961bcc 100644 --- a/version +++ b/version @@ -1 +1 @@ -v3.15 +v4.0