From 96b5d174d1ce8ba28ab3113e0ca20731dbd7dd5d Mon Sep 17 00:00:00 2001 From: James Cole Date: Sat, 4 Feb 2017 03:04:55 +0100 Subject: [PATCH] Initial code base for Sandstorm.IO support. Very beta. --- .env.sandstorm | 55 ++ .sandstorm/.gitattributes | 5 + .sandstorm/.gitignore | 5 + .sandstorm/Vagrantfile | 103 +++ .sandstorm/build.sh | 21 + .sandstorm/global-setup.sh | 44 + .sandstorm/launcher.sh | 66 ++ .sandstorm/sandstorm-files.list | 1113 ++++++++++++++++++++++++ .sandstorm/sandstorm-pkgdef.capnp | 247 ++++++ .sandstorm/service-config/mime.types | 89 ++ .sandstorm/service-config/nginx.conf | 87 ++ .sandstorm/setup.sh | 61 ++ .sandstorm/stack | 1 + public/images/logo/firefly-iii-128.png | Bin 0 -> 14217 bytes public/images/logo/firefly-iii-150.png | Bin 0 -> 15229 bytes public/images/logo/firefly-iii-24.png | Bin 0 -> 2560 bytes public/images/logo/firefly-iii-48.png | Bin 0 -> 4823 bytes 17 files changed, 1897 insertions(+) create mode 100755 .env.sandstorm create mode 100644 .sandstorm/.gitattributes create mode 100644 .sandstorm/.gitignore create mode 100644 .sandstorm/Vagrantfile create mode 100755 .sandstorm/build.sh create mode 100755 .sandstorm/global-setup.sh create mode 100755 .sandstorm/launcher.sh create mode 100644 .sandstorm/sandstorm-files.list create mode 100644 .sandstorm/sandstorm-pkgdef.capnp create mode 100644 .sandstorm/service-config/mime.types create mode 100644 .sandstorm/service-config/nginx.conf create mode 100755 .sandstorm/setup.sh create mode 100644 .sandstorm/stack create mode 100644 public/images/logo/firefly-iii-128.png create mode 100644 public/images/logo/firefly-iii-150.png create mode 100644 public/images/logo/firefly-iii-24.png create mode 100644 public/images/logo/firefly-iii-48.png diff --git a/.env.sandstorm b/.env.sandstorm new file mode 100755 index 0000000000..ed8d9d511b --- /dev/null +++ b/.env.sandstorm @@ -0,0 +1,55 @@ +APP_ENV=production +APP_DEBUG=true +APP_FORCE_SSL=false +APP_FORCE_ROOT= +APP_KEY=SomeRandomStringOf32CharsExactly +APP_LOG=syslog +APP_LOG_LEVEL=debug +APP_URL=http://localhost + +DB_CONNECTION=mysql +DB_HOST=127.0.0.1 +DB_PORT=3306 +DB_DATABASE=firefly +DB_USERNAME=firefly +DB_PASSWORD=firefly + +BROADCAST_DRIVER=log +CACHE_DRIVER=file +SESSION_DRIVER=file +QUEUE_DRIVER=sync + +COOKIE_PATH="/" +COOKIE_DOMAIN= +COOKIE_SECURE=false + +REDIS_HOST=127.0.0.1 +REDIS_PASSWORD=null +REDIS_PORT=6379 + +MAIL_DRIVER=smtp +MAIL_HOST=mailtrap.io +MAIL_PORT=2525 +MAIL_FROM=changeme@example.com +MAIL_USERNAME=null +MAIL_PASSWORD=null +MAIL_ENCRYPTION=null + +SEND_REGISTRATION_MAIL=true +SEND_ERROR_MESSAGE=true +SHOW_INCOMPLETE_TRANSLATIONS=false + +CACHE_PREFIX=firefly + +GOOGLE_MAPS_API_KEY= +ANALYTICS_ID= +SITE_OWNER=mail@example.com +USE_ENCRYPTION=true + +PUSHER_KEY= +PUSHER_SECRET= +PUSHER_APP_ID= + +DEMO_USERNAME= +DEMO_PASSWORD= + diff --git a/.sandstorm/.gitattributes b/.sandstorm/.gitattributes new file mode 100644 index 0000000000..5a533b9f62 --- /dev/null +++ b/.sandstorm/.gitattributes @@ -0,0 +1,5 @@ + + +# vagrant-spk creates shell scripts, which must end in \n, even on a \r\n system. +*.sh text eol=lf + diff --git a/.sandstorm/.gitignore b/.sandstorm/.gitignore new file mode 100644 index 0000000000..d70e1e39e4 --- /dev/null +++ b/.sandstorm/.gitignore @@ -0,0 +1,5 @@ + + +# This file stores a list of sub-paths of .sandstorm/ that should be ignored by git. +.vagrant + diff --git a/.sandstorm/Vagrantfile b/.sandstorm/Vagrantfile new file mode 100644 index 0000000000..20c01b674b --- /dev/null +++ b/.sandstorm/Vagrantfile @@ -0,0 +1,103 @@ +# -*- mode: ruby -*- +# vi: set ft=ruby : + +# Guess at a reasonable name for the VM based on the folder vagrant-spk is +# run from. The timestamp is there to avoid conflicts if you have multiple +# folders with the same name. +VM_NAME = File.basename(File.dirname(File.dirname(__FILE__))) + "_sandstorm_#{Time.now.utc.to_i}" + +# Vagrantfile API/syntax version. Don't touch unless you know what you're doing! +VAGRANTFILE_API_VERSION = "2" + +Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| + # Base on the Sandstorm snapshots of the official Debian 8 (jessie) box. + config.vm.box = "sandstorm/debian-jessie64" + + if Vagrant.has_plugin?("vagrant-vbguest") then + # vagrant-vbguest is a Vagrant plugin that upgrades + # the version of VirtualBox Guest Additions within each + # guest. If you have the vagrant-vbguest plugin, then it + # needs to know how to compile kernel modules, etc., and so + # we give it this hint about operating system type. + config.vm.guest = "debian" + end + + # We forward port 6080, the Sandstorm web port, so that developers can + # visit their sandstorm app from their browser as local.sandstorm.io:6080 + # (aka 127.0.0.1:6080). + config.vm.network :forwarded_port, guest: 6080, host: 6080 + + # Use a shell script to "provision" the box. This installs Sandstorm using + # the bundled installer. + config.vm.provision "shell", inline: "sudo bash /opt/app/.sandstorm/global-setup.sh", keep_color: true + # Then, do stack-specific and app-specific setup. + config.vm.provision "shell", inline: "sudo bash /opt/app/.sandstorm/setup.sh", keep_color: true + + # Shared folders are configured per-provider since vboxsf can't handle >4096 open files, + # NFS requires privilege escalation every time you bring a VM up, + # and 9p is only available on libvirt. + + # Calculate the number of CPUs and the amount of RAM the system has, + # in a platform-dependent way; further logic below. + cpus = nil + total_kB_ram = nil + + host = RbConfig::CONFIG['host_os'] + if host =~ /darwin/ + cpus = `sysctl -n hw.ncpu`.to_i + total_kB_ram = `sysctl -n hw.memsize`.to_i / 1024 + elsif host =~ /linux/ + cpus = `nproc`.to_i + total_kB_ram = `grep MemTotal /proc/meminfo | awk '{print $2}'`.to_i + elsif host =~ /mingw/ + # powershell may not be available on Windows XP and Vista, so wrap this in a rescue block + begin + cpus = `powershell -Command "(Get-WmiObject Win32_Processor -Property NumberOfLogicalProcessors | Select-Object -Property NumberOfLogicalProcessors | Measure-Object NumberOfLogicalProcessors -Sum).Sum"`.to_i + total_kB_ram = `powershell -Command "Get-CimInstance -class cim_physicalmemory | % $_.Capacity}"`.to_i / 1024 + rescue + end + end + # Use the same number of CPUs within Vagrant as the system, with 1 + # as a default. + # + # Use at least 512MB of RAM, and if the system has more than 2GB of + # RAM, use 1/4 of the system RAM. This seems a reasonable compromise + # between having the Vagrant guest operating system not run out of + # RAM entirely (which it basically would if we went much lower than + # 512MB) and also allowing it to use up a healthily large amount of + # RAM so it can run faster on systems that can afford it. + if cpus.nil? or cpus.zero? + cpus = 1 + end + if total_kB_ram.nil? or total_kB_ram < 2048000 + assign_ram_mb = 512 + else + assign_ram_mb = (total_kB_ram / 1024 / 4) + end + # Actually apply these CPU/memory values to the providers. + config.vm.provider :virtualbox do |vb, override| + vb.cpus = cpus + vb.memory = assign_ram_mb + vb.name = VM_NAME + vb.customize ["modifyvm", :id, "--nictype1", "Am79C973"] + + # /opt/app and /host-dot-sandstorm are used by vagrant-spk + override.vm.synced_folder "..", "/opt/app" + override.vm.synced_folder ENV["HOME"] + "/.sandstorm", "/host-dot-sandstorm" + # /vagrant is not used by vagrant-spk; we need this line so it gets disabled; if we removed the + # line, vagrant would automatically insert a synced folder in /vagrant, which is not what we want. + override.vm.synced_folder "..", "/vagrant", disabled: true + end + config.vm.provider :libvirt do |libvirt, override| + libvirt.cpus = cpus + libvirt.memory = assign_ram_mb + libvirt.default_prefix = VM_NAME + + # /opt/app and /host-dot-sandstorm are used by vagrant-spk + override.vm.synced_folder "..", "/opt/app", type: "9p", accessmode: "passthrough" + override.vm.synced_folder ENV["HOME"] + "/.sandstorm", "/host-dot-sandstorm", type: "9p", accessmode: "passthrough" + # /vagrant is not used by vagrant-spk; we need this line so it gets disabled; if we removed the + # line, vagrant would automatically insert a synced folder in /vagrant, which is not what we want. + override.vm.synced_folder "..", "/vagrant", type: "9p", accessmode: "passthrough", disabled: true + end +end diff --git a/.sandstorm/build.sh b/.sandstorm/build.sh new file mode 100755 index 0000000000..a72ac8cb24 --- /dev/null +++ b/.sandstorm/build.sh @@ -0,0 +1,21 @@ +#!/bin/bash +# Checks if there's a composer.json, and if so, installs/runs composer. +# Only runs when we connect the app to sandstorm (so once). +set -euo pipefail + + + +cd /opt/app + +cp .env.sandstorm .env + +if [ -f /opt/app/composer.json ] ; then + if [ ! -f composer.phar ] ; then + curl -sS https://getcomposer.org/installer | php + fi + php composer.phar install --no-dev --no-suggest +fi + +# link storage folder +rm -rf /opt/app/storage +ln -s /var/storage /opt/app \ No newline at end of file diff --git a/.sandstorm/global-setup.sh b/.sandstorm/global-setup.sh new file mode 100755 index 0000000000..219c770f63 --- /dev/null +++ b/.sandstorm/global-setup.sh @@ -0,0 +1,44 @@ +#!/bin/bash +set -euo pipefail + +# Set options for curl. Since we only want to show errors from these curl commands, we also use +# 'cat' to buffer the output; for more information: +# https://github.com/sandstorm-io/vagrant-spk/issues/158 + +CURL_OPTS="--silent --show-error" +echo localhost > /etc/hostname +hostname localhost + +# The following line copies stderr through stderr to cat without accidentally leaving it in the +# output file. Be careful when changing. See: https://github.com/sandstorm-io/vagrant-spk/pull/159 +curl $CURL_OPTS https://install.sandstorm.io/ 2>&1 > /host-dot-sandstorm/caches/install.sh | cat + +SANDSTORM_CURRENT_VERSION=$(curl $CURL_OPTS -f "https://install.sandstorm.io/dev?from=0&type=install") +SANDSTORM_PACKAGE="sandstorm-$SANDSTORM_CURRENT_VERSION.tar.xz" +if [[ ! -f /host-dot-sandstorm/caches/$SANDSTORM_PACKAGE ]] ; then + echo -n "Downloading Sandstorm version ${SANDSTORM_CURRENT_VERSION}..." + curl $CURL_OPTS --output "/host-dot-sandstorm/caches/$SANDSTORM_PACKAGE.partial" "https://dl.sandstorm.io/$SANDSTORM_PACKAGE" 2>&1 | cat + mv "/host-dot-sandstorm/caches/$SANDSTORM_PACKAGE.partial" "/host-dot-sandstorm/caches/$SANDSTORM_PACKAGE" + echo "...done." +fi +if [ ! -e /opt/sandstorm/latest/sandstorm ] ; then + echo -n "Installing Sandstorm version ${SANDSTORM_CURRENT_VERSION}..." + bash /host-dot-sandstorm/caches/install.sh -d -e "/host-dot-sandstorm/caches/$SANDSTORM_PACKAGE" >/dev/null + echo "...done." +fi +modprobe ip_tables +# Make the vagrant user part of the sandstorm group so that commands like +# `spk dev` work. +usermod -a -G 'sandstorm' 'vagrant' +# Bind to all addresses, so the vagrant port-forward works. +sudo sed --in-place='' \ + --expression='s/^BIND_IP=.*/BIND_IP=0.0.0.0/' \ + /opt/sandstorm/sandstorm.conf +sudo service sandstorm restart +# Enable apt-cacher-ng proxy to make things faster if one appears to be running on the gateway IP +GATEWAY_IP=$(ip route | grep ^default | cut -d ' ' -f 3) +if nc -z "$GATEWAY_IP" 3142 ; then + echo "Acquire::http::Proxy \"http://$GATEWAY_IP:3142\";" > /etc/apt/apt.conf.d/80httpproxy +fi +# Configure apt to retry fetching things that fail to download. +echo "APT::Acquire::Retries \"10\";" > /etc/apt/apt.conf.d/80sandstorm-retry diff --git a/.sandstorm/launcher.sh b/.sandstorm/launcher.sh new file mode 100755 index 0000000000..dba084dfa2 --- /dev/null +++ b/.sandstorm/launcher.sh @@ -0,0 +1,66 @@ +#!/bin/bash + +# Runs every time we create a new grain! + +# Create a bunch of folders under the clean /var that php, nginx, and mysql expect to exist +mkdir -p /var/lib/mysql +mkdir -p /var/lib/nginx +mkdir -p /var/lib/php/sessions/ +mkdir -p /var/log +mkdir -p /var/log/mysql +mkdir -p /var/log/nginx +# Wipe /var/run, since pidfiles and socket files from previous launches should go away +# TODO someday: I'd prefer a tmpfs for these. +rm -rf /var/run +mkdir -p /var/run +rm -rf /var/tmp +mkdir -p /var/tmp +mkdir -p /var/run/mysqld + +# make storage directories +rm -rf /var/storage +mkdir -p /var/storage/app/public +mkdir -p /var/storage/build +mkdir -p /var/storage/database +mkdir -p /var/storage/debugbar +mkdir -p /var/storage/export +mkdir -p /var/storage/framework/cache +mkdir -p /var/storage/framework/sessions +mkdir -p /var/storage/framework/views +mkdir -p /var/storage/logs +mkdir -p /var/storage/upload + + +# Ensure mysql tables created +HOME=/etc/mysql /usr/bin/mysql_install_db --force + +# Spawn mysqld, php +HOME=/etc/mysql /usr/sbin/mysqld & + +/usr/sbin/php-fpm7.0 --nodaemonize --fpm-config /etc/php/7.0/fpm/php-fpm.conf & + +# Wait until mysql and php have bound their sockets, indicating readiness +while [ ! -e /var/run/mysqld/mysqld.sock ] ; do + echo "waiting for mysql to be available at /var/run/mysqld/mysqld.sock" + sleep .5 +done +while [ ! -e /var/run/php7.0-fpm.sock ] ; do + echo "waiting for php7.0-fpm to be available at /var/run/php7.0-fpm.sock" + sleep .5 +done + +echo "Installing database.." +# Install database for Firefly III +echo "CREATE DATABASE IF NOT EXISTS firefly; GRANT ALL on firefly.* TO 'firefly'@'localhost' IDENTIFIED BY 'firefly';" | mysql -uroot +echo "Done!" + +#echo "Generate key..." +#php /opt/app/artisan key:generate +#echo "Done!" + +echo "Migrating..." +php /opt/app/artisan migrate:refresh --seed --force +echo "Done!" + +# Start nginx. +/usr/sbin/nginx -c /opt/app/.sandstorm/service-config/nginx.conf -g "daemon off;" diff --git a/.sandstorm/sandstorm-files.list b/.sandstorm/sandstorm-files.list new file mode 100644 index 0000000000..db769f8f6b --- /dev/null +++ b/.sandstorm/sandstorm-files.list @@ -0,0 +1,1113 @@ +# *** WARNING: GENERATED FILE *** +# This file is automatically updated and rewritten in sorted order every time +# the app runs in dev mode. You may manually add or remove files, but don't +# expect comments or ordering to be retained. +bin/bash +bin/cat +bin/chmod +bin/cp +bin/dash +bin/grep +bin/hostname +bin/ln +bin/ls +bin/mkdir +bin/rm +bin/sed +bin/sh +bin/sleep +bin/stty +etc/alternatives/php +etc/bash.bashrc +etc/bindresvport.blacklist +etc/default/nss +etc/hosts.allow +etc/hosts.deny +etc/inputrc +etc/ld.so.cache +etc/localtime +etc/mysql/conf.d +etc/mysql/conf.d/mysqld_safe_syslog.cnf +etc/mysql/conf.d/sandstorm.cnf +etc/mysql/my.cnf +etc/php/7.0/cli/conf.d +etc/php/7.0/cli/conf.d/10-mysqlnd.ini +etc/php/7.0/cli/conf.d/10-opcache.ini +etc/php/7.0/cli/conf.d/10-pdo.ini +etc/php/7.0/cli/conf.d/15-xml.ini +etc/php/7.0/cli/conf.d/20-bcmath.ini +etc/php/7.0/cli/conf.d/20-calendar.ini +etc/php/7.0/cli/conf.d/20-ctype.ini +etc/php/7.0/cli/conf.d/20-curl.ini +etc/php/7.0/cli/conf.d/20-dom.ini +etc/php/7.0/cli/conf.d/20-exif.ini +etc/php/7.0/cli/conf.d/20-fileinfo.ini +etc/php/7.0/cli/conf.d/20-ftp.ini +etc/php/7.0/cli/conf.d/20-gettext.ini +etc/php/7.0/cli/conf.d/20-iconv.ini +etc/php/7.0/cli/conf.d/20-intl.ini +etc/php/7.0/cli/conf.d/20-json.ini +etc/php/7.0/cli/conf.d/20-mbstring.ini +etc/php/7.0/cli/conf.d/20-mysqli.ini +etc/php/7.0/cli/conf.d/20-pdo_mysql.ini +etc/php/7.0/cli/conf.d/20-phar.ini +etc/php/7.0/cli/conf.d/20-posix.ini +etc/php/7.0/cli/conf.d/20-readline.ini +etc/php/7.0/cli/conf.d/20-shmop.ini +etc/php/7.0/cli/conf.d/20-simplexml.ini +etc/php/7.0/cli/conf.d/20-sockets.ini +etc/php/7.0/cli/conf.d/20-sysvmsg.ini +etc/php/7.0/cli/conf.d/20-sysvsem.ini +etc/php/7.0/cli/conf.d/20-sysvshm.ini +etc/php/7.0/cli/conf.d/20-tokenizer.ini +etc/php/7.0/cli/conf.d/20-wddx.ini +etc/php/7.0/cli/conf.d/20-xmlreader.ini +etc/php/7.0/cli/conf.d/20-xmlwriter.ini +etc/php/7.0/cli/conf.d/20-xsl.ini +etc/php/7.0/cli/php.ini +etc/php/7.0/fpm/conf.d +etc/php/7.0/fpm/conf.d/10-mysqlnd.ini +etc/php/7.0/fpm/conf.d/10-opcache.ini +etc/php/7.0/fpm/conf.d/10-pdo.ini +etc/php/7.0/fpm/conf.d/15-xml.ini +etc/php/7.0/fpm/conf.d/20-bcmath.ini +etc/php/7.0/fpm/conf.d/20-calendar.ini +etc/php/7.0/fpm/conf.d/20-ctype.ini +etc/php/7.0/fpm/conf.d/20-curl.ini +etc/php/7.0/fpm/conf.d/20-dom.ini +etc/php/7.0/fpm/conf.d/20-exif.ini +etc/php/7.0/fpm/conf.d/20-fileinfo.ini +etc/php/7.0/fpm/conf.d/20-ftp.ini +etc/php/7.0/fpm/conf.d/20-gettext.ini +etc/php/7.0/fpm/conf.d/20-iconv.ini +etc/php/7.0/fpm/conf.d/20-intl.ini +etc/php/7.0/fpm/conf.d/20-json.ini +etc/php/7.0/fpm/conf.d/20-mbstring.ini +etc/php/7.0/fpm/conf.d/20-mysqli.ini +etc/php/7.0/fpm/conf.d/20-pdo_mysql.ini +etc/php/7.0/fpm/conf.d/20-phar.ini +etc/php/7.0/fpm/conf.d/20-posix.ini +etc/php/7.0/fpm/conf.d/20-readline.ini +etc/php/7.0/fpm/conf.d/20-shmop.ini +etc/php/7.0/fpm/conf.d/20-simplexml.ini +etc/php/7.0/fpm/conf.d/20-sockets.ini +etc/php/7.0/fpm/conf.d/20-sysvmsg.ini +etc/php/7.0/fpm/conf.d/20-sysvsem.ini +etc/php/7.0/fpm/conf.d/20-sysvshm.ini +etc/php/7.0/fpm/conf.d/20-tokenizer.ini +etc/php/7.0/fpm/conf.d/20-wddx.ini +etc/php/7.0/fpm/conf.d/20-xmlreader.ini +etc/php/7.0/fpm/conf.d/20-xmlwriter.ini +etc/php/7.0/fpm/conf.d/20-xsl.ini +etc/php/7.0/fpm/php-fpm.conf +etc/php/7.0/fpm/php.ini +etc/php/7.0/fpm/pool.d +etc/php/7.0/fpm/pool.d/www.conf +etc/php/7.0/mods-available/bcmath.ini +etc/php/7.0/mods-available/calendar.ini +etc/php/7.0/mods-available/ctype.ini +etc/php/7.0/mods-available/curl.ini +etc/php/7.0/mods-available/dom.ini +etc/php/7.0/mods-available/exif.ini +etc/php/7.0/mods-available/fileinfo.ini +etc/php/7.0/mods-available/ftp.ini +etc/php/7.0/mods-available/gettext.ini +etc/php/7.0/mods-available/iconv.ini +etc/php/7.0/mods-available/intl.ini +etc/php/7.0/mods-available/json.ini +etc/php/7.0/mods-available/mbstring.ini +etc/php/7.0/mods-available/mysqli.ini +etc/php/7.0/mods-available/mysqlnd.ini +etc/php/7.0/mods-available/opcache.ini +etc/php/7.0/mods-available/pdo.ini +etc/php/7.0/mods-available/pdo_mysql.ini +etc/php/7.0/mods-available/phar.ini +etc/php/7.0/mods-available/posix.ini +etc/php/7.0/mods-available/readline.ini +etc/php/7.0/mods-available/shmop.ini +etc/php/7.0/mods-available/simplexml.ini +etc/php/7.0/mods-available/sockets.ini +etc/php/7.0/mods-available/sysvmsg.ini +etc/php/7.0/mods-available/sysvsem.ini +etc/php/7.0/mods-available/sysvshm.ini +etc/php/7.0/mods-available/tokenizer.ini +etc/php/7.0/mods-available/wddx.ini +etc/php/7.0/mods-available/xml.ini +etc/php/7.0/mods-available/xmlreader.ini +etc/php/7.0/mods-available/xmlwriter.ini +etc/php/7.0/mods-available/xsl.ini +etc/services +etc/ssl/openssl.cnf +lib/terminfo/d/dumb +lib/x86_64-linux-gnu/ld-2.19.so +lib/x86_64-linux-gnu/libacl.so.1 +lib/x86_64-linux-gnu/libacl.so.1.1.0 +lib/x86_64-linux-gnu/libaio.so.1 +lib/x86_64-linux-gnu/libaio.so.1.0.1 +lib/x86_64-linux-gnu/libattr.so.1 +lib/x86_64-linux-gnu/libattr.so.1.1.0 +lib/x86_64-linux-gnu/libaudit.so.1 +lib/x86_64-linux-gnu/libaudit.so.1.0.0 +lib/x86_64-linux-gnu/libbsd.so.0 +lib/x86_64-linux-gnu/libbsd.so.0.7.0 +lib/x86_64-linux-gnu/libbz2.so.1.0 +lib/x86_64-linux-gnu/libbz2.so.1.0.4 +lib/x86_64-linux-gnu/libc-2.19.so +lib/x86_64-linux-gnu/libc.so.6 +lib/x86_64-linux-gnu/libcom_err.so.2 +lib/x86_64-linux-gnu/libcom_err.so.2.1 +lib/x86_64-linux-gnu/libcrypt-2.19.so +lib/x86_64-linux-gnu/libcrypt.so.1 +lib/x86_64-linux-gnu/libdl-2.19.so +lib/x86_64-linux-gnu/libdl.so.2 +lib/x86_64-linux-gnu/libexpat.so.1 +lib/x86_64-linux-gnu/libexpat.so.1.6.0 +lib/x86_64-linux-gnu/libgcc_s.so.1 +lib/x86_64-linux-gnu/libgcrypt.so.20 +lib/x86_64-linux-gnu/libgcrypt.so.20.0.3 +lib/x86_64-linux-gnu/libgpg-error.so.0 +lib/x86_64-linux-gnu/libgpg-error.so.0.13.0 +lib/x86_64-linux-gnu/libjson-c.so.2 +lib/x86_64-linux-gnu/libjson-c.so.2.0.0 +lib/x86_64-linux-gnu/libkeyutils.so.1 +lib/x86_64-linux-gnu/libkeyutils.so.1.5 +lib/x86_64-linux-gnu/liblzma.so.5 +lib/x86_64-linux-gnu/liblzma.so.5.0.0 +lib/x86_64-linux-gnu/libm-2.19.so +lib/x86_64-linux-gnu/libm.so.6 +lib/x86_64-linux-gnu/libncurses.so.5 +lib/x86_64-linux-gnu/libncurses.so.5.9 +lib/x86_64-linux-gnu/libnsl-2.19.so +lib/x86_64-linux-gnu/libnsl.so.1 +lib/x86_64-linux-gnu/libnss_compat-2.19.so +lib/x86_64-linux-gnu/libnss_compat.so.2 +lib/x86_64-linux-gnu/libnss_dns-2.19.so +lib/x86_64-linux-gnu/libnss_dns.so.2 +lib/x86_64-linux-gnu/libnss_files-2.19.so +lib/x86_64-linux-gnu/libnss_files.so.2 +lib/x86_64-linux-gnu/libnss_nis-2.19.so +lib/x86_64-linux-gnu/libnss_nis.so.2 +lib/x86_64-linux-gnu/libpam.so.0 +lib/x86_64-linux-gnu/libpam.so.0.83.1 +lib/x86_64-linux-gnu/libpcre.so.3 +lib/x86_64-linux-gnu/libpcre.so.3.13.3 +lib/x86_64-linux-gnu/libpng12.so.0 +lib/x86_64-linux-gnu/libpng12.so.0.50.0 +lib/x86_64-linux-gnu/libpthread-2.19.so +lib/x86_64-linux-gnu/libpthread.so.0 +lib/x86_64-linux-gnu/libreadline.so.6 +lib/x86_64-linux-gnu/libreadline.so.6.3 +lib/x86_64-linux-gnu/libresolv-2.19.so +lib/x86_64-linux-gnu/libresolv.so.2 +lib/x86_64-linux-gnu/librt-2.19.so +lib/x86_64-linux-gnu/librt.so.1 +lib/x86_64-linux-gnu/libselinux.so.1 +lib/x86_64-linux-gnu/libsystemd.so.0 +lib/x86_64-linux-gnu/libsystemd.so.0.3.1 +lib/x86_64-linux-gnu/libtinfo.so.5 +lib/x86_64-linux-gnu/libtinfo.so.5.9 +lib/x86_64-linux-gnu/libutil-2.19.so +lib/x86_64-linux-gnu/libutil.so.1 +lib/x86_64-linux-gnu/libwrap.so.0 +lib/x86_64-linux-gnu/libwrap.so.0.7.6 +lib/x86_64-linux-gnu/libz.so.1 +lib/x86_64-linux-gnu/libz.so.1.2.8 +lib64/ld-linux-x86-64.so.2 +opt/app +opt/app/.env +opt/app/.sandstorm/launcher.sh +opt/app/.sandstorm/service-config/mime.types +opt/app/.sandstorm/service-config/nginx.conf +opt/app/app/Bootstrap/ConfigureLogging.php +opt/app/app/Console/Commands/CreateImport.php +opt/app/app/Console/Commands/EncryptFile.php +opt/app/app/Console/Commands/Import.php +opt/app/app/Console/Commands/ScanAttachments.php +opt/app/app/Console/Commands/UpgradeDatabase.php +opt/app/app/Console/Commands/UpgradeFireflyInstructions.php +opt/app/app/Console/Commands/UseEncryption.php +opt/app/app/Console/Commands/VerifyDatabase.php +opt/app/app/Console/Kernel.php +opt/app/app/Exceptions/Handler.php +opt/app/app/Http/Controllers/Controller.php +opt/app/app/Http/Controllers/HomeController.php +opt/app/app/Http/Kernel.php +opt/app/app/Http/breadcrumbs.php +opt/app/app/Jobs/Job.php +opt/app/app/Jobs/MailError.php +opt/app/app/Models/Account.php +opt/app/app/Models/AccountType.php +opt/app/app/Models/Configuration.php +opt/app/app/Models/PiggyBank.php +opt/app/app/Models/Role.php +opt/app/app/Models/TransactionCurrency.php +opt/app/app/Models/TransactionJournal.php +opt/app/app/Models/TransactionType.php +opt/app/app/Providers/AccountServiceProvider.php +opt/app/app/Providers/AppServiceProvider.php +opt/app/app/Providers/AttachmentServiceProvider.php +opt/app/app/Providers/AuthServiceProvider.php +opt/app/app/Providers/BillServiceProvider.php +opt/app/app/Providers/BudgetServiceProvider.php +opt/app/app/Providers/CategoryServiceProvider.php +opt/app/app/Providers/CrudServiceProvider.php +opt/app/app/Providers/CurrencyServiceProvider.php +opt/app/app/Providers/EventServiceProvider.php +opt/app/app/Providers/ExportJobServiceProvider.php +opt/app/app/Providers/FireflyServiceProvider.php +opt/app/app/Providers/JournalServiceProvider.php +opt/app/app/Providers/PiggyBankServiceProvider.php +opt/app/app/Providers/RouteServiceProvider.php +opt/app/app/Providers/RuleGroupServiceProvider.php +opt/app/app/Providers/RuleServiceProvider.php +opt/app/app/Providers/SearchServiceProvider.php +opt/app/app/Providers/TagServiceProvider.php +opt/app/app/Support/Facades/FireflyConfig.php +opt/app/app/Support/FireflyConfig.php +opt/app/app/Support/Models/TransactionJournalSupport.php +opt/app/app/Support/Twig/General.php +opt/app/app/Support/Twig/Journal.php +opt/app/app/Support/Twig/PiggyBank.php +opt/app/app/Support/Twig/Rule.php +opt/app/app/Support/Twig/Transaction.php +opt/app/app/Support/Twig/Translation.php +opt/app/app/Validation/FireflyValidator.php +opt/app/artisan +opt/app/bootstrap/app.php +opt/app/bootstrap/autoload.php +opt/app/bootstrap/cache/services.php +opt/app/config +opt/app/config/app.php +opt/app/config/auth.php +opt/app/config/broadcasting.php +opt/app/config/cache.php +opt/app/config/compile.php +opt/app/config/csv.php +opt/app/config/database.php +opt/app/config/filesystems.php +opt/app/config/firefly.php +opt/app/config/mail.php +opt/app/config/queue.php +opt/app/config/services.php +opt/app/config/session.php +opt/app/config/twigbridge.php +opt/app/config/upgrade.php +opt/app/config/view.php +opt/app/database/migrations +opt/app/database/migrations/2016_06_16_000000_create_support_tables.php +opt/app/database/migrations/2016_06_16_000001_create_users_table.php +opt/app/database/migrations/2016_06_16_000002_create_main_tables.php +opt/app/database/migrations/2016_08_25_091522_changes_for_3101.php +opt/app/database/migrations/2016_09_12_121359_fix_nullables.php +opt/app/database/migrations/2016_10_09_150037_expand_transactions_table.php +opt/app/database/migrations/2016_10_22_075804_changes_for_v410.php +opt/app/database/migrations/2016_11_24_210552_changes_for_v420.php +opt/app/database/migrations/2016_12_22_150431_changes_for_v430.php +opt/app/database/migrations/2016_12_28_203205_changes_for_v431.php +opt/app/database/seeds/AccountTypeSeeder.php +opt/app/database/seeds/DatabaseSeeder.php +opt/app/database/seeds/PermissionSeeder.php +opt/app/database/seeds/TransactionCurrencySeeder.php +opt/app/database/seeds/TransactionTypeSeeder.php +opt/app/public/index.php +opt/app/resources/views/emails/error-html.twig +opt/app/resources/views/emails/error-text.twig +opt/app/resources/views/emails/footer-html.twig +opt/app/resources/views/emails/footer-text.twig +opt/app/resources/views/emails/header-html.twig +opt/app/resources/views/emails/header-text.twig +opt/app/routes/api.php +opt/app/routes/console.php +opt/app/routes/web.php +opt/app/storage +opt/app/vendor/autoload.php +opt/app/vendor/composer/ClassLoader.php +opt/app/vendor/composer/autoload_real.php +opt/app/vendor/composer/autoload_static.php +opt/app/vendor/davejamesmiller/laravel-breadcrumbs/config/breadcrumbs.php +opt/app/vendor/davejamesmiller/laravel-breadcrumbs/src/CurrentRoute.php +opt/app/vendor/davejamesmiller/laravel-breadcrumbs/src/Facade.php +opt/app/vendor/davejamesmiller/laravel-breadcrumbs/src/Generator.php +opt/app/vendor/davejamesmiller/laravel-breadcrumbs/src/Manager.php +opt/app/vendor/davejamesmiller/laravel-breadcrumbs/src/ServiceProvider.php +opt/app/vendor/davejamesmiller/laravel-breadcrumbs/src/View.php +opt/app/vendor/doctrine/common/lib/Doctrine/Common/EventManager.php +opt/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Configuration.php +opt/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php +opt/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver.php +opt/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php +opt/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/Connection.php +opt/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/DriverException.php +opt/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/ExceptionConverterDriver.php +opt/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php +opt/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOException.php +opt/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOMySql/Driver.php +opt/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php +opt/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/ResultStatement.php +opt/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/ServerInfoAwareConnection.php +opt/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/Statement.php +opt/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Events.php +opt/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/AbstractPlatform.php +opt/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/KeywordList.php +opt/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/MySQLKeywords.php +opt/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/MySqlPlatform.php +opt/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Query/Expression/ExpressionBuilder.php +opt/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/AbstractAsset.php +opt/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/AbstractSchemaManager.php +opt/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/Column.php +opt/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/Comparator.php +opt/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/Constraint.php +opt/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/ForeignKeyConstraint.php +opt/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/Identifier.php +opt/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/Index.php +opt/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/MySqlSchemaManager.php +opt/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/Table.php +opt/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/TableDiff.php +opt/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/ArrayType.php +opt/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/BigIntType.php +opt/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/BinaryType.php +opt/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/BlobType.php +opt/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/BooleanType.php +opt/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/DateTimeType.php +opt/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/DateTimeTzType.php +opt/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/DateType.php +opt/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/DecimalType.php +opt/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/FloatType.php +opt/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/GuidType.php +opt/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/IntegerType.php +opt/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/JsonArrayType.php +opt/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/ObjectType.php +opt/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/SimpleArrayType.php +opt/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/SmallIntType.php +opt/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/StringType.php +opt/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/TextType.php +opt/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/TimeType.php +opt/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/Type.php +opt/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/VersionAwarePlatformDriver.php +opt/app/vendor/doctrine/inflector/lib/Doctrine/Common/Inflector/Inflector.php +opt/app/vendor/laravel/framework/src/Illuminate/Auth/Access/Gate.php +opt/app/vendor/laravel/framework/src/Illuminate/Auth/Access/HandlesAuthorization.php +opt/app/vendor/laravel/framework/src/Illuminate/Auth/AuthManager.php +opt/app/vendor/laravel/framework/src/Illuminate/Auth/AuthServiceProvider.php +opt/app/vendor/laravel/framework/src/Illuminate/Auth/Console/ClearResetsCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Auth/Console/MakeAuthCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Auth/CreatesUserProviders.php +opt/app/vendor/laravel/framework/src/Illuminate/Auth/EloquentUserProvider.php +opt/app/vendor/laravel/framework/src/Illuminate/Auth/GuardHelpers.php +opt/app/vendor/laravel/framework/src/Illuminate/Auth/Passwords/PasswordResetServiceProvider.php +opt/app/vendor/laravel/framework/src/Illuminate/Auth/SessionGuard.php +opt/app/vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastServiceProvider.php +opt/app/vendor/laravel/framework/src/Illuminate/Bus/BusServiceProvider.php +opt/app/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php +opt/app/vendor/laravel/framework/src/Illuminate/Bus/Queueable.php +opt/app/vendor/laravel/framework/src/Illuminate/Cache/CacheManager.php +opt/app/vendor/laravel/framework/src/Illuminate/Cache/CacheServiceProvider.php +opt/app/vendor/laravel/framework/src/Illuminate/Cache/Console/CacheTableCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Cache/Console/ClearCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Cache/Events/CacheMissed.php +opt/app/vendor/laravel/framework/src/Illuminate/Cache/FileStore.php +opt/app/vendor/laravel/framework/src/Illuminate/Cache/Repository.php +opt/app/vendor/laravel/framework/src/Illuminate/Cache/RetrievesMultipleKeys.php +opt/app/vendor/laravel/framework/src/Illuminate/Config/Repository.php +opt/app/vendor/laravel/framework/src/Illuminate/Console/AppNamespaceDetectorTrait.php +opt/app/vendor/laravel/framework/src/Illuminate/Console/Application.php +opt/app/vendor/laravel/framework/src/Illuminate/Console/Command.php +opt/app/vendor/laravel/framework/src/Illuminate/Console/ConfirmableTrait.php +opt/app/vendor/laravel/framework/src/Illuminate/Console/Events/ArtisanStarting.php +opt/app/vendor/laravel/framework/src/Illuminate/Console/GeneratorCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Console/OutputStyle.php +opt/app/vendor/laravel/framework/src/Illuminate/Console/Parser.php +opt/app/vendor/laravel/framework/src/Illuminate/Console/ScheduleServiceProvider.php +opt/app/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Schedule.php +opt/app/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Container/Container.php +opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Auth/Access/Gate.php +opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Auth/Factory.php +opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Auth/Guard.php +opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Auth/StatefulGuard.php +opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Auth/SupportsBasicAuth.php +opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Auth/UserProvider.php +opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Bus/Dispatcher.php +opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Bus/QueueingDispatcher.php +opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Cache/Factory.php +opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Cache/Repository.php +opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Cache/Store.php +opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Config/Repository.php +opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Console/Application.php +opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Console/Kernel.php +opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Container/Container.php +opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Cookie/Factory.php +opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Cookie/QueueingFactory.php +opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Debug/ExceptionHandler.php +opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Encryption/Encrypter.php +opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Events/Dispatcher.php +opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Filesystem/FileNotFoundException.php +opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Foundation/Application.php +opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Hashing/Hasher.php +opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Http/Kernel.php +opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Logging/Log.php +opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Mail/MailQueue.php +opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Mail/Mailer.php +opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Pagination/Paginator.php +opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Pipeline/Pipeline.php +opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Queue/Factory.php +opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Queue/Job.php +opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Queue/Monitor.php +opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Queue/Queue.php +opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Queue/QueueableEntity.php +opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Queue/ShouldQueue.php +opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Routing/Registrar.php +opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Routing/UrlGenerator.php +opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Routing/UrlRoutable.php +opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Support/Arrayable.php +opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Support/Htmlable.php +opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Support/Jsonable.php +opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Support/MessageBag.php +opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Support/MessageProvider.php +opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Support/Renderable.php +opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Validation/Factory.php +opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Validation/ValidatesWhenResolved.php +opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Validation/Validator.php +opt/app/vendor/laravel/framework/src/Illuminate/Contracts/View/Factory.php +opt/app/vendor/laravel/framework/src/Illuminate/Contracts/View/View.php +opt/app/vendor/laravel/framework/src/Illuminate/Cookie/CookieJar.php +opt/app/vendor/laravel/framework/src/Illuminate/Cookie/CookieServiceProvider.php +opt/app/vendor/laravel/framework/src/Illuminate/Database/Connection.php +opt/app/vendor/laravel/framework/src/Illuminate/Database/ConnectionInterface.php +opt/app/vendor/laravel/framework/src/Illuminate/Database/ConnectionResolverInterface.php +opt/app/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php +opt/app/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php +opt/app/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectorInterface.php +opt/app/vendor/laravel/framework/src/Illuminate/Database/Connectors/MySqlConnector.php +opt/app/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/BaseCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/InstallCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateMakeCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/RefreshCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/ResetCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/RollbackCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/StatusCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Database/Console/Seeds/SeedCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Database/Console/Seeds/SeederMakeCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Database/DatabaseManager.php +opt/app/vendor/laravel/framework/src/Illuminate/Database/DatabaseServiceProvider.php +opt/app/vendor/laravel/framework/src/Illuminate/Database/DetectsDeadlocks.php +opt/app/vendor/laravel/framework/src/Illuminate/Database/DetectsLostConnections.php +opt/app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php +opt/app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php +opt/app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Scope.php +opt/app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/SoftDeletes.php +opt/app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/SoftDeletingScope.php +opt/app/vendor/laravel/framework/src/Illuminate/Database/Events/QueryExecuted.php +opt/app/vendor/laravel/framework/src/Illuminate/Database/Grammar.php +opt/app/vendor/laravel/framework/src/Illuminate/Database/MigrationServiceProvider.php +opt/app/vendor/laravel/framework/src/Illuminate/Database/Migrations/DatabaseMigrationRepository.php +opt/app/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migration.php +opt/app/vendor/laravel/framework/src/Illuminate/Database/Migrations/MigrationCreator.php +opt/app/vendor/laravel/framework/src/Illuminate/Database/Migrations/MigrationRepositoryInterface.php +opt/app/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php +opt/app/vendor/laravel/framework/src/Illuminate/Database/MySqlConnection.php +opt/app/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php +opt/app/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/Grammar.php +opt/app/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/MySqlGrammar.php +opt/app/vendor/laravel/framework/src/Illuminate/Database/Query/Processors/MySqlProcessor.php +opt/app/vendor/laravel/framework/src/Illuminate/Database/Query/Processors/Processor.php +opt/app/vendor/laravel/framework/src/Illuminate/Database/QueryException.php +opt/app/vendor/laravel/framework/src/Illuminate/Database/Schema/Blueprint.php +opt/app/vendor/laravel/framework/src/Illuminate/Database/Schema/Builder.php +opt/app/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/Grammar.php +opt/app/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/MySqlGrammar.php +opt/app/vendor/laravel/framework/src/Illuminate/Database/Schema/MySqlBuilder.php +opt/app/vendor/laravel/framework/src/Illuminate/Database/SeedServiceProvider.php +opt/app/vendor/laravel/framework/src/Illuminate/Database/Seeder.php +opt/app/vendor/laravel/framework/src/Illuminate/Encryption/Encrypter.php +opt/app/vendor/laravel/framework/src/Illuminate/Encryption/EncryptionServiceProvider.php +opt/app/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php +opt/app/vendor/laravel/framework/src/Illuminate/Events/EventServiceProvider.php +opt/app/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php +opt/app/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemServiceProvider.php +opt/app/vendor/laravel/framework/src/Illuminate/Foundation/AliasLoader.php +opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Application.php +opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Auth/Access/AuthorizesRequests.php +opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/BootProviders.php +opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/ConfigureLogging.php +opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/DetectEnvironment.php +opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php +opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/LoadConfiguration.php +opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/RegisterFacades.php +opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/RegisterProviders.php +opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/SetRequestForConsole.php +opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Bus/DispatchesJobs.php +opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Console/AppNameCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Console/ClearCompiledCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Console/ConfigCacheCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Console/ConfigClearCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Console/ConsoleMakeCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Console/DownCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Console/EnvironmentCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Console/EventGenerateCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Console/EventMakeCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Console/JobMakeCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php +opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Console/KeyGenerateCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Console/ListenerMakeCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Console/MailMakeCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Console/ModelMakeCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Console/NotificationMakeCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Console/OptimizeCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Console/PolicyMakeCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Console/ProviderMakeCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Console/RequestMakeCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteCacheCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteClearCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteListCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Console/ServeCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Console/StorageLinkCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Console/TestMakeCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Console/TinkerCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Console/UpCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Console/VendorPublishCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Console/ViewClearCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Foundation/EnvironmentDetector.php +opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php +opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/FormRequest.php +opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php +opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php +opt/app/vendor/laravel/framework/src/Illuminate/Foundation/ProviderRepository.php +opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Providers/ArtisanServiceProvider.php +opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Providers/ComposerServiceProvider.php +opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Providers/ConsoleSupportServiceProvider.php +opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Providers/FoundationServiceProvider.php +opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Support/Providers/AuthServiceProvider.php +opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Support/Providers/EventServiceProvider.php +opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Support/Providers/RouteServiceProvider.php +opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Validation/ValidatesRequests.php +opt/app/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php +opt/app/vendor/laravel/framework/src/Illuminate/Hashing/BcryptHasher.php +opt/app/vendor/laravel/framework/src/Illuminate/Hashing/HashServiceProvider.php +opt/app/vendor/laravel/framework/src/Illuminate/Http/Request.php +opt/app/vendor/laravel/framework/src/Illuminate/Http/Response.php +opt/app/vendor/laravel/framework/src/Illuminate/Http/ResponseTrait.php +opt/app/vendor/laravel/framework/src/Illuminate/Log/Writer.php +opt/app/vendor/laravel/framework/src/Illuminate/Mail/Events/MessageSending.php +opt/app/vendor/laravel/framework/src/Illuminate/Mail/MailServiceProvider.php +opt/app/vendor/laravel/framework/src/Illuminate/Mail/Mailer.php +opt/app/vendor/laravel/framework/src/Illuminate/Mail/Message.php +opt/app/vendor/laravel/framework/src/Illuminate/Mail/TransportManager.php +opt/app/vendor/laravel/framework/src/Illuminate/Notifications/Console/NotificationTableCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Notifications/NotificationServiceProvider.php +opt/app/vendor/laravel/framework/src/Illuminate/Pagination/AbstractPaginator.php +opt/app/vendor/laravel/framework/src/Illuminate/Pagination/PaginationServiceProvider.php +opt/app/vendor/laravel/framework/src/Illuminate/Pagination/Paginator.php +opt/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php +opt/app/vendor/laravel/framework/src/Illuminate/Pipeline/PipelineServiceProvider.php +opt/app/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php +opt/app/vendor/laravel/framework/src/Illuminate/Queue/Connectors/ConnectorInterface.php +opt/app/vendor/laravel/framework/src/Illuminate/Queue/Connectors/SyncConnector.php +opt/app/vendor/laravel/framework/src/Illuminate/Queue/Console/FailedTableCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Queue/Console/FlushFailedCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Queue/Console/ForgetFailedCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Queue/Console/ListFailedCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Queue/Console/ListenCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Queue/Console/RestartCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Queue/Console/RetryCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Queue/Console/TableCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Queue/ConsoleServiceProvider.php +opt/app/vendor/laravel/framework/src/Illuminate/Queue/Events/JobProcessed.php +opt/app/vendor/laravel/framework/src/Illuminate/Queue/Events/JobProcessing.php +opt/app/vendor/laravel/framework/src/Illuminate/Queue/InteractsWithQueue.php +opt/app/vendor/laravel/framework/src/Illuminate/Queue/Jobs/Job.php +opt/app/vendor/laravel/framework/src/Illuminate/Queue/Jobs/SyncJob.php +opt/app/vendor/laravel/framework/src/Illuminate/Queue/Listener.php +opt/app/vendor/laravel/framework/src/Illuminate/Queue/Queue.php +opt/app/vendor/laravel/framework/src/Illuminate/Queue/QueueManager.php +opt/app/vendor/laravel/framework/src/Illuminate/Queue/QueueServiceProvider.php +opt/app/vendor/laravel/framework/src/Illuminate/Queue/SerializesAndRestoresModelIdentifiers.php +opt/app/vendor/laravel/framework/src/Illuminate/Queue/SerializesModels.php +opt/app/vendor/laravel/framework/src/Illuminate/Queue/SyncQueue.php +opt/app/vendor/laravel/framework/src/Illuminate/Queue/Worker.php +opt/app/vendor/laravel/framework/src/Illuminate/Redis/RedisServiceProvider.php +opt/app/vendor/laravel/framework/src/Illuminate/Routing/Console/ControllerMakeCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Routing/Console/MiddlewareMakeCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Routing/Controller.php +opt/app/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php +opt/app/vendor/laravel/framework/src/Illuminate/Routing/Events/RouteMatched.php +opt/app/vendor/laravel/framework/src/Illuminate/Routing/Matching/HostValidator.php +opt/app/vendor/laravel/framework/src/Illuminate/Routing/Matching/MethodValidator.php +opt/app/vendor/laravel/framework/src/Illuminate/Routing/Matching/SchemeValidator.php +opt/app/vendor/laravel/framework/src/Illuminate/Routing/Matching/UriValidator.php +opt/app/vendor/laravel/framework/src/Illuminate/Routing/Matching/ValidatorInterface.php +opt/app/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php +opt/app/vendor/laravel/framework/src/Illuminate/Routing/Route.php +opt/app/vendor/laravel/framework/src/Illuminate/Routing/RouteCollection.php +opt/app/vendor/laravel/framework/src/Illuminate/Routing/RouteDependencyResolverTrait.php +opt/app/vendor/laravel/framework/src/Illuminate/Routing/Router.php +opt/app/vendor/laravel/framework/src/Illuminate/Routing/RoutingServiceProvider.php +opt/app/vendor/laravel/framework/src/Illuminate/Routing/UrlGenerator.php +opt/app/vendor/laravel/framework/src/Illuminate/Session/Console/SessionTableCommand.php +opt/app/vendor/laravel/framework/src/Illuminate/Session/EncryptedStore.php +opt/app/vendor/laravel/framework/src/Illuminate/Session/FileSessionHandler.php +opt/app/vendor/laravel/framework/src/Illuminate/Session/SessionInterface.php +opt/app/vendor/laravel/framework/src/Illuminate/Session/SessionManager.php +opt/app/vendor/laravel/framework/src/Illuminate/Session/SessionServiceProvider.php +opt/app/vendor/laravel/framework/src/Illuminate/Session/Store.php +opt/app/vendor/laravel/framework/src/Illuminate/Support/AggregateServiceProvider.php +opt/app/vendor/laravel/framework/src/Illuminate/Support/Arr.php +opt/app/vendor/laravel/framework/src/Illuminate/Support/Collection.php +opt/app/vendor/laravel/framework/src/Illuminate/Support/Composer.php +opt/app/vendor/laravel/framework/src/Illuminate/Support/Facades/Cache.php +opt/app/vendor/laravel/framework/src/Illuminate/Support/Facades/DB.php +opt/app/vendor/laravel/framework/src/Illuminate/Support/Facades/Event.php +opt/app/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php +opt/app/vendor/laravel/framework/src/Illuminate/Support/Facades/Gate.php +opt/app/vendor/laravel/framework/src/Illuminate/Support/Facades/Log.php +opt/app/vendor/laravel/framework/src/Illuminate/Support/Facades/Mail.php +opt/app/vendor/laravel/framework/src/Illuminate/Support/Facades/Request.php +opt/app/vendor/laravel/framework/src/Illuminate/Support/Facades/Route.php +opt/app/vendor/laravel/framework/src/Illuminate/Support/Facades/Schema.php +opt/app/vendor/laravel/framework/src/Illuminate/Support/Facades/Validator.php +opt/app/vendor/laravel/framework/src/Illuminate/Support/Facades/View.php +opt/app/vendor/laravel/framework/src/Illuminate/Support/Fluent.php +opt/app/vendor/laravel/framework/src/Illuminate/Support/Manager.php +opt/app/vendor/laravel/framework/src/Illuminate/Support/MessageBag.php +opt/app/vendor/laravel/framework/src/Illuminate/Support/NamespacedItemResolver.php +opt/app/vendor/laravel/framework/src/Illuminate/Support/Pluralizer.php +opt/app/vendor/laravel/framework/src/Illuminate/Support/ServiceProvider.php +opt/app/vendor/laravel/framework/src/Illuminate/Support/Str.php +opt/app/vendor/laravel/framework/src/Illuminate/Support/Traits/Macroable.php +opt/app/vendor/laravel/framework/src/Illuminate/Support/helpers.php +opt/app/vendor/laravel/framework/src/Illuminate/Translation/FileLoader.php +opt/app/vendor/laravel/framework/src/Illuminate/Translation/LoaderInterface.php +opt/app/vendor/laravel/framework/src/Illuminate/Translation/TranslationServiceProvider.php +opt/app/vendor/laravel/framework/src/Illuminate/Translation/Translator.php +opt/app/vendor/laravel/framework/src/Illuminate/Validation/DatabasePresenceVerifier.php +opt/app/vendor/laravel/framework/src/Illuminate/Validation/Factory.php +opt/app/vendor/laravel/framework/src/Illuminate/Validation/PresenceVerifierInterface.php +opt/app/vendor/laravel/framework/src/Illuminate/Validation/ValidatesWhenResolvedTrait.php +opt/app/vendor/laravel/framework/src/Illuminate/Validation/ValidationServiceProvider.php +opt/app/vendor/laravel/framework/src/Illuminate/Validation/Validator.php +opt/app/vendor/laravel/framework/src/Illuminate/View/Compilers/CompilerInterface.php +opt/app/vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php +opt/app/vendor/laravel/framework/src/Illuminate/View/Engines/EngineInterface.php +opt/app/vendor/laravel/framework/src/Illuminate/View/Engines/EngineResolver.php +opt/app/vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php +opt/app/vendor/laravel/framework/src/Illuminate/View/Factory.php +opt/app/vendor/laravel/framework/src/Illuminate/View/FileViewFinder.php +opt/app/vendor/laravel/framework/src/Illuminate/View/View.php +opt/app/vendor/laravel/framework/src/Illuminate/View/ViewFinderInterface.php +opt/app/vendor/laravel/framework/src/Illuminate/View/ViewServiceProvider.php +opt/app/vendor/laravelcollective/html/src/HtmlServiceProvider.php +opt/app/vendor/laravelcollective/html/src/helpers.php +opt/app/vendor/monolog/monolog/src/Monolog/Formatter/FormatterInterface.php +opt/app/vendor/monolog/monolog/src/Monolog/Formatter/LineFormatter.php +opt/app/vendor/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php +opt/app/vendor/monolog/monolog/src/Monolog/Handler/AbstractHandler.php +opt/app/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php +opt/app/vendor/monolog/monolog/src/Monolog/Handler/AbstractSyslogHandler.php +opt/app/vendor/monolog/monolog/src/Monolog/Handler/HandlerInterface.php +opt/app/vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php +opt/app/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php +opt/app/vendor/monolog/monolog/src/Monolog/Handler/SyslogHandler.php +opt/app/vendor/monolog/monolog/src/Monolog/Logger.php +opt/app/vendor/nesbot/carbon/src/Carbon/Carbon.php +opt/app/vendor/paragonie/random_compat/lib/random.php +opt/app/vendor/pragmarx/google2fa/src/Vendor/Laravel/ServiceProvider.php +opt/app/vendor/psr/log/Psr/Log/LoggerInterface.php +opt/app/vendor/psy/psysh/src/Psy/functions.php +opt/app/vendor/rcrowe/twigbridge/config/twigbridge.php +opt/app/vendor/rcrowe/twigbridge/src/Bridge.php +opt/app/vendor/rcrowe/twigbridge/src/Command/Clean.php +opt/app/vendor/rcrowe/twigbridge/src/Command/Lint.php +opt/app/vendor/rcrowe/twigbridge/src/Command/TwigBridge.php +opt/app/vendor/rcrowe/twigbridge/src/Engine/Compiler.php +opt/app/vendor/rcrowe/twigbridge/src/Engine/Twig.php +opt/app/vendor/rcrowe/twigbridge/src/Extension/Laravel/Auth.php +opt/app/vendor/rcrowe/twigbridge/src/Extension/Laravel/Config.php +opt/app/vendor/rcrowe/twigbridge/src/Extension/Laravel/Dump.php +opt/app/vendor/rcrowe/twigbridge/src/Extension/Laravel/Input.php +opt/app/vendor/rcrowe/twigbridge/src/Extension/Laravel/Session.php +opt/app/vendor/rcrowe/twigbridge/src/Extension/Laravel/Str.php +opt/app/vendor/rcrowe/twigbridge/src/Extension/Laravel/Translator.php +opt/app/vendor/rcrowe/twigbridge/src/Extension/Laravel/Url.php +opt/app/vendor/rcrowe/twigbridge/src/Extension/Loader/Facade/Caller.php +opt/app/vendor/rcrowe/twigbridge/src/Extension/Loader/Facades.php +opt/app/vendor/rcrowe/twigbridge/src/Extension/Loader/Filters.php +opt/app/vendor/rcrowe/twigbridge/src/Extension/Loader/Functions.php +opt/app/vendor/rcrowe/twigbridge/src/Extension/Loader/Loader.php +opt/app/vendor/rcrowe/twigbridge/src/Facade/Twig.php +opt/app/vendor/rcrowe/twigbridge/src/ServiceProvider.php +opt/app/vendor/rcrowe/twigbridge/src/Twig/Globals.php +opt/app/vendor/rcrowe/twigbridge/src/Twig/Loader.php +opt/app/vendor/rcrowe/twigbridge/src/Twig/Template.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/ByteStream/AbstractFilterableInputStream.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterReaderFactory.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterReaderFactory/SimpleCharacterReaderFactory.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterStream.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterStream/NgCharacterStream.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/DependencyContainer.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Encoder.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Encoder/QpEncoder.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Encoder/Rfc2231Encoder.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/Event.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/EventDispatcher.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/EventObject.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/SimpleEventDispatcher.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/TransportChangeEvent.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/TransportExceptionEvent.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Filterable.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/InputByteStream.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/IoException.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/KeyCache.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/KeyCache/DiskKeyCache.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/KeyCache/KeyCacheInputStream.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/KeyCache/SimpleKeyCacheInputStream.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mailer.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Message.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/CharsetObserver.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/NativeQpContentEncoder.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/QpContentEncoder.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/QpContentEncoderProxy.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/EncodingObserver.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Grammar.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Header.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/HeaderEncoder.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/HeaderEncoder/QpHeaderEncoder.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/HeaderFactory.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/HeaderSet.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/AbstractHeader.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/DateHeader.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/IdentificationHeader.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/MailboxHeader.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/ParameterizedHeader.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/UnstructuredHeader.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Message.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/MimeEntity.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/MimePart.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ParameterizedHeader.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/SimpleHeaderFactory.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/SimpleHeaderSet.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/SimpleMessage.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/SimpleMimeEntity.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/MimePart.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/OutputByteStream.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Preferences.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/ReplacementFilterFactory.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/SmtpTransport.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/StreamFilter.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/StreamFilters/ByteArrayReplacementFilter.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/StreamFilters/StringReplacementFilterFactory.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/SwiftException.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/CramMd5Authenticator.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/LoginAuthenticator.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/NTLMAuthenticator.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/PlainAuthenticator.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/XOAuth2Authenticator.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/AuthHandler.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Authenticator.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/EsmtpHandler.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/EsmtpTransport.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/IoBuffer.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/SmtpAgent.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/StreamBuffer.php +opt/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/TransportException.php +opt/app/vendor/swiftmailer/swiftmailer/lib/dependency_maps/cache_deps.php +opt/app/vendor/swiftmailer/swiftmailer/lib/dependency_maps/message_deps.php +opt/app/vendor/swiftmailer/swiftmailer/lib/dependency_maps/mime_deps.php +opt/app/vendor/swiftmailer/swiftmailer/lib/dependency_maps/transport_deps.php +opt/app/vendor/swiftmailer/swiftmailer/lib/mime_types.php +opt/app/vendor/swiftmailer/swiftmailer/lib/preferences.php +opt/app/vendor/swiftmailer/swiftmailer/lib/swift_init.php +opt/app/vendor/swiftmailer/swiftmailer/lib/swift_required.php +opt/app/vendor/symfony/console/Application.php +opt/app/vendor/symfony/console/Command/Command.php +opt/app/vendor/symfony/console/Command/HelpCommand.php +opt/app/vendor/symfony/console/Command/ListCommand.php +opt/app/vendor/symfony/console/Formatter/OutputFormatter.php +opt/app/vendor/symfony/console/Formatter/OutputFormatterInterface.php +opt/app/vendor/symfony/console/Formatter/OutputFormatterStyle.php +opt/app/vendor/symfony/console/Formatter/OutputFormatterStyleInterface.php +opt/app/vendor/symfony/console/Formatter/OutputFormatterStyleStack.php +opt/app/vendor/symfony/console/Helper/DebugFormatterHelper.php +opt/app/vendor/symfony/console/Helper/FormatterHelper.php +opt/app/vendor/symfony/console/Helper/Helper.php +opt/app/vendor/symfony/console/Helper/HelperInterface.php +opt/app/vendor/symfony/console/Helper/HelperSet.php +opt/app/vendor/symfony/console/Helper/ProcessHelper.php +opt/app/vendor/symfony/console/Helper/QuestionHelper.php +opt/app/vendor/symfony/console/Input/ArgvInput.php +opt/app/vendor/symfony/console/Input/ArrayInput.php +opt/app/vendor/symfony/console/Input/Input.php +opt/app/vendor/symfony/console/Input/InputArgument.php +opt/app/vendor/symfony/console/Input/InputDefinition.php +opt/app/vendor/symfony/console/Input/InputInterface.php +opt/app/vendor/symfony/console/Input/InputOption.php +opt/app/vendor/symfony/console/Output/BufferedOutput.php +opt/app/vendor/symfony/console/Output/ConsoleOutput.php +opt/app/vendor/symfony/console/Output/ConsoleOutputInterface.php +opt/app/vendor/symfony/console/Output/Output.php +opt/app/vendor/symfony/console/Output/OutputInterface.php +opt/app/vendor/symfony/console/Output/StreamOutput.php +opt/app/vendor/symfony/console/Style/OutputStyle.php +opt/app/vendor/symfony/console/Style/StyleInterface.php +opt/app/vendor/symfony/console/Style/SymfonyStyle.php +opt/app/vendor/symfony/debug/Exception/FatalErrorException.php +opt/app/vendor/symfony/debug/Exception/FlattenException.php +opt/app/vendor/symfony/debug/ExceptionHandler.php +opt/app/vendor/symfony/finder/Finder.php +opt/app/vendor/symfony/finder/Glob.php +opt/app/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php +opt/app/vendor/symfony/finder/Iterator/FileTypeFilterIterator.php +opt/app/vendor/symfony/finder/Iterator/FilenameFilterIterator.php +opt/app/vendor/symfony/finder/Iterator/FilterIterator.php +opt/app/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php +opt/app/vendor/symfony/finder/Iterator/PathFilterIterator.php +opt/app/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php +opt/app/vendor/symfony/finder/SplFileInfo.php +opt/app/vendor/symfony/http-foundation/FileBag.php +opt/app/vendor/symfony/http-foundation/HeaderBag.php +opt/app/vendor/symfony/http-foundation/ParameterBag.php +opt/app/vendor/symfony/http-foundation/Request.php +opt/app/vendor/symfony/http-foundation/Response.php +opt/app/vendor/symfony/http-foundation/ResponseHeaderBag.php +opt/app/vendor/symfony/http-foundation/ServerBag.php +opt/app/vendor/symfony/http-foundation/Session/SessionBagInterface.php +opt/app/vendor/symfony/http-foundation/Session/SessionInterface.php +opt/app/vendor/symfony/http-foundation/Session/Storage/MetadataBag.php +opt/app/vendor/symfony/http-kernel/HttpKernelInterface.php +opt/app/vendor/symfony/polyfill-mbstring/bootstrap.php +opt/app/vendor/symfony/polyfill-php56/bootstrap.php +opt/app/vendor/symfony/process/ExecutableFinder.php +opt/app/vendor/symfony/process/PhpExecutableFinder.php +opt/app/vendor/symfony/process/ProcessUtils.php +opt/app/vendor/symfony/routing/CompiledRoute.php +opt/app/vendor/symfony/routing/Route.php +opt/app/vendor/symfony/routing/RouteCompiler.php +opt/app/vendor/symfony/routing/RouteCompilerInterface.php +opt/app/vendor/symfony/translation/TranslatorInterface.php +opt/app/vendor/symfony/var-dumper/Cloner/AbstractCloner.php +opt/app/vendor/symfony/var-dumper/Cloner/ClonerInterface.php +opt/app/vendor/symfony/var-dumper/Cloner/VarCloner.php +opt/app/vendor/symfony/var-dumper/Resources/functions/dump.php +opt/app/vendor/twig/twig/lib/Twig/BaseNodeVisitor.php +opt/app/vendor/twig/twig/lib/Twig/Cache/Filesystem.php +opt/app/vendor/twig/twig/lib/Twig/CacheInterface.php +opt/app/vendor/twig/twig/lib/Twig/Compiler.php +opt/app/vendor/twig/twig/lib/Twig/CompilerInterface.php +opt/app/vendor/twig/twig/lib/Twig/Environment.php +opt/app/vendor/twig/twig/lib/Twig/ExistsLoaderInterface.php +opt/app/vendor/twig/twig/lib/Twig/ExpressionParser.php +opt/app/vendor/twig/twig/lib/Twig/Extension.php +opt/app/vendor/twig/twig/lib/Twig/Extension/Core.php +opt/app/vendor/twig/twig/lib/Twig/Extension/Debug.php +opt/app/vendor/twig/twig/lib/Twig/Extension/Escaper.php +opt/app/vendor/twig/twig/lib/Twig/Extension/GlobalsInterface.php +opt/app/vendor/twig/twig/lib/Twig/Extension/Optimizer.php +opt/app/vendor/twig/twig/lib/Twig/Extension/Staging.php +opt/app/vendor/twig/twig/lib/Twig/ExtensionInterface.php +opt/app/vendor/twig/twig/lib/Twig/Lexer.php +opt/app/vendor/twig/twig/lib/Twig/LexerInterface.php +opt/app/vendor/twig/twig/lib/Twig/Loader/Array.php +opt/app/vendor/twig/twig/lib/Twig/Loader/Chain.php +opt/app/vendor/twig/twig/lib/Twig/LoaderInterface.php +opt/app/vendor/twig/twig/lib/Twig/Node.php +opt/app/vendor/twig/twig/lib/Twig/Node/Body.php +opt/app/vendor/twig/twig/lib/Twig/Node/Expression.php +opt/app/vendor/twig/twig/lib/Twig/Node/Expression/Array.php +opt/app/vendor/twig/twig/lib/Twig/Node/Expression/Call.php +opt/app/vendor/twig/twig/lib/Twig/Node/Expression/Constant.php +opt/app/vendor/twig/twig/lib/Twig/Node/Expression/Filter.php +opt/app/vendor/twig/twig/lib/Twig/Node/Expression/GetAttr.php +opt/app/vendor/twig/twig/lib/Twig/Node/Expression/Name.php +opt/app/vendor/twig/twig/lib/Twig/Node/If.php +opt/app/vendor/twig/twig/lib/Twig/Node/Include.php +opt/app/vendor/twig/twig/lib/Twig/Node/Module.php +opt/app/vendor/twig/twig/lib/Twig/Node/Print.php +opt/app/vendor/twig/twig/lib/Twig/Node/Text.php +opt/app/vendor/twig/twig/lib/Twig/NodeInterface.php +opt/app/vendor/twig/twig/lib/Twig/NodeOutputInterface.php +opt/app/vendor/twig/twig/lib/Twig/NodeTraverser.php +opt/app/vendor/twig/twig/lib/Twig/NodeVisitor/Escaper.php +opt/app/vendor/twig/twig/lib/Twig/NodeVisitor/Optimizer.php +opt/app/vendor/twig/twig/lib/Twig/NodeVisitor/SafeAnalysis.php +opt/app/vendor/twig/twig/lib/Twig/NodeVisitorInterface.php +opt/app/vendor/twig/twig/lib/Twig/Parser.php +opt/app/vendor/twig/twig/lib/Twig/ParserInterface.php +opt/app/vendor/twig/twig/lib/Twig/SimpleFilter.php +opt/app/vendor/twig/twig/lib/Twig/SimpleFunction.php +opt/app/vendor/twig/twig/lib/Twig/SimpleTest.php +opt/app/vendor/twig/twig/lib/Twig/Source.php +opt/app/vendor/twig/twig/lib/Twig/SourceContextLoaderInterface.php +opt/app/vendor/twig/twig/lib/Twig/Template.php +opt/app/vendor/twig/twig/lib/Twig/TemplateInterface.php +opt/app/vendor/twig/twig/lib/Twig/Token.php +opt/app/vendor/twig/twig/lib/Twig/TokenParser.php +opt/app/vendor/twig/twig/lib/Twig/TokenParser/AutoEscape.php +opt/app/vendor/twig/twig/lib/Twig/TokenParser/Block.php +opt/app/vendor/twig/twig/lib/Twig/TokenParser/Do.php +opt/app/vendor/twig/twig/lib/Twig/TokenParser/Embed.php +opt/app/vendor/twig/twig/lib/Twig/TokenParser/Extends.php +opt/app/vendor/twig/twig/lib/Twig/TokenParser/Filter.php +opt/app/vendor/twig/twig/lib/Twig/TokenParser/Flush.php +opt/app/vendor/twig/twig/lib/Twig/TokenParser/For.php +opt/app/vendor/twig/twig/lib/Twig/TokenParser/From.php +opt/app/vendor/twig/twig/lib/Twig/TokenParser/If.php +opt/app/vendor/twig/twig/lib/Twig/TokenParser/Import.php +opt/app/vendor/twig/twig/lib/Twig/TokenParser/Include.php +opt/app/vendor/twig/twig/lib/Twig/TokenParser/Macro.php +opt/app/vendor/twig/twig/lib/Twig/TokenParser/Set.php +opt/app/vendor/twig/twig/lib/Twig/TokenParser/Spaceless.php +opt/app/vendor/twig/twig/lib/Twig/TokenParser/Use.php +opt/app/vendor/twig/twig/lib/Twig/TokenParser/With.php +opt/app/vendor/twig/twig/lib/Twig/TokenParserBroker.php +opt/app/vendor/twig/twig/lib/Twig/TokenParserBrokerInterface.php +opt/app/vendor/twig/twig/lib/Twig/TokenParserInterface.php +opt/app/vendor/twig/twig/lib/Twig/TokenStream.php +opt/app/vendor/vlucas/phpdotenv/src/Dotenv.php +opt/app/vendor/vlucas/phpdotenv/src/Loader.php +opt/app/vendor/watson/validating/src/Injectors/UniqueInjector.php +opt/app/vendor/watson/validating/src/ValidatingObserver.php +opt/app/vendor/watson/validating/src/ValidatingTrait.php +proc/cpuinfo +sandstorm-http-bridge +sandstorm-http-bridge-config +sandstorm-manifest +usr/bin/my_print_defaults +usr/bin/mysql +usr/bin/mysql_install_db +usr/bin/php +usr/bin/php7.0 +usr/bin/sudo +usr/lib/php/20151012/bcmath.so +usr/lib/php/20151012/calendar.so +usr/lib/php/20151012/ctype.so +usr/lib/php/20151012/curl.so +usr/lib/php/20151012/dom.so +usr/lib/php/20151012/exif.so +usr/lib/php/20151012/fileinfo.so +usr/lib/php/20151012/ftp.so +usr/lib/php/20151012/gettext.so +usr/lib/php/20151012/iconv.so +usr/lib/php/20151012/intl.so +usr/lib/php/20151012/json.so +usr/lib/php/20151012/mbstring.so +usr/lib/php/20151012/mysqli.so +usr/lib/php/20151012/mysqlnd.so +usr/lib/php/20151012/opcache.so +usr/lib/php/20151012/pdo.so +usr/lib/php/20151012/pdo_mysql.so +usr/lib/php/20151012/phar.so +usr/lib/php/20151012/posix.so +usr/lib/php/20151012/readline.so +usr/lib/php/20151012/shmop.so +usr/lib/php/20151012/simplexml.so +usr/lib/php/20151012/sockets.so +usr/lib/php/20151012/sysvmsg.so +usr/lib/php/20151012/sysvsem.so +usr/lib/php/20151012/sysvshm.so +usr/lib/php/20151012/tokenizer.so +usr/lib/php/20151012/wddx.so +usr/lib/php/20151012/xml.so +usr/lib/php/20151012/xmlreader.so +usr/lib/php/20151012/xmlwriter.so +usr/lib/php/20151012/xsl.so +usr/lib/ssl/openssl.cnf +usr/lib/x86_64-linux-gnu/libGeoIP.so.1 +usr/lib/x86_64-linux-gnu/libGeoIP.so.1.6.2 +usr/lib/x86_64-linux-gnu/libX11.so.6 +usr/lib/x86_64-linux-gnu/libX11.so.6.3.0 +usr/lib/x86_64-linux-gnu/libXau.so.6 +usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 +usr/lib/x86_64-linux-gnu/libXdmcp.so.6 +usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 +usr/lib/x86_64-linux-gnu/libXpm.so.4 +usr/lib/x86_64-linux-gnu/libXpm.so.4.11.0 +usr/lib/x86_64-linux-gnu/libapparmor.so.1 +usr/lib/x86_64-linux-gnu/libapparmor.so.1.2.0 +usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 +usr/lib/x86_64-linux-gnu/libcurl.so.4 +usr/lib/x86_64-linux-gnu/libcurl.so.4.3.0 +usr/lib/x86_64-linux-gnu/libdb-5.3.so +usr/lib/x86_64-linux-gnu/libedit.so.2 +usr/lib/x86_64-linux-gnu/libedit.so.2.0.51 +usr/lib/x86_64-linux-gnu/libexslt.so.0 +usr/lib/x86_64-linux-gnu/libexslt.so.0.8.17 +usr/lib/x86_64-linux-gnu/libffi.so.6 +usr/lib/x86_64-linux-gnu/libffi.so.6.0.2 +usr/lib/x86_64-linux-gnu/libfontconfig.so.1 +usr/lib/x86_64-linux-gnu/libfontconfig.so.1.8.0 +usr/lib/x86_64-linux-gnu/libfreetype.so.6 +usr/lib/x86_64-linux-gnu/libfreetype.so.6.11.1 +usr/lib/x86_64-linux-gnu/libgd.so.3 +usr/lib/x86_64-linux-gnu/libgd.so.3.0.0 +usr/lib/x86_64-linux-gnu/libgmp.so.10 +usr/lib/x86_64-linux-gnu/libgmp.so.10.2.0 +usr/lib/x86_64-linux-gnu/libgnutls-deb0.so.28 +usr/lib/x86_64-linux-gnu/libgnutls-deb0.so.28.41.0 +usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2 +usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2.2 +usr/lib/x86_64-linux-gnu/libhogweed.so.2 +usr/lib/x86_64-linux-gnu/libhogweed.so.2.5 +usr/lib/x86_64-linux-gnu/libicudata.so.52 +usr/lib/x86_64-linux-gnu/libicudata.so.52.1 +usr/lib/x86_64-linux-gnu/libicui18n.so.52 +usr/lib/x86_64-linux-gnu/libicui18n.so.52.1 +usr/lib/x86_64-linux-gnu/libicuio.so.52 +usr/lib/x86_64-linux-gnu/libicuio.so.52.1 +usr/lib/x86_64-linux-gnu/libicuuc.so.52 +usr/lib/x86_64-linux-gnu/libicuuc.so.52.1 +usr/lib/x86_64-linux-gnu/libidn.so.11 +usr/lib/x86_64-linux-gnu/libidn.so.11.6.12 +usr/lib/x86_64-linux-gnu/libjbig.so.0 +usr/lib/x86_64-linux-gnu/libjpeg.so.62 +usr/lib/x86_64-linux-gnu/libjpeg.so.62.1.0 +usr/lib/x86_64-linux-gnu/libk5crypto.so.3 +usr/lib/x86_64-linux-gnu/libk5crypto.so.3.1 +usr/lib/x86_64-linux-gnu/libkrb5.so.3 +usr/lib/x86_64-linux-gnu/libkrb5.so.3.3 +usr/lib/x86_64-linux-gnu/libkrb5support.so.0 +usr/lib/x86_64-linux-gnu/libkrb5support.so.0.1 +usr/lib/x86_64-linux-gnu/liblber-2.4.so.2 +usr/lib/x86_64-linux-gnu/liblber-2.4.so.2.10.3 +usr/lib/x86_64-linux-gnu/libldap_r-2.4.so.2 +usr/lib/x86_64-linux-gnu/libldap_r-2.4.so.2.10.3 +usr/lib/x86_64-linux-gnu/libmysqlclient.so.18 +usr/lib/x86_64-linux-gnu/libmysqlclient.so.18.0.0 +usr/lib/x86_64-linux-gnu/libnettle.so.4 +usr/lib/x86_64-linux-gnu/libnettle.so.4.7 +usr/lib/x86_64-linux-gnu/libossp-uuid.so.16 +usr/lib/x86_64-linux-gnu/libossp-uuid.so.16.0.22 +usr/lib/x86_64-linux-gnu/libp11-kit.so.0 +usr/lib/x86_64-linux-gnu/libp11-kit.so.0.0.0 +usr/lib/x86_64-linux-gnu/librtmp.so.1 +usr/lib/x86_64-linux-gnu/libsasl2.so.2 +usr/lib/x86_64-linux-gnu/libsasl2.so.2.0.25 +usr/lib/x86_64-linux-gnu/libssh2.so.1 +usr/lib/x86_64-linux-gnu/libssh2.so.1.0.1 +usr/lib/x86_64-linux-gnu/libssl.so.1.0.0 +usr/lib/x86_64-linux-gnu/libstdc++.so.6 +usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20 +usr/lib/x86_64-linux-gnu/libtasn1.so.6 +usr/lib/x86_64-linux-gnu/libtasn1.so.6.3.2 +usr/lib/x86_64-linux-gnu/libtiff.so.5 +usr/lib/x86_64-linux-gnu/libtiff.so.5.2.0 +usr/lib/x86_64-linux-gnu/libvpx.so.1 +usr/lib/x86_64-linux-gnu/libvpx.so.1.3.0 +usr/lib/x86_64-linux-gnu/libxcb.so.1 +usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 +usr/lib/x86_64-linux-gnu/libxml2.so.2 +usr/lib/x86_64-linux-gnu/libxml2.so.2.9.1 +usr/lib/x86_64-linux-gnu/libxslt.so.1 +usr/lib/x86_64-linux-gnu/libxslt.so.1.1.28 +usr/sbin/mysqld +usr/sbin/nginx +usr/sbin/php-fpm7.0 +usr/share/mysql/charsets/Index.xml +usr/share/mysql/english/errmsg.sys +usr/share/mysql/fill_help_tables.sql +usr/share/mysql/mysql_system_tables.sql +usr/share/mysql/mysql_system_tables_data.sql diff --git a/.sandstorm/sandstorm-pkgdef.capnp b/.sandstorm/sandstorm-pkgdef.capnp new file mode 100644 index 0000000000..2e53aaf560 --- /dev/null +++ b/.sandstorm/sandstorm-pkgdef.capnp @@ -0,0 +1,247 @@ +@0x9411e6c8b3c8a4b6; + +using Spk = import "/sandstorm/package.capnp"; +# This imports: +# $SANDSTORM_HOME/latest/usr/include/sandstorm/package.capnp +# Check out that file to see the full, documented package definition format. + +const pkgdef :Spk.PackageDefinition = ( + # The package definition. Note that the spk tool looks specifically for the + # "pkgdef" constant. + + id = "uws252ya9mep4t77tevn85333xzsgrpgth8q4y1rhknn1hammw70", + # Your app ID is actually its public key. The private key was placed in + # your keyring. All updates must be signed with the same key. + + manifest = ( + # This manifest is included in your app package to tell Sandstorm + # about your app. + + appTitle = (defaultText = "Firefly III"), + + appVersion = 0, # Increment this for every release. + + appMarketingVersion = (defaultText = "3.4.3"), + # Human-readable representation of appVersion. Should match the way you + # identify versions of your app in documentation and marketing. + + actions = [ + # Define your "new document" handlers here. + ( nounPhrase = (defaultText = "administration"), + command = .myCommand + # The command to run when starting for the first time. (".myCommand" + # is just a constant defined at the bottom of the file.) + ) + ], + + continueCommand = .myCommand, + # This is the command called to start your app back up after it has been + # shut down for inactivity. Here we're using the same command as for + # starting a new instance, but you could use different commands for each + # case. + + metadata = ( + # Data which is not needed specifically to execute the app, but is useful + # for purposes like marketing and display. These fields are documented at + # https://docs.sandstorm.io/en/latest/developing/publishing-apps/#add-required-metadata + # and (in deeper detail) in the sandstorm source code, in the Metadata section of + # https://github.com/sandstorm-io/sandstorm/blob/master/src/sandstorm/package.capnp + icons = ( + # Various icons to represent the app in various contexts. + appGrid = (png = (dpi1x = embed "public/images/logo/firefly-iii-128.png")), + grain = (png = (dpi1x = embed "public/images/logo/firefly-iii-24.png", + dpi2x = embed "public/images/logo/firefly-iii-48.png")), + market = (png = (dpi1x = embed "public/images/logo/firefly-iii-150.png")) + ), + + website = "https://firefly-iii.github.io/", + # This should be the app's main website url. + + codeUrl = "https://github.com/firefly-iii/firefly-iii", + # URL of the app's source code repository, e.g. a GitHub URL. + # Required if you specify a license requiring redistributing code, but optional otherwise. + + license = (openSource = void), + # The license this package is distributed under. See + # https://docs.sandstorm.io/en/latest/developing/publishing-apps/#license + + categories = [productivity], + # A list of categories/genres to which this app belongs, sorted with best fit first. + # See the list of categories at + # https://docs.sandstorm.io/en/latest/developing/publishing-apps/#categories + + author = ( + # Fields relating to the author of this app. + + contactEmail = "thegrumpydictator@gmail.com", + # Email address to contact for any issues with this app. This includes end-user support + # requests as well as app store administrator requests, so it is very important that this be a + # valid address with someone paying attention to it. + + #pgpSignature = embed "path/to/pgp-signature", + # PGP signature attesting responsibility for the app ID. This is a binary-format detached + # signature of the following ASCII message (not including the quotes, no newlines, and + # replacing with the standard base-32 text format of the app's ID): + # + # "I am the author of the Sandstorm.io app with the following ID: " + # + # You can create a signature file using `gpg` like so: + # + # echo -n "I am the author of the Sandstorm.io app with the following ID: " | gpg --sign > pgp-signature + # + # Further details including how to set up GPG and how to use keybase.io can be found + # at https://docs.sandstorm.io/en/latest/developing/publishing-apps/#verify-your-identity + + # upstreamAuthor = "Example App Team", + # Name of the original primary author of this app, if it is different from the person who + # produced the Sandstorm package. Setting this implies that the author connected to the PGP + # signature only "packaged" the app for Sandstorm, rather than developing the app. + # Remove this line if you consider yourself as the author of the app. + ), + + #pgpKeyring = embed "path/to/pgp-keyring", + # A keyring in GPG keyring format containing all public keys needed to verify PGP signatures in + # this manifest (as of this writing, there is only one: `author.pgpSignature`). + # + # To generate a keyring containing just your public key, do: + # + # gpg --export > keyring + # + # Where `` is a PGP key ID or email address associated with the key. + + #description = (defaultText = embed "path/to/description.md"), + # The app's description in Github-flavored Markdown format, to be displayed e.g. + # in an app store. Note that the Markdown is not permitted to contain HTML nor image tags (but + # you can include a list of screenshots separately). + + shortDescription = (defaultText = "Financial management"), + # A very short (one-to-three words) description of what the app does. For example, + # "Document editor", or "Notetaking", or "Email client". This will be displayed under the app + # title in the grid view in the app market. + + screenshots = [ + # Screenshots to use for marketing purposes. Examples below. + # Sizes are given in device-independent pixels, so if you took these + # screenshots on a Retina-style high DPI screen, divide each dimension by two. + + #(width = 746, height = 795, jpeg = embed "path/to/screenshot-1.jpeg"), + #(width = 640, height = 480, png = embed "path/to/screenshot-2.png"), + ], + #changeLog = (defaultText = embed "path/to/sandstorm-specific/changelog.md"), + # Documents the history of changes in Github-flavored markdown format (with the same restrictions + # as govern `description`). We recommend formatting this with an H1 heading for each version + # followed by a bullet list of changes. + ), + ), + + sourceMap = ( + # Here we defined where to look for files to copy into your package. The + # `spk dev` command actually figures out what files your app needs + # automatically by running it on a FUSE filesystem. So, the mappings + # here are only to tell it where to find files that the app wants. + searchPath = [ + ( sourcePath = "." ), # Search this directory first. + ( sourcePath = "/", # Then search the system root directory. + hidePaths = [ "home", "proc", "sys", + "etc/passwd", "etc/hosts", "etc/host.conf", + "etc/nsswitch.conf", "etc/resolv.conf" ] + # You probably don't want the app pulling files from these places, + # so we hide them. Note that /dev, /var, and /tmp are implicitly + # hidden because Sandstorm itself provides them. + ) + ] + ), + + fileList = "sandstorm-files.list", + # `spk dev` will write a list of all the files your app uses to this file. + # You should review it later, before shipping your app. + + alwaysInclude = [], + # Fill this list with more names of files or directories that should be + # included in your package, even if not listed in sandstorm-files.list. + # Use this to force-include stuff that you know you need but which may + # not have been detected as a dependency during `spk dev`. If you list + # a directory here, its entire contents will be included recursively. + + #bridgeConfig = ( + # # Used for integrating permissions and roles into the Sandstorm shell + # # and for sandstorm-http-bridge to pass to your app. + # # Uncomment this block and adjust the permissions and roles to make + # # sense for your app. + # # For more information, see high-level documentation at + # # https://docs.sandstorm.io/en/latest/developing/auth/ + # # and advanced details in the "BridgeConfig" section of + # # https://github.com/sandstorm-io/sandstorm/blob/master/src/sandstorm/package.capnp + # viewInfo = ( + # # For details on the viewInfo field, consult "ViewInfo" in + # # https://github.com/sandstorm-io/sandstorm/blob/master/src/sandstorm/grain.capnp + # + # permissions = [ + # # Permissions which a user may or may not possess. A user's current + # # permissions are passed to the app as a comma-separated list of `name` + # # fields in the X-Sandstorm-Permissions header with each request. + # # + # # IMPORTANT: only ever append to this list! Reordering or removing fields + # # will change behavior and permissions for existing grains! To deprecate a + # # permission, or for more information, see "PermissionDef" in + # # https://github.com/sandstorm-io/sandstorm/blob/master/src/sandstorm/grain.capnp + # ( + # name = "editor", + # # Name of the permission, used as an identifier for the permission in cases where string + # # names are preferred. Used in sandstorm-http-bridge's X-Sandstorm-Permissions HTTP header. + # + # title = (defaultText = "editor"), + # # Display name of the permission, e.g. to display in a checklist of permissions + # # that may be assigned when sharing. + # + # description = (defaultText = "grants ability to modify data"), + # # Prose describing what this role means, suitable for a tool tip or similar help text. + # ), + # ], + # roles = [ + # # Roles are logical collections of permissions. For instance, your app may have + # # a "viewer" role and an "editor" role + # ( + # title = (defaultText = "editor"), + # # Name of the role. Shown in the Sandstorm UI to indicate which users have which roles. + # + # permissions = [true], + # # An array indicating which permissions this role carries. + # # It should be the same length as the permissions array in + # # viewInfo, and the order of the lists must match. + # + # verbPhrase = (defaultText = "can make changes to the document"), + # # Brief explanatory text to show in the sharing UI indicating + # # what a user assigned this role will be able to do with the grain. + # + # description = (defaultText = "editors may view all site data and change settings."), + # # Prose describing what this role means, suitable for a tool tip or similar help text. + # ), + # ( + # title = (defaultText = "viewer"), + # permissions = [false], + # verbPhrase = (defaultText = "can view the document"), + # description = (defaultText = "viewers may view what other users have written."), + # ), + # ], + # ), + # #apiPath = "/api", + # # Apps can export an API to the world. The API is to be used primarily by Javascript + # # code and native apps, so it can't serve out regular HTML to browsers. If a request + # # comes in to your app's API, sandstorm-http-bridge will prefix the request's path with + # # this string, if specified. + #), +); + +const myCommand :Spk.Manifest.Command = ( + # Here we define the command used to start up your server. + argv = ["/sandstorm-http-bridge", "8000", "--", "/opt/app/.sandstorm/launcher.sh"], + environ = [ + # Note that this defines the *entire* environment seen by your app. + (key = "PATH", value = "/usr/local/bin:/usr/bin:/bin"), + (key = "SANDSTORM", value = "1"), + # Export SANDSTORM=1 into the environment, so that apps running within Sandstorm + # can detect if $SANDSTORM="1" at runtime, switching UI and/or backend to use + # the app's Sandstorm-specific integration code. + ] +); diff --git a/.sandstorm/service-config/mime.types b/.sandstorm/service-config/mime.types new file mode 100644 index 0000000000..89be9a4cd6 --- /dev/null +++ b/.sandstorm/service-config/mime.types @@ -0,0 +1,89 @@ + +types { + text/html html htm shtml; + text/css css; + text/xml xml; + image/gif gif; + image/jpeg jpeg jpg; + application/javascript js; + application/atom+xml atom; + application/rss+xml rss; + + text/mathml mml; + text/plain txt; + text/vnd.sun.j2me.app-descriptor jad; + text/vnd.wap.wml wml; + text/x-component htc; + + image/png png; + image/tiff tif tiff; + image/vnd.wap.wbmp wbmp; + image/x-icon ico; + image/x-jng jng; + image/x-ms-bmp bmp; + image/svg+xml svg svgz; + image/webp webp; + + application/font-woff woff; + application/java-archive jar war ear; + application/json json; + application/mac-binhex40 hqx; + application/msword doc; + application/pdf pdf; + application/postscript ps eps ai; + application/rtf rtf; + application/vnd.apple.mpegurl m3u8; + application/vnd.ms-excel xls; + application/vnd.ms-fontobject eot; + application/vnd.ms-powerpoint ppt; + application/vnd.wap.wmlc wmlc; + application/vnd.google-earth.kml+xml kml; + application/vnd.google-earth.kmz kmz; + application/x-7z-compressed 7z; + application/x-cocoa cco; + application/x-java-archive-diff jardiff; + application/x-java-jnlp-file jnlp; + application/x-makeself run; + application/x-perl pl pm; + application/x-pilot prc pdb; + application/x-rar-compressed rar; + application/x-redhat-package-manager rpm; + application/x-sea sea; + application/x-shockwave-flash swf; + application/x-stuffit sit; + application/x-tcl tcl tk; + application/x-x509-ca-cert der pem crt; + application/x-xpinstall xpi; + application/xhtml+xml xhtml; + application/xspf+xml xspf; + application/zip zip; + + application/octet-stream bin exe dll; + application/octet-stream deb; + application/octet-stream dmg; + application/octet-stream iso img; + application/octet-stream msi msp msm; + + application/vnd.openxmlformats-officedocument.wordprocessingml.document docx; + application/vnd.openxmlformats-officedocument.spreadsheetml.sheet xlsx; + application/vnd.openxmlformats-officedocument.presentationml.presentation pptx; + + audio/midi mid midi kar; + audio/mpeg mp3; + audio/ogg ogg; + audio/x-m4a m4a; + audio/x-realaudio ra; + + video/3gpp 3gpp 3gp; + video/mp2t ts; + video/mp4 mp4; + video/mpeg mpeg mpg; + video/quicktime mov; + video/webm webm; + video/x-flv flv; + video/x-m4v m4v; + video/x-mng mng; + video/x-ms-asf asx asf; + video/x-ms-wmv wmv; + video/x-msvideo avi; +} diff --git a/.sandstorm/service-config/nginx.conf b/.sandstorm/service-config/nginx.conf new file mode 100644 index 0000000000..b63ddaae07 --- /dev/null +++ b/.sandstorm/service-config/nginx.conf @@ -0,0 +1,87 @@ +worker_processes 4; +pid /var/run/nginx.pid; + +events { + worker_connections 768; + # multi_accept on; +} + +http { + # Basic Settings + sendfile on; + tcp_nopush on; + tcp_nodelay on; + keepalive_timeout 65; + types_hash_max_size 2048; + # server_names_hash_bucket_size 64; + server_tokens off; + server_name_in_redirect off; + + include mime.types; + default_type application/octet-stream; + + # Logging + access_log off; + error_log stderr; + + # Prevent nginx from adding compression; this interacts badly with Sandstorm + # WebSession due to https://github.com/sandstorm-io/sandstorm/issues/289 + gzip off; + + # Trust the sandstorm-http-bridge's X-Forwarded-Proto. + map $http_x_forwarded_proto $fe_https { + default ""; + https on; + } + + server { + listen 8000 default_server; + listen [::]:8000 default_server ipv6only=on; + + # Allow arbitrarily large bodies - Sandstorm can handle them, and requests + # are authenticated already, so there's no reason for apps to add additional + # limits by default. + client_max_body_size 0; + + server_name localhost; + root /opt/app/public; + location / { + index index.php; + try_files $uri $uri/ /index.php?$query_string; + autoindex on; + sendfile off; + } + location ~ \.php$ { + try_files $uri =404; + fastcgi_pass unix:/var/run/php7.0-fpm.sock; + fastcgi_index index.php; + fastcgi_split_path_info ^(.+\.php)(/.+)$; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + + + fastcgi_param QUERY_STRING $query_string; + fastcgi_param REQUEST_METHOD $request_method; + fastcgi_param CONTENT_TYPE $content_type; + fastcgi_param CONTENT_LENGTH $content_length; + + fastcgi_param SCRIPT_NAME $fastcgi_script_name; + fastcgi_param REQUEST_URI $request_uri; + fastcgi_param DOCUMENT_URI $document_uri; + fastcgi_param DOCUMENT_ROOT $document_root; + fastcgi_param SERVER_PROTOCOL $server_protocol; + fastcgi_param HTTPS $fe_https if_not_empty; + + fastcgi_param GATEWAY_INTERFACE CGI/1.1; + fastcgi_param SERVER_SOFTWARE nginx/$nginx_version; + + fastcgi_param REMOTE_ADDR $remote_addr; + fastcgi_param REMOTE_PORT $remote_port; + fastcgi_param SERVER_ADDR $server_addr; + fastcgi_param SERVER_PORT $server_port; + fastcgi_param SERVER_NAME $server_name; + + # PHP only, required if PHP was built with --enable-force-cgi-redirect + #fastcgi_param REDIRECT_STATUS 200; + } + } +} diff --git a/.sandstorm/setup.sh b/.sandstorm/setup.sh new file mode 100755 index 0000000000..9af16630f0 --- /dev/null +++ b/.sandstorm/setup.sh @@ -0,0 +1,61 @@ +#!/bin/bash + +# When you change this file, you must take manual action. Read this doc: +# - https://docs.sandstorm.io/en/latest/vagrant-spk/customizing/#setupsh + +set -euo pipefail + +export DEBIAN_FRONTEND=noninteractive + +# install packages so we can install apt-add-repository. +apt-get update +apt-get install -y python-software-properties software-properties-common + +# actually add repository +apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E9C74FEEA2098A6E +add-apt-repository "deb http://packages.dotdeb.org jessie all" + +# install packages. +apt-get update +apt-get install -y nginx php7.0-fpm php7.0-mysql php7.0-cli php7.0-curl git php7.0-dev php7.0-intl php7.0-dom php7.0-mbstring php7.0-bcmath mysql-server +service nginx stop +service php7.0-fpm stop +service mysql stop +systemctl disable nginx +systemctl disable php7.0-fpm +systemctl disable mysql +# patch /etc/php/7.0/fpm/pool.d/www.conf to not change uid/gid to www-data +sed --in-place='' \ + --expression='s/^listen.owner = www-data/;listen.owner = www-data/' \ + --expression='s/^listen.group = www-data/;listen.group = www-data/' \ + /etc/php/7.0/fpm/pool.d/www.conf +# patch /etc/php/7.0/fpm/php-fpm.conf to not have a pidfile +sed --in-place='' \ + --expression='s/^pid =/;pid =/' \ + /etc/php/7.0/fpm/php-fpm.conf + +# move sock file to better dir: +sed --in-place='' \ + --expression='s/^listen = \/run\/php\/php7.0-fpm.sock/listen = \/var\/run\/php7.0-fpm.sock/' \ + /etc/php/7.0/fpm/pool.d/www.conf + +# patch /etc/php/7.0/fpm/pool.d/www.conf to no clear environment variables +# so we can pass in SANDSTORM=1 to apps +sed --in-place='' \ + --expression='s/^;clear_env = no/clear_env=no/' \ + /etc/php/7.0/fpm/pool.d/www.conf +# patch mysql conf to not change uid, and to use /var/tmp over /tmp +# for secure-file-priv see https://github.com/sandstorm-io/vagrant-spk/issues/195 +sed --in-place='' \ + --expression='s/^user\t\t= mysql/#user\t\t= mysql/' \ + --expression='s,^tmpdir\t\t= /tmp,tmpdir\t\t= /var/tmp,' \ + --expression='/\[mysqld]/ a\ secure-file-priv = ""\' \ + /etc/mysql/my.cnf +# patch mysql conf to use smaller transaction logs to save disk space +cat < /etc/mysql/conf.d/sandstorm.cnf +[mysqld] +# Set the transaction log file to the minimum allowed size to save disk space. +# innodb_log_file_size = 1048576 +# Set the main data file to grow by 1MB at a time, rather than 8MB at a time. +innodb_autoextend_increment = 1 +EOF diff --git a/.sandstorm/stack b/.sandstorm/stack new file mode 100644 index 0000000000..79a9408192 --- /dev/null +++ b/.sandstorm/stack @@ -0,0 +1 @@ +lemp diff --git a/public/images/logo/firefly-iii-128.png b/public/images/logo/firefly-iii-128.png new file mode 100644 index 0000000000000000000000000000000000000000..70de2bc75ab25421558ed44142adccf5c2a6d3e0 GIT binary patch literal 14217 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�_) zNe{(%&3`?I1&NrjA1J-;vE8Z*kf~3l3yP=uX}Tk5`RWW2Yt}Ky6xP~yc8a|t#VtER zZ5UB|*U*LF>F|3p8^ft3Pi)ip+# z7h8Wn+#i@boDZElybG;Aq`_;87TLF$i_B)f=1Fsw+&Q>miv`+N)ZD82EYj**r|!AQ z2@^O;uKDXbg~zHi6M!3liKbuUMRYPa&iFX&2Rug%;}UkOn58B3)inP2x`@5fo%?gR zi?{ZJ8F4hw7*bS>hTeSq)YN*pq-A38mL6Z*EUnnsaR!K_KMkXv3_x*9F$f!d^m{v( zY!6iFEkgDz2#4xJ^j-qy>4d=h+A3l}3-9Pa#`#O-pOU-D?yi1YTBg-o1!NLAuo|E` z)Ski`sgQ1U@`SVwI6uDLp%Mph2pwOQ8WVijy8Z4j2j&s|ma~Sur6qzoL3k<2>7++a zdipapjobNrv{!9f7KT6^ht4CD4Em&Nv$_D4jT{KKB68(`R`&jyVI@}T6*@pr3F7+3 z*@sv5Tt@p~4+vAMCTr^zf~X3}M%wqCjCcCkqjs}LR`!fFXg%FNyKNY$gA|&S9^meT z!Ys6!DVY6%!;B{HzG@o6vl+!sd*KR$<9%XZH;n%JGs62(f`4EkZYg>n1IJm&Z^fn( zpX|!wM{a%ZcbV=XUI$Qxp9_RWH+bF`l-T*DniLSfrBI}y>@p`PJ#TSB9AdT?sxQ07 zEMD7GX;{-iP+2cjO;^$l)}o@Con=?fHMAuwabeeYk}u&)gxPbx)_5xz+)1`I2f8Fh zgo8&1@LOmr@tu*;hw9z``0SHioxWUPD(7 z!L%Gc2;N5=qp1PC4os5$RE2bqXUn=R?gv&ctFaD#uo9aPPO}ijmOItLZ7(eQ`=%_{ z=i2@oc@FO7_~v1STRR09Az;M#-TS$7X?$<|jYtp;7T36%al~hyuBhAdMg0)l`%;X5 z89Ksh`ZuV?MH!SYNQ8V{Zil_{_nU3Fq|%FWDNBxkF*Pcv_%pO2-8=O{2x*dnSS_4y zoy<_-md+e9nce7W<@`=Jk$K@$mmktb*ZPjX`KP_g-J*LRa{v{^^2ry@mt979-UpBA zUi;7ijkKvmbS$dFS>bvf^F*eXjqIY|ZCLXkndCOKpw}H1YK}e~UNIkIzae7|!6m8c zdw=z|tbOKfqWsVh3NjX$(0#@ALnm;eU65HX4DV?htcr7OCeu@zDrP**t71$>Fj~7*4F#^w#PeE=5E)TZd^*15h$M5J~mb#f^MIAJL_I_su?6BmA8f9`cEqiza#uzFu zZ9R)VRk}XktM=_?34YB;BfBz+D1C?XoXAPuC3j|vpD7`-2VKE-6kimykB&Jimu&iF zxa6aGQHeX>@&(k31YjohbXgXgntKD@gz%Iy#aqQGe{8jUGjZDA3|vnP}3Mm zld)EPpJ_+<8{C_gG8??MC2Gf-CwkyKz&=(I^*_@g_ct7YXkIY|i=FTYX7b;BOT`+am=M15I zJ9P$R9GL82l&`1cc%70q<)`b$^8f-(Zx`07l|p`E@e#4#TlWUn#_@D&6n{Pu1uKC` z(2!ejES;Jow(UF|c-H$o!Tfxw{4(>q1FtwFYmD8!da~_oRW%14WH_fSmR8++`K($K z1v!9AC8A}#^3vyk&-pc0+o7{=opGp?=y!o^5z|Urr@pU+PSopCnQ@11B`)HjlWg2} zn_-KqBxib$} zitFG+p~u3AxLS>iuO*q^))B1_yS zt3CV~;Dmy6qRvh9}SRa-u~m3A!UjRjBF*YX!%W2qReU%ML#NiA2am%9=RJX3fZcvfrLgI*n->m8`rqhTFG4-N=(SKvI^mS z-HVAUuVyZ>?EHR1boW$(_c`45%*}S)D~A+`KO+VU7aFJ{E2x7v!l#m^} zDAa0;Rp;~dQn$R+gL?$TTl&F@v>Vz;REzs#4sC+|R+kGxqwB)z#Dfd*?p|9NxzUP< z-X4M{g1{C`ML)HAq6t!E%LxjD4fn{)qHQyrret^w)xLC8v0e0D6S}rL2B)7IjV7D9 zcwB_&N^e)&9`)g1C3}2hy#e_l$5B|luv)PF#^r%}8zE057%(lhFpIJ*t$BHa{)#?^ z{5DjGBXRs0z|)#8AyA+9v&0E8d2Uu?Ed>v{htZhBe=vMzy4~RO8(6$tzTjx!4@6qj z$T_`LE1UM~=2aDZDKkw1VvWMh8IA6>txVGcDN^I8ft%rJL<2pXhy2vN9iNYV6TAqu zT9wr^Ufwk^X#qdA@4CE+UCZ@Qf=*g_f&^PcNq%*uHfPCA8%7=9bMdg{whv3ln2U_Q zle9!rpw<2Kzhm~N$|IkVC?J;O80xkQL6Emh|3?l#V+Osv9NO%0X`~&V`y^417Jx%lj38i2CX!&@UMZ)T z%w>1JD3TIVP7Mzi7k=d_5h=S(u*b*HLX)rM@x3P)G1#f7pF29ovcoNLdJeT64=S#* zXEIf@uifr=R5f{lD6|$oN!j*E2*HaZ?Ut$4hH8h464*+9Iz&k(wAWPm^unB~qt+or<~#!p1$B1F#VFrARL@hsa-%_~IcqNpyl4 z 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

Kxz-NWlI+ zQzU%?vy3oXRzF~{1F?oPVnKn(1hCFk(+>=4s4bOsPmn8%hv$r4!CDr7fQ{@2sm*X3 z4&n{=GT#LpP*5{y-ad0?Fgc=rULwqK&kCOOs65I{id4g};)I7FP=asTXPW7-k$c;!$MB0rNG_w4_wU6ByU33~ zHT^Y*M!UHshLO$|C>AnXApR|03=ttpTm)Zo*G5SNI4P}&Y-fqX8;|*$a+9IJaLkSz zyBqJT9BE0yPz?E8O9ef*A?@U;F@z1dtG|P|br0#_YxjfSrN^zNV)@pe&98p7_MASO z&v(9A%o>7jURuDwiV!{KkVRf;b^Rm{RXz%PxhgrGtEvf{0qwRjb!atV?}4x zzt7v{{7&*}a&qaq*9R)5Dxy&@bZced`KE8RHJbj}GX7JwmiGW8_3h8xa+%5tza5mz z2(_^3k{H_>PL$k!MouXQ%ULU~C|xS5p^?p!}TJP$-4h^_~iA znpauNTK4@Ab%ad*8tribu(@pG)TiVK{22r&1*4gU?SW=6Ulnh||DyNl9h*bcrT~?I z+vSO@do;D=`}njYw>Nj+1r%V8tYd z`|$}<>R!y8xyEGL3-Oo{aKerk+W367XZbnomfEdZQ-dl5W=zAfm$&;yym)ERwGUGh z;ZI!N+mGVh*^T3oFzSbzeAS?1Bh~l4`0!1$F_&(7Ak#D10)fWOam+yXYLxDd)c3wtL8Px2X4V52*GJZ1jl1&d|7`sTFY#NDZnuR7Ae>f9h&hjo|MWqF4XgJg zU$%jNwhpQ`+k&@a$kU4pJ_WIOp*ERP*!_YSe2P%qMhG>*wa*C^huC8SS-R7kXzn-m z-fdRb-EoAU!$qut`?ivr_XBBww}a_LaP<@98Zt{lnN+A&N3efdHP40WITz$4^TJb4 zV}$4oTaWb(bp_GC+3xl_En6EZ{G|3cql@7n<@0Nr+fwzQU`M#7w>JjID??A!5Mw>k zzQ$)@T>=#23ls+v$d7fH>(rd^LnNbXf=B*?*M%dWl9$ziAWp|ieop3vukqr!Yw_i| z56yL*ChCKd>%Cl~>I4zxrS0Holh{AZp{5@+gm)w`koHAsgm%4#*BYbXG z=V4#fX7E?KbD$-zp!|~6kw#9(_Mu;fDZ}%KBBm-jPGvm#>O1{tt{*=U_DkU{IN$`! R{`zyAq^O)om5@Qu{|Bgy$qN7g literal 0 HcmV?d00001 diff --git a/public/images/logo/firefly-iii-150.png b/public/images/logo/firefly-iii-150.png new file mode 100644 index 0000000000000000000000000000000000000000..0d97be47680667d16ca7ca1a50c67e0618189750 GIT binary patch literal 15229 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 literal 0 HcmV?d00001 diff --git a/public/images/logo/firefly-iii-24.png b/public/images/logo/firefly-iii-24.png new file mode 100644 index 0000000000000000000000000000000000000000..a727ae4992f6bdfc119bc874d7fe899361d41ead GIT binary patch literal 2560 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 PUrqWtCfW})9m4((KVD6+ literal 0 HcmV?d00001