Commit 4ceb8da2 authored by dmorley's avatar dmorley

Cleanup for release

parent 8f8aeb32
# Changelog
The format is based on [Keep a Changelog] and this project adheres to [Semantic Versioning].
## [Unreleased]
### Added
### Changed
### Deprecated
### Removed
### Fixed
### Security
## [2.4.1] - 2018-10-18
:exclamation: DB migrations required! (see [SQL migration script][2.4.1-sql-migration])
### Changed
- Pod wizard switch from language to users (#195)
- Files renamed to change wording from pull to update to be more clear (#190)
- Use SVG for icons
### Removed
- userurl remove from table in DB, was unused
### Fixed
- Users chart fix (#194)
- Dev branch detection (#185) (#193)
- User deletion fixed (#198)
- Jump to domain fixed (#192)
- Updated yarn and composer packages - update both on git pull
## [2.4.0] - 2018-09-03
:exclamation: DB migrations required! (see [SQL migration script][2.4.0-sql-migration])
:exclimation: config.php rewritten - requires migration
:exclamation: `config.php` rewritten - requires migration
### Added
- Added bootstrapping to simplify initialisation of config and database
- Config syntax has changed to array style (#155)
......@@ -28,12 +51,10 @@ The format is based on [Keep a Changelog] and this project adheres to [Semantic
- Backup script rewrite
- Store services as json array
- Paging can be changed to some or all on advanced view
### Deprecated
### Removed
### Fixed
- Notify podmins just once at 50 when pod failing (#186)
- Add missing meta and PHP module requirements to `composer.json`
### Security
## [2.3.1] - 2018-08-05
### Added
......@@ -89,11 +110,14 @@ The format is based on [Keep a Changelog] and this project adheres to [Semantic
### Fixed
- Fix ipv6
[2.4.1-sql-migration]: https://git.feneas.org/diasporg/Poduptime/blob/master/db/migrations/2.4.0-2.4.1.sql
[2.4.0-sql-migration]: https://git.feneas.org/diasporg/Poduptime/blob/master/db/migrations/2.3.0-2.4.0.sql
[2.3.0-sql-migration]: https://git.feneas.org/diasporg/Poduptime/blob/master/db/migrations/2.2.0-2.3.0.sql
[2.2.0-sql-migration]: https://git.feneas.org/diasporg/Poduptime/blob/master/db/migrations/2.1.4-2.2.0.sql
[Unreleased]: https://git.feneas.org/diasporg/Poduptime/compare/master...develop
[2.4.1]: https://git.feneas.org/diasporg/Poduptime/compare/2.4.0...2.4.1
[2.4.0]: https://git.feneas.org/diasporg/Poduptime/compare/2.3.1...2.4.0
[2.3.1]: https://git.feneas.org/diasporg/Poduptime/compare/2.3.0...2.3.1
[2.3.0]: https://git.feneas.org/diasporg/Poduptime/compare/v2.2.0...2.3.0
[2.2.0]: https://git.feneas.org/diasporg/Poduptime/compare/2.1.3...v2.2.0
......
{
"_readme": [
"This file locks the dependencies of your project to a known state",
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "fda17d0424e9e1c45facb411a5473f27",
"content-hash": "1ce82c5590f5a4ce2bf5a2b8812da707",
"packages": [
{
"name": "commerceguys/enum",
......@@ -46,16 +46,16 @@
},
{
"name": "composer/ca-bundle",
"version": "1.1.2",
"version": "1.1.3",
"source": {
"type": "git",
"url": "https://github.com/composer/ca-bundle.git",
"reference": "46afded9720f40b9dc63542af4e3e43a1177acb0"
"reference": "8afa52cd417f4ec417b4bfe86b68106538a87660"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/composer/ca-bundle/zipball/46afded9720f40b9dc63542af4e3e43a1177acb0",
"reference": "46afded9720f40b9dc63542af4e3e43a1177acb0",
"url": "https://api.github.com/repos/composer/ca-bundle/zipball/8afa52cd417f4ec417b4bfe86b68106538a87660",
"reference": "8afa52cd417f4ec417b4bfe86b68106538a87660",
"shasum": ""
},
"require": {
......@@ -98,20 +98,20 @@
"ssl",
"tls"
],
"time": "2018-08-08T08:57:40+00:00"
"time": "2018-10-18T06:09:13+00:00"
},
{
"name": "detectlanguage/detectlanguage",
"version": "2.2.0",
"version": "v2.2.1",
"source": {
"type": "git",
"url": "https://github.com/detectlanguage/detectlanguage-php.git",
"reference": "a410dc1cfb31a9e332bd779c1cb27b1af2ab9b18"
"reference": "6d989413821a6a1eade40f3d6bfeddf82a29aa7f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/detectlanguage/detectlanguage-php/zipball/a410dc1cfb31a9e332bd779c1cb27b1af2ab9b18",
"reference": "a410dc1cfb31a9e332bd779c1cb27b1af2ab9b18",
"url": "https://api.github.com/repos/detectlanguage/detectlanguage-php/zipball/6d989413821a6a1eade40f3d6bfeddf82a29aa7f",
"reference": "6d989413821a6a1eade40f3d6bfeddf82a29aa7f",
"shasum": ""
},
"require": {
......@@ -119,7 +119,7 @@
"php": ">=5.3.0"
},
"require-dev": {
"phpunit/phpunit": "3.7.*"
"phpunit/phpunit": "~4.0"
},
"type": "library",
"autoload": {
......@@ -145,7 +145,7 @@
"detection",
"language"
],
"time": "2018-03-28T20:56:36+00:00"
"time": "2018-10-02T21:09:56+00:00"
},
{
"name": "gabordemooij/redbean",
......@@ -242,16 +242,16 @@
},
{
"name": "jaybizzle/crawler-detect",
"version": "v1.2.66",
"version": "v1.2.71",
"source": {
"type": "git",
"url": "https://github.com/JayBizzle/Crawler-Detect.git",
"reference": "55ad4b140d821c19dbaf1a6ea9d9e5ca6444ecc1"
"reference": "bfb7d00c70d0ad59037bed7f08a2b6c10b1ed2ba"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/JayBizzle/Crawler-Detect/zipball/55ad4b140d821c19dbaf1a6ea9d9e5ca6444ecc1",
"reference": "55ad4b140d821c19dbaf1a6ea9d9e5ca6444ecc1",
"url": "https://api.github.com/repos/JayBizzle/Crawler-Detect/zipball/bfb7d00c70d0ad59037bed7f08a2b6c10b1ed2ba",
"reference": "bfb7d00c70d0ad59037bed7f08a2b6c10b1ed2ba",
"shasum": ""
},
"require": {
......@@ -287,7 +287,7 @@
"crawlerdetect",
"php crawler detect"
],
"time": "2018-07-30T20:23:10+00:00"
"time": "2018-10-16T18:51:19+00:00"
},
{
"name": "longman/ip-tools",
......@@ -493,16 +493,16 @@
},
{
"name": "nesbot/carbon",
"version": "1.33.0",
"version": "1.34.0",
"source": {
"type": "git",
"url": "https://github.com/briannesbitt/Carbon.git",
"reference": "55667c1007a99e82030874b1bb14d24d07108413"
"reference": "1dbd3cb01c5645f3e7deda7aa46ef780d95fcc33"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/55667c1007a99e82030874b1bb14d24d07108413",
"reference": "55667c1007a99e82030874b1bb14d24d07108413",
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/1dbd3cb01c5645f3e7deda7aa46ef780d95fcc33",
"reference": "1dbd3cb01c5645f3e7deda7aa46ef780d95fcc33",
"shasum": ""
},
"require": {
......@@ -544,7 +544,7 @@
"datetime",
"time"
],
"time": "2018-08-07T08:39:47+00:00"
"time": "2018-09-20T19:36:25+00:00"
},
{
"name": "noplanman/xec",
......@@ -599,29 +599,32 @@
"time": "2017-03-12T19:16:23+00:00"
},
{
"name": "rinvex/country",
"version": "v3.1.0",
"name": "rinvex/countries",
"version": "v5.0.0",
"source": {
"type": "git",
"url": "https://github.com/rinvex/country.git",
"reference": "e32228ef43f26d3b02296be9454f842c52d492f3"
"url": "https://github.com/rinvex/countries.git",
"reference": "ba4d10faf5d0d25f9aab646e80a381ae828fb268"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/rinvex/country/zipball/e32228ef43f26d3b02296be9454f842c52d492f3",
"reference": "e32228ef43f26d3b02296be9454f842c52d492f3",
"url": "https://api.github.com/repos/rinvex/countries/zipball/ba4d10faf5d0d25f9aab646e80a381ae828fb268",
"reference": "ba4d10faf5d0d25f9aab646e80a381ae828fb268",
"shasum": ""
},
"require": {
"php": "^7.0.0"
"php": "^7.1.3"
},
"require-dev": {
"phpunit/phpunit": "^5.4.0"
"codedungeon/phpunit-result-printer": "^0.22.0",
"phpunit/phpunit": "^7.0.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.0-dev"
"laravel": {
"providers": [
"Rinvex\\Country\\Providers\\CountryServiceProvider"
]
}
},
"autoload": {
......@@ -649,11 +652,11 @@
"role": "Project Lead"
},
{
"name": "The Generous Laravel Community",
"homepage": "https://github.com/rinvex/country/contributors"
"name": "The Generous PHP Community",
"homepage": "https://github.com/rinvex/countries/contributors"
}
],
"description": "Rinvex Country is a simple and lightweight package for retrieving country details with flexibility. A whole bunch of data including name, demonym, capital, iso codes, dialling codes, geo data, currencies, flags, emoji, and other attributes for all 250 countries worldwide at your fingertips.",
"description": "Rinvex Countries is a simple and lightweight package for retrieving country details with flexibility. A whole bunch of data including name, demonym, capital, iso codes, dialling codes, geo data, currencies, flags, emoji, and other attributes for all 250 countries worldwide at your fingertips.",
"homepage": "https://rinvex.com",
"keywords": [
"Flexible",
......@@ -670,7 +673,7 @@
"rinvex",
"svg"
],
"time": "2017-03-07T18:40:20+00:00"
"time": "2018-10-05T07:34:25+00:00"
},
{
"name": "symfony/polyfill-mbstring",
......@@ -733,16 +736,16 @@
},
{
"name": "symfony/translation",
"version": "v4.1.4",
"version": "v4.1.6",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation.git",
"reference": "fa2182669f7983b7aa5f1a770d053f79f0ef144f"
"reference": "9f0b61e339160a466ebcde167a6c5521c810e304"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/translation/zipball/fa2182669f7983b7aa5f1a770d053f79f0ef144f",
"reference": "fa2182669f7983b7aa5f1a770d053f79f0ef144f",
"url": "https://api.github.com/repos/symfony/translation/zipball/9f0b61e339160a466ebcde167a6c5521c810e304",
"reference": "9f0b61e339160a466ebcde167a6c5521c810e304",
"shasum": ""
},
"require": {
......@@ -798,22 +801,22 @@
],
"description": "Symfony Translation Component",
"homepage": "https://symfony.com",
"time": "2018-08-07T12:45:11+00:00"
"time": "2018-10-02T16:36:10+00:00"
}
],
"packages-dev": [
{
"name": "squizlabs/php_codesniffer",
"version": "3.3.1",
"version": "3.3.2",
"source": {
"type": "git",
"url": "https://github.com/squizlabs/PHP_CodeSniffer.git",
"reference": "628a481780561150481a9ec74709092b9759b3ec"
"reference": "6ad28354c04b364c3c71a34e4a18b629cc3b231e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/628a481780561150481a9ec74709092b9759b3ec",
"reference": "628a481780561150481a9ec74709092b9759b3ec",
"url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/6ad28354c04b364c3c71a34e4a18b629cc3b231e",
"reference": "6ad28354c04b364c3c71a34e4a18b629cc3b231e",
"shasum": ""
},
"require": {
......@@ -851,7 +854,7 @@
"phpcs",
"standards"
],
"time": "2018-07-26T23:47:18+00:00"
"time": "2018-09-23T23:08:17+00:00"
}
],
"aliases": [],
......
ALTER TABLE ratingcomments DROP COLUMN userurl;
UPDATE pods SET date_updated=null;
......@@ -3,14 +3,14 @@
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
cd "$SCRIPT_DIR"
FLAG_FILE="/tmp/poduptime.pulling"
FLAG_FILE="/tmp/poduptime.updating"
HOUR=$(date +%H)
DAY=$(date +%d)
HAPPY=" :-)"
SAD=" :-("
if [ -f "$FLAG_FILE" ]; then
echo "Already running pull"
echo "Already running update"
exit 1
fi
touch "$FLAG_FILE"
......@@ -26,20 +26,20 @@ fi
echo "$HAPPY"
if [ "$HOUR" = 23 ] || [ "$1" = 'init' ]; then
printf "%s" "Pulling in master versions..."
if php pull-masterversions.php; then
printf "%s" "Updating master versions..."
if php update-masterversions.php; then
echo "$HAPPY"
else
echo "$SAD"
fi
printf "%s" "Updating Monthy Stats Table..."
if php monthly_stats.php; then
if php update-monthly-stats.php; then
echo "$HAPPY"
else
echo "$SAD"
fi
printf "%s" "Crawling the federation..."
if php podcrawler.php; then
printf "%s" "Crawling and updating from the federation..."
if php update-remote-data.php; then
echo "$HAPPY"
else
echo "$SAD"
......@@ -62,10 +62,10 @@ if [ "$HOUR" = 23 ] || [ "$1" = 'init' ]; then
fi
fi
echo "Pulling in new pod data...";
php pull.php $@
echo "Updating in new pod data...";
php update.php $@
touch last.data
echo "Finished pull!"
echo "Finished update!"
echo "Backing up..."
php backup.php
......
......@@ -10,7 +10,6 @@ use RedBeanPHP\R;
// Required parameters.
($_username = $_POST['username'] ?? null) || die('Name is required');
//($_userurl = $_POST['userurl'] ?? null) || die('no userurl given');//lets not annoy people on this for now
($_domain = $_POST['domain'] ?? null) || die('no pod domain given');
($_comment = $_POST['comment'] ?? null) || die('A comment is required');
($_rating = $_POST['rating'] ?? null) || die('A rating is required');
......@@ -23,7 +22,6 @@ try {
$r['comment'] = $_comment;
$r['rating'] = $_rating;
$r['username'] = $_username;
//$r['userurl'] = $_userurl;
R::store($r);
} catch (\RedBeanPHP\RedException $e) {
die('Error in SQL query: ' . $e->getMessage());
......
......@@ -54,7 +54,6 @@ CREATE TABLE ratingcomments (
pod_id int,
rating int,
username text,
userurl text,
date_created timestamp DEFAULT current_timestamp
);
......
......@@ -193,18 +193,18 @@ foreach ($pods as $pod) {
try {
$lastpodupdates = R::getRow('
SELECT DISTINCT ON (shortversion, date_checked) shortversion, date_checked
SELECT DISTINCT ON (version, date_checked) version, date_checked
FROM checks
WHERE domain = ?
AND shortversion IS NOT NULL
ORDER BY shortversion DESC, date_checked
AND version IS NOT NULL
ORDER BY version DESC, date_checked
LIMIT 1
', [$domain]);
} catch (\RedBeanPHP\RedException $e) {
die('Error in SQL query: ' . $e->getMessage());
}
$lastdatechecked = ($lastpodupdates['date_checked'] ?? date('Y-m-d H:i:s'));
$lastdatechecked = ($lastpodupdates['date_checked'] ?? date('Y-m-d H:i:s.u'));
$devlastdays = $devlastcommit ? date_diff(new DateTime($devlastcommit), new DateTime())->format('%a') : 30;//tmp//if no dev branch then what?
debug('Dev last commit was ', $devlastdays);
......@@ -214,9 +214,9 @@ foreach ($pods as $pod) {
if (strpos($version, 'dev') !== false || strpos($version, 'rc') !== false || $shortversioncheck > $masterversioncheck) {
//tmp//if pod is on the development branch - see when you last updated your pod and when the last commit was made to dev branch - if the repo is active and your not updating every 120 days why are you on dev branch?
if ($updategap + $devlastdays > 400) {
if ($updategap + $devlastdays > 200) {
debug('Outdated More than 400 days', 'Yes');
debug('Outdated More than 200 days', 'Yes');
$podminhelp = 'Your code base seems too out of date to be used. Last time you updated was ' . $updategap;
$score -= 2;
......@@ -230,9 +230,9 @@ foreach ($pods as $pod) {
$updategap = date_diff(new DateTime($lastdatechecked), new DateTime($releasedate))->format('%a');
$podminhelp = 'Your code base seems too out of date to be used. Current version is ' . $masterversion . ' and you are running ' . $shortversion;
} elseif ($updategap - date_diff(new DateTime($releasedate), new DateTime())->format('%a') > 400) {
} elseif ($updategap - date_diff(new DateTime($releasedate), new DateTime())->format('%a') > 200) {
debug('Outdated more than 400 days since x ', 'Yes');
debug('Outdated more than 200 days since x ', 'Yes');
$score -= 2;
$updategap = date_diff(new DateTime($lastdatechecked), new DateTime($releasedate))->format('%a');
......@@ -361,12 +361,15 @@ foreach ($pods as $pod) {
debug('Mail Notice', 'sent to ' . $email);
}
$weightedscore = ($uptime + $score - (10 - $weight)) / 2;
if ($score > 100) {
$score = 100;
} elseif ($score < 1) {
$weightedscore = 0;
} elseif ($score < -6000) {
$status = PodStatus::SYSTEM_DELETED;
}
$weightedscore = ($uptime + $score - (10 - $weight)) / 2;
debug('Score', $score);
debug('Weighted Score', $weightedscore);
......@@ -379,8 +382,8 @@ foreach ($pods as $pod) {
$p['monthsmonitored'] = $months;
$p['uptime_alltime'] = $uptime;
$p['status'] = $status;
$p['date_laststats'] = $statslastdate;
$p['date_updated'] = date('Y-m-d H:i:s');
$p['date_laststats'] = date('Y-m-d H:i:s.u');
$p['date_updated'] = $lastpodupdates['date_checked'];
$p['latency'] = $avglatency;
$p['score'] = $score;
$p['country'] = $country;
......@@ -403,7 +406,7 @@ foreach ($pods as $pod) {
$p['active_users_monthly'] = $active_users_monthly;
$p['local_posts'] = $local_posts;
$p['name'] = $name;
$p['detectedlanguage'] = $detectedlanguage;
$p['detectedlanguage'] = $detectedlanguage;
$p['comment_counts'] = $comment_counts;
$p['service_xmpp'] = $service_xmpp;
$p['services'] = $services;
......
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 511.984 511.984" style="enable-background:new 0 0 511.984 511.984;" xml:space="preserve">
<g>
<g>
<path d="M510.992,358.154l-0.544-4.512c-0.928-8.096-7.776-13.952-16.096-14.112l-52.544,0.832
c-4.192,0.064-9.696,3.264-12.672,6.304c-17.504,17.952-24.384,13.408-26.56,11.936c-5.76-3.808-16.992-15.872-29.28-54.144
l78.4-223.072c3.968-9.728,5.28-17.632,4.096-24.864c-2.08-12.96-11.456-21.76-27.936-23.712l-68.48,0.416
c-6.752,0.032-12.736,4.32-14.976,10.656l-32.288,92.352c-9.344-17.472-18.976-32.512-29.12-45.536
c-21.728-27.84-46.144-46.24-72.512-54.72c-0.288-0.064-2.912-0.704-3.2-0.8c-53.76-8.384-98.272,0.928-132.064,27.904
C38.256,92.618,14.448,141.706,2.16,214.954c-4.608,57.088-1.856,103.008,8.384,140.448c11.744,42.912,33.76,74.208,65.056,92.896
c45.76,29.088,90.944,37.408,134.272,24.8c31.712-9.216,61.696-29.12,91.264-60.544c12.448,18.688,26.496,33.6,41.824,44.48
c21.216,15.04,45.312,22.752,73.6,22.752c4.768,0,9.664-0.224,14.688-0.64c0.608-0.16,2.688-0.736,3.296-0.992
c27.712-11.136,48.416-26.976,61.44-47.104C509.264,410.474,514.32,385.93,510.992,358.154z M469.104,413.674
c-9.152,14.112-24.32,25.632-45.12,34.208c-23.52,1.504-44.192-3.968-62.528-16.96c-16.288-11.52-31.04-29.344-43.776-52.896
c-2.528-4.672-7.2-7.776-12.48-8.288c-0.544-0.064-1.056-0.096-1.6-0.096c-4.704,0-9.248,2.08-12.288,5.728
c-29.696,35.648-60.128,58.208-90.368,66.976c-34.592,10.048-69.984,3.168-108.576-21.312
c-24.672-14.72-41.344-38.944-50.976-74.08c-9.12-33.344-11.584-76.864-7.456-128.448c10.56-62.464,31.168-106.368,61.248-130.432
c26.848-21.408,61.92-28.352,105.504-21.632c20.448,6.56,39.104,20.96,57.056,43.936c14.784,18.944,28.544,43.136,42.112,73.952
c2.656,6.016,8.736,9.632,15.296,9.504c6.56-0.224,12.32-4.48,14.464-10.688l41.28-118.048l52.736-0.352
c-0.352,1.248-0.96,2.976-1.856,5.248L341.36,298.826c-1.12,3.232-1.216,6.72-0.224,9.984c12.224,40.064,26.56,65.12,43.84,76.512
c13.408,8.864,35.008,13.504,63.68-13.056l31.296-0.544C480.432,387.914,476.816,401.706,469.104,413.674z"/>
</g>
</g>
<g>
<g>
<path d="M295.76,274.282c-15.36-61.536-31.968-102.208-52.416-127.936c-21.728-27.36-48.64-40.192-84.704-40.288
c-0.128,0-0.224,0-0.288,0c-28.032,0.32-53.088,18.08-70.528,49.984C76.4,176.874,68.496,202.89,65.04,231.306
c-3.488,28.32-2.24,56.64,3.616,81.824c10.816,46.56,36.48,78.048,72.224,88.672c0.8,0.224,2.368,0.576,3.2,0.672
c5.984,0.8,11.808,1.216,17.568,1.216c24.416,0,46.72-7.2,66.528-21.536c26.112-18.944,47.904-49.92,66.624-94.72
c0.64-1.6,1.28-6.4,1.408-8.128C296.336,277.61,296.176,275.946,295.76,274.282z M209.424,356.17
c-17.824,12.96-37.792,17.728-59.392,14.944c-31.104-9.216-44.448-40.576-50.208-65.248c-4.928-21.248-6.016-46.368-3.04-70.688
c2.944-24.064,9.728-46.688,19.104-63.776c8.224-15.04,22.336-33.024,42.784-33.344c26.208,0.096,44.032,8.544,59.616,28.192
c17.344,21.824,32,58.176,45.44,112.448C247.952,315.466,229.68,341.514,209.424,356.17z"/>
</g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
</svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="160"
height="180.00002"
id="svg3872"
version="1.1"
inkscape:version="0.92.3 (2405546, 2018-03-11)"
sodipodi:docname="libertree.svg">
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.49497475"
inkscape:cx="244.48024"
inkscape:cy="67.610615"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:window-width="511"
inkscape:window-height="434"
inkscape:window-x="0"
inkscape:window-y="59"
inkscape:window-maximized="0" />
<defs
id="defs3874">
<clipPath
id="clipPath3179"
clipPathUnits="userSpaceOnUse">
<rect
inkscape:export-ydpi="120"
inkscape:export-xdpi="120"
inkscape:export-filename="/home/jackie/libertree-project/libertree/cropped-logo.png"
y="932.36218"
x="80"
height="120"
width="120"
id="rect3181"
style="fill:#ffffff;fill-opacity:1;stroke:none;display:inline;opacity:1" />
</clipPath>
</defs>
<metadata
id="metadata3877">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
transform="translate(-45.714286,-190.9336)"
id="layer1"
inkscape:groupmode="layer"
inkscape:label="Layer 1">
<g
inkscape:export-ydpi="120"
inkscape:export-xdpi="120"
transform="translate(25.714286,-581.42858)"
id="g3136"
style="display:inline;opacity:1">
<rect
y="792.36176"
x="40.000389"
height="120"
width="120"
id="rect3841"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;opacity:1" />
<g
style="display:inline;opacity:1"
id="g3952"
inkscape:export-filename="/home/jackie/libertree-project/libertree/small-logo.png"
inkscape:export-xdpi="30"
inkscape:export-ydpi="30"
clip-path="url(#clipPath3179)"
transform="translate(-40,-140)">
<rect
style="fill:none;stroke:none;display:inline;opacity:1"
id="rect3995"
width="120"
height="120"
x="80"
y="932.36218"
inkscape:export-filename="/home/jackie/libertree-project/libertree/cropped-logo.png"
inkscape:export-xdpi="120"
inkscape:export-ydpi="120" />
<path
inkscape:export-ydpi="27.107756"
inkscape:export-xdpi="27.107756"
inkscape:export-filename="/home/jackie/libertree-project/libertree/logo-test.png"
sodipodi:nodetypes="cccscccccccccccccsccccccccccscccccccscccccccccccccccccccccccccccccccccccssssscc"
inkscape:connector-curvature="0"
id="path3068-7"
d="m 89.98307,1042.4041 c 4.876027,-0.3715 6.873963,-2.5022 9.197164,-9.8081 2.261816,-4.9518 2.367226,-9.9106 2.268886,-15.411 0.1577,-5.0477 -0.17693,-10.044 -0.74363,-11.1029 l -1.030343,-1.9252 c -9.763395,3.2309 -9.776852,1.2805 -15.350264,7.5628 -11.231465,-0.073 -12.144819,-7.1505 -17.442883,-0.5544 -2.099999,3.568 -2.994411,2.9321 -5.02123,2.6455 -1.705878,-1.6945 -16.827389,-1.2927 -22.152411,0.5887 -7.622498,-0.3516 -13.688607,-4.6397 -20.976447,-2.7198 -2.139938,-2.6384 -5.411922,-5.8709 -5.576206,-8.5694 -4.2717833,-4.66138 -1.10575,-4.676 -0.890263,-9.18995 0,-1.08142 0.368662,-1.90799 0.81925,-1.83685 1.86533,0.11437 3.367107,-0.0191 5.260719,-0.12935 0.301409,-1.82378 0.259392,-4.19846 -0.529574,-6.6539 -0.04883,-0.35534 -2.304697,-0.30978 -5.013087,0.10126 -2.408086,0.25037 -4.3002951,1.57442 -5.8249056,-0.44626 C 2.0744362,978.45645 1.0145021,972.2922 4.8004433,972.2922 l 2.2370594,0 C 6.2327471,970.29042 5.5382298,968.97223 5.0421986,966.18289 4.807764,963.74768 6.1339184,963.55355 7.5931521,963.55355 7.2451204,961.733 7.3874346,960.25567 6.54909,958.09189 c 1.739657,-1.08675 1.3832352,-1.71599 1.6903606,-3.37965 l 0.6224847,-2.38038 c 9.6258557,-6.50319 4.3265817,-15.14965 7.1257247,-21.43094 1.490133,-3.43657 2.214921,-3.34303 5.016437,-4.41808 0.10061,-1.83133 -0.410358,-5.36261 0.819248,-6.39048 0.450587,0.12763 1.95665,-0.39803 3.346816,-1.16813 l 2.527565,-1.40021 c 0.980952,0.81412 1.961906,1.62824 2.942859,2.44236 0.617267,-1.2528 1.7885,-2.29471 3.048752,-1.84837 5.235461,0.20325 7.234211,-2.72649 8.269378,-6.85092 1.459396,0.68978 3.301736,0.97963 4.509397,0.0253 21.187564,-7.43569 13.69287,-3.53248 28.936931,-2.39774 -0.553748,-2.11072 -0.965574,-4.52273 -2.282493,-6.26499 -0.599624,-0.76549 -0.747677,-1.73434 -0.329001,-2.15302 0.418662,-0.41867 1.103148,-0.26746 1.521064,0.33603 0.864063,1.24773 2.944266,1.38851 4.058142,0.27463 2.502596,-1.06804 4.046944,0.50418 6.252259,1.34264 1.082566,-0.89844 2.165119,-1.79688 3.247678,-2.69533 7.281731,5.5067 17.429688,3.27946 24.192148,8.04782 1.60456,-1.49344 3.6804,-2.63972 5.70213,-2.93608 l 2.58081,-0.34562 c 0.44525,1.77405 0.89052,3.5481 1.33578,5.32215 1.8047,0.4739 3.67263,1.44375 5.54971,1.41689 1.57429,5.40243 -3.4543,7.14641 5.73474,0.40233 2.0026,0.23899 4.00521,0.47798 6.00781,0.71697 0.0266,0.91388 0.59056,2.98095 -0.99006,3.13188 -1.36746,0.33474 -0.27436,2.73687 0.15254,4.36933 8.36265,-0.17939 3.9215,3.97991 11.76431,1.92895 0.45398,2.2699 0.90795,4.5398 1.36194,6.80969 7.16969,0.2901 9.12809,1.48552 15.13457,3.46068 -1.95988,3.29373 -3.45615,6.54547 -3.93818,11.28575 6.74154,0.90013 16.19997,13.01226 14.35187,13.99104 -1.87556,1.31524 -2.13313,3.04174 -2.67995,5.13278 1.59936,2.11766 3.8073,4.57697 6.4198,4.77374 l 2.66257,0.13377 c 0.23966,1.69161 0.47933,3.38321 0.71899,5.07483 -7.09965,0.17298 -10.68874,7.93533 -16.60361,9.24255 -7.43678,-4.15174 -14.14958,-4.4111 -5.99233,2.78963 -1.42474,7.00328 -8.42705,8.77633 -12.68043,9.61413 -2.98108,-3.8896 -2.6247,-3.04697 -6.31759,-0.74072 -1.28337,-1.8549 -6.34511,-4.50847 -6.11967,-5.78228 -3.14373,2.43129 -2.68922,5.77494 0.26429,4.83789 1.03259,0.11393 1.5231,1.60295 2.21744,2.79413 -4.287,5.32886 1.32079,4.20744 2.49463,7.12656 l 0.60488,1.5763 c -3.90741,4.1819 -6.98594,1.1542 -10.9761,4.1169 -5.40758,2.873 -14.84727,-1.8107 -18.55913,-1.8204 l 0.50735,10.5985 c 0.0923,4.0553 -0.14173,9.0936 -0.52013,11.1964 -0.41651,4.4924 -1.27201,9.3142 -2.68876,13.034 0.25656,0.2566 3.5108,1.609 4.9413,1.8175 1.43049,0.2085 8.48711,-1.1057 10.54005,-0.8791 2.05294,0.2266 1.75385,1.489 3.87775,1.7998 2.12391,0.3109 7.55469,2.827 9.19807,3.2882 7.57524,2.1262 19.93903,5.9625 13.51559,6.1523 -27.73493,0.8196 -84.901372,-0.9643 -84.901372,-0.9643 9.803416,-5.8584 7.425924,-3.9655 23.246622,-9.8454 z"
style="fill:#535353;fill-opacity:1;display:inline;opacity:1" />
<g
style="stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;display:inline;opacity:1"
id="g3900-8"
transform="matrix(0.97947281,0,0,0.97947281,-125.54779,482.4008)">
<rect
inkscape:transform-center-x="7.1168482e-05"
id="rect3903-8"
style="fill:#535353;fill-opacity:1;stroke:none;opacity:1"
width="25.203268"
height="8.1262989"
x="1106.783"
y="951.6709"
ry="1.7952157"
transform="matrix(0.99765046,0.0685095,-0.86267404,0.50576031,0,0)"
inkscape:transform-center-y="-1.407746" />
<path
style="fill:none;stroke:#535353;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;opacity:1"
d="m 268.92857,474.1479 c 0,0 3.57143,31.42857 20,58.57143 16.42858,27.14286 14.82144,28.39285 14.82144,28.39285 m -23.03572,-2.32143 c 0,0 0,-2.14285 -16.42858,-29.28571 -16.42857,-27.14286 -20,-58.57143 -20,-58.57143"
inkscape:connector-curvature="0"
sodipodi:nodetypes="csccsc"
id="path3086-7" />
</g>
<g
id="g4069-2"
style="fill:#000000;opacity:1"
transform="matrix(0.97947281,0,0,0.97947281,-136.04215,481.70118)">
<path
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#535353;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans;opacity:1"
d="m 290.52883,535.67336 c -1.58394,0.23159 -5.45895,2.91979 -5.13082,3.71561 0.21204,0.4162 -1.14597,1.28242 -1.0142,2.62679 0.62608,0.12338 1.28083,0.0482 1.07839,0.50536 -0.10938,0.24699 -0.23982,0.73206 -0.0872,1.04742 0.28262,0.58394 1.41976,0.66056 1.62126,1.0767 0.63812,1.31783 3.42958,-0.29865 4.32367,1.50945 0.52264,1.05693 3.67304,-0.17407 3.57478,-1.34917 -0.11957,-1.42989 0.25501,-1.21535 0.48408,-2.45939 0.22906,-1.24403 0.065,-3.15248 -0.51527,-4.41697 -1.12511,-2.26341 -2.70602,-2.27879 -4.3347,-2.2558 z"
id="path3931-1"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccscssszcc" />
<path
style="fill:#535353;fill-opacity:1;stroke:none;opacity:1"
d="m 307.125,527.96875 c -0.76346,2.98414 2.15396,5.24868 1.34375,7.5625 -1.14216,3.09496 -2.88882,1.86322 -4.96875,3.78125 -3.48629,1.99803 -6.50901,4.14493 -11.125,3.65625 -3.0961,-1.14469 -4.5057,-1.34254 -6.1875,-2 -2.02705,-0.79243 -0.43393,-0.67005 -2.5625,-4.5 -0.5929,-1.06681 -1.9375,-1.15625 -1.9375,-1.15625 -0.35329,3.27136 0.76101,5.96063 3.34375,8.84375 0,0 7.93824,3.73771 9.0625,4.75 3.66588,5.5657 3.50867,7.54322 3.53125,8.21875 2.44584,4.72209 2.60544,5.09838 9.46875,6.9375 2.28843,1.33147 3.56295,3.57732 6.125,6.15625 0.806,-0.83567 1.94677,-0.96994 2.625,-2.0625 0.53775,-0.86689 1.42561,-2.31362 0.96875,-3.28125 -1.04232,-2.20767 -2.0056,0.23564 -3.125,0.28125 -0.20804,-0.57962 -1.15436,-1.72841 -2.25,-2.84375 1.7723,0.0785 3.1952,-0.24024 5.125,-0.75 3.46711,1.11274 5.48955,3.23051 9.4375,5.5625 1.14164,-0.91018 2.64724,-0.73127 3.5625,-1.6875 0.82967,-0.86678 2.04561,-2.61057 1.4375,-3.34375 -1.69155,-2.03943 -2.4403,0.41127 -4.09375,0.5625 -0.69919,-1.13876 -6.64384,-4.78313 -8.9375,-5.625 -0.95059,-0.34888 -3.68142,-0.93032 -6.5,-1.53125 -1.71729,-1.98472 -1.5626,-2.07573 -3.4375,-5.75 -1.75062,-3.43072 -1.72376,-4.42815 -1.03125,-6.5 0.63813,-1.90912 2.78397,-2.42816 4.34375,-4.1875 2.31802,-2.53462 0.93909,-7.31655 -1.125,-9.9375 -0.67941,-0.8627 -3.09375,-1.15625 -3.09375,-1.15625 z"
transform="matrix(0.77485881,0,0,0.77485881,62.167094,125.33369)"
id="rect3933-1-0"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccsscccccccscccccscccsscsc" />
</g>
</g>
<path
style="fill:#f0f0f0;fill-opacity:1;stroke:none;display:inline;opacity:1"
d="m 20,772.36218 0,180.00002 160,0 0,-180.00002 z m 140,20 0,120.00002 -120,0 0,-120.00002 z"
id="rect3087"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccccc"
inkscape:export-filename="/home/jackie/libertree-project/libertree/cropped-logo.png"
inkscape:export-xdpi="120"
inkscape:export-ydpi="120" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;opacity:1;fill:#505050;fill-opacity:1;stroke:none"
x="100"
y="938.36218"
id="text3876-0"
inkscape:export-filename="/home/jackie/libertree-project/libertree-frontend-ramaze/public/images/wordmark.png"
inkscape:export-xdpi="107.48641"
inkscape:export-ydpi="107.48641"><tspan
sodipodi:role="line"
id="tspan3878-0"
x="100"
y="938.36218"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:33px;line-height:1.25;font-family:'Linux Libertine';-inkscape-font-specification:'Linux Libertine';text-align:center;text-anchor:middle;opacity:1;fill:#505050;fill-opacity:1">Libertree</tspan></text>
<rect
transform="translate(-395.32561,234.5236)"
y="557.38745"
x="435.37573"
height="123.23861"
width="119.198"
id="rect3837"